41 Questions
Qual è uno degli scopi principali del sistema operativo?
Virtualizzare risorse per rendere facilmente disponibili ai software applicativi
Il controllo degli accessi permette di sapere chi sta utilizzando la macchina e assegnare diversi privilegi a ciascun utente.
True
Dove risiedono il codice di sistema e il codice delle applicazioni in un sistema operativo UNIX?
Segmenti diversi
Perché la standardizzazione è fondamentale nei sistemi operativi? Consente l'_ _ _ _ _ _ _ _ _ _ _ tra dispositivi e software di diversi produttori.
interoperabilità
Qual è il passo successivo dopo aver visto come funziona la trasmissione e la ricezione dei dati da una macchina all'altra?
Virtualizzare tutto per le applicazioni
Il demultiplexing in ricezione è più complicato perché si sa esattamente con quali criteri è stato fatto il multiplexing sul trasmittente.
False
Cosa gestiscono i buffer generici usati per smistare i dati in attesa di ricezione?
I dati in attesa di smistamento.
Il demultiplexing dei dati ricevuti è effettuato dal ________.
sistema operativo
Quale funzione serve a mandare in esecuzione un file eseguibile?
execve
Il PID identifica un processo in maniera univoca nel sistema operativo.
True
Cosa significa il termine 'zombie' nel contesto dei processi?
Un processo che ha invocato la exit e aspetta di essere terminato.
Un nuovo processo generato dalla fork è in stato _____ fino a quando i suoi segmenti di memoria saranno inizializzati.
init
Abbinare le seguenti segnalazioni con i relativi significati:
term = Invoca la exit terminando il processo ign = Handler vuoto, ignora la segnalazione core = Fa il core dump dello stato dell'applicazione stop = Mette il processo in attesa (passa in stato wait) cont = Riprende il processo che è attualmente in attesa (esce dallo stato wait)
Quale è la funzione principale del kernel di un sistema operativo?
Virtualizzare le risorse hardware
I kernel moderni sono di tipo modulare.
True
Cos'è una system call?
Una chiamata di sistema che permette a un'applicazione di richiedere funzionalità al sistema.
Nei file di ____ vengono registrati tutti gli eventi che accadono sulla macchina.
log
Abbina le seguenti componenti alle loro descrizioni:
Log = Registra gli eventi sulla macchina Applicazioni di gestione = Permettono all'utente di gestire il sistema operativo Applicazioni per lo sviluppo = Include compilatori, debugger, IDE
Qual è il problema principale di una comunicazione inefficiente tra due macchine remote?
Perdita di dati
Quali sono le due parti fondamentali memorizzate su un disco dopo il boot sector?
Superblock e file system descriptor
Un link simbolico è un tipo speciale di file che fa riferimento direttamente all'inode del file puntato.
False
Cosa succede quando si elimina un file?
Viene eliminato solo il link specifico, non l'inode e i dati associati.
Per accedere a un file, bisogna vedere nella directory che lo contiene l'associazione tra il suo nome e i suoi ____.
inode
Qual è la principale vulnerabilità dei sistemi UNIX derivante dalla presenza dell'utente root?
Violazione del principio di minimo privilegio
Cosa indica la presenza del bit 's' associato ad un file eseguibile in UNIX?
Il file verrà eseguito con i permessi del proprietario del file.
Nei sistemi UNIX, l'utente root ha un UID di __.
0
Il file /etc/passwd in UNIX contiene le password degli utenti in chiaro.
False
Abbinare le caratteristiche di un file regolare con quelle di un file speciale in UNIX:
File regolare = Contiene dati di qualunque tipo File speciale = Usato per accedere a dispositivi
Qual è il protocollo utilizzato per l'autenticazione che avviene direttamente a livello di protocollo e non richiede un login in una pagina web?
HTAccess
I cookies sono considerati sicuri per l'autenticazione degli utenti.
False
Qual è il limite massimo di cookies che possono essere memorizzati per dominio in un browser?
20
Il protocollo SMTP utilizza il protocollo di trasporto ____. Utilizza la porta 25 per connessioni non protette e la porta 465 per connessioni protette.
TCP
Quando creo un processo in un sistema POSIX quante thread vengono create all'interno?
1
Le comunicazioni tra thread avvengono attraverso aree di memoria comuni.
True
Cosa fa la funzione pthread_join?
blocca il thread che la chiama finché l'esecuzione di un altro thread specificato non termina
Le primitive chiamate ____ fanno in modo che due thread non possano essere eseguiti contemporaneamente.
mutex
Abbinare i tipi di sincronizzazione alla loro descrizione:
pthread_create = Crea un nuovo thread che esegue una funzione specificata. pthread_join = Blocca il thread finché non termina un altro thread specificato. mutex = Previene l'esecuzione simultanea di due thread. pthread_mutex_lock/unlock = Consente l'esecuzione di un thread alla volta. i = n
Cosa fa un ipervisore di tipo 1 una volta terminato l'avvio di una macchina virtuale?
Gestisce le trap delle macchine virtuali
Un rootkit è un software che viene utilizzato solo per attaccare un sistema.
False
Cosa è un rootkit difensivo?
Un hypervisor che controlla il comportamento del sistema operativo.
Chi controlla la suddivisione delle risorse all'interno dell'ambiente per i thread?
thread stessi
Study Notes
Sistemi Operativi
- La virtualizzazione è un concetto chiave nei sistemi operativi: consente di rendere facilmente disponibili le risorse ai vari software applicativi senza conflitti in caso di più applicazioni eseguite contemporaneamente.
- La standardizzazione è fondamentale per l'interoperabilità: un sistema operativo dovrà far funzionare assieme svariati dispositivi e software di diversi produttori.
- La sicurezza di un sistema operativo comprende:
- Controllo degli accessi
- Integrità
- Disponibilità
- Affidabilità
- Segretezza
- L'efficienza di un sistema operativo è importante perché virtualizzare una grande quantità di risorse è più complicato di virtualizzarne poche.
Componenti di un Sistema Operativo
- Il kernel è lo strato di base che implementa la virtualizzazione e solitamente anche il controllo degli accessi.
- Il bootstrap è l'operazione che mi consente di caricare in memoria nuovo codice eseguibile.
- Il kernel può essere:
- Monolitico: un kernel che viene configurato prima della compilazione in modo da avere tutte le componenti necessarie per l'hardware sul quale dovrà essere installato.
- Modulare: un kernel al quale possono essere aggiunti e tolti moduli che danno il supporto a particolari dispositivi, anche durante l'esecuzione.
- Le librerie vanno ad aggiungere codice nel segmento applicativo dei processi e implementano le system call.
- Altre componenti di un sistema operativo comprendono:
- Log
- Applicazioni di gestione
- Applicazioni per lo sviluppo
Scambio di Dati via Rete
- Il DMA (Direct Memory Access) channel è un coprocessore in grado di eseguire un piccolo sottoinsieme dell'instruction set del processore, tipicamente istruzioni relative alla copia di dati.
- La trasmissione di dati via rete comprende:
- Scrittura dei dati nel buffer di trasmissione
- Copia dei dati dal buffer di trasmissione nel registro della NIC (Network Interface Card)
- Trasmissione dei dati attraverso un canale di comunicazione
- La ricezione di dati via rete comprende:
- Ricezione dei dati dalla rete nella NIC
- Copia dei dati dai registri della NIC nel buffer di ricezione
- Segnalazione dell'arrivo di dati attraverso un interrupt
- La sincronizzazione dell'attività del programma che trasmette e del programma che riceve è fondamentale per evitare perdite di dati.### Interfaccia di Rete e Trasmissione di Dati
- La comunicazione tra macchine remote è difficile a causa delle velocità diverse dei clock del processore del transmitter e del receiver.
- Il problema viene risolto attraverso algoritmi di flow control (controllo di flusso), che regolano la velocità di trasmissione e ricezione rispetto al canale di comunicazione.
Bufferizzazioni
- La bufferizzazione è una tecnica utilizzata per evitare tempi morti nella trasmissione e ricezione di dati.
- Un buffer è una porzione di memoria RAM utilizzata per memorizzare i dati in attesa di trasmissione o ricezione.
- La bufferizzazione può essere implementata utilizzando un registro nella NIC (Network Interface Card).
Virtualizzazione dell'Attività di Rete
- La virtualizzazione dell'attività di rete consente alle applicazioni di comunicare tra loro senza dover gestire i dettagli della comunicazione di rete.
- Ciò avviene attraverso l'utilizzo di API (Application Program Interface) standard, come ad esempio MPI (Message Passing Interface).
Socket
- Un socket è un'API di comunicazione utilizzata per stabilire una connessione di rete tra due processi.
- Un socket è caratterizzato da un indirizzo di rete e una porta.
- Le porte sono suddivise in well known e ephimeral, con le well known assegnate ai server e le ephimeral ai client.
File Descriptor
- Un file descriptor è un numero intero che rappresenta una risorsa messa a disposizione dal sistema per un processo.
- I file descriptor sono utilizzati per agire su diversi tipi di risorse, come ad esempio file, socket e dispositivi.
- Le primitive read() e write() sono bloccanti, ovvero bloccano il processo che le ha lanciate se non sono in condizione di portare a termine il compito per mancanza di risorse.
Processi
-
In UNIX, i processi possono essere duplicati utilizzando la system call fork().
-
La fork crea una copia identica del processo che l'ha chiamata, inclusi i segmenti dati e codice.
-
La fork ritorna un valore diverso per il padre e il figlio, che possono essere utilizzati per differenziare il funzionamento dei due processi.
-
Il sistema operativo crea il primo processo, init, che può avviarne altri tramite la fork.
-
I processi possono essere identificati tramite un PID (process identifier).### Gestione dei processi
-
La system call
signal
(intsignum
,sighandler_t
handler
) consente di stabilire corrispondenze tra la segnalazionesignum
e la funzionehandler
da eseguire in caso di segnalazione. -
La funzione
handler
non fa parte del normale flusso di esecuzione del programma. -
Per inviare una segnalazione si utilizza la system call
kill
. -
Gli handler di default del sistema sono:
-
term
: invoca laexit
terminando il processo -
ign
: handler vuoto, ignora la segnalazione -
core
: fa il core dump dello stato dell'applicazione -
stop
: mette il processo in attesa (passa in stato wait) -
cont
: riprende il processo che è attualmente in attesa (esce dallo stato wait)
-
-
La kill prende come parametro il PID del processo a cui inviare la segnalazione.
-
Occorrono controlli di sicurezza per evitare che un utente possa terminare i processi di un altro utente.
Controllo degli accessi
- Un sistema operativo deve intermediare le richieste di accesso degli utenti alle risorse.
- Esistono due approcci per l'assegnazione dei permessi: l'approccio mandatorio e l'approccio discrezionale.
- L'approccio mandatorio è più adatto a sistema chiusi, dove il progettista del sistema decide manualmente i permessi.
- L'approccio discrezionale delega all'amministratore di sistema la gestione dei permessi.
- I principi di Denning per la gestione della sicurezza sono:
- Anello debole: partire dal presupposto che chi attacca è più furbo di noi.
- Minimo privilegio: assegnare ai permessi possibili nell'accesso alle risorse.
- Cambio di contesto: assegnare permessi diversi in base al contesto attuale.
Permessi in UNIX
- Non tutti i file system supportano la gestione dei permessi.
- In UNIX esiste un utente root, con UID 0, che è proprietario di tutti i file.
- L'utente proprietario del file può modificare i permessi con il comando
chmod
. - Il comando
chmod
prende come parametro una lettera (u
,g
,o
) che indica l'utente o gruppo a cui attribuire i permessi. - I permessi di accesso ai file sono discrezionali, mentre il permesso di modificare i permessi è mandatorio.
- Il comando
chown
consente di cambiare il proprietario del file.
Controllo degli accessi role-based
- In UNIX ad ogni utente è assegnato un gruppo di appartenenza.
- Un utente può essere membro di più gruppi.
- Il file
/etc/passwd
contiene le informazioni degli utenti. - Il file
/etc/group
contiene le informazioni dei gruppi. - Il comando
chmod
può agire anche sui gruppi, col parametrog
.
sudo e accesso root
- Il comando
sudo
esegue un comando con permessi di root anche se lanciato da un altro utente. - Il file
/etc/sudoers
contiene le configurazioni disudo
. -
sudo
può essere configurato per richiedere una password.
File system
- Il file system
ext2
è il primo file system sviluppato appositamente per Linux. - Un file system deve memorizzare file di diversi tipi.
- Esistono 5 tipi di file: regolari, directory, link, speciali e pipe.
- I dati dei file sono suddivisi in blocchi, la cui dimensione varia da un file system all'altro.
- L'inode contiene i metadati del file e i puntatori ai blocchi di dati.
- L'indirizzamento diretto è inode->blocchi dati.
- L'indirizzamento indiretto è inode->blocchi di indirizzamento->blocchi dati.
- La dimensione degli indirizzi può essere 32 o 64 bit, a seconda dell'implementazione.
- La dimensione dei blocchi di dati è il risultato di un compromesso tra le esigenze di spazio e di efficienza.
Questo quiz verifica la tua comprensione dei componenti e delle caratteristiche dei sistemi operativi, tra cui la virtualizzazione, la standardizzazione, la sicurezza e l'efficienza.
Make Your Own Quizzes and Flashcards
Convert your notes into interactive study material.
Get started for free