A Return to Linux on the Workstation

In my day to day work I rely on two systems, a MacBook Pro and a custom built PC workstation. My Mac is used for all my travel needs and communications (email, Jabber, Skype, etc). All my “real work” is done on the workstation which I refresh to the latest and greatest every 3-4 years, run dual headed, etc. Up until about 30 days ago my primary workstation ran some variety of Solaris for nearly 10 years, starting with Solaris 9 when X86 became viable on X86, then OpenSolaris and the various Solaris Express releases and finally Solaris 11 Beta. It was one month ago today that I finally re-installed it with Ubuntu, returning me to Linux officially. Times are a’ changin’… so I thought I’d share the tale of my long experience and the events that brought me back to Linux on the desktop.

As I stated in a recent talk, and then was humored to see quoted on Twitter a couple times since, I never really intended to run a “Solaris Desktop”. I didn’t want a desktop, rather I wanted a server on my desk. Building a desktop operating system is really hard, it involves supporting all manner of new and strange hardware. Its hard enough on desktop PCs but its absolutely redicuous when you consider all the variations of laptops. On my workstation I always installed a standard Intel e1000g dual port NIC, a Sound Blaster 16 or 128, and a well supported NVidia graphics card. So long as I could start an X server on dual displays and start Enlightenment, my window manager of choice, I was happy. The only apps I rely on are a browser and several dozen Eterms… little else. What was important to me was that I had a platform on my desk with which to experiment and prototype on Solaris for later implementation in the data center.

With the addition of ZFS, Solaris became an extremely powerful testing platform. Several large disks in my workstation formed a Zpool on which everything but the base OS was installed. The OS root itself was on a small 16GB SSD (it was bad ass once upon a time). This allowed me to frequently do fresh installs of new releases of Solaris and OpenSolaris. After install, I just imported the Zpool which put my home dir, /usr/local, /opt, etc back into place and I was running again.

What has always bugged me about Solaris is that the software packaging solutions have always been aweful. For a long time we were limited to whatever shipped with Solaris or was available from Blastwave. But Blastwave was little comfort because so frequently a single package install would have an absurd dependency on some very foundational package therefore forcing an upgrade of everything, like it or not, which invariably would break something. In my former Linux days I was fond of Linux from Scratch and latter became a fan of Gentoo, therefore my solution for Solaris was to hand build all my fundamental applications myself and then simply drag those binaries from release to release for a very long period of time. While I appreciated having the latest and greatest Solaris on my desk, I certainly missed the ease of simply installing an RPM and being done. The idea of trying the latest KDE was a seemingly insurmountable challenge and waste of time.

About 30 days ago two factors caused me to finally throw in the towel on Solaris as a workstation OS.

The first was that I finally joined the club of folks who have spilled liquid on their MacBooks. After 3 years of faithful service my Mac was dead. This happened on a Saturday and I suddenly realized that on Monday I’d be unable to join our corporate Jabber channels and I wouldn’t have Skype access. Suddenly I became aware of how much I was relying on my MacBook for daily communication and that I was essentially going to be cut off. Getting all these types of services working on my Solaris workstation was possible, but hardly seemed worth the effort and I only had a day to get back to full capability to be ready for Monday morning.

The second was that Solaris is dead. Illumos is the future of the platform and the desktop options there are very weak. All my work these days is on SmartOS, which is dedicated hypervisor platform, so there was no way I was going to whip it into a workstation platform in short order, not to mention that it’d be a fruitless exercise even if accomplished. It was clear that having a server on my desk that also possessed the basics required for a passable X environment was at an end. Besides that, thanks to KVM support in SmartOS it was becoming increasingly clear that I was completely out of touch with the Linux world which I was now supporting more frequently as a guest OS. And, last but not least, Linux now has ZFS support, so I could theoretically install Linux, get ZFS supported added, and then import all my important filesystems. It was time to return to a Linux workstation.

I’m getting older and lazier, so going back to the Gentoo lifestyle wasn’t interesting to me. Ubuntu continues to be all the rage, so I decided Ubuntu 12.04 was the way to go. And, I turned out to be right… within 4 hours of the MacBook toasting I had installed Ubuntu 12.04, gotten my displays working properly, installed all the software I needed, including Skype and Enlightenment, added ZFS support and mounted my home directory and was looking at my desktop environment as though nothing had happened. It was a wonderful experience.

Getting ZFS Support working with Ubuntu is very simple. Simply install the ZFS for Linux PPA packages and reboot. The only mistake I made was that I initially had installed Ubuntu 32bit, thanks to my outdated Linux knowledge of compatibility issues running a 64bit kernel. On the 32bit kernel ZFS took almost an hour to locate and import the pool… after I reinstalled Ubuntu 12.04 64bit and adding in the ZFS packages again, my Zpool imported just fine. One thing that helped me here was that my pools are very old; in order to provide maximum flexibility in which OpenSolaris release I used, I never allowed my pools to be upgraded, therefore allowing me to run older OS releases if needed, therefore ZFS for Linux had no problems importing my old version pools.

After using ZFS on Linux for some time now I can say that it works very well but the performance is less than stellar. The performance is good enough that I NFS export all my old file systems for use, but bad enough that I created a fresh home directory on ext4.

I did play with Unity a bit before switching back to Enlightenment DR16 (the best window manager ever created). Unity is a really excellent desktop and a first rate contender against Windows 7/8 and even OS X… but ultimately I still prefer the speed and minimalism of an old school window manager. The only thing that actually bugged me about Unity was the way they tried to be very clever about window titles… they sort of blur out from left to right. While I realize its a nifty visual device, to me it looked like a theming mistake and I disliked windows with the title “Firef…”.

One thing that did surprise me about my return to Linux was how little the desktop applications had changed. Finding that Pidgin was still the IM client of choice threw me for a loop. I experimented with Empathy but had horrific stability issues, which is a shame because its a much nicer client than Pidgin. Ultimately I found a theme mix that worked for me and settled on Pidgin was but was sad there weren’t more viable options (yes, there are alternatives, but they sucked more than Pidgin). Getting Skype running easily was a pleasant surprise, no pain not problems and people I called told me it was the best I’d ever sounded on Skype. The other various apps were less exciting than I had hoped, I was sad that Eye of Gnome hadn’t died a long time ago. I think the two high points were realizing that I could use the Arduino IDE on my workstation and looking at Shotwell. Shotwell is an amazing application, but its not enough to convince me to move all my photos out of iPhoto.

In the end, 3 days later I had been issued a replacement MacBook Pro which I got just as Mountain Lion released. Thankfully installing Mountain Lion and then recovering from my TimeMachine backup went well and I was back to my normal workflows. While I’m sad that, at least for me, the era of Solaris as a viable workstation had come to an end, I am glad at all the new life Illumos distros have as first class server OS’s. I may not have the server on my desk any more but the era of the all-things-to-all-people OS is, imho, done.

37 Responses to “A Return to Linux on the Workstation”

  1. Nice post, I use exactly the same setup but I stick with Unity.

    I actually didn’t knew ZFS was already running outside Fuse, so thank you for that.

    Do you advice any specific home made setup for SmartOS?

    Thanks

  2. Dirk Deimeke says:

    I chose Bodhi Linux which gives a recent Enlightenment on top of Ubuntu LTS. Thanks for your report.

  3. Jake says:

    Useful and interesting post!

  4. Wayne Reading says:

    No offence but it isn’t really a workstation unless it runs a real workstation grade OS like OS X. Linux is great if all you do all day is play around with distributions, but as soon as you want to do some real work you really need something that *just works*.

    • Brian says:

      Wayne, for development workstations, Linux “just works”. OSX is a time suck of configuration, downloads, inconsistent packaging, weird issues, etc.

      • Brian says:

        No offence :-)

        • mahazancua says:

          I have been working with linux for ten years, and it’s very clear there are problems but if you don’t like the problems the code is free too, fix it the problems and please don’t critize the work of the community.

          pst: No Offence :P

    • Mike says:

      I’ve been using Linux as a workstation for several years. It “just works” fine for me, handling everything from system admin and programming work to data analysis. Aside from GUI sugar, which I try to avoid anyway, I don’t see anything compelling in OS X relevant to my use case. If I was doing high end graphic or video work, it might be a different story, but right now Linux works just nicely for me.

      I’m also a Sun guy from a lot farther back than I prefer to admit these days. I personally think Solaris lost the cold war with Linux years ago. Sun just didn’t give up. Application lock in has kept a lot of Solaris workstations alive, just as it’s kept Windows desktops alive. People don’t care so much about the OS. It’s all about what you can run on it.

    • madprops says:

      I’m actually very productive on linuz

    • tutuca says:

      LOL, troll harder.

    • Kevin says:

      Ever try doing python development on mac os x? You’ll quickly realize how linux is a “real workstation grade os” and how everything “just works”.

    • benr says:

      OS X isn’t workstation grade. Sorry. Your point is valid if your primary tools are Excel or OmniGraffle or similar office productivity applications.

      If your working with code, working with infrastructure components, etc, all thats developed on Linux and therefore it is the optimal OS for real work.

      As I noted, I use OS X on my laptop for such office productivity apps and my workstation for what is, in my case, “real work”.

    • James says:

      Not sure if troll or actually dumb.

  5. Dennis says:

    Yeah, I’m about to that point of converting my workstation at work from the Sun Blade 150, running Solaris 10 with benr’s e-16 packages. :)

    That is awesome to know that Ubuntu can utilize ZFS, so that might get me to make the switch sooner rather than later.

  6. devon says:

    I used to do Linux From Scratch as well. I migrated to Crux, and then followed its evolution to Arch Linux. I’m not really an advocate by nature, but the package management on Arch is superb. It’s very easy to build your own packages in those cases where you need to, and to submit them to the community repo. If and when you’re ready to move on from Ubuntu, Arch is definitely worth a look.

  7. irukandji says:

    Common, from solaris to linux, you are joking. I would recomend reconsidering, go for freebsd, you have zfs there (the most complete non solaris implementation) while you can also try dragonfly bsd and hammer, which imho beats the zfs (vms style auto versioning), unfortunally os is still a bit cutting – edge.

    Stay away from linux, there are dragons :D

  8. Mike Russo says:

    Welcome back! :) Although I use E17 every day and not E16, Linux is definitely a fast and useful desktop and KVM is more than adequate to run a VM of Windows 7 for those apps that require it.

  9. Phil says:

    I was playing with the idea of running Linux or another X11 based desktop in a KVM instance or zone on SmartOS or another illumos based distro. I see some challenges getting that to work well, but since you’re not mentioning such an option, it might be just a foolish thought?

    • Pat on Slack says:

      That is what I do – I run a minimal Linux (Slackware + fvwm2) & use VMPlayer to run my Microsoft OS’s. All my servers are headless Slackware boxes, and a few MS that I rdesktop into.

      On the few occasions that I want more functionality local I’ll either boot my Linux Mint vm or start a local VNC server with KDE. I love hating computers and I hate loving them…

  10. David Magda says:

    If you want a convenient desktop system with many Solaris-y features (DTrace, ZFS) you may want to check out PC-BSD: http://www.pcbsd.org/

    It’s based off of FreeBSD but is packaged in a more convenient fashion for general use. If you have a spare moment you may want to check it out (even if it’s just playing around in a (VirtualBox?) VM).

    • benr says:

      Great point, but I just can’t handle BSD. I’ve always had a SysV frame of mind and working low level in any BSD OS drives me nuts. I wish I didn’t have this personal flaw… BSD has a lot to offer and is, of course, the best license in the world.

  11. Pete says:

    The *nix desktop landscape is really wacked out these days. Those in the States, at least the more affluent parts anyway, have flocked to the Mac and as Ben indicates, they have a strong affinity to the Apple apps, like iPhoto, iTunes. And they like watching movies with no hassles, and wireless that just works. It’s always strange, however, to hear Mac people say that they just want a minimal/fast desktop when they use Linux systems. Why is it ok to have your Mac desktop all tricked out but all you want is a few eterms when on Linux? Why use a Linux desktop at all? Hook up your dual heads to your Mac and be done with it? What are we pidgin users missing vs. the MacOSX IM experience? It sounds like there are some major gaps.

  12. Trey Jones says:

    I work on a Macbook Pro, and write code in that environment, but 95% of my code is executed on any of various linux VMs that I run for development. Most of them are Debian. None of them have window managers (duh). I have tried enlightenment E16 and E17 briefly in the past, and I actually thought they were pretty good, but my favorite minimalist setup ended up being OpenBox. Finally, I recently did an install of ArchLinux with XFCE4 on an old netbook and was absolutely floored by how nice it works. And I hate Unity. Haven’t given it much of a shot to be honest, but that’s because I’m so turned off by it immediately. I first got into linux with Ubuntu when it was running Gnome 2 by default, which I still think is far superior to the Unity setup.

  13. Tommy says:

    I’m currently stuck on a MacBook for a few months, after ~10 years of working on Linux. I can testify that OSX does not \just work\. It’s close enough to Linux to make work possible, but it’s too much work to setup a usable environment. I’m gonna cry tears of joy the next time I turn on a machine to work and see an Ubuntu logo.

  14. Amanjit Gill says:

    Used Windowmaker exclusively for about 10 years. Now, I migrated to LXDE (using the Clearlooks “style”). Hope this desktop environment remains stable for at least 10 years to come. Reminds me of GNOME 2. GNOME3 / Unity is the wrong path

  15. It would have been interesting to have you try my illumos pkgsrc packages, a lot of desktop stuff is built but I don’t know of anyone specifically using them so I’ve no idea if they work or not :)

  16. Trond Norbye says:

    I use a mix of Solaris, Linux, Mac OSX for my development tasks. For writing code I’m fine with the Linux/Mac box, but when I need to debug stuff I always miss my Solaris box and the tools there…

  17. Jeff spiller says:

    Solaris was always my favorite of the UNIX severs OS’s. It was well designed and easy to deal with. It’s sad that it’s, for all intensive purposes, gone.

  18. Tom says:

    I gave up my last Solaris in 2002 w/ Solaris 8 I think.
    I started w/ SunOS and olvm -> tvwm then onto Solaris. I never got CDE. Gnome was ok, but never as good as on Linux.

    I’ve had a windows system w/ Cygwin. MacOSX 10.3 at one point. They would probably be ok for at home, but at work, I want 2 monitors and virtual workspaces.

    I run Scientific Linux which mirrors the servers I run RHEL on. For VMs I run VirtualBox. For Windows, I rdesktop to my laptop to get corporate Exchange/Sharepoint.

    At home, Ubuntu on the laptops and Debian/Ubuntu with ZFS on the servers. I store most data on servers where it belongs. Thanks to Unix, I’m just a network connection away.

  19. UX-admin says:

    “What has always bugged me about Solaris is that the software packaging solutions have always been aweful. For a long time we were limited to whatever shipped with Solaris or was available from Blastwave. But Blastwave was little comfort because so frequently a single package install would have an absurd dependency on some very foundational package therefore forcing an upgrade of everything, like it or not, which invariably would break something.”

    Didn’t I tell you a long, long time ago that you have to build your own software stack?

    I followed my own advice, and built myself one: for years I toiled slowly building software I needed package-by-package, but now everything is packaged and in a source code repository, I have a completely stable and supported software stack, and this long term strategy is starting to pay big time dividends.

    Now, time is always against us, and free time is at a premium, but doing this in a systematic and disciplined way on a package-by-package basis (and using an SCM for packages), little by little works. Rome wasn’t built in a day, and a private software stack is no trivial thing.

    “While I appreciated having the latest and greatest Solaris on my desk, I certainly missed the ease of simply installing an RPM and being done. The idea of trying the latest KDE was a seemingly insurmountable challenge and waste of time.”

    That is the effect, not the root cause. You do realize, that the root cause is that SunOS is not the primary development platform of these projects? If it were, then these projects would offer their software as products fully integrated into the operating system, like they do for GNU/Linux operating systems, their primary development platforms.

    However, times, as you wrote, they are a’ changing. SmartOS is popularizing SunOS again as a hyervisor superior to the competition, even commercial competition. For example, there are very capable commercial hypervisors out there, but how many of those, how many of the competition in general are also a superior storage platform? None.

    In a sense, SmartOS has no competition.

    Silicon valley startups are keen on embracing new technology, especially technology like SmartOS which makes it easy to “get shit done fast”.

    The clock is ticking… I predict that it is only a matter of time before someone starts adding desktop components to SmartOS. Of course, if you people at Joyent actually figured out what it is that you want to be doing with this NetBSD’s pkgsrc thing, that would help matters tremendously.

    What would probably gain you instant and significant userbase is continuing development on SVR4 software management subsystem… banks, military and insurance companies are up to their throats in Solaris 10, and soon, they will need a way out.

    Finally, I predict that the best desktop OS ever will come from a server OS. One can not build a good product without a solid foundation, and only server-grade operating systems offer such a thing.

  20. UX-admin says:

    “f you want a convenient desktop system with many Solaris-y features (DTrace, ZFS) you may want to check out PC-BSD: http://www.pcbsd.org/

    It’s based off of FreeBSD but is packaged in a more convenient fashion for general use.”

    Tell me which software management subsystem PC-BSD uses and I will tell you how good it is.

  21. svrocket says:

    Meh, Solaris may be dead, but there is still nothing better than Solaris 11/Opensolaris with winXP running in a virtualbox with SSDs and ZFS underneath.
    It’s going on 5 years now in this configuration, and it shows no signs of stopping.

    Enjoy your pre-installed amazon banner ads in Ubuntu! And you consider that progress and freedom?

    The hardware and graphics support in the FreeBSDs is so pathetic, I spit in your general direction. I’d use Solaris 9+CDE FOREVER before I’d waste even one more afternoon with the xxxBSDs.

  22. Chris says:

    Can’t we all just get along? I haven’t used Solaris on the desktop for nearly 10 years, but then all I want from a work desktop is fvwm, firefox, and a bunch of -terms. Ok, actually I still use rxvt, and I don’t even know why! In the mid-90s I got used to focus-on-pointer and shift-clicking to manipulate windows and I haven’t found any need to move onto a different window manager – or a windowing system that handles these features! TBH, I’m amazed fvwm is packaged in any recent Linux distro.

    Solaris was my favourite server OS to manage, and I actively celebrated the simplistic package management – taking the build your own stack approach – and I shiver when I see Linux admins these days yum/aptitude/etc installing packages and watching all these dependencies getting dragged in. Ick. But I guess time has moved on.

    FreeBSD was also a pleasure to manage. And out of work I primarily use a macbook now. Why? The applications are better, the hardware is better, and you don’t need a mouse.

    The UI development toolkit for OSX is just far superior and consistent to anything I’ve seen for Linux, and the various flavours of CDE/Gnome/Java crap mean Linux GUIs are going to remain horrible looking for years to come. Ahh the benefits of a company controlling the standards.

    • Anonymous Coward says:

      I don’t really understand what you mean with “Linux GUIs are going to remain horrible looking”. I had to use a Mac at work for a year, it may have looked nicer than some Gnome desktop, but then there’s KDE and theming, whereas there’s not much you can do to OSX if you find it annoying.

      Featurewise I couldn’t stand OSX – the first hurdle is dealing with apps which open multiple windows. I was relieved and happy when I could go back to a KDE desktop for work (regardless of what others might think of KDE).

      Thing is, besides several shells, a few browsers, an IDE, a text editor and the likes I also use quite a handful of apps which sit in various panels, the tray, additional panels containing widgets and app icons, and I do use them all. There’s simply no way you can get the same setup with OSX, IME.

  23. Bjorn Nygren says:

    I realy liked the detailed explanation on why the switch to Ubuntu happened.
    I recognize almost every thing you related to. Ubuntu wins and Oracle loses.

    The only difference is that i use btrfs on my home partitions. It also swallows some cpu capacity compared to zfs on linux.
    Zfs on linux is MUCH more easy to administer than btrfs. Maybe i will switch back to zfs on linux after this reading.

    Happy computing.

  24. Anonymous Coward says:

    Same here – using Kubuntu from 9.10 – was the first distro to install on my desktop from that time without even a single driver mishap, never had any drivers problem since then, although I don’t choose my hardware to be specifically Linux-compatible. Unlike you, however, I do like eye candy, and I especially like it when Mac owners look at my Asus laptop, try to mimick my eye candy setup on their Macs and fail. It may not be nice, but it is definitely showing how far Linux for the desktop has come.

    OTOH, at work we have two supported desktop OSes: W7 and Ubuntu. I got one other team member to switch to Linux so far, and probably two more will follow soon – not because I bugged them, simply because they saw me doing things much easier and faster on Linux than they are able to do them on Windows.

  25. Ryan says:

    cool post, glade to know zfs on linux works well. I will have a try.