OS-9 es una familia de sistemas operativos multiusuario , multitarea y basados en procesos , en tiempo real , desarrollados en la década de 1980, originalmente por Microware Systems Corporation para el microprocesador Motorola 6809. Fue adquirido por Radisys Corp en 2001 y nuevamente en 2013 por su actual propietario, Microware LP .
La familia OS-9 fue popular para la informática de propósito general y sigue utilizándose en sistemas embebidos comerciales y entre aficionados. Hoy en día, OS-9 es un nombre de producto utilizado tanto para un sistema operativo en lenguaje máquina de la serie Motorola 68000 como para una versión portátil ( PowerPC , x86 , ARM , MIPS , SH4 , etc.) escrita en C , originalmente conocida como OS-9000 .
Historia
La primera versión ("OS-9 Nivel Uno"), que data de 1979-1980, fue escrita en lenguaje ensamblador para la CPU Motorola 6809 , y todos sus procesos se ejecutaban dentro del espacio de direcciones de 64 KB de la CPU sin una unidad de gestión de memoria. Fue desarrollada como un sistema operativo de apoyo para el proyecto BASIC09 , contratado por Motorola como parte del desarrollo del 6809. Una versión posterior para el 6809 ("Nivel Dos") aprovecha el hardware de mapeo de memoria, admitiendo hasta 2 MB de memoria (aproximadamente en 1980) en la mayoría de las implementaciones, e incluía una interfaz gráfica de usuario en algunas plataformas.
En 1983, OS-9/6809 se adaptó al lenguaje ensamblador Motorola 68000 y se amplió (denominándose OS-9/68K); y una versión posterior (1989) se reescribió principalmente en C para una mayor portabilidad. La versión portátil se denominó inicialmente OS-9000 y se lanzó para sistemas PC 80386 alrededor de 1989, y posteriormente se adaptó a PowerPC alrededor de 1995. Estas versiones posteriores carecen de las funciones de mapeo de memoria de OS-9/6809 Nivel Dos simplemente porque no las necesitan. Utilizaban un único espacio de direcciones plano que compartían todos los procesos; el hardware de mapeo de memoria, si estaba presente, se utilizaba principalmente para garantizar que los procesos accedieran únicamente a la memoria a la que tenían derecho. En cualquier caso, las MPU 680x0 y 80386 (y posteriores) admiten directamente mucha más de 1 MB de memoria.
Como consecuencia de las decisiones de diseño iniciales que aprovecharon las capacidades de código objeto reentrante del procesador 6809, los programas destinados a OS-9 deben ser reentrantes; los compiladores generan código reentrante automáticamente y los ensambladores de OS-9 ofrecen un soporte considerable para ello. OS-9 también utiliza código y datos independientes de la posición, ya que el 6809 también lo admite directamente; los compiladores y ensambladores admiten la independencia de la posición. El núcleo de OS-9 carga los programas (incluido el código compartido) y asigna datos donde haya suficiente espacio libre disponible en el mapa de memoria. Esto permite que todo el sistema operativo y todas las aplicaciones se ubiquen en la memoria ROM o Flash, y facilita la gestión de la memoria cuando los programas se cargan en la RAM y se ejecutan. Los programas, los controladores de dispositivos y los gestores de E/S en OS-9 son todos "módulos" y se pueden cargar y descargar dinámicamente (sujeto al número de enlaces) según sea necesario.
OS-9/6809 funciona en sistemas Motorola EXORbus que utilizan los sistemas de bus Motorola 6809 , SS-50 Bus y SS-50C de empresas como SWTPC , Tano , Gimix , Midwest Scientific y Smoke Signal Broadcasting , sistemas STD-bus 6809 de varios proveedores, ordenadores personales como Fujitsu FM-11 , FM-8 , FM-7 y FM-77, Hitachi MB-S1 y muchos otros.
System Industries , un proveedor externo de equipos compatibles con DEC, utilizó un procesador 68B09E con sistema operativo OS9 en sus controladores de respaldo de cinta QIC ( cartucho de un cuarto de pulgada ) en instalaciones VAX .
El hardware más conocido (debido a su bajo precio y amplia distribución) fue el TRS-80 Color Computer (CoCo) y la serie Dragon , similar . Incluso en el CoCo, una plataforma de hardware bastante minimalista, era posible, bajo OS-9/6809 Nivel Uno, tener más de un usuario interactivo ejecutándose simultáneamente (por ejemplo, uno en el teclado de la consola, otro en segundo plano y quizás un tercero de forma interactiva a través de una conexión serie), así como varios otros procesos no interactivos. Un sistema, el Positron 9000, se posicionó como un sistema multiusuario para uso educativo, ofreciendo los entornos BASIC y Pascal de Microware, equipado con 64 KB a 512 KB de RAM y con cuatro a doce puertos serie. Sin embargo, se informó que la capacidad de respuesta se veía afectada por las operaciones multiusuario en la configuración mínima del sistema. [ 1 ] Cumana produjo una segunda implementación de procesador de OS-9 para el BBC Micro . Incluía RAM integrada, interfaz de disco duro SCSI y un procesador MC68008 . [ 2 ]
OS-9 también se adaptó al Commodore SP-9000 o SuperPET, que contaba con un procesador 6809 además del 6502 del modelo base 8032, así como 64 KB adicionales. El Grupo de Usuarios de PET de Toronto patrocinó un proyecto de hardware y software que incluía una tarjeta secundaria con una MMU, además de los discos de distribución de OS-9. Con dos procesadores, 96 KB de memoria, una pantalla de 25x80, puertos serie, paralelo e IEEE-488 y numerosos periféricos, este fue uno de los sistemas OS-9 más potentes disponibles.
Las capacidades multiusuario y multitarea de OS-9 lo convierten en un sistema informático interactivo de propósito general. Se han desarrollado numerosas aplicaciones interactivas de terceros para él, como la hoja de cálculo Dynacalc , el formateador de texto VED y los procesadores de texto WYSIWYG Stylograph y Screditor-3 . El formateador de emulación nroff de TSC también fue adaptado a OS-9 por MicroWay.
A mediados de la década de 1980, se seleccionó OS-9 como sistema operativo para CD-i . Casi al mismo tiempo, Microsoft se acercó a Microware para adquirir la compañía, principalmente porque le atraía CD-RTOS, el sistema operativo de CD-i. La negociación fracasó y no se llegó a ningún acuerdo; Microware decidió permanecer independiente. [ 3 ]
A finales de la década de 1980, Microware lanzó OS-9000, una versión más portátil del sistema operativo. La mayor parte del núcleo del sistema operativo se reescribió en C , dejando solo algunas partes dependientes del hardware en lenguaje ensamblador. Se añadieron algunas "características más avanzadas", como un espacio de nombres de módulos del núcleo con estructura de árbol. OS-9000 se adaptó inicialmente a las CPU de la familia Motorola 680x0 , Intel 80386 y PowerPC . OS-9000/680x0 fue un fracaso comercial y se retiró rápidamente, probablemente porque pocos clientes querían probar un sistema operativo más pesado y lento en lugar del OS-9/680x0, que ya había demostrado su estabilidad. Posteriormente, Microware empezó a llamar a todos sus sistemas operativos —incluido el que originalmente se llamaba OS-9000— simplemente OS-9, y comenzó a orientar su negocio hacia los mercados de dispositivos portátiles de consumo, como teléfonos móviles, sistemas de navegación para automóviles y multimedia.
A finales de los años 80 y principios de los 90, los ordenadores generadores de caracteres utilizados en los sistemas de radiodifusión empleaban ampliamente los sistemas operativos OS-9 y OS-9000. La ya desaparecida Pesa Electronica utilizaba OS-9 en sus generadores de caracteres, como los modelos CG 4722 y CG 4733.
Conflictos de nombres y decisiones judiciales
En 1999, diecinueve años después del primer lanzamiento de OS-9, Apple Computer lanzó Mac OS 9. Ese mismo año, Microware demandó a Apple por infracción de marca registrada, [ 4 ] aunque un juez dictaminó que habría pocas posibilidades de confusión entre ambos. Algunos usuarios de Macintosh que desconocen el OS-9 menos conocido de Microware han publicado en el grupo de noticias comp.os.os9 sin darse cuenta de qué es OS-9.
En 2001, RadiSys compró Microware para adquirir los recursos del procesador de red Intel IXP-1200 . Esta adquisición inyectó capital a Microware y le permitió continuar con el desarrollo y el soporte de OS-9.
El 21 de febrero de 2013, Microware LP (una sociedad formada por Freestation de Japón, Microsys Electronics de Alemania y RTSI LLC de EE. UU.) anunció que había firmado un Acuerdo de Compra de Activos para adquirir los derechos de los nombres Microware, OS-9 y todos los activos de RadiSys .
Tecnología
Diseño moderno y arcaico
OS-9 (especialmente la versión 68k y posteriores) se distingue claramente de la generación anterior de sistemas operativos embebidos en muchos aspectos.
- Funciona en procesadores de 8, 16 y 32 bits .
- Clara separación entre el modo de usuario y el modo supervisor (núcleo).
- Uso dinámico de componentes de software creados individualmente y por separado (imágenes de programas ejecutables y módulos del kernel ) en lugar de una única imagen monolítica enlazada estáticamente .
- Modelo de espacio de nombres de procesos tipo Unix (no modelo de memoria ) y programa de shell de usuario.
- Clara separación entre las capas independientes del hardware (por ejemplo, gestores de archivos) y las dependientes del hardware (por ejemplo, controladores de dispositivos ).
En comparación con sistemas operativos más modernos:
- El núcleo está escrito completamente en lenguaje ensamblador (solo la versión para OS-9/68K) y en C (versión portable a otras arquitecturas) utilizando estructuras de datos internas simples, lo que reduce la flexibilidad y el alcance de las mejoras, al tiempo que mejora la determinabilidad necesaria para los sistemas operativos en tiempo real .
- El rendimiento también se vio afectado en algunas operaciones, pero el lenguaje ensamblador ayudó a solucionar el problema de la velocidad.
- Los sistemas sin unidad de gestión de memoria (MMU) carecen de protección contra accesos ilegales y de protección de memoria por proceso, mientras que los sistemas con MMU pueden tener la protección de memoria habilitada. El integrador del sistema puede incluir u omitir el módulo que controla la MMU para habilitar o deshabilitar la protección de memoria. Esto permite que OS-9 se ejecute en sistemas antiguos que no incluyen una MMU.
- Las versiones anteriores de OS-9 no son compatibles con los subprocesos POSIX , mientras que todos los procesadores compatibles con OS-9 sí lo son.
- No hay soporte SMP para múltiples sockets, núcleos o subprocesos de hardware en la misma instancia de OS-9 (puede ejecutarse como un RTOS en uno de los núcleos de procesadores de doble núcleo como Core Duo y Core 2 Duo , mientras Linux se ejecuta en el otro núcleo realizando tareas de propósito general).
Programación de tareas
El núcleo en tiempo real de OS-9 permite que múltiples aplicaciones independientes se ejecuten simultáneamente mediante la conmutación de tareas y la comunicación entre procesos. Todos los programas de OS-9 se ejecutan como procesos que contienen al menos un proceso ligero (hilo), pero pueden contener un número prácticamente ilimitado de hilos. Dentro de un proceso, estos procesos ligeros comparten memoria, rutas de E/S y otros recursos de acuerdo con la especificación y la API de hilos POSIX. OS-9 planifica los hilos utilizando un algoritmo de planificación preventiva de prioridad fija con planificación round-robin dentro de cada prioridad. Se admite la división de tiempo. Los niveles de prioridad se pueden dividir en un rango que admite el envejecimiento y un rango de mayor prioridad que utiliza la planificación de prioridad estricta. Cada proceso puede acceder a cualquier recurso del sistema emitiendo la solicitud de servicio OS-9 correspondiente. En cada punto de planificación, OS-9 compara la prioridad del hilo que encabeza la cola activa con la prioridad del hilo actual. Cambia de contexto al hilo en la cola activa si su prioridad es mayor que la del proceso actual. El envejecimiento incrementa artificialmente la prioridad efectiva de los subprocesos en la cola activa a medida que transcurre el tiempo. A intervalos definidos, la segmentación temporal devuelve el subproceso actual a la cola activa, colocándolo detrás de otros subprocesos con la misma prioridad.
Módulos del núcleo
- Núcleo: contiene el cambio de tareas, la asignación de memoria y la mayoría de las llamadas que no son de E/S.
- IOMAN: Gestiona las llamadas de E/S a varios gestores de archivos y controladores.
- Conjunto básico de gestores de archivos:
- SCF, archivos serie (dispositivos serie)
- RBF, Bloque aleatorio (dispositivos de disco)
- SBF, Bloque secuencial (dispositivos de cinta)
- NFM, dispositivos nulos (USB y otros dispositivos)
- MFM, Mensaje
- SPF, Dispositivos de protocolo apilado (Redes)
- Archivos PCF, archivos FAT de PC
- PIPEMAN, Gerente de tuberías
- Modman - Directorios de módulos de memoria
- SSM – Seguridad del sistema (gestión de MMU)
- Caché – Gestión de caché,
- VectXXX – Controlador de vectores/imágenes
- FPU – Emulación de punto flotante
- Alinear: controlador de fallos de alineación de direcciones
Comandos
La siguiente lista de comandos es compatible con el intérprete de comandos de OS-9.
Comandos integrados del shell
- chd
- chx
- matar
- w
- esperar
- establecerv
- unsetenv
- setpr
- cerrar sesión
- perfil
- ex
- -mi
- -nordeste
- -pag
- -p=<str>
- -notario público
- -t
- -Nuevo Testamento
- -v
- -Nevada
- -incógnita
- -nx
Utilidades para funciones del sistema operativo
Utilidades de administración del sistema
Servicios generales
Comparaciones con Unix
La noción de procesos y rutas de E/S de OS-9 es bastante similar a la de Unix en casi todos los aspectos, pero existen algunas diferencias significativas. En primer lugar, el sistema de archivos no es un solo árbol, sino un bosque donde cada árbol corresponde a un dispositivo. En segundo lugar, OS-9 no tiene una llamada al sistema ` fork()` al estilo Unix ; en su lugar, tiene una llamada al sistema que crea un proceso que ejecuta un programa específico, realizando prácticamente la misma función que ` fork-exec` o ` spawn` . Además, los procesos de OS-9 mantienen un registro de dos "directorios actuales" en lugar de uno solo; el "directorio de ejecución actual" es donde, por defecto, buscará primero para cargar los programas que se van a ejecutar (lo que es similar al uso de la variable de entorno PATH en UNIX). El otro es el directorio de datos actual.
Otra diferencia es que en OS-9, los directorios abuelos se pueden indicar repitiendo puntos tres o más veces, sin barras diagonales intermedias (una característica que también se encuentra en 4DOS / 4OS2 / TC / 4NT ). Por ejemplo, ..../fileen OS-9, es similar a ../../../fileen Unix. Pero .y .., con solo uno o dos puntos, funcionan igual tanto en OS-9 como en Unix.
OS-9 ha tenido un diseño modular desde el principio, influenciado por las ideas de los diseñadores del 6809 y cómo esperaban que se distribuyera el software en el futuro (véase la serie de tres artículos publicados en la revista Byte entre enero y marzo de 1979 por Terry Ritter y otros de Motorola, quienes diseñaron la CPU).
La estructura de módulos requiere una explicación más detallada: OS-9 mantiene un "directorio de módulos", una lista residente en memoria de todos los módulos que se encuentran en memoria, ya sea por haber sido cargados o por haber sido encontrados en la ROM durante un escaneo inicial al arrancar. Cuando se escribe un comando en la consola de OS-9, primero se busca en el directorio de módulos actual un módulo con el nombre especificado y se utiliza (y se incrementa su contador de enlaces) si se encuentra; de lo contrario, se busca en el disco un archivo con el nombre adecuado. En OS-9/6809 y OS-9/68000, el directorio de módulos es plano, pero OS-9000 lo estructuró en árbol. La consola de OS-9000 busca en el directorio de módulos alternativo una variable de entorno MODPATH, análoga a la variable PATH en todas las versiones, que indica la secuencia de directorios de módulos en los que buscar módulos precargados.
Los módulos no solo se utilizan para almacenar programas, sino que también se pueden crear sobre la marcha para almacenar datos, y son la forma en que OS-9 admite la memoria compartida. OS-9 (sin procesador 68000) admite subprocesos POSIX . Un único proceso puede iniciar cualquier número de subprocesos.
Estado
OS-9 ha caído en desuso, aunque Microware LP aún lo soporta y funciona en arquitecturas modernas como ARM y x86. El compilador proporcionado, Ultra C/C++, soporta C89 , pero no C99 ni C++98 . Ultra C++ ofrece soporte limitado para plantillas de C++. También es compatible con bibliotecas SSL/TLS populares como OpenSSL y OpenSSH . Recientemente, CLANG/LLVM se ha adaptado a OS-9 para procesadores con arquitectura PPC y ARM.
- Una versión de OS-9 que ejecuta G-Windows de Steve Adams está presente en los analizadores de obleas de semiconductores fabricados por Ontrak Systems / Lam Research. Miles de estos sistemas están en uso actualmente; sin embargo, el software que ejecutan data de 1999, cuando se creó la última versión para solucionar los problemas del efecto 2000.
- Las versiones de OS-9/68K funcionaban en una amplia variedad de plataformas de la familia 68000 , incluyendo la X68000 en Japón, algunas computadoras personales diseñadas por sus creadores como actualizaciones de la Color Computer (por ejemplo, la MM/1 basada en los procesadores 68070 y 68340 , y otras computadoras de Frank Hogg Laboratories , PEP Modular Computers y Delmar Co.). También fue adaptada para Atari ST por Recc-o-ware a principios de la década de 1990 y distribuida por Cumana en Europa. Existe una versión para Apple Macintosh basada en el procesador 68000 distribuida por Ultrascience. Digby Tarvin también afirma que existe una versión para Amiga .
- Caltrans exige el uso del OS-9/68K en las tarjetas controladoras 2070-1B y 2070-1E, por lo que termina utilizándose para operar muchos sistemas de control de semáforos en Norteamérica.
- El sistema operativo OS-9/68K también se encuentra en otras aplicaciones integradas, como el generador de caracteres para transmisiones de televisión Quanta Delta, que ScanLine Technologies, con sede en Utah, aún produce. Si bien el código de la interfaz de usuario de este sistema se ejecutaba al arrancar, existía una secuencia de teclas oculta y no documentada que proporcionaba al usuario un indicador de shell de root en una ventana desplazable en el monitor del canal de edición del dispositivo.
- En el mercado de sistemas embebidos, OS-9 ha encontrado aplicación en dispositivos como los sintetizadores Fairlight CMI , la robótica, los sistemas de navegación para automóviles y el estándar industrial de discos compactos interactivos ( CD-i ) de Philips .
- El ordenador a color TRS-80 (y sus clones) todavía tiene usuarios y una conferencia anual en Chicago; en 2018, la 27.ª edición anual del Chicago CoCoFEST [ 5 ] estaba programada para los días 21 y 22 de abril de 2018. Un grupo de programadores canadienses reescribió OS-9/6809 Nivel II para el CoCo 3 (con hardware de traducción de direcciones) para mejorar la eficiencia y aprovechar el modo nativo del Hitachi 6309. Hoy en día, los usuarios más exigentes de CoCo suelen haber reemplazado el 68B09E del CoCo 3 por un Hitachi 63B09E y ejecutan la reescritura, denominada NitrOS-9 . Esta combinación es sorprendentemente rápida, teniendo en cuenta que se ejecuta en un sistema informático de 8 bits de bajo coste.
- El FPGA CoCo3 de Gary Becker es un ordenador de color TRS-80 sintetizado que ejecuta NitrOS-9 en una placa de desarrollo Altera DE-1. El núcleo de la CPU 6809 fue diseñado por John Kent y actualmente funciona a 25 MHz.
- OS-9000/80x86 puede ejecutarse en ordenadores tipo PC basados en procesadores Intel x86. OS-9000 también se ha adaptado a PowerPC , MIPS , algunas versiones del procesador ARM de Advanced RISC Machines y algunos procesadores de la familia SH de Hitachi .
- La unidad de reproducción de audio DigiCart/II Plus funciona con OS-9/68K. Es un reemplazo de estado sólido para los reproductores de cartuchos de las estaciones de radio . Estas unidades se utilizan en la radio y en lugares como Walt Disney World, donde se reproducen los anuncios del parque.
- El fabricante alemán de electrónica Eltec produce placas base de la serie Eurocom para uso industrial desde finales de la década de 1970, comenzando con los modelos 6802 y 6809 Eurocom-1 y Eurocom-2 , y continuando con las placas 68K y sus derivados hasta la actualidad. Las placas modernas pueden suministrarse con diversos sistemas operativos, entre ellos OS-9.
- Omron utilizó OS-9 en sus paneles HMI de la serie NS. Sin embargo, para su nueva serie NA, Omron seleccionó Windows Embedded Compact 7. Omron indicó que con OS-9 casi todos los controladores, por ejemplo, para una memoria USB, debían ser desarrollados por Omron. [ 6 ]
- OS-9000/SH4 se puede encontrar en el cargador (dentro del contenedor LOADING.KWI con formato KIWI) en el CD/DVD de mapas para los antiguos sistemas de navegación GPS para automóviles fabricados por Matsushita para el mercado doméstico japonés.
Referencias
- ↑ Oliver, Roger; Sadler, Chris (octubre de 1982). "Positron 9000" . Personal Computer World . págs. 128–129 , 131–134 , 222. Recuperado el 26 de abril de 2024 .
- ↑ Vogler, Jon (junio de 1987). "Manos a la obra: Cumana / La actualización". A & B Computing . Argus Specialist Publications . págs. 80–86 .
- ↑ "Rechazada la oferta de Microsoft por OS-9" . Practical Computing . Julio de 1987. pág. 18. Consultado el 16 de julio de 2024 .
- ↑ Smith, Tony (1999-09-03). "Desarrollador de OS-9 demanda a Apple por MacOS 9" . The Register UK . Situation Publishing . Recuperado el 2014-06-01 .
- ↑ CoCoFEST
- ↑ "NA Training Book 2.4" (PDF) . industrial.omron.eu/NA . Archivado (PDF) del original el 09-10-2022 . Recuperado el 16-03-2019 .
Lecturas adicionales
Enlaces externos
- Microware LP
- DTR - Acceso al disco OS-9 en PC
- Lista de preguntas frecuentes sobre OS-9
- Archivo de información y software de OS-9 , de RTSI LLC.
- Repositorio de herramientas de línea de comandos para manipular 6809 imágenes de disco de OS-9 , en SourceForge.
- Entorno de ejecución para programas en modo usuario de OS-9 en sistemas operativos anfitriones Mac/Windows/Linux.
- Sitio web oficial de NitrOS-9 , en GitHub
- Un puerto OS-9 para el Thomson MO5 , emulación (fr)
- Ejecutando OS-9 en una computadora a color TRS-80 (CoCo)
- Grupo de noticias comp.os.os9 a través de la interfaz web de grupos de Google.
- Blog oficial de OS-9
- Un emulador 6809 basado en el sistema SWTPC 6809 que ejecuta OS9 y UniFLEX, así como FLEX.
- XiBase9 (una interfaz gráfica de usuario)
- DragonWiki
- Sistemas operativos en tiempo real
- Sistemas operativos integrados
- Computadora a color TRS-80
- Sistemas operativos ARM
- Sistemas operativos X86
- Sistemas operativos PowerPC
- Sistemas operativos propietarios
- Software de 1979