طرفداران ویندوز و لینوکس اغلب درگیر جنگ های کیبردی آتشینی میشوند، اما سازندگان این سیستم عامل ها نقاط قوت و ضعف یکدیگر را درک میکنند. مایکروسافت نیز این موضوع را درک کرده و حتی کاربران را تشویق میکند تا از لینوکس، از طریق زیرسیستم ویندوز برای لینوکس (WSL)، استفاده کنند.
شرکت مایکروسافت همچنین اغلب بروزرسانی هایی را ارائه میدهد که هدفشان بهبود عملکرد یا افزایش قابلیت های لینوکس است. برای مثال، در نوامبر ۲۰۲۲، مایکروسافت از پشتیبانی مجازی سازی تو در تو یا Hyper-V تو در تو رونمایی کرد. و در سپتامبر سال گذشته، لینوس توروالدز، رئیس لینوکس، بهبود های مربوط به Hyper-V را برای مهمان های AMD SEV-SNP و Intel TDX، که توسط وی لیو، معمار ارشد یادگیری ماشین در Azure مایکروسافت ارسال شده بود، پذیرفت.
توروالدز بار دیگر بروزرسانی های جدید Hyper-V را از لیو برای لینوکس ۶.۱۲ پذیرفته است و یکی از آنها از نظر عملکردی بسیار جالب است که توسط سوراب سینگ سنگار از مایکروسافت ارائه شده است:
بروزرسانی های Hyper-V از وی لیو:
- بهینه سازی زمان بوت با اجرای همزمان hv_synic_init
- استفاده از کمک کننده ها برای خواندن رجیسترهای کنترل در hv_snp_boot_ap
- افزایش بررسی تخصیص حافظه در hv_fcopy_start
توضیحات این وصله توضیح میدهد که چگونه موازی سازی تابع hv_synic_init میتواند زمان بوت را در پردازنده هایی با هسته های زیاد و گره های NUMA (دسترسی غیر یکنواخت به حافظه) بهبود بخشد:
بهینه سازی زمان بوت با اجرای همزمان hv_synic_init
در حال حاضر در یک سیستم بسیار بزرگ با ۱۷۸۰ پردازنده، hv_acpi_init حدود ۳ ثانیه طول میکشد تا کامل شود. این به دلیل همگام سازی متوالی هر CPU توسط hv_synic_init است.
این وظایف را به صورت موازی برنامه ریزی کنید تا هر CPU بتواند hv_synic_init را به صورت موازی اجرا کند تا از مزایای کامل پردازنده های چندگانه استفاده کند.
این راه حل حدود ۲ ثانیه از زمان بوت در یک سیستم ۱۷۸۰ پردازندهای صرفه جویی میکند که حدود ۶۶% بهبود در منطق موجود است.
سنگار همچنین به تازگی ارائه هایی در مورد یافته های خود با عنوان “شتاب دهی بوت هسته لینوکس برای سیستم های بزرگ با هسته های متعدد” انجام داده است که به جزئیات این وصله و سایر بهینه سازی هایی که در حال انجام هستند میپردازد.
source