Earlier quoted context omitted.
Is it correct to think of it as application code running as PID 1 in kernel space? Can I fork or create threads? Can I directly access kernel's internal APIs like a kernel module?
> Is it correct to think of it as application code running as PID 1 in kernel space? getpid exists and returns a number - in fact it can return any number you like :-) Everything is linked into a single vmlinux which runs in a single address space. (As an aside I'll have to remember to ask Ali if he's thought about what number getpid() should return in UKL - I guess returning 1 would cause least surprise) > Can I for…
Unikernels: The Next Stage of Linux’s Dominance (2019)
51–60 of 187 posts
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#52My gut instinct is always that using traditional kernels in a unikernel way is a bit suboptimal because it doesn’t become a “library operating system” in the same way that Mirage does.
Stripping down traditional kernels to work as unikernels is not a new thing: https://github.com/rumpkernel/rumprun
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#53Demo with virtio-gpu support: https://twitter.com/eliasnaur/status/1249765031299952646
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#54By domains, do they mean that as "actually in use in certain sectors in the industry" or "a prototype has shown that"?
> causing some to propose that the days of Linux's dominance may be coming to an end
Who exactly would make that claim?
So, besides performance: what actual, real-life problems does this solve? I think there is some overlap with containers, and at this point, replacing them will require something a lot better.
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#55I'm one of the authors on this paper, so ask away if you have questions.
On the face of it, multiprocess support might seem a bit stupid, but it would greatly help the porting of more complex applications. The 'processes' wouldn't need virtual address space or memory protection, just give them a block of memory and pick a CPU to run the code.
If you have multithreading, do you need any scheduling code, or can you just pick a CPU for each thread and leave them to run? What about the kernel's own threads & processes?
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#56Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#57I'm one of the authors on this paper, so ask away if you have questions.
[0] https://www.nccgroup.trust/globalassets/our-research/us/whit... , from https://news.ycombinator.com/item?id=19738905
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#58Earlier quoted context omitted.
If you statically link your software with the kernel, presumably an optimizing compiler will be able to remove most of the kernel from the resulting binary.
Yes. Also LTO becomes possible.
There's a long, detailed PDF about LTO produced by GCC which was useful in helping me to understand exactly how this works here: https://gcc.gnu.org/projects/lto/lto.pdf
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#59I'm one of the authors on this paper, so ask away if you have questions.
Re: Unikernels: The Next Stage of Linux’s Dominance (2019)
#60I'm one of the authors on this paper, so ask away if you have questions.
What do you make of the highly critical Assessing Unikernel Security paper [0]? Have things changed since its publication? [0] https://www.nccgroup.trust/globalassets/our-research/us/whit... , from https://news.ycombinator.com/item?id=19738905
Edit: Thanks for the updated link. UKL can be compiled with usual hardening features like ASLR, stack hardening, RELRO.
As I said here (https://news.ycombinator.com/item?id=23202042) I'm dubious about the security story around unikernels, but most of the issues in this paper are not relevant to UKL specifically.