OS-9

Compartir Imprimir Citar

OS-9 es una familia de sistemas operativos multiusuario, multitarea, basado en procesos y en tiempo real, desarrollado en la década de 1980, originalmente por Microware Systems Corporation para el microprocesador Motorola 6809. Fue comprado 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 en uso en sistemas integrados comerciales 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 68000 de Motorola como por 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 Level One"), que data de 1979–1980, se escribió en lenguaje ensamblador para la CPU Motorola 6809 y todos sus procesos se ejecutaron dentro de la dirección de 64 KB. espacio de la CPU sin una unidad de gestión de memoria. Fue desarrollado como sistema operativo de soporte para el proyecto BASIC09, contratado por Motorola como parte del desarrollo 6809. Una versión posterior de 6809 ('Nivel dos') aprovecha el hardware de mapeo de memoria, admite hasta 2 MB de memoria (ca. 1980) en la mayoría de las implementaciones e incluye 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) se reescribió principalmente en C para una mayor portabilidad. La versión portátil se llamó inicialmente OS-9000 y se lanzó para sistemas de PC 80386 alrededor de 1989, luego se transfirió 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. Utilizaron un único espacio de direcciones planas que comparten todos los procesos; 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 primeras decisiones generalizadas de diseño que aprovecharon las capacidades de código objeto de reentrada fáciles de usar del procesador 6809, los programas destinados a OS-9 deben ser 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 usa 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 posición. El núcleo 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 la memoria cuando los programas se cargan en la RAM y se ejecutan. Los programas, controladores de dispositivos y administradores de E/S en OS-9 son todos 'módulos' y se puede cargar y descargar dinámicamente (sujeto a recuentos de enlaces) según sea necesario.

OS-9/6809 se ejecuta en sistemas Motorola EXORbus mediante los sistemas de bus Motorola 6809, SS-50 Bus y SS-50C de empresas como SWTPC, Tano, Gimix, Midwest Scientific y Smoke Signal Broadcasting, STD-bus 6809 sistemas de varios proveedores, computadoras personales como Fujitsu FM-11, FM-8, FM-7 y FM-77, Hitachi MB-S1 y muchas otras.

System Industries, un proveedor externo de equipos compatibles con DEC, usó un procesador 68B09E con OS9 en sus controladores de copia de seguridad en 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 CoCo, una plataforma de hardware bastante minimalista, bajo OS-9/6809 Level One era posible tener más de un usuario interactivo ejecutándose al mismo tiempo (por ejemplo, uno en el teclado de la consola, otro en segundo plano y quizás un tercero interactivamente a través de una conexión en serie), así como varios otros procesos no interactivos. Cumana produjo una segunda implementación de procesador para BBC Micro. Incluía RAM integrada, interfaz de disco duro SCSI y un procesador MC68008.

OS-9 también se transfirió al Commodore SP-9000 o SuperPET, que tenía un 6809 además del 6502 del modelo base 8032, así como 64 KB más. El grupo de usuarios de PET de Toronto 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 25 × 80 y puertos seriales, paralelos e IEEE-488 y muchos periféricos, este fue 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 Stylograph y Screditor-3 WYSIWYG. El formateador de emulación nroff de TSC también fue portado a OS-9 por MicroWay.

A mediados de la década de 1980, se seleccionó OS-9 para el sistema operativo CD-i. Casi al mismo tiempo, Microsoft se acercó a Microware para adquirir la empresa principalmente porque se sintió atraído por CD-RTOS, el sistema operativo CD-i. La negociación fracasó y no se llegó a ningún acuerdo; Microware decidió permanecer independiente.

A fines de la década de 1980, Microware 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. Algunas "funciones más avanzadas" se agregaron como un espacio de nombre de módulo de kernel en forma de árbol. OS-9000 se portó 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 probado de estabilidad OS-9/680x0 existente. El hecho de que la familia Motorola 680x0 y los proveedores de sistemas de computadoras de placa VME estuvieran llegando al final de su vida podría haber afectado la impopularidad de OS-9000/680x0. Más tarde, Microware comenzó a llamar a todos sus sistemas operativos, incluido el que originalmente se llamó OS-9000, simplemente OS-9, y comenzó a cambiar su interés comercial hacia los mercados de dispositivos de consumo portátiles, como teléfonos celulares, navegación para automóviles y multimedia.

A fines de la década de 1980 y principios de la de 1990, las computadoras Character Generators utilizadas en Broadcast Systems usaban OS-9 y OS-9000 de forma generalizada. La ahora desaparecida Pesa Electronica usó 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. Microware demandó a Apple ese año por infracción de marca registrada, aunque un juez dictaminó que habría pocas posibilidades de confusión entre los dos. Algunos usuarios de Macintosh que desconocen el OS-9 menos conocido de Microware han publicado 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 infundió capital a Microware y permitió que Microware continuara con el desarrollo y 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 firmaron 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 de 68k y posteriores) se distingue claramente de la generación anterior de sistemas operativos integrados en muchos aspectos.

En comparación con los sistemas operativos más modernos:

Programación de tareas

El kernel en tiempo real de OS-9 permite que varias aplicaciones independientes se ejecuten simultáneamente a través de funciones de conmutación de tareas y comunicación entre procesos. Todos los programas OS-9 se ejecutan como procesos que contienen al menos un proceso ligero (subproceso), pero pueden contener un número ilimitado de subprocesos. Dentro de un proceso, estos procesos livianos comparten memoria, rutas de E/S y otros recursos de acuerdo con la API y la especificación de subprocesos POSIX. OS-9 programa los subprocesos utilizando un algoritmo de programación preventiva de prioridad fija con programación por turnos 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 una programació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 programación, OS-9 compara la prioridad del subproceso al principio de la cola activa con la prioridad del subproceso actual. El contexto cambia al subproceso en la cola activa si su prioridad es mayor que la de los procesos actuales' prioridad. 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 de tiempo devuelve el subproceso actual a la cola activa detrás de otros subprocesos con la misma prioridad.

Módulos del núcleo

Comandos

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

Comandos integrados de Shell

  • chd
  • chx
  • matar
  • w
  • Espera.
  • setenv
  • unsetenv
  • setpr
  • logout
  • perfil
  • ex
  • -e
  • -ne
  • -p
  • -p=traducido
  • -Np
  • - No.
  • -nt
  • -v
  • - Nv
  • -x
  • - Nx

Utilidades para las funciones del sistema operativo

  • attr
  • Copia
  • Fecha
  • deiniz
  • del
  • deldir
  • dsave
  • vertedero
  • eco
  • arreglo
  • gratis
  • ident
  • iniz
  • enlace
  • lista
  • carga
  • makdir
  • mdir
  • merge
  • libre
  • pd
  • pr
  • printenv
  • procs
  • rename
  • Guardar
  • shell
  • Hora
  • dormir
  • tee
  • tmode
  • táctil
  • un enlace

Utilidades de administración del sistema

  • respaldo
  • ################################################################################################################################################################################################################################################################
  • devs
  • formato
  • fresa
  • fsave
  • irqs
  • login
  • os9gen
  • tsmon
  • xmode

Utilidades generales

  • binex
  • construcción
  • cfp
  • cmp
  • código
  • compresas
  • Cuenta
  • edt
  • exbin
  • Ampliación
  • Grip
  • ayuda
  • hacer
  • qsort
  • tr
  • umacs

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 solo árbol, 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 cambio, 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 OS-9 realizan un seguimiento de dos "directorios actuales" en lugar de uno solo; el "directorio de ejecución actual" es donde por defecto buscará primero cargar programas para ejecutar (lo cual es similar al uso de la variable de entorno PATH bajo 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 ninguna barra intermedia (una característica que también se encuentra en 4DOS/4OS2/4NT/TC). Por ejemplo, ..../file en OS-9, es similar a ../../../file en Unix. Pero . y .., con solo uno o dos puntos, funcionan igual en OS-9 y 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 el software se distribuyera en el futuro (consulte la serie de artículos de tres partes en enero-marzo de 1979 Byte por Terry Ritter, et al. de Motorola que diseñó la CPU).

La estructura del módulo requiere más explicación: OS-9 mantiene un "directorio de módulos", una lista residente en la memoria de todos los módulos que están en la memoria ya sea por haber sido cargados o por haber sido encontrados en la ROM durante un escaneo inicial en el momento del arranque. Cuando uno escribe un comando en el shell OS-9, buscará primero en el directorio del módulo 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. En OS-9/6809 y OS-9/68000, el directorio del módulo es plano, pero OS-9000 hizo que el directorio del módulo tuviera una estructura de árbol. El shell OS-9000 busca en el directorio de módulos alternativos 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/non-68000 admite subprocesos POSIX. Un solo proceso puede iniciar cualquier número de subprocesos.

Estado

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