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é ?
Réponses
Trop de publicités?Utilisation de Haskell pour les noyaux
L'utilisation de Haskell pour la construction d'un noyau a été étudiée dans les travaux suivants :
- hOp
- Maison (et LightHouse)
- Rebecca Leslies Dissertation de doctorat ( L'interface H Elle a soutenu sa thèse, mais je ne pense pas qu'elle soit encore accessible au public.
- Cinétique
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 .
- 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.
http://intoverflow.wordpress.com/kinetic/
Kinetic est écrit dans une combinaison de haskell, assembly et c++.