MorphOS: The Lightning OS

 
What is MorphOS?

I think this will be the most asked question among all readers of this article. It's likely that you never heard this name - MorphOS - before in your life, but it is extremely likely that you heard another name: Amiga. In this introduction it is enough to say that MorphOS is currently an enhanced clone of the AmigaOS (the Historical Notes section explores the details of this connection).

MorphOS in action 2 MorphOS in action 1 Although a functional clone of the AmigaOS is a nice experiment, the real potential for MorphOS is found in its ability to provide for more advanced OS features not found in the AmigaOS. This is possible because MorphOS is built around a very flexible, powerful, and compact microkernel called Quark, whose structure is totally unrelated and independent from the Amiga and Linux kernels.

One distinctive feature of MorphOS is that it has a small "footprint". A complete installation requires less than 20 Megabytes for the whole OS. And no more than one half is needed if one desires to optimise one's running environment and leave out unused and/or non-essential parts of the OS. Another distinctive feature of MorphOS is its speed. It is not certified as a RTOS, but in use on its typical hardware, the responsiveness is very close to Real Time operation.

 
Hardware platform

MorphOS runs exclusively on PowerPC processors. Two specific hardware platforms are currently supported: the PowerPC accelerator boards for Amiga computers (developed by Phase5 and known as CyberStorm and Blizzard) and PegasosPPC motherboards (distributed by Genesi and also used in a full featured compact computer called ODW, Open Desktop Workstation). PegasosPPC boards are initialised by the HAL/OF (Hardware Abstraction Layer / Open Firmware), a BIOS-like software created and maintained by Genesi for its PowerPC products (and available under license for every designer/manufacturer of PowerPC-based products). Potentially MorphOS can run with minor changes on any PowerPC board initialised by the HAL/OF: it is known, for instance, that this OS already runs on EFIKA 5K2 boards.

MorphOS is proprietary OS except for some parts that are open source. It is currently available for free only to owners of the above-mentioned Amiga/Pegasos hardware. After on-line registration, owners can connect to a FTP site where it is possible to download an ISO-image for burning a MorphOS boot CD. Also upgrade software is available on the FTP site.

 
Installation

The installation of most operating systems is usually a long operation, and may sometimes become a real nightmare if you are unlucky or unskilled. A small footprint OS like MorphOS shows its advantages even in the installation phase, both in terms of time and simplicity.

Put your MorphOS boot CD in the drive and select it as a boot device in the HAL/OF. MorphOS starts directly from the CD in a default configuration with minimal hardware requirements. This takes less than a minute. Now you should use the OS partition utility to create at least one boot partition on your hard disk, and the formatting utility to format this partition. Then you can launch an installation script that loads MorphOS therein (the script manages a number of circumstances and special cases, but basically it copies all the system files and directories, with default configuration files, from the CD to the hard disk).

Now, you should eject and remove the MorphOS boot CD from your drive, and reset the Pegasos/ODW (either pressing the reset button or with the key combination CTRL-WIN-WIN). After a few seconds you will return to the HAL/OF screen, where you should set an environment variable that stores what's the boot partition and the relevant hard disk.

It's done! (The user must perform slightly more complex actions with old versions of the HAL/OF, but newcomers can only get new versions...)

Total time required for all the previous operations: no more than 5 minutes! But you will have another surprise: let MorphOS start from your hard disk and count the time that is necessary to boot into the plain OS environment. You will find that this occurs in less than five seconds: welcome to the lightning OS!

 
Characteristic features

The core of MorphOS is compressed and stored inside a boot.img file which must reside on some storage medium accessible by the HAL/OF. This file is loaded by the HAL/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 are provided in MorphOS by Quark, which is also able to support more modern features like memory protection, virtual memory, and so on. Quark is also able to provide a number of sandboxes where virtualised operating systems can run independently. Currently two sandboxes are implemented: QBox, which now is used for low-level processes only, and ABox, which 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.

Playing games with UAE Workbench within UAE Note that the huge number of excellent games that made famous the Amiga in the late 80's and early 90's do not run directly in 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 current 2D/3D GFX boards and on-board or PCI-board audio. If you want to play old games on a Pegasos/ODW, you can, but you need UAE (the Universal Amiga Emulator), which is also available for MorphOS and provides the required compatibility.

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, known as CGX (CyberGraphX) and AHI (Audio Hardware Interface), mask and manage the retargetable hardware and are fully integrated in MorphOS.

ShowGirls and MUI Prefs MUI Prefs MUI Info Like the AmigaOS, MorphOS makes two very compact, efficient, and fully integrated interfaces available (Command Line Interface and Graphic User Interface) for shells and applications. Although this "inbuilt" CLI/GUI system can easily get the job done, many prefer significantly more advanced features and "eye-candy" in the GUI. To address this, MorphOS has adopted the more object-oriented software GUI layer called Magic User Interface. 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 MorphOS shell is a Unix-like shell provided with all the features you expect from such a component: AmigaDOS commands (most of which are Unix-like), 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...

MorphOS desktop Main preferencess Ambient settings 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 very difficult. Ambient provides program icon management, directory navigation, program launching, file handling, and everything 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.

Let me mention 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 (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 adds 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 the impressive PFS (Professional File System) available commercially for Amiga computers, and even the ubiquitous FAT (File Allocation Table) of MSDOS environments. Salvage utilities are available both for PFS and SFS (SFSDoctor is an utility created recently just for MorphOS), and handle operations like retrieving deleted data, file system structure repair, and even reorganization to decrease fragmentation. Windows and Linux users will be glad to know that it is also possible to work with NTFS and EXT2FS partitions by means of free preliminary versions of these filesystems.

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 (Chris Hodges), 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."
Let me add 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 is still being coded, and currently must be extracted from AmigaOS).

 
MorphOS integration

There are a number of applications that, today, people expects to be standard components of an OS, like an installation utility for software packages, a text editor, a TCP/IP stack, a mailer, and a browser. After having used MorphOS for a while, you will note the absence of these programs in its current distribution (1.4.5). However, a few searches on the net will show you that almost no MorphOS user (except newcomers) complains for the absence of these programs. Actually, this apparent contradiction is a legacy effect of the tormented Amiga history, and does not affect MorphOS in any way. Let me dedicate some words to this subject, just to show you the correct perspective before you start to think, erroneously, that MorphOS is an incomplete OS.

In its current form, MorphOS is perfectly suited for its current user community, i.e. a group of hardcore Amiga users. Such persons, in the fast rise of the Wintel era, faced the problem of integrating an OS that was no more upgraded. Indeed, in the 90's, after Commodore demise, the owners of the brand froze the development of AmigaOS. This OS survived thanks to the impulse provided by many independent developers who slowly added almost any type of missing features. Most of this software is available at the huge repository of free and shareware Amiga software, Aminet, that currently contains 76,000 software packages. So the main rule of thumb for Amiga users is: if something is missing, download it from Aminet. And, of course, this rule extends to all MorphOS newcomers.

MorphOS has no installation utility for current and legacy applications.
Go to Aminet and download the Installer 43.3. Of course this is a standalone file that you can simply put manually into a strategic directory of your hard disk.

MorphOS has no text editor for modifying startup scripts and plain texts.
There are plenty of text editors on Aminet. You can go there, and search and download what you need. In particular you will also find some editors already ported and compiled in native PowerPC code for MorphOS.

MorphOS has no TCP/IP stack.
Well, go to Aminet and download MOSNet, which is a TCP/IP stack compiled in native PowerPC code, and created explicitly for MorphOS.

MorphOS has no mailer.
The two most diffused mailers for the Amiga are open source. You can download YAM or SimpleMail from SourceForge or their homepages. There are nightly builds created in native PowerPC code for MorphOS, too.

MorphOS has no browser.
The source code of AWeb, formerly a commercial browser, was donated by the author to the Amiga community at the beginning of the millennium. All the upgrades for this browser created by the current development team are available at the AWeb homepage, even in a native MorphOS version.

(Please note that all the previous applications are open source software - except the Installer 43.3 that is freely distributable -. Their use does not prejudice in any way the owner rights of MorphOS and the software packages written/distributed by independent developers and/or software houses for commercial purposes.)

MorphOS has a very minimal documentation.
Due to the API compatibility, the documentation of AmigaOS 3.1 covers 75% of all the possible issues. However, MorphOS is not a simple clone of AmigaOS: it already embodies a large number of enhancements, most of which are not immediately visible to the unaware user. Here the community has given again its help with the creation of Le livre du Pegasos (The Pegasos Book), that collects in a single book a huge set of very useful and important information concerning hardware, software, and configuration issues that it is important to know when someone uses the Pegasos/MorphOS pair.

In conclusion, the main point that you should understand is that the community that currently uses MorphOS is only the launching platform of this OS. The forecast future community should be larger and not necessarily Amiga-related; and future versions of MorphOS may be commercial. In such a case, of course, the MorphOS Development Team will take into account any change of the targeted user base. New distributions will either contain proprietary versions of the missing software (for instance, it is already known that an integrated TCP/IP stack already exists), or will explicitly point the inexperienced non-Amiga user towards external components.

 
MorphOS development

In the first phase of its history, MorphOS was a dream that slowly came true by means of a number of very talented young programmers. Then, when the hardware development by bPlan (that now is the hardware branch of Genesi) became closer and closer to finalization, and MorphOS was the unique OS used for the first distribution of 200 betatester units, the development was well supported and accelerated. In the last two years, MorphOS development slowed down again because Genesi concentrated most of its activities on the design of new hardware, on further development of very basic software like the HAL/OF, and on other operating systems like the various Linux distributions, which of course have a larger base of potential users.

Today, the current development of MorphOS goes on slowly but constantly with a number of simultaneous activities.

(1) The core internals of the boot.img are handled exclusively by the MorphOS Development Team. When improvements in this area have been tested enough by the team members and ready for user trials, usually a CD ISO image is created which also includes a complete MorphOS installation and establishes a baseline for a release.
Little is known about current improvements, but it is publicly known that the members of the MorphOS Development Team already use a new boot.img file where many components were strongly enhanced. For instance, Altivec (the floating point and integer SIMD - Single Instruction, Multiple Data - instruction set implemented in high-end PowerPC processors) is fully supported in all the components of the system software where it can be used for major speed gains.

(2) Other parts of MorphOS which reside outside the boot.img are updated and released in binary form that registered users can download and manually install. These releases are handled on an "as needed" basis to accommodate new features, or correct problems, or even offer a glimpse of what is to come (alpha and beta software).
For instance, this concerns version 4 of MUI, version 6 of AHI, version 3.3 of Poseidon, improved CGX 3D drivers, debugged versions of some high-level libraries, and so on.

(3) Development for MorphOS in the open source/third party arena is not only active but well appreciated and heavily discussed/debated. One special case is the Ambient desktop, which has become an open source effort where some MorphOS team members are actively involved.
Ambient evolves quickly and very visibly to the users, who can download and install nightly builds of this component of MorphOS.

(4) In an interesting move to focus third party developers' attention, and following initiatives already attempted in other environments, users have got together to provide a "bounty" system where users (and coders) can submit ideas for development and contribute money for their realization.
Several noticeable projects have emerged from this "bounty" system, including SFSDoctor and MOSNet (both mentioned in the previous sections), and MorphUp (a sophisticated package manager for automatic installation and upgrade of applications). The bounty system is being used even to speed up the development of parts of the OS that have a particular value for users. This requires the collaboration of members of the MorphOS Development Team, like in the case of the last missing native ARexx library (rexxsyslib.library).

What is the final goal of this somewhat anarchic development process? We know its probable name: MorphOS 1.5, and know that its scope is ambitious. This version of the OS should ultimately remove most needs for external program support, and will qualify MorphOS for its debut outside the Amiga community. Unfortunately nothing is known about its release date, though it does not seem to be very close. In a recent private communication, Frank Mariak, one of the leaders of the MorphOS Development Team, wrote me that MorphOS 1.5 is still a thing to come because "its feature set is not finally defined".

 
Developer tools

All the previous sections are mainly addressed to people that want to know what MorphOS is from the point of view of a normal user. But there are less common users, who certainly have specific interest for other details of the MorphOS environment: the developers. These are the most important persons in any computer platform, because without them there is no new software, and the platform will go quickly to a stagnation state. Either directed by professional interest or hobbyistic purposes, any coder wants to know what is the environment available for his activity.

MorphOS of course has a dedicated Software Development Kit that allows any coder to create applications. The SDK is completely free: any developer can subscribe at the MorphOS Developer Connection web site, and download the relevant archives. Please note that the SDK is available for anyone, also people who do not own the hardware necessary to run MorphOS. Indeed this has two important effects: it allows the creation of Integrated Development Environments by third parties (Cubic IDE), and also allows cross-compiling from any platform, in particular from Linux, or Windows by means of cygwin (related sites: Cross-compiling for MorphOS, AmiDevCpp). The MorphOS Developer Connection web site also provides for a developer forum where everything concerning development and related issues can be discussed.

The SDK of MorphOS contains all system includes; developer documentation including autodocs, articles, example code, and general information; third party tools and developer documentation; and two very useful components, MorphEd and a complete Geek Gadgets environment. MorphEd is an advanced text editor that, besides all the functions usually expected for text editing, offers syntax highlighting, developer environment support, integration of the GCC or vbcc compiler, and so on. The Geek Gadgets are a large body of development tools that have been ported to Amiga/MorphOS and are available in both source and binary form. The package contains, among other things, a lot of commands available for Linux shells, and its aim is to provide people accustomed to Linux environments with a familiar command environment within MorphOS shells.

The availability of GCC, the most diffused C compiler, and others, does not exhaust the list of interpreters and compilers existing for MorphOS: a full scale is available, ranging from PowerPC machine code assemblers for low-level programming to high-level languages like the classical FreePascal and more modern products like Python.

 
3D graphics

Most currently available alternate OSs have no support for 3D graphics, or a very minimal support. This is due to the fact that the few companies that develop graphics cards either do not distribute technical documentation at all, or make it available in a form that creates many obstacles to single developers. They provide their own drivers for Windows, or provide documentation that is very difficult to obtain and use.

In this scenario of missing 3D support, MorphOS is a relevant exception, within certain limits. There are two reasons for this. The first is the creation of tinygl.library, a very important software component which (despite its name) is a highly compliant and almost complete MorphOS implementation of the OpenGL specifications. The second is that the MorphOS Development Team decided to concentrate all their 3D efforts on a small number of graphics cards compatible with the PegasosPPC hardware.

The Open Graphics Library (OpenGL) is a standard defined by a document that specifies a set of over 250 different function calls whose use allows to draw complex 3D scenes from simple primitives. Its importance lies in the fact that it defines a platform-independent API. Developers that use OpenGL to write applications can be sure that these programs will generate 3D graphics on every computer that has an implementation of the library. OpenGL, originally developed by Silicon Graphics, is important for the games industry (where it only competes with Direct3D on the Windows platform), but is also used for professional applications where the simple management of 3D graphics is important (starting from flight simulators and virtual reality implementations, ranging through high-end displays for scientific applications and information presentations, up to technical applications like CADs).

As to TinyGL we report the very clear words of the MorphOS Development Team. "TinyGL was originally created by Fabrice Bellard as a subset of OpenGL for embedded systems and games. It was designed with no hardware acceleration in mind at this time. Only the main OpenGL calls were implemented. The MorphOS version of TinyGL is only loosely based on the original implementation. It was rewritten to take full advantage of 3D hardware acceleration. Furthermore, it contains several carefully chosen MESA features. TinyGL on MorphOS provides a much richer feature set and surpasses the original's speed at the same time."

Of course OpenGL/TinyGL are not enough for full management of 3D graphics cards. Special software drivers are needed to use the 3D hardware on the cards. The MorphOS Development Team created drivers for the following PCI and/or AGP cards: 3dfx Voodoo 3, Voodoo 4, Voodoo 5; ATI Radeon 7000, Radeon 7200, Radeon 7500, Radeon 8500, Radeon 9000, Radeon 9100, Radeon 9200, Radeon 9250. As you can see, these certainly are not the most recent graphics cards on the market, but they are well supported by the drivers and have an optimal fit with the performances of the current PegasosPPC hardware.

 
Games

Since MorphOS 3D graphics is not the state-of-the-art available on the market, you might wonder why we add this section. The main point here is to give some essential information about the technical boundaries reached by MorphOS in this field of interest. Knowing what games have been ported and the quality level reached when they are displayed, experts will be able to evaluate the present state of MorphOS 3D graphics.

Virtual Grand Prix 2 Virtual Grand Prix 2 One of the most notable games available for MorphOS is definitively Virtual Grand Prix 2, published by Alassoft. It is a very realistic Formula 1 simulation (probably one of the most realistic for any platform), with nice 3D accelerated graphics, and the mandatory support for analog input devices, that in MorphOS is available thanks to the Poseidon USB stack and the new lowlevel.library. The MorphOS version has been released shortly after the Mac and Windows ones, due to the Amiga roots of the main programmer Paolo Cattani. Notably, the MorphOS version is completely free (just a Paypal donation of 5.90 Euro is suggested in order to support the developer and encourage him in doing the sequel for MorphOS). The game includes most of the true circuits, very nicely realised, and highly recognizable. Those not included can be found as additional packages created by users on the net. The game is quite fast and playable also on low end machines (G3 @ 600MHz and Voodoo 3, for instance).

Wipeout 2097 Other commercial games available for MorphOS include all those released for classic Amiga computers with PowerPC CPUs. These include the Wipeout 2097 port released by Digital Images and the Heretic 2 port released by Hyperion Entertainment. The former was a very nice version of the famous game, that took the best from the PlayStation version (the most playable one) and the Windows version (the higher resolution graphics, for instance), making the Amiga conversion the best incarnation of them all. Wipeout 2097 is a WarpUp executable, using the Amiga Warp3D software for graphic acceleration, but, as usual, MorphOS users have little to worry about. Wipeout 2097 runs transparently, both in full screen and in a window on the desktop, supports graphics and audio boards not supported by the classic Amigas, and can be played using USB controllers. It is of course faster than it ever was on any classic Amiga.

Quake III Many open source games have been ported to MorphOS, including several commercial games whose sources have been released, like id Software masterpieces Wolfenstein 3D, Doom, Doom II, Quake, Quake II and Quake III. The Quake series supports 3D acceleration, and in particular in the case of the old first Quake episode, even the better looking versions Fuhquake, GLQuake and BlitzQuake have been ported. All the games run quite fast in high resolutions thanks to the 3D acceleration.

Speaking of first person shooters, also Cube, AlephOne and the very recent freeware game Warsow have been released. Warsow is probably graphically the most complex project ever ported to MorphOS (even though it is based on the old Quake II engine), and in fact might not run at a decent speed on a G3 CPU with Voodoo graphics. But it is also one mean to show that better hardware does not sit unused with MorphOS.

FreeSpace 2 Other open source projects ported include the icculus.org games Freespace 1 and 2 (that of course need the original versions to be fully operational), and games like NeverBall and the 3D pool game FooBillard. Open Transport Tycoon Deluxe, the open source reimplementation of Microprose's Transport Tycoon Deluxe, is available, too. The MorphOS version (that, as well as all the other versions, needs the original game files to run) is synchronised with the official releases. This means that it is available directly from the project home page, since MorphOS support was inserted into the main source tree. Open Transport Tycoon Deluxe makes use of the PowerSDL.library to run. This library (whose special features are described below) facilitated already the porting of dozens of free and open source SDL games to MorphOS.

Robin Hood There is also at least one commercial software house releasing ports for MorphOS, and it is RuneSoft (formerly known as Epic Interactive). They released Knights and Merchants a long time ago, when MorphOS was still taking its first steps, and have released Robin Hood recently. Knights and Merchants is a strategic game in the fashion of The Settlers, just with much better graphics than the first release of that famous saga which started on the Amiga in 1993. Robin Hood, on the other hand, is a strategic arcade game in Commandos style, originally released on PC by Spellbound. The graphics and audio are probably the best seen on MorphOS in a 2D game, and, even if a bit demanding, were carefully optimised to run smoothly even on a G3 Pegasos. RuneSoft has more games in the pipeline, and hopefully they will continue to support MorphOS if they find some viability in this market. They always release demo versions of their conversions: therefore users can test the game, before voting with their wallets for more support.

ScummVM Of course, on MorphOS the user can entertain himself not just with more or less native executables: there are also many emulators and virtual machines. One of the best known is ScummVM, the free reimplementation of the engine behind most Lucas Arts/Lucas Games adventures. The newest versions are also compatible with some games from other vendors (just like Beneath a Steel Sky or Broken Sword from Revolution) and luckily available for MorphOS, too. The nice thing about this is the possibility to run some of these adventures that were never published in an Amiga-like environment (Lucas Arts left the Amiga scene after Indiana Jones 4). The engine works flawlessly and nicely, and these games, with their retro appearance, are always fun to play.

MAME FPSE The category of the "real" emulators includes Genesis Plus and SMS Plus for the Sega consoles, SNES 9x for the Super Nintendo (or Super Famicom) console, VICE for the VIC series of Commodore home computers, MAME for the arcade machines... All of these are quite good at their work and are not just fast ports, since, for instance, they all support overlay (in order to enable transparent real time resizing of the window) and USB joypads. A nice addition is FPSE, the PlayStation emulator: even if it is an AmigaOS 4 version that needs OS4Emu in order to work, FPSE, once launched, runs just like a native program.

 
MorphOS exclusive software

The reduced size of the OS and its simple structure (in relative terms) imply, among other things, that projects that require a team of programmers on other platforms often become modest one-man projects in MorphOS/Amiga environments. This slowdowns the development, but also gives excellent efficiency, simplicity, and compactness to the code. In this section we mention a few excellent tools for MorphOS, while in the next section you will find descriptions of the most important and powerful applications.

AmiNetRadio
AmiNetRadio ANR is an audio player. Born as a ShoutCast stream player, it has soon evolved into a fully featured and extremely modular player supporting many audio formats and graphical plugins. It is able to play RIFF WAVE, Ogg Vorbis, MPEG Audio, CDDA, AIFF, and ProTracker modules out of the box. However, an SDK documenting how to code additional players is available, and has lead to third party support of MIDI, ScreamTracker, FastTracker as well as some more obscure formats (including NES, Super NES, Game Boy, Mega Drive and Atari ST sound formats). This makes ANR one of the best suited candidates at substituting Ambient's internal audio player when associated to the audio files by means of the mimetype configuration.
One thing worth mentioning is that ANR is actually an AmigaOS 3.x executable in 68k code. Emulation transparency and effectiveness in MorphOS are so good that most of the aforementioned players are compiled exclusively for MorphOS in native PowerPC code, and can be mixed without any need for the user to be careful. The same can be said for the video plugins: ANR is compatible with the API of AmiAMP (an old Amiga version of the well known WinAMP), and therefore it is possible to mix 68k and PowerPC plugins. A fact even more interesting is that it is possible to use plugins compiled for the old executable formats (PowerUp and WarpUp) introduced years ago for PowerPC accelerators on classic Amigas. Non-Amiga people should not worry: all that matters to them is that MorphOS is transparently compatible with all the weird kinds of executables the Amiga community has introduced in the past, as long as they were coded in a "system-friendly" manner. ANR itself makes use of some extensions of the AmigaOS 3.x APIs for better skinning capabilities, thus resulting a MorphOS program at all effects, while consisting of 68k code.

ShowGirls ShowGirls
As the name says (and if for you it doesn't, it just means you are not geek enough), this is an image viewer. The internal viewer of Ambient is very basic: it lets you view the picture, resize it to fill the window, rotate it, and that's all. ShowGirls does a lot more: its interface is usually divided in two parts, on one side there are the thumbnails (with support of the EXIF format in JPEG pictures, which means that it doesn't need to load a 3MB+ image just to show a 50x50 preview) and on the other side the selected image is displayed. The image can be viewed in full screen as well, can be zoomed in and out, and can be elaborated. ShowGirls in fact features some basic image manipulation tools for adjusting colours, changing image resolution, as well as smoothing and sharpening operators, noise reduction, glow and blur effects, and enables cropping, rotating, flipping, as well as batch conversions. It is possible to use also a 3D view (with 3D accelerated rendering), but that's mostly a nice toy option.
The program was originally born as a tool for digital cameras, and in fact it can perform all the needed operations on files on a mass storage device. And in conjunction with a USB camera working as mass storage device you will rarely need anything else. If your camera supports the PTP standard, though, you might need to look elsewhere.

PTPDigCam
PTPDigCam This is a nice native and original software (not based on libraries ported from Linux) that enables to download and delete pictures, videos and audio files from Canon, Nikon, Kodak, Sony cameras supporting the PTP standard. The latest versions let the user choose the images from their EXIF thumbnail as well, and the program is well written, with a nice and polished MUI interface. It is not the most complex program in the world, but it shows the spirit of the old Amiga community: most alternative OSs do not support the PTP standard and require the users to buy a card reader. As inexpensive as this add-on might be, it is always better to have a software supporting even this not so widely recognised standard. There is also an alternative, called SimpleCam and based on libPTP ported from the Linux environment, but with a MUI GUI. And for those who like to control remotely their digicam, there is also CanonToolBox, based on libPTP, too.

PowerSDL games PowerSDL
This evocative name labels a software package, whose port allows to broaden, indirectly, the availability of software on MorphOS. Simple DirectMedia Layer (SDL) is a cross-platform multimedia library that provides an abstraction layer for graphics, sound, and input APIs over various platforms. SDL allows a developer to write computer games or multimedia applications that run on many operating systems, and makes a lot of ports possible. The MorphOS version has been greatly improved upon the original Amiga port, and it is now constituted by a number of shared libraries (which, incidentally, make possible to use them in closed source/non GPLed software) making full use of the MorphOS APIs.

OS4Emu
This is an example of a software that broadens the working applications directly: it is a wrapper for the AmigaOS 4 APIs (which is very similar to the MorphOS one, given the common heritage) to the correspondent MorphOS functions. This means that by double clicking on the icon of an AmigaOS 4 executable (or typing its name in a CLI window) there is a good chance it will work. Notable examples include FPSE, the Sony PlayStation emulator, that ironically, thanks to Poseidon (the USB stack included in MorphOS), supports USB joypads... contrary to what happens in its natural environment, AmigaOS 4! (This is enabled by a simple feature in Poseidon, that associates keystrokes selected by the user to joypad buttons). Other working titles are SID4Amiga (a player for C64 music files), some scene demos, many shell commands and utilities, and much more. The compatibility is not total, but it is improving at every new release.

 
Platform expansion

Cubic IDE One of the most important positive effects of the compatibility of MorphOS with Amiga programs is the fact that MorphOS users can still run almost all the commercial software they purchased for their Amiga, with great advantage in power and speed. The MorphOS/Pegasos computer platform does not start from scratch! Although the official death of Commodore is dated April 29, 1994, many applications for the Amiga were developed for years and years after that date. And a number of important programs are still actively developed today, like, for instance, the extremely sophisticated DeskTop Publishing program PageStream (which currently is available at the same time for Amiga, Linux, MacOS, and Windows platforms, as well as in native PowerPC code for MorphOS), the advanced editor GoldEd (that now is the core of Cubic IDE, an Integrated Development Environment that covers all the major programming languages and SDKs available for AmigaOS/MorphOS), the state-of-the-art presentation program Hollywood (that inherits the illustrious legacy of Scala, preserving full compatibility with that program, and adding all the features allowed by modern graphics systems), and so on.

Anyway, when a computer platform has a small user base, like MorphOS, the development of new software becomes difficult. The production of commercial software is not encouraged, since there is a small likelihood of finding a sufficiently large number of purchasers. The production of open source and shareware software is constant, or rises very slowly, because it does not find a sufficiently large base of coders: everyone is already concentrated on a number of projects and has no time for others. In such a case there is a solution that sometimes can drastically reduce the development time of an application: porting software from other platforms.

MPlayer Blender When AmigaOS was designed, a number of structures and features were inspired by Unix, and of course this reflects in the ABox API of MorphOS. So the porting of small commands, utilities, programs, and games from Unix to AmigaOS, and now from Linux to MorphOS, is sometimes not difficult. Two specific system libraries (ixemul.library and ixnet.library) make a number of porting efforts easier that require special Linux-like routines. Even large and complex applications like MPlayer, MEncoder, MLDonkey, E-UAE, MAME, Blender have been ported to MorphOS.

The main obstacles for code porting are the absence of the fork() function in AmigaOS and the ABox of MorphOS, the fact that AmigaOS/MorphOS are not fully POSIX-compliant, and the extreme difficulty of GUI porting. Linux GUIs are based on windowing systems which are usually parts of larger desktop environments, and are not integrated in the OS. Besides a very early port of X-Windows, no Linux windowing system has ever been ported to AmigaOS/MorphOS. There is no real advantage in doing such a port, because the effort would be very hard, and the smallest windowing system for Linux is at least five times larger than MorphOS as a whole. Easy GUI porting would require the complete loss of the small footprint character of MorphOS, and would transform it into a useless new Linux-like OS.

So, contrary to other platforms, AmigaOS/MorphOS never had a port of very large and important applications like Mozilla and Open Office. The absence of programs like these, that are fundamental for a normal user who wants to interface his computer with the whole cyberworld without compatibility problems, is the biggest obstacle for a larger adoption of MorphOS in the desktop computer market.

Once people recognised the uselessness of porting large pieces of Linux distributions to MorphOS, a better idea emerged: the creation of wrappers that relate all the calls to certain basic structures of one system to their equivalents in the other system. An attempt in this direction concerns GTK (the GIMP Toolkit, where GIMP is the acronym of GNU Image Manipulation Program), and tries to relate this popular widget toolkit for creating GUIs for the X-Windows system to the corresponding widgets of MUI. Anyway, the most relevant current attempt involves KHTML, the HTML layout engine created by the KDE project. A large wrapper that relates KHTML to MUI is in the works (the first beta version was distributed in Novemeber 2006, and most likely the project will be fully usable in 2007). The success of this effort will have a strong influence on the future of the MorphOS/Pegasos platform. MorphOS users will have a state-of-the-art browser (current native browsers are not up-to-date), possible new users will be less reluctant, and the success in this field will encourage similar efforts in other directions (Open Office porting).

 
Who needs MorphOS?

The previous arguments suggest that the use of MorphOS as a main desktop OS has a number of limitations that currently prevent its adoption for large-scope professional purposes. But MorphOS is already usable for strict-scope professional purposes, and is very well suited for semi-professional and hobbyist purposes. Of course, its current limitations are irrelevant in the embedded market, where only its small footprint and fast responsiveness are the really characterizing features.

Well, although you may judge the following sentence like a paradox, let me say that those that appear as limitations in a professional environment, are actually perceived as advantages by current users. In fact, these advanced users are able to compensate almost any deficiency of the software available for MorphOS by means of free, shareware, and commercial software that already exists for the Amiga platform or is in the development phase for MorphOS. They already use MorphOS at its best obtaining a responsiveness unparalleled on every other platform; and their environment is totally immune from any virus, worm, trojan, spyware, adware and similar beasts coming from the net. They can install Linux and MacOSX (using MacOnLinux) on their Pegasos, just to use FireFox and Office when it is necessary; or else can use the RDesktop tool within MorphOS environment and control a remote PC.

Other potential users of MorphOS may be people that want to be "free" from the oppression of a monolithic authoritarian environment like Windows, and/or do not want to be "menaced" by the unfathomable depths of Unix-like systems, that are fully manageable only by Linux geeks. And of course MorphOS is the best choice for nostalgic Amiga users who want the speed of the real new thing instead of the slower synthetic environment provided by UAE. This list of people does not exhaust all potential users of MorphOS. If this OS will be used on PowerPC boards for the embedded market, another group of special users will join the others: the developers of embedded applications. They will need a comfortable desktop environment for their work, and will also discover the usefulness of the dialogue with a community where a large percentage of the members (higher than in most other platforms) are skilled programmers ready to help whenever they are asked for.

The evolution of the system should remove current limitations and provide for a larger base of users: less biased people who will be able to open new horizons and enlarge the current niche.

 
Conclusions

This article has tried to show that MorphOS is a vital work in slow but constant progress. The small footprint and speed make MorphOS a viable candidate for a desktop OS, but these features really shine if one considers the embedded market, where the absence of hard disks, the need for small amounts of RAM, and the use of low-end processors are very common requirements. Try to imagine the possibilities offered by a very fast operating system entirely stored on a small flashrom...

MorphOS expects people who recognise and try to use its special features and interesting potentialities. This may be the trigger that will start a new, fast, well-supported development phase. Among the readers of this article, there could be new users attracted by the efficience, flexibility, or esoteric aspect of MorphOS. And maybe this article will be read even by VIPs who could see an occasion for the profit of their companies, and will help to construct a brilliant future for this OS.

 
Useful links

MorphOS community sites
The center around which everything turns is MorphZone; other important sites are: Pegasos.org; Obligement; #amigazeux; Amiga Impact.

News sites and Forums
MorphOS-News; Amiga-News; AmigaNN; AmigaWorld; Amiga.org; Moo bunny.

MorphOS development sites
MorphOS-Team; Ambient Desktop; MorphOS Developer Connection.

Hardware related sites
Genesi; PegasosPPC; MorphOSPPC; Freescale MobileGT Platform.

Software related sites
Aminet; MorphOS-news; MorphZone.

Amiga history
Amiga history guide; The history of the Pegasos.

Manuals (PDF format)
Le livre du Pegasos; and its translations: The Pegasos Book, etc..

FAQs
MorphZone Quick Help.

Reviews
DoctorMorbius_FP Homepage.

 
F.A.Q.

How can I go online to download the TCP/IP stack if MorphOS CD has no TCP/IP stack?
[Ironic reply] Please explain us how did you download the MorphOS CD...
[Serious reply] This issue in practice does not exist. (1) If you have an Amiga with a PowerPC accelerator, you already have a TCP/IP stack and can use it with MorphOS. (2) If you purchased an ODW by Genesi, you already have one or more Linux distributions installed, so you can use the Linux environment to download everything you need for MorphOS. (3) The problem can really occur if you purchased only a PegasosPPC board to make your own modding experiment. In such a case you are sufficiently smart and skilled to ask the seller for the MorphOS CD and a TCP/IP stack or to download both by means of another computer.

I'm installing MorphOS and the installation script requires that I create and format two partitions: one very small FFS partition for the boot.img file, and one larger, bootable, possibly SFS, partition for system files. You said only one is necessary.
This behaviour of MorphOS installation procedure is justified by the necessity to be compatible with the past. Old versions of the HAL/OF were able to manage only FFS partitions. So the boot.img was put in a FFS partition to let the HAL/OF be able to run it. On the other hand, it was/is better to put system files on a SFS partition, due to its higher reliability. New versions of the HAL/OF can read SFS partitions, and PFS partitions as well, so you can put everything on a single reliable partition.

You said that MorphOS is very close to be a Real Time OS. This has no meaning at all, because a RTOS has precise technical specifications. Otherwise, given a computer fast enough, every OS might be RT.
This is not an article for engineers and scientists, otherwise it would be much longer and boring. So, information is passed to the reader even through simple analogies. In this case the idea is that, given the hardware where typically MorphOS runs (PegasosPPC boards), this OS is extremely fast in absolute terms. Furthermore, in relative terms, there is a notable difference between the speed of MorphOS and the speed of PowerPC Linux distributions. The important information is that the speed ratio would remain approximately the same in favour of MorphOS even if the hardware was much faster. MorphOS is ultimately too closer to a RTOS than Linux.

In previous versions of the article I read different values for the size of MorphOS as a whole. What is the real size of MorphOS?
The number that should have been present in the first edition of the article was 15 Megabytes, but the "1" was lost in some phase of the frenetic final production. This explains both the 5 and 15 values. Then a few people suggested that also the boot.img file must be counted in the size of MorphOS, as well as the expanded sizes of the new Ambient and MUI. So the numerical value concerning the size of MorphOS was changed to "less than 20 Megabytes", just to be sure. Anyway, whatever the number, the small footprint character of MorphOS is still there, of course.

You said that Quark and other low-level software are compressed in the boot.img file. Compressed?
The boot.img file is a gzip archive, the real image file (bootpegasos2rom.img) is inside and is extracted and run by the HAL/OF.

You said that Quark supports memory protection and virtual memory, but it seems these features are not active.
Memory protection did not exist in the AmigaOS, and is not implemented within the ABox of MorphOS for compatibility reasons (almost all the legacy applications would not be able to run correctly with memory protection). On the other hand, memory protection is usable within the QBox and will be available for future applications especially designed for QBox when the migration of hardware drivers from ABox to QBox will take place. Virtual memory was implemented in the beginning of MorphOS development, but its upgrade is currently halted, due to very low priority. In fact, the maximal RAM requirements of MorphOS and native/legacy programs are very small in comparison with the usual RAM sizes currently available.

 
Historical notes

Ultracondensed classic Amiga history:
Probably you know that Amiga was considered an extraordinary game machine that gained a large user base in the late 80's and early 90's. But if you think it was only a game console masked as a computer, you are completely in error. It had 4096 colours when PC screens were black and green, it had sound and voice when PCs were dumb, it had pre-emptive multitasking when PCs run one program at a time. So Amiga also collected a community of advanced users, who adopted it for professional uses. After the demise of Commodore in 1994, the Amiga people slowly dispersed. Gamers migrated towards PCs and superconsoles; and most software houses and professional programmers converted their programs and migrated towards PC and Mac platforms. However many hardcore people did not migrate. Some software houses and hardware producers, a few professional programmers, together with many non-professional programmers, hobbyists, amateurs, and advanced users unified themselves into an extremely argumentative (thus vital!) community strongly glued together via the Internet.

Ultracondensed Pegasos/MorphOS history:
For a number of years the Amiga trademark passed from hand to hand without any real evolution, mostly used just as a brand for advertising. In the meanwhile, some extraordinary members of the Amiga community slowly emerged and were able to create something that no other nostalgic community of retro PC amateurs has ever been able to do. They created from scratch a new PowerPC-based hardware platform and a new operating system that were able to collect the Amiga legacy and revive the residual community of hardcore users. The hardware wizards are the guys of bPlan/Genesi, while the software wizards that started everything (Ralph Schmidt, creator of Quark, and Frank Mariak, creator of CGX) are the leaders of the MorphOS Development Team.

Ultracondensed AmigaOne/AmigaOS 4 history:
Another PowerPC-based community emerged in the new century. The penultimate owners of the Amiga trademark, mostly interested to use the brand in another market, outsourced the hardware/software design/production of desktop computers and AmigaOS. This originated the AmigaOne/AmigaOS 4 PowerPC platform. While AmigaOS 4 is still in development, the hardware is now missing because it originated from a developer board that is no longer produced. That half of the Amiga community is now stuck in the difficult search for new hardware, complicated by a penalizing licensing scheme.

 
Contributors

Fulvio "DoctorMorbius_FP" Peruggi wrote most of the original English text.
Andrea "Guruman" Maniero provided many contents for the "Developer tools" section and wrote the "Games" and "MorphOS exclusive software" sections.

Frank Mariak carefully read the text and supervised technical subjects.
Ed Vishoot carefully read the text and made important suggestions for its improvement.
Martin "Senex" Heine made an uncountable number of suggestions and criticisms, and reiterated them until the text was dramatically improved.

Stefan Blixth provided the following pictures: MorphOS1.jpg, MorphOS2.jpg, MorphOS0.jpg, Blender.jpg.
Gunne Steen provided the following pictures: UAE_Workbench.png, AboutMUI.png, MainPrefs.png, AmbientSettings.png, ShowGirls.jpg, MUIPrefs.png, MPlayer.jpg.
Fulvio "DoctorMorbius_FP" Peruggi provided the following pictures: Shell.png, VGP2_001.png, VGP2_007.png, MAME_MorphOS004.jpg, CubicIDE.png.
Andrea "Guruman" Maniero provided the following pictures: quake3_003.jpg, freespace2.jpg, robinh_000.jpg, scummvm_000.jpg, fpse_000.jpg, ANR_003.jpg, showgirls_001.jpg, PTPDigCam_001.jpg, chromium_004.jpg.
Christian "tokai" Rosentreter provided the UAE_SuperFrog.png picture.

Andrea "Guruman" Maniero and Fulvio "DoctorMorbius_FP" Peruggi: Italian translation.
Martin "Senex" Heine and Oliver "Bladerunner" Hummel: German translation.
Andrei "mobydick" Shestakov and "AmiF1team": Russian translation.
Jean-François "Jeffrey" Richard: French translation.
Héctor "Amiades" Juan López: Spanish translation.

This is version 2.02 (2007-01-07) of our collective effort.