Factors Governing Future Operating Systems
We believe that nine major hardware platforms will require
operating systems in the next decade. In this report, we will examine the basic factors
that govern the future of operating systems. The following technical factors will
differentiate operating systems: kernel architecture, functional stability and
compatibility, operational stability and support, interoperability and scalability and
application software. With a new crop of operating systems arriving in the next two years,
we recommend that a multi operating system strategy be considered.
A number of factors are converging in the development and use of operating systems. The
emergence of the Internet, with the Java operating environment and the reemergence of
UNIX-like systems such as Linux is prompting users to rethink their operating system
strategies.
Although the two examples mentioned above have been available for over five years in
one or more forms, they have recently increased explosively. Java is one of the most
common languages used on the Internet. Linux, according to IDG is expected to exhibit an
annual growth rate of 25% per year until 2003. Compare this to a 12% growth rate for other
operating systems.
The introduction of the IA-64 (Merced) architecture may level the playing field at the
server level: the platform for which it is targeted. This new platform, the first CISC
processor developed by Intel that has a different instruction set. The first operating
system to achieve stability on this platform may define the operating system of the
future.
As new devices emerge, a plethora of operating system is continuing to emerge. Today we
have the following operating systems
- Mainframe
- Network, server
- Desktop
- Notebook
- Handheld,
- Embedded, real-time
- Smart card
- Virtual machine
While some hardware platforms dominate today, it is likely that the leadership will
change in the next five years. Others, such as set-top boxes will become important in the
future. With this mix of devices, their associated hardware architectures,
interconnectivity and operating systems the situation will become more, rather than less
confused in five years time. If the results of DARPAs Oxygen project at MIT moves to
fruition and finds its way into commercial computing, the face of operating systems in
1999 will be moot by 2010.
In this report, we will examine the basic factors that govern the future of operating
systems. One thing is certain: as we move between computing generations, the operating
systems changed. As we look toward the next generation it is possible to identify factors
that should govern dominant future operating systems.
Technical
While each of the above platforms and associated operating continues to grow, no new
technologies have emerged in commercial operating systems throughout the last decades. The
increased in processing performance of Intel bases PCs has made them as powerful as
midrange and mainframes of 1985. We would have expected server operating systems to have
the capabilities of those found on workstations or the above platforms that period. They
have not. Multi threaded, multi tasking operating systems which were available since the
mid 1960s, have only become available on non Unix systems in the past five years.
In the past ten years, operating systems technology has seen the move to modularity.
This modular design centers on the core of the operating system: the kernel. The kernel
functions to control processes, handles memory management, and manages software and
hardware communications.
It need not be large; the micro kernel of the QNX operating system, an embedded
real-time operating system, occupies about 7K bytes of memory. In this micro kernel
architecture, the kernel interfaces directly with the processor, using message passing
with the remainder of the operating system. This results in a well controlled
environment..
Monolithic kernels include basic functions within the kernel. Because an application
interacts directly with the kernel for some processes, it has better performance.
Why is kernel important? The kernel determines the scalability of the operating system.
A micro kernel can scale down to smaller devices, with the overhead of increased time
required for the message passing. The monolithic kernel while being faster may be
difficult to scale to smaller hardware platforms.
Micro kernel operating systems are used for most embedded operating systems. The best
known micro kernel is Carnegie Mellon Universitys Mach kernel. Macro kernels are
found on most mainframes and on the Linux operating system. Some operating systems such as
Windows NT balance these two kernel types by creating a hybrid.
A second issue is the distributed nature of the operating system. Today, all commercial
operating systems are isolated operating systems. Each hardware platform has its own
complete operating system. A powerful direction operating systems research and design
design is the distributed operating system,. Multiple hardware platforms share the same
operating system but looks as if it were one computer. Now, the power of all computers on
the network have been harnessed together. While this can be can simulated, a true
distributed operating system must be designed from the ground up. The Chorus kernel
developed in France) or the kernel within the Apollo Domain operating system with their
distributed capabilities enables this capability. The closest technology available today
on non Unix PC environments is DCOM in Windows NT5.0. Applications can be distributed over
multiple machines on a LAN.
Functional
Stability and Compatibility
A number of issues contribute to a stable operating system. Users perceive the
operating system as an unavoidable obstacle when using a computer they would rather
focus on the application. As an operating system is developed, it must be compatible with
the previous operating system provided by the vendor. While this was the case for
mainframe, midrange and workstation operating systems, it has not been the case within the
PC environment. Applications operating perfectly well on one operating system may be
incompatible for the systems next version or the operating system that supercedes
it.
To obtain the benefits of the new operating system may require rewriting a major
application. Or, it might require acquiring a new software program. We are not talking
about taking advantage of new operating system capabilities; we are talking about the
simple fact that the older software will not operate correctly. For user organizations a
cost analysis of the "better" operating system may not be worth the cost of
re-development. It is cheaper to use the older, unsupported operating system than change.
Different operating system vendors have different philosophies about backward
compatibility. With the expected investment in a new operating system, one goal to be
expected from the vendor is a high level of compatibility.
Operational
Stability and Support
The operational stability of the operating system is critical for all platforms. When
more than one person relies on the computer, a system "crash" and the re-booting
of the machine can result in lost productivity, time and information. For a
transaction-processing environment, high reliability is critical. While some
"crashes" result from hardware failures, most occur from operating system
failures. For mission critical applications, a highly reliable operating system is
necessary, irrespective of its performance.
A significant element that contributes to stability from the operating system
perspective is support. Support in this context only refers to the corrective actions
taken to fix an error caused by the operating system. With the exception of open source
operating systems, the vendor is the primary support organization. The vendor, in a timely
fashion, must provide "fixes" and "work arounds" to the problems
experienced by a user organization. In the case of open source operating systems, support
is different. With the source code available, the user can immediately make corrections to
the code, then recompile and use the revised operating system. Or, the bug reported to a
distributor of the operating system, who will submit it to a systems programmer to fix.
Both approaches are equally valid if they work well.
Interoperability
and Scalability
One prediction is certain: there will be more than one operating system in wide-spread
use through the next decade. No single operating system can fulfill the needs of the
platforms identified above. Therefore, it will be necessary to examine the
interoperability between different operating systems or between multiple versions of the
same system.
In principle, all systems and applications can transfer information from one platform
to another, irrespective of the operating systems on each platform. Today, this
interoperability is limited to this simple file transfer, not file systems.
Consider Microsofts series of operating systems: Windows 98, Windows NT and
Windows CE. Each has a file system is different from the others. It might be said that
each contains the operating system applicable to the platform. Yet, information of which a
single image is required or desired may be difficult to implement.
For example, consider a person who has both a desktop and a handheld computer. The same
PIM runs on each platform and is designed for that platform. The database, the data which
the user accesses should be the same. The simplest solution would be to have only one
database on the handheld device. The handheld can be plugged into the desktop and
all changes made to the single database. The desktop unit is updated when the handheld is
inserted or withdrawn into a docking station. How does it operate under todays
operating systems? The handheld unit must be plugged into a serial port on the computer.
Then the files synchronized.
Scalability is one solution for the interoperability problem. Using the same operating
system between hardware platforms provides the consistency within the data structures up
and down the line of platforms.
But, that is only one aspect of scalability. As the workload on a critical segment of
an application increases, it may be necessary to employ a larger server or one that is
tailored to the application. Scalability also means that the same operating system is
available on the new platform.
Scalability is nonexistent on the smallest levels, possible on medium to large systems
and nonexistent on the most powerful systems. Even so, most operating systems only operate
on two to three hardware platforms, limiting the choice of users.
Interoperability and scalability complement one another. If the operating system is not
scalable, it means that at the very least, the program must be recompiled to run on the
new operating system. If interoperability exists, the data can still be accessed in it
original form.
Application Software
In the final analysis, the availability of applications running on an operating system
will largely determines its dominance. Historically, the dominance of an operating system
has been a self-fulfilling prophecy. Either, it is the only operating system running on a
platform (as with Apple Computer) or it is the one with the most applications. As more
people use the applications that are based upon an operating system, the more it is used.
As the number of users of the operating system increase, the more it becomes the one of
choice for software developers. Consequently, new software is written for the operating
system and not its competition.
This was the case for DOS, Windows 3.x and Windows NT. By careful planning, control of
the development environments Microsoft achieved early dominance in the operating systems
it wished to release. The ability to guarantee programs that would be available for the
next operating system rapidly increased their penetration.
Two factors emerge as reasons why a new operating system becomes more widely used. The
first is when critical, desirable applications run on a new operating system, as is the
case for Internet systems and Linux. Or, when a new hardware platform arises, such as the
3Com palm Pilot with its operating system.
Action Items
If we examine the current operating systems, clearly Windows 98 and Windows NT have the
market for the business server and desktop market. With about 50% of Internet sites using
Linux based software, it may have a future. At the small end (handheld, embedded and smart
card) there is no clear leader. In future reports we will examine some of the contenders.
Users If you have a suite of programs that use an existing operating system,
dont change. Consider alternative operating systems if their characteristics meet
the needs of a special application.
Vendors Consider all operating systems upon which your application could run.
Use good programming design to isolate those sections of code that are operating system
independent. It can be done. In the 1960s a scientific program consisting of 250,000
FORTRAN statements required changing only 25 statements in order for it to operate on all
the major mainframes available at the time. Consider the impact to your application of
another operating system emerging in your application space.
Entire contents (C) 1999 by Integrated Business Information Systems Ltd..
(IBIS, www.ibisl.com) All rights reserved. Reproduction of this publication in any form
without prior written permission is forbidden. The information contained herein has been
obtained from sources believed to be reliable. IBIS disclaims all warranties as to the
accuracy, completeness or adequacy of such information. IBIS shall have no liability for
errors, omissions or inadequacies in the information contained herein or for
interpretations thereof. The reader assumes sole responsibility for the selection of these
materials to achieve its intended results. The opinions expressed herein are subject to
change without notice. |