implementing servers for a microkernel

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
User avatar
acccidiccc
Member
Member
Posts: 38
Joined: Sun Mar 21, 2021 1:09 pm
Location: current location

implementing servers for a microkernel

Post by acccidiccc »

Hello, I have question: How does the Kernel call the servers in a micro-kernel? If i understand the Concept, they are not inside the kernel binary. Now how do they run in kernel-mode if they are not a kernel and how are they invoked? Thanks a lot in advance and sorry for my lack in knowledge!
iustitiae iniustos iudicat
User avatar
austanss
Member
Member
Posts: 377
Joined: Sun Oct 11, 2020 9:46 pm
Location: United States

Re: implementing servers for a microkernel

Post by austanss »

Running in "kernel mode" means running in ring 0. Any program can run in ring 0 if the kernel allows it to. A program does not need to be inside the kernel to run in "kernel mode".

Also, how the kernel interfaces with the servers is completely up to you. A design I would think of is one where servers must register with the kernel, and the kernel recognizes servers for their functions and redirects related operations to the servers.
Skylight: https://github.com/austanss/skylight

I make stupid mistakes and my vision is terrible. Not a good combination.

NOTE: Never respond to my posts with "it's too hard".
nexos
Member
Member
Posts: 1073
Joined: Tue Feb 18, 2020 3:29 pm
Libera.chat IRC: nexos

Re: implementing servers for a microkernel

Post by nexos »

In a microkernel, servers run in user mode to provide better security. As far as communication goes, the kernel could simply send a message to the servers. That is my plan (whenever I start coding it :) ).
"How did you do this?"
"It's very simple — you read the protocol and write the code." - Bill Joy
Projects: NexNix | libnex | nnpkg
User avatar
acccidiccc
Member
Member
Posts: 38
Joined: Sun Mar 21, 2021 1:09 pm
Location: current location

Re: implementing servers for a microkernel

Post by acccidiccc »

thanks for clearing my misconception about ring 0 and for your reply! :)
iustitiae iniustos iudicat
rdos
Member
Member
Posts: 3247
Joined: Wed Oct 01, 2008 1:55 pm

Re: implementing servers for a microkernel

Post by rdos »

I think a general message function is too slow and limited for a microkernel implementation, so I will build a custom interface for my user space file system servers.

It will build on a set of useful primitives, like a block object that can safely be shared in different address spaces without an advanced VMM implementation. I also communicate data through physical addresses rather than extensive use of memory mapping.
Post Reply