Linked by Thom Holwerda on Wed 29th Sep 2010 19:07 UTC, submitted by poundsmack
QNX When Research In Motion unveiled its BlackBerry Playbook tablet on Monday, including the new QNX-based operating system it runs, I already speculated that it would probably make its way onto RIM's smartphones as well. RIM has now confirmed this suspicion.
Permalink for comment 443258
To read all comments associated with this story, please click here.
RE[8]: The triumph of UNIX
by flyingrobots on Thu 30th Sep 2010 15:06 UTC in reply to "RE[7]: The triumph of UNIX"
flyingrobots
Member since:
2010-09-30

I don't believe VxWorks is a microkernel. My understanding is that device drivers do not run as separate processes but as threads in the VxWork's kernel. Thus no memory protection is offered to critical system functions. VxWork's kernel comprises of a bunch of non-os related stuff (tcp/ip stack, device drivers, file systems, etc, etc). It can get quite bloated.

It takes some very smart and knowledgeable people to make a VxWorks system run reliably. A lot of kernel level debugging is required when implementing new device drivers or other services that need to reside in kernel space. Much care has to be taken to insure that it works well.

QNX's kernel on the other hand only implements the very basic OS needs. Scheduling, memory management, timers, inter-process communications, and thread/process management are in the kernel.

That's it.

Network protocols (packet filtering, firewall, and other TCP/IP related features), device drivers, file systems and other hardware related software services run in user land.

When new device drivers are implemented, normal application debugging can take place. You can start and stop device drivers at will and unless you do something that causes the hardware to fail or work incorrectly, the system remains responsive in the face of a device driver failure (segfault for example). Also when you newly minted device driver faults, you get a core dump. Load that core dump in your debugger, you get a stack trace as well as variable values at the time of the crash. It's nice.

VxWorks kernel can be small in size, but size doesn't make it a microkernel. QNX's kernel, by the way, is very compact and does not change size with different system configurations.

I think QNX still stands as the only well implemented microkernel.

Reply Parent Score: 2