Quark (núcleo)

Sistema operativo
Cuarc
ReveladorRalph Schmidt y Teemu Suikki
Escrito enC , lenguaje ensamblador
Familia de sistemas operativosAmigaOS
Estado de funcionamientoActual
Objetivo de marketingAmiga
Disponible enInglés
Método de actualizaciónCompilar desde el código fuente
PlataformasSerie Motorola 68000 (MC680x0, 68k),
PowerPC (PPC)
Tipo de kernelMicronúcleo

Interfaz de usuario predeterminada
Interfaz de línea de comandos
Precedido porAmigaOS

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

Objetivos de diseño

El microkernel Quark no es miembro de la familia de microkernels L4 , pero toma prestados conceptos de ella, entre ellos: el clan (grupo de tareas), el concepto de ID y el mapeo recursivo de direcciones. Quark también tiene una interfaz de mensajes asíncrona/sincrónica 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 de recursos de hardware necesaria, como el escaneo de todas las placas de bus Amiga Zorro II , las placas de interconexión de componentes periféricos (PCI) y los recursos de hardware locales. [1] [2]

Funciones

  • Mensaje de enlace adicional SYS_AddLinkMessage
  • Semáforo de intentos SYS
  • SYS_IntentoSemáforoCompartido
  • Configuración de SYS_CopyCPUHal
  • SYS_CreateListaMemoria
  • SYS_CrearTarea
  • SYS_DeletePort
  • SYS_EliminarSemáforo
  • Encabezado de memoria SYS_DumpMem
  • SYS_FindFreeMemArea
  • SYS_FindSkipSize
  • SYS_Obtener mensaje de enlace
  • SYS_GetMessageAttr
  • SYS_ObtenerSiguienteCPU
  • Sistema de inicialización SYS_Init
  • SYS_Dentro del Clan
  • SYS_IsClanMember
  • Página de adición de SYS_MMU
  • Entrada SYS_MMUGet
  • SYS_MoveRomModuleToMemoryEnd
  • SYS_ObtenerPuerto
  • SYS_ObtenerSemáforo
  • SYS_ObtenerSemáforoCompartido
  • Semáforo de liberación SYS
  • Mensaje de respuesta SYS_
  • SYS_Enviar mensaje
  • SYS_Establecer atributo de mensaje
  • Tabla de páginas de configuración SYS_Setup
  • SYS_ShowExceptionThreads
  • SYS_ShowForbidThreads
  • SYS_ShowIntHilos
  • SYS_Mostrar estado de quark
  • SYS_ShowReadyThreads
  • SYS_Mostrar subprocesos de ejecución
  • SYS_Mostrar hilos
  • SYS_ShowWaitIntHilos
  • SYS_ShowWaitThreads
  • SYS_Inicio
  • SYS_Iniciar próximo hilo
  • SYS_Hilo de inicio
  • Puerto de espera del sistema

Trance JIT

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

MorphOS tiene un emulador de 68k totalmente integrado para ejecutar muchas aplicaciones de Amiga, que fueron compiladas casi exclusivamente para el procesador de 68k, aunque MorphOS se ejecuta en PowerPC . Trance complementa esta función agregando 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 MorphOS proporciona. [1]

Trance existe en forma de archivo ejecutable que se ejecuta durante el arranque y de biblioteca compartida. Aunque 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 funciones más potentes.

Se considera que la compatibilidad de Trance es muy alta y hay pocas o ninguna secuencia de instrucciones o aplicaciones de 68k que le causen problemas. También se considera que es 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.

Una caja

Bajo el núcleo Quark, una reimplementación nativa de 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 una emulación virtual y un controlador . Este controlador del sistema operativo se denomina ABox.

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

También está disponible un motor JIT llamado Trance para MorphOS, para acelerar los viejos programas 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 de 68k o de PowerPC. El código de PowerPC no bloquea la multitarea dentro del sistema operativo como en las emulaciones donde el código de 68k simplemente se emula en alguna tarea del sistema host (entonces, cada acceso fuera de este entorno detendría la multitarea en el entorno emulado).

Para las aplicaciones que se ejecutan con este nuevo núcleo ABox de PowerPC, el código 68k se ejecuta como subrutinas dentro de las tareas de PowerPC. Para las aplicaciones 68k o PowerPC, es completamente transparente si alguna biblioteca, gancho o interrupción sigue siendo 68k o ya está usando código PowerPC. [7]

Referencias

  1. ^ ab "¿MorphOS? ¿Qué es eso entonces?". AmigActive . Julio de 2000. pp. 14–17.
  2. ^ Gerber, David (2002). "Lista completa de características de MorphOS" (PDF) . Consultado el 28 de julio de 2010 .
  3. ^ "MorphOS 1.4 disponible". 9 de agosto de 2003. Consultado el 28 de julio de 2010 .
  4. ^ "¿Qué tan rápido es MorphOS?". 8 de febrero de 2003. Consultado el 28 de julio de 2010 .
  5. ^ "Velocidad de 68k en MorphOS". 3 de noviembre de 2002. Consultado el 28 de julio de 2010 .
  6. ^ "Comparativo: 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. Consultado el 28 de julio de 2010 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Quark_(núcleo)&oldid=1084906045#Trance_JIT"