Floppy driver extensions (1992)|
My first contribution to the Linux kernel was the addition of
disk format auto-detection and low-level formatting to the
MS-DOS file system (1992-1993)|
Kernel-based file system driver that can read and write MS-DOS (FAT)
Boot loader for Linux and other operating systems on i386 platforms.
Over the last decade, LILO has been the by far most popular boot loader
on Linux, and will probably continue to be so for a while.
Small utilities that use the /proc filesystem, such as fuser, pstree, and
psmisc is a standard part of most Linux distributions.
Kernel-based layered file system based on the idea of Sun's TFS (Translucent
File System). IFS allowed to mount a "stack" of file systems such that
files in lower layers could be superseeded by files from higher layers.
That way, one could make read-only media virtually writeable.
File system checker (like DOS' CHKDSK) for MS-DOS (FAT) file systems.
Unlike CHKDSK, dosfsck is designed to avoid senseless destruction
when repairing a file system.
ATM on Linux (1995-2000)|
This project produced a working implementation of the
most important components of the ATM protocol suite,
including signaling, IP over ATM, and LAN emulation.
This project incorporates major contributions from dozens
of people from the whole world.
Initial RAM-disk (initrd; 1996-2000)|
initrd is a RAM disk loaded by the boot loader, which is available
before the regular root file system is mounted, so that drivers
needed to access the root file system can be loaded by the environment
set up on the initrd. This work was done in conjunction with the
"big" zImage extension by Hans Lermen. In 2000, the clumsy change_root
mechanism used by the original initrd was replaced by the more
Linux-7k (now PsiLinux; 1998-2000)|
The goal of this project was to port Linux to the ARM-based Psion S5
palmtop computer. I did most of the initial kernel and driver port.
Canon PowerShot A50 driver for gPhoto (1999)|
Even the first very basic version of this driver was already the joint work
of people from at least four continents. My role was in reverse-engineering
and implementing the image download protocol.
bootimg loads a kernel image and executes ("boots") it. That way,
a Linux system can act as boot loader.
newlib on Linux (2000)|
newlib is a small C library. The goal of this project was to make
newlib work on a regular (i386) Linux system, in order to use
it in initrd environments, in particular with bootimg.
Differentiated Services on Linux (2000-2002)|
This project extends the traffic control subsystem to provide the
infrastructure needed by Differentiated Services.
Traffic Control Next Generation (tcng; 2001-2004)|
This project revises the network traffic control
infrastructure of Linux to overcome shortcomings of the existing
architecture, mainly in the areas of usability and extensibility.
UML simulator (umlsim; 2002-2004)|
This is a spin-off of the tcng project. The primary goal of umlsim is to
turn UML into a network simulator similar to tcsim. Of course, a
deterministic test environment on top of UML has many more uses than
just playing with traffic control ...
Seiko InkLink driver (2002)|
Seiko's InkLink device looks like the perfect alternative to a graphic
tablet. All we need is a Linux USB driver for it ...
TCP connection passing (2002-2005)|
Experimental mechanism to allow cooperating applications to pass TCP
connections from one host to another. This is mainly blue sky research,
but may have some real-life uses in HA and clustering scenarios.
Networking blackbox (2002)|
Records skbs in a ring buffer, and allows them to be read from user
space when a certain trigger event occurs. netbb only provides the
infrastructure, but leaves it to the user to place the actual taps.
netbb includes a dump utility, dumpbb, that allows dissecting the data
contained in the dump under script control. dumpbb is part of umlsim.
Active Block I/O Scheduling System (2003-2006)|
The Active Block I/O Scheduling System (ABISS) is an extension of the
hard-disk storage subsystem of Linux, whose main purpose is to provide
a guaranteed reading and writing bit rate to applications.
kboot is a boot loader based on kexec. It potentially offers the
functionality of an entire Linux system environment in the context
of the boot loader. Compared to other boot loaders, this should
greatly simplify development and maintenance, and encourage new,
LED Toy (2005-2006, 2012-)|
The LED Toy is a small microcontroller-based circuit that uses motion to
produce 2D images with a line of LEDs. This project also serves as a
proof of concept that modern components can be used with technology
readily available to hobbyists and other low-budget projects in
M8C utilities (2006)|
m8cutils is a collection of utilities for programming microcontrollers
based on the
Cypress® M8C core, including the
m8cutils contains, among other tools, an assembler, a programmer, and a
simulator. (This is an offspring of the LED Toy project above.)
The Openmoko project produces the software and hardware for a smartphone
the ground up to run Free Software (i.e., the Linux kernel, etc.).
I've joined the project in February 2007 to work on low level/kernel items.
GTA02-Core is a smartphone design based on the key elements of the
Openmoko FreeRunner (GTA02), using an open development process and
Free Software tools.
Qi-Hardware is a collection of loosely connected projects which are
developed in a Copyleft Hardware process using Free Software.