Western Digital දැනටමත් Rust වලින් ලියා ඇති NVMe ධාවකයක් මත වැඩ කරමින් සිටී

RustLinux

ලිනක්ස් හි රස්ට් ඒකාබද්ධ කිරීම ප්‍රජාව සහ සංවර්ධකයින් විසින් ඉහළ මට්ටමේ පිළිගැනීමක් ලබා ඇත

"Linux Plumbers 2022" සමුළුව අතරතුර ඒක මේ දවස්වල කරගෙන යනවා, බටහිර ඩිජිටල් ඉංජිනේරුවෙක් පාලකයක් සංවර්ධනය කිරීම පිළිබඳ ඉදිරිපත් කිරීමක් ලබා දුන්නේය SSD NVM-Express සඳහා පර්යේෂණාත්මක (NVMe) රස්ට් වලින් ලියා ඇත සහ ලිනක්ස් කර්නල් මට්ටමින් ධාවනය වේ.

එසේ වුවද ව්‍යාපෘතිය තවමත් සංවර්ධනයේ මුල් අවධියේ පවතී, සිදු කරන ලද පරීක්ෂණවලින් පෙන්නුම් කළේ Rust NVMe ධාවකයේ ක්‍රියාකාරිත්වය කර්නලයේ C අකුරින් ලියා ඇති NVMe ධාවකයට අනුරූප වන බවයි.

මම Matthew Wilcox, මම NVMe පිරිවිතරයේ කතුවරුන්ගෙන් කෙනෙකි, Rust වල වටිනාකම පෙන්වීමට NVMe ධාවකයක් සෑදීමට යෝජනා කළේ මමයි. එය මගේ බලාපොරොත්තුවලටත් වඩා සාර්ථක වී ඇත. 

ඉදිරිපත් කළ වාර්තාව සම්බන්ධයෙන් වත්මන් NVMe C ධාවකය සම්පූර්ණයෙන්ම සතුටුදායක බව පැවසේ සංවර්ධකයින් සඳහා, නමුත් NVMe උප පද්ධතිය ඉතා සරල, බහුලව භාවිතා වන, ඉහළ කාර්ය සාධන අවශ්‍යතා ඇති, සංසන්දනය සඳහා ඔප්පු කළ යොමු ක්‍රියාත්මක කිරීමක් සහ විවිධ අතුරුමුහුණත් සඳහා සහය දක්වන බැවින්, රස්ට් හි ධාවක සංවර්ධනය කිරීමේ ශක්‍යතා ගවේෂණය කිරීමට හොඳ වේදිකාවකි (dev, pci, dma, blk-mq, gendisk, sysfs).

එය නිරීක්ෂණය කෙරේ Rust PCI NVMe ධාවකය දැනටමත් ක්‍රියාත්මක වීමට අවශ්‍ය ක්‍රියාකාරිත්වය සපයයි, නමුත් එය තවමත් පුළුල් භාවිතය සඳහා සූදානම් නැත, එය වෙනම වැඩිදියුණු කිරීම් අවශ්ය වේ.

අනාගතය සඳහා වන සැලසුම් වලට දැනට පවතින අනාරක්ෂිත කුට්ටි ඉවත් කිරීම ඇතුළත් වේ, උපාංගය ඉවත් කිරීමට සහ ධාවක බාගත කිරීමට සහාය, සහාය sysfs අතුරුමුහුණත, කම්මැලි ආරම්භය ක්‍රියාත්මක කරන්න, blk-mq සඳහා පාලකයක් සාදන්න, සහ queue_rq සඳහා අසමමුහුර්ත ක්‍රමලේඛන ආකෘතියක් සමඟ අත්හදා බලන්න.

තවද, අපට පෙන්වා දිය හැකිය සිදු කරන ලද අත්හදා බැලීම් සඳහා රස්ට් භාෂාවෙන් පාලකයන් සංවර්ධනය කිරීම සඳහා NCC සමූහය විසින් FreeBSD කර්නලය. උදාහරණයක් ලෙස, /dev/rustmodule වෙත ලියා ඇති දත්ත ආපසු ලබා දෙන සරල echo පාලකයක්. අත්හදා බැලීමේ මීළඟ අදියරේදී, NCC සමූහය ජාල සහ ගොනු මෙහෙයුම්වල ආරක්ෂාව වැඩි දියුණු කිරීම සඳහා රස්ට් හි මූලික කොටස් නැවත සකස් කිරීමට සලකා බලයි.

එනම්, රස්ට් තුළ සරල මොඩියුල නිර්මාණය කළ හැකි බව පෙන්වා දී ඇතත්, FreeBSD කර්නලයට රස්ට් දැඩි ලෙස ඒකාබද්ධ කිරීම සඳහා අමතර කාර්යයක් අවශ්‍ය වේ.

උදාහරණයක් ලෙස, Linux සඳහා Rust ව්‍යාපෘතිය විසින් සකස් කරන ලද ප්ලගීන වලට සමාන කර්නල් උප පද්ධති සහ ව්‍යුහයන් මත වියුක්ත ස්ථර කට්ටලයක් නිර්මාණය කිරීමේ අවශ්‍යතාවය ඔහු සඳහන් කරයි. අනාගතයේදී, අපි Illumos හරය සමඟ සමාන අත්හදා බැලීම් සිදු කිරීමට සහ Linux, BSD සහ Illumos සඳහා Rust විසින් ලියන ලද ධාවකවල භාවිතා කළ හැකි Rust හි පොදු වියුක්තයන් ඉස්මතු කිරීමට සැලසුම් කරමු.

මයික්‍රොසොෆ්ට් සහ ගූගල් වලට අනුව, ඔවුන්ගේ මෘදුකාංග නිෂ්පාදනවල ඇති දුර්වලතාවලින් 70% ක් පමණ අනාරක්ෂිත මතක කළමනාකරණය නිසාය.

රස්ට් භාෂාව භාවිතා කිරීමෙන් අවදානම් අවදානම අඩු කළ යුතුය අනාරක්ෂිත මතක හැසිරවීම නිසා ඇති වන අතර එය නිදහස් කිරීමෙන් පසු මතකයේ ප්‍රදේශයකට ප්‍රවේශ වීම සහ බෆරය පිටාර ගැලීම වැනි දෝෂ ඇතිවීම ඉවත් කරයි.

සමුද්දේශ පරීක්ෂා කිරීම, වස්තුවේ හිමිකාරිත්වය සහ වස්තුවේ ආයු කාලය (පථය) පරීක්ෂා කිරීම මෙන්ම කේතය ක්‍රියාත්මක කිරීමේදී මතක ප්‍රවේශයේ නිවැරදි බව තක්සේරු කිරීම මගින් සම්පාදනය කරන වේලාවේදී මතක ආරක්ෂාව සපයනු ලැබේ.

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

පැච් මාලාවක් ලෙස ඉදිරිපත් කර ඇති Miguel Ojeda ඔහුගේ "Rust for Linux" ධාවක පිළිබඳව ඉදිරිපත් කර ඇති කාර්යය සමඟින් ඉදිරි වැඩකටයුතුද සිදුවනු ඇති බව සඳහන් කිරීම වටී.

අවසානයේ ඔබ ඒ ගැන වැඩි විස්තර දැන ගැනීමට කැමති නම්, ඔබට විස්තර පරීක්ෂා කළ හැකිය පහත සබැඳිය.


ලිපියේ අන්තර්ගතය අපගේ මූලධර්මවලට අනුකූල වේ කතුවැකි ආචාර ධර්ම. දෝෂයක් වාර්තා කිරීමට ක්ලික් කරන්න මෙන්න.

අදහස් පළ කිරීමට ප්රථම වන්න

ඔබේ අදහස තබන්න

ඔබේ ඊ-මේල් ලිපිනය පළ කරනු නොලැබේ. අවශ්ය ක්ෂේත්ර දක්වා ඇති ලකුණ *

*

*

  1. දත්ත සඳහා වගකිව යුතු: මිගෙල් ඇන්ජල් ගැටන්
  2. දත්තවල අරමුණ: SPAM පාලනය කිරීම, අදහස් කළමනාකරණය.
  3. නීත්‍යානුකූලභාවය: ඔබේ කැමැත්ත
  4. දත්ත සන්නිවේදනය: නෛතික බැඳීමකින් හැර දත්ත තෙවන පාර්ශවයකට සන්නිවේදනය නොකෙරේ.
  5. දත්ත ගබඩා කිරීම: ඔක්සෙන්ටස් නෙට්වර්ක්ස් (EU) විසින් සත්කාරකත්වය දක්වන දත්ත සමුදාය
  6. අයිතිවාසිකම්: ඕනෑම වේලාවක ඔබට ඔබේ තොරතුරු සීමා කිරීමට, නැවත ලබා ගැනීමට සහ මකා දැමීමට හැකිය.