Characteristic features

From MorphOS Library

The core of MorphOS is compressed and stored inside a boot.img file which must reside on some storage medium accessible by the Open Firmware (OF). This file is loaded by the OF and starts up the Quark microkernel, as well as a number of other low-level basic components of the OS. The rest of the OS is formed by hard disk based files and runs on top of this software layer.

Amiga was characterised by advanced low-level software features provided by its microkernel, Exec, like pre-emptive multitasking, inter-process communication, etc., that were absent in any popular computer of the late 80s (early Macs and PCs, Atari computers, etc.). Of course all these features and more are also provided in MorphOS by its own reimplementation of the exec.library. In theory Quark is also able to provide a number of sandboxes where virtualised operating systems could run independently. Currently the low-level processes of the QBox do start only one box, though: the ABox, which is actually just a single Quark thread that provides a special API for programs and applications. Indeed this API is fully compatible with AmigaOS 3.1 (the last operating system created and distributed by Commodore for its Amiga computers) and, together with Trance (a powerful JIT compiler for Amiga executables), guarantees a high degree of compatibility for a large set of Amiga legacy applications. The complex operations executed by Trance are instantaneous and invisible: Trance detects automatically any launched Amiga executable, converts it into a PowerPC executable, and runs it on the spot.

By the release of MorphOS 2.0, a new memory management (described in the article In-depth: The New MorphOS Memory System) has been introduced. Actually, the operating system provides a pluggable memory interface now, allowing the user to choose between the new Two Level Segregated Fit (TLSF) allocator scheme or the old one, First Fit, used by AmigaOS and older versions of MorphOS. Compared to the previous memory system, TLSF maintains good performance regardless of memory fragmentation, which is in addition also reduced now.

Please note though that almost all of the huge number of excellent games that made famous the Amiga in the late 80s and early 90s do not run directly in the MorphOS environment. Amiga computers were equipped with custom chips for graphics and audio. Their operation is totally incompatible with a modern system like MorphOS, which is able to manage AGP and PCI 2D/3D GFX boards and on-board or PCI audio. If you want to play old games on a Pegasos, you can, but like on other systems you need UAE (the Universal Amiga Emulator), which is also available for MorphOS and provides the required compatibility. 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.

The native compatibility of MorphOS with Amiga legacy software, instead, has a different target. Users can run almost all the most recent and advanced Amiga applications, which are able to manage additional GFX and audio boards created for the latest Amiga computers. The relevant software layers that were initially developed by third parties for the AmigaOS, known as CGX (CyberGraphX) and AHI (Audio Hardware Interface), mask and manage the retargetable hardware and are fully integrated into MorphOS.

MorphOS makes two very compact, efficient, and fully integrated interfaces available (Command Line Interface and Graphic User Interface) for shells and applications. For the latter MorphOS has adopted an object-oriented software GUI layer called Magic User Interface (MUI), which originated as a third-party AmigaOS product as well. MUI not only provides the programmer with more sophisticated GUI interactions and layouts, but also allows users to more fully customise these GUIs to their individual tastes. Actually MUI is one of the most distinctive components of MorphOS, both in terms of features and aesthetics.

MorphOS shell is a Unix-like shell provided with all the features you expect from such a component: AmigaDOS commands, local and global variables, command substitution, command redirection, named and unnamed pipes, history, programmable menus, multiple shells in a window, ANSI compatibility, colour selection, and so on. Of course the set of commands includes all the necessary commands for scripting. In conclusion: Command Line Interface users will not be disappointed...

Ambient is the MUI based, fully asynchronous, multi-threaded, default native desktop of MorphOS. Although open sourced, in practice Ambient is an exclusive component of MorphOS, because it is so strictly related to MUI and the OS that its porting to any other environment would be quite difficult. Ambient provides program icon management, directory navigation, program launching, file handling, and everything that is needed for managing the system. Ambient is highly adaptable to user's taste: file management can be done in classic (spatial) mode or browser mode, using icon view or list view. Filetype recognition is done by means of direct file probing and/or mimetypes, and users have full control and editing capabilities on mimetypes for a fine-tuning of the related actions. Ambient allows the user to easily perform any type of activity with the inbuilt tools: file search utility, text viewer, picture viewer, sound player, system monitor, disk formatting utility, management of commodity utilities, and much more. From Ambient menus, users can control all the settings in their MorphOS environment, including MUI settings and the desktop itself.

It may be mentioned in passing that users are not necessarily forced to use Ambient. Other common desktop environments of the Amiga world can be run at the same time, or even as complete substitutes for Ambient, e.g. Directory Opus Magellan (also available for PC users as a substitute for Windows Explorer), Scalos, and even the classic Amiga Workbench (but this is reserved for crazy users which like some hacking).

The previous components of the OS are those that the user always sees and manipulates: their visual impact and easy handling have a high influence on user appreciation. Ambient users, for instance, can select distinct skins, changing on the fly the general aspect of all the windows, gadgets, and other graphic elements of the desktop (some distinct skins are shown in the pictures). On the other hand, other system software runs invisibly and silently, but is equally important, because without it the computer will be unusable. A few examples are filesystems, USB management, printing software, advanced scripting systems, etc. Of course all these components are present in MorphOS, but only short descriptions are given here, mostly concerning special features that add to those that users automatically expect from this hidden software.

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).