On Monday 21 January 2002 23:14, Timothy Covell wrote: > On Sunday 20 January 2002 22:14, Manuel Jesus Petit de Gabriel wrote: > > > I know what he was saying. > > > Is it now necessary to see the source to be able to argue if or not a > > > design decision is the right one ? That's a new one to me. > > > > It's not necessary but helps a lot. Also most of those arguments against > > BONE were not very sound. The only good one was the unstabilities in > > the early versions... but it was usually accompained with rants about > > how BONE was breaking the microkernel design of BeOS... and those > > ranting about really did not know what they were talking about, since > > BeOS is not a microkernel. > > > > > > manuel, > > > > > Mark > > Perhaps you could explain why the preBONE kernel was not > a microkernel? Certainly it is much closer to the microkernel > side than the monolithic side. AFAIK, the kernel in R5 contains: > > o Memory Manager > o Messaging Infrastructure > o CPU recogintion but not MTRR > o VFS > o Entry points/glue for drivers and add-ons > > > Also, by using the "bus manager" concept, it is certainly even > more slim that it would be otherwise. > > > > That much said, I really like Kurt Skauen's reply about AtheOS: > > Q: What kind of architecture is the kernel built on? Monolitic, > micro-kernel, nano-kernel? > > A: I often ask myself that question to :) The kernel is very modular and > the it have a well defined interface between the kernel and it's > device-drivers and file-systems. So given that each component communicate > through a thin well defined interface, and don't know much else about each > other, it ressembles a micro-kernel. I am not sure if this is the right > term though, since all kernel-components lives in kernel-space and is not > protected from each other, this is all properties from a monolitic-kernel. > I am a bit confused :) OK, here's a definition that I found on the internet: The fundamental attribute that distinguishes monolithic vs. microkernel vs. exokernel architectures is what the architecture implements in kernel space (that which runs in supervisor mode on the cpu) vs. what the architecture implements in user space (that which runs in non-supervisor mode on the cpu). So, technically, BeOS is not a microkernel per this definition. However, I'm not convinced yet that the term microkernel was this well defined from the start. From what I can tell, it would appear that originally a microkernel was "minimalized" kernel, but little distinction was made concerning where it lived (I suppose only the Carnegie Mellon Univ. folks could settle that question.) Further confusion arises from the term monolithic, which litterally means "one stone". Kernels like Linux were originally built as one image. BeOS, on the other hand, is very modular. The move to modular kernels make Linux and Solaris appear to be smaller, but they very much retain their monolithic heritage. Indeed it's only in Linux 2.5 development that discussion is being made concerning the driving of the stake through the continued ability to compile single-image kernels. A final confusing aspect is that BeOS has both kernel-mode and user-mode drivers and servers, so BeOS blurs the lines. It very much looks microkernel, but the default drivers are loaded into kernel space. Like Kurt Skauen says, it is easy to get confused when talking about this stuff. -- timothy.covell@xxxxxxxxxxxx