Ubuntu vs Fedora: which is best?
15th Nov 2010 | 11:00
How the next generation of desktop Linux distros compare
Ubuntu vs Fedora: Installation
Linux is always in a state of flux. On any given day, millions of lines of new code are being written, tested, double-checked, merged, packaged and downloaded from software repositories delivering another dose of opensource goodness.
Unlike most desktop operating systems, release schedules are based on months rather than years (well, for most flavours of Linux) and so the experience of using Linux is one of trickled iterative change.
One of the very greatest things about running Linux is that the future doesn't have to be that far away: what is new and exciting today can be running on your Linux box tomorrow. Unless you're prepared to download and compile development versions and nightly builds, the best way to try this new software is via the latest version of a modern distro.
And with the releases of Fedora 14 and Ubuntu 10.10 just around the corner, we thought we'd compare how the big two compare when it comes to giving you the best of the future. What you should also learn from this is that trying out the cutting-edge versions of your favourite distro doesn't need to be hard or scary.
You don't even need a spare machine to test things on – thanks to advances in CPUs and virtualisation technology, you can play with tomorrow's technology today…
The first hurdle – do the installers make it easy for us?
In the good old days before Linux Format existed, installing Linux was a bit of a chore. You needed to know exactly what hardware you were using, because was little device probing available, and on many occasions you would probably have to stop the installation process to find out some chip numbers or interface ID numbers.
Things have improved a lot, to the point where it is arguably easier to install Linux than any other OS. Of course, it's still rare to find an off-the-shelf system, so necessity is the mother of better installer routines.
Streamlined and simple
The Ubuntu team, for example, have radically altered their installer for this release to make everything simpler, easier and more efficient. One of the new tricks is to have the installer collect user input (such as usernames and passwords) while the system install is taking place.
Well, we say it is a new trick, but actually several installers of days gone by used to do similar tricks, most notably Caldera Linux circa 2000. Ubuntu just manages to pull this trick off – the responsiveness of entering data is noticeably impeded at times when the installer is busy unpacking things, but unless you are planning to manually install a whole office full of desktops it shouldn't be too annoying.
Shortly after starting the install, you will be given the option of including the Fluendo MP3 codec. This is free to use, but not strictly free software. Most newcomers to Linux aren't aware of the difference, and while it may offend the purists, but it does deliver a better user experience.
It also bears mentioning that there is a new partitioning tool, which makes installation a little friendlier. This is one area in which Fedora differs wildly. Although you can opt for the simple "install it over anything" option, there are other options and more finely grained control of how the disk is to be partitioned, or indeed, which disk to use.
With support for iSCSI, FCoE and mulitipath filesystems, Fedora may go over the top for a desktop install, but you can be pretty sure it will take care of any sensible install target.
Step by step: the Ubuntu installer
1. Restricted codecs
You can now install non-free stuff such as important codecs as part of the install process – definitely a good thing for Linux newbies.
2. Graphical partitioning
Ubuntu now has a more graphical way to set up disks and partitions. With another OS installed, you could drag a slider to resize partitions.
3. Enter user data
Enter your user data and system info while the installer is writing packages to the disk, to save a little bit of time.
Upstart vs SystemD
The boot system that was in universal use until a few years ago was SystemV. This harked back to the early days of Unix, and while it was an acceptable system at the time, priorities change. We no longer use a gang of men in white coats to bring a computer online.
The way computers work has changed too. Ten years ago, you had a hard disk, which existed on a known controller and that was pretty much it. Now there are many more ways to connect storage to a computer and networked filesystems are more common.
Upstart was a project designed to save time and resources in the system startup. Using an event system, the idea was that certain processes get run on demand and aren't just started willy nilly when the computer starts up – for example, there's no point running your printer daemon if there is no printer attached.
Retaining compatibility with old init scripts, it makes extensive use of D-BUS messaging to manage processes and a rule-based system for service activation. Originally released for Ubuntu 6.10 and also adopted by Fedora 9, the Upstart system has managed to bring some sense to the startup procedure and cut precious seconds off the start time too, where parallelisations have been made (spawning more than one task at a time).
Borrowing heavily from the concepts used in Apple's launchd service, which takes care of the init process for Mac OS X, the new SystemD init system does some seemingly crazy things. The idea here is that if you are not using the maximum CPU and disk resource, you aren't doing enough work.
SystemD aims to parallelise as much as possible, essentially starting all the tasks simultaneously, more or less.
Usually this doesn't happen, because many services or daemons rely on others to be already running. But, crucially, that doesn't mean they are going to immediately use them. For example, some daemons may rely on the logging daemon being started, in case they want to write log messages. It doesn't mean that they actually need to write a log message then and there, just that they need to be able to if required.
The SystemD solution to this sort of activity is to pretend to the daemon that the other service is actually already running, allowing it to start up as well. In cases where, for example, the daemon did try to write to the log, the kernel buffers would hold the information until the logging daemon had finished starting up.
That's just one of the concepts behind this fascinating approach to the startup process. You can find out more on Lennart Poettering's blog at http://0pointer.de/blog/projects/systemd.html.
A big change like this is bound to be controversial, and there are no end of people arguing about SystemD right now, but the startup scripts are probably one of the most ancient things in a modern Linux distro. These won't go away overnight though – if ever.
Upstart promised (and delivered) a new way of doing things, but few distros apart from Ubuntu have actually implemented many native rulesystems.
Checking your boot speed with bootchart
1. Get bootchart
On Fedora and some other distros, you'll find the bootchart package in the repositories. It's also a fairly simple build from scratch.
2. Reboot with Bootchart
Assuming you have installed it OK, all you need to do is reboot and choose the Bootchart option (or the option you modified earlier.
When the system has booted up, just open a terminal and type bootchart. This builds a chart out of the log data you collected.
Ubuntu vs Fedora: System matters
Libraries might not be the most exciting pieces of software on your computer, but they can make the other software that you do care about go faster or add more features.
Fedora 14 will be the first distro to incorporate a new JPEG library – libjpeg-turbo. A fork from the original library, it originally came about through the desire to get faster rendering for VNC software. Mainly it does this by using processor enhancements not found in the original library, which promises to deliver a real speed boost.
You don't need to wait for Fedora 14 though: you can grab the source and packages for various distros here: http://sourceforge.net/projects/libjpeg-turbo/files.
Slightly less sexy than libraries for most folks are filesystems. But a filesystem is a key component of the performance of your desktop as a whole – practically every application known to man makes use of the hard drive (yes, even web browsers – where do you think the cache goes?), so a good filesystem is something to be excited about.
The biggest arrival on the scene since ext4 came out is Btrfs. Apart from sparking lively debate about how to say it out loud ("butter-ef-es", "better-ef-es", "be-tree-ef-es"?), it is also being hailed as the next step towards Nirvana for your drives, earning the ringing endorsement of several prominent filesystem developers.
Stable and scalable
Not everything is about speed. Btrfs is a database-like filesystem that boasts some performance enhancers, but it's more about creating reliable, fault-tolerant storage that scales – datacentres for example. There is a lot of development work going on at the moment, but Btrfs has already made its debut as a highlight in OpenSUSE 11.3, and is available in the current version of Fedora.
It was scheduled for Ubuntu's Meerkat release, but has since been put off until 11.04. Although the system is now considered stable, there are few tools available to deal with the filesystem, so it isn't considered production ready by many. You can find the latest updates and more info on the Btrfs wiki at the kernel website (https://btrfs.wiki.kernel.org/index.php/Main_Page).
Loosely connected to the subject of filesystems is the system's bootloader. Ubuntu has been using the almost completely rewritten Grub 2 since 9.10. Amongst other things, this has helped shave a few vital seconds off the boot time, because if Ubuntu is the only OS installed, no menu gets loaded. Also, some of the early stages of the Grub boot process have been eliminated entirely.
Minor changes to Grub include the sensible renumbering of drives and partitions (which now start at 1 instead of 0) and auto-generation of the boot menu – it simply scans the available kernels in the /boot partition.
Fedora still uses the legacy Grub as the default bootloader, missing out on the nice splash screens and such. The packages for Grub 2 do exist, but as the legacy Grub version for Fedora was heavily tweaked, your mileage may vary.
Ubuntu vs Fedora: The desktop
It may seem a little surprising, but Fedora and Ubuntu are not exactly poles apart when it comes to desktop software. As they both use Gnome as the default desktop, there are a fair smattering of Gnome applications included as defaults – Evolution and Empathy, for example.
There are certainly more similarities than differences in terms of the software used – OpenOffice.org, Totem, Firefox, Shotwell…
The last is an interesting case. Ubuntu trialled Shotwell on the Unity netbook environment, and the response was so positive that F-Spot has been dropped altogether from the minimal install (though obviously it is still a supported package).
This gives a slight inkling about what is going on the the desktop space – Ubuntu is more and more focused on the user experience and, if we might be excused for saying it, is taking an Apple-like approach to things by preferring the simple over the complex and the well-integrated over standalone apps.
By contrast, if you ever read the developer lists on Fedora, you will quickly pick up the sense that, while they like things to be nice and neat, there is no general intention to second-guess what users might ultimately want – the goal is to deliver the best and newest software and let the user control the environment it is used in. "Freedom, friends, features, first" is the Fedora mantra.
That first one is possibly still the strongest element of the four, as Fedora is fanatical about omitting software not under an OSI-approved licence (like many codecs, drivers and other useful bits).
The right stuff
The result for the user is that things don't necessarily work as expected. In a fresh installation, Fedora lacks the ability to play MP3 files for example, or many types of video codec. Their way around this is to use PackageKit to suggest non-free software to fill the gap (providing you have configured the necessary repositories).
Ubuntu does exactly the same, except that there is no need to add repositories for GStreamer, for example, as it already exists in the 'unsupported' Ubuntu repository. Similarly, the 'restricted' area contains binary graphics drivers that are non-free software (not available to Fedora users unless you add unofficial repositories).
Why does this difference matter? Ubuntu goes out of the way to make things easier for the user, who often couldn't care less if they are 'tainting' their system, whereas Fedora goes out of its way to do the right thing.
In the case of video drivers for example, they have been extremely pro-active in getting the open source Nouveau driver for Nvidia devices out and tested. Even so, Ubuntu obviously gives the desktop more love, and perhaps has more of an idea about what the users want – it is rather popular after all, despite the constant criticism it comes in for.
An invisible touch
One new area of the populist touch is the integration of social media functionality, by which we mostly mean that Gwibber forms part of the default install and you can use it to let your Facebook or Twitter contacts know what you are up to.
More than that though, Gwibber author Ryan Paul and the development team have worked in conjunction with the Ubuntu desktop team to find ways of exposing the interface at a more fundamental level. This has resulted in the creation of libgwibber, which acts as an API for applications wishing to access microblogging functionality, used to some effect so far by the Ubuntu Software Centre for one.
Although you might question the necessity of letting your Twitter contacts know what you have installed, this is just a taste of what's to come. Code has been released to easily integrate the Gwibber library with any desktop code, so you can expect those little buttons you currently see on blogs to start popping up all over your desktop apps too – maybe.
Apart from just bothering your friends with the fact that you just installed the latest kernel, the Ubuntu Software Centre now has an improved search facility, a history function and a new software store. The integration of a software purchasing scheme is interesting, but what's even more so is what we might see there.
At the moment there's just a dummy app there to demonstrate the functionality, but the idea is that you will be able to buy software and install it through the interface. What software though? Well, that remains to be seen – it would be nice if were along the lines of independent gaming titles rather than corporate anti-virus stuff.
Ubuntu vs Fedora: Virtualisation
Virtualisation – the ability to run one OS as a guest inside another – has been around a long time. In the 60s, IBM researchers built a mainframe that could simulate the hardware of their commercial computer systems, to aid in research and future designs.
Today, virtualisation is everywhere – it has been a key technology for server farms and data centres for most of the current century, as the efficiency gains and ease of use make it a no-brainer for provisioning servers.
Recent advances in processor technology, combined with additions to the Linux kernel, make it easier and more efficient to run hypervisors (the software that controls the virtual machine's access to system resources) which makes it practical to run a virtual machine even on a standard desktop.
Both Fedora and Ubuntu have packages for VirtualBox, once an independent software project, then bought by Sun, then sold to Oracle. VirtualBox Open Source Edition is a neat and simple way to get stuff running easily on the desktop.
Since Fedora Core 6, the Red Hat guys have been pushing Virt-manager, a system to handle virtualisation with native Xen or Qemu/KVM hypervisors. Virt-manager was included in Fedora before it was really ready, but Red Hat has often used the Fedora project as a testing stage for technology really destined for the RHEL commercial distro. In this case it has definitely paid off.
Virt-manager is open source and available on Ubuntu too, but it has matured well in the Fedora distro. Red Hat is keenly involved in virtualisation. In 2008 it bought Qumranet, the company that originally created the KVM code, and continues to maintain and develop it. More recently, they also opened up some of Qumranet's other code, Spice.
On the other hand, Ubuntu has been pretty good at putting a user-friendly face on the technology. TestDrive is a project that helps non-technical users get testing versions of Ubuntu up and running without having to mess around with the virtualisation components themselves.
Step by step: virtualise Ubuntu with TestDrive
1. Install TestDrive
TestDrive will only work on CPUs with hardware virtualisation tech included. You will also need a few unsupported packages, and Qemu.
2. Choose your flavour
Choose the version of Ubuntu you want, then click on the Sync button and the latest version will be fetched via rsync and stored locally.
3. No faffing around
The ISO image is connected to Qemu automatically, so clicking on Run spawns a Qemu session to run the required machine.
Ubuntu vs Fedora: Which is best?
We have a winner – at least, until next time…
There are lots of exciting new technologies coming to the Linux desktop, and some neat refinements of features and software we already had. Both Fedora and Ubuntu, and a whole host of other distros, have a lot to recommend them.
The truth is that there is a distro for everyone. If you want some of the latest technologies, especially in terms of underlying system code, virtual machines and other of-themoment tech, Fedora is a good bet. If you want to have a friendlier desktop experience where your every whim is catered for, Ubuntu would be better for your needs.
And, while we're on the subject, if you want to run KDE, you are probably better off with OpenSUSE. There are certainly more than enough Linuxes to go around.
Giving back to the community
Recently there has been some friction in the Linux community about who contributes to the success of Linux as a whole. This stemmed partly from the publishing of a survey of Gnome developers, which revealed that Red Hat was the largest corporate contributor of commits to the codebase (nearly 17%) followed by Novell (10%), with Canonical/Ubuntu contributing just 1%. Read the details yourself at www.neary-consulting.com/index.php/2010/07/28/gnome-census-report-available.
In a blog post, Canonical's Mark Shuttleworth espoused the view that Ubuntu was giving something back to the community, in its own way:
"I didn't found Ubuntu as a vehicle for getting lots of code written, that didn't seem to me to be what the world needed. It needed a vehicle for getting it out there, that cares about delivering the code we already have in a state of high quality and reliability."
So, who is right? Maybe they both are. It's completely understandable that, for example, some Debian contributor feels that Ubuntu is in some way getting credit for their work. It is also true that, before Ubuntu, Linux was perceived as difficult to use and unsuitable for anyone but the most hardened geek.
Ultimately, all the open source projects and people that work in or around them make contributions to Linux, and because all the Linux distros are part of a shared community, they all contribute too. Which one you choose is really down to what you want to use Linux for.
What is certain is that there is a lot to discover in virtually every different flavour of Linux, so be adventurous – don't just install one and stick with it. With virtual machine technology and a huge range of live distributions, it's easier than ever to take a new version of Linux for a spin.
First published in Linux Format Issue 137
Liked this? Then check out 10 best Linux distros for 2010
Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register