AmiOPEN and AmiOS

I found this on my Hard disc when I was digging around at old stuff. It's an idea to take a specification for the Amiga which can be used across multiple platforms.

It was once posted to:


This may be reposted to other news groups, but any comments should go to the above groups. This document should be considered as a piece of freewear - i.e. may be copied freely but copyright remains with the author.

Nicholas Blachford 1997

Potential hardware and manufacturer independent Amiga based operating system.

NOTE: This is just an idea/proposal, it does not exist as yet.

It is becoming obvious that there are now quite a number of companies who are interested in producing a variety of Amigas for a number of different markets. The low end market may be all but dead but the high end Amiga market is alive, well and raring to go.

It is here that the problem lies, because the Amiga is yet again up in limbo no one can really do anything unless they already have a license from Amiga Technologies to use AmigaOS. We are in danger of ending up in a situation where a number of platforms appear all based on the Amiga but all slightly different and requiring slightly different programs - If I write an Amiga Program is it guaranteed to run on the A1200, A4000, PIOS ONE, phase5s PowerUP and A\BOX, AROS, UAE, QuikPaks planned Alphas, VISCorps ED and whatever else does (or does not) appear? This will lead to the market fragmenting and that is quite possibly the worst possible thing that could happen to the Amiga.

What we need is a single unified operating system that runs on all Amiga based platforms and if possible other systems as well, in other words AmigaOS needs to become a proper cross platform operating system. When you write a program for one Amiga it should be nothing more than a recompile to get it to work on another. The hardware would be accessed via a Hardware Abstraction Layer (HAL), the hardware would have to provide certain functions for it to work consistently but this would not be a problem. This could be done by whoever owns the Amiga next but ultimately its up to them if they want their competitors to use their operating system. This may seem obvious but it has two major disadvantages, firstly what if the new owners decide not to license AmigaOS and, secondly what if the new owners go the way of Commodore and Escom and join the great computer manufacturers in the sky. One owner making AmigaOS fully cross platform does not guarantee the future of the Amiga. If we really want the Amiga to have a long term future it not only has to survive being ported to different hardware platforms but it even has to survive bankruptcy!

AmiOPEN and AmiOS
My proposed solution to this is take an Amiga Programming Specification or APS (Whatever an Amiga program needs to work, be that API, disc format, and whatever else etc.) and take it away from one manufacturer and let them all use it. An APS is the way you talk to the operating system, not the operating system itself - AmigaOS will still be owned by whoever purchases Amiga Technologies.

This could involve putting the APS into the public domain but this in itself has problems so what I propose is to take either the Amiga APS or something very similar and give control of it to a independent non-profit making company. By non-profit I mean the company will not pay any income to its owners but rather any income will go direct to running costs, acquisitions, further development, payment to contributors and charity donations. The name Ive suggested here for the company is AmiOPEN which comes from AmigaOPEN, the Amiga name is a trademark and Ive thus shortened it.

This organisation would license the use of the APS and regulate its use and any changes made to it. It would permit the creation of both commercial and public domain operating systems based on the APS and allow the inclusion of the APS into existing commercial or public domain operating systems. Commercial sales would fund the organisation via licence fees related to the cost of product sold - Someone selling systems would not be permitted to include a PD version of the AmiOS, or they could but they would have to pay a (small) license fee for every copy shipped. A few examples of what would be allowed are a public domain AmigaOS clone based on the APS, a version of Linux which included the APS or a commercial operating system like MacOS or OS/2 could also include the APS (not MS Windows - this is meant to be an alternative OS). Any Amiga based machine could of course use the original AmigaOS or create their own OS based on the APS. AmiOPEN itself would endeavour to create an implementation of an AmiOPEN operating system called AmiOS which would be available to all users and system vendors.

Cross platform software
One thing that could be included into the AmiOS APS would be a means of writing and porting software to different processors running a compliant OS. This could be done either by creating assemblers for each processor or a better system would be to work like Suns Java language and use an intermediate language. Rather than compiling a program into machine code a compiler would produce an intermediate Bytecode which could then be sold as a commercial product. When the user gets the package the Operating system would convert the Bytecode into native machine code which would then run natively on the systems CPU.

This system is unlike Java where the programs can be interpreted or compiled but rather the AmiOS applications would be compiled when the software is installed - interpretation would be far to slow and would thus not be an option This is also a more advanced system than UNIX where software is sold as source code then compiled by the user, AmiOS software would not be raw source code and a standard installer program would take care of any compilation. Using an intermediate system ensures that any programs are automatically compiled for the right processor taking advantage of any advanced features without any reprogramming, it also means there will be no need in the future for slow emulators when CPUs change. Doing this could make the OS more portable since most operating system code could be held in the intermediate form.

Hardware specifications
Hardware companies will of course want to take advantage of specific features in their computers and AmiOS would have to allow for this. The problem however is that allowing this means that software could become incompatible across systems defeating the entire purpose of AmiOS. To rectify this AmiOS would define specifications for a number of hardware platforms which would be expected by software ranging from home games consoles and set top boxes up to high end workstation type systems. Anyone producing hardware would have to include the minimum specifications for their platform. Most programmers would not be addressing specific hardware so they would write for one of these standards, the program would then operate across all hardware that implements that platform. Additional platforms and upgrades to platforms could also be added at a later date as hardware improves.

Specification changes and additions
Manufacturers would be allowed to add additional software routines to access their hardware or software but this will be on the explicit condition that it is additional to and not part of the AmiOS specification. Some manufacturers may attempt to tie the AmiOS specification to a particular brand of software or hardware, doing this would be a breech of license and would result in termination of the license - forbidding them from supplying any AmiOS compliant OS. Additions to the AmiOS specification would be made by and would be the property of AmiOPEN.

Any operating system will need to keep up with changes in the market place and the AmiOS will be no different, however one difference between operating system vendors and AmiOS is that it will never be allowed to make a profit. Any technology acquired or developed would go into future versions of AmiOS standards and would be automatically covered by existing licences

The purpose of AmiOS would be to create a new form of alternative operating system based around AmigaOS which could run on a large number of platforms but at the same time would be isolated from any one hardware or software manufacturer. The implementation of AmiOS would be up to the user or manufacturer: AmiOS could be included as a separate OS, included into an existing OS or even run on top of another OS like an application. This final system could be the way AmiOS would work on Windows95 since AmiOS is meant to be an alternative OS and licensing to Microsoft would make it instantly mainstream - and almost certainly kill it in the process.

Allowing AmiOS into other commercial operating systems would not be a problem since none of these have sales as big as Windows. UNIX may have large coverage but it is not a single operating system, rather a selection of slightly different varieties of UNIX - exactly what AmiOS is designed to prevent happening to the Amiga. I may sound like a heretic allowing our beloved computer to be spread out here there and everywhere but ultimately a computer survives on software and the inclusion of the APS into other operating systems would ensure wide coverage of the Amiga and that will attract a large range of software. You need only need to look at the popularity of Java to see how a cross platform programming system can suddenly catch the attention of the entire market - AmiOS would also have the advantage like Java of costing very little.

If the owners of AmigaOS went out of business the independent existence of AmiOS would ensure the system and software base would continue to grow allowing developers - like myself - to continue developing in the knowledge that the market wont just vanish. It means a programmer needs only one machine to develop for any number of different machines and a hardware manufacturer is not tied into using any specific hardware.

AmiOS Features
The following is a list of features that should be included in an AmiOS implementation:

Low basic memory requirement - Should leave most RAM free on boot up.
Low processor overhead.
Full pre-emptive multitasking.
GUI based.
Support for existing Amiga standards.
Multimedia support - graphics, sound, video etc.
3D graphics support.
TCP/IP, HTML and Java support (also VRML if possible).
Virtual Memory - (Higher end systems).
Conversion/Emulation software for existing applications.
Development software - all systems should include some form of easy to use programming language/environment to encourage development.
High level programming interface.

Platform specifications
AmiOS software would access these facilities through the OS.
All specifications are minimums.
RAM quoted is System RAM (not graphics RAM).

Specific CPUs quoted for speed only - AmiOS could and should be ported to as many CPUs as possible.
Low speed minimum 68020 14MHz.
Medium speed minimum 68060 / Pentium / PPC603e.
High Speed minimum Alpha 21164A / Pentium Pro / PPC604e.

Specifications for existing systems:

Platform AmiL1 (For compatibility with existing systems - A4000 / expanded A1200)
Floppy and Hard Disc.
4 channel 8 bit audio.
Graphics to 640*480 in 8 bit colour.
PAL and NTSC compatibility.
Low speed CPU.

Platform AmiH1 (High end systems -Draco, PIOS ONE, A/Box, Expanded A4000).
Floppy, Hard and CD drives.
2 channel 16 bit Audio.
Graphics to 1024*768 in 24 bit colour.
Medium Speed CPU.

Platform AmiV1 (Video systems)
Floppy, SCSI 2 Hard disc and CD Drive.
2 Channel 16 bit Audio IN and OUT (Broadcast quality).
Video IN and OUT (Broadcast quality).
Medium speed CPU.

Specifications for future systems:

Platform AmiL2 (Future Low end systems)
Floppy, Hard and CD drives.
2 channels 16 bit Audio.
Graphics to 640*480 in 24 bit colour.
PAL and NTSC compatibility.
Medium speed CPU.

Platform AmiH2 (Future High end systems)
Floppy, Hard and DVD drives.
2 channel 16 bit Audio.
General Midi compatibility (Hardware or Software).
Graphics to 1280*1024 in 24 bit colour.
3D graphics hardware.
MPEG Playback.
High speed CPU.

Platform AmiS1 (Standard - should run on nearly anything)
Floppy drive.
Basic Audio (beep).
Graphics to 320*640 in 4 bit colour.
Any CPU.

Note: These are only a rough example of what could be specified.

Copyright (c) Nicholas Blachford 1997

To the Computer section.

Valid XHTML 1.0!