stringtranslate.com

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

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

El juego se lanzó primero en WarpOS y luego se portó a AmigaOS4.0

Título original: DOOM

(Solo para WarpOS, no para AmigaOS)

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

El juego se lanzó primero en WarpOS y luego se portó a AmigaOS4.0

(Solo para WarpOS, no para AmigaOS)

(Solo para WarpOS, no para AmigaOS)

Demostraciones para WarpOS

Emuladores para WarpOS

Programas para WarpOS

Véase también

Referencias

  1. ^ 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
  1. ^ Problemas de Warpsness :( Steffen Haeuser explica el kernel WarpUp en comp.sys.amiga.games
  2. ^ Consulte también las páginas sobre la historia del procesador PPC en Amiga en el sitio Amiga.History.
  3. ^ Especificaciones EHF Archivado el 16 de noviembre de 2007 en Wayback Machine en el sitio de Haage&Partners.
  4. ^ BlizzardPPC Flash Por qué WarpOS y Warp3D tienen problemas con Blizzard PPC
  5. ^ 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
  6. ^ comp.sys.amiga.games Steffen Haeuser comenta ELF
  7. ^ ppclibemu emulación ppc.library bajo WarpOS
  8. ^ Lista de proyectos de software de Sam Jordan
  9. ^ Entrevista con Ben Hermans de Hyperion Benjamin Hermans comenta WarpOS
  10. ^ Jordan, S: Historia de powerpc.library/WarpOS. 2001

Lectura adicional