රස්ට් භාෂාව සඳහා සහය ඇති ලිනක්ස් කර්නලය සඳහා පැච් පස්වන සංස්කරණය

Rust-for-Linux ව්‍යාපෘතියේ කතුවරයා වන Miguel Ojeda, Linux කර්නල් සංවර්ධකයින් විසින් සලකා බැලීම සඳහා Rust භාෂාවෙන් උපාංග ධාවක සංවර්ධනය කිරීම සඳහා සංරචකවල පස්වන අනුවාදයක් යෝජනා කර ඇත. මලකඩ ආධාරය පර්යේෂණාත්මක ලෙස සලකනු ලැබේ, නමුත් දැනටමත් linux-ඊළඟ ශාඛාවේ ඇතුළත් කර ඇති අතර කර්නල් උප පද්ධති මත වියුක්ත ස්ථර සෑදීම මෙන්ම ධාවක සහ මොඩියුල ලිවීමේ වැඩ ආරම්භ කිරීමට ප්‍රමාණවත් ලෙස සංවර්ධනය කර ඇත. සංවර්ධනය සඳහා අරමුදල් සපයනු ලබන්නේ Google සහ ISRG (අන්තර්ජාල ආරක්ෂණ පර්යේෂණ කණ්ඩායම) විසිනි, එය Let's Encrypt ව්‍යාපෘතියේ නිර්මාතෘ වන අතර HTTPS සහ අන්තර්ජාල ආරක්ෂාව වැඩිදියුණු කිරීම සඳහා තාක්ෂණයන් සංවර්ධනය කිරීම ප්‍රවර්ධනය කරයි.

යෝජිත වෙනස්කම් මඟින් රියදුරන් සහ කර්නල් මොඩියුල සංවර්ධනය කිරීම සඳහා දෙවන භාෂාවක් ලෙස රස්ට් භාවිතා කිරීමට හැකි වන බව මතක තබා ගන්න. රස්ට් සහාය පෙරනිමියෙන් සක්‍රීය කර නොමැති විකල්පයක් ලෙස ඉදිරිපත් කර ඇති අතර කර්නලය සඳහා අවශ්‍ය ගොඩනැගීමේ පරායත්තතාවයක් ලෙස රස්ට් ඇතුළත් නොවේ. රියදුරු සංවර්ධනය සඳහා රස්ට් භාවිතා කිරීමෙන් ඔබට නිදහස් කිරීමෙන් පසු මතක ප්‍රවේශය, null pointer dereferences සහ buffer overruns වැනි ගැටළු වලින් නිදහස්ව අවම උත්සාහයකින් ආරක්ෂිත සහ වඩා හොඳ ධාවක නිර්මාණය කිරීමට ඔබට ඉඩ සලසයි.

සමුද්දේශ පරීක්ෂා කිරීම, වස්තු හිමිකාරිත්වය සහ වස්තුවේ ආයු කාලය (පථය) නිරීක්ෂණය කිරීම මෙන්ම කේත ක්‍රියාත්මක කිරීමේදී මතක ප්‍රවේශයේ නිවැරදි බව ඇගයීම හරහා සම්පාදනය කරන වේලාවේදී මතක ආරක්ෂාව රස්ට් තුළ සපයනු ලැබේ. මලකඩ පූර්ණ සංඛ්‍යා පිටාර ගැලීම් වලට එරෙහිව ආරක්ෂාව සපයයි, භාවිතයට පෙර විචල්‍ය අගයන් අනිවාර්යයෙන් ආරම්භ කිරීම අවශ්‍ය වේ, සම්මත පුස්තකාලයේ දෝෂ වඩා හොඳින් හසුරුවයි, පෙරනිමියෙන් වෙනස් කළ නොහැකි යොමු සහ විචල්‍යයන් පිළිබඳ සංකල්පය යොදයි, තාර්කික දෝෂ අවම කිරීම සඳහා ශක්තිමත් ස්ථිතික ටයිප් කිරීමක් ඉදිරිපත් කරයි.

පැච් වල නව අනුවාදය, පැච් වල පළමු, දෙවන, තුන්වන සහ හතරවන සංස්කරණයන් පිළිබඳ සාකච්ඡාවේදී කරන ලද අදහස් ඉවත් කිරීම දිගටම කරගෙන යයි. නව අනුවාදයේ:

  • Intel-සහාය දක්වන 0DAY/LKP bot මත පදනම් වූ අඛණ්ඩ ඒකාබද්ධ කිරීමේ පද්ධතියට Rust සහාය සඳහා සංරචක පරීක්ෂාව එක් කර ඇති අතර පරීක්ෂණ වාර්තා ප්‍රකාශනය ආරම්භ කර ඇත. අපි 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 ව්‍යුහය මත එතුමකි).
  • GPIO PL061 ධාවකය “dev_*!” macro භාවිතා කිරීමට මාරු කර ඇත.
  • කේතයේ සාමාන්ය පිරිසිදු කිරීමක් සිදු කරන ලදී.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න