"Umhlwa likamva lenkqubo yenkqubo, uC ngumhlanganisi omtsha" - intetho yomnye weenjineli eziphambili ze-Intel

Kwi-Open Source Technology Summi yamva nje (OSTS) Josh Triplett, injineli ephezulu e-Intel, yathi inkampani yakhe inomdla kwi-Rust ifikelela "ukulingana" ngolwimi lwe-C olusalawula iinkqubo kunye nophuhliso oluphantsi kwixesha elizayo. Kwintetho yakhe Phantsi kwesihloko esithi "I-Intel kunye nomhlwa: Ikamva leNkqubo yeNkqubo," wathetha kwakhona ngembali yenkqubo yenkqubo, indlela C yaba lulwimi lwenkqubo olumiselweyo, zeziphi iimpawu zeRust zinika inzuzo ngaphezu kweC, kwaye inokuthi iphelele njani. endaweni C kulo mmandla wodweliso lwenkqubo.

"Umhlwa likamva lenkqubo yenkqubo, uC ngumhlanganisi omtsha" - intetho yomnye weenjineli eziphambili ze-Intel

Inkqubo yenkqubo kuphuhliso kunye nolawulo lwesoftware esebenza njengeqonga lokudala usetyenziso lwezicelo, ukuqinisekisa ukuba umva unxibelelana neprosesa, i-RAM, izixhobo zokufaka / zemveliso kunye nezixhobo zenethiwekhi. Isoftware yenkqubo yenza i-abstraction ekhethekileyo ngendlela yojongano olunceda ukwenza isoftware yesicelo ngaphandle kokuphonononga kwiinkcukacha zendlela i-hardware ngokwayo esebenza ngayo.

U-Triplett ngokwakhe uchaza inkqubo yeenkqubo njenge "nantoni na engeyosicelo." Iquka izinto ezifana ne-BIOS, i-firmware, i-bootloaders kunye ne-kernel yenkqubo yokusebenza, iintlobo ezahlukeneyo zekhowudi yezinga eliphantsi, kunye nokuphunyezwa komatshini. Okubangela umdla kukuba, i-Triplett ikholelwa ukuba isikhangeli sewebhu sikwayinkqubo yesoftware, kuba isikhangeli kudala saba ngaphezulu “kwenkqubo nje”, yaba yindawo ezimeleyo “yeqonga lewebhu kunye nezicelo zewebhu.”

Ngaphambili, iinkqubo ezininzi zenkqubo, kuquka i-BIOS, i-bootloaders kunye ne-firmware, yabhalwa ngolwimi lwendibano. Kwiminyaka yoo-1960, imifuniselo yaqala ukubonelela ngenkxaso yehardware kwiilwimi ezikwinqanaba eliphezulu, nto leyo eyakhokelela ekudalweni kweelwimi ezinje ngePL/S, BLISS, BCPL, kunye neALGOL 68.

Emva koko, ngo-1970, uDennis Ritchie wenza ulwimi lwenkqubo lweC lwenkqubo yokusebenza ye-Unix. Idalwe kulwimi lwenkqubo ye-B, engazange ibe nenkxaso yokuchwetheza, i-C yazaliswa ngemisebenzi enamandla yezinga eliphezulu eyayifaneleke kakhulu ukubhala iinkqubo zokusebenza kunye nabaqhubi. Amacandelo amaninzi e-UNIX, kuquka i-kernel yayo, ekugqibeleni yabhalwa ngokutsha kwi-C. Emva koko, uninzi lwezinye iinkqubo zenkqubo, kuquka i-database ye-Oracle, uninzi lwekhowudi yomthombo weWindows, kunye nenkqubo yokusebenza ye-Linux, nazo zabhalwa kwi-C.

UC ufumene inkxaso emandla kweli cala. Kodwa yintoni kanye eyenza abaphuhlisi batshintshele kuyo? U-Triplett ukholelwa ukuba ukuze ukhuthaze abaphuhlisi ukuba batshintshe ukusuka kolunye ulwimi ukuya kolunye, lo mva kufuneka uqale unikeze iimpawu ezintsha ngaphandle kokulahlekelwa iimpawu ezindala.

Okokuqala, ulwimi kufuneka lunike izinto ezintsha "ezichukumisayo". “Ebengenakuba ngcono. Kufuneka kube ngcono kakhulu ukuthethelela umzamo kunye nexesha lobunjineli elithathayo ukwenza inguqu, ”ucacisa. Xa kuthelekiswa nolwimi lwendibano, uC wayenezinto ezininzi anokunikela ngazo. Ixhasa indlela ethile yokuziphatha ekhuselekileyo, ibonelele ngokuphatheka ngcono kunye nokusebenza ngolwakhiwo olukwinqanaba eliphezulu, kwaye ivelise ikhowudi efundeka ngakumbi ngokubanzi.

Okwesibini, ulwimi kufuneka lunike inkxaso kwiimpawu ezindala, oku kuthetha ukuba kwimbali yokutshintshela ku-C, abaphuhlisi kufuneka baqinisekise ukuba alukho ngaphantsi kolwimi lwendibano. UTriplett ucacisa esithi: “Ulwimi olutsha alunakusuka nje lube bhetele, lufanele lube lolulungileyo.” Ukongeza ekukhawulezeni nasekuxhaseni naluphi na uhlobo lwedatha olunokusetyenziswa lulwimi lwendibano, uC wayenayo into ebizwa ngokuba yi-Triplett "i-escape hatch" - oko kukuthi, ixhasa ukufaka ikhowudi yolwimi lwendibano ngaphakathi kwayo.

"Umhlwa likamva lenkqubo yenkqubo, uC ngumhlanganisi omtsha" - intetho yomnye weenjineli eziphambili ze-Intel

U-Triplett ukholelwa ukuba uC ngoku usiba lolo lwimi lwaluyindibano kwiminyaka emininzi eyadlulayo. “UC ngumhlanganisi omtsha,” utsho. Ngoku abaphuhlisi bafuna ulwimi olutsha olukwinqanaba eliphezulu olungayi kusombulula kuphela iingxaki eziye zaqokelelwa kwi-C ezingenakukwazi ukulungiswa, kodwa zibonelela ngeempawu ezintsha ezinomdla. Ulwimi olunjalo kufuneka lunyanzelise ngokwaneleyo ukwenza abaphuhlisi batshintshele kulo, kufuneka lukhuseleke, lunikeze ulawulo lwememori oluzenzekelayo, kunye nokunye okuninzi.

"Naluphi na ulwimi olufuna ukuba ngcono kuno-C kufuneka lunikeze ngaphezulu kunokhuseleko lokuphuphuma kwe-buffer ukuba lufuna ngenene ukuba lube lolunye olunyanzelisayo. Abaphuhlisi banomdla ekusebenziseni kunye nokusebenza, ikhowudi yokubhala ezichazayo kwaye yenza umsebenzi omningi kwimigca embalwa. Imiba yokhuseleko nayo ifuna ukuqwalaselwa. Ukusebenziseka ngokulula kunye nokusebenza kuhamba kunye. Ikhowudi encinci ekufuneka uyibhale ukuze ufezekise into ethile, lincinci ithuba lokuba wenze naziphi na iimpazamo, ezinxulumene nokhuseleko okanye hayi, ”ucacisa uTriplett.

Ukuthelekiswa kweRust kunye noC

Emuva ngo-2006, uGraydon Hoare, umsebenzi waseMozilla, waqala ukubhala uRust njengeprojekthi yakhe. Kwaye ngo-2009, i-Mozilla yaqala ukuxhasa uphuhliso lweRust kwiimfuno zayo, kwaye yandisa iqela ukuze liphuhlise ngakumbi ulwimi.

Esinye sezizathu zokuba iMozilla ibe nomdla kulwimi olutsha kukuba iFirefox yabhalwa ngaphezulu kwezigidi ezi-4 zemigca yekhowudi ye-C++ kwaye yayinobuthathaka obubalulekileyo. Umhlwa wakhiwe ngokhuseleko kunye ne-concurrency engqondweni, iyenza ibe lolona khetho lufanelekileyo lokuphinda ubhale izinto ezininzi zeFirefox njengenxalenye yeprojekthi yeQuantum ukuyila ngokutsha uyilo lwesikhangeli. IMozilla ikwasebenzisa iRust ukuphuhlisa iServo, i-HTML enikezela nge-injini eya kuthi ekugqibeleni ithathe indawo yenjini yangoku yeFirefox. Ezinye iinkampani ezininzi ziqalise ukusebenzisa iRust kwiiprojekthi zabo, kuquka iMicrosoft, iGoogle, i-Facebook, i-Amazon, i-Dropbox, i-Fastly, i-Chef, i-Baidu kunye nezinye ezininzi.

Umhlwa usombulula enye yezona ngxaki zibalulekileyo zolwimi C. Ibonelela ngolawulo lwenkumbulo oluzenzekelayo ngoko abaphuhlisi akufuneki babele ngesandla kwaye bakhulule kuyo yonke into ekwisicelo. Yintoni eyenza i-Rust yahluke kwezinye iilwimi zanamhlanje kukuba ayinayo inkunkuma ekhupha ngokuzenzekelayo izinto ezingasetyenziswanga kwimemori, kwaye ayinayo indawo yokusebenza efunekayo ukuze isebenze, njengeJava Runtime Environment yeJava. Endaweni yoko, iRust ineengqikelelo zobunini, ukuboleka, iireferensi, kunye nobomi. “Umhlwa unenkqubo yokubiza umnxeba kwinto ebonisa ukuba umniniyo uyayisebenzisa okanye uboleka nje. Ukuba uboleka nje into, umqokeleli uya kukugcina umkhondo woku kwaye aqinisekise ukuba eyona nto iphambili ihleli ihleli nje ubhekisa kuyo. Umhlwa uya kuqinisekisa ukuba into isusiwe kwimemori kamsinya nje yakuba igqityiwe ukusetyenziswa, ifaka umnxeba ohambelanayo kwikhowudi ngexesha lokudibanisa ngaphandle kwexesha elongezelelweyo, utshilo u-Triplett.

Ukunqongophala kwexesha lokubaleka lemveli nako kunokuqwalaselwa njengophawu oluhle lweRust. U-Triplett ukholelwa ukuba iilwimi esebenza kuzo kunzima ukuzisebenzisa njengezixhobo zokucwangcisa iinkqubo. Njengoko echaza: "Kufuneka uqalise eli xesha lokuqhuba ngaphambi kokuba ubize nayiphi na ikhowudi, kufuneka usebenzise eli xesha lokuqhuba ukubiza imisebenzi, kwaye ixesha lokuqhuba ngokwalo linokuqhuba ikhowudi eyongezelelweyo emva kwakho ngamaxesha angalindelekanga."

Umhlwa ukwazama ukubonelela ngenkqubo ehambelanayo ekhuselekileyo. Iimpawu ezifanayo ezenza imemori ikhuseleke gcina umkhondo wezinto ezifana nokuba yeyiphi intambo ephethe into kwaye zeziphi izinto ezinokugqithiswa phakathi kwemisonto kunye nezifuna ukutshixa.

Zonke ezi mpawu zenza iRust inyanzelise ngokwaneleyo ukuba abaphuhlisi bayikhethe njengesixhobo esitsha senkqubo yenkqubo. Nangona kunjalo, malunga ne-parallel computing, i-Rust isesemva kancinci kwi-C.

I-Triplett izimisele ukwenza iqela elikhethekileyo elisebenzayo eliya kugxila ekungeniseni iimpawu eziyimfuneko kwi-Rust ukuze ilingane ngokupheleleyo, idlule kwaye ithathe indawo ye-C kwinkalo yenkqubo yenkqubo. IN intambo kwiReddit, ezinikele kwintetho yakhe, wathi "iqela le-FFI / C Parity likwinkqubo yokudala kwaye alikaqalisi umsebenzi," kuba ngoku ulungele ukuphendula nayiphi na imibuzo, kwaye kwixesha elizayo ngokuqinisekileyo uya kupapasha izicwangciso zangoku. kuphuhliso lweRust njengenxalenye yenyathelo lakhe kuwo onke amaqela anomdla.

Kunokucingelwa ukuba iqela le-FFI / C Parity liya kuqala kuko konke lijolise ekuphuculeni inkxaso ye-multi-threading kwi-Rust, ukwazisa ngenkxaso ye-BFLOAT16, ifomathi yendawo edadayo evele kwi-Intel Xeon Scalable processors entsha, kunye nokuzinzisa indibano. ukufakwa kwekhowudi.



umthombo: 3dnews.ru

Yongeza izimvo