microkernel functions

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
be

microkernel functions

Post by be »

Can anyone tell me, what particular things microkernel must do, and what things done by external processes? What services must kernel provide?
distantvoices
Member
Member
Posts: 1600
Joined: Wed Oct 18, 2006 11:59 am
Location: Vienna/Austria
Contact:

Re:microkernel functions

Post by distantvoices »

according to tanenbaums operating systems design and implementation II:

kernel has the following tasks:

scheduling&taskswitching
message passing&IPC
interrupt&exception handling
hardware abstraction
external tasks:

memory management
file systems
device drivers (which ashould usually run in kernel adress space)

if i miss some thing, pls tell.
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:microkernel functions

Post by Pype.Clicker »

in my own vision of the microkernel (but it's now a long time i haven't gone through OS-theory books), the *physical* memory management was left to the microkernel as well (after all, the microkernel has to load server processes, how could it achieve that if it couldn't allocate memory ?)

What is usually left to external servers is *virtual* memory management, like swapping, copy-on-write, on-demand loading, etc.
joe_steeve

Re:microkernel functions

Post by joe_steeve »

Well,
the micro kernel need not really do physical memory management. It can very well be done be a priveleged process outside the kernel. These initial processes which are needed to get the kernel running can be loaded up by the boot-loader. and the proc table entries for these processes can be filled up at compile time itself.. so the first process to run wont be the legendary 'init' but can be the essential processes such as memory manager, file manager and stuff like that. The 'init' can be the parent process for every other user process.
I use this strategy in my OS, the Pro-OS. The MM, VFS run as threads, i.e. they share their memory spaces with the main kernel. but are actually different processes with different slots in the proc-table and they are treated as seperate processes with a higher level of priority.
Well.. i dont know whether i'm deviating from the basic rules of a micro-kernel.. but this is what i've done.. and i really want to know whether its ok..

Joe
Post Reply