Միգել Օջեդան՝ Rust-for-Linux նախագծի հեղինակը, առաջարկեց թողարկել v5 բաղադրիչները Rust լեզվով սարքերի դրայվերների մշակման համար՝ Linux միջուկի մշակողների կողմից քննարկման համար: Սա պատչերի վեցերորդ հրատարակությունն է՝ հաշվի առնելով առաջին տարբերակը՝ հրապարակված առանց տարբերակի համարի։ Rust-ի աջակցությունը համարվում է փորձնական, բայց արդեն ներառված է linux-next ճյուղում և բավականաչափ զարգացած է՝ սկսելու աշխատանքը միջուկի ենթահամակարգերի վրա վերացական շերտեր ստեղծելու, ինչպես նաև դրայվերներ և մոդուլներ գրելու համար: Մշակումը ֆինանսավորվում է Google-ի և ISRG-ի (Internet Security Research Group) կողմից, որը Let's Encrypt նախագծի հիմնադիրն է և նպաստում է HTTPS-ին և ինտերնետի անվտանգության բարելավման տեխնոլոգիաների զարգացմանը:
Հիշեցնենք, որ առաջարկվող փոփոխությունները թույլ են տալիս օգտագործել Rust-ը որպես երկրորդ լեզու դրայվերների և միջուկի մոդուլների մշակման համար: Rust-ի աջակցությունը ներկայացվում է որպես տարբերակ, որը միացված չէ լռելյայնորեն և չի հանգեցնում նրան, որ Rust-ը ներառվում է որպես միջուկի համար անհրաժեշտ build կախվածություն: Rust-ի օգտագործումը վարորդների մշակման համար թույլ կտա ձեզ ստեղծել ավելի անվտանգ և ավելի լավ դրայվերներ՝ նվազագույն ջանքերով, զերծ խնդիրներից, ինչպիսիք են՝ ազատելուց հետո հիշողության հասանելիությունը, զրոյական ցուցիչի մատնանշումները և բուֆերի գերակատարումները:
Հիշողության համար անվտանգ կառավարումը Rust-ում տրամադրվում է կոմպիլյացիայի ժամանակ՝ հղումների ստուգման, օբյեկտի սեփականության և օբյեկտի կյանքի ժամկետի (շրջանակի) հետևելու, ինչպես նաև կոդի կատարման ընթացքում հիշողության հասանելիության ճշգրտության գնահատման միջոցով: Rust-ը նաև ապահովում է պաշտպանություն ամբողջ թվերի արտահոսքից, պահանջում է փոփոխական արժեքների պարտադիր սկզբնավորում նախքան օգտագործումը, ստանդարտ գրադարանում ավելի լավ է լուծում սխալները, լռելյայն կիրառում է անփոփոխ հղումների և փոփոխականների հայեցակարգը, առաջարկում է ուժեղ ստատիկ մուտքագրում՝ տրամաբանական սխալները նվազագույնի հասցնելու համար:
Կարկատանների նոր տարբերակը շարունակում է վերացնել պատչերի առաջին, երկրորդ, երրորդ, չորրորդ և հինգերորդ հրատարակությունների քննարկման ժամանակ արված մեկնաբանությունները։ Նոր տարբերակում.
- Գործիքակազմը թարմացվել է Rust 1.59.0-ը թողարկելու համար: Հատկացվող գրադարանի մի տարբերակ նույնպես համաժամանակացվում է Rust-ի նոր տարբերակի հետ՝ վերացնելով «խուճապի» վիճակի հնարավոր առաջացումը, երբ սխալներ են տեղի ունենում, օրինակ՝ հիշողությունից դուրս: Ասամբլերի ներդիրների («feature(global_asm)») օգտագործման հնարավորությունը կայունացվել է:
- Ավելացվեց Rust-ում հյուրընկալող ծրագրեր ստեղծելու աջակցություն, որոնք օգտագործվում են միջուկի կազմման ժամանակ:
- Նախապես ստեղծված թիրախային հարթակի հստակեցման ֆայլերը տրամադրելու փոխարեն, դրանք դինամիկ կերպով ստեղծվում են միջուկի կազմաձևման հիման վրա:
- Ավելացվեց HAVE_RUST միջուկի պարամետրը՝ Rust-ին աջակցող ճարտարապետությունների համար:
- Աբստրակցիաները առաջարկվում են Rust կոդում օգտագործելու համար ապարատային կեղծ պատահական թվերի գեներատորի համար:
- Թույլատրվում է սխալի կոդերի օգտագործումն առանց «Սխալ:
- Ավելացվեց «CString» տեսակը մաքսային C տողերի համար: Formatter և Buffer տեսակները համակցվել են:
- Ավելացվեցին Bool և LockInfo տեսակները:
- Պտտվող կողպեքների իրականացումը պարզեցվել է:
Source: opennet.ru