Kerla: un nou nucleu scris în Rust și compatibil cu Linux ABI

Recent au fost lansate informații despre proiectul Kerla, care este dezvoltat ca un nucleu de sistem de operare scris în limbajul Rust. Codul este distribuit sub licențele Apache 2.0 și MIT. Proiectul este dezvoltat de dezvoltatorul japonez Seiya Nuta, cunoscut pentru crearea sistemului de operare microkernel Resea, scris în limbajul C.

Noul nucleu vizează inițial asigura compatibilitatea cu nucleul Linux la nivel ABI, ceea ce va permite binarelor nemodificate construite pentru Linux să ruleze într-un mediu bazat pe Kerla.

Despre Kerala

Kerla este un nucleu de sistem de operare monolitic creat de la zero în Rust. În stadiul actual de dezvoltare, Kerla poate rula numai pe sisteme cu arhitectură x86_64 și implementează apeluri de sistem de bază, cum ar fi scriere, stat, mmap, pipe și poll, acceptă semnale, conducte fără nume și comutatoare de context. Apeluri precum fork, wait4 și execve sunt furnizate pentru a controla procesele. Există suport pentru tty și pseudo-terminale (pty). Printre sistemele de fișiere initramfs (utilizate pentru a monta rădăcina FS), tmpfs și devfs sunt încă acceptate.

O stivă de rețea este, de asemenea, furnizată cu suport pentru socket-uri TCP și UDP, bazat pe biblioteca smoltcp. Dezvoltatorul a pregătit un mediu de pornire care rulează pe QEMU sau Firecracker VM cu driver.virtio-net, la care vă puteți conecta acum prin SSH. Musl este folosit ca bibliotecă de sistem și BusyBox este folosit ca utilitar pentru utilizator. Bazat pe Docker, a fost pregătit un sistem de compilare care vă permite să vă creați propriile initramfs bootstrap cu kernel-ul Kerla.

Până acum, s-au oferit puține detalii despre noul său nucleu, dar ceea ce atrage cel mai mult atenția asupra caracteristicilor lui Kerla este faptul că este scris în Rust. Deci scrierea în Rust are vreun avantaj față de alte limbi sau de codul existent? Mulți au răspuns afirmativ la această întrebare, subliniind beneficiile de siguranță a memoriei pe care le oferă limbajul.

De asemenea, este furnizat atunci când se evaluează acuratețea acceselor la memorie în timpul execuției. in afara de asta, Mozilla crede că Rust oferă protecție împotriva depășirilor de numere întregi, necesită inițializarea obligatorie a valorilor variabilelor înainte de utilizare, adoptă implicit conceptul de referințe și variabile imuabile, oferă o tastare statică puternică pentru a minimiza erorile logice și simplifică procesarea intrării prin modele de potrivire.

Printre avantaje, evidențiem instrumentele integrate de evaluare a calității codului și crearea de teste unitare care pot fi rulate nu numai pe hardware real, ci și pe QEMU. Practic, Mozilla consideră că Rust este mai ușor de depanat, deoarece compilatorul va respinge erorile. Cu toate acestea, coves a subliniat unele dezavantaje cu Rust.

„Ca și în cazul C++, este aproape imposibil să scrii Rust idiomatic fără a folosi șabloane, așa că ai binare umflate și timpi de construcție lenți. Toate aceste verificări la compilare au, de asemenea, un cost. De asemenea, dacă rescrii ceva, pierzi vechiul cod matur și nu poți produce o bază de cod de calitate similară într-o perioadă rezonabilă de timp; Este mult mai bine să extinzi, mai degrabă decât să rescrii, programul în Rust. Este mai bine să extindeți programul decât să-l rescrieți în Rust”, spune un inginer software.

Potrivit creatorului său, din acest motiv dezvoltatorii Linux, în special Linus Torvalds însuși, Ei au respins ideea de a scrie întregul nucleu în Rust.

„Lucrați puțin pentru a crea legături securizate, apoi scrieți codul suplimentar în Rust și vă puteți bucura în continuare de acel cod matur. (Așa face Linux, există eforturi pentru a adăuga capacitatea de a scrie un modul kernel în Rust)”, a adăugat el. Dezvoltatorii Linux au explorat posibilitățile de a scrie anumite module noi de kernel folosind limbajul Rust de aproximativ trei ani. Acest lucru a dat naștere proiectului „Rust for Linux”.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre aceasta, puteți consulta detaliile În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.