NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Show HN: I integrated my from-scratch TCP/IP stack into the xv6-riscv OS (github.com)
Tony_Delco 165 days ago [-]
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 165 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 165 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 165 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 165 days ago [-]
Well done. I am actually solving the labs rn. I am on mmap, trying to get fork to work :)
pandax381 165 days ago [-]
Thank you! And good luck with the labs, they're a great learning experience.
lesser-shadow 165 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 165 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.
theosp 165 days ago [-]
Well done! Thank you for sharing
pandax381 165 days ago [-]
Thank you for checking it out!
cardiffspaceman 165 days ago [-]
The readme implies that UDP is included. Is that true?
pandax381 165 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.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 11:57:49 GMT+0000 (Coordinated Universal Time) with Vercel.