Kerla: jauns kodols, kas rakstīts Rust un saderīgs ar Linux ABI

Nesen tika izlaista informācija par Kerla projektu, kas tiek izstrādāts kā operētājsistēmas kodols, kas rakstīts Rust valodā. Kods tiek izplatīts saskaņā ar Apache 2.0 un MIT licencēm. Projektu izstrādā japāņu izstrādātājs Seiya Nuta, kas pazīstams ar mikrokodola operētājsistēmas Resea izveidi, kas rakstīta C valodā.

Jaunais kodols sākotnēji ir paredzēts nodrošināt saderību ar Linux kodolu ABI līmenī, kas ļaus nemodificētiem binārajiem failiem, kas izveidoti Linux, darboties Kerla vidē.

Par Keralu

Kerla ir monolīts operētājsistēmas kodols izveidots no nulles Rust. Pašreizējā attīstības stadijā Kerla var palaist tikai sistēmās ar x86_64 arhitektūru un ievieš pamata sistēmas izsaukumus, piemēram, rakstīšanu, stat, mmap, cauruli un aptauju, atbalsta signālus, nenosauktas caurules un konteksta slēdžus. Tādi zvani kā fork, wait4 un execve nodrošina procesu kontroli. Ir atbalsts tty un pseido-termināļiem (pty). Starp initramfs failu sistēmām (kas tiek izmantotas saknes FS pievienošanai) joprojām tiek atbalstītas tmpfs un devfs.

Tiek nodrošināts arī tīkla steks ar atbalstu TCP un UDP ligzdām, pamatojoties uz smoltcp bibliotēku. Izstrādātājs ir sagatavojis sāknēšanas vidi, kas darbojas QEMU vai Firecracker VM ar draiveri virtio-net, kurai jūs jau varat izveidot savienojumu, izmantojot SSH. Musl izmanto kā sistēmas bibliotēku un BusyBox kā lietotāja utilītu. Pamatojoties uz Docker, ir sagatavota būvēšanas sistēma, kas ļauj izveidot savu initramfs sāknēšanu ar Kerla kodolu.

Pagaidām ir sniegta neliela informācija par tā jauno kodolu, taču visvairāk uzmanības pievērš Kerlas funkcijām fakts, ka tas ir rakstīts Rust valodā. Tātad, vai tā rakstīšanai Rust ir kādas priekšrocības salīdzinājumā ar citām valodām vai esošo kodu? Daudzi uz šo jautājumu atbildēja apstiprinoši, uzsverot atmiņas drošības priekšrocības, ko sniedz valoda.

Tas tiek nodrošināts arī, novērtējot atmiņas piekļuves precizitāti izpildes laikā. Kas vēl, Mozilla uzskata, ka Rust piedāvā aizsardzību pret veselu skaitļu pārplūdi, prasa obligātu mainīgo vērtību inicializāciju pirms lietošanas, pēc noklusējuma pieņem atsauces un nemainīgu mainīgo jēdzienu, piedāvā spēcīgu statisku rakstīšanu, lai samazinātu loģiskās kļūdas, un vienkāršo ievades apstrādi, saskaņojot modeļus.

Starp priekšrocībām mēs izceļam integrētos rīkus koda kvalitātes novērtēšanai un izveidot vienību testus, kurus var palaist ne tikai uz reālu aparatūru, bet arī uz QEMU. Būtībā Mozilla uzskata, ka Rust ir vieglāk atkļūdot, jo kompilators noraidīs kļūdas. Tomēr līči norādīja uz dažiem Rust trūkumiem.

“Tāpat kā ar C ++, ir gandrīz neiespējami rakstīt idiomātisku Rust, neizmantojot veidnes, tāpēc tai ir uzpūsti binārie faili un lēni kompilēšanas laiki. Par visām šīm kompilēšanas laika pārbaudēm arī ir jāmaksā. Turklāt, ja kaut ko pārrakstāt, jūs zaudējat veco nobriedušo kodu bāzi, un jūs nevarat izveidot līdzīgas kvalitātes kodu bāzi saprātīgā laika periodā; daudz labāk ir paplašināt, nevis pārrakstīt programmu Rust. Labāk ir paplašināt programmu, nevis pārrakstīt to Rust, ”saka programmatūras inženieris.

Pēc tā veidotāja domām, šī iemesla dēļ Linux izstrādātāji, jo īpaši pats Linuss Torvalds, viņi noraidīja ideju pārrakstīt visu kodolu Rustā.

“Paveiciet kādu darbu, lai izveidotu drošas saites, pēc tam ierakstiet papildu kodu Rust un joprojām varēsiet izbaudīt šo nobriedušo kodu. (Tas ir tas, ko dara Linux, tiek mēģināts pievienot iespēju Rust rakstīt kodola moduli), ”viņš piebilda. Linux izstrādātāji apmēram trīs gadus ir pētījuši iespējas rakstīt noteiktus jaunus kodola moduļus, izmantojot Rust valodu. Tas radīja projektu "Rust for Linux".

Visbeidzot, ja jūs interesē uzzināt vairāk par to, varat uzzināt sīkāku informāciju Šajā saitē.


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta.

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.