Microkernel? Monolithic? Exokernel?...
Microkernel? Monolithic? Exokernel?...
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).
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).
My web site: http://inflater.wz.cz (Slovak)
Derrick operating system: http://derrick.xf.cz (Slovak and English )
Derrick operating system: http://derrick.xf.cz (Slovak and English )
Re: Microkernel? Monolithic? Exokernel?...
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.
which is what i wanted todo in the 1st place but didnt know how until recently.
-
- Member
- Posts: 34
- Joined: Sun Aug 03, 2008 5:38 am
Re: Microkernel? Monolithic? Exokernel?...
My kernel is a hybrid, a few basic drivers are within the kernel, the rest are in userland.
Re: Microkernel? Monolithic? Exokernel?...
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.
But for now, it will stay monolithic.
Re: Microkernel? Monolithic? Exokernel?...
Mine is fully monolithic. Just one big happy binary. I'll soon start coding some modularity into it though.
Website: https://joscor.com
- salil_bhagurkar
- Member
- Posts: 261
- Joined: Mon Feb 19, 2007 10:40 am
- Location: India
Re: Microkernel? Monolithic? Exokernel?...
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?...
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.
- Troy Martin
- Member
- Posts: 1686
- Joined: Fri Apr 18, 2008 4:40 pm
- Location: Langley, Vancouver, BC, Canada
- Contact:
Re: Microkernel? Monolithic? Exokernel?...
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.
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?...
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?...
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
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
- Karatorian
- Posts: 4
- Joined: Sat Sep 13, 2008 9:36 am
- Location: Rindge NH USA
- Contact:
Re: Microkernel? Monolithic? Exokernel?...
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.
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.
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: Microkernel? Monolithic? Exokernel?...
Ah, a fellow exokernel dev'ver
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.
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-kernelsas pointed out by the MIT exokernel team, is that the idea of an exokernel is orthogonal to the macro vs micro (or nano) architechture
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?...
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.
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?...
My (real) OS is a hybrid between microkernel and monolithic. My series' OS will be a microkernel design.
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
Re: Microkernel? Monolithic? Exokernel?...
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.
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
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