Linus Torvalds ger inte särskilt många intervjuer nu för tiden, han ägnar i stället sina krafter åt att leda vidareutvecklingen av Linuxkärnan. Men i samband med att hans skapelse firade 25 år nyligen fick IDG News ett samtal.
IDG News: Vad har högst prioritet för utvecklingen av Linuxkärnan? Är det att stödja ny hårdvara och nya processorer, att förbättra prestanda, förbättra säkerhet, att hantera nya tekniklösningar som containrar, eller något annat?
Torvalds: Jag personligen oroar mig mest för själva ”flödet” för utvecklingen, inte för enskilda kodfrågor. Men jag är fortfarande inblandad i en del detaljfrågor, som det virtuella filsystemet. Men sådant arbete är mer att se som en hobby för mig nuförtiden.
Läs också: Linux fyller 25 år – här är historien om hobbyprojektet som blev världsdominant
Jag tycker fortfarande att nya processorarkitekturer är mycket intressanta. Det var därför jag började med Linux och jag följer fortfarande med i utvecklingen. Det var till exempel spännande med transaktionshantering i minnet, även om hajpen verkar ha lagt sig.
Men i praktiken jobbar jag med själva utvecklingsprocessen, inte med någon speciell kod. Jag läser mejl, fördelar arbetsuppgifter, försöker se till att det kommer nya versioner och att folk kan lita på att jag och kärnan alltid kommer att finnas tillgängliga. Och ja, att svara på mejl från journalister är något jag tycker hör till mitt jobb.
Viktigast för mig vad gäller utvecklingen av Linuxkärnan är att se till att alla detaljer bli korrekta, att rätt folk jobbar med rätt saker och att det inte finns några onödiga hinder. Om processen fungerar och de inblandade bryr sig om kvalitet så kommer slutresultatet på ett sätt att ta hand om sig själv.
Det är väldigt annorlunda mot vad jag gjorde för 25 år sedan. Då skrev jag all kod själv och det var vad jag gjorde. Den mesta koden jag skriver i dag är små snuttar av pseudokod i mejl, i samband med diskussioner.
IDG News: Gör de varierande kraven för och jobben som körs på persondatorer, smartmobiler och servrar, speciellt i virtualiserade miljöer och containermiljöer, att man kommer behöva dela upp utvecklingen av Linuxkärnan i två olika spår?
Torvalds: Förut trodde jag att det skulle bli oundvikligt, men det gör jag inte längre.
För länge sedan, ungefär 15 år sedan, jobbade SGI med att skala upp Linux för deras stora servrar. Man pratade om att köra Linux på installationer med hundratals noder och tusentals processorkärnor. Jag tyckte att de ansträngningarna inte skulle vara vettiga för normalfallen när man bara hade en handfull processorer och att SGI skulle behöva ha sin egen uppsättning patchar för att uppfylla sina egna väldigt speciella behov.
Jag hade fel, väldigt fel.
Vi lyckades inte bara integrera SGI:s patchar, utan fick även bättre kod genom att göra det, även för andra plattformar än SGI:s. Vi var tvungna att rensa i koden vilket gav en mer stabil kodbas som var bättre designad.
Läs också: Här är kodsnutten som gav Linux-grundaren härdsmälta
I dag har vi en tämligen enhetlig kärna som skalar från mobiltelefoner till superdatorer. Jag har blivit övertygad om att enhetlighet faktiskt varit en av våra stora styrkor. Den tvingar oss till att göra saker på rätt sätt. De olika behoven för olika plattformar tenderar att vara relevanta för varandra i ganska hög grad.
Ett exempel är att stödet för symmetrisk multikörning kom från servrar, men sedan användes även på persondatorer, och nu finns det till och med mobiler med flera processorer. Att vi hade bra stöd för symmetrisk multikörning visade sig vara viktigt även för små maskiner. Det hade varit ett stort misstag att dela upp kodbasen, vilket kanske hade varit vettigt att göra för 15 år sedan.
Ett annat exempel är att mycket av koden för att hantera energiåtgång kommer från bärbara datorer och mobiler, men i dag används den i stora maskiner också, eftersom låg energiförbrukning är viktig för dem också. Det är inte alltid uppenbart när saker ska vara specifika för en plattform och för det mesta kan detaljlösningar abstraheras, och kompileras, bort för plattformar där de inte behövs.
IDG News: Vad tycker du om aktuella projekt för att utveckla operativsystemskärnor med språk som Rust, som anses ha inbyggda säkerhetsmekanismer som inte finns i C?
Torvalds: Det är inte något nytt alls. Det finns de som använt Modula-2 och Ada. Jag måste säga att Rust ser bra mycket bättre ut än de två katastroferna.
Jag är inte helt övertygad om att använda Rust för operativsystemskärnor, men systemprogrammering handlar inte bara om kärnan. Men det är ingen tvekan om att det finns många begränsningar för C.
Jag kan bara önska lycka till, till dem som vill bygga sina egna kärnor. Det är ett jätteprojekt och jag tror inte att man löser några av de riktigt svåra problemen genom valet av programmeringsspråk. De största problemen brukar vara hårdvarustöd, som alla drivrutiner, alla udda detaljlösningar för olika plattformar, samt alla speciella lösningar för minneshantering och resursallokering. De som tror att valet av språk förenklar lösningar av sådana problem i hög grad lär bli väldigt besvikna.