Browser

Conceptualizing Chromebooks, Chrome OS, and HTML5-based apps

According to Donovan Colbert, Chromebooks and Chrome OS aren't that revolutionary or different from other platforms - they just add an abstraction layer between the user and the application run-time environment. Do you agree?

I know that I've personally struggled with understanding and conceptualizing just how Chrome changes the model of the user/application interface compared to traditional OS platforms, and I think a lot of other people are struggling with this too. I've come up with an analogy that may be imperfect, but it will help many users understand how Chrome is similar to and different from traditional models of computing interface.

Let's start with iOS, which is a surprisingly good example to begin conceptualizing what's going on with Chrome OS. iOS is an incredibly closed platform that restricts users from much more than adding or removing apps, moving them around on a GUI desktop, and launching them. It's like an automobile with a hood that's sealed shut so tightly that only the factory can open it up.

When you download an app, there's a file structure on your iPhone, iPod Touch, or iPad, and the executable binary and library files necessary to load that app get copied into the file structure, just like on a traditional OS (Linux, OS X, or Windows). The only difference is that this is hidden from you on iOS.

The Apple approach is to deliver you a computing appliance. You just push buttons and it should work. If there's a problem, there are "no user serviceable parts" inside.

Android works the same way, to a certain extent. Your experience is through a shell, a front-end, that hides all the mechanics going on beneath the user interface. This is a contrast to the older model of OS platforms, which allowed you to get into the nuts and bolts of the file system, registries, libraries, and other deep system details.

Chrome can exist in several different models. Basically, no matter how you get into Chrome, there is a host OS that is a traditional model of OS as described above. On Chromebook devices, it will be the most minimal installation of a Linux OS possible - enough of a kernel and a GUI shell to launch a single locally installed application, the Chrome browser. There will be a file-system and structure underneath, but you'll be locked out of it, and it won't be something easily accessed by anyone without a lot of *nix experience, if at all.

An iPad or Droid is an actual physical hardware device interface. On the other hand, the Chrome browser is an abstraction layer that simulates a hardware device interface. It becomes a virtual machine.

When you open up Chrome, the Chrome "desktop/launcher" is functionally the same as your iOS or Android desktop. You'll see a collection of apps there - many of which are stored in Chrome on your local machine. The binary executable for the app Angry Birds, Dropbox, or most other apps is downloaded, installed, and accessible in the future from within the virtual file system of the Chrome OS visualized through your browser window.

I know that is a mouthful, but basically, it means that the app you download and install in Chrome OS appears in your Chrome browser desktop in the same way it would appear on the desktop of your iOS or Android device - and when you click on it, it loads and runs just like any other app in many cases, even if you're not connected to the internet.

You could conceivably take this concept pretty far. There would be nothing technically preventing Google from allowing developers to create virtual file-system hierarchies and file explorers that would give you a graphic representation of that virtual "file system," including where documents and other files were stored locally within the Chrome OS, or other system utilities and applications.

I don't think this is Google's intended direction with Chrome OS, though. They've stated numerous times that they want to encourage users to travel to the web more often, to spend most of their computing time connected (not offline), so Google's goal would seem to discourage this kind of approach to local computing and file storage with Chromebook devices.

Currently, on a test system running JoliOS with Chromium on a netbook, I have several apps, including Angry Birds and Super Mario Bros. Crossover. Once I downloaded, installed, and ran these apps, I could load them later on without an active Internet connection. This isn't anything new. Browsers have been able to download Java .jar files, scripts, and other code, and store them in the browser cache to be executed later, even when not connected, for a very long time.

My guess is that when running Chrome on a system with access to the physical file system, one could browse to the Browser Cache directory, find the executable, and manipulate it manually - copying it to another system and double-clicking it from the file system to load it there without a download, for example. Chrome simply keeps these files and displays them on the Chrome OS browser desktop, making them easier to access and load in the future.

There's a lot of misunderstanding about Chrome OS and "web-based, HTML5 apps." After all, Chrome is really just a browser - no different than Firefox, Internet Explorer (IE), or Opera, for all practical intents. As a matter of fact, you can point your IE browser at chrome.angrybirds.com, and the site will ask you if you want to download Chrome or if you want to install Chrome extensions, which will allow you to play Angry Birds right from IE.

At the same time, the way the concept will be executed on Chrome OS hardware - it's basically an abstracted virtual machine displaying downloaded applications on a GUI desktop. The practical effect doesn't necessarily have to be that much different than the experience you get when you pick up an Android or iOS device. You'll see apps, click on them, and most of them will load and run whether you're online or not.

Many tech journalists have claimed that "Applications can't be installed on a Chromebook," but it isn't clear to me that this is true. It will be interesting to see if Chromebooks will allow any sort of local file storage or apps that are designed to run locally with local media. For example, there should be nothing preventing a user from installing a Chrome OS-based media player that would play locally stored digital music libraries and content.

Google is already testing an offline-enabled version of Google Docs. I presume it will allow you to access the Google Docs Office Suite without a connection to create your documents, spreadsheets, or presentations, and it will automatically sync those items with Google Docs Online the next time you connect to the internet.

Chrome is fully capable of hosting locally installed "native" Chrome OS applications that run offline. The only apps that require an internet connection are useless without a connection anyhow, such as Facebook, Twitter, Dropbox, and other applications designed to leverage web and cloud based resources.

Chromebooks and Chrome OS aren't that revolutionary or different from other platforms - they just add an abstraction layer between the user and the application run-time environment. There are lots of platforms and environments that already do this. Google is simply presenting this to us in a new way, which makes the browser the window and interface into our digital world. We'll have to wait and see if Google is successful with this approach.

Please feel free to leave your observations, comments, criticisms, or corrections in the comments. I think there is a lot of elaboration that can be done on this topic.

About

Donovan Colbert has over 16 years of experience in the IT Industry. He's worked in help-desk, enterprise software support, systems administration and engineering, IT management, and is a regular contributor for TechRepublic. Currently, his profession...

7 comments
ivank2139
ivank2139

My new Acer chromebook will arrive today. but think about a bootable USB with a writeable filesystem. All I need to carry is the USB stick and I can use my favorite Linux distro, apps and files on any computer that can boot the USB. With a little effort I can make it very secure like the Chromebooks. I already have online storage of most of my work anyway. Now I am just choosing which kind of system I will access it with.

douglas.gernat
douglas.gernat

First, very well written article! On with the soapbox, and I'm not pushing M$ by any means, just showing a parallel I often like to see. When an admin configures a Windows Environment, or any other centralized file and application type environment, part of the whole goal is to make the content available to the user, and as hardware independant as possible for thought of hardware failure and control. If one sets up a simple network with an AD server, centralized file shares, and web based applications, doesn't even the Window PC become simply a gateway to a private cloud? Sure there is an installed program to access the content for Documents, etc, but take most CRM applications for example. Nearly all of them utilize a Web GUI anymore, so what's to stop an administrator from forcing the ONLY application to run on a Windows machine is IE, and have everything run from the browser session itself? Isn't it the same kind of action Chrome is taking? Even thin clients are essentially doing the same think. I agree that the concept is not revolutionary, but simply well thought out and presented. If this doesn't make any sense, my apologies, as it is Friday! :)

Spitfire_Sysop
Spitfire_Sysop

The word Application was used exclusively for binaries that are executable natively on your kernel. Some people called them programs and still do. Now we have many different computer languages and other ways to load and display content. A "Flash Application" never used to be considered a real application because the Flash program itself is an application that then reads and displays the contents of a flash file. The same could be said for a webpage. You need a web browser to display the content making Chrome the application and everything inside it is a webpage. I understand that WebApp developers hate it when you call their WebApp a webpage. I am not diminishing the value of web enabled code. It can be very complex and do the functions of an application but it's not executable code. It's more like a script because it is not compiled. Now all these "computer appliances" come along with their "Apps" and we need to redefine the word Application. Should we distinguish between compiled executeables and webpage applications? I think so but I guess it doesn't matter to most users.

dcolbert
dcolbert

That seems to be the achillies heel of Chrome OS. Unless they have some sort of wacky patent, which they may... but I don't see how that would work... but otherwise, any OTHER browser should be able to introduce the same basic concept easily - and any "Chrome OS" app is effectively an "IE OS" app, too. Although right now, it does seem like there is some unique developer framework being used to run certain Chrome Apps. Angry Birds is one of them. So Google does seem to be up to something.

dcolbert
dcolbert

I go back and forth on my opinion. Conceptually, it turns a browser into an OS shell inside whatever native OS you're running it on, I think. I agree in spirit with the idea that apps (at least robust ones) have generally consisted of some sort of compiled code - and so that is obviously where some of the confusion and indecision over Chrome comes. But the fact is that Chrome will save a boatload of apps in a local, offline accessible mode, display their launcher icons from a simple desktop GUI interface, and run those apps at any time, at any place, giving the end user the same experience. I mean, Angry Birds is Angry Birds - and when you're running it in Chrome, you're not running it as a web app from a web page, you're running it as a local app. Initially Chrome got this reputation for calling a simple link to a web page an "app"... which they did do, and which was probably a mistake. But what Chrome is doing with a whole bunch of recent apps that do not require an online connection, that isn't the same thing as creating a link to chrome.angrybirds.com - this is being able to download an app from that URL and get to it and load it anytime you want. That itself isn't so new, the presentation shell that makes that easily accessible for the end user is the novel concept that Google has introduced. You can download and run Angry Birds in IE... but you don't get the desktop experience if you want to reload it later. That little difference means a lot, especially to the "most users" you mention, who I agree, it really doesn't matter to. But the pros are the ones who are getting hung up on the details - and I think a lot of them don't understand - Chrome OS can deliver ANY kind of app, offline, there is just an extra layer between the hardware and the executable code... which is no different than running a compiled Java app (and that MAY be what the app you're running in Chrome is... or it may be Java Script, or HTML 5, or who knows what else Chrome OS will support as a local offline app... my guess is, anything that any other browser will support). Not that I disagree with any of what you have to say. Just thinking out loud about what Chrome really *means* as an application platform for end users. It means a lot more than the press currently seems to understand, I think - a lot more than a lot of tech-industry workers have realized. We'll see.

Spitfire_Sysop
Spitfire_Sysop

Offline browsing does not an application make. It's nothing new. I think Angry Birds is Flash and you've always had the ability to download and view flash from the flash player. The only thing that could be new is if you were able to run server side code locally. For example, running a crippled Apache server on your PC just so you can test some PHP. The important thing here is the meaning of words. The IT industry is filled with examples of people who misuse technical terms so much that their meaning is diminished or obscured. When does code become a program? We have many languages that depend on a command interprater and in this case the command interprater is multifaceted. You need all the server side support like PHP and you need the client side support like webkit. This is a lot of overhead. Compiled code has many advantages. These "Apps" are not applications.

dcolbert
dcolbert

Is just one example, and only serves to illustrate the point. If you can make Angry Birds as a standalone Chrome OS and it faithly replicates the experience as on all other platforms, then how can it BE an app on iOS or Android but NOT be an app in Chrome? By extension, if I can have a locally stored, persistent application that isn't removed by clearing the cache - you may have packaged something that was always *possible* in a new manner, but that might be the most important concept to discover. Before that, you had an opportunity, but you weren't leveraging it, so it doesn't matter if it existed or not. Afterwards, you've delivered something new. Let's extrapolate - if Angry Birds, then why not Microsoft Office as a Chrome App? Or Photoshop? Or movie editing software? Now, technically - there may be something that differentiates these programs running in Chrome OS from a traditional, native compiled binary executable - but from the end user's perspective if that is transparent, then it is really a moot distinction. My concern is that a lot of people don't understand what Chrome OS is and don't really get what you could do with it. Many people think a Chrome App is just a shortcut to a webpage that hosts a webapp, like Googe Docs or Gmail. That isn't the case. Many people still think you need a network connection to the cloud to leverage a Chromebook. No more than you need a network connection and the cloud to leverage the maximum potential of any modern personal computing device. If Chrome has a file browser, and I plug in a USB thumb drive, the Chrome file browser should allow me to navigate and manipulate the files on that thumb-drive just like I could on any other device capable of reading it. Copy files, move files, rename files, delete files. Open them in a suitable application. Chrome is sitting between me and the native kernel and preventing me from having direct access THERE... but it still gives me access that is effectively the same. At that point... where is the distinction? I think potentially, depending on how they handle these kind of questions, what kind of apps eventually show up for Chrome OS, there may not be one. Just another OS platform. The biggest problem I see is that there hasn't been a user-interface market this crowded since the end of the 8 bit PC era. That caused a lot of problems and challenges back then, and it'll do the same again today, too.