Page 1 of 1
ExoKernels on x86
Posted: Mon Aug 22, 2022 12:24 pm
by Maqstcharub
Hello im an amateur OSdev who already worked on a simple Monolothic Kernel. Since i started learning Kernel Design Theory i was fascinated by ExoKernels. So i was asking how could i implement my own Exo in x86?
Should I switch to ring3 for applications?
Where do i implement the Memory Manager the common Drivers and the other Kernel services? Is it all done by libOs?
Thanks in advance.
Re: ExoKernels on x86
Posted: Wed Sep 14, 2022 8:17 pm
by Octocontrabass
Maqstcharub wrote:So i was asking how could i implement my own Exo in x86?
Not too different from how you implement any other kernel, just with fewer abstractions. Instead of filesystems, you have block devices. Instead of a network stack, you have packet devices.
Maqstcharub wrote:Should I switch to ring3 for applications?
Probably, yes. The kernel's job is to multiplex hardware, so running applications in ring 3 ensures that applications can only access things they have permission to access. (Of course, if they can access DMA-capable hardware, they may be able to bypass some of the protection ring 3 offers...)
Maqstcharub wrote:Where do i implement the Memory Manager the common Drivers and the other Kernel services?
Wherever you like. Put those all in the kernel and you'll have a monolithic exokernel. Put those all in userspace and you'll have a micro-exokernel.