WarpOS

Last updated
WarpOS
Developer Haage & Partner
Written in PowerPC assembly language
OS family AmigaOS
Working stateDiscontinued
Initial release1997;26 years ago (1997)
Final release Final / 2007;16 years ago (2007)
Marketing target Amiga
Available in English
Update methodCompile from source code
Platforms Amiga PowerPC
Kernel type Microkernel
Default
user interface
Command-line interface
Preceded by AmigaOS
Succeeded by AmigaOS 4, MorphOS

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.

Contents

It was developed by Sam Jordan using 680x0 and PowerPC assembly language. [8] It was distributed free of charge.

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 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.

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 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.[ citation needed ]

WarpUP

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

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. [1]

Several advantages that WarpUP claims to offer are: [1]

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.

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, and 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. Such tasks are noninterruptible, and scheduling does not take place unless the task explicitly allows to do so. [10]

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 Amiga Hunk format of original Amiga executables in a variant format named Extended Hunk format (EHF), [2] and implemented the hunk type named HUNK_PPC_CODE. [3] This allowed AmigaOS to transparently handle WarpOS executables without needing to patch the OS to recognise them, which PowerUP did need to do to run its ELF file format. While elegant in theory, the EHF format's downfall was its lack of widespread compiler support (especially GNU Compiler Collection (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.

Controversy

Haage & Partner, an Amiga software and hardware manufacturer (which also created AmigaOS 3.9), developed a competing kernel to PowerUP named 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 [1] 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 exclusively 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. [4]

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 versions of software being developed independently. [5] 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.

This resulted in 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 [6] ) 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.[ citation needed ]

The impasse between the competing systems was eventually ended by a PowerUP wrapper for WarpOS by Franke Wille, [7] which allowed running PowerUP software on WarpOS systems.

The bitter infighting in the Amiga community over the two kernels, while brief, produced a rift that eventually culminated in a split between AmigaOS and MorphOS, with most WarpOS and PowerUP developers switching either new AmigaOS implementation respectively.[ citation needed ]

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, Inc. in 2000. [2] When Hyperion Entertainment took over the project, they originally had the same idea, but it was later admitted by their developers that it was of very little use in modernising the OS, being written wholly in non-annotated machine code assembly language. [9]

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 did not recur.

Legacy support in other operating systems

AmigaOS 4

A wrapper was made for AmigaOS 4.0 & 4.1, first it was included, then it was distributed by GuruMedation team, (not to be confused by Amiga's "Blue" Screen of death that also has the same name). This wrapper supported PowerPC 603e, 604e, AMCC440EP, G3 and G4 CPU's. But failed to work on AMCC460 and P.A.Semi PA6T,

Work is under way to make new wrapper named ReWarp. A group named Sakura is responsible for the new wrapper.

MorphOS

MorphOS also uses a wrapper to run WarpUP programs, they also have a wrapper for PowerUP, a WarpOS competitor.

Games for WarpOS

Game was first released on WarpOS, then ported to AmigaOS4.0

Original title: DOOM

(Only for WarpOS, not for AmigaOS)

Original title: Hexen: Beyond_Heretic (Same game named UHexen for AmigaOS4)

Game was first released on WarpOS, then ported to AmigaOS4.0

(Only for WarpOS, not for AmigaOS)

(Only for WarpOS, not for AmigaOS)

Demos for WarpOS

Emulators for WarpOS

Programs for WarpOS

See also

Related Research Articles

<span class="mw-page-title-main">Amiga</span> Family of personal computers sold by Commodore

Amiga is a family of personal computers introduced by Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 16/32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly improved graphics and audio compared to previous 8-bit systems. These systems include the Atari ST—released earlier the same year—as well as the Macintosh and Acorn Archimedes. Based on the Motorola 68000 microprocessor, the Amiga differs from its contemporaries through the inclusion of custom hardware to accelerate graphics and sound, including sprites and a blitter, and a pre-emptive multitasking operating system called AmigaOS.

<span class="mw-page-title-main">Executable and Linkable Format</span> Standard file format for executables, object code, shared libraries, and core dumps.

In computing, the Executable and Linkable Format, is a common standard file format for executable files, object code, shared libraries, and core dumps. First published in the specification for the application binary interface (ABI) of the Unix operating system version named System V Release 4 (SVR4), and later in the Tool Interface Standard, it was quickly accepted among different vendors of Unix systems. In 1999, it was chosen as the standard binary file format for Unix and Unix-like systems on x86 processors by the 86open project.

<span class="mw-page-title-main">PowerPC</span> RISC instruction set architecture by AIM alliance

PowerPC is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple–IBM–Motorola alliance, known as AIM. PowerPC, as an evolving instruction set, has been named Power ISA since 2006, while the old name lives on as a trademark for some implementations of Power Architecture–based processors.

OS-9 is a family of real-time, process-based, multitasking, multi-user operating systems, developed in the 1980s, originally by Microware Systems Corporation for the Motorola 6809 microprocessor. It was purchased by Radisys Corp in 2001, and was purchased again in 2013 by its current owner Microware LP.

MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the Efika and mobileGT. Since MorphOS 2.4, Apple's Mac mini G4 is supported as well, and with the release of MorphOS 2.5 and MorphOS 2.6 the eMac and Power Mac G4 models are respectively supported. The release of MorphOS 3.2 added limited support for Power Mac G5. The core, based on the Quark microkernel, is proprietary, although several libraries and other parts are open source, such as the Ambient desktop.

<span class="mw-page-title-main">Pegasos</span>

Pegasos is a MicroATX motherboard powered by a PowerPC 750CXe or PowerPC 7447 microprocessor, featuring three PCI slots, one AGP slot, two Ethernet ports, USB, DDR, AC'97 sound, and FireWire. Like the PowerPC Macintosh counterparts, it boots via Open Firmware.

In computing, Quark is an operating system kernel used in MorphOS. It is a microkernel designed to run fully virtualized computers, called boxes. As of 2020, only one box is available, the ABox, that lets users run extant AmigaOS software compiled for Motorola 68000 series and PowerPC central processing units (CPUs).

<span class="mw-page-title-main">Rosetta (software)</span> Operating system component

Rosetta is a dynamic binary translator developed by Apple Inc. for macOS, an application compatibility layer between different instruction set architectures. It enables a transition to newer hardware, by automatically translating software. The name is a reference to the Rosetta Stone, the artifact which enabled translation of Egyptian hieroglyphs.

<span class="mw-page-title-main">Phase5</span>

Phase5 Digital Products is a defunct German computer hardware manufacturer that developed third-party hardware primarily for the Amiga platform. Their most popular products included CPU upgrade boards, SCSI controllers and graphics cards.

The Amiga computer can be used to emulate several other computer platforms, including legacy platforms such as the Commodore 64, and its contemporary rivals such as the IBM PC and the Macintosh.

AmigaOS is the proprietary native operating system of the Amiga personal computer. Since its introduction with the launch of the Amiga 1000 in 1985, there have been four major versions and several minor revisions of the operating system.

<span class="mw-page-title-main">AmigaOS 4</span> Line of Amiga operating systems

AmigaOS 4 is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code developed by Commodore, and partially on version 3.9 developed by Haage & Partner. "The Final Update" was released on 24 December 2006 after five years of development by the Belgian company Hyperion Entertainment under license from Amiga, Inc. for AmigaOne registered users.

<span class="mw-page-title-main">AROS Research Operating System</span> Operating system

AROS Research Operating System is a free and open-source multi media centric implementation of the AmigaOS 3.1 application programming interface (API). Designed to be portable and flexible. As of 2021, ports are available for personal computers (PCs) based on x86 and PowerPC, in native and hosted flavors, with other architectures in development. In a show of full circle development, AROS has been ported to the Motorola 68000 series (m68k) based Amiga 1200, and there is also an ARM port for the Raspberry Pi series.

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. The file format was originally defined by MetaComCo. as part of TRIPOS, which formed the basis for AmigaDOS. This kind of executable got its name from the fact that the software programmed on Amiga is divided in its internal structure into many pieces called hunks, in which every portion could contain either code or data.

<span class="mw-page-title-main">AmigaOS</span> Operating system for Amiga computers

AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

Warp3D was a project, founded by Haage & Partner in 1998, that aimed to provide a standard API which would enable programmers to access, and therefore use, 3D hardware on the Amiga.

<span class="mw-page-title-main">PowerUP (accelerator)</span>

PowerUP boards were dual-processor accelerator boards designed by Phase5 Digital Products for Amiga computers. They had two different processors, a Motorola 68000 series (68k) and a PowerPC, working in parallel, sharing the complete address space of the Amiga computer system.

<span class="mw-page-title-main">Haage & Partner</span> German company

Haage & Partner is a German company established in 1995. The company distributes software products where they usually are the exclusive distributor. Products are aimed at Microsoft Windows and Mac OS, and has been aimed at AmigaOS in the past. The primary destination countries are Germany, Austria, and Switzerland.

<span class="mw-page-title-main">AmigaOS 4 version history</span>

A new version of AmigaOS was released on December 24, 2006 after five years of development by Hyperion Entertainment (Belgium) under license from Amiga, Inc. for AmigaOne registered users.

<span class="mw-page-title-main">DraCo</span>

The DraCo, also known as DraCo Vision in one of its later models, was a non-linear video editing workstation created by MacroSystem Computer GmbH in 1994, based on the Amiga platform.

References

  1. 1 2 3 "WarpUP". Haage & Partner . 11 April 2007. Archived from the original on 29 October 2020. Retrieved 14 June 2010.
Notes
  1. ^ Warpsness problems :( Steffen Haeuser explains WarpUp kernel at comp.sys.amiga.games
  2. ^ See also pages regarding history of the PPC processor on Amiga at Amiga.History site.
  3. ^ EHF specifications Archived 2007-11-16 at the Wayback Machine on Haage&Partners site.
  4. ^ BlizzardPPC Flash Why WarpOS and Warp3D have problems with Blizzard PPC
  5. ^ Dietrich, Wolf; Amiga Report Magazine Archived 2011-07-07 at the Wayback Machine Haage and Partner Announce WarpUP, Phase5 Blasts H&P
  6. ^ comp.sys.amiga.games Steffen Haeuser comments ELF
  7. ^ ppclibemu ppc.library emulation under WarpOS
  8. ^ List of software projects of Sam Jordan
  9. ^ Interview with Ben Hermans from Hyperion Benjamin Hermans comments WarpOS
  10. ^ Jordan, S: powerpc.library/WarpOS history. 2001

Further reading