Attempting to understand bash internals. It's going… okay.

Also added support for pipes and managed to integrate PicoTCP into the kernel (ran in userland before). I have a very limited BSD socket API layer right now, but I still managed to get a "telnet" server working.

Next up, porting dropbear 😎

Got bash ported! No more dash. 🎉 Still buggy af, but getting there.

Xelix news: Managed to fix the PCI issues I've been having (by making PCI interrupts non-reentrant for now), wrote a driver for Ne2000 NICs and hooked that up to PicoTCP.

Suddenly: Internet! Next up, figuring out how to expose all this properly as BSD sockets in userland.

github.com/lutoma/xelix/commit

Tried booting Xelix in VirtualBox for the first time in ages. Looks like it's not very happy with the new interrupt handling. I think it fires a nested interrupt right after initialization where QEMU doesn't, and that triggers one of the several reentrancy issues still scattered throughout the code.

In related news, spent a lot of time making context switching more stable and improving the ext2 driver recently. Ported pciutils/lspci earlier today and it's starting to feel like a real UNIX™.

Well I guess at least the page fault handler works. Now to find out what corrupts task memory. I'm 90% certain it's because I'm not allocating the stack properly, but who knows.

chaos.social

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!