We obtained the ISO image of OpenSolaris 2008.05 a week ago, and made arrangements for CD production immediately. Because I was so consumed by other assignments, by the time we launched the OpenSolaris Installfest on Tuesday, I had only less than one day’s experience with this new release. So, it is fair to say that I am a new comer to OpenSolaris 2008.05, as well as others. In this blog I would like to share some of my thoughts about OpenSolaris 2008.05. It should be bear in mind that although I work for Sun, these opinions are strictly mine and do not represent those of Sun as a company.
It is so cool to have a one-CD installation disk, very cool! Previously, Solaris 10, as well as SXDE, needs one DVD. When you install, you don’t have a lot of choices, the installation procedure usually installs that whole thing for you. As we all know, different people have different needs, and that represents a problem – after the system installs, we end up with too many things in our operating system that we don’t need, that compete for our disk space, processor, and memory. Furthermore, the traditional installation procedure in Solaris was so annoying, which made it very difficult for a non-professional user to carry out a successful install. I have tried to install Solaris 8 for x86 in 2001, and felt that it was more difficult than installing RedHat 6.0. When Solaris 10 released, the installation procedure was basically the same as the one in Solaris 8, with no improvements. In June 2005, Sun announced the OpenSolaris project, and we started the promotion of Solaris in universities. The problem was, we were unable to install Solaris onto most of the computers in a university computer lab due to its high-end requirements and complex installation procedure! At that time there was no project Indiana yet, but I knew clearly that Sun needs a one-CD version of OpenSolaris. The target audiences of this version are students and developers – that’s, desktop users. The objective of this version is not to compete for the desktop market with Windows, rather, to attract students to study programming on OpenSolaris, amateurs to setup FTP service and websites with OpenSolaris, and developers to develop on OpenSolaris. And, all these require that OpenSolaris is easy enough to install.
OpenSolaris 2008.05 distributes in the form of a LiveCD. When the systems boots from CD-ROM, the user is presented with a full-function operating system. Now the user clearly sees clearly what hardware is supported and what is not. Within this working operating system the user can run the installation program, and install OpenSolaris onto his/her hard drive while using it. This is not a whole new way to install an operating system. Many versions of Linux have been doing this for a while. But, it is a big step for OpenSolaris. From user experience’s point of view, the installation procedure of 2008.05 is far from perfect. However, it significantly reduces the number of steps to install, and we must admit that it has reached the objective of of project Indiana. There were a couple of people whose WIFI chipsets were not supported by SXDE. During the installfest they booted the LiveCD, found that there WIFI is now supported, and decided to install 2008.05 onto their own machine right away.
There are two techniques that can be employed to convert one DVD to one CD: compression, and tailoring. The compressed content needs to be uncompressed during installation, so compression means slowing down the installation speed. Tailoring means some of the software – either driver of application – that existed previously need to be removed. It is a complex technical and political issue when deciding which component should be tailored away (or to be reserved) from the huge Solaris operating system. More importantly, when some of the drivers or applications are tailed away, the longly neglected dependency problem becomes serious. A developer with 2-3 years of experience with Linux should know this: when I want to install a piece of software A, it needs software B, and B needs C and D, and both C and D need E. The problem comes when C needs version 1.01 of E, and D needs version 1.05 of E, and these two version of E are not compatible with each other. At about year 2006, residents in the Linux world had basically solved the problem (not yet perfect, but working to some extent), while residents in the Solaris world were still thinking.
At the beginning of year 2007, a guy call Ian Murdock joined Sun. As the founder of the Debian Linux, Ian was CTO of the Linux Foundation before joining Sun. Under Ian’s advocacy, the OpenSolaris community started project Indiana (Indiana is a state of the US, while Ian is a resident of the state of Indiana), and IPS is an important part of this project. Similar to apt-get, IPS sorts out the dependency relationship between packages in the Solaris operating system, and publishes them to repositories that are connected to the Internet. When a users installs a base system, he/she can download and install the additional software packages from the repositories, and IPS resolves the dependency problems automatically. For instance, when I ask IPS to install NetBeans and my base system does not have JDK installed yet, IPS will also automatically download and install JDK for me. Again, IPS is not an innovation of Sun, similar approaches have been used in other operating systems a while ago. However, it is another great step towards the right direction for Solaris. Similarly, IPS is not the idea of Ian Murdock alone, similar thoughts have existed in Solaris engineering and the OpenSolaris community for a while. But, it is indisputable that this could not have been accomplished at such a speed without Ian’s advocacy and championship.
Compression, tailoring, IPS, plus the new installation procedure, that is the OpenSolaris 2008.05 we see today. Boot from the LiveCD, install the base system, then download and install additional applications from the Internet. In an era when bandwidth is becoming cheaper than DVD, this is with no doubt a direction that deserves more research. However, for countries and regions with relatively poor network conditions, this constitutes new challenges. For example, China has but very limited bandwidth between the vast country and other parts of the world, and it is even worse that professors and students reside in the academic network (AKA CERNET) need to pay for each and every bit of their international traffic (domestic traffic is basically free). Currently OpenSolaris only has one official repository that is deployed in the US (pkg.opensolaris.org). If I need to install OpenOffice, I need to download from the US. If I need to install NetBeans, again I need to download from the US. This problem can certainly be solved by setting up mirrors in China, and we are in the process to set this up. But, is this the only way to solve the problem?
We think about the DVD again – if we put the content of the LiveCD onto one DVD, then we have an additional space of about 1.5 GB. Then, can we fully utilize this additional space, setup a repository and put some frequently used applications in this repository? During the installation of the operating system, we are still installing the base system. After the base system is installed, a user can login to the base system, and install additional applications from the repository on the DVD. Again, this has been done in the Linux world, and in OpenSolaris we should be able to do the same. So, I believe that for the next release of OpenSolaris, there will be two ISO’s that can be downloaded – one is the LiveCD as we have today, the other is a DVD with the base system and a repository. With no doubt that those repositories on the Internet, domestic or abroad, need to provide more and up-to-date software packages as usual.
This is so similar to Linux, you might wonder. Yes we are learning from our friends in the Linux world. It is not shameful to admit our shortcomings and learn from others. Rather, it is shameful to cover our shortcomings and disparage the good things of our friends. Solaris operating system has its unique advantages (like stability, reliability, and security), but, if it is very difficult to install and very difficult to use, it can not attract and keep our users. 20 years ago, there were less than 50 universities in China that had a computer science department, while this number exceeds 800 in 2008. In other words, the huge demand for informatization from the society is continuously lowering the bar to enter the IT industry, and related technologies need to lower the bar for entry accordingly. Take programming languages for example, from assembly to C, from C++ to Java, is exactly a process that continuously lowering the bar. Another example is programming tools, from edline to Turbo C, from QBasic to Visual Basic, exactly the same. This trend also applies to operating systems. 20 years ago only graduates from a CS department had the opportunity to work on a real computer. Today, a student studying architecture needs to do CAD on a computer, and a student studying mechanics needs to do finite element analysis on a computer, and a grade-3 student in the primary school has an IM account. Today there are so many operating systems to choose from – Windows, Mac, and Linux, who are continuously improving their user experience. The objective of the Solaris operating system, is unlikely to be a popular desktop in the short term. However, if we are not able to attract developers today, there will be no deployment on our platform tomorrow.
We are not there yet. OpenSolaris 2008.05 is only an experiment, which stands for the future direction of the Solaris operating system (can we call this Solaris Next?). As the first official release, it is still in a very “primitive” state, with a lot of problems to solve. But, we are continuously trying. More importantly, we are not alone now. OpenSolaris is a community, and Sun is part of this community.
From Solaris to OpenSolaris, what does Sun learn during this process? If I were to pick one sentence I would like to pick this one: listen to the voice of our users, admit the variety of our users, and give choices to our users.
In short: keep pace, or diminish.
2008.05.07, midnight, on flight CA 985