[logo]     Echanger des données avec d'autres systèmes d'exploitation [logo]

Echanger des données avec d'autres systèmes d'exploitation

Si vous utilisez deux (ou plus) systèmes d'exploitation, vous désirerez probablement à un moment ou à un autre échanger des données entre ceux-ci. S'ils sont installés sur des ordinateurs différents reliés par un réseau, vous pouvez utiliser des programmes tels que ftp(1), disponible pour la grande majorité (si ce n'est tous) des Systèmes d'Exploitation (SE), ou encore rcp(1) entre deux systèmes de type Unix. Entre deux ordinateurs non reliés par un réseau, vous pouvez utiliser kermit(9) (de même, disponible pour quasiment tous les SE) pour un transfert par modem ou par connexion entre ports séries.

L'échange de données entre SEs situés sur le même ordinateur et fonctionnant alternativement (ou simultanément grâce à une machine virtuelle/émulée comme celles de VMWare et Bochs), ou sur des ordinateurs différents qui ne peuvent pas communiquer par câble, nécessite de rendre un des systèmes capable de lire et d'écrire les disquettes ou une partition de disque appartenant à l'autre système. Avec les disquettes, la seule difficulté est d'interpréter les structures de données utilisées par le système de fichier étranger. Avec une partition de disque dur, on peut avoir à résoudre d'abord un autre problème: bien que tous les systèmes d'exploitation utilisant la même plateforme matérielle soient contraints à utiliser la même méthode pour définir les partitions primaires (cad. la seule supportée par le programme d'amorçage de l'ordinateur: le BIOS pour un PC), les concepteurs de systèmes d'exploitation ont inventé différentes techniques pour subdiviser les partitions primaires. Ce document traite de la difficulté à interpréter les systèmes de fichier étrangers; pour avoir des informations sur ce problème de subdivision, consultez le document sur la compatibilité des partitions.

L'objectif principal de MINIX est d'illustrer les principes de fonctionnement d'un système d'exploitation. Conserver MINIX suffisamment compact pour rentrer dans une tête d'étudiant en un cours d'un semestre (ou d'un an) a obligé à le maintenir simple. Par exemple, il ne supporte que le montage de média utilisant le système de fichier MINIX.


Accéder à des systèmes de fichiers étrangers depuis MINIX

Dans le monde Unix, monter un système de fichiers a une signification précise: un système de fichiers monté fait partie d'une arborescence de répertoires, dont / est la racine. Que MINIX ne puisse monter un système de fichiers ne signifie pas pour autant qu'on ne puisse y accéder. La distribution MINIX de base contient des utilitaires permettant de lire/écrire des fichiers et répertoires sur un système de fichiers FAT MS-DOS ou Windows, et de lire les fichiers et répertoires d'un système de fichiers ISO-9660, tel que rencontré sur les CD-ROMs. Ces programmes sont les utilitaires dos*, mtools et iso*.


Accéder au système de fichier MS-DOS/Windows depuis MINIX:

  • L'ancienne façon de faire consiste à utiliser les outils MINIX dosdir/dosread /doswrite. Ils peuvent gérer les disquettes, et les partitions FAT relativement petites.

    Si votre système de fichier Windows natif (p.ex. NTFS) ne peut être géré par les outils dos*, une solution est de créer une partition FAT supplémentaire que les dos* sauront utiliser et de l'employer comme étape intermédiaire dans le transfert entre les deux SE.

  • La nouvelle façon est l'utilisation de la commande mtools. Jusqu'à la version 2.03 de MINIX, il n'y a pas de pages man (manuel) pour mtools, mais son utilisation est simple. Mtools utilise en premier argument une commande DOS standard, comme copy, dir, etc; les arguments suivants sont les chemins d'accès DOS et MINIX s'appliquant à la commande. Le chemin DOS est composé du nom du périphérique MINIX, de deux points (:), et enfin du chemin d'accès avec les séparateurs obliques d'Unix (/). Le chemin MINIX utilise la syntaxe habituelle de MINIX. Par exemple:

    # mtools copy /dev/fd0:/dir1/file1.txt /usr/local/doc

    Mtools dispose de sa propre aide, affichée en tapant "mtools -?". Mtools a un défaut, il est gourmand en mémoire: par défaut plus de 10 MO de mémoire lui sont allouées. Ceci dit, la plupart des systèmes avec des partitions de disque trop larges pour être utilisée avec les utilitaires dos* disposent également de beaucoup de RAM.

  • Vous pouvez également consulter l'article sur l'utilisation de DOS comme pont entre MINIX et Windows.

Accéder au système de fichier ISO-9660 (CD-ROM) depuis MINIX:


Les outils qui le permettent sont:
  • isoinfo -- pour obtenir des informations sur un CD-ROM
  • isodir -- pour lire un répertoire
  • isoread -- pour lire un fichier

Bien entendu pour utiliser les utilitaires iso* vous devez connaître le nom du périphérique MINIX qui correspond à votre lecteur. Sur un ordinateur avec un disque dur et un lecteur de CD-ROM, il s'agit très probablement de /dev/c0d1 ou /dev/c0d2 (ceci à partir de MINIX 2.03, avec les versions précédentes, essayez /dev/hd5 ou /dev/hd10). Pour identifier le lecteur de CD-ROM, vous pouvez utiliser la commande part ou essayer isoinfo avec différents arguments.


Accéder au système de fichier ext2 de Linux depuis MINIX:

Terry McConnell a porté sous MINIX le paquetage ext2tools, originellement écrit par Claus Tondering pour MS-DOS. L'original fournit les outils nécessaires pour l'accès à un système de fichier ext2 sous MS-DOS, le port permet la même chose depuis MINIX. Il contient les programmes suivants:

  • e2cp -- pour copier un fichier depuis un système de fichiers ext2
  • e2cat -- pour lister le contenu d'un fichier situé sur un système de fichiers ext2
  • e2ls -- pour afficher le contenu d'un répertoire situé sur un système de fichiers ext2

Bien sur, depuis 2003 Linux a évolué, et le système ext2 n'est désormais plus le plus utilisé sous Linux. Une des façons de contourner le problème est celle suggérée plus haut pour Windows: créer une partition ext2 supplémentaire, voire directement une partition MINIX, et l'utiliser comme escale pour les fichiers en transfert.


Accès au système de fichier MINIX depuis MS-DOS et Windows

Terry McConnell a amélioré un paquetage appelé MinDOS pour en faire mintools, qui donne accès aux fichiers MINIX depuis la ligne de commande MS-DOS.


Accès au système de fichier MINIX depuis Linux

Cette fois, c'est simpliste. Linus a utilisé le système de fichier de MINIX comme base pour Linux, et bien que les disques durs Linux utilisent en général le système ext3, ou un autre plus récent, le support du système MINIX est fréquemment intégré si l'utilisation de disquettes est prévue. En effet les systèmes plus récents ne sont pas adaptés aux disquettes, et c'est par défaut celui de MINIX qui est alors utilisé. Assurez-vous juste d'inclure le support du système de fichier MINIX si vous devez compiler un noyau.


Transfert de fichier entre SE hôte et invité pour les machines virtuelles ou émulées

Avec l'utilisation d'une machine virtuelle ou émulée, comme celles fournies par VMWare et Bochs, il est fréquemment nécessaire d'échanger des données entre les systèmes d'exploitation hôte et invité. Suivant les possibilités des deux systèmes, il y a plusieurs façons de le faire.

  • Connexion réseau: Si l'hôte et l'invité disposent tous les deux d'une connexion réseau, les transferts de fichiers sont simples. Avec Windows et Bochs sous Windows, l'hôte peut utiliser ftp pour envoyer et récupérer des fichiers dans l'espace de fichier du MINIX invité. Je pense que ceci fonctionnerait également pour MINIX et VMWare sous Windows, mais le type de puce Ethernet simulé par VMWare pour son invité n'est pas encore supporté par la distribution standard de MINIX. S'il est impossible de créer une connexion réseau directe entre l'invité et l'hôte, transférer les fichiers par l'intermédiaire d'une autre machine du réseau peut être le plus simple.
  • Disquettes: Si le Système d'Exploitation invité peut écrire sur des disquettes physiques, elles peuvent servir au transfert de fichiers. MINIX peut accéder aux disquettes formatées pour DOS grâce à mtools ou à dos{read,write}. L'hôte Windows peut utiliser mintools pour accéder aux disques MINIX. Pour les fichiers trop volumineux pour tenir sur une disquette, l'utilitaire fdvol fourni dans le répertoire dosutils peut servir sous Windows à répartir un fichier sur plusieurs disquettes, fichier que le MINIX invité reconstitue avec la commande vol. Dans le sens inverse, on peut employer la commande dd sous MINIX pour fragmenter un fichier que doswrite ou mtools pourront ensuite écrire sur une disquette formatée DOS, puis sous Windows, concaténer ces fragments avec la commande copy pour retrouver le fichier d'origine.
  • Disques virtuels: avec Bochs sous Windows 98, l'accès aux disquettes physiques est impossible pour le SE invité, seuls les fichiers représentant les disques virtuels peuvent être lus et écrits. Dans de nombreuses situations les disques virtuels sont de toute façon plus pratiques d'utilisation que les disquettes, en particulier car l'accès aux disquettes depuis Bochs est très lent. Heureusement, contrairement à un disque virtuel, une disquette virtuelle peut être créée en cours de fonctionnement, et plusieurs peuvent être utilisées durant la même session. De plus, mtools peut être utilisé pour formater une disquette virtuelle avec un système de fichiers FAT, et du coté de Windows il existe un programme gratuit, DiskExplorer, qui peut transférer des fichiers entre la disquette virtuelle et le système de fichiers du Windows hôte.
  • Eléments inconnus ... Au moment ou j'écris cette section, la plus grande partie de mon expérience avec les systèmes émulés et virtuels consiste en l'utilisation de VMWare et Bochs sous Windows. J'aimerais ajouter à cette section des informations sur le transfert de fichiers entre un MINIX invité par VMWare/Bochs et un système hôte Linux/Unix, de même qu'entre un MINIX invité par Bochs et Mac OS.

Liens pour les systèmes virtuels ou émulés: des sources d'information supplémentaires sur quelques sujets mentionnés dans cette page. (Ndt: tous ces liens se réfèrent à des pages en anglais)

Traduction Vincent Niarfeix