Difference between revisions of "Arch boot process (Italiano)"

From ArchWiki
Jump to: navigation, search
m ({{Filename|/etc/rc.sysinit}})
m ({{Filename|/etc/rc.local}})
Line 104: Line 104:
 
</nowiki>}}
 
</nowiki>}}
  
Un altro modo di usare {{Filename|rc.local}} e di applicare varie modifiche per risolvere problemi che non possono essere risolti con i metodi convenzionali.
+
Un altro modo di usare {{Filename|rc.local}} è quello di applicare varie modifiche per risolvere problemi che non possono essere risolti con i metodi convenzionali.
  
 
== init: Login ==
 
== init: Login ==

Revision as of 22:18, 22 July 2010

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Questo articolo intende descrivere l'ordine cronologico del processo di avvio di Arch, ed i file che lo interessano, fornendo link a sezioni del wiki dove necessario. Arch come BSD utilizza init, contrariamente al più diffuso SysV. Ciò implica una lieve distinzione tra i runlevel, dato che il sistema di default usa i soliti moduli ed i soliti processi in tutti gli altri runlevel. Il vantaggio è che gli utenti potranno configurare semplicemente il processo di avvio(vedere rc.conf (Italiano); lo svantaggio è che alcune configurazioni interessanti che offre SysV vanno perse. Consultare la guida su come aggiungere runlevel in modo da utilizzare alcune opzioni di SysV in Arch. Consultare Wikipedia:init per approfondire maggiormente le distinzioni tra SysV ed il metodo BSD.

Prima di init

Dopo che la macchina viene accesa ed il POST è stato completato, il BIOS identifica la periferica impostata per il boot e passa il controllo al settore di avvio(Master Boot Record) della periferica. Su una macchina GNU/Linux, spesso viene installato sul MBR del disco un bootloader come GRUB o LILO. Il bootloader offre diverse opzioni di avvio ad esempio come Arch Linux e Windows configurati in dual-boot. Una volta che viene selezionata Arch, l'immagine del kernel nella cartella Template:Filename (attualmente il nome del file è Template:Filename) viene decompressa e caricata in memoria.

Il kernel è il cuore di un sistema operativo. Esso lavora a basso livello (kernelspace) interagendo tra le periferiche della macchina, ed i programmi che ne richiedono le risorse per funzionare. Per sfruttare la CPU in modo efficiente, il kernel usa un sistema di pianificaizone per decidere a quale processo assegnare la priorità e quando, creando così l'illusione(per l'occhio umano) che i processi vengano eseguiti contemporaneamente.

Dopo che il kernel è stato caricato, viene letto l'initramfs(initial RAM filesystem). L'obbiettivo di initramfs è di effettuare il bootstrap del sistema dalla periferica in cui si trova il filesystem di root(vedi FHS per maggiori informazioni). Ciò significa che ogni modulo richiesto dalle periferiche come dischi IDE, SCSI, o SATA (oppure USB/FireWire, se si effettua il boot da una di queste periferiche) deve essere caricato. Una volta che initramfs carica i moduli necessari, sia manualmente che tramite udev, il controllo passa di nuovo al kernel ed il processo di avvio continua. Per questa ragione l'initrd può contenere solo i moduli strettamente necessari per l'accesso al filesystem di root(/); non è quindi necessario che contenga tutti i moduli che servono al completo funzionamento della macchina. La maggior parte dei moduli sarà caricata in seguito da udev, durante la fase di init.

Il kernel successivamente richiama il programma Template:Codeline che si trova in Template:Filename. Template:Codeline fa riferimento a Template:Codeline, la libreria standard del C del progetto GNU. Le librerie sono un insieme di programmi e routine utilizzate frequentemente e sono facilmente identificabili dalla loro esetensione Template:Filename. Sono essenziali per il funzionamento base del sistema. Questa fase del processo di avvio è definita early userspace.

init: Gli script di boot di Arch

Il principale processo di avvio di Arch è inizializzato da Template:Codeline, il quale genera tutti gli altri processi. L'obbiettivo di Template:Codeline è di portare il sistema ad uno stato in cui possa essere utilizzato, servendosi degli script di avvio. Come detto in precedenza Arch utilizza degli script di avvio simili a quelli di BSD. Template:Codeline legge il file Template:Filename; il file Template:Filename di default comincia così:

Template:File

La prima linea non commentata definisce il runlevel di default del sistema(3). Cosa succede quando il kernel richiama init:

  • Prima lo script di inizializzazione viene lanciato, Template:Filename (uno script Bash).
  • Se si avvia in single user mode(runlevel 1 o S), lo script Template:Filename verrà lanciato.
  • Se viene avviato un altro runlevel(2-5), verrà lanciato invece lo script Template:Filename.
  • L'ultimo script ad essere eseguito sarà Template:Filename, che di defaul è vuoto.

Template:Filename

Il file Template:Filename è un grande script che si occupa di tutta la configurazione dell'hardware, ed alcuni compiti di inizializzazione. Può essere identificato dal suo primo compito, inviare al video le linee:

Arch Linux
http://www.archlinux.org
Copyright 2002-2007 Judd Vinet
Copyright 2007-2010 Aaron Griffin
Distributed under the GNU General Public License (GPL)

Una veloce visione di alcuni suoi compiti:

  • Includere il file Template:Filename.
  • Includere il file Template:Filename.
  • Visualizzare un messaggio di benvenuto.
  • Montare vari filesystem virtuali.
  • Creare i file per le periferiche.
  • Avviare minilogd.
  • Inviare i messaggi a dmesg.
  • Configura l'orologio del bios.
  • Svuota il file Template:Filename.
  • Avvia udev e controlla la presenza degli eventi di udev(udev events).
  • Avvia l'interfaccia di loopback.
  • Carica i moduli presenti all'interno dell'array Template:Codeline dal file /etc/rc.conf.
  • Configura eventuali array RAID, file system criptati o LVM.
  • Effettua controlli forzati dei filesystem (fsck) delle partizioni secondo le impostazioni di /etc/fstab.
  • Monta le partizioni locali e la swap(le condivisioni di rete non verranno montate fino a che un profilo di rete non sarà attivo).
  • Attiva la swap.
  • Imposta il nome macchina(hostname), la lingua(locale) e l'orologio di sistema secondo le imostazioni di Template:Filename.
  • Rimuove vari residui dei file temporanei come Template:Filename.
  • Configura la lingua, la console e la mappatura della tastiera.
  • Imposta i caratteri per la console.
  • Scrive gli output dei comandi in Template:Filename.

Template:Filename è uno script e non un file di configurazione. Esso include (quindi ottiene le variabili da) rc.conf per le configurazioni e Template:Filename per le fuznioni che producono l'output grafico(colori allineamento ad esempio il passaggio dei demoni da 'busy' a 'done' ecc.). Non c'è bisogno di modificare questo file, salvo non si vogla farlo per provare a velocizzare il processo di boot(a proprio rischio e pericolo).

Template:Filename

La modalità a singolo utente(single-user mode) si avvierà come utente root, e dovrebbe essere usata se il sistema non riesce ad avviarsi normalmente o in caso di manutenzione del sistema. Questo script assicura che non siano in esecuzione altri demoni se non quelli essenziali: syslog-ng ed udev. La modalità single-user è utile per la manutenzione del sistema essa infatti impedisce agli utenti di connettersi da remoto evitando quindi che vengano effettuate operazioni che possano portare a perdite di dati o danneggiamenti. Dalla modalità single-user gli utenti possono tornare ad effettuare l'accesso alla normale sessione (multi-user) digitando 'exit' nel prompt dei comandi.

Template:Filename

Template:Filename viene eseguito a tutti i runlevel multiutente(es.2,3,4 e 5), cioè ad ogni normale avvio. Normalmente, gli utenti non si accorgono del passaggio da Template:Filename a Template:Filename perché anche esso usa le stesse funzioni per mandare messaggi a video. Questo script ha tre compiti:

Template:Filename

Template:Filename è lo script di avvio locale per le sessioni multiutente. Esso è vuoto di default, è un ottimo posto dove inserire eventuali comandi che devono essere eseguiti alla fine del processo di boot. Alcune configurazioni (caricamento di moduli, cambiamenti nei font della console, accensione di periferiche) solitamente hanno un apposito file dove essere inserite. Per evitare confusione, assicurarsi che qualsiasi comando si voglia aggiungere al file Template:Filename non si trovi in Template:Filename, o in qualsiasi altro file di configurazione.

Mentre si modifica questo file, tenere presente che verrà eseguito dopo il setup di base (moduli/demoni), verrà eseguito come utente root, e sia che il server grafico (X) sia avviato o meno. Ecco un esempio di come togliere il muto ad alcuni canali audio di ALSA:

Template:File

Un altro modo di usare Template:Filename è quello di applicare varie modifiche per risolvere problemi che non possono essere risolti con i metodi convenzionali.

init: Login

Di default, dopo che gli script di boot di Arch sono stati eseguiti, il programma Template:Codeline che richiede il nome utente. Dopo che il nome utente è stato digitato, Template:Codeline richiama Template:Codeline il quale richide la password.

Infine, una volta effettuato l'accesso, Template:Codeline avvierà la shell di default dell'utente. La shell di default e le variabili di ambiente possono essere definite nel file Template:Filename. Tutte le variabili dichiarate all'interno della cartella utente andranno a sostituire quelle definite in Template:Filename. Ad esempio se definiamo la stessa variabile sia in Template:Filename che in Template:Filename quella che prevarrà sarà quella definita in Template:Filename.

Altre alternative sono mingetty che permette di effettuare l'auto-login oppure rungetty che anch'essa permette l'auto-login ed inoltre permette di lanciare comandi e programmi in automatico, esempio Template:Codeline.

La maggior parte degli utenti vorrà avviare un server X (server grafico) durante la fase di boot, e dovrranno quindi installare un display manager per effettuare l'accesso, consultare Display Manager per maggiori dettagli. Alternativamente, questo articolo spiega come sia possibile fare a meno di un display manager.

Risorse