3 ms·
I'll be a bit of a devil advocate here but both the choice of words and attitude are obscuring facts. First with a name like MirageOS and calling itself a unik
by pierrebai 6y ago
I'll be a bit of a devil advocate here but both the choice of words and attitude are obscuring facts.
First with a name like MirageOS and calling itself a unikernel, you'd think this was an OS. But this actually has no driver, no user-space, no file system. It receives boot parameters and communicates over TCP or UDP. Mmmm I'd call that a program that receives command-line parameters and communicates over the network. But "program" sounds a lot less exciting than "unikernel".
It does not even manage memory or processes or anything like that. It uses a thin C wrapper to load on virtual machines or . Just like you could with any program that does use any OS facilities.
It does not have process, praising cooperative multi-tasking over multi-threading or multi-processing. Cooperative multi-threading means every part of your system is dependent on every other part behaving correctly to yield the CPU at short interval. Mis-design any single algorithm in the system to be quadratic or worse and you can have long, unpredictable scheduling delays. Forget doing anything requiring real-time responses. Even semi-regular response times are not guaranteed under cooperation.
You could achieve the same goals with a statically linked program in any languages...
- eru 6y agoThe exciting thing is exactly that it lacks all those capabilities. Thus the attack surface is smaller. > You could achieve the same goals with a statically linked program in any languages... Typically statically linked programs still run under an operating system like Linux. (And Linux might run on top of a hypervisor.) Linux is a complicated beast, with lots of (undiscovered) vulnerabilities and bugs. MirageOS cuts out Linux. Basically, MirageOS treats the hypervisor as if it was an operating system. It's just an accident of history, that we call processes running on a hypervisor 'virtual machines', but fundamentally a hypervisor is just a special kind of OS.