Telechargé par Hope Bator

Principes des systèmes d'exploitation : Gestion des fichiers

publicité
PRINCIPE DES SYSTEMES
D’EXPLOITATION
Gestion des fichiers
Dr. TOSSOU Kodjo Elom Francis K.
Directeur de NUFIO S.A.R.L.
Introduction
La gestion des fichiers dans les systèmes d'exploitation est une
composante cruciale pour organiser, stocker et manipuler les données.
Ce chapitre explore en détail les différents aspects de la gestion des
fichiers, en mettant l'accent sur les systèmes de fichiers, les inodes, les
descripteurs de fichiers et les fichiers spéciaux.
Systèmes de fichiers
• Un système de fichiers est une méthode
utilisée par les systèmes d'exploitation pour
organiser et gérer les données stockées sur
un support de stockage, tel qu'un disque
dur, une clé USB ou une carte mémoire.
• Il fournit une structure hiérarchique pour
organiser les fichiers et répertoires
(également appelés dossiers) de manière à
ce qu'ils puissent être facilement localisés,
accessibles et gérés par le système
d'exploitation et les applications.
Systèmes de fichiers
• Voici quelques éléments clés d'un système de fichiers :
• 1. Hiérarchie de fichiers et de répertoires : Un système de fichiers
organise les données en une structure arborescente composée de fichiers
et de répertoires. Les répertoires peuvent contenir d'autres répertoires
ainsi que des fichiers, permettant une organisation logique des données.
• 2. Noms de fichiers : Les fichiers sont identifiés par des noms uniques à
l'intérieur de leur répertoire parent. Ces noms peuvent être composés de
lettres, de chiffres et de caractères spéciaux, et ils peuvent avoir une
longueur maximale spécifiée par le système de fichiers.
Systèmes de fichiers
• 3. Gestion de l'espace disque : Un système de fichiers alloue et gère
l'espace disponible sur le support de stockage. Il tient généralement
un enregistrement des espaces utilisés et libres, et peut organiser
physiquement les données sur le disque pour une récupération
efficace.
• 4. Permissions d'accès : Les systèmes de fichiers peuvent inclure des
mécanismes de contrôle d'accès pour réguler qui peut accéder, lire,
écrire ou supprimer des fichiers. Cela permet de protéger la
confidentialité et l'intégrité des données.
Systèmes de fichiers
• 5. Métadonnées : Un système de fichiers stocke des métadonnées
associées à chaque fichier, telles que sa taille, son type, son emplacement
sur le disque, ses autorisations d'accès, etc. Ces métadonnées sont
utilisées par le système d'exploitation pour gérer les fichiers et les
répertoires.
• 6. Types de système de fichiers : Il existe différents types de systèmes de
fichiers, chacun ayant ses propres caractéristiques et fonctionnalités.
Parmi les exemples courants, on trouve FAT32, NTFS, exFAT, ext4, HFS+,
APFS, etc. Chaque système de fichiers peut avoir des limites de taille de
fichier, des limites de taille de volume, des fonctionnalités de sécurité et
des performances différentes.
1- Hiérarchie
de fichiers et
de
répertoires
• La hiérarchie des dossiers et des fichiers
dans un système de fichiers est
généralement organisée de manière
arborescente, suivant un modèle de
répertoires (ou dossiers) et de fichiers.
Voici comment cela fonctionne
typiquement :
• 1. Racine du système de fichiers : Tout
système de fichiers commence par un
répertoire racine, qui est le niveau le plus
élevé de la hiérarchie. Ce répertoire est
représenté par un symbole spécial
(comme "/" dans les systèmes Unix/Linux
ou "C:\" dans les systèmes Windows).
1- Hiérarchie
de fichiers et
de
répertoires
• 2. Répertoires (ou dossiers) : Les répertoires
sont des conteneurs qui peuvent contenir à la
fois d'autres répertoires et des fichiers. Ils sont
utilisés pour organiser les fichiers de manière
logique. Par exemple, dans un système de
fichiers typique, vous pouvez avoir des
répertoires tels que "Documents", "Images",
"Musique", etc.
• 3. Fichiers : Les fichiers sont des unités
individuelles de données stockées dans le
système de fichiers. Ils sont généralement
organisés à l'intérieur des répertoires. Les
fichiers peuvent être de différents types, tels
que des documents texte, des images, des
vidéos, des programmes exécutables, etc.
1- Hiérarchie
de fichiers et
de
répertoires
• 4. Arborescence : La structure arborescente est formée
lorsque des répertoires sont organisés les uns sous les autres
pour créer une hiérarchie. Par exemple, vous pouvez avoir un
répertoire "Documents" contenant un sous-répertoire
"Travail" qui contient à son tour des fichiers spécifiques liés au
travail.
• 5. Chemin d'accès : Chaque fichier et répertoire dans le
système de fichiers est identifié par un chemin d'accès unique
qui indique sa position dans la hiérarchie. Le chemin d'accès
complet d'un fichier comprend tous les répertoires parent,
séparés par des délimiteurs spécifiques au système
d'exploitation. Par exemple, dans un système Unix/Linux, le
chemin "/home/utilisateur/Documents/fichier.txt" indique
que le fichier "fichier.txt" est situé dans le répertoire
"Documents", qui est à son tour situé dans le répertoire de
l'utilisateur "utilisateur".
1- Hiérarchie
de fichiers et
de
répertoires
• La hiérarchie des dossiers et des
fichiers dans un système de
fichiers est organisée de manière
arborescente, avec un répertoire
racine à partir duquel tous les
autres répertoires et fichiers sont
accessibles. Les répertoires sont
utilisés pour organiser les fichiers
de manière logique, et chaque
fichier est identifié par un
chemin d'accès unique dans la
structure arborescente.
2- Noms de
fichiers
• Les règles et la structure des
noms de fichiers varient selon le
système de fichiers et le système
d'exploitation utilisés. Je vais
vous donner des détails sur
quelques systèmes de fichiers
courants et leurs règles de
nommage, avec des exemples et
des références à des dates
spécifiques pour illustrer
l'évolution de ces règles
• 1. Système de fichiers FAT (File Allocation Table) :
•
2- Noms de
fichiers
- Structure des noms de fichier (FAT12, FAT16,
FAT32): Les systèmes de fichiers FAT utilisent une
structure de nommage de 8.3, ce qui signifie que
les noms de fichier sont composés d'un maximum
de 8 caractères suivis d'une extension de 3
caractères, séparés par un point. Les caractères
autorisés sont généralement limités à des lettres,
des chiffres et quelques caractères spéciaux.
• - Limitation à un ensemble restreint de caractères :
lettres majuscules et minuscules, chiffres, et un
ensemble limité de caractères spéciaux (par
exemple, "-", "_").
•
- Exemple (DOS/Windows) : "exemple.txt"
•
- Dates de référence : Les spécifications originales
des systèmes de fichiers FAT remontent aux années
1970 et ont évolué au fil du temps avec différentes
versions de DOS et de Windows.
• 2. Système de fichiers NTFS (New Technology File
System) :
•
2- Noms de
fichiers
- Structure des noms de fichier : Les systèmes de
fichiers NTFS permettent des noms de fichier
beaucoup plus longs, jusqu'à 255 caractères. Ils
autorisent également un plus grand ensemble de
caractères spéciaux et de symboles dans les noms
de fichier, à l'exception de quelques caractères
réservés interdits.
• - Longueur maximale du chemin de fichier : 260
caractères.
• - Prise en charge des noms de fichiers Unicode.
•
- Exemple (Windows) : "mon fichier
important.docx", "my_document_2024-02-21.txt"
•
- Dates de référence : Les spécifications initiales
de NTFS ont été introduites avec Windows NT 3.1
en 1993, et le système de fichiers a depuis subi des
mises à jour et des améliorations dans les versions
ultérieures de Windows
• 3. Système de fichiers ext4 (Fourth Extended
File System) (utilisé dans les distributions
Linux modernes) :
•
- Structure des noms de fichier : Les
systèmes de fichiers ext4 supportent des
noms de fichiers pouvant aller jusqu'à 255
caractères, avec une prise en charge étendue
des caractères spéciaux. Ils permettent
également l'utilisation de casse sensible pour
les noms de fichier, ce qui signifie que
"Fichier.txt" et "fichier.txt" sont considérés
comme deux fichiers distincts.
•
- Exemple (Linux) :
"rapport_annuel_2023.pdf"
2- Noms de
fichiers
• - Dates de référence: Le système de fichiers
ext4 est apparu avec le noyau Linux 2.6.19 en
novembre 2006, et il a été largement utilisé
dans les distributions Linux depuis lors.
• 4. Systèmes de fichiers macOS (HFS+, APFS) :
• Longueur maximale du nom de fichier : 255
caractères.
• Sensible à la casse.
• Prise en charge des noms de fichiers Unicode.
2- Noms de
fichiers
• Autorise l'utilisation de divers caractères
spéciaux.
• Exemple : "my_photo_2024-02-21.jpeg"
• Ces exemples illustrent les principales
différences dans la structure et les règles de
nommage des fichiers entre différents
systèmes de fichiers, en mettant en évidence
l'évolution au fil du temps à travers les
versions des systèmes d'exploitation et des
spécifications de systèmes de fichiers.
3- Gestion de
l’espace
disque
• Un système de fichiers gère l'espace disque en
allouant et en gérant l'espace disponible sur le
support de stockage de manière à optimiser
l'utilisation de cet espace tout en permettant
une récupération efficace des données. Voici
quelques aspects clés de la gestion de l'espace
disque par un système de fichiers :
• 1. Allocation d'espace : Lorsqu'un fichier est
créé, le système de fichiers alloue un espace
sur le disque pour stocker ce fichier. Selon le
système de fichiers, cette allocation peut être
dynamique (l'espace est alloué au fur et à
mesure des besoins du fichier) ou statique
(l'espace est alloué en une seule fois lors de la
création du fichier).
3- Gestion de
l’espace
disque
• 2. Bloc de données : L'espace disque est
généralement divisé en blocs de données de
taille fixe. Un fichier peut occuper plusieurs
blocs, et chaque bloc peut être utilisé par un
seul fichier à la fois. Certains systèmes de
fichiers utilisent des tailles de bloc fixes, tandis
que d'autres permettent des tailles de bloc
variables.
• 3. Gestion de la fragmentation : La
fragmentation se produit lorsque l'espace
disque est divisé en blocs non contigus, ce qui
peut entraîner un gaspillage d'espace et des
performances réduites lors de l'accès aux
fichiers. Les systèmes de fichiers utilisent des
techniques telles que la défragmentation
(réorganisation des données pour regrouper
les blocs contigus) pour réduire la
fragmentation et améliorer les performances.
3- Gestion de
l’espace
disque
• 4. Table d'allocation des fichiers (FAT) :
Certains systèmes de fichiers, comme FAT (File
Allocation Table), utilisent une table
d'allocation des fichiers pour suivre l'allocation
de l'espace disque. Cette table contient des
entrées pour chaque bloc sur le disque,
indiquant s'ils sont utilisés par un fichier
spécifique ou s'ils sont libres.
• 5. Gestion de l'espace libre : Le système de
fichiers maintient une liste des blocs libres sur
le disque, ce qui lui permet d'allouer
rapidement de l'espace lors de la création de
nouveaux fichiers. Des algorithmes de gestion
de l'espace libre sont utilisés pour optimiser
l'utilisation de l'espace disponible et minimiser
la fragmentation
3- Gestion de
l’espace
disque
• 6. Limites de taille de fichier et de volume :
Certains systèmes de fichiers imposent des
limites de taille de fichier et de volume, ce qui
peut influencer la manière dont l'espace
disque est géré. Par exemple, FAT32 a une
limite de taille de fichier de 4 Go et une limite
de taille de volume de 32 Go (avec certaines
limitations spécifiques à l'implémentation).
• Un système de fichiers gère l'espace disque en
allouant de manière efficace l'espace
disponible, en minimisant la fragmentation, en
maintenant une liste des blocs libres et en
utilisant des techniques telles que la
défragmentation pour optimiser les
performances et l'utilisation de l'espace
disque.
• Les mécanismes de contrôle d'accès incorporés
dans les systèmes de fichiers permettent de réguler
l'accès aux fichiers et aux répertoires en définissant
des permissions pour les utilisateurs et les groupes
d'utilisateurs. Voici quelques mécanismes courants
de contrôle d'accès et des exemples concrets par
rapport à certains systèmes de fichiers :
4- Permission
d’accès
• 1. Permissions de base :
•
- Les systèmes de fichiers peuvent attribuer des
permissions de base à chaque fichier et répertoire
pour contrôler l'accès en lecture (lecture du
contenu du fichier), en écriture (modification ou
création de fichiers), et en exécution (exécution de
fichiers ou accès aux répertoires).
•
- Exemple : Dans les systèmes de fichiers
Unix/Linux (comme ext4), les permissions de base
sont définies pour les propriétaires, les groupes et
les autres utilisateurs à l'aide de bits de permission
(rwx pour lecture, écriture, et exécution) associés à
chaque fichier ou répertoire.
• 2. ACL (Listes de contrôle d'accès) étendues :
•
4- Permission
d’accès
- Certains systèmes de fichiers permettent
l'utilisation de listes de contrôle d'accès
étendues (ACL), qui offrent un contrôle plus
granulaire sur les permissions en permettant
la définition de droits d'accès spécifiques pour
différents utilisateurs et groupes.
• Les Listes de Contrôle d'Accès (ACL) sont des
mécanismes de contrôle d'accès avancés
utilisés dans les systèmes d'exploitation pour
gérer les permissions de fichiers et de
répertoires de manière plus granulaire que les
permissions de base traditionnelles. Les ACL
permettent de définir des autorisations
spécifiques pour différents utilisateurs et
groupes sur des fichiers ou des répertoires
individuels.
• Voici comment fonctionnent généralement les ACL :
• a. Attribution des ACL : L'administrateur système ou le
propriétaire d'un fichier peut attribuer des ACL spécifiques
à ce fichier ou répertoire. Les ACL sont souvent définies en
complément des permissions de base du système de
fichiers.
4- Permission
d’accès
• b. Composants des ACL : Les ACL sont généralement
constituées de plusieurs entrées, chacune représentant
une autorisation spécifique pour un utilisateur ou un
groupe. Chaque entrée comprend généralement les
éléments suivants :
• - Identificateur : Identifie l'utilisateur ou le groupe
auquel l'autorisation s'applique.
• Type d'entrée : Détermine si l'entrée représente un
utilisateur individuel, un groupe d'utilisateurs ou
tous les autres utilisateurs (parfois appelé
"everyone").
• Permissions : Spécifie les autorisations accordées à
l'utilisateur ou au groupe, telles que la lecture,
l'écriture ou l'exécution.
• Condition d'application : Parfois, une condition
supplémentaire peut être spécifiée pour restreindre
l'application de l'ACL.
4- Permission
d’accès
• c. Évaluation des ACL : Lorsqu'un utilisateur
tente d'accéder à un fichier ou un répertoire,
le système d'exploitation vérifie les ACL
associées à ce fichier ou répertoire. Le
système recherche l'entrée correspondant à
l'utilisateur ou au groupe et évalue les
permissions accordées dans cette entrée.
• d. Priorité des ACL : Si plusieurs ACL sont
définies pour un fichier ou un répertoire, le
système d'exploitation applique généralement
la règle de "plus de droits". Cela signifie que si
une ACL accorde une autorisation spécifique
et qu'une autre la nie, l'autorisation est
accordée.
• e. Héritage des ACL : Dans certains systèmes
de fichiers, les ACL peuvent être héritées des
répertoires parents. Cela signifie que les
fichiers et répertoires créés dans un répertoire
héritent des ACL de ce répertoire parent,
simplifiant ainsi la gestion des autorisations.
4- Permission
d’accès
• Les ACL permettent une gestion plus flexible
et granulaire des autorisations de fichiers et
de répertoires en permettant la définition
d'autorisations spécifiques pour différents
utilisateurs et groupes. Elles complètent les
permissions de base du système de fichiers en
permettant une personnalisation plus fine des
contrôles d'accès.
•
- Exemple : Le système de fichiers NTFS
(utilisé dans les systèmes Windows) prend en
charge les ACL, qui permettent de spécifier
des autorisations spécifiques pour différents
utilisateurs et groupes sur chaque fichier ou
répertoire.
• 3. Attributs de sécurité :
4- Permission
d’accès
•
- Certains systèmes de fichiers utilisent des
attributs de sécurité pour renforcer le contrôle
d'accès aux fichiers et répertoires. Ces
attributs peuvent inclure des informations
telles que les propriétaires, les groupes, les
permissions et d'autres métadonnées liées à la
sécurité.
•
- Exemple : Dans les systèmes de fichiers
macOS (comme HFS+ et APFS), les attributs de
sécurité sont utilisés pour définir les
autorisations d'accès aux fichiers et
répertoires, ainsi que d'autres informations de
sécurité.
• 4. Chiffrement des fichiers :
4- Permission
d’accès
•
- Certains systèmes de fichiers prennent en
charge le chiffrement des données pour protéger la
confidentialité des fichiers en stockant les données
de manière chiffrée sur le disque.
•
- Exemple : Dans les systèmes de fichiers
BitLocker (utilisés dans les systèmes Windows), les
fichiers peuvent être chiffrés pour protéger leur
contenu contre les accès non autorisés.
• les systèmes de fichiers intègrent différents
mécanismes de contrôle d'accès pour réguler
l'accès aux fichiers et répertoires, y compris les
permissions de base, les ACL étendues, les attributs
de sécurité et le chiffrement des fichiers. Ces
mécanismes permettent de définir des
autorisations spécifiques pour les utilisateurs et les
groupes afin de protéger la confidentialité et
l'intégrité des données.
• Il existe de nombreux types de systèmes de
fichiers, chacun conçu pour répondre à des
besoins spécifiques en matière de stockage de
données, de performances et de compatibilité
avec différents systèmes d'exploitation.
5- Types de
systems de
fichiers
• 1. FAT (File Allocation Table):
•
- Date de création : Développé par Microsoft
dans les années 1970.
•
- Auteur : Microsoft Corporation.
•
- Description : FAT est l'un des systèmes de
fichiers les plus anciens et les plus largement
utilisés. Il est principalement utilisé sur les
périphériques de stockage amovibles tels que
les disques flash USB, les cartes mémoire et
les lecteurs de carte SD.
• 2. NTFS (New Technology File System) :
5- Types de
systems de
fichiers
•
- Date de création : Introduit avec Windows
NT en 1993.
•
- Auteur : Microsoft Corporation.
•
- Description : NTFS est un système de
fichiers développé par Microsoft pour les
systèmes d'exploitation Windows. Il offre des
fonctionnalités avancées telles que la prise en
charge des ACL, la journalisation, le
chiffrement et la compression de fichiers.
• 3. ext2 (Second Extended Filesystem) :
5- Types de
systems de
fichiers
•
- Date de création : Développé en 1993 pour Linux.
•
- Auteur : Réalisé par Rémy Card, basé sur le système de
fichiers ext (Extended Filesystem) de Rémy Card.
•
- Description : ext2 est le système de fichiers de base
pour de nombreuses distributions Linux. Il offre une prise
en charge de la journalisation, des permissions de fichiers
et des attributs étendus.
• 4. ext3 (Third Extended Filesystem) :
•
- Date de création : Introduit en 2001 comme une
extension d'ext2.
•
- Auteur : Stephen Tweedie, Theodore Ts'o, et d'autres
contributeurs de la communauté Linux.
•
- Description : ext3 est une version améliorée de ext2
avec la journalisation, ce qui réduit le risque de corruption
du système de fichiers en cas de panne de courant ou de
plantage du système.
• 5. ext4 (Fourth Extended Filesystem) :
5- Types de
systems de
fichiers
•
- Date de création : Introduit en 2008 comme une
extension d'ext3.
•
- Auteur : Stephen Tweedie, Mingming Cao, et d'autres
contributeurs de la communauté Linux.
•
- Description : ext4 est la dernière version du système de
fichiers ext pour Linux. Il offre des améliorations
significatives en termes de taille maximale de fichier, taille
de volume, performances et fiabilité par rapport à ses
prédécesseurs.
• 6. HFS+ (Hierarchical File System Plus) :
•
- Date de création : Développé par Apple en 1998.
•
- Auteur : Apple Inc.
•
- Description : HFS+ est le système de fichiers utilisé par
défaut sur les systèmes d'exploitation macOS avant
l'introduction d'APFS. Il offre une prise en charge de la
journalisation, des métadonnées étendues et des
autorisations de fichiers.
• 7. APFS (Apple File System) :
5- Types de
systems de
fichiers
•
- Date de création : Introduit par Apple en 2017 avec
macOS High Sierra.
•
- Auteur : Apple Inc.
•
- Description : APFS est le système de fichiers moderne
utilisé par Apple sur ses appareils macOS, iOS, watchOS et
tvOS. Il offre des fonctionnalités avancées telles que la
journalisation native, le chiffrement, la déduplication et la
prise en charge des snapshots.
•
• 8. ReFS (Resilient File System) :
•
- Date de création : Introduit par Microsoft avec
Windows Server 2012.
•
- Auteur : Microsoft Corporation.
•
- Description : ReFS est un système de fichiers conçu
pour les environnements de stockage de grande capacité
et haute disponibilité. Il offre des fonctionnalités de
correction d'erreurs automatique, de vérification des
données et de protection contre la corruption des
données.
• 9. XFS (X File System) :
5- Types de
systems de
fichiers
•
- Date de création : Développé par Silicon Graphics en
1993.
•
- Auteur : Silicon Graphics, Inc.
•
- Description : XFS est un système de fichiers haute
performance conçu pour les environnements de calcul
intensif. Il offre une prise en charge de la journalisation,
de l'extensibilité, de la gestion des quotas et de la gestion
avancée des métadonnées.
•
• 10. ZFS (Zettabyte File System) :
•
- Date de création : Développé par Sun Microsystems
dans les années 2000.
•
- Auteur : Sun Microsystems, Inc. (maintenant Oracle
Corporation).
•
- Description : ZFS est un système de fichiers open
source conçu pour les systèmes de stockage de grande
capacité. Il offre une intégrité des données, une
déduplication, une compression et une gestion des
snapshots avancées.
Quelques Exemples :
1. Création d'un Système de Fichiers Ext4 :
5- Types de
systems de
fichiers
•
- Commande : `mkfs.ext4`
•
- Exemple : `mkfs.ext4 /dev/sdX1`
2. Création d'un Répertoire :
•
- Commande : `mkdir`
•
- Exemple : `mkdir Documents`
3. Copie de Fichiers :
•
- Commande : `cp`
•
- Exemple : `cp file.txt Documents/`
Inodes
Un inode (index node) est une structure de données utilisée par les systèmes de fichiers
Unix et Unix-like pour stocker les métadonnées associées à un fichier ou un répertoire.
Chaque fichier ou répertoire sur un système de fichiers Unix est représenté par un inode,
qui contient des informations telles que les permissions d'accès, les timestamps de
création, de modification et d'accès, la taille du fichier, l'emplacement physique des
données sur le disque, et d'autres métadonnées
Inodes
• Voici quelques-unes des informations généralement stockées dans un
inode :
• 1. Numéro d'inode (inode number) : Un identifiant unique attribué à
chaque inode dans le système de fichiers. Cet identifiant est utilisé
par le système d'exploitation pour faire référence à un inode
spécifique.
• 2. Permissions d'accès : Les autorisations associées au fichier ou
répertoire, indiquant qui peut lire, écrire ou exécuter le fichier, et
dans quelles conditions.
Inodes
• 3. Propriétaire et groupe propriétaire : L'identifiant de l'utilisateur et du groupe
propriétaire du fichier ou répertoire.
• 4. Taille du fichier : La taille du fichier en octets.
• 5. Timestamps : Les timestamps indiquant la dernière modification du fichier
(mtime), la dernière modification des métadonnées (ctime), et le dernier accès
au fichier (atime).
• 6. Type de fichier : Le type de fichier, qui peut être un fichier ordinaire, un
répertoire, un lien symbolique, ou d'autres types spécifiques au système de
fichiers.
• 7. Nombre de liens : Le nombre de liens (hard links) vers le fichier. Ce nombre
indique combien de noms de fichiers différents pointent vers le même inode.
Inodes
• 8. Pointeurs vers les blocs de données : Les pointeurs vers les blocs de
données physiques sur le disque où sont stockées les données du fichier.
Pour les petits fichiers, les données peuvent être stockées directement
dans l'inode sans nécessiter de blocs de données supplémentaires.
• Les inodes permettent aux systèmes de fichiers Unix de maintenir une
structure de fichiers hiérarchique, de suivre les attributs de chaque fichier
et répertoire, et de gérer efficacement l'allocation d'espace disque.
Chaque fois qu'un fichier est créé, ou qu'une modification est apportée à
ses attributs ou à son contenu, les métadonnées de l'inode correspondant
sont mises à jour pour refléter ces changements.
Inodes - Historique
• Les inodes ont été introduits dans les systèmes UNIX dans les années 1970. Le système
de fichiers original utilisait un système indexé, mais avec l'introduction des inodes, le
stockage des métadonnées des fichiers a été révolutionné. Ken Thompson et Dennis
Ritchie ont été les pionniers de cette avancée.
• L'histoire de l'inode remonte aux débuts du système d'exploitation Unix dans les années
1960 et 1970. Voici un aperçu de l'évolution historique de l'inode avec des dates clés :
Inodes - Historique
• 1. Début des années 1960 :
•
- L'inode a été conceptualisé et développé dans le cadre du projet Multics au
Massachusetts Institute of Technology (MIT), qui a jeté les bases du système
d'exploitation Unix.
• 2. Années 1970 :
•
- L'inode est devenu une caractéristique centrale du système de fichiers du premier
Unix développé par AT&T Bell Laboratories. Ce système de fichiers a été conçu pour le
système d'exploitation Unix original, qui a été développé en 1969 et 1970, et a été
commercialisé à partir de 1971.
• - L'inode dans ces premiers systèmes de fichiers Unix stockait des métadonnées telles
que les permissions d'accès, les timestamps, les informations sur les blocs de données,
etc.
Inodes - Historique
• L'historique de l'inode remonte aux premiers systèmes de fichiers Unix dans les années
1970. Voici une évolution générale de l'inode avec des dates clés et les différences entre
les différentes évolutions :
• Unix Version 1 (1971) :
• L'inode est introduit avec la première version d'Unix développée à Bell Labs. Il
stocke des informations basiques sur les fichiers, comme les permissions, les
timestamps et les pointeurs vers les blocs de données.
• Unix Version 7 (1979) :
• Une structure d'inode plus complexe est introduite, prenant en charge un
nombre accru de liens vers un même fichier. Les inodes stockent également des
informations sur les propriétaires et les groupes propriétaires, ainsi que des
pointeurs directs, indirects et doubles indirects vers les blocs de données.
Inodes - Historique
• 3. Années 1980 :
•
- Avec l'évolution des versions d'Unix et l'expansion de son utilisation, les inodes sont
devenus une partie standard des systèmes de fichiers Unix et ont été intégrés à diverses
variantes d'Unix, y compris BSD Unix, System V Unix, et d'autres.
• Berkeley Fast File System (FFS) (1983) :
• Le Berkeley FFS, également connu sous le nom de UFS (Unix File System), introduit
plusieurs améliorations au niveau des inodes. Cela comprend l'utilisation d'un
système de pointeurs en trois étages pour gérer l'allocation des blocs de données,
permettant ainsi une utilisation plus efficace de l'espace disque.
Inodes - Historique
• 4. Années 1990 :
•
- Les systèmes de fichiers Unix ont continué à évoluer avec l'introduction de nouvelles
fonctionnalités et améliorations dans la gestion des inodes. Par exemple, la
journalisation des inodes a été introduite pour améliorer la fiabilité des systèmes de
fichiers en cas de panne du système.
• Ext2 (1993) :
• Le système de fichiers ext2, développé pour Linux, utilise une structure d'inode
étendue par rapport aux systèmes de fichiers Unix traditionnels. Les inodes ext2
stockent des informations supplémentaires telles que les ACL, les attributs étendus,
et des pointeurs directs, indirects, doubles indirects et triples indirects vers les blocs
de données.
Inodes - Historique
• NTFS (1993) :
• Le système de fichiers NTFS de Microsoft, introduit avec Windows NT, utilise une
version améliorée de l'inode appelée "MFT Entry" (Master File Table Entry). Les MFT
Entries stockent des métadonnées similaires aux inodes Unix, mais avec une
structure plus complexe permettant une gestion avancée des fichiers et des
attributs.
Inodes - Historique
• 5. Années 2000 - présent :
•
- Au cours des dernières décennies, de nouvelles versions et variantes d'Unix ainsi que des
systèmes d'exploitation Unix-like tels que Linux, macOS et FreeBSD ont continué à utiliser des
inodes pour stocker les métadonnées des fichiers.
•
- Les inodes sont devenus un élément fondamental des systèmes de fichiers modernes et sont
utilisés pour maintenir une structure de fichiers hiérarchique, suivre les attributs des fichiers et
répertoires, et gérer efficacement l'allocation d'espace disque.
• APFS (2017) :
• L'Apple File System (APFS) utilisé sur les systèmes d'exploitation macOS, iOS, watchOS et
tvOS utilise une version moderne de l'inode. Les inodes APFS stockent des informations
telles que les timestamps de création, de modification et d'accès, les numéros de blocs
de données, les attributs de fichiers et de répertoires, et la journalisation.
Inodes - Historique
• l'inode a une longue histoire remontant aux premiers jours du développement du
système d'exploitation Unix dans les années 1960 et 1970. Depuis lors, il est devenu un
élément central des systèmes de fichiers Unix et Unix-like, évoluant avec le temps pour
répondre aux besoins changeants des utilisateurs et des systèmes.
• Chaque évolution de l'inode a apporté des améliorations en termes de fonctionnalités,
de performances et d'efficacité de stockage. Les différences entre les différentes
évolutions de l'inode incluent l'ajout de nouvelles fonctionnalités (comme les ACL, les
attributs étendus), des améliorations dans la gestion de l'allocation des blocs de
données, et une structure de données plus complexe pour prendre en charge les besoins
des systèmes de fichiers modernes.
Inodes
Quelques Exemples Pratiques :
1. Affichage des Inodes :
•
- Commande : `ls -i`
•
- Exemple : `ls -i file.txt`
•
- Exemple : stat file.txt
2. Modification des Autorisations via Inodes :
•
- Commande : `chmod`
•
- Exemple : `chmod 755 file.txt`
3. Vérification de l'Espace Disque Utilisé par Inodes :
•
- Commande : `df -i`
•
- Exemple : `df -i /home`
Descripteurs de fichiers
• Un descripteur de fichier est un identificateur numérique utilisé par
un système d'exploitation pour faire référence à un fichier ouvert par
un processus. Chaque fois qu'un fichier est ouvert par un programme,
le système d'exploitation alloue un descripteur de fichier unique à ce
fichier. Ce descripteur de fichier est utilisé par le programme pour
effectuer des opérations de lecture, d'écriture, de déplacement et de
fermeture sur ce fichier.
Descripteurs de fichiers
Voici quelques points clés sur les descripteurs de fichiers :
• 1. Identifiant numérique : Un descripteur de fichier est généralement
représenté par un nombre entier, qui est attribué de manière unique
par le système d'exploitation lors de l'ouverture d'un fichier.
• 2. Table des descripteurs de fichiers : Le système d'exploitation
maintient une table des descripteurs de fichiers pour chaque
processus en cours d'exécution. Cette table contient des entrées pour
chaque fichier ouvert par le processus, avec le descripteur de fichier
correspondant.
Descripteurs de fichiers
La table des descripteurs, également connue sous le nom de table des
fichiers ou table des fichiers ouverts, est une structure de données
maintenue par le système d'exploitation pour chaque processus en
cours d'exécution. Cette table contient des entrées pour chaque fichier
ouvert par le processus, ainsi que des informations associées à chaque
fichier ouvert. Voici les éléments généralement présents dans la table
des descripteurs :
• Descripteur de fichier (File Descriptor) :
• Il s'agit d'un identificateur numérique unique attribué par le système
d'exploitation à chaque fichier ouvert par le processus. Le descripteur de
fichier est utilisé par le processus pour faire référence au fichier dans les
opérations de lecture, écriture et autres opérations de gestion de fichiers.
Descripteurs de fichiers
• Pointeur vers l'entrée de fichier (File Entry Pointer) :
• Il s'agit d'un pointeur vers la structure de données du système de fichiers qui
contient les métadonnées du fichier, telles que le nom du fichier, les
permissions, les timestamps, les attributs, etc.
• Mode d'accès (Access Mode) :
• Il indique les droits d'accès accordés au processus pour ce fichier, tels que
lecture, écriture, exécution, etc.
• Position de lecture/écriture (File Offset) :
• Il représente la position actuelle de lecture ou d'écriture dans le fichier.
Lorsqu'un processus lit ou écrit dans un fichier, cette position est mise à jour
en conséquence.
Descripteurs de fichiers
• Indicateurs de statut (Status Flags) :
• Ces indicateurs de statut fournissent des informations supplémentaires sur l'état du
fichier, tels que le mode de lecture/écriture, le type de fichier (normal, répertoire,
lien symbolique, etc.), les indicateurs de verrouillage, etc.
• Pointeurs de contrôle de fichier (File Control Pointers) :
• Ils peuvent être utilisés pour gérer les opérations spécifiques au fichier, comme les
opérations de verrouillage, les opérations de réseau, les opérations de gestion des
erreurs, etc.
• Informations supplémentaires (Additional Information) :
• La table des descripteurs peut également contenir d'autres informations utiles sur le
fichier ouvert, telles que des pointeurs vers des structures de données
supplémentaires pour la gestion des caches, des informations sur les systèmes de
fichiers, etc.
Descripteurs de fichiers
La table des descripteurs est essentielle pour permettre à un processus
d'interagir avec les fichiers ouverts de manière efficace et sécurisée.
Chaque entrée dans la table des descripteurs représente un fichier
ouvert par le processus et contient les informations nécessaires pour
gérer et manipuler ce fichier de manière appropriée.
Descripteurs de fichiers
• 3. Opérations de fichiers : Les programmes utilisent les descripteurs
de fichiers pour effectuer des opérations de lecture, d'écriture, de
déplacement et de fermeture sur les fichiers ouverts. Les opérations
sont effectuées en utilisant le descripteur de fichier comme référence
pour indiquer quel fichier est concerné.
• 4. Gestion des ressources : Les descripteurs de fichiers sont un
moyen pour le système d'exploitation de gérer les ressources
système associées aux fichiers ouverts. Lorsqu'un fichier est fermé
par un programme, le descripteur de fichier correspondant est libéré
et la ressource système est récupérée.
Descripteurs de fichiers
• 5. Limites et restrictions : Chaque système d'exploitation a ses
propres limites sur le nombre de descripteurs de fichiers qu'un
processus peut ouvrir simultanément. Les programmes doivent être
conçus pour gérer correctement l'ouverture et la fermeture des
fichiers afin d'éviter les fuites de descripteurs de fichiers et les
problèmes de performance.
• Un descripteur de fichier est un identificateur numérique utilisé par
un programme pour faire référence à un fichier ouvert. Il facilite les
opérations de lecture, d'écriture et de gestion des fichiers dans un
environnement informatique.
Fichiers spéciaux
• Dans les systèmes d'exploitation de type Unix et Unix-like, ainsi que
dans d'autres systèmes, les fichiers spéciaux (ou fichiers de
périphériques) sont des fichiers qui représentent des périphériques
matériels ou d'autres ressources système
• Contrairement aux fichiers réguliers qui stockent des données de
manière conventionnelle, les fichiers spéciaux sont utilisés pour
communiquer avec les périphériques matériel, tels que les disques,
les imprimantes, les terminaux, etc., ainsi qu'avec d'autres ressources
système.
Fichiers spéciaux
Il existe deux types principaux de fichiers spéciaux :
1. Fichiers de périphériques de bloc (block devices) :
• - Ces fichiers spéciaux sont utilisés pour représenter des
périphériques de stockage de données, tels que des disques durs, des
partitions de disque, des lecteurs de disque optique (CD-ROM, DVDROM), etc.
• - Les fichiers de périphériques de bloc permettent un accès
aléatoire aux données et sont utilisés pour le stockage de fichiers et
de systèmes de fichiers
Fichiers spéciaux
2. Fichiers de périphériques de caractères (character devices) :
•
- Ces fichiers spéciaux sont utilisés pour représenter des périphériques de
communication de caractères, tels que des ports série, des terminaux, des imprimantes,
etc.
•
- Les fichiers de périphériques de caractères permettent un accès séquentiel aux
données et sont utilisés pour les opérations de communication caractère par caractère.
• Les fichiers spéciaux sont présents dans le système de fichiers du système d'exploitation
et sont accessibles comme n'importe quel autre fichier. Cependant, au lieu de stocker
des données sur un disque, par exemple, ils agissent comme une interface permettant
au système d'exploitation et aux programmes d'interagir avec le périphérique matériel
associé.
Fichiers spéciaux
Voici quelques exemples de fichiers spéciaux couramment utilisés dans les
systèmes Unix et Unix-like :
• - /dev/sda : Fichier spécial représentant le premier disque dur du système.
• - /dev/tty : Fichier spécial représentant le terminal actuel.
• - /dev/printer : Fichier spécial représentant l'imprimante connectée au
système.
• - /dev/null : Fichier spécial utilisé pour la suppression des données écrites,
souvent utilisé pour la redirection de la sortie vers le néant.
• - /dev/random et /dev/urandom : Fichiers spéciaux utilisés pour générer
des nombres aléatoires.
Fichiers spéciaux
Quelques Exemples Pratiques :
1. Accès à un Périphérique via un Fichier Spécial :
•
- Chemin : `/dev/sda` (disque dur)
•
- Exemple : `cat /dev/sda`
2. Configuration d'Imprimante via un Fichier Spécial :
•
- Chemin : `/dev/lp0` (port parallèle)
•
- Exemple : `echo "Test d'impression" > /dev/lp0`
3. Contrôle de Terminal via des Fichiers Spéciaux :
•
- Chemin : `/dev/ttyS0` (port série)
•
- Exemple : `echo "Données au terminal" > /dev/ttyS0`
Conclusion
• Ce chapitre a fourni une exploration
approfondie de la gestion des fichiers,
de ses fondements historiques aux
commandes et concepts modernes.
• Les exemples pratiques et les
références enrichissent la
compréhension sur ces aspects
cruciaux des systèmes d'exploitation.
Téléchargement