Date: 2015-10-23
On October 18th 20 years ago the first commits to the OpenBSD project landed in the CVS repository. Today on the anniversary the beastie.pl team invites all readers to a series of interviews that our staff conducted with the project developers.
We continue with our sixth interview - Gilles Chehade.
1. For the readers who don't know you, can you shortly introduce yourself?
I'm Gilles Chehade from Nantes, France.
I studied CS at Epitech Paris until 2006, then worked mostly as an R&D engineer for several industries.
I currently work as a system engineer kind-of-a-devop on a project that involves distributed servers and mailing.
2. Why did you choose to run OpenBSD? How long have you been using it?
From 1996 to 1999, I had been running various Linux distributions and eventually settled with Redhat which was the most "popular" around me back then.
Sometime in 1999, I started taking sysadmin jobs for a living and one of my customers was dealing with heavy load that caused his server to hang or panic frequently. He had heard about FreeBSD and wanted me to setup a new server so he could redirect the traffic to it. It made him very happy and gave me a first experience with BSD.
A friend of mine told me that if I liked FreeBSD, I should give a try to OpenBSD which was supposedly cleaner and more secure but slower. I really enjoyed it from the first day, and progressively started using it everywhere for my own needs, never noticed it being slower for any of my needs.
When I picked up school and started programming, it was running on my workstation and I loved how it would cause a lot of errors to trigger early, reducing the risk of a demo effect :-)
We're now 16 years later, I've never looked back, I still use various systems including Linux and FreeBSD, but OpenBSD remains my #1 system for most tasks.
3. For those readers that still haven't joined the OpenBSD community, why should they try OpenBSD?
As a developer, because it provides a nice working environment. There is a very clean codebase from which to pick examples, there is a very good documentation with examples too, and the environment is not graceful, it has several mechanisms to trigger early crashes for misbehaving programs which allows spotting bugs that sometimes don't trigger on other systems.
As a sysadmin, because it has a general feel of cleanness. There are not 20 ways to achieve the same thing, utilities just work and do not fail with cryptic errors, things are where they should be and the many mitigation techniques used in programs lowers my stress when I need to be away from computers for a while.
4. Is OpenBSD your daily driver at home & at work?
Yes, OpenBSD is my designated driver.
My desktop is 100% OpenBSD, I use it for pretty much everything from development to watching Numberphile on youtube ;-)
My laptop has a dual-boot between OpenBSD and Windows, just in case, but given that most of my use of computers is for programming, it is very rare that I actually make use of it.
At work we use Linux mainly but as a remote worker I still do all of my work on OpenBSD, then run it on Linux.
5. How did you become an OpenBSD developer? What do you think is required in order to join the OpenBSD project as a developer?
When I started programming in 2001, I started using the OpenBSD tree as a source of examples and learnt a lot from there. I was active on the mailing-lists, trying to help people, asking help myself, trying to find where I could help and sending occasional diffs, though very passively.
In 2006, I contributed a joke diff to a thread and one of the French hackers (Pierre-Yves Ritschard) contacted me to laugh about it.
We discussed a bit and he asked me about my own projects, I shared a bit of code, he gave some advice, and eventually asked me if I knew about his project "hoststated" (now known as relayd) and if I'd like to contribute to it.
I started sending diffs for that project daily, then started sending more and more against other parts of the tree, and finally was asked if I wanted to become a developer.
What's required to become a developer is to actually contribute.
I don't think becoming a developer is a goal in itself, I tried hard to become one when I began but my contributions were inconsistent. I stopped caring about becoming a developer and more about improving a system I was using daily. If you are motivated about it, then you're going to send enough contributions that a developer somewhere will be annoyed that he spends more time committing your code than his ;-)
6. Can you tell us about some OpenBSD-related areas you work on?
I'm a userland/daemon guy and work solely in this area in OpenBSD.
These last few years, most of my work surrounded the smtpd daemon but I sometimes dive into other daemons because we share patterns of code, we share some API, and sometimes a good idea needs to be spread across the tree.
7. Do you have an idea of the time you spend working on the OpenBSD project?
I have no idea, it depends on the amount of free time I have really.
Sometimes, I can spend hours daily for weeks, other times I can't even find an hour in weeks. These days, it's about an hour each day.
A few years ago, I used to take days off regularly to work on OpenBSD, but I can't really do that anymore.
8. OpenBSD tends to lead in development best practices does it work the other way around? Is there a process improvement the project started or aims to adapt from the oustide world?
OpenBSD hackers often look at what others do and often discuss ideas to improve the project in various ways. I don't think the origins of an idea is relevant at all, sometimes they are brought, sometimes we adjust or build on top of them, the technical benefits of an idea is what matters really.
The new pledge() system call is a perfect example of this to me.
It brings some kind of processes sandboxing by restricting system calls. This is not new technology, several other API do this, and each and every of them was described to me as "THE" solution. But I never got convinced enough to actually implement them.
Then deraadt@ and others discussed this new call, which basically does what others do, but which has very simple semantics, which I can understand the entire impact immediately, which is absolutely non-intrusive, and which has a very clear contract. This idea now becomes appealing to me, no matter where it originated from.
9. It's been a long 20 years of amazing releases. What are you most proud of and what would you like to revisit/redo?
I'm proud to be part of a team of people who are constantly working towards making a better system, because they genuinely want to give the best they can on a system they like. I don't recall ever seeing a feature rushed and hacked just so it fits a schedule, the quality has always driven things and I'm glad it's been that way all along.
As far as OpenBSD is concerned, I wouldn't revisit anything.
It is not a perfect system, none is, but it's very good, it evolves at its own pace, with its own innovations, and this has worked good for twenty years ;-)
10. As a conclusion, can you tell us how you forecast OpenBSD's future? What's the next big challenge?
A lesson I learnt: never forecast anything IT related ;-)