WSL (Windows Subsystem for Linux): ni nini, usakinishaji na usanidi wa Linux ndani ya Windows
WSL (Windows Subsystem for Linux) ni kipengele kilichojengwa ndani ya Windows 10 na 11 kinachoendesha distro halisi ya Linux bila mashine pepe tofauti wala kuwasha mara mbili. Husakinishwa kwa amri moja, wsl --install, kwenye PowerShell ukiwa msimamizi; kwa chaguo-msingi hupata WSL 2 na Ubuntu, ambapo kernel halisi ya Linux inaendeshwa kwenye mashine pepe nyepesi.
Windows Subsystem for Linux (WSL, mfumo mdogo wa Windows wa Linux) ni sehemu ya Windows 10 na 11 inayokuwezesha kuendesha distro ya Linux moja kwa moja ndani ya Windows: terminal ya bash, apt, ssh, grep, Docker na zana yoyote ya mstari wa amri. Huhitaji kusakinisha VirtualBox wala kugawanya diski kwa mfumo wa pili: Ubuntu hufunguka kama dirisha la kawaida la terminal ndani ya sekunde chache. Hapa chini utaona tofauti kati ya WSL 1 na WSL 2, jinsi ya kusakinisha, jinsi ya kufanya kazi na faili, VS Code na programu za picha, na jinsi ya kutatua makosa ya kawaida.
WSL ni nini kwenye Linux na Windows
Kwa kifupi, WSL ni njia ya kupata mazingira kamili ya Linux kwa maendeleo na kujifunza bila kuacha Windows. Unasakinisha distro (Ubuntu, Debian, openSUSE, Kali, AlmaLinux na nyinginezo) kutoka mstari wa amri au Microsoft Store, kisha unaifanyia kazi kama kwenye seva: watumiaji, ruhusa, vifurushi na huduma.
Ni muhimu kuelewa WSL haifanyi nini. Si emulator ya amri kama Cygwin, wala mkusanyiko wa huduma zilizobadilishwa: katika WSL 2 kuna kernel halisi ya Linux iliyotengenezwa na Microsoft. Kwa hiyo binaries za Linux huendeshwa bila kuandikwa upya, na ujuzi uliopatikana katika WSL unahamishwa moja kwa moja hadi seva halisi.
Kazi za kawaida za mfumo huu mdogo:
- kujifunza Linux na mstari wa amri bila kompyuta tofauti;
- maendeleo ya wavuti wakati uzalishaji (production) unafanyika kwenye Linux (Python, Node.js, PHP, Go);
- Docker Desktop — hutumia WSL 2 kama injini yake;
- kuunganishwa kwenye seva kupitia SSH, skripti za bash, na git katika mazingira yanayofahamika.
WSL 1 na WSL 2: tofauti yake ni nini
Kuna miundo miwili ya mfumo huu mdogo. WSL 1 hutafsiri miito ya mfumo ya Linux kuwa miito ya kernel ya Windows; hakuna kernel tofauti ya Linux humo. WSL 2 huendesha kernel halisi ya Linux kwenye mashine pepe nyepesi inayotegemea Hyper-V, inayoanza ndani ya sekunde na kusimamia kumbukumbu yake yenyewe.
| Sifa | WSL 1 | WSL 2 |
|---|---|---|
| Kernel | hakuna, utafsiri wa miito ya mfumo | kernel halisi ya Linux |
| Upatanifu wa miito ya mfumo | wa sehemu | kamili |
| Docker, systemd | hapana | ndiyo |
Kasi kwenye faili za Linux (~/) | chini | juu |
Kasi kwenye faili za Windows (/mnt/c) | juu | chini kwa kiasi kikubwa |
| Inahitaji virtualization | hapana | ndiyo |
| Mtandao | unashirikiwa na Windows | mtandao wake pepe (NAT kwa chaguo-msingi) |
Kwa karibu matukio yote chagua WSL 2 — ndiyo chaguo-msingi. WSL 1 ina maana ikiwa virtualization haiwezi kuwashwa (kwa mfano, Windows yenyewe inaendeshwa ndani ya mashine pepe bila nested virtualization), au ikiwa mradi lazima ukae kwenye diski ya Windows na ufanyiwe kazi huko mara kwa mara.
Jinsi ya kusakinisha WSL kwenye Windows 10 na 11
Kwenye Windows 11 na Windows 10 toleo la 2004 au jipya zaidi (build 19041+), usakinishaji ni amri moja. Fungua PowerShell au Terminal kama msimamizi na endesha:
wsl --install
Amri hii huwasha vipengele vinavyohitajika vya Windows, hupakua kernel ya WSL 2 na kusakinisha Ubuntu. Baada ya kuwasha upya, dirisha la distro litafunguka: weka jina la mtumiaji la Linux na nenosiri. Hayahusiani na akaunti ya Windows; nenosiri hili litahitajika kwa sudo.
Enter new UNIX username: alex
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
Sasisha vifurushi mara moja, kama kwenye seva yoyote mpya:
sudo apt update && sudo apt upgrade -y
Jinsi ya kuchagua distro
Ubuntu husakinishwa kwa chaguo-msingi, lakini unaweza kuchagua nyingine. Orodha ya zilizopo:
wsl --list --online
Kusakinisha distro maalum kwa jina kutoka kwenye orodha hiyo:
wsl --install -d Debian
Ikiwa WSL tayari imewekwa, amri itaongeza distro mpya tu. Unaweza kuwa na mifumo kadhaa kwa wakati mmoja, kwa mfano Ubuntu kwa kazi na Kali kwa majaribio.
Kukagua toleo: wsl -l -v
Kuona distro zilizowekwa, hali yake na toleo la WSL:
wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 2
Nyota inaonyesha distro ya chaguo-msingi, ambayo huanzishwa na wsl bila vigezo. Unaweza kuibadilisha kwa wsl --set-default Debian.
Jinsi ya kubadilisha WSL 1 kuwa WSL 2
Toleo la usakinishaji mpya huwekwa kwa amri:
wsl --set-default-version 2
Distro iliyokwisha kusakinishwa hubadilishwa kando (data huhifadhiwa, lakini mchakato unaweza kuchukua dakika kadhaa):
wsl --set-version Ubuntu 2
Kurudi nyuma ni wsl --set-version Ubuntu 1.
Amri muhimu za usimamizi wa WSL
| Amri | Inafanya nini |
|---|---|
wsl | fungua distro ya chaguo-msingi |
wsl -d Debian | fungua distro maalum |
wsl --shutdown | simamisha distro zote na mashine pepe ya WSL 2 |
wsl --terminate Ubuntu | simamisha distro moja |
wsl --update | sasisha WSL na kernel |
wsl --status | toleo la chaguo-msingi na hali ya jumla |
wsl --export Ubuntu ubuntu.tar | hifadhi nakala ya distro kwenye faili la tar |
wsl --import Ubuntu2 D:\wsl\u2 ubuntu.tar | rejesha au nakili distro |
wsl --unregister Ubuntu | futa distro pamoja na data yote |
Kuwa makini na --unregister: faili ndani ya distro hufutwa moja kwa moja, bila pipa la takataka. Kabla ya hapo, fanya --export.
Faili za Windows kutoka Linux na kurudi
Diski za Windows huunganishwa kiotomatiki ndani ya WSL kwenye saraka /mnt: diski C: ni /mnt/c, D: ni /mnt/d.
cd /mnt/c/Users/alex/Downloads
ls -l
cp report.csv ~/projects/
Kwa upande mwingine, faili za Linux zinaonekana kwenye File Explorer kupitia njia ya mtandao \\wsl$\Ubuntu (kwenye Windows 11, pia \\wsl.localhost\Ubuntu) na kwenye sehemu ya "Linux" kwenye upau wa kando. Ili kufungua saraka ya sasa ya Linux kwenye Explorer kwa haraka:
explorer.exe .
Kutoka WSL unaweza kuendesha programu za Windows (notepad.exe, code), na kutoka PowerShell amri za Linux kwa kiambishi: wsl ls -la. Kubadilisha njia kati ya mifumo miwili kuna zana wslpath:
wslpath 'C:\Users\alex'
/mnt/c/Users/alex
Kanuni kuu ya utendaji wa WSL 2: hifadhi miradi kwenye mfumo wa faili wa Linux (~/projects), si kwenye /mnt/c. Ufikiaji wa diski za Windows hupitia itifaki ya mtandao, na shughuli kama git status au npm install kwenye mradi mkubwa huwa polepole mara nyingi zaidi huko.
VS Code na WSL
Visual Studio Code inaweza kufanya kazi na WSL kama mashine ya mbali: kiolesura kinabaki Windows, lakini terminal, viendelezi, interpreter na debugger zinaendeshwa ndani ya Linux. Unahitaji kiendelezi cha WSL (Microsoft). Kisha, kwenye terminal ya distro, nenda kwenye saraka ya mradi na endesha:
cd ~/projects/site
code .
Mara ya kwanza, VS Code yenyewe itasakinisha sehemu ya seva ndani ya Linux. Kwenye kona ya chini kushoto kutaonekana kiashiria "WSL: Ubuntu" — maana yake, kila unachoendesha kutoka terminal iliyojengwa ndani kinafanya kazi ndani ya Linux. Viendelezi kama Python au ESLint vinapaswa kusakinishwa "ndani ya WSL" — VS Code itapendekeza kitufe cha kufanya hivyo.
Programu za picha ndani ya WSL (WSLg)
Kwenye Windows 11 na matoleo ya sasa ya WSL kwenye Windows 10, kuna WSLg — usaidizi wa programu za picha za Linux bila kusanidi X server yoyote. Sakinisha programu kama kawaida, na dirisha lake litaonekana pamoja na madirisha ya Windows, na njia ya mkato itakuwa kwenye menyu ya Start.
sudo apt install gedit -y
gedit ~/.bashrc &
WSLg inasaidia X11 na Wayland, sauti na clipboard. Kwa kazi ya kila siku kwenye eneo-kazi kamili la Linux, hii si mbadala kamili: WSL imekusudiwa programu za kibinafsi, si GNOME au KDE nzima.
systemd na rasilimali za WSL 2
Katika matoleo ya sasa ya WSL 2, systemd inasaidiwa: kwenye usakinishaji mpya wa Ubuntu, imewashwa kwa chaguo-msingi. Ikiwa haijawashwa, ongeza kwenye faili /etc/wsl.conf ndani ya distro:
[boot]
systemd=true
kisha anzisha upya mfumo mdogo kutoka PowerShell: wsl --shutdown. Baada ya hapo, systemctl na huduma kama nginx au PostgreSQL zitafanya kazi.
Kikomo cha kumbukumbu na processor za mashine pepe ya WSL 2 kinaweza kuwekwa kwenye faili %UserProfile%\.wslconfig upande wa Windows:
[wsl2]
memory=4GB
processors=2
Mipangilio inaanza kutumika baada ya wsl --shutdown.
Makosa ya kawaida wakati wa kusakinisha WSL
Hitilafu 0x80370102
Ujumbe kamili: "The virtual machine could not be started because a required component is not installed" (WslRegisterDistribution failed with error: 0x80370102). Sababu karibu kila mara ni moja: WSL 2 haiwezi kuanzisha mashine pepe. Kagua kwa mpangilio huu:
- Je, hardware virtualization imewashwa kwenye BIOS/UEFI: Intel VT-x (Intel Virtualization Technology) au AMD-V (SVM Mode). Hali yake inaonekana kwenye Task Manager → "Performance" → CPU → "Virtualization: Enabled".
- Je, kipengele cha "Virtual Machine Platform" kimewashwa.
- Je, hypervisor haijazimwa kwenye boot loader.
Vipengele vinawashwa kutoka PowerShell ukiwa msimamizi:
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
Baada ya hapo, washa upya kompyuta. Ukiwa ndani ya mashine pepe, host lazima iruhusu nested virtualization — au tumia WSL 1 tu.
Matatizo mengine ya kawaida
- 0x800701bc — kernel ya WSL 2 haijasasishwa. Endesha
wsl --update. - Amri ya
wsl --installinaonyesha msaada tu — WSL tayari imewekwa; ongeza distro kwawsl --install -d Ubuntu. - Hakuna intaneti ndani ya WSL ukiwa na VPN — programu ya VPN (client) kinakatiza njia za mtandao pepe. Kwenye Windows 11,
networkingMode=mirroredkwenye sehemu ya[wsl2]ya faili.wslconfighusaidia. - WSL inachukua nafasi nyingi — diski pepe
ext4.vhdxinakua, lakini haipungui yenyewe baada ya kufuta faili. Inaweza kupunguzwa kwa mkono, au distro kuhamishwa kwa--export/--import. - Umesahau nenosiri la Linux — ingia kama root kutoka PowerShell:
wsl -u root, kishapasswd alex.
WSL, mashine pepe, au dual boot
WSL si njia pekee ya kupata Linux kwenye kompyuta yenye Windows. Uchaguzi unategemea kazi yako.
| Chaguo | Faida | Hasara | Wakati wa kuchagua |
|---|---|---|---|
| WSL 2 | huanza ndani ya sekunde, faili zinazoshirikiwa, VS Code, Docker | hakuna eneo-kazi kamili, kuna mambo ya mtandao na diski | maendeleo, kujifunza mstari wa amri, skripti |
| Mashine pepe (VirtualBox, Hyper-V, VMware) | kutengwa kabisa, snapshots, distro na eneo-kazi lolote, kadi yake ya mtandao | nzito zaidi, rasilimali hutengwa mapema | maabara ya seva, majaribio ya mtandao, boot, na kugawanya diski |
| Dual boot | nguvu kamili ya hardware, picha na madereva ya asili | kuwasha upya ili kubadili, hatari wakati wa kugawanya diski | Linux kama mfumo mkuu, michezo na kazi za GPU kwenye Linux |
Kujifunza Linux kuanzia mwanzo, WSL mara nyingi inatosha: faili, ruhusa, michakato, vifurushi, skripti za bash na SSH hufanya kazi kama kwenye seva. Utahitaji mashine pepe utakapofika kwenye mambo yanayofanya kazi tofauti ndani ya WSL: boot loader, kugawanya diski halisi, interfaces za mtandao, na firewall ya kiwango cha host.
Muhtasari
Windows Subsystem for Linux inakupa Linux halisi ndani ya Windows kwa amri moja, wsl --install. Chagua WSL 2, kagua matoleo kwa wsl -l -v, weka miradi kwenye ~/ na si /mnt/c, na unganisha VS Code kwa kiendelezi cha WSL. Ikiwa usakinishaji unaanguka na 0x80370102, washa virtualization kwenye BIOS na kipengele cha "Virtual Machine Platform". Mazoezi katika kozi ya Linux huanzia hapa, kwa kuandaa mazingira haya ya kazi.
Maswali ya mara kwa mara
Je, WSL ni bure?
Ndiyo. WSL imejumuishwa katika matoleo yote ya Windows 10 na 11, ikiwemo Home, na distro za Linux pia ni bure.
Je, naweza kuendesha Docker kwenye WSL?
Ndiyo, lakini kwenye WSL 2 pekee. Unaweza kusakinisha Docker Desktop inayotumia injini ya WSL 2, au Docker Engine moja kwa moja ndani ya distro, kama kwenye seva ya kawaida ya Ubuntu.
Faili za distro ya WSL zimehifadhiwa wapi kimwili?
Kwenye WSL 2, zimo kwenye diski pepe ext4.vhdx ndani ya profaili ya mtumiaji wa Windows. Huhitaji kuifungua moja kwa moja; tumia njia ya \\wsl$\ kwenye File Explorer.
Nawezaje kuondoa WSL kabisa?
Futa distro kwa <code>wsl --unregister</code> ikifuatwa na jina, kisha ondoa programu ya "Windows Subsystem for Linux" kwenye "Installed apps", na ikihitajika, zima vipengele vya Windows.
Je, naweza kuhamisha WSL kwenda diski nyingine?
Ndiyo: <code>wsl --export Ubuntu ubuntu.tar</code>, kisha <code>wsl --unregister Ubuntu</code>, kisha <code>wsl --import Ubuntu D:\wsl\ubuntu ubuntu.tar</code>. Matoleo mapya pia yana amri <code>wsl --manage Ubuntu --move</code>.
Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Linux: с нуля до уверенного администрирования”.
Nenda kwenye kozi