linux.conf.au
home · who came? · papers · schedule · sponsors · contacts
Keynote Speakers Papers · Works in Progress · Tutorials · BOFs

Alan Cox Dave Miller
World Domination: Classified Progress
Report and Briefing
A Zero-copy and Delayed Fragment
Reassembly Framework for Linux
 
Tridge maddog
Inside the mind of... TiVo. Mom&Pop(TM): At Home with Linux

Papers

Cluster System Administration and GFS
John Goebel, Ken Preslan

The Debian packaging system
Wichert Akkerman

This talk will explain the workings and design of the Debian packagemanagement system. This system consists of a lot of compononts that work together to provide an comprehensive system for managing a Linux or other Unix-like system.
It will cover everything from the lowlevel tools to manipulate packages to friendly user interfaces and utilities to make packaging easier.

The Direct Rendering Infrastructure
Gareth Hughes

The Direct Rendering Infrastructure (DRI) is a framework for allowing direct access to graphics hardware in an efficient but secure manner. Part of XFree86 4.0, it brings high-performance hardware accelerated OpenGL rendering to the Linux desktop with support for a wide range of commodity 3D graphics cards.

e-smith server and gateway
Kirrily 'Skud' Robert

The e-smith server and gateway is a GPL'd linux distribution aimed at small to medium sized organisations who require Internet services (mail, web server, proxies, collaboration tools, etc) without the sysadmin requirements of a general purpose Linux system. It is quick and easy to install, and is administered primarily via a web interface.
This presentation takes a look at the technology underlying the e-smith server and gateway system, and discusses some of the challenges faced by e-smith in building an Open Source community of developers and users.
Kirrily "Skud" Robert (will have, by the time of the conference) recently started working for e-smith in Ottawa, Canada.

Globally Distributed Content
Horms (Simon Horman)

Electronic content made available over the Internet is becoming increasingly important for providers and users alike. To provide the best possible service to end users it is desirable for content to be network-wise as close to client hosts as possible. Static mirrors of sites are one means of distributing traffic between sites and giving users the opportunity to connect to a site that will give them a good response.
Instead of users manually selecting a mirror, it makes sense for the service provider to automatically direct clients to a site that will offer them good performance, that is to have a load balancing algorithm in place. Once such algorithm is to select clients based using BGP to select which site has the least cost path to a given client. This paper will examine the implementation of such an load balancing scheme.

Hardware accelerated image blending, rendering, scaling, anti-aliased text rendering - a reality on your desktop
Rasterman (Carsten Haitzler)

Quietly in the bowels of some CVS repository in a galaxy far far away some code has been brewing... The results? Anti-aliased text in X with full hardware acceleration AND optimized software paths included, hardware accelerated image scaling and blending, to make stunning user interfaces on the Linux desktop a reality. This paper will cover what was needed to get this far, the pitfalls of working on such a project and the great benefits and how to take advantage of the work that has gone into this.

How To Remotely Build and Manage a Linux Solution (or How Open Source Software Keeps Me From Driving to the CoLo at 3 AM)
Gregory J. Pryzby

Linux is growing in popularity. Reason differ, but commodity hardware and open source software (OSS) are two reasons. Both drive the total cost of ownership (TCO) down. If I can manage the systems remotely and more efficiently, the TCO drops again.
Using two OSS projects, VACM (http://vacm.sourceforge.net/) and SystemImager (http://systemimager.sourceforge.net/), I can remotely install, update, rebuild and power cycle systems. Once the systems are initially installed, there is no requirement for physically access the systems. All the changes and management required can be done over the internet, securely-- even BIOS changes.

Is 2D graphics the next killer app for Linux?
Raph Levien

The compelling technical strengths of Linux and other free software systems in multitasking and networking have brought it considerable success in the area of Web servers. In this presentation, I demonstrate that the similar technical strengths free software is gaining in 2D graphics, and argue that this area could be the next "killer app" for Linux.

IA64 Linux
Stephane Eranian

Large scale OSS engineering using GTKAda
Andrew van der Stock

Large end-user applications have not been a successful area for OSS development, as it takes altogether a different mindset, as well as long-term dedicated warm bodies to bring a large project to fruition. The ?scratch an itch? motivator generally suffices on successful smaller projects, such as Eric S. Raymond's fetchmail or pnm2ppa, a HP print post-processor for Ghostscript that I've been involved with. However, when a small project becomes large, for example the Linux kernel, this model works to the detriment of the project as a whole. End user applications are the tractor applications for an operating system. KOffice is doing a sterling job on the main office productivity applications. They have one gap: project management, which is my personal "itch".

The Linux Device Filesystem
Richard Gooch

The Device File-System (devfs) provides a powerful new device management mechanism for Linux. Unlike other existing and proposed device management schemes, it is powerful, flexible, scalable and efficient.
It is an alternative to conventional disc-based character and block special devices. Kernel device drivers can register devices by name rather than device numbers, and these device entries will appear in the file-system automatically.

Linux Standard Base
Christopher Yeoh

I'll talk about the goals and reasons behind the development of the Linux Standard Base. The presentation will cover the current status of the specification, test suites and sample implementation(s). Also discussed will be a summary of the current compliance of the different distributions, and POSIX compliance of the latest kernels and glibc versions. It will describe porting and development of the test suites on Linux as well as their use as a general regression testing tool for kernel development.

Leases & Directory Notification
Matthew Wilcox

This paper describes how the Linux kernel was extended to supply Leases & Directory notifications to applications. Leases allow an application to be notified when a file is modified, allowing that application the opportunity to cache changes until such time as they must become visible to others. Directory notification allows an application to be notified when the contents of a directory change.

Memtest: Finding holes in the VM system
Juan J. Quintela

This paper describes the development of a test suite for the VM subsystem and several of the resulting programs in detail. A proposal for dealing with the shown bottlenecks are made. This suite of programs is called memtest. The suite is composed of several programs that generate different kind of IO and memory loads, such as writing big files (mmap*), using a lot of shared memory (ipc*), programs that do a lot of memory allocations/frees (misc*). This test suite is not usable for benchmarking, it is used to find bottlenecks.

The New Joy of Init Scripts
Richard Gooch

This paper is on the subject of advanced booting for Linux. The paper will present the design and implementation of a dependency-based booting system for Linux. This is an alternative to the BSD and SysV-style booting scheme, which have their respective limitations.

OpenH323
Craig Southeren

Craig is the co-founder of the Openfont23 project, an Open Source project that has been in operation for over two years. The code is currently in use by major vendors such as Nortel and provides the only Open Source H.323 protocol implementation available.
H.323 is the protocol used for video and voice conferencing by programs such as NetMeeting. We can, and have, been using Linux as our primary developmnent platform and have been making voice and video calls over the planet via the Internet for over a year.

Qt/Embedded
John Ryland

Most handheld devices are constrained by ROM and RAM. Running an X server may be possible but doesn't leave much room for a toolkit, window manager, and applications. What we have done with Qt/Embedded is to remove X11 from the layers between the kernel and the toolkit, optimizing the pipeline from application to video memory. I will discuss the design, memory sizes, performance and features of Qt/Embedded. Some features include anti-aliasing, alpha blending, hardware acceleration and mmapped fonts. It is currently supported on x86, ARM, and MIPS, with more platforms being added as we get the hardware for them. Included in my presentation will be a demostration of Qt/Embedded on a Compaq iPAQ and possibly other handhelds.

Rproxy
Martin Pool

Caches are used to good effect on today's web to improve response times and reduce network usage. For any given resource, such as an HTML page or an image, the client remembers the last instance it retrieved, and it may use it to satisfy future requests. However, the current-system is all-or-nothing: the resource must either be exactly the same as the cached instance, or it is downloaded from scratch.
A far better approach would be for the server to download a description of the changes from the old instance to the new one: a `diff' or `delta'. rproxy adds backwards-compatible extensions to HTTP that come into operation when two parties to a web request understand the `hsync' encoding. rproxy can be inserted as a stand-alone proxy so that neither the server nor client need be changed. We plan to integrate the rproxy into popular web software including Squid and Mozilla in the near future.

Rsync, TDB, Gzip and Apt-Proxy: A Hacker's Tale
Rusty Russell

This meandering talk will discuss one humble coder's attempt to reduce bandwidth consumption of constantly-upgrading Debian users in the Linuxcare OzLabs office. It will follow this hacker's journey from one quick hack (apt-proxy) to a more significant hack (gzip --rsyncable), climaxing in a series of modifications to rsync itself, including a minor tour into Andrew Tridgell's Tiny DataBase. It shows how a series of small, persistant hacks have the power to change the world as we know it. Or not.

Scratching An Itch, With and Without Help
Hugh Blemings

This paper examines open source projects with particular reference to the different challenges that come from working with and without hardware vendor support. The principle "without" case examined is gnokii, the "with" case is the process of writing Linux kernel drivers for the Keyspan range of USB to serial adapters. The reverse engineering to achieve the former and discussions with the vendor to do the latter will be presented. The gentle reader is warned that raw source code (often uncommented), schematics and hand written notes may be presented.

Too Little, Too Slow: Linux 2.5 Memory Management
Rik van Riel

In Linux 2.5 virtual memory management will see some considerable changes. One of the main problems with the current Linux memory management is that sometimes we cannot make a proper distinction between pages which are in use and pages which can be evicted from memory to make room for new data.
In order to improve that situation and make the VM subsystem more resilient against wildly variable VM loads, we will use ideas from various other operating systems to improve Linux memory management. The main page replacement routine will use the active, inactive and scavenge (cache) lists as found in FreeBSD. This mechanism maintains a balance between used and old memory pages so there will always be "proper" pages around to swap. In addition to this there will probably be things like dynamic and administrator settable RSS limits, anti hog code to prevent one user or process from hogging the machine and slowing down the rest of the machine and per-user memory accounting.

The Tux2 Failsafe Filesystem for Linux
Daniel R. Phillips

The Tux2 filesystem uses a "phase tree" approach to address the problem of filesystem corruption when systems halt unexpectedly. The phase tree method requires that all the data and metadata in a filesystem be structured as a tree which maintains consistency through atomic updates.
This presentation outlines the design and implementation of Tux2, and provides some performance comparisons against existing filesystems.

User-mode Linux
Jeff Dike

User-mode Linux is a port of the Linux kernel to Linux. The architecture layer and drivers are implemented in terms of Linux system calls instead of the more usual hardware interfaces. This results in a virtual Linux machine running in userspace.
UML devices are implemented in terms of abstractions provided by the host kernel. The main console, virtual consoles, and serial lines are provided by pseudo-terminals in the host. The block driver can access anything which is present as a file on the host. There are two network drivers which use slip and ethertap.
UML runs the same userspace as the native kernel, virtualizing system calls with ptrace. Its VM system is implemented by abusing mmap. Applications include kernel development, jailing, hosting, and virtual networking and clustering. Jeff will also talk about lines of future development such as SMP emulation, clustering, and ports to non-i386 Linux as well as other operating systems.

Why KDE Works
Sirtaj Singh Kang

The KDE Project has produced one of the largest bodies of free software available. Given that few software projects become this large without serious design or infrastructure problems, it is quite an achievement that KDE is humming right along producing good code and a good development platform. I will give an overview of how design and development is done within the KDE project and the whys and wherefores of the directions the project has taken.
Work in Progress Presentations

bewdy, Maaate!
Silvia Pfeiffer

MPEG Maaate is an audio analysis toolkit for MPEG-encoded audio files. bewdy is a graphical user interface to play around with the analysis modules and results of the MPEG Maaate libraries. MPEG Maaate has has been published under the GNU GPL and can be found under http://www.cmis.csiro.au/dmis/Maaate/.
With the vast amount of multimedia data online, content-based access to multimedia files becomes more and more interesting to users. One type of multimedia files widely used nowadays are MPEG-encoded audio files (MPEG-1 layers 1, 2, 3 (MP3)). MPEG Maaate supports the extraction of structure and content of such audio files.

GEGL: An Advanced, Flexible 2D-Imaging Library
Manish Singh

In the field of digital imaging, there are myriad ways to store and represent image data. Many of the algorithms used for processing image data are the same, regardless of the data format. However, to efficiently and accurately process such data, the code should handle that data format natively. Creating and maintaining a library of algorithms by hand for each format you want use is time consuming and error prone.
Enter GEGL. GEGL defines a generic way of describing an image processing algorithm, so you only write the code for it once. It will then autogenerate the code for the specific image format cases you want. To handle a new format, one just needs to write a backend specification, instead of reimplementing all the algorithms by hand. The algorithm descriptions themselves are simple and managable, but you get fast, optimal code autogenerated. This is similar in vein to the approach GCC takes as a retargetable compiler.

irc++
Liam Quin

Internet Relay Chat (IRC) provides an international textual chat facility used by hundreds of thousands of people world wide. As IRC has grown, problems have become apparant both in the scalability of the implementaiton and in the network protocl it uses.
This paper describes these problems in more detail and also introduces new software (irc++) intended to address these problems. The irc++ system is compatible with existing IRC clients, and also provides some MUSH/MUD/MOO-like facilities.

Low Latency Linux
Andrew Morton

The term scheduling latency refers to the time interval between the occurrence of an external event and the activation of a userspace application which handles that event. A number of applications - most notably those which deal with audio streams - require that these latencies be consistently low: less than two milliseconds.
A normal Linux kernel can, when heavily loaded, show latencies of 100 milliseconds or more.
This WIP discusses a set of patches which provide the required latencies, and the tools which are used to develop and maintain the patch. We will also touch on other developments past, present and future which improve Linux's scheduling latency.

Linux RAID
Neil Brown

With 2.4.0, software RAID in Linux will come of age. The functionality that previously was only available through a separate patch set will finally be part of a ``Stable'' kernel release. However for much (hopefully not all) of the 2.4.0-test series, raid5 performance was extremely poor.
This talk will look at how differences between 2.2 and 2.4 affected software RAID, and how the various issues were (finally) dealt with. In particular, it will look at raid5 performance and what was slowing things down.

Tinmith - Augmented Reality With Wearable Computers Running Linux
Wayne Piekarski

Hacking isn't just about software, its also about using a soldering iron to modify your hardware, and making mistakes.
This paper describes the concept of augmented reality, the process of drawing virtual images over the real world using a head mounted display. Using wearable computers, it is possible to take augmented reality software outdoors and visualise data that only exists in a computer. The paper discusses all concepts in detail, and the hardware used to build the system, explaining the various components and costs.
The Tinmith system is a complete software architecture designed to develop AR and other software that deals with trackers, input devices, and graphics. The design of the code is explained, including how it was developed. Tinmith is based on a completely free software system comprising the Linux kernel, GNU tools and libraries, the GNU C/C++ compiler, XFree86 graphics server, GGI graphics interface, OpenGL 3D renderer, PostgreSQL database, and Freetype font renderer.

Perl 6
Kirrily 'Skud' Robert

In July 2000, at The Perl Conference 4.0, Larry Wall announced that development would begin on Perl 6. The primary intention was to improve the internal code of the Perl interpreter and make it easier to extend and improve. At the same time, the Perl development process would be restructured to (hopefully) encourage more input from the Perl community and to otherwise improve the way in which Perl itself was developed.
This presentation reviews the first few months of Perl 6 development, including the changes to the Perl community and development process, the Perl RFCs submitted as part of the pre-design brainstorming, the current state of Perl 6's design, and the future of the project and of Perl itself.
Kirrily "Skud" Robert is the chair of the Perl 6 language design working group, and is actively involved in the Perl community.

State of SparcLinux on high-end servers
Anton Blanchard

From Anton's submission: "We got SparcLinux to boot on a sun E10k a few weeks ago and I am looking into supporting such large machines better. This includes scaling better with large numbers of cpus but also supporting hot swapping of cpus, RAM and devices."
Anton has now been poked for a more detailed summary. Thanks to all avid pokers out there, you may stop now.

TLB Sharing In IA-64 Linux
Alan Au, Gernot Heiser

It is well known that TLB miss handling and hence TLB coverage is often a crucial bottleneck in overall operating system performance. This fact is becoming compounded by TLB sizes that have not scaled along with a trend towards increasingly larger memory systems. The traditional approach to increasing TLB coverage is to use larger page sizes. However, this solution is non-general and, worse still, leads to possible adverse paging effects. Intel's newly released IA-64 architecture provides unique system features which allow memory translation and protection to be done orthogonally. By using this support and drawing on aspects of single address space operating system (SASOS) technology, a novel memory managment scheme for improving TLB coverage in Linux is presented here.
Tutorial Sessions

Bonobo, the GNOME component model
George Lebl, Maciej Stachowiak

This will be a larger-format tutorial style workshop on Bonobo, the GNOME component model. Both the theory behind Bonobo and CORBA and detailed examples will be discussed. It is intended for people faimiar with GNOME programming wishing to use Bonobo in their applications. Here is an brief outline of the workshop. Time for Q & A will be given at the end of each section.

ColdStore and Unix Persistent Programming
Colin McCormack

ColdStore is a suite of tools for persistent programming over a single-level object store, with particular emphasis on efficient document bases, and persistent scripting language development.
We'll cover (or at least visit):
  1. Persistent programming: what is it, why bother, what we learned from Reiserfs.
  2. Other approaches: what's wrong with 'em :)
  3. Porting/liberating/stealing other codebases and libraries: how, why, what you need to know about Elf.
  4. Language translation: bytecode considered harmful (or at least considered.)

How to maintain DNS, DHCP and YP tables from a unique host file
Marc Merlin

This tutorial will show how you can maintain 3 different name services from a central file, and thereby save time, avoid multiple edit errors, and allow users to add and modify records themselves. You will also get samples of perl and web programming geared toward system administration, and see the security concerns that are linked to them

Introduction to Threaded Programming with Linux
Liam Widdowson

Multi-threaded software has a variety of advantages over traditional multi-process applications. This presentation will provide an introduction to multi-threading in addition to the specifics of developing and debugging threaded software based on POSIX 1003.1c 'pthreads' with Linux.
Case studies will be provided to illustrate where threads should and should not be used. Emphasis will also be placed on producing portable, high-performance software.

Introduction to using DocBook for application documentation
Malcolm Tredinnick

Learning to use the DocBook DTD, and derivatives thereof, presents a reasonably steep initial learning curve. For many people who use DocBook for writing articles and books, the solution is often to read one of the many introductory tutorials available on the internet or to leverage some previous (open source) document and use it as a template.

Using CVS
Malcolm Tredinnick

CVS is used throughout Open Source community as a means of providing up-to-the-minute sources for users and coordination amongst developers. Many organisations also use it internally for their developers, since, once setup correctly, it requires very little work on a day-to-day basis.
Birds of a Feather Sessions

Debian
Wichert Akkerman

Documentation
Malcolm Tredinnick

Linux Filesystems
Jonathon Coombes

Security+
Peter Nixon

Universal Serial Bus
Brad Hards

 Linux is a trademark of Linus Torvalds. Contact the Webmonkey