Deweloperzy OpenBSD: Vadim Zhukov

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.

Trzecim jest Vadim Zhukov


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 third interview – Vadim Zhukov.


 

1. For the readers who don’t know you, can you shortly introduce yourself?

I’m a 30 years old programmer/sysadmin with wide range of interests from Moscow, Russia. I’m working in IT industry for about half of my life, and last few years I’m also a freelance teacher at Moscow State University of Information Technologies, Radiotechnics and Electronics (ex. Moscow State Institute of Radio Engineering, Electronics and Automation). I have a daughter (best one in the world, of course), which was born at October, 18 – you may call this a Fate. :)

2. Why did you choose to run OpenBSD? How long have you been using it?

Somewhere around of 1998 I’ve tired of MS Windows which was running on my home PC (it was P-200MMX, IIRC). First thing I’ve tried to run was some Red Hat distro. I’ve tried to start using it twice, but both times I tired of bad documentation quickly. It was too unfriendly for me.

To make it clear: I didn’t know anything about Unix at all. No one taught *nix neither at middle or high school at those times in Russia at all. The bundle of IBM PC-compatible hardware and Microsoft software conquered almost all minds. There was a FreeBSD gang at those times, but I simply didn’t hear about them – and I was living in a capital city of biggest country!

Things changed when a journal „Hacker” appeared in my life. It was like a gulp of fresh air, I discovered a new world, full of possibilities and alternatives… At one of the issues there was a comparision of different Unix-like systems. And it talked about OpenBSD like many people say: „very secure generic purpose OS”. I sat and thought: „How could I ever use software if I can’t rely on it?”. So I found this wonderful book, „Absolute OpenBSD„, and read it all, and only then (!) downloaded my first OpenBSD CD image. This was a 3.5 i386 one, IIRC . I’ve carefully crafted an OpenBSD partition, put the new shiny OS on it… And such partition lived on all my personal computers since then. So I’m using it more than 10 years now.

3. For those readers that still haven’t joined the OpenBSD community, why should they try OpenBSD?

Of course, I can’t speak for all people around the world. Here are things the OpenBSD Project can, IMHO, give you:

  1. A big bunch of mature and mostly well-designed code. There are still dragons, but much less than in most other popular generic purpose OSes.
  2. A chance for keeping OS up-to-date without being afraid of crossing „major release” boundary.
  3. A team of people that care about giving both respect and shame when you deserve it.

IMHO (please note that I can’t speak for the whole project, obviously), OpenBSD isn’t only „just for fun”, but it’s about OpenBSD cultural wealth. If OpenBSD ideas are near your heart, then it’s definitely worth a try.

I won’t try to agitate everyone to use OpenBSD, the world is better when it has all kinds of colors. And that’s one of the things I’ve actually learned when I started to use OpenBSD.

4. Is OpenBSD your daily driver at home & at work?

Yep.

5. How did you become an OpenBSD developer? What do you think is required in order to join the OpenBSD project as a developer?

At some point I’ve become familiar with system enough to start tweaking a bit or two of code. Some of patches went upstream (I’m still proud of finding and fixing small bugs in sudo(8) and mkstemp(3)), but it was just an occasional work.

First time I think the devs noticed me (I never asked about this) would be my attempt to add some deep packet inspection logic into PF. The patch itself was discarded (but the code still ran on my ex-job for a few years), but that was a nice experience.

But my main work for now was related to KDE. I’ve started to use OpenBSD with KDE3-based user interface. espie@ did a lot of work on porting it, but then KDE4 came. If you don’t know, the KDE4 was such a major rework that almost all the porting had to be re-done from scratch. At the same time the amount of KDE packages and code started to increase quickly, so Marc couldn’t keep it together with rewriting the whole Ports subsystem and package build/management tools. I was young and stupid, and had some spare time then, so I’ve stepped in. Not sure if I’d ever try to start such huge project as of now. :) What I’ve planned to finish in a half of year longed for a few. But at some point in 2011 I got core KDE4 components running. A big help here was an openbsd-wip ports set up by jasperla@, where I’ve requested account and did almost all the work. Now I definitely got shadowed (by espie@ at least), and at some point was I invited to the OpenBSD hackers chat, and then got an account. And I still think this is my best professional achievement. :)

6. Can you tell us about some OpenBSD-related areas you work on?

In ports land, I work mostly on KDE- and Qt-based ports. Thank God, it’s not such a dirty work like aja@, jasperla@ and others have with GNOME. :) My current worry here is KDE5 – it’s just a matter of time which I don’t have enough last months, unfortunately. :(

I also tweak some generic parts of port infrastructure: libtool, portcheck, portbump, .port.mk modules… I try to help others when I can – again, it’s sad to state that this happens too seldom.

In base, I’m working in the 802.11 stack now. The actual work is a big WIP that I tried to present on the recent EuroBSDCon (I definitely should thank its organizers, especially Jahne Johansson, again!), but failed to prepare properly. :( Anyway, slides are at http://www.openbsd.org/papers/eurobsdcon2015-raceless-network/ and video could be found via the conference website:
https://2015.eurobsdcon.org/live-streaming/.

I also tend to step in sometimes, like it was with doas(1) recently. And, again, it’s a pity that I’m so slow at hacking and have so many other activities.

7. Do you have an idea of the time you spend working on the OpenBSD project?

I try to have at least one full work day per week in total. I know that OpenBSD drives me to be better, so I always try to have something done – be it a port review, patch testing or whatever. This allows to keep the hand on pulse.

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 is open by definition. There are no other barriers for adapting things from the outside than bad coding practices and lack of effort. It means, the code is not something you could just drop in and run, like some „effective managers” think. The OpenBSD doesn’t hunt for features, but you can always come in with something well-designed. Sometimes one or other OpenBSD developer will find some time to import (or reimplement) something useful, but that’s not the thing you could rely on. If you want to make sure OpenBSD adapt more cool stuff, you’d help yourself, by donating either work or money. It’s that simple, and it works really well. But keep in mind, that code needs to be maintained. Otherwise, eventually the tedu@ will come after it. :)

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 can’t speak here. This question should be answered by „release managers”: deraadt@, miod@, naddy@, sthen@ and others. I’m proud of working together with those people, and that’s enough for me. :)

10. As a conclusion, can you tell us how you forecast OpenBSD’s future? What’s the next big challenge?

I’m bad at forecasts, really. For example, in the late 1990s I’ve said that next Russian President should come from KGB. See, I’m really bad at forecasts. :)

Anyway, I see that interest to OpenBSD is raising slowly. Big challenges, IMHO, are implementing features becoming de-facto standard in people minds: better virtualization support (hypervisor is in work already, no containers-like things, though), multicore processing (5.9 should be a huge improvement in this direction, many developers are involved here already), ARM support, better partition management (something ZFS-like), more convenient network management. Having those OpenBSD would attract more quality developers that are interested in applications built on top of those features. But it’s better to see the wonderful „OpenBSD sucks” talk from henning@: slides are at http://bulabula.org/papers/2015/asiabsdcon/ , and video is also available at EuroBSDCon website.

I don’t think OpenBSD should change something in the process it is itself. But, again, I’d better leave that question to people who do much better at project management than me.


 

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

Jestem trzydziestoletnim programistą/administratorem z Moskwy w Rosji, o szerokim zakresie zainteresowań. Niemalże pół swojego życia pracuję w branży IT, ostatnie kilka lat jako freelancer – jako nauczyciel w Moskiewskim Stanowym Uniwersytecie Informacji i Technologii, Radiotechniki i Elektroniki (były Moskiewski Stanowy Instytut Inżynierii Radiowej, Elektroniki i Automatyki). Mam córkę (oczywiście najlepszą na świecie), która urodziła się 18 Października – możesz uznać to za przeznaczenie :)

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

Gdzieś w okolicach 1998 roku znudził mi się MS Windows, który obsługiwał mój domowy komputer (to było P-200MMX, jeżeli mnie pamięć nie myli). Pierwszym systemem, jaki wypróbowałem, była jakaś dystrybucja oparta na Red Hat. Próbowałem zacząć jej używać dwukrotnie, ale za każdym razem zaraz męczyła mnie kiepska dokumentacja. To było niezbyt przyjazne doświadczenie.

Tak by wszystko było jasne – wtedy nie wiedziałem kompletnie nic o Uniksie, nikt w Rosji nie uczył wówczas *nix’a w szkole średniej, zlepek kompatybilnego z IBM sprzętu i oprogramowania od Microsoftu podbijał wszystkie umysły. Wprawdzie istniał wtedy gang ludzi z FreeBSD, ale ja po prostu o nich nie słyszałem, choć żyłem w stolicy największego kraju!

Wszystko uległo zmianie w momencie,  gdy w moim życiu pojawił się  periodyk „Hacker”. To było, niczym powiew świeżego powietrza Odkryłem nowy świat, pełen możliwości i alternatyw… W jednym numerze było porównanie różnych systemów Unikso-podobnych. Artykuł opowiadał o OpenBSD tak, jak to robi wiele osób: „bardzo bezpieczny system operacyjny do generalnego użytku”. Usiadłem i pomyślałem: „Jak mógłbym kiedykolwiek używać systemu, na którym nie mogę polegać?”. Trafiłem zatem na tą wspaniałą książkę, „Absolute OpenBSD” i przeczytałem ją całą. Dopiero wtedy (!) pobrałem swój pierwszy obraz CD OpenBSD – to był obraz wersji 3.5 dla platformy i386, jeśli dobrze pamiętam. Ostrożnie przygotowałem partycje dla OpenBSD, umieścilem na niej swój nowy lśniący system… I tym oto sposobem partycja ta żyje na wszystkich moich prywatnych komputerach od tamtego czasu. Używam jej więc już ponad 10 lat.

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

Oczywiście nie mogę wypowiadać się w imieniu wszystkich osób żyjących na świecie. Są jednak rzeczy, które moim skromnym zdaniem można uzyskać od projektu OpenBSD:

  1. Dużą ilość dojrzałego, a przede wszystkim, poprawnie zaprojektowanego kodu – Nadal bywają „smoki”, ale jest ich znacznie mniej niż w większości innych popularnych systemów operacyjnych generalnego przeznaczenia.
  2. Szansę na utrzymanie systemu w najnowszej wersji, bez obawy o przekroczenie linii ‚dużej wersji’.
  3. Zespół ludzi, którzy potrafią okazać zarówno szacunek, jak i zawstydzić, kiedy na to zasługujesz.

Moim skromnym zdaniem (proszę miej na uwadze, że nie wypowiadam się w imieniu całego projektu), w OpenBSD nie chodzi tylko o „dobrą zabawę”, ale i o całe bogactwo jego kultury. Jeżeli idee OpenBSD są bliskie twojemu sercu, zdecydowanie warto spróbować tego systemu.

Nie będę próbował agitować wszystkich do tego, by używali OpenBSD. Świat jest lepszy, gdy posiada wiele różnych barw. Właśnie tego się nauczyłem, odkąd zacząłem używać OpenBSD.

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

Tak.

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

W pewnym momencie stałem się na tyle obeznany z systemem by skrobnąć jeden lub dwa kawałki kodu. Niektóre łatki zostały przyjęte przez upstream (nadal jestem dumny z odkrycia i poprawy kilku drobnych błędów w sudo(8) i mkstemp(3)), ale to była tylko okazjonalna praca).

Wydaje mi się, że pierwszym momentem, w którym zostałem zauważony przez developerów (nigdy ich o to nie pytałem) była moja próba dodania logiki głębokiej inspekcji pakietów w PF. Łatka sama w sobie została odrzucona (ale kod nadal pracował u mojego byłego pracodawcy przez kilka lat), jednakże było to bardzo miłe doświadczenie.

Moja obecna praca była jednak powiązana z KDE. Zacząłem używać OpenBSD z interfejsem opartym o KDE3. espie@ wykonał sporo pracy przy jego portowaniu, ale pojawiło się KDE4. Jeśli tego nie wiecie, KDE4 było tak wielką przeróbką, że praktycznie całe prace nad portem musiały się rozpocząć się od zera.  W tym samym czasie, liczba portów i kodu wymagającego KDE zaczęła rosnąć w szybkim tempie, zatem Marc nie miał szans nadążyć z jednoczesnym przepisywaniem całego podsystemu portów oraz narzędzi do budowania i zarządzania paczkami. Byłem młody i głupi, miałem też trochę wolnego czasu, więc wkroczyłem do akcji. Nie wiem, czy podjąłbym się tak ogromnego projektu ponownie :) To, co planowałem zakończyć w ciągu pół roku, ostatecznie trwało kilka lat. Około 2011 roku udało mi się uruchomić rdzenne komponenty KDE4. Bardzo pomocne okazało się tu repozytorium openbsd-wip założone przez jasperla@, gdzie poprosiłem o konto i wykonałem praktycznie całą pracę. Obecnie zdecydowanie pozostaję w cieniu (przynajmniej w porównaniu do espie@), ale w pewnym momencie zostałem poproszony o dołączenie do czatu hakerów OpenBSD i dostałem konto. Nadal uważam, że to mój największy sukces zawodowy :)

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

W krainie portów pracuję głównie nad KDE i portami związanymi z Qt. Dzięki Bogu nie jest to tak brudna robota, jak ta wykonywana przez aja@, jasperla@ i innych przy GNOME :) Moim obecnym zmartwieniem jest KDE5 – wszystko ależy od wolnego czasu, którego ostatnio niestety nie mam w wystarczających ilościach :(

Pracuję ponadto przy ogólnych częściach infrastruktury portów: libtool, portcheck, portbump, modułach .port.mk… Kiedy tylko mogę, staram się pomagać innym – niestety, znów muszę wyznać smutną prawdę, że zdarza się to zbyt rzadko.

W systemie bazowym pracuję obecnie ze stosem 802.11. To bardzo duża praca w toku, którą starałem się przedstawić na niedawnym EuroBSDCon (zdecydowanie powinienem jeszcze raz podziękować jej organizatorom, w szczególności Jahne Johansson!), lecz niestety nie przygotowałem się do niej w prawidłowy sposób :( W każdym razie, slajdy dostępne są pod adresem http://www.openbsd.org/papers/eurobsdcon2015-raceless-network/ , a wideo znaleźć można na stronie konferencji: https://2015.eurobsdcon.org/live-streaming/.

Zdarza mi się też wkroczyć nagle w jakiś temat, tak jak niedawno w przypadku doas(1). Ponownie, żałuję, że tak wolno idzie mi hackowanie, oraz tego, że mam tyle innych zajęć.

7. Ile czasu zajmuje Ci praca przy projekcie OpenBSD?

Staram się spędzić przynajmniej jeden pełen dzień roboczy w przeciągu całego tygodnia. Wiem, że praca przy OpenBSD motywuje mnie do bycia lepszym, więc staram się zawsze coś dokończyć – czy to przegląd portu, testowanie łątki, lub cokolwiek. Pozwala mi to trzymać rękę na pulsie.

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?

Z samej definicji OpenBSD jest otwarte. Nie ma barier dotyczących przyswajania praktyk z zewnątrz, za wyjątkiem złych nawyków i braku wysiłku. Oznacza to, że kodu nie można po prostu podrzucić i uciec, tak jak myślą niektórzy „wydajni managerowie”. OpenBSD nie poluje na funkcjonalności, chciaż zawsze możesz przyjść z jedną dobrze zaprojektowaną. Czasami któryś z deweloperów OpenBSD znajdzie trochę czasu, aby zaimportować coś przydatnego (lub zaimplementować ponownie). Jeżeli jednak chcesz mieć pewność, że OpenBSD będzie adaptować więcej fajnych rzeczy, to pomóż im sam, czy to dokładając rąk do pracy, czy dorzucając pieniędzy. Proste i jak do tej pory działa bardzo dobrze, ale pamiętaj, że kod musi być serwisowany, w przeciwnym wypadku tedu@ go dopadnie :)

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

Nie mogę się na ten temat wypowiadać. To pytanie powinno być zadane „managerom wydań”: deraadt@, miod@, naddy@, sthen@ i innym. Jestem dumny z pracy z tymi ludźmi, mnie to wystarczy :)

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

Kiepski ze mnie prorok, serio. Przykładowo w późnych latach 1990 powiedziałem, że następny Rosyjski prezydent powinien być z KGB. Widzisz, jestem kiepskim prorokiem :)

W każdym razie, widzę powolny wzrost zainteresowania OpenBSD. Duże wyzwania, to moim skromnym zdaniem implementacja funkcjonalności, które stają się de-facto standardami w oczach ludzi: lepsze wsparcie dla wirtualizacji (prace nad hipernadzorcą są już w toku, choć bez żadnych kontenerów), przetwarzanie na procesorach wielordzeniowych (5.9 powinno być sporym postępem w tym kierunku i w tym obszarze jest już zaangażowanych wielu deweloperów), wsparcie dla platformy ARM, lepsze zarządzanie partycjami (coś a-la ZFS), wygodniejsze zarządzanie siecią. Posiadanie tych funkcjonalności, przyciągnęło by więcej dobrej jakości deweloperów, którzy zainteresowani są budowaniem aplikacji bazujących na tych funkcjonalnościach. Jednakże dużo lepiej obejrzeć fascynujący wykład, który zaprezentował henning@ pod tytułem „OpenBSD sucks” – slajdy są dostępne pod adresem http://bulabula.org/papers/2015/asiabsdcon/ , a sama prezentacja na stronie EuroBSDCon.

Myślę, że nic nie powinno się zmienić w procesach zachodzących wewnątrz OpenBSD. Z drugiej strony, powinienem zostawić odpowiedź na to pytanie osobom, które znacznie lepiej zarządzają projektami niż ja.

Skomentuj

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