OpenBSD founder pulls no punches

By   |  October 12, 2004

This extract of an interview with Theo de Raadt is published with the kind permission of the Sydney Morning Herald and The Age.

Winter has ended in Melbourne but I\’m not the sort to venture out without at least a sweater. However, the cold doesn\’t seem to bother Theo de Raadt as we sit in the lobby of the city\’s Duxton Hotel, a day after the end of the annual summit of the Australian Unix and Open Source User Group.

But then de Raadt is used to the cold – he lives in Calgary, a place where minus temperatures aren\’t exactly uncommon. And despite the impression generally given out that the founder of the OpenBSD project is a person who is inclined to be anti-social, I find him to be nothing but warm and friendly – a sharper contrast to the weather could not be imagined.

It\’s unusual for him to sit talking about himself to a journalist – all the queries he faces from the media are usually technical ones. But he waxes voluble all the same. There\’s often nervous animation in his voice, the words tumbling over each other with an energy I\’ve encountered in developers who are way up there in the stratosphere.

De Raadt was born in Pretoria in 1968. His father had moved there from the Netherlands soon after the war and his mother\’s side had already been there for a generation. \”An interesting thing that I like to always reflect on is that my grandfather moved to South Africa when he was nine; my father moved to South Africa when he was nine, and I moved out of South Africa when I was nine,\” he says.

Advertisement Advertisement

De Raadt Senior was keen to leave the country due to the \”great fear of stuff that was happening and, of course, the conscription, the mandatory two-year conscription.\” His parents went around the world once when he was four and again when he was six. \”They checked out New Zealand, they checked out Australia. Spain was checked out. But Canada really sort of stuck with them.\”

The eldest of four children – he has two sisters and a brother – de Raadt can still recall the day in 1977 when he landed in Canada. \”I remember that we left on the hottest day which we had experienced in our years in South Africa and we arrived in Canada, in Calgary, on the coldest day of November that had been recorded… something like minus 39 degrees,\” he said.

His father was a highway engineer and started working in Calgary. There were some hard times as the amount of money the family could take out of South Africa was restricted.

A recession in the early 80s put his father out of work and when jobs did surface again, there was a choice – Bolivia or the Yukon. The latter was the option that the de Raadt family took and Theo developed an interest in computers just before the move took place. \”Just before we moved to Yukon I became interested in computers. And I managed to get my hands on a Vic 20. I started programming the Vic 20. I was very interested in the way that electronics functioned, (I) got myself my computer, and very, very quickly went down to lower levels of how the architecture worked, and I was writing tiny little video games for the Vic 20 in 3.5 k of memory,\” he said.

From the Vic 20, he moved on to a Commodore and then to an Amiga. \”The IBM PC had already shown up by then, but it was really a business machine, not really a machine that people had at home, not really a tinkering machine. The Amiga, even though it cost more, well, let\’s be honest, it was priced about the same as a regular PC was, but someone would buy the PC because it had all the fancy stuff, it could run games and everything, it could do all your home productivity things. All the tinkering friends I had had the Amiga instead of the PC. My tinkering friends who had not bought computers that particular year, bought PCs the next year and started tinkering with PCs.\”

There were a couple of others who were as interested as he was but \”I was a little more hardcore in the way that I was approaching programming on a computer,\” he said. \”With them it was more learning little things, and learning how things worked. For me, I was really interested in the application, and the consequences of the application of ideas.

\”For example, one of the little games I wrote on the Vic 20 very early on, I ran out of memory. I was 80 bytes short. I actually managed to generate a tiny little piece of code. Each character on the screen had a colour, and the colour was stored in a memory higher up, where it only used low 4 bits, so the upper 4 bits of this memory were available for use. And I actually went and stored my code in the upper 4 bits, and I would copy it back and forth to be able to execute it. This is a ridiculous type of thing to do. But if you\’re out of memory, it\’s what you have to do.\”

The learning process continued as he progressed through school but had no effect on his grades. \”I\’ve never really had to work at school,\” de Raadt said. \”School has always been very easy, and this continued into my university years. The courses I chose that were difficult, they were the ones I was interested in, and therefore I would work hard at them, but I wouldn\’t work hard at the other ones, and I would basically just fill my options up – go to the minimum amount of classes, and as long as I had a B grade I was happy.\”

His father and mother encouraged him to take up electrical engineering when he went to university which he found \”very, very boring. It has nothing to do with electronics at all, just the basics – just stresses and loads and mathematical things which are not interesting to me.\”

De Raadt\’s first exposure to BSD came soon thereafter. The excitement is evident in his voice when he talks about it even after all these years – and at times like these, he begins to talk in the present tense. \”I meet someone who is in the computer science department. And I get access to his account. It\’s running 4.2 BSD. And I am immediately entranced with this system that has multiple users on it, and there are these barriers to access between processes. You can open up sockets and do intra-process communication, but you cannot acccess memory to each other. You can\’t access the memory of another process, and if your program crashes, it generates a core file and you can see what happened. This is completely different from the Amiga, where if your program crashes, it takes the machine down with it. And I\’m just flabbergasted and astounded by this.\”

He transferred to computer science even though his parents weren\’t exactly happy about it. \”…because of the course load I had taken, because the first two years of computer science were so strictly structured, and packed with intradependent courses, it took me an additional year to recover and realign myself with the program.\”

In the meantime, de Raadt just played and played and played. And when his second summer came, he managed to get a systems administration job at one of the departments of mechanical engineering.

He found kindred souls there: \”The reason I got it is because there was a fellow there, and a friend of his, with whom I became very good friends and they were the same type of people I was. They were low level addicts. They wanted to take a machine and rewrite an entire component, understand how it works, and then make improvements to it. \”

\”One of the guy\’s names was Caveh Jalali, the other guy\’s name was Mike Price. And we proceeded to do something completely ridiculous. We managed to get our hands on the early Minix source code from Andrew Tannenbaum – at that time it was only running on PCs and i386s. It wasn\’t ported to the Atari STs, which are an m68k-based machine… We decided, for better or for worse, to port this Minix source code to the Sun 3/50. Minix at the time had very poor management control, and the Sun 3/50 had a management unit, and we proceeded to start doing this – take a free Unix type thing – well, it wasn\’t really free, but it was kind of – and make it run on this thing. That was a year\’s effort for us. And about halfway along, when it was partially running, we bailed on that and moved across to try and port BSD 2.9, which is PDP 11 original BSD Unix, across. That faltered as well. But we learnt a lot from the attempts.\”

Jalali was hired by Stanford Research Institute. When he moved on de Raadt became the systems administrator. \”I did this while I was a student for about a year. And then when the summer came, having been a student administrator there, the mechanical engineering faculty forced the department to hire a full time systems administrator who was not a student. So I was replaced. I became a systems administrator at Clinical Neurosciences, which is a laboratory attached to a hospital, where they were cutting cats open and putting electrodes in their bodies.\”

The carcasses of dead felines put him off after some time. \”About a month into this, I was so disgusted by all the cats, that I left that place. I wandered for about two years, and then the computer science department (at the University of Calgary) hired me to be a systems administrator. Now I am a student at the computer science department, and suddenly, I\’m an administrator. If I wanted to check all the exams I could have, because I had access to all the professors\’ files. I even had the keys to the entire office base.\”

This fuelled his interest further. \”I suppose this really changed things for me – to be suddenly in an environment with Sun computers and SGI computers. And here we\’re talking like 150 Unix computers connected together. And about six months into this, I was one of the persons who got signed in on a SunOS source code licence. So being the inquisitive type, I started reading SunOS source code, and finding security holes in it. Or just regular bugs.

\”I just used components of the source which are recompiled, specific binaries with patches for the systems that are inside the entire department. We tried to build a cohesive network that requires less system administration. With more system administration, you don\’t get a chance to improve or fix bugs. So I prefer to actually just fix the problems – that\’s more interesting to me. I\”m not a person who wants to run around helping users with buggy software. I\’d rather just fix the buggy software, then I won\’t have to help the user. And then I have time. I can go and play and find the next bug that might bite someone up front. \”

When de Raadt left university, he wrote applications for a company for a year and a half. But around a month or two after he joined the workforce, the BSD source code became available. Even though his first employer had not paid him a great deal – in comparison to what he had made by selling the code which de Raadt had written – he made a big contribution to the turn which de Raadt\’s life would eventually take.

\”He sent me to one conference, and that conference was in San Diego,\” said de Raadt. \”I guess that was probably about 14 years ago. Probably \’92 or \’93. This was the conference where UNIX System Laboratories had suddenly decided to sue the University of California. And they were claiming that anyone who had read the UNIX source code was mentally infected. This conference was packed with fantastic papers presented by people. And the very last slide on everybody\’s talk was, \’I would love to give you the source code, but it would mentally affect you\’.\”

He found the whole discussion there gripping. \”Keith Bostic presented. And Chris Torek presented. All these people were involved in the UNIX source code, which you have to understand I\’d already been reading for four years on a regular basis. All of a sudden they were all there, we were going to the hot tub and we all sat there and discussed the way things work.\”

He also met Chris Demetriou who told him that the FreeBSD people \”had already sort of started modifying their source code very, very slightly, but they were basically doing a patch kit. So they had the base source code that came out from the Jolitzes, and they had a patch kit, that had at the time about 185 patches, and it was impossible to maintain.\”

Both de Raadt aand Demetriou thought it was the wrong way to develop software. \”Everybody thought that Jolitz would become – well, the FreeBSD people were still of the mindset that Jolitz would become open and friendly and would want to work with other people and create a community, but that was not something they wanted. They were people who thought that after this lawsuit was over, the University would somehow reform into an organisation that would play with this stuff, and allow us to get involved.\”

But the pair had a different opinion. \”We really knew that these would just be impediments in the dialogue, in the improvement cycle. Chris had a bit of money, so after he got back to California after the conference, he set up a machine and he sent me a mail and I was the second person who did a commit to the NetBSD source tree.\”

The team began to grow. A friend of Demetriou\’s, Adam Glass, got involved. And then Charles Hannum from MIT got involved. According to de Raadt, Hannum started putting in some very impressive changes. \”He knew what he was doing. So now we had a team of four people. And we started aggregating developers. I guess it was about 4 or 5 weeks when the visibility of what we were doing hit the FreeBSD mailing list. And at this point, it was not FreeBSD. It was one guy who had a machine with an FTP server, and he had a patch set, and people would send patches to him and his buddy and they would put the patches up. It was all discussed on mailing lists.

\”They suddenly realised, \’wait a second, somebody else is doing this.\’ And they were very angry. And then, somehow, in about a week of discussion, they all realised, \’Hey, that is the way to do software development.\’ They created their own repository and started working from that. They did this rather than joining forces with, at this point, six of us, who had started this NetBSD project.\”

Even though de Raadt was aware of Linux, he says not a single person at the San Diego conference spoke about it. \”There wasn\’t one single person, I believe, who ever mentioned Linux at that thing. So we are really saying that we were here before the Linux people were. Now, on some other mailing lists, he (Linus Torvalds) was already starting to build – Linux was already a thing that you could download, install and run. But in our mindset, it was a very weak System V. It was a Minix derivative at this point. At the time of this conference, Linux still used this Minix file system code. Well, the same file system layout, and half the code was borrowed. And you have to remember that Linux was infected by the fact that it used Minix source code.

\”Linus started off an entire kernel, but used the Minix file system code and sent messages through it, and then he started replacing the entire way he called it but he still had the back end block allocation functions. Then he eventually removed and replaced the block allocation functions. Now EXT fs is just a BSD file system. But whereas a BSD file system maintains a block bit mask for which blocks are allocated, the EXT file system remembers the starts and ends of zones. But other than that, the entire way the file system is structured is the same. Everything else on the disk is the same, Everything else in the allocation is the same, except for which blocks are free and which ones are not. So Linux wasn\’t really there yet.\”

The FreeBSD group grew faster than the budding NetBSD project, but this de Raadt says was because they were not particular about the calibre of the developers who joined … Read the rest of this interview at SMH (You may have to register to read the rest of this article but it is worth the effort.- ed)

Comments

Comments are closed