Planet Hypervisor

Why open hardware must succeed

To the average person open hardware simply sounds like a good idea... They may have heard of this thing called "open source" that some "disruptive" hipster companies may have used and embraced to create new business models, so open source hardware seems like a natural progression. There's more to this though. The average person will not understand why its not just a great idea but also that we are in dire need for open hardware in the industry, the average person will not understand why its vital to the success of the open source movement. The average person will not...

XSAVE bug discovered for Skylake cpu

At first, serial console put us behind the schedule. As it was very unusual problem due to malfunctioned serial cable. And now some another bug has cost us some very precious time. The anomaly started while I was trying to boot Xen on my system, I found Xen stuck in an infinite loop of the […]

Xen and the x86 Linux zero page

This is part II, for part I - refer to "Avoiding dead code: pv_ops is not the silver bullet".On x86 Linux the boot sequence is rather complicated, so much so that it has its own dedicated boot protocol. This is documented upstream on Documentation/x86/boot.txt. The protocol tends to evolve as the x86 architecture evolves, in order to compensate for new features or extensions which could we need to learn about at boot time. Of interest to this post is the "zero page". The first step when loading a Linux kernel is to load the "zero page", this consists of a...

Avoiding dead code: pv_ops is not the silver bullet

This is part I - for part II - see "Xen and the Linux x86 zero page""Code that should not run should never run"The fact that code that should not run should never run seems like something stupid and obvious but it turns out that its actually easier said than done on very large software projects, particularly on the Linux kernel. One term for this is "dead code". The amount of dead code on Linux has increased over the years due to the desire by Linux distributions to want a single Linux kernel binary to work on different run time environments....

Linux asynchronous probe - let's try this again

Updated on 2016-01-19 with description on issue of how systemd limits the number of devices on a Linux system and references to asynchronous work on memory. Edits reflected in this color.Hipster and trendy init systems want to boot really fast. As of v4.2 the Linux kernel now sports asynchronous probe support (this fix posted December 19, 2015 is needed for use of the generic async_probe module parameter). This isn't the first time such type of work has been attempted on Linux though, this lwn article claims that a long time ago some folks tried to enable asynchronous probe and that ultimately...

Run Mirage Unikernels on KVM/QEMU with Solo5

I'm excited to announce the release of Solo5! Solo5 is essentially a kernel library that bootstraps the hardware and forms a base (similar to Mini-OS) from which unikernels can be built. It runs on fully virtualized x86 hardware (e.g., KVM/QEMU), using virtio device interfaces. Importantly, Solo5 is integrated (to some extent) with the MirageOS toolstack, so the Solo5 version of the Mirage toolstack can build Mirage unikernels that run directly on KVM/QEMU instead of Xen. As such, Solo5 can be considered an alternative to Mini-OS in the Mirage stack. Try it out today! In the rest of this post, I'll give a bit of motivation about why I think the lowest...

MirageOS hack retreat

The first MirageOS hack retreat will take place in Marrakech, Morocco, from 11th till 16th March 2016. It is open for everybody. The main goal is to get together people motivated to contribute to MirageOS. Find more details on the hack retreat website. Edit: discuss this post on devel.unikernel.org

Introducing Charrua — a DHCP implementation

Almost every network needs to support DHCP (Dynamic Host Configuration Protocol), that is, a way for clients to request network parameters from the environment. Common parameters are an IP address, a network mask, a default gateway and so on. DHCP can be seen as a critical security component, since it deals usually with unauthenticated/unknown peers, therefore it is of special interest to run a server as a self-contained MirageOS unikernel. Charrua is a DHCP implementation written in OCaml and it started off as an excuse to learn more about the language. While in development it got picked up on the MirageOS mailing lists and became one of the Pioneer Projects. The name Charrua is...

Setting Devlopment Environment for Xen on Ubuntu

Development environment setup for Xen Project sounded easy to me. But it proved to be a worthy task of a standalone article. So, now I will be guiding you through the process of installing Xen Project software from source code. This article was written targeting the Xen Project 4.7-unstable on Ubuntu 15.10 (4.2.0-19-generic), but majority of […]

Unikernel.org

Unikernels are specialised single address space machine images that are constructed by using library operating systems. With MirageOS, we've taken a clean-slate approach to unikernels with a focus on safety. This involved writing protocol libraries from the ground up and it also afforded the ability to use clean, modern APIs. Other unikernel implementations have made trade-offs different to those made by MirageOS. Some excel at handling legacy applications by making the most of existing OS codebases rather than building clean-slate implementations. Some target a wide array of possible environments, or environments complementary to those supported by MirageOS currently. All of these implementations ultimately help developers construct unikernels that match their specific...