|
||||||||||||||||||||||||||||||||||||||||||||
|
La version 3.0 du système d'exploitation de l'Amiga, appelé AmigaOS 3.0 (parfois aussi Workbench 3.0), est apparue avec l'Amiga 4000 en septembre 1992. Elle est fournie sur six disquettes (Install, Amiga Workbench, Amiga Extras, Amiga Fonts, Locale et Storage) et est accompagnée d'un manuel (Workbench 3.0 User's Guide). Le système d'exploitation est aussi composée d'une ROM Kickstart 3.0 (la disquette Workbench 3.0 ne fonctionne pas avec le Kickstart 2.0) qui intègre des éléments de base du système comme le noyau Exec, les pilotes bas niveau, la police Topaz, etc. Dans l'article sur l'Amiga 1200, je vous laissais entendre que le système 3.0 était un "bon système", sans plus de détails... Mais beaucoup se demandent sans doute qu'est-ce qu'il apporte de plus par rapport au 2.1, hormis bien sûr la prise en compte des nouveaux modes graphiques du jeu de composants AGA. Voici donc une description partielle des nouvelles fonctions du système 3.0. Menu de démarrage AmigaOS 3.0 dispose d'un menu de démarrage revu. Si l'écran de départ n'a pas bougé (la version de la ROM passe à 3.00 v39.106), ce n'est pas le cas des autres écrans. On peut en effet, après avoir appuyé sur les deux boutons de la souris, entrer dans des écrans de paramétrages pour l'affichage (PAL, NTSC, mode original, enhanced...), pour les caches du processeur ou bien la sélection du périphérique de démarrage. Il y a même un écran pour diagnostiquer les cartes d'extension (afin de voir si elles sont reconnues par la machine). Workbench La barre de menu du Workbench est à présent en noir sur fond blanc (au lieu de gris sur fond noir dans le 2.x) avec un effet de relief. On peut également définir des motifs de taille quelconque, ce qui signifie qu'il est possible d'avoir une image complète comme fond d'écran du Workbench. Fond d'écran sur AmigaOS 3.0 Fenêtre "Information" Système de fichiers Voilà un domaine qui bénéficie d'une énorme amélioration avec le "Directory caching" (cache de répertoire) du système de fichiers FFS. En clair, les informations retournées par les fonctions ExNext() et ExAll() sont placées dans des secteurs spéciaux, réduisant considérablement le temps des accès disque. Ainsi, les répertoires des disquettes peuvent être presque aussi rapides qu'avec un disque dur ! De plus, ces blocs permettent de mieux récupérer la structure d'un disque en cas d'erreur (il existe d'ailleurs, dans le commerce, un nouvel utilitaire pour réparer les disques : DiskSalv). Par contre, il y a un ralentissement dans la création des fichiers (d'environ 30%), car il faut mettre à jour ces blocs spéciaux. Le cache de répertoire est une option supplémentaire que l'on peut activer au formatage d'un disque. Formatage d'un disque La datatypes.library est une nouvelle bibliothèque qui est utilisée par l'utilitaire MultiView pour la reconnaissance de plusieurs types de fichiers. MultiView permet l'affichage de fichiers textes ou d'images ILBM. En rajoutant d'autres types de fichiers dans le répertoire Devs/Datatypes, on pourra visionner des ANIM, voir des images GIF ou JPEG, etc. et ceci de façon transparente ! Multiview en train de lire un fichier ".guide" Outre la gestion des modes graphiques AGA, cette bibliothèque introduit pour la première fois sur Amiga le "double buffering" alias double tampon mémoire. Ainsi, avec deux tampons mémoire différents pour manipuler les graphismes, les affichages et les animations sont maintenant beaucoup plus fluides (synchronisation à la trame) et plus rapides. Autre grande nouveauté : la gestion de la palette de couleurs. Chaque couleur est à présent codée sur un mot long de 32 bits, avec 24 bits RVB plus un bit de transparence, et surtout, une même palette peut être partagée par plusieurs applications. Ainsi, les applications peuvent maintenant recalculer dynamiquement la palette d'une image pour qu'elle "colle" au mieux à la palette du Workbench ! Il y a 256 couleurs dans une palette, ce qui permet à plusieurs programmes tournant sur le même écran, de partager efficacement la palette. Deux nouvelles fonctions, Get() et Set(), permettent d'accéder de façon transparente à divers champs de la structure RastPort, de manière à faciliter la gestion de futurs modes graphiques, tels que le True Color. La nouvelle fonction AllocBitMap() permet maintenant d'allouer plus de 8 plans graphiques, ou d'allouer un bitmap comme étant "identique" à un autre, ce qui accélère les opérations du Blitter de l'un vers l'autre. La taille de la structure BitMap risque de changer dans les futures versions du système, et Commodore conseille fortement d'utiliser dès maintenant les fonctions AllocBitMap() et FreeBitMap(). La gestion des sprites a aussi évolué. Elle tient compte à présent des sprites AGA : 64 pixels de large, résolution quelconque. Ainsi, la position d'un sprite n'est plus arrondie à une position basse résolution. Le système gère aussi les écrans de manière différente (interleaved screens), ce qui améliore la vitesse et le rendu. En particulier, le "flash" à l'ouverture/fermeture d'une fenêtre a disparu. Enfin, plusieurs fonctions ont été optimisées, comme RectFill() ou WritePixel(). Intuition La gestion du pointeur a été entièrement repensée, afin de pouvoir gérer les nouveaux sprites AGA. Ainsi, les applications peuvent disposer d'un pointeur très précis et plus joli. Intuition gère aussi un pointeur "busy" (pointeur d'attente) standard, qui peut être redéfini dans les préférences. Création de pointeurs de souris Gestion de la palette de couleur Un système d'aide est prévu pour les gadgets. Si la souris passe sur un gadget dont le bit GMORE_GADGETHELP est positionné, un message spécial est envoyé par Intuition. La nouvelle fonction HelpControl() permet d'initialiser une aide. Par exemple, un gadget peut changer de forme ou de texte lorsque la souris se déplace jusqu'à lui, fournissant une aide immédiate et d'une grande souplesse ! Intuition propose à présent une nouvelle variété d'événements, de manière à gérer correctement les tablettes graphiques (pression du stylo, position plus précise, etc.). IControl permet maintenant, via l'option "promotion", de forcer le moniteur par défaut en Double PAL ou Double NTSC. Une application qui demande des informations sur le moniteur par défaut pourra ainsi être automatiquement placée en mode promotion, et sera donc désentrelacée. IControl, contrôle d'Intuition Gadtools Plusieurs modifications ont eu lieu dans cette bibliothèque. En particulier, diverses optimisations sur la gestion des gadgets, la gestion des polices proportionnelles et des boutons "radio" et "checkmark" de taille quelconque. Layers Cette bibliothèque a subi de profondes modifications. Le détourage a été optimisé, ce qui accélère considérablement l'affichage. En particulier, chaque pixel n'est affiché qu'une seule fois et seulement lorsque c'est strictement nécessaire. Exec Exec, noyau du système, a subi plusieurs modifications et optimisations. Il existe maintenant un "low-memory handler", qui permet à une application de libérer suffisamment de mémoire pour qu'une allocation puisse être satisfaite. De plus, Ramlib ne rectifie plus AllocMem(), ce qui améliore la vitesse des allocations. Le plus important est l'introduction de l'allocation mémoire groupée (pooled memory allocation). Ce système génial permet de regrouper toutes les allocations mémoire d'une tâche dans une même zone mémoire. Ceci accélère considérablement le mécanisme d'allocation/libération et évite la fragmentation. Toutes les allocations regroupées dans un "pool" (fonction AllocPooled()...) peuvent être libérées avec un seul appel (fonction FreePooled()...). Dans mon article sur Exec, je vous disais que l'allocation mémoire de l'Amiga avait besoin d'évoluer ; il semble que les concepteurs du système avaient déjà pris conscience de ce problème ! Les alertes système peuvent maintenant s'afficher pendant un certain délai, puis disparaître toutes seules. Enfin, ROMWack a été remplacé par SAD (Simple Amiga Debugger) qui propose des fonctions puissantes pour déboguer à partir d'un terminal branché sur le port série. SAD se termine automatiquement si aucun terminal n'est connecté à l'Amiga, permettant ainsi au système de continuer. Conclusion Commodore a choisi de faire évoluer son système en douceur. La plupart des améliorations ont été conçues en tenant compte des futurs circuits, sans pour autant proposer des changements trop importants, qui auraient généré de nombreux problèmes. Des optimisations indispensables ont été faites (au niveau de la gestion des fichiers ou de la mémoire) et des bogues ont été corrigés. Tout ceci devrait également permettre au système d'évoluer progressivement vers une approche "multimédia"...
|