Հինգերորդ հրատարակության միջուկի թարմացումներ Linux Rust լեզվի աջակցությամբ

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

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

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

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

  • Intel-ի կողմից աջակցվող 0DAY/LKP բոտի վրա հիմնված անընդհատ ինտեգրման համակարգը թարմացվել է՝ Rust աջակցության բաղադրիչների ստուգմամբ, և հրապարակվել են փորձարկման զեկույցներ: Rust աջակցության ինտեգրումը KernelCI ավտոմատացված փորձարկման համակարգում նախապատրաստման փուլում է: GitHub CI փորձարկումը տեղափոխվել է կոնտեյներներ:
  • Rust միջուկի մոդուլները ազատվում են «#![no_std]» և «#![feature(…)] crate ատրիբուտները սահմանելու անհրաժեշտությունից:
  • Ավելացվել է աջակցություն միայնակ հավաքման թիրախների համար (.o, .s, .ll և .i):
  • Կոդավորման ուղեցույցները սահմանում են մեկնաբանությունների («//») և կոդի («///») փաստաթղթավորման միջև բաժանման կանոններ։
  • is_rust_module.sh սկրիպտը վերամշակվել է:
  • Ավելացվեց ստատիկ (գլոբալ համօգտագործվող փոփոխական) համաժամացման պարզունակ աջակցություն՝ հիմնված «CONFIG_CONSTRUCTORS» ներդրման վրա:
  • Պարզեցված կողպեքի կառավարում. Guard-ը և GuardMut-ը միավորված են մեկ պարամետրացված տիպի մեջ։
  • Սարքերը գրանցելիս հնարավոր է լրացուցիչ պարամետրեր սահմանել։
  • Ավելացվել է "RwSemaphore" աբստրակցիան, որը գործում է որպես rw_semaphore C կառուցվածքի փաթաթան։
  • mmap-ն օգտագործելու համար ավելացվել է նոր մմ մոդուլ և VMA աբստրակցիա (փաթաթում vm_area_struct կառուցվածքի վրա):
  • GPIO PL061 դրայվերը փոխվել է «dev_*!» մակրոյի օգտագործման համար։
  • Կատարվել է օրենսգրքի ընդհանուր մաքրում.

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster