Articulo de referencia

WarpOS

WarpOS es un núcleo multitarea para la unidad central de procesamiento (CPU) de arquitectura PowerPC (PPC ) desarrollado por Haage & Partner para la plataforma de computadoras A...

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

Fue desarrollado por Sam Jordan utilizando 680x0 y lenguaje ensamblador PowerPC . [8] Fue distribuido gratuitamente.

Historia

En 1997, Phase5 , un fabricante de hardware para Amiga , lanzó su gama de aceleradores PowerPC (PPC) para Amiga. Dado que AmigaOS aún no era compatible con PowerPC de forma nativa, como medida provisional, las placas PowerUP eran placas de doble procesador, que incorporaban el PPC y un procesador 68K (68LC040, 68040 a 25  MHz o 68060 a 50  MHz). Llevaban el núcleo PowerUP integrado en una memoria EPROM ( memoria de solo lectura programable y borrable ), un núcleo similar diseñado para permitir que el software de aplicación de AmigaOS utilizara aplicaciones tanto de PPC como de 68k a través de una biblioteca de interfaz de programación de aplicaciones ( API ) denominada . AmigaOS seguía requiriendo un procesador 68K, mientras que el PPC se utilizaba, en efecto, como un coprocesador extremadamente rápido que ejecutaba instrucciones específicas.ppc.library

Esto provoca una ralentización significativa cuando la tarea del sistema operativo cambia entre el 68K y el PPC (un cambio de contexto ), ya que es necesario vaciar las cachés de la CPU para mantener la integridad de la memoria. Cuantos más cambios de CPU se produzcan en una aplicación, mayor será la ralentización, a menudo hasta el punto de que resultaba inútil usar el procesador PPC, al ser más lento que el binario nativo del 68k. La principal solución consistía simplemente en evitar el mayor número posible de llamadas al sistema operativo del 68k, o agruparlas, pero esto resultaba difícil y laborioso para los desarrolladores.

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

WarpUP

WarpUP es un núcleo de alta velocidad para versiones PowerPC de Amiga . [ 1 ]

WarpUP crea una capa de abstracción de hardware entre el hardware y el software , y garantiza que las aplicaciones funcionen correctamente en la arquitectura PowerPC. También constituye una interfaz entre el hardware basado en PowerPC y el software compatible con 68k, lo que permite aprovechar al máximo la velocidad de la CPU PowerPC y facilita al máximo la adaptación de las aplicaciones a 68k. [ 1 ]

Varias ventajas que WarpUP afirma ofrecer son: [ 1 ]

  • Comunicación de alta velocidad entre programas 68k y CPU PowerPC.
  • Multitarea nativa, gestión de memoria, semáforos , gestión de listas y etiquetas, señalización y procesamiento de mensajes.
  • Protección de memoria (las tareas pueden asignar memoria a áreas protegidas si es necesario).
  • Señales virtuales (las señales se comparten entre las CPU y siempre se redirigirán a la CPU correcta cuando sea necesario).
  • Sistema de mensajería entre CPU (los mensajes se transmiten entre las CPU cuando es necesario).
  • Uso óptimo de la unidad de gestión de memoria PowerPC y la caché de la CPU PowerPC.
  • Unidad de gestión de memoria y soporte para el manejo de excepciones en aplicaciones
  • Función PowerSave que apaga el PowerPC si no hay aplicaciones que lo estén utilizando.
  • PowerPC Enforcer protege la primera página de 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 demos.
  • Compatibilidad con aplicaciones compatibles con Amiga
  • Bibliotecas para aplicaciones nativas, mixtas y binarias de PowerPC
  • WarpUP también es compatible con sistemas de desarrollo alternativos como Modula o compiladores E con soporte para PowerPC. Esto se debe a que los objetos no se crean obligatoriamente en formato ELF (Executable and Linkable Format ). En su lugar, también se puede utilizar el formato Hunk compatible con Amiga .
  • Fácil de instalar
  • Hardware independiente

Características

WarpOS tenía características similares a PowerUP, pero con algunas diferencias importantes. La más relevante era que utilizaba la interfaz binaria de aplicación (ABI) PowerOpen , a diferencia de PowerUP, que utilizaba la más reciente y con mejor soporte UNIX System V (SysV), lo que garantizaba que ambos núcleos no fueran directamente compatibles.

A partir de la versión 14, el núcleo de WarpOS utilizó un planificador multitarea ligeramente diferente al de AmigaOS (o PowerUP), basado en el de los sistemas Unix con valores "nice" y prioridades para sus propias tareas y procesos. Esto tenía como objetivo asegurar que todas las tareas recibieran tiempo de CPU y no se vieran privadas de él por tareas de alto consumo computacional (como ocurría con el planificador original de AmigaOS). Sin embargo, esto resultó ineficaz, ya que seguía estando limitado por el planificador nativo de AmigaOS y generaba dificultades adicionales para sincronizarse con el lado 68k (en particular para el sonido). En la versión 15, WarpOS introdujo el concepto de tareas atómicas . Dichas tareas no son interrumpibles y la planificación no se lleva a cabo a menos que la tarea lo permita explícitamente. [10]

WarpOS también contaba con un depurador integrado que podía enviar información sobre cualquier tarea que fallara, ya sea a una ventana de consola en pantalla o a un puerto serie, dependiendo de las variables de entorno.

Una de las características más elogiadas de WarpOS fue que continuó el formato Amiga Hunk de los ejecutables originales de Amiga en un formato variante llamado formato Extended Hunk (EHF), [2] e implementó el tipo hunk llamado HUNK_PPC_CODE . [3] Esto permitió que AmigaOS manejara de forma transparente los ejecutables de WarpOS sin necesidad de parchear el sistema operativo para que los reconociera, algo que PowerUP necesitaba hacer para ejecutar su formato de archivo ELF. Si bien elegante en teoría, el inconveniente del formato EHF fue su falta de soporte generalizado por parte de los compiladores (especialmente GNU Compiler Collection (GCC)), y el formato de archivo ELF fue adoptado por AmigaOS 4 y MorphOS .

A diferencia de PowerUP, WarpOS también podía generar binarios mixtos (completos) con código tanto para 68k como para PPC, que podían ejecutarse tanto en placas Amiga PPC como en sistemas Amiga convencionales. Esta práctica era muy poco común debido a la complejidad de la programación, pero el tipo de datos picture en AmigaOS 3.9 (una biblioteca compartida que cargaba, procesaba y aplicaba tramado a las imágenes mediante el sistema de tipos de datos de AmigaOS) fue un ejemplo notable de su uso. Los sistemas equipados con PPC notaban una gran mejora inmediata en la velocidad, mientras que los sistemas y emuladores de 68k seguían siendo compatibles sin sufrir fallos ni tener que instalar otro binario.

WarpOS tenía dos tareas de mantenimiento llamadas Defiant y Babylon5, que se cree que recibieron sus nombres de la USS Defiant de Star Trek DS9 y Babylon 5 , respectivamente, ya que sus desarrolladores eran aficionados a la ciencia ficción . Estas tareas solían ser reportadas por usuarios nuevos que desconocían su función en las listas de tareas.

Controversia

Haage & Partner , un fabricante de software y hardware para Amiga (que también creó AmigaOS 3.9), desarrolló un kernel competidor para PowerUP llamado WarpUP, que afirmaban que solucionaría el problema del cambio de contexto, una afirmación que Phase5 desafiaría enérgicamente. Phase5 afirmó correctamente que este problema de hardware no podía eludirse simplemente optimizando el kernel y que era una limitación inherente al diseño casi único de la placa, que compartía el bus de memoria entre dos CPU de familias radicalmente diferentes. Las versiones de WarpOS hasta la V7 eran envoltorios añadidos al 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 simultáneamente con WarpOS, era necesario desactivarlo mediante una pequeña herramienta de software. Dado que H&P no tenía acceso a la EPROM, la herramienta debía basarse en suposiciones sobre el kernel de PowerUP, lo que, naturalmente, provocó fallos 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 intencionadamente impedir la ejecución de WarpOS en sus placas. Phase5 también afirmó que Haage & Partner había abusado de una placa de desarrollo gratuita que les habían regalado para lanzar este kernel competidor (aunque gratuito, WarpOS era compatible casi exclusivamente con el compilador comercial Storm C++ de H&P ), y que habían aplicado ingeniería inversa a PowerUP para lograrlo. H&P señaló que esto era inevitable mientras Phase5 se negara a permitir a los usuarios elegir qué kernel instalar en la EPROM de la placa, alegando que el kernel de PowerUP era esencial para inicializar las placas al arrancar y que borrarlo simplemente las dejaría inservibles. [4]

Peor aún, los usuarios originalmente solo podían ejecutar uno de estos núcleos, lo que resultó en una gran duplicación de esfuerzos entre desarrolladores competidores decididos a usar uno u otro, a menudo con dos versiones de software desarrollándose de forma independiente. [5] A pesar de que había poca o ninguna diferencia real en el rendimiento, la capacidad de depuración, la usabilidad o la estabilidad en ambos sistemas, y había quedado claramente claro que ninguno podía esperar solucionar el problema del cambio de contexto de hardware, se hicieron una serie de afirmaciones por cada lado y siguió mucha disputa en Usenet.

Esto dio como resultado una gran cantidad de porciones apresuradas, a menudo semifuncionales, de software de código abierto de Windows, a menudo solo para "superar" al otro bando. Steffen Haeuser (quien había ganado notoriedad por declarar "¡ELF es un monstruo  !", refiriéndose al formato de archivo ELF [6] ) de Hyperion Entertainment CVBA fue particularmente infame por sus porciones "políticas" que eran tan apresuradas que carecían de sonido o eran muy inestables, siendo lanzadas solo para completar las cifras y producir una lista de software mayor que la de PowerUP.

El punto muerto entre los sistemas competidores finalmente se resolvió con un envoltorio PowerUP para WarpOS creado por Franke Wille, [7] que permitió ejecutar el software PowerUP en sistemas WarpOS.

La amarga disputa interna en la comunidad Amiga sobre los dos núcleos, aunque breve, produjo una división que finalmente culminó en una escisión entre AmigaOS y MorphOS, y la mayoría de los desarrolladores de WarpOS y PowerUP cambiaron a una u otra implementación nueva de AmigaOS, respectivamente.

WarpOS estaba pensado para servir de base a AmigaOS 4, pero Haage & Partner abandonó el proyecto cuando Amiga, Inc. canceló su contrato para AmigaOS 4 PPC en 2000. [2] Cuando Hyperion Entertainment se hizo cargo del proyecto, inicialmente tenían la misma idea, pero sus desarrolladores admitieron posteriormente que era de muy poca utilidad para modernizar el sistema operativo, ya que estaba escrito completamente en lenguaje ensamblador de código máquina sin anotaciones. [9]

La elección de WarpOS sobre su rival resultó ser una victoria pírrica , ya que los estándares que había desarrollado, a saber, EHF y PowerOpen, fueron abandonados por completo en el desarrollo posterior de AmigaOS y sus clones . El modelo de doble CPU no volvió a utilizarse.

Compatibilidad con sistemas heredados en otros sistemas operativos

AmigaOS 4

Se creó un wrapper para AmigaOS 4.0 y 4.1; primero se incluyó y luego fue distribuido por el equipo de GuruMedation (que no debe confundirse con la "pantalla azul" de la muerte de Amiga, que también tiene el mismo nombre). Este wrapper era compatible con las CPU PowerPC 603e, 604e, AMCC440EP, G3 y G4. Pero no funcionó en AMCC460 ni en PASemi PA6T.

Se está trabajando en la creación de un nuevo programa de envoltura llamado ReWarp. Un grupo llamado Sakura es el responsable de este nuevo programa.

MorphOS

MorphOS también utiliza un envoltorio para ejecutar programas de WarpUP, y además dispone de un envoltorio para PowerUP, un competidor de WarpOS.

Juegos para WarpOS

  • CrossFire II
  • Descenso: Espacio Libre – La Gran Guerra

El juego se lanzó primero en WarpOS y luego se adaptó a AmigaOS 4.0.

Título original: DOOM

(Solo para WarpOS, no para AmigaOS)

  • Hexen de la disformidad

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

El juego se lanzó primero en WarpOS y luego se adaptó a AmigaOS 4.0.

  • Shogo: División de Blindados Móviles

(Solo para WarpOS, no para AmigaOS)

(Solo para WarpOS, no para AmigaOS)

Demostraciones para WarpOS

  • PPC/Warp3D – demo de CdBS Software; 2.º puesto en UkonxParty 2000
  • Demo V1.0 – PPC/Warp3D de CdBS Software
  • DeathTrial – Parche de corrección 0.1
  • MusicDisk – Medios de comunicación de la tribu de la Tierra
  • Milagro de un día – por Fit ASM'02 64k introducción
  • Viaje aburrido (PPC) – para UkonxParty 4 en Francia
  • Greuh!Zillement Beta – 2.º en LTP4
  • Salvación – PPC dentro, por Horizontal Lamerz
  • Flow – Ganador 64kb en FuckYanica One
  • Megademo IV – Versión rápida para PPC
  • Juicio a muerte – por Mkd:AGA/CGXwarposPPCAhi+dbplayer
  • Invitación a la fiesta de demostración de Equinoxe
  • PRO_GEAR_SPEC – Demostración de WarpOS PPC por Mankind
  • Mankind MesaGLUT – demo surrealista de wos+ahi
  • 212 – por Madwizards; 1.ª edición en Delirium 2001
  • Amsterdam Blessings – por Madwizards; 3er puesto en M/S 2001
  • Cull Bazaar – por Madwizards; 11.ª edición en Assembly 2001
  • Nuance "Tonos sutiles 2" – 5.º puesto en MS2K+1
  • 4.º puesto en MS99 de NUANCE
  • ¡NoSyncIzBack! – Demostración de WOS 3ª en IGDRP 2.
  • Planet Potion – Una introducción de 64 kB por Potion
  • Suicidal – Una introducción de 64 kB por Potion
  • Sayontsheck – Demostración de PPC AGA por Lamers
  • Luminancia – PPC WOS v1.1 – UKONX; 1º en Slach 2 1999
  • NoSync – por Universe – Demo de WOS, 3.er puesto en Equinoxe 2003
  • PowerUp – de Universe: Demo ganadora de WOS en Slash 2001
  • Todo muere – por Venus Art, versión PPC WarpUP
  • Fantasma – por Venus Art, versión PPC WarpUP

Emuladores para WarpOS

  • IFusion, FusionPPC – Emulador de macOS 8/9
  • WarpSNES

Programas para WarpOS

  • Frogger – Reproductor de vídeo
  • pintura de efectos
  • pintura perfecta
  • wosdb – depurador simple

Véase también

Referencias

  1. 1 2 3 "WarpUP" . Haage & Partner . 11 de abril de 2007. Archivado del original el 29 de octubre de 2020. Recuperado el 14 de junio de 2010 .
Notas
  1. ^ Problemas de distorsión :( Steffen Haeuser explica el kernel WarpUp en comp.sys.amiga.games
  2. ^ Consulte también las páginas relativas ala historia del procesador PPC en Amigaen el sitio web Amiga.History.
  3. ^ Especificaciones EHFarchivadasel 16/11/2007 en laWayback Machinedel sitio web de Haage&Partners.
  4. ^ BlizzardPPC Flash¿Por qué WarpOS y Warp3D tienen problemas con Blizzard PPC?
  5. ^ Dietrich, Wolf;Revista Amiga ReportArchivadael 7 de julio de 2011 enWayback MachineHaage y su socio anuncian WarpUP, Phase5 critica duramente a H&P
  6. ^ comp.sys.amiga.gamesComentarios de Steffen Haeuser ELF
  7. ^ Emulación de ppc.library de ppclibemen WarpOS
  8. ^ Lista de proyectos de software de Sam Jordan
  9. ^ Entrevista con Ben Hermans de Hyperion.Comentarios de Benjamin Hermans sobre WarpOS.
  10. ^ Jordan, S: powerpc.library/Historial de WarpOS. 2001

Lecturas adicionales

  • Pourtant, Jac (noviembre de 1997). "¿Quel noyau pour les cartes PowerPC?". AmigaNews (en francés). No.  106. Edición de noticias. págs. 7– 10. ISSN 1164-1746 .  
  • «Noticias: Los desarrolladores se vuelven locos con el kernel». Amiga Format . N.º  104. Future Publishing. Diciembre de 1997. pág.  8. ISSN 0957-4867 . 
  • "¡Las cartas PowerUP sonaient de la poudre aux yeux!". Sueño (en francés). No  46. Prensa Posse. Diciembre de 1997. pág.  12. ISSN 1259-1165 . 
  • Krenželok, Petr (enero de 1998). "¿Acelerar tu PowerUp?". Amiga Review (en checo). N.°  33. Atlantida Publishing. págs. 7–11 . ISSN 1211-1465 .  
  • Fromentin, Brice; Pozzi, Jean-Paul (marzo de 1998). "Las cartas PPC PowerUP de P5". AmigaNews (en francés). No.  110. Edición de noticias. págs. 12-13 , 16. ISSN 1164-1746 .  
  • «Noticias: Desarrolladores de PPC hacen las paces». Amiga Format . N.°  112. Future Publishing. Julio de 1998. pág.  9. ISSN 0957-4867 . 
  • «Software PowerPC». Amiga Review (en checo). N.º  36. Editorial Atlantida. Septiembre de 1998. págs.  16, 18, 20–21 . ISSN 1211-1465 . 
  • Drummond, Richard (julio de 1999). "WarpUp 4.0". Amiga Format . N.°  125. Future Publishing. pág.  51. ISSN 0957-4867 . 
  • "Noticias, NG AmigaOS para Amigas clásicos". Formato Amiga . No.  136. Publicaciones futuras. Mayo de 2000. pág.  7. ISSN 0957-4867 .