Scroll to navigation

IBCS(9) Fonctions du noyau Linux IBCS(9)

NOM

iBCS - Module chargeable qui permet d'exécuter les programmes binaires d'autres Unix pour x86

SYNOPSIS

insmod iBCS

DESCRIPTION

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.

ARCHITECTURES SUPPORTEES

Intel 386/486/Pentium et compatibles

Sparc

FORMATS BINAIRES SUPPORTES

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)

ÉMULATIONS SUPPORTÉES

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

ÉMULATIONS DE SOUS-SYSTÈMES SUPPORTÉES

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.

BOGUES

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.

NOTE ADDITIONNELLE DU TRADUCTEUR

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).
Intel a proposé d'établir un format standard de pilote de périphérique pour les Unix fonctionnant sur le futur Merced ; il est donc possible que la compatibilité binaire fasse un bond en avant sur l'architecutre IA-64.

FICHIERS

/lib/modules/`uname-r`/misc/iBCS
emplacement par défaut du module iBCS

VOIR AUSSI

insmod(1) kerneld(8) modprobe(1)

AUTEURS

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.

TRADUCTION

Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999

19 mars 1999 Linux