Deweloperzy OpenBSD: Dmitrij D. Czarkoff

Osiemnastego października dwadzieścia lat temu pierwszy commit wylądował w repozytorium CVS projektu OpenBSD. W rocznicę tego wydarzenia zespół beastie.pl zaprosił wszystkich czytelników do serii wywiadów przeprowadzonych przez nasz zespół z deweloperami projektu.

Piąty Dmitrij D. Czarkoff


On October 18th 20 years ago the first commits to the OpenBSD project landed in the CVS repository. On the anniversary the beastie.pl team invited 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.


1. Czy mógłbyś powiedzieć parę słów o sobie czytelnikom, którzy jeszcze Cię nie znają?

Jestem Dmitrij D. Czarkoff (Дмитрий Царьков). Urodziłem się w Rosji, gdzie ukończyłem Prawo i pracowałem jako prawnik w firmie ubezpieczeniowej.  W pewnym momencie postanowiłem to zmienić i przeprowadziłem się do Herceg Novi, miasta przy zachodniej granicy Czarnogóry, gdzie obecnie prowadzę mały biznes konsultingowy. Na początku bieżącego roku zostałem deweloperem OpenBSD.

2. Dlaczego wybrałeś OpenBSD? Jak długo korzystasz z tego systemu?

Pierwszy raz spróbowałem OpenBSD w 2015 roku. Nadal pamiętam pod jakim byłem wrażeniem, kiedy to okazało się, że potrzebuję jedynie ifconfig (w przeciwieństwie do ifconfig, iwconfig i wpa_supplicant w przypadku Linuksa), aby skonfigurować swoją kartę wifi.

Wtedy jeszcze nie byłem zainteresowany bezpieczeństwem, lecz były inne aspekty OpenBSD, które spowodowały, że przy nim pozostałem: dostępność dokumentacji, prostota, spójność bazowego systemu, ogólna stabilność, a w szczególności sterowniki do sprzętu.

3. Dlaczego czytelnicy, którzy jeszcze nie przyłączyli się do społeczności OpenBSD powinni tego spróbować?

OpenBSD ma wyrobioną reputację na podstawie swoich funkcjonalności związanych z bezpieczeństwem. Ma jednak więcej do zaoferowania całej gamie użytkowników.

W OpenBSD wszystko posiada swoją stronę w man, bardzo łatwo jest znaleźć potrzebne informacje bez otwierania przeglądarki internetowej. Dokumentacja jest zawsze bieżąca, nawet na gałęzi -current. Dostęp do pełnej dokumentacji uzyskuje się przez program man(1), więc użytkownik nigdy nie zobaczy informacji w stylu „Pełna dokumentacja dla sed jest utrzymywana jako manual Texinfo”. Deweloperzy aktywnie zniechęcają do używania artykułów howto z sieci, a projekt nie posiada wiki, ponieważ nie jest ona potrzebna. Istnieje FAQ, zwykły dokument na stronie OpenBSD, zawierający odpowiedzi i wskazówki dotyczące konkretnych stron manuala, odpowiadające na pytania nowych użytkowników. Istnieją ponadto listy mailingowe.

System zbudowany jest z myślą o prostocie i spójności. Jeśli chodzi o interfejs użytkownika, to preferowane są rozwiązania ewolucyjne, a nie rewolucyjne. Żadna konfiguracja sterowników urządzeń nie jest wymagana. Oprogramowanie dostarczane jest z sensownymi ustawieniami domyślnymi – Jeżeli coś wymaga specyficznej konfiguracji, to bardzo łatwo jest uzyskać informację, jak to zrobić. Programy są w większości kompatybilne ze standardami POSIX. W konsekwencji, czas potrzebny na naukę nie jest tak długi, jak w przypadku innych systemów operacyjnych.

Zarządzanie pakietami w OpenBSD zdecydowanie wiedzie prym wobec do konkurencji. Aktualizacja systemu jest praktycznie niezawodna i nie wymaga tyle uwagi, co inne systemy operacyjne. Infrastruktura portów jest prawdopodobnie jedną z najłatwiejszych do ogarnięcia, zatem portowanie zewnętrznego oprogramowania pod OpenBSD jest bardzo łatwe. Mimo to obecna kolekcja portów zapewne będzie wystarczająca dla większości użytkowników.

Funkcjonalności związane z bezpieczeństwem w OpenBSD sprawiają, że jest ono fantastyczną platformą do rozwoju oprogramowania: wiele mechanizmów kontrujących sposoby ataku zostało zaimplementowanych, a odsłaniają one wiele powszechnych i złych praktyk oraz wrażliwych miejsc w kodzie. W szczególności korzystanie z opcji w alokatorze pamięci przez malloc.conf(5) pomaga wyłapywać błędy w zarządzaniu pamięcią, które na innych systemach mogłyby pozostać niezauważone. Uruchamianie kodu na OpenBSD może bardzo pomóc w polepszaniu bezpieczeństwa oraz przenośności programów.

4. Czy używasz OpenBSD jako głównego systemu w domu oraz w pracy?

Tak, z drobnymi wyjątkami. Oczywiście mój telefon nie działa pod kontrolą OpenBSD. Niektóre projekty w pracy nie są związane z OpenBSD, lecz ja i tak większość mojej pracy wykonuję używając OpenBSD, kiedy jest to tylko możliwe.

5. W jaki sposób zostałeś deweloperem OpenBSD? Co – Twoim zdaniem – jest potrzebne by zostać członkiem projektu w roli dewelopera?

Niektórzy mówią, że bit commitowania jest karą za wysyłanie zbyt dużej ilości łat. Jeżeli udzielasz się w projekcie, twoja praca jest wystarczająco dobra, a ty sam wykazujesz dalszą chęć do pracy – to dostajesz dostęp do CVS.

6. Czy mógłbyś powiedzieć parę słów o obszarach Twojego zaangażowania w OpenBSD?

Pracuję przy portach, głównie nad sekcjami portów telefonii, komunikatorów, multimediów oraz wsparciem dla języka Go, chociaż powoli wciągany jestem w inne obszary, a liczba portów, którymi się zajmuję, powoli wzrasta.

7. Ile czasu zajmuje Ci praca przy projekcie OpenBSD?

Nie wiem zbytnio. Jedno czego jestem pewien – chciałbym spędzać nad nim znacznie więcej czasu.

8. OpenBSD zwykle przoduje w najlepszych praktykach deweloperskich. Czy działa to również w drugą stronę? Czy istnieją nowe praktyki, które projekt właśnie rozpoczął lub planuje zaadaptować z innych zewnętrznych projektów?

Nie jestem świadom tego typu zmian i nie widzę dla nich powodu. To co mamy obecnie, sprawdza się świetnie.

9. To już długie 20 lat wspaniałych wydań. Z czego jesteś najbardziej dumny oraz do czego chciałbyś ponownie zajrzeć/zrobić inaczej?

Jestem nowym deweloperem, wiec brakuje mi odpowiedniego rozbiegu, by już teraz wskazywać projekty, z których jestem dumny. Spora droga przede mną.

Jest jedna rzecz, do której chcę ponownie wrócić, a jest nią moduł portów lang/go, używany do portowania oprogramowania napisanego w języku Go. Powoli ulepszam wsparcie dla języka Go w drzewie portów, lecz jeszcze nie jestem gotów pokazać efektów tej pracy.

10. W ramach podsumowania, jak kreślisz przyszłość dla OpenBSD? Co jest kolejnym największym wyzwaniem?

Są pewne długoterminowe wyzwania – takie jak adresowanie bieżących nowych zagrożeń bezpieczeństwa oraz opieranie się monokulturze Linuksa. Sposób, w jaki ostatnimi czasy zachodzą zmiany w technologii sprawia, że jest to coraz bardziej trudne. Tempo rozwoju współczesnych sieci wcale tego nie ułatwia.

Kolejnym starszym wyzwaniem, które niedawno powróciło, jest zróżnicowanie w powszechnie dostępnym sprzęcie. Smartfony, tablety, czy inne współczesne gadżety są różnych rodzajów komputerami z unikalnymi, krótko żyjącymi platformami sprzętowymi, z natury dość nieprzyjaznymi dla środowisk Open Source, a my mamy użytkowników, którzy chcieliby, aby te rzeczy, były tak bezpieczne, jak ich laptopy.

Skomentuj

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *