WD در حال توسعه یک درایور NVMe در Rust است. آزمایش با Rust در FreeBSD

در کنفرانس لینوکس Plumbers 2022 که این روزها در حال انجام است، یک مهندس از Western Digital ارائه ای در مورد توسعه یک درایور آزمایشی برای SSD های NVM-Express (NVMe) که در Rust نوشته شده و در سطح هسته لینوکس اجرا می شود، ارائه کرد. علیرغم این واقعیت که پروژه هنوز در مرحله اولیه توسعه است، آزمایش انجام شده نشان داد که عملکرد درایور Rust NVMe با درایور NVMe نوشته شده در C در هسته مطابقت دارد.

WD در حال توسعه یک درایور NVMe در Rust است. آزمایش با Rust در FreeBSD
WD در حال توسعه یک درایور NVMe در Rust است. آزمایش با Rust در FreeBSD

این گزارش می گوید که درایور NVMe فعلی در C برای توسعه دهندگان کاملاً رضایت بخش است، اما زیرسیستم NVMe بستر مناسبی برای بررسی امکان توسعه درایورها در Rust است، زیرا بسیار ساده، پرکاربرد است، نیازهای عملکردی بالایی دارد و یک پیاده سازی مرجع اثبات شده برای مقایسه و پشتیبانی از رابط های مختلف (dev، pci، dma، blk-mq، gendisk، sysfs).

اشاره شده است که درایور Rust PCI NVMe در حال حاضر عملکرد لازم برای عملکرد را ارائه می دهد، اما هنوز برای استفاده گسترده آماده نیست، زیرا نیاز به بهبودهای جداگانه دارد. برنامه های آینده شامل خلاص شدن از شر بلوک های ناامن موجود، پشتیبانی از حذف دستگاه و تخلیه درایور، پشتیبانی از رابط sysfs، پیاده سازی اولیه سازی تنبل، ایجاد درایور برای blk-mq، و آزمایش یک مدل برنامه نویسی ناهمزمان برای queue_rq است.

علاوه بر این، می‌توانیم آزمایش‌هایی را که توسط گروه NCC برای توسعه درایورها به زبان Rust برای هسته FreeBSD انجام شده است، یادداشت کنیم. به عنوان مثال، یک درایور ساده اکو که داده های نوشته شده به فایل /dev/rustmodule را برمی گرداند، با جزئیات تجزیه و تحلیل می شود. در مرحله بعدی آزمایش، گروه NCC در حال بررسی مجدد اجزای اصلی در Rust برای بهبود امنیت عملیات شبکه و فایل است.

همانطور که گفته شد، اگرچه نشان داده شده است که ایجاد ماژول های ساده در Rust امکان پذیر است، یکپارچه سازی دقیق تر Rust در هسته FreeBSD به کار بیشتری نیاز دارد. برای مثال، نیاز به ایجاد مجموعه‌ای از لایه‌های انتزاعی را بر روی زیرسیستم‌ها و ساختارهای هسته، شبیه به افزونه‌هایی که توسط پروژه Rust برای لینوکس تهیه شده است، ذکر می‌کند. در آینده، برنامه‌ریزی شده است تا آزمایش‌های مشابهی با هسته Illumos انجام شود و انتزاعات رایج در Rust برجسته شود که می‌تواند در درایورهای Rust-written برای Linux، BSD و Illumos استفاده شود.

طبق گفته های مایکروسافت و گوگل، حدود 70 درصد از آسیب پذیری ها در محصولات نرم افزاری آنها ناشی از مدیریت ناایمن حافظه است. فرض بر این است که استفاده از زبان Rust خطر آسیب‌پذیری‌های ناشی از مدیریت ناامن حافظه را کاهش می‌دهد و وقوع خطاهایی مانند دسترسی به یک ناحیه حافظه پس از آزاد شدن و افزایش بافر را از بین می‌برد.

ایمنی حافظه در Rust در زمان کامپایل از طریق بررسی مرجع، پیگیری مالکیت شی و طول عمر شی (محدوده)، و همچنین از طریق ارزیابی صحت دسترسی به حافظه در طول اجرای کد ارائه می شود. Rust همچنین محافظت در برابر سرریز اعداد صحیح را فراهم می کند، نیاز به مقداردهی اولیه اجباری مقادیر متغیر قبل از استفاده دارد، خطاها را در کتابخانه استاندارد بهتر مدیریت می کند، مفهوم مراجع و متغیرهای غیرقابل تغییر را به طور پیش فرض اعمال می کند، تایپ استاتیک قوی برای به حداقل رساندن خطاهای منطقی ارائه می دهد.

منبع: opennet.ru

اضافه کردن نظر