Des trucs géniaux sur le système d'exploitation
Cette liste contient des éléments impressionnants liés au système d’exploitation. L’objectif est de collecter toutes sortes de systèmes d’exploitation open source afin que les utilisateurs puissent étudier leur code et en tirer des leçons. En plus de collecter des ressources utiles pour aider les personnes à commencer à développer des systèmes d'exploitation populaires.
Systèmes d'exploitation open source
- 9front - Un fork du Plan 9, conçu pour l'informatique distribuée et en réseau.
- AROS - Research Operating System est un système d'exploitation de bureau léger, efficace et flexible, conçu pour vous aider à tirer le meilleur parti de votre ordinateur. C'est un projet indépendant, portable et gratuit, visant à être compatible avec AmigaOS au niveau API
- AlmeidaOS - OS x86-64 avec son propre chargeur de démarrage, son planificateur et sa libc limitée, tous écrits à partir de zéro
- Animal - système d'exploitation multithread 32 bits (anciennement Gramado)
- AurixOS - Un petit système d'exploitation multiplateforme conçu pour les développeurs et les créateurs
- AquilaOS - Système d'exploitation conçu pour être compatible POSIX et principalement transparent ISA
- BareMetal, GitHub - système d'exploitation 64 bits écrit en Assembly pour x86-64
- Basekernel - Un noyau de système d'exploitation simple pour la recherche, l'enseignement et le plaisir
- BoneOS - OS pour tous construit par tout le monde
- Bottlerocket OS - Système d'exploitation basé sur Linux destiné à l'hébergement de conteneurs.
- Brutal - Un système d'exploitation inspiré d'un design brutaliste qui combine les idéaux d'UNIX des années 1970 avec la technologie et l'ingénierie modernes.
- cavOS - Système d'exploitation Amd64 en C. Essayer de créer un système d'exploitation complet, avec une base de code simple et lisible
- Charlotte - Noyau CharlotteOS dans Rust
- ChibiOS - un environnement de développement complet pour les applications embarquées comprenant RTOS, un HAL, des pilotes de périphériques, des fichiers de support et des outils
- Clive - Un système d'exploitation unique inspiré de Plan9 et Nix développé à l'Université Rey Juan Carlos de Madrid
- Cyjon - système d'exploitation en langage assembleur x64 pur (lié au projet Fern-Night).
- DragonOS - Un système d'exploitation x86-64 construit à partir de zéro.
- Dreamos64 - Un système d'exploitation amateur x86-64 construit à partir de zéro
- Embox - Noyau de système d'exploitation configurable conçu pour les systèmes embarqués et à ressources limitées.
- ExectOS, GitHub - ExectOS est un système d'exploitation moderne, compatible EFI et à usage général, écrit à partir de zéro et implémentant l'architecture XT. Il fonctionne sur les architectures x86 et x86_64 et fournit une couche de compatibilité des pilotes NT.
- Fern-Night - Système d'exploitation en langage C (lié au projet Cyjon).
- Fiwix, GitHub - Un noyau de type UNIX pour l'architecture i386.
- Fomos - Système d'exploitation expérimental, construit avec Rust.
- FreeRTOS, GitHub - Système d'exploitation IoT pour microcontrôleurs, par Amazon.
- GarnOS - Hobby OS alimenté par un noyau modulaire.
- Genode - Un cadre de système d'exploitation FOSS composé d'une couche d'abstraction de micro-noyau et d'un ensemble de composants d'espace utilisateur
- Gloire - Un système d'exploitation construit avec le noyau Ironclad (un noyau partiellement formellement vérifié avec un faible encombrement pour les systèmes d'exploitation à usage général et embarqués, écrit en SPARK et Ada) et des outils GNU.
- GreenteaOS, Github - Un système d'exploitation gratuit conçu pour être compatible avec les exécutables Windows
- HalideOS - système d'exploitation expérimental entièrement écrit à partir de zéro.
- HarveyOS - Un système d'exploitation distribué
- HelenOS - OS multinoyau multiserveur
- House - Système d'exploitation et environnement de l'utilisateur Haskell.
- Hubris - Hubris est un système d'exploitation pour microcontrôleurs développé par Oxide Computer Company à Rust
- Illumos - illumos est un système d'exploitation Unix qui fournit des fonctionnalités de nouvelle génération pour les distributions en aval (comme OmniOS, OpenIndiana et Tribblix)
- Interim - OS minimaliste avec des concepts de machines Lisp et Plan9
- JSD-OS - Un petit système d'exploitation pour 32 bits x86.
- Jehanne, GitHub - OS inspiré de Plan9, 9front et Harvey OS
- KiddieOS - Système d'exploitation 64 bits de type UNIX écrit en Assembly, C++.
- KnightOS - pour les calculatrices z80
- KolibriOS - Fourche MenuetOS
- L4re - Système d'exploitation et hyperviseur pour les applications critiques en matière de sécurité/sûreté et compatibles avec la virtualisation.
- LemonOS, GitHub - Système d'exploitation 64 bits de type UNIX écrit en C++.
- Mako - Hobby OS pour x86 à partir de zéro, écrit en C
- MaslOS - Un système d'exploitation Hobby multitâche avec interface graphique 64 bits écrit principalement à partir de zéro en C++ et un peu de C/ASM.
- MeetixOS - Un système d'exploitation amateur écrit en C++20 moderne qui vise à ressembler à Unix.
- MentOS - Un système d'exploitation éducatif de type Linux 32 bits.
- MenuetOS - Hobby OS supportant 32 et 64 bits, écrit en langage Assembly
- Mimiker, GitHub - Système d'exploitation simple de type Unix à des fins d'éducation et de recherche. Micro-noyau MIPS.
- Mimosa, GitHub - Système d'exploitation de recherche qui exécute Scheme sur du métal nu
- Minoca OS - OS à usage général, écrit en C
- MollenOS - MollenOS/Vali est un système d'exploitation moderne construit en mettant l'accent sur l'abstraction et une conception modulaire, permettant à quiconque de le porter sur n'importe quelle architecture. Il cible actuellement les plateformes x86-32 et x86-64
- MyXomycota - Noyau monolithique en C
- NESOS - Un système d'exploitation pour la Nintendo Entertainment System !
- Nanos - Unikernel compatible Linux, écrit en C
- NodeOS - Système d'exploitation utilisant NodeJS et Linux
- Northport - Noyau monolithique et bibliothèques de support pour riscv64 et x86_64.
- PathOS - Hobby OS basé sur MikeOS, écrit en langage assembleur
- Pidi OS - OS indépendant et minimaliste
- PonyOS, GitHub - Système d'exploitation basé sur ToaruOS, sur le thème de My Little Pony
- PouplyOS - OS simple pour s'amuser et apprendre, du nom de la mascotte ESISAR Poulpy
- PureDarwin - PureDarwin est un projet communautaire visant à étendre Darwin en un système d'exploitation complet et utilisable
- Qubes OS - Système d'exploitation axé sur la sécurité construit sur l'hyperviseur Xen, conçu pour isoler différents compartiments en fonction des niveaux de confiance.
- RavynOS - Un projet de système d'exploitation basé sur BSD qui vise à offrir une expérience similaire et une certaine compatibilité avec macOS (anciennement connu sous le nom d'airyxOS)
- Redox - écrit en Rust
- RustyHermit - Un noyau unique léger basé sur Rust
- Sanos, GitHub - Sanos est un noyau de système d'exploitation x86 32 bits minimaliste pour les serveurs réseau fonctionnant sur du matériel PC standard.
- SayoriOS - Hobby OS pour ordinateurs x86, actuellement en développement actif, écrit en C
- Sculpt OS - Système d'exploitation basé sur Génode
- Serenity - Système d'exploitation graphique de type Unix pour ordinateurs x86
- SimpleOS - Système d'exploitation simple codé en C et Assembly
- Snowdrop OS - un système d'exploitation homebrew à partir de zéro, en langage assembleur
- Sortix - Hobby OS en C et C++ par Jonas 'Sortie' Termansen
- Syllable - Successeur d'AtheOS, Syllable est conçu dans la tradition d'Amiga et BeOS, mais construit en utilisant de nombreuses parties du projet GNU et Linux.
- SynestiaOS - Système d'exploitation 32/64 bits écrit en C pour la plateforme arm
- TempleOS - Système d'exploitation religieux :-)
- Theseus - Un système d'exploitation expérimental moderne écrit à partir de zéro dans Rust pour explorer de nouvelles techniques de structure de système d'exploitation et de gestion d'état.
- Thor - système d'exploitation 64 bits principalement écrit en C++
- ToaruOS - Système d'exploitation Hobby à partir de zéro
- Týndur - Système d'exploitation Hobby construit par la communauté Lowlevel. Écrit en C et Pascal
- Ultron OS - Système d'exploitation x86 écrit en C++, High School Project
- Unikraft - Un noyau modulaire pour la spécialisation, la haute efficacité, les performances et la sécurité ; Compatible Linux/POSIX ; principalement en C
- Vinix - Vinix est un effort pour écrire un système d'exploitation moderne, rapide et utile dans le langage de programmation V
- Visopsys - Open Source Hobby OS développé depuis 1997
- Windows 95 dans Electron - Implémentation Hobby Windows 95 dans Electron
- Xv6 - Un système d'exploitation pédagogique développé à l'été 2006 pour le cours sur les systèmes d'exploitation du MIT
- ZealOS - Le système d'exploitation Zeal est un fork professionnel modernisé du système d'exploitation Temple 64 bits, TempleOS.
- ackOS - Un système d'exploitation simple 64 bits.
- aurora_os - Écrit en rouille.
- dahliaOS- dahliaOS est un système d'exploitation moderne, sécurisé, léger et réactif, combinant le meilleur de GNU/Linux et Fuchsia OS.
- duckOS - Un système d'exploitation de type UNIX avec un gestionnaire de fenêtres graphique pour les ordinateurs x86.
- eggos - Un noyau unique Go fonctionnant sur du métal nu x86
- emerald - Un noyau de système d'exploitation écrit pour le plaisir en C
- gopher-os - Un noyau de système d'exploitation de preuve de concept écrit en Go
- hhuOS - hhuOS est un petit système d'exploitation écrit en C++ et Assembler pour l'architecture x86. L'objectif principal de ce projet est de montrer comment différents aspects de la théorie des systèmes d'exploitation peuvent être mis en œuvre et liés entre eux. Le système n’est pas destiné à être un système d’exploitation complet pour une utilisation quotidienne.
- hydrogène - système d'exploitation jouet. Noyau multitâche préemptif 64 bits prenant en charge EFI, PCIe, SATA, mode graphique framebuffer, HFS+.
- lyre - noyau et distribution x86 alimentés par mlibc, les outils GNU userland et d'autres logiciels * nix courants.
- managarm - Système d'exploitation pragmatique basé sur un micro-noyau avec E/S entièrement asynchrones
- menix - Un système d'exploitation de type Unix minimal et extensible.
- moros - MOROS est un système d'exploitation amateur écrit en Rust pour l'architecture x86.
- mOS - Un système d'exploitation de loisir développé à partir de zéro
- nopeos - Noyau OS simple avec interpréteur BASIC pour x86
- octox - Système d'exploitation de type Unix dans Rust inspiré de xv6-riscv
- oneOS - noyau x86-32 et ARMv7 avec multi-threading préemptif, gestionnaire de fenêtres et éditeur
- opuntiaOS - un système d'exploitation ciblant x86, ARMv7, Aarch64.
- orange_slice - Un noyau de recherche et un hyperviseur tentant d'obtenir une émulation entièrement déterministe avec un coût de performance minimum. Dans la rouille
- pranaOS - Un système d'exploitation Unix écrit à partir de zéro en c/c++
- quickOS - Un OS réalisé par un développeur indépendant, toujours en développement, comme MS-DOS, mais en qbasic. C'est FAIT avec qb64.
- r3 - Un noyau de système d'exploitation hobby x86_64 écrit en Rust - avec des fonctionnalités minimales
- ravynOS - Projet de système d'exploitation basé sur BSD qui vise à fournir une expérience similaire et une certaine compatibilité avec macOS (anciennement connu sous le nom d'airyxOS)
- skiftOS, GitHub - Un système d'exploitation simple et artisanal avec une interface utilisateur graphique.
- soso - Système d'exploitation simple de type Unix écrit en assembleur Nasm et principalement en C
- tilck - Un petit noyau compatible Linux.
- tock, GitHub - Un système d'exploitation embarqué sécurisé pour microcontrôleurs
- unox-os - Unox est un système d'exploitation éducatif de type Unix
- willOS - Un noyau minimal de 64 bits (Système d'exploitation qui ne peut pas "faire fonctionner" beaucoup de choses)
Systèmes d'exploitation populaires
- Darwin XNU - Le code source du noyau XNU à utiliser sous MacOS et iOS
- FreeBSD, Github - Système d'exploitation de type Unix basé sur BSD
- FreeDOS - Système d'exploitation compatible DOS
- Haiku - Système d'exploitation inspiré de BeOS
- Linux - Noyau Linux
- Minix, Github - Système d'exploitation de type Unix basé sur une architecture micro-noyau
- MS-DOS - Les sources originales de MS-DOS 1.25 et 2.0
- NetBSD, Github - système d'exploitation de type Unix basé sur BSD
- OpenBSD, Github - Système d'exploitation de type Unix basé sur BSD
- Plan 9 des Bell Labs - Un système d'exploitation des créateurs d'Unix, étendant la philosophie Unix selon laquelle « tout est un fichier » avec un système de fichiers centré sur le réseau, des espaces de noms et une informatique distribuée.
- ReactOS, Github - Un système d'exploitation gratuit compatible Windows
- SystemV - Code source du système V AT&T UNIX
Livres et guides
Livres en ligne
- Comment créer un système d'exploitation informatique - en C++
- Intermezzos - Un livre de suivi pour créer IntermezzosOS dans Rust
- Le noyau Linux en bref - Couvre toute la gamme des tâches du noyau, disponible sous forme de chapitres ou d'un PDF
- Le petit livre sur le développement des OS par Erik Helin et Adam Renberg
- Think OS - Une brève introduction aux systèmes d'exploitation par Allen B. Downey
- Série de développement de systèmes d'exploitation - Système d'exploitation de A à Z en C
- Systèmes d'exploitation : trois pièces faciles - Livre facile à lire couvrant la virtualisation, la concurrence et la persistance
- xv6 : un système d'exploitation pédagogique simple, de type Unix - Book for Xv6
- Systèmes d'exploitation : de 0 à 1 - Amorcez-vous pour écrire un système d'exploitation à partir de zéro par Do Hoang Tu
- Osdev Notes - Comment écrire un système d'exploitation à partir de zéro par Ivan G. et Dean T.
Tutoriels
- Baking Pi – Développement de systèmes d’exploitation par l’Université de Cambridge
- Créer un noyau de système d'exploitation multitâche minimal pour ARM à partir de zéro par Jim Huang
- Développement du noyau de Bran par Brandon Friesen
- Comment écrire un correctif pour le noyau Linux et le soumettre par Greg Kroah-Hartman
- Présentation sur le développement du noyau Linux par Greg Kroah-Hartman
- os-tutorial - Comment créer un système d'exploitation à partir de zéro par Carlos Fenollosa
- Roulez votre propre jouet UNIX-clone OS par James Molloy
- Écrire un système d'exploitation dans Rust par Philipp Oppermann
- Créer un système d'exploitation RISC-V avec Rust par Stephen Marz
- Développement de systèmes d'exploitation pour les nuls par Leo Whitehead
- Kernels 101 – Écrivons un noyau par Arjun Sreedharan
- Kernels 201 - Écrivons un noyau avec prise en charge du clavier et de l'écran par Arjun Sreedharan
- Écrire un petit chargeur de démarrage x86 par Joe Bergeron
- Écrire un chargeur de démarrage par Alex Parker
- Apprentissage du développement de système d'exploitation à l'aide du noyau Linux et de Raspberry Pi
- mya un projet amusant pour créer un système d'exploitation à partir de zéro par Erfan
Sites Web
- Genodians - Histoires autour du système d'exploitation Genode
- os-dev - Wiki avec tout ce que vous devez savoir
- Lowlevel - Un wiki sur la création d'un système d'exploitation à partir de zéro. En allemand
- POSIX - Normes pour maintenir la compatibilité entre les systèmes d'exploitation
- Rust OSDev - Newsletter sur le développement de systèmes d'exploitation dans Rust
- OSRTOS - Liste des systèmes d'exploitation temps réel open source
- Multicians - Le site web Multicians présente l'histoire du système d'exploitation Multicians pour les personnes intéressées par l'histoire du système
Papiers
- Les avantages et les coûts de l'écriture d'un noyau POSIX dans un langage de haut niveau par Cody Cutler, M. Frans Kaashoek et Robert T. Morris, MIT CSAIL
- Exécution de Scheme On Bare Metal par Samuel Yvon, Marc Feeley, Scheme 2020
- Unikraft : des Unikernels rapides et spécialisés en toute simplicité par Kuenzer et al., EuroSys 2021
Tutoriels vidéo
- Écrivez votre propre système d'exploitation
- Nanooctet
- Développement du noyau à partir de zéro par Dragon Zap Education
- Série de conférences OSDev par AptRock327
Spécifique à Linux
Guide du débutant sur le développement du noyau Linux (LFD103)
Le guide de programmation du module du noyau Linux
La documentation du noyau Linux
Travailler avec la communauté de développement du noyau
Enseignement du noyau Linux
Linux-Insides
Cahier d'exercices du noyau Linux
Enseignement du noyau Linux
carte interactive du noyau Linux bootlins
Table des appels système du noyau Linux pour tous les archs par Marcin Juszkiewicz
OldLinux - Une source de noyau Linux très commentée et plus
Ressources du noyau Linux sam4ks
Exploitation du noyau Linux xairys
fibdrv Module du noyau Linux qui calcule les nombres de Fibonacci
apprentissage-sécurité-noyau
bogues de Syzbot
fuzzer du noyau syzkaller
Faire plus avec lore et b4, diapositives
Der Linux Kernel Entwicklungs-Workflow (2023, allemand) par Rouven Czerwinski
Outils
- b4, docu, un outil pour faciliter les flux de travail de correctifs par courrier électronique
- clang-extract un outil pour extraire le contenu du code des fichiers sources à l'aide de l'infrastructure clang et LLVM.
- hackermail un outil de gestion de mails pour les hackers qui collaborent à l'aide de listes de diffusion
- kworkflow - réduisez les frais généraux grâce à la configuration de l'infrastructure pour le développement Linux
- virtme-ng - créez et exécutez rapidement des noyaux dans un instantané virtualisé de votre système en direct
Articles de blog
Noyau de la planète
Devenez contributeur du noyau Linux - Partie 1 par Javier Carrasco
Devenez contributeur du noyau Linux - Partie 2 par Javier Carrasco
Devenez contributeur du noyau Linux - Partie 3 par Javier Carrasco
Correction de bugs dans le noyau Linux avec Syzbot, Qemu et GDB par Javier Carrasco
b4 pour les contributeurs du noyau Linux par Javier Carrasco
Utilisez b4 pour les contributions au noyau par Marcus Folkesson
Utiliser lei, b4 et mutt pour développer le noyau par Josef Bacik
netdev en 2023 par Jakub Kicinski
Cinq commandes pour planter le noyau par Marcos Paulo de Souza
Vous pouvez être un hacker du noyau ! par Julia Evans
4 façons de devenir un hacker du noyau par Julia Evans
Deviner les registres du noyau Linux par Julia Evans
Comment on m'a volé ma première contribution au noyau par Ariel Miculas
Appliquer les correctifs du noyau Linux de LKML par Adam Young (avant de connaître b4)
Mon workflow de révision des correctifs par Josef Bacik
Flux de travail de développement du noyau Linux par Tommaso Merciai
Appliquer un correctif du noyau Linux à l'arborescence stable (2009) par Greg Kroah-Hartman
Flux de travail de patch avec Mutt 2019 par Greg Kroah-Hartman
Déboguer le noyau avec KGDB par Marcus Folkesson
Débogage du noyau Linux
Comment j'ai appris à aimer le flux de travail des développeurs de correctifs de courrier électronique par Emily Shaffer
Débogage
- Chasse aux insectes
- Diviser un bug en deux
- Débogage dynamique
- Qui a effectué ce changement et quand : utiliser Cregit pour le débogage par Shuah Khan
- Rendre la sortie du dump de pile à nouveau utile
- Analyse de débogage des paniques et des oops du noyau à l'aide de System Map par Sanjeev Sharma
- Comprendre un noyau Oups ! par Surya Prabhakar
E-mail
Apprenez à utiliser git+email : git-send-email
Apprenez à consulter les correctifs par e-mail : git-am
Utilisez des e-mails en texte brut
Les avantages d'un workflow git basé sur le courrier électronique par Drew DeVault
Révision du code à la vitesse du courrier électronique par Drew DeVault
Conférences / Présentations
- Plombiers Linux, Yukon
- La Fondation Linux