"Is-sadid huwa l-futur tal-ipprogrammar tas-sistema, C huwa l-assemblatur il-ġdid" - diskors minn wieħed mill-inġiniera ewlenin ta 'Intel

Fis-Summi tat-Teknoloġija Open Source (OSTS) riċenti Josh Triplett, inġinier anzjan f'Intel, qal li l-kumpanija tiegħu hija interessata li Rust tilħaq "parità" mal-lingwa Ċ li għadha tiddomina s-sistemi u l-iżvilupp ta 'livell baxx fil-futur qarib. Fid-diskors tiegħu Taħt it-titlu "Intel and Rust: The Future of Systems Programming," huwa tkellem ukoll dwar l-istorja tal-ipprogrammar tas-sistemi, kif is-C saret il-lingwa tal-ipprogrammar tas-sistemi default, liema karatteristiċi ta 'Rut jagħtuha vantaġġ fuq C, u kif tista' kompletament ibdel C f'dan il-qasam tal-ipprogrammar.

"Is-sadid huwa l-futur tal-ipprogrammar tas-sistema, C huwa l-assemblatur il-ġdid" - diskors minn wieħed mill-inġiniera ewlenin ta 'Intel

L-ipprogrammar tas-sistema huwa l-iżvilupp u l-ġestjoni ta 'softwer li jservi bħala pjattaforma għall-ħolqien ta' applikazzjonijiet ta 'applikazzjoni, li jiżgura li dawn tal-aħħar jinteraġixxu mal-proċessur, RAM, apparati ta' input/output u tagħmir tan-netwerk. Is-softwer tas-sistema joħloq estrazzjoni speċjali fil-forma ta 'interfaces li jgħinu biex jinħoloq softwer ta' applikazzjoni mingħajr ma jidħol fid-dettalji ta 'kif jaħdem il-ħardwer innifsu.

Triplett innifsu jiddefinixxi l-ipprogrammar tas-sistemi bħala "xi ħaġa li mhix applikazzjoni." Jinkludi affarijiet bħal BIOS, firmware, bootloaders u kernels tas-sistema operattiva, diversi tipi ta 'kodiċi inkorporat ta' livell baxx, u implimentazzjonijiet ta 'magni virtwali. Interessanti, Triplett temmen li web browser huwa wkoll softwer tas-sistema, peress li l-browser ilu ħafna aktar minn "sempliċement programm", u sar "pjattaforma għal websajts u applikazzjonijiet tal-web" awtonoma.

Fil-passat, il-biċċa l-kbira tal-programmi tas-sistema, inklużi BIOS, boot loaders u firmware, kienu miktuba bil-lingwa tal-assemblaġġ. Fis-snin sittin, esperimenti bdew jipprovdu appoġġ ta 'ħardwer għal lingwi ta' livell għoli, li wasslu għall-ħolqien ta 'lingwi bħal PL/S, BLISS, BCPL, u ALGOL 1960.

Imbagħad, fis-snin sebgħin, Dennis Ritchie ħoloq il-lingwa ta 'programmar C għas-sistema operattiva Unix. Maħluq fil-lingwa ta 'programmar B, li lanqas biss kellu appoġġ tat-tajping, C kien mimli b'funzjonijiet qawwija ta' livell għoli li kienu l-aktar adattati għall-kitba ta 'sistemi operattivi u sewwieqa. Diversi komponenti ta 'UNIX, inkluż il-kernel tiegħu, ġew eventwalment miktuba mill-ġdid f'Ċ. Sussegwentement, ħafna programmi oħra tas-sistema, inkluż id-database Oracle, ħafna mill-kodiċi sors tal-Windows, u s-sistema operattiva Linux, inkitbu wkoll f'Ċ.

C irċieva appoġġ tremend f'din id-direzzjoni. Imma x'ġara eżattament lill-iżviluppaturi jaqilbu għaliha? Triplett temmen li sabiex jimmotivaw lill-iżviluppaturi biex jaqilbu minn lingwa ta' programmar għal oħra, dawn tal-aħħar iridu l-ewwel jipprovdu karatteristiċi ġodda mingħajr ma jitilfu karatteristiċi qodma.

L-ewwel, il-lingwa għandha toffri karatteristiċi ġodda "raġonevolment impressjonanti". “Ma setax ikun aħjar. Għandu jkun ferm aħjar biex tiġġustifika l-isforz u l-ħin tal-inġinerija li tieħu biex issir it-tranżizzjoni,” jispjega. Meta mqabbel mal-lingwa tal-assemblaġġ, C kellu ħafna affarijiet x'joffri. Huwa appoġġja mġiba kemmxejn sigura tat-tip, ipprovda portabilità u prestazzjoni aħjar b'kostruzzjonijiet ta 'livell għoli, u ġġenerat kodiċi ħafna aktar li jinqara b'mod ġenerali.

It-tieni nett, il-lingwa għandha tipprovdi appoġġ għall-karatteristiċi qodma, li jfisser li fl-istorja tat-tranżizzjoni għal C, l-iżviluppaturi kellhom ikunu żguri li ma kienx inqas funzjonali mill-lingwa tal-assemblaġġ. Triplett tispjega: “Lingwa ġdida ma tistax tkun aħjar, trid tkun tajba wkoll.” Minbarra li kien aktar mgħaġġel u jappoġġa kwalunkwe tip ta 'dejta li l-lingwa tal-assemblaġġ tista' tuża, C kellha wkoll dak li Triplett sejjaħ "bokkaport tal-ħarba"—jiġifieri, appoġġa d-dħul tal-kodiċi tal-lingwa tal-assemblaġġ fih innifsu.

"Is-sadid huwa l-futur tal-ipprogrammar tas-sistema, C huwa l-assemblatur il-ġdid" - diskors minn wieħed mill-inġiniera ewlenin ta 'Intel

Triplett temmen li C issa qed isir dak li kien il-lingwa tal-assemblaġġ ħafna snin ilu. "C huwa l-assemblatur il-ġdid," jiddikjara. Issa l-iżviluppaturi qed ifittxu lingwa ġdida ta 'livell għoli li mhux biss issolvi l-problemi li akkumulaw f'C li ma jistgħux jibqgħu jiġu ffissati, iżda wkoll toffri karatteristiċi ġodda eċċitanti. Lingwa bħal din trid tkun konvinċenti biżżejjed biex twassal lill-iżviluppaturi biex jaqilbu għaliha, trid tkun sigura, tipprovdi ġestjoni awtomatika tal-memorja, u ħafna aktar.

“Kull lingwa li trid tkun aħjar minn C trid toffri ħafna iktar minn sempliċi protezzjoni tal-buffer overflow jekk verament trid tkun alternattiva konvinċenti. L-iżviluppaturi huma interessati fl-użabilità u l-prestazzjoni, jiktbu kodiċi li jispjega lilu nnifsu u jagħmel aktar xogħol f'inqas linji. Jeħtieġ li jiġu indirizzati wkoll kwistjonijiet ta' sigurtà. Il-faċilità ta 'użu u l-prestazzjoni jmorru id f'id. Iktar ma trid tikteb kodiċi biex tikseb xi ħaġa, inqas ikollok opportunità biex tagħmel xi żbalji, relatati mas-sigurtà jew le,” tispjega Triplett.

Tqabbil ta’ Rust u C

Lura fl-2006, Graydon Hoare, impjegat tal-Mozilla, beda jikteb Rust bħala proġett personali. U fl-2009, Mozilla bdiet tisponsorja l-iżvilupp ta 'Rut għall-bżonnijiet tagħha stess, u espandiet ukoll it-tim biex tiżviluppa aktar il-lingwa.

Waħda mir-raġunijiet għaliex Mozilla kien interessat fil-lingwa l-ġdida hija li Firefox kien miktub f'aktar minn 4 miljun linja ta 'kodiċi C++ u kellu pjuttost ftit vulnerabbiltajiet kritiċi. Rust inbniet b'moħħ is-sigurtà u l-konkorrenza, li jagħmilha għażla ideali għall-kitba mill-ġdid ta 'ħafna mill-komponenti ta' Firefox bħala parti mill-proġett Quantum biex tfassal kompletament mill-ġdid l-arkitettura tal-browser. Mozilla qed juża wkoll Rust biex jiżviluppa Servo, magna li tirrendi HTML li eventwalment se tissostitwixxi l-magna li tirrendi Firefox attwali. Ħafna kumpaniji oħra bdew jużaw Rust għall-proġetti tagħhom, inklużi Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu u ħafna aktar.

Rust issolvi waħda mill-aktar problemi importanti tal-lingwa C. Joffri ġestjoni awtomatika tal-memorja sabiex l-iżviluppaturi ma jkollhomx għalfejn jallokaw manwalment u mbagħad jeħilsu għal kull oġġett fl-applikazzjoni. Dak li jagħmel Rust differenti minn lingwi moderni oħra huwa li m'għandux kollettur taż-żibel li jneħħi awtomatikament oġġetti mhux użati mill-memorja, u lanqas m'għandux l-ambjent runtime meħtieġ biex jaħdem, bħall-Java Runtime Environment għal Java. Minflok, Rust għandu l-kunċetti ta 'sjieda, self, referenzi, u ħajja. “Rust għandu sistema biex tiddikjara sejħiet lil oġġett biex tindika jekk is-sid hux qed jużah jew sempliċement jissellef. Jekk sempliċement tissellef oġġett, il-kompilatur iżomm kont ta' dan u jiżgura li l-oriġinal jibqa' f'postu sakemm tirreferih. Is-sadid se jiżgura wkoll li l-oġġett jitneħħa mill-memorja malli l-użu tiegħu jitlesta, billi ddaħħal sejħa korrispondenti fil-kodiċi fil-ħin tal-kompilazzjoni mingħajr ħin addizzjonali,” tgħid Triplett.

In-nuqqas ta 'runtime nattiv jista' jitqies ukoll bħala karatteristika pożittiva ta 'Rut. Triplett temmen li l-lingwi li taħdem fuqhom huma diffiċli biex jintużaw bħala għodod għall-ipprogrammar tas-sistemi. Kif jispjega: "Int trid initialize dan ir-runtime qabel ma tkun tista' ċċempel kwalunkwe kodiċi, trid tuża dan ir-runtime biex issejjaħ funzjonijiet, u r-runtime innifsu jista' jmexxi kodiċi addizzjonali wara dahrek f'ħinijiet mhux mistennija."

Rust tistinka wkoll biex tipprovdi programmazzjoni parallela sigura. L-istess karatteristiċi li jagħmluha sikura tal-memorja jżommu rekord ta 'affarijiet bħal liema ħajta tippossjedi liema oġġett u liema oġġetti jistgħu jiġu mgħoddija bejn il-ħjut u liema jeħtieġu lock.

Dawn il-karatteristiċi kollha jagħmlu Rust konvinċenti biżżejjed għall-iżviluppaturi biex jagħżluha bħala għodda ġdida għall-ipprogrammar tas-sistemi. Madankollu, f'termini ta 'kompjuters paralleli, Rust għadu ftit lura C.

Triplett għandha l-ħsieb li toħloq grupp ta 'ħidma speċjali li se jiffoka fuq l-introduzzjoni tal-karatteristiċi meħtieġa f'Rut sabiex ikun jista' jkun ugwali għal kollox, jaqbeż u jissostitwixxi C fil-qasam tal-ipprogrammar tas-sistemi. IN ħajt fuq Reddit, iddedikat għad-diskors tiegħu, qal li “l-grupp FFI/C Parity jinsab fil-proċess tal-ħolqien u għadu ma bedax ix-xogħol,” għalissa lest iwieġeb kull mistoqsija, u fil-futur żgur se jippubblika pjanijiet immedjati għall-iżvilupp ta’ Rust bħala parti mill-inizjattiva tiegħu għall-partijiet interessati kollha.

Wieħed jista' jassumi li l-grupp FFI/C Parity l-ewwel nett se jiffoka fuq it-titjib tal-appoġġ multi-threading f'Rut, billi jintroduċi appoġġ għal BFLOAT16, format ta' punt li jvarja li deher fil-proċessuri l-ġodda Intel Xeon Scalable, kif ukoll l-assemblaġġ li jistabbilizza. inserzjonijiet tal-kodiċi.



Sors: 3dnews.ru

Żid kumment