Pada Linux Plumbers Conference 2020, pengembang Microsoft berbicara tentang proyek eksperimental mereka - mengoptimalkan kernel Linux untuk prosesor server ARM. Kepala Manajer Pengembangan Perangkat Lunak Jan Birman membuat presentasi.
Menurut spesialis, proyek itu diluncurkan atas permintaan internal perusahaan. Linux sudah digunakan dalam proyek seperti Azure Cloud, Azure Sphere, dan Subsistem Windows untuk Linux. Tim Bierman ditugaskan untuk memaksimalkan kinerja layanan cloud di Linux menggunakan prosesor 64-bit ARM atau x86. Pengembang diizinkan untuk mengkompilasi kernel untuk sistem operasi dengan parameter dan flag mereka sendiri.
Distribusi aslinya adalah Ubuntu 19.10 dengan GCC 9.2.1, binutils 2.33 dan kernel 5.3 yang telah diinstal sebelumnya. Prosesor server - 64-bit ARM Marvell Thunder X2. Setelah melakukan brainstorming, tim memutuskan untuk menggunakan optimasi LTO dan PGO untuk membangun kernel.
Pengoptimalan profil (PGO atau FDO) dan pengoptimalan waktu komunikasi (LTO atau LTCG) secara signifikan memperlambat proses build dan memerlukan lebih banyak RAM agar compiler dapat berfungsi, tetapi secara teori keduanya memberikan peningkatan kecepatan eksekusi perintah sebesar 10-20%. PGO jarang digunakan oleh pengembang, dan LTO baru-baru ini digunakan untuk membangun kernel dan paket lainnya. Sebelumnya, pengembang berhati-hati dalam menggunakan pengoptimalan waktu tautan karena masalah kompatibilitas di kompiler GCC dan LLVM. Tim Birman meminta bantuan pengembang kernel Linux berpengalaman Andy Kleen, yang merilis tambalan agar LTO berfungsi dengan benar dengan prosesor ARM. Untuk membuat PGO berfungsi, para pengembang mempelajari dokumentasi dan mencapai pekerjaan yang stabil melalui trial and error.
Setelah menyelesaikan pembuatan kernel, tim menguji kinerja pada sistem manajemen database residen NoSQL open source. Setelah menjalankan berbagai perintah, para pengembang melaporkan peningkatan kecepatan eksekusi perintah sebesar 5-20%. Data diperoleh dari uji benchmark redis internal.
Omong-omong, belum lama ini Microsoft merilis pembaruan KB4566116 untuk Windows 10. Pembaruan menambahkan dukungan untuk Subsistem Windows untuk Linux 2 (WSL 2) di versi OS 1909 dan 1903. Ini memungkinkan untuk menggunakan kernel Linux yang lengkap. Di WSL2, ini bukan bagian dari Windows secara default, tetapi dimuat secara dinamis dan diperbarui menggunakan alat yang ada di dalam OS.