web-dev-qa-db-fra.com

Qu'est-ce qui permet à BSD d'exécuter des fichiers binaires Linux, mais pas vice versa?

Qu'est-ce qui permet à BSD d'exécuter Linux (et d'autres fichiers binaires de type UNIX), mais Linux (et d'autres types de type UNIX pour la plupart) ne peuvent pas exécuter binaires BSD?

43
No Time

Les forces du marché.

Il existe de nombreux autres programmes ciblés spécifiquement à Linux qu'à * BSD. Beaucoup de logiciels code source est suffisamment portable qu'il peut être compilé sur les deux, mais de nombreux producteurs de logiciels qui expédient des fichiers binaires Linux ne se soucient pas de le faire pour les BSDS puisqu'ils ont marché plus petit actions que Linux, à travers la planche. ¹

Si un logiciel n'est disponible que sous forme binaire pour un système d'exploitation différent, une émulation ABI est une façon de le faire courir, ce qui est ce que les bsds do.²

Il était une fois sur une fois, lorsque X86 Unix détenait une majorité de marché sur Linux, la fonctionnalité IBCS a été ajoutée à Linux pour lui permettre d'exécuter des fichiers binaires construits pour SCO UNIX et telle . L'intérêt de cette fonctionnalité a diminué alors que la part de marché de Linux a augmenté, de sorte qu'elle était autorisée à tomber dans la distraite lors de la série de développement Linux 2. . ³ Les SCO LawSuits aidé à savoir cette fonctionnalité Hors de Linux, mais je crois que c'est secondaire à la perte de la force de marché qui a noué la fonctionnalité.

Il n'y a pas de raison technique pour laquelle Linux ne pouvait pas passer un jour à obtenir une fonctionnalité de type IBCS pour exécuter des fichiers binaires BSD, mais ce n'est pas probable que si les positions du marché du BSD et du commutateur Linux pour une certaine raison.

Aujourd'hui, il y a peu d'appel à une telle chose. Combien de programmes binaires uniquement pour BSD connaissez-vous, qui ne sont pas également construits pour Linux? Il doit y en avoir, mais je suppose que la plupart d'entre eux sont pour les BSD intégrés, tels que Junos . Une telle fonctionnalité ne sera pas créée s'il n'autorise pas un ensemble important de programmes à exécuter sous Linux qui ne couraient pas autrement.


Notes de bas de page:

  1. Je ne compte pas compter OS X en tant que BSD ici, car c'est un problème de compatibilité binaire distinct. FreeBSD, openbsd et netBSD utilisent ELF sur x86, alors que le système d'exploitation X utilise n format exécutable totalement différent . La liaison dynamique est également vaste différente sur OS X que sur les BSD X86 traditionnels.

    Voir Cette question Pour plus d'informations sur l'histoire de compatibilité binaire Linux ⇔ OS X.

  2. FreeBSD ; openbsd ; Netbsd

  3. Comme avec certaines espèces de requin , logiciels qui empêchent de progresser les matrices. Nous appelons ce phénomène Bit-Rot plutôt que de l'asphyxie lorsqu'elle arrive au logiciel, mais la cause et l'effet sont les mêmes.

  4. Contraste ndiswrapper , qui permet à Linux d'exécuter des pilotes de carte réseau binaire uniquement écrites pour Windows XP. Un besoin est identifié et un besoin est rempli. Où est-ce nécessaire d'exécuter des fichiers binaires de BSD?

57
Warren Young