Tables are cluttered with laptops, servers, switches, cables and cords as the 2006 OpenBSD hackathon continues in Calgary, Canada. Small groups of developers talk and debate around LCD screens, while others work individually on their own projects. Behind the scenes, a donated 10 megabit wireless connection provides Internet access to all. IP addresses and DNS are provided by stock bind and dhcpd processes running on an OpenBSD server. Among other things, the infrastructure area hosts an HP DL385 with 24 GB of memory that was recently donated by HP, a G5, several Sun Blade 2000's, and an assortment of PowerPC, Alpha and Opteron-based servers. A console server provides serial connections to the servers along with logs of what went on on the serial console, useful for debugging. Power issues on the first day were resolved by evenly spreading the servers and many laptops across the available circuits in the hackathon room. Chris Kuethe explained, "the whole point of the infrastructure is that it's not supposed to be exciting, it's just supposed to be there, like a light switch."
I have spoken with another 28 OpenBSD developers from Turkey, Iceland, Ireland, Germany, Sweden, Switzerland, Denmark, Australia, Austria, Hungary, the US, and Canada. Efforts are being made on ACPI, the VFS subsystem, link-layer authentication, OpenBGPD, tcpdump, XFree86, pf, CARP, dvmrpd as a replacement for mrouted, OpenRCS, OpenCVS, the USB layer, prebinding, ipsecctl, 10 gig Ethernet support, link layer path mtu discovery, several new and improved drivers, amd64 large memory support, new CD and DVD recording features for cdio, improvements to mg, support for new architectures, numerous new and updated ports, and much more.
Can lives in Ankara, Turkey. He began using OpenBSD in 1998 when he was maintaining his university department's network, choosing it from all the available options as he loved the simplicity, consistency and excellent documentation. He began contributing small patches and fixes, then when pf was added he wrote pflogd as logging functionality was missing from the new packet filter. A couple of weeks ago he implemented an ACPI driver for the embedded controller in his laptop, and has been testing it here at the hackathon, staying up through the night to fix bugs in the ACPI code and his driver which he just committed. He notes that he didn't plan to work on ACPI, wanting to focus next on adding IPv6 and multi-link support to the ppp layer. He also has some ideas for pf.
Thordur lives in Hafnarfjordur, Iceland. While at the What The Hack conference he walked into the OpenBSD tent with FreeBSD installed on his laptop. He was quickly talked into installing OpenBSD, and continued to hang out with OpenBSD people on the mailing lists and IRC, contributing VFS diffs. At the hackathon, Thordur's first, he's trying to understand how the scheduler and rw lock mechanism works, reviewing the code to help get it merged. He also hopes to address some minor issues in the VFS subsystem.
Henning lives in Hamburg, Germany. He originally got involved with OpenBSD in 2001 when he became interested in pf, OpenBSD's packet filter. He had run into serious performance issues with ipf, and found that while pf performed much better it was crashing, so he was involved in tracking down and fixing the bug. At this hackathon, Henning's 7th, he completed some work on time-delta sensors for OpenNTPD, allowing it to get time information directly from various sources such as GPS devices and long range radio. He noted that he did most of the work blindly on the airplane, and still could use hardware for testing. Henning also has coupled the bridge forwarding state to the carp state, so that the bridge only forwards traffic when the carp interface is master. This allows a series of hosts on multiple VLANS appear to be on the same physical subnet while actually having all traffic among the hosts be filtered through a pair of redundant firewalls. Other items on his agenda include adding support for multiple routing tables to provide policy-based routing, a few small improvements to OpenBGPD, and bringing some of his diffs up to date and getting them reviewed.
Michael lives in North Vancouver, Canada. He first started using OpenBSD in 2001 after it was recommended to him by a friend. He liked the simplicity of the operating system and kept using it. Being a fan of self-taught learning, he was especially impressed with the high-quality documentation. By 2002 he found that he was needing things that weren't there, so he started contributing. At this hackathon, Michael is working on adding CD and DVD burning capability to cdio. At this time, cdio is simply an old tool for playing audio tracks; however, by the time Michael is finished he sees it as a complete replacement for cdrecord and growisofs, "the all singing-dancing-burning tool." He's already implemented all the functionality in his own little test tool, so now what's left is to integrate it into cdio. He hopes to have things fully working by the end of the hackathon.
Reyk is from Hannover, Germany. He got involved with OpenBSD about 2 years ago while writing a driver for a first generation 802.11a wireless device. He started working on the driver for Linux, but became annoyed with the poor code quality in the Linux kernel and having to constantly update his drivers for each kernel release. He then reimplemented his efforts on OpenBSD and quickly became excited by the excellent code quality, stopping his efforts elsewhere and focusing entirely on OpenBSD. At this hackathon, Reyk is adding a new load balancing feature to his link aggregation trunk driver that will be compatible with most switch implementations. He will also be working on implementing link layer path mtu discovery for jumbo frames. Different devices support different maximum packet sizes, and when finished OpenBSD will be able to automatically discover and use the maximum for each device.
Mats lives in Stockholm, Sweden. He got involved with OpenBSD very early on when Theo approached him to get his ypserv efforts incorporated into OpenBSD, and he's been involved ever since. At this hackathon, Mats is focused on getting 802.1x authorization working, allowing an OpenBSD server to authenticate with a switch which then determines whether or not it should have access to the rest of the network. He considers his current work a proof of concept, and has already successfully authenticated with a wired switch. Support for wireless switches may come later, though for now he's focused on supporting more complicated wired authentication. The code is currently implemented as a userland daemon, but may eventually become part of the kernel.
Claudio lives in Zurich, Switzerland. He started using OpenBSD in 1998 when he decided to try running it on a Sparc. He picked it up, was happy with it, and has been using it since. He got his commit account two and a half years ago when he started working on OpenBGPD. Since that time he's been hacking on OpenBGPD, OpenOSPFD, kernel routing code and networking code. At this hackathon he's trying to fix a few issues with OpenBGPD and OpenOSPFD, as well as trying to get some outstanding code into the tree. Claudio is also working with Esben to get dvmrpd cleaned up and imported.
Moritz lives in Hamburg, Germany. He found OpenBSD in 2003 after he got tired of using Linux, and was greatly impressed by the documentation and everything about OpenBSD. He started getting involved by improving things and sending in patches. In 2004 he noticed that ftpd was running with root privileges and got the idea to redo it utilizing privilege separation. He sent the new implementation to an OpenBSD developer, and within a few days received an email from Theo. At the hackathon, Moritz is working on fixing bugs in tcpdump which tends to crash on special packets. Fortunately tcpdump is already implemented with privsep so these bugs are not exploitable. Moritz will also be working on various userland areas that need fixing.
Gordon lives in Windsor, Ontario in Canada. He started out using other operating system such as Linux, but always used OpenBSD for his firewall and appreciated that once you install it you don't have to mess with it. With Linux he found that the "wonderful" automatic updaters would break things overnight, something that doesn't happen with OpenBSD. Gordon has been contributing code to OpenBSD for the past year, and got commit access about two months ago when he implemented AMD PowerNow support providing voltage and frequency scaling for AMD 64 processors. At this hackathon Gordon is focusing on ACPI which he refers to as a "complicated mess". He explains that the 900 page spec is going to take a long time to fully integrate into OpenBSD and to test on a wide variety of machines, "an arduous chore". At this hackathon he's just looking to fix what little pieces in ACPI that he can.
Michael lives in Aalborg, Denmark. He started using OpenBSD back in 2000 after hearing a friend talk about it. He later got involved when he noticed some errors in some man pages, sent in a few diffs, and got more interested in working on OpenBSD. At this hackathon Michael is focused on updating the wdt watchdog driver to use the OpenBSD watchdog framework like all other watchdog drivers do. He's also investigating how to best use additional sensors available on certain models. Michael hopes to finish the work on the wdt driver while at this hackathon, however he doesn't have hardware to test it on and is relying on sending diffs to a user in France with the hardware. He welcomes anyone else to contact him that has the hardware that is willing to test diffs, "the device will show up in dmesg as not configured". Also at the hackathon Michael has been involved in the time-delta discussions.
Felix is from Oldenburg, Germany. He's been using OpenBSD heavily at his consulting and software development company since OpenBSD 2.7 days. Felix has contributed a few ports over the years, but only recently got commit access after having made the com(4) driver work with PCMCIA adapters on the macppc platform so he could use his UMTS (Universal Mobile Telecommunications System) card. At this hackathon Felix intends to focus on adding support for cardbus based gprs/umts adapters to work on macppc as well as working on a driver for a HSDPA (High-Speed Downlink Packet Access) adapter. Based on initial work by Reyk Floeter he has reviewed the GPL'd Linux driver provided by Option, and when finished with his OpenBSD driver will have created the first BSD driver to support high speed UMTS cards. Felix notes that he's fairly new to the low-level PowerPC architecture, and thus finds it very helpful to have other brains to pick at the hackathon.
Marc La France
Marc is from Edmonton, Canada. He's from the XFree86 group, and was invited by Bob Beck to attend the OpenBSD hackathon. While here he's focused on porting XFree86 to the OpenBSD/sparc64 architecture, working on supporting the SBus adapters. Once that is completed, he plans to work on multi-PCI domain support, and getting multiple adapters running all at the same time, regardless of if they're SBus or PCI.
Ryan was living in Vancouver, Canada, but is in the process of moving to Tokyo, Japan. He first started using OpenBSD back in 1998 as he found it too annoying to deal with firewalls on Linux. Then in 2001 when ipf was removed and pf was added, he wanted a firewall that could filter IPv6 and decided to add it to pf. At this hackathon, Ryan is working on some projects that he started at last year's hackathon [story] including making pfctl work as a compiler to offer more complicated optimizations and error checking. The past year has been busy in personal life and work, so he's now working to clear out a backlog of projects, including reviewing a pile of fixes to sasyncd. Also at this hackathon Ryan is going to start working on his third major rework of the state code in pf, and is looking to improve the routing performance of OpenBSD.
Robert is from Debrecen, Hungary. He started using OpenBSD three years ago as he was unhappy with the fact that FreeBSD wasn't entirely free, including non-opensource code such as drivers. He became an OpenBSD developer in 2004 when he started submitting ports and helping fix bugs. At the hackathon, Robert is helping with the Open Office port. It currently builds, but crashes frequently due to memory allocation issues caught by OpenBSD's random malloc and by using ProPolice in the GNU C compiler. Robert is working with Open Office developers and Peter to fix these issues, and hopes to have everything working within a week or two. Robert is also helping with Zaurus development by getting audio recording working.
Esben lives in Ringkobing, Denmark. He first found OpenBSD in 2.8 days when he was looking for a firewall, and was amazed at how good of an operating system it was. About a year and a half ago he got interested in implementing a good free OSPF daemon as there wasn't anything especially good available. After OpenOSPFD he became involved with routing daemons in general. At this hackathon, Esben is focused on dvmrpd, a replacement for mrouted that will be similar in style to OpenBGPD and OpenOSPFD with three processes, privilege separation and a nice configuration file. When asked if he'd finish dvmrpd at the hackathon he laughed and said, "that's impossible, you never finish anything at a hackathon. But it will most likely be imported soon."
Niall is from Dublin, Ireland. He started using OpenBSD a few years ago when he had trouble setting up PPP under Linux, finding that it was much simpler under OpenBSD. A year ago he started spotting bugs and submitting fixes. At this hackathon Niall is helping with OpenCVS and fixing bugs in OpenRCS. He's also writing the rum(4) driver to support a new Ralink USB wireless chipset. Currently the new driver can turn the LED on and off, but he intends to make quite a bit more progress this week.
Chris lives in Brisbane, Australia. His first exposure to OpenBSD was in 1999 at work where they had been running ipf on FreeBSD, when a friend recommended OpenBSD. When pf was merged, Chris contributed patches, and was also involved with carp, VLANs, bridging, USB, and the SCSI layer. In addition he tends to be involved in tracking down subtle little things like memory leaks, for example last year he worked on numerous cleanups to address stack overflow problems. At this hackathon Chris is evaluating USB fixes that have gone into NetBSD and FreeBSD to see what applies to OpenBSD. He's also planning to work on some routing and carp code.
Theo de Raadt
Theo lives in Calgary, Canada. He started the OpenBSD repository on October 18'th, 1995.
Dale is living in St. Joseph, Illinois, in the US. He first starting working with BSD operating systems using 386BSD 0.0 in college. He then started using NetBSD, and worked to port it to the MVME 147 board. By January of 1995 he had a working bootloader, and within 5 months he had a fully multi-user NetBSD system able to be installed from tape. Three weeks later, two other ports to the same architecture were released, one from Chuck Cranor and another from Theo de Raadt. Theo moved on to porting NetBSD to the MVME 162 board, while Dale worked on porting it to the MVME 167 board. A few months later when Theo split from NetBSD and formed OpenBSD he invited Dale along. At this hackathon, Dale is looking to get OpenBSD running on ARM NAS boxes which are similar the Zaurus but more of a desktop box. Another big project Dale is focused on at this hackathon is prebinding, similar to Linux prelinking but secure. With Linux prelinking every shared library in every binary is loaded at the same fixed address, so for example if a buffer overflow is found in libjpeg in one program, every other program that uses libjpgeg is susceptible to the same overflow. With the prebinding support Dale is adding to OpenBSD, he has added hints in the binaries that allows libraries to be loaded at random addresses while retaining the speed advantages of prelinking.
Martin lives in Vienna, Austria. He got involved in OpenBSD as a user in 2000 when he was looking for an alternative to Linux. In 2004 he became involved as a developer by updating the Mac68k OpenBSD port. Since then he has been walking through the source tree to see what he can do, mostly sticking to the kernel and to platforms that not many people care about where he can be the most helpful. At this hackathon, Martin has been involved in switching the Alpha architecture to GCC 3. He's also working to update support for older Adaptec PCMCIA cards so that it's possible to eject them without freezing the kernel. Prior to the hackathon he updated pdisk to the latest version, and is now working to clean up the rough edges.
Mathieu is from Montreal, Quebec in Canada. He moved to OpenBSD about seven years ago after becoming frustrated with Linux, especially happy with OpenBSD's integrated IPsec support. He used OpenBSD for various system administration tasks and as a firewall at various companies where he also worked with several OpenBSD developers. At this hackathon Mathieu is helping to replace ipsecadm with ipsecctl, merging in missing functionality. At the moment he's adding a debugging interface which allows you to watch pretty-printed messages as IPsec tunnels are set up. If he needs a break from IPsec during the hackathon he may also try and do a little ports work.
Brad is from Toronto, Canada. He started working with OpenBSD back in 1999 when he was trying to find an operating system that worked on his Sparc system. He started with NetBSD but ran into difficulties, so then he followed a friend's advice and tried OpenBSD on which everything basically just worked. For the next few years he focused on the ports tree, and then began moving into networking code, his current specialty. At this hackathon, Brad is focusing on 10 gig Ethernet support. He recently tracked down 10 gig hardware from Neterion, adding to Intel 10 gig hardware obtained from a Sun reseller. He's also received feedback from the Myricom CEO and has 10 gig hardware on the way from them. Brad is fixing bugs in the xge Netorion 10 gig driver, as well as helping with link layer path mtu discovery by debugging bugs found in jumbo frames support.
Nikolay is from Munich, Germany. His first contact with OpenBSD was in 1997 at a hacker's conference in Holland. Linux was becoming too mainstream for him, so he was looking for something new and found OpenBSD. Around 2000 he started contributing to the ports tree, gaining a commit account in 2002. At this hackathon Nikolay is currently learning the VFS. The main kernel locking infrastructure is overly complex and is actively being replaced with a new simpler infrastructure. Nikolay is reading through the code to learn more about how the old locking code works, how the new locking code works, and what needs to be done to transform the VFS locking code to the new framework. Time permitting, Nikolay will also review some updates to systrace, intending to get them merged.
Peter lives in Calgary, Canada. He was a sysadmin in high school and had been using other operating systems for firewalls, discovering OpenBSD in 2.4 days. Over time he got more involved, and by coincidence moved to Calgary. In 2001 he became a committer, and has since become more excited and involved, now responsible for all package builds on six different architectures. At this hackathon, Peter is helping with the Open Office port. He's also focused on auditing libexpat, the XML parsing library, trying to resolve numerous integer overflows and other security flaws so it can be enabled in the ports tree. Finally, Peter is aiming to get cardbus support working with suspend, and helping with general driver issues.
Tobias lives in Edmonton, Canada. Back in 1996 he was running an early version of NetBSD when he found a bug in init. He submitted a patch which was ignored, so he sent the patch to Theo who had recently formed OpenBSD. Theo replied in kind and offered Tobias commit access. At this hackathon Tobias is working on amd64 large memory support. He originally wrote the patch at last year's hackathon, but life got busy with getting married and such so it never got committed. It is currently being tested. Tobias is also working on the PCI bus DMA implementation for amd64, getting it to support 64-bits of memory.
Christian "Naddy" Weisgerber
Naddy lives in Ludwigshafen, Germany. When he was a FreeBSD user at his university student's computing club they had a Sun machine that wouldn't run FreeBSD. They didn't want to use Linux, and ultimately chose OpenBSD over NetBSD. He played around with it for a while then started doing a few simple ports as at the time the ports tree was similar to FreeBSD. Pretty soon Naddy got an email from another OpenBSD developer that was tired of committing his ports for him, and in June of 2000 he got commit access. At this hackathon Naddy is working on various ports. He's currently focused on bringing the netpbm package up to date, a set of graphics tools used by other graphics programs that has gotten very stale and was in need of being cleaned up. As time permits he plans to work through his todo list from the ports hackathon last fall. Outside of the ports tree, Naddy is also helping to test IPv6 support in ipsecctl.
Ken lives in Toronto, Canada. He randomly encountered OpenBSD about 5 or 6 years ago when he was trying various operating systems. In asking some questions on the OpenBSD mailing list he found the group welcoming so he started submitting diffs and has been involved since. At this hackathon, Ken's fifth, he's working on tape-changer support, an area that has had long standing problems of not working properly. Having obtained some equipment at this hackathon there's been significant progress in cleaning up the tape-changer code. Ken also plans to work on some filesystem issues with multisession CDs, disklabels, and a few issues with specific USB devices.
Kjell lives in Calgary, Canada. He first heard about OpenBSD when he saw a sticker in the bathroom of the Ship and Anchor Pub, but didn't think anything of it until he ran into a pair of OpenBSD hackers a couple of months later. Owning a computer security company at the time, it seemed like a good fit. He later met Theo over a beer, and "foolishly mailed a diff" and gained commit access. He started with a ping bug, then ended up maintaining ipf. Later he helped with merging pf. At this hackathon, Kjell is currently working to add line numbers to the mg editor, which is proving to be much more of a challenge than it would sound. He's also planning to reproduce and chase down a couple of CARP bugs he ran into on a production system. As a long term goal he's looking into writing a replacement to OpenSSL, something that's easier to read and that he can play with for his PhD work.
Return to part one of this article.