Phil Payne Wrote:
> > > The story goes that Andrew Tannenbaum (Comp Sci professor and
> > > creator of MINIX,  which few can dispute was an inspiration for Linux)
> > > criticized Linux as  "out of date",  being monolithic.
> >
> > See
> > http://www.oreilly.com/catalog/opensources/book/appa.html
> > Enjoyable reading!
>
> "Most older operating systems are monolithic, that is, the whole
> operating system is a single a.out file that runs in 'kernel mode.'
> This binary contains the process management, memory management,
> file system and the rest. Examples of such systems are UNIX, MS-DOS,
> VMS, MVS, OS/360, MULTICS, and many more."
>
> I can't comment on his other qualifications, but I find 'monolithic'
> to be a very poor characterisation of MVS at all levels.  If you
> take Supervisor State to be equivalent to "kernel mode" then he's
> way off base - very little of MVS runs that way.  Key 0 may be a
> better approximation, but even that isn't so much.  People have
> been mixing'n'matching bits of MVS releases, VSAM, DFSMS, JES for
> years.
>
> True, you don't have quite the same flexibility that you inevitably
> get with a open source system, but nevertheless ...

        My understanding of microKernel architectures may be a little
        wimpy;  My experience was through fighting through QNX.

        The following is a barely-informed opinion and is in no way
        to be considered authoritative:

        In a microKernel architecture, the only *true* kernel item
        is the scheduler.  Everything else is a module that runs as
        if it's a "user process";  Your device drivers are, in effect,
        userland processes (albeit potentially multithreaded).  Each
        component communicates to other components via messages
        rather than the "syscall" (SVC etc) mechanism.

        One advantage (AFAIK) is that it's easier to identify and
        isolate the layers of the servicing system.

        The downside (I learned this almost 10 years ago) is that if
        it's proprietary *and* a microkernel, if a component doesn't
        work right there's no way around it.  Customers tend to build
        systems that aren't easily predicted by the vendor, so the
        interactions may get pathological.

        So part of it is a matter of how fine-grained the scheduler
        work and how far apart each component of the system is.  It'd
        be like having VM run one VM instance providing disk services
        (or instance per controller, instance per drive), another set
        of instances to handle the tape system, more instances to deal
        with communications (one instance per layer, for instance) and
        they'd ALL communication via either VCTC or IUCV.  The only
        job for the hypervisor is to manage scheduling and memory
        management.  No hypervisor services, just message passing.

        So the scheduler has to be pretty fscking quick consider how
        many context switches are needed to get any kind of work done.

        So MVS *is* monolithic;  The "fragments" of OS services are
        not fine-grained enough despite the modularity of the system.
        Linux is also,  as is *BSD.  GNU's HURD is based upon the
        Mach microKernel.  AIX is modular but "monolithic".

--
 John R. Campbell           Speaker to Machines                 [EMAIL PROTECTED]
 - As a SysAdmin, yes, I CAN read your e-mail, but I DON'T get that bored!
 "It is impossible for ANY man to learn about impotence the hard way."  - me
 "ZIF is not a desirable trait when selecting a spouse." - me

Reply via email to