Je voulais savoir s'il était possible de changer les noyaux, par exemple, en remplaçant le noyau Linux de Fedora par celui de FreeBSD.
Maintenant, il existait déjà Debian GNU / kFreeBSD . Est-il possible pour moi de personnaliser une distribution Linux pour contenir un noyau BSD?
Réponses:
Non, chaque noyau implémente ses propres fonctionnalités à sa manière. La compatibilité POSIX est importante, mais une fois que vous en êtes sorti, les exécutables doivent être compilés avec les mécanismes du noyau déjà en place. De nombreux projets contiennent du code source qui n'est compilé que si vous dites explicitement que vous compilez pour FreeBSD ou Linux. C'est essentiellement ce qu'est kFreeBSD. Les outils prennent en charge le noyau FreeBSD mais ils doivent être compilés pour cela.
Par exemple, si vous essayez d'utiliser
epoll_create
sur FreeBSD, les choses ne fonctionneront pas comme prévu.Bien sûr, vous pouvez effectuer une compilation croisée des outils à partir d'un système BSD de style LFS, mais cela prendra probablement une éternité. Pas aussi simple que de simplement compiler un nouveau noyau.
la source
FreeBSD n'utilise pas de noyau Linux - comme son nom l'indique, il utilise un noyau BSD.
Il est possible de remplacer un noyau Linux par un autre noyau Linux (que vous ayez construit vous-même ou extrait d'une distribution). N'oubliez pas que les programmes de l'espace utilisateur de votre distribution peuvent dépendre de fonctionnalités de noyau particulières à compiler et peuvent ne pas fonctionner correctement si vous les exécutez sur un noyau construit sans ces fonctionnalités. Par exemple, une distribution basée sur systemd nécessitera des cgroups dans le noyau.
Pour l'exemple que vous mentionnez, oui, une distribution GNU peut être construite pour un noyau Linux ou pour un noyau BSD. Dans de nombreux cas, il existe des différences de temps de compilation (par exemple
#ifdef
) entre les programmes compilés pour les deux, même si les noyaux annoncent le même ABI. Au minimum, les bibliothèques de bas niveau telles que la bibliothèque d'exécution C doivent prendre en charge les différentes ABI du noyau.la source
Le noyau est la partie indépendante et est régulièrement remplacé lors des mises à jour du système d'exploitation. Certains pilotes propriétaires (NVIDIA, etc.) ont les scripts d'installation qui corrigent le pilote dans la source du noyau, construisent ce noyau et remplacent le noyau actuel par lui. Par conséquent, si vous développez votre propre version du noyau qui peut exécuter toutes les fonctionnalités requises, cela ne devrait pas être un gros problème de l'installer et de laisser le reste du système d'exploitation. Cependant, le plus souvent, un tel "nouveau noyau" est dérivé de la version officielle récente.
Le noyau Solaris a été porté de cette façon dans une certaine mesure, ce qui a donné lieu à OpenSolaris exécutant l'environnement Gnome.
Pourtant, mettre le noyau complètement différent est un effort important, car les interfaces doivent être pontées. Cela nécessitera probablement beaucoup de programmation C et ne concerne pas seulement le script de construction.
la source