SYmbiosis Multitasking Based Operating System ( SymbOS ) es un sistema operativo multitarea para sistemas informáticos de 8 bits basados en Zilog Z80 .
A diferencia de los primeros sistemas operativos de 8 bits, SymbOS se basa en un microkernel , que proporciona multitarea preventiva y orientada a prioridades y administra memoria de acceso aleatorio (RAM) con un tamaño de hasta 1024 KB . Tiene una interfaz gráfica de usuario (GUI) similar a la de Windows , admite discos duros con una capacidad de hasta 128 GB y ya puede iniciarse en un Amstrad CPC -6128 sin expandir, un 128K- MSX 2 y un Amstrad PCW .
A partir del 30 de agosto de 2017, está disponible para la serie de computadoras Amstrad CPC , todos los modelos MSX a partir del estándar MSX2 , MSX con chip gráfico V9990, todos los modelos Amstrad PCW , CPC-TREX, C-ONE y las computadoras Enterprise 64/128 . [1]
SymbOS se inició originalmente como un experimento para averiguar hasta qué punto es posible implementar un sistema operativo multitarea con una interfaz gráfica de usuario con ventanas en un ordenador de 8 bits de 1985. GEOS contribuyó a la motivación, pero la estructura y las características de SymbOS no son similares a las de ese sistema. El lanzamiento en 2006 demostró que un sistema de "miniventanas" de este tipo es posible en un ordenador doméstico de 20 años de antigüedad con solo limitaciones cuantitativas. SymbOS es uno de los proyectos de software informático retro más grandes de los últimos años. Uno de los objetivos del proyecto es permitir que estas máquinas antiguas se utilicen como un PC moderno, utilizando extensiones de hardware.
Aunque solo es una CPU de 8 bits, el Z80 puede ejecutar un sistema operativo multitarea preventivo . Las características como la protección de memoria , de la que carece el Z80, no son esenciales en un sistema operativo de este tipo. Por ejemplo, AmigaOS también carece de protección de memoria. El sistema operativo MP/M demostró que era posible realizar múltiples tareas en la CPU Z80. Sin embargo, generalmente no estaba disponible para los ordenadores domésticos.
Mientras que el MOS Technology 6502 no puede mover el puntero de pila , el Z80 puede reubicarlo libremente en cualquier posición de la memoria, lo que facilita la implementación de la multitarea preventiva . La existencia de un conjunto de registros alternativo acelera drásticamente el cambio de contexto entre tareas. La restricción del sistema Z80 a un espacio de direcciones de 64 KB se puede resolver con la conmutación de bancos . De esta manera, computadoras como Amstrad CPC y PCW , MSX , Enterprise o SAM Coupé pueden acceder a cientos o miles de kilobytes de memoria.
SymbOS incluye un microkernel, que puede realizar la gestión de tareas, la gestión de memoria y la comunicación entre procesos . [2]
Para la gestión de tareas se ha elegido una combinación de multitarea preventiva y cooperativa, que permite establecer distintas prioridades de tareas. La preventiva significa que el sistema operativo interrumpe las tareas después de un tiempo determinado para compartir el tiempo de CPU con otras tareas. La cooperativa significa que una tarea deja de utilizar el tiempo de CPU por sí misma. Esto ocurre si ha terminado su trabajo actual o está esperando un determinado evento. Gracias a esta combinación es posible asignar prioridades. Las tareas con una prioridad baja obtienen tiempo de CPU solo si todas las tareas con una prioridad más alta no están en funcionamiento en ese momento.
La gestión de memoria divide toda la memoria RAM en pequeños bloques de 256 bytes que se pueden asignar de forma dinámica. Las aplicaciones se ejecutan siempre en un banco de memoria RAM secundario de 64 KB, donde el sistema operativo o la memoria de vídeo no ocupan espacio de memoria. Esto permite reservar hasta 63 KB en una sola pieza.
La gestión de bancos permite que el sistema pueda administrar memoria de hasta un megabyte de tamaño, aunque la CPU Z80 sólo tenga un bus de direcciones de 16 bits . Permite el acceso transparente a la memoria y a las funciones ubicadas en otros bancos de 64 KB.
La comunicación entre las distintas tareas y el sistema operativo no suele realizarse mediante llamadas , sino mediante mensajes . Esto es necesario dentro de un entorno multitarea para evitar problemas de organización con la pila, las variables globales y los recursos compartidos del sistema. El núcleo de SymbOS admite IPC síncrono y asíncrono.
SymbOS es compatible con los sistemas de archivos CP/M , AMSDOS y File Allocation Table (FAT) 12-16-32 en todas las plataformas. Para este último, SymbOS puede gestionar dispositivos de almacenamiento masivo con una capacidad de hasta 128 GB. Además, la capacidad de administrar archivos con un tamaño de hasta 2 GB es poco común para un sistema de 8 bits. La compatibilidad con FAT permite un intercambio de datos sencillo con otras computadoras, ya que la mayoría de los sistemas operativos de 32 y 64 bits son compatibles con los tres sistemas de archivos FAT.
La interfaz gráfica de usuario (GUI) de SymbOS funciona de forma totalmente orientada a objetos . Su aspecto imita al de Microsoft Windows . Contiene la conocida barra de tareas con el reloj y el menú de "inicio" y puede abrir hasta 32 ventanas que se pueden mover, redimensionar y desplazar. Todo el sistema está escrito en lenguaje ensamblador optimizado , lo que significa que la GUI se ejecuta tan rápido como lo permita la máquina anfitriona.
El contenido de una ventana se define con "controles" que son elementos primitivos de la interfaz gráfica de usuario, como controles deslizantes, casillas de verificación, líneas de texto, botones o gráficos. No es necesario guardar el fondo o las áreas invisibles de una ventana en un búfer de mapa de bits independiente. Si es necesario restaurar un área en la pantalla, se volverá a dibujar su contenido. Esto hace que la interfaz gráfica de usuario de SymbOS sea mucho más amigable con la memoria en comparación con la mayoría de las demás interfaces gráficas de usuario de 8 bits.
Existen varias aplicaciones estándar disponibles para SymbOS, que están diseñadas para parecerse a software similar disponible en otros sistemas operativos. Algunos ejemplos son el Bloc de notas , SymCommander (similar a Norton Commander ), SymShell ( cmd.exe ), SymZilla ( Mozilla Firefox ), SymPlay ( QuickTime ), SymAmp ( Winamp ) y Minesweeper . [3]
La siguiente lista de comandos es compatible con SymShell. [4]
SymbOS se desarrolló originalmente para Amstrad CPC. Su estructura modular, con una estricta separación de los componentes generales y de hardware, hace que la adaptación a otros sistemas basados en Z80 sea relativamente sencilla.
Los ordenadores MSX que empiezan con el estándar MSX2 reciben soporte desde el verano de 2006. El puerto PCW para Amstrad está disponible desde agosto de 2007. También son posibles versiones para Enterprise 128 , SAM Coupé y clones de ZXSpectrum como ATM-turbo 2+ y ZX-Evolution/BaseConf, ya que cumplen los requisitos de SymbOS.
Manteniendo una condición básica para un sistema operativo, la estricta separación del hardware y el software de aplicación mediante una capa intermedia, las aplicaciones de SymbOS se ejecutan independientemente de la plataforma en cada computadora y no necesitan ser adaptadas para diferentes sistemas, con la obvia excepción de las aplicaciones que acceden directamente a un hardware particular.