Return to BSD News archive
Newsgroups: comp.unix.bsd.freebsd.misc Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!news.sprintlink.net!howland.reston.ans.net!torn!nott!cunews!revcan!quantum!danh From: danh@qnx.com (Dan Hildebrand) Subject: Re: QNX as micro kernel Message-ID: <ygsb243t@qnx.com> Date: Tue, 01 Aug 95 01:10:39 GMT Organization: QNX Software Systems References: <3uktse$d9c@hal.nt.tuwien.ac.at> <id.FFYL1.RK3@nmti.com> <3v904k$dvg$1@haywire.dialix.com> <DCFw78.HHw@medar.com> Lines: 47 In article <DCFw78.HHw@medar.com>, Timothy W. Barney <tbarney@medar.com> wrote: >> >>peter@nmti.com (Peter da Silva) writes: >>>QNX? >>>OK, it's an icky commercial product instead of a lovely academic research >>>platform, but it's the closest to the ideal microkernel I've ever heard of. > >I have recently started using QNX at work. It truly is a micro Kernel, >with over 100,000 installed systems. The installed bass is significantly larger than this. :-) >Under QNX, you configre a kernel with what ever servers you want - >the scheduler and pager are required, but file services, serial lines, >what ever, can be configured into the kernel or started as daemons from >the bootup script. Or replaced by your own server. Actually, the process of building a kernel is nothing more than "lumping" a number of processes together so that once the OS is loaded into memory all those processes can begin execution without having to be loaded from mass storage first. If you know your system will have access to a network or local hard disk, you only need to lump enough processes into the boot image so that after boot loading enough OS is present to load the extra processes from disk or network to complete your OS. Whether a process is started from the boot image, or loaded and executed, it runs identically (in a separate, MMU-protected address space). A bootable OS tends to consist of a Process Manager (which implicitly includes the microkernel), a shared library and then either Net and a Network driver or Fsys and a disk driver. Everything else can be started by the bootup shell script. If the OS you are configuring is intended to execute or boot from ROM, then it needn't have any network or filesystem servers. >Anyways, it's a real micro kernel. One caveat, it's very insecure as an OS. I would argue that it is comparable to most UNIX systems in that it implements the UNIX/POSIX standard group and member numbers and access control, shadow password file, etc. Where QNX differs is that it treats the network as a single logical machine with any process transparently able to use any resource on any node as if it was local. As a result, super-user for the "machine" implies super-user for the network. Various "firewalls" can be erected to partition the network if necessary. -- Dan Hildebrand (danh@qnx.com) QNX Software Systems, Ltd. http://www.qnx.com/~danh 175 Terence Matthews phone: (613) 591-0931 (voice) Kanata, Ontario, Canada (613) 591-3579 (fax) K2M 1W8