لینوس توروالدز (Linus Torvalds)، خالق و رهبر پروژه کرنل لینوکس، نسخه 6.14rc3 کرنل لینوکس را منتشر کرده است. این نسخه، یک نسخه کاندید برای انتشار نسخه پایدار 6.14 است. نسخههای RC به طور معمول پیش از انتشار نسخه نهایی برای اصلاح اشکالات و مشکلات احتمالی منتشر میشوند. بنابراین، این نسخه هنوز نهایی نیست و احتمالاً پیش از آن که نسخه رسمی منتشر شود، تغییراتی در آن ایجاد خواهد شد.
پائولو بونزینی، که مسئول نگهداری پروژه KVM (ماشین مجازی مبتنی بر کرنل لینوکس) است، همچنین اصلاحاتی را برای این نسخه جدید کرنل لینوکس ارسال کرده است. اصلاحات مذکور مربوط به بهبود عملکرد و رفع مشکلات مختلف در کدهای مرتبط با KVM بوده و به منظور بهبود عملکرد ماشینهای مجازی و سیستمهای مبتنی بر آنها است. این اصلاحات پس از بررسی، توسط لینوس توروالدز در کرنل لینوکس 6.14rc3 ادغام شدهاند.
به طور کلی، این خبر به این معناست که کرنل لینوکس در حال نزدیک شدن به نسخه نهایی 6.14 میباشد و تغییرات و اصلاحات جدیدی برای بهبود عملکرد و رفع اشکالات آن انجام شده است. این بهروزرسانیها به مشکلات بحرانی در معماریهای مختلف، از جمله ARM و x86، رسیدگی میکنند و همچنین به بهبود عملکرد و پایداری KVM کمک خواهند کرد.
این نسخه همچنین شامل به روزرسانیهای مهمی است، از جمله معرفی Faux Bus، یک ویژگی جدید که هدف آن سادهسازی توسعه درایورهای دستگاه است. علاوه بر این، مجموعهای از اصلاحات بحرانی نیز در این نسخه گنجانده شده است. Faux Bus به توسعهدهندگان این امکان را میدهد که کار با درایورهای دستگاه را سادهتر کنند و پیچیدگیهای معمول در تعامل با سختافزارهای مختلف را کاهش دهند.
این تغییرات، به خصوص برای کسانی که در حال کار بر روی سیستمهای مبتنی بر لینوکس هستند یا از KVM استفاده میکنند، میتواند تاثیر زیادی در بهبود تجربه کاربری و عملکرد سیستم داشته باشد.
Faux Bus یک فریمورک سبک است که برای دستگاهها و درایورهای ساده طراحی شده است و نیازی به پیچیدگیهای درایور دستگاههای پلتفرم کامل ندارد. این ویژگی یک API حداقلی با فقط دو تابع ارائه میدهد: یکی برای ایجاد دستگاهها و دیگری برای حذف آنها.
Faux Bus برای دستگاههای کوچک یا “تقلبی” بسیار مفید است، چرا که مدیریت چرخه حیات آنها را آسان میسازد و در عین حال سادگی را حفظ میکند. این ویژگی به توسعهدهندگان اجازه میدهد تا با حداقل پیچیدگی، دستگاههایی را که نیاز به عملکرد پیچیده ندارند، مدیریت کنند.
علاوه بر این، Faux Bus از هر دو زبان برنامهنویسی C و Rust پشتیبانی میکند، که این امر باعث میشود این ویژگی بهطور گستردهتری توسط توسعهدهندگان پذیرفته شود و استفاده از آن برای پروژهها و سیستمهای مختلف راحتتر گردد. این قابلیت میتواند برای پروژههایی که به دستگاههای ساده و کارآمد نیاز دارند، بسیار مفید باشد.
نکات مهم به روزرسانیهای KVM
معماری ARM
- یک بازنگری جامع در نحوه مدیریت رجیسترهای برداری انجام شده است تا مدیریت عملیاتهای اعشاری (FP)، SIMD و افزونه برداری مقیاسپذیر (SVE) سادهتر شود. این به روزرسانی موجب رفع بسیاری از باگها و مشکلاتی شده است که بر پیادهسازیهای واقعی تأثیر میگذاشت.
- مشکلات مربوط به شرایط رقابتی (race condition) میان شروع به کار vCPU (واحد پردازش مجازی) و vGIC (کنترلر وقفه عمومی مجازی) برطرف شده است.
- تغییراتی انجام شده است تا از استفاده نادرست از آدرسهای مجازی کرنل (VAs) در حالت EL2 هنگام شبیهسازی تایمرها در حالت غیر VHE (افزونههای مجازیسازی میزبان) جلوگیری شود.
- بهبودهایی برای KVM محافظت شده (pKVM) معرفی شده است که شامل بهبود مدیریت خطا و اصلاحات تراز حافظه میباشد.
این بهروزرسانیها برای کسانی که از KVM در معماری ARM استفاده میکنند، به ویژه در محیطهای تولیدی، بسیار مهم هستند و بهبودهای قابل توجهی در عملکرد و پایداری سیستمها ایجاد خواهند کرد.
معماری x86
- پشتیبانی از AMD Secure Nested Paging (SNP) اصلاح شده است تا اطمینان حاصل شود که ماژول Platform Security Processor (PSP) به درستی هنگام ساخت KVM به صورت built-in مقداردهی اولیه میشود. این اصلاحات برای اطمینان از امنیت و عملکرد صحیح سیستمهای مبتنی بر AMD در حال استفاده از این قابلیت انجام شدهاند.
- بهبودهای مرتبط باHyper-V شامل رد کردن درخواستهایSEND_IPI پشتیبانی نشده از نوع hypercall میشود، زمانی که کنترلرهای وقفه پیشرفته برنامه ریزی شده (APIC) لوکال توسط KVM شبیهسازی نشوند.
- برطرف کردن باگها شامل رفع مشکل مقادیر منحصر به فرد در رجیستر DR6 هنگام انتقال وضعیت guest ها و اطمینان از برچسبگذاری صحیح جدولهای صفحات درونی (تو در تو) برای guest های سطح 2 میشود.
این بهروزرسانیها برای سیستمهای مبتنی بر معماری x86 که از KVM برای مجازیسازی استفاده میکنند، بهویژه در محیطهای Hyper-V یا با نیاز به امنیت پیشرفته مانند SNP، بهبودهای مهمی را در پی خواهند داشت.
پیشرفتها و بهبودهای عمومی:
- تعدادی پاکسازی معماری در کدها انجام شده است که شامل بهبود مدیریت خطا و سادهسازی در مسیر کد میشود. این تغییرات باعث بهبود خوانایی و نگهداری کد، همچنین کاهش پیچیدگیهای غیرضروری در پیادهسازیها خواهند شد.
- خودآزماییهای KVM گسترش یافتهاند تا سناریوهای اضافی مانند ویژگیهای CPUID در Hyper-V و حالات خاص مجازیسازی تو در تو را پوشش دهند. این اقدام به شناسایی مشکلات احتمالی در شرایط خاص و پیچیده کمک میکند و تضمین میکند که عملکرد KVM در موقعیتهای مختلف صحیح است.
این مجموعه اصلاحات شامل تغییراتی در 30 فایل مختلف همراه با 420 خط کد افزوده شده و 427 خط کد حذف شده است. بهروزرسانیها شامل ترکیبی از رفع اشکالات، بهینهسازی عملکرد و سادهسازی کدها میباشند که هدف آنها بهبود کیفیت و پایداری سیستم است. این تغییرات نشان دهنده تلاش برای بهبود عملکرد کلی، کاهش پیچیدگی و رفع مشکلات در حین استفاده از KVM در محیطهای مختلف مجازیسازی هستند.
دیدگاههای توسعهدهندگان
پائولو بونزینی اشاره کرد که هرچند این درخواست pull به دلیل بهروزرسانیهای قابل توجه در معماری ARM نسبتاً بزرگ است، اما بیشتر از آن که کد جدید اضافه کند، کدهای قدیمی را حذف میکند. این موضوع گواهی بر تلاش مداوم برای سادهسازی و بهینهسازی کدهای KVM است. همچنین، مشارکتهای مارک راتلند در مدیریت بردارهای ARM بهویژه به دلیل پیچیدگی و تأثیر آنها بر پایداری KVM مورد توجه قرار گرفت.
با پیشرفت نسخه 6.14 لینوکس در مرحله کاندیدای انتشار، آزمایشهای بیشتر برای اصلاح و تکمیل این بهروزرسانیها قبل از انتشار نهایی مورد انتظار است. از توسعهدهندگان خواسته شده است که این تغییرات را در محیطهای مختلف آزمایش کرده و هرگونه مشکل را گزارش دهند تا بتوان از صحت عملکرد نهایی اطمینان حاصل کرد.
بهروزرسانیهای KVM همچنان اهمیت همکاری در جامعه لینوکس را برای حفظ پشتیبانی قوی از مجازیسازی در معماریهای مختلف تأکید میکنند. این بهروزرسانیها نشاندهنده تلاشهای مشترک توسعهدهندگان مختلف از سراسر جهان است که برای بهبود عملکرد، پایداری و امنیت مجازیسازی در لینوکس همکاری میکنند. این همکاریها باعث میشود که KVM بتواند بهطور مؤثر و بهینه در معماریهای مختلف مانند ARM و x86 اجرا شود و نیازهای متنوع کاربران و سازمانها را پوشش دهد.