Page 1 of 2

Microkernel? Monolithic? Exokernel?...

Posted: Sun Aug 31, 2008 4:07 am
by inflater
As you may know, there exist some types of kernels, e.g. micro, exo, nano, hybrid, monolithic, etc and I think this poll will clarify what type is most used. Your turn! :)

Mine is hybrid monolithic, basic drivers (fdd, video, etc) are in the kernel itself, the kernel incorporates a shell in one file and until now, there is no way of loading custom drivers. Also, the "spiral" demo is a physical module compiled separately, but hardcoded (raw-writed) to the kernel binary. Everything, even user programs, runs in ring 0 but I think that programs will run in ring3 (just like winNT kernel does).

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sun Aug 31, 2008 5:27 am
by itisiuk
I had been writing a monolithic kernel but got bored with it and i am now writing a microkernel
which is what i wanted todo in the 1st place but didnt know how until recently.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sun Aug 31, 2008 5:41 am
by RevivalDBM
My kernel is a hybrid, a few basic drivers are within the kernel, the rest are in userland.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sun Aug 31, 2008 6:23 am
by souradipm
My kernel is currently monolithic, and everything runs in kernel-mode (ring 0), but once I have finished implementing multitasking, i will be able to move them into ring 3 :)
But for now, it will stay monolithic.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sun Aug 31, 2008 11:09 am
by 01000101
Mine is fully monolithic. Just one big happy binary. I'll soon start coding some modularity into it though.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sun Aug 31, 2008 12:00 pm
by salil_bhagurkar
Give my kernel a name!! I got only kernel mode. I am not planning for any user mode. The application interface basically exists as a virtual machine which interprets a defined data structure (not opcodes :)) that is in the application binary... And i have threads in the kernel mode too...

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sat Sep 06, 2008 1:50 am
by cyr1x
Hmm, I'm creating a Kernel in (my) a typesafe language (somewhat C++ & C#-ish, compiler is far from complete). Something like Singularity but I wouldn't call it a microkernel, more a hybrid monolith.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sat Sep 06, 2008 1:11 pm
by Troy Martin
Right now I'm working on a pmode monolithic kernel. Sadly it always triplefaults during boot.

OT: If anyone has some spare time, I'd like to find out what the problem is. It compiles with no errors, and it is found perfectly, but it dies when it loads.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sat Sep 06, 2008 1:44 pm
by bewing
Mine is a hybrid modular macro-micro-nano-kernel. It is foolish to try to squeeze your code into a pre-defined box.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Wed Sep 10, 2008 2:43 pm
by jgraef
Hi,

I'm developing a microkernel. I don't really have reasons except that I like the concept of microkernels: Do everything as easy (not "easy", "abstracted" would describe it better) as possible. I think that also fits in the UNIX philosophy and therefore my microkernel is an UNIX clone. I hope I finish version 0.1 of it soon, so I can show something to you :)

Re: Microkernel? Monolithic? Exokernel?...

Posted: Mon Sep 15, 2008 5:59 pm
by Karatorian
I had a bit of a tough time deciding whether to pick Nanokenel or Exokernel. The reason for this, as pointed out by the MIT exokernel team, is that the idea of an exokernel is orthogonal to the macro vs micro (or nano) architechture. I decided to go with Exo.

My kernel is a nanokernel because it's designed to be as small as possible and push as much of the system into userspace as absolutely possible. It's an exokernel because it does secure multiplexing, not abstraction. The MIT exokernels are rather different from this idea. They are monolithic exokernels. They manage all sorts of stuff, like network packets and disk blocks. My system doesn't do that (in kernel space).

The only thing my kernel does is manange the resources that must be handled in ring zero. On the PC, those are memory, io ports, and cpu time. Additionally, as an exokernel it only manages them, it doesn't abstract them.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Tue Sep 16, 2008 4:19 am
by Combuster
Ah, a fellow exokernel dev'ver :D
as pointed out by the MIT exokernel team, is that the idea of an exokernel is orthogonal to the macro vs micro (or nano) architechture
Agreed. An Exokernel is a paradigm applied to the interface, not the internal construction of the kernel itself. Hence you have monolithic exokernels, modular exokernels and exo-micro-kernels

Actually, I think there are three ortogononal parameters: The amount of stuff you put in a single binary (monolithic vs modular), the amount of stuff in userspace (mono vs micro) and the abstraction level of the user interface (exokernel vs the rest), which covers about every kernel.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Wed Sep 17, 2008 4:40 pm
by lhc
I have a pure microkernel.

I have found confusion in how to do some things because of that. But that lets me try a lot of different things to see what works best for me. Very easy to make the drivers too.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Wed Sep 17, 2008 10:16 pm
by neon
My (real) OS is a hybrid between microkernel and monolithic. My series' OS will be a microkernel design.

Re: Microkernel? Monolithic? Exokernel?...

Posted: Sun Sep 21, 2008 5:05 pm
by JJeronimo
A like the idea of microkernels. However, I'm still a starter, and such people must stick with the easier at first, unless they are heroes. :-P

Also, until recently, I did not understand completely the idea of microkernels. For example, I didn't understand how would it be possible to move entire kernel subsystems (process manager and/or filesystem interface) to userspace. Moving drivers seemed obvious, but moving entire subsystems seemed weird.

JJ