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.

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.

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