11 Jul 2001 konos   » (Observer)

<HTML> <HEAD> <TITLE>Universal Hardware Environment</TITLE> </HEAD>

<BODY> <H1>Universal Hardware Environment</H1> <HR>

The Universal Hardware Environment (UHE) is a proposal for a standard Virtual Machine specification that enables multiple Operating systems to work under almost any hardware system.

The grand goal of UHE is to enable computer system manufacturers to evolve superior designs free from the lack of standards and the burden of compatibility that currently cripples innovation.

For the Operating System Vendors, UHE also offers the freedom to focus on the User Interface and API's without the burden of pursuing (and failing) to provide support for every possible collection of third-party hardware available in the world.

<H2>The current problem with hardware</H2>

The current design of commercial computers places the Operating System in direct contact with the hardware devices. This leads to a situation where hardware designers are building systems to suit the individual foibles of OS's while at the same time OS vendors are attempting to accommodate an ever increasing diversity of hardware variances. This leads to a spiral of convergence on a lowest common denominator of compatibility between an OS and the hardware it can run on.

<H2>The Future problem</H2>

In a situation where the OS determines the hardware design it will recognise, hardware designers are encouraged to build an OS specific computer. At the same time OS makers are encouraged to build an OS that is limited to working with the most common hardware available at the time. One can see that in such a system, OS designers are focused on hardware issues, and hardware designers are focused

on Operating Systems. Each specialist is distracted from their true task and must compromise to reach a common ground within an area they may not be expert in.

There are two logical conclusions to such an arrangement, firstly an OS driven hardware specification that manufacturers must subscribe to, and secondly an OS that is constantly evolving and expanding to accommodate the constant influx of new hardware designs. One could argue that we have the seeds of these two extremes evidenced by MS-Windows and Linux. On the one hand we see hardware with 'Designed for Windows 95' proudly badged on it's substance, while Linux boasts 47,000 kernel supported device drivers. Neither should be seen as a good thing, rather both are admissions of an overall bad infrastructure design.

<H2>The solution</H2>

The obvious solution to the OS verses hardware conflict is the mediator, an intervening layer that provides a consistent interface to the OS regardless of the actual functioning of the hardware involved in performing tasks. This same mediator also presents to the hardware designer a consistent set of tasks that must be implemented to comply with the the middle layer.

The middle layer then becomes the focus of both the OS producer and the hardware designer, they both have a common ground to meet and a standard to comply with. With a sufficiently flexible and structured middle ground specification both software and hardware designer are free to innovate in their respective endeavors without the need to consider the foibles of the other. Hardware can be certified as complient to the UHE and so the hardware designer can be sure the device will work with any adherent OS, also an OS can be independantly verified to adhere to the UHE and so the OS writer knows all compliant hardware will work.

<H2>Can it be done?</H2>

Yes!

The concepts of UHE are neither new nor theoretical. The original IBM PC (circa 1981) was designed with a middle

layer between hardware devices and the Operating System(s), it was called BIOS. The BIOS design enabled any hardware

manufacturer to produce a device complete with a BIOS extension that ensured it would work with any compliant OS

loaded into the system. This standard interface approach was a large factor in the explosion of inerest and third

party hardware available for the fledgling PC. Many Operating systems were soon available that thanks to the uniform

interface of the BIOS could all operate regardless of the type of disk drive or video display the hardware was built

from. The hardware was free to evolve, from 8 1/2 inch 180KB floppy drives to 5 1/4 inch 1.2MB drives, from monochrome

displays to colour displays, Winchester fixed disks, through to SCSI and IDE/ATAPI multi megabyte hard disk drives.

All this advance could occure largely without any changes to the Operating system, and hardware could be updated

without reconfiguration of the software loaded onto any given computer.

The BIOS is now seen largely as a vestigial system, the appendix of current PC design, but the need for the middle layer role it once played remains. In the mainframe world the original IBM design remains to this day, and the benefits of this three tier approach are substantial. Modern mainframes can support multiple Operating Systems, can provide the virtual hardware environment of previous hardware and can be upgraded without throwing away the current software.

<H2>Implementing UHE</H2>

The biggest barrier to the adoption of standards in the computer industry is that companies are reluctant to participate until a substantial segment of the industry has already committed to following the standard. This is a classic chicken and egg dilemma that has thwarted may a good idea. UHE avoids this dilemma by putting the choice in the hands of the individual, that is to say that no grand agreement need be negotiated between powerful players in the industry for the system to get started. UHE attacks the problem of hardware dependence with two core systems;

  • Hardware Virtualisation
  • Virtual Driver access
The first system, Hardware Virtualisation, ensures that non- complient Operating Systems can run on a UHE system unaware that it is running on hardware that may be quite different to the limited set of hardware to which it was tailored.

The second system, Virtual Driver Access, allows UHE aware Operating Systems to enjoy greater performance by accessing Uniform Drivers through a standard and controlled interface. The UHE aware OS need not have it's own

drivers for any of the hardware systems, it need only know that it can access any device equipped with a Uniform

Driver through the UHE.

<H2>The effect of UHE on the computer industry</H2>

A system such as UHE signals profound changes in the way the industry operates and the delineation of responsibilities between hardware and software producers. Hardware manufacturers need no longer design and pitch their product squarely at the dominant OS of the day. And neither do they need to expend resources on developing and supporting multiple OS's. The hardware manufacturer need only focus on producing a superior hardware design that has an accompanying Uniform Driver. There can be true competition based on the merits of the product regardless of the manufacturers relationship with OS vendors.

At the same time there is a leveling effect on OS producers and true competition, as every OS can use any UHE compliant hardware. Even if the hardware manufacturer was unaware of the OS, or the OS did not exist when the hardware was designed, the OS can still make use of the UHE compliant device.

<H2>The effect of UHE on the computer user</H2>

The UHE environment gives back a huge amount of personal power and choice to the consumer of computer systems. The consumer may choose any hardware based solely on it's performance, support and cost, without the concern that drivers will not be available for their choice of operating system, or future releases of their favourite OS will discontinue support for the hardware. Computer Users are also freed to run multiple Operating Systems simultaneously or to change OS without having to discard their current hardware. Users may also upgrade and reconfigure their hardware without fear that the OS will crash or need complicated and expensive reconfiguration to function with the new hardware.

<H2>UHE and the future</H2>

The computing industry is a fast moving beast. Change is the only constant, and the rubbish tips are piled high with computer equipment that is outmoded or no longer supported by current software. There is also a less tangible rubbish tip piled high with computer applications that can no longer run on current hardware or are no longer supported by current OS versions. Many of these applications were quite capable of fulfilling the needs of their users but due to changes in the systems they once inhabited can no longer be used.

UHE guarantees the lifespan of useful applications in two ways, firstly by separating the OS from the hardware environment, the system will not cease to run due to hardware advances. Secondly the user has the freedom to run the application in it's native environment concurrently with later OS's.

<H2>The politics of the computer industry</H2>

Some forces within the computer industry have vested interests in maintaining the uncertainty of a disorganised industry and benefit from the status quo. These forces may resist any emerging standards that open the industry to competition and evolution beyond their control. At any given time in any given industry the incumbent big players will resist any shift in the industry toward a more open and inclusive environment. It is these same players that exert the biggest influence on where the industry can go and at what pace. Given this fact it is a wonder that any progress is made at all; but progress the industry does, and there always seems to be a multitude of small upstarts that will champion innovation toward a more democratic industry (until they too become the big incumbent resistors of change).

Despite the potential of powerful self interested parties to oppose the opening of the computer industry, there is a history of consumers voting with their wallets for more open and secure options in computing systems. Given the choice of an open and expandable system verses a largely locked system with a forced migration agenda, the consumer will invariably choose the former.

<HR> References:

OS and Platform independent Drivers

IBM Mainframe Virtual Machines

Operating systems designed for a virtual machine environment

PC compatible Virtual Machines

CPU and instruction set emulation hardware

</BODY> </HTML>

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!