A peek at the Google Chromium OS

When I first learned that Google released the source code for their new operating system, I was determined to try it out. Unless you have been living in the Styx for the last year, you must have read that it described by many as a revolution in operating systems (1, 2), and that it will spell the end to Microsoft’s dominance in operating system software (3). So, when Google opened up the source code to developers (4), I decided to download the code, build the operating system, and give it a spin. In particular, I was interested in how fast it would boot because that was one of the most important design considerations.

How to build Chromium OS
Although BitTorrents now exist for you to check out a VM image, I wanted to actually see if the OS would boot as fast as the developers claim, in three seconds (5).

Chromium OS needs to be built in a Linux, preferably Ubuntu. To do that, I had to download the Ubuntu OS, set up an x86 virtualization program, install Ubuntu, and set up the development environment.

Setting up Ubuntu
I first got the most current version of Ubuntu (http://www.ubuntu.com/getubuntu/download). If you want, you can create a read-only boot disk. Burn the ISO image onto a disk with verification, e.g. using Windows Disk Image Burner. Once you have a boot CD, you can install the OS on a free disk drive immediately, or start it up without any changes to your drives. The only problem with that is you can’t really set up a development environment.

If you have a USB memory drive, you could install a copy of the OS on the USB drive. After booting Ubuntu, go to menu item “System | Administration | USB Startup Disk Creator.”

Ubuntu in a virtual machine
Because I work on a quad-core PC with Windows 7, I installed an x86 virtualization program on my desktop. Almost anything that can be done on a PC running Windows or Linux can also be done within a virtual machine (VM) running on the host machine. That means you can run the Ubuntu OS in a window on your Windows or Linux host machine. The difference is that some of your hardware is unavailable. But, USB hardware is usually supported.

Install VirtualBox (Sun.com) and run the application. Create a new VM with name “Dev Ubuntu”, type Linux, version Ubuntu, meory size 512M, virtual disk size of at least 20G. When you start the VM, it will go through a boot wizard, where you can specify to boot off the ISO image for Ubuntu, which you just downloaded. When it boots, install the OS on the virtual disk drive and boot from that.

Select menu item “Devices | Install Guest Additions…”, then go into the VM window and open a shell program (“Application | Accessories | Terminal”). In the shell, you will need to execute commands to install Emacs, and software for VM Additions (a package that improves the features of the VM):

  • sudo app-get install emacs23
  • sudo app-get install dkms
  • cd /sbin/cdrom
  • sudo sh VBoxLinuxAdditions-x86.run

Reboot the VM. Then, open the shell again, and execute more commands to install a shared area between your VM and your development PC:

  • sudo mkdir /mnt/chromeos_windows
  • cd /sbin; sudo mount.vboxsf ChromeOS /mnt/chromeos_windows

Reboot the VM.

Get the sources for Chromium
The instructions to get the sources and build the operating system are at http://www.chromium.org/chromium-os/building-chromium-os.  The sources for the browser are at http://dev.chromium.org/developers/how-tos/get-the-code.  However, when I tried to build it, it failed because the sources were out of sync.  Eventually, I did get it to compile, but I had to pull the sources from the Git repository.  You should unpack the sources into the directory ~/chromium.  The sources for the operating system are at http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/getting-the-chromium-os-source-code.   Unpack the sources into the directory ~/chromiumos.

Set up the Chromium OS development environment
To build the OS, you haveto install the Google Chromium OS development environment. The instructions are at http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/build-instructions, and they are pretty good. As I mentioned before, I had problems trying to build Chrome, so I just downloaded the ZIP file containing the code, and placed that in the chromiumos subdirectory.  Make sure you place it in the correct directory, and rename it correctly.

The steps are:

  • cd ~/chromiumos/src/scripts
  • ./make_local_repo.sh
  • ./make_chroot.sh

Build Chromium OS
The instructions for building Chromium OS are at http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/build-instructions. The are good, albeit the build process is not incremental at the moment. So, if you make a mistake, you have to start over.

  • ./enter_chroot.sh
  • ./set_shared_user_password.sh
  • ./build_platform_packages.sh
  • ./build_kernel.sh
  • ./build_image.sh

Copy the image to a USB key
If you want to build a USB drive with the Chromium OS installed, you can do that through the VM. In VirtualBox, edit the settings for Ubuntu. Select the USB settings. Insert your USB drive in your host machine. Add a new USB filter for your USB drive. You may have to reboot your machine for the drivers that VirtualBox installs to function correctly. Then, start your VM. You can install Chromium OS on the drive from outside the “./enter_chroot.sh” environment, type:

  • ./image_to_usb.sh

Copy the image to a VM disk
If you want to run Chromium OS within a VM, type:

  • ./image_to_vmware.s

The image will be in the directory ~/chromiumos/src/build/images/XXX/ide.vmdk, where XXX is the most recent directory created by the build_image.sh script (e.g., 999.999.32509.170355-a1). Copy the ide.vmdk file to a shared directory with your host machine. Then, run VirtualBox on your host machine. Create a new VM and set the disk drive for the VM to be this file.

The “three-second boot”
The boot time for the Chromium OS has been reported to be as fast, three seconds (6) to seven seconds (7). So, how good is the boot time for Chromium OS? And how does it compare to other operating system boot times? To test this, I used my machine (Asus P5KPL-CM, 4GB DDR2 DIMM, Q6600 C2QX Kentsfield Core 2 Quad 65mm 2.4GHz, 4 SATA’s, 1 IDE, DVD; USB Drive 4GB Centon DataStick Pro) and Sun’s VirtualBox.

I performed two different tests, one test using my hardward starting from a cold boot from a hard disk drive, or a USB drive; and the other test using a VM running in VirtualBox with hardware acceleration. The hardware was the same. Four different OS configurations were tested: Windows 7, Ubuntu, Chromium OS, and Windows 7 from hiberations. (See Figures 1 and 2 below.)

All boots follow the same phases more or less. When the power button (real or for the VM) is pushed, the BIOS performs an initial check, then displays a boot screen. Finally, after the BIOS performs these hardware checks, the operating system is loaded and started. Times were measured from the point of turning on the power switch until (1) the BIOS boot screen came on; (2) the BIOS starts loading the OS (screen goes blank); (3) the OS login screen appears (or in the case of resume, the desktop appears).

OSBootTime1

Figure 1. Boot time to login scree for different operating systems on disk drives

OSBootTime2

Figure 2. Boot time to login screen for different operating systems on a virtual machine

The results of the tests are shown in Figure 1 and 2. In the non-VM test, the time for the BIOS to start loading the OS is a little under 15 seconds. The fastest boot time was Chromium (32 seconds), but not overwelmingly better than Windows 7 (42 seconds). But, when starting Windows 7 from a hibernated state, my PC was able to boot faster (28 seconds). If you remove the time BIOS required to initialize (15 seconds), then Chromium would have booted in 12 seconds, not 3 or 7 seconds as reported. In the VM test, the teim for the BIOS to start loading the OS was 2 seconds. The fastest boot time was Chromium (9 seconds). If you remove the time for BIOS required to initialize, then Chromium would have booted in 7 seconds.

What does Chromium look like?
Chromium OS looks pretty much what was described: a PC that is a dedicated internet browser.  Along the top are tabs for browser windows.  Why do people label this as revolutionary?  While I would not call this “revolutionary”, it does have an appeal because it is so simple.  You to install any applications locally on your machine.  So, if you cannot run the application in the browser, you cannot run it at all.

loginmenuemailchrome-menushortcuts2

Conclusions

Google’s new operating system Chromium OS boots very fast, but the results seem to depend on your hardware and what you mean by “boot time.” You could define “boot time” as the time when BIOS starts loading the OS until the login screen. If you define “boot time” as the time from pressing the power switch, then it can be much longer. If your machine has a BIOS that takes a long time to begin starting to load the OS, it is likely that you can’t achieve 7 second boot time.

But, of course, the really interesting question is how well this operating system will be received. How is it going to be sold and used? What computers does Chromium OS run on? How extensible will it be? How secure will it be? Unfortunately, we don’t know the answers to these questions because it is not due to be officially release until late 2010. So, only time will tell.

1. Murray M. Does Chrome OS Spell the End of Desktop PCs? PC Mag. Vol New York, NY: Ziff Davis Media Inc.; 2009. http://www.pcmag.com/article2/0,2817,2356174,00.asp
2. Heining A. Google Chrome OS: Why should people switch? Horizons blog. Vol Boston MA 02115: The Christian Science Monitor; 2009.  http://features.csmonitor.com/innovation/2009/11/20/google-chrome-os-why-should-people-switch/
3. McCracken H. Chrome OS: Move Along, Nothing to See Here (Yet). PC World. Vol San Francisco CA 94107: PC World Communications; 2008.  http://www.pcworld.com/article/182793/chrome_os_move_along_nothing_to_see_here_yet.html
4. Albanesius C. Google Releases Chrome OS Code. PC Mag. Vol New York, NY: Ziff Davis Media Inc.; 2009.  http://www.pcmag.com/article2/0,2817,2356133,00.asp
5. Suarez P. Google Unveils Chrome OS; Tech World Yawns. PC World. Vol San Francisco CA 94107: PC World Communications; 2009.  http://www.pcworld.com/article/182819/google_unveils_chrome_os_tech_world_yawns.html
6. Nestor M. Google Chrome OS Promises a 3-Second Boot. Softpedia. Vol Bucharest, Romania: Thomson Reuters; 2009.  http://news.softpedia.com/news/Google-Chrome-OS-Promises-a-3-Second-Boot-127592.shtml
7. Oreskovic A. UPDATE 3-Google PC will start in seven seconds or less. Reuters. Vol New York, NY 10036: Thomson Reuters; 2009.  http://www.reuters.com/article/companyNewsAndPR/idUSN1917994320091120

Posted in Tip

One thought on “A peek at the Google Chromium OS

Comments are closed.