Linus Torvalds aloitti elokuun alussa Linux-ytimen postituslistalle lähettämänsä viestin kolmella sanalla: "This rc is huge." Tämä julkaisukandidaatti on valtava.
Kyse oli tulevan Linux 7.2:n kuudennesta julkaisukandidaatista. Torvaldsin mukaan se oli commit-määrällä mitattuna suurin rc6 vuosiin. Viikkoa myöhemmin, 9. elokuuta, ilmestynyt rc7 ei juuri keventänyt tunnelmaa.
Syyn Torvalds nimesi suoraan. Korjauksia tulee poikkeuksellisen paljon, ja iso osa niistä on peräisin tekoälytyökalujen tekemistä koodikatselmoinneista. Yksittäiset muutokset eivät hänestä näytä pelottavilta, "nothing looks particularly scary per se", mutta niitä on yksinkertaisesti hurja määrä.
“En voi sanoa olevani erityisen innoissani tämän kaiken koosta. Mutta asia on niin kuin on: tämä on uusi normaali, jossa korjauksia on paljon ja monet niistä johtuvat erilaisten tekoälytyökalujen tekemistä katselmoinneista.”
Mikä Linux-ydin on ja miksi sen aikataulu koskee sinua
Linux-ydin on ohjelmiston osa, joka juttelee suoraan laitteiston kanssa. Se jakaa suoritinaikaa, hallitsee muistia ja huolehtii siitä, että verkkokortti, näytönohjain ja levy tottelevat käskyjä. Käyttäjä ei näe siitä mitään.
Silti se pyörii lähes kaikkialla. Jokaisessa Android-puhelimessa, valtaosassa maailman verkkopalvelimia, kotireitittimissä, älytelevisioissa ja modernien autojen viihdejärjestelmissä. Vaikka et olisi koskaan asentanut Linuxia mihinkään, käytät sitä joka päivä useiden kerrosten läpi.
Uusi versio ilmestyy noin yhdeksän tai kymmenen viikon välein, ja rytmi on pysynyt lähes muuttumattomana yli vuosikymmenen. Juuri siksi julkaisukandidaattien koko on käyttökelpoinen mittari: kun sama mittatikku on ollut käytössä vuosia, poikkeama näkyy heti.
Torvalds itse ei ollut huolissaan aikataulusta. "I don't currently see any value in delaying the 7.2 release", hän kirjoitti rc7:n yhteydessä ja arveli lopullisen version ilmestyvän seuraavana viikonloppuna. Versio 7.2 tuo mukanaan muun muassa parannuksia näytönohjaimen ja suorittimen työnjakoon, eikä siitä tule pitkäaikaistuettua julkaisua.
Näin Linux-ydin syntyy
Jokainen kierros alkaa kahden viikon yhdistämisikkunalla, jonka aikana uudet ominaisuudet otetaan sisään. Sen jälkeen seuraa noin seitsemän viikoittaista julkaisukandidaattia eli rc-versiota, joihin saa periaatteessa mennä vain korjauksia. Mitä lähempänä lopullista julkaisua ollaan, sitä pienempi rc-version pitäisi olla. Nyt käyrä kulkee väärään suuntaan.
Tekoäly ei tässä kirjoita koodia, se lukee sitä
Torvaldsin huomio ei koske koodia kirjoittavia avustajia vaan koodikatselmointityökaluja. Ne käyvät läpi valmista lähdekoodia ja etsivät virheitä: muistivuotoja, tarkistamattomia paluuarvoja, lukitusvirheitä. Ihmiskehittäjä ottaa löydöksen, tekee siitä korjauksen ja lähettää sen eteenpäin ylläpitäjälle.
Ennen tällaista tarkistusta rajoitti se, kuinka monta paria silmiä koodia jaksoi lukea. Nyt rajoite on käytännössä poissa. Kone lukee miljoona riviä yhtä helposti kuin tuhat, ja jokainen löydös synnyttää yhden ehdotuksen lisää siihen jonoon, jonka päässä istuu ihminen.
Sama työnjako on kirjattu muuallakin. Rust-kieliprojekti päätti keväällä, että tekoäly saa lukea projektin koodia mutta ei kirjoittaa sitä sisään. AI Suomi kertoi rajanvedosta osoitteessa https://aisuomi.fi/artikkelit/rust-veti-rajan-tekoaly-saa-lukea-koodia-ei-kirjoittaa. Linuxissa vastaavaa sääntöä ei ole, ja lopputulos näkyy nyt commit-lokissa.
Tämä ei myöskään ole sama asia kuin viime vuosien valitukset tekoälyn tuottamasta roskasta. Torvalds on aiemmin sanonut ytimen tietoturvapostituslistan muuttuneen lähes hallitsemattomaksi konetuotettujen bugi-ilmoitusten takia. Nyt hänen sävynsä on toinen: löydökset ovat ilmeisesti aitoja, niitä on vain liikaa kerralla.
Pullonkaula on ihmisissä
Linux-ytimen malli nojaa siihen, että jokaisen muutoksen lukee vastuullinen ylläpitäjä ennen kuin se päätyy Torvaldsin puuhun. Monet ylläpitäjistä hoitavat hommaa työn ohessa tai kokonaan vapaaehtoisina. Heidän määränsä ei kasva sillä, että katselmointityökaluja otetaan käyttöön lisää.
Tavallinen käyttäjä huomaa tämän viiveenä. Puhelimen tietoturvapäivitys, reitittimen korjaus ja palvelimen paikkaus kulkevat kaikki saman putken läpi. Jos putken kapein kohta ruuhkautuu, vaihtoehtoja on kaksi: päivitykset hidastuvat tai katselmointi ohenee. Jälkimmäisessä tapauksessa korjaus voi rikkoa jotain muuta, ja se maksaa moninkertaisesti alkuperäiseen virheeseen verrattuna.
Sama paine kohdistuu jo koko alaan. Koodia tuottavat yhä useammin ihmiset, joiden ammattinimikkeessä ei lue kehittäjä, mistä AI Suomi kirjoitti osoitteessa https://aisuomi.fi/artikkelit/kaksi-kolmesta-koodarista-ei-ole-koodari. Kun sekä tuotanto että tarkistus koneellistuvat, ainoaksi käsityöksi jää arvio siitä, mikä kannattaa ottaa sisään.
Sanasto
Commit
Yksi tallennettu muutos ohjelmiston lähdekoodiin, esimerkiksi virheen korjaus. Commit-määrä kertoo, kuinka monta erillistä muutosta versioon on tehty.
Julkaisukandidaatti (rc)
Ohjelmiston koeversio, joka julkaistaan ennen lopullista versiota testattavaksi. Linuxissa niitä tulee noin seitsemän peräkkäin, ja jokaisen pitäisi olla edellistä pienempi.
Yhdistämisikkuna (merge window)
Kahden viikon jakso jokaisen Linux-julkaisun alussa, jolloin uusia ominaisuuksia otetaan mukaan. Sen jälkeen sisään pääsevät enää korjaukset.
Ensimmäinen julkinen mittalukema
Tekoälyn vaikutuksesta ohjelmistokehitykseen on esitetty paljon arvioita, mutta harva niistä perustuu avoimeen dataan. Linux-ytimen commit-historia on julkinen ja se ulottuu vuosikymmenten taakse. Kun ytimen pääkehittäjä sanoo, että rc6 on suurin vuosiin ja nimeää syyksi tekoälytyökalut, kyseessä on yksi ensimmäisistä tarkistettavissa olevista mittalukemista.
Torvalds ei silti jarruttanut mitään. Hän kirjoitti "it is what it is" ja päästi 7.2:n eteenpäin aikataulussa. Ratkaiseva kysymys nähdään seuraavassa yhdistämisikkunassa: pysyykö korjausten määrä samalla tasolla, ja alkaako ydinyhteisö rajoittaa konetuotettuja ehdotuksia samaan tapaan kuin Rust teki. Jos ei, mittatikku kannattaa vaihtaa, koska nykyinen menee pian rikki.
Viikoittainen uutiskirje
Tule firmasi fiksuimmaksi AI-osaajaksi
Yksi uutiskirje kerrallaan. Kokoamme viikon tärkeimmät tekoälyuutiset suomeksi ja kerromme, mitä ne tarkoittavat sinun työsi kannalta. Luet sen kahvitauolla.