Wednesday, April 3, 2013

Unix and Desktop

I always feel that the fact that Windows is the dominant desktop OS has one technical reason: ease of binary software distribution.

In whatever flavor of Unix, it is quick and easy to write some software working locally, but it is very hard to distribute the written software in binary form that would work universally.

The difficulty of binary distribution stems from the fact Unix has never been a concrete OS. Rather, Unix is an umbrella term for a family of OS.

In a 1995 book called <Porting Unix Software: From Download to Debug>, diversity of Unix is excused as Unix support many architectures. Good point.

However, in a world that almost all desktops run x86, we still get a long list of Linux distributions and we are still facing the old problem.

The difficulty of binary distribution also comes from the tradition of Unix library handling.

Unix systems generally encourage installing library system-wide. In this way, if binary software carry its dependencies, it may overwrite system libraries and cause damage. If binary software carry no dependency, it may not start up at all. Therefore, many software author just throw out some source code, containing their favorite build system (Shell script, Makefile, Autotools, CMake, etc...), and let other people to worry about installation.

Mac OS X is a notable exception.

Firstly, Mac OS X is Mac OS X as Windows is Windows, it is a concrete OS rather than a concept.
Secondly, Mac OS X encourage applications to carry dependencies themselves in an App bundle, that's why we can have .app just works.

Linux based system is quite successful in server and embedded market, why?
Because software working locally is good enough in such applications while Linux is a good kernel.

Android and iOS has Unix under the hood, but the up layer software run-time is replaced entirely. That's why we can have App Store and Google Play.

1 comment:

  1. Couldn't agree more with your points.

    As I've mentioned in one of my earlier blog posts (http://in-gnu-we-trust.blogspot.hk/2011/01/linux.html), it's the freedom and diversity of Linux (or even Unix family) that makes Linux seems to be a more difficult desktop OS for general users.

    Imagine a user new to Linux facing all the choices among different distributions, which use different desktop environments, different language input platforms, and etc.

    In fact, this is also the reason why some big game makers such as Blizzard release their games for Mac but not Linux (http://in-gnu-we-trust.blogspot.hk/2011/01/linux_28.html).

    Also the lack of renowned popular games on Linux desktop also makes some enthusiastic gamers to abandon Linux as their choice of desktop OS.


    ReplyDelete