Linux Tutorial – Puntata 9
di jolek78
Care/i fruitrici e fruitori del blog, in questi post – ogni domenica mattina – si parlerà del sistema operativo GNU/Linux e degli strumenti per utilizzarlo al massimo delle potenzialità. Cercheremo di spiegare come funziona, cosa è il kernel, come costruirsi una vpn, come settare un firewall e giocare col terminale, usare adb e altro. Se il capitalismo della sorveglianza ci vuole passivi consumatori-consumatrici di servizi noi si risponde con un po’ di “cultura informatica” e un MARAMEO (quasi affettuoso). Buona lettura!
Dove e cosa sono i device su linux? Non è esattamente facile rispondere a questa domanda, ci sono varie sfaccettature. Prima di tutto potremmo dire che esistono sia device fisici che virtuali. Che entrambi sono conservati in forma di file dentro il sistema operativo – everything is a file – e che, sopratutto che tutti, ma proprio tutti, sono conservati dentro la directory /dev. Li esploreremo in tre (o forse quattro) puntate, e proveremo a fare qualche riflessione. Fate partire dunque la vostra macchina virtuale, fate il login, aprite la console, munitevi di tanto caffè, e buon divertimento!
DEV (1)
bottega@bottegadelbarbieri / ls -lha total 84K drwxr-xr-x 20 root root 4.0K Feb 27 08:56 . drwxr-xr-x 20 root root 4.0K Feb 27 08:56 .. lrwxrwxrwx 1 root root 7 Feb 27 08:53 bin -> usr/bin drwxr-xr-x 5 root root 4.0K Apr 10 14:58 boot drwxrwxr-x 2 root root 4.0K Feb 27 08:56 cdrom drwxr-xr-x 20 root root 4.2K Apr 22 18:37 dev <<<<<<<< drwxr-xr-x 140 root root 12K Apr 8 06:30 etc drwxr-xr-x 3 root root 4.0K Feb 27 08:56 home lrwxrwxrwx 1 root root 7 Feb 27 08:53 lib -> usr/lib lrwxrwxrwx 1 root root 9 Feb 27 08:53 lib32 -> usr/lib32 lrwxrwxrwx 1 root root 9 Feb 27 08:53 lib64 -> usr/lib64 lrwxrwxrwx 1 root root 10 Feb 27 08:53 libx32 -> usr/libx32 drwx------ 2 root root 16K Feb 27 08:53 lost+found drwxr-xr-x 2 root root 4.0K Feb 9 18:48 media drwxr-xr-x 2 root root 4.0K Feb 9 18:48 mnt drwxr-xr-x 2 root root 4.0K Feb 9 18:48 opt dr-xr-xr-x 182 root root 0 Apr 22 18:36 proc drwx------ 3 root root 4.0K Feb 9 19:08 root drwxr-xr-x 30 root root 940 Apr 22 18:49 run lrwxrwxrwx 1 root root 8 Feb 27 08:53 sbin -> usr/sbin drwxr-xr-x 2 root root 4.0K Feb 27 09:10 snap drwxr-xr-x 2 root root 4.0K Feb 9 18:48 srv dr-xr-xr-x 13 root root 0 Apr 22 18:36 sys drwxrwxrwt 13 root root 4.0K Apr 22 18:49 tmp drwxr-xr-x 14 root root 4.0K Feb 9 18:52 usr drwxr-xr-x 14 root root 4.0K Feb 9 19:08 var
Alla creazione di questo standard, era importante creare una casa comune dove poter conservare tutti i device. La struttura infatti che stiamo vedendo è estremamente razionale, e segue alla perfezione il filo logico che storicamente parte da Unix e finisce oggi ai sistemi Linux. Listiamo ora il contenuto:
bottega@bottegadelbarbieri / ls -lha /dev/ |wc -lmc 212 12008 12008
che significa
212 > files 12008 > caratteri 12008 > bytes
Devices || /dev/loop* || /dev/sd* || /dev/dm*
Listiamo per trovare soltanto i dischi:
bottega@bottegadelbarbieri / find /dev/ -group disk -exec ls -lha {} \; brw-rw---- 1 root disk 253, 2 Apr 22 18:37 /dev/dm-2 brw-rw---- 1 root disk 253, 1 Apr 22 18:37 /dev/dm-1 brw-rw---- 1 root disk 253, 0 Apr 22 18:37 /dev/dm-0 brw-rw---- 1 root disk 8, 6 Apr 22 18:37 /dev/sda6 brw-rw---- 1 root disk 8, 5 Apr 22 18:37 /dev/sda5 brw-rw---- 1 root disk 8, 2 Apr 22 18:37 /dev/sda2 brw-rw---- 1 root disk 8, 1 Apr 22 18:37 /dev/sda1 brw-rw---- 1 root disk 8, 0 Apr 22 18:37 /dev/sda crw-rw---- 1 root disk 21, 1 Apr 22 18:37 /dev/sg1 brw-rw---- 1 root disk 7, 7 Apr 22 18:37 /dev/loop7 brw-rw---- 1 root disk 7, 6 Apr 22 18:37 /dev/loop6 brw-rw---- 1 root disk 7, 5 Apr 22 18:37 /dev/loop5 brw-rw---- 1 root disk 7, 4 Apr 22 18:37 /dev/loop4 brw-rw---- 1 root disk 7, 3 Apr 22 18:37 /dev/loop3 brw-rw---- 1 root disk 7, 2 Apr 22 18:37 /dev/loop2 brw-rw---- 1 root disk 7, 1 Apr 22 18:37 /dev/loop1 brw-rw---- 1 root disk 7, 0 Apr 22 18:37 /dev/loop0 crw-rw---- 1 root disk 10, 237 Apr 22 18:37 /dev/loop-control
/dev/loop*
loop devices. Definiti come “pseudo devices”, cioè un sistema di astrazione che permette al filesystem di aggiungere un livello virtuale da associare e far apparire come una sorta di blocco fisico. Tipico e’ in ubuntu l’utilizzo degli pseudo devices per gestire snap, il mai troppo demonizzato (a ragione!) sistema universale d’installazione dei pacchetti di canonical.
/dev/sd*
small devices. Tecnicamente sono i dischi utilizzati dalla nostra macchina virtuale per inserire dati, programmi, files, log e via discorrendo. Sono effettivamente le partizioni del nostro sistema, ognuna delle quali è utilizzata per scopi differenti. Per averne dimostrazione:
bottega@bottegadelbarbieri / sudo sfdisk -l [sudo] password for bottega: Disk /dev/sda: 15 GiB, 16106127360 bytes, 31457280 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xd226ba8e Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1050623 1048576 512M b W95 FAT32 /dev/sda2 1052670 31455231 30402562 14.5G 5 Extended /dev/sda5 1052672 2549759 1497088 731M 83 Linux /dev/sda6 2551808 31455231 28903424 13.8G 83 Linux [...]
/dev/dm*
mapper devices. Tecnicamente sono astrazioni logiche per mappare le partizioni lvm di cui abbiamo parlato nella puntata 5. Per poterlo visualizzare attraverso la console:
bottega@bottegadelbarbieri ~ lsblk --output NAME,KNAME,TYPE,SIZE,MOUNTPOINT |grep dm-* └─sda6_crypt dm-0 crypt 13.8G ├─vgxubuntu-root dm-1 lvm 12.8G / └─vgxubuntu-swap_1 dm-2 lvm 980M [SWAP]
AutoFS || /dev/autofs
autofs è un programma che mantiene aggiornato il montaggio automatico delle directory esterne sul sistema, siano esse samba, nfs, o altro.
bottega@bottegadelbarbieri ~ sudo ls -lha /dev/autofs crw-r--r-- 1 root root 10, 235 Apr 25 05:01 /dev/autofs
Esso agisce sulla base delle informazioni scritte in differenti file:
/etc/auto.master /etc/auto.net /etc/auto.misc /etc/auto.smb /etc/auto/mnt
/etc/autofs.conf
Nulla a che fare con il montaggio statico delle directory che sono listate in /etc/fstab
bottega@bottegadelbarbieri ~ cat /etc/fstab |grep -v "#" /dev/mapper/vgxubuntu-root / ext4 errors=remount-ro 0 1 UUID=efc51c8f-4202-458a-9210-239d075aee17 /boot ext4 defaults 0 2 UUID=880E-018C /boot/efi vfat umask=0077 0 1 /dev/mapper/vgxubuntu-swap_1 none swap sw 0 0
Per avere informazioni su autofs, basterà:
bottega@bottegadelbarbieri ~ sudo /etc/init.d/autofs status ● autofs.service - Automounts filesystems on demand Loaded: loaded (/lib/systemd/system/autofs.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-04-25 06:41:00 BST; 20min ago Docs: man:autofs(8) Process: 741 ExecStart=/usr/sbin/automount $OPTIONS --pid-file /var/run/autofs.pid (code=exited, status=0/SUCCESS) Process: 1344 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS) Main PID: 747 (automount) Tasks: 4 (limit: 2273) Memory: 3.3M CGroup: /system.slice/autofs.service └─747 /usr/sbin/automount --pid-file /var/run/autofs.pid
Quando analizzeremo il montaggio di una directory esterna in nfs, ci renderemo conto che /etc/fstab potrà essere utilizzato ugualmente per assolvere allo stesso scopo
Block || /dev/block
Questa altro non è che un’altra directory dove sono conservati i link ai block devices che abbiamo analizzato in precedenza
-> simbolo del link
bottega@bottegadelbarbieri ~ ls -lha /dev/block/ total 0 drwxr-xr-x 2 root root 380 Apr 25 06:40 . drwxr-xr-x 20 root root 4.2K Apr 25 06:40 .. lrwxrwxrwx 1 root root 6 Apr 25 06:40 11:0 -> ../sr0 lrwxrwxrwx 1 root root 7 Apr 25 06:40 253:0 -> ../dm-0 lrwxrwxrwx 1 root root 7 Apr 25 06:40 253:1 -> ../dm-1 lrwxrwxrwx 1 root root 7 Apr 25 06:40 253:2 -> ../dm-2 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:0 -> ../loop0 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:1 -> ../loop1 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:2 -> ../loop2 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:3 -> ../loop3 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:4 -> ../loop4 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:5 -> ../loop5 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:6 -> ../loop6 lrwxrwxrwx 1 root root 8 Apr 25 06:40 7:7 -> ../loop7 lrwxrwxrwx 1 root root 6 Apr 25 06:40 8:0 -> ../sda lrwxrwxrwx 1 root root 7 Apr 25 06:40 8:1 -> ../sda1 lrwxrwxrwx 1 root root 7 Apr 25 06:40 8:2 -> ../sda2 lrwxrwxrwx 1 root root 7 Apr 25 06:40 8:5 -> ../sda5 lrwxrwxrwx 1 root root 7 Apr 25 06:40 8:6 -> ../sda6
Nella prossima puntata centreremo la nostra attenzione sui devices tty, ovvero le console che rappresentano la nostra sessione di lavoro. Ci sara da divertirsi, credetemi.
Alla prossima settimana!
jolek78
>> | Indice | << |
Puntata 8 | < > | Puntata 10 |
Il logo “Tux Linux” e’ stato realizzato e distribuito dall’artista deiby-ybied su Deviantart in licenza Creative Commons BY-NC-SA 3.0