Archive

Archive for the ‘Open Source’ Category

The Operating System

July 17th, 2008

I recently gave a talk on operating systems, not from a technical perspective, but more around some of the softer issues with the purpose to raise some questions around practices in this market. The ones I decided to include are listed below with a few key questions and ideas on what each point is about.

Barriers To Entry – How easy is it to get hold of the operating system, but more importantly, is the binary you can get hold of the same as the production supported version the vendor will supply if you had to purchase it ? Would you have to purchase hardware from the same vendor to be able to run the operating system or does it support general hardware ?

Most vendors will make it as easy as possible for you to get hold of the operating system, it is after all to their benefit. Think of the main operating systems suppliers out there, is the version you can get today, without needing to fork out money, the same production version you would receive if you ordered a copy from the vendor ? Think Sun Solaris, Redhat Enterprise Linux, Windows, IBM AIX, HP HP/UX.

Life cycle – Where do you live on the curve, fast changing hungry for new functionality or slow and deliberate with as few as possible changes ? Both these conditions actually exist in most organizations, do your operating system cater for this ?

Community – Is there a vibrant community around your operating system, from kernel developers to application developers and all the way to end-users ? Remember innovation happens elsewhere, if there is no open community around the operating system, possibility of innovation is limited to a small group of individuals.

Observability – How open, friendly and visible is the inner workings of the operating system ? If a problem arises, performance or otherwise, is it possible to peek deep inside the operating system to identify the problem or is guess and re-install the standard attempt at fixing issues ?

Momentum – Is the operating system on its way up or down in terms of momentum, are applications being ported to it or away from it ? Is the number of sites, blogs and discussions around it increasing or decreasing ?

Virtualization – Does the operating system natively provide the tools to virtualize workloads ? At what cost does this come, free and part of the operating system or at a per instance cost ?

Security – Is security a major focus of the operating system or an afterthought ? Are there masses of 3rd party software available to plug the holes that should never have existed in the first place ?

Integrity – Does the operating system provide built in mechanisms to verify that data stored is still the same data when it is read ? Does this come as an add-on or as part of the base operating system, is there cost involved ?

Compatibility - Are newer versions of the operating system compatible with past releases ? How painful and costly is it to move to the next release, does the vendor guarantee , not just verbally, that this compatibility exists ?

Barriers to Exit - What would it mean if I stopped paying support and maintenance to the operating system vendor ? Would you legally still be able to keep the operating system running or is the license to use the operating system tied to the maintenance contract ? What functionality in the operating system would not be legally available in this case ?

Popularity: 26%

Hein Featured, General, Open Source, Presentations , , , ,

Open source and software bloat

June 8th, 2008

An interesting side effect of community developed open source software is that, in general, it produces less bloated and more modular software packages that their binary , commercial only counterparts. Multiple factors are at play that bring this about. These differences can be summarized in three main areas, the development, distribution and deployment models.

Development model

The development model followed to produce software has a large role to play in the characteristics of the end product. Developed in a time when a new functionality release every year or two was the acceptable norm and new functionality directions were known only to to a small group until the big release day, as much as possible had to be crammed into this single event. The functionality released also had to be as feature rich at release as possible, leading to bloat in functionality that might or might not become widely used after release. With the acceptance of the “ Release early, release often” methodology described in “The Cathedral and the Bazaar” by Eric S. Raymond in 1997 now inherent in open source community developed software this all changed. No longer are large portions of the application developed on the basis of market research that everyone hopes would still be valid when the end product is released months or years later. New functionality in community developed open source is incorporated and released on a continuous basis and is usually not feature rich at release. This allows the non critical features to be developed and added only if there is demand for them, leading to a feature set based on constant user feedback and demand. One can however not draw a distinct line between development that started in the traditional model and development that started their existence as open source. Examples of development that had their existence in the long release cycle, binary only model and have successfully emerged into the open source, release often, release early world are available. One such development is the Solaris operating system from Sun Microsystems, traditionally a binary only long release cycle for major changes ( 3 – 5 years) classifies this as a traditional development. Releasing this development effort under an open source license and adopting an open community development model has in a short period of time transformed Solaris into a fast moving, community driven effort that was released as OpenSolaris 2008.05 earlier this year. An operating system with a release plan of every six months and ample opportunity for community involvement and direction.

Distribution model

In a former life in the database world I was amazed when Oracle started delivering just about all their products as 90 day trial versions on CD’s to my office. Not only the products I was licensed for, all products for just about any popular operating system. My office was littered with Oracle CD’s, Personal Oracle, Oracle Transparent Gateways, Oracle Application Server for Windows,AIX,Solaris, HP/UX name it, I had a few. It went so far that we regularly used Oracle CD’s as coasters to put drinks on when we had internal functions. As the software grew in bulk to occupy multiple CD’s per product, the deliveries slowly wound down and eventually stopped, to be replaced by the general availability of Oracle software for download from their website. People still in the database world now report that it is close to impossible to get a DVD out of Oracle for software, the standard answer being “we do not have any DVD copies, ordering will take a few weeks”. This changed things though , rather than leaning over and grabbing the Oracle CD or DVD more and more people now go directly to www.mysql.com and download the latest version. Asking developers why this is the case, the answer comes back as a surprise. I expected a long explanation about how open source is better and all the well known reasonings. Few people mention this though, the more standard answer is even simpler, downloading MySQL, installing and configuring takes 10 minutes. Even less if the operating system you happen to be using already contains a MySQL distribution, which accounts for just about all popular operating systems used as development platforms, with Windows being the exception. The second reason is the download itself, dragging down 1.7 – 2.3GB to satisfy the need for a basic Oracle database is an impossibility while sitting in an airport, where it seems new age developers do a lot of their tinkering.

Deployment model

With access to technologies thrown wide open via the internet distribution model a bigger range of individuals than ever before have access to software components and technologies. No longer is software something that is necessarily supplied with a large vendor pre-sales force to make the first “ have a look” or proof of concept installation work. Software is now downloaded and installed by more students , developers , administrators and end-users than any company can support on an individual bases. MySQL is rumored to have a download rate of 50,000 to 70,000 copies per day, imagine having to hand hold every one of these on a per installation basis. Even if all 386,558 IBM employees were MySQL capable they would have a tough time getting 50,000 – 70,000 of them to a different location every day. There is a whole essay to be written on why people intensive models of deployment is on the road to extinction, but we will leave that for later. The second factor at play is where the software is first deployed, which in the case of freely downloadable software is on what I call the “new reference platform for 1 st deployment”. You might call it a laptop or desktop with medium hardware configuration running Windows, Linux or Solaris. In short the shift towards community developed open source software has, by necessity, changed especially the 1 st level deployment from a people/support heavy activity to a “you can do it yourself” model.

More than just the software has changed

These changes in the development, distribution and deployment models for software has not only changed the nature of the software itself but has also changed the reference platform for 1 st level deployment from a large datacenter installation to what is most accessible to individuals. The new reference platform for deployment is no longer a large Sun , IBM or HP server but rather a common laptop or desktop running either Windows , Linux or Solaris.

Popularity: 16%

Hein Open Source , ,