1. ARCHITTERRTURA DEL SISTEMA Flashcards
Che cosa sono gli interupts?
Sono degli impullsi alla cpu che permettono la comunicazione tra le periferiche e la cpu.
Dove si trova il file che mostra gli Interupts?
All’interno della cartella proc
per visualizzarli usiamo il comando cat
~~~
cat /proc/interupts
~~~
Cosa troviamo all’interno del file Interupts?
Troviamo:
* Numero interupts
* Nome interupts
* Tipo Interupts
* Cpu0
cpu0 indica quante è volte è stata richiamata la cpu.
Che cosa sono i gli Ioports
Sono la memoria associata alla periferica
La cpu associa la memoria alle periferiche
Che cos’è un D-Bus ?
E’ un bus di message, il quale permette la comunicazione tra le applicazioni
il quale collega le applicazioni al networking e HAL
Che cosa fa HAL ?
Permette la comunicazioni tra hardware e userspace
fornisce un API, ovvero un database con tutte le periferiche collegate
Hardware Abstraction Layer
Che cosa fa Udev?
Sostituisce HAL e usa la stessa sintassi
Come si suddividono i dispositivi?
I dispositivi possono essere hot plug e cold plug
Hot plug = connessi/disconessi a computer accesso
Cold plug = connessi/disconessi a computer Spento
Dove possiamo visualizzare i dispositivi hot plug?
All’interno della cartella /dev
In questa cartella vedremmo tutti i device connessi
Come possiamo visualizzare i dispositivi Cold plug
PCI
con il comando lspci
con questo comando possiamo visualizzare diversi rami
quello principale è indicato con 0000.00, gli atri invece sono secondari
Che cosa fa un driver ?
Il driver consente al sistema operativo di comunicare con una periferica.
vengono identificati come modli
Come possiamo visualizzare i driver ?
con il comando lsmod
Dove possiamo visualizzare tutti i moduli e i loro percorsi associati?
Li possiamo visualizzare all’interno della cartella lib
dove ci sarà un file denominato modules
ls lib/modules
Per la rimozione di un modulo che comando usiamo ?
rmmod
nello specifico : rmmod "nome del modulo"
Per il rinserimento di un modulo che comando utilizziamo?
insmod
nello specifio : insmod "percorso del modulo "
il percorso lo visualizziamo con lib/modules
A cosa serve modprobe ?
stesso principio di rmomd e insmod
senza parametri = insmod
con il parametro -r = rmmod
con il parametro -d = cambia la configurazione di un modulo
In quale cartella possiamo visualizzare l’hardware e le sue proprietà?
nella cartella /sys
Quali sono i processi per un boot loader ?
Elenca tutti i procesi
- POST(*Power on Self Test *)
- STAGE 1 MBR
- STAGE 2 BOOT LOADER
- INIT
- SISTEMA OPERATIVO
Che cos’è MBR?
Sono i primi 512 Byte della partizione
servono a caricare il boot
Se vogliamo scegliere quale sistema operativo avviare, quale interfaccia utilzziamo?
GRUB
il quale mostra le varie modalità e sistemi operativi installati
Possiamo usare il sistema di chain loading
In cosa consiste il chain loading?
Consiste di avviare un sistema operativo diverso dal boot loader associato.
Se siamo sul boot loader di Linux e vogliamo avviare Windows. prima di caricare windows caricheremo il boot loader per avviare windows.
BOOT LOADER –> BOOT LOADER (1)
Che cos’è initrd
E’ un file che contiene i moduli kernel e fa partire il sistema operativo
Initial Ram disk
Che cosa fa sbin/init
Avvia tutti i processi e demoni per l’avvio del sistema.
Riamanendo attivo fino al suo speginmento.
/sbin/init —>/lib/systemd/systemd
Che cosa sono i jobs e units
Che cosa indicano?
Sono processi nella shell
indicano quale processo viene eseguito
.service - .target - .socket - .time - - -
Quale la differenza tra BIOS e Uefi
BIOS*Basic Input Output System *
è un sistema semplice con un mini programma all’interno
UEFI Unified Extensibile Firmware Interface
E’ un sistema molto più complesso il quale carica sistemi Uefi e legacy
UEFI = ha un proprio linguaggio di programmazione al suo interno
Quali sono i Bios su LInux
- LIDO (LINUX loader)
- GRUB * (GNU Grand Unified Bootloade)r *
GRUB ora è Grub LEGACY
Quali sono i UEFI in Linux ?
- Elido Efi Lido
- GRUB 2.0
Grub 2.0 ora è GRUB
Quanti sono i Runlevel e che cosa sono ?
Elencali tutti
I runlvel sono 7 (contando lo 0) e sono i livelli di lavorazione
1. 0 - sTATO SPEGNIMENTO
2. 1 -Single user (root)
3. 2 - Multi user
4. 3 - Multiuser-networking
5. 4 - Custom mode
6. 5 - Multiuser - Netowrking - Graphic
7. 6 - Reboot
Come accediamo a INIT ?
Premendo il tasto e
sul sistema operativo scelto
editor init
come cambiamo runlevel all’interno di init?
mettendo il numero correspitivo alla runlevel desiderata ovvero alla fine dei processi di init
Come possiamo vedere qual’è il runlevel di default ?
all’interno della shell possiamo vederlo con il comando di grep all’interno della cartella /etc/initab
grep initdefault /etc/initab
ma è stato sostituito da systemd
Come possiamo cambiare runlevel all’interno della shell?
tramite il comando systectl set-default “runlevel che vogliamo”
sostituiti con i target accessibili nella cartella systemD
come possiamo visualizzare i runlevel sostuiti con i target?
Attraverso la cartella lib/systemd/system
per spostarci in questa cartella usaimo il comando cd
poi una volta spostati usiamo il comando ls -l runlevel*.target
per visualizzare i file
cd /lib/systemd/system
ci saranno link simbolici ai target
cosa possiamo visualizzare con il comando dmesg
i messaggi del kernel
Cosa possiamo visualizzare con il comando cat /var/log/boot.log
?
i messaggi durante il boot
possiamo usare lees; tail; head per visualizzarli meglio
Cosa possiamo visualizzare con il comando cat /var/log/messages
i messaggi a livello globale
JOURNALCTL
A cosa serve il comando journalctl
A mostrare tutti i log della macchina dal suo primo avvio
JOURNALCTL
Cosa mostra con il paramertro -b
Mostra tutti i log dopo l’ultimo boot
aggiungendo -r possiamo vederlo al reverse
JOURNALCTL
Cosa mostra con il paramertro --list books
Mostra tutti i boot della macchina
i numeri all’inizio indicano il numero del boot
JOURNALCTL
Cosa mostra con i paramertri --since/--until
Indica un tempo specifico since = da , until = ad
UN ESEMPIO : journalctl –since=”2018-07-05”
JOURNALCTL
Cosa mostra con il parametro _UID="numero"
Mostra i log appartenenti allo specifico utente
UN ESEMPIO : journalctl_UID=977
JOURNALCTL
Che cosa mostra con il parametro --unit
Mostra i log di una specifica unit
–unit = idconfig.service (esempio un servizio)
per vedere tutte le units: systemctl
JOURNALCTL
Cosa mostra il parametro -f
mostra tutti i messaggi di log e li aggiorna in temp reale su schermo
Com’erra strutturato il file di inittab all’interno dei veccchi sistemi ?
id : runlevel : process : action
* id : nome id
* numero runlevel
* azione da eseguire
Parametri aggiuntivi : wait - respawm - once
INITTAB - FILE
I parametri aggiuntivi quali sono e che funzioni svolgono
- wait = avvia il processo e aspetta che il processo sia partito
- once = fai partire il processo quando entriamo nella runlevel …
- respawn = in caso il processo terminasse fallo ripartire
RUNLEVEL
Con quale comando possiamo vedere la runlevel Attuale ?
runlevel
Con quale comando possiamo cambiare runlevel al volo
tellinit "numero runlevel"
In quale cartella e file possiamo visualizzare i servizi su ubuntu server?
nella cartella etc/rc
con il comando : ls -lah/etc/rc (tab)
Come è strutturato uno script ?
- K = script di kill
- S = script di start
- Numero Script = indica l’ordine degli script
- Nome Script
Dove possiammo visualizzare i Demoni avviati?
nella cartella etc/init.d
Che cosa facciamo con il comando : sysv-rc-conf
Possiamo aprire un interfaccia grafica che ci permette di scegliere quale demone far partire su quale runlevel
* PRIMA COLONNA = servizi
* ALTRE COLONNE = Runlevel
* RIGHE = demoni
Che cosa rimpiazza Upstart ?
SYSTEM VINIT
il quale aveva degli script che ora sono dei servizi
I servizi che cosa hanno?
in quale cartella?
I sevizi hanno ognungo un proprio file associato
nella cartella etc/init
less /etc/init “nome servizio” –> possiamo vedere cosa fa quello specifico servizio (runlevel con il quale si avvia)
Quali sono i vantaggi di Upstart
Che possiamo avviare o fermare un demone dopio una specifica azione
ESEMPIO: montaggio di una cartella
Dove possiamo visualizzare gli eventi dei demoni ?
initctl show-config
Che cosa fa lo shutdown
?
- Invia un messagio di broadcast a tutti gli utenti
- Init invia un segnale a tutti gli utenti per terminare tutti processi correttamente (SIGTERM)
- Dopo 5 secondi se non sono terminati i processi, viene inviato un segnale di SIGKILL ovvero killando i processi che non sono terminati
SHUTDOWN
Con il parametro -r
reboot
SHUTDOWN
Con il parametro -t
time sigkill
ovvero il tempo prima di killare i processi
SHUTDOWN
Con il parametro -H
Mette il sistema in stato di halt
SHUTDOWN
Con il parametro -P
Poweroff
spegne la macchina
SHUTDOWN
Con il parametro -k
avvia una simulazione
SHUTDOWN
Con il parametro -c
Annuliamo lo shutdown programmato
Messaggio di Broadcast personalizzato come fare?
shutdown "tempo" "messaggio personalizzato"
t viene inviato agli utenti al massimo 15 minuti prima
shutdown programmato come si fa?
shutdown -r "Orario"
qui indichaimo che ci sarà un reboot in un orario specifico
Cosa fa wall ?
Invia un messaggio di broadcat personalizzato su tutte le shell
Come comunicano i demoni?
comunicano tramite socket.
I socket si avviano solo su richiesta
Che cosa utilizziamo per controllare i demoni ?
SYSTEMCTL
Quali sono i principali comandi che usiamo con systemctl
status
start
stop
start e stop possono avviare o fermare un demone
STATUS invece fa vedere lo stato di un demone con diversi parametri che lo compongono
Come si chiamano i sostituti di RUNLEVEL
quali sono
Boot target
0.poweroff
1.rescue
multi-user
5.graphical
6.reboot
come facciamo a impostare un boot target predefinito ?
prima lo abilitiamo : systemctl enable "boot target"
poi lo settiamo :systemctl set-default "boot target"
Come facciamo a cambiare boot target
systemctl isolate "boot target"
Che cos’è e ACPID
Che cosa gestisce?
Demone che gestisce eventi ACPI , ovvero eventi hardware , coem disconessione - connessione jack o chiusura- apertura pc portatile, o anche pressione dei tasti….
ACPID
Possiamo vedere il suso stato con quale comando ?
systemctl status acpid
ACPID
Possiamo vedere il suo file di configurazione con quale comando ?
vi /etc/acpid/handler