WarpOS
Encyclopedia
WarpOS was a multi-tasking kernel for the PowerPC
architecture developed by Haage & Partner
for the Amiga
computer platform in the late 1990s and early 2000s. It ran on PowerUP
accelerator boards developed by phase5
which contained both a Motorola 68000 family CPU and a PowerPC CPU with shared address space. WarpOS ran alongside the 68k-based AmigaOS
, which could use the PowerPC as a coprocessor
. Despite its name, it is not an operating system
(OS), but a kernel; it supplies a limited set of functions similar to those in AmigaOS for using the PowerPC. When released its original name was WarpUP, but was changed to reflect its greater feature set, and possibly to avoid comparison with its competitor, PowerUP.
It was developed by Sam Jordan using 680x0 and PowerPC assembler. It was distributed free of charge.
, an Amiga
hardware manufacturer, launched their range of PowerPC (PPC) accelerators for the Amiga. Because AmigaOS was not yet PowerPC native, as a stopgap measure the PowerUP boards were dual-processor boards, incorporating the PPC and a 68K processor (68LC040, 68040 at 25 MHz or 68060 at 50 MHz). They carried the PowerUP kernel onboard in an EPROM
, a similar kernel designed to allow AmigaOS applications to use both PPC and 68k applications through an API library called ppc.library. AmigaOS still required a 68K processor, while the PPC was in effect used as an extremely fast coprocessor that carried out specific instructions.
Unfortunately, this caused significant slowdown when the OS task switches between the 68K and PPC (a context switch), because CPU caches had to be flushed to maintain memory integrity. The more CPU switches occur in an application, the more the slowdown, often so seriously that it was pointless to use the PPC processor at all, being slower than the 68k native binary. The main workaround for this was simply to avoid as many 68k OS calls as possible, or to group them together, but it was difficult and time-consuming for developers to do this.
WarpOS was launched as a controversial alternative to Phase5's PowerUP kernel, but eventually became the most used and nominally the standard PPC kernel on AmigaOS.
ABI
, in contrast to PowerUP which used the newer and better supported SysV
, which ensured both kernels could not be directly compatible.
From version 14, the WarpOS kernel used a slightly different multitasking scheduler
than AmigaOS (or PowerUP), based on that in Unix systems with "nice" values as well as priorities for its own tasks and processes. This was meant to ensure that all tasks got CPU time, and weren't "starved" of CPU time by compute-intensive tasks (as was the case with the original AmigaOS scheduler). However, this was ineffective as it was still limited by the native AmigaOS scheduler and it did create extra difficulties synchronising with the 68k side (particularly for sound). In version 15 WarpOS introduced a concept called atomic tasks. Atomic tasks are non-interruptible, and scheduling does not take place unless the task explicitly allows to do so.
WarpOS also had an inbuilt debugger which could be sent to dump information on any crashed tasks to either console window on screen or to serial, depending on environment variables.
One of the most lauded features of WarpOS was that it continued the "hunk" format of original Amiga executables which implemented the Amiga Hunk
format of executables. This format was called EHF (Extended Hunk format), and implemented the hunk type named HUNK_PPC_CODE. This allowed AmigaOS to transparently handle WarpOS executables without having to patch the OS to recognise them, which PowerUP did have to do to run its ELF
fileformat. While elegant in theory, the EHF format's downfall was its lack of widespread compiler support (especially GCC
), and the ELF file format was adopted by AmigaOS 4
and MorphOS
.
Unlike PowerUP, WarpOS could also produce mixed (fat) binaries with both 68k and PPC code, which could run on both Amiga PPC boards and ordinary Amiga systems. This practice was very rare due to the programming complexity of doing so, but the picture datatype in AmigaOS 3.9 (a shared library that loaded, processed and dithered pictures through the AmigaOS datatypes system) was a notable example of its use. PPC equipped systems would notice an immediate large speed-up, while 68k systems and emulators would still be compatible without having crashing or installing another binary.
WarpOS had two housekeeping tasks named Defiant and Babylon5, thought to be named after the USS Defiant
from Star Trek DS9
and Babylon 5
, its developers being science fiction
fans. These would often be reported by new users who did not know what they were appearing in tasks lists.
, an Amiga software and hardware manufacturer (which also created AmigaOS 3.9), developed a competing kernel to PowerUP called WarpUP, which they claimed would work around the context switching problem, a claim which would be bitterly challenged by Phase5. Phase5 claimed correctly that this hardware problem could not be circumvented by simply optimising the kernel and was a limitation inherent to the almost unique board design, which shared the memory bus between two CPUs of radically different families. WarpOS versions up to V7 were wrappers added around Phase5's PowerUP kernel but starting from version 8 it was its own PPC kernel running alongside AmigaOS and was renamed WarpOS.
As PowerUP was on the EPROM of the boards and Phase5 could not run at the same time with WarpOS, it had to be deactivated by a small software tool. As H&P did not have access to the EPROM, the tool had to make assumptions about the PowerUP kernel and naturally this broke in updated versions. This led to open accusations by WarpOS advocates and by the author, Sam Jordan, that Phase5 were intentionally trying to prevent WarpOS running on their boards. Phase5 also claimed that Haage & Partner abused a free developer board gifted to them to launch this competing kernel (although free, WarpOS was supported almost excusively by H&P's commercial StormC++ compiler), and that they had reverse-engineered PowerUP to do so. H&P pointed out that it was unavoidable as long Phase5 refused to allow users to choose what kernel to put on the board EPROM, claiming that the PowerUP kernel was essential for initialising the boards on boot and erasing them would simply render the boards useless.
Worse still, users were originally only able to run one of these kernels, resulting in much duplication of effort between competing developers determined to use one or the other, often with two version of software being developed independently. Despite there being little or no real difference in performance, debugging capability, usability or stability in either system, and it had become patently clear that neither could hope to work around the hardware context switch issue, a series of claims were made on each side and much fighting in Usenet followed.
The farce generated produced a great number of hurriedly ported, often semi-functional ports of open source software from Windows, often just to "one up" the other side. Steffen Haeuser (who had gained notoriety by declaring, "ELF is a monster !!!", referring to the ELF fileformat) of Hyperion Entertainment CVBA was particularly infamous for his "political" ports being so rushed that they lacked sound or were very unstable, being released just to make up the numbers and produce a list of software greater than that of PowerUP.
The impasse between the competing systems was eventually ended by a PowerUP wrapper for WarpOS by Franke Wille, which allowed users to run software compiled for both on their systems, and also effectively made WarpOS the unofficial PowerPC standard on 68k AmigaOS, and that used by both AmigaOS 3.9 and most available PowerPC games for the Amiga.
WarpOS was intended to be used as a basis for AmigaOS 4
but Haage & Partner dropped the project when their "AmigaOS 4 PPC" contract was cancelled by Amiga in 2000. When Hyperion Entertainment
took over the project they originally had the same idea, but it was later admitted by their developers that that it proved very little use in modernising the OS, being written wholly in non-annotated machine code assembler.
The choice of WarpOS over its rival proved to be a Pyrrhic victory, as the standards it had developed around - namely EHF and PowerOpen - were to be wholly abandoned in later development of AmigaOS and its clones. The dual CPU model was not revisited.
AmigaOS 4 dropped initial scant support for WarpOS, with Hyperion Entertainment preferring to port its WarpOS games to the new OS rather than attempt to implement it. MorphOS
is more compatible and can run both WarpOS and PowerUP applications natively using API wrapping, despite the differences in ABI.
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
architecture developed by Haage & Partner
Haage & Partner
Haage & Partner is a German company established in 1995. They distribute software products where they usually are the exclusive distributor. Products are aimed at Microsoft Windows and Mac OS. The primary destination countries are Germany, Austria, and Switzerland.Other areas include translations...
for the Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...
computer platform in the late 1990s and early 2000s. It ran on PowerUP
PowerUP (accelerator)
PowerUP boards were dual-processor 68k–PowerPC accelerator boards designed by Phase5 Digital Products for Amiga computers. They had two different processors working in parallel, sharing the complete address space of the Amiga computer system.-History:...
accelerator boards developed by phase5
Phase5
Phase5 Digital Products was a computer hardware manufacturer that made boards for the Amiga computer. Their best known products were accelerator boards which replaced the CPU with a faster model...
which contained both a Motorola 68000 family CPU and a PowerPC CPU with shared address space. WarpOS ran alongside the 68k-based AmigaOS
AmigaOS
AmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...
, which could use the PowerPC as a coprocessor
Coprocessor
A coprocessor is a computer processor used to supplement the functions of the primary processor . Operations performed by the coprocessor may be floating point arithmetic, graphics, signal processing, string processing, or encryption. By offloading processor-intensive tasks from the main processor,...
. Despite its name, it is not an operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
(OS), but a kernel; it supplies a limited set of functions similar to those in AmigaOS for using the PowerPC. When released its original name was WarpUP, but was changed to reflect its greater feature set, and possibly to avoid comparison with its competitor, PowerUP.
It was developed by Sam Jordan using 680x0 and PowerPC assembler. It was distributed free of charge.
History
In 1997, Phase5Phase5
Phase5 Digital Products was a computer hardware manufacturer that made boards for the Amiga computer. Their best known products were accelerator boards which replaced the CPU with a faster model...
, an Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...
hardware manufacturer, launched their range of PowerPC (PPC) accelerators for the Amiga. Because AmigaOS was not yet PowerPC native, as a stopgap measure the PowerUP boards were dual-processor boards, incorporating the PPC and a 68K processor (68LC040, 68040 at 25 MHz or 68060 at 50 MHz). They carried the PowerUP kernel onboard in an EPROM
EPROM
An EPROM , or erasable programmable read only memory, is a type of memory chip that retains its data when its power supply is switched off. In other words, it is non-volatile. It is an array of floating-gate transistors individually programmed by an electronic device that supplies higher voltages...
, a similar kernel designed to allow AmigaOS applications to use both PPC and 68k applications through an API library called ppc.library. AmigaOS still required a 68K processor, while the PPC was in effect used as an extremely fast coprocessor that carried out specific instructions.
Unfortunately, this caused significant slowdown when the OS task switches between the 68K and PPC (a context switch), because CPU caches had to be flushed to maintain memory integrity. The more CPU switches occur in an application, the more the slowdown, often so seriously that it was pointless to use the PPC processor at all, being slower than the 68k native binary. The main workaround for this was simply to avoid as many 68k OS calls as possible, or to group them together, but it was difficult and time-consuming for developers to do this.
WarpOS was launched as a controversial alternative to Phase5's PowerUP kernel, but eventually became the most used and nominally the standard PPC kernel on AmigaOS.
Features
WarpOS had similar features to PowerUP, but with some major differences. Most pertinently, it used the PowerOpenPowerOpen Environment
The PowerOpen Environment , created in 1991, is an open standard for running a Unix-based operating system on the PowerPC computer architecture.The POE contains API and ABI specifications...
ABI
Application binary interface
In computer software, an application binary interface describes the low-level interface between an application program and the operating system or another application.- Description :...
, in contrast to PowerUP which used the newer and better supported SysV
UNIX System V
Unix System V, commonly abbreviated SysV , is one of the first commercial versions of the Unix operating system. It was originally developed by American Telephone & Telegraph and first released in 1983. Four major versions of System V were released, termed Releases 1, 2, 3 and 4...
, which ensured both kernels could not be directly compatible.
From version 14, the WarpOS kernel used a slightly different multitasking scheduler
Scheduling (computing)
In computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...
than AmigaOS (or PowerUP), based on that in Unix systems with "nice" values as well as priorities for its own tasks and processes. This was meant to ensure that all tasks got CPU time, and weren't "starved" of CPU time by compute-intensive tasks (as was the case with the original AmigaOS scheduler). However, this was ineffective as it was still limited by the native AmigaOS scheduler and it did create extra difficulties synchronising with the 68k side (particularly for sound). In version 15 WarpOS introduced a concept called atomic tasks. Atomic tasks are non-interruptible, and scheduling does not take place unless the task explicitly allows to do so.
WarpOS also had an inbuilt debugger which could be sent to dump information on any crashed tasks to either console window on screen or to serial, depending on environment variables.
One of the most lauded features of WarpOS was that it continued the "hunk" format of original Amiga executables which implemented the Amiga Hunk
Amiga Hunk
Hunk is the executable file format of tools and programs of the Amiga Operating System based on Motorola 68000 CPU and other processors of the same family....
format of executables. This format was called EHF (Extended Hunk format), and implemented the hunk type named HUNK_PPC_CODE. This allowed AmigaOS to transparently handle WarpOS executables without having to patch the OS to recognise them, which PowerUP did have to do to run its ELF
Executable and Linkable Format
In computing, the Executable and Linkable Format is a common standard file format for executables, object code, shared libraries, and core dumps. First published in the System V Application Binary Interface specification, and later in the Tool Interface Standard, it was quickly accepted among...
fileformat. While elegant in theory, the EHF format's downfall was its lack of widespread compiler support (especially GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
), and the ELF file format was adopted by AmigaOS 4
AmigaOS 4
AmigaOS 4, , is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code, and partially on version 3.9 developed by Haage & Partner...
and MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...
.
Unlike PowerUP, WarpOS could also produce mixed (fat) binaries with both 68k and PPC code, which could run on both Amiga PPC boards and ordinary Amiga systems. This practice was very rare due to the programming complexity of doing so, but the picture datatype in AmigaOS 3.9 (a shared library that loaded, processed and dithered pictures through the AmigaOS datatypes system) was a notable example of its use. PPC equipped systems would notice an immediate large speed-up, while 68k systems and emulators would still be compatible without having crashing or installing another binary.
WarpOS had two housekeeping tasks named Defiant and Babylon5, thought to be named after the USS Defiant
USS Defiant
The USS Defiant is a fictional starship in the television series Star Trek: Deep Space Nine and the feature film Star Trek: First Contact...
from Star Trek DS9
Star Trek: Deep Space Nine
Star Trek: Deep Space Nine is a science fiction television series set in the Star Trek universe...
and Babylon 5
Babylon 5
Babylon 5 is an American science fiction television series created, produced and largely written by J. Michael Straczynski. The show centers on a space station named Babylon 5: a focal point for politics, diplomacy, and conflict during the years 2257–2262...
, its developers being science fiction
Science fiction
Science fiction is a genre of fiction dealing with imaginary but more or less plausible content such as future settings, futuristic science and technology, space travel, aliens, and paranormal abilities...
fans. These would often be reported by new users who did not know what they were appearing in tasks lists.
Controversy
Haage & PartnerHaage & Partner
Haage & Partner is a German company established in 1995. They distribute software products where they usually are the exclusive distributor. Products are aimed at Microsoft Windows and Mac OS. The primary destination countries are Germany, Austria, and Switzerland.Other areas include translations...
, an Amiga software and hardware manufacturer (which also created AmigaOS 3.9), developed a competing kernel to PowerUP called WarpUP, which they claimed would work around the context switching problem, a claim which would be bitterly challenged by Phase5. Phase5 claimed correctly that this hardware problem could not be circumvented by simply optimising the kernel and was a limitation inherent to the almost unique board design, which shared the memory bus between two CPUs of radically different families. WarpOS versions up to V7 were wrappers added around Phase5's PowerUP kernel but starting from version 8 it was its own PPC kernel running alongside AmigaOS and was renamed WarpOS.
As PowerUP was on the EPROM of the boards and Phase5 could not run at the same time with WarpOS, it had to be deactivated by a small software tool. As H&P did not have access to the EPROM, the tool had to make assumptions about the PowerUP kernel and naturally this broke in updated versions. This led to open accusations by WarpOS advocates and by the author, Sam Jordan, that Phase5 were intentionally trying to prevent WarpOS running on their boards. Phase5 also claimed that Haage & Partner abused a free developer board gifted to them to launch this competing kernel (although free, WarpOS was supported almost excusively by H&P's commercial StormC++ compiler), and that they had reverse-engineered PowerUP to do so. H&P pointed out that it was unavoidable as long Phase5 refused to allow users to choose what kernel to put on the board EPROM, claiming that the PowerUP kernel was essential for initialising the boards on boot and erasing them would simply render the boards useless.
Worse still, users were originally only able to run one of these kernels, resulting in much duplication of effort between competing developers determined to use one or the other, often with two version of software being developed independently. Despite there being little or no real difference in performance, debugging capability, usability or stability in either system, and it had become patently clear that neither could hope to work around the hardware context switch issue, a series of claims were made on each side and much fighting in Usenet followed.
The farce generated produced a great number of hurriedly ported, often semi-functional ports of open source software from Windows, often just to "one up" the other side. Steffen Haeuser (who had gained notoriety by declaring, "ELF is a monster !!!", referring to the ELF fileformat) of Hyperion Entertainment CVBA was particularly infamous for his "political" ports being so rushed that they lacked sound or were very unstable, being released just to make up the numbers and produce a list of software greater than that of PowerUP.
The impasse between the competing systems was eventually ended by a PowerUP wrapper for WarpOS by Franke Wille, which allowed users to run software compiled for both on their systems, and also effectively made WarpOS the unofficial PowerPC standard on 68k AmigaOS, and that used by both AmigaOS 3.9 and most available PowerPC games for the Amiga.
Legacy
The bitter infighting in the Amiga community over the two kernels, while brief, was to produce a rift that would eventually culminate in the split between AmigaOS and MorphOS, with the majority of WarpOS and PowerUP developers switching either new AmigaOS implementation respectively.WarpOS was intended to be used as a basis for AmigaOS 4
AmigaOS 4
AmigaOS 4, , is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code, and partially on version 3.9 developed by Haage & Partner...
but Haage & Partner dropped the project when their "AmigaOS 4 PPC" contract was cancelled by Amiga in 2000. When Hyperion Entertainment
Hyperion Entertainment
Hyperion Entertainment CVBA is a Belgian software company which in its early years focused in porting Windows games to Amiga, Linux and Macintosh. Later on, they were contracted by Amiga Incorporated to develop AmigaOS 4 and retired from the gaming business...
took over the project they originally had the same idea, but it was later admitted by their developers that that it proved very little use in modernising the OS, being written wholly in non-annotated machine code assembler.
The choice of WarpOS over its rival proved to be a Pyrrhic victory, as the standards it had developed around - namely EHF and PowerOpen - were to be wholly abandoned in later development of AmigaOS and its clones. The dual CPU model was not revisited.
AmigaOS 4 dropped initial scant support for WarpOS, with Hyperion Entertainment preferring to port its WarpOS games to the new OS rather than attempt to implement it. MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...
is more compatible and can run both WarpOS and PowerUP applications natively using API wrapping, despite the differences in ABI.