Windows Subsystem for Linux

Windows Subsystem for Linux (WSL) (tr. Linux için Windows Alt Sistemi), Windows 10, Windows 11, Windows Server 2019 ve Windows Server 2022 üzerinde yerel olarak Linux ikili yürütülebilir dosyalarını (ELF biçimindeki) çalıştırmak için kullanılan uyumluluk katmanıdır.

Mayıs 2019'da, gerçek bir Linux çekirdeği gibi önemli değişiklikleri Hyper-V özelliklerinin bir alt kümesi aracılığıyla sunan WSL 2 duyuruldu. Haziran 2019'dan bu yana WSL 2, Home sürümü de dahil olmak üzere Windows Insider programı aracılığıyla Windows 10 müşterilerine sunulmaktadır. WSL, varsayılan olarak tüm Windows 10 kullanıcıları tarafından kullanılamaz. Windows Insider programına katılarak veya manuel kurulumla kurulabilir.

Microsoft'un Windows'ta Unix benzeri uyumluluğu elde etmeye yönelik ilk hamlesi, yerini MKS/Interix aracılığıyla Windows Services for UNIX'e bırakan ve sonunda Windows 8.1'in piyasaya sürülmesiyle kullanımdan kaldırılan Microsoft POSIX Subsystem ile başladı. Windows Subsystem for Linux'un arkasındaki teknoloji, bazı Android uygulamalarının Windows 10 Mobile'da çalışmasını sağlayan, yayınlanmamış Project Astoria'dan kaynaklanmaktadır. İlk olarak Windows 10 Insider Preview yapı 14316'da kullanıma sunuldu.

Microsoft'un önceki projeleri ve üçüncü taraf Cygwin, POSIX standardına dayalı kendi benzersiz Unix benzeri ortamlarını yaratmaya odaklanırken, WSL yerel Linux uyumluluğunu hedeflemektedir. Cygwin'in yaptığı gibi yerel olmayan işlevleri Win32 sistem çağrılarına sarmak yerine, WSL'nin ilk tasarımı (WSL 1), Linux programlarına çekirdek moduna bağlı özel, yalıtılmış minimum işlemler ("pico işlemler" olarak bilinir) olarak hizmet vermek için NT çekirdek yöneticisinden yararlandı " pico sağlayıcıları", mümkün olan her yerde mevcut NT uygulamalarını yeniden kullanmayı tercih eden, normal bir NT işleminden farklı olarak özel sistem çağrısı ve istisna işleyicileri olarak sunulur.

WSL beta, 2 Ağustos 2016'da Windows 10 sürüm 1607'de (Yıldönümü Güncellemesi) tanıtıldı. Yalnızca Ubuntu (varsayılan kabuk olarak Bash ile) destekleniyordu. WSL beta ayrıca "Bash on Ubuntu on Windows" veya "Bash on Windows" olarak da adlandırıldı. WSL, 17 Ekim 2017'de yayınlanan Windows 10 sürüm 1709'da (Fall Creators Update) artık beta değildi. Birden çok Linux dağıtımı kurulabilir ve Windows Mağazasında kurulabilir.

2017'de Richard Stallman, Linux işlevselliğini Windows'a entegre etmenin yalnızca özgür yazılımın geliştirilmesini engelleyeceğinden korktuğunu dile getirerek WSL gibi çabaları "özgürlük kampanyasında geriye doğru bir adım" olarak nitelendirdi.

WSL (bu ilk tasarım yoluyla) önceki Windows üzerinde UNIX projelerinden çok daha hızlı ve muhtemelen çok daha popüler olmasına rağmen, Windows çekirdek mühendisleri, mevcut NT çekirdeğini tanımak için yeniden şekillendirmeye çalışarak WSL'nin performansını ve sistem çağrısı uyumluluğunu artırmaya çalışmakta zorluk çektiler. ve Linux'un API'sinde doğru şekilde çalışır. 2018'deki bir Microsoft Ignite konferansında, Microsoft mühendisleri, sanallaştırılmış bir çekirdeğin ana bilgisayardaki NT ilkellerini doğrudan kullanabileceği kapsayıcılaştırma için yeni bir "hafif" Hyper-V VM teknolojisi hakkında üst düzey bir genel bakış sundu. 2019'da Microsoft, gerçek (özelleştirilmiş) Linux çekirdeği görüntülerini barındıran bu hafif VM teknolojisini kullanan ve tam sistem çağrısı uyumluluğu iddiasında bulunan tamamen yeniden tasarlanmış bir WSL mimarisini (WSL 2) duyurdu. Microsoft, 6 Mayıs 2019'da WSL 2'yi duyurdu ve Windows 10 sürüm 2004 ile birlikte gönderildi. Ayrıca Windows 10 sürüm 1903 ve 1909'a da desteklendi.

GPU hızlandırmalı makine öğrenimi yapmak için WSL 2'ye yönelik GPU desteği, Windows build 20150'de tanıtıldı. Grafik kullanıcı arabirimleri (GUI'ler) ile Linux uygulamalarını çalıştırmak için WSL 2 için GUI desteği, Windows yapı 21364'te tanıtıldı. Her ikisi de Windows 11'de gönderilir.

Nisan 2021'de Microsoft, WSL 2 ve CBL-Mariner kullanarak Linux grafik kullanıcı arabirimi (GUI) uygulamalarını çalıştırma özelliğini de içeren bir Windows 10 test derlemesi yayınladı. Linux GUI için Windows Alt Sistemi (WSLg), Microsoft Build 2021 konferansında resmi olarak yayınlandı. Windows 10 Insider derleme 21364 veya sonraki sürümlerinde bulunur.

Microsoft, Windows 11, için 11 Ekim 2021'de WSL'nin Windows Mağazası sürümünü kullanıma sundu ve WSL, 16 Kasım 2022'de 1.0.0 sürümüne ulaştı.

Microsoft, WSL'yi "öncelikle geliştiriciler için bir araç - özellikle web geliştiricileri ve açık kaynak projeleri üzerinde veya bunlarla çalışanlar" olarak tasavvur eder. Eylül 2018'de Microsoft, "WSL'nin tam bir sanal makineden daha az kaynak (CPU, bellek ve depolama) gerektirdiğini" (WSL'den önce Linux yazılımını bir Windows ortamında çalıştırmanın en doğrudan yoluydu) söyledi. Windows uygulamalarını ve Linux araçlarını aynı dosya grubunda kullanmak için.

WSL'nin ilk sürümü, Microsoft tarafından geliştirilmiş, Linux çekirdek kodu içermeyen, daha sonra üzerinde Ubuntu gibi bir Linux dağıtımının kullanıcı alanını çalıştırabilen, Linux uyumlu bir çekirdek arabirimi sağlar openSUSE, SUSE Linux Enterprise Server, Debian ve Kali Linux. Böyle bir kullanıcı alanı, yerel GNU komut satırı araçları (sed, awk, vb.), programlama dili yorumlayıcıları (Ruby, Python, vb.) ve hatta grafik uygulamaları (bir Ana bilgisayar tarafında X11 sunucusu).

wsl.exe komutu, komut satırında Linux için Windows Alt Sistemindeki dağıtımları yönetmek için kullanılır. Kullanılabilir dağıtımları listeleyebilir, varsayılan bir dağıtım ayarlayabilir ve dağıtımları kaldırabilir. Komut, Linux ikili dosyalarını Windows Komut İstemi veya Windows PowerShell'den çalıştırmak için de kullanılabilir. wsl.exe, Windows 10 1803 ve sonrasında kullanımdan kaldırılan lxrun.exe yerini almıştır.

Windows Subsystem for Linux GUI (WSLg), tam entegre bir masaüstü deneyiminde Windows üzerinde Linux GUI uygulamalarını (X11 ve Wayland) çalıştırmak için destek sağlamak amacıyla oluşturulmuştur. WSLg, Microsoft Build 2021 konferansında resmi olarak yayınlandı ve Windows 10 Insider build 21364 veya sonraki sürümlerine dahil edildi. Bununla birlikte, Windows 11'in piyasaya sürülmesiyle, WSLg nihayet bir Windows üretim yapısıyla birlikte geliyor ve WSL uygulamalarında hem grafik hem de ses için destek sağlıyor. FreeRDP , RDP protokolü özelliklerine göre RDP Sunucusundan (Weston'da) RDP İstemcisine (Windows'ta mstsc) giden tüm iletişimleri kodlamak için kullanılır.

LXSS Yönetici Hizmeti, alt sistemle ( ve sürücüleri aracılığıyla) etkileşimden ve Bash.exe'nin (Linux dağıtımları tarafından sağlanan Kabuklarla karıştırılmamalıdır) Linux'u başlatma biçiminden sorumlu hizmettir. yürütülürken Linux sistem çağrılarını ve ikili kilitleri işlemenin yanı sıra. Belirli bir kullanıcı tarafından çağrılan tüm Linux süreçleri bir "Linux Örneği"ne gider (genellikle ilk çağrılan süreç init'tir ). Tüm uygulamalar kapatıldığında, örnek kapatılır.

WSL 1'in tasarımında donanım öykünmesi / sanallaştırma özelliği yoktu (coLinux gibi diğer projelerin aksine) ve ana bilgisayar dosya sistemini ( ve aracılığıyla) ve birlikte çalışabilirliği garanti eden ağ gibi donanımın bazı kısımlarını doğrudan kullanır . Örneğin, web sunucularına ana bilgisayarda yapılandırılan aynı arabirimler ve IP adresleri aracılığıyla erişilebilir ve yönetici izinleri gerektiren bağlantı noktalarının veya halihazırda başka uygulamalar tarafından kullanılan bağlantı noktalarının kullanımıyla ilgili aynı kısıtlamaları paylaşır. Kabuktan sudo ile kök olarak çalışırken bile erişimi/değişikliği kısıtlanmış belirli konumlar (sistem klasörleri gibi) ve yapılandırmalar vardır. Gerçek kök ayrıcalıkları vermek için "sudo" almak ve bu tür erişime izin vermek için yükseltilmiş ayrıcalıklara sahip bir örnek başlatılmalıdır.

WSL 1, 32-bit ikili dosyalar, gibi tüm Linux yazılımlarını veya WSL'de uygulanmayan belirli Linux çekirdek hizmetlerini gerektirenleri çalıştıramaz. WSL 1'de herhangi bir "gerçek" Linux çekirdeği bulunmaması nedeniyle, aygıt sürücüleri gibi çekirdek modülleri çalıştırılamaz. Ancak WSL 2, canlı sanallaştırılmış Linux çekirdeği örneklerinden yararlanır. Windows (ana bilgisayar) ortamında (VcXsrv veya Xming gibi) bir X11 sunucusu kurarak bazı grafik (GUI) uygulamaları (Mozilla Firefox gibi) çalıştırmak mümkündür, ses desteği (ancak bu, PulseAudio'yu X11'e benzer bir şekilde Windows'a yükleyerek giderilebilir) veya donanım hızlandırma (düşük grafik performansıyla sonuçlanır). OpenCL ve CUDA desteği de şu anda uygulanmıyor, ancak gelecekteki sürümler için planlanıyor. Microsoft, WSL'nin masaüstü bilgisayarlar veya üretim sunucuları için değil, uygulamaların geliştirilmesi için tasarlandığını belirterek, bu amaçlar için sanal makinelerin (Hyper-V ), Kubernetes ve Azure'un kullanılmasını önerdi.

Kıyaslamalarda WSL 1'in performansı genellikle yerel Linux Ubuntu, Debian, Intel Clear Linux veya diğer Linux dağıtımlarına yakındır. G/Ç, bazı testlerde WSL için bir darboğazdır. Yeniden tasarlanan WSL arka ucunun, Microsoft tarafından WSL 1'e kıyasla belirli işlemlerde yirmi kat hız artışı sunduğu iddia ediliyor. Haziran 2020'de, AMD Threadripper 3970x ile 173 testten oluşan bir kıyaslama, yerel Ubuntu 20.04.0 LTS'nin performansının %87'si ile WSL 2 (20H2) ile iyi performans gösteriyor. Bu, bu karşılaştırmada yerel Ubuntu'nun performansının yalnızca %70'ine sahip olan WSL 1'e göre bir gelişmedir. WSL 2, G/Ç performansını iyileştirerek yerele yakın bir düzey sağlar. Mayıs 2020'de Intel i9 10900K ile yapılan 69 testin karşılaştırması, neredeyse aynı göreli performansı gösteriyor. Aralık 2020'de AMD Ryzen 5900X ile yapılan 43 testten oluşan bir kıyaslama, yerel 20.04.1 LTS'nin performansının %93'ü ile WSL 2 (20H2) ile iyi performans gösteriyor. Bu, bu karşılaştırmada yalnızca %73'e sahip olan WSL 1'e göre bir gelişmedir.

Sürüm 2, mimaride değişiklikler sunar. Microsoft, çekirdeği ve dağıtımları (çekirdeğe dayalı) çalıştırmak için yüksek düzeyde optimize edilmiş bir Hyper-V özellikleri alt kümesi aracılığıyla sanallaştırmayı seçti ve WSL 1'e eşdeğer performans vaat etti. Geriye dönük uyumluluk için, geliştiricilerin yayınlanan dağıtımlarında herhangi bir değişiklik yapmasına gerek yoktur. WSL 2 ayarları, Kullanıcı Profili klasöründeki .wslconfig adlı bir INI dosyasında bulunan WSL genel yapılandırması tarafından değiştirilebilir.

Dağıtım kurulumu, bir sanal disk içinde ext4 biçimli bir dosya sistemi içinde bulunur ve ana bilgisayar dosya sistemine, QEMU gibi diğer sanal makine teknolojilerine benzer şekilde, 9P protokolü aracılığıyla şeffaf bir şekilde erişilebilir. Kullanıcılar için Microsoft, WSL 1'in 20 katına kadar okuma/yazma performansı sözü verdi. Windows'tan, \\wsl$ UNC yol öneki kullanılarak Linux konuk dosya erişimi için bir IFS ağ yeniden yönlendiricisi sağlanır.

WSL 2, x64 sistemleri için Windows 11, veya Windows 10 sürüm 1903 veya üzerini, Build 18362 veya üzerini ve ARM64 sistemleri için Sürüm 2004 veya üzerini, Build 19041 veya üzerini gerektirir.