Posixutils-rs 0.2.1 -projektin julkaisu on julkaistu, tavoitteena kehittää Rust-kielellä POSIX-standardissa mainittu ja sen vaatimukset täyttävä kokoelma komentoriviohjelmia (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed jne.). Kehityksen aikana käytetään mahdollisuuksien mukaan olemassa olevia laatikkopaketteja. Posixutils-rs-koodia jaetaan MIT-lisenssillä.
Projekti keskittyy ensisijaisesti POSIX.2024-spesifikaation vaatimusten täyttämiseen, eikä se suunnittele yhteensopivuutta GNU-apuohjelmien kanssa, joiden toimivuus on kirjoittajien mielestä kohtuuttoman turvonnut. Posixutils-rs aikoo kuitenkin ottaa käyttöön suosituimmat kehittyneet GNU-apuohjelmavaihtoehdot, jotka löytyvät olemassa olevista skripteistä.
Erot uutils-projektiin, joka kehittää GNU Coreutils -toteutusta Rustissa, ovat laajempi apuohjelmien valikoima, mukaan lukien muun muassa sellaisten POSIX-järjestelmäkomponenttien luominen, kuten vi, awk, bc, m4, cron ja c99-kääntäjä, sekä minimalistinen lähestymistapa , joka tarkoittaa vain vähimmäisvaatimusten tarjoamista POSIX-spesifikaatioissa tai joita on ongelmallista ilman. Posixutils-rs-sarjan ohjelmat toimitetaan aluksi itsenäisenä koodina, jota voidaan käyttää muissa projekteissa.
Tällä hetkellä 55 projektin kehittämää apuohjelmaa on POSIXin mukaisia ja testipeittovaiheessa, 22 apuohjelmaa tarjoaa tarvittavat toiminnot (mutta testikattavuutta ei ole vielä otettu käyttöön), 20 on luonnosvaiheessa ja 44 apuohjelmaa ei ole vielä tehty. vielä alkanut. Toteutetuilla toiminnoilla varustettujen apuohjelmien joukossa: awk, perusnimi, bc, cp, leikkaus, chown, päivämäärä, diff, tiedosto, etsi, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Apuohjelmia, joiden käsittely ei ole alkanut: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
Uuden julkaisun muutoksia ovat mm. awk-, m4-, ps-, realpath-, join-, time-, fuser- ja gencat-apuohjelmien lisäys, sekä alustava tuki työskentelyyn musl C -kirjastoon perustuvissa ympäristöissä ja ftw:n tarjoaminen. kirjasto valtion suojattua hakemistopuun läpikulkukilpailua varten.
Lisäksi voimme huomioida rav1d-projektin ilmoituksen, joka kehittää korkean suorituskyvyn dekooderia AV1-videokoodausformaatille, joka on kirjoitettu Rust-kielellä. Kehitys suoritetaan siirtämällä dav1d-kirjaston dekooderikoodi, jolle on ominaista korkea suorituskyky, Rustiin. Valmistettu portti on täysin yhteensopiva dav1d-kirjaston API:n kanssa. Valinta siirtää olemassa oleva kirjasto oman version kirjoittamisen sijaan selittyy halulla käyttää pohjana jo todistettua ja testattua dekooderia, jotta vältetään mahdolliset yhteensopivuusongelmat ja otetaan huomioon kaikki AV1-formaatin kanssa työskentelyn monimutkaisuudet.
Nykyisessä muodossaan valmisteltu rav1d-toteutus on suorituskyvyltään 6% jäljessä dav1d:stä, mutta jatkossa koodin optimoinnin jälkeen on tarkoitus saavuttaa suorituskyvyn pariteetti. Korkean suorituskyvyn saavuttamiseksi käytettiin lähestymistapaa, jossa primitiivisten arvojen dekoodauksen perustoiminnot toteutetaan assemblerissä vaarallisten lohkojen muodossa (käytetään dav1d:n kokoonpanokoodia), joihin tiedot vastaanotetaan virran jäsennyksellä tarkistetun jälkeen. Rustilla kirjoitetut toiminnot (aiempi kokemus videodekooderien haavoittuvuuksien tunnistamisesta osoittaa, että ongelmat ilmenevät pääasiassa korkean tason jäsennyskoodissa, ei matalan tason datatoiminnoissa).
Lähde: opennet.ru
