Programming with Reason
Programming with Reason
The Obsolete Operating System
Tuesday, September 11, 2007
(Note: This article is a reprint from one that was originally published on Dr. Dobbs’ Portal)
An operating system is a necessary component of a computer system. Certainly, there is a need for a piece of system-level software to control all aspects of the hardware, including input (keyboard, mouse, game-devices, and so on) and output (video, audio, printers, and so on). However, are today's modern operating systems--Windows and Linux, for example--the finest examples of that class of software? I'm not talking about quality or security, but rather about the cost/value proposition. In this article, I propose that the modern definition of a computer operating system is obsolete.
What if there were an alternative to purchasing and running an operating system on your computer? The baseline cost of a computer system would most likely decrease, along with the total cost of ownership (TCO), as there would be no OS to purchase, maintain, or upgrade. Imagine multiplying that savings across all of your company's computers. Although you might think that this is just a pipe-dream, it may not be that far off. You simply need to shift your thinking away from the notion that an operating system is a piece of software that runs on just one computer. Instead, think of it as a virtual system of globally shared system resources that you connect to using the Internet.
What Is Ajax?
Modern browsers make their HTML content available to embedded script code through an object hierarchy called the Document Object Model (DOM). A page's script can modify its HTML by manipulating parts of the DOM. By including islands of XML data within the HTML, a page's script can show or hide portions of the page and its data based on user actions. This technology is known as Dynamic HTML (DHTML). To avoid embedding potentially large amounts of XML data within a single page, Microsoft added the XMLHttpRequest object to its browser, Internet Explorer. This object can be used to dynamically make an HTTP request to the server, receive XML as the response, and use that XML to update portions of the currently displayed page.
Although the individual techniques and capabilities have been around for some time, the use of HTML, XML, JavaScript, and the XMLHttpRequest object to form a dynamic Web-based application has more recently become known as Ajax. The name defines the design pattern commonly used to create dynamic Web pages, and has helped to define a common model that many browsers now support, such as Mozilla Firefox, Microsoft Internet Explorer, Opera, Konqueror, and Apple Safari. And although Ajax is really an acronym (which stands for Asynchronous JavaScript and XML), it is usually written as a proper noun.
The Internet Operating System
I propose that the only piece of software most people need to run on their computer is a Web browser--the same one you use today, whether it's Internet Explorer, Firefox, Apple Safari, and so on, adapted to run right on the hardware itself. Admittedly, a browser alone does not constitute a usable computer system. What remains is the need for a suite of Ajax Web applications that transform the browser into an Internet-based desktop system, with applications and utilities that you're used to running on your desktop computer today.
It's quite possible to build a Web page with icon-like graphics, draggable windows, drop-down menus, and an interactive taskbar, thanks to Ajax and broadband technologies. You can even add Ajax-enabled applications to this Web page, such as a word processor (http://www.writely.com), spreadsheet (http://numsum.com), calculator, email (see http://mail.google.com), picture viewer (http://www.flickr.com), search engine (http://www.google.com/webhp?complete=1&hl=en), calendar (http://www.kiko.com) and so on. As a matter of fact, check out http://www.protopage.com for one early example of a simple Ajax-based desktop. This site illustrates that it's possible to create window-like panels that can be dragged and resized; all using Ajax technologies (see Figure 1 below). You can see by this list that most of these Ajax applications exist today--they simply need to be aggregated onto one Web page to make the "virtual OS" a reality.
Figure 1: Ajax-based desktop.
With this proposed Internet virtual-OS, all application data can be saved in the Web-site's data centers, thereby eliminating the need for a local hard-drive. That equates to even more savings. I know what you're probably thinking--you're not comfortable with your data being held in a data-center. Are you worried about your data being lost? It's a fact that most people don't back up their computers at all, ever, never mind on a regular basis. Check out the alarming data loss and backup-related statistics at http://www.bostoncomputing.net/consultation/databackup/statistics. Responsible Web hosts provide continual data backup services, usually storing those backups at multiple offsite storage facilities. This translates into far more protection than most people get when their data is local.
Are you afraid that your data may be stolen? In reality, your data is orders of magnitude safer in a hosting facility's data center as compared to sitting on your computer's hard drive at home. Most people keep their computer in a convenient place, such as the kitchen, living room, or den. This is not only convenient to users, but also to thieves who can easily steal a desktop computer, never mind a notebook computer, from your home. A corporate environment with full-time security guards is still no match for even the honest employee who e-mails a confidential document to offsite co-workers via the Internet, or who burns a CD to take some work home for the weekend. Let's not even talk about how vulnerable a company is to dishonest employees. You only need to read about the latest incidents of leaked information at Sun (http://blogs.sun.com/roller/page/jonathan?entry=a_simple_request_to_sun), and the leaked Windows source code at Microsoft (http://www.microsoft.com/presspass/press/2004/Feb04/02-12windowssource.mspx) to see the danger.
End-users and corporations would greatly benefit from the centralized data storage that the Internet virtual-OS offers. Imagine the following:
- No more lost data; everything is backed up at the data-center.
- No more crashed hard-drives (since you don't need them).
- Document-level security is enforced at the data-center.
- No more upgrade cycles as there is no OS to upgrade, and all software is server (Ajax) based. Your data, computing environment, and desktop (even customized) are accessible equally anywhere there is an Internet connection.
Conclusion
With wide-area wireless access being rolled out in cities across the nation (which will most likely be free one day soon), you will have access to your computer desktop, applications, and data, anywhere, with any computer--at home, at work, on the train, in the car, even on an airplane. Your data will be more accessible and more secure, and the computers you use to access it all will be cheaper and more reliable than they are today. Eliminating the operating system and hard drive from computers will greatly reduce the purchase price and the cost of ownership.
Of course, this environment may not be ideal for everyone, such as software developers, musicians, or graphic artists. But for most people, even in the corporate world, the Internet virtual-OS, accessed wirelessly via a computer with no hard-drive (and its associated problems and costs), and no operating system (and its associated costs, headaches, and upgrade cycles) is the ideal environment to simply get things done. Simple is better.