Articulo de referencia

Quark (núcleo)

En informática , Quark es un núcleo de sistema operativo utilizado en MorphOS . Es un micronúcleo diseñado para ejecutar computadoras totalmente virtualizadas , llamadas cajas (...

En informática , Quark es un núcleo de sistema operativo utilizado en MorphOS . Es un micronúcleo diseñado para ejecutar computadoras totalmente virtualizadas , llamadas cajas (ver sandbox ). A partir de 2020, solo está disponible una caja , la ABox , que permite a los usuarios ejecutar software AmigaOS existente compilado para unidades centrales de procesamiento (CPU) Motorola serie 68000 (MC680x0 o 68k) .

Objetivos de diseño

El microkernel Quark no pertenece a la familia de microkernels L4 , pero toma prestados algunos de sus conceptos, como el clan (grupo de tareas), el concepto de ID y el mapeo recursivo de direcciones. Quark también cuenta con una interfaz de mensajes asíncrona/síncrona similar al kernel Exec de Amiga , pero adaptada a un entorno con protección de memoria .

Otras características de Quark incluyen:

Para este nuevo núcleo, se utiliza una capa de abstracción de hardware que proporciona la información necesaria sobre los recursos de hardware, como el escaneo de todas las tarjetas de bus de Amiga Zorro II , las tarjetas de interconexión de componentes periféricos (PCI) y los recursos de hardware locales. [ 1 ] [ 2 ]

Funciones

  • SYS_AddLinkMessage
  • SYS_AttemptSemaphore
  • SYS_AttemptSemaphoreShared
  • Configuración de copia de CPU del sistema
  • Lista de creación de memoria del sistema
  • SYS_CrearTarea
  • Puerto de eliminación del sistema
  • SYS_DeleteSemaphore
  • Encabezado de volcado de memoria del sistema
  • Área de búsqueda de memoria libre del sistema
  • SYS_FindSkipSize
  • SYS_GetLinkMessage
  • SYS_GetMessageAttr
  • SYS_ObtenerSiguienteCPU
  • SYS_Init
  • SYS_InsideClan
  • SYS_EsMiembroDelClan
  • Página adicional SYS_MMU
  • Entrada de datos SYS_MMUGet
  • SYS_MoverMóduloRomAMemoriaFin
  • Puerto de obtención del sistema
  • SYS_ObtenerSemáforo
  • SYS_ObtenerSemáforoCompartido
  • SYS_ReleaseSemaphore
  • Mensaje de respuesta del sistema
  • SYS_EnviarMensaje
  • SYS_SetMessageAttr
  • Tabla de páginas de configuración del sistema
  • SYS_MostrarHilosDeExcepción
  • SYS_MostrarProhibirHilos
  • SYS_MostrarHilosInternos
  • SYS_ShowQuarkState
  • SYS_ShowReadyThreads
  • SYS_ShowRunThreads
  • SYS_MostrarHilos
  • SYS_ShowWaitIntThreads
  • SYS_MostrarHilosDeEspera
  • SYS_Start
  • SYS_StartNextThread
  • Hilo de inicio del sistema
  • Puerto de espera del sistema

Trance JIT

Trance JIT es un compilador justo a tiempo (JIT) de MorphOS , o traductor de código, para ejecutar aplicaciones 68k dentro del entorno MorphOS. Forma parte del sistema operativo MorphOS desde MorphOS 1.4. [ 3 ]

MorphOS cuenta con un emulador de 68k totalmente integrado para ejecutar numerosas aplicaciones de Amiga, compiladas casi exclusivamente para el procesador 68k, aunque MorphOS se ejecuta en PowerPC . Trance complementa esta función añadiendo compilación JIT, lo que aumenta la velocidad de la emulación. No interfiere con la integración completa de las tareas de 68k y PowerPC que ofrece MorphOS. [ 1 ]

Trance existe como un ejecutable que se ejecuta durante el arranque y como una biblioteca compartida. Si bien técnicamente no forma parte del núcleo y MorphOS puede ejecutarse sin él, Trance se considera una parte fundamental de MorphOS y una de sus características más potentes.

La compatibilidad de Trance se considera muy alta y existen pocas o ninguna secuencia de instrucciones o aplicaciones de 68k que le causen problemas. También se considera muy rápido, y los usuarios notan pocas diferencias entre los programas de 68k y el código nativo de PowerPC. [ 4 ] [ 5 ] [ 6 ]

Trance fue desarrollado por Ralph Schmidt y Teemu Suikki, con un apoyo menor de otros miembros del equipo de MorphOS, Mark Olsen, Sigbjørn Skjæret y Harry Sintonen.

ABox

Bajo el núcleo Quark, una reimplementación nativa para PowerPC del sistema operativo conocido de los sistemas Commodore International A1000, A500(+), A600, A2000, A1200, A3000(T) y A4000(T) se ejecuta como una combinación de emulación virtual y controlador . Este controlador del sistema operativo se denomina ABox.

La emulación del 68k está escrita en C y utiliza macros del lenguaje ensamblador de GNU Compiler Collection (GCC) cuando es necesario para acelerar algunas instrucciones complejas.

Para MorphOS también está disponible un motor JIT llamado Trance , que acelera los programas antiguos de 68k más allá del estado actual de la emulación tradicional.

El Exec nativo de PPC admite el modelo de registro de PowerPC, lo que significa que no hay diferencia para este Exec si ejecuta código 68k o PowerPC. El código PowerPC no bloquea la multitarea dentro del sistema operativo como en las emulaciones donde el código 68k simplemente se emula en una tarea del sistema anfitrión (en cuyo caso, cualquier acceso fuera de este entorno detendría la multitarea en el entorno emulado).

Para las aplicaciones que se ejecutan bajo este nuevo kernel PowerPC ABox, el código 68k se ejecuta como subrutinas dentro de las tareas PowerPC. Para las aplicaciones 68k o PowerPC, es totalmente transparente si alguna biblioteca, gancho o interrupción sigue siendo 68k o ya utiliza código PowerPC. [ 7 ]

Referencias

  1. 1 2 "¿MorphOS? ¿Qué es eso, entonces?". AmigActive . Julio de 2000. págs. 14–17 . 
  2. Gerber, David (2002). "Lista completa de características de MorphOS" (PDF) . Recuperado el 28 de julio de 2010 .
  3. "MorphOS 1.4 disponible" . 9 de agosto de 2003. Archivado del original el 9 de marzo de 2012. Consultado el 28 de julio de 2010 .
  4. "¿Qué tan rápido es MorphOS?" . 8 de febrero de 2003. Archivado del original el 16 de diciembre de 2013. Recuperado el 28 de julio de 2010 .
  5. "MorphOS 68k velocidad" . 3 de noviembre de 2002. Archivado del original el 9 de marzo de 2012. Consultado el 28 de julio de 2010 .
  6. ^ "Comparativa: actuaciones entre AmigaOS 4.1 y MorphOS 2.3 sur Pegasos II" (en francés). Septiembre de 2009 . Consultado el 28 de julio de 2010 .
  7. "Lista completa de características de MorphOS" . 11 de diciembre de 2002. Archivado del original el 15 de julio de 2011. Consultado el 28 de julio de 2010 .