SymbOS

De MadriSX wiki
Saltar a: navegación, buscar
Archivo:Symbos-cpc.png
SymbOS-Desktops en un Amstrad CPC
Archivo:Symbos-msx2.gif
SymbOS en un MSX2
Archivo:Symbos 01.jpg
Amstrad CPC 6128 con SYMBiFACE II corriendo SymbOS
Archivo:Symbos 02.jpg
Amstrad CPC 6128 reproduciendo un video de Matrix
Archivo:Symbos 03.jpg
SYMBiFACE II y adaptador CompactaFlash-IDE

SymbOS es un sistema operativo multitarea para ordenadores de 8 bits basados en el Zilog Z80. En el momento actual está disponible para las gamas de ordenadores Amstrad CPC y CPC Plus, y como una beta para los ordenadores MSX a partir del MSX-2. Contrariamente a anteriores sistemas operativos de 8 bits, se basa en un Microkernel, que realiza multitarea preferente (preemptiva), orientada a prioridades y administra una memoria RAM de hasta 576 Kb. SymbOS contiene un GUI similar al de MS-Windows, soporta unidades de disco no removibles de hasta 128 Gb y puede funcionar en un CPC 6128 o un MSX2 de 128 Kb una vez arrancados.


Detalles técnicos

La CPU Z80 de 8 Bits es capaz sin problemas de realizar una multitarea preferente. Mecanismos no presentes, como los que representan la protección del almacenamiento, que se consideran como una condición, son en realidad sólo un problema para la dependencia. Aunque no es ejecutable en ordenador domésticos, el sistema operativo MP/M ya probó que la multitarea en un Z80 es posible.


Contrariamente al MOS 6502 usado por ejemplo en el Commodore 64, la pila del Z80 puede situarse en cualquier lugar de la memoria, lo que es un requisito para la multitarea preferente eingesetzten kann der Stack beim Z80 an jede beliebigen Stelle im Speicher gelegt werden, was mehr oder weniger eine Voraussetzung für preemptives Multitasking ist. Un juego de registros secundarios alternativos aceleran además el intercambio de tareas dramáticamente. La restricción de los 64 Kb ha sido superada por numerosos ordenadores con un Z80 usando en intercambio de bancos de memoria. Equipos como los Amstrad CPC, Amstrad PCW, MSX, Enterprise o el SAM Coupé pueden direccionar decenas y cientos de Kilobites.

Kernel

SymbOS tiene un microkernel, que se encarga del control de las tareas fundamentales del sistema operativo. Se divide en Gestión de Procesos, Gestión de Memoria y de Bancos de Memoria y Cola de Mensajes.

Gestión de Procesos

Para la Gestión de Procesos se selecciona una combinación de Multitarea Cooperativa y Preferente, en función de la prioridad asignada al proceso. En la Preferente, el proceso es interrumpido cada cierto tiempo por el sistema, para asignar el tiempo de CPU a cada uno de los procesos existentes. en la Cooperativa, en contraste, es el proceso el que entrega voluntariamente su tiempo de CPU. Esto ocurre, por ejemplo, si acaba con sus tareas (por lo menos provisionales) o queda a la espera de cierto evento. Con esta combinación pueden asignarse las prioridades. Los procesos de baja prioridad reciben su tiempo, finalizan su tarea y entregan voluntariamente su tiempo de CPU que pasa a las tareas con un nivel más alto de prioridad.

Gestión de Memoria y de Bancos de Memoria

La Gestión de Memoria divide toda la RAM en bloques consecutivos de 256 Bytes, que se asignarán dinámicamente. La lista de asignaciones se sitúa en un banco secundario de 64 Kb, para que no ocupe espacio del sistema operativo o la memoria de pantalla (en los Amstrad CPC esa memoria es parte de las 64 Kb gestionados directamente por el Zilog Z80, mientras que en los MSX está asignada al chip VDP sin ocupar las direcciones de memoria del Z80). De este modo se puede asignar hasta 63KB, que se corresponden casi al área entera de direccionamiento del Z80. La Gestión de Bancos de Memoria utiliza el bus de direcciones de 16 Bits de la CPU, conmutándole de forma transparente bancos de 16 Kb hasta un total de 1 Megabyte.

Cola de Mensajes

La comunicación entre los procesos individuales y el sistema operativo no ocurre generalmente mediante “llamadas”, sino mediante una pila de “mensajes” que son gestionados por el sistema. Esto es necesario en un entorno multitarea, pues si no la llamadas simultaneas de los diferentes procesos y su intento de acceso simultáneo a los recursos acabaría produciendo un desbordamiento de pila con la sobrescritura de variables públicas y locales. De este modo es el sistema quien se encarga de gestionar las comunicaciones entre los diferentes procesos.

Entorno gráfico de usuario

El GUI de SymbOS está totalmente orientado a objeto, con influencia de Windows como por ejemplo el menú Start. El sistema operativo está escrito por completo en ensamblador optimizado, con lo que a velocida del GUI está insignificantemente por debajo de los sistemas actuales y excede, por ejemplo, a la velocidad de la versión inicial del Amiga Workbench.

Todo el contenido de las ventanas individuales se define totalmente con “controles”. Éstos son, por ejemplo, deslizador, checkbox, cajas de texto, Botones o Gráficos. Cuando una ventana del fondo se trae a prime plano todo su contenido se redibuja.

Sistema de Ficheros

SymbOS soporta los sistemas de ficheros CP/M, AMSDOS, FAT12, FAT16 y FAT32. Con este último SymbOS puede gestionar sistemas de almacenamiento masivo de datos de hasta 128 GB. La capacidad de gestión tradicional de un sistema de archivos de 8 bits no suele exceder de los 2GB. El intercambio de datos con otras computadoras se simplifica mucho con la ayuda de FAT, pues es soportada por los actuales sistemas operativos de 32 y 64 bits.


Plantilla:Endesarrollo

Véase también

Enlaces externos