# AmigaOS

AmigaOS est le système d'exploitation natif des ordinateurs Amiga, lancé en 1984 et encore développé aujourd'hui. Il a été initialement développé pour les processeurs 680x0, puis progressivement réécrit pour les processeurs PowerPC. Dans un premier temps le système fonctionnait sur des machines bi-processeur (un 680x0 et un PowerPC). Depuis 2006 il fonctionne sur des machines équipées uniquement de processeur PowerPC telles que les AmigaOne/microAone et les Sam440/Sam460 toutefois, en 2018, la version 3.1 fonctionnant sur les processeurs Motorola est de nouveau mise à jour de façon commerciale par Hyperion Entertainment (en) qui en détient la licence.
Depuis la version 4.0, il est équipé d'un émulateur qui permet de faire fonctionner les anciens programmes écrits pour les processeurs 680x0 (machines désormais appelées "Amiga classic") sur des machines PowerPC.
AmigaOS a en partie inspiré le système d'exploitation expérimental AtheOS (maintenant Syllable) ainsi que BeOS parfois surnommé AmigaOS 95. Le système Windows emprunte aussi certaines idées d'AmigaOS.

## Histoire

Le développement d'AmigaOS a commencé en 1982. La startup Amiga Inc prépare le prototype Lorraine, présenté au Consumer Electronic Show de 1983. Cette startup est rachetée par Commodore l'année suivante et le fruit de ce prototype est commercialisé dès 1984 - l'Amiga 1000.
Dès ses débuts, une des qualités les plus mise en avant des Amiga, outre leur matériel hors du commun, était leur aisance à exécuter plusieurs applications simultanément. Or cette capacité est apportée par son système d'exploitation.
Dans les années 80 les systèmes d'exploitation pour micro ordinateur étaient un triangle de un: un seul utilisateur exécute un seul programme sur un seul ordinateur. AmigaOS, dès le début, apporte une interface graphique, et le multitâche préemptif qui permet d'exécuter simultanément autant de programmes que la mémoire et le processeur permettent.
Dans les années 1980, les ordinateurs personnels n'avaient souvent comme unique périphérique de stockage un lecteur de disquette ou de cassette. Le Commodore 64, par exemple, n'avait de base aucun périphérique de stockage. Si le système d'exploitation avait été placé sur une disquette, il aurait pris une place non négligeable et le démarrage de l'ordinateur aurait pris du temps. C'est pour ces raisons que les composants principaux d'AmigaOS sont enregistrés dans une puce de mémoire morte dans l'ordinateur.
Alors que Jay Miner est cité à l'unanimité comme étant le père du hardware de l'Amiga, il n'existe pas de père unanimement reconnu du software. Les noms souvent cités sont Bob Pariseau - le team lead, et Carl Sassenrath - le développeur.
Le système d'exploitation de l'Amiga a été tout d'abord développé sur un ordinateur SAGE IV. Cet ordinateur est équipé d'un processeur Motorola 68000, et d'un système d'exploitation Unix - qui a également servi de source d'inspiration pour Amiga OS. Le logiciel compilé sur le SAGE IV est ensuite copié sur le Lorraine via un câble.
En 2004, 20 ans après sa sortie, des utilisateurs continuent de se servir des Amiga en raison de son élégant système d'exploitation. La version 4.0, lancée en 2004 par Hyperion Entertainment ne supporte plus le chipset initial de l'Amiga, et est prévu pour fonctionner sur des processeurs PowerPC. AROS et MorphOS sont deux systèmes d'exploitation clone d'AmigaOS, fonctionnant sur du matériel récent.

## Composition

AmigaOS est un des premiers systèmes d'exploitation en construction microkernel. Il contient une pile de bibliothèques logicielles avec lesquelles les programmes peuvent demander des services au système d'exploitation. Sa construction lui donne les caractéristiques d'un système d'exploitation temps réel et permet aux logiciels applicatifs de mettre en œuvre des fonctionnalités qui incombent au système d'exploitation tels que la connexion aux réseaux ou la mémoire virtuelle.
Entre 1984 et 2011 l'AmigaOS a subi trois re-écritures majeures, mais sa composition générale n'a pas changé:
* Exec est le kernel d'AmigaOS, qui apporte les services élémentaires de manipulation des processus et de la mémoire ;
* graphics.library offre des fonctions qui permettent d'afficher des images et des animations ;
* au-dessus se trouve intuition.library, qui permet de construire des interfaces graphiques et se sert de graphics.library ;
* AmigaDOS est le composant d'AmigaOS qui s'occupe des disques et des entrées/sorties ;
* Fast File System (en) est le système de fichiers natif. AmigaOS peut aussi lire et écrire des mémoires de masse au format FAT, Ext2 ou HFS ainsi que des CD-ROM ;
* au-dessus de ces bibliothèques se trouve Workbench, le logiciel qui permet à l'utilisateur de lancer des programmes ou modifier la configuration. Workbench fait une métaphore d'un établi (workbench signifie établi) ;
* en plus de Workbench, les utilisateurs peuvent également se servir de l'interface en ligne de commande d'AmigaOS: le CLI.

### AmigaDOS

Au lieu d'AmigaDOS, le système d'exploitation devait contenir un composant nommé CAOS, mais à la suite de disputes durant son développement, le projet a été abandonné. Commodore, sous la pression des délais, s'est tourné vers TripOS, un système d'exploitation développé par MetaComCo, pour le processeur Motorola 68000 : beaucoup de pièces de TripOS ont été réutilisées et adaptées pour obtenir AmigaDOS.

### Workbench

Dans les médias, Workbench — l'environnement de bureau d'AmigaOS — a souvent été comparé à celui d'Apple, il est cependant inspiré principalement par Sun, et se distingue par le fait qu'il s'utilise avec une souris à deux boutons.

### ROM Kickstart

Pour des raisons de commodité, les composants principaux d'AmigaOS sont enregistrés dans une puce de mémoire morte dans l'ordinateur — le Kickstart, de 256 ou 512 Ko. Cette puce contient Exec, graphics.library, intuition.library, le cœur de AmigaDOS et du Workbench.

### Disquette de démarrage - Workbench disk

Le système d'exploitation est amorcé à l'aide d'une disquette ou d'un disque dur. La disquette amorce standard Workbench disk lance automatiquement l'environnement graphique : le Workbench. Cette disquette contient des bibliothèques accessoires, telles que translation.library, ainsi que des utilitaires, parmi eux l'interpréteur de commande CLI et le langage de script ARexx, une adaptation du langage REXX de IBM.
Une disquette de démarrage peut ne pas se servir du tout d'AmigaOS et utiliser directement le matériel — de nombreux jeux vidéo le font. Il peut également lancer un autre système d'exploitation, comme Linux.
Jusqu'à la version 3.5, AmigaOS ne contient aucun programme pour la connexion aux réseaux informatiques et celle-ci se fait à l'aide de logiciels tiers du commerce.
Sur ordinateurs Amiga Classic, chaque version de Kickstart est liée à une version particulière du système d'exploitation de l'Amiga, ainsi les utilisateurs devraient uniquement utiliser le Workbench 1.3 sur une machine avec une ROM du Kickstart 1.3. Il est possible d'utiliser des versions différentes (Le Workbench 3.1 fonctionnera avec le Kickstart 3.0, mais avec quelques problèmes). La seule exception est le Workbench 2.1, qui était une mise à jour logicielle basée sur le Kickstart 2.04. Aussi, les dernières versions du Workbench, 3.5 et 3.9, utilisent le Kickstart 3.1, la mise à jour de la ROM se faisant logiciellement au moment où le système démarre.
Sur ordinateurs Amiga dits « nouvelle génération » (AmigaOne, Sam440, Sam460, etc.), le kickstart et le workbench ont la même version.

### Exec - le Kernel

Exec est le kernel d'AmigaOS, qui apporte les services élémentaires de manipulation des processus et de la mémoire. D'autres services du système d'exploitation sont apportés par des processus et des bibliothèques.

#### Processus

Dans AmigaOS chaque programme en cours d'exécution est une tâche. Les tâches sont exécutées à tour de rôle en fonction de priorités — les tâches prioritaires en premier. Une tâche peut être un logiciel applicatif ou un programme système : dans AmigaOS pour chaque disque dur il y a une tâche qui s'occupe des lectures et écritures. Les différentes tâches s'échangent des messages, et, en condition ordinaire, la grande majorité des tâches sont en attente de message ou d'événement. Les priorités sont comprises entre -127 et 127. La priorité usuelle des applications est de zéro ; les programmes système ont une priorité de 5, 10 ou 15, et une application gourmande en calcul, comme un moteur de rendu 3D, aura une priorité négative.

#### Mémoire

Dans la mémoire des Amiga, une seule adresse contient toujours la même information. La mémoire est réservée par Exec en fonction des besoins du système d'exploitation et des applications. Lorsqu'un programme démarre, Exec réserve la mémoire pour le contenir, puis libère cette mémoire lorsque le programme a terminé. Le programme peut également réserver de la mémoire pour ses besoins, en le demandant à Exec. Il est responsable de libérer la mémoire avant de s'arrêter.

### Kickstart

Kickstart est le nom donné à la ROM qui contient les composants essentiels d'AmigaOS. Sur l'Amiga 1000, celle-ci devait être chargée à partir d'une disquette, alors que plus tard, les Kickstarts furent en ROM dans l'ordinateur.
Le Kickstart contient les parties principales du système d'exploitation, telles qu'Intuition (les bibliothèques graphiques de l'interface utilisateur Amiga), Exec (le noyau multitâches), AmigaDOS (les bibliothèques de manipulation de disque).
Les versions ultérieures du Kickstart contenaient les pilotes des contrôleurs IDE et SCSI, des ports PCMCIA et divers autres matériels qui étaient inclus dans les Amigas.
Grâce à des constructeurs de périphériques, il est possible d'avoir deux versions ou plus de Kickstart dans une machine, sélectionnables par un interrupteur ou un raccourci clavier quand vous mettez la machine en marche.
Avec un logiciel tiers, il est possible d'avoir un kickstart différent chargé dans la RAM, et de l'utiliser au lieu de la ROM, par exemple Kickstart 1.3 peut être chargé afin d'exécuter de vieux jeux incompatibles avec les Kickstart 2.0 et plus. Ces programmes s'appellent des Softkickers.

### Workbench

Le Workbench est l'environnement de bureau d'origine pour l'Amiga. Le nom utilise la métaphore de l'établi (workbench en anglais). Les répertoires sont dépeints comme des tiroirs, les fichiers exécutables sont dépeints comme des outils et les fichiers de données sont dépeints comme des projets. La plupart des applications Amiga ont des menus déroulants commençant par « Projet éditer... » au lieu du « Fichier éditer... » typique des autres plateformes.
Une caractéristique unique du Workbench est les écrans multiples. Ils sont quelque peu semblables aux bureaux virtuels du système de fenêtre X Window, mais sont produits dynamiquement par les applications selon les besoins. Chaque écran peut avoir une résolution et une profondeur de couleurs différentes. Une icône dans le coin en haut à droite de l'écran permet de cycler les écrans - Comme l'OS stocke tous les écrans simultanément dans la mémoire, le rafraîchissement est instantané. Ces écrans peuvent également être déplacés de haut en bas par leurs barres de titre. (la fonctionnalité de déplacer les écrans est propre au chipset de l'Amiga, et elle n'est plus disponible sur les systèmes qui fonctionnent avec une carte graphique récente.)
Certaines applications comme Deluxe Paint proposaient de fermer le Workbench pour récupérer un peu de mémoire pour travailler - dans les années 90 la RAM était une denrée peu abordable, disposer d'une mémoire de quelques MégaOctets était un luxe - toutefois si l'application démarrée ne permet pas de revenir vers un shell ou d'ouvrir le Workbench à sa sortie la machine devra alors être redémarrée pour pouvoir faire autre chose. Cependant le fait de ne pas lancer le Workbench ne nuit en rien aux fonctionnalités de l'OS (i.e. il est possible de tout faire depuis le Shell obtenu lorsque l'on boot sans ouvrir le Workbench).
AmigaOS jusqu'à la version 3.1 n'utilise aucune couche logicielle pour utiliser des fonctions graphiques ou audio additionnelles. Les nouvelles versions d'AmigaOS tiennent compte de matériels graphiques autre que le chipset d'origine, mais n'incluent aucun pilote. Il faut utiliser le pilote fourni par le constructeur du matériel additionnel. Les progiciels communs pour une solution graphique sont EGS, Picasso96 et Cybergraphics. Pour la couche sonore, AHI, un système de pilotes gratuits, est largement utilisé.
À partir de l'AmigaOS 3.5, certaines de ces solutions sont livrées d'office.

## Limitations techniques

Selon les Amiga ROM Kernel Reference Manuals, la référence technique officielle de l'Amiga : la génération actuelle d'Amiga n'a pas de protection de mémoire, et donc rien n'interdit à un programme d'accéder à des emplacements de mémoire qui ne lui appartiennent pas. Une tâche en déroute peut mettre en panne une autre tâche en modifiant accidentellement son code ou ses données ; elle peut également mettre en panne le système d'exploitation et provoquer des messages guru meditation (voir plus loin).
Les fuites de mémoire sont des incidents courants sur AmigaOS parce que seule la tâche qui réserve de la mémoire peut la libérer. Dans les systèmes d'exploitation plus récents le kernel libère automatiquement la mémoire de la tâche lorsqu'elle s'arrête, notamment en cas de plantage.
Selon le Amiga Hardware Reference Manual, le fait qu'un logiciel applicatif exploite directement le matériel de l'Amiga n'est pas interdit, mais fortement déconseillé par ces deux phrases « Pour assurer un maximum de compatibilité en avant il est fortement conseillé de se servir des commandes et des fonctions d'AmigaOS » et « s'il est nécessaire d'exploiter directement le hardware il est de votre responsabilité d'assurer que ça fonctionne sur les différents modèles et les différentes configurations ».

### Guru meditation

Guru Meditation est le message de plantage système d'AmigaOS. Ce message était initialement destiné aux ingénieurs de l'Amiga, et les invite à jouer pour oublier un événement fâcheux. Il fait référence au jeu du même nom qui consiste à rester immobile en position de méditation zen sur une planche équipée de senseurs de mouvements.

## Versions

| Version | Date | Machines | Développeur |
| 1.1 | Novembre 1985 | Amiga 1000 | Commodore |
| 1.2 | Octobre 1986 | | Commodore |
| 1.3 | Octobre 1987 | Amiga 500 et Amiga 2000 | Commodore |
| 2.0 | Juin 1990 | Amiga 3000 | Commodore |
| 2.04 | Mai 1991 | Amiga 3000 Tower | Commodore |
| 2.04 | Octobre 1991 | Amiga 500+ (Amiga 2000) | Commodore |
| 2.05 | Juillet 1992 | Amiga 600 | Commodore |
| 3.0 | août 1992 | Amiga 1200 et Amiga 4000 | Commodore |
| 3.1 | Juillet 1993 | Amiga CD32 | Commodore (dernière version avant la faillite) |
| 3.5 | août 1999 | | Haage And Partner |
| 3.9 | Décembre 2000 | | Haage And Partner |
| 3.9 + BOING BAG 2 | 2002 | | Haage And Partner |
| 3.1.4 | Juillet 2019 | Ancien modele et nouveau modele compatible amigaos 3.1 (amiga 1200 / 4000) | Hyperion Entertainment |
| 3.2 | Mai 2021 | Anciens modeles et nouveaux modeles (ordi. vampire) avec ameliorations par rapport a l ancien 3.1 (bugs corriges sur la 3.2.1) | Hyperion Entertainment |
| 4.0 | Novembre 2007 | Amiga NG : moderne (nouvelle generation) | Hyperion Entertainment |
| 4.1 FINAL EDITION | Mai 2015 | AmigaOne/MicroA1,Sam440, Sam460, Pegasos2 | Hyperion Entertainment |

### Versions 1.x

Les versions 1.x sont les premières implémentation d'AmigaOS. Elles sont par défaut colorées en bleu et orange (couleurs qui pouvaient être facilement changées par l'utilisateur). Les versions 1.2 et 1.3 étaient les premières versions disponibles en ROM (permettant leur utilisation sur des modèles ayant le kickstart dans la ROM) mais étaient encore disponibles sur des disquettes pour l'Amiga 1000. Ces versions sont celle de la ROM de l'A500, l'A1500, le CDTV (1.3 seulement) et l'A2000.
La version 1.1 était principalement une correction de bogues. Les versions 1.0, sortie en 1985 et 1.1 ont été distribuées seulement sur disquettes pour l'Amiga 1000.
La version 1.2 du Kickstart a corrigé beaucoup de bogues, améliorant considérablement la stabilité du système, et ajoutait le support d'AutoConfig qui pouvait configurer automatiquement les cartes d'extension.
La version 1.3 eut peu de changements dans le Kickstart (fixant principalement un bogue pour laisser démarrer sur des disques durs) mais eu beaucoup plus de changements dans le Workbench, comprenant un système de fichiers beaucoup plus rapide pour les disques durs, un CLI amélioré, et des pilotes supplémentaire.
Kickstart/Workbench 1.4 était une version bêta de la toute prochaine mise à jour de la version 2.0, mais elle a été livrée en très petite quantité avec les premiers Amiga 3000.

### Versions 2.x

AmigaOS 2.0, sorti en 1990, fut une avancée principale au système d'exploitation Amiga. Fini le bleu et orange dur, remplacé par des couleurs plus agréables à l'œil, le gris et bleu-clair. Le Workbench n'était plus lié aux modes d'affichage 640x256 (PAL) ou 640x200 (NTSC), et une grande partie du système a été amélioré pour faciliter de futures extensions.
Malheureusement, 2.x présenta quelques incompatibilités avec de vieux logiciels mal écrits, et bon nombre de gens furent dérangés par cette mise à jour.
2.x était livré avec les A500+ (2.04), A600 (2.05), A3000 et A3000T.
Le Workbench 2.1 était le dernier de cette série, et fut seulement livré comme mise à jour sur disquette. Il incluait des programmes utiles tels que CrossDOS, pour travailler avec des disquettes au format FAT. En d'autres termes, il n'y avait aucune ROM Kickstart 2.1.

### Versions 3.x

3.x était une autre mise à jour importante.
Cette mise à jour inclut :
* un système de données universel, connu sous le nom de datatypes, qui permet à des programmes de charger des images, sons et textes dans des formats qu'ils ne comprennent pas directement, grâce à l'utilisation d'entrées standards ;
* support des cartes PCMCIA ;
* réarrangement des couleurs pour des modes d'affichage en faibles couleurs ;
* aspect visuel amélioré ;
* amélioration des images de fond.
3.x était livré avec le CD32, l'A1200, l'A4000 et l'A4000T.

### Versions 3.5 à 3.9

Après la cession de Commodore International, les propriétaires de la marque déposée Amiga ont accordé un permis à une compagnie allemande appelée Haage & Partner pour mettre à jour le système d'exploitation de l'Amiga. Avec cette mise à jour (3.5) est venu un changement dans la manière de se référer au système d'exploitation. Plutôt que d'indiquer le « Kickstart », ou « Workbench, », les mises à jour furent le plus souvent désignées sous le nom de « AmigaOS. »
Mises à jour incluses :
* utilisation de CD filesystem comme standard ;
* distribution sur CD au lieu de disquettes ;
* fourni avec une pile TCP/IP, un navigateur web, et un client de messagerie ;
* interface graphique améliorée, appelée le « ReAction » ;
* lecteur de films AVI/MPEG ;
* support des disques durs de plus de 4 Go (une limitation du 1.x) ;
* documentation en HTML ;
* lecteur audio de MP3 et de CD (OS3.9) ;
* programme de dock ;
* workbench amélioré.

### Version 4

Une nouvelle version d'AmigaOS est développée par Hyperion Entertainment sous licence d'Amiga, Inc. La version 4.1 est une mise à jour importante dix ans après la dernière mise à jour officielle : ce saut est comparable à celui fait par Microsoft, lors du passage de Windows 3.1 à Windows 95. Elle a été annoncée disponible le 24 décembre 2006 sur le site de Hyperion Entertainment.
Cette nouvelle version du système est entièrement (99 % ?) en code PowerPC. Elle contient un émulateur permettant d'exécuter du code 68 k. Cela permet d'utiliser de nombreux logiciels développés pour les versions antérieures du système.