
در جریان کنفرانس LPC2026 که این هفته در پراگ برگزار شد، جان هابارد، مهندس شرکت انویدیا، و دانیلو کرومریش از شرکت رد هت، آخرین وضعیت درایور متنباز و بالادستی (Upstream) نوا (Nova) را ارائه کردند؛ درایوری که بهعنوان یک درایور هسته لینوکس (Linux Kernel Driver) برای سختافزار انویدیا و کاملاً مبتنی بر زبان برنامهنویسی راست (Rust) در حال توسعه است.
نوا چیست و چه هدفی را دنبال میکند؟
درایور نوا برای خوانندگان قدیمی اخبار لینوکس نام آشنایی است، اما آنچه اهمیت دارد، سرعت پیشرفت آن و شفافتر شدن تدریجی برنامههای انویدیا درباره این پروژه است. انویدیا شمار قابلتوجهی از مهندسان خود را به توسعه این درایور اختصاص داده و برنامههای بلندپروازانهای برای آن دارد؛ بهگونهای که پس از تکمیل قابلیتها و آماده شدن برای کاربران نهایی، جایگزین درایور بالادستی فعلی یعنی Nouveau برای پردازندههای گرافیکی معماری تورینگ (Turing) و جدیدتر خواهد شد.
جایگزینی برای Open RM؛ نه یک جایگزین ساده
در ارائه LPC2026، هدف بلندمدت نوا «جایگزینی برای Open RM» توصیف شد. منظور از Open RM یا همان «مدیر منابع» (Resource Manager) انویدیا، ماژولهای هسته متنباز اما خارج از درخت (Out-of-Tree) این شرکت است که چند سال گذشته مورد استفاده قرار گرفتهاند. برنامه نهایی این است که پشته درایور لینوکس انویدیا، کد درایور هسته نوا را بهعنوان جانشین کد ماژول هسته خارج از درخت خود به کار بگیرد.
با این حال باید توجه داشت که نوا یک جایگزین کاملاً سازگار و قابل جایگذاری مستقیم (Drop-in) با رابطهای درایور خارج از درخت موجود نیست و از نظر رابط برنامهنویسی کاربردی (API) با آنها یکسان عمل نمیکند؛ به همین دلیل اجزای درایور فضای کاربر (User-Space) انویدیا باید برای هماهنگی با آن دستخوش تغییر و سازگارسازی شوند.
وضعیت فعلی توسعه نوا
بر اساس گزارش ارائهشده، وضعیت کنونی نوا به این شرح است:
- راهاندازی و بوت شدن پردازنده سیستم گرافیکی (GSP یا GPU System Processor) همراه با فریمور آن روی سختافزارهای تورینگ تا بلکول (Blackwell)
- فعال شدن قابلیتهای پایه و اولیه
- عدم آمادگی کامل برای استفاده کاربران نهایی در وضعیت کنونی
کارهای پیشروی تیم توسعه
برنامههای آتی برای درایور نوا شامل موارد زیر است:
- پشتیبانی از مهمانهای لینوکس و ویندوز در ماشینهای مجازی (VM) با نوا
- افزودن قابلیتهای متنوع مجازیسازی (Virtualization)
- اجرای برنامههای محاسباتی ولکان (Vulkan Compute) و کودا (CUDA) روی نوا
- توسعه هرچه بیشتر قابلیتهای گرافیکی و نمایشی (Display)
راست، زبان اصلی این پروژه
درایور نوا همچنان بهطور کامل با زبان برنامهنویسی راست (Rust) نوشته میشود و در همین مسیر، زیرساختهای مدیریت مستقیم رندر لینوکس (DRM یا Direct Rendering Manager) نیز با استفاده از زیرساختهای راست در هسته لینوکس توسعه مییابد. این رویکرد میتواند الگویی برای استفاده گستردهتر از راست در اجزای حساس هسته لینوکس باشد.
علاقهمندان میتوانند برای مطالعه بیشتر، فایلهای ارائه نوا در LPC 2026 را در وبسایت lpc.events مشاهده کنند.