Fedora 12: Delta-RPMs and Virtualisation
New compilation
The Fedora developers already recompiled virtually all the distribution's components in Fedora 11, instructing the GCC to generate the code using i586 processors as the minimum architecture (GCC option "-march=i586"). In version 12, the project has gone one step further and instructed the GCC to translate the source code for i686 systems as well as to optimise it for Atom processors ("-march=i686 -mtune=atom"). This is designed to optimise the kernel and software performance of modern x86-32 systems. As a result, Constantine no longer works on i586 CPUs like VIA's C3 processors with Ezra or Samuel core, or AMD's Geode GX; it does, however, still work on the Geode LX used in various OLPCs.
The project has also rebuilt the majority of non-GCC programs to allow the corresponding RPM packages to be compressed in XZ format. This format is familiar from recent LZMA versions and is now also used by Fedora. Since XZ compression is more efficient than the previously used bzip2, some of the RPMs are now slightly smaller than they were in previous versions of Fedora, which reduces the downloading time of software and updates.
Delta RPMs
Having undergone its first major field test in the past few months, the Presto plug-in for Yum, which was optional in Fedora 11, comes as standard in Fedora 12. As a result, Yum and the programs based on it try to use the Delta RPMs – on offer in the official Fedora package repositories since Fedora 11 – which only contain the differences between an old and a new RPM package; in many cases, the plug-in can generate the new RPM using this information and the old RPM files installed on disk, and submit it to Yum for further processing.
This requires considerably less data to be downloaded when updating a system, because the Delta RPMs are often much smaller than the full new RPMs – especially if the software in the old and the new RPM is very similar, which is generally the case with minor version updates and bug fixes. The plug-in is said to reduce the amount of downloaded data by an average 60 to 80 per cent. When updating large packages such as OpenOffice, the reductions can be even bigger. However, regenerating the packages takes a little while and produces a considerable CPU load. If a local mirror server with the Fedora package repositories or a very fast internet connection are available, it may be better to un-install the plug-in.
Flurry of updates
The Updates and Updates-Testing repositories for the x86-32 variant of Fedora 12 already contained 550 RPMs when the distribution was released. This included 65 regular updates and 2 security updates – the latter including Firefox 3.5.5. These corrections were not included in the distribution, which was already finalised last week, to avoid introducing new bugs just days before the final release.
Unlike many other mainstream distributions, Fedora doesn't only release new packages for correcting bugs or security issues, but also tends to deploy new versions of the distribution's included software as updates. The present updates are, therefore, probably only the beginning of the usual Fedora update flurry. Five-months-old Fedora 11 has so far had almost 4000 updates – considerably more than other distributions.
In traditional Fedora fashion, the updates also include jumps from one kernel version in the main development branch to the next – released with kernel version 2.6.29, Fedora 11 received Linux kernel 2.6.30 as an update several months ago and has since been updated to 2.6.30.5. To avoid presenting users with a frozen system in case of a kernel panic, the new kernel is installed next to the current one, and the old kernel is then uninstalled automatically as part of a subsequent kernel update.
As new kernel versions of the main development line include numerous improvements to the infrastructure as well as a multitude of new and extended drivers, an updated version of Fedora 11 already supports many of the recently released hardware components that the distribution didn't support initially. Most other mainstream desktop distributions offer neither new kernel versions nor new kernel drivers as regular updates – consequently, users sometimes wait for months until new hardware components are supported in the next distribution release with a more recent Linux kernel.
Virtual
Like its predecessor, Constantine supports the previously well-respected Xen only as a guest system and exclusively uses KVM as a host for virtual systems. Constantine offers numerous improvements for this hypervisor and the surrounding infrastructure.
I/O performance improvements are among the reported advantages of using the qcow2 image format in Qemu and KVM. Explained in detail in the proceedings of the Linux Symposium 2009, KSM ("Kernel Shared Memory" or "Kernel Samepage Merging") promises to reduce memory requirements when similar guest systems are running in parallel, or when guest systems keep large amounts of identical data in memory for other reasons. By using larger memory pages, the KVM Huge Page Backed Memory feature reduces the memory management overhead.
Also new is the SR-IOV (Single Root I/O Virtualisation) support that allows PCI devices with SR-IOV support to be split up into several virtual devices that can be allocated to different virtual guest systems. Furthermore, the "KVM Stable Guest ABI" is to ensure that the virtual hardware offered to guest systems remains the same when Qemu or KVM are updated.
The Virtual Machine Manager (virt-manager) also received many minor improvements as well as a face lift; the libvirt it uses now manages privileges, enabling users without root access to manage KVM guest systems. Libguestfs and related programs like guestfish allow the virtual volumes of guest systems to be conveniently modified from outside. The configuration of networks for virtual systems has also become more flexible.
More information about the changes mentioned above, as well as various further virtualisation advancements can be found in in the Fedora wiki. Several developers in the virtualisation area have also presented the highlights of Constantine in various interviews.