microkernel functions
microkernel functions
Can anyone tell me, what particular things microkernel must do, and what things done by external processes? What services must kernel provide?
-
- Member
- Posts: 1600
- Joined: Wed Oct 18, 2006 11:59 am
- Location: Vienna/Austria
- Contact:
Re:microkernel functions
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.
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
BlueillusionOS iso image
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:microkernel functions
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.
What is usually left to external servers is *virtual* memory management, like swapping, copy-on-write, on-demand loading, etc.
Re:microkernel functions
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
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