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.
pandax381 1 days ago [-]
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.
dancek 2 days ago [-]
Awesome work! Thank you for showing it to the world!
I've considered writing a network stack myself. It's much more complex than most people can imagine. We have great tooling for TCP and that makes people believe it's simple technology. It's not.
pandax381 1 days ago [-]
Thank you! I completely agree, the complexity is definitely hidden by modern tools and abstractions. It's a challenging but rewarding project. You should give it a try, it's a fantastic way to learn!
AbbeFaria 2 days ago [-]
Well done. I am actually solving the labs rn. I am on mmap, trying to get fork to work :)
pandax381 1 days ago [-]
Thank you! And good luck with the labs, they're a great learning experience.
lesser-shadow 2 days ago [-]
Are you using any RISC-V extensions? If so, which? I couldn't find this information on the xv6 project page.
It would be cool if you could run this project in bare metal.
pandax381 1 days ago [-]
Thanks for asking! It's compiled with -march=rv64g, so it uses the standard general-purpose extensions (IMAFD) and doesn't rely on anything exotic. Running it on bare metal is definitely a challenge I'd like to try someday! For now, the virtio-net driver is tightly coupled with QEMU, so a different network driver would be needed for specific hardware.
cardiffspaceman 1 days ago [-]
The readme implies that UDP is included. Is that true?
pandax381 1 days ago [-]
Yes, that's correct! Both TCP and UDP are implemented. There's a udpecho server included as a sample application you can use to test it out.
theosp 2 days ago [-]
Well done! Thank you for sharing
pandax381 1 days ago [-]
Thank you for checking it out!
Rendered at 01:29:06 GMT+0000 (Coordinated Universal Time) with Vercel.
I've considered writing a network stack myself. It's much more complex than most people can imagine. We have great tooling for TCP and that makes people believe it's simple technology. It's not.