OpenSolaris is my primary desktop operating system since the first official release 2008.05. Since then I get a lot of funny, horrified or sarcastic comments about my choice of OS. Those comments or naive questions can generally be resumed by one of the following sentences :
While those are stated only to amuse they aren't very far from reality considering the part of the world where I live. However, the reasons for this are better left for another blog entry. Most of the time though, the initial comment is followed by an enquiry about why I am using OpenSolaris. This blog entry will try to partially answer that question by enumerating some of the features of the OpenSolaris environment that I like.
Before we begin I would like to clarify a few points. First, this is not a rant about whether or not an OS is better than another one. As such, the discussion will focus on describing the features of OpenSolaris as a desktop system, especially those that I like. I will also skip the server side of things since it's somewhat less relevant to the subject. So if you are searching for a Solaris vs <OS Y> type of article you might have to look elsewhere.
Complimentary screenshot :
As can be seen I'm using a dual screen 3d accelerated desktop with Compiz. Things certainly have come a long way since SunOS...
In no particular order :
First of all I must admit that I have a strong preference for Gnome as a desktop. Whatever OS I would use must be powered by Gnome. It's packed with features, functional and extensively customizable and above all, looks right. Moreover, the default theme and configuration that comes with OSOL is awesome, being lively but keeping a professional look. However, the choice of desktop or theme is a very personal thing and is in part a technical choice and part just a personal preference. As such, a long enumeration of reasons why I like Gnome's look and feel would be somewhat pointless. But some features and applications bundled in Gnome and OpenSolaris do stand out, for me at least.
The screenshot utility
I would like to reserve a special place for this seemingly less significant utility bundled with all Gnome based OS I know of. I name the awesome screenshot utility. This probably makes more sense to anyone who tried to take a screen capture on Windows and was left with only a print-screen key or forced to use some expensive and oh so useless screen capture application. This utility encompass the heart and soul of all OpenSource softwares, it is designed the way the user wants it to be and just work! It's possible, not only to capture the screen but to choose what to capture and whether or not the mouse pointer or window decorations should be included. And the best of all it can save directly to png or copy the result to the clipboard.
Compiz
While not an essential utility for a desktop system Compiz does allow you to modify your window manager functionality in a variety of way. From subtle minimize and maximize effects to outrageous ripples and fire effects including the well known desktop cube. To each his own taste, personally I mostly use it for subtle window effects and the very useful desktop overview extension.
And others...
It would be possible to go on for a while, especially if including stuff available from the IPS or third party software providers. As a final note though, OpenSolaris is primarily developed by Sun Microsystems, consequently it ships with a very stable distribution of Java and OpenOffice. Those two components play a central roles in the usability of OpenSolaris as a desktop system.
ZFS offers countless advantages outside of the server world that can be leveraged to increase the performance and functionality of a workstation. Beside the obvious performance advantage and the ease of management one can count on an extremely reliable file system with advanced features like snapshots and compression.
Performance
The most apparent feature of ZFS is it's performance when deployed on powerful machines. I must insist on the power aspect here, ZFS is designed for a system with memory and cpu cycles to spare scaling with the amount of I/O required. On such a system the user will experience an impressive increase in performance when using ZFS over the legacy Unix File System(UFS). In addition to the effect of the ARC, the ZFS cache, it is also possible to create software raid volume easily and reliably. This enables a workstation to benefit from the performance of RAID arrays on systems with no or dubious quality hardware RAID capabilities. As stated in the documentation hardware RAID should generally not be used as members of a zpool.
Snapshots
Using snapshots it is possible to keep an efficient history of a file system only consuming space when changes are made to the stored data. This can be done on a schedule using automatic snapshots in OpenSolaris with the option of discarding old snapshots when disk space is low. Snapshots whether they were created automatically or by the user can be browsed easily using the time slider available in Nautilus.
In addition to keeping an history of a file system, snapshots greatly reduce the complexity of doing backups. For one, it's possible to take a snapshot of a file system to freeze the view of a file system before transferring files to an external backup. Moreover, when combined with Rsync, ZFS snapshots enables space efficient rolling backup. This is the solution I am currently using on my external backup, that way I can keep very deep rolling backup going several years back.
Finally as the last set of features I will discuss are the observability tools available in OpenSolaris. In addition to the already wide array of system observation and statistic collection tools common to Unix systems, OpenSolaris offers a few other tools worth mentioning. I would like to talk about two of them here, DTrace and mdb.
DTrace
The dynamic tracing framework enables deep introspection of a running system by inserting probes at predetermined or arbitrary locations to trace events in real-time. OpenSolaris contains a wide range of named probes covering most of the system functionality including Kernel memory management and the network stack. It is also possible to trace user processes using function boundary probes or by adding probes directly to the code. In this last case, probes are going to stay dormant until activated by DTrace. Using it's powerful tracing capabilities, DTrace can be very useful for software development as it can be used for both software debugging and as an observation tools to inspect the interaction between an application and it's environment. Additionally, DTrace is designed to be extremely stable since it can be used on live production system (with some care), as such it offers a dependable and reliable diagnostic and observation tool for software developers.
Modular Debugger (mdb)
The modular debugger mdb and it's kernel counterpart sometime called kmdb are advanced debuggers available in Solaris. Contrary to symbolic or source level debuggers like gdb and dbx, mdb excels at debugging binaries without symbolic debugging information or when the source code is not available. As such, it can be used to analyze the core dump of a foreign process as well as debugging a live kernel. An interesting features of mdb when debugging the kernel is that it has access to the entire symbol table for the system and knows the name of variables and parameters for most of the kernel code. While intimidating at first I recommend learning the basic of mdb, it can help a lot when stuck on a crashing process or system.
Closing comments
As I pointed out earlier, this article is a listing of things that I like about OpenSolaris and not a comprehensive description of all of it's features. Of course, there are other features and functionality not discussed here that might be useful to some such as Zones and Containers. All those make for a very dynamic and powerful environment for office production, casual usage and software development. Of course, OpenSolaris still has a few outstanding issues as well as some questionable design choices. But, all in all I find my experience to be rather smooth, considering I nearly always use the latest development build.