Halo, Habr!
Sementara
penjualan musim panas berjalan lancar, kami ingin mengundang Anda untuk membahas salah satu topik paling ambisius yang telah kami kerjakan belakangan ini - interaksi Windows dan Linux, terkait, khususnya, dengan pengembangan sistem
WSL . WSL 2 sedang dalam perjalanan, dan perhatian Anda diundang ke tinjauan singkat fitur yang menunggu kami di subsistem ini, serta perkiraan untuk integrasi lebih lanjut dari Windows dan Linux.

Pada bulan Mei tahun ini, Microsoft mengumumkan bahwa WSL2, versi terbaru dari subsistem Windows di Linux, akan berjalan pada kernel Linux lengkap yang dirakit di perusahaan.
Jadi, untuk pertama kalinya, Microsoft memasukkan kernel Linux di Windows sebagai salah satu komponennya. Microsoft juga memperkenalkan baris perintah pada Windows yang akan memperluas kemampuan PowerShell dan WSL.
Baik kernel Linux untuk WSL2, yang dibuat oleh Microsoft, dan baris perintah Windows yang baru menarik terutama untuk pengembang.
"Ini adalah langkah paling kuat dalam pertandingan melawan AWS," kata Joshua Schwartz, kepala digitalisasi di AT Kearney, sebuah perusahaan konsultan.
Masa depan Microsoft tidak terkait dengan pasar PC, meskipun akan terus bertahan di segmen ini. Akan jauh lebih penting untuk mendapatkan pijakan di pasar cloud, salah satu komponen yang di masa depan bisa menjadi PC desktop.
Apa yang dilakukan WSL2
WSL2 adalah infrastruktur subsistem Windows terbaru untuk Linux. Ini memungkinkan Anda untuk secara drastis meningkatkan kinerja sistem file dan memberikan kompatibilitas penuh dengan panggilan sistem.
Salah satu permintaan utama komunitas WSL terkait dengan penyempurnaan fungsionalitas. WSL2 memiliki lebih banyak alat Linux daripada WSL, khususnya Docker dan FUSE.
WSL2 menangani operasi file intensif, khususnya git clone, install npm, apt pembaruan, dan apt apt. Peningkatan kecepatan aktual tergantung pada aplikasi spesifik dan bagaimana ia berinteraksi dengan sistem file.
Tes awal menunjukkan bahwa WSL2 sekitar 20 kali lebih cepat dari WSL1 untuk membongkar tar dari zip. Ketika menggunakan git clone, npm install dan cmake di berbagai proyek, sistem menunjukkan peningkatan produktivitas dua hingga lima kali lipat.
Apakah ini membantu memenangkan kepercayaan pengembang?
Pada intinya, Microsoft berupaya untuk mendapatkan penerimaan dan kredibilitas di komunitas pengembangan dengan mengambil pengembangan versi Linux sendiri untuk mendukung proses WSL2, kata Cody Swann, CEO di Gunner Technology.
“Terlepas dari pengembangan ketat untuk Windows, pembuatan semua aplikasi lain - cloud, mobile, aplikasi web - pada PC sangat merepotkan, itulah sebabnya pengembang entah bagaimana harus mengunduh distribusi Linux secara paralel dengan OS Windows. Microsoft mengakui hal ini dan mengusulkan solusi, ”ia menyimpulkan.
Tidak mungkin bahwa pengenalan kernel Linux asli akan secara serius mempengaruhi pekerjaan dengan sistem dari sudut pandang pengguna biasa. Namun, dalam hal ini, peluang muncul untuk interaksi yang lebih dekat antara layanan Microsoft dan sistem operasi Linux.
Langkah seperti itu dari pihak Microsoft benar-benar sangat kompeten, karena membantu menembus lebih dalam ke komunitas pengembang, serta secara aktif menggunakan produk yang sedang dikembangkan orang lain - yaitu, terhubung ke sumber terbuka, kata Swann.
Selamat datang di microsoft baru
Tren ke arah penciptaan dan dukungan kernel Linux "khusus untuk Windows" mencerminkan tren pengembangan yang menentukan menuju open-source, yang dipromosikan oleh CEO Satya Nadella. Microsoft tidak sama dengan di bawah Gates dan Balmer, ketika semuanya disimpan di belakang pagar piket milik, dan tidak ada yang memikirkan interoperabilitas.
“Satya telah sepenuhnya mengubah Microsoft menjadi platform yang jauh lebih modern, dan strategi ini telah membuahkan hasil. Hai, kapitalisasi triliunan dolar, ”kata Schwartz.
Menurut Charles King, kepala analis di Pund-IT, dua kekuatan inti Microsoft adalah efisiensi dan keamanan.
"Dengan secara aktif menggunakan pencapaian seriusnya sendiri - sumber daya dan peralatan - perusahaan dapat menjamin pelanggan bahwa kernel akan sepenuhnya diperbarui dan dilengkapi dengan tambalan dan perbaikan terbaru untuk memastikan keamanan lengkap," tambahnya.
Pengembang juga merupakan pemenang
Binari Linux melakukan banyak fungsi menggunakan panggilan sistem, misalnya, mengakses file, meminta memori, dan membuat proses. WSL1 mengandalkan lapisan terjemahan yang menginterpretasikan banyak panggilan sistem ini dan memungkinkan mereka untuk berinteraksi dengan kernel Windows NT.
Bagian tersulit adalah menerapkan semua panggilan sistem. Karena ini tidak dilakukan di WSL1, beberapa aplikasi tidak dapat berfungsi di sana. WSL2 memperkenalkan banyak aplikasi baru yang biasanya berfungsi di lingkungan ini.
Arsitektur baru memungkinkan Microsoft untuk membuat optimasi terbaru ke kernel Linux lebih cepat daripada dengan WSL1. Microsoft dapat memperbarui kernel WSL2, daripada mengimplementasikan kembali semua pembatasan.
Alat sumber terbuka penuh
Pengembangan Microsoft dari kernel Linux sendiri adalah puncak dari bertahun-tahun kerja oleh Linux Systems Group, serta banyak tim lain di seluruh Microsoft, kata Jack Hammons, manajer program untuk Linux Systems Group, Microsoft.
Kernel yang disediakan untuk WSL2 akan sepenuhnya open source, dan Microsoft akan memposting instruksi tentang bagaimana membangun kernel tersebut di GitHub. Perusahaan akan berinteraksi dengan pengembang yang ingin membantu proyek dan merangsang perubahan ke atas.
Pengembang Microsoft menciptakan WSL2 menggunakan integrasi berkesinambungan perusahaan dan sistem pengiriman berkelanjutan. Perangkat lunak ini akan dikelola melalui sistem pembaruan Windows dan akan sepenuhnya transparan bagi pengguna. Kernel akan tetap relevan dan mencakup semua fitur dari cabang Linux stabil terbaru.
Untuk memastikan ketersediaan sumber, perusahaan ini merefleksikan repositori secara lokal, dan juga secara konstan memantau isi milis Linux tentang masalah keamanan, dan juga bekerja dengan beberapa perusahaan yang mendukung bekerja dengan database di lingkungan virtual perusahaan (CVE). Ini memastikan bahwa pembaruan Linux terbaru diperhitungkan dalam kernel Linux dari Microsoft dan semua ancaman yang muncul dihilangkan.
Perubahan hulu mengikat
Microsoft menjamin bahwa semua perubahan kernel akan didistribusikan ke arah hulu - ini adalah aspek penting dari filosofi Linux. Dukungan untuk patch hilir dikaitkan dengan kompleksitas tambahan; lebih jauh, praktik ini tidak diterima secara umum di komunitas pengembangan bebas.
Tujuan Microsoft, yang secara aktif menggunakan Linux, adalah untuk menjadi anggota disiplin komunitas ini dan untuk membuat perubahan tersedia bagi komunitas. Untuk mencapai stabilitas cabang yang terkait dengan dukungan jangka panjang, beberapa tambalan - misalnya, berisi fitur-fitur baru - dapat dimasukkan hanya dalam versi kernel yang baru, dan tidak diangkut ke versi LTS saat ini dalam mode kompatibilitas ke belakang.
Ketika sumber-sumber kernel WSL tersedia, mereka akan terdiri dari tautan-tautan ke satu set tambalan dan dari bagian stabil yang telah lama dimainkan dari sumber-sumber tersebut. Microsoft berharap bahwa seiring waktu daftar ini akan menyusut karena tambalan menyebar ke arah hulu, dan tambalan lokal baru akan ditambahkan untuk mendukung fitur WSL terbaru.
Desain jendela lebih menyenangkan
Microsoft juga mengumumkan perilisan versi “musim dingin” Windows Terminal yang akan datang, aplikasi baru untuk pengguna yang bekerja dengan piranti baris perintah dan cangkang, khususnya, Prompt Perintah, PowerShell, dan WSL.
Terminal WindowsWindows Terminal 1.0 menawarkan banyak opsi pengaturan dan konfigurasi yang memberikan kontrol lebih besar atas desain jendela terminal, serta atas cangkang / profil yang seharusnya terbuka sebagai tab baru.
Pengaturan akan disimpan dalam file teks terstruktur, membuatnya mudah untuk mengkonfigurasi dan merancang jendela terminal sesuai selera Anda.
Microsoft berhenti memperbarui konsol Windows yang ada, dan membuat yang baru dari awal, memutuskan untuk mengambil pendekatan baru. Terminal Windows menginstal dan berjalan secara paralel dengan aplikasi Windows Console yang ada, yang keluar dari kotak.
Bagaimana cara kerjanya
Ketika pengguna Windows 10 langsung meluncurkan Cmd / PowerShell / etc, proses yang dilampirkan ke instance Konsol biasa akan diaktifkan. Mekanisme konfigurasi terminal baru memungkinkan pengguna Windows untuk membuat banyak profil untuk semua cangkang / aplikasi / alat yang mereka inginkan, baik di PowerShell, baris perintah, Ubuntu, atau bahkan dengan koneksi SSH ke perangkat Azure atau Internet of Things.
Profil ini dapat mencakup kombinasi desain font dan ukuran font, tema warna, tingkat keburaman atau transparansi latar belakang mereka sendiri. Selain itu, pengguna akan dapat memilih font monospace baru sehingga jendela terminal terlihat lebih modern dan lebih dingin. Font ini menyediakan ligatur programmer, itu akan diletakkan di domain publik dan akan disimpan dalam repositori sendiri.
Keuntungan utama dari antarmuka perintah Windows baru adalah banyak tab dan teks yang indah. Dukungan untuk banyak tab dianggap sebagai permintaan paling populer untuk pengembangan terminal. Teks yang indah diperoleh berkat mesin rendering berbasis DirectWrite / DirectX, yang dilengkapi dengan akselerasi GPU.
Mesin menampilkan ikon teks, mesin terbang, dan karakter khusus dalam font, termasuk ideogram Cina, Jepang, dan Korea (CJK), emoji, karakter powerline, ikon, dan ligatur programmer. Selain itu, mesin ini menampilkan teks lebih cepat daripada GDI yang sebelumnya digunakan di konsol.
Kompatibilitas mundur tetap ada, meskipun Anda dapat mencoba Terminal Windows jika diinginkan.
Timeline: bagaimana jadinya
Microsoft akan menyediakan Terminal Windows melalui Microsoft Store di Windows 10 dan memperbaruinya secara teratur. Dengan demikian, pengguna akan selalu bekerja dengan versi terbaru dan peningkatan terbaru - dengan hampir tidak ada usaha ekstra.
Microsoft berencana untuk meluncurkan terminal baru musim dingin ini. Setelah Microsoft meluncurkan Windows Terminal 1.0, pengembang akan terus berurusan dengan banyak fitur yang sudah disisihkan dalam jaminan.
Kode sumber untuk Terminal Windows dan Konsol Windows
sudah diunggah ke GitHub.
Apa yang bisa kita harapkan di masa depan?
Kemungkinan bahwa Microsoft akan menggunakan kernel Linux sendiri untuk tujuan lain, misalnya, untuk mengembangkan distribusi Linux sendiri, tampaknya agak hipotetis saat ini.
Mungkin, hasilnya tergantung pada apakah Microsoft dapat mendeteksi permintaan nyata untuk produk semacam itu, dan peluang komersial apa yang dapat dibuka oleh pengembangan seperti itu, kata Charles King.
Dia berpikir bahwa di masa mendatang, perusahaan akan memfokuskan pekerjaan utamanya untuk memastikan kompatibilitas Windows dan Linux yang semakin dekat dan saling melengkapi mereka.
Joshua Schwartz percaya bahwa dalam hal ini akan perlu untuk menimbang investasi apa yang akan dilakukan dalam pekerjaan ini dan apa pengembaliannya. Jika hari ini Microsoft adalah perusahaan yang sangat muda, itu mungkin akan melakukan segalanya berdasarkan Linux. Namun, mem-porting semua praktik terbaik yang sudah dimiliki Microsoft ke arsitektur Linux asli hari ini tampaknya seperti proyek yang mahal dan rumit yang sulit terbayar. Pecinta Linux akan mendapatkan Linux untuk diri mereka sendiri, dan arsitektur dasar akan tetap tak tersentuh.
Ketika Apple menemukan Mac OS lagi pada tahun 2000, sistem operasi didasarkan pada BSD Unix, yang lebih mirip dengan Linux daripada DOS. Hari ini, versi baru Microsoft Windows dibuat khusus berdasarkan Linux.
Mungkin pintu baru terbuka di depan kita?
Kernel Linux Microsoft dapat membuka jalan untuk kolaborasi yang lebih dekat antara layanan Windows dan sistem operasi Linux. Faktanya, perkembangan Microsoft ini membuktikan bahwa Microsoft sendiri sudah memahami bahwa saat ini hampir tidak ada klien yang lebih memilih untuk hidup di dunia di mana Windows ada di mana-mana.
Adalah jauh lebih bijaksana untuk menggunakan teknologi dan sistem heterogen yang paling memenuhi persyaratan bisnis dan situasi praktis tertentu.
Pertanyaan strategis yang lebih penting adalah, peluang strategis baru apa yang terbuka untuk platform Microsoft itu sendiri?
Azure, ekosistem berbasis cloud Microsoft, sudah menyediakan dukungan luar biasa untuk Linux. Sebelumnya, Windows mendukung Linux dengan baik dengan mesin virtual.
Perubahan mendasar yang terjadi saat ini terhubung dengan fakta bahwa sekarang proses Linux akan dijalankan secara native pada kernel Windows, yang berarti bekerja dengan Linux dari Windows akan berjalan lebih cepat daripada pada mesin virtual. Sangat mungkin bahwa sebagai hasilnya, Azure akan diperkaya oleh seluruh lapisan insinyur yang menggunakan Linux pada skala industri.