AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions, after Commodore's demise, were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent AmigaOS 4-release.
AmigaOS is a single-user operating system based on a preemptive multitasking kernel, called Exec. It includes an abstraction of the Amiga's hardware, a disk operating system called AmigaDOS, a windowing system API called Intuition, and a desktop environment and file manager called Workbench.
MorphOS and AROS Research Operating System are modern implementations of the original AmigaOS that are compatible with it.
Legal situation
The Amiga intellectual property is fragmented between Amiga Inc., Cloanto, and Hyperion Entertainment. The copyrights for works created up to 1993 are owned by Cloanto.In 2001, Amiga Inc. contracted AmigaOS 4 development to Hyperion Entertainment, and in a settlement in 2009 they granted Hyperion an exclusive, perpetual, worldwide license to AmigaOS 3.1 in order to develop and market AmigaOS 4 and subsequent versions.
AmigaOS variants
Since the official release of AmigaOS 4 in 2004, there are two concurrently existing variants of the Amiga OS:Amiga equipped with various PowerPC processors
The variant of AmigaOS 4 from 2006 and all v4.x follow-up versions developed by the Belgian software company Hyperion Entertainment as official licensed contract-work of Amiga Incorporated at that time, are exclusively for classical Amiga-computer equipped with microprocessor-accelerators, which have to be based upon the PowerPC-architecture only.So-called Turbo-cards as CPU-accelerators or more advanced variants of Motorola's m68k-line, are not sufficient to run AmigaOS 4, as it in fact needs a PowerPC-based to function. AmigaOS 4 is thus effectively PPC-only.
Amiga equipped with various m68k-processors
The former OS-line of the classical Amiga OS up until the last official release of Amiga OS v3.1 by Commodore International itself, the licensed commissioned works from German software-company Haage & Partner as AmigaOS 3.5 in 1999 and 3.9 in 2000 respectively, as well as the most recent v3.1.4–3.2 updates of the original main-line by Hyperion Entertainment, are generally exclusively for all former Amiga computers such as the original A1000, A500, A600, A1200, A2000, A2500, A3000 or the A4000 with their Motorola-based m68k-processors.AmigaOS 3.5/3.9 from Haage & Partner, require the Amiga to have at a minimum the Motorola M68020-processor to be shipped with. This is the case with the Amiga A1200, A3000/T/UX or the A4000/T as shipped. Alternatively, the model could come originally equipped with a given original Commodore accelerator-card installed. This is the case with the A2500/20/UX, or with original yet retro-fitted A2000s, which have the respective accelerator-cards from Commodore within the CPU-slot installed as an CPU-upgrade to the original hardware
Also based upon the original source-code of Commodore's AmigaOS v3.1, the updates of AmigaOS v3.1.4 in 2018 and v3.2 in 2021 also updated the Kickstart was optionally shipped with physical hardware-roms to be installed into the hardware.
The last version of AmigaOS for classic m68k-equipped Amiga-computers, is thus either Amiga 3.5/3.9 from Haage & Partner or the updates of the original AmigaOS with v3.1.4/v3.2 by Hyperion Entertainment.
Components
AmigaOS is a single-user operating system based on a preemptive multitasking kernel, called Exec. AmigaOS provides an abstraction of the Amiga's hardware, a disk operating system called AmigaDOS, a windowing system API called Intuition and a desktop file manager called Workbench.A command-line interface, called AmigaShell, is also integrated into the system, though it also is entirely window-based. The CLI and Workbench components share the same privileges. Notably, AmigaOS lacks any built-in memory protection.
AmigaOS is formed from two parts, namely, a firmware component called Kickstart and a software portion usually referred to as Workbench. Up until AmigaOS 3.1, matching versions of Kickstart and Workbench were typically released together. However, since AmigaOS 3.5, the first release after Commodore's demise, only the software component has been updated and the need of Kickstarts being replaced in hardware has been diminished somewhat – Firmware updates may be applied by patching using the Amiga's
SetPatch-command, which patches the Kickstart with newer revisions at runtime during system boot. That was until 2018 when Hyperion Entertainment released AmigaOS 3.1.4 with an updated Kickstart ROM to go with it.Firmware and bootloader
Kickstart is the bootstrap firmware, usually stored in ROM. Kickstart contains the code needed to boot standard Amiga hardware and many of the core components of AmigaOS. The function of Kickstart is comparable to the BIOS plus the main operating system kernel in IBM PC compatibles. However, Kickstart provides more functionality available at boot time than would typically be expected on PC, for example, the full windowing environment.Kickstart contains many core parts of the Amiga's operating system, such as Exec, Intuition, the core of AmigaDOS and functionality to initialize Autoconfig-compliant expansion hardware. Later versions of the Kickstart contained drivers for IDE and SCSI controllers, PC card ports and other built-in hardware.
Upon start-up or reset the Kickstart performs a number of diagnostic and system checks and then initializes the Amiga chipset and some core OS components. It will then examine connected boot devices and attempt to boot from the one with the highest boot priority. If no boot device is present a screen will be displayed asking the user to insert a boot disk, typically a floppy disk.
At start-up Kickstart attempts to boot from a bootable device. In the case of a floppy, the system reads the first two sectors of the disk, and executes any boot instructions stored there. Normally this code passes control back to the OS and using the disk as the system boot volume. Any such disk, regardless of the other contents of the disk, was referred to as a "boot disk" or "bootable disk". A bootblock could be added to a blank disk by use of the
install command. Some games and demos on floppy disk used custom bootblocks, which allowed them to take over the boot sequence and manage the Amiga's hardware without AmigaOS.The bootblock became an obvious target for virus writers. Some games or demos that used a custom bootblock would not work if infected with a bootblock virus, as the code of the virus replaced the original. The first such virus was the SCA virus. Anti-virus attempts included custom bootblocks.
These amended bootblock advertised the presence of the virus checker while checking the system for tell-tale signs of memory-resident viruses and then passed control back to the system. Unfortunately these could not be used on disks that already relied on a custom bootblock, but did alert users to potential trouble. Several of them also replicated themselves across other disks, becoming little more than viruses in their own right.
Kernel
Exec is the multi-tasking kernel of AmigaOS. Exec provides functionality for multi-tasking, memory allocation, interrupt handling and handling of dynamic shared libraries. It acts as a scheduler for tasks running on the system, providing pre-emptive multitasking with prioritized round-robin scheduling.Exec also provides access to other libraries and high-level inter-process communication via message passing. Other comparable microkernels have had performance problems because of the need to copy messages between address spaces. Since the Amiga has only one address space, Exec message passing is quite efficient.
AmigaDOS
AmigaDOS' provides the disk operating system portion of the AmigaOS. This includes file systems, file and directory manipulation, the command-line interface, file redirection, console windows, and so on. Its interfaces offer facilities such as command redirection, piping, scripting with structured programming primitives, and a system of global and local variables.In AmigaOS 1.x, the AmigaDOS portion was based on TRIPOS, which is written in BCPL. Interfacing with it from other languages proved a difficult and error-prone task, and the port of TRIPOS was not very efficient.
From AmigaOS 2.x onwards, AmigaDOS was rewritten in C and Assembler, retaining 1.x BCPL program compatibility, and it incorporated parts of the third-party AmigaDOS Resource Project, which had already written replacements for many of the BCPL utilities and interfaces.
ARP also provided one of the first standardized file requesters for the Amiga, and introduced the use of more friendly UNIX-style wildcard functions in command-line parameters. Other innovations were an improvement in the range of date formats accepted by commands and the facility to make a command resident, so that it only needs to be loaded into memory once and remains in memory to reduce the cost of loading in subsequent uses.
In AmigaOS 4.0, the DOS abandoned the BCPL legacy completely and, starting from AmigaOS 4.1, it has been rewritten with full 64-bit support.
File extensions are often used in AmigaOS, but they are not mandatory and they are not handled specially by the DOS, being instead just a conventional part of the file names. Executable programs are recognized using a magic number.
Graphical user interface
The native Amiga windowing system is called Intuition, which handles input from the keyboard and mouse and rendering of screens, windows and widgets.Prior to AmigaOS 2.0, there was no standardized look and feel, application developers had to write their own non-standard widgets. Commodore added the GadTools library and BOOPSI in AmigaOS 2.0, both of which provided standardized widgets. Commodore also published the Amiga User Interface Style Guide, which explained how applications should be laid out for consistency. Stefan Stuntz created a popular third-party widget library, based on BOOPSI, called Magic User Interface, or MUI. MorphOS uses MUI as its official toolkit, while AROS uses a MUI clone called Zune. AmigaOS 3.5 added another widget set, ReAction, also based on BOOPSI.
An unusual feature of AmigaOS is the use of multiple screens shown on the same display. Each screen may have a different video resolution or color depth. AmigaOS 2.0 added support for public screens, allowing applications to open windows on other applications' screens. Prior to AmigaOS 2.0, only the Workbench screen was shared. A widget in the top-right corner of every screen allows screens to be cycled through. Screens can be overlaid by dragging each up or down by their title bars. AmigaOS 4 introduced screens that are draggable in any direction.