Deweloperzy OpenBSD: Marc Espie

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.

Czwarty Marc Espie


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 fourth interview – Marc Espie.


 

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

My name is Marc Espie, I’m french, I live in Paris and I love that city. I also hold a position as researcher/teacher at LSE (Security Lab, Epita).

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

Funny story actually. It was about 20 years ago, and I didn’t have any Internet access at home. I wanted to play with some Unix on my home Amiga, as I didn’t have root access on the suns at University. Getting anything on my Amiga was complicated, as I had to transfer everything through floppies. Turned out OpenBSD was the only OS with sane and clear instructions. NetBSD gave you so many different choices, I couldn’t figure out which one to follow, and Linux was a jungle of patches.

I’ve been using it ever since. It has replaced every single other Unix/Linux installation for me over the years.

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

In my mind, OpenBSD is for grown-ups. It’s made by people who have graduated beyond „hey, let’s turn THAT knob and go look for help on the mailing-lists to make things work”. As far as possible, it Just Works. And that means you can actually concentrate on doing things.

Besides that, it’s got the best set of man pages ever, so it’s great to actually learn Unix.

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

Yep. I’ll admit to having a Windows 7 install on my laptop, but I probably boot it once every three months, now that flash videos are more or less extinct.

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

Back then, the project was slightly smaller. I started interacting with the mailing-lists, and complaining that there were some flaws in the documentation. Some dude named Theo asked me privately „do you think you can do better ?” Foolishly enough, I said „yes”. That’s how I got my account.

Qualities ? Mostly getting the work done, and being proud of your code, be willing to learn, and to take responsibility from your mistakes.

The folks I work with in the OpenBSD project are great folks! Very smart. Can be hard to keep up, sometimes.

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

Err… ways too many things. I stopped maintaining gcc, for instance, or doing any kernel work, or improving with utf8 support.

I’m still defacto maintainer of make, m4, and tsort.

I’m probably mostly known from my work on pkg_add, our ports infrastructure, and the latest baby, dpb (distributed ports builder).

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

Varies widely along the year. I would estimate over 10 hours per week.

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 think we’re certainly very happy to steal work from outside if it furthers our goals. The modern gfx support for radeon and intel most certainly came from outside, even though jsg@ and kettenis@ did some tremendous work.

On a more personal front, I keep close tabs on what happens in similar projects wrt package tools and ports building.   We frequently exchange information with Baptist Darroussin from FreeBSD, so that our tools end up having more or less the same features, even though we no longer share any code.

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?

The proudest thing I did was cleaning up our ports tree to the current level. In my opinion we definitely have the cleanest tree of all BSDs. Of course, that was a group effort, so I’m proud of having good work relations with my fellow ports.

Revisit/redo ?… well, more or less everything. Which is always what’s happening. Every few years, you revisit former decisions and figure out better ways to do things.

I guess I’m fairly happy with the way things go. In order to make things substantially better, I would probably need to have ways more time to spend on the project.

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

The future is bright! People are just beginning to figure out that Computer Security is actually hard, and that appliances such as firewall aren’t going to be enough.  The biggest challenge, in general, would be to raise the standards in general development so that it looks at least vaguely secure.

I’m not kidding, we’re still seeing people doing the darnedest blunders in 2015, such as making sql injections because they don’t even know what an sql injection is.

So I see OpenBSD still leading the way.

In OpenBSD land, the biggest challenge is probably going to be C++11 and beyond, as more and more projects rely on it. Right now, we rely on the ports tree compiler, but there’s just one point where we will need to have C++11 support in base. There are a lot of interesting steps (such as locale thread support) for that to happen. Hopefully, clang has broken enough FreeBSD/NetBSD/bitrig installations by now that we should be able to benefit from that.


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

Nazywam się Marc Espie, jestem francuzem i mieszkam w Paryżu. Kocham to miasto. Pracuję jako badacz/nauczyciel w LSE (Laboratiorium Bezpieczeństwa, Epita).

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

Śmieszna historia. Zdarzyła się 20 lat temu, gdy nie miałem w domu dostępu do internetu. Chciałem pobawić się systemem Unix na swojej domowej Amidze, ponieważ nie miałem dostępu do konta root na sunowskich serwerach uniwersytetu. Instalacja czegokolwiek na Amidze była skomplikowana, wszystko trzeba było przenosić na dyskietkach floppy. Okazało się, że OpenBSD był jedynym systemem z sensowną i jasną instrukcją. NetBSD dawało tyle opcji, że nie byłem w stanie zdecydować, z której skorzystać, a Linux był dżunglą łat.

Od tamtego dnia używam OpenBSD. Zastąpiło każdy system Unix/Linux, który znajdował się pod moją kontrolą przez te wszystkie lata.

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

Moim zdaniem OpenBSD jest dla dorosłych. Robione jest dla ludzi, którzy wyrośli już z podejścia „przekręćmy TO pokrętło i biegnijmy poszukać pomocy na liście mailingowej, aby wszystko znowu działało”. System po prostu działa Tak bardzo, jak tylko jest to możliwe. Oznacza to, że możesz skoncentrować się na wykonywaniu faktycznej pracy.

Oprócz tego, posiada on najlepszy zestaw stron man w historii, dzięki czemu jest świetny do nauki systemu Unix.

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

Tak. Przyznaję się do używania Windowsa 7 na swoim laptopie, ale uruchamiam go raz na trzy miesiące, odkąd wideo we flashu jest juz praktycznie wymarłe.

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

Wówczas projekt był odrobinę mniejszy. Zacząłem od rozmów na liście mailingowej oraz skarg na temat błędów w dokumentacji. Jakiś koleś o imieniu Theo zapytał mnie prywatnie „myślisz że potrafisz lepiej?”, a ja głupio odpowiedziałem, że „tak”. Tak oto otrzymałem swoje konto.

Jakie kwalifikacje należy prezentować? Głównie trzeba umieć zrobić coś do końca, być dumnym ze swojego kodu, chętnym do nauki i gotowym wziąć odpowiedzialność za swoje błędy.

Ludzie, z którymi pracuję przy projekcie OpenBSD są świetni i bardzo bystrzy, tak że czasami ciężko za nimi nadążyć.

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

Eee… było tego tak wiele. Przykładowo przestałem serwisować gcc oraz wykonywać jakąkolwiek pracę w kernelu, nie ulepszam też wsparcia dla utf8.

Nadal jestem głównym serwisantem make, m4 i tsort.

Najbardziej znany jestem chyba ze swojej pracy nad pkg_add, naszą infrastrukturą portów i najnowszym dzieckiem – dpb (distributed ports builder – rozproszony system budowani portów).

7. Ile czasu zajmuje Ci praca przy projekcie OpenBSD?

Bardzo zmienny zakres godzin w przeciągu roku. Szacuje, że ponad 10 godzin tygodniowo.

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?

Bardzo chętnie podkradamy pracę z zewnątrz, jeżeli przybliża ona nasze cele. Wsparcie gfx dla współczesnych radeonów i intela zdecydowanie pochodzi z zewnątrz, mimo że jsg@ oraz kettenis@ wykonali ogromną robotę.

Na moim własnym podwórku zwracam szczególną uwagę na podobne projekty oraz ich narzędzia do zarządzania i budowania paczek. Często wymieniam się informacjami z Baptist Darroussinem od projektu FreeBSD, zatem koniec końców nasze narzędzia mają zbliżony zestaw funkcjonalności, mimo że nie współdzielimy już kodu.

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

Najdumniejszy jestem z doprowadzenia drzewa portów do obecnego stanu. Moim zdaniem mamy zdecydowanie najczystsze drzewo ze wszystkich BSD. Oczywiście to praca grupowa, więc jestem także dumny z dobrych relacji z pozostałymi osobami zajmującymi się portami.

Ponownie zajrzeć/zrobić inaczej? … więc, mniej lub bardziej – wszystko. Zresztą zdarza się to na bieżąco. Co kilka lat, przegląda się własne decyzje i szuka lepszych sposobów na rozwiązanie tych samych problemów.

Myśl, że jestem dość zadowolony z obecnego stanu rzeczy. By je znacznie poprawić potrzebowałbym zdecydowanie dużo więcej czasu na projekt.

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

Przyszłość jest świetlista! Ludzie dopiero zaczęli zdawać sobie sprawę z tego, że bezpieczeństwo komputerowe jest faktycznie trudne oraz z faktu, że doraźne rozwiązania, takie jak firewall, nie są wystarczające. Generalnie największym wyzwaniem jest podniesienie standardów rozwoju oprogramowania tak, by przynajmniej wyglądało ono w miarę bezpiecznie.

Nie żartuje. Nadal widzimy ludzi popełniających ogromne błędy nawet w 2015 roku, takie jak wstrzykiwanie SQL, choć nie mają bladego pojęcia o tym, co to jest wstrzyknięcie SQL.

Zatem nadal uważam, że OpenBSD podąża w tym kierunku.

W świecie OpenBSD największym wyzwaniem będzie zapewne wsparcie dla C++11 czy późniejszych standardów języka, gdyż coraz więcej projektów tego wymaga. Obecnie opieramy się na kompilatorze dostępnym w drzewie portów, ale spodziewam się wkrótce momentu, gdzie będziemy potrzebować wsparcia dla C++11 w systemie bazowym. Jest wiele interesujących kroków (np. wsparcie dla wątków z niezależnym ustawieniem locale), które musimy wykonać, by do tego doszło. Mam nadzieje, że clang zepsuł już tyle instalacji FreeBSD/NetBSD/bitrig, aby nasz projekt mógł na tym zyskać.

Skomentuj

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