Is Ubuntu an Operating System?

Is Ubuntu an operating system? Last week at EuroOSCON, Mark Shuttleworth gave the closing keynote outlining what he believes are the major struggles faced by the open-source/free-software community. During his talk, it became clear that Ubuntu is trying to achieve a radical shift in the software world. Ubuntu isn’t trying to be a platform for mass-market application software: it is trying to be the primary provider of both the operating system and all the application software that a typical user would want to run on his machine. Most Linux distributions are like this, and I think it is a dangerous trend that will stifle innovation and usability, or even worse make the desktop irrelevant.

Mr. Shuttleworth’s initial point was one that few people disagree with: that software installers are bad for users and usability. Indeed, the typical method of installing Windows software (downloading a setup.exe file from a website or running it from a CD) manages the software very poorly. Each vendor must construct its own scheme for where to install, how to update, and most of all how to manage dependencies between pieces of software. Of course, Windows has guidelines about installing to C:\Program Files\Vendor\Application Name, but even Microsoft does not consistantly follow the rules. Everyone recognizes that installers are not good for users, even Microsoft, who in an effort to fix the mess invented the (complicated and poorly-tooled) MSI installer format. Apple uses disk images, application bundles, and relocatable software to avoid the problem. It is good to see a major Linux distribution thinking through the problems that installers present.

Mr. Shuttleworth’s statements, however, go much deeper than the technical deficiencies of Windows installers. He talked about how Ubuntu was leading a paradigm shift away from “users installing software” towards a system where all the software a user needs is provided by the operating system. Ubuntu should provide all the software a users needs or wants in the packages. Does that mean that users should not be installing software directly? According to Mr. Shuttleworth, the way to provide a good user experience is for users’ software should be provided by the central Ubuntu repository and managed through the Ubuntu update system.

Granted, Ubuntu has done a good job of making the Linux desktop usable1. A properly managed centralized software repository can make it a lot easier for users to confidently choose software that is tested and compatible with their system. By releasing an entire set of software that has been tested together, Ubuntu can provide the necessary support to guarantee the suite will work together more seamlessly and provide a better user experience.

Users must be able to make their own software installation decisions.

People use Windows because the software they want uses Windows2. People have an amazing variety of wants. There are those who cannot install Linux because a particular piece of software they need is not available, be it InDesign or a specialized accounting program, or any number of new products that have yet to be conceived.

Free-software fundamentalists and practicalists often loudly disagree whether encouraging proprietary software on Linux is irresponsible or essential. It is either misguided or arrogant, however, to think that all users’ needs can be met by a central software repository, even if all software were open-source and free. Some of the best software available today started out small, was distributed on the internet, and made popular by word of mouth. The impetus of “Download Now” is strong, and promotes healthy competition and diversity. Whether a video player by a startup company or a newly-released version of Firefox that hasn’t yet made it to the central repository, stumbling blocks in the software distribution process caused by this centralization will reduce the ability for small projects to promote new software through viral marketing.

This is not an absolute restriction. Authors could provide the download as a .tar.bz2 archive or even .deb package, but those types of packages require the user to perform complicated actions such as opening a terminal and knowing the magic incantation. Ubuntu cannot prevent users from installing software, but it does intentionally make installation difficult. If Ubuntu achieves mainstream status, an alternative packaging format that allows users an easy way to install software will inevitably emerge (e.g. AutoPackage). Instead of fighting this tendency, Ubuntu should embrace the world of “external” software, and provide a simple and standard way for users to install these packages.

If application developers can’t attract users to the desktop, the only alternative is for new applications to be deployed entirely on the web. Although some people believe that the trend of applications moving onto the web is irreversable, I’m more optimistic. There is value, power, and security in the desktop. But without cooperation, I certainly wouldn’t plan to deploy my next application on Linux.

Allowing users to install their own software does have some consequences. Unfortunately, the discussion of how the software should be packaged and distributed quickly devolves into flamewars over the relative merits of RPMs, dpkg, or <insert technology here>. This is counterproductive, ignoring the fundamental issue: Linux software is typically not a self-contained package that could be placed in a single directory. A collection of files that are variously placed in /usr/bin, /usr/share/man, and perhaps many other locations, making it very difficult to relocate binary software because library dependencies are resolved to a fixed set of paths, and never relative to the binary location.

I do not pretend to have a solution in hand for installing software on Linux. I think that Mac-style application bundles could be made to work, but supporting them would require additional features in the dynamic linker, along with something like mac Launch Services to provide good cross-application integration. In addition, since regular software updates are an essential part of modern system security, it is important to have a good and simple way to update software. If distributing software in relocatable packages is completely impractical for technical or social reasons, the same problem could perhaps be solved by allowing users to easily install packages from non-default software repositories.

The final (and perhaps most pernicious) problem when thinking about redistributable software is the ongoing binary incompatibility between various Linux distributions and between versions of the same Linux distribution. While it is important not to hold back development of new features, it is a problem that every major operating system has had to face, and has faced (more or less) successfully. This is a problem that needs to be faced at all levels of the software stack, from the compiler to final packaging. Perhaps, if Linux in general and Ubuntu in particular continue to disclaim responsibility for ABI changes, software will use managed runtimes or scripting languages out of necessity to isolate itself from the shenanigans of the underlying OS. As it is, creating software that is compatible with multiple Linux distributions in multiple flavors is a nightmare.

This attitude is not unique to Ubuntu. Although this essay is inspired by an Ubuntu keynote, it applies to all the Linux distributions. Ubuntu should not be marked for special criticism, except that I hoped their focus on users and usability would lead to better appreciation of and support for user-installed software. Since Linux vendors are typically in the support business, they can define a set of software that they package and support; they have little financial incentive to do serious work on binary compatibility or software installation.

Free-software zealots may be also to blame: “users have the software source code, they are free to compile and install it themselves!”, mixing a philosophy and a technical decision which are not inherently related. Human nature wants software that works, and this includes software which can be installed and tried without the technical prowess needed to unpack software and run “configure && make && make install” and interpret the resulting console spew to figure out whether it succeeded or not and then figure out that you really needed make 3.80, and your gnome headers are too old, or too new, etc.. The issues of licensing software freely should be divorced from the ability of users to install and use the software.

In the process of creating a usable and supportable Linux, Ubuntu has created a software cathedral with “more than 16,000 pieces of software”3. I do not wish to disparage this effort; this cathedral has produced a usable Linux desktop. But the Linux desktop must also provide a method for users to install software from the bazaar. Unless Linux provides a software installation mechanism, the central Ubuntu software repository will stifle the development of the software it is designed to distribute and protect.

Notes:

  1. # Why did Ubuntu choose the obnoxiously self-gratifying motto “linux for human beings”? Of course it’s for human beings; the question is whether those humans can use it.
  2. # For the purposes of this essay, it’s not important why developers write software for Windows, or whether the application/OS cycle is vicious or virtuous.
  3. # http://www.ubuntu.com/, 2-Oct-2006

Atom Feed for Comments 62 Responses to “Is Ubuntu an Operating System?”

  1. Robert Accettura’s Fun With Wordage » Blog Archive » Installer Mess Says:

    […] Benjamin Smedberg has an interesting post on Ubuntu and it’s effort to be a provider of not only the OS, but the software around it. I think the ’solution’ Ubuntu choose is really a workaround for a fundamental flaw in Linux. Getting software to run quickly and easily without intimate knowledge of the OS is tough at best. […]

  2. kapil Says:

    i recently used ubuntu after using redhat 9,fedora 3,4,5 redhat enterprise edition,mepis,knoppix and finally windows
    but , the package qualities,software updates and ease of user that it provided ,i never felt before . Total installation and configuration along with upgrading took not more than 30 min. This was more than i expected.
    I will burn 10 cds and distribute them to friends for sure….Hats off to the developers there ,making such cool
    applications available for the community.
    Atleast every student and IT-professional should use this and support UBUNTU

  3. dmw Says:

    The unix file system hierarchy is dead simple, logical. It only takes a few minutes to learn. And for the most part you would not need to anyway. The make install command puts the builds (that you created with make) in the correct directories. Not sure where something is? Use slocate, which, or beagle and you will know where it is in seconds. Your package can’t find a library, then find that library and soft link it to the place where your binary is looking.

    Ubuntu’s software cathedral? That’s Debian damnit! Oh and no solution in hand for installing software on Debian-style OSs without apt. Gee whiz that’s a tough one… oh wait dpkg! Huh, why didn’t I think of that? And if you look you might be surprised to find out that every major distro has tools to do just that, install binary blobs outside of official repos.

    There are many ways to install software without using apt. Certainly apt is the easiest, but there are many ways to avoid being tied to it. I think you even misunderstood the essential point that you built your rant around. Ubuntu is not trying to make it impossible to install software by finding builds online. They are trying to make it so that you don’t have to do that. That is very different, and it’s an admirable goal.

    If you were using linux back when it was all about rpm hell and slack tgz’s you would understand how great Debian and Ubuntu’s goals are towards approaching centralized software repos. They have been working for years to banish the dependency hell that made installing software on linux a pain in the ass. Having a repo with everything in it doesn’t take away you freedom. It gives you freedom. It gives you the choice between quickly grabbing that stable but dated build there or taking the time to get the current but untested version off the project website.

  4. Erik's Stuff Says:

    Installing Software on Linux, the Mac way……

    For quite some time, I’ve felt that installing software on linux is … well.. not without problems.

    There is a very nice blog about this titled “Is Ubuntu an operating system?” I do agree with most of what this blog is saying….

  5. fredinvancouver Says:

    I loaded up Ubuntu last week on my home computer and have had a frustrating time trying to load packages (I have little Linux experience). I find something I want (ex. Limewire) and it turns out to be an .rpm file and it isn’t easy to “convert” or use ‘Smart” (which I can’t even download). I have used Suse at work for a little while and it is much easier. How about all you Linux guys out there forget all the different flovours and give us users a system that is easy to use.

  6. Ben Bucksch Says:

    Been there, done that, both as long-time Linux user of all distros, and as distributor, I completely agree.
    I wish it was so easy as with Mac packages. But with OS-wide update mechanism which custom apps can tap into. (But that means that the Firefox AutoUpdate must be removed in that pacakge, with all license implications.)

  7. Stefan Berka Says:

    Ubuntu is one of my favoured linux distribution. It is an amazing project startet by an single (rich) person. It is much more userfriendly than other distros.

  8. m1scha_m Says:

    I have been testing Firefox nightlies since mozilla0.8x. Always on a Windows machine.

    I have just installed Ubuntu on one of my machines, and attempted to download the current nightly for linux.

    Do you think I can install it? Of course not. It involves at least 10 steps. What ‘everyday’ computer user in their right mind wants to use an operating system that requires them to conduct an intensive conversation with their computer, just to install a simple program?

    Until linux comes up[ with a single/double click method of installing a program, it will never be accepted by the mainstream computer user. Anyone who disagrees can only be classified as a one-eyed enthusiast.

    If that is their attitude, it can only mean they consider linux to be meant for enthusiasts only.

  9. Ben Says:

    I think Rick James, reflects the attitude of a lot of the Linux based OS users and creators. They piss and moan about Microsoft is big and bad and that Linux should be the big OS in charge, then if you tell them their software is only usable by a computer science major they cuss you out. Computers were designed to help people complete tasks faster, not to give anal retentive know nothings something to do that makes them feel important and in control.

    I suppose that knowing the back side of the Linux kernel might make a person feel important. But really, who gives a crap?

    I recently installed Ubuntu, and have had nothing but problems getting the video driver to work. I am grateful that a nice person on Ubuntu’s website was nice enough to help me. However, I shouldn’t need help! I should be able to put a disc in, or download my driver, and double click and have it fixed. That is how easy windows is. I develop software in .NET, so I thought I would download mono and monodevelop to check it out. I can’t even get it to install. It just keeps telling me I don’t have permission, and frankly, I thought command line commands went away with DOS. What a waste of time.

    I suppose that if you are the type of person that likes things to be more difficult than they need to be, then a Linux flavor is good for you. However, if you want an OS that allows you to work fast and make changes quickly, then, for now, Windows is the way to go, even with all of its flaws.

  10. peter_b Says:

    “I thought command line commands went away with DOS. What a waste of time.”

    Command line is coming back at windows 2008 server , ironically.

  11. Ben Says:

    “…and frankly, I thought command line commands went away with DOS. What a waste of time.

    I suppose that if you are the type of person that likes things to be more difficult than they need to be, then a Linux flavor is good for you. However, if you want an OS that allows you to work fast and make changes quickly, then, for now, Windows is the way to go, even with all of its flaws.”

    The command line is very powerful – and much more efficient than a GUI. Even when I use Windows, I use the Command Prompt all the time.
    The Linux command line “allows you to work fast and make changes quickly”. Better than getting repetitive strain injury from the painful way Windows does things. Windows makes “things to be more difficult than they need to be” – Ubuntu can be the simplest Operating System in the world to use, if you want it to be. And when you need absolute control, it’s there too.

  12. john rasno Says:

    From what I can remember is that Ubuntu developers have recommended users not to install .deb packages that were built for debian directly as there are some inconsistencies. Plus this still means that some software vendor must create .deb files specifically for Debian/Ubuntu which is still a pain if you must also make packages for all other linux distros. I personally am waiting until this stuff gets sorted out before I make a complete switch to Linux as I just can’t trust one company to provide me my access to new software.

Leave a Reply