රස්ට්-ෆෝ- ව්යාපෘතියේ කර්තෘ මිගෙල් ඔජෙඩාLinux, කර්නල් සංවර්ධකයින් විසින් සලකා බැලීම සඳහා යෝජනා කරන ලදී Linux Rust හි උපාංග ධාවක සංවර්ධනය කිරීම සඳහා වන සංරචකවල පස්වන අනුවාදය. Rust සහාය පර්යේෂණාත්මක ලෙස සලකනු ලැබේ, නමුත් දැනටමත් linux-next ශාඛාවට ඇතුළත් කර ඇති අතර කර්නල් උප පද්ධති මත වියුක්ත ස්ථර නිර්මාණය කිරීම මෙන්ම ධාවක සහ මොඩියුල ලිවීමේ කටයුතු ආරම්භ කිරීමට ප්රමාණවත් තරම් පරිණත වී ඇත. සංවර්ධනය සඳහා අරමුදල් සපයනු ලබන්නේ HTTPS සහ අන්තර්ජාල ආරක්ෂාව වැඩි දියුණු කිරීම සඳහා තාක්ෂණයන් සංවර්ධනය කිරීම ප්රවර්ධනය කරන Let's Encrypt ව්යාපෘතියේ නිර්මාතෘ වන Google සහ ISRG (අන්තර්ජාල ආරක්ෂක පර්යේෂණ කණ්ඩායම) විසිනි.
යෝජිත වෙනස්කම් මඟින් රියදුරන් සහ කර්නල් මොඩියුල සංවර්ධනය කිරීම සඳහා දෙවන භාෂාවක් ලෙස රස්ට් භාවිතා කිරීමට හැකි වන බව මතක තබා ගන්න. රස්ට් සහාය පෙරනිමියෙන් සක්රීය කර නොමැති විකල්පයක් ලෙස ඉදිරිපත් කර ඇති අතර කර්නලය සඳහා අවශ්ය ගොඩනැගීමේ පරායත්තතාවයක් ලෙස රස්ට් ඇතුළත් නොවේ. රියදුරු සංවර්ධනය සඳහා රස්ට් භාවිතා කිරීමෙන් ඔබට නිදහස් කිරීමෙන් පසු මතක ප්රවේශය, null pointer dereferences සහ buffer overruns වැනි ගැටළු වලින් නිදහස්ව අවම උත්සාහයකින් ආරක්ෂිත සහ වඩා හොඳ ධාවක නිර්මාණය කිරීමට ඔබට ඉඩ සලසයි.
සමුද්දේශ පරීක්ෂා කිරීම, වස්තු හිමිකාරිත්වය සහ වස්තුවේ ආයු කාලය (පථය) නිරීක්ෂණය කිරීම මෙන්ම කේත ක්රියාත්මක කිරීමේදී මතක ප්රවේශයේ නිවැරදි බව ඇගයීම හරහා සම්පාදනය කරන වේලාවේදී මතක ආරක්ෂාව රස්ට් තුළ සපයනු ලැබේ. මලකඩ පූර්ණ සංඛ්යා පිටාර ගැලීම් වලට එරෙහිව ආරක්ෂාව සපයයි, භාවිතයට පෙර විචල්ය අගයන් අනිවාර්යයෙන් ආරම්භ කිරීම අවශ්ය වේ, සම්මත පුස්තකාලයේ දෝෂ වඩා හොඳින් හසුරුවයි, පෙරනිමියෙන් වෙනස් කළ නොහැකි යොමු සහ විචල්යයන් පිළිබඳ සංකල්පය යොදයි, තාර්කික දෝෂ අවම කිරීම සඳහා ශක්තිමත් ස්ථිතික ටයිප් කිරීමක් ඉදිරිපත් කරයි.
පළමු, දෙවන, තෙවන සහ සිව්වන පැච් නිකුතු පිළිබඳ සාකච්ඡාවේදී මතු වූ ගැටළු විසඳීමට නව පැච් නිකුතුව දිගටම කටයුතු කරයි. නව අනුවාදයේ:
- Intel-සහාය දක්වන 0DAY/LKP බොට් මත පදනම් වූ අඛණ්ඩ ඒකාබද්ධ කිරීමේ පද්ධතියට මලකඩ සංරචක පරීක්ෂාවන් එකතු කර ඇති අතර, පරීක්ෂණ වාර්තා ප්රකාශයට පත් කිරීම ආරම්භ කර ඇත. KernelCI ස්වයංක්රීය පරීක්ෂණ පද්ධතියට රස්ට් සහාය ඒකාබද්ධ කිරීම සූදානම් වෙමින් පවතී. GitHub CI පරීක්ෂාව බහාලුම් වෙත සංක්රමණය කර ඇත.
- රස්ට් කර්නල් මොඩියුල තවදුරටත් "#![no_std]" සහ "#![feature(…)]" කූඩ ගුණාංග නිර්වචනය කිරීමට අවශ්ය නොවේ.
- තනි ගොඩනැගීමේ ඉලක්ක (.o, .s, .ll සහ .i) සඳහා සහය එක් කරන ලදී.
- කේතීකරණ මාර්ගෝපදේශ මඟින් අදහස් ("//") වෙන් කිරීම සහ කේතය ලේඛනගත කිරීම ("///") සඳහා නීති නිර්වචනය කරයි.
- is_rust_module.sh ස්ක්රිප්ට් එක නැවත සකස් කර ඇත.
- "CONFIG_CONSTRUCTORS" ක්රියාත්මක කිරීම මත පදනම් වූ ස්ථිතික (ගෝලීය බෙදාගත් විචල්ය) සමමුහුර්තකරණ ප්රාථමික සඳහා සහය එක් කරන ලදී.
- සරල කළ අගුළු කළමනාකරණය: Guard සහ GuardMut එක් පරාමිතිගත වර්ගයකට ඒකාබද්ධ කර ඇත.
- උපාංග ලියාපදිංචි කිරීමේදී අතිරේක පරාමිතීන් නිර්වචනය කිරීමේ හැකියාව සපයා ඇත.
- rw_semaphore C ව්යුහය වටා එතුමක් ලෙස ක්රියා කරන "RwSemaphore" වියුක්තකරණය එක් කරන ලදී.
- mmap භාවිතා කිරීම සඳහා, නව mm මොඩියුලයක් සහ VMA වියුක්තකරණයක් (vm_area_struct ව්යුහය වටා එතුමක්) එකතු කර ඇත.
- PL061 GPIO ධාවකය "dev_*!" මැක්රෝව භාවිතා කිරීමට මාරු කර ඇත.
- කේතයේ සාමාන්ය පිරිසිදු කිරීමක් සිදු කරන ලදී.
මූලාශ්රය: opennet.ru
