About Michael Kerrisk

Contact information
Professional
Getting to know UNIX and Linux
man-pages
Personal

Contact information

Professional

I first started programming computers in 1978, using FORTRAN IV and assembler on the high school's PDP-11 minicomputer (which, unfortunately, ran RSX-11, not UNIX). Professionally, I've primarily been a software developer, technical trainer/teacher, and writer. I also make presentations at Linux and Free and Open Source Software conferences from time to time. I hold a BSc(Hons) in Computer Science and a BA in Psychology.

In the past, I've worked for various companies and organizations, including:

Currently, I'm a freelance consultant and trainer.

Getting to know UNIX and Linux

My exposure to UNIX came in bits and pieces; I first encountered UNIX culture a few years before I actually met UNIX itself.

While I was doing my first (Computer Science) degree, I was introduced to regular expressions via chef, a prettied-up version of the early UNIX editor, ed, which had been ported to the PRIMOS system at the university. (At the time, PRIME Computer was a significant manufacturer of minicomputer hardware, and a notable competitor to Digital.) At the same time, I met Robert Biddle, then a graduate student fresh from the University of Waterloo. Waterloo had a fairly famous Computer Science department (it was the home of WATFOR, a popular FORTRAN compiler of the day), and was much closer to the UNIX wave that was then sweeping academia than New Zealand computer science departments, where UNIX had still to make a widespread appearance. Robert told intriguing stories of UNIX, C, and Ratfor.

The next step on the way to meeting UNIX came when I met emacs after taking up a position teaching Computing at the University of Technology ("UNITECH"), in Lae, Papua New Guinea. Although emacs is nowadays most often associated with UNIX, it ran on many other operating systems as well, and so my second meeting with a "UNIX" editor was once more on a PRIMOS system. (Once upon a time, I could hack up reasonable LISP macros for emacs, but when I left PNG, I didn't see emacs again for several years, and forgot most everything; and, until recently, I generally stuck to vi(m). Lately, driven by the need to work on large LaTeX/Beamer presentations and maintain my sanity, I've relearned the joys of emacs.)

In 1987, I finally met UNIX and C in person. After a spell of traveling (along the way having the foresight to pick up an academic edition of Kernighan and Ritchie's The C programming Language in New Delhi), I ended up in England. There, a friend studying at the University of Sussex had access to a suite of HP Bobcat workstations running HP/UX, and the university library had a copy of the first edition of Marc Rochkind's wonderful Advanced UNIX Programming. For the next few weeks, I was glued to the workstation with AUP, K&R, and a printed copy of the C shell man page at my side, writing a multitude of scripts and programs to test how things work. By the end of that time, I'd acquired a reasonable understanding of UNIX, C, and shell scripting.

Soon afterward, I got a job at Digital Equipment Corporation (UK), which brought me back to VMS. VMS was in many ways a nice operating system, but after exposure to UNIX scripting, returning to DCL (the FORTRAN of command languages) was a chore. Later, I moved into the training branch of Digital, where I was the founding member of what soon became a small, tight group of ULTRIX trainers in VMS land. I specialized in system programming training, and traveled quite a bit around Europe running system programming courses for Digital employees and customers.

A return to New Zealand, a second degree (Psychology plus a good measure of Art History, which gave me a lot more practice writing), and a short spell working on MS Windows applications took me away from UNIX for a few years. I first got interested in Linux when I picked up some Slackware CDs in the mid-1990s, but didn't do any serious work again with it until the late 1990s, when I moved to Munich, where my first job was at a company whose infrastructure was entirely Linux-based. Since then, all of my day jobs have employed Linux.

The man-pages project

Soon after I began using Linux in earnest, I noticed errors and deficiencies in the system call and library function man pages. Eventually, I started sending notes, and then patches to the maintainer of the man-pages project, Andries Brouwer. When, in 2004, after more than 9 years as maintainer, Andries retired from the project and asked me to take over maintainership of the project, I accepted.

Under my maintainership, man-pages acquired changelogs, a version control system (initially, with man-pages-2.00, a private instance of Subversion; later, starting with man-pages-3.10 in Sep 2008, a public Git repository), an occasional blog (started in Oct 2007), a web site (created in Nov 2007), a mailing list (activated Nov 2007), a set of online pages updated (since Nov 2007) with each release, and a clear description of how to contribute.

As of man-pages-3.69 (June 2014), I've made a total of 151 releases of man-pages. I'm also the author or coauthor of more than 300 of the 950+ pages in the project. Working on man-pages is much more than writing documentation: any useful documentation involves spelunking in the kernel and glibc source code, a lot of testing (the list of kernel bugs I've found while testing kernel and glibc interfaces is getting quite long), and review and critique of the design of new and proposed interfaces.

Michael and Cecilia
(Photo credit: Lynley Cook)

Most of my work on man-pages has been on a private basis, and though documentation is a task dreaded by many, some people like what I do: conference paper selection committees seem to favor presentations on documentation and interface testing and design review; I've four times been invited to the Linux Kernel Developers Summit; and for a while in 2008-2009, I was a paid Fellow of the Linux Foundation, working full time on the project.

Personal

I'm a New Zealander, but have lived in quite a few places around the world, including Papua New Guinea, England, Switzerland, the USA (California), and for a short while Colombia (no, not DC). These days, I'm living with my wife and daughter in Munich, Germany. While I miss spending more time in New Zealand, Germany—Munich in particular—is a great place to live.

Nowadays, family takes up most of my non-work time. Before the arrival of my daughter, I used to be able to participate in informed critical discussions of a wide range of contemporary films, but these days I manage to get to the cinema only a handful of times a year.

And before I had to spend so much time reading my own book, I used to love reading other peoples' books (mainly history, biography, popular science, literary fiction, and some genre fiction). Now that my book is finished, that situation already starts to get better.

Other than the above, my interests include photography and travel (I come from an island and have visited quite a few others; I've also traveled in all continents except Antarctica).