10 Great Features in 10 Different OSes
If you were making the ultimate operating system, what features would you choose? Here's one take on the best of the best from Mac OS X, Ubuntu, Unix, iOS, Windows and more.
- By Terrence Dorsey
I've been fortunate to use a pretty wide range of OSes over the years -- some by choice, others by necessity. I'm no fanboy, but some of those systems left a better impression than others. Almost every OS, though, has something about it that's unique or revolutionary or just helps you get the work done and on to other things. And sometimes a feature of the OS just grabs your attention and forces you to dig further, understand how it works, and master all it can do.
Each OS has some nugget that we can enjoy, learn from and build on. So here, in no particular order, are 10 different features I love in 10 different OSes.
Mac OS X, Time Machine
Configuring backups has, traditionally, been one of the least fun things about computing. It's perhaps only slightly less frustrating than trying to recover your system from said backup. If you don't have too many files to back up, services like Dropbox, Sugarsync, and Windows Live Mesh work quite well. In fact, for several years I used Live Sync (formerly Foldershare, now called Live Mesh) to create real-time offsite backups of my most important files. But you can't back up and recover an entire system that way.
Apple introduced Time Machine backup software with Mac OS X 10.5 in 2007, and I have to say it's one of the more brilliant tools I've used. Time Machine is easy to configure and pretty much operates as a set-and-forget service. You can back up to a local drive connected via USB or Firewire or even to network storage via Ethernet or WiFi. As long as your backup volume is available, Time Machine creates hourly, daily and weekly incremental backups of your system.
When trouble strikes, you can go into the Time Machine and recover previous versions of individual files or even the entire system. It's not perfect, but so far I've been successful in all of my attempts at recovery with Time Machine. I've even used Time Machine backups to restore all of a user's files from an older, failing machine to a new one.
Unix, The Shell Terminal
The terminal was my first experience of computing...and by terminal I mean a teleprinter terminal: typewriter keys and a continuous roll of paper scrolling up line by line. The shell was also, for a long time, my portal to the Internet. Then there was MS-DOS...
Command line computing lives on, and is even making something of a comeback among users of graphical UI operating systems. Linux and Mac OS X still have their terminal fanboys. And of course you've got a selection of shells, from the original Bourne shell to bash, C, dash, Korn and Z, not to mention fish, psh, rc, scsh, wish and zoidberg.
Windows had its roots in the MS-DOS command line, and continues to this day with the "DOS box" command prompt, cmd.exe. There's Windows PowerShell if you want a more robust scripting environment in Windows, and Cygwin if you prefer something more in line with the traditional Unix terminal.
There's always tension between command-line and graphical interfaces, and for the last decade or more, GUIs have been the dominant face of most OSes. But as Max Steenbergen writes in his article "Commands Lines: Alive & Kicking" for UX Magazine, the command line is making a comeback via app launchers like Alfred, Launchy and GNOME Do. Even applications like Google Chrome and Wolfram|Alpha are blurring the line between textual search and command-line scripting.
Bringing the command line full-circle, a clever coder even built a personal Web site that hosts a command line in the browser window. Retro, or a step into the future?
Ubuntu, Simplified Linux Setup
Much of the Linux revolution has been powered by hackers of the first order. While getting a Linux system up and running isn't rocket science, it does take quite a bit of planning (is my hardware compatible?), knowledge (sudo what?) and time (I've got work to do...). Of course, once you figure those details out, you end up with a powerful, highly customizable and secure system that runs well even on modest hardware.
Over the years, increasingly easy access to configuration and installation information via the internet has helped Linux reach a broader audience . A large and growing list of high-quality, free, open-source software for Linux also contributes to its appeal. Still, the learning curve has been steep and the availability of over two hundred different Linux distros makes the choice of where to start difficult.
That is until the release of the Debian-derived Ubuntu in 2004. Ubuntu aims for easy installation and configuration, and that's been my experience so far. You can download a live CD ISO or a Windows installer to get going. It doesn't require much of a commitment if you just want to give Ubuntu a try. Burn the ISO to CD and boot from that, or install it in a virtual machine using VirtualBox, Virtual PC or VMWare Player.
The Ubuntu installation includes a lot of software, so you can start playing or working with right away: e-mail and chat apps, Firefox and Chrome browsers, media apps and OpenOffice, among many others. And of course, Linux offers a cornucopia of tools for the developer. The Ubuntu Software Center gives you one-click access to a huge library of apps, and updating your software is simple and automatic (and much less intrusive than Windows Update).
BeOS, 64-Bit Journaling File System
When Jean Louis Gasse left Apple, he founded a new team that created the charming and forward-looking BeOS in 1991. At the time, BeOS featured some pretty radical technology. Designed from the ground up as an efficient, lightweight multithreaded system with preemptive multitasking, it was very fast on modest hardware and scaled up to take advantage of any processors on the system (in those days, rarely more than two, but still...).
The file system included with BeOS, however, is one of its truly cool features. Called BFS (BeOS File System), it was a 64-bit journaling file system using file attributes, or metadata. The ability to query and sort against file metadata gave BFS some relational database-like quality similar to what we may finally see via WinFS in Windows 8. The 64-bit address space gave BFS the theoretical ability to support volumes of more than eight exobytes and files over 30 GB. This at a time when 30 GB hard drives were hardly commonplace.
Coupled with BeOS's performance-focused multithreaded core, BFS could provide high-performance streaming read, write and query access to storage with the ability to recover quickly after a failure. This made BeOS well-suited for audio and video manipulation, a task that it still accomplishes today in high-end media production systems.
There's a lot more to understand about the technical details of BFS. If you're curious to know more, take a look at Andrew Hudson's article at Ars Technica titled "The BeOS file system: an OS geek retrospective," along with a great interview with BFS creators Benoit Schillings and Dominic Giampaolo at The Register.
BeOS faded away as a commercial OS, but there's still a small, loyal group of enthusiasts keeping the flame burning. If you can find a BeOS 5 CD, it'll probably run on most commodity x86 hardware. Software is available from the BeBits repository. In addition, the Haiku project is an ongoing community effort to build a source-compatible open-source version of BeOS. They recently dropped an Alpha 2 release that's reasonably stable and runs most of the available legacy code.
IRIX, SGI Dogfight
Back in the early '90s, my employer struck a deal with Silicon Graphics to port our software to IRIX. I recall some Indy and Indigo boxes arriving at the office and a lot of oohing and ahhing among the staff. I don't recall whether we actually completed the ports -- probably not, given the state of things in the office. But as the eager young kid in the office I was given the exciting job of helping to set up the machines, which for the most part meant loading up applications from various tapes.
While waiting for the tapes to load up and spill their data, I did have a chance to explore the system. And one of the items I discovered hidden in the demos was a little gem called Dogfight. This little app was a 3D flight simulator that featured IP multicast-based multiplayer air combat over our humble little Ethernet network. Sure, it had frame rates and polygon counts you'd laugh at today, but at the time we'd never seen anything like it.
The first components of what would become the Dogfight demo were created by Gary Tarolli in the early '80s. OK, technically Dogfight wasn't an OS feature like some of the other items we've discussed here, but it was designed specifically to highlight the advanced (for the time) 3D rendering capabilities of SGI's systems. Building on his experience with IRIX and Dogfight, Tarolli went on to co-found 3dfx, which produced the Voodoo 3D graphics cards and Glide API -- used by some ground-breaking 3D PC games.
NeXTSTEP, Right-Click Context Menu
According to Wikipedia, the right-click "popup" menu technically originated in Xerox Alto's smalltalk environment. (We've all had a chance to play with one of those, right?) But the first time I experienced the right-click menu was when exploring NeXTSTEP on a friend's then-new NeXTstation. That makes some sense as there's an easily drawn line of inspiration from Alto to Macintosh to NeXT. While Mac OS did not embrace the right-click context menu until much later, it was an OS feature from the start in NeXTSTEP.
Of course, the context menu has become an intrinsic part of Windows, to the extent that it's possible to use right-clicking on pretty much anything in Windows or a Windows-based application as a discoverability tool. No need to look it up, just right-click and see what the options are. You could say the context menus provide useful task hints and shortcuts not unlike Tab command completion in a terminal or IDE.
That said, there are problems with the right-click context menu as currently implemented. First, the Windows context menu is getting rather unwieldy as it fills up with useful -- and esoteric -- options. Install a few applications that have shell integration and you can end up with a menu that contains nearly 20 items. On top of that, the APIs for shell integration make customizing the context menu difficult for anyone but programmers and superusers.
MS-DOS was undeniably the dominant desktop operating system throughout the '80s, and every one of those computers running MS-DOS included the Microsoft BASIC programming language in one form or another. In fact, the version of BASIC created by Paul Allen and Bill Gates predates even MS-DOS, originating as Altair BASIC in the '70s.
The BASIC language tools included in MS-DOS evolved over the years to include rudimentary Integrated Development Environment (IDE) features and a compiler for faster execution of programs. Microsoft BASIC, GW-BASIC, QuickBASIC and QBasic ultimately evolved into the Visual Basic language we know today, acquiring millions of enthusiasts along the way.
More recently, Microsoft DevLabs released an updated Windows interpretation of QBasic called Small Basic, which is intended to be used as a tool for teaching and experimentation.
What's significant about Microsoft BASIC is that it was shipped on tens of millions of computers -- in many cases, the first personal computers to make their way into offices and homes. It was the first opportunity to explore programming for a generation of computer users. Unless you worked in a technical occupation or studied computer science, your first exposure to programming most likely would have been through BASIC on MS-DOS. Hats off to Microsoft for democratizing the art of programming
Windows 3.0, Alt-Tab Task Switching
One of the great features of multitasking, windowed OSes is the ability to have multiple application windows open at once. Seems kind of obvious now, but it was a pretty radical step forward at the time. Of course, with multiple windows open, how do you switch apps? Well, you can click the window you want to bring forward, or maybe click the app icon in the taskbar. Both are fine methods if you don't mind mousing around a bit.
But if you're trying to be productive and have to do this task repeatedly, a keyboard shortcut is usually the answer. Enter Alt-Tab task switching.
If Wikipedia is to be believed, Alt-Tab task switching has always been a feature of Windows and was first introduced to the world in Windows 1.0. Pressing the Alt and Tab keys brings up a window that displays an icon for each open window present on the system (even if minimized). The currently active window is highlighted by default. Holding down the Alt key, you release and press the Tab key to move the highlight to the next window, thereby making it the active window and bringing it to the front.
The Aero feature of Windows Vista and Windows 7 takes task switching a step further with Windows Flip 3D. This is activated by pressing the Windows key and Tab and it shows the open windows in an orthogonal 3D view. Pretty, but of questionable utility.
Mac OS X and Unix/Linux desktop environments such as GNOME and KDE have embraced Alt-Tab task switching as well. On Mac OS, Command-Tab switches between running applications rather than open windows. On some other desktop environments, Alt-Tab simply iterates through the open windows, bringing each to the foreground as you hit Tab. I still prefer the Windows Alt-Tab implementation, but however you slice it, task-switching key combinations are a convenience that's hard to give up.
It's true that Apple did not invent touch computing. Far from it. In fact, workable touch computing systems -- albeit crude by current standards -- were produced by IBM and Control Data in the late 1960s and early 1970s. In the 1980s, Bell Labs and the University of Toronto's Input Research Group (including Bill Buxton, currently at Microsoft Research) independently built touch screens that could respond to multiple touches. Microsoft's Surface tabletop computing platform was introduced in 2001.
For an interesting walk through this history of touch computing, read through Bill Buxton's "Multi-Touch Systems that I Have Known and Loved" and other articles on his Web site.
The introduction of what we now know as iOS for the iPhone in 2007, however, represented the first chance for many of us to have a hands-on experience with multi-touch. Apple later opened up iOS and the Cocoa Touch APIs to developers to build their own touch-aware applications, and iOS is now featured on the iPhone, iPod Touch and iPad. Of course, Google and Microsoft were not (too far) behind with both Android and Windows Phone 7 featuring their own multi-touch interfaces.
The ability to scroll, slide, select, pinch, turn and expand items on screen with just a few fingers is mind blowing -- and highly intuitive. My not-quite-two year old child has already figured out how to turn on and unlock the iPad, start and close apps, look at photos, or page through a story. Time will tell how developers leverage these interface methods to usher in a new era of computing.
Windows 7, Start Menu and Taskbar
One thing you can count on is that each new version of Windows will be better than the last. Even Vista, for all its flaws, included a lot of good ideas that were riffed on and improved upon in Windows 7. The Start menu and taskbar represent the main interface through which you interact with Windows and your applications, and they've been subtly improved over the years to the extent that they've become very powerful, useful and customizable.
The Start menu and taskbar as we know them in Windows today debuted in Windows 95. With each new release of Windows, new features have been added: integrated search, pinned applications, recently used files and one-click access to often used folders and system configuration tools. Vista added the ability to type a string into the search box and get a list of files and applications matching that string. Windows 7 made that feature actually work properly (mostly through more efficient file indexing) and added per-application recently used file listings.
Windows 7 brought some other features that made the taskbar more useful. Among these is Aero Peek, which displays thumbnail views of open windows when you mouse over an app icon in the taskbar. And of course the shut down button and options have been happily simplified from Vista.
It's not perfect, of course. The Control Panel and Administrative Tools menus take far too long to render. Apps that you launch from the search box don't show up in the recently used applications list. Nor do frequently used control panels or admin tools. And I'd love it if you could access the Start menu by right-clicking anywhere on the desktop, BeOS-style. Still, it's one of the best task launchers so far and I appreciate the effort Microsoft makes to constantly improve this signature Windows feature.
There you have it. Ten cool things. Ten OSes. Did we leave something out that you love? Tell us about it in the comments.