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.
ExoKernels on x86
-
- Member
- Posts: 5531
- Joined: Mon Mar 25, 2013 7:01 pm
Re: ExoKernels on 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:So i was asking how could i implement my own Exo in x86?
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:Should I switch to ring3 for applications?
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.Maqstcharub wrote:Where do i implement the Memory Manager the common Drivers and the other Kernel services?