Portál AbcLinuxu, 26. května 2024 06:36

Rusty Russell, rozhovor

20. 11. 2009 | Robert Krátký
Články - Rusty Russell, rozhovor  

Rusty Russell je australský vývojář linuxového jádra, který má na svém kontě práci na množství rozličných projektů. Napsal například paketový filtr ipchains a pro jádro 2.4 ho celý přepsal na iptables, naprogramoval virtualizační hypervizor lguest atd. Je aktivním členem australské linuxové scény a zakladatelem významné konference Linux.conf.au.

Rusty Russell


1) Ví se o vás, že pracujete na spoustě různých věcí. Síťování, moduly, virtualizace a čert ví, co ještě. Je to kvůli změnám zájmů? Jak se rozhodujete, na čem bude dělat?

Jak se rozhoduji… to je nejtěžší. Je toho tolik, co by se dalo dělat, tolik skvělých projektů. Takže máte dvě možnosti. Můžete se věnovat najednou velikému množství věcí, a tím pádem vaše působení nebude ve spoustě projektů vůbec poznat. A nebo se můžete vracet k projektům, na kterých se vám dělá dobře. Obě možnosti jsou špatné – občas se musíte přinutit k práci na něčem, co vám příjemné není. Ale může to dopadnout skvěle. Jako s Wesnoth. Já neprogramuji hry, už nepoužívám C++, ale řekl jsem si, tohle by mohla být legrace. Byla to opravdu výborná zkušenost. Rád hackuji. Další problém je s časem. Snažím se počet neoficiálních projektů udržovat kolem 3–4.


2) Na co se chystáte teď?

Zrovna dělám na CCAN a libantithread, to jsou teď moje dva projekty. CCAN je komplexní síť archivů s kódem C, obdoba C-PAN, ale pro C, a libantihread je v podstatě přenositelný způsob, jak mít sdílenou paměť.


3) Existuje nějaká oblast jádra, od které se držíte dál?

Vlastně jo, souborové systémy. Na souborové systémy nesahám. Dva důvody. První je to, že pokud něco pokazíte v jakékoliv jiné části jádra, systém může spadnout – u souborových systémů však způsobíte trvalé následky, když někomu poškodíte diskový oddíl. To je první věc. Druhý důvod je, že v oblasti souborových systémů pracují někteří lidé, se kterými je opravdu těžké vycházet. A je snadné si říct, no, je spousta jiných věcí, které můžu dělat. Takže se nechystám v nejbližší době napsat RustyFS.


4) Jakou jste měl motivaci pro hackování na lguest? Byla už k dispozici jiná řešení virtualizace…

Měl jsem dva důvody, proč s tím začít. První byl, že jsme mluvili o paravirt_ops – rozhraní hosta pro komunikaci s různými hypervizory. A abych skutečně pochopil potřeby, které měly různé hypervizory, jež byly tehdy k dispozici (měli jsme VM, VMI i nativní hardwarové). A také abych pochopil, co je obecně potřeba, jak navrhnout API, tak jsem usoudil, že si musím jeden napsat. Tak jednoduchý, jak jen to bude možné, aby bylo jisté, že to nebudeme příliš komplikovat. To byl jeden důvod.

Další spočíval v tom, že jsem měl pocit, že způsob, jak šel na virtualizaci Xen, nebyl nejlepší. Takže lguest použil modulární model, přičemž hostitel bylo obyčejné jádro. Žádný hypervizorový kernel. A hosté jsou normální procesy. Naštěstí jsem nemusel lguest přepsat na opravdový hypervizor, protože se objevilo KVM, které používalo přesně stejný model. Nezávisle na lguest. A to znamenalo, že jsem nemusel psát miliony řádků kódu. Počkal jsem, až to všechno udělá Avi Kiviti.


5) Zajímalo mě, jestli jste neuvažoval i o práci na KVM. Možná se přestěhovat do Izraele…

Vlastně jsem nějaké patche pro KVM dal dohromady, ale už je to dlouho. Líbilo se mi na KVM pracovat. Myslím, že to je bezvadný projekt. Ale mají spoustu hackerů, kteří na jádře KVM dělají.


5) Účastnil jste se vyjednávání o FTA se Spojenými státy a výsledky nebyly zrovna povzbudivé. Došlo k nějakému vývoji? Proběhly nějaké soudní případy, které by zákon interpretovaly?

Je to zajímavé, ale v té oblasti, ze které jsme měli opravdu obavy, se nic nedělo. To byl ten styl DMCA. Ale před dvěma lety jsem si dal novoroční předsevzetí, že už se nebudu angažovat v oblasti duševního vlastnictví, takže to moc nesleduji. Bylo však velmi ticho. Někdy ale tyto věci trvají roky, než přijde soudní případ, který rozhodne, co ten zákon vlastně znamená.


6) V té době jste v rozhovoru zmínil, že možný způsob, jak docílit toho, aby se lidé o tyto zákony začali zajímat, je naučit je používat svobodný software, takže by se jich přímo týkaly. Došlo k nějakému pokroku? Podařilo se vám zvýšit povědomí o těchto otázkách?

Myslím, že se lidé o IP (intellectual property) zákony více zajímají. Jedním z důvodů je prostě to, že se zvyšuje povyk kolem porušení duševního vlastnictví. Více lidí nyní o těchto věcech ví. Svobodný software i nadále roste, ale hlavně nezávisle, protože lidé sice oficiálně nedistribuují věci, které by mohly být na hraně – jsou ale široce dostupné a pořád je spousta lidí používá. Je to sice v té šedé oblasti, což někdy odrazuje, ale rozhodně to nebylo postaveno mimo zákon.

Pokud by se zákon obrátil proti svobodnému softwaru natolik šíleně, že by se nesměl používat, tak potom by snad přišly nějaké skutečné změny. Ale i tak se v oblasti IP dějí fascinující věci. Například lidé za projektem Open Media, kteří se snaží katalogizovat a obejít zákon a počkat na vypršení některých patentů. V oblasti médií se děje spousta zajímavých věcí. To je místo, kde teprve dochází na lámání chleba. Takže lidé o tom určitě vědí, ale rozvíjí se to mnoha různými směry.


7) Australský ministr telekomunikací Stephen Conroy navrhl filtrování BitTorrentu a dalšího internetového provozu. Myslíte, že se tyto plánu mohou v Austrálii uchytit?

Stephena Conroye jsem potkal. Je to idiot. Ale to nemusí nutně znamenat, že z jeho nápadů nic nevzejde. Řekl bych, že máme před sebou hodně práce, než docílíme toho, že lidé porozumí výhodám technologií, místo aby se jich báli a měli tyhle alergické reakce. Lidé často nechápou samotnou peer-to-peer podstatu internetu. Tu základní potíž s tím, že by měly být některé aspekty této podstaty zakázány. Nesleduji tu situaci pozorně, ale většině technicky založených lidí je jasné, že může Conroy napáchat velkou spoustu škod, vrhnout nás zpátky do doby kamenné a přitom nijak neovlivnit věci, kvůli kterým tvrdí, že to dělá.


8) Jednou jste zmínil, že vaše přednášky na konferencích jsou mimo jiné myšleny tak, aby probudily zájem v nováčcích. Jakou byste měl radu pro potenciální hackery jádra, kteří hledají způsob, jak přispět?

Ani bych nezačínal s jádrem. Je hodně hackerů, kteří se chtějí zapojit do práce na jádře. To je super a také je fakt, že v jádře je množství opravdu dobrého kódu, který vám může pomoci si osvojit dobré zvyky. Ale byl bych rád, kdyby více hackerů jádra pracovalo také na jiných projektech. A mnozí to už dělají. Je totiž mnohem snazší mít opravdu velký vliv na skoro jakýkoliv jiný projekt než jádro. V jádře se pohybuje hodně lidí, kteří píší spousty kódy, obrat kódu v jádře je úžasný. Ale u jiných projektů můžete mít radikální vliv při vynaložení mnohem menší námahy.

Takže bych nevolil jádro. Jasně, je skvělé hackovat na jádře, ale také bych hackoval na jiných věcech. Schopnosti se myslím přenesou a navíc je to s jádrem občas prostě k vzteku. Když máte ještě jiný projekt, na kterém můžete pracovat, tak to je dobrý způsob, jak se nenechat úplně rozhodit. To by tedy byla moje rada.

A co se týče hackování jádra, tak tam je tolik oblastí kódu, že si můžete v podstatě vybrat libovolný soubor, přečíst ho a najít něco, co by se dalo vylepšit. A to se dá opakovat donekonečna. A jak budete číst víc a víc kódu, objevíte víc věcí na opravení. Časem se budou vaše opravy pravděpodobně zvětšovat a než se nadějete, budete psát zásadní části jádra. Ale záleží to na ochotě číst kód, stejně jako na kódování.


9) Zajímalo by mě, proč jste zanechal patch-monkey.

No jo, nechal jsem toho hlavně proto, že jsem dokázal, že to funguje, a Adrian Bunk se nabídl, že to ode mě převezme. Nepřipadalo mi, že by k tomu bylo potřeba ještě nějak extra moc nadání, jakmile jsme vyřešili detaily toho, jak to bude fungovat. A Adrian Bunk je daleko aktivnější trivial patch monkey, než jsem kdy byl já. Takže bylo fajn, že jsem mu to mohl předat.


1) You're known to have worked on many very different things. Networking, modules, virtualization, and whatnot. Is that a case of changing interests? How do you decide?

How do I choose, that's the hardest question. There's so much that you could be doing, so many great projects out there that there are two options. One is to spread yourself so thinly you don't make any difference to a huge number of projects. The other one is to keep going back to the projects you're comfortable with. And both are bad – you need to force yourself sometimes to go out of your comfort zone. And great things can happen. Like with Wesnoth. I'm not a game hacker, I don't use C++ anymore, but I said, you know, this could be fun. That was a really good experience. I like hacking on things. The other problem is always finding the time. I tried to keep down the number of unofficial projects I'm on to about three or four at a time.


2) What's next on your list?

CCAN is my current thing, and libantithread these are the two projects I'm working on. CCAN is the comprehensive C archive network, like C-PAN, only for C, and libantihread is basically a portable way of doing shared memory.


3) Is there an area of the kernel you want stay away from?

Yes, there is, actually. Filesystems. I don't touch filesystems. Two reasons. One is that in any other part of the kernel if you mess up it might crash, with filesystems you can create lasting damage if you corrupt someone's filesystem. That's a part of it. The second is that there are some people in filesystems that are particularly difficult to work with. And it's easy to just say 'well, I've got plenty of other things I can do' so I'm not going to write RustyFS any time soon.


4) What was the motivation for hacking on lguest? There were other virtualization solutions available…

There were two reasons to start hacking on it. The first one was that we were debating about paravirt_ops – this interface of a guest to talk to different hypervisors. And in order to really understand the needs of the different hypervisors we had then, we had VMs and VMI, and we had native hardware. And to really understand what the generic needs were, how to design the API, I thought that I had to write another one. As simple as possible one, to make sure we wouldn't make it too complicated. That was one provision.

The other is that I felt that the way Xen did virtualization was not the best way of doing it. So, lguest used a modular model where the host is just a normal kernel. There's no hypervisor kernel. And the guests are just normal processes. Fortunately, I never had to turn lguest into a serious hypervisor because KVM came along, using exactly the same model. Independently. And that meant that I didn't have to write millions lines of code. I just let Avi Kivity go off and do all that.


5) I was wondering if you ever considered working on KVM. Moving to Israel…

I have actually done some KVM patches, but not for a while. I like working on KVM. I think it's a great project. But they have plenty of hackers working on the core KVM.


5) You were involved in the negotiations about FTA with the US and the result was not exactly encouraging. Has there been any new development in that area, any court cases that would interpret the law?

Interestingly, we haven't seen any significant development on the things we were really worried about. That DMCA style. That said… two years ago my New Year's resolution was not to do any more intellectual property work, so I have been staying out of it. But it has been very quiet. But sometimes these things take years before you get a court case which will decide what the law actually says.


6) You said in an interview at that time that a possible way to make people care about these laws is to get them to use free software so that the laws would directly affect them. Do you see any progress in that regard? Have you been able to raise awareness about these issues?

I think people are more aware of IP law. And one of the reasons is simply because we've seen an uptake in important noises about intellectual property violations. I think it has made more people aware of these kind of issues. Free software is continuing to grow, pretty much independently because, basically, people are – while officially not distributing a lot of these things that might be questionable, they're widely available – and people are still using them. And because it's in that grey area it has had a suppressive effect, but it hasn't been clearly outlawed.

Should the law come down on the side of these things that are completely outrageous like you can't use them any more then we might see, at this stage, some real changes. But there are lot of fascinating things going on in the IP space. Like the open media people who are seeking to catalogue and work around the law, and wait for expiry of some of these patents. There's a lot of interesting stuff around the media side which is where the stuff really comes to head that's going on right now so people are definitely aware of the stuff but it's developing in a lot of different directions.


7) Australian Broadband minister Stephen Conroy proposed filtering BitTorrent and other internet traffic. Do you think these plans can actually get some traction in Australia?

I met Stephen Conroy. He's an idiot. But that doesn't necessarily his ideas won't go anywhere. I think we have a big job to do to make sure that people understand the benefits of technology, rather than fearing it and having these kind of allergic reactions. People often don't understand the peer-to-peer nature of internet itself. The fundamental difficulty with the idea that you should ban some aspects of it. I haven't been keeping a close eye on the situation. But it's fairly obvious to most technical people that he can do an awful lot of damage and throw us back to the stone age, and still have no real effect on any of the issues that he claims to be concerned about.


8) You mentioned some of your talks at conferences are actually recruiting drives aimed at exciting interest in newcomers. What would be your advice to potential kernel hackers looking for ways to contribute?

I don't think I'd start on the kernel. There's a lot of hackers who want to be involved with the kernel. That's great and there is some really good code in the kernel and you can learn some really good habits, but I actually wish more kernel coders would go out and work on other projects. And many of them do. Because it's much easier to have a really big impact on almost any other project than the kernel. In the kernel, there's a lot of people doing a lot of code, the amount of code churn is incredible, but on these other projects you can basically have a radical effect on the project for much less effort than you get in the kernel.

So, I would not just go down for the kernel. I mean, being a kernel hacker is great, but I would also hack on something else to save time. I think the skills will carry across and sometimes, the kernel can just be frustrating. Having another project to work on instead and flip to that can be a really good way of not getting completely frustrated. I think that would be my advice.

As far as kernel hacking itself goes there are just so many areas of the code that you could pretty much pick a random file in the kernel, read it, and you can find something that is worth tidying up. And you can repeat that forever. And as you read more and more code, you will find more and more things to fix. And your fixes will probably get bigger and more impressive and next thing you know you'll be writing major sections of the kernel. But it comes down to the willingness to read code, as well as to write code.


9) I was wondering why you gave up the patch-monkey.

Yeah, well, I gave up the patch monkey mainly because I proved it worked and Adrian Bunk offered to take it over from me. I didn't think that it was something what needed a great deal of skill any more, once we've sorted out the details of how it would work. And Adrian Bunk is a much more active trivial patch monkey than I ever was. So handing it over to him was a really great thing to do.

Související články

Jonathan Corbet, vývojář jádra a autor LWN.net
Linus Torvalds – naživo se zakladatelem Linuxu
Alan Cox odpovídá
Rozhovor: Richard Stallman
Mark Shuttleworth odpovídá
Rich Green, viceprezident Sunu o open source
Opera: Jon S. von Tetzchner
Interview: Matthew Szulik, Red Hat
Seriál: Programmers at Work
Linux.conf.au 2009 – Linux u protinožců
Linux.conf.au

Další články z této rubriky

Michal Švec ze SUSE na téma Virtualizace a SLES
Rozhovor s Radkem Špimrem, IBM na téma nových serverů IBM Power Systems LC
Zpověď startupu na vlně IBM
ČVUT jako MIT? Lendl, Navrátilová, Jágr, Sáblíková, nebo absolvent FELu?
Práce vývojáře je dobrodružství

Diskuse k tomuto článku

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.