|
|
|
|
|
by tscs37
3263 days ago
|
|
There is quite a difference. Ring 3 is userspace, you can't interact with hardware or the operating system or anything not in Ring 3 directly. Ring 0 is everything. There are no restrictions and nothing stops you from writing "Ahahah You didn't say the magic word!" over your entire memory until the CPU crashes. Having root on a linux kernel is heavily restricted compared to this and still runs in Ring 3 like all other userspace code. As root, you still have to run the kernel. As Ring 0, you can replace the kernel. Or run your own OS. |
|
In the case of a unikernel deployed on a hypervisor this is not the case, since there is not much else in ring 0 that you wouldn't already have access to from ring 3. Conceptually you can think of the hypervisor as "kernel space" and anything inside the unikernel as "userspace".
There are advantages to running the unikernel solely in ring 3 (eg. immutable page tables) however this is not a requirement for security.