Re: AS/400 and DB2 vs. Unix and Oracle

From: Michael Brutman <brutman_at_bruteforce.rchland.ibm.com>
Date: 1996/01/24
Message-ID: <4e60n6$1b72_at_locutus.rchland.ibm.com>#1/1


In article <4e4dcj$7qm_at_lehi.kuentos.guam.net>, crobato_at_kuentos.guam.net writes:
|> In <4e3ac8$117a_at_locutus.rchland.ibm.com>, brutman_at_bruteforce.rchland.ibm.com (Michael Brutman) writes:
|> >Correction - v3r6 (RISC) is not using a microkernel. When I think hear
|> >the word microkernel, I think of something like Mach which provides the
|> >bare minimum and relies on higher layers to define & present the
|> >operating system. AS/400s might use a microkernel some day, but our
|> >current implementations do not.
|>
|> In all due respect, since you work for IBM, I should take your word from it.
|>
|> But I did thought that I read that OS/400 r3.6 uses the microkernel from IBM's
|> own web pages on the AS/400 (http://www.as400.ibm.com). Maybe I should
|> check again.
|>
|> On the OS/400 structure, it appears to me that much of what OS/400 appears
|> to be for the user and the programs are very high level, while the Machine
|> Interface or MI seems to provide only rudimentary hardware functions, much like
|> a kernel does. I can be wrong, just stating an opinion.
|>
|> As for being object oriented, everything OO seems to imply that you have
|> a prexisting supply of base classes of objects. New objects are then created
|> from these base classes, using inheritance. But isn't that how users,
|> printers, display terminals and other stuff, created and configured inside
|> OS/400? Such as creating a new printer configuration from *PRT class, etc?
|> Or the way every object created by the user inherits that user's security class,
|> even for just a simple file?
|>
|> Rgds,
|>
|> Chris

Don't take my word for it because I work at IBM. Take my word because I work at IBM on this "beneath the MI" stuff for the RISC AS/400s. ;-)

I think what we are getting caught on is the definition of kernel and microkernel. And then there is the definition & purpose of the MI boundary ..

A typical microkernel, is, well micro-sized. That is why I think of Mach when I think of a microkernel.

All of the stuff that implements the MI interface is *far* larger than a microkernel. Calling it a "kernel" is more accurate, but still a loose usage. We push more down into this kernel than most systems will ever see with every optional package installed. (Ok, that might be slightly exagerated - but think about it. SNA, TCP/IP, Database, object-level security, etc. are all built in. Much of it is directly supported by the kernel beneath the MI layer.)

And then there is the definition of MI and what it provides. I like to think of the MI as an API for accessing this kernel, not as "the hardware boundary" as some of the marketing types would have it. MI has no resemblence to PowerPC instructions; it is pretty far removed from the hardware. It gives you access to communications, database, the filesystem, system management, etc. I guess it just depends on what you call rudimentary - as an operating systems programer that's all high level stuff!

Onto objects ..

Don't confuse inheritance with instantiating an object. When you define a user, a printer or a tube you are instantiating an existing object with some unique attribute data. In most cases, you have not created a new class using inheritance - you have only created another instance of a pre-existing class.

If *you* the user woke up one day and said, "What if I could combine a printer with a user profile?" (or something along those lines ..) and the operating system let you create a new class to do that from the pre-existing classes, then yes, that is inheritance. But AS/400s don't let users do that. (At least not yet.)

Please feel free to respond to me directly via email.

Mike

-- 
Michael B. Brutman
brutman_at_vnet.ibm.com
Standard Disclaimer: Not speaking for IBM
Received on Wed Jan 24 1996 - 00:00:00 CET

Original text of this message