"Rust is de takomst fan systeemprogrammearring, C is de nije assembler" - taspraak troch ien fan 'e liedende yngenieurs fan Intel

Op de resinte Open Source Technology Summi (OSTS) Josh Triplett, in senior yngenieur by Intel, sei dat syn bedriuw ynteressearre is yn Rust te berikken "pariteit" mei de C-taal dy't noch yn 'e heine takomst systemen dominearret en ûntwikkeling op leech nivo. Yn syn taspraak Under de titel "Intel and Rust: The Future of Systems Programming," hy spruts ek oer de skiednis fan systeemprogrammearring, hoe't C de standert systeemprogrammearringstaal waard, hokker funksjes fan Rust it in foardiel jaan boppe C, en hoe't it folslein koe ferfange C op dit mêd fan programmearring.

"Rust is de takomst fan systeemprogrammearring, C is de nije assembler" - taspraak troch ien fan 'e liedende yngenieurs fan Intel

Systeemprogrammearring is de ûntwikkeling en behear fan software dy't tsjinnet as platfoarm foar it meitsjen fan tapassingsapplikaasjes, wêrtroch't de lêste ynteraksje mei de prosessor, RAM, ynfier- / útfierapparaten en netwurkapparatuer. Systeemsoftware makket in spesjale abstraksje yn 'e foarm fan ynterfaces dy't helpe by it meitsjen fan tapassingssoftware sûnder te ferdjipjen yn' e details fan hoe't de hardware sels wurket.

Triplett sels definiearret systeemprogrammearring as "alles dat gjin applikaasje is." It omfettet dingen lykas BIOS, firmware, bootloaders en kernels fan bestjoeringssysteem, ferskate soarten ynbêde koade op leech nivo, en ymplemintaasje fan firtuele masines. Ynteressant is Triplett fan betinken dat in webblêder ek systeemsoftware is, om't de browser lang lyn mear is wurden as "gewoan in programma", en wurdt in standalone "platfoarm foar websiden en webapplikaasjes."

Yn it ferline waarden de measte systeemprogramma's, ynklusyf BIOS, bootladers en firmware, skreaun yn gearstallingstaal. Yn 'e 1960's begûnen eksperiminten hardware-stipe te leverjen foar talen op hege nivo's, wat late ta de skepping fan talen lykas PL/S, BLISS, BCPL en ALGOL 68.

Doe, yn 'e jierren '1970, makke Dennis Ritchie de programmeartaal C foar it Unix-bestjoeringssysteem. Makke yn 'e programmeartaal B, dy't net iens typstipe hie, C waard fol mei krêftige funksjes op hege nivo's dy't it bêste wiene foar it skriuwen fan bestjoeringssystemen en bestjoerders. Ferskate komponinten fan UNIX, ynklusyf syn kearn, waarden úteinlik opnij skreaun yn C. Neitiid waarden in protte oare systeemprogramma's, wêrûnder de Oracle-database, in protte fan 'e Windows-boarnekoade, en it Linux-bestjoeringssysteem, ek skreaun yn C.

C hat enoarme stipe yn dizze rjochting krigen. Mar wat krekt makke ûntwikkelders oerstap nei it? Triplett is fan betinken dat om ûntwikkelders te motivearjen om fan de iene programmeartaal nei de oare te wikseljen, moat de lêste earst nije funksjes leverje sûnder âlde funksjes te ferliezen.

Earst moat de taal "redlik yndrukwekkende" nije funksjes biede. "Hy koe net better. It moat oanmerklik better wêze om de muoite en technyske tiid te rjochtfeardigjen dy't it kostet om de oergong te meitsjen," leit er út. Yn ferliking mei assemblagetaal hie C in protte dingen te bieden. It stipe wat type-feilich gedrach, levere bettere portabiliteit en prestaasjes mei konstruksjes op hege nivo, en generearre folle mear lêsbere koade yn 't algemien.

Twadder moat de taal stipe leverje foar âlde funksjes, wat betsjut dat yn 'e skiednis fan' e oergong nei C ûntwikkelders der wis fan wêze moatte dat it net minder funksjoneel wie as assemblagetaal. Triplett leit út: "In nije taal kin net allinnich better, it moat ek like goed." Neist it rapper wêze en elk gegevenstype stypje dat assemblagetaal koe brûke, hie C ek wat Triplett in "escape hatch" neamde - nammentlik stipe it ynfoegjen fan assembly-taalkoade yn himsels.

"Rust is de takomst fan systeemprogrammearring, C is de nije assembler" - taspraak troch ien fan 'e liedende yngenieurs fan Intel

Triplett is fan betinken dat C no wurdt wat assemblagetaal in protte jierren lyn wie. "C is de nije assembler," hy ferklearret. No sykje ûntwikkelders nei in nije taal op hege nivo dy't net allinich de problemen oplosse sil dy't sammele binne yn C dy't net mear kinne wurde reparearre, mar ek spannende nije funksjes oanbiede. Sa'n taal moat twingend genôch wêze om ûntwikkelders derop oer te krijen, moat feilich wêze, automatysk ûnthâldbehear leverje, en folle mear.

“Elke taal dy’t better wêze wol as C moat folle mear biede dan allinnich bufferoerlêstbeskerming as it wirklik in twingend alternatyf wol wêze wol. Untwikkelders binne ynteressearre yn brûkberens en prestaasjes, skriuwe koade dy't sels ferklearjend is en mear wurk docht yn minder rigels. Feiligensproblemen moatte ek oanpakt wurde. Gebrûksgemak en prestaasjes geane hân yn hân. Hoe minder koade jo moatte skriuwe om wat te berikken, hoe minder kâns jo hawwe om flaters te meitsjen, feiligensrelatearre of net, "ferklearret Triplett.

Fergeliking fan Rust en C

Werom yn 2006 begon Graydon Hoare, in Mozilla-meiwurker, Rust te skriuwen as in persoanlik projekt. En yn 2009 begon Mozilla de ûntwikkeling fan Rust te sponsorjen foar har eigen behoeften, en wreide ek it team út om de taal fierder te ûntwikkeljen.

Ien fan 'e redenen wêrom't Mozilla ynteressearre wie yn' e nije taal, is dat Firefox skreaun is yn mear as 4 miljoen rigels C++-koade en hie nochal wat krityske kwetsberens. Rust waard boud mei feiligens en tagelyk yn gedachten, wêrtroch it in ideale kar is foar it herskriuwen fan in protte fan Firefox's komponinten as ûnderdiel fan it Quantum-projekt om de arsjitektuer fan 'e browser folslein opnij te ûntwerpen. Mozilla brûkt Rust ek om Servo te ûntwikkeljen, in HTML-renderingmotor dy't úteinlik de hjoeddeistige Firefox-renderingmotor sil ferfange. In protte oare bedriuwen binne begon te brûken Rust foar har projekten, ynklusyf Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu en in protte mear.

Rust lost ien fan 'e wichtichste problemen fan 'e C-taal op. It biedt automatysk ûnthâldbehear sadat ûntwikkelders it net manuell hoege te allocearjen en it dan frij te meitsjen foar elk objekt yn 'e applikaasje. Wat Rust oars makket fan oare moderne talen is dat it gjin garbage collector hat dy't automatysk net brûkte objekten út it ûnthâld verwijdert, noch hat it de runtime-omjouwing dy't nedich is om it te wurkjen, lykas de Java Runtime Environment foar Java. Ynstee hat Rust de begripen fan eigendom, lienen, referinsjes en libben. “Rust hat in systeem foar it ferklearjen fan oproppen nei in objekt om oan te jaan oft de eigner it brûkt of gewoan lient. As jo ​​gewoan in objekt liene, sil de gearstaller dit byhâlde en soargje dat it orizjineel op syn plak bliuwt sa lang as jo it ferwize. Rust sil ek soargje dat it objekt wurdt fuortsmiten út it ûnthâld sa gau as it gebrûk is foltôge, ynfoegje in oerienkommende oprop yn de koade op kompilaasje tiid sûnder ekstra tiid, "seit Triplett.

It ûntbrekken fan in native runtime kin ek wurde beskôge as in positive skaaimerk fan Rust. Triplett is fan betinken dat de talen wêrop it rint, lestich binne te brûken as ark foar systeemprogrammearring. As hy ferklearret: "Jo moatte dizze runtime inisjalisearje foardat jo in koade kinne neame, jo moatte dizze runtime brûke om funksjes op te roppen, en de runtime sels kin op ûnferwachte tiden ekstra koade efter jo rêch útfiere."

Rust stribbet ek nei feilige parallelle programmearring. Deselde funksjes dy't it ûnthâld feilich meitsje, hâlde dingen by, lykas hokker tried hokker objekt hat en hokker objekten kinne wurde trochjûn tusken triedden en dy't in slot nedich binne.

Al dizze funksjes meitsje Rust twingend genôch foar ûntwikkelders om it te kiezen as in nij ark foar systeemprogrammearring. Yn termen fan parallelle komputer is Rust lykwols noch in bytsje efter C.

Triplett is fan doel in meitsje in spesjale wurkgroep dy't sil rjochtsje op it ynfieren fan de nedige funksjes yn Rust, sadat it kin folslein lykweardich, oertreffe en ferfange C op it mêd fan systemen programmearring. YN thread op Reddit. foar de ûntwikkeling fan Rust as ûnderdiel fan syn inisjatyf foar alle belangstellenden.

It kin oannommen wurde dat de FFI / C Parity-groep har yn it foarste plak sil rjochtsje op it ferbetterjen fan multi-threading-stipe yn Rust, yntrodusearje fan stipe foar BFLOAT16, in driuwend puntformaat dat is ferskynd yn 'e nije Intel Xeon Scalable-prosessoren, en ek stabilisearjen fan gearstalling koade ynfoegings.



Boarne: 3dnews.ru

Add a comment