AmigaOS
|
AmigaOS is the default native operating system of the Amiga and AmigaOne personal computers.
Contents |
Features
The AmigaOS in its latest version has:
- Preemptive multitasking with static priority round-robin scheduler
- Microkernel architecture
- Programmable real-time interrupts with very low latencies
- Partial memory protection
- Fully skinnable GUI
- 32-bit design
- Programmable filesystem devices
- Interprocess interface for scripting programming languages
- Very efficient interprocess messaging due to lightness of process context in kernel
Overview
The main modularization technique in AmigaOS is based on libraries (files with a ".library" extensions), which are collections of functions much like shared libraries in other operating systems, but don't make use of dynamic linking (this has advantages and disadvantages). One standard AmigaOS library enjoys a special status: the exec.library is the only library in the system hooked to a fixed memory address (address 4), and it basically functions as the AmigaOS kernel.
Device drivers are files with a ".device" extensions and are basically special libraries with somewhat standardized calls. The higher-level part of device and resource management, however, is deferred to handlers, which are not libraries but tasks, and communicate by means of message passing.
One important type of handler is a filesystem handler. The AmigaOS can make use of any filesystem for which a handler has been written, a possibility that has been exploited by programs like CrossDOS and by a few "alternative" filesystems to the standard OFS and FFS. These filesystems allow one to add new features like journalization or file privileges, which aren't found in the standard OS.
Handlers typically expose a device name to the DOS, which can be used to access the peripheral (if any) associated with the handler. The SPEAK: handler, offering one of several ways to access the AmigaOS speech synthesis system, is one example of a handler offering services not directly related to a peripheral.
Device names are case insensitive (lowercase by convention) strings followed by a colon. After the colon a specifier can be added, which gives the handler additional information about what is being accessed and how. In the case of filesystem, the specificator usually consists of a path to a file in the filesystem; for other handlers, specifiers usually set characteristics of the desired input/ouput channel (for the SER: serial port driver, for example, the specifier will contain bitrate, start and stop bits, etc).
Filesystems expose drive names as their device names. For example, DF0: by default refers to the first floppy drive in the system, which DH0: is the first hard drive. Filesystem, however, additionally expose volume names, following the same syntax as device names: these identify the specific medium in the filesystem-managed drive. If DF0: contains a disk named "Workbench", then Workbench: will be a volume name that can be used to access files in DF0:.
If one wanted to access a file named "Bar" located in directory "Foo" of the disk with name "Work" in drive DF0:, one could write
DF0:Foo/Bar
or
Work:Foo/Bar
However, these are not completely equivalent, since when the latter form is used, the system knows that the wanted volume is "Work" and not just any volume in DF0:, and thus will say something to the effect of
Please insert volume Work in any drive
whenever a requested file on "Work" is being accessed without volume "Work" being present in any drive.
Programs often need to access files without knowing their physical location (either the drive or the volume): they only know the "logical path" of the file, i.e. whether the file is a library, a documentation file, a translation of the program's messages, etc. This is solved in AmigaOS by the use of assigns. An assign follows, again, the same syntax as a device name; however, it already points to a directory inside the filesystem. The place an assign points to can be changed at any time by the user. Standard assigns that are generally present in an AmigaOS system include
- SYS:, which points to the boot drive's root directory; this is the only assign created automatically by the kickstart
- LIBS:, pointing to a directory containing the system's libraries, usually SYS:Libs/
- DEVS:, pointing to a directory containing the system's devices, usually SYS:Devs/
- C:, pointing to a directory containing shell commands, usually SYS:C/
The AmigaOS components
Until 3.5 release AmigaOS always came divided in two parts, Kickstart and the Workbench.
Each Kickstart version is tied to a particular version of the Amiga's operating system software, so users should only boot Workbench 2.0 on a machine with a 2.0 Kickstart ROM. It is possible to boot incorrect versions (Workbench 3.1 will boot on Kickstart 3.0, with some problems). The exceptions are Workbench 1.3 and 2.1, which work with Kickstart 1.2 and 2.04 respectively. Also, the latest Workbench versions, 3.5 and 3.9, use Kickstart 3.1 and load ROM updates at boot time.
Kickstart
Kickstart is the name given to the bootstrap ROM. On the first Amiga model, the A1000, this was loaded from disk, although eventually the Kickstart was embedded in a ROM chip inside the computer. The Amiga 1000 could be modified to take these chips, and subsequent Amiga models all used ROM chips.
As well as containing the code needed to boot the computer, the Kickstart also contained large portions of the Amiga's operating system, such as Intuition (the Amiga's graphical user interface libraries), Exec (its preemptive multitasking microkernel), and AmigaDOS (the disk handling libraries). The latter based on a TRIPOS port by MetaComCo written in BCPL.
Later versions of the Kickstart contained drivers for IDE and SCSI controllers, PCMCIA ports and various other hardware that came with Amiga.
With third party software, it is possible to have a different Kickstart loaded in RAM and to use it instead of the ROM one - for example Kickstart 1.3 may be loaded in order to run old games incompatible with Kickstart 2.0 and higher. These programs are called Softkickers and they are selectable either by a switch or a keyboard shortcut when you first turn the machine on.
Workbench
Workbench is the native graphical shell for the Amiga computer. As the name suggests, the metaphor of a workbench, rather than a desktop, is used: directories are depicted as drawers, executable files are depicted as tools, data files are depicted as projects and GUI widgets are gadgets. Most Amiga application software has pull-down menus starting "Project Edit ..." rather than the usual "File Edit ..." from other platforms. Strictly speaking, the term Workbench refers only to the main file-manager of AmigaOS, but it is commonly used in referring to all the parts of the OS not residing in the ROM.
The Workbench environment is not required for the machine to function, therefore a lot of old games can boot directly from Kickstart, without loading it. Most such games don't even let the OS finish the normal booting process; instead, they take over most of the OS itself, disable multitasking, and sometimes run without even using OS functions.
In many other aspects the interface resembles Mac OS, with the main desktop having the drive icons, and a single menu bar at the very top of the screen. Unlike the Mac mouse, the standard Amiga mouse has two buttons the right mouse button operates the pull-down menus, with a Macintosh-style 'release to select' mechanism. Later, it was also possible to utilise a mouse with three buttons or a wheel.
A unique feature of Workbench is multiple screens. These are conceptually similar to X Window System virtual desktops or workspaces, but are generated dynamically by application programs as necessary. Each screen can have a different resolution and colour depth. A gadget in the top-right corner of the screen allows screens to be cycled - as the OS stores all screens in memory simultaneously, redrawing is instantaneous. Screens can also be dragged up and down by their title bars, but this functionality is provided only by the custom chipsets specially designed for the platform, so it is no longer available on systems that run with a modern graphics card.
AmigaOS up to 3.1 doesn't offer any software layer to use additional graphic or audio solutions. Starting with AmigaOS 3.5, some of these solutions were bundled with the OS, allowing the use of common hardware cards other than the native chipsets, but don't include any driver solution of their own. Users are required to use third party software to supply hardware dependent drivers. Common software packages for graphics are EGS, Picasso96 and Cybergraphics. For audio support there is AHI, a widely supported freeware driver system.
AmigaOS versions
Kickstart/Workbench 1.0, 1.1, 1.2, 1.3
Amiga_Workbench_1_3_large.png
Workbench 1.3
The 1.x versions are the original implementation of AmigaOS. They defaulted to a distinctive blue and orange colour scheme which was designed to give high contrast on even the worst of television screens (it could easily be changed by the user). Versions 1.1 consisted mostly of bug fixes. Versions 1.0 and 1.1 were distributed only on floppy disks for the Amiga 1000.
Versions 1.2 and 1.3 were the first versions to be put in ROMs (allowing their use on models with Kickstart in ROM) but were still available on floppies for Amiga 1000 owners. These versions were shipped in ROM with the A500, A1500, CDTV (1.3 only) and A2000. Version 1.2 of Kickstart fixed many bugs, greatly improving the stability of the system, and added AutoConfig support which could automatically configure expansion boards. Release 1.3 had few changes to Kickstart (mainly to enable autobooting hard disks) but had many more changes supplied with Workbench, including a much faster file system for hard disks, an improved CLI, and various extra programs.
AmigaBASIC
Version 1.2 shipped with AmigaBASIC, a BASIC implementation designed by Microsoft (some people say this was the only software ever written by Microsoft for the Amiga).
AmigaBASIC was discontinued with the launch of Kickstart/Workbench 2.x.
Versions 1.0 and 1.1 shipped instead with a different BASIC language, called ABasiC. Where AmigaBASIC was orientated around creating graphical user interfaces, ABasiC was more similar to the BASIC interpreters shipped with older 8-bit systems, and was geared towards text based applications.
Kickstart/Workbench 1.4
Kickstart/Workbench 1.4 was a beta version of the upcoming 2.0 update and never released, but the Kickstart part was shipped in very small quantities with early Amiga 3000 computers, where it is often referred to as the "Superkickstart ROM". In these machines it is only used to bootstrap the machine and load the Kickstart that will be used to actually boot the system. The appearance is similar to that of 2.0 and higher, with just minor differences. It is, however, possible to dump out of the OS selection screen by clicking where one would expect to see a close gadget. This will cause the machine to boot Kickstart 1.4 using either the wb_2.x: partition, or from a floppy.
Kickstart/Workbench 2.0, 2.05, 2.1
Amiga_Workbench_2.gif
Workbench 2
Kickstart/Workbench 2.0 introduced a lot of major advances to the Amiga operating system. Gone was the harsh blue and orange colourscheme, replaced with a much easier on the eye grey and light blue. The Workbench was no longer tied to the 640×256 (PAL) or 640×200 (NTSC) display modes, and much of the system was improved with an eye to making future expansion easier. For the first time, a standardised "look and feel" was added. This was done by creating the Amiga Style Guide, and including libraries and software which assisted developers in making conformant software. Technologies included the GUI element creation library gadtools, the software installation scripting language Installer, and the AmigaGuide hypertext help system.
Workbench 2.04 introduced ARexx, a system-wide scripting language. Programmers could add so-called "ARexx ports" to their programs, which allowed them to be controlled from ARexx scripts. Using ARexx, you could make two completely different programs from different vendors work together seamlessly. For example, you could batch-convert a directory of files to thumbnail images with an ARexx capable image manipulation program, create and index HTML table of the thumbnails linking to the original images, and display it in a web browser, all from one script. ARexx became very popular, and was widely adopted by programmers.
The AmigaDOS, previously written in BCPL and very difficult to develop for beyond basic file manipulation, was mostly rewritten in C.
Unfortunately, some badly written software – especially games – failed to run with 2.x, and so a lot of people were upset with this update. Most often, the failure occurred because programmers had used directly manipulated private structures maintained by the operating system, rather than using official function calls.
2.x shipped with the A500+ (2.04), A600 (2.05), A3000 and A3000T. Workbench 2.1 was the last in this series, and only released as a software update. It included useful features such as CrossDOS, to support working with floppy disks formatted for PCs. Since 2.1 was a software-only release, there was no Kickstart 2.1 ROM.
2.x also introduced PCMCIA card support, for the slot on the A600.
Kickstart/Workbench 3.0, 3.1
Amiga_Workbench_3.gif
Workbench 3
3.x was another major update. Updates included:
- A universal data system, known as datatypes, that allowed programs to load pictures, sound and text in formats they didn't understand directly, through the use of standard plugs (see object-oriented operating system)
- A system-standard localization system, allowing the user to make an ordered list of preferred languages; when a locale-aware application runs, it asks the operating system to find the catalog (a file containing translations of the application's string) best matching the user's preferences
- Colour remapping for low-colour display modes
- Improved visual appearance
- Better support for background images
3.x shipped with the CD32, A1200, A4000 and A4000T.
AmigaOS 3.5, 3.9
After the demise of Commodore, the later owners of the Amiga trademark granted a license to a German company called Haage & Partner to update the Amiga's operating system. Along with this update came a change in the way people referred to the Amiga's operating system. Rather than specifying "Kickstart" or "Workbench," the updates were most often referred to as simply "AmigaOS."
Updates included:
AmigaOS_3_9_Workbench.jpg
Workbench 3.9
- CD filesystem support as standard
- Distribution on CD instead of floppy disk
- Supplied with TCP/IP stack, web browser, and e-mail client
- Improved GUI, called "ReAction"
- AVI/MPEG movie player
- Support for hard disks larger than 4Gb (a limitation from 1.x)
- HTML documentation
- MP3 and CD audio player (OS3.9)
- Dock program
- Improved Workbench
AmigaOS 4
A new version of AmigaOS is being developed by Hyperion Entertainment (http://www.hyperion-entertainment.com) under license from Amiga, Inc (http://www.amiga.com). The 4.0 version will be a major update a decade after the last official release.
The new version will be PowerPC native, finally abandoning the Motorola 68k processor. Since there is no more 68000 based Amiga hardware, AmigaOS 4.0 will run on PowerPC hardware, which currently only includes 1200 and 4000 with PowerPC accelerator boards and AmigaOne motherboards. Amiga, Inc.'s distribution policies for AmigaOS 4.0 and any later versions requires that for third party hardware the OS must be bundled with it, with the sole exception of Amigas with Phase 5 PowerPC accelerator boards, for which the OS will be sold separately.
Currently, as of February 2005, there are two license holders. The first being the company that was consulted by Amiga, Inc. to create this distribution model, Eyetech (http://www.eyetech.co.uk), who currently offer Mai Logic (http://www.mai.com/)'s Teron series motherboards (http://www.mai.com/products/Mainboard.htm) under the licensed label "AmigaOne", and the second being ACK Software Controls, who are creating PowerPC motherboards that can be connected to the Amiga 1200 for improved backward compatibility.
A developer pre-release version was sent to purchasers of AmigaOne hardware in June of 2004, and currently ships with new AmigaOne boards. This does not have all of the features planned for the full release version, but includes a full SDK based on GCC, and VBCC C/C++ compilers.
Main features planned for AmigaOS 4.0:
- Tripos legacy code finally removed
- Improved TCP/IP networking
- Fully skinnable GUI
- Virtual memory
- Limited memory protection
- CD/DVD writer support, including Mt. Rainier
- Integrated debugger
- Integrated viewer for PDF and other document formats
- Enhanced shared library model
- Support for PowerPC (native) and 68k (emulated) applications
- Improved input device support
- Support for modern hardware devices
AmigaOS.png
AmigaOS influence on other Operating Systems
AmigaOS has spawned at least two "clone" operating systems over time.
AROS, or Amiga Research Operating System is an attempt to clone the AmigaOS API in a portable open-source operating system. Although not binary compatible with AmigaOS (unless running on 68k), it is reported to be highly sourcecode compatible.
MorphOS is a PowerPC native operating system, originally created when the future of the Amiga looked uncertain. It provides binary compatibility with system-friendly AmigaOS applications.
Although not strictly Amiga related, a recent fork of FreeBSD-4.8 called DragonFly BSD has been created by a former FreeBSD developer and Amiga programmer Matt Dillon. DragonFly BSD (although still a work in progress) aims to make the BSD core more like the Amiga architectually, featuring a message-passing kernel, allowing for a very efficient and virtually mutex-free SMP design.
Trivia
Some versions of AmigaOS included copyright messages as Easter eggs that required some trickery to access.
- In version 1.x, by holding down both Shift keys and both Alt keys and pressing the function keys F1 through F10, you could see copyright messages in the title bar. As an example, pressing F10 resulted in the message "Moral support: Joe Pillow and the Dancing Fools".
- In versions 2.x and 3.0, the secret message was accessed by repeatedly selecting the "About..." option from the Workbench menu, and leaving the resulting dialog box open. When there were enough (approximately 20) dialog boxes open at the same time, the next one had a secret message instead of the normal one. In version 3.1 the secret message was openly integrated into the "About..." dialog box.
See also
External links
- AmigaOS homepage (http://os.amiga.com)
- The Workbench Nostalgia Page (http://www.gregdonner.org/workbench) - Very detailed information on all known versions of AmigaOS.de:AmigaOS
fr:AmigaOS it:AmigaOS nl:AmigaOS pl:AmigaOS pt:AmigaOS ru:AmigaOS sv:AmigaOS