For a total of about 15 years,
I was a Member of Technical Staff at
Bell Labs
in Murray Hill, NJ,
where I worked on operating systems and
messaging systems and protocols, among other things.
I have used plenty of revision control systems and don't really like any of
them (though I can use them), but I truly detest git,
which I find unusable.
It's slow, wasteful, bureaucratic, unpredictable, and over-complicated,
which does make it a good match for Linux, for which it was written.
Worse is the mistaken belief that one can,
in general,
mix-and-match sets of changes
to a program and get something useful and correct as a result,
without human checking.
computing experience
ported Plan 9
to
RISC-V systems,
Xilinx Virtex 4 and 5 Power-PC-based evaluation boards,
ARM-based systems including the Sheevaplug, Gumstix Overo and Trimslice,
and
MIPS-based systems including the Routerboard RB450G.
made the 9k kernel truly cope with 64 bits of address space.
wrote an NVMe driver for Plan 9.
maintained the original
Plan 9file server kernel
(now upgraded to 64-bit sizes)
and contribute to Plan 9 generally.
merged the big-endian and little-endian MIPS compilers, assemblers and loaders.
wrote the current (new) Plan 9 tar,
which is cleaner and faster than the old one, and is POSIX-compliant
(i.e., can cope with longer path names).
modified the
file server kernel to use 64-bit file sizes,
offsets and block numbers internally,
ported the CPU kernel's IDE code, thus enabling the use of DMA, RWM, etc.,
and ported the CPU kernel's Intel gigabit Ethernet driver.
added greylisting and other anti-spam measures to
smtpd.
added multicasting (for IPv6) and shutdown entry points to drivers
for all modern ethernet cards.
updated the connection server to recognise
icmpv6.
fixed the kernel to recognise v6 addresses starting with ``20'' as global.
ported
dbm
and
mdbm
libraries and made them use a consistent byte order on disk,
rendering the databases portable across CPU architectures.
arranged completely diskless booting of Plan 9 PCs using compact flash cards
added device mirroring (think RAID 1) to the Plan 9 file server kernel.
Combined with support for IDE disks,
this enables use of inexpensive hardware to form
a large Plan 9 file server.
set up and ran the largest Plan 9 file server
(with optical disc jukebox)
inside Bell Labs other than the main Plan 9 development file server.
Extended support for jukeboxes with optical disks of varying sizes.
The smaller jukeboxes can now be had second-hand quite cheaply.
on the
inferno
distributed operating system,
built a scalable message store that served a broken-out view of MIME
messages, and designed and implemented rsmtp, an SMTP replacement.
Got Inferno running on Mac OS X.
configuring IPv6 tunnelling networks
developed the operating system for the now-defunct
AT&T HomeCenter™
set-top box, notably DSP communication, and the C library.
evolution of operating systems:
Research Unix in
html and
pdf
(updated 23 Dec 1998 to more closely match the printed article
in Microsystems in 1984).
Also, a new, improved draft that fixes a number of errors we missed the
first time around and adds real references, in
html and
pdf.
software reimplementation:
the Unix shell.
I am making available two modified shells,
from Seventh and Ninth Edition Research UNIX.
I've incorporated the memory management
and directory reading changes from the paper,
and some other modernisation
(e.g., include files and 64-bit tweaks)
into both shells.
Both should run on POSIXy systems and
have been used on Unix, OS X, the BSDs and Linux (among others)
on 32- and 64-bit systems
(and even 16-bit PDP-11s long ago)
without trouble,
including as my login shell.
Among other features,
they lack the GNU
readline
library, so what you type is what you get.
The up-to-date V7 sh,
updated most recently on 29 July 2017.
The up-to-date V9 sh from the paper,
updated most recently on 29 July 2017.
an early outline of a proposed-but-rejected book about
why Plan 9 matters.
Pardon the formatting; it was converted to HTML mechanically.
Inferno's limbo
and the follow-on go
languages, which feature particularly helpful support
for processes sharing address space.
If POSIX pthreads give you the willies,
these might be for you.
archiving and optical media, notably CD-R and BD-R (Bluray).
Plan 9 has a convenient backup system using optical disks,
discussed in its
overview,
file server
and
port
papers.
The
venti
block store is a worthy replacement when combined with
fossil,
the file server built on top of
venti.
indexing.
This
is the distribution of my
nov
news overview database code.
Nov
is now incorporated into essentially all serious newsreaders.