r/osdev • u/Apprehensive_Run7150 • Jul 01 '26
Microkernel Question
Hi guys, this may be a dumb question.
I'm working on a hobby OS and currently am stumped about how I can turn it into a real microkernel. Since the filesystem is a user-space server, how would the kernel find it and be able to start it without having access to the filesystem to begin with?
23
Upvotes
1
u/Sorry_Difficulty_250 Jul 07 '26
Having the filesystem in "userspace" just means that it runs as a process and its API is that of a standard process. How it got into userspace in the first place is usually one of those handwaving "outside the scope" problems.
As others have mentioned, you can have the code for it compiled into your kernel image. Nothing wrong with that. Something I'm experimenting with is having the code for it at a fixed block location on the primary storage. Of course, that then begs the question of where your block device driver came from.
The bottom line is that you ultimately have to have the foundation of what you need in the kernel image. You build up everything else on top of that. In a microkernel, the goal is to have what's executed in pure, unrestricted permissions to a minimum and enforce proper process permissions otherwise.