La majoria del usuaris tenen Windows en el seus ordinadors, però els programadors i administradors necessiten utilitzar màquines Linux.

Introducció

El Subsistema de Windows per a Linux (WSL) proprociona una integració molt bona entre Windows i Linux en el mateix equip.

Per defecte, una màquina WSL pot utilitzar tots els processadors disponibles de la CPU i la mitat de la memòria de l'ordinador.

Ubuntu

Obre un terminal de Powershell.

Actualiza la versió de WSL si és el primer cop que utilitzes l'ordinador:

wsl --update

Encara que et demani permisos d'administrador, digues que no, i la instal.lació segueix.

Mira la versió de WSL i demés del teu ordinador:

> wsl --version
WSL version: 2.2.4.0
Kernel version: 5.15.153.1-2
WSLg version: 1.0.61
MSRDC version: 1.2.5326
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26091.1-240325-1447.ge-release
Windows version: 10.0.22631.4037

Per instal.lar una màquina virtual no necessites ser administrador.

El primer que has de fer es mirar les màquines que tens disponibles per instal.lar:

> wsl --list --online
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install '.

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
...

A continuació instal-la la màquina Ubuntu

> wsl --install -d Ubuntu

Et demanen un nom d'usuari i contrasenya (pots utilitzar sudo amb el teu usuari)

En una màquina WSL tens accés al sistema de fitxers del Windows en el punt de muntatge /mnt/c/ per la unitat C:\, etc.

Per exemple, pots crear un fitxer hello.txt en el sistema de fitxers del Windows:

$ echo "Hola" > /mnt/c/Users/david/Downloads/Hola.txt

Pots verificar que el Windows té accés a aquest fitxer:

També pots accedir als serveis de Ubuntu desde el Windows a través de la interfície localhost.

Per exemple, pots arrencar un servidor apache:

$ sudo apt update && sudo apt install -y apache2

I amb el navegador del Windows accedir al servidor Apache a l'adreça http://localhost

Surt de la màquina amb l'ordre exit.

Mira les màquines que tens instal.lades:

> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

Pots veure que la màquina Ubuntu és la màquina per defecte (té l'*) i està aturada.

Per evitar consumir recursos quan surts de la màquina aquesta s'atura.

Pots començar una nova sessió des del terminal:

> wsl -d Ubuntu

O desde la interfície gràfica:

Elimina la màquina Ubuntu:

> wsl --unregister Ubuntu

Box

Encara que al principi et pot semblar que WSl té una funcionalitat una mica limitada, nosaltres som informàtics i anem a exprimir WSL al màxim !

😊

Per aixó utilitzem l'script Wsl.ps1 del mòdul Box proporciona els cmd-lets:

  • Connect-Wsl, Get-Wsl, New-Wsl, Remove-Wsl, Start-Wsl i Stop-Wsl.

Atenció!. Powershell no distingeix entre majúscules i mínuscules; per tant pots escriure totes les comandes amb minúscules si vols.

Un cop has instal.lat el mòdul Box crea una màquina nova amb el nom mars:

> New-Wsl mars
Ubuntu : Comprovant el tamany de la nova imatge ... Fet.
Ubuntu : Descarregant la nova imatge (344 MB)... Fet.
Ubuntu : Verificant el hash del fitxer ... Fet.
mars: Important la màquina virtual  ...
Import in progress, this may take a few minutes.
The operation completed successfully.

Com que no tenim una imatge a la cache, primer s'ha de descarregar la imatge de Ubuntu Cloud.

Ja et pots connectar a la màquina virtual mars:

> Connect-Wsl mars
mars: Arrencant ... Fet.
box@mars:~$

Ja estàs dins d'una màquina virtual Ubuntu Noble

L'usuari és box, la contrasenya és password i pertany al grup sudo.

Surt de la màquina virtual amb l'ordre exit.

Pots veure que encara que tanquis la connexió, la màquina segueix funcionant:

> Get-Wsl
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  mars            Running         2

Si vols pots crear una màquina i connectar-te directament:

> Connect-Wsl jupiter -New

Surt de la màquina jupiter.

Verifica que les dos màquines mars i jupiter estan executant-se:

> Get-Wsl
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  jupiter         Running         2
  mars            Running         2

Para la màquina mars i elimina la màquina jupiter:

> Stop-Wsl mars
> Remove-Wsl jupiter

Verifica l'estat de les màquines registrades:

> Get-Wsl
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  mars            Stopped         2

Conecta't de nou a la màquina mars:

$ Connect-Wsl mars

En el "home" tens un script amb el noms install-docker:

$ sudo ./install-docker.sh

Pots verificar que docker fuciona correctament:

$ docker run --rm -d -p 80:80 nginx

Obre un navegador a http://localhost per veure que el servidor nginx funciona.

Encara que surtis de la màquina el servidor nginx segueix funcionant.

Crea la màquina zeus:

> New-Wsl zeus

Pots arrencar la màquina sense conectar-te:

> Start-Wsl zeus

Això és útils quan tens una servei com apache, etc. dins la màquina que funciona de manera automàtica.

Xarxa

Pots connectar les màquines entre elles mitjançant Wireguard.

De moment s'ha de fer a mà.

Aplicacions

El subsistema de Windows per a Linux (WSL) admet l'execució d'aplicacions GUI de Linux (X11 i Wayland) a Windows d'una manera totalment integrada.

Gnome

Instal.la l'Editor de text de Gnome

$ sudo apt install -y gnome-text-editor

Crea un fitxer hello.txt amb l'editor:

$ gnome-text-editor hello.txt

Firefox

Instal.la firefox:

$ sudo snap install firefox

Arrenca firefox:

$ firefox &

Activitats

Activitats d'aprenentatge

A continuació tens un conjunt d'activitats que utilitzen un entorn en WSL.

Esculla algunes i crea els entorns corresponents:

Aplicacions web

AlfrescoAlfresco és un gestor de continguts.
CryptpadCryptPad és una suite de col·laboració encriptada i de codi obert d'extrem a extrem.
EtherpadEtherpad és un editor col·laboratiu en temps real de codi obert i basat en web, que permet als autors editar simultàniament un document de text i veure totes les edicions dels participants en temps real.
OdooOdoo és un ERP i CRM de còdi obert creat amb Python
Wordpressundefined

Based de dades

MariaDBundefined
OracleOracle Database és una de les bases de dades més utilitzades per les empreses.
Postgresundefined
MinioMinio és una solució d'emmagatzematge d'objectes d'alt rendiment que proporciona una API compatible amb Amazon Web Services S3 i admet totes les funcions bàsiques de S3

Google chrome

Canvia al directori /tmp i descarrega el paquet google-chrome-stable_current_amd64.deb:

$ cd /tmp
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

Instal.la Google Chrome:

$ sudo apt install --fix-missing ./google-chrome-stable_current_amd64.deb

L'opció --fix-missing es fa servir per instal.lar les dependències que falten per instal.lar el paquet.

Configura la màquina Linux perquè pugui accedir a la xarxa WireguardVPN d'Isard tal com s'explica a Isard.

Arrenca Google Chrome:

$ google-chrome&

Pots veure que el navegador pot accedir a la xarxa privada:

Arrenca un navegador des del Windows i verifica que no pots accedir a la xarxa privada, a no ser que també la tinguis configurada en el Windows.