Eskiden Windows'ta Linux araçlarına ihtiyaç duyan bir geliştiricinin önünde iki seçenek vardı: çift önyükleme kurmak ya da ağır bir sanal makine çalıştırmak. İkisi de zaman ve kaynak kaybıydı. WSL, yani Windows Subsystem for Linux, bu ikilemi ortadan kaldırdı. Windows masaüstünü hiç kapatmadan gerçek bir Linux terminali açmayı mümkün kılıyor. Bu rehberde WSL'in nasıl çalıştığını, kurulumunu ve günlük kullanımda dikkat edilmesi gereken noktaları ele alıyorum.
WSL Nedir, Ne İşe Yarar
WSL, Windows içinde bir Linux dağıtımı çalıştırmayı sağlayan bir Microsoft teknolojisi. Geleneksel sanal makinelerden farkı çok daha hafif ve entegre olması. Ayrı bir işletim sistemi penceresi açmak yerine Linux terminali doğrudan Windows'un bir parçası gibi davranır.
Sanal makineler kendi işletim sistemlerini baştan başlatır, bu da dakikalar sürer ve gigabaytlarca disk alanı ister. WSL ise saniyeler içinde açılır, çünkü Windows'un altyapısıyla doğrudan konuşur.
wsl --install
Bu tek komut WSL'i etkinleştirir ve varsayılan Linux dağıtımını, genelde Ubuntu'yu, kurar. Kurulumdan sonra Başlat menüsünden Ubuntu'yu açtığınızda karşınıza tam teşekküllü bir Linux terminali çıkar; apt, curl, ssh gibi araçlar hazır bekler. Kurulum sırasında bir kullanıcı adı ve parola belirlemeniz istenir; bu bilgiler yalnızca Linux tarafında geçerlidir, Windows hesabınızdan bağımsızdır.
Sürüm farkları ve gelişmiş yapılandırma seçenekleri için Microsoft'un WSL dokümantasyonu güvenilir bir başvuru kaynağıdır; komut listesinden .wslconfig seçeneklerine kadar en güncel ayrıntıları orada bulabilirsiniz.
WSL 1 ve WSL 2 Arasındaki Fark
WSL'in iki mimarisi var ve aralarındaki fark kullanımda hissediliyor. İlk sürüm, Linux sistem çağrılarını Windows çağrılarına çeviren bir uyumluluk katmanıydı. İşlevseldi ama Docker gibi çekirdek özelliklerine ihtiyaç duyan bazı araçlarla sorun çıkarıyordu.

WSL 2 ise gerçek bir Linux çekirdeği kullanır ve hafif bir sanallaştırma katmanı üzerinden çalışır. Bu, dosya sistemi performansını ve uygulama uyumluluğunu ciddi biçimde artırdı. Hangi sürümü kullandığınızı görmek için şu komutu çalıştırabilirsiniz:
wsl --list --verbose
NAME STATE VERSION
* Ubuntu Running 2
Bir dağıtımı WSL 2'ye geçirmek istediğinizde şu komut yeterli:
wsl --set-version Ubuntu 2
Çoğu modern kullanım için WSL 2 önerilir; daha iyi uyumluluk ve performans sunar. Docker gibi konteyner araçlarıyla çalışacaksanız WSL 2 neredeyse zorunludur.
Birden fazla dağıtım kurup aralarında geçiş yapabilirsiniz. Bir proje için Ubuntu, başka bir proje için Debian kullanmak istiyorsanız aşağıdaki komutlar işinizi görür:
wsl --install -d Debian
wsl -d Debian
Her dağıtım kendi bağımsız dosya sistemine ve paket yönetimine sahiptir; birini bozmanız diğerini etkilemez. Bu izolasyon, farklı projeler için farklı sürüm gereksinimlerini bir arada tutmayı kolaylaştırır.
Dosya Sistemi Entegrasyonu
WSL'in en kullanışlı özelliği, Windows ve Linux dosya sistemleri arasındaki geçişkenlik. Linux tarafından Windows dosyalarınıza şu yoldan ulaşabilirsiniz:
cd /mnt/c/Users/KullaniciAdi/Belgeler
Windows Gezgini'nden de Linux dosya sistemine erişebilirsiniz; adres çubuğuna \\\\wsl$ yazmanız yeterli. Bu çift yönlü erişim, bir dosyayı Windows'ta düzenleyip Linux'ta işlemenizi ya da tam tersini kolaylaştırır.
Performans konusunda bilinmesi gereken bir kural var: üzerinde çalıştığınız dosyaları, hangi sistemin araçlarını kullanıyorsanız o sistemin yerel dosya sisteminde tutun. Linux araçlarıyla (git, npm, make) çalışıyorsanız dosyaları Linux dosya sisteminde (/home/kullanici/proje) tutmak, Windows dosya sisteminden (/mnt/c/...) çalışmaktan gözle görülür biçimde hızlıdır.
# Yavaş: Windows dosya sisteminden çalışmak
cd /mnt/c/projelerim/site
# Hızlı: Linux dosya sisteminde çalışmak
cd ~/projelerim/site
Bu tek değişiklik, büyük projelerde derleme ve test sürelerini gözle görülür biçimde kısaltır.
WSL ile Geliştirme Ortamı Kurmak
Web geliştirme, WSL'in en çok kullanıldığı alanlardan biri. Node.js kurmak için aşağıdaki komutları çalıştırmanız yeterli:

sudo apt update
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
Kod editörü olarak VS Code kullanıyorsanız, WSL uzantısı sayesinde Windows'taki editörünüzden doğrudan Linux dosya sistemine bağlanabilirsiniz. Bir proje klasöründe şu komutu çalıştırmanız yeterli:
code .
Bu komut VS Code'u açar ve otomatik olarak WSL bağlantısını kurar; editör Windows'ta görünür ama terminal, derleme ve hata ayıklama Linux tarafında çalışır. Bu kurulum, üretim sunucusu Linux olan projelerde geliştirme ve üretim ortamları arasındaki tutarlılığı korur; "benim makinemde çalışıyordu" sorununu büyük ölçüde azaltır.
Python, Go veya Rust gibi diğer dilleri kurmak da aynı mantıkla ilerler: paket yöneticisi üzerinden kurar, Linux'un araç zincirini doğrudan kullanırsınız.
sudo apt install python3-pip golang-go
Bu tek satır, iki farklı dilin geliştirme ortamını aynı anda hazırlar. Windows tarafında ayrı ayrı kurulum sihirbazları çalıştırmak yerine, paket yöneticisinin bağımlılık çözümlemesine güvenirsiniz.
Docker ve Konteynerlerle Çalışmak
Docker Desktop, WSL 2 arka ucunu kullanarak konteynerleri doğrudan Linux çekirdeği üzerinde çalıştırır. Bu entegrasyon sayesinde konteynerler eski WSL 1'e kıyasla çok daha hızlı başlar ve daha az kaynak tüketir.

docker run hello-world
Bu komutu WSL terminalinde çalıştırdığınızda, Docker Desktop arka planda WSL 2 dağıtımınızla konuşarak konteyneri başlatır. Ayarlar menüsünden hangi WSL dağıtımlarının Docker'a entegre olacağını seçebilirsiniz; bu, farklı projeler için farklı ortamlar kullanmanıza olanak tanır.
Kaynak kullanımını sınırlamak isterseniz, kullanıcı dizininizde bir .wslconfig dosyası oluşturabilirsiniz.
[wsl2]
memory=4GB
processors=2
Bu dosya, WSL'in ayırabileceği maksimum bellek ve işlemci sayısını belirler; özellikle sınırlı kaynaklı makinelerde WSL'in tüm belleği tüketmesini önler.
Sık Karşılaşılan Sorunlar
WSL kurulumunda en sık karşılaşılan sorun, sanallaştırmanın BIOS'ta kapalı olmasıdır. Bu durumda wsl --install komutu hata verir; BIOS'tan Intel VT-x veya AMD-V özelliğini açmanız gerekir.
Ağ bağlantısı sorunları da yaygındır. Kurumsal VPN kullanan makinelerde WSL'in DNS çözümlemesi bazen bozulabilir. Bu durumda /etc/resolv.conf dosyasını elle düzenlemek geçici bir çözüm sunar; kalıcı çözüm için .wslconfig üzerinden ağ modunu değiştirmek gerekebilir.
Bellek kullanımı zamanla artıyorsa, WSL'i tamamen kapatıp yeniden başlatmak genelde yeterli olur.
wsl --shutdown
Bu komut tüm WSL dağıtımlarını durdurur; bir sonraki terminal açılışında temiz bir oturum başlar.
Disk kullanımı da zamanla şişebilir. Özellikle Docker imajları biriktikçe WSL'in sanal disk dosyası (ext4.vhdx) büyür, silinen dosyalar otomatik olarak küçülmez. Bu durumda diski manuel olarak sıkıştırmak gerekir. PowerShell'de WSL'i kapattıktan sonra diskpart aracıyla ilgili vhdx dosyasını compact vdisk komutuyla küçültebilirsiniz; bu işlem birkaç dakika sürer ama gigabaytlarca yer geri kazandırır.
Ne Zaman WSL, Ne Zaman Tam Linux
WSL her senaryoya uymaz. GPU yoğun makine öğrenimi görevleri, düşük seviye çekirdek geliştirmesi veya donanıma doğrudan erişim gerektiren işler için gerçek bir Linux kurulumu ya da bulut sunucusu daha uygundur. Günlük web geliştirme, betik yazma ve sistem yönetimi öğrenimi için WSL fazlasıyla yeterlidir.
Windows'un tanıdık masaüstünü bırakmadan Linux'un komut satırı gücünden yararlanmak isteyenler için WSL, kurulumu birkaç dakika süren pratik bir çözümdür. Bir kere alıştıktan sonra, iki sistem arasında geçiş yapmak yerine tek bir terminalde çalıştığınızı fark edersiniz.
Veri bilimi ve makine öğrenimi alanında çalışanlar için de WSL kullanışlı bir köprü kurar. Python kütüphanelerinin büyük kısmı önce Linux'ta test edilir ve belgelenir; WSL üzerinden bu kütüphaneleri sorunsuz kurup, sonuçları Windows'taki bir not defteri veya görselleştirme aracıyla inceleyebilirsiniz. Sistem yöneticiliği öğrenmek isteyenler için de WSL, gerçek bir Linux sunucusu kiralamadan önce komutları ve betikleri güvenle deneyebileceğiniz bir alan sağlar.
Henüz yorum yok.
Sohbete katıl. Yorumlar yayınlanmadan önce moderasyondan geçer.