Corso Di Linux

Liceo Fermi, Bologna - Marcello Galli, novembre 2009

Il processo di boot

Vediamo ora cosa succede quando il computer parte.

  1. Quando accendete il computer parte un piccolo programma, scritto in una memoria flash (una memoria riscrivibile permanente) che sta in un integrato sulla scheda madre. Questo e' il BIOS: "basic input output system": il programma per la partenza del computer. Il BIOS all'inizio fa dei test, per controllare che la memoria, la tastiera, i dischi, il mouse etc. funzionino, poi il suo lavoro e' finito e cerca un programma da caricare ed eseguire. Se qualcosa non va emette una serie di "beep" ed il computer non parte.

    Il BIOS ha dei parametri, che potete cambiare. Si accede a questi parametri in genere premendo il testo "Canc" alla partenza, vedrete una serie di schermi blu, con diverse opzioni da scegliere. In genere si lasciano quelle di fabbrica. Un'opzione puo' essere importante, quella che dice dove cercare il programma da caricare, potete scegliere l'ordine di ricerca: CDROM, floppy, disco fisso etc. Se volete usare una distribuzione "live" e partire dal CD, dovete mettere per primo il CDROM. I parametri sono conservati in una memoria alimentata da una pila, che sta sulla scheda madre. Per fortuna la pila dura anni. Ma se vedete che il vostro computer dimentica l'ora e la data quando lo accendete, puo' essere ora di cambiare la pila.

Il BIOS e la pila

Il Bios e la pila in un vecchio computer.

  1. All'inizio del primo disco fisso, nei primi 512 bytes, c'e' un piccolo programma per la partenza della macchina. Con Linux puo' essere il programma "lilo", oppure "grub". Il BIOS carica questo programma in memoria e lo esegue. Questo programma e' molto piccolo e fa poco: vi mostra una serie di opzioni, in modo che possiate scegliere che sistema operativo caricare. Questo programma si chiama "programma di boot". Se avete configurato il BIOS in modo che cerchi su CDROM prima che dal disco, il BIOS carica il sistema operativo dal CD, se lo trova, altrimenti poi va sul disco fisso.
  2. Il programma di boot e' piccolo, non ce la fa a caricare il sistema operativo, e carica un secondo programma, piu' potente, per caricare il kernel. Questo programma carica in memoria il sistema operativo che avete scelto, che per linux e' il file di nome vmlinuz che sta nella cartella /boot.
  3. Il sistema operativo si installa in memoria, inizia a correre e restera' in memoria fino a che il computer e' acceso. Il sistema operativo usa memoria "vera" non virtuale (kernel space), e le pagine di memoria che occupa sono fisse, non vengono spostate qua' e la' a seconda delle esigenze, come quelle dei programmi nello "spazio utente".
  4. Il sistema operativo esamina il computer e carica i driver delle periferiche che trova.
  5. Il sistema operativo a questo punta fa partire il primo processo, il processo numero 0, che si chiama init.
  6. Il processo init fa partire tutti i servizi di sistema: i terminali, che servono da interfaccia per il collegamento degli utenti, il sistema che scrive i log , la rete, il sistema per le operazioni periodiche etc. Poi fa partire il kdm, o gdm: programmi che preparano la grafica del video per farvi accedere al computer. Per fare tutto questo esegue procedure che stanno in /etc/init.d, e potete avere un sistema, che, a vostra scelta, ha attivi servizi diversi. Il comportamento di questi servizi e' determinato da files di configurazione in /etc, che si possono cambiare.
  7. A questo punto il sistema e' pronto per l'utente. Alcune distribuzioni nascondono tutte le operazioni fatte fino a questo punto e mostrano un disegnino animato mentre tutto il lavoro viene fatto (come fa windows). Sembra che molti utenti si spaventino se vedono scritte che scorrono in fretta sullo schermo.

Collegamento di un utente

Ci sono 2 modi di collegarsi al computer, uno utilizzando la grafica, l'altro utilizzando una semplice interfaccia testuale, ove si scrivono a video i comandi che il computer esegue.

L'interfaccia testuale si usa in situazioni di emergenza, ad esempio quando l'interfaccia grafica non funziona, oppure se si lavora su un computer lontano, via rete. Solo collegamenti ad alta velocita' permettono di lavorare in remoto in modo grafico. Quando si lavora da lontano si usa l'interfaccia testuale.

Nel modo testuale il programma di ingresso (di login) controlla la password, poi fa partire "la shell", un programma che interpreta i comandi e li esegue. L'utente interagisce con la shell.

Nel modo grafico le cose sono piu' complicate. Un programma di "login grafico" chiede la password, quindi fa partire il programma che gestisce la grafica (si chiama "server X11"), poi fa partire un programma che gestisce il desktop, ovvero disegna tutte le icone e le finestre che stanno sullo schermo e gestisce l'interazione fra le diverse finestre.

Il desktop e' un insieme di finestre ed applicazioni grafiche integrate, fatte per lavorare insieme. I desktop moderni sono pieni di funzioni e dotati di comodi programmi che permettono di gestire anche il sistema in modo grafico, ma si puo' lavorare in modo grafico anche anche senza il desktop, utilizzando il server X11 direttamente, con un gestore di finestre minimale, ovviamente avremo meno funzioni e le applicazioni grafiche non saranno integrate fra loro.

Con l'interfaccia grafica, si puo' anche aprire una "finestre terminale", che disegna sullo schermo un terminale testuale, da cui dare comandi alla shell, come si faceva quando le interfacce grafiche non esistevano.

Ci sono diversi programmi di desktop in Linux, i principali sono 3: kde, gnome, ed Xfce. Si puo' scegliere, o anche metterli su tutti e decidere quale usare, quando ci si collega con username e password, si puo' perfino riuscire, ma non sempre, nell'acrobazia di usare tutti i desktop contemporaneamente e passare dall'uno all'altro con una qualche combinazione di tasti.

Il desktop e' attualmente in veloce evoluzione. Ci lavora molta gente, perche' si pensa che un buon desktop permetta a Linux di essere utilizzato da molti e possa cosi' fare concorrenza a Windows, cosa che ora fa solo nel mercato dei servers.

Desktop KDE 4

Desktop KDE 4