Show HN: I integrated my from-scratch TCP/IP stack into the xv6-riscv OS
Show HN (score: 6)Description
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!
More from Show
Show HN: Opal Editor, free Obsidian alternative for markdown and site publishing
Show HN: Opal Editor, free Obsidian alternative for markdown and site publishing A fully featured markdown editor and publisher. Free, open-source and browser-first (no backend required). Built with modern technologies like React, TypeScript, Shadcn/UI, and Vite. (thoughtfully crafted, not vibe coded)
Show HN: Control Claude permissions using a cloud-based decision table UI
Show HN: Control Claude permissions using a cloud-based decision table UI We’ve been building visual rule engines (clear interfaces + API endpoints that help map input data to a large number of outcomes) for a while and had the fun idea lately to see what happens when we use our decision table UI with Claude’s PreToolUse hook.<p>The result is a surprisingly useful policy/gating layer– these tables let your team:<p>- Write multi-factor, exception-friendly policies (e.g. deny rm -rf / when --force; allow cleanup only in node_modules; ask on network calls like curl/wget; block kubectl delete or SQL DROP, each with a clear reason)<p>- Roll out policy changes instantly (mid-run, flip a risky operation from allow → ask; the next attempt across devs and agents is gated immediately– no git pull, agent restart, or coordination)<p>- Adopt lightweight governance that is somewhat agent agnostic and survives churn (MCP/skills/etc)- just add columns/rules as new tools and metadata show up<p>- Get a quick central utility to understand which tools are being used, which tools get blocked most often, and why
Show HN: Claude Code Scheduler
Show HN: Claude Code Scheduler I found myself frequently wanting to schedule tasks in Claude Code (both one-time and recurring) so I built a CC plugin to help with that.<p>To install: /plugin marketplace add jshchnz/claude-code-scheduler /plugin install scheduler@claude-code-scheduler<p>Then just tell Claude what you want (some examples):<p>Every Wednesday at 3am find dead code: unused functions, unreachable branches, commented-out code, and unused imports. List by file with line numbers.<p>Schedule a code review every weekday at 9am. Review commits from the last 24 hours, check for bugs, security issues, error handling gaps, and code that needs comments. Summarize with file:line references.
Show HN: Webctl – Browser automation for agents based on CLI instead of MCP
Show HN: Webctl – Browser automation for agents based on CLI instead of MCP
No other tools from this source yet.