از میانه سال 2023، مایکروسافت تلاشهای جدی برای ادغام زبان Rust در ویندوز آغاز کرده است. ابتدا ویندوز توانست با استفاده از Rust در هسته خود بوت شود و اخیراً این شرکت اقداماتی را برای تشویق توسعهدهندگان درایور به نوشتن با استفاده از این زبان انجام داده است.
در ماه جولای، مایکروسافت برخی از جزئیات اولیه را درباره اینکه تیم Surface در این زمینه چگونه کمک میکند، به اشتراک گذاشت. آنها پروژه جدید متنباز windows-drivers-rs را ایجاد کردهاند که اساساً یک پلتفرم برای کمک به توسعه درایورهای ویندوز با استفاده از Rust است.

امروز، این شرکت جزئیات بیشتری درباره پیشرفتهای خود منتشر کرده است. برای آسانتر کردن نوشتن درایورهای Rust، و مشابه آنچه در C وجود دارد، مایکروسافت یک کرت جدید به نام cargo-wdk را به عنوان بخشی از windows-drivers-rs معرفی کرده است. این افزونه Cargo پروژههای درایور خالی را با لینکدهی پیشپیکربندیشده، مراحل ساخت و وابستگیها تولید میکند و میتواند ابزارهای WDK مانند InfVerif را فراخوانی کند، مشابه روند ساخت درایور در C در Visual Studio.
برای آن دسته از افرادی که نمیدانند Rust چه مزیتی دارد، این زبان امنیت حافظه را فراهم میکند که در مقایسه با زبانهای برنامهنویسی سنتی مانند C، میتواند آسیبپذیریهای امنیتی مرتبط با حافظه را برطرف کند؛ همچنین این زبان قابلیت تعامل عالی با کد درایور C/C++ را نیز ارائه میدهد که انتقال به آن را آسانتر میکند.
مایکروسافت اعلام کرده است که هدف بلندمدت این است که به توسعهدهندگان Rust در یک محیط Cargo ابزارها و گزینههای پیکربندی مشابهی با آنچه در Visual Studio موجود است، ارائه دهد. برنامههای میانمدت شامل نصب خودکار WDK، پشتیبانی از NT_TARGET_VERSION، پشتیبانی کامل از ARM64 و موارد دیگر است.
در حال حاضر، مایکروسافت اشاره کرده است که windows-drivers-rs به برخی از انواع درایور در Rust امکانپذیر میکند، اما هنوز نیاز به استفاده قابل توجهی از کدهای ناامن دارد. این غول فناوری همچنین تأکید کرده است که تیم Windows Driver Framework (WDF) در حال همکاری با کارشناسان Rust برای طراحی انتزاعات ایمنتر برای KMD (درایورهای حالت هسته) و UMD (درایورهای حالت کاربر) است. سایر تیمهای مایکروسافت در حال توسعه ساختارها و APIهای ایمن فراتر از WDF برای توسعه درایورهای هسته و شخص ثالث هستند. برخی از این موارد در حال حاضر در هسته ویندوز در حال استفاده است.
برای آن دسته از افراد ناآشنا، انتزاع بهطور کلی به معنای یک روش ایمن برای سوئیچ از حالت کاربر به حالت هسته است. حالت هسته دارای بالاترین سطح دسترسی است در حالی که حالت کاربر کمترین سطح دسترسی را دارد.
در نهایت، مایکروسافت اعلام کرده است که در ماههای آینده اطلاعات بیشتری درباره بهترین شیوهها در توسعه درایور به اشتراک خواهد گذاشت، یکی از آنها استفاده از CodeQL برای تحلیل استاتیک است. اگر به یاد داشته باشید، مایکروسافت در اوایل جولای راهنمایی خود را برای تحلیل استاتیک درایورهای شخص ثالث برای نسخه 25H2 ویندوز 11 بهروزرسانی کرده بود.