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

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

Ինչպես patches-ի նախորդ տարբերակը, v10 թողարկումը կրճատվել է մինչև նվազագույնը, ինչը բավարար է Rust լեզվով գրված միջուկի պարզ մոդուլ ստեղծելու համար: Նախորդ տարբերակից տարբերությունները հանգում են փոքր խմբագրումների՝ kallsyms.c-ում sizeof-ը փոխարինելով ARRAY_SIZE-ով և հարմարեցնելով պատչերը v6.0-rc7 միջուկին: Ակնկալվում է, որ նվազագույն patch-ը, որի չափը կրճատվել է 40-ից մինչև 13 հազար տող կոդի, կհեշտացնի Rust-ի աջակցության ընդունումը հիմնական միջուկում: Նվազագույն աջակցություն տրամադրելուց հետո նախատեսվում է աստիճանաբար ավելացնել առկա ֆունկցիոնալությունը՝ փոխանցելով այլ փոփոխություններ Rust-for-Linux մասնաճյուղից։

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

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

Source: opennet.ru

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