« Back to home

Chrome OS and the Return of the Thin(ish) Client

I have had a Chromebook (a Chrome OS based laptop) for about 6 months now and it quickly became the most used computer in the house. Google doesn’t seem to have been actively pushing Chrome OS, at least not in Australia, so I was pleased to see a group of recent announcements that indicate that things might be changing.

This got me thinking about why I prefer using the Chromebook over other options and the virtues and drawbacks of thin versus thick clients.

Thin and Thick Clients

A thin client essentially does no application processing of it’s own, all it provides is an input/output interface to central server which actually runs the applications. The server side of the equation can handle multiple clients simultaneously. When a computer capable of running a meaningful application cost many hundreds of thousands of dollars this was a good way of maximising the utility of that investment.

Another advantage of the model was that all data, applications and configuration was centralised which made it a lot easier to ensure it was synchronized, backed up and that all clients were accessing the same data.

Terminal Room

After the PC Revolution in the late 1970’s it became affordable enough to get a computer capable of running something useful that they could be assigned to an individual. The release of VisiCalc for the Apple II was one of the most significant steps in this direction - a small organisation (or an individual) could now afford to own a computer and the applications needed to make it useful.

For an individual keeping their accounts up to date in a spreadsheet on a single home PC this was fine, as soon as you started to add additional computers to the mix problems occurred. The data you were working on was not guaranteed to be up to date (if your accountant made modifications to the spreadsheet on their PC you needed to get a copy of those modifications to put on your machine before making your own changes) and maintenance operations such as keeping the software versions synchronized and backing up the data became the responsibility of the end user rather than something that magically happened in the server room.

It wasn’t until networking technology such as ethernet and the supporting protocols (TCP/IP, NetBIOS, Novell NetWare) become available that these systems started to become ‘clients’ and some of those issues became easier to handle. Many of the earlier networking systems for PC’s were geared around simply serving files - one computer in the network (the server) would provide storage space for the data (and, hopefully, ensure it was backed up) while the client machines would access the shared data as needed.

All the application processing was still done on the individual workstation, the thick client, while the server simply provided a central storage repository. Servers did start to take on more roles, such as a database server, but were still dependent on the application logic being implemented on the client.

The move back to thin clients seemed to happen in the mid-90’s. The Network Computer model was a push back to the classic thin client where the desktop simply provided a user interface to services and applications that ran on far more powerful server systems, the newer clients provided support for graphics in this iteration. X11 terminals were probably the first implementations of the model - they simply ran X11 on the client machine which processed drawing commands generated by the application running on the server.

The Citrix WinFrame product came out in the mid-1990s and provided similar functionality for Windows. This was acquired by Microsoft and became Windows Terminal Services which lead to the Remote Desktop Protocol, RDP, which is a standard feature in all versions of Windows now.

JavaStation

Around the same time Sun introduced the JavaStation which was more a hybrid solution - the bulk of the application ran on servers in the background while the client would run the user interface code, the two parts of the application would communicate via Remote Procedure Calls (RPC). The idea of course was that the applications would be written in Sun Java, run on a Sun server and be accessed through a Sun JavaStation client. Unfortunately for Sun, it wasn’t very popular.

The model, however, lived on - with the incredible growth of the internet around the same time the servers were replaced by web servers and the RPC mechanism by HTTP requests. The browser became the thin client replacing a specific piece of hardware with a general piece of software that could be run on all the existing fat clients that were already available.

When the iPhone was first released in 2007 the only 'apps’ it could run were web based applications - the use of HTML, CSS and Javascript as a way of implementing rich user interfaces running on a low powered client machine had progressed enough that Apple could enforce that restriction and still have a sellable product.

Now, in 2015, it applications that you can use in your browser ‘thin client’ are everywhere. It’s not just domain specific applications for transport, scheduling and social networking - general purpose applications like word processors and spreadsheets are in the mix as well. If you are reading this you have probably used at least one of these style of applications today already.

What is Chrome OS?

When Google announced Chrome OS in 2009 there was some confusion as to how it differentiated from Android and why they would introduce another operating system at a time when Android was extremely successful.

Chrome OS Screenshot

Where Android is optimised for touch based interaction on fairly small screens the Chrome OS user interface (shown above) is more like a classical desktop that is best used with a keyboard and mouse. The application model differs between the two systems as well although the differences are subtle and do overlap in many ways.

Chrome OS is essentially a Linux kernel and the supporting tools and libraries needed to run the Chrome web browser. Due to the minimal nature of the system it boots very quickly (typically around 6 seconds) and has a much longer battery life than laptops (I get a little over 6 hours of active use out of mine on a full battery).

Almost all of the other ‘applications’ installed on the system are either Chrome extensions or Chrome applications which can be installed on any Chrome browser regardless of what the underlying OS is (Windows, Linux and Mac as well as Chrome OS). The applications follow you around as well - any application I install on the Chromebook will be installed on my Chrome browser on Windows or Linux as well.

Although the original Chrome OS was limited to ‘applications’ that were simply a link to a web page it has evolved over time to include native applications that are installed locally and allow you to work offline. You can open a document in Google Docs while connected to the internet, work on it while the connection is offline and it will resynchronize when the internet becomes available again. Applications also have access to local storage so a graphics program can be used to manipulate images locally as well as those stored on Google Drive.

Chrome applications are not limited to Javascript and HTML - the native client interface allows code to be written in C or C++ and run in a sandbox on the target machine which greatly improves performance as well as giving applications access to services not usually available to a ‘pure’ web application.

Chrome OS VNC Screenshot

It is this feature that allows clients for things like VNC remote desktops, SSH connections and Windows RDP as well as normal web applications. It is this ability more than anything else has let me move to the Chromebook almost exclusively - I have moved my desktop towers into the garage and access them through SSH and VNC instead. With the excellent SFTP file system plugin I can even mount my Linux home directory in the Chrome OS filesystem and access files directly. I haven’t sacrificed performance or access to applications but now have a very portable development environment that still gives me access to almost everything I need. About the only limitation is access to hardware devices like microcontroller programming tools - for that I still need to use a ‘full’ desktop or laptop system.

The New Chrome OS Systems

At the end of March Google announced a range of new Chrome OS hardware which included two 11” laptop style models from HiSense and Haier that retail for just under $US 150, which is a substantial drop in price for an entry level machine. Apart from the price these devices don’t add anything particularly new to the Chromebook line but the other two devices certainly did.

Chromebook Flip

The Asus Chromebook Flip was one of these - at $US 250 it is more expensive than the other options but has a fairly unique format. The 10.1” touchscreen display is mounted on a 360 degree hinge which allows it to quickly transform between laptop and tablet formats which (theoretically) gives you the best of both worlds.

I am in two minds about this - the 10.1” screen is a little too small for a laptop and too large for a tablet in my opinion. The other issue is that the Chome OS user interface is more optimised for use with keyboard and mouse (or trackpad) - how well it would migrate to touch screen only use remains to be seen. No one has been able to come out with a UI that is equally comfortable in both modes yet. This device might have been better suited to run Android where the keyboard is only needed to enter a lot of text more easily.

The final device mentioned is a real game changer in my opinion though.

Chromebit

The Asus Chromebit is a completely new form factor for ChromeOS devices - a HDMI dongle with a Micro USB socket for power and a full sized USB connector for attaching mice, keyboards or other accessories, at $US 99 it will be the cheapest ChromeOS system available when it goes on sale later in the year. It has the same hardware specifications as the Chromebook Flip mentioned above so it’s not a cut down systems by any means.

With this device you can convert any display with a HDMI input into a very useful and usable computer. You still have to provide your own keyboard and mouse through either the USB or Bluetooth connection but it still works out as a much cheaper alternative than anything else currently available.

As a way of providing access to the internet without requiring a heavy investment (the accessories you need to provide - the display and input devices - are readily and cheaply available on the second hand market) this will be a massive boon for those on a budget. You still need a WiFi connection though but as most phone plans and pre-paid services include a reasonable amount of data these days (in Australia at least) that is an item that is probably already available.

Conclusion

I have already adopted Chrome OS as a very capable thin client solution and it fits my needs perfectly, for anyone that uses Linux as a development environment the combination of VNC and SSH/SFTP give you access to that environment from anywhere. For those who predominantly use web based applications it is an even more suitable platform.

It is a bit disappointing to hear so many people disparage it without having tried it first, hopefully the new price reductions will encourage some of them to change their mind. I would certainly recommend anyone considering buying a tablet for their child to consider one of the new, cheaper Chromebooks instead - they provide a lot more functionality.

With Google moving to make Android applications available on Chrome as well there is an even stronger argument for them as a tablet replacement. If you have a Windows 8 machine you can even try out Chrome OS without any additional hardware.