Asterinas on turvallinen, nopea ja yleiskäyttöinen käyttöjärjestelmäydin, joka tarjoaa Linux-yhteensopivan ABI:n. Se voi toimia saumattomana Linuxin korvaajana ja parantaa samalla muistiturvallisuutta ja kehittäjäystävällisyyttä.
Asterinas asettaa muistiturvallisuuden etusijalle käyttämällä Rustia ainoana ohjelmointikielenä ja rajoittamalla turvattoman Rustin käytön selkeästi määriteltyyn ja minimaaliseen Trusted Computing Baseen (TCB). Tämä innovatiivinen lähestymistapa, joka tunnetaan nimellä framekernel-arkkitehtuuri, tekee Asterinasista turvallisemman ja luotettavamman ytimen.
OsDev on kyl yks mielenkiintosimmista jutuista mitä voi tehdä, mutta ei oo vuosii aikaa näpertää yksin mitään turhaa ja en oikein ymmärrä miten toi eroaa mitenkää normaalista monoliittisesta ytimestä.
Mikä siinä on vikana? Oletko kuullut isoilta pojilta, että sitä pitää vihata, vai onko sulla oikein joku järkisyykin siihen? Kuka muka ei haluaisi muistiturvallista kerneliä, jos sen saa kuitenkin hyvällä suorituskyvyllä? Rustin muistiturvallisuus ei kuitenkaan tule suorituskyvyn kustannuksella, vaan ennemminkin koodausvaiheen päänsärkynä.
En itsekään ole tutkinut vielä kovin syvälle, mutta tuo ohjelmointikieli on ainakin yksi olennainen ero. Useimmat tietoturvaongelmat tulevat muistivuodoista ja vastaavist, mitkä ei Rustissa pitäisi olla mahdollisia.
>Over the past decade, Rust has emerged as a language of choice for people who want to write fast, machine-native software that also has strong guarantees for memory safety.
Onhan ne mahdollisia. Oon pari vuotta koodannu Rustia ihan vaan siks et sen standardikirjasto on huomattavasti laajempi ja muutamalla rivillä rustia saa enemmän aikaiseksi ku muutamal rivil c++. Muutenkin liikaa kirjottanu imperatiivisel paradigmal et jaksaisin enää nauttia siitä.
<The security of a microkernel, the speed of a monolithic kernel.
>Asterinas introduces a novel OS architecture called framekernel, which unleashes the full power of Rust to bring the best of both monolithic kernels and microkernels.
>Within the framekernel architecture, the entire OS resides in the same address space (like a monolithic kernel) and is required to be written in Rust. However, there's a twist---the kernel is partitioned in two halves: the OS Framework (akin to a microkernel) and the OS Services. Only the OS Framework is allowed to use unsafe Rust, while the OS Services must be written exclusively in safe Rust.
>As a result, the memory safety of the kernel can be reduced to that of the OS Framework, thus minimizing the Trusted Computing Base (TCB) associated with the kernel's memory safety. On the other hand, the single address space allows different parts of the kernel to communicate in the most efficient means, e.g., function calls and shared memory. Thanks to the framekernel architecture, Asterinas can offer both exceptional performance and enhanced safety.
No ei sekään varmasti ihan täydellinen ole ja kyllä siinäkin on mahdollista tehdä ohjelmointivirheitä. >This doesn’t mean that code written in Rust is entirely bulletproof or infallible. Some runtime issues, like race conditions, are still the developer’s responsibility. But Rust does take many common opportunities for software exploits off the table.
Juuh. Mutta on tossa sekin haittapuoli et jos teet jotain kirjastoja rustilla, ihmiset vaatii et käytät memory safe operations vaikka osaisit varmistaa et unsafe ops ei tuota UB. Se on vähän paska kieli tehdä mitää julkista.
No ihmiset on vähän idiootteja. Toi oli kyllä vähän tyhmä homma. Unsafe käyttäminen ei tosijaan itsessään pitäisi olla mikään edes luvaton asia, siinä vaan pitää ottaa vastuu tekemisistään. Jopa ohjekirjat opettavat käyttämään sitä ja ohjeistavat noin.
Sepä se... mut on olemas kunnon Unsafe kultti, koska voit koodata ymmärtämättäkin mikä on oikein ja turvallista. Oon vähän miettiny et Elixiril jos keksis jonkun tarpeeks ison skaalattavan projektin nii vois kirjottaa jotain... mut siin on vähä se ongelmana et mikä idea vaatis sen tason skaalaamista.
Ei nyt oikeen suju tää ideointi jostai syystä.
Vastalauta 0.7.8 Beta
Käytämme evästeitä mukauttamaan käyttökokemustasi. Jatkamalla vierailua tällä verkkosivustolla hyväksyt evästeiden käytön. Lue lisää