Kehittäjä tarjoaa GNU Coreutilsin uudelleentoteutuksen Rustissa 

gnu-coreutils-rust

Rustin käyttäminen tähän projektiin auttaa nopeuttamaan tätä prosessia, koska monet mahdolliset viat on eliminoitu kokonaan.

Sylvestre Ledru alkoi työstää GNU Coreutilsin uudelleenkäyttöönottoa Rustissa COVID-19-pandemian aikana ja esitteli sen viime viikolla FOSDEM-julkaisun 2023 aikana. Uutils-niminen ponnistus on nyt pakattu useisiin Linux-jakeluihin, ja sitä käyttää myös kuuluisa sosiaalinen verkosto Yocto-projektin kautta.

Rust- ja C++-kielten vertailuissa on yhteinen säiettä: korostetaan Rustin paremmuutta C++:aan verrattuna muistin turvallisuuden suhteen. RisingWave-editori selittää, miksi hän kirjoitti alkuperäisen Cloud DBMS:nsä uudelleen tyhjästä Rustissa poistuttuaan C++-projektista.

"Rust varmistaa muistin ja säikeiden turvallisuuden käännöshetkellä ottamalla käyttöön omistussäännöt. Se ylittää RAII:n, C++:ssa yleisesti käytetyn muistinhallintamekanismin. Sillä on kaksi etua. Ensimmäinen on ilmeinen: kun Rust-kääntäjä vahvistaa ohjelmamme, meillä ei ole ajon aikana mitään segmenttivirheitä tai kilpailuolosuhteita, mikä vaatisi kymmenien tuntien virheenkorjausta, etenkin erittäin samanaikaisessa koodikannassa ja enimmäkseen asynkronisessa. Toinen on hienovaraisempi: Rustin kääntäjä yksinkertaisesti rajoittaa virhetyyppejä, mikä vähentää tiiviisti sisäkkäisiä koodinpätkiä, jotka voivat aiheuttaa tällaista viallista toimintaa. Virheiden replikointi paranee merkittävästi käyttämällä determinististä suoritusta. »

GNU Coreutils on paketti GNU-projektista joka sisältää monia Unix-tyyppisiin käyttöjärjestelmiin tarvittavia perustyökaluja: cp (kopioi tiedosto tai hakemisto), mkdir (luo hakemisto) jne. Kehittäjä tarjoaa uudelleentoteutuksen Rust-kielellä.

Yksi tavoitteista: tehdä paketista käyttökelpoinen muissa käyttöjärjestelmissä: Windows, macOS, Android, FreeBSD jne. Siirto herättää keskustelua siitä, jatkaako uusien projektien aloittamista C- ja C++-kielellä vai valitaanko yksinkertaisesti Rust-kieli.

”Rust-kieli tarjoaa oletusarvoisesti turvallisuustakuita muistinhallinnassa. Tämä ei koske C:tä ja C++:aa, joiden käyttö Mozillassa aiheuttaa muistin turvallisuusongelmia”, Sylvestre Ledru korostaa.

Bjarne Stroustrup on kuitenkin eri mieltä siitä, että Rustin ja C++:n vertailut rajoittavat ohjelmiston suojaamisen käsitteen muistin turvaamiseen:

”Turvallisuuden käsitteelle ei ole olemassa yhtä määritelmää, ja voimme saavuttaa monenlaisia ​​tietoturvatyyppejä yhdistämällä ohjelmointityylejä, tukikirjastoja ja hyödyntämällä staattista analyysiä. Bjarne Stroustrup ehdottaa siis, että se, mitä C++:sta voidaan saada ohjelmistoturvallisuuden kannalta, riippuu muun muassa kehittäjästä ja erityisesti kielen tarjoamien työkalujen tuntemuksesta, kääntäjän hallinnasta jne.

Googlen insinöörit ovat tietoisia siitä, mitä C++ tarjoaa heille mahdollisuuksina, ja ovat ryhtyneet luomaan tällä kielellä lainavarmentajaa. Se on Rust-kääntäjän ominaisuus, joka varmistaa muistin turvallisuuden muistiosoittimen varauksen hallinnan avulla.

Google-tiimi, jonka julkaisu ilmestyi edellisen vuoden kolmannella neljänneksellä, tuli johtopäätökseen että C++:n kaltainen järjestelmä ei sovellu sellaiseen harjoitukseen. Ja siihen että muistiturvallisuus voidaan saavuttaa C++:ssa ohjaimilla ohjelman suorittamisen aikana. Toisin sanoen, hitaalla C++-koodilla on mahdollista saavuttaa Rustin tasoa vastaava turvallisuustaso.

RisingWave-editorin julkaisu tulee, kun Rust erottuu muista kielistä, joita on esitelty vuosia vaihtoehtoina C:lle ja C++:lle. Itse asiassa Linux-ydin on tulossa yhä avoimemmaksi Mozillan järjestelmien ohjelmointikielelle.


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.