Anggi Luna Diary 22072025

Diary of Anggi Luna 22072025

Système d'exploitation - Partie 6
Un autre composant des systèmes de fichiers est un dictionnaire qui associe le nom et les métadonnées d'un fichier au bloc de données où son contenu est stocké. La plupart des systèmes de fichiers utilisent des répertoires pour convertir les noms de fichiers en numéros de fichier. Pour trouver le numéro de bloc, le système d'exploitation utilise un index (souvent implémenté sous forme d'arbre). Par ailleurs, il existe une table d'espace libre pour suivre les blocs libres, généralement implémentée sous forme de bitmap. Bien que tout bloc libre puisse être utilisé pour stocker un nouveau fichier, de nombreux systèmes d'exploitation tentent de regrouper les fichiers dans un même répertoire afin d'optimiser les performances, ou de les réorganiser périodiquement pour réduire la fragmentation.

 

La fiabilité des données en cas de panne informatique ou matérielle est une autre préoccupation. Les protocoles d'écriture de fichiers sont conçus avec des opérations atomiques afin de ne pas laisser le stockage permanent dans un état incohérent et partiellement écrit en cas de panne à tout moment de l'écriture. La corruption des données est traitée par un stockage redondant (par exemple, RAID – matrice redondante de disques peu coûteux) et des sommes de contrôle pour détecter toute corruption de données. Grâce à plusieurs couches de sommes de contrôle et de sauvegardes de fichiers, un système peut récupérer après plusieurs pannes matérielles. Des processus d'arrière-plan sont souvent utilisés pour détecter et récupérer les données corrompues.

 

Sécurité
La sécurité consiste à protéger les utilisateurs des autres utilisateurs du même ordinateur, ainsi que de ceux qui tentent d'y accéder à distance via un réseau. La sécurité des systèmes d'exploitation repose sur la triade CIA : confidentialité (accès aux données impossible pour les utilisateurs non autorisés), intégrité (modification impossible pour les utilisateurs non autorisés) et disponibilité (garantie de la disponibilité du système pour les utilisateurs autorisés, même en cas d'attaque par déni de service). Comme pour les autres systèmes informatiques, l'isolation des domaines de sécurité (noyau, processus et machines virtuelles, pour les systèmes d'exploitation) est essentielle à la sécurité. D'autres moyens de renforcer la sécurité incluent la simplicité pour minimiser la surface d'attaque, le verrouillage par défaut de l'accès aux ressources, la vérification de toutes les demandes d'autorisation, le principe de moindre autorité (octroi du privilège minimal essentiel à l'exécution d'une tâche), la séparation des privilèges et la réduction des données partagées.

 

Certains systèmes d'exploitation sont plus sûrs que d'autres. Les systèmes sans isolation entre le noyau et les applications sont les moins sécurisés, tandis que ceux dotés d'un noyau monolithique, comme la plupart des systèmes d'exploitation généralistes, restent vulnérables en cas de compromission d'une partie du noyau. Une conception plus sécurisée intègre des micro-noyaux qui répartissent les privilèges du noyau en plusieurs domaines de sécurité distincts et réduisent les conséquences d'une seule faille de sécurité. Les uni-noyaux constituent une autre approche qui améliore la sécurité en minimisant le noyau et en séparant les fonctionnalités des autres systèmes d'exploitation par application.

 

La plupart des systèmes d'exploitation sont écrits en C ou C++, ce qui crée des vulnérabilités potentielles. Malgré les tentatives de protection, les vulnérabilités sont causées par des attaques par dépassement de tampon, rendues possibles par l'absence de vérification des limites. Les vulnérabilités matérielles, dont certaines sont liées à l'optimisation du processeur, peuvent également être exploitées pour compromettre le système d'exploitation. Il existe des cas connus de développeurs de systèmes d'exploitation implantant délibérément des vulnérabilités, telles que des portes dérobées.

 

La sécurité des systèmes d'exploitation est entravée par leur complexité croissante et l'inévitabilité des bugs qui en résulte. La vérification formelle des systèmes d'exploitation pouvant s'avérer impossible, les développeurs ont recours à leur renforcement pour réduire leurs vulnérabilités, par exemple en randomisant la disposition de l'espace d'adressage, en s'assurant de l'intégrité du flux de contrôle, en limitant les accès et en utilisant d'autres techniques. Il n'existe aucune restriction quant à la contribution au code des systèmes d'exploitation open source ; ces systèmes disposent d'un historique des modifications transparent et de structures de gouvernance distribuées. Les développeurs open source s'efforcent de collaborer pour identifier et éliminer les vulnérabilités de sécurité, en utilisant la revue de code et la vérification de type pour éliminer le code malveillant. Andrew S. Tanenbaum recommande de publier le code source de tous les systèmes d'exploitation, arguant que cela empêche les développeurs de se fier au secret et donc de s'appuyer sur la pratique peu fiable de la sécurité par l'obscurité.

 

Link 1  Link 2  Link 3  Link 4  Link 5  Link 6  Link 7  Link 8  Link 9  Link 10  Link 11  Link 12  Link 13  Link 14  Link 15  Link 16  Link 17  Link 18

Ajouter un commentaire

Anti-spam