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

Միգել Օջեդան՝ Rust-for-Linux նախագծի հեղինակը, առաջարկել է բաղադրիչների չորրորդ տարբերակը Rust լեզվով սարքերի դրայվերների մշակման համար՝ Linux միջուկի մշակողների կողմից քննարկման համար: Rust-ի աջակցությունը համարվում է փորձնական, բայց արդեն համաձայնեցված է ներառվելու linux-next ճյուղում և բավականաչափ հասուն է՝ սկսելու աշխատանքը միջուկի ենթահամակարգերի վրա վերացական շերտեր ստեղծելու, ինչպես նաև դրայվերներ և մոդուլներ գրելու համար: Մշակումը ֆինանսավորվում է Google-ի և ISRG-ի (Internet Security Research Group) կողմից, որը Let's Encrypt նախագծի հիմնադիրն է և նպաստում է HTTPS-ին և ինտերնետի անվտանգության բարելավման տեխնոլոգիաների զարգացմանը:

Հիշեցնենք, որ առաջարկվող փոփոխությունները թույլ են տալիս օգտագործել Rust-ը որպես երկրորդ լեզու դրայվերների և միջուկի մոդուլների մշակման համար: Rust-ի աջակցությունը ներկայացվում է որպես տարբերակ, որը միացված չէ լռելյայնորեն և չի հանգեցնում նրան, որ Rust-ը ներառվում է որպես միջուկի համար անհրաժեշտ build կախվածություն: Rust-ի օգտագործումը վարորդների մշակման համար թույլ կտա ձեզ ստեղծել ավելի անվտանգ և ավելի լավ դրայվերներ՝ նվազագույն ջանքերով, զերծ խնդիրներից, ինչպիսիք են՝ ազատելուց հետո հիշողության հասանելիությունը, զրոյական ցուցիչի մատնանշումները և բուֆերի գերակատարումները:

Հիշողության համար անվտանգ կառավարումը Rust-ում տրամադրվում է կոմպիլյացիայի ժամանակ՝ հղումների ստուգման, օբյեկտի սեփականության և օբյեկտի կյանքի ժամկետի (շրջանակի) հետևելու, ինչպես նաև կոդի կատարման ընթացքում հիշողության հասանելիության ճշգրտության գնահատման միջոցով: Rust-ը նաև ապահովում է պաշտպանություն ամբողջ թվերի արտահոսքից, պահանջում է փոփոխական արժեքների պարտադիր սկզբնավորում նախքան օգտագործումը, ստանդարտ գրադարանում ավելի լավ է լուծում սխալները, լռելյայն կիրառում է անփոփոխ հղումների և փոփոխականների հայեցակարգը, առաջարկում է ուժեղ ստատիկ մուտքագրում՝ տրամաբանական սխալները նվազագույնի հասցնելու համար:

Կարկատանների նոր տարբերակը շարունակում է վերացնել պատչերի առաջին, երկրորդ և երրորդ հրատարակությունների քննարկման ժամանակ արված մեկնաբանությունները։ Նոր տարբերակում.

  • Անցում է կատարվել Rust 1.58.0-ի կայուն թողարկումը որպես տեղեկատու կոմպիլյատոր օգտագործելուն: Ծրագրի համար անհրաժեշտ փոփոխություններից, որոնք դեռ ներառված չեն հիմնական Rust գործիքակազմում, «-Zsymbol-mangling-version=v0» դրոշը (ակնկալվում է Rust 1.59.0-ում) և «maybe_uninit_extra» ռեժիմը (ակնկալվում է Rust 1.60.0-ում): .XNUMX) նշվում են.
  • Ավելացվեց Rust-ի համապատասխան գործիքների առկայության ավտոմատ ստուգումներ և ընդլայնեց Rust-ի աջակցությունը համակարգում փորձարկելու հնարավորությունը:
  • Նոր աբստրակցիաներ են առաջարկվել Rust կոդից սարքի նույնականացման աղյուսակներին («IdArray» և «IdTable») մուտք գործելու համար:
  • Ավելացվել են շերտեր՝ ժամաչափի հետ կապված գործառույթներ մուտք գործելու համար (ժամացույցի շրջանակ):
  • Պլատֆորմի դրայվերներն այժմ սահմանվում են հատկանիշների ներդրման միջոցով:
  • Ավելացվել է նոր մակրո՝ հարթակի դրայվերների գրանցումը պարզեցնելու համար, և առաջարկվել է նոր ընդհանուր դրայվերների ձևանմուշ։
  • Ավելացվել են մակրոներ «dev_*» կառուցվածքների համար:
  • Ավելացվել է «{read,write}*_relaxed» մեթոդները IoMem տեսակի համար .
  • Հեռացրել է FileOpener հատկությունը՝ ֆայլի գործողությունները պարզեցնելու համար:
  • «ThisModule» պարամետրը ավելացվել է վարորդի գրանցման ժամանակ փոխանցված փաստարկներին:
  • Առաջարկվում է Rust լեզվով միջուկի մոդուլներ ստեղծելու ստանդարտ ձևանմուշ:

Source: opennet.ru

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