The return of the monotasking OS?

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Post by Colonel Kernel »

Schol-R-LEA wrote:Still, they are described as such not only in the corporate press puffery, but in a number of textbooks and published papers as well... obviously, someone other than their respective marketing depts. feels that they fit the description.
Really? Do you know who exactly, so I can flame them? ;)
I suppose that the view in some places is that a system which offloads anything into user space is a micro, without regard to whether it is a general abstraction of the system
Yes, which is why IMO so many people get confused about what a microkernel is. Consider single-address space systems like Singularity... it is clearly a microkernel. It has OS services in separate processes, but there is no concept of "user mode" because it uses software isolation instead of hardware isolation. "User mode" is an implementation detail.
Part of the matter is the question of, what constitutes a critical kernel service, and what can be safely and efficiently abstracted out to user space?
IMO this question is orthogonal to the question of whether or not something is a microkernel.
Perhaps what is needed is a layering or spaces - that there be a kernel space, a user space, and a 'service space' which isn't part of the kernel but does have additional protections beyond those of user processes - but that probably complicates issues unnecessarily
Yep. Ever looked at the layering in Minix? It is most definitely unnecessarily complex...
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Post by Colonel Kernel »

MessiahAndrw wrote:What is the threshold before a kernel is considered a microkernel? Placing severs and drivers into their own threads? Placing servers and drivers into their own memory? Running servers and drivers in user mode?
I sort of hinted at an answer in my last post, but to make it more clear: IMO a system is a microkernel if it has all drivers and servers in separate "processes" communicating via IPC. How you implement "processes" is up to you. It could mean separate address spaces using paging, it could mean separate "small spaces" using segmentation, it could mean just a unit of parallelism with no protection whatsoever (like a thread, but with resource ownership and identity), it could mean a software-isolated process that only runs verified type-safe code... It could even be a combination of the above in a single system.

For example, the Process Manager in QNX runs as a separate process. It communicates with other processes via IPC and with the kernel via system calls. However, it also has access to the kernel's address space so it can manipulate the page tables, since it is the memory manager for the entire system. However, despite this sharing of address space QNX is still a microkernel.

I don't know a lot about Amiga OS, but I've heard that it was basically a microkernel with no memory protection. It used message passing and separated all parts of the system into "processes", but all in the same address space.

This debate is like whack-a-mole on this site... it never goes away... :lol:
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Post by Schol-R-LEA »

Colonel Kernel wrote:
Schol-R-LEA wrote:Still, they are described as such not only in the corporate press puffery, but in a number of textbooks and published papers as well... obviously, someone other than their respective marketing depts. feels that they fit the description.
Really? Do you know who exactly, so I can flame them? ;)
William Stallings for one, at least in the fourth edition of his book. I'd just been re-reading the section of his book on process/thread management and he stated repeatedly, in no uncertain terms, the Windows 2K (and presumably XP and Vista, which are primarily derived from it) is a microkernel system.
Crazed123
Member
Member
Posts: 248
Joined: Thu Oct 21, 2004 11:00 pm

Post by Crazed123 »

Who actually uses that book?
User avatar
AndrewAPrice
Member
Member
Posts: 2300
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Post by AndrewAPrice »

Apparently he does.
My OS is Perception.
Post Reply