WarpOS is a multitasking kernel for the PowerPC (PPC) architecture central processing unit (CPU) developed by Haage & Partner for the Amiga computer platform in the late 1990s and early 2000s. It runs on PowerUP accelerator boards developed by phase5 which contains both a Motorola 68000 series CPU and a PowerPC CPU with shared address space. WarpOS runs alongside the 68k-based AmigaOS, which can 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 assembly language. It was distributed free of charge.

WarpOS

History

In 1997, Phase5, 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 on board in an erasable programmable read-only memory (EPROM), a similar kernel designed to allow AmigaOS application software to use both PPC and 68k applications through an application programming interface (API) library named . AmigaOS still required a 68K processor, while the PPC was in effect used as an extremely fast coprocessor that carried out specific instructions.

WarpOS

This causes significant slowdown when the OS task switches between the 68K and PPC (a context switch), because CPU caches must be flushed to maintain memory integrity. The more CPU switches occur in an application, the more the slowdown, often so much that it was pointless to use the PPC processor, being slower than the 68k native binary. The main workaround for this was to simply 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

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.

WarpUP

WarpUP is a high-speed kernel for PowerPC versions of Amiga.

WarpUP forms a hardware abstraction layer between the hardware and software, and ensures that the applications function correctly on PowerPC architecture. It also forms an interface between PowerPC driven hardware, and 68k compliant software, which allows the optimal exploitation of the speed of the PowerPC CPU, while making the porting of 68k applications as easy as possible.

Several advantages that WarpUP claims to offer are: High speed communication between 68k programs and PowerPC CPUs Native multi-tasking, memory management, semaphores, list and tag management, signalling and message handling Memory protection (tasks are allowed to allocate to protected memory areas if need be) Virtual Signals (signals are shared between CPUs and will always be redirected to the correct CPU when needed) Inter-CPU messaging system (messages are passed between the CPUs when needed) Optimal use of the PowerPC memory management unit and the PowerPC CPU cache Memory management unit and exception-handling support for applications PowerSave function that turns the PowerPC off if no applications are using it PowerPC Enforcer, protects the first page of memory A detailed crash requester that provides detailed information to help developers locate errors Integrated debugging system that enables bug tracking easier Specific support for highly optimized software such as games and demos Support for Amiga-compliant applications Libraries for PowerPC native, mixed, and fat binary applications WarpUP is also usable for alternative developer systems such as Modula- or E-compilers with PowerPC support. This is because objects are not mandatorily created in Executable and Linkable Format (ELF). Instead, the Amiga compliant hunk format can be used also. Easy to install Hardware independent

Features

WarpOS had similar features to PowerUP, but with some major differences. Most pertinently, it used the PowerOpen application binary interface (ABI), in contrast to PowerUP which used the newer and better supported UNIX System V (SysV), which ensured both kernels could not be directly compatible.