It's getting late in the hackathon. I can tell, because I have to think hard to remember what day it is. (Thursday, or at least, that's what somebody in the lobby told me). Except for occasional breaks for food and sleep, I have hardly looked-up from my laptop for 3 days now. I've been chasing a bug through the multi-processor initialization code (certain features, including SSE instructions, were not initialzed properly on secondary processors), and having finally fixed it, I finally had the chance to get up and take a look around.
And wow. A lot has happened in 3 days.
One good sign that you're at a hackathon is that you've just powered-on a machine by shorting the appropriate power switch pins with a house key. Some motherboards, especially prototype ones, don't fit nicely into a case. So they live on cardboard boxes, and get powered-on with house keys.
At a hackathon, you make do with what you have.
One of the virtues of having all the developers together in one place is that some bugs get fixed that may otherwise have languished for a while. There a bug, for instance, in the Zaurus APM resume. It showed up most recently during a late-night excursion to a nearby pub. The pub in question happened to have free wireless, so a few Zauri came along for the trip. A conversation between 3 Zaurus-wielders ensued:
It's early in the hackathon, and many of the week's big projects haven't started yet. In fact, many of the big projects haven't even been conceived of yet. Typically, Day 1 is about getting set up, getting connected, and getting hacking on something, and though much of this hacking occurs on laptop, sometimes, you need access to the Big Iron.
There's two hack rooms this year. The second room is the "Big Iron" room. You can tell by the temperature—several degrees warmer than any other room in the Hotel. The source of this temperature difference lies underneath a pair of banquet tables lining one wall of the room. There you will find an eclectic stack of hardware, including a 1U dual AMD64, a CATS (ARM), a Via C3 (i386 with integrated crypto), a few SunBlades (sparc64), and some large i386es. In fact, just about any piece of hardware that isn't available in laptop form makes its way to the Big Iron room, stashed under one of these tables.
It's the day before the hackathon—infrastructure day. For Hackers, infrastructure means power and Internet. The hackathon infrastructure has evolved over the years. Initially, it was Theo's living room, and a laptop acting as a wireless gateway. Needless to say, this approach didn't scale. Today, the hackathon's infrastructure needs are somewhat more significant, hence the 0-day set up ritual.
The ninth OpenBSD Hackathon will be happening in Canada next week, in Calgary, Alberta. The week long event will begin on May 21'st and run through May 28'th, attended by around 60 OpenBSD developers from all over the world. I will also be attending for the first few days, providing live coverage on KernelTrap.org, speaking to developers and observing some of the magic as it happens from May 22'nd through May 24'th.
To get a better feel for the upcoming event, I spoke to several OpenBSD developers. Henning Brauer, an OpenBSD contributer from Germany described the event as, "the highlight of the year for most of our developers." Nikolay Sturm, also from Germany, added, "hackathons are focused on two aspects, they are an important technical event and they are *the* OpenBSD social event." Peter Valchev, who lives in Calgary and is very involved in making the hackathon happen, talked about the value of face-to-face communication, "normally, we have to sit down and write a long explanation email in order to communicate, and people are in different timezones, so the feedback is often less than fast. Being able to go directly up to somebody and perhaps even work together on a task in real-time, is a big plus." Thierry Deval, an OpenBSD developer from Belgium added, "the reduction in distance and time augments the dialog between developers working in related areas, and some new projects can even spontaneously emerge on their own."
The Linux Kernel Archives are perhaps most familiar through their web interface, http://kernel.org/. The latest release of the Linux kernel is easily found here, along with patches by various Linux kernel hackers, and mirrors of other popular free and open source projects. Countless people worldwide happily rely on this archive without giving much thought to the effort behind it.
In a recent announcement to the Linux Kernel Mailing List, H. Peter Anvin detailed a recent upgrade of the infrastructure behind kernel.org. The new servers were donated by Hewlett-Packard, and are each quad Opterons with 24 gigabytes of RAM and 10 terabytes of disk space. Internet Systems Consortium, Inc. donates the bandwidth in the form of two independent gigabit-connected datacenters, PAIX Palo Alto and e200paul in San Francisco. H. Peter Anvin, Nathan Laredo, and Kees Cook all donate time to maintain the archives. KernelTrap recently spoke with Peter Anvin to learn more about the history behind the Linux Kernel Archives.
BitKeeper was first utilized by a Linux project in December of 1999, when it was employed by the Linux PowerPC project. Then in February of 2002, Linux creator Linus Torvalds decided that BitKeeper was "the best tool for the job" and started using it to manage the mainline kernel, an event that received much attention in the free and open source communities [story], and beyond. BitMover, the company behind BitKeeper, was founded by its current CEO, Larry McVoy [interview], who originally conceived of BitKeeper as a tool to keep Linus from getting burnt out by the growing task of managing the Linux Kernel. Since Linus began using the tool three years ago, the pace of Linux kernel development has doubled [story].
There are two definitions for the word "free" that are commonly used to describe software. The first is "Free as in Freedom", and the other is "Free as in Free Beer". BitKeeper was made available freely under the latter definition, allowing free and open source software developers to use the tool without having to pay any money. It was provided under the agreement that anyone actively using the free tool would not develop a competing product at the same time. In other words, the aim was to provide a tool that could be freely used, but not freely cloned. At the same time, a more advanced version of BitKeeper has been sold commercially, and both products remain the intellectual property of BitMover.
A vocal group has long protested Linus' use of BitKeeper, considering Linux the free and open source flagship product. GNU Project founder Richard Stallman [interview] is among the protestors, harshly criticizing Linus' decision to use a non-free (as in freedom) tool [story]. However, most acknowledge that no free tool currently exists that is as powerful as BitKeeper, offering the ability to perform truly distributed development. Attempts to reverse engineer some of BitKeeper's features have lead to repeated cautions by BitMover. Most recently two such reverse engineering attempts have contributed to BitMover's decision to end the development and availability of the free BitKeeper product.
The OpenBSD project has long been associated with security. Indeed, thanks to proactively and regularly auditing its code, the project's web site is able to boast "only one remote hole in the default install, in more than 8 years," and another page states "our aspiration is to be NUMBER ONE in the industry for security (if we are not already there)." However, security is not the only focus of OpenBSD, as reflected in the project's slogan which reads, "Free, Functional and Secure." All three of these words are strongly backed by OpenBSD developers.
If you speak with OpenBSD creator Theo de Raadt for any length of time, you will quickly realize just how important freedom is to the project. For example, freedom was the driving force behind the now ubiquitous OpenSSH, developed within the OpenBSD project. It has also lead to the development of OpenNTPD, OpenCVS, and the widely used pf Packet filter [story]. In recognition of these many contributions, Theo recently received the 2004 Free Software Award from the Free Software Foundation. The freedom that the OpenBSD team works so hard for comes without any strings, patents, or conditions, distributed under the BSD license.
Currently, the OpenBSD project is focusing on wireless networking technology, working to convince hardware manufacturers to make the firmware for their wireless cards freely distributable. It sounds simple enough, but the effort has taken much persistence and perseverance. Many of today's corporations require the signing of non-disclosure agreements and other legal red tape prior to making firmware or documentation available, requirements that don't measure up to OpenBSD's standards for freedom.
Timothy Miller is a long time developer of graphics chips and drivers. He has observed that there is a growing trend by graphics hardware vendors to provide less and less information to free and open source operating system developers. Without this information, it is becoming more and more difficult to purchase new graphics hardware that is stable and reliable on Linux and other free and open source operating systems. In response, Timothy worked with his employer, Tech Source, to form the Open Graphics Project.
The Open Graphics Project is a collaboration between the Free and Open Source Software (FOSS) Community and Tech Source Inc. to develop new 3D graphics products that are compatible with Free Software, both philosophically and practically. The project is currently designing an "open source friendly graphics card" which will offer quality 3D and 2D acceleration with an impressive feature set at an affordable price, aiming for availability as early as June of 2005. Though the project was only started in October of 2004, it has already released the card's specifications, a design document, and a software model for early testing and driver development. In this interview, Timothy provides a wealth of information about the project and its current status, highlights contributions needed from the free and open source community, and fully describes the specific capabilities of the card.
Richard Stallman founded the GNU Project in 1984, and the Free Software Foundation in 1985. He also originally authored a number of well known and highly used development tools, including the GNU Compiler Collection (GCC), the GNU symbolic debugger (GDB) and GNU Emacs.
To better understand Richard Stallman and the GNU project, I recommend you begin by reviewing their philosophy page. On it you will find a wealth of information.
We began this interview via email, but later had to finish by telephone after Richard Stallman fell and broke his arm. He was kind enough to speak with me at length, discussing his first contact with computers, his time in the AI lab, the current state of the GNU Hurd, his current role in the Free Software Foundation, the problems with non-free software, and much more. The following words offer much insight into how we got here, and what challenges we still face.
A recent discussion on the OpenBSD -misc mailing list focused on the project's efforts to initiate communication with Texas Instruments to try and get them to offer the firmware for one of their wireless chipsets under an open license [story]. The goal is not to get the company to open source their firmware, just to license it in such a way that it can be legally distributed with OpenBSD, an operating system that prides itself on being 100% free. TI is only one of many companies currently being approached in this recent effort [story].
In order to gain the attention of these vendors, many hundreds of letters have been sent and phone calls made to numerous contacts. The idea being to let the vendors know that there is a large concerned user base that is going to decide how they will spend their money based on the vendor's willingness to work with open source software. Already this effort has successfully initiated communication between OpenBSD creator Theo de Raadt [interview] and several wireless chip vendors, with two of them recently agreeing to offer their firmwares under a freely redistributable license. At this time, Symbol, Zydas, and Atmel have opened their firmwares so that OpenBSD can redistribute them. Intel and Conexant are discussing the possibilty. And only Texas Instruments has remained silent.
In order to better understand why OpenBSD has decided this is important, I approached Theo de Raadt with a few questions. In reply he fully explains the issue, talking about how successful this form of activism has been for OpenBSD in the past, and offering specifics on exactly what they are trying to accomplish. He summarizes, "the open source community has support for all the ethernet chipsets, all the scsi chipsets, all the raid chipsets, so why should we not have support for all the wireless chipsets?" Read on for the full interview.
Andrea Arcangeli is well known for having completely rewritten and stabilized the virtual memory subsystem in the 2.4 Linux kernel. Many were surprised when Linus Torvalds merged Andrea's VM into 2.4.10, but the new memory subsystem has long since proved itself. Andrea is a 27 year old Linux kernel hacker living in Italy and working for SUSE.
A vulnerability in TCP, the transmission control protocol, recently received some exposure in the media. Paul Watson released a white paper titled Slipping In The window: TCP Reset Attacks at the 2004 CanSecWest conference, providing a much better understanding of the real-world risks of TCP reset attacks.
To better understand the reality of this threat, KernelTrap spoke with Theo de Raadt [interview], the creator of OpenBSD, an operating system which among other goals proactively focuses on security. In this article, we aim to provide some background into the workings of TCP, and then to build upon this foundation to understand how resets attacks work.
This is the first article in a two part series. The second article will look into how TCP stacks can be hardened to defend against such attacks. Toward this goal, we spoke with members of the OpenBSD team to learn what they have done so far, and what further plans they have to minimize the impact of reset attacks.
As RAM increasingly becomes a commodity, the prices drop and computer users are able to buy more. 32-bit archictectures face certain limitations in regards to accessing these growing amounts of RAM. To better understand the problem and the various solutions, we begin with an overview of Linux memory management. Understanding how basic memory management works, we are better able to define the problem, and finally to review the various solutions.
This article was written by examining the Linux 2.6 kernel source code for the x86 architecture types.