"Rust hè u futuru di a prugrammazione di u sistema, C hè u novu assembler" - un discorsu di unu di i principali ingegneri di Intel

À u recente Open Source Technology Summi (OSTS) Josh Triplett, un ingegnere senior in Intel, hà dettu chì a so cumpagnia hè interessata à Rust chì ghjunghje à "parità" cù a lingua C chì domina sempre i sistemi è u sviluppu di pocu livellu in un futuru vicinu. In u so discorsu Sottu u tìtulu "Intel and Rust: The Future of Systems Programming", hà ancu parlatu di a storia di a prugrammazione di i sistemi, cumu C hè diventatu u linguaghju di prugrammazione di u sistema predeterminatu, chì caratteristiche di Rust li dannu un vantaghju annantu à C, è cumu puderia cumplettamente. rimpiazzà C in stu campu di prugrammazione.

"Rust hè u futuru di a prugrammazione di u sistema, C hè u novu assembler" - un discorsu di unu di i principali ingegneri di Intel

A prugrammazione di u sistema hè u sviluppu è a gestione di u software chì serve cum'è una piattaforma per creà applicazioni di l'applicazioni, assicurendu chì l'ultime interagisce cù u processatore, a RAM, i dispositi di input / output è l'equipaggiu di rete. U software di u sistema crea una astrazione speciale in forma di interfacce chì aiutanu à creà un software d'applicazione senza sfondà in i dettagli di cumu u hardware stessu funziona.

Triplett stessu definisce a prugrammazione di sistemi cum'è "qualsiasi cosa chì ùn hè micca una applicazione". Include cose cum'è BIOS, firmware, bootloaders è kernels di u sistema operatore, vari tipi di codice incrustatu di bassu livellu, è implementazioni di macchine virtuali. Curiosamente, Triplett crede chì un navigatore web hè ancu un software di sistema, postu chì u navigatore hè diventatu longu fà più di "solu un prugramma", diventendu una "piattaforma autonoma per siti web è applicazioni web".

In u passatu, a maiò parte di i prugrammi di u sistema, cumpresi BIOS, bootloaders è firmware, eranu scritti in lingua assemblea. In l'anni 1960, esperimenti cuminciaru à furnisce un supportu hardware per e lingue d'altu livellu, purtendu à a creazione di lingue cum'è PL / S, BLISS, BCPL è ALGOL 68.

Dopu, in l'anni 1970, Dennis Ritchie hà criatu a lingua di prugrammazione C per u sistema operatore Unix. Creatu in u linguaghju di prugrammazione B, chì ùn hà mancu supportu di scrittura, C era pienu di putenti funzioni d'altu livellu chì sò più adattati per scrive sistemi operativi è cunduttori. Diversi cumpunenti di UNIX, cumpresu u so kernel, sò stati eventualmente riscritti in C. In seguitu, assai altri prugrammi di sistema, cumpresa a basa di dati Oracle, assai di u codice fonte di Windows, è u sistema operatore Linux, sò stati ancu scritti in C.

C hà ricevutu un sustegnu tremendu in questa direzzione. Ma chì esattamente hà fattu i sviluppatori di passà à questu? Triplett crede chì per motivà i sviluppatori per passà da una lingua di prugrammazione à l'altru, l'ultime deve prima furnisce funzioni novi senza perde e funzioni antichi.

Prima, a lingua deve offre funziunalità novi "ragiunamenti impressiunanti". "Ùn puderia micca esse megliu. Deve esse significativamente megliu per ghjustificà u sforzu è u tempu di ingegneria chì ci vole à fà a transizione ", spiega. Comparatu à a lingua di assemblea, C avia assai cose da offre. Supportava un cumpurtamentu un pocu sicuru, furnia una portabilità è un rendimentu megliu cù custruzzioni d'altu livellu, è generò un codice assai più leggibile in generale.

Siconda, a lingua deve furnisce un supportu per i vechji funziunalità, chì significa chì in a storia di a transizione à C, i sviluppatori anu da esse sicuru chì ùn era micca menu funziunale di lingua di assemblea. Triplett spiega: "Una nova lingua ùn pò micca solu esse megliu, deve ancu esse cusì bona". In più di esse più veloce è di supportà qualsiasi tipu di dati chì a lingua di assemblea puderia usà, C avia ancu ciò chì Triplett hà chjamatu "escape hatch" - vale à dì, supportava l'inserimentu di codice di lingua assemblea in sè stessu.

"Rust hè u futuru di a prugrammazione di u sistema, C hè u novu assembler" - un discorsu di unu di i principali ingegneri di Intel

Triplett crede chì C hè avà diventatu ciò chì a lingua di assemblea era parechji anni fà. "C hè u novu assembler", dichjara. Avà i sviluppatori cercanu una nova lingua d'altu livellu chì ùn solu solu risolve i prublemi chì anu accumulatu in C chì ùn ponu più esse riparati, ma offre ancu e funzioni novi eccitanti. Una tale lingua deve esse abbastanza convincente per avè i sviluppatori per passà à questu, deve esse sicura, furnisce una gestione automatica di memoria, è assai di più.

"Ogni lingua chì vole esse megliu cà C deve offre assai più cà solu una prutezzione di overflow di buffer se vole veramente esse una alternativa convincente. I sviluppatori sò interessati à l'usabilità è u rendiment, scrivendu codice chì si spiega da sè stessu è faci più travagliu in menu linee. I prublemi di sicurità anu ancu esse trattatu. A facilità d'usu è u rendiment vanu in manu. U menu codice duvete scrive per ottene qualcosa, menu opportunità avete da fà qualsiasi sbagli, legatu à a sicurità o micca ", spiega Triplett.

Comparazione di Rust è C

In u 2006, Graydon Hoare, un impiegatu di Mozilla, hà cuminciatu à scrive Rust cum'è un prughjettu persunale. È in u 2009, Mozilla hà cuminciatu à sponsorizà u sviluppu di Rust per i so bisogni, è hà ancu allargatu a squadra per sviluppà più a lingua.

Unu di i motivi chì Mozilla era interessatu in a nova lingua hè chì Firefox hè statu scrittu in più di 4 milioni di linee di codice C++ è hà avutu uni pochi di vulnerabili critichi. Rust hè statu custruitu cù a sicurità è a cuncurrenza in mente, facendu una scelta ideale per riscrive parechji cumpunenti di Firefox cum'è parte di u prughjettu Quantum per riprogettà cumplettamente l'architettura di u navigatore. Mozilla usa ancu Rust per sviluppà Servo, un mutore di rendering HTML chì eventualmente rimpiazzà l'attuale mutore di rendering Firefox. Parechje altre cumpagnie anu cuminciatu à aduprà Rust per i so prughjetti, cumpresi Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu è assai altri.

Rust risolve unu di i prublemi più impurtanti di a lingua C Offre una gestione automatica di memoria per chì i sviluppatori ùn anu micca bisognu di assignà manualmente è poi liberà per ogni ughjettu in l'applicazione. Ciò chì rende Rust sfarente da altre lingue muderne hè chì ùn hà micca un cullettore di basura chì sguassate automaticamente l'uggetti inutilizati da a memoria, nè ùn hà l'ambiente di runtime necessariu per fà u funziunamentu, cum'è Java Runtime Environment per Java. Invece, Rust hà i cuncetti di pruprietà, prestitu, referenze è vita. "Rust hà un sistema per dichjarà e chjama à un oggettu per indicà se u pruprietariu l'utiliza o solu u prestitu. Se simpricimenti pigliate in prestitu un ughjettu, u compilatore mantene a traccia di questu è assicura chì l'uriginale ferma in u locu finu à ch'ellu ci riferite. Rust hà ancu assicuratu chì l'ughjettu hè sguassatu da a memoria appena u so usu hè cumpletu, inserisce una chjama currispondente in u codice in tempu di compilazione senza tempu supplementu ", dice Triplett.

A mancanza di un runtime nativu pò ancu esse cunsideratu una funzione pusitiva di Rust. Triplett crede chì e lingue in cui funziona sò difficiuli di utilizà cum'è strumenti di prugrammazione di sistemi. Cum'ellu spiega: "Avete da inizializà stu runtime prima di pudè chjamà qualsiasi codice, duvete aduprà stu runtime per chjamà funzioni, è u runtime stessu pò eseguisce codice supplementu daretu à u vostru spinu à i tempi inespettati".

Rust s'impegna ancu à furnisce una prugrammazione parallela sicura. E listesse caratteristiche chì facenu a memoria sicura mantene a traccia di e cose cum'è quale filu pussede quale ughjettu è chì l'uggetti ponu esse passati trà i fili è chì necessitanu un serratura.

Tutte queste caratteristiche facenu Rust abbastanza convincente per i sviluppatori di sceglienu cum'è un novu strumentu per a prugrammazione di sistemi. Tuttavia, in quantu à l'informatica parallela, Rust hè sempre un pocu daretu à C.

Triplett hà intenzione di creà un gruppu di travagliu speciale chì si focalizeghja nantu à l'introduzione di e funzioni necessarie in Rust per pudè uguali, superà è rimpiazzà C in u campu di prugrammazione di sistemi. IN filu nantu à Reddit, dedicatu à u so discorsu, hà dettu chì "u gruppu FFI / C Parità hè in u prucessu di creazione è ùn hà micca ancu principiatu u travagliu", per avà hè prontu à risponde à ogni quistione, è in u futuru definitivamente pubblicà i piani immediatamenti. per u sviluppu di Rust in parte di a so iniziativa per tutti i partiti interessati.

Pò esse presumitu chì u gruppu FFI / C Parità prima di tuttu fucalizza nantu à migliurà u supportu multi-threading in Rust, intruducendu u supportu per BFLOAT16, un formatu in virgule flottante chì hè apparsu in i novi processori Intel Xeon Scalable, è ancu stabilizendu l'assemblea. inserimentu di codice.



Source: 3dnews.ru

Add a comment