Alternate OS: Icaros, Part 2
by Darrel Johnston (djohnston)
As stated before, Icaros is an enhanced set of features to the AROS operating system, which is a recreation of the AmigaOS. The AmigaOS is “married” to its hardware, even more so than a Macintosh. A large part of AmigaOS is embedded in ROM chips. Many of the multitasking capabilities are due to special chips, such as embedded audio and video processors. Because AROS is designed to run on commodity x86 hardware, these multitasking capabilities had to be built into the disk-based software. Note that AROS was coded “from the ground up” to have the same capabilities as the AmigaOS, without copying any of the original software. In this article, I will look at some of the special features of the AmigaOS that are duplicated in AROS.
First of all, just like the Amiga, AROS has no provision for protected memory. The feature has been discussed among developers for future implementation. But, so far, it has not been implemented. This means that a single system or application program can crash the entire OS by overlaying the memory space of another program or process. Second, AmigaOS and AROS are single user desktop systems. Multiple users can be implemented on the AmigaOS using third-party software and filesystems. MuFS (MultiUser File System) is a filesystem on the Amiga capable of supporting multiple users.
The Amiga's true pre-emptive multitasking has had this ability from the day it was born, and it could achieve this within 512k of memory. AROS also has true pre-emptive multitasking and should run on almost any Pentium or higher CPU. Ideally, 700Mhz and above with 256MB of memory is recommended.
The messaging system of AmigaOS's Exec library is very fast and flexible, based originally on Tripos. You can have any number of tasks active, and each can send and receive messages on a number of ports. There is a simple efficient flag for each port to say that it has messages waiting, and the task can handle them in any way it wishes. Also, the ARexx version of Rexx provides an even higher level of messaging, at the level of inter-program communications, that enables one piece of software to control another. ARexx is available in AmigaOS and AROS as a system-wide macro language and a means of communication between programs. The Rexx language is also used on eComStation's version of OS/2, AROS and on IBM mainframes. Microsoft's NT4 OS for servers also had an implementation of Rexx.
AmigaFFS (Fast File System) can handle long filenames up to 108 characters, has international settings, (it can use filenames with accented letters), and can also be cached if the user chooses to format the partition with the cache option. AROS filesystems have these capabilities. Filenames are allowed to start with '.' just like under UNIX, and they can also have multiple extensions, such as filename.tar.gz.
AmigaOS and AROS both have a graphical user interface and a commandline-oriented shell, which is comparable with UNIX Shells. Amiga's GUI Workbench is duplicated as AROS's Wanderer.
AmigaOS version 3.1 (and higher) or its graphical user interface can be switched among 10 different languages providing full localization through a preferences editor, and all this without re-installation of the operating system! Workbench offers this localization mechanism also for applications programs for these languages: Dansk, Deutsch, English, Español, Français, Italiano, Nederland, Norsk, Português, and Svenska. AROS has support for 23 languages and more than one language can be specified.
The datatype system of AmigaOS is a centralized expandable modular system describing any kind of file, (text, music, image files, videos), each one with a standard load/save module of its own. Any experienced programmer, following the Amiga Datatype programming guidelines, can create a new standard datatype module for any kind of file required to be loaded or saved. Once created, the new datatype is visible to the entire Amiga system, including all programs, by simply copying the new datatype into the directory SYS:Classes/DataTypes/, and the descriptor, which is called to identify files, into DEVS:DataTypes/. This allows Amiga programs to load and save any kind of files for which there is a corresponding datatype, without the necessity of embedding file descriptors in its binary, and without the need for an independent system of file loaders. This implementation of mimetypes is unique to the Amiga, and is fully implemented in AROS.
NOTE: The logical volumes SYS: and DEVS: are created during the AROS boot sequence with assigns, and will be covered in the next article.
One unique datatype is the iff, or Interchange File Format. An iff file can be either a sound file, an image file, or an animation file. The quickest way to determine its type is by opening the file. This datatype is also implemented in AROS.
Another datatype is the AmigaGuide, which is a type of help file display format. AmigaGuides are written in a version of HTML, and this datatype was in use before the world wide web existed. It was created so that help manuals could contain hypertext links to subsections of the manual, with each subsection containing hypertext links back to the table of contents. This datatype is also implemented in AROS.
In the third and last article on Icaros, we will look at some of the programs included on the CD.