Lab: networking
Before writing code, you may find it helpful to review "Chapter 5: Interrupts and device drivers" in the xv6 book. You'll use a network device called the E1000 to handle network communication. To xv6 (and the driver you write), the E1000 looks like a real piece of hardware connected to a real Ethernet local area network (LAN). In fact, the E1000 your driver will talk to is an emulation provided by qemu, connected to a LAN that is also emulated by qemu. On this emulated LAN, xv6 (the "guest") has an IP address of 10.0.2.15. Qemu also arranges for the computer running qemu to appear on the LAN with IP address 10.0.2.2. When xv6 uses the E1000 to send a packet to 10.0.2.2, qemu delivers the packet to the appropriate application on the (real) computer on which you're running qemu (the "host"). You will use QEMU's "user-mode network stack". QEMU's documentation has more about the user-mode stack here. We've updated the Makefile to enable QEMU's user-mode network stack and the E1000 network
Lab: networking Lab: networking In this lab you will write an xv6 device driver for a network interface card (NIC). Fetch the xv6 source for the lab and check out the net branch: $ git fetch $ git checkout net $ make clean Background Before writing code, you may find it helpful to review "Chapter 5: Interrupts and device drivers" in the xv6 book . You'll use a network device called the E1000 to handle network communication. To xv6 (and the driver you write), the E1000 looks like a real piece of hardware connected to a real Ethernet local area network (LAN). In fact, the E1000 your driver will
Explore this link on the map →related reading
- Let's code a TCP/IP stack, 1: Ethernet & ARPsaminiir.com
- Beej's Guide to Network Programmingbeej.us
- The Internet explained from first principlesexplained-from-first-principles.com
- What Developers Should Know About Networks — Carl Tashiantashian.com
- The little book about OS developmentlittleosbook.github.io
- Network configuration/Wireless - ArchWikiwiki.archlinux.org
- FUTO Self Managed Guidewiki.futo.org
- Networking layer | ethereum.orgethereum.org
- How NAT traversal workstailscale.com
- Understanding Docker Networking - Earthly Blogearthly.dev
- cs140e-24win/notes/devices/DEVICES.md at main · dddrrreee/cs140e-24win · GitHubgithub.com
- GPU Driver Developer’s Guide — The Linux Kernel documentationdocs.kernel.org