WarpOS
   HOME

TheInfoList



OR:

WarpOS is a multitasking
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learn ...
for the
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple– IBM– ...
(PPC) architecture
central processing unit A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, a ...
(CPU) developed by
Haage & Partner 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. T ...
for the
Amiga Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and sign ...
computer platform in the late 1990s and early 2000s. It runs on
PowerUP In video games, a power-up is an object that adds temporary benefits or extra abilities to the player character as a game mechanic. This is in contrast to an item, which may or may not have a permanent benefit that can be used at any time chosen ...
accelerator boards developed by
phase5 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. Notab ...
which contains both a
Motorola 68000 series The Motorola 68000 series (also known as 680x0, m68000, m68k, or 68k) is a family of 32-bit complex instruction set computer (CISC) microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and ...
CPU and a PowerPC CPU with shared address space. WarpOS runs alongside the 68k-based
AmigaOS 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 ...
, which can use the PowerPC as a
coprocessor A coprocessor is a computer processor used to supplement the functions of the primary processor (the CPU). Operations performed by the coprocessor may be floating-point arithmetic, graphics, signal processing, string processing, cryptography or I ...
. Despite its name, it is not an
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
(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 In video games, a power-up is an object that adds temporary benefits or extra abilities to the player character as a game mechanic. This is in contrast to an item, which may or may not have a permanent benefit that can be used at any time chosen ...
. It was developed by Sam Jordan using 680x0 and PowerPC
assembly language In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence b ...
. It was distributed free of charge.


History

In 1997,
Phase5 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. Notab ...
, an
Amiga Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and sign ...
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 An EPROM (rarely EROM), or erasable programmable read-only memory, is a type of programmable read-only memory (PROM) chip that retains its data when its power supply is switched off. Computer memory that can retrieve stored data after a power s ...
), a similar kernel designed to allow AmigaOS
application software Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
to use both PPC and 68k applications through an ''application programming interface'' ( API)
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
named . AmigaOS still required a 68K processor, while the PPC was in effect used as an extremely fast
coprocessor A coprocessor is a computer processor used to supplement the functions of the primary processor (the CPU). Operations performed by the coprocessor may be floating-point arithmetic, graphics, signal processing, string processing, cryptography or I ...
that carried out specific instructions. This causes significant slowdown when the OS task switches between the 68K and PPC (a
context switch In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processe ...
), 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.


WarpUP

WarpUP is a high-speed
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learn ...
for
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple– IBM– ...
versions of
Amiga Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and sign ...
. WarpUP forms a
hardware abstraction layer Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
between the hardware and
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consist ...
, 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 In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally desi ...
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 A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware unit having all memory references passed through itself, primarily performing the translation of virtual memory addresses to physical a ...
and the PowerPC
CPU cache A CPU cache is a hardware cache used by the central processing unit (CPU) of a computer to reduce the average cost (time or energy) to access data from the main memory. A cache is a smaller, faster memory, located closer to a processor core, whi ...
* 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 The Modula programming language is a descendant of the Pascal language. It was developed in Switzerland, at ETH Zurich, in the mid-1970s by Niklaus Wirth, the same person who designed Pascal. The main innovation of Modula over Pascal is a modul ...
- or E-
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
s with PowerPC support. This is because
objects Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ai ...
are not mandatorily created in
Executable and Linkable Format In computing, the Executable and Linkable FormatTool Interface Standard (TIS) Portable Formats SpecificationVersion 1.1'' (October 1993) (ELF, formerly named Extensible Linking Format), is a common standard file format for executable files, ...
(ELF). Instead, the Amiga compliant
hunk format Hunk may refer to: Arts and entertainment * ''Hunk'' (film), a 1987 comedy movie starring John Allen Nelson, Steve Levitt, James Coco, and Avery Schreiber * ''The Hunks ''The Hunks'' is a reality television series which first aired on 19 April ...
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 In computer software, an application binary interface (ABI) is an interface between two binary program modules. Often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user. An ...
(ABI), in contrast to PowerUP which used the newer and better supported
UNIX System V Unix System V (pronounced: "System Five") is one of the first commercial versions of the Unix operating system. It was originally developed by AT&T and first released in 1983. Four major versions of System V were released, numbered 1, 2, 3, an ...
(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. WarpOS also had an inbuilt
debugger A debugger or debugging tool is a computer program used to test and debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the programmer to track its executi ...
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 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. This kind of executable got its name from the fact that the software programmed on Amiga ...
'' format of original Amiga
executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data fil ...
s in a variant format named ''Extended Hunk format'' (EHF), and implemented the hunk type named ''HUNK_PPC_CODE''. 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 The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free softwar ...
(GCC)), and the ELF file format was adopted by
AmigaOS 4 AmigaOS 4 (abbreviated as OS4 or AOS4) 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 & Partne ...
and
MorphOS 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 dev ...
. 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 The USS ''Defiant'' is the name of several starships in the Star Trek media franchise, most notably a vessel featured in '' Star Trek: Deep Space Nine'' (1993–1999). Introduced in the show's third season, it is a warship attached to the sho ...
from Star Trek DS9 and
Babylon 5 ''Babylon 5'' is an American space opera television series created by writer and producer J. Michael Straczynski, under the Babylonian Productions label, in association with Straczynski's Synthetic Worlds Ltd. and Warner Bros. Domestic Tele ...
, its developers being
science fiction Science fiction (sometimes shortened to Sci-Fi or SF) is a genre of speculative fiction which typically deals with imaginative and futuristic concepts such as advanced science and technology, space exploration, time travel, parallel uni ...
fans. These would often be reported by new users who did not know what they were appearing in tasks lists.


Controversy

Haage & Partner 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. T ...
, 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 In video games, a power-up is an object that adds temporary benefits or extra abilities to the player character as a game mechanic. This is in contrast to an item, which may or may not have a permanent benefit that can be used at any time chosen ...
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 exclusively by H&P's commercial Storm
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
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 versions 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. 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) 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 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. WarpOS was intended to be used as a basis for
AmigaOS 4 AmigaOS 4 (abbreviated as OS4 or AOS4) 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 & Partne ...
but Haage & Partner dropped the project when their ''AmigaOS 4 PPC'' contract was cancelled by
Amiga, Inc. Amiga, Inc. is a company that used to hold some trademarks and other assets associated with the Amiga personal computer (originally developed by Amiga Corporation). Early years In the early 1980s Jay Miner, along with other Atari, Inc. staffe ...
in 2000. 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. The choice of WarpOS over its rival proved to be a
Pyrrhic victory A Pyrrhic victory ( ) is a victory that inflicts such a devastating toll on the victor that it is tantamount to defeat. Such a victory negates any true sense of achievement or damages long-term progress. The phrase originates from a quote from ...
, as the standards it had developed around, namely EHF and PowerOpen, were to be wholly abandoned in later development of AmigaOS and its
clones Clone or Clones or Cloning or Cloned or The Clone may refer to: Places * Clones, County Fermanagh * Clones, County Monaghan, a town in Ireland Biology * Clone (B-cell), a lymphocyte clone, the massive presence of which may indicate a pathologi ...
. The dual CPU model did not recur.


Legacy support in other operating systems

AmigaOS 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 ...
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 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 dev ...
also uses a wrapper to run WarpUP programs, they also have a wrapper for PowerUP, a WarpOS competitor.


Games for WarpOS

* CrossFire II * Descent: FreeSpace – The Great War Game was first released on WarpOS, then ported to AmigaOS4.0 * ADoomPPC Original title: DOOM * Earth 2140 * AmiHeretic *
Heretic II ''Heretic II'' is a dark fantasy action-adventure game developed by Raven Software and published by Activision in 1998 continuing the story of Corvus, the main character from its predecessor, ''Heretic''. It is the fourth game in the '' Hexen: B ...
(Only for WarpOS, not for AmigaOS) * WarpHexen Original title: Hexen: Beyond_Heretic (Same game named UHexen for AmigaOS4) * Nightlong: Union City Conspiracy *
Payback Payback may refer to: * Revenge, a harmful action against a person or group in response to a grievance Payback may also refer to: Art, entertainment, and media Fictional entities * Payback, a member of the fictional comics superhero team Shadow ...
* AmiQuake * The Feeble Files * Quake II Game was first released on WarpOS, then ported to AmigaOS4.0 * Shogo: Mobile Armor Division (Only for WarpOS, not for AmigaOS) *
Wipeout 2097 ''Wipeout 2097'' (released as ''Wipeout XL'' in North America and Japan) is a futuristic racing game developed and published by Psygnosis. It is the second installment released in the '' Wipeout series'' and the direct sequel of the original ga ...
(Only for WarpOS, not for AmigaOS)


Demos for WarpOS

* ''PPC/Warp3D'' – demo by CdBS Software; 2nd at UkonxParty 2000 * ''V1.0 Demo'' – PPC/Warp3D by CdBS Software * ''DeathTrial'' – FixPatch 0.1 * ''MusicDisk'' – Earth-Tribe-Media * ''One Day Miracle'' – by Fit ASM'02 64k intro * ''Booring Trip PPC'' – for UkonxParty 4 in France * ''Greuh!Zillement Beta'' – 2nd @ LTP4 * ''Salvation'' – PPC dentro, by Horizontal Lamerz * ''Flow'' – Winner 64kb at FuckYanica One * ''Megademo IV'' – Quick PPC port * ''DeathTrial'' – by Mkd:AGA/CGXwarposPPCAhi+dbplayer * ''Equinoxe demoparty invitation'' * ''PRO_GEAR_SPEC'' – WarpOS PPC demo by mankind * ''Mankind MesaGLUT'' – wos+ahi surreal demo * ''212'' – by Madwizards; 1st at Delirium 2001 * ''Amsterdam Blessings'' – by Madwizards; 3rd at M/S 2001 * ''Cull Bazaar'' – by Madwizards; 11th at Assembly 2001 * ''Nuance "Subtle Shades 2"'' – 5th place at MS2K+1 * ''4th place at MS99 by NUANCE'' * ''NoSyncIzBack!'' – WOS demo 3rd at IGDRP 2. * ''Planet Potion'' – A 64 kB Intro by Potion * ''Suicidal'' – A 64 kB Intro by Potion * ''Sayontsheck'' – PPC AGA Demo by Lamers * ''Luminance'' – PPC WOS v1.1 – UKONX; 1st at Slach 2 1999 * ''NoSync'' – by Universe – WOS demo 3rd at Equinoxe 2003 * ''PowerUp'' – by Universe: Winner WOS demo at Slash 2001 * ''Everything Dies'' – by Venus Art, PPC WarpUP version * ''Ghost'' – by Venus Art, PPC WarpUP version


Emulators for WarpOS

* IFusion, FusionPPC – MacOS 8/9 emulator * WarpSNES


Programs for WarpOS

* Frogger – ''Video player'' * fxpaint * perfectpaint * wosdb – ''simple debugger''


See also

* Amiga exec


References

;Notes
Warpsness problems :
Steffen Haeuser explains WarpUp kernel at comp.sys.amiga.games # See also pages regardin

at Amiga.History site.

on Haage&Partners site.
BlizzardPPC Flash
Why WarpOS and Warp3D have problems with Blizzard PPC # Dietrich, Wolf

Haage and Partner Announce WarpUP, Phase5 Blasts H&P
comp.sys.amiga.games
Steffen Haeuser comments ELF
ppclibemu
ppc.library emulation under WarpOS



Benjamin Hermans comments WarpOS # Jordan, S: powerpc.library/WarpOS history. 2001


Further reading

* * * * * * * * * {{Microkernel Amiga AmigaOS MorphOS Operating system kernels Microkernels