←back to thread

141 points pandax381 | 2 comments | | HN request time: 0.446s | source

Hi HN,

To truly understand how operating systems and network protocols work, I decided to combine two classic learning tools: the xv6 teaching OS and a from-scratch TCP/IP stack.

I'm excited to share the result: my own from-scratch TCP/IP networking stack running directly inside the xv6-riscv (https://github.com/pandax381/xv6-riscv-net) kernel.

The project uses a modern virtio-net driver, allowing it to run seamlessly in QEMU and communicate with the host machine.

Key features:

- From-Scratch Stack: The core is powered by microps (https://github.com/pandax381/microps), a TCP/IP stack I originally wrote to run in user-space as a personal project to learn the low-level details of networking.

- Kernel Integration: This project ports microps from user-space into the xv6-riscv kernel.

- Socket API: Implements standard system calls (socket, bind, accept, etc.) to enable network application development.

- User-level Tools: Comes with a simple ifconfig command, plus tcpecho and udpecho servers to demonstrate its capabilities.

This has been a fantastic learning experience. My goal was to demystify the magic behind network-aware operating systems by building the components myself.

I'd love to hear your feedback and answer any questions!

1. Tony_Delco ◴[] No.45024013[source]
This is amazing work. Most people don’t realize how much effort and depth there is behind writing a TCP/IP stack and plugging it into xv6 with virtio-net and sockets. Huge respect for making it public. Projects like this are gold for those of us who love low-level systems.
replies(1): >>45032886 #
2. pandax381 ◴[] No.45032886[source]
Thank you so much for the kind words! It really means a lot, especially from someone who understands the effort involved. I'm thrilled that it's resonating with fellow low-level systems fans.