WarpOS es un núcleo multitarea para la unidad central de procesamiento (CPU ) de arquitectura PowerPC (PPC ) desarrollado por Haage & Partner para la plataforma informática Amiga a finales de los años 1990 y principios de los 2000. Se ejecuta en placas aceleradoras PowerUP desarrolladas por phase5 que contienen una CPU de la serie Motorola 68000 y una CPU PowerPC con espacio de direcciones compartido. WarpOS se ejecuta junto con AmigaOS basado en 68k , que puede usar el PowerPC como coprocesador . A pesar de su nombre, no es un sistema operativo (OS), sino 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 utilizando lenguaje ensamblador 680x0 y PowerPC . [8] Se distribuyó de forma gratuita.
Historia
En 1997, Phase5 , un fabricante de hardware para Amiga , lanzó su gama de aceleradores PowerPC (PPC) para Amiga. Debido a que AmigaOS aún no era nativo de PowerPC, como medida provisoria 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 a bordo en una memoria de solo lectura programable borrable ( EPROM ), un núcleo similar diseñado para permitir que el software de aplicación AmigaOS usara tanto PPC como aplicaciones 68k a través de una biblioteca de interfaz de programación de aplicaciones ( API ) llamada . AmigaOS aún requería un procesador 68K, mientras que el PPC se usaba en efecto como un coprocesador extremadamente rápido que llevaba a cabo instrucciones específicas.
ppc.library
Esto provoca una ralentización significativa cuando la tarea del SO cambia entre 68K y PPC (un cambio de contexto ), porque las cachés de la CPU deben vaciarse 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 tanta que no tenía sentido utilizar el procesador PPC, ya que es más lento que el binario nativo de 68k. La principal solución alternativa para esto era simplemente evitar tantas llamadas del SO de 68k como fuera posible, o agruparlas, pero era difícil y requería mucho tiempo para los desarrolladores hacerlo.
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 el estándar en AmigaOS. [ cita requerida ]
Deformación
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 garantiza que las aplicaciones funcionen correctamente en la arquitectura PowerPC. También forma una interfaz entre el hardware controlado por PowerPC y el software compatible con 68k, lo que permite la explotación óptima de la velocidad de la CPU PowerPC, al tiempo que hace que la portabilidad de aplicaciones 68k sea lo más sencilla posible. [1]
Algunas de las 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 manejo de mensajes
- Protección de memoria (se permite que las tareas se asignen a áreas de memoria protegidas si es necesario)
- Señales virtuales (las señales se comparten entre 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 de la caché de la CPU PowerPC
- Unidad de gestión de memoria y soporte de manejo de excepciones para aplicaciones
- Función PowerSave que apaga el PowerPC si ninguna aplicación lo está utilizando
- 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 permite un seguimiento más sencillo de los errores
- Soporte específico para software altamente optimizado, como juegos y demostraciones.
- Soporte para aplicaciones compatibles con Amiga
- Bibliotecas para aplicaciones binarias nativas, mixtas y fat de PowerPC
- WarpUP también se puede utilizar en 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 ejecutable y enlazable (ELF). En su lugar, también se puede utilizar el formato de fragmento compatible con Amiga .
- Fácil de instalar
- Independiente del hardware
Características
WarpOS tenía características similares a PowerUP, pero con algunas diferencias importantes. La más importante era que utilizaba la interfaz binaria de aplicaciones (ABI) PowerOpen , a diferencia de PowerUP, que utilizaba el sistema UNIX System V (SysV), más nuevo y con mejor soporte, lo que garantizaba que ambos núcleos no pudieran ser directamente compatibles.
A partir de la versión 14, el núcleo WarpOS utilizó un programador multitarea ligeramente diferente al de AmigaOS (o PowerUP), basado en el de los sistemas Unix con valores "agradables" y prioridades para sus propias tareas y procesos. Esto tenía como objetivo garantizar que todas las tareas obtuvieran tiempo de CPU y no se vieran privadas de tiempo de CPU por tareas de uso intensivo de recursos (como era el caso del programador original de AmigaOS). Sin embargo, esto no era efectivo ya que todavía estaba limitado por el programador nativo de AmigaOS y creaba dificultades adicionales para sincronizar con el lado de 68k (particularmente para el sonido). En la versión 15, WarpOS introdujo un concepto llamado tareas atómicas . Dichas tareas 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 la pantalla o en serie, dependiendo de las variables del 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 de trozo llamado HUNK_PPC_CODE . [3] Esto permitió a AmigaOS manejar de forma transparente los ejecutables de WarpOS sin necesidad de parchear el sistema operativo para que los reconociera, lo que PowerUP necesitaba hacer para ejecutar su formato de archivo ELF. Si bien es elegante en teoría, la caída del formato EHF fue su falta de soporte generalizado de 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 producir binarios mixtos (fat) con código 68k y PPC, que podían ejecutarse tanto en placas Amiga PPC como en sistemas Amiga comunes. Esta práctica era muy poco común debido a la complejidad de programación que implicaba, pero el tipo de datos de imagen en AmigaOS 3.9 (una biblioteca compartida que cargaba, procesaba y tramaba imágenes a través del sistema de tipos de datos de AmigaOS) era un ejemplo notable de su uso. Los sistemas equipados con PPC notarían una gran aceleración inmediata, mientras que los sistemas 68k y los emuladores seguirían siendo compatibles sin tener que bloquearse ni instalar otro binario.
WarpOS tenía dos tareas de mantenimiento llamadas Defiant y Babylon5, que se cree que llevan el nombre del USS Defiant de Star Trek DS9 y Babylon 5 , ya que sus desarrolladores eran fanáticos de la ciencia ficción . Los nuevos usuarios que no sabían lo que eran solían informar sobre ellas al aparecer 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 núcleo competidor de PowerUP llamado WarpUP, que según afirmaban solucionaría el problema del cambio de contexto, una afirmación que sería duramente cuestionada por Phase5. Phase5 afirmó correctamente que este problema de hardware no podía evitarse simplemente optimizando el núcleo 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 alrededor del núcleo PowerUP de Phase5 , pero a partir de la versión 8 fue su propio núcleo PPC que se ejecutaba junto con AmigaOS [1] y se renombró WarpOS.
Como PowerUP estaba en la EPROM de las placas y Phase5 no podía ejecutarse al mismo tiempo que 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 núcleo PowerUP y naturalmente esto falló en las versiones actualizadas. Esto llevó a acusaciones abiertas por parte de los defensores de WarpOS y por parte del autor, Sam Jordan, de que Phase5 estaba tratando intencionalmente de evitar que WarpOS se ejecutara en sus placas. Phase5 también afirmó que Haage & Partner abusó de una placa de desarrollo gratuita que les fue otorgada para lanzar este núcleo competidor (aunque gratuito, WarpOS estaba soportado casi exclusivamente por el compilador comercial Storm C++ de H&P ), y que habían realizado ingeniería inversa de PowerUP para hacerlo. H&P señaló que era inevitable mientras Phase5 se negara a permitir a los usuarios elegir qué núcleo poner en la EPROM de la placa, alegando que el núcleo PowerUP era esencial para inicializar las placas en el arranque y que borrarlos simplemente dejaría las placas inutilizables. [4]
Peor aún, los usuarios originalmente sólo podían ejecutar uno de estos núcleos, lo que resultó en mucha duplicación de esfuerzos entre desarrolladores que competían por usar uno u otro, a menudo con dos versiones de software desarrolladas de forma independiente. [5] A pesar de que había poca o ninguna diferencia real en rendimiento, capacidad de depuración, usabilidad o estabilidad en cualquiera de los 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 reclamos de cada lado y se produjeron muchas peleas en Usenet.
Esto dio como resultado una gran cantidad de ports apresurados, a menudo semifuncionales, de software de código abierto de Windows, a menudo solo para "superar" al otro lado. Steffen Haeuser (que había ganado notoriedad al declarar, "¡ELF es un monstruo!", refiriéndose al formato de archivo ELF [6] ) de Hyperion Entertainment CVBA era particularmente infame por sus ports "políticos" tan apresurados que carecían de sonido o eran muy inestables, y se lanzaban solo para compensar los números y producir una lista de software mayor que la de PowerUP. [ cita requerida ]
El impasse entre los sistemas en competencia finalmente se resolvió gracias a un contenedor PowerUP para WarpOS creado por Franke Wille, [7] que permitió ejecutar el software PowerUP en sistemas WarpOS.
La amarga lucha interna en la comunidad Amiga sobre los dos núcleos, aunque breve, produjo una grieta que eventualmente culminó en una división entre AmigaOS y MorphOS, con la mayoría de los desarrolladores de WarpOS y PowerUP cambiando una de las nuevas implementaciones de AmigaOS respectivamente. [ cita requerida ]
WarpOS iba a ser utilizado como base para AmigaOS 4 , pero Haage & Partner abandonó el proyecto cuando Amiga, Inc. canceló su contrato PPC para AmigaOS 4 en 2000. [2] Cuando Hyperion Entertainment se hizo cargo del proyecto, originalmente tuvieron la misma idea, pero luego sus desarrolladores admitieron que era de muy poca utilidad para modernizar el sistema operativo, ya que estaba escrito completamente en lenguaje ensamblador de código de máquina no anotado. [9]
La elección de WarpOS sobre su rival resultó ser una victoria pírrica , ya que los estándares en torno a los cuales se había desarrollado, a saber, EHF y PowerOpen, se abandonaron por completo en el desarrollo posterior de AmigaOS y sus clones . El modelo de CPU dual no volvió a aparecer.
Compatibilidad con versiones anteriores en otros sistemas operativos
AmigaOS 4
Se creó un contenedor para AmigaOS 4.0 y 4.1, primero incluido y luego distribuido por el equipo de GuruMedation (no debe confundirse con la pantalla azul de la muerte de Amiga, que también tiene el mismo nombre). Este contenedor era compatible con las CPU PowerPC 603e, 604e, AMCC440EP, G3 y G4, pero no funcionaba con AMCC460 y PASemi PA6T.
Se está trabajando en la creación de un nuevo envoltorio llamado ReWarp. Un grupo llamado Sakura es responsable del nuevo envoltorio.
MorphOS
MorphOS también utiliza un contenedor para ejecutar programas WarpUP, también tienen un contenedor para PowerUP, un competidor de WarpOS.
Juegos para WarpOS
- Fuego cruzado II
- Descent: FreeSpace – La Gran Guerra
El juego se lanzó primero en WarpOS y luego se portó a AmigaOS4.0
Título original: DOOM
(Solo para WarpOS, no para AmigaOS)
- Hexen de deformación
Título original: Hexen: Beyond_Heretic (el mismo juego llamado UHexen para AmigaOS4)
- Noche entera: La conspiración de Union City
- Venganza
- Amigo Quake
- Los archivos débiles
- Terremoto II
El juego se lanzó primero en WarpOS y luego se portó a AmigaOS4.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 : demostración de CdBS Software; 2.º puesto en UkonxParty 2000
- Demostración V1.0 : PPC/Warp3D de CdBS Software
- DeathTrial – Parche de corrección 0.1
- Disco musical – Earth-Tribe-Media
- Milagro de un día – por Fit ASM'02 64k intro
- Viaje aburrido PPC – para UkonxParty 4 en Francia
- Greuh!Zillement Beta – 2.º @ LTP4
- Salvación – PPC dentro, por Horizontal Lamerz
- Flow – Ganador 64kb en FuckYanica One
- Megademo IV : puerto rápido de PPC
- Prueba de muerte – por Mkd:AGA/CGXwarposPPCAhi+dbplayer
- Invitación a la fiesta de demostración de Equinoxe
- PRO_GEAR_SPEC – Demostración de PPC de WarpOS por humanity
- Mankind MesaGLUT – demostración surrealista de wos+ahi
- 212 – por Madwizards; 1º en Delirium 2001
- Bendiciones de Amsterdam – por Madwizards; 3.º puesto en M/S 2001
- Bazar Cull – por Madwizards; 11.º en la Asamblea de 2001
- Nuance "Subtle Shades 2" : 5.º puesto en MS2K+1
- 4to puesto en MS99 por NUANCE
- NoSyncIzBack! – Demostración de WOS 3.ª en IGDRP 2.
- Planeta Poción – Una introducción de 64 kB de Potion
- Suicidal – Una introducción de 64 kB de Potion
- Sayontsheck – Demostración de AGA de PPC por Lamers
- Luminancia – PPC WOS v1.1 – UKONX; 1º en Slach 2 1999
- NoSync – por Universe – Demostración de WOS 3.ª en Equinoxe 2003
- PowerUp – de Universe: Ganador de la demostración de WOS en Slash 2001
- Todo muere – de Venus Art, versión PPC WarpUP
- Fantasma – de 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
- ^ abc "WarpUP". Haage & Partner . 11 de abril de 2007. Archivado desde el original el 29 de octubre de 2020 . Consultado el 14 de junio de 2010 .
- Notas
- ^ Problemas de Warpsness :( Steffen Haeuser explica el kernel WarpUp en comp.sys.amiga.games
- ^ Consulte también las páginas sobre la historia del procesador PPC en Amiga en el sitio Amiga.History.
- ^ Especificaciones EHF Archivado el 16 de noviembre de 2007 en Wayback Machine en el sitio de Haage&Partners.
- ^ BlizzardPPC Flash Por qué WarpOS y Warp3D tienen problemas con Blizzard PPC
- ^ Dietrich, Wolf; Revista Amiga Report Archivado el 7 de julio de 2011 en Wayback Machine Haage y su socio anuncian WarpUP, Phase5 ataca a H&P
- ^ comp.sys.amiga.games Steffen Haeuser comenta ELF
- ^ ppclibemu emulación ppc.library bajo WarpOS
- ^ Lista de proyectos de software de Sam Jordan
- ^ Entrevista con Ben Hermans de Hyperion Benjamin Hermans comenta WarpOS
- ^ Jordan, S: Historia de powerpc.library/WarpOS. 2001
Lectura adicional
- 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 por el núcleo". Formato Amiga . Nº 104. Future Publishing. Diciembre de 1997. pág. 8. ISSN 0957-4867.
- "¡Las cartas PowerUP serán de la poudre aux yeux!". Sueño (en francés). No 46. Prensa Posse. Diciembre de 1997. p. 12. ISSN 1259-1165.
- Krenželok, Petr (enero de 1998). "WarpUp your 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, los desarrolladores de PPC entierran el hacha". Formato Amiga . Nº 112. Future Publishing. Julio 1998. pág. 9. ISSN 0957-4867.
- "Software para PowerPC". Amiga Review (en checo). N.º 36. Atlantida Publishing. Septiembre de 1998. Págs. 16, 18, 20-21. ISSN 1211-1465.
- Drummond, Richard (julio de 1999). "WarpUp 4.0". Formato Amiga . 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 .