4 ms·
I wouldn't really call OSv a unikernel. The main distinction is that in unikernel operating systems, the application IS the kernel. The OS is not an emulation l
by michaelmior 12y ago
I wouldn't really call OSv a unikernel. The main distinction is that in unikernel operating systems, the application IS the kernel. The OS is not an emulation layer, but the application itself. Application code is linked directly with the kernel to produce an operating system whose purpose is to execute a single application. One example is Mirage[0].
The big difference is that while OSv may be targeting the same use case, it's still more similar to a general purpose OS. Some of the kernel APIs it provides seem to be blurring the line though.
[0] http://openmirage.org/ http://openmirage.org/
- bcg1 12y agoFair enough, I agree your definition of a unikernel and OSv isn't that exactly.
- Quequau 12y agoI'm kind of infatuated with the unikernel / libraryOS concepts. I think they're really on to something, especially when you consider how many systems are devoted purely to a single configuration and set of processes for large periods of time. Some time ago, I listened to a talk given by one of the OpenMirage devs where he described substantial memory & complexity reductions and subsequent efficiency gains they were able to achieve compared to a comparable existing Unix System. Moreover, after thinking about this for a while (and having a lot of experience working on embedded systems) I'm fairly confident there are still more opportunities for optimisation by removing ubiquitous but now actually unneeded layers of abstraction.
- penberg 12y agoOSv is not a general purpose OS although it does support a subset of the Linux ABI for compatibility. Both application and OSv share the same address space and application code is linked directly to the kernel at start-up (there's an embedded ELF linker). The design is wildly different from MirageOS but I don't really see why you would not call it an unikernel.
- michaelmior 12y agoIt seems like I didn't call it a unikernel because I misunderstood the design. The design you described sounds like a unikernel to me.