Header Ads

My eyeOS : Moving Operating Systems to Clouds !

Have your head in the clouds? It’s time to move our operating systems there


A few decades ago, people would have to book time on the computer in their organization or university and await their turn. Today, most people have their own dedicated computers, so much so that we can choose to donate our free computational time for use in projects such as Seti@Home or Folding@Home.

In today’s world, the computer has evolved from its geeky roots as a computational device, to one which is responsible for a considerable part of our entertainment and social interaction. It has become much more personal.

Thanks to your operating system, the complexities of millions of mathematical calculations to bring you each and every pixel you see on your screen are neatly abstracted away from you. All you see are objects on screen that you can relate to better than blobs of binary information. Operating systems too, have evolved to better suit to our personal needs. As our sphere of interaction with the computer, we tend to treat it much like we do our room or house. We put up our own wallpaper, install applications of our choice, customize the settings in order to have them suit our needs better.

Yet we also live in a mobile world, where we need to be connected to our information our way anywhere we go. We do everything to take our experience with us. We can use laptops / netbooks or other portable computers to physically take our computing environment with us, or we can merely take our operating environment, by installing it on a portable device such as a USB drive. Another option that we can have now, is keep our operating environment in the clouds, thanks to software such as eyeOS.

Cloud OS

There is a plethora of online applications to perform the tasks that you need. In fact, alternatives for most offline tools are available online. If you can access a web browser, it’s quite easy to perform all your tasks online.

In our operating system, we organize our data in our own special manner. When we work online, we begin to lose certain privileges. We first need to download our data from our storage service to the computer, then upload it to the service capable of handling files of that nature, and after modifying it we need to download the modified file again, and upload it back to our storage.

Although many online services are now integrated, it is no match for the level of integration and choice we are accustomed to while working on our own desktops. Wouldn’t it be much better if our entire OS was online?

Cloud OSs are the answer to this need. By keeping your data and your application on the server side, they move your entire application sphere online. You can now have the same benefits of personalization and integration that we see in our desktop OS online.

Introducing eyeOS

There are a number of online operating systems available today, and the number is steadily growing. eyeOS is one of the few that is not only provided for free as a service complete with online storage, but is also open source under AGPL3, so you can install it on your own server.

eyeOS is built on PHP and uses a combination of web standard technologies such as HTML, JavaScript and CSS to create the UI. This means that it will run on any standards-compliant browser. By itself, it doesn’t require any extra plugins in order to work. All it needs is a PHP 5 capable server, which is the common denominator for just about any hosting package – it doesn’t even require a database.

Installing eyeOS

You can run eyeOS on your own computer using Apache with the PHP plugin. The best way is to just install AMP (Apache, MySQL, PHP) solution such as WampServer or XAMP, (although eyeOS does not require a database server).

You can begin by installing an AMP stack on your computer. While we’ll consider WampServer as an example, the installation procedure is similar for most AMP packages.

After WampServer is installed, you can start it from the program menu. Since MySQL won’t be used, it can be turned off to save resources.

The eyeOS installation package is a ZIP file, which will need to be extracted to a directory under the server root. In the case of WampServer, it is the www directory in the installation folder (by default “C:\wamp\www\”). This folder is where the files that will be served by Apache need to be stored. If you wish to install other applications on the same server, you will be better off installing eyeOS in its own directory (here, we’ve chosen the default eyeOS directory).

You can now start the installation procedure by entering http://localhost/eyeOS/installer/ in your browser. It’s a single step installation and it only asks for a root password and a hostname. You can also enable users to create their own accounts.

You’re now all set! In a couple of minutes you will be greeted with a login screen. If you enabled user account creation, you can now create your own account by clicking on the “New User” button. Again, the procedure is as simple as entering a username and a password (and perhaps a default language).

In case you didn’t enable account creation by users, you can login into the default administrator account, with a username of “root” and the password you entered while installing eyeOS. Shortly, you will be greeted with your own desktop, on the clouds.

The desktop as you can see is quite similar to the standard UI layout we are all used to.

eyeOS features

eyeOS tries to provide most of the functionality that we are accustomed to in any operating system.
  1. A powerful, highly configurable access control system, with heavily customizable ACLs (access control lists), and support for user groups and a user management system.
  2. Support for assigning user quotas for disk space.
  3. An inbuilt configurable cache system.
  4. Support for office document formats using OpenOffice.
  5. A file association management system.
  6. Support for auto-launching application on startup.
  7. Fully theme-able, and comes with a few themes with its default installation.
A default installation eyeOS also comes with quite a few bundled applications to get you started. Most basic computer applications such as creating / editing documents, surfing the web (a browser in a browser!), viewing images, and even playing games are covered.

You don’t need to settle for the applications that come with the installation though. eyeOS has a large repository of online applications that can be accessed via an inbuilt software management application. The system is quite similar to the kind of package managers available on most Linux systems (and is infact based on partage the package management system for Gentoo Linux). It’s a one stop place for listing, downloading and installing applications, and for managing already installed applications.

As for the eyeOS package manager, naturally we went straight for the “Games” section

eyeOS your OS?

We all understand the power of internet applications. Many of us use them every day, and heavily depend on them for our work. Whether you are creating a presentation along with other people of your group on Google Docs, or adding / editing pages on Wikipedia, the sheer power of collaboration that the internet brings can do wonders to an operating system environment that we are used to. Already Google has its Chrome operating system that relies on the power of internet applications to provide functionality to computers instead of the traditional desktop applications. The power and scope is all there.

We constantly need to remind ourselves though that we still live in a country where we get excited with a 512 kbps connection, while developed countries get higher speeds on their cellphones. For us, having an online operating system can only be of limited use.

This is not to say that such a system would be entirely useless in India. For an organization, having an eyeOS installation on an intranet server can mean everyone has access to the same resources and interface, where everyone is working on the same environment and there’re no compatibility concerns. We can look to such solutions in the future – it always looks brighter, but until our infrastructure doesn’t reach parity with the developed nations these are solutions to problems we haven’t had yet.

Optimized PHP settings for eyeOS

eyeOS is an unusual application for a server. Since it is an operating system and people are expected to be using it all the time for their work, unlike a normal web site it is bound to get a different kind of traffic.

To optimize the performance of eyeOS, you can make some changes to your PHP configuration by editing the setting in ‘php.ini’.

For people using WampServer, you can find this file in the following directory inside the WampServer installation folder:

\bin\php\php5.2.8\php.ini (For a default installation “C:\wamp\bin\php\php5.2.8”)

The following setting can now be changed to better suit your requirements (the defaults listed are for a WampServer installation and may differ for other AMP stacks):


This defines how much time (in seconds) that a script can for execution. The default is 30. However, a setting greater than 60 is recommended, as the server will be running applications. Finally, it depends on how powerful the server is.


This defines how much time (in seconds) a script can take for processing the data it is receiving. The default is 60. However, if you need to upload large files, which you will if you use it as your OS, this may not be enough. For a local installation, this would mean that a script can only accept as much data as can be transferred in 60 sec. You should set it based on your requirements, connection speed and server speed.


This one is for setting how much memory a script can consume while running. Since eyeOS runs complex applications, it might need more at its peak times. Set this based on how much is available and how heavily you will be using eyeOS.

post_max_size & upload_max_filesize

These define the maximum size for the files you upload on your server. If you need to upload audio and video, then set it to how much you might need and a bit more. past_max_size should at least be slightly larger that upload_max_flesize, as it includes other data from the upload request.