A couple of weeks ago, a discussion started on a LinkedIn group: Is IBM i an “operating system” or an “operating environment?” In the course of that discussion, people pointed to IBM sites which use both terms when describing IBM i. I posted a lengthy reply, but since LinkedIn is not followed by everyone who reads this blog, I thought I would get some reuse out of the opinion I posted there. So, in slightly edited form, here is “Steve’s Reply” to the question:
Q: “Is IBM i an ‘Operating System’ or an ‘Operating Environment?’”
A: IBM i is both.
The name of the thing we’re talking about is “IBM i Operating System” and it is called “IBM i” for short. So, if we’re going to talk about what something “is” then we certainly have to admit that it’s an “operating system” because that’s what its name is. (By the way, the “OS” in OS/400 and i5/OS both stood for “operating system.”)
Now, let’s get to the meat of the issue. Is there a difference? What’s the difference? And what is IBM i? (Please realize that there are seldom firm definitions when it comes to technical “jargon,” so I am stating my own versions of definitions, based on years of experience and a certain level of expertise in the field. Take it for what it is.)
Operating System: This term is generally intended to mean a piece of “software + firmware” which has intimate knowledge of, and control over, the hardware beneath it. The “operating system” implements certain primitives, which it exposes to software above it (typically called middleware and applications.) In my experience, as operating systems grew up, they all tended toward a similar minimal set of functions, which they would provide over the top of the hardware. The function might merely be a layer between the “application” and the hardware, or it may virtualize that hardware, or both.
That common set includes things like:
- managing output
- inter-process messaging
- a runtime environment to provide primitives to other software, and into which a compiler could place software
- a file system
- and so on
An operating system has more attributes than this (an architecture, an inherent security model, etc.) but for this discussion, I think we have what we need.
By this definition, IBM i is clearly an operating system. So is Windows. So is any UNIX. But WebSphere Application Server is not.
Operating Environment: This term typically describes the combination of an architectural framework for running applications with a set of “middleware” functions, which are a step or two more generalized than “mere” hardware implementation and/or virtualization. An operating environment provides – for example – a specific set of interfaces into a database, a Web environment, etc. – which are clearly not merely abstractions of hardware, but are software constructs that require a system beneath them, but don’t have direct hardware implementations.
WebSphere Application Server and the associated Java Virtual Machine, then, can be considered an Operating Environment.
But so can IBM i. Since IBM i provides so much “middleware” as part of itself, and since the existence of that middleware often affects the way in which software in the environment is written – or at the very least how it behaves – it is more than merely an operating system. It is also an operating environment.
A typical pure UNIX is not. This is not a criticism. UNIX was not meant to be this. UNIX even allows users to get closer to the hardware than IBM i does, so in some sense it is a “thinner” operating system. You can even replace pieces of UNIX with software written outside the operating system (device drivers, for example), which IBM i does not allow you to do. But UNIX does not provide a standard environment such as the DB2 and Web server and certificate management and directory server and so on, which are in IBM i.
One conclusion here is this: XXX can be an operating system without being an operating environment (as I define it) and YYY can be an operating environment without being an operating system. I claim IBM i is both.
Personally, when I write about IBM i, I tend to use the phrase that best suits the point I am trying to make. In fact, I have heard Ian Jarman say that, “IBM i is not an operating system. It’s a database.” Now, that is not how I would always characterize IBM i, but sometimes you need to make a point to people who are comparing it to something that is “just” an operating system. And the architecturally integrated database is certainly a differentiator.
So feel free to use both terms when you describe IBM i. When IBMers write about IBM i, they might be using the phrase that best suits the point they want to make, or they might just be trying to keep things interesting. As long as you know what gives your IBM i operating system much more value than others, you know what you need to know.
Twitter: #ibmi, @Steve_Will_IBMi
I quite agree with Steve Will. IBM i is an Operating Environment and an Operating System, no doubt about that. In fact, when a user has the IP address of the IBM i, a user profile, a password and a dedicated browser, he can connect from anywhere. The user opens a session dynamically, which is a real virtual computer in order to share a database and programs with the other users dynamically connected at the same time. This virtual computer has an environment depending on the user-profile. I think that IBM i is an Operating Environment already “Anywhere” “Anytime” but not yet natively “Anydevice”, as you know. To be both an Operating System and an Operating Environment with the integration of the database is the condition of Cloud Computing for persistent business applications. Cloud Computing will become a real standard the day applications can be managed quite easily. For example, we have a lot of providers all over the world to host static pages 24/7 because it is easy to manage static web sites.
Posted by: Jean Mikhaleff | 03/15/2012 at 03:41 AM
Steve,
Good observations, but your use of the Web Server, WebSphere and the JAVA JVM are not good examples. The DB2 database is a good example since it is integrated with the OS.
While IBM may bundle WebSphere and the IBM i version of the Apache Web Server, they are still separate products.
What is really interesting is that IBM i does not really touch the hardware upon which it runs and depends on the virtualization software that now ships with all Power Systems and now includes support for AIX and LINUX as well as IBM i.
If in your focus on the term "operating environment" you focused on the scheduling and messaging and message handling, capabilities I'd by your argument.
I don't think I buy your argument about the Java JVM either as JVM's are bundled with ALL IBM operating systems and most other vendor's OS's... For others like Windows, MAC, a base JVM is pre-installed and updated directly from Oracle's web sites (actually and advantage over IBM i).
BTW, I'm surprised you didn't include scheduling and messaging in your list of OS attributes. These are some of IBM i's finest attributes.
Posted by: Bob Cancilla | 03/21/2012 at 12:20 PM
Bob, Thanks for your comments.
When I said "WebSphere Application Server and the associated Java Virtual Machine, then, can be considered an Operating Environment" I specifically did NOT say "on IBM i" because that collection of things form AN Operating Environment -- no matter how they are packaged or on what underlying operating system they are placed. That collection of things, however, is not an Operating System. I am trying to say that Operating Environments (as I define them) can be created separately from operating systems.
And whether IBM i "really touches" the hardware -- well, let's not argue technicalities. The POWER processor has instruction sets which enable the memory and storage architecture of IBM i (for example.) Only IBM i uses them (AIX and Linux on Power do not) so, for all intents and purposes, IBM i "really" uses those capabilities of the processor directly. The fact that there is a virtualization layer (POWERVM) matters for some things, but does not matter for others.
In the end, our POWERVM & Hypervisor become the lowest levels of the "operating systems" on POWER.
And, though I clearly cannot list every typical Operating System function in my bulleted list, I agree scheduling is among those which I left off, and is something at which IBM i excels! I did, however, mention inter-process messaging, which takes many forms, and you're right again -- IBM i excels.
Posted by: Steve Will | 03/21/2012 at 12:39 PM
In that case, are Web Server, WebSphere and the JAVA JVM Wart pieces of Software?
Posted by: Jean Mikhaleff | 03/22/2012 at 12:45 PM
I'd like to add a few things that I like about the "operating environment":
- 5250 interface for system administration.
- user authentication and authorization.
- extensive menu navigation.
- remarkably extensive command interface with extensive prompting and help.
- ability to embed commands in CL programs which can be compiled, or run as interpreted streams.
- extensive system values.
- remarkable and extensive database integration (of course).
- support for multiple virtual machines, including Java, PHP, and PASE.
- integrated file system.
- integrated language environment.
- integrated host and application servers.
- extensive system API's with pretty good documentation for programmers.
- extensive work management capabilities.
- provisions for high availability.
- numerous options for inter-process communication, including sockets, message queues, data queues, user spaces, shared memory, and even the file system.
I like that the operating environment is consolidated on one server. Consider user authentication as a beginning point. Under distributed computing models, user authentication is handled by a separate "directory" server. It's such a critical function that you need two of them for high availability.
Actually, managing high availability under a distributed computing model is a lot more complex. It often leads to redundant and remote load balancers, directory servers, web / application servers, database servers, and possibly network storage servers; where each is managed separately.
Compare that to an IBM i environment which has more cohesive administration.
Posted by: Nathan M. Andelin | 03/27/2012 at 11:59 AM