Ubuntu is moving into the rarified class of operating systems that cover x86/x64 clients and servers, ARM-based tablets/smartphones, and commodity cloud instances. Meaning that it's taking on everybody from Microsoft to Red Hat to Apple and Google.
On the cloud front, Canonical's announced compatibility with OpenStack APIs for both internal, Ubuntu-hosted or external clouds speaks to Canonical's attempts to make Ubuntu instances a default choice.
On the client side, Ubuntu's Unity GUI starts to go places where Ubuntu-derivative/associated distros like Linux Mint cannot: onto smartphones and tablets. It took pains for us to obtain a smartphone that would run Ubuntu 13.10, but the Nexus 4 we used is essentially identical in functionality to installations we put on notebooks and virtual machines.
The server version is targeting enterprise scale-out as well as scale-up implementations. Ubuntu server editions are still Debian with Canonical clothing, but thanks to attention paid to hypervisor compatibility and leadership in both the OpenStack compatibility and Amazon Web Services EC2 worlds, 13.10 Server wants to rock rapid rollout and play everywhere, with every hypervisor. That includes stacking application instances inside of itself for what Canonical calls "compactness".
+ ALSO ON NETWORK WORLD Ubuntu 13.10: The good, the bad and the ugly +
It works, and there are aids to rolling out 13.10. But the stability of OpenStack will be a target for criticism as various vendors tilt and mangle OpenStack towards their own pursuits and goals.
Ubuntu 13.10 client
Dubbed Saucy Salamander, the 13.10 client has changed very little from the previous version, although the GUI plumbing underneath is in transition. This may be the last version of Unity that uses X.org underpinnings, as Canonical transitions to the windowing/GUI system Mir and its X.org-Mir translator.
The support life for this OS is only nine months and the next version, 14.04, will be a five-year supported version that might contain the debut of XMir and Mir -- which would be somewhat radical for Canonical in an Long Term Support release.
The Ubuntu Dash dashboard has been upgraded to allow opt-out searches through the Ubuntu One cloud storage service. Queries sent when opted-in are sent to Ubuntu One, and Canonical serves as a proxy information broker among the current 50-plus third-party providers, listed here, sending the results back to the user. Call it: Answers-As-A-Service, or AaaS.
The other hand is that Canonical does store the query and account information associated with the search transactions by Ubuntu One accounts. This information is stored and can be the subject of a subpoena or other order, hence possibly revealing user/query information -- to the chagrin of privacy policies and mandates.
The Dash update, however, is deceptively handy. Yes, Amazon is featured prominently in searches for products. A sampling of various queries was enlightening, and OCD query searchers will become rapidly addicted to the amount and variety of results, when using the uprated Dash. It's perhaps the key secret sauce that makes this edition useful.
Inside this version are updates of the Linux kernel (3.11), Firefox (24), and when we tried to update SAMBA 4.04, it cratered the instance, even though a prior version was installed. The second time was a charm.
Ubuntu Server 13.10
Through installation, we saw no real server changes on the surface. We could choose to install Open SSH, DNS, LAMP, Mail, Print, SAMBA, Tomcat, and/or virtual machine hosts or add a Postgre database. Or our own manual package selection from the installation menu. We tried various combinations in several instances.
Oddly, Canonical still packages MySQL as its default LAMP database, where many in the industry have gone to MariaSQL, a fork of MySQL. Perhaps it's been retained for compatibility sake -- and the fact that Oracle can be hired to make it work.
Part of the reason we like Ubuntu Server 13.10 is the ability to use Juju to spawn app instances into Linux Containers/LXC. Our problem with this is that LXC isn't due to go to production (a 1.0 version) until February of 2014. If you're adventurous, and we were, it's possible to use a Juju charm to deploy applications into containers that are similar to Oracle/Sun's original idea of a container -- with a few additions, such as a bridge with network address translation and unique IP addresses (only IPv4 for now), and other walled-instances that remind us of how SELinux and other neo-virtualization systems can place significant walls around app instances within servers.
The LXC components start with a shared bridge, and several other adaptations that define kernel name space, and kernel addressing -- but not those found in full bare-metal hypervisors, rather, the kind championed by Parallels in their Virtuozzo kernel-sharing scheme. Instances aren't necessarily unique, and they're not as simple as chroot, which redefines user space for partitioning an application.
Prior to 13.10, Juju's behavior was to dutifully launch applications into their own instance, which was fast, but wasn't very efficient, and made a lot of revenue for cloud providers, as they often charge by the instance. It's possible, using the pre-production LXC method, to launch apps into their own containers, and provision the containers on the fly with comparatively simple commands. But this is alpha code, and is still experimental in nature, rather than more mature products whose rules and qualities are comparatively well known.
The LXC setup contains templates that can be used, although some are experimental. We chose to boot a simple application (a WordStar-like text editor) into an AppArmor shell. SELinux barriers and constructs are also supported. We set up an LXC bridge, provisioned it, then stuffed the application inside the container. It takes about 10 lines of code from initial start until the app is deployed, all of which can be built into a script with arguments to provision many containers simultaneously, much as the popular Puppet instance controller product provisions OS instances through a communications bus. Everything can be setup to boot at once, by dependency choice, and/or at restart time. File system mounting is easily supported, and one needs to be careful that file locks don't thwart multiple app instance access.
Although not reviewed here, we tried Canonical's optional Landscape service, which can be hosted internally or by Canonical. It reports conditions of covered Ubuntu instances. It can inform an administrator if instances need updates, has failed in a number of ways, when administrative approval is needed, when certain types of jobs are completed, and when upgrades are available and applied.
It's a bit primitive compared to other third-party packages, and those that are largely OS-specific, like Microsoft System Center. It's possible to watch administrative jobs like cloud populating, as well as dreary desktop instance monitoring.
"The Desktop, The Server, and The Smartphone" sounds like the title to a bad poem, but it's possible to do with Ubuntu 13.10, although the number of smartphones supported today appears to be just two. We had a leftover Nexus 4 from another experiment, and went through the provisioning steps to upgrade it to Ubuntu, via Ubuntu's developer site.
Currently, the smartphone/phablet program is available only to developers and OEMs. We therefore put on our developer hats and gave it a try. The Galaxy Nexus and Nexus 4 are the only phones supported, and only a shell and core apps are available. We used a T-Mobile SIM to make a call. The call worked. The steps in between using an Android 4.2+ phone and running Ubuntu are many.
The phone has to be reflashed, via a USB cable connection. Then, our Nexus had to be unlocked, via the factory OEM unlocking method, all described on the Ubuntu website. Once back into Android Jelly Bean 4.1, we downloaded the image needed, which is a one-way step. This is the step that requires the most patience, as it takes much longer than we expected. We were ready to restart the process when magically, the phone restarted and came up. We made a call, and yes, went to Facebook. It's well-documented, and heavily full of caveats.
Ubuntu warns frequently and dramatically that the process can brick a phone, and we believe this. It's for developers today, but it looks, feels, and behaves like Ubuntu's Unity interface. It's possible if you don't brick the phone on the way to Ubuntu, that you can back-grade to Android, which we did, although it had its own harrowing moments.
The good news is that like other components of this release, Canonical tips its hand where it's going, the undertaking they're going through to bring a cross-platform user interface into (hopefully) the next LTS release.
This is a spaghetti-against-the-wall release. IT organizations with an Ubuntu focus will want to pay attention to the release, as it's a harbinger of things to come. It has enough in the form of early-release apps that some portions, the attractive ones, aren't ready for release -- just as Microsoft trial-balloons features before they're entirely ready for production. But one quality of this release is that it's a hell of a tease, and more so when the competitors have enormous amounts of capitalization and history behind them. The ideas and momentum seem to be crystalizing, and Canonical has a lot of work ahead of it to take these into reliable production.
How We Tested
We deployed Ubuntu 13.10 on native and virtual machines in our lab and at Expedient/Indy, which hosts our network operations center. We used a limited number of notebooks, principally Lenovo Thinkpads and VMs under Oracle VirtualBox and Microsoft Hyper-V V3. Server bare metal took place on an older Dell server, as well as into VMs on VMware 5.5 running on a Lenovo ThinkServer and Hyper-V V3 on a HP DL-380G8. Although OpenStack constructs are available for these hypervisors and others, we didn't test Hadoop clusters in our examinations.
Henderson is principal researcher for ExtremeLabs, of Bloomington, Ind. He can be reached at email@example.com.
Read more about software in Network World's Software section.