Linux միջուկի Rust-ի աջակցությունը բախվում է Torvalds-ի քննադատությանը

Լինուս Տորվալդսը վերանայեց այն patches-երը, որոնք կիրառում էին Linux միջուկի համար Rust լեզվով վարորդներ ստեղծելու հնարավորությունը և արեց որոշ քննադատական ​​մեկնաբանություններ:

Ամենամեծ բողոքները առաջացել են խուճապի () հավանական հնարավորության պատճառով սխալ իրավիճակներում, օրինակ, ցածր հիշողության իրավիճակում, երբ դինամիկ հիշողության բաշխման գործողությունները, ներառյալ միջուկի ներսում, կարող են ձախողվել: Տորվալդսը հայտարարեց, որ միջուկում նման մոտեցումը սկզբունքորեն անընդունելի է, և եթե այս կետը չհասկացվի, նա կարող է ամբողջությամբ զրոյացնել ցանկացած ծածկագիր, որը փորձում է օգտագործել նման մոտեցում: Մյուս կողմից, patch ծրագրավորողը համաձայնել է այս խնդրին և այն լուծելի է համարում։

Մեկ այլ խնդիր էր լողացող կետի կամ 128-բիթանոց տեսակների օգտագործման փորձերը, որոնք ընդունելի չեն այնպիսի միջավայրերի համար, ինչպիսին է Linux միջուկը: Պարզվեց, որ սա ավելի լուրջ խնդիր է, քանի որ այս պահին Rust-ի հիմնական գրադարանն անբաժանելի է և ներկայացնում է մեկ մեծ բշտիկ. չկա միայն որոշ գործառույթներ պահանջելու միջոց՝ կանխելով այս կամ այն ​​խնդրահարույց գործառույթների օգտագործումը: Խնդրի լուծումը կարող է պահանջել փոփոխություններ rust կոմպիլյատորում և գրադարաններում, թեև այս պահին թիմը դեռ չունի ռազմավարություն, թե ինչպես իրականացնել լեզվական գրադարանների մոդուլյարացում:

Բացի այդ, Թորվալդսը նշեց, որ տրամադրված վարորդի օրինակն անօգուտ էր և մեզ խորհուրդ տվեց որպես օրինակ օգտագործել որոշ վարորդ, որը լուծում է իրական խնդիրներից մեկը:

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

Նշվում է, որ Google-ը պատրաստել է Rust-ով գրված դրայվերի նախնական նախատիպը Binder-ի միջգործընթացային հաղորդակցման մեխանիզմի համար, որը թույլ կտա մանրամասն համեմատել Binder-ի ներդրման արդյունավետությունն ու անվտանգությունը C-ում և Rust-ում։ Իր ներկայիս տեսքով աշխատանքը դեռ ավարտված չէ, բայց միջուկի ֆունկցիոնալության գրեթե բոլոր հիմնական աբստրակցիաների համար, որոնք անհրաժեշտ են Binder-ի աշխատանքի համար, շերտեր են պատրաստվել Rust կոդում այս աբստրակցիաների օգտագործման համար:

Source: opennet.ru

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