Rehber

WSL (Windows Subsystem for Linux): nedir, kurulum ve Windows içinde Linux yapılandırması

Güncellendi: · Skillaria.Top

WSL (Windows Subsystem for Linux), Windows 10 ve 11'e yerleşik bir alt sistemdir; ayrı bir sanal makine ve çift önyükleme olmadan gerçek bir Linux dağıtımını çalıştırır. wsl --install komutuyla yönetici olarak PowerShell'de tek adımda kurulur; varsayılan olarak WSL 2 ve Ubuntu kurulur, Ubuntu hafif bir sanal makinede gerçek bir Linux çekirdeğiyle çalışır.

Windows Subsystem for Linux (WSL), Windows 10 ve 11'in bir bileşenidir ve Linux dağıtımını doğrudan Windows içinde çalıştırmanıza izin verir: bash terminali, apt, ssh, grep, Docker ve her türlü komut satırı aracı. VirtualBox kurmanıza ya da ikinci bir sistem için diski bölmenize gerek yoktur: Ubuntu, birkaç saniyede normal bir terminal penceresi olarak açılır. Burada WSL 1 ile WSL 2 arasındaki farkları, alt sistemin nasıl kurulacağını, dosyalar, VS Code ve grafik uygulamalarla nasıl çalışılacağını ve en sık karşılaşılan hataların nasıl giderileceğini anlatıyoruz.

Linux ve Windows'ta WSL nedir

Kısaca WSL, Windows'tan çıkmadan tam bir Linux geliştirme ve öğrenme ortamı elde etmenin yoludur. Bir dağıtımı (Ubuntu, Debian, openSUSE, Kali, AlmaLinux ve diğerleri) komut satırından ya da Microsoft Store'dan kurar, ardından onunla bir sunucudaki gibi çalışırsınız: kullanıcılar, izinler, paketler, servisler.

WSL'nin ne yapmadığını bilmek önemlidir. Cygwin gibi bir komut öykünücüsü ya da taşınmış araçlar topluluğu değildir: WSL 2'de Microsoft tarafından derlenmiş gerçek bir Linux çekirdeği çalışır. Bu yüzden Linux ikili dosyaları yeniden derlenmeden çalışır ve WSL'de edinilen beceriler doğrudan gerçek bir sunucuya taşınır.

Alt sistemin tipik kullanım alanları:

  • ayrı bir bilgisayar olmadan Linux ve komut satırı öğrenmek;
  • üretim ortamı Linux olduğunda web geliştirme (Python, Node.js, PHP, Go);
  • motor olarak WSL 2 kullanan Docker Desktop;
  • SSH ile sunuculara bağlanma, bash betikleri, git ile tanıdık bir ortamda çalışma.

WSL 1 ve WSL 2: fark nedir

Alt sistemin iki mimarisi vardır. WSL 1, Linux sistem çağrılarını Windows çekirdeğinin çağrılarına çevirir; ayrı bir Linux çekirdeği yoktur. WSL 2 ise Hyper-V temelli hafif bir sanal makinede gerçek bir Linux çekirdeği çalıştırır; bu makine saniyeler içinde açılır ve belleğini kendi yönetir.

ParametreWSL 1WSL 2
Çekirdekyok, sistem çağrısı çevirisigerçek Linux çekirdeği
Sistem çağrısı uyumluluğukısmitam
Docker, systemdhayırevet
Linux dosyalarında hız (~/)daha düşükyüksek
Windows dosyalarında hız (/mnt/c)yüksekbelirgin şekilde daha düşük
Sanallaştırma gerekir mihayırevet
AğWindows ile ortakkendi sanal ağı (varsayılan NAT)

Neredeyse tüm senaryolarda WSL 2 seçin; varsayılan da odur. WSL 1, sanallaştırma etkinleştirilemiyorsa (örneğin Windows'un kendisi iç içe sanallaştırma olmadan bir sanal makinede çalışıyorsa) ya da proje Windows diskinde durmak ve orada yoğun çalışmak zorundaysa anlamlıdır.

Windows 10 ve 11'de WSL nasıl kurulur

Windows 11'de ve Windows 10 sürüm 2004 veya sonrasında (derleme 19041+) kurulum tek komuta iner. PowerShell'i ya da «Terminal»i yönetici olarak açın ve çalıştırın:

wsl --install

Komut, gerekli Windows bileşenlerini etkinleştirir, WSL 2 çekirdeğini indirir ve Ubuntu'yu kurar. Yeniden başlattıktan sonra dağıtımın penceresi açılır: bir Linux kullanıcı adı ve parola belirleyin. Bunlar Windows hesabınıza bağlı değildir; bu parola sudo için gerekecektir.

Enter new UNIX username: alex
New password:
Retype new password:
passwd: password updated successfully
Installation successful!

Hemen ardından paketleri güncelleyin; tıpkı yeni kurulmuş her sunucuda olduğu gibi:

sudo apt update && sudo apt upgrade -y

Dağıtım nasıl seçilir

Varsayılan olarak Ubuntu kurulur, ama başka bir dağıtım da seçebilirsiniz. Kullanılabilir listeyi görmek için:

wsl --list --online

Listeden bir dağıtımı adıyla kurmak için:

wsl --install -d Debian

WSL zaten kuruluysa komut yalnızca yeni dağıtımı ekler. Aynı anda birden fazla dağıtım tutabilirsiniz; örneğin iş için Ubuntu, denemeler için Kali.

Sürümü kontrol etme: wsl -l -v

Kurulu dağıtımları, durumlarını ve WSL sürümünü görmek için:

wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
  Debian    Stopped         2

Yıldız işareti varsayılan dağıtımı gösterir; bu dağıtım yalnızca wsl komutuyla açılır. Değiştirmek için: wsl --set-default Debian.

WSL 1'den WSL 2'ye geçiş

Yeni kurulumlar için sürüm şöyle ayarlanır:

wsl --set-default-version 2

Zaten kurulu bir dağıtım ayrıca dönüştürülür (veriler korunur, ama işlem birkaç dakika sürebilir):

wsl --set-version Ubuntu 2

Tersi dönüşüm için: wsl --set-version Ubuntu 1.

WSL yönetimi için faydalı komutlar

KomutNe yapar
wslvarsayılan dağıtımı açar
wsl -d Debianbelirli bir dağıtımı açar
wsl --shutdowntüm dağıtımları ve WSL 2 sanal makinesini durdurur
wsl --terminate Ubuntutek bir dağıtımı durdurur
wsl --updateWSL'i ve çekirdeği günceller
wsl --statusvarsayılan sürüm ve genel durum
wsl --export Ubuntu ubuntu.tardağıtımın arşivde yedeğini alır
wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tardağıtımı geri yükler veya kopyalar
wsl --unregister Ubuntudağıtımı tüm verileriyle birlikte siler

--unregister konusunda dikkatli olun: dağıtımın içindeki dosyalar Geri Dönüşüm Kutusu'na gitmeden silinir. Önce --export yapın.

Windows dosyalarından Linux'a ve tersine

Windows sürücüleri WSL içinde /mnt dizinine otomatik olarak bağlanır: C: sürücüsü /mnt/c, D: sürücüsü /mnt/d olur.

cd /mnt/c/Users/alex/Downloads
ls -l
cp report.csv ~/projects/

Tersi yönde Linux dosyaları Dosya Gezgini'nde \\wsl$\Ubuntu ağ yolu üzerinden (Windows 11'de ayrıca \\wsl.localhost\Ubuntu) ve kenar çubuğundaki «Linux» bölümünde görünür. Geçerli Linux dizinini hızla Dosya Gezgini'nde açmak için:

explorer.exe .

WSL'den Windows programları (notepad.exe, code) başlatılabilir, PowerShell'den ise wsl önekiyle Linux komutları çalıştırılabilir: wsl ls -la. İki sistem arasında yolları çevirmek için wslpath aracı vardır:

wslpath 'C:\Users\alex'
/mnt/c/Users/alex

WSL 2 performansı için temel kural: projelerinizi /mnt/c yerine Linux dosya sisteminde (~/projects) tutun. Windows disklerine erişim bir ağ protokolü üzerinden gider; büyük bir projede git status ya da npm install gibi işlemler orada kat kat yavaş çalışır.

VS Code ve WSL

Visual Studio Code, WSL ile uzak bir makine gibi çalışabilir: arayüz Windows'ta kalır, terminal, eklentiler, yorumlayıcılar ve hata ayıklayıcı ise Linux içinde çalışır. Bunun için WSL eklentisi (Microsoft) gerekir. Ardından dağıtımın terminalinde proje dizinine geçip çalıştırın:

cd ~/projects/site
code .

İlk açılışta VS Code sunucu bileşenini Linux'a kendisi kurar. Sol alt köşede «WSL: Ubuntu» göstergesi belirir; bu, gömülü terminalden çalıştırdığınız her şeyin Linux'ta çalıştığı anlamına gelir. Python ya da ESLint gibi eklentileri «WSL'de» kurmanız gerekir; VS Code bunu bir düğmeyle önerir.

WSL'de grafik uygulamalar (WSLg)

Windows 11'de ve Windows 10'da güncel WSL sürümlerinde WSLg bulunur: X sunucusu kurmaya gerek kalmadan Linux grafik uygulamalarını destekler. Programı olağan şekilde kurun; penceresi Windows pencerelerinin yanında açılır, kısayolu da Başlat menüsünde görünür.

sudo apt install gedit -y
gedit ~/.bashrc &

WSLg, X11 ve Wayland'ı, sesi ve panoyu destekler. Ancak günlük olarak tam bir Linux masaüstüyle çalışmak için bir alternatif değildir: WSL tek tek uygulamalar için tasarlanmıştır, GNOME ya da KDE gibi bütün bir masaüstü için değil.

systemd ve WSL 2 kaynakları

Güncel WSL 2 sürümleri systemd'yi destekler: yeni Ubuntu kurulumlarında varsayılan olarak etkindir. Etkin değilse dağıtımın içindeki /etc/wsl.conf dosyasına ekleyin:

[boot]
systemd=true

ve PowerShell'den alt sistemi wsl --shutdown ile yeniden başlatın. Bundan sonra systemctl ve nginx ya da PostgreSQL gibi servisler çalışır.

WSL 2 sanal makinesinin bellek ve işlemci sınırını Windows tarafındaki %UserProfile%\.wslconfig dosyasından belirleyebilirsiniz:

[wsl2]
memory=4GB
processors=2

Ayarlar wsl --shutdown sonrasında uygulanır.

WSL kurulumunda sık karşılaşılan hatalar

0x80370102 hatası

Tam mesaj: «Sanal makine başlatılamadı, çünkü gerekli bileşen yüklü değil» (WslRegisterDistribution failed with error: 0x80370102). Nedeni neredeyse her zaman aynıdır: WSL 2 sanal makineyi başlatamıyor. Şunları sırayla kontrol edin:

  1. Donanım sanallaştırması BIOS/UEFI'de açık mı: Intel VT-x (Intel Virtualization Technology) veya AMD-V (SVM Mode). Durum Görev Yöneticisi → «Performans» → CPU → «Sanallaştırma: Etkin» kısmında görünür.
  2. «Sanal Makine Platformu» bileşeni etkin mi?
  3. Hypervisor önyükleyicide devre dışı bırakılmış mı?

Bileşenler yönetici olarak PowerShell'den etkinleştirilir:

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

Bundan sonra bilgisayarı yeniden başlatın. Bir sanal makine içinde çalışıyorsanız ana sistemde iç içe sanallaştırmaya izin vermeniz gerekir; aksi halde WSL 1 kullanın.

Diğer yaygın sorunlar

  • 0x800701bc — WSL 2 çekirdeği güncel değil. wsl --update komutunu çalıştırın.
  • wsl --install yalnızca yardım metni gösteriyor — WSL zaten kurulu; dağıtımı wsl --install -d Ubuntu ile ekleyin.
  • VPN ile WSL içinde internet yok — VPN istemcisi sanal ağın rotalarını ele geçirir. Windows 11'de .wslconfig dosyasındaki [wsl2] bölümünde networkingMode=mirrored seçeneği yardımcı olur.
  • WSL çok yer kaplıyor — sanal disk ext4.vhdx büyür, ama dosyalar silindikten sonra kendiliğinden küçülmez. Elle küçültülebilir ya da --export/--import ile taşınabilir.
  • Linux parolasını unuttunuz — PowerShell'den wsl -u root ile root olarak girin, sonra passwd alex çalıştırın.

WSL, sanal makine ya da çift önyükleme

Windows'lu bir bilgisayarda Linux çalıştırmanın tek yolu WSL değildir. Seçim göreve bağlıdır.

SeçenekArtılarıEksileriNe zaman seçilmeli
WSL 2saniyeler içinde açılma, ortak dosyalar, VS Code, Dockertam masaüstü yok, ağ ve disk özelliklerigeliştirme, komut satırı öğrenimi, betikler
Sanal makine (VirtualBox, Hyper-V, VMware)tam izolasyon, anlık görüntüler, her dağıtım ve masaüstü, kendi ağ kartıdaha ağır, kaynaklar önceden ayrılırsunucu laboratuvarı, ağ ve önyükleme denemeleri, disk bölümlendirme
Çift önyüklemedonanımın tüm gücü, yerel grafik ve sürücülersistem değiştirmek için yeniden başlatma, bölümlendirmede riskLinux ana sistem olarak, Linux üzerinde oyun ve GPU işleri

Linux'u sıfırdan öğrenmek için WSL genellikle yeterlidir: dosyalar, izinler, süreçler, paketler, bash betikleri ve SSH sunucudaki gibi çalışır. Bir sanal makineye ihtiyaç, WSL'de farklı işleyen konularda ortaya çıkar: önyükleyici, fiziksel disklerin bölümlendirilmesi, ağ arayüzleri ve ana sistemdeki güvenlik duvarı.

Sonuç

Windows Subsystem for Linux, tek bir komutla, wsl --install, Windows içinde gerçek bir Linux verir. WSL 2'yi seçin, sürümleri wsl -l -v ile kontrol edin, projelerinizi /mnt/c yerine ~/ altında tutun ve VS Code'u WSL eklentisi ile bağlayın. Kurulum 0x80370102 hatasıyla duruyorsa BIOS'ta sanallaştırmayı ve «Sanal Makine Platformu» bileşenini etkinleştirin. Bu çalışma ortamının hazırlanmasıyla Linux kursundaki uygulamalar başlar.

Sık sorulan sorular

WSL ücretsiz mi?

Evet. WSL, Home dahil tüm sürümlerdeki Windows 10 ve 11 ile birlikte gelir; Linux dağıtımları da ücretsiz dağıtılır.

WSL içinde Docker çalıştırabilir miyim?

Evet, ama yalnızca WSL 2 ile. WSL 2 motoru kullanan Docker Desktop kurabilir ya da Docker Engine'i doğrudan dağıtıma, normal bir Ubuntu sunucusundaki gibi kurabilirsiniz.

WSL dağıtımının dosyaları fiziksel olarak nerede saklanır?

WSL 2'de bunlar Windows kullanıcı profilinde bulunan ext4.vhdx sanal diskinde tutulur. Doğrudan açmanıza gerek yoktur: Dosya Gezgini'nde \\wsl$\ yolunu kullanın.

WSL'i tamamen nasıl kaldırırım?

Dağıtımları wsl --unregister ile silin, ardından «Yüklü uygulamalar» bölümünden «Windows Linux Alt Sistemi» uygulamasını kaldırın ve gerekirse Windows bileşenlerini devre dışı bırakın.

WSL'i başka bir sürücüye taşıyabilir miyim?

Evet: wsl --export Ubuntu ubuntu.tar, ardından wsl --unregister Ubuntu ve wsl --import Ubuntu D:\wsl\ubuntu ubuntu.tar. Yeni sürümlerde wsl --manage Ubuntu --move komutu da vardır.

Bu konuyu videoyla öğrenin

Bu konu “Linux: с нуля до уверенного администрирования” kursunda uygulamalı olarak ayrıntılı işleniyor.

Kursa git