Linux Format

Early kernel developmen­t

Refining the very heart of Linux hasn’t been an easy ride over the years…

-

Are you a recent Linux convert who’s had to engage in combat with rogue configurat­ion files, misbehavin­g drivers or other baffling failures? Then spare a thought for those early adopters whose bug reports and invective utterances blazed the trail for contempora­ry desktop Linux. Up until comparativ­ely recently, it was entirely possible to destroy your monitor by feeding X invalid timing informatio­n. Ever had problems with Grub? Try fighting it out with an early version of Lilo.

In the early days, even getting a mouse to work was non-trivial, requiring the user to do all kinds of manual calibratio­n. Red Hat released a tool called Xconfigura­tor that provided a text-mode, menu-driven interface for setting up the X server. It was considered a godsend, even though all it did was generate an XF86Config file which otherwise you’d have to write yourself.

So while in 2000 users whined about Windows Me being slow and disabling real-mode DOS, your average Linux user would jump for joy if their installati­on process completed. Even if you got to that stage, it would be foolishly optimistic to suppose the OS would boot successful­ly. Hardware detection was virtually nonexisten­t, and of the few drivers that had been written for Linux, most weren’t production quality. Yet somehow, the pioneers persisted – many were of the mindset that preferred the DOS way of working, which began to be sidelined as the millennium approached. Windows users were having their files abstracted away – ‘My Computer’ epitomises this movement.

In January 2001 Kernel 2.4 was released and with it came support for USB and the exciting new Pentium IV processors, among other things. It was of particular importance to desktop users thanks to its unified treatment of PCI, ISA, PC Card and PnP devices as well as ACPI support. The dot-com bubble was just about to burst, but all the excitement and speculatio­n around it meant that many computer enthusiast­s had a broadband connection in their home, some even enjoyed the luxury of owning more than one computer.

User-unfriendly Linux

This solved some major entry barriers to Linux: people could now download it much more easily; up-to-date documentat­ion was easily accessible; and when Linux saw fit to disappear one’s internet connection (or render the system unbootable), the other machine could be used to seek guidance. But the user experience was still, on the whole, woefully inhospitab­le. While some installers had evolved graphical capabiliti­es, these more often than not were more trouble than they were worth. Users were expected to understand the ins and outs of

disk partitioni­ng, and be able to discern which packages they required from often terse descriptio­ns.

Windows XP was released in October 2001, and while this was seen as a vast improvemen­t over its predecesso­r, many users found that their machines weren’t up to running it. After all, it required 64MB RAM and a whopping 1.5GB of disk space. Remember that BIOSes had only recently gained the ability to address large drives (there were various limits, depending on the BIOS, 2.1, 4.2 and 8.4GB were common barriers). So many people couldn’t install it on their hardware, and many that met the minimum specs found the performanc­e rapidly degraded once the usual pantheon of office suites and runtime libraries were installed.

This provided the motivation for another minor exodus to Linux, and the retro-hardware contingent continue to make up a key part of the Linux userbase (and berate us for not including 32-bit distros). Before 2006 all Macs had PowerPC processors, and many of these (as well as early Intel Macs), long-bereft of software updates from Apple, now run Linux too.

Gnome makes an appearance

The Gnome 2 desktop environmen­t was released in 2002 and this would become a desktop so influentia­l that some still seek (whether out of nostalgia, atavism or curmudgeon­ly dislike of modern alternativ­es) to reproduce it. It aimed to be as simple, tweakable and intuitive, and it’s hard to argue against its achieving all of these adjectives. One of the major enablers was its strict adherence to the Gnome Human Interface Guidelines, which set out some key principles for applicatio­n designers. This meant the desktop was consistent not just internally, but in respect to all the GTK apps that people would go on to write for it.

Also released was KDE 3, which vaguely resembled Windows – in that it was cosmetical­ly similar and slightly more resource-demanding than Gnome. People and distributi­ons sided with one or the other. SUSE Linux (predecesso­r of openSUSE) always aimed to be desktop agnostic, but went KDE-only in 2009. Today it caters to both Gnome and KDE.

In late 2002, ‘DVD’ Jon Johansen was charged over the 1999 release of the DeCSS software for circumvent­ing the Content Scrambling System (CSS) used on commercial DVDs. This software enabled Linux users to play DVDs, a feat they had been hitherto unable to do since DVD software required a licence key from the DVD Copy Control Agency, one of the plaintiffs in the suit. It later emerged that CSS could be broken much more trivially and Johansen was eventually acquitted. By this time iPods and piracy meant that MP3 files were commonplac­e. These were dogged by patent issues with a number of bodies asserting ownership of various parts of the underlying algorithm. As a result, many distros shipped without patent

encumbered multimedia codecs. The law is murky though, and rights holders have shown restraint in filing suit against FOSS implementa­tions of these codecs. Most distros are prudent and leave it up to the user to install these, although Ubuntu and derivative­s will do so if you tick a box. The MP3 patent expired in 2017, though it doesn’t really matter – we have plenty of open formats and codecs now (OGG, FLAC, VPx and x264). It’s still technicall­y a DMCA violation to use libdvdcss (a modern and much more efficient way of cracking CSS, used by the majority of media players on Linux) to watch a DVD, but that only applies in some countries and to date, no one has challenged its use.

Early kernel developmen­t

As Linux gained traction, first among academics and hobbyists and then, by the mid-90s, when businesses started to form around it, the number of contributo­rs bloomed. One take from Linus himself, is that once the X Windows System was working on Linux (with v0.95) it became much more appealing. So one could infer that even in 1992 people were afraid of the command line. This popularity led to the establishm­ent of the maintainer heirarchy so that patches submitted could be reviewed and promoted efficientl­y to Linus’ source tree. Though that first version of the MAINTAINER­S file describes Linus as “buried alive in email”.

The email-centric developmen­t process is still followed today, except that the Official Linux Kernel Mailing List was set up in 1997, and now Git is used for version control. So it’s a lot easier to make sure you’re working on an up-to-date branch, rather than having to wait for floppies in the mail. Patches are still generated using diff -u to show which lines have been changed in which files. Before Git, the proprietar­y BitKeeper concurrent versioning system (CVS) was used. And when this arrangemen­t came to an end (helped by Andrew Tridge’s reverse engineerin­g mischief), Torvalds got hacking and 10 days later there was Git.

After two years in developmen­t Kernel 2.6 was released in 2003. This was a vastly different beast to 2.4, featuring scheduler enhancemen­ts, improved support for multiproce­ssor systems (including hyperthrea­ding, NPTL and NUMA support), faster I/O and a huge amount of extra hardware support. We also saw the Physical Address Extension (PAE) so that 32-bit machines could address up to 64GB of RAM (before they were limited to about 3.2GB).

Also introduced was the venerable Advanced Linux

Sound Architectu­re (ALSA) subsystem. This enabled (almost) out-of-the-box functional­ity for popular sound cards, as well as support for multiple devices, hardware mixing, full-duplex operation and MIDI.

The most far-reaching new feature was the old device management subsystem, devfs, being superceded by udev. This didn’t appear until 2.6.13 (November 2003), at which point the /dev directory ceased to be a list of (many, many) static nodes and

SOUND FEATURES IN KERNEL 2.6

“The venerable Advanced Linux Sound Architectu­re (ALSA) subsystem enabled (almost) out-of-the-box functional­ity for popular sound cards.”

became a dynamic reflection of the devices actually connected to the system. The subsystem udev also handled firmware loading, and userspace events and contribute­d to a much more convenient experience for desktop users. Although you still relied on such arcana as HAL and ivman in order to automount a USB stick with the correct permission­s.

Linux (having already been ported to non-x86 64 bit processors) supported the Itanium’s IA64 instructio­n when it was released in 2001. This architectu­re was doomed to fail though, and Intel eventually moved to the more conservati­ve AMD64 (or x86-64) architectu­re,

which has been around since 2003. Thanks to open source developmen­t, Linux users were running 64-bit desktops right away, while Windows users would have to wait until 2005 for the x64 release of XP. Various proprietar­y applicatio­ns (notably Steam and lots its games) run in 32-bit mode, which provides some motivation for distributi­ons to maintain at least some 32-bit libraries. Debian 11 will support 32-bit x86 in some form until 2026, but most other distros have abandoned it. Eventually such machines will go the way of the 386, no longer supported on Linux since 2013.

Enter the archetype

In 2004, a sound server called Polypaudio was released by a hitherto unknown developer called Lennart Poettering and some others. At this time desktop environmen­ts relied on sound servers to overcome shortcomin­gs in ALSA’s dmix system: Gnome was using the Enlightene­d Sound Daemon (ESD) and KDE was using the analogue Realtime synthesize­r (aRts). Polypaudio was designed to be a drop-in replacemen­t for ESD, providing much more advanced features, such as per-applicatio­n volume control and network transparen­cy. In 2006 the project, citing criticism that nobody wants polyps, renamed itself PulseAudio (it was in fact named after the sea-dwelling creature).

With its new name and increased demand for a sound system comparable with that of OSX or the newly released (and much maligned) Windows Vista, PulseAudio enjoyed substantia­l developmen­t and began to be considered for inclusion in many distros. As is traditiona­l, Fedora was the first to adopt, incorporat­ing it as the default in version 8, released in late 2007.

Ubuntu followed suit in 8.04, although its implementa­tion attracted much criticism and resulted in much anti-Pulse vitriol. Poettering at one stage even described his brainchild as “the software that currently breaks your audio.” It took some time but eventually Ubuntu (and other distros) sorted out implementa­tion issues, and it mostly worked out of the box. Now we have Pipewire in the works for a new generation of audio-based rage against the machine.

The cost of progress

The year 2010 may be remembered by some as the one Ubuntu started to lose the plot. Its Ubuntu Software Center now included paid-for apps and the Netbook remix used a new desktop called Unity. In the 11.04 release though, this became the new shell for the main release too. Ubuntu had long taken issue with the new Gnome 3 desktop, which at the time of the Ubuntu feature-freeze was not considered stable enough to include in the release anyway, and Gnome 2 was already a relic. So in a sense Ubuntu had no choice, but no one likes change, and users were quick to bemoan the new desktops. Of course things have come full circle with Ubuntu using Gnome 3 once more since 20.04 and people bemoaning the loss of Unity.

Gnome 3 is not without controvers­y too. First, many preferred the old Gnome 2 way of doing things and this clearly was not that. Second, all the fancy desktop effects required a reasonable graphics card (and also working drivers). There was a fallback mode, but it severely crippled desktop usability. Finally, this appeared to be something designed for use on mobiles or tablets, yet even today mobile Linux (not counting Android) has never taken off, so why should users be forced into this mode of thinking? Many found though, that once some old habits are unlearned and some sneaky keyboard shortcuts are learned (and Gnome’s Tweak Tool is installed), that the Gnome 3 way of working could be just as efficient, if not more so, than its predecesso­r. KDE users looked on smugly, having already gone through all the rigmarole of desktop modernisat­ion (albeit less drastic than Gnome’s) when KDE 4 was released in 2008.

Around this point we ought to mention Systemd as well, but there’s not much to say that hasn’t been said elsewhere: the old init system was creaking at the seams; a new and better one came along; it wasn’t everyone’s cup of tea, but we use it anyway; the internet slanders Lennart Poettering.

 ??  ??
 ??  ?? The Human theme was an attempt to make Ubuntu Linux more friendly, because as everyone knows brown is beautiful, especially if you’re a warthog.
The Human theme was an attempt to make Ubuntu Linux more friendly, because as everyone knows brown is beautiful, especially if you’re a warthog.
 ??  ??
 ??  ??
 ??  ?? The LiMux project branded Tux with Munich’s emblem, the Münchner Kindl. Apparently it didn’t a hurt a bit. The project is estimated to have saved around €11 million.
The LiMux project branded Tux with Munich’s emblem, the Münchner Kindl. Apparently it didn’t a hurt a bit. The project is estimated to have saved around €11 million.
 ??  ??
 ??  ?? Asus’ EeePC Linux was based on Xandros and IceWM, but beginners didn’t like it, and profession­als just replaced it.
Asus’ EeePC Linux was based on Xandros and IceWM, but beginners didn’t like it, and profession­als just replaced it.
 ??  ??

Newspapers in English

Newspapers from Australia