"Руст ояндаи барномасозии система аст, C монтажчии нав аст" - суханронии яке аз муҳандисони пешбари Intel

Дар Саммити технологияҳои кушодаасос (OSTS) Ҷош Триплетт, як муҳандиси калони Intel, гуфт, ки ширкати ӯ манфиатдор аст, ки Rust бо забони C, ки ҳанӯз ҳам дар системаҳо ва рушди сатҳи паст бартарӣ дорад, дар ояндаи наздик "паритет" ба даст орад. Дар нутки худ Таҳти унвони "Intel ва Rust: Ояндаи барномасозии системаҳо" ӯ ҳамчунин дар бораи таърихи барномасозии системаҳо, чӣ гуна C ба забони барномасозии системаҳои пешфарз табдил ёфт, кадом хусусиятҳои Rust онро нисбат ба Си бартарӣ медиҳад ва чӣ гуна он метавонад комилан метавонад, нақл кард. иваз кардани C дар ин соҳаи барномасозӣ.

"Руст ояндаи барномасозии система аст, C монтажчии нав аст" - суханронии яке аз муҳандисони пешбари Intel

Барномасозии системавӣ таҳия ва идоракунии нармафзорест, ки ҳамчун платформа барои эҷоди замимаҳои барномавӣ хидмат мекунад, ки бо протсессор, хотираи оперативӣ, дастгоҳҳои вуруд/барорӣ ва таҷҳизоти шабакавӣ ҳамкории охиринро таъмин мекунад. Нармафзори система абстраксияи махсусро дар шакли интерфейсҳо эҷод мекунад, ки бидуни омӯхтани ҷузъиёти кори сахтафзор барои эҷоди нармафзори барномавӣ кӯмак мекунанд.

Худи Триплетт барномасозии системаро ҳамчун "ҳар чизе, ки барнома нест" муайян мекунад. Он чизҳоеро дар бар мегирад, ба монанди BIOS, нармафзори миёнаравӣ, боркунакҳо ва ядроҳои системаи амалиётӣ, намудҳои гуногуни рамзи дарунсохташудаи сатҳи паст ва татбиқи мошини виртуалӣ. Ҷолиб он аст, ки Триплетт бар ин назар аст, ки веб-браузер низ нармафзори системавӣ аст, зеро браузер кайҳо боз бештар аз “барнома” шуда, ба “платформаи мустақил барои вебсайтҳо ва барномаҳои веб” табдил ёфтааст.

Дар гузашта аксари барномаҳои системавӣ, аз ҷумла BIOS, боркунакҳо ва нармафзор, бо забони ассемблер навишта мешуданд. Дар солҳои 1960-ум таҷрибаҳо ба дастгирии сахтафзор барои забонҳои сатҳи баланд шурӯъ карданд, ки боиси эҷоди забонҳо ба монанди PL/S, BLISS, BCPL ва ALGOL 68 шуданд.

Сипас, дар солҳои 1970-ум, Деннис Ричи забони барномасозии C-ро барои системаи амалиётии Unix офаридааст. Дар забони барномасозии B сохта шудааст, ки ҳатто дастгирии чопкуниро надошт, C бо функсияҳои пурқуввати сатҳи баланд пур карда шуд, ки барои навиштани системаҳои оператсионӣ ва драйверҳо беҳтарин мувофиқ буданд. Якчанд ҷузъҳои UNIX, аз ҷумла ядрои он, дар ниҳоят дар C аз нав навишта шуданд. Баъдан, бисёр барномаҳои дигари система, аз ҷумла пойгоҳи додаҳои Oracle, қисми зиёди коди сарчашмаи Windows ва системаи амалиётии Linux, инчунин дар C навишта шуданд.

C дар ин самт дастгирии бузург гирифт. Аммо чӣ маҳз таҳиягаронро маҷбур кард, ки ба он гузаранд? Триплетт бар ин назар аст, ки барои ҳавасманд кардани таҳиягарон барои гузаштан аз як забони барномасозӣ ба забони дигар, охирин бояд аввал хусусиятҳои навро бидуни аз даст додани хусусиятҳои кӯҳна таъмин кунад.

Аввалан, забон бояд хусусиятҳои нави "ба таври оқилона таъсирбахш" пешниҳод кунад. «Вай аз ин беҳтар шуда наметавонист. Барои асоснок кардани саъю кӯшиш ва вақти муҳандисие, ки барои гузариш лозим аст, бояд ба таври назаррас беҳтар бошад "гуфт ӯ. Дар муқоиса бо забони ассемблер, C чизҳои зиёде барои пешниҳод дошт. Он рафтори то андозае бехатарро дастгирӣ кард, интиқол ва иҷрои беҳтарро бо конструксияҳои сатҳи баланд таъмин кард ва дар маҷмӯъ рамзи бештар хондашаванда тавлид кард.

Сониян, забон бояд хусусиятҳои кӯҳнаро дастгирӣ кунад, яъне дар таърихи гузариш ба Си, таҳиягарон бояд итминон дошта бошанд, ки он аз забони ассемблер камтар кор намекунад. Триплетт мефаҳмонад: "Забони нав наметавонад танҳо беҳтар бошад, он инчунин бояд хуб бошад." Илова бар он, ки зудтар ва дастгирии ҳама гуна намуди маълумоте, ки забони ассемблер истифода бурда метавонад, C инчунин он чизеро дошт, ки Триплетт "люки фирор" номид, яъне он ворид кардани рамзи забони ассемблейро дар дохили худ дастгирӣ мекард.

"Руст ояндаи барномасозии система аст, C монтажчии нав аст" - суханронии яке аз муҳандисони пешбари Intel

Триплетт бар ин назар аст, ки C ҳоло ба ҳамон забони ассемблер табдил меёбад, ки солҳо пеш буд. "C монтажчии нав аст" мегӯяд ӯ. Ҳоло таҳиягарон як забони нави сатҳи баландро меҷӯянд, ки на танҳо мушкилоти дар C ҷамъшударо ҳал мекунад, ки дигар онҳоро ҳал кардан мумкин нест, балки инчунин хусусиятҳои нави ҷолибро пешниҳод мекунад. Чунин забон бояд кофӣ ҷолиб бошад, то таҳиягарон ба он гузаред, бехатар бошад, идоракунии автоматии хотираро таъмин кунад ва ғайра.

"Ҳар забоне, ки мехоҳад аз C беҳтар бошад, бояд на танҳо муҳофизати буферии пурборро пешниҳод кунад, агар он дар ҳақиқат мехоҳад алтернативаи ҷолиб бошад. Таҳиягарон ба қобилият ва иҷроиш, навиштани коди худ фаҳмо ва дар сатрҳои камтар кор кардан таваҷҷӯҳ доранд. Масъалаҳои амниятӣ низ бояд ҳал карда шаванд. Осонии истифода ва иҷроиш ба ҳам меоянд. Чӣ қадаре ки шумо барои ноил шудан ба чизе камтар код нависед, ҳамон қадар имкони камтар ба хатогиҳо, вобаста ба амният ё не," мефаҳмонад Триплетт.

Муқоисаи Rust ва C

Ҳанӯз дар соли 2006, Грейдон Ҳоар, корманди Mozilla, ба навиштани Rust ҳамчун лоиҳаи шахсӣ оғоз кард. Ва дар соли 2009, Mozilla ба сарпарастии рушди Rust барои эҳтиёҷоти худ оғоз кард ва инчунин дастаро барои рушди минбаъдаи забон васеъ кард.

Яке аз сабабҳои шавқмандии Mozilla ба забони нав ин аст, ки Firefox дар зиёда аз 4 миллион сатри рамзи C++ навишта шуда буд ва дорои чанд осебпазирии ҷиддӣ буд. Rust бо дарназардошти амният ва ҳамоҳангӣ сохта шудааст, ки онро интихоби беҳтарин барои аз нав навиштани бисёре аз ҷузъҳои Firefox ҳамчун як қисми лоиҳаи Quantum барои пурра аз нав тарҳрезии меъмории браузер табдил медиҳад. Mozilla инчунин Rust-ро барои таҳияи Servo, як муҳаррики визуалии HTML истифода мебарад, ки дар ниҳоят муҳаррики ҳозираи Firefox-ро иваз мекунад. Бисёр ширкатҳои дигар ба истифодаи Rust барои лоиҳаҳои худ шурӯъ карданд, аз ҷумла Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu ва ғайра.

Rust яке аз масъалаҳои муҳимтарини забони Сиро ҳал мекунад.Он идоракунии автоматии хотираро пешниҳод мекунад, то таҳиягарон набояд онро барои ҳар як объекти барнома дастӣ ҷудо ва сипас озод кунанд. Он чизе, ки Rust-ро аз дигар забонҳои муосир фарқ мекунад, дар он аст, ки он коллектори партовҳоро надорад, ки ба таври худкор объектҳои истифоданашударо аз хотира хориҷ мекунад ва инчунин муҳити корӣ барои кор кардани он, ба монанди Java Runtime Environment барои Java надорад. Ба ҷои ин, Rust мафҳумҳои моликият, қарзгирӣ, истинодҳо ва умрро дорад. "Руст дорои системаи эълони зангҳо ба объект мебошад, то нишон диҳад, ки соҳиби он истифода мешавад ё танҳо қарз мегирад. Агар шумо танҳо объектро қарз гиред, компилятор инро пайгирӣ мекунад ва кафолат медиҳад, ки то он даме, ки шумо ба он истинод мекунед, аслӣ дар ҷои худ мемонад. Rust инчунин кафолат медиҳад, ки объект фавран пас аз ба итмом расидани истифода аз хотира хориҷ карда мешавад ва занги мувофиқро ба код дар вақти тартибдиҳӣ бидуни вақти иловагӣ ворид мекунад "гуфт Триплетт.

Набудани вақти кори модариро низ метавон як хусусияти мусбати Rust ҳисобид. Триплетт бар ин назар аст, ки забонҳое, ки дар он кор мекунанд, ҳамчун абзорҳои барномасозии система истифода бурдан душвор аст. Тавре ӯ мефаҳмонад: "Шумо бояд пеш аз занг задан ба ягон код ин вақти корро оғоз кунед, шумо бояд ин вақти корро барои занги функсияҳо истифода баред ва худи вақти иҷро метавонад дар лаҳзаҳои ғайричашмдошт рамзи иловагиро пушти саратон иҷро кунад."

Rust инчунин саъй мекунад, ки барномасозии бехатари мувозиро таъмин кунад. Худи ҳамон хусусиятҳое, ки хотираи онро бехатар мегардонанд, чизҳоеро пайгирӣ мекунанд, масалан, кадом ришта ба кадом объект тааллуқ дорад ва кадом объектҳоро байни риштаҳо гузаронидан мумкин аст ва кадоме ба қулф ниёз дорад.

Ҳамаи ин хусусиятҳо Rustро ба қадри кофӣ ҷалб мекунанд, ки таҳиягарон онро ҳамчун воситаи нав барои барномасозии система интихоб кунанд. Бо вуҷуди ин, дар робита ба ҳисоббарории параллелӣ, Rust ҳанӯз аз C каме ақиб мондааст.

Триплетт ният дорад як гурӯҳи махсуси корӣ таъсис диҳад, ки ба ҷорӣ намудани хусусиятҳои зарурӣ дар Rust тамаркуз хоҳад кард, то он метавонад C дар соҳаи барномасозии системаҳо комилан баробар, бартарӣ дошта бошад ва иваз кунад. ДАР ришта дар Reddit, бахшида ба суханронии худ, ӯ гуфт, ки "гурӯҳи FFI/C Parity дар марҳилаи таъсисёбӣ қарор дорад ва ҳанӯз ба кор шурӯъ накардааст", дар айни замон вай омода аст ба ҳама саволҳо посух диҳад ва дар оянда нақшаҳои фаврии худро ҳатман нашр хоҳад кард. барои инкишофи Рус хамчун як кисми ташаббуси у барои хамаи тарафхои манфиатдор.

Тахмин кардан мумкин аст, ки гурӯҳи FFI/C Parity пеш аз ҳама ба такмил додани дастгирии бисёрсоҳавӣ дар Rust, ҷорӣ намудани дастгирии BFLOAT16, формати шинокунанда, ки дар протсессори нави Intel Xeon Scalable пайдо шудааст ва инчунин ба эътидол овардани маҷмӯа тамаркуз хоҳад кард. ворид кардани код.



Манбаъ: 3dnews.ru

Илова Эзоҳ