La compatibilité matérielle de Linux est meilleure... parce que y'a plus de gens qui contribuent. Si Haiku fait pareil dans 10 ans, ou est le problème? Pourquoi ça marcherait pas pour Haiku si ça a marché pour Linux?
Et donc, oui, on peut prendre un noyau Linux et l'userland de Haiku: ça existe, ça s'apelle Cosmoe, et le projet Haiku est beaucoup plus actif. Pour les diverses raisons que j'ai mentionnées par ailleurs:
- Faire un noyau et des drivers en C++, c'est pas courant et c'est un projet intéressant
- Le code du noyau et des drivers est propre et lisible (ce n'est pas toujours le cas de Linux)
- L'API entre les drivers et le noyau est compatible avec BeOS et surtout, est stable: un vieux driver continue de fonctionner meme s'il n'a pas été "mainliné". Dans Linux ces APIs changent quasi systématiquement d'une version à l'autre.
- Avoir la main sur le noyau permet d'implémenter les choses comme on veut, avec par exemple une IPC spécifique (les "ports") qui est à la base de plein de choses dans Haiku (les BMessages qui s'échangent entre threads, les flux média entre applications un peu comme ce que fait jack). Non, ce n'est pas indispensable, et il existe des équivalents sous Linux implémentés à l'aides d'autres solutions (sockets UNIX, mémoire partagée, ...). Mais oui, ça fait partie de l'idée du projet Haiku d'avoir un système qui est un tout cohérent, et pas seulement un aggrégat de divers projets comme la plupart des distributions Linux.
Autre exemple: le gestionnaire de paquets de Haiku a une particularité, les paquets ne sont pas extraits, mais montés sous forme d'un système de fichiers virtuel. Pour installer un paquet, on le copie au bon endroit (dans /system/packages). Pour désinstaller, on supprime ou déplace le fichier. Facile. Point intéressant, le noyau est dans un paquet. Le bootloader est donc capable de le retrouver dans ce paquet et de le charger en RAM. Ensuite le noyau peut trouver les paquets, récupérer les pilotes de périphériques qui sont dedans, et lancer le système. Oui, on pourrait le faire avec un noyau Linux, sous forme d'un patch qui aurait peu de chance d'etre accepté upstream, et qu'il faudrait donc maintenir d'une version à l'autre du noyau Linux. Pas sur que ça soit moins de travail, finalement.
En plus, Haiku a choisi la license MIT pour se permettre une éventuelle fusion avec BeOS si celui ci continuait d'exister. ça ne s'est finalement pas fait, mais avec un noyau sous GPL ça aurait été juste impossible.
Toujours pas convaincu? Pas de problème: le projet Cosmoe fait exactement ça: prendre l'espace utilisateur de Haiku et le faire tourner sur un noyau Linux. C'est possible aujourd'hui sans trop de difficultés car Linux a rattrapé une grosse partie de son retard depuis 2001. Seulement, il y a beaucoup de gens pour dire aux développeurs de Haiku qu'ils se trompent, qu'ils devraient utiliser Linux comme tout le monde, que s'ils le faisaient tout le monde utiliserait cet OS génial, et tout ça. Mais pour contribuer à Cosmoe, d'un coup, y'a plus personne (ah si, des développeurs de Haiku, pour montrer que oui, c'est possible!)
[^] # Re: Eh ben...
Posté par pulkomandy (site web personnel, Mastodon) . En réponse à la dépêche Haiku se lâche enfin. Évalué à 10.
La compatibilité matérielle de Linux est meilleure... parce que y'a plus de gens qui contribuent. Si Haiku fait pareil dans 10 ans, ou est le problème? Pourquoi ça marcherait pas pour Haiku si ça a marché pour Linux?
Et donc, oui, on peut prendre un noyau Linux et l'userland de Haiku: ça existe, ça s'apelle Cosmoe, et le projet Haiku est beaucoup plus actif. Pour les diverses raisons que j'ai mentionnées par ailleurs:
- Faire un noyau et des drivers en C++, c'est pas courant et c'est un projet intéressant
- Le code du noyau et des drivers est propre et lisible (ce n'est pas toujours le cas de Linux)
- L'API entre les drivers et le noyau est compatible avec BeOS et surtout, est stable: un vieux driver continue de fonctionner meme s'il n'a pas été "mainliné". Dans Linux ces APIs changent quasi systématiquement d'une version à l'autre.
- Avoir la main sur le noyau permet d'implémenter les choses comme on veut, avec par exemple une IPC spécifique (les "ports") qui est à la base de plein de choses dans Haiku (les BMessages qui s'échangent entre threads, les flux média entre applications un peu comme ce que fait jack). Non, ce n'est pas indispensable, et il existe des équivalents sous Linux implémentés à l'aides d'autres solutions (sockets UNIX, mémoire partagée, ...). Mais oui, ça fait partie de l'idée du projet Haiku d'avoir un système qui est un tout cohérent, et pas seulement un aggrégat de divers projets comme la plupart des distributions Linux.
Autre exemple: le gestionnaire de paquets de Haiku a une particularité, les paquets ne sont pas extraits, mais montés sous forme d'un système de fichiers virtuel. Pour installer un paquet, on le copie au bon endroit (dans /system/packages). Pour désinstaller, on supprime ou déplace le fichier. Facile. Point intéressant, le noyau est dans un paquet. Le bootloader est donc capable de le retrouver dans ce paquet et de le charger en RAM. Ensuite le noyau peut trouver les paquets, récupérer les pilotes de périphériques qui sont dedans, et lancer le système. Oui, on pourrait le faire avec un noyau Linux, sous forme d'un patch qui aurait peu de chance d'etre accepté upstream, et qu'il faudrait donc maintenir d'une version à l'autre du noyau Linux. Pas sur que ça soit moins de travail, finalement.
En plus, Haiku a choisi la license MIT pour se permettre une éventuelle fusion avec BeOS si celui ci continuait d'exister. ça ne s'est finalement pas fait, mais avec un noyau sous GPL ça aurait été juste impossible.
Toujours pas convaincu? Pas de problème: le projet Cosmoe fait exactement ça: prendre l'espace utilisateur de Haiku et le faire tourner sur un noyau Linux. C'est possible aujourd'hui sans trop de difficultés car Linux a rattrapé une grosse partie de son retard depuis 2001. Seulement, il y a beaucoup de gens pour dire aux développeurs de Haiku qu'ils se trompent, qu'ils devraient utiliser Linux comme tout le monde, que s'ils le faisaient tout le monde utiliserait cet OS génial, et tout ça. Mais pour contribuer à Cosmoe, d'un coup, y'a plus personne (ah si, des développeurs de Haiku, pour montrer que oui, c'est possible!)
Je redonne le lien vers Cosmoe (je me répète, mais bon): http://github.com/ithamar/cosmoe