home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
disks
/
tools
/
vdisk
/
vdisk_fr.doc
< prev
next >
Wrap
Text File
|
1997-06-22
|
18KB
|
372 lines
$VER: vdisk_fr.doc 2.7 (22.6.97) (C) 1994-1997 par Etienne Vogt
INTRODUCTION
vdisk.device est un pilote de disque RAM récupérable. Il est né il y a 2 ans
sous la forme d'une version modifiée d'ASDG-RAM (le premier RAM disque récupérable
écrit par Perry S. Kivolowitz). Ces versions (1.3 à 1.12) n'ont jamais été
distribuées.
A partir de la version 2.0 , il a été entièrement recodé, avec de nombreuses
fonctions nouvelles :
- Jusqu'à 16 unités de taille virtuellement illimitée (512 Mo)
- Allocation et déallocation dynamique de la mémoire.
- Supporte tous les systèmes de fichiers AmigaDOS.
- Résiste aux plus lourds crash systèmes tant que ses propres données ne sont
pas endommagées.
- En cas de non récupération, la cause peut être déterminée à l'aide d'une
commande de support.
VDisk requiert AmigaDOS 2.04 ou supérieur (V37). Il a été testé de manière
intensive sur les configurations suivantes :
- A500 68000 ECS , 1 Mo Chip 2 Mo Fast 1.5 Mb fausse fast , WB 3.1
20 Mo IDE-XT + 170 Mo SCSI HDs
- A3000 68030 ECS, 2 Mo Chip 8 Mo Fast , WB 2.04 -> 3.1
100 Mo + 1 Go SCSI HDs
- A500 68040(PP&S) ECS , 1 Mo Chip 2 Mo Fast16 8 Mo Fast32 , WB 2.04
50 Mo SCSI HD
- A4000 68040 AGA, 2 Mo Chip 8 Mo Fast , WB 3.0
120 Mo + 500 Mo IDE HDs
- A4000 68040 AGA, 2 Mb Chip 8 Mb Fast , WB 3.0
250 Mo IDE HD + 1Go SCSI-II HDs
- A1200 68EC020 AGA, 2 Mb Chip 5 Mb Fast , WB 3.0
60 Mo IDE HD + 100 Mo SCSI HDs
- A4000T 68060(Phase5) AGA, 2 Mb Chip 8 Mb Fast , WB 3.1
1Gb SCSI-II HD
VDisk est développé independamment de StatRam (un autre ram disque basé sur
ASDG-RAM, ecrit par Richard Waspe et Nicola Salmoria)
DISTRIBUTION
VDisk est un logiciel sous Copyright librement distribuable (FreeWare).
Neanmoins certaines restrictions du logiciel ASDG-RAM sont maintenues :
Ce logiciel :
- Ne peut être copié que sous la forme archivée originale, telle qu'il a
été placé sur le serveur aminet par l'auteur.
- Ne peut être distribué par aucun revendeur de matériel ou de logiciel.
- Ne peut être vendu sous quelque forme que ce soit.
- Doit contenir l'information de Copyright suivante :
vdisk.device, Copyright 1994 by Etienne Vogt.
Inspired from asdg.vdisk.device, Copyright 1987 by Perry S. Kivolowitz
(ASDG Incorporated)
Spécifiquement :
Aucun fabriquant ou revendeur de matériel d'expansion Amiga ou de logiciel
ne peut distribuer ce logiciel de quelque façon que ce soit. Aucun revendeur
de logiciels domaine public ne peut également le distribuer (vu qu'il n'est
pas domaine public).
les seuls moyens de distribution acceptables sont les réseaux, bbs's et
groupes d'utilisateurs. La distribution DOIT ÊTRE GRATUITE, à l'exception
du prix du média et d'une somme raisonnable couvrant les frais de port et
de gestion.
Ce logiciel ne doit plus être placé sur un CD aminet, cela tant que le droit
à un CD gratuit pour les auteurs ne sera pas rétabli.
ABSENCE DE GARANTIE
Ce logiciel est fourni "tel quel" sans aucune garantie ni explicite ni
implicite. En utilisant ce logiciel, vous acceptez tous les risques quant à
sa qualité ou ses performances.
INSTALLATION
- Copiez le fichier 'vdisk.device' dans votre répertoire DEVS: Ne modifiez
pas le nom de ce fichier.
- Copiez les commandes de support CleanRamDisk, DeleteRamDisk, VDStat dans
votre répertoire C: ou tout autre répertoire accessible par votre chemin
d'accès standard. Vous pouvez aussi copier les fichiers .info .
- Si vous avez le système 2.1 ou supérieur, copiez le fichier VD0 dans votre
répertoire DEVS:DOSDrivers . Vous pouvez changer le nom de ce fichier si
vous le desirez. Vous pouvez également l'éditer afin de changer certains
paramètres du RAM disque récupérable, comme sa taille maximale (voir plus
loin).
- Si vous avez le système 2.0 , concatenez le fichier VD0.mountlist avec votre
fichier DEVS:MountList. Vous pouvez changer le nom de l'en-tête de l'enregis-
trement de mount si vous le desirez. Vous pouvez également éditer cet enre-
gistrement pour changer certains paramètres du RAM disque récupérable (voir
plus loin). Verifiez auparavant que vous n'avez pas dejà un enregistrement
du même nom dans votre fichier mountlist (particulièrement si vous utilisiez
l'ancien ASDG-RAM.)
Ajoutez une commande 'Mount VD0:' à votre fichier S:User-Startup. Si vous
n'avez qu'un Mo de mémoire ou moins, il est recommandé de placer cette
commande au début de votre Startup-Sequence pour minimiser les risques
de non-récupération.
- Si vous en êtes toujours au système 1.x, il serait peut-être temps de penser
à évoluer...
- Après cela, rebootez votre Amiga. Si tout est correct, une icône nommée
VD-RAM-00 devrait apparaitre sur votre Workbench.
NOTE : Si vous installez une nouvelle version de vdisk.device, vous *DEVEZ*
entrer une commande 'DeleteRamDisk' sur chaque unité active avant de
rebooter le système, ou toute sorte de choses bizarres peuvent se
produire.
Voyez les commandes de support plus loin.
CHANGEMENT DES PARAMETRES DE MOUNT
ATTENTION : La modification d'un paramètre de Mount autre que celles decrites
ci-dessous entrainera un disfonctionnement du vdisk.device et
pourra réveiller le GOUROU avec le numéro d'alerte $50000005 !
Après TOUT changement d'un paramètre d'une unité active, vous
DEVEZ entrer une commande 'DeleteRamDisk' sur cette unité avant
de rebooter le système sous peine de comportements imprévisibles.
- Nom de périphérique AmigaDOS : Contrairement à l'asdg-ram d'origine, vous
pouvez donner le nom que vous voulez au RAM disque récupérable. Vous n'avez
qu'a changer le nom du fichier de mount (OS 2.1+) ou de l'enregistrement
mountlist (OS 2.0). Le nom par défaut est VD0 . Il est recommandé d'utiliser
comme dernier caractère du nom un chiffre égal au numéro d'unité.
- Unit : Ceci est le numéro d'unité. Vous pouvez avoir plusieurs RAM disques
récupérables en ayant différents fichiers de mount avec différentes valeurs
de ce paramètre. Les numéros valides sont 0 à 15, pour un total de 16 unités.
- Flags : Ceci sert à spécifier des options. Vous pouvez les combiner en
ajoutant leurs valeurs respectives (ex. Flags = 3 pour activer le
nettoyage automatique et la 2ème tentative d'allocation mémoire).
Une valeur de 1 pour Flags (bit 0 actif) active le nettoyage automatique de
l'unité correspondante. Ceci signifie que la mémoire utilisée par le RAM
disque diminue automatiquement lorsque vous effacez des fichiers. Un effet
secondaire est que vous ne pouvez pas utiliser d'outils comme Disksalv pour
récupérer les fichiers effacés. Si le nettoyage automatique est désactivé,
vous devez utiliser la commande CleanRamDisk pour libérer la mémoire après
avoir effacé des fichiers. Le nettoyage peut néanmoins se produire si le
système manque de mémoire. Il est recommandé de laisser le nettoyage
automatique activé.
Une valeur de 2 (bit 1 actif) active la 2ème tentative d'allocation de
mémoire. Lorsqu'une allocation mémoire échoue, une 2ème tentative sera
effectuée avec des conditions moins restrictives (toute mémoire publique
disponible sera utilisée). Cela n'est utile que si vous avez spécifié des
conditions particulières d'allocation mémoire dans le champ BufMemType et
que vous ne souhaitez pas qu'une erreur soit générée si ce type de mémoire
est épuisée.
- HighCyl : Est utilisé pour spécifier la taille maximale que le RAM disque
récupérable est autorisé à utiliser. Quand cette limite est atteinte, AmigaDOS
affiche une requête 'Le volume VD-RAM-00 est plein.'. Notez que contrairement
à RAD, vdisk.device n'alloue de la mémoire que lorsque des fichiers sont
stockés dedans.
Ne donnez pas une valeur trop élévée à ce paramètre ! Si vous manquez de
mémoire avant d'atteindre la taille maximale, AmigaDOS affichera une requête
'Volume VD-RAM-00 a une erreur d'écriture...' et l'integrité des fichiers
sera compromise !!!
La valeur recommandée pour la taille maximale est un quart du total de
Fast RAM.
Le paramètre HighCyl doit être une VALEUR IMPAIRE. HighCyl + 1 représente
le nombre de 'pistes virtuelles' utilisables par le RAM disque. Une piste
virtuelle a une taille de 8 Ko (16 secteurs de 512 octets).
La valeur par défaut de 63 correspond donc à une taille maximale de
(63 + 1) * 8 = 512 Ko. Pour un disque RAM de 2 Mo, vous specifierez ainsi
une valeur HighCyl de 255. La valeur maximale théoriquement possible est
65533 (correspondant à 512 Mo). Souvenez-vous que cette valeur *DOIT*
être impaire !
- Buffers : Ceci est le nombre de mémoires tampons utilisées par le système
de fichiers pour accélérer les accès disque. Pour un disque RAM, cela risque
en fait de le ralentir, donc il vaut mieux ne pas modifier cette valeur.
- BufMemType : Strictement parlant, ce paramètre indique le type de mémoire
utilisé par le système de fichiers pour ses tampons internes. Pour vdisk,
cela affecte également le type de mémoire allouée pour stocker les données.
Vous pouvez combiner differents attributs en ajoutant leurs valeurs
respectives.
Une valeur de 1 (MEMF_PUBLIC) spécifie de la mémoire publique (partagée
et non virtuelle). Ce type de mémoire est toujours utilisé.
Une valeur de 2 (MEMF_CHIP) correspond à la mémoire chip et n'est pas
recommandée.
Une valeur de 4 (MEMF_FAST) correspond à la mémoire fast.
Une valeur de 256 (MEMF_LOCAL) correspond à de la mémoire située sur
la carte mère et censée survivre à un reset. Cet attribut peut être
utile si vdisk perd son contenu après un reboot.
Une valeur de 512 (MEMF_24BITDMA) correspond à de la mémoire accessible
avec des adresses 24 bits. Mais cela ne garantit pas nécessairement de
la mémoire 16 bits.
Une valeur de 1024 (MEMF_KICK) correspond à de la mémoire accessible lors
de l'initialisation du système. Cet attribut n'est défini qu'à partir du
KickStart 3.0
La valeur par défaut est 5 qui correspond à de la mémoire fast publique.
- DosType : Le type de système de fichiers utilisé. Les valeurs possibles sont :
0x444f5300 : Old File System (Ancien système de fichiers). Lent et sans
réelle utilité vu que vdisk.device possède ses propres
sommes de contrôle.
0x444f5301 : Fast File System (Système de fichiers rapide). La valeur par
défaut.
0x444f5302 : International Old File System (Version internationale de
l'ancien système de fichiers). OS 2.1 +
0x444f5303 : International Fast File System (Version internationale du
système de fichiers rapide). OS 2.1 +
0x444f5304 : Directory Caching Old File System (Ancien système de fichiers
avec cache répertoire). OS 3.0 +
0x444f5305 : Directory Caching Fast File System (Système de fichiers rapide
avec cache répertoire). OS 3.0 +
Le mode international peut être utilisé sous AmigaDOS 2.1 et supérieur.
Le mode cache répertoire n'est pas recommandé car il ralentit les accès au
disque RAM.
- Activate : Indique à la commande mount de démarrer le périphérique immédia-
tement lorqu'il est mis à 1. S'il est mis à 0, vous devez ajouter à votre
Startup une commande qui accède au disque RAM pour le lancer réellement.
COMMANDES DE SUPPORT
CleanRamDisk :
Cette commande est utilisée pour forcer une unité vdisk à libérer la mémoire
occupée par des fichiers effacés. Elle n'est généralement pas nécessaire
lorsque le nettoyage automatique est activé.
Cette commande peut être utilisée du Workbench (sans ses options). Selectionnez
l'icône du RAM disque, puis double-cliquez sur l'icône CleanRamDisk.
Usage : CleanRamDisk DEVICE,UNIT/K/N,NOFREECHIP/S,REBUILD/S,FREEBOOT/S
DEVICE : Le nom de périphérique AmigaDOS (ex. VD0: )
UNIT : Alternative au nom de périphérique AmigaDOS. Ce mot clé permet de
spécifier le numéro d'unité. (ex. UNIT 0)
NOFREECHIP : Lorsque BufMemType vaut 1, CleanRamDisk essaie normalement de
reloger les pistes situées en mémoire Chip vers la mémoire
Fast. Cette option supprime ce comportement.
REBUILD : Lorqu'une unité de disque RAM a des erreurs de lecture (généralement
causées par un logiciel défectueux qui utilise de la mémoire qu'il
n'a pas allouée), son contenu sera perdu au prochain reboot (qui
risque alors de se produire rapidement).
Cette option force un recalcul de toutes les sommes de contrôle
internes de façon à ce que l'unité soit maintenue en vie après
réinitialisation. Les données elles-mêmes ne sont pas réparées,
mais cela permet d'en sauver une grande partie.
FREEBOOT : Si quelque chose a été ecrit dans les blocs de démarrage du
disque RAM (normalement inutilisés), la piste 0 reste vérouillée
en mémoire. Cette option marque les blocs de démarrage comme
inutilisés, de façon à pouvoir libérer la piste 0.
DeleteRamDisk :
Cette commande efface une unité de disque RAM entièrement (Comme RemRAD
pour le disque RAD). Toute la mémoire utilisée est libérée et le système
de fichiers est inhibé (Une icône VD0:BUSY apparait sur le Workbench).
Cette commande peut être appelée du Workbench. Selectionnez l'icône du
disque RAM, puis double-cliquez sur l'icône DeleteRamDisk. Une requête vous
demandera confirmation.
Vous *DEVEZ* utiliser cette commande lorsque vous changez un paramètre de
mount d'une unité active. Vous devez également effacer toutes les unités
active lorsque vous installez une nouvelle version du vdisk.device.
Usage : DeleteRamDisk DEVICE,UNIT/K/N
DEVICE : Le nom de périphérique AmigaDOS (ex. VD0: )
UNIT : Alternativement, vous pouvez indiquer le numéro d'unité (ex. UNIT 0)
VDStat :
Cette commande est utilisée pour afficher des informations sur une unité
de disque RAM dont le contenu a été perdu après un reboot. Elle est
essentiellement prévue pour des tests et n'est pas utilisable du Workbench.
L'erreur de récupération numéro 2 (Root Structure not found) apparait
toujours à la mise sous tension.
Usage : VDStat DEVICE,UNIT/K/N,FULL/S
DEVICE : Le nom de périphérique AmigaDOS (ex. VD0: )
UNIT : Alternativement, vous pouvez indiquer le numéro d'unité (ex. UNIT 0)
FULL : Cette option affiche davantage d'information. Elle est prévue pour
les tests de mise au point.
Codes d'erreurs de récupération :
1 (Deleted Unit / Unité effacée) : Cette erreur apparait après reboot lorsqu'
une unité à été effacée par la commande DeleteRamDisk.
2 (Root Structure not found / Structure racine non trouvée) : Cette erreur
apparait toujours à la mise sous tension. Elle peut également se produire
si quelque chose d'autre (comme RAD) alloue de la mémoire en ordre inverse
avant le démarrage du vdisk.device. Pour l'éviter, il faut monter une unité
vdisk avant toute unité ramdrive. D'autres possibilités sont qu'un programme
défectueux ait sauvagement ecrasé le haut de la mémoire ou que de la mémoire
non resistante au reset soit présente (voir les problêmes connus).
Cette erreur indique la perte de toutes les unités.
3 (Bad Root Structure Checksum / Somme de contrôle de la structure racine
incorrecte) : La structure racine a été endommagée par un programme
défectueux ou un problême de mémoire. Toutes les unités ont été perdues.
4 (Bad sector checksum / Somme de contrôle secteur incorrecte) : les données
ont été endommagées par un programme défectueux ou un problême de mémoire.
5 (Track not found / Piste non trouvée) : Peut se produire si la taille
maximale a été reglée à une valeur trop élevée, si la mémoire est fortement
fragmentée, ou si un programme défectueux est parti écrire n'importe où.
6 (Reallocation Failure / Echec réallocation) : Tout semble correct, mais la
mémoire n'a pu être réallouée par AllocAbs(). Cela indique un dysfonction-
nement sérieux et est accompagné d'une alerte jaune numéro $50010003.
Si vous avez accès à InterNet, envoyez-moi un rapport de bug (adresse à la
fin du fichier).
7 (Unit Structure not found / Structure Unité non trouvée) : La structure
unité a été écrasée par un programme défectueux ou un problême de mémoire.
8 (Bad Unit Structure Checksum / Somme de contrôle de structure unité incorrecte) :
La structure unité a endommagée par un programme défectueux ou un problême de
mémoire.
9 (Unknown Error / Erreur inconnue) : Comment l'avez-vous obtenue, celle-là ?
CHANGEMENTS
V 2.4 : Première version diffusée.
V 2.5 : - vdisk retente les allocations mémoires qui ont échouées avec
MEMF_PUBLIC lorsque BufMemType demandait l'allocation d'un type
de mémoire spécifique. Cela diminue les risques de voir
apparaitre des erreurs en écriture.
- Documentation en français incluse suite à de nombreuses demandes.
V 2.6 : - Le bidouillage permettant une utilisation sure de la mémoire
en $C00000 a été entièrement réécrit. Il n'y a plus de problême
de fragmentation.
- La structure racine est maintenant allouée en MEMF_KICK
(MEMF_LOCAL pour OS 2). Ceci devrait aider vdisk à survivre
au reboot sur certains systèmes avec mémoire 32 bit non
autoconfig.
- Ajout de l'option AllocRetry aux flags pour spécifier une
2ème tentative d'allocation mémoire.
- vdisk autorise maintenant un flush mémoire lorsqu'il essaie
d'allouer de la mémoire.
V 2.7 - Correction d'un bug stupide qui faisait planter les 68000 quand
un numéro d'unité impair était utilisé.
PROBLEMES CONNUS
Il semble que certaines cartes accélératrices ont de la mémoire 32 bit dont
le contenu est perdu après un reset. Ceci cause la perte des fichiers stockés
dans vdisk.
Si cela se produit, vous pouvez essayer de regler le parametre BufMemType à
1024 (pour OS 3+) ou à 256 (pour OS 2) pour empêcher vdisk d'utiliser ce
type de mémoire. N'utilisez pas non plus l'option de 2ème tentative d'allocation
mémoire dans les Flags.
POUR CONTACTER L'AUTEUR
Vous pouvez me contacter par courier electronique à l'adresse internet suivante :
vogt@mesiob.obspm.fr
Les rapports de bug doivent inclure une description complète de la configuration
matérielle et logicielle, incluant tout utilitaire tournant en tache de fond.
Etienne Vogt, 22/7/1997