The 2006 OpenBSD Hackathon, c2k6, is well underway in a conference room at a hotel in downtown Calgary, Canada. The event started yesterday, May 27th, attended by nearly 50 OpenBSD developers from all over the globe. OpenBSD creator Theo de Raadt [interview] is thrilled by what is already proving to be another successful event, "I don't think anybody else does this, developers suspend their lives for a week to focus entirely on just development." Theo explains that he doesn't get much coding done himself at these hackathons, but instead focuses on ensuring beneficial communication between developers, an obvious advantage to assembling so much talent in a single room.
Walking among the cluttered tables, I've been talking with the high energy attendees of this year's hackathon, learning who's here and what they're working on. In this first installment I've talked to 18 developers from France, Switzerland, Germany, the UK, the Netherlands, Australia, Brazil, Dominica, the US, and Canada. They each talk a little about how they discovered OpenBSD and what they're working on here at the hackathon, including introducing new ports, support for SD devices, local OpenCVS functionality, improvements to OpenNTPD, improved SCSI controller support, initial support for the UltraSparc III architecture, and much more. The hackathon continues around the clock through June 2nd.
Alexandre is from Marseille, France. He got started with OpenBSD in 2002 by making a few contributions against the OpenBSD ports tree. Alexandre was first exposed to OpenBSD through work, preferring it over other operating systems due to its focus on security and functionality. At this hackathon, his first, Alexandre plans to update the ports that he currently maintains. He is then planning to introduce some new ports to the tree, such as the Prelude Hybrid Intrusion Detection System, the Bro Intrusion Detection System, and pgAdmin. Alexandre is also interested in IPsec work.
Marc lives in Basel, Switzerland. He originally chose OpenBSD due to features it offered for his enterprise customers, such as the 6 month release cycle which allows them to plan updates. He describes OpenBSD as a very clear system to develop on with tremendous documentation, "when developing on OpenBSD, you get your job done faster." Marc has had commit access to OpenBSD since 2004, maintaining a number of large ports that are critical for his enterprise customers, including PostgreSQL, Samba, and OpenLDAP. At this hackathon, Marc's second, he is primarily focused on adding GPS support for OpenNTPD for which he already added time signal station receiver support, allowing OpenNTPD to get the current time directly from hardware clocks.
Bob lives in Edmonton, Canada, and got introduced to OpenBSD around 1996 when the project was first getting started. Involved in computer networking and security work he was unable to get NetBSD/Sparc working, then tried and succeeded with OpenBSD/Sparc. Theo had a note that said if you like OpenBSD you could buy him a pizza, so Bob called up the pizza place and found that they wouldn't accept a credit card from Edmonton. Bob was then compelled to phone Theo to complain, and has been involved with OpenBSD ever since. He has attended all major hackathons, and describes himself as a "jack of all trades, master of none". At this hackathon he intends to focus on some SCSI work, various userland utilities including spamd, and helping to get more than 4GB of RAM working on the AMD64 port.
Ian lives on 50 acres north of Toronto, Canada. The author of several O'Reilly books, Ian has worked with UNIX since the early '80s. He first heard about OpenBSD at its inception on the NetBSD mailing lists, but it wasn't until a year later in 1996 while writing articles for Sun Expert Magazine that he came across an article that talked about OpenBSD and was compelled to look it up and get involved. Ian's background was in Sun OS 4, Berkeley Unix, and Eighth Edition, and he immediately felt at home with OpenBSD, referring to it as a "real UNIX". This is his second hackathon, during which he plans to be involved in a variety of things. He intends to bring the OpenBSD press page up to date, as well as to work on a number of ports, mostly Java related. As the original author of the
file command, he also plans to bring it up to date. Finally, Ian will be working on miscellaneous pieces of documentation.
Todd is from Oklahoma City, Oklahoma in the US. He first became aware of OpenBSD as the project was being formed, when his friend John Stone was testing support for a new Sparc architecture developed by Theo. It was during this time that Theo and the NetBSD project split paths, and OpenBSD was forked. Several years later, one of Todd's college buddies was playing with free operating systems on his Sparc, didn't have much luck with Linux, and ultimately tried with OpenBSD. Todd was looking to get X running, but in those days there were no regular X builds. On IRC, Todd ran into "a character named Theo" from whom he obtained some old Sparc X binaries in exchange for a promise to someday build X for Sparc. Unfortunately shortly thereafter his college buddy caused himself some grief with OpenBSD through not reading instructions, ultimately losing interest in OpenBSD and reformatting his Sparc at which point Todd no longer had a way to fulfill his promise. In 1997 while working with John Stone again he gained access to some Sparc machines and finally fulfilled his promise to build X for Sparc. Since that time he's become responsible for building X for 14 different architectures. At this hackathon, Todd's fifth, he has several goals. For one, as Theo recently removed the overly complicated ipsecadm from OpenBSD, Todd is working to add IPv6 support to ipsecctl. Additionally, he's working to simplify his m4-based MAKEDEV scripts which are currently too complex for others to modify. Beyond that he hopes to work on several ports.
David lives in Brisbane, Australia, and started working with OpenBSD in 2000 when he needed a Unix to use at home for study on the Internet. He chose OpenBSD as its documentation is second to none. Having arrived on the 14'th, this is David's second hackathon. He is working this week to replace mpt(4), an LSI Fusion-MPT SCSI and FibreChannel host adapter driver with a new driver known as mpi(4), short for the Message Passing Interface that the driver uses to communicate with the hardware. The old mpt driver was 10,000 lines of code, and "a complete mess". The new mpi driver is currently about 2,000 lines of code, works much faster, and picked up SAS (Serial Attached SCSI) at the same time. As of last night, IO is working on amd64, i386, and sparc64.
Matthieu lives in Toulouse, France, and started working with OpenBSD shortly after it was forked from NetBSD. He made the switch for various reasons, one being that he had an old SCSI card that was fully supported first in OpenBSD. His primary interest is in X. At this hackathon, Matthieu's fifth, he has two plans for X. First, he's looking to integrate the newer modular X build system that was introduced with X11R7.0. OpenBSD 3.9 shipped with the older X11R6.9 monolithic build system, as probably will OpenBSD 4.0, but Matthieu hopes to get the new modular build system working and fully merged by the time OpenBSD 4.1 is released. The other main issue that he intends to focus on is addressing the X "security hole" demonstrated by Loic Duflot at this years CanSecWest. Matthieu explained that the hole isn't new, but what is new is that someone has figured out how to exploit it. The solution Matthieu is working toward involves porting the vesafb code from NetBSD to allow X to use a bitmap console, and then to use the wsfb driver so that X doesn't need any hardware access, instead relying on the console being in graphics mode. The downside to this solution is that it doesn't provide any acceleration, but it does provide security to someone not requiring acceleration.
Hans lives near Nuremberg in Germany. Several years ago while studying computer science he got interested in IPsec, and found that OpenBSD had the best IPsec solution around. After using it for a few years, Hans sent in some diffs to fix some bugs, and ultimately in 2003 obtained OpenBSD CVS access. Hans originally wrote ipsecctl as a saner replacement for ipsecadm. For this hackathon, Hans' third, he is working to make ipsecctl feature complete compared to the ipsecadm command. By the end of the hackathon he hopes that ipsecctl will be able to do everything that ipsecadm was able to do, providing a complete replacement. Once this is finished, the next big effort will be on improving the documentation, planned as the primary focus of an upcoming mini-hackathon in Germany.
Mark lives in Assen in the Netherlands. His first exposure to OpenBSD was toward the end of 2003 when he was hacking on GDB, trying to make it run on as many platforms as possible. GDB wouldn't run on OpenBSD/sparc due to StackGhost [story], a security feature for guarding return pointers that as a side effect made it difficult to debug programs. After getting GDB working with StackGhost, Theo contacted Mark to see if he was interested in doing additional work on OpenBSD, providing him a much faster Sparc machine to work on. At this hackathon, Mark's second, he's primarily focused on getting OpenBSD working on the UltraSparc III platform. In addition to working on the UltraSparc III architecture, he's also working on issues with ACPI interrupt routing.
Chris lives in Edmonton, Canada. He started using OpenBSD as it seemed like the right solution to a lot of problems early on as a sysadmin, and it was one of the few operating systems that would run on his old Macintosh. As time went on he found things it wouldn't do, and scribbled together a few patches, getting involved in OpenBSD development. For this hackathon, Chris' second, he was involved with setting up the infrastructure that makes it all possible. During the hackathon he plans to look into some specific work related issues, helping to solve other people's problems with OpenBSD. Specifically, he's planning to work on GPS and time issues and LDAP lookups for user ids and passwords.
Ray lives in New York City in the US. He first started using OpenBSD in college in 2000 when he was playing around with a lot of different operating systems. He found that most things crashed frequently, so quickly was attracted by OpenBSD's focus on correctness and security. He recently started working hard to contribute lots of patches to the OpenBSD project, getting commit access in March of this year. At this hackathon, Ray's first, he is focused on cleaning up the OpenRCS code and making it more robust to bring it up to OpenBSD standards. RCS was a source control predecessor to CVS. The OpenRCS project was started as a first step toward OpenCVS which will ultimately become a replacement for CVS, solving inherent flaws in the original CVS implementation. OpenRCS aims to be robust, fast and simple.
Chad lives in California in the US. He got started with OpenBSD around 2000 when his company was in need of a good firewall. As time went by he ran into various things that didn't work the way he wanted, so he had to get involved at the code level and become a developer. At this hackathon, Chad's third, he is primarily focused on improving the lint static checker for C, trying to make it more useful. He described lint as being very stupid, which is how he wants to keep it, not interested in adding fancy new features but trying to increase the signal to noise ratio so important stuff stands out. Beyond lint, Chad is also looking into an efficient way to make line numbers show up in the mg editor's status bar, complicated by the fact that lines are stored in a link list.
Jolan lives in Chicago, Illinois in the US. He originally began using OpenBSD about 5 years ago when he needed to share a network connection at home between a couple of computers, and couldn't figure out how to do it with Linux. He installed OpenBSD and easily got things working. From there he started porting software to OpenBSD, and after a few years got commit access. At this hackathon, Jolan's third, he's focused on creating two drivers for currently unsupported USB serial devices. Beyond that, he also intends to do some ports work.
Anil lives in Cambridge, UK and began working on OpenBSD in 1998, gaining CVS commit access to the source tree in 2000. He got started with OpenBSD as nothing else worked for him at the time, contributing by working on ports that he needed. At this hackathon, Anil's third, he's working on several projects. He's bringing the OCaml port up to date. He's also fixing some bugs in the static bounds checker he added to OpenBSD's GCC in 2004, an option that automatically finds a number of common mistakes with functions such as scanf and printf. It is Anil's intention to do a full ports sweep with the static bounds checker at each hackathon, an action that has already tracked down and fixed a couple of hundred bugs. Finally, Anil is also helping to review a Google Summer of Code project to bring OpenBSD up to speed with the latest version of Xen. Working at Xen Source as his day job, Anil proposed the project excited at the potential power of combining OpenBSD and Xen.
Pedro lives in Rio, Brazil. He's been using OpenBSD since around 2000, and got interested in contributing in 2004. He got in touch with another active developer, and learned to start sending diffs. His particular interest is in filesystems. At this hackathon, Pedro is hoping to get a couple of other developers involved in filesystems. He explains that OpenBSD has been missing active filesystem developers for a long time, and thus is very much behind in that area. By getting more people involved he looks forward to others reading through the filesystem code, reviewing diffs, and testing.
Uwe is from Berlin in Germany. He first starting using OpenBSD in 2000 at a co-worker's suggestion. He got commit access toward the end of 2004 at the first Venice OpenBSD conference when he became aware of and got involved in an effort to port OpenBSD to the Zaurus [story]. More recently Uwe was enjoying the spring, spending time outside with his laptop and decided to focus on its useless SD slot. When he arrived at the hackathon, his new SD driver was able to read the card ID but could not read or write data to the device. At this hackathon, Uwe's second, he has already added a small SCSI emulation layer and committed code to allow OpenBSD the ability to read and write SD/MMC cards. He plans to continue to clean up the code and to improve performance, then he's going to look at getting the Zaurus SD host controller working.
Joris lives in Dominica, a tropical island in the Caribbean. He originally got started with OpenBSD in about 2000 while trying to find some way to play audio on an old computer. Windows wouldn't work, Linux wouldn't work, then he found OpenBSD on which audio worked fine. The more he used OpenBSD, the more he liked it, because "stuff just works". At the current hackathon, Joris' second, he's focused on OpenCVS. He got involved with OpenCVS in 2004, contributing to the development enough to become an OpenBSD developer. The original OpenCVS effort began with implementing a client for the remote GNU CVS server. The design proved problematic and adding client commands resulted in complex code with lots of hacks. Problems with races, memory leaks, and stuff not working ultimately led to the decision about two weeks ago to completely rewrite OpenCVS from scratch, focusing first on local support. Joris hopes to have functional local OpenCVS support by the end of the hackathon.
Jason lives in Chantilly, Virginia in the US. He got started with OpenBSD in 1997 when trying to find an open source operating system that worked with an old Sun 4/300. At that time the only two choices were OpenBSD and NetBSD, and neither worked. Jason went back through older code until he found a version of OpenBSD that worked, then figured out which patch had broken things and created a diff to work around the problem. In response he got an email "from this de Raadt guy" offering him a CVS account to the OpenBSD tree, "life hasn't been the same since." At this hackathon, Jason's fifth, he is focusing on getting devices working on the UltraSparc III architecture which has a more complex host bridge than other UltraSparc machines. If time permits, Jason plans to resume his amd64 work from last year's hackathon [story], getting 32-bit I/O devices to see all of the 64 bit space.
Continue on to part two of this series.