<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Erik Inkinen</title><link>/ro/</link><description>Recent content on Erik Inkinen</description><generator>Hugo -- gohugo.io</generator><copyright>&amp;copy; Erik Inkinen</copyright><lastBuildDate>Thu, 16 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="/ro/index.xml" rel="self" type="application/rss+xml"/><item><title>Ce este un sistem de operare bazat pe capabilități</title><link>/ro/posts/erix-article-2/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>/ro/posts/erix-article-2/</guid><description>Sistemele de operare moderne impun granițe de securitate între procese, fișiere, dispozitive și utilizatori. Totuși, modul în care aceste granițe sunt implementate variază semnificativ între diferite modele de sistem.
Majoritatea sistemelor de operare obișnuite se bazează pe controlul accesului bazat pe identitate și pe spații de nume globale. Sistemele de operare bazate pe capabilități adoptă o abordare fundamental diferită: reprezintă autoritatea în mod explicit și o tratează ca pe un concept de prim rang.</description><content>&lt;p>Sistemele de operare moderne impun granițe de securitate între procese,
fișiere, dispozitive și utilizatori. Totuși, modul în care aceste granițe sunt
implementate variază semnificativ între diferite modele de sistem.&lt;/p>
&lt;p>Majoritatea sistemelor de operare obișnuite se bazează pe
&lt;strong>controlul accesului bazat pe identitate&lt;/strong> și pe &lt;strong>spații de nume globale&lt;/strong>.
Sistemele de operare bazate pe capabilități adoptă o abordare fundamental
diferită: reprezintă autoritatea în mod explicit și o tratează ca pe un concept
de prim rang.&lt;/p>
&lt;p>Această postare introduce sistemele bazate pe capabilități, explică în ce se
deosebesc de modelele tradiționale și arată de ce sunt centrale pentru designul
EriX.&lt;/p>
&lt;hr>
&lt;h2 id="problema-autoritatea-ambientală">Problema: autoritatea ambientală&lt;/h2>
&lt;p>În sistemele tradiționale, procesele au adesea acces la resurse prin
&lt;strong>autoritate ambientală&lt;/strong>.&lt;/p>
&lt;p>Autoritatea ambientală înseamnă că un program poate accesa o resursă doar
pentru că aceasta există într-un spațiu de nume partajat și sistemul decide că
programul are permisiunea de a o folosi.&lt;/p>
&lt;p>De exemplu:&lt;/p>
&lt;ul>
&lt;li>Un proces poate deschide &lt;code>/etc/passwd&lt;/code> dacă are permisiuni suficiente.&lt;/li>
&lt;li>Un program se poate conecta la un socket de rețea dacă sistemul de operare îi
permite.&lt;/li>
&lt;li>Un serviciu poate accesa fișiere în funcție de identitatea utilizatorului sau
de apartenența la grup.&lt;/li>
&lt;/ul>
&lt;p>În toate aceste cazuri, autoritatea de a accesa resursa este &lt;strong>implicită&lt;/strong>.&lt;/p>
&lt;p>Procesul nu deține o referință directă și explicită la resursă. În schimb, se
bazează pe:&lt;/p>
&lt;ul>
&lt;li>nume globale (căi de fișiere, porturi, identificatori de dispozitive)&lt;/li>
&lt;li>verificări de acces (ID-uri de utilizator, permisiuni, ACL-uri)&lt;/li>
&lt;/ul>
&lt;p>Acest model creează mai multe probleme:&lt;/p>
&lt;h3 id="1-problema-delegatului-confuz">1. Problema delegatului confuz&lt;/h3>
&lt;p>Un program își poate folosi accidental autoritatea în mod greșit în numele
altui program.&lt;/p>
&lt;p>De exemplu, un serviciu privilegiat ar putea citi un fișier cerut de un client
nesigur, chiar dacă acel client nu ar trebui să aibă acces la fișier.&lt;/p>
&lt;h3 id="2-autoritate-prea-largă">2. Autoritate prea largă&lt;/h3>
&lt;p>Programele rulează adesea cu mai multe permisiuni decât au nevoie în realitate.
Acest lucru mărește impactul erorilor sau al compromiterilor de securitate.&lt;/p>
&lt;h3 id="3-analiză-dificilă">3. Analiză dificilă&lt;/h3>
&lt;p>Este greu de determinat ce are voie să facă un proces fără să analizezi starea
globală, identitățile utilizatorilor și politicile de control al accesului.&lt;/p>
&lt;hr>
&lt;h2 id="ideea-centrală-capabilitățile">Ideea centrală: capabilitățile&lt;/h2>
&lt;p>O &lt;strong>capabilitate&lt;/strong> este un token nefalsificabil care oferă acces la un obiect
specific, cu drepturi specifice.&lt;/p>
&lt;p>În loc să întrebe:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Are acest proces permisiunea să acceseze această resursă?&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>un sistem bazat pe capabilități întreabă:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Deține acest proces o capabilitate care autorizează această operație?&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>Dacă răspunsul este nu, operația nu poate continua.&lt;/p>
&lt;hr>
&lt;h2 id="proprietățile-capabilităților">Proprietățile capabilităților&lt;/h2>
&lt;p>Capabilitățile au mai multe proprietăți definitorii:&lt;/p>
&lt;h3 id="1-nefalsificabilitate">1. Nefalsificabilitate&lt;/h3>
&lt;p>Un proces nu poate crea o capabilitate validă din nimic.&lt;/p>
&lt;p>Capabilitățile sunt create și gestionate de nucleu, ceea ce garantează că nu
pot fi falsificate sau ghicite.&lt;/p>
&lt;hr>
&lt;h3 id="2-autoritate-explicită">2. Autoritate explicită&lt;/h3>
&lt;p>Toată autoritatea este reprezentată explicit prin capabilități.&lt;/p>
&lt;p>Dacă un proces poate executa o operație, trebuie să dețină o capabilitate care
permite acea operație. Nu există acces implicit prin spații de nume globale.&lt;/p>
&lt;hr>
&lt;h3 id="3-drepturi-granulare">3. Drepturi granulare&lt;/h3>
&lt;p>Capabilitățile pot codifica permisiuni specifice, precum:&lt;/p>
&lt;ul>
&lt;li>acces doar pentru citire&lt;/li>
&lt;li>acces pentru scriere&lt;/li>
&lt;li>permisiuni de execuție&lt;/li>
&lt;li>subseturi limitate de operații&lt;/li>
&lt;/ul>
&lt;p>Acest lucru permite control precis asupra a ceea ce poate face fiecare proces.&lt;/p>
&lt;hr>
&lt;h3 id="4-transferabilitate">4. Transferabilitate&lt;/h3>
&lt;p>Capabilitățile pot fi transferate între procese, de obicei prin
&lt;strong>comunicare inter-proces (IPC)&lt;/strong>.&lt;/p>
&lt;p>Acest lucru permite delegarea controlată a autorității.&lt;/p>
&lt;hr>
&lt;h2 id="obiecte-și-capabilități">Obiecte și capabilități&lt;/h2>
&lt;p>Într-un sistem bazat pe capabilități, totul este modelat ca un &lt;strong>obiect&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>regiuni de memorie&lt;/li>
&lt;li>fișiere&lt;/li>
&lt;li>dispozitive&lt;/li>
&lt;li>endpoint-uri IPC&lt;/li>
&lt;li>procese&lt;/li>
&lt;/ul>
&lt;p>O capabilitate este o referință la un obiect combinată cu un set de drepturi.&lt;/p>
&lt;p>Un proces interacționează cu sistemul invocând operații asupra obiectelor prin
intermediul capabilităților sale.&lt;/p>
&lt;p>Nu este nevoie de nume globale precum căi de fișiere sau identificatori de
dispozitive în interiorul nucleului. Orice acces este mediat prin
capabilități.&lt;/p>
&lt;hr>
&lt;h2 id="cum-funcționează-sistemele-bazate-pe-capabilități">Cum funcționează sistemele bazate pe capabilități&lt;/h2>
&lt;p>La nivel înalt, un sistem bazat pe capabilități funcționează astfel:&lt;/p>
&lt;ol>
&lt;li>Nucleul creează obiecte și capabilități.&lt;/li>
&lt;li>Fiecare proces are un &lt;strong>spațiu de capabilități&lt;/strong> (adesea numit &lt;em>CSpace&lt;/em>),
care își stochează capabilitățile.&lt;/li>
&lt;li>Un proces poate opera doar asupra obiectelor pentru care deține
capabilități.&lt;/li>
&lt;li>Capabilitățile pot fi transferate între procese prin IPC.&lt;/li>
&lt;li>Nucleul aplică toate verificările de capabilități.&lt;/li>
&lt;/ol>
&lt;p>Rezultatul este un sistem în care autoritatea este:&lt;/p>
&lt;ul>
&lt;li>explicită&lt;/li>
&lt;li>localizată&lt;/li>
&lt;li>transferabilă&lt;/li>
&lt;li>ușor de analizat&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="exemplu-deschiderea-unui-fișier">Exemplu: deschiderea unui fișier&lt;/h2>
&lt;h3 id="modelul-tradițional">Modelul tradițional&lt;/h3>
&lt;p>Într-un sistem tradițional:&lt;/p>
&lt;ol>
&lt;li>Un proces apelează &lt;code>open(&amp;quot;/etc/config&amp;quot;)&lt;/code>&lt;/li>
&lt;li>Nucleul verifică permisiunile:
&lt;ul>
&lt;li>ID-ul utilizatorului&lt;/li>
&lt;li>apartenența la grup&lt;/li>
&lt;li>biții de mod ai fișierului&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Dacă accesul este permis, este returnat un descriptor de fișier&lt;/li>
&lt;/ol>
&lt;p>Autoritatea vine din &lt;strong>stare globală și identitate&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h3 id="modelul-bazat-pe-capabilități">Modelul bazat pe capabilități&lt;/h3>
&lt;p>Într-un sistem bazat pe capabilități:&lt;/p>
&lt;ol>
&lt;li>Un proces trebuie să dețină deja o &lt;strong>capabilitate de fișier&lt;/strong>&lt;/li>
&lt;li>Folosește acea capabilitate pentru a executa operații de citire sau scriere&lt;/li>
&lt;/ol>
&lt;p>Dacă procesul nu are capabilitatea, nu poate accesa fișierul indiferent ce nume
folosește.&lt;/p>
&lt;p>Nu există niciun pas de căutare globală în interiorul nucleului.&lt;/p>
&lt;hr>
&lt;h2 id="delegare-și-privilegiu-minim">Delegare și privilegiu minim&lt;/h2>
&lt;p>Unul dintre cele mai puternice aspecte ale sistemelor bazate pe capabilități
este &lt;strong>delegarea&lt;/strong>.&lt;/p>
&lt;p>Un proces poate da altui proces un subset din autoritatea sa transferându-i o
capabilitate.&lt;/p>
&lt;p>De exemplu:&lt;/p>
&lt;ul>
&lt;li>Un server de fișiere oferă unui client acces doar pentru citire la un fișier&lt;/li>
&lt;li>Un manager de memorie acordă acces la o regiune de memorie specifică&lt;/li>
&lt;li>Un proces acordă acces la un endpoint IPC&lt;/li>
&lt;/ul>
&lt;p>Acest lucru permite &lt;strong>principiul privilegiului minim&lt;/strong>:&lt;/p>
&lt;blockquote>
&lt;p>Fiecare componentă primește doar autoritatea de care are efectiv nevoie.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="eliminarea-autorității-ambientale">Eliminarea autorității ambientale&lt;/h2>
&lt;p>Sistemele bazate pe capabilități elimină complet autoritatea ambientală.&lt;/p>
&lt;p>Nu există:&lt;/p>
&lt;ul>
&lt;li>spații de nume globale în interiorul nucleului&lt;/li>
&lt;li>acces implicit bazat pe identitate&lt;/li>
&lt;li>privilegii ascunse&lt;/li>
&lt;/ul>
&lt;p>Toată autoritatea trebuie transmisă explicit.&lt;/p>
&lt;p>Acest lucru face mult mai ușoară analiza:&lt;/p>
&lt;ul>
&lt;li>a ceea ce poate face un proces&lt;/li>
&lt;li>a modului în care autoritatea circulă prin sistem&lt;/li>
&lt;li>a locurilor în care pot apărea probleme potențiale de securitate&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="revocarea-o-problemă-dificilă">Revocarea (o problemă dificilă)&lt;/h2>
&lt;p>Una dintre provocările sistemelor bazate pe capabilități este &lt;strong>revocarea&lt;/strong>.&lt;/p>
&lt;p>După ce o capabilitate este dată unui proces, cum poate fi retrasă?&lt;/p>
&lt;p>Sisteme diferite implementează revocarea în moduri diferite:&lt;/p>
&lt;ul>
&lt;li>straturi de indirecție&lt;/li>
&lt;li>urmărirea referințelor&lt;/li>
&lt;li>arbori de capabilități&lt;/li>
&lt;li>mecanisme de versionare&lt;/li>
&lt;/ul>
&lt;p>Revocarea este o zonă importantă de cercetare și va fi explorată în etapele
ulterioare ale EriX.&lt;/p>
&lt;hr>
&lt;h2 id="sistemele-bazate-pe-capabilități-în-practică">Sistemele bazate pe capabilități în practică&lt;/h2>
&lt;p>Ideile bazate pe capabilități nu sunt noi. Mai multe sisteme le-au
implementat:&lt;/p>
&lt;ul>
&lt;li>KeyKOS / EROS&lt;/li>
&lt;li>seL4 (un micronucleu verificat formal)&lt;/li>
&lt;li>CHERI (capabilități asistate de hardware)&lt;/li>
&lt;li>Capsicum (extensii de capabilități pentru FreeBSD)&lt;/li>
&lt;/ul>
&lt;p>Aceste sisteme demonstrează că proiectele bazate pe capabilități sunt atât
practice, cât și puternice.&lt;/p>
&lt;hr>
&lt;h2 id="cum-folosește-erix-capabilitățile">Cum folosește EriX capabilitățile&lt;/h2>
&lt;p>EriX este proiectat de la început ca un &lt;strong>sistem bazat pe capabilități&lt;/strong>.&lt;/p>
&lt;p>În EriX:&lt;/p>
&lt;ul>
&lt;li>toată autoritatea este reprezentată prin capabilități&lt;/li>
&lt;li>capabilitățile sunt puternic tipizate&lt;/li>
&lt;li>capabilitățile sunt imuabile după creare&lt;/li>
&lt;li>capabilitățile sunt transferate prin IPC&lt;/li>
&lt;li>nucleul aplică nefalsificabilitatea și invariantele de siguranță&lt;/li>
&lt;/ul>
&lt;p>Nu există spații de nume globale în interiorul nucleului. Orice acces la
resurse este mediat prin capabilități.&lt;/p>
&lt;p>Acest lucru se aliniază cu obiectivul mai larg de a face autoritatea:&lt;/p>
&lt;ul>
&lt;li>explicită&lt;/li>
&lt;li>minimă&lt;/li>
&lt;li>ușor de analizat&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="de-ce-contează-asta">De ce contează asta&lt;/h2>
&lt;p>Sistemele bazate pe capabilități oferă o bază pentru construirea:&lt;/p>
&lt;ul>
&lt;li>unor sisteme mai sigure&lt;/li>
&lt;li>unor arhitecturi mai modulare&lt;/li>
&lt;li>unor sisteme mai ușor de analizat și verificat&lt;/li>
&lt;/ul>
&lt;p>Prin eliminarea autorității implicite și făcând explicit orice acces, ele
elimină clase întregi de vulnerabilități care sunt comune în sistemele
tradiționale.&lt;/p>
&lt;hr>
&lt;h2 id="ce-urmează">Ce urmează&lt;/h2>
&lt;p>Capabilitățile sunt un concept fundamental în EriX. În postările viitoare vom
explora cum sunt implementate în practică, inclusiv:&lt;/p>
&lt;ul>
&lt;li>spații de capabilități (CSpace)&lt;/li>
&lt;li>comunicare inter-proces (IPC)&lt;/li>
&lt;li>gestionarea memoriei folosind capabilități netipizate&lt;/li>
&lt;li>delegare și grafuri de autoritate&lt;/li>
&lt;/ul>
&lt;p>Înțelegerea capabilităților este primul pas spre înțelegerea restului
sistemului.&lt;/p></content></item><item><title>De ce construiesc de la zero un micronucleu bazat pe capabilități</title><link>/ro/posts/erix-article-1/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>/ro/posts/erix-article-1/</guid><description>Sistemele de operare sunt printre cele mai complexe componente informatice construite vreodată. Ele gestionează memoria, planifică execuția, controlează echipamentul și aplică granițele de securitate care protejează fiecare aplicație ce rulează pe o mașină.
Totuși, multe dintre sistemele de operare pe care ne bazăm astăzi sunt construite pe idei arhitecturale vechi de câteva decenii. Deși aceste sisteme sunt extraordinar de puternice și testate în practică, ele poartă și decenii de complexitate acumulată.</description><content>&lt;p>Sistemele de operare sunt printre cele mai complexe componente informatice
construite vreodată. Ele gestionează memoria, planifică execuția,
controlează echipamentul și aplică granițele de securitate care protejează
fiecare aplicație ce rulează pe o mașină.&lt;/p>
&lt;p>Totuși, multe dintre sistemele de operare pe care ne bazăm astăzi sunt
construite pe idei arhitecturale vechi de câteva decenii.
Deși aceste sisteme sunt extraordinar de puternice și testate în practică,
ele poartă și decenii de complexitate acumulată.&lt;/p>
&lt;p>Acest proiect explorează o direcție diferită: construirea &lt;strong>unui sistem de
operare modern, cu micronucleu bazat pe capabilități, de la zero&lt;/strong>, cu accent
puternic pe autoritate explicită, bază de calcul de încredere (TCB) minimă și
separare strictă între nucleu și spațiul utilizator.&lt;/p>
&lt;p>Acest sistem de operare se numește &lt;a href="https://git.erikinkinen.fi/erix">&lt;strong>EriX&lt;/strong>&lt;/a>.&lt;/p>
&lt;hr>
&lt;h2 id="de-ce-să-construiești-încă-un-sistem-de-operare">De ce să construiești încă un sistem de operare?&lt;/h2>
&lt;p>La prima vedere, construirea unui nou sistem de operare pare inutilă.
Sisteme mature precum Linux, Windows și BSD există deja și rulează pe
miliarde de dispozitive.&lt;/p>
&lt;p>Totuși, aceste sisteme au evoluat sub constrângeri istorice.
În timp, au acumulat straturi de abstracții, mecanisme de compatibilitate și
interfețe moștenite. Deși aceste elemente sunt adesea necesare în programele
real, ele fac și mai dificilă experimentarea unor idei arhitecturale
fundamental diferite.&lt;/p>
&lt;p>Sistemele de operare de cercetare au explorat de mult timp abordări
alternative ale proiectării sistemelor de operare. Micronucleele, sistemele bazate pe
capabilități și nucleele verificate formal au demonstrat că este posibil
să construiești sisteme mai mici, mai sigure și mai ușor de analizat.&lt;/p>
&lt;p>Scopul EriX nu este să înlocuiască sistemele de operare existente.
Mai degrabă, este o explorare a modului în care ar putea fi proiectat un
sistem de operare modern dacă pornim de la prime principii.&lt;/p>
&lt;hr>
&lt;h2 id="micronucleele-și-baza-de-calcul-de-încredere">Micronucleele și baza de calcul de încredere&lt;/h2>
&lt;p>Una dintre ideile centrale din spatele EriX este
&lt;strong>arhitectura de micronucleu&lt;/strong>.&lt;/p>
&lt;p>Nucleele monolitice tradiționale includ multe servicii direct în nucleu.
Acestea includ adesea:&lt;/p>
&lt;ul>
&lt;li>controlere de dispozitiv&lt;/li>
&lt;li>sisteme de fișiere&lt;/li>
&lt;li>stive de rețea&lt;/li>
&lt;li>subsisteme de management al proceselor&lt;/li>
&lt;/ul>
&lt;p>Deși această abordare poate fi eficientă, ea mărește și dimensiunea
&lt;strong>bazei de calcul de încredere (TCB)&lt;/strong>. TCB include fiecare componentă de cod
care trebuie să se comporte corect pentru ca sistemul să rămână sigur și
fiabil.&lt;/p>
&lt;p>Micronucleele adoptă o abordare diferită.&lt;/p>
&lt;p>Un micronucleu păstrează în nucleu doar mecanismele cele mai fundamentale,
în mod tipic:&lt;/p>
&lt;ul>
&lt;li>planificarea firelor de execuție&lt;/li>
&lt;li>gestionarea spațiului de adrese&lt;/li>
&lt;li>comunicarea inter-proces (IPC)&lt;/li>
&lt;li>gestionarea capabilităților&lt;/li>
&lt;li>tratarea întreruperilor și excepțiilor&lt;/li>
&lt;/ul>
&lt;p>Tot restul rulează în &lt;strong>spațiul utilizator&lt;/strong>, inclusiv controlere,
sisteme de fișiere și servicii de nivel mai înalt.&lt;/p>
&lt;p>Această proiectare reduce drastic cantitatea de cod în care trebuie să avem
încredere. Defectele în componentele din spațiul utilizator au șanse mai mici
să compromită întregul sistem, iar componentele individuale pot fi repornite
sau înlocuite fără a opri nucleul.&lt;/p>
&lt;hr>
&lt;h2 id="securitate-bazată-pe-capabilități">Securitate bazată pe capabilități&lt;/h2>
&lt;p>Un alt principiu central de proiectare al EriX este
&lt;strong>securitatea bazată pe capabilități&lt;/strong>.&lt;/p>
&lt;p>Majoritatea sistemelor de operare se bazează puternic pe
&lt;strong>autoritate ambientală&lt;/strong>. În aceste sisteme, procesele au adesea acces
implicit la resurse pe baza spațiilor de nume globale, a identităților de
utilizator sau a privilegiilor moștenite.&lt;/p>
&lt;p>De exemplu, un proces poate deschide un fișier doar pentru că îi cunoaște
calea, iar sistemul de operare decide că procesul are permisiunea necesară.&lt;/p>
&lt;p>Sistemele cu capabilități adoptă o abordare diferită.&lt;/p>
&lt;p>O &lt;strong>capabilitate&lt;/strong> este un token nefalsificabil care oferă acces la un obiect
specific, cu drepturi specifice. Un proces poate accesa un obiect doar dacă
posedă o capabilitate care autorizează acel acces.&lt;/p>
&lt;p>Capabilitățile au mai multe proprietăți importante:&lt;/p>
&lt;ul>
&lt;li>Reprezintă autoritatea în mod explicit.&lt;/li>
&lt;li>Pot fi transferate între procese.&lt;/li>
&lt;li>Pot restricționa operațiile la un set precis de drepturi.&lt;/li>
&lt;/ul>
&lt;p>Într-un sistem bazat pe capabilități, autoritatea circulă prin transferuri
explicite, nu prin spații de nume globale. Acest lucru face sistemul mai ușor
de analizat și ajută la eliminarea unor clase întregi de vulnerabilități de
securitate.&lt;/p>
&lt;hr>
&lt;h2 id="de-ce-rust">De ce Rust?&lt;/h2>
&lt;p>Sistemele de operare sunt scrise tradițional în C sau assembly.
Aceste limbaje oferă control precis asupra echipamentului și memoriei,
dar fac și ușoară introducerea unor bug-uri subtile.&lt;/p>
&lt;p>Bug-urile de siguranță a memoriei, cum ar fi utilizare după eliberare,
depășirile de tampon și cursele de date, au fost istoric una dintre cele mai
mari surse de vulnerabilități în programele de sistem.&lt;/p>
&lt;p>EriX este scris în principal în &lt;strong>Rust&lt;/strong>.&lt;/p>
&lt;p>Rust oferă garanții puternice privind siguranța memoriei, permițând în
același timp control de nivel jos asupra echipamentului. Modelul de proprietate
al limbajului ajută la prevenirea multor clase de bug-uri la compilare,
în timp ce blocurile &lt;code>unsafe&lt;/code> explicite fac operațiile potențial periculoase
vizibile și auditabile.&lt;/p>
&lt;p>Folosirea Rust nu elimină toate erorile posibile, dar ridică semnificativ
nivelul minim de siguranță în programarea de sistem.&lt;/p>
&lt;hr>
&lt;h2 id="un-sistem-de-operare-de-tip-cameră-curată">Un sistem de operare de tip cameră curată&lt;/h2>
&lt;p>Un aspect neobișnuit al proiectului EriX este abordarea sa de
&lt;strong>dezvoltare în cameră curată&lt;/strong>.&lt;/p>
&lt;p>Toate componentele sistemului sunt implementate în interiorul proiectului.
Nu este copiat sau incorporat cod sursă extern și nu sunt folosite biblioteci
de terță parte.&lt;/p>
&lt;p>Această constrângere are mai multe scopuri:&lt;/p>
&lt;ul>
&lt;li>Asigură că întregul sistem poate fi înțeles și auditat.&lt;/li>
&lt;li>Evită dependențele ascunse și comportamentele neașteptate.&lt;/li>
&lt;li>Forțează deciziile arhitecturale să fie explicite, nu moștenite.&lt;/li>
&lt;/ul>
&lt;p>Dezvoltarea în cameră curată transformă proiectul și într-un exercițiu educațional.
Fiecare subsistem, de la încărcător de pornire la managerul de memorie, trebuie proiectat
și implementat deliberat.&lt;/p>
&lt;hr>
&lt;h2 id="un-obiectiv-pe-termen-lung-auto-găzduire">Un obiectiv pe termen lung: auto-găzduire&lt;/h2>
&lt;p>Unul dintre obiectivele pe termen lung ale EriX este &lt;strong>auto-găzduire&lt;/strong>.&lt;/p>
&lt;p>Un sistem este considerat auto-găzduit atunci când își poate construi propriul
cod sursă folosind unelte care rulează pe sistemul însuși.&lt;/p>
&lt;p>Pentru EriX, acest lucru înseamnă că, în cele din urmă:&lt;/p>
&lt;ul>
&lt;li>compilatorul Rust rulează pe EriX&lt;/li>
&lt;li>uneltele de compilare rulează pe EriX&lt;/li>
&lt;li>întregul sistem de operare poate fi compilat nativ în EriX&lt;/li>
&lt;/ul>
&lt;p>Atingerea acestui prag necesită implementarea multor straturi de
infrastructură, inclusiv sisteme de fișiere, management de procese și un
mediu în spațiul utilizator compatibil POSIX.&lt;/p>
&lt;hr>
&lt;h2 id="de-ce-să-documentezi-parcursul">De ce să documentezi parcursul?&lt;/h2>
&lt;p>Construirea unui sistem de operare este un proces lung și complex.
Multe dintre perspectivele cele mai interesante nu apar în sistemul final,
ci în deciziile, compromisurile și greșelile întâlnite pe parcurs.&lt;/p>
&lt;p>Acest blog documentează dezvoltarea EriX pe măsură ce evoluează.
Postările viitoare vor acoperi subiecte precum:&lt;/p>
&lt;ul>
&lt;li>proiectarea unui format de imagine de pornire&lt;/li>
&lt;li>implementarea spațiilor de capabilități&lt;/li>
&lt;li>construirea unui sistem IPC&lt;/li>
&lt;li>gestionarea autorității asupra memoriei&lt;/li>
&lt;li>construirea serverelor din spațiul utilizator&lt;/li>
&lt;/ul>
&lt;p>Scopul este de a face procesul de dezvoltare transparent și educațional.&lt;/p>
&lt;hr>
&lt;h2 id="privind-înainte">Privind înainte&lt;/h2>
&lt;p>EriX este încă într-o fază timpurie. O mare parte din sistem rămâne de
construit, iar multe decizii de proiectare vor evolua fără îndoială în timp.&lt;/p>
&lt;p>Dar principiile directoare sunt deja clare:&lt;/p>
&lt;ul>
&lt;li>nucleu minim&lt;/li>
&lt;li>autoritate explicită&lt;/li>
&lt;li>securitate bazată pe capabilități&lt;/li>
&lt;li>modularitate strictă&lt;/li>
&lt;li>implementare în cameră curată&lt;/li>
&lt;/ul>
&lt;p>În următoarea postare vom explora una dintre ideile de bază ale sistemului:&lt;/p>
&lt;p>&lt;strong>ce sunt sistemele de operare bazate pe capabilități și de ce contează.&lt;/strong>&lt;/p></content></item><item><title>Despre mine</title><link>/ro/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/ro/about/</guid><description>Studiez tehnologia informației la Universitatea din Tampere. În timpul liber contribui la software liber și open source, distribuții software și proiecte de sisteme bazate pe capabilități, precum EriX Project, AES, Cutie Shell Project și Droidian GNU/Linux.
Am folosit numeroase limbaje de programare. De exemplu, C, C++, Python, JavaScript și Rust îmi sunt familiare prin muncă practică. Am, de asemenea, experiență cu limbaje de marcare uzuale, precum HTML și QML. În plus, am utilizat framework-uri software cunoscute, inclusiv Qt Framework.</description><content>&lt;p>Studiez tehnologia informației la &lt;a href="https://tuni.fi">Universitatea din Tampere&lt;/a>. În timpul liber contribui la software liber și open source, distribuții software și proiecte de sisteme bazate pe capabilități, precum EriX Project, AES, Cutie Shell Project și Droidian GNU/Linux.&lt;/p>
&lt;p>Am folosit numeroase limbaje de programare. De exemplu, C, C++, Python, JavaScript și Rust îmi sunt familiare prin muncă practică. Am, de asemenea, experiență cu limbaje de marcare uzuale, precum HTML și QML. În plus, am utilizat framework-uri software cunoscute, inclusiv Qt Framework.&lt;/p>
&lt;p>În plus, am contribuit la biblioteci software și am scris documentație de referință pentru ele. Munca mea în aceste proiecte include atât lucru în echipă cu alți contributori, cât și cercetare și implementare independentă.&lt;/p>
&lt;p>Am experiență în metodologia DevOps, care pune accent pe integrarea și automatizarea diferitelor procese de dezvoltare și livrare software. Atât în Droidian, cât și în Cutie Shell Project, patch-urile sunt integrate în ramura principală cât mai curând posibil. Adăugările de funcționalități mai mari sunt dezvoltate inițial pe ramuri de funcționalitate. Totuși, toate ramurile de funcționalitate aflate în lucru sunt rebase-uite frecvent pe ramura principală, astfel încât fuziunea lor să poată fi făcută în orice moment. Atât ramura principală, cât și ramurile de funcționalitate sunt construite și împachetate după fiecare commit. Pe lângă repository-ul de producție, există repository-ul de staging și repository-uri de funcționalitate corespunzătoare fiecărei ramuri de funcționalitate. Aceste repository-uri de pachete sunt folosite pentru a automatiza ușor crearea unui mediu de testare.&lt;/p>
&lt;p>Sunt interesat și de limbile naturale și de învățarea lor. În consecință, vorbesc mai multe limbi.&lt;/p>
&lt;h2 id="proiecte">Proiecte&lt;/h2>
&lt;p>&lt;strong>EriX Project&lt;/strong> : 2/2026-
&lt;br>&lt;img src="/img/erix.png" width="72" alt="EriX Project logo" />
&lt;br>&lt;a href="https://git.erikinkinen.fi/erix">https://git.erikinkinen.fi/erix&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Un sistem de operare cu microkernel, bazat pe capabilități și dezvoltat în cameră curată, scris integral în Rust.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>&lt;strong>AES&lt;/strong> : 1/2026-
&lt;br>&lt;a href="https://git.erikinkinen.fi/erikinkinen/AES">https://git.erikinkinen.fi/erikinkinen/AES&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;AES (Authority Evolution Simulator) este un simulator de cercetare pentru a studia cum evoluează autoritatea în timp în sisteme bazate pe capabilități.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>&lt;strong>Droidian GNU/Linux&lt;/strong> : 3/2021-
&lt;br>&lt;img src="/img/emblem-droidian.svg" width="72" alt="Droidian logo" />
&lt;br>&lt;a href="https://droidian.org/">https://droidian.org/&lt;/a> / &lt;a href="https://github.com/droidian/">https://github.com/droidian/&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Droidian este o distribuție GNU/Linux bazată pe Debian pentru dispozitive mobile. Scopul Droidian este să poată rula Debian pe telefoane Android. Acest lucru se realizează folosind tehnologii cunoscute, precum libhybris și Halium.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>Un videoclip în care prezint Droidian la Volla Community Days 2021:&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/X9bASL_Q9Y8?start=884" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>&lt;/iframe>
&lt;hr>
&lt;p>&lt;strong>Cutie Shell&lt;/strong> : 8/2021-
&lt;br>&lt;img src="/img/cutie.png" width="72" alt="Cutie Shell logo" />
&lt;br>&lt;a href="https://cutie-shell.org/">https://cutie-shell.org/&lt;/a> / &lt;a href="https://github.com/cutie-shell/">https://github.com/cutie-shell/&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Cutie Shell își propune să fie o interfață mobilă frumoasă și ușor de utilizat pentru dispozitive Linux care rulează fie Halium, fie Linux mainline. Interfața noastră este inspirată de Sailfish OS de la Jolla, dar nu ne propunem să creăm o clonă. O diferență majoră față de Sailfish OS este că sursa noastră este complet deschisă.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>Un videoclip în care prezint Cutie Shell la Volla Community Days 2023:&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/gAc3fA1edW4?start=14424" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>&lt;/iframe>
&lt;p>Un alt videoclip în care prezint progresul Cutie Shell la Volla Community Days 2024:&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/7vF5647gNbo?start=17144" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>&lt;/iframe>
&lt;h2 id="educație">Educație&lt;/h2>
&lt;p>&lt;strong>Universitatea din Tampere&lt;/strong> : 9/2022-
&lt;br>Studii de licență în Tehnologia Informației&lt;/p>
&lt;ul>
&lt;li>În prezent urmez studii de licență, iar obiectivul meu este să absolv un masterat.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Helsingin matematiikkalukio&lt;/strong> : 8/2018-5/2022
&lt;br>Învățământ secundar general finlandez&lt;/p>
&lt;h2 id="competențe-lingvistice">Competențe lingvistice&lt;/h2>
&lt;table>
&lt;tr>
&lt;td>Finlandeză&lt;/td>
&lt;td>nativ&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Engleză&lt;/td>
&lt;td>avansat&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Spaniolă&lt;/td>
&lt;td>avansat&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Catalană&lt;/td>
&lt;td>intermediar&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Suedeză&lt;/td>
&lt;td>intermediar&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Franceză&lt;/td>
&lt;td>elementar&lt;/td>
&lt;/tr>
&lt;/table></content></item></channel></rss>