PDF, 503 Kb - Leoncavallo.org

annuncio pubblicitario
Il Bootstrap
Il BIOS del Computer
Il BIOS è l'acronimo di Basic Input/Output System.
E' un programma immagazzinato all'interno di un chip di memoria delle vostre schede madri.
La memoria in cui è presente questo programma è di tipo ROM (Read Only Memory) una
memoria a sola lettura, ma ormai è abitudine utilizzare altri tipi di memorie come EPROM o
EEPROM (cioè memorie più flessibili che si possono cancellare e riscrivere in modo
elettronico).
Che cosa fa il BIOS
Il BIOS fa diverse operazioni utili, ne elenchiamo alcune:
Lancia la fase di POST (Power-on Self test) - test che il BIOS fa a sè stesso, alla macchina,
all'hardware per verificare se ci sono dei problemi.
●
●
Avvia il computer e lancia il Sistema Operativo;
●
Gestisce varie impostazioni dell'hardware della macchina.
Approccio al Sistema Operativo
1
Il Bootstrap
Il BOOTLOADER
è un piccolo programma utilizzato, come suggerisce il nome stesso, per il boot del sistema.
Spesso si commette l’errore di identificare il bootloader con il programma che lo fornisce:
prendendo come esempio il loader più utilizzato, LiLO (Linux LOader), si dice che questo sia il
bootloader anche se in realtà non è propriamente così: LiLO (il programma) fornisce il
bootloader.
Il funzionamento di un bootloader è assai complicato ma lo si può sintetizzare e semplificare
in poche fasi:
●
in un primo momento, il BIOS della macchina carica il bootloader;
questo, in seguito, carica il kernel del sistema o i "boot sectors" di altri sistemi operativi
(come Windows) passando ad altri programmi la successiva operazione di boot.
●
A questo punto la funzione del boot loader è terminata ed inizia la vera e propria fase di
bootstrap del sistema operativo.
Approccio al Sistema Operativo
2
Il Bootstrap
IL KERNEL
costituisce il nucleo di un sistema operativo. Si tratta di un software avente il compito di
fornire ai processi in esecuzione sull'elaboratore un accesso sicuro e controllato
all'hardware. Dato che possono esserne eseguiti simultaneamente più di uno, il kernel
ha anche la responsabilità di assegnare una porzione di tempo-macchina e di accesso
all'hardware a ciascun programma (multitasking).
Naturalmente, un kernel non è strettamente necessario per far funzionare un
elaboratore. I programmi possono essere infatti direttamente caricati ed eseguiti sulla
macchina, a patto che i loro sviluppatori ritengano necessario fare a meno del supporto
del sistema operativo: questa era la modalità di funzionamento tipica dei primi
elaboratori, che venivano resettati prima di eseguire un nuovo programma.
Approccio al Sistema Operativo
3
Il Bootstrap
SEQUENZA DI INIT
All'avvio del sistema, ci sono molte scritte che scorrono e il testo è il medesimo ad ogni
avvio. La sequenza di tutte queste azioni viene chiamata boot sequence ed è (più o
meno) definita staticamente.
Per prima cosa, il boot loader carica l'imagine del kernel, definita nella configurazione in
memoria, dopo di che dice alla CPU di eseguire il kernel. Quando il kernel è caricato e in
esecuzione, inizializza la struttura del kernel e i task e avvia il processo init.
Questo processo si assicura che tutti i filesystem (definiti in /etc/fstab) siano montati e
pronti per l'uso. Poi esegue alcuni script situati in /etc/init.d, che avviano i servizi
necessari per un corretto avvio del sistema.
Alla fine, quando tutti gli scripts sono eseguiti, init attiva i terminali (nella maggior parte
dei casi solo le console virtuali che sono nascoste in Alt-F1, Alt-F2, ecc.) attaccandogli
un processo chiamato agetty. Questo processo per prima cosa si assicura che sia
possibile eseguire il login su questi terminali eseguendo login.
Approccio al Sistema Operativo
4
Servizi di Base
COSA FA CRON?
Cron è un demone che esegue operazioni pianificate gestite tramite il
comando crontab. Porta a termine questo compito attivandosi ogni minuto
e controllando la presenza di operazioni da eseguire (cron-job) in tutti i
crontab degli utenti.
Nota: crontab è sia il nome di una lista di cron-job (operazioni da eseguire)
che il nome del comando necessario alla configurazione di tale lista.
Approccio al Sistema Operativo
5
Servizi di Base
Inetd è un demone (servizio) che ascolta sulle porte specificate nel suo file di
configurazione e fa avviare il relativo servizio nel momento in cui viene fatta una
richiesta.
Viene chiamato superdemone proprio per questa sua funzione di controllo di altri
demoni.
Il vantaggio di usarlo è di ottimizzare le risorse del sistema, avviando il programma che
gestisce un determinato servizio solo quando ci sono effettive richieste.
Sebbene possa essere usato per gestire quasi tutti i servizi è consigliabile farlo solo per
quelli a basso e occasionale traffico.
/etc/inetd.conf E' solitamente il suo file di configurazione
/etc/services E' un file che assegna un nome di servizio alla relativa porta. Viene usato
anche da altri programmi.
Inetd è comune su tutti gli Unix, ma su Linux più recenti si utilizza Xinetd,che
è una versione più evoluta che introduce nuove funzionalità.
Approccio al Sistema Operativo
6
Servizi di Base
Nella procedura di inizializzazione del sistema, Getty è quel programma che si
occupa di attivare il terminale e iniziare la procedura di accesso. Come dice la pagina di
manuale getty: «Getty è il secondo dei tre programmi (init, getty e login) utilizzati dal
sistema per permettere all'utente di accedere». In pratica, il programma Getty si
occupa di:
aprire la linea di terminale e impostare le modalità necessarie;
emettere l'invito della procedura di accesso;
ricevere il nominativo usato dall'utente per identificare
attivare il programma per la procedura di accesso (convenzionalmente si tratta di /
bin/login), fornendogli già il nominativo-utente (successivamente è compito di login
la richiesta di inserire la parola d'ordine).
Il programma Getty tipico fa uso di alcuni file:
/etc/gettydefs : per la definizione delle caratteristiche delle linee dei terminali;
/etc/issue : per definire un testo di «benvenuto» da inviare all'utente
che tenta di connettersi.
Approccio al Sistema Operativo
7
Servizi di Base
XDM
Xdm è il sistema di autenticazione grafica tradizionale di X, incluso anche in XFree86.
In condizioni normali, i file e gli script di configurazione che lo riguardano, dovrebbero
trovarsi nella directory /etc/X11/xdm/.
La configurazione predefinita dovrebbe prevedere l'apertura di una sola sessione
grafica locale, escludendo l'accesso remoto.
L'avvio del demone xdm, che si occupa di controllare l'accesso e l'avvio di X, dovrebbe
essere gestito da uno script della procedura di inizializzazione del sistema; per
esempio /etc/init.d/xdm, o altro simile. Tuttavia, anche avviando direttamente
l'eseguibile xdm, si ottiene il risultato (naturalmente lo si deve fare con i privilegi
dell'utente root).
Una volta superata la fase di autenticazione in modo corretto, inizia una sessione,
controllata dallo script /etc/X11/xdm/Xsession. Al termine di questo script termina la
sessione e ritorna la richiesta di autenticazione per quella stazione grafica. In condizioni
normali, questo script dovrebbe richiamare un altro script usato anche per altri sistemi
del genere (per esempio /etc/X11/Xsession), che a sua volta dovrebbe occuparsi di
avviare lo script personalizzato dell'utente (~/.Xsession o ~/.xsession).
Approccio al Sistema Operativo
8
Login e Logout
Procedura di accesso, Login e logout,
Con procedura di accesso si vuole fare riferimento al procedimento
attraverso il quale un utente accede e può interagire con il sistema, dopo
una fase di identificazione, che di solito consiste nell'indicazione di un
nominativo-utente e di una parola d'ordine. In particolare, login è quel
processo che viene usato quando si entra nel sistema. Può essere usato
anche per passare in qualsiasi momento da un utente ad un altro (molte
delle shell moderne hanno, comunque, il supporto per questa possibilità
precompilato al loro interno). Mentre, logout identifica la conclusione
dell'attività dello stesso.
Approccio al Sistema Operativo
9
Login e Logout
Shell: interprete dei comandi
Ciò che permette a un utente di interagire con un sistema operativo è la shell, che si
occupa di interpretare ed eseguire i comandi dati dall'utente.
Dal punto di vista pratico, il funzionamento di un sistema Unix dipende molto dalla shell
utilizzata, di conseguenza, la scelta della shell è molto importante. La shell tipica dei
sistemi Unix è una shell derivata da quella di Bourne, possibilmente aderente allo
standard POSIX: la shell POSIX. Nei sistemi GNU la shell tipica è Bash (il programma
eseguibile bash), che è conforme allo standard POSIX.
Una shell Unix normale svolge i compiti seguenti:
●
mostra l'invito, o prompt, all'inserimento dei comandi;
●
interpreta la riga di comando data dall'utente;
●
esegue delle sostituzioni, in base ai caratteri jolly e alle variabili di ambiente;
●
mette a disposizione alcuni comandi interni;
●
mette in esecuzione i programmi;
●
gestisce la ridirezione dell'input e dell'output;
●
è in grado di interpretare ed eseguire dei file script di shell.
Approccio al Sistema Operativo
10
Login e Logout
File e file system
Second-extended, Ext2, Ext3
Il file system nativo del sistema GNU/Linux è il tipo Second-extended, che prevede due
varianti: Ext2 ed Ext3. La variante Ext3 contiene delle estensioni che consentono di
ridurre la possibilità di perdite di dati, mantenendo la compatibilità con Ext2.
FAT
File allocation table. La FAT è una parte componente del file system dei sistemi Dos. È
così particolare che tale tipo di file system viene chiamato con questa stessa sigla: FAT.
Mount, unmount,
Nei sistemi operativi Unix, quando si vuole accedere ai dati memorizzati su disco, non si
può fare riferimento a un file appartenente a una certa unità come avviene nei sistemi
Dos e derivati. Si deve sempre fare riferimento al file system globale. Per fare questo,
tutti i dischi a cui si vuole accedere devono essere uniti tramite un procedimento simile
all'innesto di rami. Il termine «montaggio», o mount, indica un collegamento, o
l'innesto, del contenuto di un disco nel file system globale; il termine «smontaggio», o
unmount, indica il distacco di un disco dalla struttura globale.
Approccio al Sistema Operativo
11
Da Ricordare
MULTIUTENTE - MULTITASKING
Multiutente significa che puo' essere utilizzato da piu' utenti contemporaneamente,
mentre multitasking significa che permette l'esecuzione di piu' programmi
contemporaneamente.
PROCESSO
●
mem
●
stat
●
ps
●
top
●
jobs
Approccio al Sistema Operativo
12
Bibliografia
Documentazione di Gentoo:
http://www.gentoo.org/doc/it/
Appunti di Informatica Libera:
http://a2.pluto.it/
Html.it:
http://linux.html.it/
Google:
http://www.google.it/linux
Approccio al Sistema Operativo
13
Scarica