Unicycle: bare-metal unikernel app framework with UEFI-based bootloader

Unicycle is a bare-metal OS, and bootloader is UEFI bootloader that runs the apps.

UEFI-based bootloader for Unicycle applications: UEFI bootloader that allows to load Unicycle application directly, without any support from operating system like Linux. This bootloader implements Uniboot protocol on top of UEFI specification. The bootloader supports booting from the same bootable device where bootloader.efi is located or loading from network using TFTP protocol.

https://github.com/libunicycle/bootloader

Unicycle – unikernel application framework: Most modern day operating systems use idea of separating applications from kernel. Kernel has access to underlying hardware and resources. If some application needs access to the hardware (like network or disk) then it asks kernel to perform the action. Such separation to kernel vs userspace became dominant in 60s when computers were expensive and need to be shared between large number of users. And it works well for majority of use-cases. Though performing a context switch between userspace and kernel to make an action is not free. Heavy-loaded applications that need to make a large number of input/output operations spend quite a lot of time switching back and forth. But what if the application code lived in the kernel address space and thus the context switch can be avoided altogther? What if the application itself will take responsibilities on managing hardware directly? That is the main idea behind unikernel applications. And Unicycle project is a framework to create such applications. […]

https://github.com/libunicycle/unicycle

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s