د لینوکس کرنل لپاره د پیچونو دوهم نسخه د زنګ ژبې لپاره ملاتړ سره

میګیویل اوجیدا، د Rust-for-Linux پروژې لیکوال، د لینکس کرنل پراختیا کونکو لخوا په پام کې نیولو لپاره په زنګ ژبه کې د وسیلې ډرایورانو رامینځته کولو لپاره د اجزاو تازه نسخه وړاندیز کړې. د زنګ مالتړ تجربه ګڼل کیږي، مګر دمخه د لینکس-راتلونکي څانګې کې د شاملولو لپاره موافقه شوې ده. نوې نسخه هغه تبصرې له منځه وړي چې د پیچونو د لومړۍ نسخې په اړه د بحث په جریان کې ترسره شوي. لینس توروالډز دمخه په بحث کې برخه اخیستې او وړاندیز یې کړی چې د ځینې بټ عملیاتو پروسس کولو لپاره منطق بدل کړي.

په یاد ولرئ چې وړاندیز شوي بدلونونه دا ممکنه کوي چې د ډرایورانو او کرنل ماډلونو رامینځته کولو لپاره د دویمې ژبې په توګه د Rust کارول. د زنګ ملاتړ د یو اختیار په توګه وړاندې کیږي چې د ډیفالټ لخوا فعال شوی نه وي او پایله یې نه کیږي چې زنګ د کرنل لپاره د اړین جوړونې انحصار په توګه شامل شي. د ډرایور پراختیا لپاره د زنګ کارول به تاسو ته اجازه درکړي د لږترلږه هڅو سره خوندي او غوره ډرایورونه رامینځته کړئ ، له ستونزو څخه پاک وي لکه د خلاصیدو وروسته حافظې ته لاسرسی ، د نول پوائنټر ډیریفرنسونه ، او بفر اوورون.

د حافظې خوندي اداره کول په زنګ کې د تالیف په وخت کې د حوالې چیک کولو له لارې چمتو شوي ، د شیانو ملکیت تعقیب او د څیز ژوند وخت (سوق) ، او همدارنګه د کوډ اجرا کولو پرمهال د حافظې لاسرسي سموالي ارزونې له لارې. زنګ د انټیجر د زیاتیدو پروړاندې محافظت هم چمتو کوي ، د کارولو دمخه د متغیر ارزښتونو لازمي پیل ته اړتیا لري ، په معیاري کتابتون کې خطاګانې په ښه توګه اداره کوي ، د ډیفالټ لخوا د بدلیدونکي حوالې او متغیرونو مفهوم پلي کوي ، د منطقي غلطیو کمولو لپاره قوي جامد ټایپینګ وړاندیز کوي.

د پیچونو په نوې نسخه کې خورا د پام وړ بدلونونه:

  • د حافظې تخصیص کوډ په احتمالي ډول د "ویرې" حالت رامینځته کولو څخه خلاص شوی کله چې غلطۍ لکه د حافظې څخه بهر پیښیږي. د Rust alloc کتابتون یو ډول پکې شامل دی ، کوم چې د ناکامیو اداره کولو لپاره کوډ بیا کار کوي ، مګر وروستی هدف دا دی چې د کرنل لپاره اړین ټولې ب featuresې د alloc اصلي نسخې ته انتقال کړي (بدلونونه دمخه چمتو شوي او معیاري ته لیږدول شوي. د زنګ کتابتون).
  • د شپې جوړیدو پرځای ، تاسو اوس کولی شئ د بیټا ریلیزونه او د rustc کمپیلر مستحکم ریلیزونه وکاروئ ترڅو د زنګ ملاتړ سره دانه تنظیم کړئ. اوس مهال، rustc 1.54-beta1 د حوالې تالیف کونکي په توګه کارول کیږي، مګر د میاشتې په پای کې د 1.54 خوشې کیدو وروسته، دا به د حوالې تالیف کونکي په توګه ملاتړ شي.
  • د زنګ لپاره د معیاري "#[test]" خاصیت په کارولو سره د ازموینو لیکلو لپاره ملاتړ اضافه شوی او د ازموینو مستند کولو لپاره د ډاکټسټ کارولو وړتیا.
  • د مخکیني ملاتړ شوي x32_86 او ARM64 سربیره د ARM64 او RISCV جوړښتونو لپاره ملاتړ اضافه شوی.
  • د GCC Rust (د زنګ لپاره د GCC فرنټ اینډ) او rustc_codegen_gcc (د GCC لپاره rustc بیکینډ) ښه پلي کول ، کوم چې اوس ټول لومړني ازموینې تیریږي.
  • په C کې لیکل شوي د کرنل میکانیزمونو د زنګ برنامو کې د کارولو لپاره د خلاصون نوې کچه وړاندیز شوې ، لکه سور تور ونې ، د حوالې شمیرل شوي توکي ، د فایل توضیح کونکي رامینځته کول ، دندې ، فایلونه ، او I/O ویکتورونه.
  • د ډرایور پرمختیا اجزا د فایل_ عملیاتو ماډل، ماډل! میکرو، میکرو ثبتولو، او لومړني ډرایورانو (تحقیق او لرې کول) لپاره ملاتړ ښه کړی دی.
  • باینڈر اوس د فایل توضیح کونکو او LSM هکونو تیرولو ملاتړ کوي.
  • د زنګ چلونکي یو ډیر فعال مثال وړاندیز شوی - bcm2835-rng د Raspberry Pi بورډونو هارډویر تصادفي نمبر جنریټر لپاره.

برسېره پردې، په کرنل کې د زنګ کارولو پورې اړوند د ځینو شرکتونو پروژې ذکر شوي:

  • مایکروسافټ د لینکس کرنل کې د زنګ ملاتړ مدغم کولو لپاره په کار کې برخه اخیستو کې علاقه ښودلې او چمتو دی چې په راتلونکو میاشتو کې د هایپر-V لپاره د ډرایور پلي کولو چمتو کړي.
  • ARM د ARM پر بنسټ سیسټمونو لپاره د زنګ ملاتړ ښه کولو لپاره کار کوي. د زنګ پروژې دمخه د بدلونونو وړاندیز کړی چې د 64-bit ARM سیسټمونه به د ټایر 1 پلیټ فارم رامینځته کړي.
  • ګوګل په مستقیم ډول د لینکس پروژې لپاره د Rust لپاره ملاتړ چمتو کوي، په Rust کې د Binder interprocess مخابراتو میکانیزم نوی پلي کول رامینځته کوي، او په Rust کې د مختلف ډرایورانو د بیا کار کولو امکان په پام کې نیسي. د ISRG (د انټرنیټ امنیت څیړنې ګروپ) له لارې، ګوګل د لینکس کرنل کې د زنګ مالتړ ادغام لپاره د کار لپاره تمویل چمتو کړ.
  • IBM د پاور پی سی سیسټمونو لپاره د زنګ لپاره د کرنل ملاتړ پلي کړی.
  • د LSE (سیسټم ریسرچ لابراتوار) لابراتوار په زنګ کې د SPI ډرایور رامینځته کړی.

سرچینه: opennet.ru

Add a comment