Cosa aspettarsi quando si passa a Linux?

Gruppo Utenti Linux Cagliari h...?

di Aldo Chiecchia

Introduzione

Con Windows siamo abituati a

Un doppio click che fa tutto

Ingnorare quello che non si vede

Reinstallare se il sistema non parte più

Chiamare il “supporto tecnico” se non vogliamo reinstallare

Soprattutto, nel bene e nel male, ci ha fatto dimenticare che cosa sono i calcolatori ed i sistemi operativi!

Introduzione (2)

Attenzione!

Tutto questo non è un male

E' la conseguenza di un approccio diverso al mondo dell' ”elaborazione”

Non è detto che Linux sia per voi la “risposta”

Non è un'evangelizzazione

Cosa è Linux

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)

Newsgroups: comp.os.minix

Subject: Gcc-1.40 and a posix-question

Message-ID: <1991Jul3.100050.9886@klaava.Helsinki.FI>

Date: 3 Jul 91 10:00:50 GMT

Hello netlanders,

Due to a project I'm working on (in minix), I'm interested in the posix

standard definition. Could somebody please point me to a (preferably)

machine-readable format of the latest posix rules? Ftp-sites would be

nice.

Siamo nel 1991!

Cosa è Linux(2)

E' un kernel di sistema

Nasce come progetto “hobbystico”

E' libero (free) sin dal suo concepimento

Scopo: conformità alle specifiche POSIX

La comunità degli sviluppatori reagisce caldamente.

Si forma un primo nucleo di coders, interessati alla possibilità di eseguire un clone UNIX sulle proprie macchine, impegnati nella realizzazione del device drivers.

Cosa è Linux(3)

Non si può prescindere dalle sue origini

La complessità intrinseca deriva dal modello UNIX

E' il prodotto del lavoro di una comunità collaborativa di migliaia di persone.

Ogni “modernizzazione” introdotta poggia comunque sul lavoro storico preesistente

Insomma non ci sbarazzeremo mai della /bin/bash !

Cosa è Linux(4)

Linux è la mente (kernel), GNU è il cuore

Perchè si parla di Linux e non di *BSD o HURD?

Semplice: Linux è arrivato al momento giusto

Gli strumenti GNU esistono fin dal 1984. Sono una parte vitale di un sistema Linux: infatti si dovrebbe parlare di “GNU/Linux”

Back to the roots: UNIX

Eredita il “paradigma base” di UNIX:

Semplicità

C come linguaggio nativo

Riciclabilità del codice

Rispetto a Windows il sistema è fortemente “strutturato”

Back to the roots: UNIX (2)

Semplicità:

Non significa banalità

E' un concetto che dipende da quanto un utente conosce gli “internals”

Ricordiamoci che i primi utenti di Linux erano gli stessi sviluppatori!

Back to the roots: UNIX (3)

C come linguaggio nativo (perchè il C ?)

Ricordiamoci le origini!

Linguaggio adatto al lavoro “sporco”

Liguaggio di hacking per antonomasia

Back to the roots: UNIX (4)

Riclicabilità del codice:

Portabilità su altre piattaforme con pochi adattamenti

Modularità

Molti di questi concetti ci suonano assurdi se pensiamo al solo mondo dei PC. Ricordiamoci che fino a pochi anni fa non esisteva un unica architettura di riferimento e la portabilità del codice era qualcosa di vitale

Back to the roots: UNIX (5)

Un concetto basilare imprescindibile è quello della multiutenza

Le versioni derivate da NT di Windows ci hanno abituato ad un concetto di multitask e multiutenza molto ristretto

UNIX nasce come sistema multiprogrammato, non è stato adattato per supportare la multiutenza.

Siamo ancora in presenza di una differenza d'approccio: in Windows la multiutenza era implicitamente inclusa nel multitask; non esisteva il concetto di “molti utenti-stessa macchina”. Oggi esistono dei comandi per forzare l'esecuzione concorrente sullo stesso display di processi appartenenti a utenti diversi (runas). Il modello multiprogrammato forse non è così obsoleto?

I sistemi, oggi

Oggi l'uniformità delle piattaforme consente di distribuire librerie, drivers e programmi in formato binario

Il concetto di compilazione, per l'utente finale, sta pian piano perdendo importanza a favore di una semplicità di installazione

E' il contesto ideale per i sistemi plug'n'play

Win e Linux

Windows ci ha abituati ad un rapporto molto semplce con la macchina: l'utente può non sapere niente del sistema sottostante

Per capire a fondo Linux dobbiamo fare un passo indietro (ah! di nuovo le origini!)

Per fortuna (come vedremo) anche Linux sta incorporando l'approccio user-friendly. Oggi possiamo scegliere!

Win e Linux (2)

Sempre sull'influenza di UNIX:

Linux eredita l'approccio vecchio stile chiamato “bottom-up” dove tutti i gradini devono essere percorsi per finalizzare un obiettivo

Windows ci propone il moderno (!) modello “top-down” dove ci si focalizza solo sul problema in se, lasciando ad altri il compito di fare il lavoro sporco.

Linux: i fondamentali

GNU/Linux incorpora gli strumenti base di un S.O.

Compilatori

Librerie

Strumenti di debugging

Tutti gli elementi del sistema (kernel, device drivers, librerie) si possono costruire a partire da questi strumenti

Questa strutturazione l'ha reso vincente in ambito accademico

Linux: i fondamentali (2)

Abbiamo visto il kernel, GNU e gli strumenti di sviluppo. Ma allora le distribuzioni a che servono?

Hanno fatto il lavoro sporco per noi (compilazione delle librerie di sistema e impacchettamento)

Utilizzano diversi sistemi di gestione delle installazioni di questi pacchetti

Personalizzano gli strumenti di gestione e installazione

Linux: i fondamentali (3)

Grazie alle distribuzioni è facile configurarsi il sistema velocemente e senza sobbarcarsi l'onere della compilazione

Questa possibilità ha reso possibile l'avvicinamento di utenti e power users non necessariamente sviluppatori

Le potenti GUI hanno espanso ulteriormente il bacino d'utenza: Linux è sdoganato! (non lo usano più solo i nerds)

Linux: in pratica

Molto spesso esistono molti comandi per raggiungere lo stesso scopo.

Esempio semplice: lanciare il server WWW su una Debian:

/usr/sbin/apache

/usr/sbin/apachectl start

/etc/init.d/apache start

Linux: in pratica (2)

Esempio di installazione del pacchetto openoffice su Debian/Linux:

apt-get install openoffice.org

Linux: in pratica (3)

Esempio di installazione del pacchetto openoffice su RedHat/Linux v9:

rpm -i openoffice-1.0.2-4.rpm

Linux: in pratica (4)

Installazione Openoffice con Redhat: metodo GUI 1

Linux: in pratica (5)

Installazione Openoffice con Redhat: metodo GUI 2

Linux: il controllo

Vedere i files aperti da un processo

{ubik:~} lsof | grep init

init 1 root cwd DIR 3,2 4096 2 /

init 1 root rtd DIR 3,2 4096 2 /

init 1 root txt REG 3,2 27228 342905 /sbin/init

init 1 root mem REG 3,2 90144 163678 /lib/ld-2.3.2.so

init 1 root mem REG 3,2 1243076 164941 /lib/libc-2.3.2.so

init 1 root 10u FIFO 0,7 384 /dev/initctl

Linux: il controllo (2)

Vedere tutti i processi:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.3 0.1 1484 488 ? S 10:32 0:07 init [3]

root 0 0.0 0.0 0 0 ? SW 10:32 0:00 [migration_CPU0]

root 3 0.0 0.0 0 0 ? SW 10:32 0:00 [keventd]

root 0 0.0 0.0 0 0 ? SWN 10:32 0:00 [ksoftirqd_CPU0]

root 0 0.0 0.0 0 0 ? SW 10:32 0:00 [kswapd]

root 0 0.0 0.0 0 0 ? SW 10:32 0:00 [bdflush]

root 0 0.0 0.0 0 0 ? SW 10:32 0:00 [kupdated]

root 10 0.0 0.0 0 0 ? SW 10:33 0:00 [khubd]

root 15 0.0 0.0 0 0 ? SW 10:33 0:00 [kjournald]

root 807 0.0 0.7 2912 1980 ? S 10:33 0:00 /sbin/devfsd /dev

daemon 912 0.0 0.2 1704 600 ? S 10:33 0:00 /sbin/portmap

root 1013 0.0 0.3 2184 792 ? S 10:33 0:00 /sbin/syslogd

root 1016 0.0 0.5 2248 1372 ? S 10:33 0:00 /sbin/klogd

root 1021 0.0 0.1 1480 488 ? S 10:33 0:00 /usr/sbin/usbmgr

root 1028 0.0 0.2 1492 576 ? S 10:33 0:00 /usr/sbin/acpid

root 1088 0.0 0.3 2240 820 ? S 10:33 0:00 /usr/sbin/automount

root 1147 0.0 0.7 5192 1840 ? S 10:33 0:00 /usr/sbin/cupsd

message 1319 0.0 0.3 1952 800 ? S 10:33 0:00 /usr/bin/dbus-daemon-1 --system

root 1325 0.0 0.5 2716 1368 ? S 10:33 0:00 /usr/sbin/famd -T 0

root 1330 0.0 0.2 1780 564 ? S 10:33 0:00 /usr/sbin/gpm -m /dev/input/mice

root 1340 0.0 0.2 2164 708 ? S 10:33 0:00 /usr/sbin/inetd

daemon 1353 0.0 0.4 3868 1248 ? S 10:33 0:00 lpd Waiting

root 1458 0.0 0.6 3040 1700 vc/1 S 10:33 0:00 -bash

zim 2578 0.0 0.2 2352 636 vc/2 S 11:12 0:00 xinit -- :1

zim 2624 0.1 1.0 5320 2584 vc/2 S 11:12 0:00 xterm -geometry +1+1 -n login

zim 2625 0.0 0.6 3000 1640 pts/1 S 11:12 0:00 bash

zim 2628 0.1 0.7 3780 1908 pts/1 S 11:12 0:00 twm

zim 2635 0.0 0.3 2468 824 pts/1 R 11:13 0:00 ps auxw

Linux: il controllo (3)

Vedere i socket aperti e i processi associati

{ubik:~} netstat -atep

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name

tcp 0 0 *:printer *:* LISTEN root 2504 1350/lpd Waiting

tcp 0 0 *:650 *:* LISTEN root 2402 1322/famd

tcp 0 0 *:sunrpc *:* LISTEN root 1964 912/portmap

tcp 0 0 *:auth *:* LISTEN root 2484 1337/inetd

tcp 0 0 *:ssh *:* LISTEN root 2604 1398/sshd

tcp 0 0 *:ipp *:* LISTEN root 2326 1144/cupsd

tcp 0 0 *:smtp *:* LISTEN root 2483 1337/inetd

tcp 0 0 192.168.1.250:32820 pop.tiscalinet.it:imap2 ESTABLISHEDroot 10658 1977/mozilla-bin

tcp 0 0 192.168.1.250:32810 irc2.tin.it:ircd ESTABLISHEDroot 5135 1889/xchat

tcp 0 0 192.168.1.250:33272 weather1.vip.scd.ya:www CLOSE_WAIT root 36477 1573/python

Linux: il controllo (4)

Vedere la configurazione delle interfacce di rete

{ubik:~} ifconfig

eth1 Link encap:Ethernet HWaddr 00:0D:BC:98:CA:9B

inet addr:192.168.1.250 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:36825 errors:725 dropped:0 overruns:0 frame:725

TX packets:31142 errors:0 dropped:0 overruns:0 carrier:0

collisions:293 txqueuelen:100

RX bytes:42290223 (40.3 MiB) TX bytes:2212535 (2.1 MiB)

Interrupt:10 Base address:0x100

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:80 errors:0 dropped:0 overruns:0 frame:0

TX packets:80 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:4842 (4.7 KiB) TX bytes:4842 (4.7 KiB)

Cosa aspettarsi

Le difficoltà nell'approccio variano molto a seconda della tipologia di distribuzione

Redhat, Mandrake e SuSe seguono il modello Windows, focalizzandosi sul plug'n'play

Debian e Slakware tendono a preservare la natura UNIX: l'utilizzatore deve conoscere il sistema

Cosa aspettarsi (2)

Es. screen di installazione della Debian Woody

Cosa aspettarsi (3)

Es. screen di installazione Mandrake 9.1

Urban Legends

Linux è difficile

Linux (Windows) è più veloce

Meglio Ctrl+Alt+Canc che ps auwx | grep user

Linux va meglio per la rete

Per Linux non c'è assistenza

Non ci sono molti giochi per Linux

Linux è per gli Hackers

Conclusioni

Il perchè passare a Linux lo dovete sapere voi! Noi possiamo farvi vedere solo cosa ci troverete.

Non è detto che vi ci troviate bene. Non ci sarebbe nulla di strano!

Non fatevi confondere dalle “Guerre di Religione” sui S.O.: valutate con i vostri occhi

Riferimenti

Linux in a Nutshell
http://www.hk8.org/old_web/linux/lnut/index.htm

Introduction to linux
http://tldp.org/LDP/intro-linux/html/index.html

La Guida Debian
http://www.debian.org/doc/manuals/reference/reference.it.html

From DOS/Windows to Linux HOWTO
http://ildp.pluto.linux.it/HOWTO/DOS-Win-to-Linux-HOWTO.html#toc1

The Linux Documentation Project
http://www.tldp.org

2003-11-18T16:05:18