1. Anasayfa
  2. Uncategorized

Windows Subsystem for Linux 2 (WSL2)


Microsoft’un geliştirdiği Windows Subsystem for Linux 2 (WSL2), Windows işletim sistemi üzerinde tam teşekküllü bir Linux deneyimi sunan modern bir altyapıdır. WSL1’in sınırlamalarını aşarak gerçek Linux kernel’i üzerine inşa edilen WSL2, özellikle geliştiriciler, sistem yöneticileri ve güvenlik uzmanları için büyük avantajlar sağlar.

Bugün, karmaşık yazılım geliştirme projeleri, DevOps süreçleri, ağ simülasyonları ve siber güvenlik laboratuvarları Linux ortamlarına ihtiyaç duymaktadır. Ancak birçok kurumun masaüstü ve kurumsal standartları Windows üzerine kuruludur. WSL2 tam da bu boşluğu doldurur: Linux’un gücü ile Windows’un uyumluluğunu birleştirir.

WSL2’nin Temel Özellikleri

Gerçek Linux Kernel ve Performans

  • WSL1’de Linux çağrıları Windows çekirdeğine çevrilirken WSL2’de doğrudan Linux kernel çalışır.
  • Container teknolojilerinde tam uyumluluk: Docker, Kubernetes, Podman gibi araçlar native şekilde çalışır.
  • Toolchain desteği: Python, Node.js, Go, Rust, .NET Core gibi dillerde build/test süreçleri performanslıdır.
  • Dosya sistemi I/O performansı, WSL1’e kıyasla neredeyse 2 kat daha hızlıdır.

İleri Seviye Entegrasyon

  • Dosya Paylaşımı: \\wsl$ ile Windows ↔ Linux arasında sorunsuz dosya erişimi.
  • Port Yönlendirme: Linux servisleri localhost üzerinden Windows tarafından erişilebilir.
  • IDE Entegrasyonu: VS Code, JetBrains IDE’leri ve Docker Desktop gibi popüler araçlarla native çalışma deneyimi.
  • İki Yönlü İş Akışı: Linux üzerinde derleme, Windows üzerinde test/debug senaryoları kolayca uygulanabilir.

Kurumsal Katkılar

  • Standardizasyon: Ekiplerin aynı Linux sürümünü kullanması, “it works on my machine” problemini büyük ölçüde azaltır.
  • Hızlı PoC: Yeni servislerin veya güvenlik bileşenlerinin kurulumu dakikalar içinde yapılabilir.
  • Güncelleme Yönetimi: Microsoft Store üzerinden gelen kernel güncellemeleri, operasyonel riskleri azaltır.
  • Policy & Compliance: WSL kullanımı kurum politikalarına dahil edilerek, hangi dağıtımların/eklentilerin onaylı olduğu tanımlanabilir.

WSL ile :

1. Yazılım Geliştirme

  • Linux-native toolchain’ler: Python, Node.js, Go, Rust, Java gibi dilleri Linux üzerinde geliştirebilirsin.
  • Derleyiciler ve paket yöneticileri: apt, yum, pip, npm, go, cargo gibi araçları kullanabilirsin.
  • Cross-platform geliştirme: Windows’ta yazdığın kodu Linux üzerinde test edebilir, “it works on my machine” sorununu minimize edersin.
  • IDE entegrasyonu: Visual Studio Code’un Remote – WSL eklentisiyle Linux dosyalarını Windows’taki VS Code’da açıp düzenleyebilirsin.

2. Docker ve Container Çalışmaları

  • Docker Desktop ile tam entegrasyon: WSL2 sayesinde Docker artık Windows’ta Linux kernel’i üzerinde çalışır.
  • Kubernetes (k3s, kind, minikube): Küçük ölçekli Kubernetes cluster’larını hızlıca kurabilir ve test edebilirsin.
  • Microservice testleri: Docker Compose ile servislerini ayağa kaldırıp Windows üzerinden test edebilirsin.

3. Ağ ve Sistem Testleri

  • Ağ simülasyonu: tc, netem, iproute2 gibi araçlarla gecikme, paket kaybı, bant genişliği sınırlaması gibi senaryoları test edebilirsin.
  • PoC ortamları: Proxy, DNS, firewall veya load balancer senaryolarını küçük ölçekte simüle edebilirsin.
  • Lab ortamı: IDS/IPS (Snort, Suricata), trafik analiz araçları (Zeek, Wireshark CLI) ile test yapabilirsin.

4. Siber Güvenlik Çalışmaları

  • Pentest araçları: nmap, masscan, hydra, sqlmap, metasploit gibi araçları Linux ortamında çalıştırabilirsin.
  • Zafiyetli uygulamalar: Docker üzerinden DVWA, Juice Shop gibi uygulamaları kurarak test laboratuvarı oluşturabilirsin.
  • Log ve trafik analizi: tshark, tcpdump, jq, grep ile veri analizi yapabilirsin.

5. Veri ve Yapay Zekâ Çalışmaları

  • Data Science kütüphaneleri: NumPy, Pandas, TensorFlow, PyTorch gibi araçlar Linux tarafında sorunsuz çalışır.
  • Jupyter Notebook: WSL2 üzerinde notebook açıp Windows tarayıcısından kullanabilirsin.
  • ML/AI pipeline testleri: GPU passthrough ile NVIDIA CUDA desteğini kullanabilirsin (destekleyen kartlarda).

6. Günlük İşler ve Otomasyon

  • Linux CLI avantajı: bash, zsh, vim, awk, sed gibi araçlarla güçlü betikler yazabilirsin.
  • Otomasyon: Backup, log temizliği, cron job’lar gibi işleri Linux tarafında yürütebilirsin.
  • İki yönlü dosya kullanımı: \\wsl$ ile Windows ve Linux dosyaları arasında sorunsuz paylaşım yapabilirsin.

7. Kurumsal Senaryolar

  • Standardize geliştirme ortamı: Tüm geliştiricilerin aynı Linux sürümünü kullanması sağlanır.
  • CI/CD ön testleri: Kod, CI/CD’ye girmeden önce Linux tarafında test edilebilir.
  • Policy & Compliance: Hangi Linux dağıtımlarının kullanılacağı, hangi paketlerin onaylı olduğu merkezi olarak belirlenebilir.

WSL2 Ön Gereksinimler

Donanım ve BIOS/UEFI

  • Intel VT-x veya AMD-V (SVM) desteği açık olmalı.
  • Hyper-V’nin kapatılmasına neden olan güvenlik yazılımlarına dikkat edilmeli.

İşletim Sistemi

  • Windows 11 (Build 22000+) önerilir.
  • Windows 10’un son sürümlerinde de WSL2 desteği bulunur ancak bazı özellikler sınırlı olabilir.

Windows Özellikleri

  • Windows Subsystem for Linux
  • Virtual Machine Platform
  • (Opsiyonel) Windows Hypervisor Platform
  • (Docker için önerilir) Hyper-V bileşenleri

WSL2 Kurulum Süreci

1. Tek Komutla Kurulum

PowerShell’i yönetici olarak açın ve çalıştırın:

wsl --install

Bu komut gerekli bileşenleri yükler, varsayılan olarak Ubuntu’yu indirir ve WSL2’yi etkinleştirir. İşlem bitince sistem yeniden başlatılır.

2. Manuel Kurulum (İnce Ayar İçin)

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

3. Dağıtım Seçmek

Mevcut dağıtımları listelemek için:

wsl --list --online

Örneğin Ubuntu kurmak için:

wsl --install -d Ubuntu

İlk açılışta kullanıcı adı ve parola sorulacaktır.

4. Kernel ve WSL Güncelleme

wsl --update
wsl --shutdown

Mevcut bir dağıtımı WSL2’ye dönüştürmek için:

wsl --set-version Ubuntu 2

İlk Yapılandırmalar

Paket Güncellemeleri

sudo apt update && sudo apt upgrade -y

VS Code Entegrasyonu

  • Windows tarafına VS Code yükleyin.
  • Remote – WSL eklentisini kurun.
  • Proje klasörünüzde:
code .

Docker Entegrasyonu

  • Docker Desktop yükleyin.
  • Ayarlarda Use the WSL 2 based engine seçeneğini açın.
  • Ubuntu terminalinde doğrulayın:
docker run hello-world

WSL2, Linux’un esnekliğini Windows’un kolaylığıyla birleştirerek geliştirici ve sistem yöneticileri için güçlü bir köprü oluşturur.

  • Kurumsal Ortamlar: Standardizasyon, güncelleme kolaylığı ve compliance avantajı sunar.
  • Bireysel Kullanıcılar: Geliştirme, ağ testi ve siber güvenlik çalışmaları için hafif ve hızlı bir çözümdür.
  • Docker ve Kubernetes: Yerel Linux kernel sayesinde container ekosistemi ile %100 uyumludur.

Özetle: WSL2 sadece bir geliştirme aracı değil aynı zamanda kurumların dijital dönüşüm süreçlerinde hızlandırıcı bir teknoloji konumundadır.