Platform expansion

From MorphOS Library

Revision as of 18:23, 7 December 2009 by Guruman (talk | contribs) (Reintroduced weblinks, italic and screenshots.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

CubicIDE editing an HTML document and an ARexx script
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.

An old version of MPlayer on MorphOS
The 3D modeling and rendering program 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 and 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 a few 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.

Origyn Web Browser
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. As mentioned above, one 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 port is the MorphOS version of the Origyn Web Browser (OWB), which is - like Apple's Safari - based on the WebKit engine and thus provides MorphOS users with a state-of-the-art browser. Again the MorphOS version is not just a quick recompile but diligently integrated into the overall look & feel of the operating system (including ARexx support), providing all the common user's needs like cookie and password management, support for different languages and mime types, content blocking, configurable context menus e.g. displaying recently closed tabs and visited sites, session saving/restoration and also a Flash-plugin based on the MorphOS port of swfdec.