7 points par GN⁺ 2024-09-15 | 1 commentaires | Partager sur WhatsApp
  • Ce dépôt contient le code source de la série Writing an OS in Rust proposée sur os.phil-opp.com
  • En cas de question, vous pouvez ouvrir une issue ou discuter sur Gitter

Emplacement du code

  • Le code de chaque article se trouve dans une branche git distincte
  • Il est possible de consulter l’état intermédiaire après chaque article
  • Le code de l’article le plus récent est disponible ici
  • Vous pouvez trouver la branche de chaque article en suivant le lien (source code) dans la liste des articles
  • Les branches sont nommées au format post-XX (XX étant le numéro de l’article)
  • Exemple : l’article VGA Text Mode correspond à post-03, et Hardware Interrupts à post-07
  • Pour les instructions de build, consultez le Readme de la branche concernée
  • Vous pouvez utiliser git worktree pour checkout une branche dans un sous-répertoire
    git worktree add code post-10
    
  • La commande ci-dessus crée un sous-répertoire nommé code et y place le code du 10e article (« Heap Allocation »)

Articles

  • L’objectif de ce projet est de proposer un tutoriel pas à pas à travers des articles de blog individuels
  • Les articles actuellement disponibles sont les suivants

Bare Bones:

Interrupts:

Memory Management:

Multitasking:

Articles de la première édition

  • La version actuelle du blog est la deuxième édition, et la première édition n’est plus maintenue
  • Les articles de la première édition peuvent néanmoins rester utiles
  • La liste des articles est la suivante

Bare Bones:

Memory Management:

Exceptions:

Additional Resources:

  • Cross Compile Binutils
  • Cross Compile libcore
  • Set Up GDB
  • Handling Exceptions using Naked Functions
  • Catching Exceptions (source code)
  • Better Exception Messages (source code)
  • Returning from Exceptions (source code)

Licence

  • Ce projet est distribué, à l’exception du dossier blog/content, sous l’une des licences suivantes
  • Pour la licence du dossier blog/content, voir blog/content/README.md

Contribution

  • Sauf mention explicite du contraire, toute contribution soumise intentionnellement est incluse sous cette double licence, conformément à la définition de la licence Apache-2.0 ci-dessus

Résumé de GN⁺

  • Ce projet propose un tutoriel expliquant pas à pas comment écrire un système d’exploitation en Rust
  • Chaque article traite d’un sujet indépendant et l’explique avec des exemples de code
  • C’est une ressource très utile pour les personnes intéressées par le développement de systèmes d’exploitation
  • Il permet d’apprendre à développer un système d’exploitation en tirant parti de la sûreté et des performances de Rust
  • Un autre projet offrant des fonctionnalités similaires est Redox OS

1 commentaires

 
GN⁺ 2024-09-15
Commentaires sur Hacker News
  • J’ai terminé la deuxième édition il y a quelques années et j’y ai beaucoup appris

    • Les explications sur le développement d’OS étaient bonnes et c’était aussi utile pour apprendre Rust
    • L’auteur comprend bien les idiomes du langage, donc la manière dont le code est exprimé était pédagogique
    • L’explication de l’implémentation des futures en Rust sur le blog était particulièrement impressionnante
    • J’espère que Phil reprendra le travail sur une troisième édition basée sur EFI
    • La deuxième édition reste une excellente façon de passer du temps de développement le week-end
  • J’ai commencé à travailler sur MOROS après avoir terminé le tutoriel il y a 5 ans

    • Je le recommande vivement à celles et ceux qui s’intéressent à Rust et au développement d’OS
    • Phil y a consacré beaucoup d’efforts, et cela se voit bien dans le résultat
    • Ensuite, on peut continuer à apprendre via le wiki osdev
  • Au lieu d’écrire un OS en Rust, il faudrait créer une plateforme de données capable d’exécuter du DML/DDL

  • J’ai découvert cette ressource après avoir exploré en profondeur Rust et le développement d’OS

    • J’ai été impressionné par sa qualité, et j’ai pu y apprendre non seulement l’histoire et la conception des OS, mais aussi des éléments de Rust
    • Phil a fait un excellent travail
  • C’est grâce à cette ressource que j’ai commencé Rust en 2021

    • Je suis très reconnaissant de son existence
  • Les articles de Phil sur le développement d’OS sont toujours excellents à lire

  • L’équipe de Harvey OS travaille désormais sur le projet R9OS

  • Je recommande particulièrement les articles de l’édition originale

    • L’édition actuelle aide trop en gérant le processus de boot avec une crate spécialisée
  • Je reviens de Rustconf, et il y a environ cinq sorties majeures d’OS axées sur les systèmes d’exploitation temps réel

    • Ils ne sont pas tous open source
  • Une autre bonne ressource consiste à créer un OS RISC-V avec Rust