Implemented Intel E1000 NIC driver in xv6 from scratch: TX/RX descriptor rings, DMA, interrupt-driven packet process ing with batching.
Built UDP receive path in kernel: bind/recv syscalls and per-port packet queues.
Reduced memory usage by 3̃0× via lazy allocation with a stack allocator for sub-page port objects.
Ensured correctness under concurrency: ring buffers as multi-producer/multi-consumer queues protected by spin locks.
Built with