Linked by Thom Holwerda on Wed 29th Sep 2010 19:07 UTC, submitted by poundsmack
Permalink for comment 443258
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/22/13 22:23 UTC
Linked by Thom Holwerda on 05/22/13 13:38 UTC
Linked by Thom Holwerda on 05/22/13 13:30 UTC, submitted by JRepin
Linked by Thom Holwerda on 05/21/13 22:06 UTC
Linked by Thom Holwerda on 05/21/13 21:45 UTC
Linked by Thom Holwerda on 05/21/13 15:53 UTC
Linked by Thom Holwerda on 05/20/13 22:43 UTC
Linked by Thom Holwerda on 05/20/13 21:50 UTC
Linked by Thom Holwerda on 05/19/13 23:15 UTC
Linked by Thom Holwerda on 05/19/13 23:11 UTC, submitted by Drumhellar
More News »
Sponsored Links



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.