Ce référentiel est un voyage à travers les concepts du système d'exploitation, avec des implémentations pratiques dans C. Chaque jour se concentre sur un sujet spécifique, offrant une compréhension théorique et une expérience de codage pratique.
| Jour | Sujet | Catégorie de concept | Niveau de difficulté | Focus de la mise en œuvre |
|---|---|---|---|---|
| 1 | Concept de processus | Processus | Facile | Définition du processus |
| 2 | Processus des états et des transitions | Processus | Moyen | Mise en œuvre du diagramme d'état |
| 3 | Mécanismes de création de processus | Processus | Moyen | Fork (), exec () syscalls |
| 4 | Bases de planification des processus | Planification | Moyen | Algorithme FCFS |
| 5 | Planification des algorithmes | Planification | Dur | SJF, priorité, Round Robin |
| 6 | Commutation de contexte | Processus | Dur | Détails de la mise en œuvre |
| 7 | Concept de fil | Threads | Facile | Filant la compréhension de base |
| 8 | Création et gestion des threads | Threads | Moyen | Filetages POSIX |
| 9 | Comparaison du thread vs processus | Threads | Moyen | Analyse comparative |
| 10 | Modèles de lecture multith | Threads | Dur | Utilisateur vs threads de noyau |
| 11 | Fondamentaux de la concurrence | Synchronisation | Moyen | Conditions de course |
| 12 | Mutex et sémaphores | Synchronisation | Dur | Mise en œuvre |
| 13 | Concepts de blocage | Synchronisation | Dur | Stratégies de prévention |
| 14 | Algorithmes de détection de blocage | Synchronisation | Dur | Algorithme du banquier |
| 15 | Présentation de la gestion de la mémoire | Mémoire | Facile | Hiérarchie de mémoire |
| 16 | Adresse physique logique vs | Mémoire | Moyen | Traduction d'adressage |
| 17 | Attribution de la mémoire contiguë | Mémoire | Moyen | Stratégies d'allocation |
| 18 | Mécanisme de pagination | Mémoire | Dur | Implémentation du tableau des pages |
| 19 | Algorithmes de remplacement de la page | Mémoire | Dur | FIFO, LRU, optimal |
| 20 | Segmentation | Mémoire | Moyen | Table de segment |
| 21 | Concepts de mémoire virtuelle | Mémoire | Dur | Paging de la demande |
| 22 | Internes d'allocation de mémoire (malloc, gratuit) | Gestion de la mémoire | Dur | Allocateur de mémoire personnalisé |
| 23 | Techniques de gestion de la mémoire dynamique | Gestion de la mémoire | Dur | Stratégies de pool de mémoire |
| 24 | Bases du système de fichiers | Systèmes de fichiers | Facile | Concept de fichier |
| 25 | Structure du système de fichiers | Systèmes de fichiers | Moyen | Structures d'annuaire |
| 26 | Méthodes d'allocation de fichiers | Systèmes de fichiers | Moyen | Contigu, lié |
| 27 | Gestion de l'espace libre | Systèmes de fichiers | Dur | Vector de bits, liste liée |
| 28 | Mécanismes de protection des fichiers | Systèmes de fichiers | Moyen | Contrôle d'accès |
| 29 | Gestion du système d'E / S | Systèmes d'E / S | Moyen | Appareils d'E / S |
| 30 | Algorithmes de planification du disque | Systèmes d'E / S | Dur | Scan, c-scan |
| 31 | Manipulation d'interruption | De bas niveau | Dur | Interrompre les vecteurs |
| 32 | Implémentation avancée des appels système | Programmation de bas niveau | Dur | Design de l'emballage syscall |
| 33 | Traçage des appels système avancés | De bas niveau | Dur | Interception syscall |
| 34 | Développement du module du noyau | De bas niveau | Dur | Modules de noyau chargé |
| 35 | Communication inter-processus | IPC | Dur | Tuyaux, files d'attente de messages |
| 36 | Mémoire partagée avancée | IPC | Dur | Mémoire partagée de bas niveau |
| 37 | Programmation de socket plongée profonde | Réseautage | Dur | Implémentation de socket brute |
| 38 | Planification du processeur avancé | Planification | Dur | Files d'attente à plusieurs niveaux |
| 39 | Systèmes d'exploitation en temps réel internes | Spécialisé | Dur | Conception du noyau RTOS |
| 40 | Gestion de la mémoire du noyau Linux | Noyau | Dur | Allocateur de dalle |
| 41 | Synchronisation du processus avancé | Synchronisation | Dur | L'algorithme de Peterson |
| 42 | Théorie du graphique d'allocation des ressources | Synchronisation | Dur | Représentation de blocage |
| 43 | Techniques de fragmentation de la mémoire | Mémoire | Moyen | Fragmentation avancée |
| 44 | Management de cache internes | Mémoire | Dur | Cohérence du cache |
| 45 | Journalisation du système de fichiers | Systèmes de fichiers | Dur | Mécanismes de transaction |
| 46 | Développement du conducteur de l'appareil | De bas niveau | Dur | Conducteurs de périphériques de caractère |
| 47 | Mise en œuvre du mécanisme de sécurité | Sécurité | Dur | Noyau de contrôle d'accès |
| 48 | Simulateur de planification de processus | Planification | Dur | Simulateur complet |
| 49 | Systèmes de fichiers réseau internes | Systèmes de fichiers | Dur | Conception FS distribuée |
| 50 | Mécanismes du noyau de gestion des erreurs | De bas niveau | Dur | Gestion des exceptions |
| 51 | Hyperviseur de mémoire virtuelle | Avancé | Dur | Techniques de virtualisation |
| 52 | Algorithmes de système d'exploitation distribués | Avancé | Dur | Protocoles consensus |
| 53 | Conception du noyau OS intégré | Spécialisé | Dur | Noyau minimal |
| 54 | Conception avancée de micro-noyau | Architecture | Dur | Message qui passe |
| 55 | Profil des performances du système d'exploitation | Avancé | Dur | Tracé du noyau |
| 56 | Primitives de traitement parallèle | Avancé | Dur | Parallélisme de bas niveau |
| 57 | Mécanismes de tolérance aux défauts | Avancé | Dur | Techniques de récupération |
| 58 | Équilibrage avancé de la charge | Avancé | Dur | Stratégies de planification |
| 59 | Internes à conteneurisation | Avancé | Dur | Implémentation de l'espace de noms |
| 60 | Primitives de synchronisation du noyau | Avancé | Dur | Spinlocks, RCU |
| 61 | Analyse de la vulnérabilité de sécurité | Sécurité | Dur | Débordement de tampon |
| 62 | Mécanismes du noyau cryptographique | Sécurité | Dur | Cryptage primitives |
| 63 | Techniques de détection de logiciels malveillants | Sécurité | Dur | Détection au niveau du noyau |
| 64 | OS Forensics Deep Dive | Sécurité | Dur | Analyse des traces de noyau |
| 65 | Conception d'allocateur de mémoire | Mémoire | Dur | Implémentation de tas personnalisée |
| 66 | Mécanismes avancés de l'IPC | IPC | Dur | Signalisation avancée |
| 67 | Techniques de débogage du noyau | De bas niveau | Dur | Analyse des accidents du noyau |
| 68 | Manipulation avancée du système | De bas niveau | Dur | Optimisation de Syscall |
| 69 | Prototype du noyau OS complet | Projet | Dur | Noyau boostable minimal |
Chaque projet s'étend sur 3 jours, permettant une exploration et une mise en œuvre approfondies.
Créer un noyau boostable minimal
Implémenter un allocateur de mémoire personnalisé
Développer un simulateur de système de fichiers
Créer un simulateur de planification de processus
Concevoir un gestionnaire de mémoire virtuelle
Développer un module de noyau chargé
Implémenter un système de fichiers réseau
Construire un noyau du système d'exploitation en temps réel
LICENCE
Il s'agit d'une ressource éducative avancée pour comprendre les systèmes d'exploitation grâce à une mise en œuvre approfondie.