Merhaba, bu yazımda Windows 10 işletim sistemi üzerinde WSL2 ile Ubuntu kurulumu gerçekleştireceğiz.
WSL 2 Nedir? (Windows Subsystem for Linux 2 )
Linux için Windows Alt Sistemi, Linux ikili yürütülebilir dosyalarını yerel olarak Windows 10 ve Windows Server 2019’da çalıştırmak için bir uyumluluk katmanıdır. Mayıs 2019’da, bir Hyper-V özellikleri alt kümesi aracılığıyla gerçek bir Linux çekirdeği gibi önemli değişiklikler getiren WSL 2 hayatımıza getirdi.
Windows Subsystem for Linux ya da kısa adıyla WSL için, Windows 10 üzerinde sanal makine üzerinde bir Linux dağıtımı kurmaya gerek kalmadan bize Linux ortamı sağlayan bir özellik diyebiliriz.
Basit olarak konuşursak sanal makine olmadan Linux terminalini Windows üzerinde kullanmanızı sağlamaktadır. Git Bash gibi bir kaç UNIX komutu eklenmiş toollara göre farklılık göstermektedir. WSL üzerinde direkt olarak Linux uygulamalarını çalıştırabilirsiniz. WSL Linux kernelini Windows üzerinde çalıştırmak gibi bir şey. Kulağa iyi geliyor değil mi?
Eğer tecrübeli bir geliştiriciyseniz Linux’un sunucu bazlı işlemleri geliştirmek ve açık kaynaklı teknolojileri kullanmak istediğinizde en iyi çözüm olduğunu bilirsiniz. Bu işlemlerin hepsini tabiki Windows üzerinde de yapabilirsiniz ancak kullanıcı deneyiminiz Linux üzerindeki kadar iyi olmayacaktır. Bulut hosting firmalarının bir çoğu müşterilerine stabilite için Linux kullanımını önermektedir. WSL kullanarak Linux gerektiren işlemlerinizi uyumluluk sorunları yaşamadan kolayca çözebilmektesiniz.
WSL sayesinde bash scriptleri ve Linux’ta kullandığımız birçok komut satırı uygulamasını kullanabiliyoruz. Windows 10 version 1607 ile kullanmaya başladığımız WSL, Windows 10 build 18917 ile yeni versiyonu olan WSL2 olarak karşımıza çıkıyor.
WSL2’yi ilk versiyonla karşılaştırılacak olursak, Linux binary’lerinin Windows ve donanım ile olan etkileşimi ile ilgili mimari farklılıklar içeriyor. Linux kernel’ı çalıştırmak için arka planda yine bir sanallaştırma teknolojisi kullansa da sanal makineye ile karşılaştırıldığında çok daha performanslı bir sistem sağlıyor. IO performansında iyileştirmeler yapıldığına da eklemekte fayda var.
WSL2 ve WSL Arasındaki Farklar
WSL ve WSL2 arasında çok büyük gözle görünebilir farklar bulunmakta.
Şimdi WSL2 ile, tam bir Linux çekirdeğinin yanı sıra Hyper-V sanallaştırmasını kullanıyor. Ancak, bir VM kullanıldığını duyduğunuzda, bunun yönetmeniz gereken yeni bir parça olduğunu düşünmeniz gerekmiyor. WSL ile aynı kullanıcı deneyimini sağlamakta.
WSL 1 Nasıl Çalışıyor?
WSL 1, Linux sistem çağrılarının emülasyonu için LXSS Manager servisini kullanmakta, yani aslında ortada bir virtual machine veya container bulunmuyor. LXSS Manager, Windows kernel sistem çağrılarıyla, Linux kernel sistem çağrılarının birbirine map edilmesine sağlayan bir ara katman olarak görev yapıyor. Linux binary’leri Windows içerisinde çalışabiliyor. LXSS Manager ayrıca file system, networking gibi windows servislerini de map ettiği için, bunların Linux tarafından da erişebilmesini sağlıyor. Ortada bir virtual machine veya container yok derken kast ettiğim buydu. WSL, Windows kernel’ının üstünde bir Linux kernel interface’ini (arayüzünü) sanallaştırmakta.
WSL 1’i şuan bile herhangi bir Windows 10 bilgisayarda kullanabilirsiniz. Tek yapmanız gereken Windows’un WSL özelliğini aktive etmeniz. Bunu yapmak için aşağıdaki komutu Yönetici olarak çalıştırdığınız PowerShell üzerinde çalıştırabilirsiniz.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
WSL 2 Nasıl Çalışıyor?
WSL 1 her ne kadar çok iyi bir teknoloji olsa da malesef belli sınırlamalar bulunuyor.
WSL 1 aslında içerisinde “gerçek” bir linux kernel barınmamakta. 32-bit uygulamaları çalıştırmıyor ve spesifik Linux kernel servisleri ve modülleri de implemente edilmediği için, bunlara ihtiyaç duyan uygulamaları da çalıştıramıyor.
WSL 1 için en güzel örnek sanırım Docker. Maalesef bu tip kısıtlamalardan dolayı WSL 1’de native olarak Docker çalıştırmak imkansız.
Microsoft WSL 2 ile beraber bazı mimari değişiklikler yaptı. WSL 2 ile beraber Windows içerisine gerçek bir Linux kernel’ı geliyor. Bu yeni kernel, tamamen bu iş için optimize edilmiş, oldukça hafif bir Hyper-V subsystem tarafından çalıştırılmakta. Bu noktada akıllara “WSL 1’in çıkış amacı zaten virtualization’ın getirdiği yüklerden kurtulmak için değil miydi?” sorusu gelebilir. Microsoft’un buradaki iddiası genel performans anlamında WSL 1’e oldukça yakın olduğu yönünde. Yine Microsoft WSL 2’nin bazı operasyonlarda WSL 1’e göre 20 kat daha fazla performans gösterdiğini iddia ediyor.
Burada aslında dikkat edilmesi gereken nokta performans farklılıklarından ziyade WSL 2’nin gerçek bir Linux kernel ile gelmesi. Hemen akıllara Docker’ın çalışıp çalışmadığı sorusu gelebilir. Evet arkadaşlar WSL 2 içerisinde Docker Engine çalıştırabiliyoruz. Daha iyisi ise Docker Desktop on Windows’a WSL 2 backend desteğinin gelmiş olması. Yani Docker artık Windows içerisinde çalışmak için Hyper-V’de bir linux virtual machine olmasına ihtiyaç duymuyor. Böylelikle Docker’ın boot süresi oldukça azalıyor.
WSL 2, WSL 1 ile tamamen geriye uyumluluk gösteriyor, yani mevcut WSL 1 Linux distro’larınızı sorunsuz bir şekilde WSL 2 modunda çalıştırabiliyorsunuz.
WSL 2 Kurulumu
Şimdi ise Windows 10 Pro sistemimiz üzerinde WSL 2 kurulumunu gerçekleştirelim.
Ben şuan tüm güncellemeri yapılmış bir sistem kullanmaktayım ve sistemim WSL desteğine sahip.
Siz de WSL desteğine sahip olup olmadığını kontrol etmek istiyorsanız Win + R tuşları ile beraber “winver” yazarak kontrol edebilirsiniz.
Yukarı da bulunan görseli görüyorsanız evet sisteminize şimdi WSL 2 kurabilirsiniz.
Öncelikle Denetim Masası + Programlar + Windows Özelliklerini Aç veya Kapa uygulamasına geliniz. Linux için Windows Alt Sistemi ve Sanal Makine Platformu nesnelerine ait tik işaretleyerek tamam demeniz gerekiyor. Sonrasında gerekli güncellemeyi sistem yaparak yeniden başlatacaktır.
Şuan WSL 1 Kurulumunu tamamladık.
Bu kurulumları PowerShell üzerinden de gerçekleştirebilirsiniz.
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
WSL Kurulumu tamamlandı. WSL 2 olarak çalıştırabilmek için aşağıda ki linkten WSL 2 güncellemesini yüklememiz gerekiyor.
Dosyamızı indirdikten sonra hemen kuruluma geçebiliriz.
Next Adımı ile ilerliyoruz ve kurulumu tamamlıyor.
Bilgisayarımız tekrar açıldıktan sonra Microsoft Store üzerinden Ubuntu dağıtımını indirebiliriz. Ya da farklı bir linux dağıtımı indirebilirsiniz.
Microsoft Store üzerinden indirmeye başladığımız UBUNTU indirme işlemi tamamlandıktan sonra. Uygulamamızı açabiliriz.
İlk açtığımız zaman ufak bir kurulum yapacaktır.
Kurulum işlemi tamamlandıktan sonra bizden Kullanıcı oluşturmamızı istemekte.
Kullanıcı oluşturma işleminden sonra şifre oluşturmamız gerekiyor.
Kullanıcı adımızı ve şifremizi oluşturduk. WSL üzerinden çalışan ubuntu hazır.
Şimdi ise hangi WSL sürümünde çalıştığımızı kontrol edelim.
wsl.exe -l -v
Görsel de gördüğünüz gibi WSL 2 versiyonunda ubuntu hazır.
Eğer daha önce den WSL 1 üstünde çalışan bir distronuz bulunuyor ise aşağıdaki komut ile WSL 2 sürümüne yükseltebilirsiniz.
wsl — set-version <Distro> 2
Ya da tüm distrolarınız default olarak WSL 2 olarak çalışmasını istiyorsanız aşağıda ki komut satırını kullanabilirsiniz.
wsl --set-default-version 2
Not: WSL 2 sürümüne geçiş sırasında sisteminiz de “Disk encryption” aktif ise powershell tarafında hata alabilirsiniz. Bunun için Disk Encryption kapatmanız gerekmekte.
Bir sonraki yazımda WSL2 üzerinde Backup ve Restore işlemlerini anlatacağım