Personal computers have become much more reliable over the last 10 years or so, mostly due to the introduction of advanced operating systems with memory protection and hardware abstraction. The hardware itself has gotten better too; uncorrectable random errors are rare in PCs and extraordinarily rare in server-class systems.
These and other improvements have largely eliminated machine crashes. Blue-screen errors on Windows and kernel panics in Linux and Mac OS X still occur, but much more rarely.
Error-reporting services have become common, helping software developers figure out what went wrong. Most large developers now issue regular patches to fix newly discovered bugs, making systems more reliable between major releases.
All this progress is wonderful, of course, but our PCs still aren't reliable in the way that other consumer products are reliable. Machine crashes are still possible, and any bug can bring down an individual application.
Automobiles, for example, can fail in many ways, but they are still much more reliable than PCs. The risks associated with vehicle failures have been greatly reduced by decades of design refinements. Would you feel safe if PC technology controlled the steering and brakes in your car? Conversely, wouldn't you be more confident in your PC if you knew it was as reliable as your vehicle?
Can you rely on your system to display this 370-megapixel image?
(Credit: European Southern Observatory (ESO))PCs are also fragile in response to change. I know I'm always a little nervous the first time I install a new device driver or run a new application. Even without software changes, opening an unusually large image can induce some trepidation. Consider this 370-megapixel image of the Lagoon Nebula available from the European Southern Observatory Web site; how confident are you that all of your image-viewing programs would survive the attempt to open it?
And worst of all, PCs are fragile in response to attack. The kinds of problems that are sometimes created accidentally by software bugs are relatively easy to create on purpose.
Minimizing the frequency and consequences of these problems would require tremendous effort from everyone in the industry. Almost every bit of PC hardware and software would have to change. One part of the solution is an extension of the same techniques that make today's PCs more reliable than older models: more hardware-based isolation of one function from another.
The minimal isolation of today's systems is very convenient for software developers, making it easier to write code and achieve high levels of performance. More isolation means more complexity and more overhead, but it improves reliability.
Developers are taking the first steps in this direction already, for example, with the process isolation features of the Microsoft Internet Explorer 8 and Google Chrome browsers. But there's much more that can be done.
Another way to improve reliability is to verify that data and addresses are consistent in range and format with the original intent of the software developer before they are used by the program. Making these checks in software can help; the incidence of failures related to accidental and deliberate buffer-overflow conditions has been dramatically reduced in this way. There's plenty of room for new hardware to help in this process too.
There's also work to be done in making it easier to recover from failures, since true hardware failures are inevitable. This is another area where some high-end systems are way ahead of the PC. Fault-tolerant machine architectures have been around for a long time in the aerospace industry, for example.
Historically, fault tolerance has never been practical on the PC because PCs always had only one of each critical subsystem: one processor, one bank of memory, one display channel. Today, PC processors and graphics chips have multiple cores and multiple memory interfaces, creating the potential for redundant operation where it's most needed.
Recoverability also implies backups--not just of the contents of disk drives, but even of the live data in memory through checkpointing. And disk backups can be improved too, by making the backup process an integral part of all disk I/O. Modern file systems use journaling to increase reliability; this technique can be extended to allow recovering from errors long after they occur.
There will be a heavy price to be paid in complexity and performance for all of these techniques, but the currency for this payment is transistors, and Moore's Law gives us more of those in every new process generation. We need to consider how we want to allocate these transistors. Over time, I believe reliability should account for an increasing portion of them.
Google is developing an operating system of its own, based on the company's Chrome browser and intended primarily for use in low-cost Netbooks. Now I'll tell you why I think Google is doing it.
Like any other commercial enterprise, Google is trying to make money. No secret there. But Google doesn't make money the way other computer software companies do.
(Credit:
Google)
Microsoft, for example, makes money mostly by selling software (and a few hardware products) to computer users. There are two sides to this plan. Microsoft wants to make computers more valuable, so buyers will spend more of their income on computers; and it wants to increase the share it receives of that budget.
What makes Google unusual is that it wants a share of a different budget: the time people spend in front of their computers. Google makes money by displaying ads on a small part of the display while people view Internet content on the rest. Not all the time, of course, but the opportunity is there, and Google's multibillion-dollar revenue shows how well this strategy can work.
Turning the Chrome browser into the Chrome OS is technically straightforward, though of course it'll take a lot of work. A browser already has most of the key elements of any OS: application programming interfaces (APIs) to allow application software to display content and accept user input, store and retrieve data from mass storage, communicate over the Internet, and so on. Google will have to add a driver model and some other things that don't exist in a browser, but it can learn from how these things are done in existing operating systems, and possibly even borrow much of the code directly from Linux; there's no need to reinvent the wheel.
Existing operating systems such as Windows support a far wider variety of programming languages and provide far more services than Chrome OS will, but Chrome will probably be plenty good enough for Netbooks. (Personally, I don't think Netbooks are good for much, and many Netbook buyers seem to agree as shown by the huge volume of refurbished systems now available from remarketers like Woot.com.)
CNET News Poll
So, Google is after your time, not your money. It can try to get more of your time in the same ways Microsoft tries to get more of your money. Will the Chrome OS increase the time people spend in front of the computer? No, quite the opposite. There will inevitably be less to do on a Chrome OS computer than on a Mac or Windows machine. Buying a Chrome-based Netbook means giving up the chance to run most Windows games, Apple's iLife suite, and other popular software.
But for Google, the key is this: once you've got a Chrome system, Google's in charge of ALL the time you spend with it.
I don't think that's good enough, and it looks like Google feels the same way; the company intends to implement the whole Chrome OS environment within the Chrome browser so Linux, Mac and Windows users can also run Chrome applications. This plan is necessary, since Google can't very well hope to muscle aside the incumbents, but it means that Netbook buyers will have no reason to prefer a Chrome-based machine.
Or will they? Linux may be free, but Google can undercut that price if it's willing to cut OEMs in on its ad revenue. In this way, Google could bring to market a subsidized pricing model we usually associate only with 3G-equipped notebooks. Google won't have nearly as much money to throw around as the cell phone operators do--maybe just a few unpredictable dollars per month averaged across all Chrome OS users vs. the reliable $60/month subscription fees associated with 3G cards--but that could still add up. Even a $20 subsidy could amount to 10 percent of the sale price of a cheap Netbook, which could tip the balance in favor of Chrome.
Like I said, it seems to me that Netbooks aren't the ideal platform for this strategy. The Google model can't work as well on a small screen, since users will be reluctant to share what little space they have with Google's ads. But they'll work well enough, and Google has no realistic chance to place Chrome on mainstream notebook and desktop systems except in the same narrow markets where Linux sells today. (And not all of those; for example, Chrome has no shot at the engineering workstation market, where Linux is popular.)
So I'm sure we'll see some number of Chrome OS-based machines on the market in 2010, and then we'll see what happens. My guess is that Chrome will do about as well as Linux has done in the Netbook business: not well. A lot of people will try it, possibly enticed by those lightly subsidized prices and the usual interest in novel computing platforms (the information-technology equivalent of the Coolidge effect, which perhaps could be known as the Glaskowsky effect.)
And then most of those people will return those machines, or give them to their ungrateful children, or just toss them onto a shelf to gather dust, and they won't buy more of the same--at least not until Google spends a few more years building Chrome OS into a fully competitive product, which I'm sure it will do. Google's big enough, and it knows there's a business here. It just won't be ready to take full advantage of the opportunity just yet.
- prev
- 1
- next





