54 votes

Existe-t-il un système d'exploitation écrit en Haskell ?

Je viens d'apprendre Haskell depuis un mois (et j'ai des questions superficielles...). Savoir que Haskell a beaucoup d'avantages, peut servir de langage sûr... y a-t-il quelqu'un qui essaie d'écrire un OS, ou même un simple OS, supportant juste des processus, des systèmes de fichiers, quelques pilotes simples en Haskell ? Si ce n'est pas le cas, est-ce à cause du problème d'efficacité ?

59voto

Thomas M. DuBuisson Points 31851

Utilisation de Haskell pour les noyaux

L'utilisation de Haskell pour la construction d'un noyau a été étudiée dans les travaux suivants :

Utilisation de Haskell pour d'autres systèmes (middleware)

  • HaLVM est un GHC modifié qui effectue des compilations croisées pour produire des VM pouvant fonctionner sur Xen .

    • HaNS est une pile réseau développée pour fonctionner sur HaLVM.
    • Halfs était, au moins à un moment donné, capable de fonctionner sur HaLVM.
  • J'ai utilisé quelques vieux patchs HaLVM pour créer une méthode pour écrire Modules du noyau Linux en Haskell .

Utiliser Haskell pour interagir avec un système

C'est là que le Haskell Wiki est un peu plus utile, avec les bindings pour Fuse et autres. Il n'est toujours pas complet pour ce sujet (il peut être mis à jour à volonté), donc je regarderais aussi autour de Hackage s'il y a quelque chose de particulier que vous espérez (ex : tuntap liaisons !)

Si quelqu'un veut s'assurer que le wiki Haskell a ou est mis à jour avec tout ce travail, ce serait une utilisation raisonnable de son temps.

DSLs Haskell pour le temps réel et autres systèmes critiques (ajouté par edit)

Si vous ne le savez pas, l'une des façons dont Haskell est utilisé pour le travail sur les "systèmes" est la création de langages spécifiques au domaine qui, s'ils sont correctement implémentés, génèrent un code C sûr/correct pour la compilation et l'exécution sur des systèmes embarqués. Par exemple :

  • SBV - "Vecteurs de bits symboliques". Ce paquet peut implémenter, prouver formellement et extraire du code en C.
  • Atom - Utilisé pour générer du code C pour les systèmes embarqués en temps réel (tels que les commandes hydrauliques).
  • Copilote - Utilisé pour générer du code C qui peut surveiller discrètement les programmes embarqués afin de s'assurer qu'ils fonctionnent comme prévu.

10voto

Swift Points 6363

Oui, regardez ça

http://sites.google.com/site/haskell/house-operating-system

House est un système d'exploitation écrit en Haskell. On dirait qu'il n'est pas très populaire vu qu'il ne supporte pas les systèmes de fichiers.

2voto

bmeric Points 845

http://intoverflow.wordpress.com/kinetic/

Kinetic est écrit dans une combinaison de haskell, assembly et c++.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X