De echte reden waarom Canonical en Microsoft Ubuntu naar Windows 10 brachten, was om systeembeheerders en ontwikkelaars in staat te stellen Bash en andere Linux-shellprogramma’s, zoals make, gawk en grep, op Windows te gebruiken. Linux-gebruikers, natuurlijke hackers, gingen onmiddellijk aan de slag om grafische Linux-desktops naar Windows Subsystem for Linux (WSL) te brengen.
En wat denk je? Het is ze gelukt.
Een Guatemalteekse programmeur die GitHub-naam Guerra24 gebruikt, is erin geslaagd om “Unity binnen WSL te draaien, wat aantoont dat het volledig in staat is om een volledige desktopomgeving te draaien.”
Het is niet eenvoudig om dit te doen en het is nog lang geen complete Linux-desktop, maar het is een begin. Als u de Ubuntu Linux-desktop in Windows 10 wilt uitvoeren voor het werk, raad ik u aan dit te doen via een virtuele machine (VM) -programma zoals Oracle’s VirtualBox. Maar, als je gewoon plezier wilt hebben en je desktop programmeervaardigheden wilt aanscherpen, kun je ook proberen Ubuntu op Windows 10 te draaien.
Om vandaag aan de slag te gaan met dit project, moet je de bèta Windows 10 Fast Ring-release draaien. Met de publieke release van de Windows 10 Anniversary Update, zal iedereen het kunnen proberen.
Dus hoe doe je het? Na het bijwerken van Windows 10 volgt u mee.
Eerst moet u de Ontwikkelaarsmodus van Windows 10 inschakelen via Instellingen > Bijwerken & beveiliging > Voor ontwikkelaars. Zoek vervolgens naar “Windows-functies” en kies “Windows-functies in- of uitschakelen” en schakel Windows Subsystem for Linux (Beta) in.
Nadat, om Bash te installeren, moet u de Windows Opdrachtprompt openen en “bash” typen. U wordt gevraagd om de servicevoorwaarden te accepteren en Ubuntu te downloaden. De typische Ubuntu download is iets minder dan een gigabyte. Dus, als je een trage internet verbinding hebt, wees klaar om te wachten. Eenmaal geïnstalleerd, draait u een userspace versie van Ubuntu 14.04 bovenop WSL.
Technisch gezien, draait u geen Linux. Het ziet er misschien uit als Linux en piept als Tux, de Linux pinguïn; maar het is geen Linux. Dat komt omdat de Ubuntu userspace niet op een Linux kernel draait, maar op WSL. WSL levert de API haken om er uit te zien als Linux voor Ubuntu en Linux applicaties, maar het is niet hetzelfde. Dit zal belangrijk worden als we verder gaan.
Als je Ubuntu eenmaal hebt geïnstalleerd, moet je het updaten. U doet dat vanuit de Bash shell door de volgende commando’s uit te voeren:
1. apt-get update
2. apt-get upgrade
Nu, schakel terug naar Windows 10 en installeer een Windows-compatibele Xserver. Dit is wat Ubuntu gebruikt om een grafische interface weer te geven. De beste voor onze doeleinden zijn vcxsrv of Xming.
Volgende, je moet Ubuntu vertellen over de Xserver zodat het deze kan gebruiken. Om dit te doen kunt u het volgende commando in de commandoregel invoeren:
DISPLAY=:0.0
Nu zal elk grafisch Linux programma worden weergegeven op Windows 10. Beter nog, als je met grafische Linux software op WSL wilt blijven werken, laat WSL zichzelf automatisch klaarmaken voor grafische programma’s door het commando in het configuratiebestand van Bash te plaatsen: “.bashrc”. Een makkelijke manier om dit te doen is om het echo commando te gebruiken met het volgende shell commando.
echo “export DISPLAY=:0.0” >> ~/.bashrc
Na dit, kunt u grafische Linux programma’s draaien, zoals Firefox, of desktops… maar ze zullen niet goed of lang draaien. Dat komt omdat WSL geen socket ondersteuning heeft. Sockets zijn wat Unix en Linux gebruiken om te communiceren tussen services. Op de Linux desktop is de standaard manier om sockets te implementeren het D-Bus berichtensysteem. Zonder D-Bus, werken veel Linux desktop grafische programma’s niet zo goed, als ze al werken.
WSL ondersteunt echter wel het TCP netwerk protocol en een Reddit gebruiker genaamd ShaRose heeft een manier gevonden om D-Bus tcp te laten gebruiken in plaats van sockets. Perfect? Nee. Maar het werkt.
Om dit in te schakelen, voer het volgende commando uit:
sudo sed -i ‘s/<listen>.*<\/listen>/<listen>tcp:host=localhost,port=0<\/listen>/’ /etc/dbus-1/session.conf
Dit gebruikte de sed stream editor om het configuratiebestand van D-Bus te wijzigen zodat het vanaf nu tcp zal gebruiken in plaats van sockets. Het eindresultaat? Toepassingen die D-Bus nodig hebben, draaien nu op WSL.
In de volgende stap is het tijd om de grafische desktop programma’s te installeren. U doet dit door deze programma’s vanuit Bash uit te voeren:
- apt-get install ubuntu-desktop
- apt-get install unity
- apt-get install compiz-core
- apt-get install compizconfig-settings-manager
Het eerste commando installeert de basis Ubuntu desktop programma’s. Dit omvat eindgebruiker programma’s zoals LibreOffice, De volgende instructie installeert de Unity desktop. De laatste twee commando’s installeren, Compiz, een OpenGL graphics composting manager en zijn front-end ccsm. De volgende stap is om ccsm te gebruiken om de instellingen van de desktop in te stellen.
Nadat al deze programma’s zijn geïnstalleerd, voer je ccsm uit vanuit Bash. Vanuit de ccsm interface moet u de volgende Compiz plugins inschakelen:
Algemeen:
- Commands
- Composite
- Copy to texture
- OpenGL
Desktop:
- Ubuntu Unity Plugin
Image Loading:
- PNG
Utility:
- Compiz Library Toolbox
- Windows Management
- Move Window
- Place Windows
- Resize Window
- Scale
- Snapping Windows
Nu, om deze show op de weg te krijgen, sluit je ccsm en breng je de Unity interface tevoorschijn door compiz vanuit Bash te draaien.
Over een minuutje of zo zou je Unity aan de praat moeten hebben.
Nou, ga hier niet in met valse verwachtingen. Het gaat niet goed lopen. Maar op mijn Windows 10 testsysteem, een ASUS desktop met een derde generatie i7 3770 processor, en 8GB RAM, liep het goed genoeg dat ik er zeker van ben dat iemand uiteindelijk een manier zal vinden om de Ubuntu desktop bruikbaar te krijgen op WSL.
Nu, als je me wilt excuseren, ik ga kijken of ik Quake, het oude first-person shooter spel, aan de praat kan krijgen op WSL. Ik ben “zo” dichtbij om het aan de praat te krijgen.
Gerelateerde verhalen:
- Hoe aan de slag te gaan met Ubuntu en Bash op Windows 10
- Ubuntu (niet Linux) op Windows: Hoe het werkt
- Microsoft en Canonical werken samen om Ubuntu naar Windows 10 te brengen