Linux-ի միջուկի համար նախատեսված պատչերի նոր տարբերակը՝ Rust լեզվի աջակցությամբ

Միգել Օջեդան՝ 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

Добавить комментарий