په Rust کې د لینکس کرنل لپاره د خوندي چلوونکو لیکلو چوکاټ

جوش ټریپلیټ ، څوک چې په انټیل کې کار کوي او په هغه کمیټه کې دی چې د Crates.io پراختیا نظارت کوي ، د خلاصې سرچینې ټیکنالوژۍ غونډې کې خبرې کوي معرفي شوی یوه کاري ډله چې موخه یې د سیسټمونو پروګرام کولو په برخه کې د C ژبې سره د زنګ ژبه برابرول دي.

په یوه کاري ګروپ کې چې د رامینځته کیدو په حال کې ده ، د زنګ پراختیا کونکي به د انټیل انجینرانو سره یوځای د فعالیت مشخص کولو مشخصات چمتو کړي چې د سیسټم برنامه کولو لپاره په زنګ کې پلي کیدو ته اړتیا لري. د سیسټم پروګرامونه ډیری وختونه د ټیټې کچې لاسوهنې ته اړتیا لري، لکه د پروسیسر لارښوونې اجرا کول او د پروسیسر حالت په اړه مفصل معلومات ترلاسه کول. د ورته ځانګړتیاو څخه چې دمخه یې د زنګ لپاره رامینځته شوي ، د بې نومه جوړښتونو ملاتړ ، اتحادیې ، د مجلس ژبې داخلولو (د "asm!" میکرو) او د BFLOAT16 د فلوټینګ پوائنټ نمبر فارمیټ یادونه شوې.

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

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

ګریګ کروه-هارټمن، چې د لینکس کرنل د مستحکم څانګې ساتلو مسولیت لري، خپل چمتووالی څرګند کړ چې د زنګ په ژبه کې د ډرایورونو رامینځته کولو لپاره چوکاټ اضافه کړي که چیرې دا د C څخه ریښتینې ګټې ولري، د بیلګې په توګه، دا به خوندي وي. د کرنل API باندې پابندۍ. برسېره پردې، ګریګ دا چوکاټ یوازې د یو اختیار په توګه په پام کې نیسي، د ډیفالټ له مخې فعال نه دی، نو ځکه چې په کرنل کې د جوړونې انحصار په توګه زنګ شامل نه شي.

دا معلومه شوه چې څو ټیمونه لا دمخه په دې لار کې کار کوي. د مثال په توګه، د شرکت پراختیا کونکي "په بیرل کې کب" چمتو شوی په Rust ژبه کې د لینکس کرنل لپاره د بار وړ وړ ماډلونو لیکلو لپاره یوه وسیله کټ، د امنیت زیاتولو لپاره د انٹرفیسونو او کرنل جوړښتونو باندې د خلاصو پرتونو سیټ کاروي. پرتونه په اوتومات ډول د افادیت په کارولو سره د موجوده کرنل سرلیک فایلونو پراساس رامینځته کیږي bindgen. کلینګ د پرتونو جوړولو لپاره کارول کیږي. د انټر لیرونو سربیره ، راټول شوي ماډلونه د سټیکلیب کڅوړه کاروي.

موازي وده کوي بله پروژه د ایمبیډ شوي سیسټمونو او IoT وسیلو لپاره د ډرایورونو رامینځته کولو باندې تمرکز کوي ، کوم چې د کرنل سرلیک فایلونو پراساس پرتونو رامینځته کولو لپاره بانډجن هم کاروي. چوکاټ تاسو ته اجازه درکوي د ډرایور امنیت ته وده ورکړي پرته لدې چې په کرنل کې بدلونونه رامینځته کړي - د دې پرځای چې په کرنل کې د ډرایورانو لپاره اضافي انزوا کچه رامینځته کړي ، دا وړاندیز کیږي چې د تالیف په مرحله کې ستونزې بندې کړي ، د ډیر خوندي زنګ ژبې په کارولو سره. داسې انګیرل کیږي چې دا ډول چلند ممکن د تجهیزاتو تولید کونکو لخوا غوښتنه وي چې د سمې پلټنې ترسره کولو پرته په ګړندي ډول د ملکیت چلونکي رامینځته کوي.

ټول ټاکل شوي فعالیت لا تر اوسه نه دی پلي شوی، مګر چوکاټ لا دمخه د کار لپاره خورا مناسب دی او د LAN9512 USB ایترنیټ کنټرولر لپاره د کاري ډرایور لیکلو لپاره کارول کیده چې په Raspberry Pi 3 بورډ کې چمتو شوي. د موجوده smsc95xx ډرایور لخوا لیکل شوی. سي ژبه. دا په یاد ولرئ چې د موډل اندازه او د رن ټایم برخو څخه سر سر کله چې په Rust کې د ډرایور رامینځته کول مهم ندي ، کوم چې چوکاټ ته اجازه ورکوي د محدودو سرچینو سره د وسیلو لپاره وکارول شي.

سرچینه: opennet.ru

Add a comment