Linux |
CentOS 4.8 |
|
iBCS(9) |
iBCS − module chargeable qui permet d’exécuter les programmes binaires d’autres Unix pour x86 |
insmod iBCS |
La Spécification de Compatibilité Binaire d’Intel (Intel Binary Compatibility Specification) ou iBCS, spécifie une interface standard entre les programmes applicatifs et les systèmes d’exploitation pour ix86. Il existe cependant plusieurs variantes d’iBCS (SVR4, SVR3 ainsi que plusieurs extensions de SVR3 propriétaires aussi différentes qu’incompatibles). L’émulateur iBCS pour Linux supporte toutes les variantes connues ainsi que plusieurs extensions. Lorsque le module iBCS est chargé, vous pouvez exécuter quasiment tout programme compilé pour n’importe lequel des Unix autres que Linux, et ce de manière totalement transparente. Tout ce que vous avez à faire est de lancer ce type de programmes comme des programmes natifs. |
Intel 386/486/Pentium et compatibles Sparc |
A.OUT |
(utilisé par Linux et BSD)
ELF
(utilisé par les variantes de SVR4 et SCO OS5)
COFF
(utilisé par les variantes de SVR3)
XOUT
(utilisé par Xenix)
i386 BSD (386BSD, FreeBSD, NetBSD, BSDI/386) - au tout premier stage de développement SVR4 (Interactive, Unixware, USL, Dell etc.) SVR3 générique SCO (SVR3 avec des extensions pour les liens symboliques et les noms de fichiers longs) Wyse V/386 (SVR3 avec une extension pour les liens symboliques) Xenix V/386 (exécutables au format 386 compact seulement) Xenix 286 |
SYSV IPC /dev/socksys interface sockets telle qu’utilisée par les implémentations réseaux basées sur Lachman STREAMS. interface d’appel système de socket Wyse V/386. les pilotes de flux /dev/spx pour les connexions à un serveur X local. pilotes IP TLI. |
Il y a deux principales bogues. Cependant, la plupart des utilisateurs ne les rencontreront jamais. Les variantes d’Unix proposant des extentions non standard (autres que SVr4, SCO ou Wyse) ne seront pas reconnues et peuvent provoquer des core dump inexpliqués. Une nouvelle personnalité devrait être créée. La reconnaissances des programmes de SCO et de Wyse dépdent des commentaires inclus dans les exécutables lors de la compilation. Si ces chaînes de caractères étaient absentes ou différentes de celles recherchées, l’exécutable ne sera pas reconnu correctement et pourra ne pas s’exécuter correctement. Il est également possible que des exécutables d’autres systèmes soient mal reconnus bien que la probabilité que cela arrive soit proche de zéro. Certaines fonctions de Xenix ne sont pas implémentées comme les sémaphores et la mémoire partagée de Xenix (Ndt: pour être portable, utilisez IPC). Un support élémentaire des interfaces réseaux STREAMS et XTI/TLI est inclu. Comme Linux n’utilise pas ces interfaces, l’émulation n’est peut être pas complète ; cependant ce devrait être suffisant pour la majeure partie des programmes. (Ndt : quand on voit que des monstres tels qu’Oracle pour SCO passent sous Linux, il est inutile de s’inquiéter pour de telles broutilles) Les programmes, applications ou progiciels qui nécessitent des modules ou des pilotes de périphériques spéciaux ne fonctionneront pas. Linux n’est pas basé sur le code SYSV et est fonctionne de manière totalement différente en interne (Ndt : par opposition à Free/Open/Net-BSD qui repose sur le code officiel de l’Unix de Berkeley). Les pilotes spécifiques à SYSV (Ndt : Système V) nécessiteront d’être réécrits pour Linux. |
Veuillez consulter undocumented(2)
unimplemented(2) undocumented(3) pour
connaître les appels système et les
routines de la libc qui ne sont pas
implémentés. Pour
implémenter une «
personnalité de processus »,
consultez personality(2). |
/lib/modules/‘uname-r‘/misc/iBCS |
emplacement par défaut du module iBCS |
insmod(1) kerneld(8) modprobe(1) |
Mike Jagdis <jaggy@purplet.demon.co.uk>. D’après un premier jet de Eric Youngdale, Alfred Longyear, Drew Sullivan, Joseph L. Portman III et plusieurs autres. |
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999 |
iBCS(9) |