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 fifth interview - Dmitrij D. Czarkoff.
1. For the readers who don't know you, can you shortly introduce yourself?
I am Dmitrij D. Czarkoff (Дмитрий Царьков). I was born in Russia, where I graduated with degree in Law and worked as a lawyer for an insurance company. At some point I decided to make a switch and moved to Herceg Novi, a town on a western border of Montenegro, where I currently run a small consulting business. Earlier this year I became an OpenBSD developer.
2. Why did you choose to run OpenBSD? How long have you been using it?
In 2005 I tried OpenBSD for the first time. I still recall how I was impressed by the fact that I only needed ifconfig (as opposed to ifconfig, iwconfig and wpa_supplicant on Linux) to configure my wireless network card.
At that time I had no interest in security, but there were aspects of OpenBSD that made me stay: availability of documentation, simplicity, consistency in base system, overall stability of the system, and particularily of device drivers.
3. For those readers that still haven't joined the OpenBSD community, why should they try OpenBSD?
OpenBSD has a strong reputation for its security features. But it has more to offer to all sorts of users.
On OpenBSD everything has a manual page, and it is always easy to find necessary information without launching web browser. It is always up to date, even on -current branch. It is accessed with man(1) command, so user will never see something like "The full documentation for sed is maintained as a Texinfo manual." Developers discourage using howto articles from the web, and project doesn't have a wiki, just because it is not needed. There is a FAQ though, a document on OpenBSD's website containing answers and pointers to right manual pages for questions new OpenBSD user may have. And there are mailing lists.
System is built with simplicity and consistency in mind. When user interface is in question, evolutionary changes are prefered to revolutionary. No configuration of device drivers is required. Software comes with sane defaults; when there is a need to configure something, it is very easy to get an idea how to do so. Programs are mostly compatible with POSIX standards. Consequently, learning curve is not as steep as with most other operating systems.
Package management on OpenBSD is far ahead of competition. Update process is very reliable and does not require as much attention as on other systems. The ports infrastructure of OpenBSD is probably the easiest to grasp, so that porting third-party software to OpenBSD is very easy, although the collection of ports will most likely be sufficient for most users.
Security features of OpenBSD make it an excellent choice for development platform: various countermeasures that are implemented in the system reveal many common bad practices and weak spots in code. Particularily, setting strict options for the memory allocator in malloc.conf(5) helps revealing errors in memory management that could otherwise evade detection on other platforms. Getting code running on OpenBSD may help a lot towards making it more portable and secure.
4. Is OpenBSD your daily driver at home & at work?
Yes, with some exceptions. Obviously my phone doesn't run OpenBSD. Some projects at work are not related to OpenBSD, but I do most of my work on OpenBSD anyway, whenever possible.
5. How did you become an OpenBSD developer? What do you think is required in order to join the OpenBSD project as a developer?
Some say that "commit bit" is a punishment for sending too many patches. When you contribute to the project, your contributions are good enough, and you show interest in continuing to contribute, you get CVS access.
6. Can you tell us about some OpenBSD-related areas you work on?
I work on ports. Mainly, on telephony, instant messaging, multimedia and golang support, though I am slowly getting sucked into other areas, and the amount of ports I maintain is slowly growing.
7. Do you have an idea of the time you spend working on the OpenBSD project?
Not really. The only thing I know for sure - I'd love to spend more time on it.
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?
I am not aware of such changes, and I don't see necessity. It works fine right now.
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 am a new developer, so I just don't have necessary track record to be proud of something. There is a long way ahead.
There is a thing I'd like to revisit, and it is a lang/go ports module, which is used by ports of software written in go. I am slowly working on improving go support in ports tree, but I am not ready to show anything yet.
10. As a conclusion, can you tell us how you forecast OpenBSD's future? What's the next big challenge?
Well, there are some long-running challenges like addressing new security risks and resisting Linux monoculture. The way things happen in technology these days make these challenges harder and harder. The pace of development of modern web doesn't make it easier either.
Another, older challege that recently returned is diversity in commonly available hardware. Smartphones, tablets and other modern gadgets are basically another type of computing devices with unique short lived and opensource-unfriendly hardware platforms, and there are users who want these things to be as secure as their laptops.