Nobody can ignore open source anymore, not even Big Corp.
An interview with Theo de Raadt, founder of the OpenBSD project
By Matjaž Ropret
(photo: Mavric Pivk/Delo)
Ljubljana – the hall of one of Ljubljana’s dorms was still half empty, the tables were covered with unused Thinkpad notebooks, and there wasn’t much of a working atmosphere. The problem was obviously that we disturbed the participants of the OpenBSD hackaton in Ljubljana (a programming marathon of sorts) in the middle of the morning.
Our interlocutor, Canadian citizen Theo de Raadt, the leader of the OpenBSD project for more than 15 years now, was also absent. Obviously last night’s session was very busy and creative. The Operating system (OS) OpenBSD is one of two successors of the source code developed in the labs of US telecommunication giant and monopolist Bell (AT&T). The source code slowly trickled out to the public and pieces of it ended up in several universities. The most active was Berkeley, where professors and students soon added the complete networking layer to the OS, the predecessor of today’s TCP/IP protocol. After many years of legal battles in several US courts, the code became open source. This became, among others, the foundation for the Mac OS and Solaris. Within the BSD family there is also the FreeBSD OS which is mainly developed in the US and concentrates more on server infrastructure. OpenBSD’s main goal is the creation of an OS without security holes.
Does the existence of many BSDs serve a purpose?
There’s probably a little of the “too many cooks spoil the broth” behind it. The problem is that it is difficult to form an effective team with a large number of members. Several interests always arise and they want to drive the project in their own specific direction. But since the source code is freely available we can always profit from some of their solutions – and they from ours.
Do both operating systems have similar market shares?
Their (FreeBSD) is much larger and our users are much more discreet. Nobody ever counts the number of firewalls in a company or how many elevator controllers they are running. I know of a case where they have 20 thousand computers running OpenBSD, but nobody is aware of it because it is part of a much bigger infrastructure.
How big is your developer team?
We have approximately a hundred developers, there are always some leaving and some new ones joining us. We release two versions every year and we have noticed that the end of summer release is never as good as the end of winter one. Because of the summer holidays people simply work less and the team is not as well connected.
Do you release a new version even if you haven’t managed to finish all the planned improvements and fixes?
Yes, our goals are not specific features, but a regular release cycle. Quite often the source code for certain changes is already written, but has not been vetted enough so it will have to wait for the next release. We do have a fairly large group of testers who are running the latest yet to be officially released code and using it for everyday regular applications. This allows us to find and fix most of the bugs in time for the next official release of the OS. As far as I know not many projects share this philosophy. Many still have this old mentality: “When we achieve it we’ll release it”. We don’t believe in this.
But we now also see a new trend, especially with browsers. New versions are being deployed almost monthly. The whole thing borders on obsession.
That’s true. And everybody is trying to involve the end user in the bug hunting to gain time. The development cycle must be shortened. The same thing is happening with mobile phones and cars also. They are working very hard to bring new products to the market ever faster. It doesn’t really matter anymore if the product is any good. It is only important that it’s a new version, slightly better than the previous and that it is available almost immediately after the last one. Those who are not putting out new products all the time and thus creating the impression that they are working hard on improving their products will not capture the public’s attention. Consumers forget such companies very fast.
What is the main focus for new releases? Fixing bugs and improving the performance or do you always also offer new features?
Every new release contains new features, especially regarding the network protocols like tunneling and packet filtering. We have a lot of our own implemented network technology built in. We can for example completely replace/emulate the functionality of Cisco devices and maintain full operability of the OS while doing so. We have a lot of functions that are built in the OS itself like encryption. Functions and features that no other OS has.
Do the users have to familiarize themselves with all the new features in order to be able to use the latest release?
We are trying to keep the system as simple as possible. Of course you have to read the man pages. We are strict followers of the legacy that says that the man pages are as important as the code itself. We take great care in describing every detail in them and actually have people who are checking the grammar and keeping it consistent. A good example of this is the fact that all man pages are written in the third person.
But the OS is only in English?
Yes. Some other developers have tried to add other languages. But this is difficult to achieve properly outside of large software companies. Usually the messages (texts) are written in the code itself. If you want to make it multilingual you need to add language tables and reference them from the software. That completely changes the way you program things. Microsoft’s products have come so far that some linguistic changes don’t mean changing only the text but also the graphical interface. Sometimes you also have to change questions to account for cultural differences resulting in a code that is supposed to operate over two or three different paths and that’s crazy from a programming point of view.
How is OpenBSD financed?
Mostly by the sale of the CDs and T-Shirts. The rest are donations. That’s enough for the organization of the hackatons, running of the servers (three racks of computers in my basement), electricity and internet access.
Are you employed anywhere?
No. My job is to release a new version of OpenBSD every 6 months. Some of the revenues pay for my work; it’s not exactly a lot, but enough since I don’t need much. The system works, but nobody is getting rich off of it.
What is the project’s yearly budget?
130.000,00 US Dollars.
Yes, and it includes the costs for all the hackatons although the developers pay for their own travel costs. Some of the larger hackatons are open to everybody and we are trying to attract new developers through them, mostly those of them who already participating on the mailing lists. We also have mini hackatons with far less participants and those are mainly dedicated to network functions. In this one in Ljubljana we are trying something new, it is primarily intended for our European developers for whom the trip to Canada is becoming increasingly expensive.
How do you advertise your OS?
We don’t (laughing). We have absolutely no marketing.
Have there been cases where the new release wasn’t as good as you hoped?
We’ve had no major problems. Eight years ago we had a really bad release when the kernel of the OS itself was unstable. We did all the standard testing, but it still didn’t perform as planned. We probably included too many new features. We also had a bug in the file system of our latest release, it was one that manifested itself very rarely – we only encountered it in three or four instances – but we still had to come up with a quick workaround and that’s not good.
Why did you even change the file system?
We wanted to make a better use of buffering. Computers today have immense quantity of unused memory. This new software almost works, we still have some minor bugs to fix, but the results so far are incredible. On computers with 16GB of RAM we can dedicate as much as 13 GB to buffering and almost no data is read from the hard drive, everything is in the RAM. It performs even faster than SSDs. We only have to write to the disk anymore and that’s mainly for reliability reasons. I estimate we’re a year away from the whole thing working flawlessly. From this aspect the 6 month release cycle is a bit limiting.
How do you cope with the rapid development of the hardware? How difficult is it to remain up to date and to support the newest technologies (multi core processors, etc…), since it is no secret that even the largest corporations like Microsoft are having many difficulties?
OpenBSD runs on some crazy computers. It still runs on VAX, SPARCS, PowerPC MACs, some computers with ARM processors... We are very careful that all new release still runs on older hardware, and on newer machines we have to figure out how they work. Sometimes, if the changes are not too extreme, we adapt quite quickly. When the changes are more substantial we try to get as much documentation on the subject as possible and we also observe what the other platforms like linux are doing. We had a lot of problems a few years ago with Wireless Network Adapters for which we were denied any official documentation, so we had to reverse engineer them in order to be able to write the drivers. We did it so well that we had a better support for wireless networking in OpenBSD than linux had. We also managed to force a few manufacturers to release the documentation by speaking publicly about them and in not too flattering terms.
So you’re not completely happy with the cooperation between hardware manufacturers and the open source community?
Well the good news is that many large companies are now more open about it and are now making a lot more documentation available to us. However I am not happy about the fact that some major players from the linux platform are now agreeing to an ever increasing number of non disclosure agreements. Red Hat specially has very little dilemma in doing so and it gets them the information before everybody else. There’s a fierce battle being waged against this type of practice in the open source community and technical documents still become public despite of it.
What is in your opinion the main reason why open source hasn’t captured a larger market share among end users?
We were very late with the graphical interface. The gap is closing now, especially with the fast release of new browsers.
Do you personally only use computers running OpenBSD or do you use something else as well?
Yes, I only use OpenBSD. I can do all I need with it. And when I’m not programming I rather go out hiking and not think about computers at all.
Translated by Janez Žigon.