"RÅ«sa ir sistēmas programmÄ“Å”anas nākotne, C ir jaunais montētājs" - viena no vadoÅ”ajiem Intel inženieriem runā.

Nesen notikuÅ”ajā Open Source Technology Summi (OSTS) DžoÅ”s Triplets, Intel vecākais inženieris, sacÄ«ja, ka viņa uzņēmums ir ieinteresēts, lai Rust tuvākajā nākotnē sasniegtu "paritāti" ar C valodu, kas joprojām dominē sistēmās un zemā lÄ«meņa attÄ«stÄ«bā. Savā runā Ar nosaukumu "Intel un Rust: Sistēmu programmÄ“Å”anas nākotne" viņŔ runāja arÄ« par sistēmu programmÄ“Å”anas vēsturi, kā C kļuva par noklusējuma sistēmu programmÄ“Å”anas valodu, kādas Rust funkcijas dod tai priekÅ”rocÄ«bas salÄ«dzinājumā ar C un kā tā varētu pilnÄ«bā aizstāt C Å”ajā programmÄ“Å”anas jomā.

"RÅ«sa ir sistēmas programmÄ“Å”anas nākotne, C ir jaunais montētājs" - viena no vadoÅ”ajiem Intel inženieriem runā.

Sistēmas programmÄ“Å”ana ir programmatÅ«ras izstrāde un pārvaldÄ«ba, kas kalpo kā platforma lietojumprogrammu izveidei, nodroÅ”inot pēdējo mijiedarbÄ«bu ar procesoru, operatÄ«vo atmiņu, ievades/izvades ierÄ«cēm un tÄ«kla aprÄ«kojumu. Sistēmas programmatÅ«ra rada Ä«paÅ”u abstrakciju saskarņu veidā, kas palÄ«dz izveidot lietojumprogrammatÅ«ru, neiedziļinoties detaļās par to, kā pati aparatÅ«ra darbojas.

Pats Triplets sistēmu programmÄ“Å”anu definē kā "visu, kas nav lietojumprogramma". Tas ietver tādas lietas kā BIOS, programmaparatÅ«ra, sāknÄ“Å”anas ielādētāji un operētājsistēmas kodoli, dažāda veida iegults zema lÄ«meņa kods un virtuālās maŔīnas ievieÅ”ana. Interesanti, ka Triplets uzskata, ka tÄ«mekļa pārlÅ«kprogramma ir arÄ« sistēmas programmatÅ«ra, jo pārlÅ«kprogramma jau sen ir kļuvusi par vairāk nekā ā€œtikai programmuā€, kļūstot par atseviŔķu vietņu un tÄ«mekļa lietojumprogrammu platformu.

Agrāk lielākā daļa sistēmas programmu, tostarp BIOS, sāknÄ“Å”anas ielādes un programmaparatÅ«ra, tika rakstÄ«tas montāžas valodā. SeÅ”desmitajos gados tika uzsākti eksperimenti, lai nodroÅ”inātu aparatÅ«ras atbalstu augsta lÄ«meņa valodām, kā rezultātā tika izveidotas tādas valodas kā PL/S, BLISS, BCPL un ALGOL 1960.

Tad 1970. gados Deniss Ričijs izveidoja C programmÄ“Å”anas valodu Unix operētājsistēmai. Izveidots B programmÄ“Å”anas valodā, kurai pat nebija maŔīnrakstÄ«Å”anas atbalsta, C bija piepildÄ«ta ar jaudÄ«gām augsta lÄ«meņa funkcijām, kas bija vislabāk piemērotas operētājsistēmu un draiveru rakstÄ«Å”anai. Vairāki UNIX komponenti, tostarp tā kodols, galu galā tika pārrakstÄ«ti C valodā. Pēc tam daudzas citas sistēmas programmas, tostarp Oracle datubāze, liela daļa Windows pirmkoda un operētājsistēmas Linux, tika pārrakstÄ«tas arÄ« C valodā.

C ir saņēmis milzÄ«gu atbalstu Å”ajā virzienā. Bet kas tieÅ”i lika izstrādātājiem pāriet uz to? Triplets uzskata, ka, lai motivētu izstrādātājus pāriet no vienas programmÄ“Å”anas valodas uz citu, pēdējai vispirms ir jānodroÅ”ina jaunas iespējas, nezaudējot vecās iespējas.

Pirmkārt, valodai ir jāpiedāvā "saprātÄ«gi iespaidÄ«gas" jaunas funkcijas. "ViņŔ nevarētu bÅ«t labāks. Tam ir jābÅ«t ievērojami labākam, lai attaisnotu pārejas veikÅ”anai nepiecieÅ”amās pÅ«les un inženierijas laiku, ā€viņŔ skaidro. SalÄ«dzinot ar montāžas valodu, C bija daudz ko piedāvāt. Tas atbalstÄ«ja zināmā mērā tipam droÅ”u darbÄ«bu, nodroÅ”ināja labāku pārnesamÄ«bu un veiktspēju ar augsta lÄ«meņa konstrukcijām un kopumā Ä£enerēja daudz lasāmāku kodu.

Otrkārt, valodai ir jānodroÅ”ina atbalsts vecajām funkcijām, kas nozÄ«mē, ka pārejas uz C vēsturē izstrādātājiem bija jābÅ«t pārliecinātiem, ka tā ir ne mazāk funkcionāla kā montāžas valoda. Triplets skaidro: "Jauna valoda var bÅ«t ne tikai labāka, bet arÄ« tikpat laba." Papildus tam, ka C ir ātrāks un atbalsta jebkuru datu tipu, ko varētu izmantot montāžas valoda, C bija arÄ« tas, ko Triplets sauca par "aizbēgÅ”anas lÅ«ku", proti, tas atbalstÄ«ja montāžas valodas koda ievietoÅ”anu sevÄ«.

"RÅ«sa ir sistēmas programmÄ“Å”anas nākotne, C ir jaunais montētājs" - viena no vadoÅ”ajiem Intel inženieriem runā.

Triplets uzskata, ka C tagad kļūst par to, kas bija montāžas valoda pirms daudziem gadiem. "C ir jaunais montētājs," viņŔ paziņo. Tagad izstrādātāji meklē jaunu augsta lÄ«meņa valodu, kas ne tikai atrisinās C uzkrājuŔās problēmas, kuras vairs nevar novērst, bet arÄ« piedāvās aizraujoÅ”as jaunas iespējas. Šādai valodai ir jābÅ«t pietiekami saistoÅ”ai, lai izstrādātāji uz to pārietu, tai jābÅ«t droÅ”ai, jānodroÅ”ina automātiska atmiņas pārvaldÄ«ba un daudz kas cits.

ā€œJebkurai valodai, kas vēlas bÅ«t labāka par C, ir jāpiedāvā daudz vairāk nekā tikai bufera pārpildes aizsardzÄ«ba, ja tā patieŔām vēlas bÅ«t pārliecinoÅ”a alternatÄ«va. Izstrādātājus interesē lietojamÄ«ba un veiktspēja, rakstot kodu, kas ir paÅ”saprotams un veic vairāk darba mazākās rindās. Jārisina arÄ« droŔības jautājumi. VienkārÅ”a lietoÅ”ana un veiktspēja iet roku rokā. Jo mazāk koda jums ir jāraksta, lai kaut ko sasniegtu, jo mazāka iespēja pieļaut kļūdas neatkarÄ«gi no tā, vai tas ir saistÄ«ts ar droŔību vai ne,ā€ skaidro Triplets.

Rust un C salīdzinājums

Jau 2006. gadā Greidons Hoārs, Mozilla darbinieks, sāka rakstÄ«t Rust kā personisku projektu. Un 2009. gadā Mozilla sāka sponsorēt Rust izstrādi savām vajadzÄ«bām, kā arÄ« paplaÅ”ināja komandu, lai turpinātu attÄ«stÄ«t valodu.

Viens no iemesliem, kāpēc Mozilla bija ieinteresēta jaunā valodā, ir tas, ka Firefox tika rakstÄ«ts vairāk nekā 4 miljonos C++ koda rindiņu un tajā bija diezgan daudz kritisku ievainojamÄ«bu. Rust tika veidots, domājot par droŔību un vienlaicÄ«bu, padarot to par ideālu izvēli daudzu Firefox komponentu pārrakstÄ«Å”anai Quantum projekta ietvaros, lai pilnÄ«bā pārveidotu pārlÅ«kprogrammas arhitektÅ«ru. Mozilla arÄ« izmanto Rust, lai izstrādātu Servo, HTML renderÄ“Å”anas dzinēju, kas galu galā aizstās paÅ”reizējo Firefox renderÄ“Å”anas dzinēju. Daudzi citi uzņēmumi ir sākuÅ”i izmantot Rust saviem projektiem, tostarp Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu un daudzi citi.

RÅ«sa atrisina vienu no svarÄ«gākajām C valodas problēmām. Tā piedāvā automātisku atmiņas pārvaldÄ«bu, lai izstrādātājiem nebÅ«tu manuāli jāpieŔķir un pēc tam jāatbrÄ«vo tā katram lietojumprogrammas objektam. Rust atŔķiras no citām mÅ«sdienu valodām ar to, ka tajā nav atkritumu savācēja, kas automātiski izņem no atmiņas neizmantotos objektus, kā arÄ« tai nav nepiecieÅ”amās izpildlaika vides, piemēram, Java Runtime Environment for Java. Tā vietā Rust izmanto Ä«paÅ”umtiesÄ«bu, aizņēmuma, atsauces un mūža jēdzienus. ā€œRustā ir sistēma, kā deklarēt izsaukumus uz objektu, lai norādÄ«tu, vai Ä«paÅ”nieks to lieto vai tikai aizņemas. Ja jÅ«s vienkārÅ”i aizņematies objektu, kompilators tam sekos lÄ«dzi un nodroÅ”inās, ka oriÄ£ināls paliek vietā, kamēr vien uz to atsaucaties. Rust arÄ« nodroÅ”inās objekta izņemÅ”anu no atmiņas, tiklÄ«dz tā lietoÅ”ana bÅ«s pabeigta, ievietojot kodā atbilstoÅ”u izsaukumu kompilÄ“Å”anas laikā bez papildu laika,ā€ stāsta Triplets.

Vietējā izpildlaika trÅ«kumu var uzskatÄ«t arÄ« par Rust pozitÄ«vo iezÄ«mi. Triplett uzskata, ka valodas, kurās tas darbojas, ir grÅ«ti izmantot kā sistēmu programmÄ“Å”anas rÄ«kus. Kā viņŔ skaidro: "Jums ir jāinicializē Å”is izpildlaiks, lai varētu izsaukt jebkuru kodu, jums ir jāizmanto Å”is izpildlaiks, lai izsauktu funkcijas, un pats izpildlaiks var palaist papildu kodu aiz muguras neparedzētās reizēs."

Rust arÄ« cenÅ”as nodroÅ”ināt droÅ”u paralēlo programmÄ“Å”anu. Tās paÅ”as funkcijas, kas nodroÅ”ina atmiņas droŔību, ļauj izsekot, piemēram, kuram pavedienam pieder kāds objekts un kurus objektus var nodot starp pavedieniem un kuriem ir nepiecieÅ”ama bloÄ·Ä“Å”ana.

Visas Ŕīs funkcijas padara Rust pietiekami pārliecinoÅ”u, lai izstrādātāji to izvēlētos kā jaunu sistēmu programmÄ“Å”anas rÄ«ku. Tomēr paralēlās skaitļoÅ”anas ziņā Rust joprojām nedaudz atpaliek no C.

Triplett iecerējis izveidot Ä«paÅ”u darba grupu, kas koncentrēsies uz nepiecieÅ”amo funkciju ievieÅ”anu Rust, lai tas pilnÄ«bā varētu pielÄ«dzināties, pārspēt un aizstāt C sistēmu programmÄ“Å”anas jomā. IN pavediens vietnē Reddit, kas veltÄ«ta savai runai, viņŔ teica, ka "FFI/C Parity grupa ir izveides procesā un vēl nav sākusi darbu", pagaidām viņŔ ir gatavs atbildēt uz visiem jautājumiem un nākotnē noteikti publicēs tuvākos plānus. par Rust attÄ«stÄ«bu kā daļu no viņa iniciatÄ«vas visiem interesentiem.

Var pieņemt, ka FFI/C Parity grupa pirmām kārtām koncentrēsies uz Rust daudzpavedienu atbalsta uzlaboÅ”anu, BFLOAT16 ā€“ peldoŔā komata formāta atbalsta ievieÅ”anu, kas parādÄ«jies jaunajos Intel Xeon Scalable procesoros, kā arÄ« stabilizÄ“Å”anas montāžu. koda ievietoÅ”ana.



Avots: 3dnews.ru

Pievieno komentāru