Tuesday, March 19, 2013

The Brief History of Workstation Operating Systems and Beyond

In old days (say, before 1998) it was Solaris that dominated workstation market as Intel CPUs were still not powerful enough to compete with RISC based CPUs. Sun started as a workstation company and it is not accidental that Sun trading symbol was SUNW (SunWorkstations). It was recently changed to Java (badly designed replacement for Cobol), which was a sure sign of company decline.  And acquisition by Oracle followed soon.

But those days are long gone and with them is gone any noticeable Solaris presence in workstation market. Now workstation market is dominated by Windows with linux share stable for many years at single digits. So both linux and Solaris have difficulties of holding the ground against Microsoft dominance. In a way, Linux can be viewed as a parasite OS that feeds of cheap and high quality Microsoft hardware platform called PC. Also with the growing popularity of laptops the distance between Windows and linux as a desktop OS not only do not shrunk but became more and more pronounced.  In fact it is safe to state that if we are guided by the level of market penetration alone, then as a desktop OS linux made very limited progress for the last 15 years of its existence. Truth be told Solaris completely disappeared from the radar screen during the same period.

Web site statistics that we have access to suggests that approximately low teens (10%-13%)  hits comes from linux, approximately the same as Apple.  MacOS X is around 7% (data below does not count iPad. it is probably another 3-5%).  Dominant 70% hits comes from Windows workstations. And linux share is pretty stable for the last 5 years.  In this sense it is clear that linux is growing on desktop but the pace of growth is approximately the same as the pace of growth of  Windows market. And contrary to popular opinion Android does not changed this equation too much.

Here are the data for February 2012:
Windows68.6 %
Windows XP28.4 %
Windows Vista0 %
Windows (unknown version)1 %
Windows NT0.1 %
Windows ME0 %
Windows Vista (LongHorn)3.6 %
Windows Mobile0 %
Windows 980.2 %
Windows 950 %
Windows 733.6 %
Windows 20031 %
Windows 20000.3 %
Windows 3.xx0 %
BSD0.3 %
OpenBSD0.1 %
NetBSD0 %
FreeBSD0.2 %
Linux13.6 %
Zenwalk GNU Linux0 %
Vine Linux0 %
Ubuntu1.7 %
Suse0.2 %
Red Hat0.4 %
PCLinuxOS0 %
Mandriva (or Mandrake)0 %
Gentoo0 %
Fedora0.3 %
Debian0.1 %
Centos0.3 %
Google Android0.5 %
GNU Linux (Unknown or unspecified distribution)9.7 %
Macintosh7.6 %
Mac OS X7.6 %
Mac OS0 %
Others9.7 %
Unknown9 %
Sun Solaris0.3 %
Java Mobile0.1 %
BlackBerry0 %
Symbian OS0 %
Java0 %
Unknown Unix system0 %
Sony PlayStation0 %
OS/20 %
Aix0 %
Nintendo Wii0 %
HP UX0 %
AmigaOS0 %
CP/M0 %
BeOS0 %
Commodore 640 %
QNX0 %
iOS (iPhone/iPod/iPad/...)0 %
OSF Unix0 %

As Linux hasn't made a dent in the desktop after 15 years, there should be some fundamental reasons for this. First of all like is the case with Solaris Linux's best features are not things that matters to end users, but to developers and administrators. The key problem for Linux is that Windows XP is good enough and Windows 7 continued that trend.  In the world on Windows 7 and Snow Leopard most users already have all features they need and more.  Actually Windows 7 knocked down linux even on netbooks where Linux is initially enjoyed some level of success (Ubuntu).

Still Linux represents an important factor for desktop market because of importance of tablets with Android, the importance that Solaris never had. And even before Google became a 300 pound gorilla, Linux really helped to keep Microsoft in check. It also it energized Microsoft in late 90th somewhat helping to protect it from stagnation. Now this role migrated to Google but still historically we should remember about this positive aspect of Linux desktop penetration efforts.

And as hardware power grows, it became  possible to create a nice consumer desktop on the base of POSIX compatible kernel. After all Apple did just that as its newer OS is based on POSIX compatible kernel. But money for development is not here and costs of developing consumer friendly interfaces are extremely high. Ubuntu tries to fight in this niche, but without much success (it got some penetration on netbook, but it proved to be short lived).

One badly needs money, dedication and talent. This combination is very difficult to achieve. Usually only two ingredients are present ;-).  With Windows 7 and Snow Leopard we are taking about very substantial money, as barrier of entry had grown to the sky. It is very difficult and expensive to match features that Windows 7 desktop provides to users. In this sense zero price which was the universal opener for Linux penetration into server market does not work the same way on the desktop.

Only Google probably has the necessary amount of resources to compete with Microsoft, so we will see how it will manage to play the game with Android targeting smart phone market and low end tablets. ARM platform is promising and here presence of Microsoft is less strong althouth this might change with Windows 8 and Microsoft-Nokia pact.  Microsoft was late for the lunch to the smartphone market, althouth with Windows 8 mobile it made significant progress.

Google strategy is to capitalize on its already developed stack of applications including Google voice, Chrome, Maps, Scoreboard, etc. Android phones that include the 'Google Experience' also have Google Search, Google Calendar, Google Maps and Gmail integrated. The first Android phone was released on 22 October 2008 and now  Android dominates smartphone market.  Here is how the same website hits were distributed by OS in 2008

April 2008

Operating SystemsPercent
Windows79.8 %
Linux10 %
Unknown5.1 %
Macintosh3.6 %
Sun Solaris1.1 %
BSD0.1 %
You can see that all-in-all Google & Apple efforts cost Microsoft approximately 10% of the market.
In modern environment if we are talking about user workstation we usually taking about laptop.

Laptop gives developers and administrators important mobility advantages. Also computing speed-wise modem laptops are actually yesterday's servers in disguise :-). As of 2011 this i3, i5 or i7 2-3GHz CPUs and 4-16 GB of RAM. It is not a big deal to have dual boot systems on such powerful machines and/or virtual machine with multiple linux images.

Still Linux can't match Windows as for compatibility. As the standard de-facto Windows works with newer hardware much better then any other OS. Microsoft is essentially an owner of the PC hardware platform which it licensed for free to OEM manufactures (and on which Linux parasites).  For example dual displays is a must for any professional Unix administrators work. It works best on Windows althouth there are many models on which such flavor of Linux as Ubuntu and OpenSuse also work out of the box (Dell, ASUS, Acer, and HP has good compatibility reports for the recent models). Here Ubuntu is the leading distribution. Some Dell laptops are certified to run Ubuntu (Dell E6520 is one example).

 Microsoft is essentially an owner of the PC hardware platform which it licensed for free to OEM manufactures (and on which Linux parasites).

In 2012 after 21 years of development Linux is OK on the laptop, but just OK. If you have laptop with a docking station you face problems that make Linux became much less attractive.  Port replicators are less problematic, but even with them there are typically problems with undocking and re-docking of the laptop. This is a very tricky operations and Microsoft can be commended for debugging it to the level that in comparison with Linux looks almost like perfection. Still even Windows experiences some problems with this operation. For example, if screen resolution in docked configuration is higher that in laptop monitor configuration. The same tricky business is dynamic switching from regular LAN card to wireless on undocking/redocking, the feat for which Microsoft also can be commended.

Ubuntu is probably the best attempt to close the gap and it achieved reasonable success with netbooks and some of Dell hardware. But the cost was betrayal of its System V roots and introduction of "strange" (aka Windows style) daemons. Overall quality of interface in comparison with Windows is much lower. Improving but still much lower.  And neither Ubuntu nor OpenSuse (Open Suse 11 is a very nice desktop offering, the offering which I like better then Ubuntu) has resources to close the gap.  I would give them good marks for the desktop appearance but as soon as you start installing additional packages you recognize that Linux is not Windows and that integration of applications into the OS is almost non-existent -- each looks like an atomic body; interface differences are too annoying between different application even for a professional to adapt. There is no strong drive to uniform look & feel typical for Windows and Apple markets.  With all the limitations that usage of Linux on the desktop (aka laptop) implies you need to be at least of the size of Apple to compete, and chances for success depends on having visionary talent to be ahead of Microsoft steamroller.  So Canonical can compete mainly on price and that's not a good recipe for the growth. Google also currently competes on price but as larger company with independent revenue stream it can promote Android as "loss leader" for a while. OpenSuse 11.2 proved to be  very good, useable free desktop version of Linux somewhat preferable to Ubuntu which for system administrators is too dumb down version, but its future is not clear with troubles for Novel after its privatization and splitting of traditional Novell and Suse businesses.

All-in-all  Windows 7 is more adequate for regular users and at the same time remains attractive for power users as under the hood of "desktop OS for everybody" it packs several power features. Some are unmatched:
  • Quality and uniformity of GUI interface between OS and applications.
  • Common run environment for multiple languages (.NET).
  • Universal built-in scripting language for applications implemented via .NET. 
  • Concept of libraries (virtual folders) and related concept of stored searches.
  • Modern high performance filesystem (NTFS).
  • Window XP mode provides an interesting solution to safe Web browsing.
  • Virtual hard drive images is a storage format that is uniform between built-in Windows image backup and virtual machines.
  • DirectAccess protocol is an interesting alternative to VPN solutions.
  • While I personally prefer Unix shell  now Windows has close relative called Power Shell 2.0 that tries to extend pipeline to streams of objects instead of stream of lines.
But again while I am skeptical about possibility of Linux to extend its desktop/laptop market share I and very positive about the role of  alternative that it played in desktop market (or at least used to play before renaissance of Apple).

Support of professional keyboards

Difference in the level of support of advanced  keyboard capabilities represents another important difference that slow down usage on Linux and all other Unixes on the desktop. Sun actually understood this problem more then other vendors and it pioneered classic "Type5" keyboard that became standard de-facto keyboard for many Unix administrators.  It has an excellent tactile feel and reliability. Paradoxically, some  quality Dell PC keyboards like Dell SK-8135 USB Enhanced Multimedia Keyboard are extremely inexpensive ($12-$15 including shipping on Ebay)  and have similar "professional"  tactile feel despite dirt cheap price.

PC keyboards are different (and more powerful) then traditional serial port keyboard that Unix was designed and all Unixes including Linux (which is amazingly immature in this respect using copycat implementation  of outdated Unix keyboard support). This legacy hold Unix back and most Unixes (with possible exception of Apple) have problems with supporting professional PC keyboards with good tactile feel and macro programming capabilities. Typically such keyboards are marketed as "gaming keyboards".

Common examples of high quality programmable keyboard available include:  Microsoft SideWinder X6,  Logitech G15Logitech G110,  and  Microsoft Natural Ergo Keyboard 4000.    The macro capabilities are actually more useful for system administration then game-playing :-). Althouth the latter can also be handy for relieving stress and compensating for boredom of the second or, God forbid, third shift and long hours ;-).  They can simplifying typing common idioms and save lots of dumb, repetitive  keystrokes such as logging and creating your initial environment.  Of course programs such as Teraterm has their own macro facilities, but programming keyboard have simple and effective mechanism of creating macros on the fly : you type the macro button, then you can type the key to which to assign macro and the body of the macro which can consist of arbitrary keystrokes and then you press macro button again and it is ready to be used.

Another consideration is that as Unix administrators type all day they often develop professional  illness connected with this activity. Typically this carpal tunnel syndrome. From this point of view using high quality advanced keyboard and mice is not a whim but a necessity, especially as the person became older. One of prevention is worth pound of cure.

Cutting number of keystrokes and mouse clicks even by just 10% represents tremendous advantage for a professional Unix admin who is typing all day long. It well worth  additional approximately $50 investment( say $40 for a programmable keyboard plus $20 for a quality 5 button mouse) even if your boss is a Scrooge and does not want to approve such a purchase via his cost center.    Ability to analyze your keyboard activity and preprogram typical commands to specific keys like  entering  command likeCtrl-C (S1 on X6 or Grey / on regular keyboards) ".  ~myid/.profile"(Win-P),  or words like "sudo"(Win-S), "sudo !!"(Win-1),   "Esc wq"(Win-W),  "/var/log"(Win-L)  "/etc/passwd" (Win-P),  "/etc/group"(Win-G), etc  with one keystroke are very useful. You can gradually develop your own stenographic notation for each major task in hand combining aliases, functions and keyboard macros.  Some of this macro capabilities can be imitated using utilities like ArsClip on normal keyboards, but frequently used dual keystrokes like Ctrl-C, Ctrl-Insert, Ctrl-Delete, etc are more difficult to imitate without programming keyboard driver).

It's important to keep the notation very simple  (6-7 entries for a task are OK, double of that can became problematic to remember and need a cheat sheet ).  Excessive zeal in creating too many shortcuts probably hurts the results as you just stop using them at all.

X6  has 6 macro keys, also number pad can be reprogrammed for typical commands in modes 2 and 3 which gives additional 26 keys to play with.  When pushed to its limits Microsoft Intellikey  driver really help cut hand movement and number of clicks quite dramatically: On X6  you can have three sets of keyboard assignments.  If you have some pain in your hands after a working day despite doing regular ergonomic measures like periodic breaks (programs that can block keyboard after certain period forcing you to take a break like Workrave are handy) and right posture, you better study your keyboard activity and find some shortcuts. Ounce prevention is better then the pound of cure.    BTW Workrave can give you keystroke statistics so that you can judge the level of your activity.

One thing that all Unix administrators should do is on any PC  keyboard to reprogram CapsLock to act as Ctrl, like in classic Sun keyboards. That makes Screen command prefix Ctrl-A really logical for PC as it always was for  Sun keyboard users. This is actually a standard Windows capability exposed by various programs like RandyRants SharpKeys.

Another, more questionable,  adjustment useful for VI users is to reprogram  the position of Esc key so that its position became convenient for touch typists.  The options are three  "extended" keys like Left Win, Right Win  and Menu. None of them are usually not used at all and complementary assignments can probably somewhat increase the convenience of using the Esc key in VI.

On X6 you can also assign macro key next to the Tab key to Esc which is probably the most convenient location of Esc for touch typists,  who use VI.

While remapping of basic keys is possible in Linux (see Remapping Keys Under Linux  and The Linux keyboard and console HOWTO), even regular keyboards with additional keys like Dell SK8135 do not work well with Linux: additional keys are mostly useless (might be patched in the future, see dell-wmi add additional keyboard events - Patchwork).  Some Logitech keyboard fare better. See Logitech Internet Navigator keyboard under Linux. Such Windows feature as mouse keys which make possible to simulate pressing of mouse buttons on keyboard are not replicable on Linux (useful for viewing slides when you need to hit "Next" button all the time and it is more convenient to do it using keyboard.
If you want to use some special mouse for presentations like Microsoft Wireless Notebook Presenter Mouse 8000 you face almost insurmountable problems.

Note: You can use a classic Sun Type 6 USB keyboard on Linux with a special patch (see Using a Sun Type 6 USB keyboard on Linux systems)

Support of advanced mice

While mouse is somewhat less important for Unix administrators many of whom work mostly in command line it is still important as significant part of a typical administrator activity is browsing the Web (and not only for technical issues ;-).   Programmable mice greatly simplify browsing.  Ability to tune buttons of  5-7 button mouse to applications  is an important advantage that currently only Windows provides to a full extent.

Linux usually provides 3 button functionality out of the box. Sometime scroll wheel on the mouse also works out of the box. After that you enter terra incognoto and can rely on luck and Google.

The most popular professional mouse is Microsoft Explorer 3 (which has 7 key and is oriented on right hand users) and Microsoft Intellimouse (also 5 keys,It is symmetrical, ambidextrous design). Laser mice also deserves administrator attention as its BlueTrack sensor technology allows using it on surfaces where other mice fail.

Macroprogamming capabilities that Microsoft Intellimouse driver prove to be very useful as can cut the number of click althouth not as dramatically as you can cut the number of keystrokes with a professional keyboard.

For example using additional "thumb" button (left to right-handed user, right for left handed users)  for "back' operation allow to avoid  moving you hand from mouse to keyboard in many situations. the other button can be programmed for Esc or other often used key

Windows provide tremendous diversity for both drivers and supported mice. Along with Microsoft classic Intellimouse driver that are many other sometimes more capable driver like XMouseButtonControl

There is a way to make some functionality of advance mice work, for example horizontal scrolling for Logitech LX 5  but you need to plug the mouse already to the same USB port or reconfigure it manually each time you plug it in a different port.

If you want to use some special mouse for presentations like Microsoft Wireless Notebook Presenter Mouse 8000 you face almost insurmountable problems.

VMware and other virtual machines as a new factor on the desktop

Performance-wise laptops (and close to them small forms factor PCs) have become almost complete substitute for traditional "tower" desktops; in corporate space mostly "engineering workstations" continue to benefit from "tower" form-factor as with the only difference in video adapter they are actually small servers in disguise ;-).  For both Linux and Solaris the most popular virtualized environment is VMware although Xen3 and Microsoft Virtual PC 2007 grows their market shares very rapidly. Such dual OS environment  became the standard professional workstation environment and as I mentioned before is now widely used for complex software demos as well as software training.  For example, if you need a Tivoli consultant to do some custom development or a marketing specialist to demo you some complex application, he/she typically uses laptop with two or three virtual servers under VMware. Actually Intel Duo-based laptops are the fastest growing segment of corporate PC market.

First of all this is a quality of the hardware architecture (CPU instruction set) and the existence of SunPCi cards that can run Windows. Such a tandem is more productive then pure Solaris or pure linux environment and the cost of the card is approximately the same as a copy of VMware for workstations but at the same time distance you more from "corporate desktop" and helps to avoid unnecessary questions. Now when Microsoft virtual PC 2007 is available for free and you can get a notebook with Intel's Core Duo T2400 CPU, 2G of RAM and 80G 7200 RPM drive for less then $1000 (as of mid-2007) this option became slightly less attractive.

VMware provides more flexible solution without sacrificing Windows excellent hardware compatibility and attempt to use linux as a single OS on laptops make sense only in  severe cash strapped circumstances which are beyond the scope of this paper as we are discussing large enterprise environment. The typical laptop in this environment is Dell D630 or better.  Even for home use you can always buy used laptop with Windows preinstalled ( ~$500 for more or less capable used D620 with 2G of RAM and 2GHz or better CPU).

The suggest that future of both linux and Solaris on workstations is running as a sidekick OS under VM.

Also in case of laptops OS X is a power to be reckoned with, so linux does not compete strictly with Windows in this environment. It needs to compete for the harts of the Unix enthusiasts with OX X.  And in this area it fails miserably. There is no question that as for Unix desktop linux developers including Linus Torvalds are of much lesser caliber then Apple developers.  In other words they suck.
But detailed picture is more complex and along with large dark areas there are some bright spots.  For example in 2007 linux recently became an official installation option on desktops for Dell and some other less well-known PC manufactures producing mini-laptops (Asus eeE, etc) with linux preinstalled (at least for now, before they are burned by support costs).   Solaris also became more competitive after Sun adopted equal levels of support for both X86 and SPARC platform.

Also along with virtualization trend (in which the fairy tail of "world domination" now is replaced by harsh reality of co-existence as a minority often in a form of a "guest OS") There is another trend that favors linux in large corporate environment.

Corporate socialism as a powerful promoter of desktop linux in large enterprise environment

Paradoxically some part of linux success is connected with the decisive victory of "Corporate IT socialism"  against capitalism in large corporations :-). This term reflect the common problem of misguided and hypertrophied  role of central planning (often "in the name of security" or SOX compliance, no more no less; as if SOX has anything to do with IT).  And related uncontrolled proliferation of IT bureaucrats who in best "land of socialism" tradition try to enhance their advancement chances by creating clueless or openly harmful all-encompassing policies and procedures. Often they not only demonstrate absence of understanding of any technical issues, but are completely detached from the common sense.

Partially as an overreaction to SOX, partially due to the greed of auditing companies, partially due to stagnation o IT in general, IT management more and more resorts to imposing a severe limitations of Windows functionality in the best "Brezhnev socialism" style.  Such restrictions are damaging to the corporation as a whole not only because they are negatively affecting  productivity and morale, but also because they channel staff energy into studying and creating countermeasure to defeat those measures.  Usage of linux is one pretty common reaction of excessive bureaucratization of Windows environment. Solaris and some flavors of BSD sometimes are also used if the user has an experience with those OSes.

Windows, especially with paranoid micromanagers at the helm as well as the staff at IT security department (which in a large corporation is often a dumping ground for people who cannot be productively used anywhere ;-),  became more and more like IBM terminal. The situation of "don't do this, don't do that" is often enforced via Active Directory. That dramatically increases attractiveness of linux and to lesser extent Solaris and BSD (with such distributions as PC-BSD, see Linux vs. BSD, What's the Difference). To a certain extent that returns linux to its roots as a "rebel OS".

In any case, there is distinct trend that repeat "glass computing center" history on a new level, but where the target of attack by "rebels" become Windows instead of mainframes.  This is especially true if group policies are deployed in such a way that PC became semi-unusable and booting Windows takes 10-15 minutes.  If we remember situation with mainframes and growth of mainframe bureaucracy before the demise of "glass wall datacenters", one can say that this is another example that "History repeats itself, first as tragedy, second as farce".

Perversion of security

Security is actually a very complex topic and better then average security is difficult to achieve as it requires clean, well though out enterprise architecture.  In other words 20% of enterprise security that are connected with architectural issues provide probably 80% of the level of security that can be achieved.

But in large corporation architects of IT, if such group of people exists at all,  are generally detached from security issues and concentrate of issues related to the mission critical applications. That creates an opportunity for security department to hijack some architectural issues, the move that is difficult and dangerous to resist as it is so politically correct. This is also stimulated by greedy and incompetent auditors from big four companies. As talking about security became politically correct and universal "good thing" in large corporate environment many otherwise incompetent IT dwellers realized that it can boost your career promoting polically correct suggestions which are actually extremely actually is damaging to the IT environment.  Active Directory group policies present plenty  of opportunities for such career boosting moves and as a result as a new generation of corporate desktops is rolled out, they are becoming less and less user friendly and more and more restrictive.

I would like to stress that it looks like there is a "secular" (using investment jargon) trend in increasing of the rigidity of Windows environment and proliferation of red tape in the name of compliance and security.  In many ways Windows environment start emulating mainframes (BTW mainframe administrators were universally hated by users ;-).

 In a very paradoxical way Active Directory instead of cementing Windows dominance proved to be the best friend of alternative OSes such as linux and Solaris ;-).  Also it is really amazing how much damage one micromanager in the position of the head of security department can  inflict on unsuspecting users and the company using group policies. Children should never be allowed to play with matches :-).
I think that corporate security always attracted a special type of managers which I might called "over-promoted administrative assistants" with IT skills forever frozen on the level of basic functionality of MS Word, Excel and PowerPoint. Those types might closet sadists but in any case they  have an obsessive desire to create harmful policies and procedures :-).  In case of females such types usually successfully uses their gender as a bulletproof vest.

It looks like out of types enumerated in famous Stephan Zielinski's classification of system administrators (Know your Unix System Administrator) two types flourished under Windows umbrella and have found its way into security groups. Naturally they serve as the best advertisement for alternative operating systems:

  1. The Administrative Fascist.
    Usually a retentive drone (or rarely, a harridan ex-secretary) who has been forced into system administration.
  2. ...
  3. The Idiot.
    Usually a cretin, morphodite, or old COBOL programmer selected to be the system administrator by a committee of cretins, morphodites, and old COBOL programmers

Linux as a counteraction to excessive bureaucratization

Anyway as the tremendous amount of damage that was done in the name of security (or standardization) by some micromanagers And as in any socialist environment the phenomena of "corporate socialism" creates forces of resistance ("IT freedom fighters"). In other works  securitization of Windows environment create a powerful "countervailing forces" that favor  linux and Solaris in a large corporate environment.

While not well organized, this counter-movement aims at "restoring lost freedoms" and aims at weakening or even defeating the most absurd measures imposed by corporate brass.  Like often the case in such situations, members of the "resistance" are generally technically one step ahead of defenders of status quo.

While some of this guerilla war is fought in the Windows space, the most advanced part of the users already started to realize that change of the ground of fighting to less known to the opponent is more powerful strategy. That might partially explain tremendous success of VMware in desktop environment of large corporations: in a very subtle way it became a powerful tool of fighting strangulating restrictions implemented by misguided and incompetent IT micromanagers.

While usage of second PC, dual boot or boot from USB drive can help quite a bit, as soon as you have VMware installed you can install Windows or Linux the way you like on a separate partition (or even in a file) and run it as a guest OS. At this instance you can hide your favorite application. For example is SlickEdit is not allowed because is it not a standard application for a particular corporation, but you have huge experience with this editor, this is the way to solve the problem.

While often this second "custom" instance is Window (as corporations often do not used hardware version. For example Dell supplied registration tags you have a second registration key to install a second instance of Windows without infringing corporate software policy. With 320G drives installed on many laptop (you can actually replace small drive to bigger in most cases) there might be multiple alternative "guest OSes".

Usage of linux increases the distance from the ground occupied by IT micromanagers even further. More over  linux as already shares some corporate applications (for example, Lotus Notes) with Windows so you can be more productive and do not need to switch to Windows for reading your corporate email. It also has huge PR support in mainstream IT press, which makes arguing your case significantly simpler.  One very powerful "politically correct" accusation against the defenders of status quo is, of course,  resisting cost-saving trends and better security ;-). I think any reasonably competent IT staffer can always explain his/her manager why he/she needs linux for software development or administration in a pretty convincing terms.

Linux as a software development environment

Now that's discuss the topic of "classic" software development, the area where Unix should have an advantage over Windows.  There are three major programming languages in this area which dominate in large corporate environment: C, C++ and Java.  In all three cases Solaris on Opteron is pretty competitive with linux but that does not matter much. Windows is even more competitive: due to quality of Visual Studio it became de-facto standard for developing commercial applications.
Still intelligent developers can get some value out of Solaris in two major cases:
  • Developer who often face complex situations when the bug can be OS or libraries related and common tools does not help much. In this case a developer is ready to pay any price for "on the edge of impossible" debugging facilities. That's why Donald Knuth recommended to select a platform and the language not on its intrinsic advantages or disadvantages but based on the quality of the debugging environment. Here Solaris has an edge over Windows and Linux due to the existence of such a brilliant debugging tool as DTrace. DTrace can be used if nothing else work (and actually should be used this way). In a way this is the "last hope" and as such it is priceless. For the same reason Solaris is attractive for applications that need to be heavily optimized as bottlenecks are difficult to spit without careful instrumentation and can be anywhere, not only in the application optimized.   Zones are also a unique debugging tool (because satellite zones are isolated from the root/main zone and can crash without affecting the whole system; that makes dumps much more useful, in fact as useful as they are in mainframe environment. Those who remember history can point to the fact that famous IBM VM/CMS was first created as a debugging tool). As in large corporate environment the software development  is more outsourced and remaining part is more concentrated in research labs  (as with few exceptions "infrastructure-related" software development did not survive outsourcing)  the latter case became a more frequent case then before. All those genome crunching applications running 24 hours or more can really benefit from DTrace-based optimization.  It just stupid to run them on linux where no such thing as DTrace yet exits. The point is that Solaris is attractive for development of complex application in C++ or Java due to availability of DTrace and zones as well as a good compiler suit.
  • Developers who are developing applications for Java. Despite the fact that Microsoft does not support Java directly most Java development is done on Windows. Eclipse is often used as a development platform and despite the fact that it is written in java it is more or less usage ;-). But here Solaris have an advantage of being a "native" platform for Java and not to use this advantage with Solaris 10 freely available means some sacrifices (if and only if the target deployment platform is Unix.)  Linux is weaker platform for java development in comparison with both Windows and Solaris despite IBM pushing of Eclipse for Linux.   It also a weaker platform for running Java applications, especially if Webshere is used (this notoriously complex and semi-reliable middleware is even more semi-reliable in linux ;-).

Open source software development

Linux dominates open source software development space first of all due to availability of well packaged distributions (Debian, Ubuntu) which provide tremendous amount of software development tools "out of the box". Life is short and developers prefer to spend their time developing software not installing applications. But with the developer edition of Solaris 10 it might eventually became a worthwhile contender.  Actually Windows is still contender too and with the availability of such environments as  Cygwin and SFU 3.5. Cygwin is actually a pretty good development environment  is more contender then many open source zealots would like to admit.  More and more developers are using 'tandem" of Windows and Linux with the latter either under VM or as a separate machine.
Both Solaris and linux received a significant boost in workstation space due to the virtualization trend. With the current dual-core CPUs in workstation environment it does not make much sense to run a single OS: modern laptops and desktops are powerful enough to run two or even three OS instances without breaking sweet.  New emerging standard for workstations and corporate desktops is a virtualized environment with both Windows and some flavor of linux or Solaris. Most often virtual environment is installed on Windows as Windows is a standard desktop in most large corporations. VMware Workstation 6 is now a leader in this space but Microsoft Virtual PC also has some adherents (and it is free).

It can be stated that a new type of demos of complex software product emerged due to availability virtual machines. Often they are called virtual appliance demos and come as VMware of Microsoft Virtual PC images. That actually now permit easy demonstration and studying of applications which previously were beyond reach of most enterprise IT staffers with their typical level of overload.  And it helps to avoid blunders that were unavoidable in previous years due to limited exposure to a particular application before making critical decision whether to buy it or not.  All-in-all this is a very progressive development and it can improve the software selection process in large corporate environment.

Abandoned Sun hardware as a software development environment

For non-corporate developers Solaris on UltraSparc can represent an interesting option for economic reasons: a very decent Sun development workstation can be bought for as little as $100  on eBay. For example typical listing in mid 2006 for Ultra 60 workstation with 1G of memory and two 18G drives was $30 plus shipping:
You are bidding on Sun Ultra 60 3D Creator 1024 Ram (2) 18 Gb drives.  This unit has no operating system.  This unit has (2) 360MHz CPU module,  1024 megs of ram and 2 Fujitsu UltraSCSI Drives.. This unit has a DOA  warranty.
And that's an excellent 64-bit software development platform for under $100 -- the deal that not that easy to match even buying Dell workstation or low end server on the same site (note that is has top of the line SCSI controller and two small but high speed (10K RPM)  SCSI drives). If you really need 64-bit operations or addressing but can live with slower CPUs this is a steal. 

Cygwin and SFU

The existence  of Cygwin and SFU 3.5 gives developers a possibility to use NFS to connect to drives on linux of Solaris server  or  OS instance running under VMware on the same PC.  Cygwin also provides more or less adequate emulation of Unix filesystem API in Windows environment, less then SFU 3.5 but quite adequate for, say, Perl development. BTW rarely used but very high quality option here is AT&T Uwin environment.  It contains full NFS implementation and uses ksh93 as a shell. The latest version as of mid-2006 is 4.1.  It provides much better emulation then Cygwin and in some even better then SFU 3.5.

All-in-all linux does have almost universal appeal for developers in large corporate environment  its proponents claim, if only for slightly different reasons ;-).  Very few among highly qualified strata of large corporations IT staffers dismiss linux (mainly as bloatware and overhyped OS; in this case FreeBSD or Solaris is often used instead). Here is the letter to Computerworld editor about an article “Don’t Believe the Hype: The 21 Biggest Technology Flops,” [Computerworld.com, April 4, 2007] which represents this minority view:
My controversial addition would be Linux. It has never lived up to the hype of seven years ago. Back then, unless you were very computer-literate, you would not be able to install it on irregular hardware or correctly configure it to provide all the services and applications Windows users take for granted. Nowadays, Linux has caught up somewhat with providing the services (read: bells and whistles) that Windows users take for granted, but it has ballooned in size to become the bloatware that its earlier proponents had derided in Microsoft’s offerings. When I installed Mandrake 8 with all the bells and whistles, it consumed over 3GB of hard disk.

And with so many variations of Linux, the user base has fragmented.

I will admit that for specific purposes, and with adequate support, Linux can be very good. But has it lived up to the hype it had back then? Definitely not!

Robert Gardner
Port Macquarie, New South Wales, Australia 
That's why some users prefer simpler, more compact distributions like Knoppix.
Please note that it is generally prohibited to use unsupported and non-certified versions of linux in large enterprise environment so installing Fedora or Debian in many places would violate corporate policy. Usually only Red Hat and/or Suse are certified for the usage in large corporate environment (lately Ubuntu joined them in some corporations). Just from the perspective of good governance, enterprise desktops/workstation should have a contract in place and have access to patches and external expertise in case they need it. In most cases installing Debian or Fedora on a spare corporate PC or laptop does not lead to escorting you out of the door by security, although, depending on the boss, might bring you some troubles during performance evaluation the next year :-)

Also as for Fedora, working with alpha version of future Red Hat Enterprise is risky and appeals mainly to beta addicts. But getting a legitimate license for linux desktop distribution is not that easy and in some corporations you can run into a lot of red tape. In extreme case you probably can be better off  paying your own money for supported version of desktop linux just to avoid violation of the corporate policy that prohibits running unsupported OSes on corporate PCs.  Here Solaris can be an attractive and politically correct option as security patches are free.

In Solaris you can use zones which are a different, more lightweight, virtualization solution (see Notes on five different types of virtualization).  While providing less overhead it is less flexible then VMware for developers (does not permit running Windows and Linux simultaneously).  At the same time activities in zones are transparent for the master zone and as such provide interesting opportunities for developers.

In case of SPARC you can get dual Windows/Solaris environment using SunPCi card mentioned above. It's strange that Sun does not support SunPCi on Opteron-based workstations. Other things equal it is often better to have an additional real CPU instead of virtual if both come for approximately the same price (price of  SunPCicoincidentally is equal price of VMware workstation :-).
Still despite Solaris strengths in areas outlined above, linux is more convenient for prototyping and proved to be extremely helpful in corporate environments for fighting corporate red tape. Due to its better compatibility it usually can be installed on a typical "standard corporate desktop" without problems as dual boot system.

Generally in workstation area Solaris needs some "catch-up" as Red Hat "home" advantage of being the platform on which many important open source applications are developed is very difficult to overcome. Here Red Hat plays the role of Windows of Unix world or Microsoft XENIX, if you wish. Like XENIX before it, it become the most common and the most PC friendly flavor of Unix and is probably the most common flavor of desktop/workstation linux that you can find in corporate environment.

I think that the main danger to the value of desktop linux is in fragmentation. Red Hat is currently is an undisputed leader with the largest presence in large corporations. But it received a hole below waterline with the Oracle announcing support for its own distribution. Now both Novell and Ubuntu try to shake off Red Hat dominance and they have some advantages behind them.
Novell is an old OS developer (Netware was for many years the leading networking OS) who at one time was the owner of Unix Labs and produced probably the best early X86 Unix distribution (UnixWare). Recently it made some real progress in penetration of large enterprises with Suse 10. It also helps that Novell is an old networking company which essentially created enterprise networking and Netware still have presence in many large enterprises for file and print services. Due to its past the company has an unsurpassed understanding of Windows compatibility issues and talented staff which created some products that were able successfully complete and outperform Microsoft products. It has approximately 300 engineers working full time on open source code, one of the largest amount in the industry.  As I mentioned before Novell also greatly benefit form the pact with Microsoft which explicitly permits ruining Windows instance under Suse-based XEN. Also Virtual PC 2007 supports running Suse 10 workstation quite well.

Canonical has a talented leader as well as support of many developers, has vibrant community, and Google as a customer.  It also benefits from the fact that it is functioning more like a charity then as a for profit enterprise with the funds of the owner able to subsidize the company for a considerable period of time. That means that it can afford being less profitable. In comparison Novell is still bleeding money and as a public company has substantial pressure from shareholders to provide the return on equity.  Red Hat generally functions as a mutual fund so it is somewhere in between.

In this areas Solaris 10 has the advantage of being "the one, the only".  While alternative distributions exists none can compete with Sun supported Solaris 10 distribution. As for the potential for Solaris to overtake Linux on desktop and workstation I think they are slim: Linux advantage instantly become visible if you need to venture outside a small set of "universally available" open source applications. Many potentially valuable  for  large enterprise "workstation space" open source applications are systematically packaged only for linux, usually for Red Hat and Debian. Recently developers started to package VMware images (virtual appliances) which dramatically simplify evaluation. That does not always mean that those applications are more stable on, say, Red Hat then on Solaris, but the effort of keeping up with the upgrades is definitely less for distributions that package most of the open source software and provide systematic packaged  updates for the largest number of software products.
But if you develop open source applications yourself or perform massive customarization of existing open and complex codebase the situation somewhat changes. We will analyze this situation in more details later.

Full Article: http://www.softpanorama.org/Articles/Linux_vs_Solaris/Deployment_areas/workstations.shtml