Ubuntu is a complete desktop Linux operating system, freely available with both community and professional support. The Ubuntu community is built on the ideas enshrined in the Ubuntu Manifesto: that software should be available free of charge, that software tools should be usable by people in their local language and despite any disabilities, and that people should have the freedom to customize and alter their software in whatever way they see fit. “Ubuntu” is an ancient African word, meaning “humanity to others”. The Ubuntu distribution brings the spirit of Ubuntu to the software world.
What’s New in Ubuntu 16.04
Ubuntu Long Term Support version, version 16.04 (Xenial Xerus), was released on April 21, 2016.
What is a Long Term Support Release?
While new Ubuntu Desktop and Server releases appear every six months, LTS versions are released every two years, and are guaranteed support from Canonical for five years after release. This means that they constitute a stable platform for deploying production systems, and receive security updates and critical bugfixes for a substantial window of time. 16.04 will continue to be updated until April of 2021!
The systemd Init System
Users of Ubuntu 15.10 or Debian Jessie may already be familiar with systemd, which is now the default init system for the majority of mainstream GNU/Linux distributions. On Ubuntu, systemd supplants Canonical’s Upstart. If you make use of custom init scripts, or routinely configure long-running services, you will need to know the basics of systemd. For an overview, read Systemd Essentials: Working with Services, Units, and the Journal.
Ubuntu 16.04 is built on the 4.4 series of Linux Kernels, released in January of 2016.
Ubuntu 16.04 defaults to OpenSSH 7.2p2, which disables the SSH version 1 protocol, and disallows the use of DSA (ssh-dss) keys. If you are using an older key or are required to communicate with a legacy SSH server from your system, you should read the release notes on SSH. Although relatively few DSA keys are still in use, there is some possibility that you may need to generate new keys before performing an upgrade or disabling password-based SSH authentication on a new Ubuntu 16.04 server. For an overview of generating and using new SSH keys, see How To Configure SSH Key-Based Authentication on a Linux Server.
Packaging, Software Distribution, and Containers
At its core, Ubuntu is still built on the Debian project, and by extension on .deb package files managed by Apt, the Advanced Package Tool. The Apt tools have not changed a great deal, although Ubuntu 16.04 upgrades to Apt 1.2, which includes some security improvements. Users migrating from older releases may also wish to consider use of the apt command in place of the traditional apt-get and apt-cache for many package management operations. More detail on the apt command can be found in Package Management Basics: apt, yum, dnf, pkg.
Although most users of Ubuntu in server environments will continue to rely on Apt for package management, 16.04 includes access to a new kind of package called a snap, emerging from Ubuntu’s mobile and Internet of Things development efforts. While snaps are unlikely to be a major factor for server deployments early in 16.04’s lifecycle, Canonical have repeatedly indicated that snaps represent the future of packaging for Ubuntu, so they’re likely to be a development worth following.
LXD is a “container hypervisor”, built around LXC, which in turn is an interface to Linux kernel containment features. You can read an introduction to LXC and a getting-started guide to LXD on linuxcontainers.org.
Ubuntu 16.04 includes a native kernel module for ZFS, an advanced filesystem originating in the 2000s at Sun Microsystems and currently developed for Open Source systems under the umbrella of the OpenZFS project. ZFS combines the traditional roles of a filesystem and volume manager, and offers many compelling features. The decision to distribute ZFS has not been without controversy, drawing criticism over licensing issues from the Software Conservancy and the Free Software Foundation. Nevertheless, ZFS is a promising technology with a long development history—an especially significant consideration for filesystems, which usually require years of work before they are considered mature enough for widespread production use. Systems administrators will likely want to track its adoption in the Linux ecosystem, both from a technical and a legal perspective. You can read more about ZFS on Ubuntu on the Ubuntu Wiki.
Language Runtimes and Development Tools
Go 1.6 was released earlier this year, and is packaged for Ubuntu 16.04.
Ubuntu 16.04’s PHP packages now default to v7.0. PHP 7 offers major performance improvements over its predecessors, along with new features such as scalar type declarations for function parameters and return values. It also deprecates some legacy features and removes a number of extensions. If you are developing or deploying PHP 5 software, code changes or upgrades to newer releases may be necessary before you migrate your application.
Ubuntu 16.04 comes by default with Python 3.5.1 installed as the python3 binary. Users of the Vim editor should note that the default builds of Vim now use Python 3, which may break plugins that rely on Python 2.
The safest course of action in migrating to a major new release is usually to install the distribution from scratch, configure services with careful testing along the way, and migrate application or user data as a separate step.