Live data from Hacker News

IncludeOS: C++ unikernel now free and open source

github.com

11–20 of 43 posts

Re: IncludeOS: C++ unikernel now free and open source

#11

> A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 693K when optimized for size. 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.

It still needs a 'real' OS (e.g. Linux) running as the Hypervisor.

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.

Re: IncludeOS: C++ unikernel now free and open source

#12
post #7

> A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 693K when optimized for size. 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.

I'm pretty sure you can find MIPS Linux images with Busybox et. all. that weigh less than that. A lot of routers run Linux on 2M eproms including user space.

EmCraft shows a 594kB linux image for Cortex M4

http://www.emcraft.com/stm32f429discovery/what-is-minimal-fo...

Re: IncludeOS: C++ unikernel now free and open source

#13
post #7

> A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 693K when optimized for size. 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.

I'm pretty sure you can find MIPS Linux images with Busybox et. all. that weigh less than that. A lot of routers run Linux on 2M eproms including user space.

[deleted]

Re: IncludeOS: C++ unikernel now free and open source

#14
post #7

Earlier quoted context omitted.

I'm pretty sure you can find MIPS Linux images with Busybox et. all. that weigh less than that. A lot of routers run Linux on 2M eproms including user space.

I have a port of Alan Cox's Fuzix for the MSP430 where the entire bootable ROM image is 27kB. (That's actually quite big for a tiny-computer OS, although it's the smallest Unix I know of.)

For those who don't know who Alan Cox is, he was the Linux 2.2 branch maintainer, is still heavily involved in Linux, and also does lots of other neat shit.

Re: IncludeOS: C++ unikernel now free and open source

#15
post #9

Earlier quoted context omitted.

> unikernels should preferably be written in memory safe languages like Rust There is a rust project. How is that relevant to this?

When using a unikernel design there is no isolation between a single node software components like an OS can provide. All the code share the same memory space. Isolation can be useful. For example the Postfix email server (running on a Unix, not unikernel) is decomposed into several processes with different privileges. That allows running the most sensitive parts with limited access rights, to protect against attacks…

> That allows running the most sensitive parts with limited access rights, to protect against attacks, while still running those parts on the same server for efficiency. This process isolation is typically not provided with unikernels.

Unikernels also don't have notions of access rights. To make that model work, more than memory safety, you need declarative ways of asserting constraints, which... C++ arguably can pull off pretty well.

> A unikernel based on C or C++ will have no process isolation, and no language level isolation either.

C++ has lots of support for language level isolation. Yes, due to C compatibility, if you diddle with memory you can find ways to violate those contracts, but it is entirely possible, particularly in a unikernel context, to prove that you aren't doing that.

> That's doable, but adds complexity to the orchestration and possibly some overhead.

That'd add way more complexity and likely bugs to the code than just keeping the codebase clean.

Re: IncludeOS: C++ unikernel now free and open source

#16
post #7

Earlier quoted context omitted.

I'm pretty sure you can find MIPS Linux images with Busybox et. all. that weigh less than that. A lot of routers run Linux on 2M eproms including user space.

I have a port of Alan Cox's Fuzix for the MSP430 where the entire bootable ROM image is 27kB. (That's actually quite big for a tiny-computer OS, although it's the smallest Unix I know of.)

I seem to recall the QNX kernel is pretty slim as well.

Re: IncludeOS: C++ unikernel now free and open source

#18

> A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 693K when optimized for size. 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.

It still needs a 'real' OS (e.g. Linux) running as the Hypervisor. 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.

Not strictly, no. While currently they only support the "hardware" in KVM/QEMU/VirtualBox, there's nothing stopping anyone implementing drivers for whatever hardware they want to run on, even bare metal.

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.

Re: IncludeOS: C++ unikernel now free and open source

#19

> A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 693K when optimized for size. 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.

It still needs a 'real' OS (e.g. Linux) running as the Hypervisor. 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.

> It still needs a 'real' OS (e.g. Linux) running as the Hypervisor.

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.

Re: IncludeOS: C++ unikernel now free and open source

#20

Earlier quoted context omitted.

It still needs a 'real' OS (e.g. Linux) running as the Hypervisor. 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.

Not strictly, no. While currently they only support the "hardware" in KVM/QEMU/VirtualBox, there's nothing stopping anyone implementing drivers for whatever hardware they want to run on, even bare metal. 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…

> I'm particularly intrigued by the idea of implementing drivers for AWS EC2, so you can run this as your AMI.

Yup. Kind of like a skimpy version of OSv.

Post reply on HN