2 ms·
> That's correct. Redbean is already capable of booting on bare metal. We do what we must because we can. I love the spirit :) > The main blocker is figuring
by csdvrx 4y ago
> That's correct. Redbean is already capable of booting on bare metal. We do what we must because we can.
I love the spirit :)
> The main blocker is figuring out how to get an e1000 and/or VirtIO driver in there with a TCP/IP stack.
Why? Is it for performance reasons or security reasons? (or both)
> Right now Cosmopolitan bare metal support is only adequate for stdio applications, which use the serial port and read from the zip fs.
I'd suggest you "think different", and use instead something like ppp to create a TCP/IP stack over a serial link.
Modern btuart implementations already routinely achieve >1Mbps on commercial devices. The GSI as seen on the Intel Serial IO devices support bitrates over 20Mbps.
This could buy you time until you find a better solution, if it's ever needed (which I doubt as back of the envelope estimations make me believe you'll hit other limitations before)
- jart 4y agoIt's less about perf/security and more to do with simply needing the time to wrap my head around how to do it. Entering ring0 is a whole different world. My productivity depends on a responsive TDD workflow and it's hard to test kernel code. I currently do it using an emulator I wrote called Blinkenlights, because the existing ones (Bochs and QEMU) couldn't be integrated into my Makefile / Emacs build system. So I not only need to build the kernel but I need to emulate the CPU features the kernel needs too.
- csdvrx 4y ago> It's less about perf/security and more to do with simply needing the time to wrap my head around how to do it. I can have a look at using ppp for creating a network connection using stdio. It doesn't look very complicated. > it's hard to test kernel code Exactly why I suggest pppd (userland) instead of VFIO > So I not only need to build the kernel but I need to emulate the CPU features the kernel needs too You have stdio? No need for anything else.