Page 1 of 1

question regarding fs drivers

Posted: Sun May 09, 2021 8:02 am
by acccidiccc
hello, should i implement the fs drivers inside or outside of the kernel

Re: question regarding fs drivers

Posted: Sun May 09, 2021 8:40 am
by rdos
acccidiccc wrote:hello, should i implement the fs drivers inside or outside of the kernel
I used to have them as part of the kernel but I'm now redesigning them to run as servers in user-mode. The hardware drivers will still be in kernel though.

Re: question regarding fs drivers

Posted: Mon May 10, 2021 7:37 am
by acccidiccc
thanks for your reply! I have implemented them to run as kernel-space. this discussion will probably boil down to micro vs monolithic kernel.
i decided to use the probably more simple monlithic kernel model.

Re: question regarding fs drivers

Posted: Mon May 10, 2021 9:15 am
by rdos
acccidiccc wrote:thanks for your reply! I have implemented them to run as kernel-space. this discussion will probably boil down to micro vs monolithic kernel.
i decided to use the probably more simple monlithic kernel model.
Yes, but I only run the file systems as servers (microkernel), and the rest is still based on a monolithic kernel design. So, I don't think you need to place a kernel into a single category. :-)

Also, I don't implement a generic IPC protocol that servers can use (which is typically done in a microkernel), rather I have implemented a custom protocol for the FS only which is not that useful for moving other parts to a microkernel.

Actually, my primary objective for having the file systems as user processes is that they get more linear memory and don't have to compete for it with other file systems or other drivers. Every partition has 2GB private linear memory for storing FS data and every disc has another 1GB for buffers. I can also isolate filesystem data from the rest of the kernel, and I can use C++ for the FS implementations.

Re: question regarding fs drivers

Posted: Mon May 17, 2021 12:27 am
by Ethin
I mean, I'm considering making my kernel a microkernel but having most of the drivers in userspace. And having system calls to read and write PCI memory in particular. Though I could probably get away with mapping devices into driver memory spaces upon their request, come to think of it.