OS-9
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.
- Corre en CPU de 8 bits, 16 bits y 32 bits.
- Separación clara entre el modo de usuario y el modo de supervisor (panel).
- Uso dinámico de componentes de software construidos individualmente y por separado (imágenes de programas ejecutables y módulos de núcleo) en lugar de una imagen monolítica unificada.
- Unix-like proceso nombre-espacio modelo (no modelo de memoria) y programa de shell usuario.
- Separación clara entre capas independientes de hardware (por ejemplo, gestores de archivos) y dependientes de hardware (por ejemplo, controladores de dispositivo).
En comparación con los sistemas operativos más modernos:
- El núcleo está escrito enteramente en el lenguaje de montaje (sólo versión OS-9/68K) y C (versión portátil a otras arquitecturas) utilizando estructuras simples de datos internos, reduciendo la flexibilidad y el alcance de mejora al mismo tiempo mejorando la determinación necesaria para los sistemas operativos en tiempo real.
- El rendimiento también se vio afectado por algunas operaciones, pero el lenguaje de montaje ayudó con la cuestión de la velocidad.
- Los sistemas sin unidad de gestión de memoria (MMU) no tienen protección de memoria contra el acceso ilegal, ni protección de memoria por proceso, mientras que los sistemas con MMU pueden tener la protección de memoria habilitada. El módulo que controla la MMU puede ser incluido o o omitido por el integrador del sistema para permitir o desactivar la protección de la memoria. Esto permite que OS-9 se ejecute en sistemas antiguos que no incluyen un MMU.
- Las versiones más antiguas de OS-9 no soportan los hilos POSIX, mientras que todos los procesadores compatibles con OS-9 soportan los hilos POSIX.
- Ningún soporte SMP para múltiples sockets, núcleos o hilos de hardware en la misma instancia OS-9 (puede funcionar como RTOS en uno de los núcleos de procesadores de núcleo dual como Core Duo y Core 2 Duo, cuando Linux está funcionando en el otro núcleo haciendo tareas de propósito general).
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
- Kernel – Contiene conmutación de tareas, asignación de memoria y la mayoría de llamadas no I/O
- IOMAN – Handles I/O llama a varios administradores de archivos y controladores.
- Configuración básica de administradores de archivos:
- SCF, archivos serie (dispositivos serie)
- RBF, bloqueo aleatorio (dispositivos de disco)
- SBF, bloque secuencial (dispositivos de cinta)
- NFM, dispositivos NULL (USB y otros dispositivos)
- MFM, Mensaje
- PCF, archivos PC FAT
- PIPEMAN, Pipe manager
- Modman - Directorios de módulos de memoria
- SSM – Seguridad del sistema (gestión de MMU)
- Cache – Manejo de caché,
- VectXXX – Vector / PIC handler
- FPU – Emulación de punto flotante
- Alinear – Manejador de falla de alineación de direcciones
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.
- Una versión de OS-9 ejecutando Steve Adams' G-Windows está presente en los escrubadores semiconductores de wafer fabricados por Ontrak Systems / Lam Research. Miles de estos sistemas están en uso hoy, sin embargo, el software que se ejecuta en ellos data de 1999 cuando la última versión fue creada para manejar problemas de Y2K.
- Versiones de OS-9/68 K corrió en una amplia variedad de 68000 plataformas familiares, incluyendo el Sharp X68000 en Japón, algunos ordenadores personales diseñados por sus diseñadores como actualizaciones del Color Computer (por ejemplo, el MM/1 basado en 68070 y 68340, y en otros ordenadores de Frank Hogg Laboratories, PEP Modular Computers, y Delmar Co.) También fue portado al Atari ST por Recc-o-ware a principios del decenio de 1990, y fue distribuido por Cumana en Europa. Existe un puerto para Macintoshes de Apple con 68000 puertos distribuidos por Ultrascience. También se pretende que exista un puerto a la Amiga de Digby Tarvin.
- OS-9/68K es el mandato de Caltrans para ser utilizado en las tarjetas de controlador 2070-1B y 2070-1E, y así termina siendo utilizado para ejecutar muchos sistemas de control de señales de tráfico norteamericano.
- OS-9/68K también se encuentra en otras aplicaciones incrustadas, incluyendo el generador de caracteres de radiodifusión Quanta Delta, todavía en producción por ScanLine Technologies en Utah. Mientras que el código de interfaz de nivel de usuario en este sistema comenzó en el momento de arranque, había una secuencia de teclado oculta e indocumentada que proporcionaría a un usuario un impulso de shell raíz en una ventana de desplazamiento en el monitor de canales de edición del dispositivo.
- En el mercado incrustado, donde OS-9 ha encontrado aplicación en dispositivos tales como los sintetizadores Fairlight CMI, robótica, sistemas de navegación en coche, y el estándar de la industria Disc-Interactive (CD-i) de Philips.
- El TRS-80 Color Computer (y clones) todavía tiene usuarios y una conferencia anual en Chicago; a partir de 2018 el 27o Anual "Última" Chicago CoCoFEST fue programado para el 21-22 abril 2018. Un grupo de programadores canadienses rewrote OS-9/6809 Nivel II para el CoCo 3 (w / hardware de traducción de dirección) para la eficiencia, y para aprovechar el modo nativo del Hitachi 6309. Los usuarios serios de CoCo ahora normalmente han reemplazado el 68B09E en el CoCo 3 con un Hitachi 63B09E y ejecutan la reescritura, llamada NitrOS-9. La combinación es sorprendentemente rápida, teniendo en cuenta que se ejecuta con un costo expresamente bajo, sistema informático de 8 bits.
- El CoCo3 FPGA de Gary Becker es un ordenador de color TRS-80 sintetizado que funciona NitrOS-9 en un tablero de desarrollo Altera DE-1. El núcleo 6809 CPU fue diseñado por John Kent y actualmente está funcionando a 25 MHz.
- OS-9000/80x86 se puede ejecutar en máquinas de tipo PC construidas alrededor de las CPU Intel x86. OS-9000 también ha sido portado a la PowerPC, MIPS, algunas versiones del procesador ARM de Advanced RISC Machines, y algunos de la familia Hitachi SH de procesadores.
- El DigiCart/II Además, la unidad de reproducción de audio funciona OS-9/68K. Es un reemplazo de estado sólido para los jugadores de carros de estilo de estación de radio. Estas unidades se utilizan en la radio y en lugares como Walt Disney World donde hacen anuncios de parque.
- German electronics fabricante Eltec ha estado fabricando las tablas Eurocom-model CPU para fines industriales desde finales de los años 70, comenzando por los 6802 y 6809 Eurocom-1 y Eurocom-2, y en adelante con 68K, y derivados, las juntas CPU hasta hoy. Las tablas modernas pueden ser entregadas con una gama de sistemas operativos, entre los cuales está 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 un palo USB, tenían que ser escritos por Omron.
Contenido relacionado
Cronología del hardware informático antes de 1950
Red de trabajo personal
Idioma de descripción de la página