WOW. That's just nuts! I mean I know linux can be slim, but thats less than a meg!
Really very exciting stuff. I don't know if I should play JC3 or tinker with this.
WOW. That's just nuts! I mean I know linux can be slim, but thats less than a meg!
Really very exciting stuff. I don't know if I should play JC3 or tinker with this.
Now, wanting strong separation mechanisms and so on would complicate things. The old security kernels, like STOP OS and GEMSOS, used MMU's, segments, MAC policies, covert channel suppression... you name it. STOP was still only 21,000 Kloc in total:
http://www.cse.psu.edu/~trj1/cse544-s10/slides/cse544-lec9-1...
So, monolithic or micro-kernel route, you can get things way smaller at the foundation than what we use today. Add basic TCP/IP stack, Ethernet driver, and runtime it should still be way smaller than 693K unless that's tons of error or security handling code to increase robustness.
(That's actually quite big for a tiny-computer OS, although it's the smallest Unix I know of.)
Fuzix' 27kB contains the scheduler, drivers, tty, file system and Posix subsystem!
http://www.emcraft.com/stm32f429discovery/what-is-minimal-fo...
The entire concept appears to me like a fancy ELF, cause we couldn't solve the problem of packaging software in a portable way before, apparently.
This probably means integrating whatever Ethernet adapter you have, and some way of sending/receiving stdio, probably over serial or something.
Sideline: I'm particularly intrigued by the idea of implementing drivers for AWS EC2, so you can run this as your AMI.
Exokernels (https://en.wikipedia.org/wiki/Exokernel) essentially implement this. Hardware has been adding more support for virtualization though, so I imagine unikernels are better able to take advantage of things like virtualized page tables, virtualized io-mmu, etc...
I'd be curious to see benchmarks for something generally IO bound like PostgreSQL or HyperTable. IO scheduling isn't trivial, so it might give a good idea of what some of the trade-offs might be.
Yup. Kind of like a skimpy version of OSv.
It runs against hardware virtualization... I'm not sure I understand why it needs a "real" OS underneath. At least in theory it should be able to run on bare metal as long as you include logic for whatever device drivers you might need.