Sistema operativo 9

Sistema operativo en tiempo real

Sistema operativo
Sistema operativo 9
Revelador
Escrito enC , lenguaje ensamblador
Estado de funcionamientoActual
Modelo fuenteCódigo cerrado
Lanzamiento inicial1979 ; hace 45 años ( 1979 )
Último lanzamiento6.1 / 14 de noviembre de 2017 ; hace 6 años ( 14 de noviembre de 2017 )
Objetivo de marketingSolución de software en tiempo real, de alto rendimiento y alta disponibilidad para automatización y control industrial avanzados, instrumentación médica, sistemas aeroespaciales y de transporte
Disponible enInglés
PlataformasProcesadores Motorola 6809 , Motorola 680x0 , ColdFire , SuperH , ARM/XScale , MIPS , PowerPC , arquitectura Intel x86
Tipo de kernelKernel en tiempo real

Interfaz de usuario predeterminada
CLI en todas las versiones, algunas plataformas admiten una GUI
LicenciaPropiedad
Sitio web oficialwww.microware.com

OS-9 es una familia de sistemas operativos multitarea , multiusuario , basados ​​en procesos y 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 fue comprado 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 comerciales integrados y entre aficionados. Hoy en día, OS-9 es un nombre de producto utilizado tanto por un sistema operativo de lenguaje de máquina de la serie Motorola 68000 como por una versión portátil ( PowerPC , x86 , ARM , MIPS , SH4 , etc.) escrita en C , conocida originalmente como OS-9000 .

Historia

La primera versión ("OS-9 Level One"), 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 administración de memoria. Fue desarrollado como un sistema operativo de apoyo para el proyecto BASIC09 , contratado por Motorola como parte del desarrollo del 6809. Una versión posterior del 6809 ("Level Two") aprovecha el hardware de mapeo de memoria, admitía hasta 2 MB de memoria (aproximadamente en 1980) en la mayoría de las implementaciones e incluía una GUI en algunas plataformas.

En 1983, OS-9/6809 fue portado al lenguaje ensamblador Motorola 68000 y ampliado (llamado OS-9/68K); y una versión aún posterior (1989) fue reescrita principalmente en C para una mayor portabilidad. La versión portátil se llamó inicialmente OS-9000 y fue lanzada para sistemas PC 80386 alrededor de 1989, luego portada 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. Usaban un único espacio de direcciones planas que todos los procesos comparten; el hardware de mapeo de memoria, si está presente, se usa principalmente para garantizar que los procesos accedan solo a la memoria a la que tienen derecho de acceso. Las MPU 680x0 y 80386 (y posteriores) admiten directamente mucho más de 1 MB de memoria en cualquier caso.

Como consecuencia de las decisiones de diseño generalizadas que se tomaron al principio para aprovechar las capacidades de código objeto reentrante de fácil uso del procesador 6809, se requiere que los programas destinados a OS-9 sean reentrantes; los compiladores producen código reentrante automáticamente y los ensambladores para OS-9 ofrecen un soporte considerable para ello. OS-9 también utiliza código y datos independientes de la posición porque 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 programas (incluido el código compartido) y asigna datos, siempre que haya suficiente espacio libre disponible en el mapa de memoria. Esto permite que todo el sistema operativo y todas las aplicaciones se coloquen en la memoria ROM o Flash, y facilita los requisitos de administración de memoria cuando los programas se cargan en la RAM y se ejecutan. Los programas, controladores de dispositivos y administradores de E/S bajo OS-9 son todos "módulos" y se pueden cargar y descargar dinámicamente (sujeto a recuentos de enlaces) según sea necesario.

OS-9/6809 se ejecuta 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, computadoras personales como Fujitsu FM-11 , FM-8 , FM-7 y FM-77, Hitachi MB-S1  [jp] y muchas otras.

System Industries , un proveedor externo de equipos compatibles con DEC, utilizó un procesador 68B09E que ejecutaba 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 similar Dragon . 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 manera interactiva a través de una conexión en serie), así como varios otros procesos no interactivos. [ cita requerida ] Un sistema, el Positron 9000, se posicionó como un sistema multiusuario para uso educativo, que ofrecía 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 vio 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 BBC Micro . Incluía RAM incorporada, interfaz de disco duro SCSI y un procesador MC68008 . [2]

OS-9 también fue portado al Commodore SP-9000 o SuperPET, que tenía un 6809 además del 6502 del modelo 8032 base, así como 64 KB más. El Toronto PET Users Group patrocinó un proyecto HW/SW que incluía una placa secundaria con una MMU, así como los discos de distribución OS-9. Con dos procesadores, 96 KB, una pantalla de 25x80 y puertos serie, paralelo e IEEE-488 y muchos periféricos, este era uno de los sistemas OS-9 más capaces disponibles.

Las capacidades multiusuario y multitarea de OS-9 lo hacen utilizable como un sistema informático interactivo de propósito general. Se han escrito muchas 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 portado a OS-9 por MicroWay.

A mediados de los años 80, se seleccionó OS-9 para el sistema operativo CD-i . Casi al mismo tiempo, Microsoft se puso en contacto con Microware para adquirir la empresa, principalmente porque se sentía atraída por CD-RTOS, el sistema operativo CD-i. La negociación fracasó y no se llegó a ningún acuerdo; Microware decidió seguir siendo independiente. [3]

A finales de los años 80, Microsoft lanzó OS-9000, una versión más portátil del sistema operativo. La gran mayoría del núcleo del sistema operativo se reescribió en C, dejando un puñado de partes dependientes del hardware en lenguaje ensamblador. Se añadieron unas cuantas "características más avanzadas", como un espacio de nombres de módulos del núcleo con forma de árbol. OS-9000 se adaptó inicialmente a las CPU de la familia Motorola 680x0 , Intel 80386 y PowerPC . El OS-9000/680x0 fue un fracaso de marketing y se retiró muy rápidamente, probablemente porque pocos clientes querían probar el sistema operativo más pesado y lento sobre el historial de estabilidad probado del OS-9/680x0 existente. El hecho de que los proveedores de sistemas informáticos de la familia Motorola 680x0 y de la placa VME estuvieran llegando al final de su vida útil podría haber afectado a la impopularidad del OS-9000/680x0. Más tarde, Microware comenzó a llamar a todos sus sistemas operativos (incluido el que originalmente se había llamado OS-9000) simplemente OS-9, y empezó a trasladar su interés comercial hacia los mercados de dispositivos portátiles de consumo, como teléfonos celulares, navegación para automóviles y multimedia.

A finales de los años 1980 y principios de los años 1990, los generadores de caracteres que se utilizaban en los sistemas de transmisión utilizaban ampliamente OS-9 y OS-9000. La ahora extinta Pesa Electronica utilizaba OS-9 en sus CG, como CG 4722 y CG4733.

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 violación de marca registrada, [4] aunque un juez dictaminó que habría pocas posibilidades de confusión entre ambos. Algunos usuarios de Macintosh que no conocen el menos conocido OS-9 de Microware han publicado mensajes en el grupo de noticias comp.os.os9 sin saber qué es OS-9.

En 2001, RadiSys compró Microware para adquirir los recursos del procesador de red Intel IXP-1200 . Esta adquisición le proporcionó 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 firmó un acuerdo de compra de activos para comprar 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 integrados en muchos aspectos.

  • Funciona en CPU de 8 bits, 16 bits y 32 bits .
  • Separación clara entre el modo de usuario y el modo supervisor (kernel).
  • Uso dinámico de componentes de software construidos individualmente y por separado (imágenes de programas ejecutables y módulos del núcleo ) en lugar de una única imagen monolítica vinculada estáticamente .
  • Modelo de espacio de nombres de proceso tipo Unix (no modelo de memoria ) y programa de shell de usuario.
  • Separación clara entre capas independientes del hardware (por ejemplo, administradores de archivos) y 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 (sólo versión OS-9/68K) y C (versión portable a otras arquitecturas) utilizando estructuras de datos internas simples, lo que reduce la flexibilidad y el alcance de mejora al tiempo que mejora la determinabilidad requerida para los sistemas operativos en tiempo real .
  • El rendimiento también se vio afectado en algunas operaciones, pero el lenguaje ensamblador ayudó con el problema de velocidad.
  • Los sistemas sin una unidad de gestión de memoria (MMU) no tienen protección de memoria contra accesos ilegales ni protección de memoria por proceso, mientras que los sistemas con una MMU pueden tener habilitada la protección de memoria. 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 más antiguos que no incluyen una MMU.
  • Las versiones anteriores de OS-9 no admiten subprocesos POSIX , mientras que todos los procesadores compatibles con OS-9 admiten subprocesos POSIX.
  • 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 , cuando 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 varias aplicaciones independientes se ejecuten simultáneamente mediante la conmutación de tareas y las facilidades de comunicación entre procesos. Todos los programas de OS-9 se ejecutan como procesos que contienen al menos un proceso ligero (subproceso), pero pueden contener una cantidad ilimitada de subprocesos. Dentro de un proceso, estos procesos ligeros comparten memoria, rutas de E/S y otros recursos de acuerdo con la especificación de subprocesos POSIX y la API. OS-9 programa los subprocesos utilizando un algoritmo de programación preemptiva de prioridad fija con programación por turnos dentro de cada prioridad. Se admite la fragmentació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 una programación de prioridad estricta. Cada proceso puede acceder a cualquier recurso del sistema emitiendo la solicitud de servicio OS-9 adecuada. En cada punto de programación, OS-9 compara la prioridad del subproceso que encabeza la cola activa con la prioridad del subproceso actual. Cambia de contexto al subproceso de la cola activa si su prioridad es mayor que la prioridad de los procesos actuales. El envejecimiento aumenta artificialmente la prioridad efectiva de los subprocesos en la cola activa a medida que pasa el tiempo. A intervalos definidos, la segmentación temporal devuelve el subproceso actual a la cola activa detrás de otros subprocesos con la misma prioridad.

Módulos del kernel

  • Kernel: contiene conmutación de tareas, asignación de memoria y la mayoría de las llamadas que no son de E/S
  • IOMAN – Maneja llamadas de E/S a varios administradores de archivos y controladores.
  • Conjunto básico de administradores de archivos:
    • SCF, archivos seriales (dispositivos seriales)
    • RBF, bloque aleatorio (dispositivos de disco)
    • SBF, Bloque secuencial (dispositivos de cinta)
    • Dispositivos NFM, NULL (USB y otros dispositivos)
    • MFM, Mensaje
    • Archivos PCF, PC FAT
    • PIPEMAN, Gerente de tuberías
    • Modman - Directorios de módulos de memoria
  • SSM – Seguridad del sistema (manejo de MMU)
  • Caché – Manejo de caché,
  • VectXXX – Controlador de vectores/PIC
  • FPU – Emulación de punto flotante
  • Alinear: manejador de errores de alineación de direcciones

Comandos

La siguiente lista de comandos es compatible con el shell OS-9.

Comandos integrados de Shell

Utilidades para funciones del sistema operativo

Utilidades de gestió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 hay algunas diferencias significativas. En primer lugar, el sistema de archivos no es un árbol único, sino un bosque en el que 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 un fork-exec o un 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 buscará por defecto primero para cargar los programas que se ejecutarán (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 de los abuelos se pueden indicar repitiendo puntos tres o más veces, sin ninguna barra intermedia (una característica que también se encuentra en 4DOS / 4OS2 / 4NT / TC ). Por ejemplo, ..../fileen OS-9, es similar a ../../../fileen Unix. Pero .y .., con solo uno o dos puntos, funcionan de la misma manera tanto en OS-9 como en Unix.

OS-9 ha tenido un diseño modular desde el principio, influenciado por las nociones de los diseñadores del 6809 y cómo esperaban que se distribuyera el software en el futuro (ver la serie de tres partes de artículos en Byte de enero-marzo de 1979 por Terry Ritter, et al. de Motorola, quien diseñó la CPU).

La estructura de los módulos requiere más explicación: OS-9 mantiene un "directorio de módulos", una lista residente en memoria de todos los módulos que están en la memoria, ya sea porque se han cargado o porque se han encontrado en la ROM durante un escaneo inicial en el momento del arranque. Cuando uno escribe un comando en el shell de OS-9, primero buscará en el directorio de módulos actual un módulo con el nombre especificado y lo usará (y aumentará su número de enlaces) si lo encuentra, o buscará en el disco un archivo con el nombre apropiado si no lo encuentra. En OS-9/6809 y OS-9/68000, el directorio de módulos es plano, pero OS-9000 hizo que el directorio de módulos tenga una estructura de árbol. El shell 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/no-68000 admite subprocesos POSIX . Un solo proceso puede iniciar cualquier cantidad de subprocesos.

Estado

OS-9 ha dejado de ser popular, aunque Microware LP aún lo admite y funciona en arquitecturas modernas como ARM y x86. El compilador proporcionado, Ultra C/C++, admite C89 , pero no admite ni C99 ni C++98 . Ultra C++ ofrece compatibilidad limitada con plantillas C++. También es compatible con bibliotecas SSL/TLS populares como wolfSSL .

  • Una versión de OS-9 que ejecuta G-Windows de Steve Adams está presente en los depuradores de obleas de semiconductores fabricados por Ontrak Systems / Lam Research. Miles de estos sistemas están en uso hoy en día, sin embargo, el software que se ejecuta en ellos data de 1999, cuando se creó la última versión para manejar los problemas del Y2K.
  • Las versiones de OS-9/68K se ejecutaron en una amplia variedad de plataformas de la familia 68000 , incluyendo el X68000 en Japón, algunas computadoras personales concebidas por sus diseñadores como actualizaciones de la Color Computer (por ejemplo, la MM/1 basada en 68070 y 68340 , y en otras computadoras de Frank Hogg Laboratories, PEP Modular Computers y Delmar Co.). También fue portado al Atari ST por Recc-o-ware a principios de los 90, y fue distribuido por Cumana en Europa. Existe un puerto para los Apple Macintosh basados ​​en 68000 distribuido por Ultrascience. También se dice que existe un puerto para Amiga por Digby Tarvin.
  • Caltrans exige el uso de OS-9/68K en las tarjetas controladoras 2070-1B y 2070-1E, por lo que termina utilizándose para ejecutar muchos sistemas de control de señales de tráfico de América del Norte.
  • OS-9/68K también se encuentra en otras aplicaciones integradas, incluido el generador de caracteres de transmisión de televisión Quanta Delta, que aún se encuentra en producción por ScanLine Technologies en Utah. Si bien el código de interfaz de nivel de usuario en este sistema comenzaba en el momento del arranque, había una secuencia de teclado oculta y no documentada que proporcionaba al usuario un mensaje de shell raíz en una ventana de desplazamiento en el monitor del canal de edición del dispositivo.
  • En el mercado integrado, OS-9 ha encontrado aplicaciones en dispositivos como los sintetizadores Fairlight CMI , la robótica, los sistemas de navegación para automóviles y el estándar industrial Compact Disc-Interactive ( CD-i ) de Philips .
  • La computadora en color TRS-80 (y sus clones) todavía tiene usuarios y una conferencia anual en Chicago; a partir de 2018, el 27.º "último" Chicago CoCoFEST anual [5] se programó para el 21 y 22 de abril de 2018. Un grupo de programadores canadienses reescribió OS-9/6809 Nivel II para CoCo 3 (con hardware de traducción de direcciones) para lograr eficiencia y aprovechar el modo nativo del Hitachi 6309. Los usuarios serios de CoCo de hoy en día generalmente han reemplazado el 68B09E en CoCo 3 con un Hitachi 63B09E y ejecutan la reescritura, llamada NitrOS-9. La combinación es sorprendentemente rápida, considerando que se ejecuta en un sistema informático de 8 bits de costo expresamente bajo.
  • El FPGA CoCo3 de Gary Becker es una computadora de color TRS-80 sintetizada que ejecuta NitrOS-9 en una placa de desarrollo Altera DE-1. La CPU central 6809 fue diseñada por John Kent y actualmente funciona a 25 MHz.
  • OS-9000/80x86 puede ejecutarse en máquinas tipo PC construidas alrededor de las CPU Intel x86. OS-9000 también ha sido portado a PowerPC , MIPS , algunas versiones del procesador ARM de Advanced RISC Machines y algunos procesadores de la familia Hitachi SH .
  • La unidad de reproducción de audio DigiCart/II Plus funciona con OS-9/68K. Es un reemplazo de estado sólido para reproductores de cartuchos de estilo de estación de radio . Estas unidades se utilizan en radio y en lugares como Walt Disney World donde se reproducen anuncios de parques.
  • El fabricante alemán de productos electrónicos Eltec fabrica las placas de CPU del modelo Eurocom para fines industriales desde finales de los años 70, empezando con las placas de CPU 6802 y 6809 Eurocom-1 y Eurocom-2, y a continuación con las placas de CPU 68K y derivadas hasta la actualidad. Las placas modernas se pueden entregar con una amplia gama de sistemas operativos, entre los que se encuentra 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, tuvieron que ser escritos por Omron. [6]
  • OS-9000/SH4 se puede encontrar en el cargador (dentro del contenedor con formato KIWI LOADING.KWI) en el CD/DVD de mapas para los antiguos sistemas de navegación GPS automotrices fabricados por Matsushita para el mercado interno de Japón.

Referencias

  1. ^ Oliver, Roger; Sadler, Chris (octubre de 1982). «Positron 9000». Personal Computer World . págs. 128–129, 131–134, 222 . Consultado el 26 de abril de 2024 .
  2. ^ Vogler, Jon (junio de 1987). "Manos a la obra: Cumana / La actualización". A & B Computing . Argus Specialist Publications . págs. 80–86.
  3. ^ "Rechazada la oferta de Microsoft por OS-9". Practical Computing . Julio de 1987. p. 18 . Consultado el 16 de julio de 2024 .
  4. ^ Smith, Tony (3 de septiembre de 1999). «El desarrollador de OS-9 demanda a Apple por MacOS 9». The Register UK . Situation Publishing . Consultado el 1 de junio de 2014 .
  5. ^ CoCoFEST
  6. ^ "NA Training Book 2.4" (PDF) . industrial.omron.eu/NA . Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2019-03-16 .

Lectura adicional

  • Paul S. Dayan (1992). El gurú del OS-9 - 1: Los hechos . Galactic Industrial Limited. ISBN 0-9519228-0-7.
  • Mark A. Heilpern (1995). Introducción a OS-9 . Microware Systems Corp. ISBN 0-918035-04-X.
  • Peter Dibble (1994). OS-9 Insights . Microware Systems Corp. ISBN 0-918035-05-8.
  • Microsoft LP
  • DTR - Acceda al disco OS-9 en la 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 imágenes de disco de OS-9 6809, en SourceForge
  • Entorno de ejecución para programas en modo usuario OS-9 en sistemas operativos host Mac/Win/Linux
  • Sitio web oficial de NitrOS-9, en SourceForge
  • Un puerto OS-9 para el Thomson MO5, emulación (fr)
  • Ejecución de OS-9 en una computadora en 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 además de FLEX
  • XiBase9 (una interfaz gráfica de usuario)
  • DragonWiki
Obtenido de "https://es.wikipedia.org/w/index.php?title=OS-9&oldid=1251944856"