A Japanese Geek's MySQL Blog.

2009-07-15

Expectation For Chrome OS

I was really impressed by the news; Google plans to release "Chrome OS". When I heard it, I felt like some big puzzle in my mind was resolved as if I had a key hole and the news was a key. Most of people may think that Chrome OS will be one of Linux distribution simply which implements Chrome OS. But totally I don't think so. It will never be such a boring OS, I guess!! When I imagine the upcoming OS, I am a bit excited.

While the technology details have not been published, I expect that Chrome OS architecture will be like below:


Please note that this is my personal expectation, so the actual architecture will differ ;) If the act will totally different from this, please go ahead and laugh about this picture!

Anyway, let's go to the details about imaginary Chrome OS architecture in my mind.

1. UI = Chrome Browser

I'm confident that Chrome Browser will be an only UI which a user can access. There will be no UNIX shells which we are familiar with. Geeks may say "OS without shells are not UNIX!". It's true. But Google doesn't target such geeks at all. All operation will be performed via Chrome Browser.

2. Local Web Server

If my assumption above is correct, Chrome OS will have a web server inside like lighttpd or Apache for its own use. Why? If the only UI which a user can access is Chrome Browser, how does he or she shutdown the computer? I expect that Chrome OS will have a system management page which allows a user to manage or configure the system, which is a kind of Web application running on the local web server.

3. User Application Runs On Web Server

It is needless to say, Chrome OS will make use of Google cloud. However, it's a not good idea that doing everything, even a trivial thing, on the cloud. Will Chrome OS run Calculator application on the cloud? I don't think so. If Chrome OS will do such a stupid thing, Google cloud will not able to handle megatons of requests. Then, such a trivial application will run on the client using Javascript or as an web application. In either case, Chrome OS will have rich applications, because there are lots of web programmers who can develop such applications all over the world.

Why this is interesting is; if Chrome OS can open up the network port to the internal web server, users can access the application running on the own computer for each other. This means that the desktop application suddenly turn out to be a web application! Sounds exciting? In order to keep the security, Chrome OS may use Open IDs provided by Google.

4. Good Bye Files

Probably, this could be the most significant change upon Chrome OS. I expect that Chrome OS will not have any method to access files on the computer like "Windows Explorer". Using files for data store and arranging files on a tree based filesystem are really primitive, such a method has been used since dinosaurs ruled the earth. One should imagine the content of file based on the filename, but a filename does not always describe its content correctly, so managing data using files is messy. People really want to do so? No! They simply want to store data, keep data and search data quickly when needed. Using files upon tree based filesystem is not the only way to manage data, and it's an inefficient way.

Instead, Chrome OS will store data on a database management system. Local web applications will access database as if usual web applications make use of underlying database nowadays. Then, people will leave away from managing files.

If so, what kind of RDBMS will be used on Chrome OS? The most probable answer is "sqlite". However, the problem is that sqlite cannot handle queries quickly when data grows large. Then, Chrome OS should employ more scalable RDBMS like MySQL, firebird or PostgreSQL IMHO. I strongly recommend Google to use MySQL as a MySQLer. If Google thinks that GPLv2 is not suitable for Chrome OS, and that's why MySQL is not employed by Chrome OS, please consider to apply FOSS Exception, which enables OSS project to release the software using other licenses than GPLv2 if the license is listed in: http://www.mysql.com/about/legal/licensing/foss-exception/

5. Robust Security

On Chrome OS, a user will be unable to invoke programs like we do now, and it will be unnecessary. Since the only program which user will access is Chrome Browser, it can be invoked by OS in advance. OS can invoke the browser as "root" user, then it can change the user afterward using setuid() system call. In this way, Chrome Browser program image on the filesystem can be owned by root and can be invoked by root only. An ordinal user doesn't have to invoke any programs on Chrome OS, because a user can do everything upon the browser. Even an ordinal user doesn't have to access any files on the computer at all.

In this case, even if the browser is cracked and operated by a malicious user, the browser cannot invoke any programs! How secure such OS is?! In addition, people will be able to get off scanning virus on the computer everyday. Because there will be no user programs to scan!

.....

While the above is completely my personal imagination. I'm lost in wild fancies like this, however if it is true, Chrome OS can be recognized as "It's our attempt to re-think what operating systems should be." as described in the official blog. AFAICT, I will be a fun of Chrome OS if it is true :)