De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

WarpOS es un kernel multitarea para la arquitectura PowerPC desarrollado por Haage & Partner para la plataforma informática Amiga a finales de la década de 1990 y principios de la de 2000. Se ejecuta en placas aceleradoras PowerUP desarrolladas por Phase5 que contienen tanto una CPU de la familia Motorola 68000 como una CPU PowerPC con espacio de direcciones compartido. WarpOS se ejecuta junto con AmigaOS basado en 68k , que puede usar PowerPC como coprocesador . A pesar de su nombre, no es un sistema operativo.(SO), pero un núcleo; proporciona un conjunto limitado de funciones similares a las de AmigaOS para usar el PowerPC. Cuando se lanzó, su nombre original era WarpUP, pero se cambió para reflejar su mayor conjunto de características y posiblemente para evitar la comparación con su competidor, PowerUP .

Fue desarrollado por Sam Jordan usando 680x0 y ensamblador PowerPC. [8] Se distribuyó de forma gratuita.

Historia [ editar ]

En 1997, Phase5 , un fabricante de hardware de Amiga , lanzó su gama de aceleradores PowerPC (PPC) para Amiga. Debido a que AmigaOS aún no era nativo de PowerPC, como medida provisional, las placas PowerUP eran placas de doble procesador, incorporando el PPC y un procesador 68K (68LC040, 68040 a 25 MHz o 68060 a 50 MHz). Llevaron el kernel PowerUP a bordo en una EPROM , un kernel similar diseñado para permitir que las aplicaciones AmigaOS usen aplicaciones PPC y 68k a través de una biblioteca API llamada ppc.library. AmigaOS todavía requería un procesador de 68K, mientras que el PPC se usaba de hecho como un coprocesador extremadamente rápido que ejecutaba instrucciones específicas.

Desafortunadamente, esto causó una desaceleración significativa cuando la tarea del sistema operativo cambia entre 68K y PPC (un cambio de contexto), porque los cachés de la CPU tenían que vaciarse para mantener la integridad de la memoria. Cuantos más conmutadores de CPU se produzcan en una aplicación, mayor será la ralentización, a menudo tan grave que no tenía sentido utilizar el procesador PPC, ya que era más lento que el binario nativo de 68k. La principal solución para esto fue simplemente evitar tantas llamadas al sistema operativo 68k como fuera posible, o agruparlas, pero fue difícil y les llevó mucho tiempo a los desarrolladores hacer esto.

WarpOS se lanzó como una controvertida alternativa al kernel PowerUP de Phase5, pero finalmente se convirtió en el kernel PPC más utilizado y nominalmente estándar en AmigaOS. [ cita requerida ]

WarpUP [ editar ]

WarpUP es un kernel de alta velocidad para las versiones PowerPC de Amiga . [1]

WarpUP forma una capa de abstracción de hardware entre el hardware y el software , y asegura que las aplicaciones funcionen correctamente en la arquitectura PowerPC. También forma una interfaz entre el hardware impulsado por PowerPC y el software compatible con 68k, lo que permite la explotación óptima de la velocidad de la CPU de PowerPC , al tiempo que hace que la migración de aplicaciones de 68k sea lo más fácil posible. [1]

Varias ventajas que WarpUP afirma ofrecer son: [1]

  • Comunicación de alta velocidad entre 68k programas y CPU PowerPC
  • Multitarea nativa, gestión de memoria, semáforos , gestión de listas y etiquetas, señalización y gestión de mensajes
  • Protección de la memoria (las tareas pueden asignarse a áreas de memoria protegidas si es necesario)
  • Señales virtuales (las señales se comparten entre las CPU y siempre se redireccionarán a la CPU correcta cuando sea necesario)
  • Sistema de mensajería entre CPU (los mensajes se pasan entre las CPU cuando es necesario)
  • Uso óptimo de la unidad de administración de memoria PowerPC y la caché de PowerPC
  • Unidad de administración de memoria y soporte de manejo de excepciones para aplicaciones
  • Función PowerSave que apaga el PowerPC si no hay aplicaciones que lo estén usando
  • PowerPC Enforcer (protege la primera página de la memoria)
  • Un solicitante de fallos detallado que proporciona información detallada para ayudar a los desarrolladores a localizar errores
  • Sistema de depuración integrado que facilita el seguimiento de errores
  • Soporte específico para software altamente optimizado como juegos y demostraciones
  • Soporte para aplicaciones compatibles con Amiga
  • Bibliotecas para aplicaciones nativas, mixtas y binarias FAT de PowerPC
  • WarpUP también se puede utilizar para sistemas de desarrollo alternativos como Modula o compiladores electrónicos con soporte PowerPC. Esto se debe a que los objetos no se crean obligatoriamente en ELF ; en su lugar , también se puede utilizar el formato hunk compatible con Amiga .
  • Fácil de instalar
  • Independiente del hardware

Funciones [ editar ]

WarpOS tenía características similares a PowerUP, pero con algunas diferencias importantes. Lo más pertinente, se utilizó el PowerOpen ABI , en contraste con PowerUP que utilizó el nuevo y mejor apoyado SysV , que aseguró los dos núcleos no podía ser directamente compatibles.

A partir de la versión 14, el kernel de WarpOS usó un programador multitarea ligeramente diferente al de AmigaOS (o PowerUP), basado en el de los sistemas Unix con valores "agradables" así como prioridades para sus propias tareas y procesos. Esto estaba destinado a garantizar que todas las tareas tuvieran tiempo de CPU y que no estuvieran "hambrientas" de tiempo de CPU por tareas de cálculo intensivo (como fue el caso con el programador AmigaOS original). Sin embargo, esto fue ineficaz ya que todavía estaba limitado por el programador nativo de AmigaOS y creó dificultades adicionales para sincronizar con el lado 68k (particularmente para el sonido). En la versión 15, WarpOS introdujo un concepto llamado tareas atómicas. Las tareas atómicas no se pueden interrumpir y la programación no se lleva a cabo a menos que la tarea lo permita explícitamente. [10]

WarpOS también tenía un depurador incorporado que podía enviarse para volcar información sobre cualquier tarea bloqueada en la ventana de la consola en pantalla o en serie, dependiendo de las variables de entorno.

Una de las características más elogiadas de WarpOS fue que continuó el formato "hunk" de los ejecutables originales de Amiga que implementaron el formato de ejecutables Amiga Hunk . Este formato se llamó EHF (formato de trozo extendido) [2] , e implementó el tipo de trozo llamado HUNK_PPC_CODE [3] . Esto permitió AmigaOS para manejar de forma transparente WarpOS ejecutables sin tener que parchear el sistema operativo para reconocerlos, que PowerUP se tiene que hacer para seguir su ELF formato de archivo. Aunque elegante en teoría, la caída del formato EHF fue su falta de compatibilidad generalizada con el compilador (especialmente GCC ), y AmigaOS 4 y MorphOS adoptaron el formato de archivo ELF .

A diferencia de PowerUP, WarpOS también podría producir binarios mixtos (gordos) con código 68k y PPC, que podrían ejecutarse tanto en placas Amiga PPC como en sistemas Amiga ordinarios. Esta práctica era muy rara debido a la complejidad de programación de hacerlo, pero el tipo de datos de imagen en AmigaOS 3.9 (una biblioteca compartida que cargaba, procesaba y difuminaba imágenes a través del sistema de tipos de datos de AmigaOS) fue un ejemplo notable de su uso. Los sistemas equipados con PPC notarían una gran aceleración inmediata, mientras que los sistemas y emuladores 68k seguirían siendo compatibles sin fallar o instalar otro binario.

WarpOS tenía dos tareas de limpieza llamadas Defiant y Babylon5, que se cree que llevan el nombre del USS Defiant de Star Trek DS9 y Babylon 5 , sus desarrolladores son fanáticos de la ciencia ficción . Estos a menudo los informaban nuevos usuarios que no sabían lo que estaban apareciendo en las listas de tareas.

Controversia [ editar ]

Haage & Partner , un fabricante de software y hardware de Amiga (que también creó AmigaOS 3.9), desarrolló un kernel competidor de PowerUP llamado WarpUP, que afirmaron solucionaría el problema de cambio de contexto, una afirmación que sería desafiada amargamente por Phase5. Phase5 afirmó correctamente que este problema de hardware no se podía eludir simplemente optimizando el kernel y era una limitación inherente al diseño de placa casi único, que compartía el bus de memoria entre dos CPU de familias radicalmente diferentes. Las versiones de WarpOS hasta la V7 se agregaron envoltorios alrededor del kernel PowerUP de Phase5, pero a partir de la versión 8 era su propio kernel PPC que se ejecutaba junto con AmigaOS [1] y se renombró como WarpOS.

Como PowerUP estaba en la EPROM de las placas y Phase5 no podía ejecutarse al mismo tiempo con WarpOS, tuvo que ser desactivado por una pequeña herramienta de software. Como H&P no tenía acceso a la EPROM, la herramienta tuvo que hacer suposiciones sobre el kernel de PowerUP y, naturalmente, esto se rompió en las versiones actualizadas. Esto dio lugar a acusaciones abiertas por parte de los defensores de WarpOS y del autor, Sam Jordan, de que Phase5 intentaba intencionalmente evitar que WarpOS se ejecutara en sus tableros. Phase5 también afirmó que Haage & Partner abusó de una placa de desarrollo gratuita que se les había regalado para lanzar este kernel de la competencia (aunque gratis, WarpOS fue compatible casi exclusivamente con el compilador StormC ++ comercial de H&P), y que habían diseñado PowerUP con ingeniería inversa para hacerlo. H &P señaló que era inevitable ya que durante mucho tiempo Phase5 se negó a permitir a los usuarios elegir qué kernel poner en la placa EPROM, alegando que el kernel PowerUP era esencial para inicializar las placas en el arranque y borrarlas simplemente las inutilizaría.[4]

Peor aún, los usuarios originalmente solo podían ejecutar uno de estos núcleos, lo que resultaba en una gran duplicación de esfuerzos entre desarrolladores competidores decididos a usar uno u otro, a menudo con dos versiones de software desarrolladas de forma independiente. [5] A pesar de que hay poca o ninguna diferencia real en el rendimiento, la capacidad de depuración, la usabilidad o la estabilidad en cualquiera de los sistemas, y se ha hecho evidente que ninguno de los dos puede esperar solucionar el problema del cambio de contexto de hardware, se hicieron una serie de afirmaciones sobre a cada lado y siguieron muchos combates en Usenet.

Esto resultó en una gran cantidad de puertos de software de código abierto de Windows, a menudo semifuncionales, transferidos apresuradamente, a menudo solo para "uno arriba" del otro lado. Steffen Haeuser (quien había ganado notoriedad al declarar, "ELF es un monstruo !!!", refiriéndose al formato de archivo ELF [6] ) de Hyperion Entertainment CVBA fue particularmente infame por sus versiones "políticas" siendo tan apresuradas que carecían de sonido o eran muy inestables, se lanzaron solo para compensar los números y producir una lista de software mayor que la de PowerUP [ cita requerida ] .

El impasse entre los sistemas de la competencia terminó finalmente con una envoltura PowerUP para WarpOS de Franke Wille [7] , que permitió a los usuarios ejecutar el software PowerUP en sus sistemas WarpOS.

La amarga lucha interna en la comunidad de Amiga sobre los dos núcleos, aunque breve, fue para producir una brecha que eventualmente culminaría en la división entre AmigaOS y MorphOS, con la mayoría de los desarrolladores de WarpOS y PowerUP cambiando cualquiera de las nuevas implementaciones de AmigaOS respectivamente [ cita requerida ] .

WarpOS estaba destinado a ser utilizado como base para AmigaOS 4, pero Haage & Partner abandonó el proyecto cuando su contrato "AmigaOS 4 PPC" fue cancelado por Amiga, Inc. en 2000 [2] . Cuando Hyperion Entertainment se hizo cargo del proyecto, originalmente tenían la misma idea, pero luego sus desarrolladores admitieron que resultó muy poco útil para modernizar el sistema operativo, ya que estaba escrito completamente en un ensamblador de código de máquina sin anotaciones. [9]

La elección de WarpOS sobre su rival resultó ser una victoria pírrica , ya que los estándares en torno a los que se había desarrollado, a saber, EHF y PowerOpen, se abandonarían por completo en el desarrollo posterior de AmigaOS y sus clones. El modelo de CPU dual no fue revisado.

Soporte heredado en otros sistemas operativos [ editar ]

AmigaOS 4

Se hizo un envoltorio para AmigaOS 4.0 y 4.1, primero se incluyó, luego fue distribuido por el equipo de GuruMedation, (que no debe confundirse con la pantalla de muerte "azul" de Amiga que también tiene el mismo nombre). Este contenedor admitía CPUs PowerPC 603e, 604e, AMCC440EP, G3 y G4. Pero no funcionó en AMCC460 y PASemi PA6T,

Se está trabajando para hacer una nueva envoltura llamada ReWarp. Un grupo llamado Sakura es responsable de la nueva envoltura.

MorphOS

MorphOS también usa un contenedor para ejecutar programas WarpUP, también tienen un contenedor para PowerUP, un competidor de WarpOS.

Juegos para WarpOS [ editar ]

  • CrossFire II
  • Descent: FreeSpace - La Gran Guerra

El juego se lanzó por primera vez en WarpOS, luego se portó a AmigaOS4.0

  • ADoomPPC

Título original: DOOM

  • Tierra 2140
  • Ami Hereje
  • Hereje II

(Solo para WarpOS, no para AmigaOS)

  • WarpHexen

Título original: Hexen: Beyond_Heretic (Mismo juego llamado UHexen para AmigaOS4)

  • Nightlong: Conspiración de Union City
  • Recuperación
  • AmiQuake
  • Los archivos débiles
  • Quake II

El juego se lanzó por primera vez en WarpOS, luego se portó a AmigaOS4.0

  • Shogo: División de armadura móvil

(Solo para WarpOS, no para AmigaOS)

  • Wipeout 2097

(Solo para WarpOS, no para AmigaOS)

Demos para WarpOS [ editar ]

  • Demostración de PPC / Warp3D por CdBS Software (segundo en Ukonx Party2000)
  • V1.0 Demo PPC / Warp3D de CdBSSoftware.
  • DeathTrial FixPatch 0.1
  • MusicDisk Earth-Tribe-Media
  • Milagro de un día por Fit ASM'02 64k intro
  • Aburrimiento Trip PPC. Para el UkonxParty 4 en Francia.
  • Greuh! Zillement Beta (2.o @ LTP4)
  • Salvation (PPC dentro) de Horizontal Lamerz
  • "Flow", ganador de 64 kb en FuckYanica One
  • Puerto PPC rápido de Megademo IV
  • DeathTrial de Mkd: AGA / CGXwarposPPCAhi + dbplayer
  • Invitación a la fiesta de demostración de Equinoxe
  • Demostración de PRO_GEAR_SPEC WarpOS PPC por la humanidad
  • Demostración surrealista de Mankind MesaGLUT wos + ahi.
  • 212 de Madwizards; 1 ° en Delirium 2001
  • BENDICIONES DE AMSTERDAM por Madwizards; 3 ° en M / S 2001
  • CULL BAZAAR de Madwizards; 11 ° en Asamblea 2001
  • Nuance "Subtle Shades 2" - quinto lugar en MS2K + 1
  • 4to lugar en MS99 por NUANCE
  • NoSyncIzBack! - Tercera demostración de WOS en IGDRP 2.
  • "Planet Potion": una introducción de 64 KB de Potion
  • "SUICIDAL" - Una introducción de 64kB por Poción
  • Demostración de Sayontsheck PPC AGA por Lamers
  • Luminance PPC WOS v1.1 - UKONX - 1o en Slach 2 - 1999
  • NoSync de Universe - 3er demo de WOS en Equinoxe 2003
  • PowerUp by Universe: demostración ganadora de WOS en Slash 2001.
  • Everything Dies by Venus Art - Versión PPC WarpUP
  • Ghost ... de Venus Art - Versión PPC WarpUP

Emuladores para WarpOS [ editar ]

  • IFusion / FusionPPC: emulador de Mac que emula MacOS 8/9
  • WarpSNES

Programas para WarpOS [ editar ]

  • Frogger - Reproductor de video
  • fxpaint
  • pintura perfecta
  • wosdb - depurador simple

Ver también [ editar ]

  • Ejecutivo de Amiga

Referencias [ editar ]

  1. ^ a b c "Haage & Partner - WarpUP" . 11 de abril de 2007 . Consultado el 14 de junio de 2010 .
Notas
  1. ^ Problemas de deformación:(Steffen Haeuser explica el kernel WarpUp en comp.sys.amiga.games
  2. ^ Consulte también las páginas sobre lahistoria del procesador PPC en Amigaen el sitio Amiga.History.
  3. ^ Especificaciones de EHFen el sitio de Haage & Partners.
  4. ^ BlizzardPPC FlashPor qué WarpOS y Warp3D tienen problemas con Blizzard PPC
  5. ^ La revista Amiga ReportHaage y su socio anuncian WarpUP, Phase5 ataca a H&P
  6. ^ comp.sys.amiga.gamesSteffen Haeuser comenta ELF
  7. ^ ppclibemuppc.library emulación bajo WarpOS
  8. ^ Lista de proyectos de software de Sam Jordan
  9. ^ Entrevista con Ben Hermans de HyperionBenjamin Hermans comenta WarpOS
  10. Jordan, S: powerpc.library / WarpOS history. 2001

Lectura adicional [ editar ]

  • Pourtant, Jac (noviembre de 1997). "¿Quel noyau pour les cartes PowerPC?". AmigaNews (en francés). No. 106. NewsEdition. págs. 7-10. ISSN  1164-1746 .
  • "Noticias, los desarrolladores se vuelven locos con el kernel". Formato Amiga . No. 104. Publicaciones futuras. Diciembre de 1997. p. 8. ISSN  0957-4867 .
  • "Les cartes PowerUP seraient de la poudre aux yeux!". Dream (en francés). No. 46. Posse Press. Diciembre de 1997. p. 12. ISSN  1259-1165 .
  • Krenželok, Petr (enero de 1998). "¿WarpUp su PowerUp?". Amiga Review (en checo). No. 33. Editorial Atlántida. págs. 7-11. ISSN  1211-1465 .
  • Fromentin, Brice; Pozzi, Jean-Paul (marzo de 1998). "Les cartes PPC PowerUP de P5". AmigaNews (en francés). No. 110. NewsEdition. págs. 12-13, 16. ISSN  1164-1746 .
  • "Noticias, desarrolladores de PPC entierran hachas". Formato Amiga . No. 112. Publicaciones futuras. Julio de 1998. p. 9. ISSN  0957-4867 .
  • "Software PowerPC". Amiga Review (en checo). No. 36. Editorial Atlántida. Septiembre de 1998. págs. 16, 18, 20–21. ISSN  1211-1465 .
  • Drummond, Richard (julio de 1999). "WarpUp 4.0". Formato Amiga . No. 125. Publicaciones futuras. pag. 51. ISSN  0957-4867 .
  • "Novedades, NG AmigaOS para los clásicos Amigas". Formato Amiga . No. 136. Publicaciones futuras. Mayo de 2000. p. 7. ISSN  0957-4867 .