The Google Cr-48 “Mario” Chrome OS Notebook
I was fortunate enough to receive one of the Google Cr-48 “Mario” Chrome OS notebooks to test. My day job is technical writer and sysadmin for Monty Program, the company behind MariaDB, so the two main questions I wanted to answer about this stripped-down operating system were:
Can I use it for my normal work tasks?
Chrome OS runs on top of a Linux kernel, but how much of the normal Linux experience do you get?
The notebook itself is well built and attractive, but not exceptional. The keyboard has a nice feel to it and a good layout, apart from the tiny up/down arrow keys. The battery life is excellent—easily the best I've experienced on a laptop.
Chrome OS itself is not surprising, at least if you're familiar with the Chrome Web browser. There are a few extra configuration options, like setting the trackpad sensitivity, and network settings. But, the amount of customization you can do is minimal. An example of this minimization is with user accounts—there aren't any, at least in the traditional sense. You actually are running as the “chronos” user, but you never log in as that user. Instead, you log in using your Google account credentials.
When you first sign in, Chrome OS looks to see if you are signed up with the Chrome browser synchronization service, and if so, it syncs all the items you have selected for syncing (bookmarks, extensions and so on). A couple minutes after booting Chrome OS the first time, my favorite Chrome extensions had been downloaded and installed automatically, and all of my bookmarks imported. I had to configure the extensions, but doing so didn't take much time.
My desktop Chrome environment was replicated with almost no effort on my part, so it was time to start looking under the covers to see what I could find. And, what I found was...not much. There's really nothing beyond the browser to Chrome OS. Okay, there's one thing. By default, the Cr-48 comes with crosh, the Chrome OS shell. You can access this shell with the Ctrl-Alt-t key combination.
Figure 4. Pressing Ctrl-Alt-? brings up a handy keyboard diagram showing what keys do what. Here I'm viewing the Ctrl key combinations.
Crosh is very limited, but that's by design. It's not meant as a full command-line interface. It allows you to run only certain, specific commands. You can get the list of commands with the help command. The full list, with instructions for each command, is only one screen of text. There's ping, SSH, a traceroute command, route, top, a couple commands for managing corporate SSL certificates, some networking diagnostic and logging commands, and that's it. A few were unfamiliar to me, but the output of the help command explains them in sufficient detail. My guess is the crosh console interface mainly exists to provide support techs or a help desk the ability to troubleshoot your Chrome OS device over the phone or in person.
The commands are not very useful for daily work. Even the one command I normally find very convenient, SSH, is not. It's not OpenSSH for one thing. It's more like a wrapper script for people who don't know how to use SSH and can't be bothered to take five minutes to learn it. For example, when using this crippled crosh SSH, you can't enter ssh me@example.com. Instead, you need to use ssh me example.com. There also is no way to use SSH keys. The funny thing is, OpenSSH is installed on Chrome OS, but to use it, you need to get into “developer” mode.
Switching to developer mode turns off the hardware verification system, which prevents the running of modified firmware. To get into developer mode, you remove the battery and slide a small switch hidden under a piece of tape. The reason for using a physical switch is because you can't prevent physical attacks anyway, so you might as well make running modified software require physical access—at least that way you shut down remote attacks (there's obviously no way to slide the physical switch remotely). Full instructions for the procedure, with photos, are found on www.chromium.org.
The first time you boot in to developer mode, the notebook resets itself to factory settings and displays a warning. In Chrome OS, this means you need to set up your network connection, and you need to download and install your extensions again. Apart from those two things, nothing else is stored on the notebook, so it's an easy procedure, especially because the extension part happens automatically in the background.
When in developer mode, the warning screen appears every time you boot. It's more of an annoyance than anything else. A simple Ctrl-d dismisses it and continues the boot process. The upside to the annoyance is that there is no possible way for you to not know your Chrome OS device is in developer mode.
Developer mode adds a new “shell” command to crosh. This command starts a bash shell—GNU bash, version 4.0.35(2)-release for those of you keeping score. But, just because you have a bash shell doesn't mean you have a complete command-line environment. For one thing, although some programs are installed, there's no vi/vim/ed/nano/pico or other command-line text editor present. So, Chrome OS has this strange command-line environment where you can use more to view the contents of a file; wc to count the number of characters, lines and words in the file; and even md5sum to generate a hash; but you can't actually edit the file. What were they thinking?
That's a rhetorical question. The answer is “the cloud”. In a clouded world, why enable editing files when there is no network connection? Why would you do that? My answer is because the cloud is not reliably available at all times everywhere, and because, gosh darn it, I like editing files locally in vim. I like it so much, I even use an extension in Chrome that allows me to use vim to edit text areas in Web forms (it comes in very handy for long Knowledgebase articles).
At my house, an Internet connection is almost a given, likewise around town (mostly). But when traveling, it's a crap-shoot. It depends on where I am (and sometimes when). The Verizon cell radio in the Cr-48 makes for decent coverage in the United States, but connecting in Europe and other areas of the world is via Wi-Fi or not at all. Most of the time, having a laptop that requires an Internet connection is okay, but sometimes it's not. For example, when using the Cr-48 on a plane, should I even bother turning it on? If the plane has Wi-Fi and there's something that justifies the cost, sure; otherwise, no. I might as well put it in my checked luggage.
The Cr-48 is, of course, just a prototype device. When several different Chrome OS devices are available commercially, you'll be able to choose the one that gives you the most reliable always-available connection for your area and travel habits. The reliance on an always-available Internet connection is an Achilles heel, but one that eventually will be fixed or minimized. The good news is that when I do have a connection, I actually am able to do most of my day-to-day work using nothing but a browser and SSH.
Being able to get by with nothing but a browser and terminal will, of course, not be true for everyone. I happen to spend my workday writing (blogs, wiki and Knowledgebase entries, e-mail and IRC for the most part), editing what others have written, and maintaining a small group of servers. A good text editor and SSH, therefore, are the two most important things to me, followed by good IRC and e-mail clients.
When I said before that no text editor was included, I was being only partially accurate. Google doesn't leave you completely high and dry. One of the Chrome OS “applications” installed by default is a simple rich text editor called Scratchpad. Scratchpad saves a copy of all text locally on the Cr-48 and syncs with Google Docs. In Google Docs, synced documents show up in a folder called Scratchpad. Any existing text documents you place in that folder also show up in Scratchpad when you next sync. As might be expected, nontext documents (spreadsheets, presentations and so on) are not supported by Scratchpad and do not show up, even if you place them in that folder.
The only issue I have with using Scratchpad is that it's not a good editor. It's quicker and more convenient than using Google Docs, but as a text editor, it is merely passable—nowhere near as efficient or useful as a true text editor. To be fair, the trade-off in efficiency is partly made up for with ubiquity. It's nice knowing the document always will be only a click away in any decent Web browser on any computer anywhere in the world.
After text editing, the next biggest things I do are IRC and e-mail—neither of which I can do natively on Chrome OS. Yes, Gmail is there and works wonderfully (along with all other Web-based e-mail sites), but my work e-mail does not have a Web front end. Hopefully, developers are working on a solid IMAP client for Chrome OS. Ditto on a good IRC client. Thank goodness Mutt and Irssi are perfectly usable over an SSH connection (so is vim for that matter), because without them, I would be unable even to consider using Chrome OS full-time. The downside to running them remotely is that when the network to which I'm connected is slow or unreliable, it quickly becomes difficult to get anything done. Finally, even though in developer mode I can use OpenSSH (hooray for SSH keys!), the experience is not as good as when using a “real” Linux command line.
Currently, the only way to get vim or any other native apps not included by default is to compile your own build of Chrome OS and/or your own packages. For developers, this will be fine, but I'm not a developer. For me, it would be nice if there were some sort of simple package manager, even if it contained only a limited selection of preapproved native applications.
Lack of common Linux applications aside, Chrome OS is very stable, and the hardware and software work well together. Sleep, resume, the Webcam and so on all work very well. That said, I was able to make Chrome OS crash, or at least freeze temporarily, on some pages with embedded Adobe Flash content and when playing a game I installed from the Chrome Web Store (I'm not sure if the game was using Flash or if it was an HTML5 Web app). On most of these occasions, the OS was able to recover without my help after a minute or so (no reboot required), but one time it wouldn't or couldn't recover, and I was forced to hold the power button to force a reboot. Thankfully, booting Chrome OS is very fast—about 20 seconds in my tests from opening the lid to the first tab loading after login. Yes, the Cr-48 boots when you open it—a nice touch.
Another nice touch is the Search, or “new tab key”, as I refer to it. This key replaces the Caps Lock key (you can configure it to be the Caps Lock key in the system preferences, if you want). Pressing it opens a new tab with the cursor in the Chrome search/address bar, so you can press it and begin typing out your search or the URI you want to go to immediately. The keys that normally would be function keys also have been assigned to specific browser and system-related actions, such as forward, back, reload, full-screen, volume, screen brightness and so forth. The whole experience is very polished, and it should be. I mean, there's really only one application you're running, so it would be surprising if the hardware wasn't tuned for it.
So, how much Linux do you get with Chrome OS? Not much, apart from SSH. Of course, Linux is very much behind the scenes, but all in inaccessible-to-normal-users ways. Some command-line applications are included, but not enough to consider the Chrome OS command line useful. By way of comparison, the Ben NanoNote's command line (which I reviewed in the October 2010 issue of LJ) is much more useful, even though it has no network connection. Unless you are a developer, customizing Chrome OS doesn't go far beyond superficial things like bookmarks, extensions and browser themes.
Superficial or not, the fact remains that thanks to SSH, I can use this notebook to perform most of my work-related tasks—most, but not all. And, even with the many tasks I can perform, unless they are tasks for which I normally use a Web browser, I can't do them as easily as on my regular Ubuntu-powered Linux system. This is partly related to long-term habits I have, and partly because a good, dedicated application often is better than a Web-based work-alike (for example, a Web-based image editor compared to The GIMP).
As an example, I regularly use ClusterSSH to log in to large portions of our servers simultaneously to perform maintenance. The screen size of the Cr-48 is large enough, in theory, to have six or more simultaneous SSH windows open and visible, but this simply is not possible on Chrome OS unless you are a developer and compile ClusterSSH (if it's even possible to do so) or code from scratch a work-alike replacement solution. I still can upgrade all six of the servers that need it, but I have to log in and upgrade each of them separately.
In the end, Chrome OS is a no-fuss browser-only operating system. If you truly can or do use a browser for everything you do on a computer (or even almost everything), this is the perfect way to do it. There aren't any configuration issues, because there's nothing to configure beyond logging in to your Google account. There aren't any maintenance issues, because Google handles that for you behind the scenes, updating you to the newest version of Chrome OS automatically. There aren't any data-loss issues, because it doesn't store anything that isn't also stored somewhere else or that cannot be easily re-installed. I could go on, but there's not much else to say. For better or for worse, Chrome OS contains just enough Linux to run the Chrome Web browser, and that's it.
Similar to the situation a couple years ago when I gave my Dell Netbook to my daughter, I don't think I will use this notebook as my primary one. It's not because the keyboard is too small (my main complaint about the Dell Netbook). The keyboard on the Cr-48 is excellent. And, it's not because of anything else hardware-related (it's an attractive, well-built notebook), but because it cannot do some of the things I expect and need a portable computer to do. I may take it on trips as a backup machine, but I think this notebook will end up more or less belonging to my wife. Most of what she does on her desktop computer is, or easily can be done inside a Web browser. For her, this is the perfect notebook; it's easy to use, stable and secure. In fact, it's been one of the very few gadgets I've owned that she keeps borrowing. Chrome OS may not be for everyone, but Google is on to something here.
Resources
Poking around Your Chrome OS Notebook: www.chromium.org/poking-around-your-chrome-os-device
Cr-48 Chrome Notebook Developer Information: www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/cr-48-chrome-notebook-developer-information
Virtually Destroy Chrome OS Notebooks: www.google.com/chromeos/demolab
Daniel Bartholomew works for Monty Program (montyprogram.com) as a technical writer and system administrator. He lives with his wife and children in North Carolina and often can be found hanging out on both #linuxjournal and #maria on Freenode IRC.