Caractéristiques
From MorphOS Library
Le noyau de MorphOS est compressé et stocké à l'intérieur du fichier boot.img qui doit résider sur un support de stockage accessible par l'Open Firmware (OF). Ce fichier est chargé par HAL/OF et démarre le micronoyau Quark, ainsi qu'un certain nombre d'autres composants bas niveau nécessaire à l'OS. Le reste de l'OS est composé de fichiers, se trouvant sur le disque dur, qui sont lancés à partir de cette couche logicielle.
L'Amiga était caractérisé par les possibilités bas niveau que fournissait son micronoyau, Exec, comme le traitement multitâche préemptif, la communication inter-processus, etc... qui étaient absents sur tous les autres micro-ordinateurs populaires des années 80 (début des Mac, PC, Atari, etc...). Naturellement dans MorphOS, toutes ces caractéristiques et bien plus encore sont également fournis dans MorphOS par sa propre réimplentation de l' exec.library. En théorie, Quark est également en mesure de fournir un certain nombre de "boxes" (systèmes d'exploitation virtuels) qui peuvent être lancés indépendamment. Actuellement, deux "boxes" sont implémentés : la QBox, qui pour le moment est uniquement employée pour des processus bas niveau, et l'ABox, qui fournit une API spéciale pour les programmes et les applications. En effet, cette API est entièrement compatible avec AmigaOS 3.1 (le dernier système d'exploitation créé et distribué par Commodore pour ses ordinateurs Amiga Classiques). Elle fournit également Trance (un puissant compilateur temps réel pour les exécutables Amiga), ce qui garantit un degré élevé de compatibilité pour un grand nombre d'applications Amiga. Les opérations complexes exécutées par Trance sont instantanées et transparentes pour l'utilisateur : Trance détecte automatiquement n'importe quel exécutable Amiga, le convertit en exécutable PowerPC, et le lance dans
la foulée.
Avec la libération de MorphOS 2.0, une nouvelle gestion de la mémoire (décrit dans l'article de fond: In-depth: The New MorphOS Memory System) a été introduite. En fait, le système d'exploitation fournit maintenant une interface mémoire dynamique permettant à l'utilisateur de choisir entre le nouveau système d'allocation TLSF (Two-Level Segregate Fit) ou l'ancien Fit (utilisée par AmigaOS et les anciennes versions de MorphOS). Par rapport au système de mémoire précédent, TLSF maintient de bonnes performances indépendamment de la fragmentation mémoire, qui en outre est également maintenant réduite.
Notez cependant que la quasi-totalité du nombre énorme d'excellents jeux qui ont rendu célèbre l'Amiga vers la fin des années 80 et au début des années 90, ne fonctionnent pas directement dans l'environnement MorphOS. Les micro-ordinateurs Amiga étaient équipés de circuits intégrés graphiques et sonores propriétaires. Leurs fonctionnement sont totalement incompatibles avec un système moderne comme MorphOS, qui est en mesure de gérer les cartes graphiques 2D/3D actuelles (AGP et PCI) et les cartes sons PCI ou le système audio présent sur la carte mère. Si vous voulez jouer à de vieux jeux, c'est bien sûr possible, mais pour cela, il vous faudra utiliser UAE (Universal Amiga Emulator : l'émulateur universel Amiga), qui est également disponible pour MorphOS et qui fournit la compatibilité nécessaire. Thanks to Ambient 's configurability with regard to file recognition and the handling of executables, UAE integration into MorphOS is easily achieved, though, allowing to directly launch Amiga disk images from the desktop.
La compatibilité native de MorphOS avec les anciens logiciels Amiga à une cible différente. Les utilisateurs peuvent lancer presque toutes les applications Amiga les plus récentes et les plus avancées (celles qui sont en mesure de gérer les cartes graphiques et audios additionnelles créées pour les derniers ordinateurs Amiga Classiques). Les couches logiciels appropriées, connues connu sous le nom de CGX (CyberGraphX) et AHI (Audio Hardware Interface : interface matérielle audio) sont parfaitement intégrées dans MorphOS, ce qui permet une gestion transparente de ces cartes additionnelles.
Comme AmigaOS, MorphOS possède deux interfaces compactes, efficaces et entièrement intégrées (une Interface de Commande en Ligne "CLI" et une Interface Graphique Utilisateur "GUI") pour le shell et les applications. Pour ces dernières, MorphOS a adopté MUI (Magic User Interface), une GUI plus orientée vers la programmation objet. MUI fournit non seulement au programmeur des interactions plus sophistiquées sur la représentation d'une GUI, mais permet également aux utilisateurs de personnaliser entièrement leur interface graphique selon leurs besoins et leurs goûts personnels. En fait, MUI est l'un des composants de MorphOS les plus distinctifs, en termes de fonctionnalités et d'esthétique.
Le shell de MorphOS est un shell comparable à celui d'Unix, doté de toutes les caractéristiques que l'on peut attendre d'un tel composant : commandes AmigaDOS (la plupart semblable à Unix), variables locales et globales, substitution de commande, redirection de commande, pipes nommés et anonymes, historique, menus programmables, shells multiples dans une fenêtre, compatibilité avec la norme ANSI, sélection des couleurs, etc.... Naturellement l'ensemble des commandes incluses permet la réalisation de scripts. En conclusion : les adeptes de la ligne de commande ne seront pas déçus.
"Ambient" est basé sur "MUI", totalement asynchrone et multi-thread, c'est le bureau natif de MorphOS. Bien qu'Open Source, dans la pratique "Ambient" est un composant disponible exclusivement pour MorphOS, parce qu'il est tellement lié à "MUI" et au reste de l'OS que sa conversion sur un autre environnement serait très difficile. "Ambient" fournit un programme de gestion des icônes, un explorateur de répertoires, un utilitaire pour lancer les programmes, pour manipuler les fichiers, et tout ce qui est nécessaire pour contrôler le système. "Ambient" s'adapte aux goûts de l'utilisateur : la gestion des fichiers peut être réalisée selon un mode classique (spatial) ou en mode navigateur, en utilisant une vue par icônes ou par liste. La reconnaissance des types de fichiers est réalisée au moyen d'analyse directe des fichiers et /ou des mimetypes, mais les utilisateurs ont un contrôle total et des possibilités d'édition sur les mimetypes pour obtenir une configuration personnalisée des actions liées à ces derniers. "Ambient" permet à l'utilisateur d'exécuter facilement tout type d'activité avec les outils intégrés : utilitaire de recherche de fichiers, visualiseur de texte, visualiseur d'images, lecteur audio, moniteur système, utilitaire de formatage de disque, utilitaire de gestion des commodités, et bien plus encore... A partir des menus d'"Ambient", les utilisateurs peuvent contrôler tous les paramètres de leur environnement MorphOS, incluant les paramètres de "MUI" et du bureau lui-même.
Laissez-moi mentionner en passant que les utilisateurs ne sont pas obligés d'utiliser "Ambient". D'autres environnements de bureau communs à l'univers Amiga peuvent être lancés en même temps ou peuvent se substituer complètement à "Ambient", comme par exemple : "Directory Opus" (également disponible pour les utilisateurs PC comme un substitut à Windows Explorer), "Scalos" et même le "Workbench" des Amiga Classiques (mais ceci est réservé aux utilisateurs passionnés de "bidouilles").
Les composants de l'OS que nous venons d'aborder sont ceux que l'utilisateur voit et utilise tout le temps : leur impact visuel et leur manipulation simple ont une grande influence sur l'opinion que s'en font les utilisateurs. Les utilisateurs d'"Ambient", par exemple, peuvent choisir des thèmes graphiques différents, changeant à la volée l'aspect général de toutes les fenêtres, gadgets, et autres éléments graphiques du bureau (différents thèmes graphiques sont visibles sur les images accompagnant ce texte). De plus, d'autres logiciels systèmes se lancent de façon invisible et silencieuse, ce qui ne les empêchent pas d'être également importants puisque sans eux l'ordinateur serait inutilisable. Parmi les exemples que l'on peut citer, il y a les systèmes de fichiers (filesystems), la gestion de l'USB, les logiciels d'impression, les systèmes de scripts avancés, etc... Bien sûr tous ces composants sont présents dans MorphOS, mais seules de courtes descriptions sont données ici, la plupart du temps concernant des caractéristiques spéciales s'ajoutant à celles que les utilisateurs emploient automatiquement dans ces logiciels.
Filesystems for hard disks are very important components that must take care of precious data. MorphOS is provided with an implementation of FFS, the standard Fast File System of the Amiga, that is present mostly for compatibility reasons. SFS (Smart File System) is a much faster and more reliable filesystem, that keeps track of the last transactions before they are applied. In other terms it is a journaling-like filesystem that guarantees the integrity of the data even in the case of computer crashes during write operations. SFS has been adopted by MorphOS as its default filesystem, but MorphOS also supports other filesystems including PFS (Professional File System) available commercially for Amiga computers, the ubiquitous FAT (File Allocation Table) of MS-DOS environments, NTFS from Windows (read-only), EXT2FS and EXT3FS from Linux, SGIXFS from Silicon Graphics (read-only), Mac HFS+ (read-only) and, since the release of MorphOS 2.4 for Apple's Mac mini G4, Mac HFS. Salvage utilities are available both for SFS (SFSDoctor, included with MorphOS) and PFS (commercially available) and handle operations like retrieving deleted data, file system structure repair, and even reorganisation to decrease fragmentation. Old salvage tools for FFS can still be used as well, but they support partitions upto 4 GB in size only.
The USB stack of MorphOS is called Poseidon, and is probably the most efficient USB stack existing on every computer platform. The best description of its features is certainly given by its author, whose words are reported in the following lines: "Poseidon is a software solution that unleashes the possibilities of the Universal Serial Bus (USB) and the devices with USB interface, ranging from mice, keyboards, tablets, joysticks, printers, scanners, webcams, digicams, flash card readers, zip drives, floppy disk drives, harddisks, memory sticks, ethernet adapters, scanners and audio adapters to less common things like power supplies, GPS location devices or finger print readers. Poseidon has a modular design that fits into the AmigaOS/MorphOS environment very neatly. It is no port of an existing system (like the Linux USB stack), but has been created with the unique features of AmigaOS/MorphOS in mind, that make these operating systems so efficient." It should be added that Poseidon always tries to do its job in a completely automatic way, but in case the user needs customisation for a specific USB device, Poseidon reveals incredible configuration capabilities that allow the user to solve almost any problem.
The printing system adopted by MorphOS is TurboPrint, a licensed commercial software package also distributed in the Linux world. It allows full control of the printer and its colours (if any), and of course runs transparently for any application. TurboPrint requires an update if the user needs printer drivers for recent printers, but the upgrading package is also convenient for the presence of some useful printing utilities that are absent in MorphOS.
The advanced scripting system that characterised AmigaOS since version 2.0 is ARexx, an implementation of REXX, an interpreted, structured, high-level programming language introduced by IBM. On the Amiga almost every important application has an ARexx port that allows its (possibly full) external control by means of ARexx scripts, or even by means of ARexx commands coming from other programs. In such a way advanced users can generate and manage interactive operations among any number of independent programs, as well as totally automatic activities of each single program, by means of simple ARexx procedures (whose use and structure were fully explored during years of use in the Amiga environment). MorphOS has a native implementation of this language (except for a library that for now still has to be extracted from AmigaOS, rexxsyslib.library).