OS Flashcards
(85 cards)
C’est quoi un OS ?
Ensemble logiciel qui orchestre l’accès aux
ressources matérielles et logicielles d’un ordinateur,
et fourni des services aux programmes.
A quoi sert un OS ?
couche d’abstraction
partage, isolation et protection des ressources
Donner des fonctionalités des OS
Gestion des pilotes de périphériques (drivers)
* Ordonnanceur (scheduler)
* Interruptions
* Système de fichiers (filesystem)
* Gestion multi-utilisateurs
* Sécurité
* Interface (graphique ou non)
Comment parler avec le kernel ?
Avec des syscall CE QUI AMENE A UN CHANGEMENT DE MODE
A quoi servent des protections rings
- Protection hardware
- Niveau de privilège
- Virtualisation
Donner les caracteristiques possibles d’un OS :
Mono vs Multi-tâches
* Plusieurs programmes en « parallèle »
* Mono vs Multi-utilisateurs
* Isolation via droits d’accès (matériel, fichiers, temps de calcul …)
* Temps Réel
* Contraintes et stabilité des temps d’exécution
* Embarqué
* Compacts et demandant peu de ressources.
* Distribué
* Abstrait plusieurs machines en une seule
UNIX a quelle caracteristiques ?
Multi-tâche
Multi-utilisateurs
Donner les deux concepts fondamentaux de linux
Les processus
* programme en cours d’exécution
* Incarnation dynamique d’un programme statique (code)
* Les fichiers
* Utilisés pour quasiment tout représenter
* Hiérarchie mais une seule racine
C’est quoi POSIX ?
Portable Operating System Interface
* Standards pour les interfaces logicielles
* fonctions et structures en C
* Standards pour les interfaces utilisateurs
* Ligne de commande (Bourne Shell)
* Peut être implémenté sur des OS non-UNIX
* C’est le cas de Windows
* Il y a plusieurs versions du standard !
C’est quoi le Virtual File System ?
associer Nom -> Fichier + Méta donné
C’est quoi un I-node ?
Identifié par un numéro d’indexation dans une table système
ilist[inumber] = inode
Contient des métas donnés
Pas d’informations sur la hiérarchie ! (chemin/nom)
Quels sont les types de fichiers en UNIX ?
Régulier: binaire/text (.pdf, .txt, .json, .png, …)
* Répertoire: Liste associant noms et inode
* Spécial: Lecture par bloc / caractère (périphérique)
* Lien symbolique: Référence un autre fichier (par son chemin)
* Tube nommé (pipe): Communication unidirectionnelle (local)
* Socket: Communication bidirectionnelle (distant)
Quelle différence entre les hard link et les soft link ?
Hard link
* Association nom (chemin => inode)
* Incrémente le compteur de liens
* Il pointera toujours vers un fichier
* Fichier réellement supprimé lorsque le compteur tombe à 0
* Soft link
* Association chemin => chemin
* Si le chemin pointé disparait, le soft link ne fonctionne plus (dangling link)
C’est quoi un point de montage ?
répertoire du SF racine où l’on attache un autre SF
Comment identifier de manière unique un fichier ?
numéro d’inode + identifiant du support (device ID)
Donner les fonctionalités d’un système de fichier
- Journalisation
- Redondance multi-disques (RAID)
- Partitions/volumes multi-disques
- Redimensionnement à chaud
- Compression
- Chiffrement
- Gestion des droits d’accès
- Quotas
- Déduplication
- Copy-On-Write (Shadow copy)
C’est quoi le Shell ?
Logiciel permettant d’interagir avec le système d’exploitation (coque)
Donner les avantages du shell
Très commun : le shell « standard »
+ Sa syntaxe sert généralement de base pour d’autres shell
+ Très riche : accès facile aux fichiers, processus, …
+ Bien documenté
Que défini la colling convention ?
La calling convention défini comment le caller parle avec le callee
* Où stocker les valeurs
* Dans quel ordre
Comment partager de la mémoire ?
Avec shm et mmap
Comment créer un processus en C ?
posix_spawn()
Comment copier le processurs courrant en C ? (Sauf PID etc…)
fork/clone
Que fait exec
Remplace tout le processus par un autre programme
* Sauf les file descriptors !
C’est quoi le Loader
Partie de l’OS responsable du chargement d’un processus.
Il doit notamment :
* Valider des droits d’exécution
* Mapper en mémoire du code à exécuter
* Le programme lui-même
* Les bibliothèques dynamiques
* Copier les paramètres de ligne de commande
* Initialiser les registres (SP, BP, …)
* Jumper à l’adresse de début du programme (entrypoint)
* Correspond à modifier l’IP