Sunday, October 16, 2005

Google OS

For a while now, I have been talking to people like Kumaran and posting on forums about my ideas for Google OS. I am not a big fan of some of the big ideas out their regarding Google running a supper cluster OS and you having an account on it. Some people such as Skrenta phrase their arguments well:

Google is a company that has built a single very large, custom computer. It's running their own cluster operating system. They make their big computer even bigger and faster each month, while lowering the cost of CPU cycles. It's looking more like a general purpose platform than a cluster optimized for a single application.
While competitors are targeting the individual applications Google has deployed, Google is building a massive, general purpose computing platform for web-scale programming.

However, I still disagree. I believe Google will create a free, single PC based system that is linked to their servers. Centralization does not float my boat, and in my opinion it does not float Google’s boat either. So far everything I have seen from Google has been very much decentralized. They run approximately 0.1 million servers in different parts of the world in small server farms to optimize searching and keep themselves decentralized. I understand the basing for using all the Google servers as one super computer:

The Google server farm constitutes one of the most powerful supercomputers in the world. At 126-316 teraflops, it can perform at over one third the speed of the Blue Gene supercomputer, which is the most powerful computing machine available to humanity. (source)

This does lend itself toward creating some sort of centralized system. But when you think about all the people that would be part of the system and all the process running on the system, such a thing does not seem feasible. In my opinion it is more plausible to have each computer run a Google OS and be connected to the internet and the special Google Network. Each computer will be responsible for its standardized functions, but all the leftover processing power would be given over to Google to with as they please (much like the program Folding@Home). The connection to a single network or Google users would also allow Google to study their surfing patters (as they already do with their net mapping), but since they would control the Google OS network, they would be able to alter the connections to optimize the speed. Google would be able to become a road planner for its own pseudo-net.

Google would have to make its Google OS free because they have to, and because they can.
Have to:
Google would have to provide a free OS in order to compete well on the personal OS market. Right now there are only two major providers of paid-for-OS on the market and only one of them can boast that it makes money from its OS. Both Microsoft and Apple provide their own priced OS, however only Microsoft provides it successfully. Apple OS only exists because that is the only OS available on the computers Apple makes. Microsoft on the other hand, does not manufacture computers and manages to make money on the OS alone. Microsoft’s monopoly over the market, forces other operating systems (such as Linux) to be free or not exist at all. Google OS would need to be much like Linux and MacOS to be successful. However, unlike Linux, Google would have no need to be open source, since they already has a wonderful team of computer scientists working for them. Unlike Apple, Google would have to be non-proprietary and compatible.
I have no clue how much Microsoft has patent, but Google would have to take as much as possible and function as much like Microsoft as possible. If Google makes an incompatible OS (even if it is a good operating system) they would not be able to hold more success than something like Linux. Instead Google would have to find a way to run on the same computers as Windows, and use the same software as Windows. Like I mentioned, I have no clue how much Google could steal, but I am sure it could design some sort of operating system that could run all the basic 3rd party software for windows.
The reason Google OS can be free is because the company is an advertisement giant, not a software company. Google will be able to benefit from discreet ads it implants in its OS and from the spare processing power it would take from its users. The Google ads would have to be convenient and customizable enough so that the system users would not find it a hassle or bother. The spare CPU usage would have to be efficient enough so that the person using the system does not notice it at all. With a good way or providing ads and linking all that spare processing power, Google could easily make enough money to cover its development, maintenance and upgrading costs for the system, as well as make some extra money to throw elsewhere.

Single PC based
The argument for having each operating system being a single entity is simple. The amount of bandwidth and processing power on Google’s part to keep all the users running would be too great to handle effectively. Even with estimates of 126-316 Teraflops in processing power, the Google super-cluster would not be able to keep everyone satisfied. To show how this works with basic math lets take the upper part of that range 316 Teraflops and do our calculations for that. A standard PC runs in excess of 2 GHz or a few Gigaflops. The PlayStation 3 is rated at 2.005 Teraflops (200th fastest in the world) and the Xbox at half that, due to consoles’ graphics processors, but we only want to deal with CPU speeds. Hence we can say that our average PC runs at about 3.16 Gigaflops (to make our calculations easier). Now we need an estimate for user base. Currently Linux has an estimated 29 million users. Let us say that Google OS does not do as great and only makes 1/3 of what Linux has for a user base, or 10 million people. 3.16*10^14 (316 Teraflops) divided by 1*10^7 (10 million people) comes out to 3.16*10^7 flops. If we compare the 31.6 megaflops we got for an answer to the 3.16 gigaflops that our computers run at, we can see the impossibility of the matter.

Linked to Google servers
The link to the Google servers is to allow Google to access users’ spare resources, to make a pseudo internet and tailor advertisments.
Spare resources:
The spare resource use would work much like Folding@Home or the one that started it: SETI@Home. Most computers run at around 50% power. My computer right now, while running Google Desktop, Mozilla Firefox, MSN, Word, Winamp, XFire and an assortment of other programs, is averaging around 20% of its CPU usage and 41% of my RAM. But we should stick with 50% just to be safe. Now if we come back to the same numbers: 10 million 3.16 gigaflop processors. Lets take half of 3.16*10^9 and multiply that by 1*10^7 and we come out with 1.58*10^16 Flops. That is 15800 teraflops, which is 50 times more than the high end of what Google has already. Of course we can not expect 100% efficiency and have to account for computers not always being on. So let us say the transfer is about 50% effective and that a standard computer is on for 1/5th of the day (less than 5 hours) and that we split each flops across 5 computers. Calculate 1.58*10^16 * 0.5 * 0.2 * 0.2 and we get 3.16^14 or 316 Teraflops. In other words by getting 10 million people to use their OS, Google could double its operating speed.
Pseudo internet:
With complete knowledge of people’s surfing Google would be able to customize its own internet (Let us call it GoogleNet for now). With knowledge of what sites each individual wants to access and with a couple of servers running a server version of Google OS they could devise their own map of how to more effectively link all the Google OS users and all the Google OS servers. If you are trying to contact another person running Google OS directly, or are contacting a Google OS server, instead of going through the internet you would go through the Google sub-network. Since Google can customize how your packets fly around in their sub network they can optimize it for quicker speed. If you are trying to contact a non Google computer, then Google can take you to one of its own computers virtually near the one you are trying to contact and then let your packets fly out onto the internet, thus optimizing speed.
To keep this sort of subnet active and efficient Google would need a lot of power. They would need to devise new software to make fast net mapping and to evaluate peoples surfing. For that task they can use the same PhDs they hired already. The power for the processing would come from the spare resources Google could draw from the users of its system.

In my mind there is no debate as to if Google OS will come out. The only debate is when the operating system will arrive, what features it will have, and how everyone will react. What I am perplexed about is if the alleged Google Grid will come before or after Google operating system. The Grid and OS have wide discussion across the internet but there are no real comments from Google itself. I guess we will all just have to sit around and hope that Google does not get sidetracked or Netscaped.

Labels: , ,


Anonymous Jesse said...

Centralized system:
My computer: 0.00167486 teraflops/second

My computer does calculations @ 1674.86 million ops/sec (in its idle time), so I believe 0.00167486 (1674.86/1000000) is the same number, but in teraflops (10^12).

In a centralized system, computers would look after their own weight AND idle computers would help look after other computer's heavy cpu usage rate. This would mean slow computers would be faster and faster computers would be even faster.

This would also mean that Google's supercomputer wouldn't even have to bear any of the weight of other computers unless it wanted to.

I got work to do, I'll continue later.

9:27 AM  
Blogger dino said...

You make an extremely good argument.
One thing though: Linux was almost meant to be free and open source not to compete against Windows, but because of the philosophy behind the Gnu Public License (GPL). That license was made to counter software patents.

7:03 PM  

Post a Comment

Links to this post:

Create a Link

<< Home