Multi-Environment Real-Time ( MERT ), posteriormente rebautizado como UNIX Real-Time ( UNIX-RT ), [3] es un sistema operativo híbrido de tiempo real y tiempo compartido desarrollado en la década de 1970 en Bell Labs para su uso en minicomputadoras integradas ( especialmente PDP-11 ). Una versión llamada Duplex Multi Environment Real Time ( DMERT ) fue el sistema operativo para la minicomputadora de conmutación telefónica AT&T 3B20D , diseñada para alta disponibilidad ; [4] [5] [6] Más tarde, DMERT pasó a llamarse Unix RTR (Real-Time Reliable). [6]
Desarrollador | Bell Labs [1] |
---|---|
Escrito en | C [2] |
Familia OS | Sistemas operativos en tiempo real |
Estado de trabajo | La versión UNIX-RTR / 3B21D todavía está en uso. |
Objetivo de marketing | Aplicaciones informáticas en tiempo real |
Plataformas | PDP-11 , [1] 3B20D , 3B21D |
Tipo de grano | Microkernel [1] |
Una generalización del sistema operativo Unix de tiempo compartido de Bell Labs , [7] MERT presentaba un núcleo modular rediseñado que podía ejecutar programas Unix y procesos informáticos privilegiados en tiempo real . Las estructuras de datos de estos procesos se aislaron de otros procesos, siendo el paso de mensajes la forma preferida de comunicación entre procesos (IPC), aunque también se implementó la memoria compartida . MERT también tenía un sistema de archivos personalizado con soporte especial para archivos grandes, contiguos y de tamaño estático, como se usa en aplicaciones de bases de datos en tiempo real . El diseño de MERT fue influenciado por THE de Dijkstra , el Monitor de Hansen y el CP-67 de IBM . [2]
El sistema operativo MERT tenía un diseño de cuatro capas, en orden decreciente de protección : [2]
- Kernel: asignación de recursos de memoria, tiempo de CPU e interrupciones
- Procesos en modo kernel que incluyen controladores de dispositivos de entrada / salida (E / S) , administrador de archivos, administrador de intercambio , proceso raíz que conecta el administrador de archivos al disco (generalmente combinado con el administrador de intercambio)
- Supervisor del sistema operativo
- Procesos de usuario
El supervisor estándar era MERT / UNIX, un emulador de Unix con una interfaz de llamada al sistema extendida y un shell que permitía el uso de los mecanismos IPC personalizados de MERT, aunque también existía un emulador RSX-11 . [2]
Procesos kernel y no kernel
Una característica interesante que introdujo DMERT - UNIX-RTR fue la noción de procesos del kernel . Esto está relacionado con sus raíces arquitectónicas de microkernelish . Como soporte, hay un comando separado ( /bin/kpkill
) en lugar de ( /bin/kill
), que se usa para enviar señales a los procesos del kernel. Es probable que también haya dos llamadas al sistema diferentes ( kill(2)
y kpkill(2)
la primera para finalizar un proceso de usuario y la segunda para finalizar un proceso del kernel). Se desconoce cuánto del mecanismo normal de señalización del territorio del usuario está en su lugar /bin/kpkill
, suponiendo que haya una llamada del sistema para ello, no se sabe si se pueden enviar varias señales o simplemente enviar una. También se desconoce si el proceso del kernel tiene una forma de captar las señales que se le envían. Es posible que los desarrolladores de UNIX-RTR hayan implementado una interfaz de programación de aplicaciones (API) de mensajería y señales completa para los procesos del kernel.
Bits del sistema de archivos
Si uno tiene root en un sistema UNIX-RTR, seguramente pronto encontrará que su ls -l
salida es un poco diferente de lo esperado. Es decir, hay dos bits completamente nuevos en el drwxr-xr-x
campo. Ambos tienen lugar en la primera columna y son C
(contiguos) y x
( extensiones ). Ambos tienen que ver con datos contiguos, sin embargo, uno puede estar relacionado con inodos y el otro con no metadatos.
Ejemplo ls -l
(que no incluye los nombres de los grupos, ya ls -l
que no se utilizó para imprimirlos).
drwxr-xr-x root 64 dom 4 de diciembre de 2003 / cft xrwxr-xr-x root 64 lun 11 de diciembre de 2013 / no5text Crwxr-xr-x root 256 Martes 12 de diciembre de 2014 / no5data
Emulador de Lucent y VCDX
AT&T, luego Lucent y ahora Alcatel-Lucent , son el proveedor del paquete ATT3bem basado en SPARC y Solaris -OEM (que se encuentra en Solaris SPARC en / opt / ATT3bem). Este es un emulador 3B21D completo (conocido como 3B21E, el sistema detrás del Very Compact Digital eXchange, o VCDX) que está destinado a proporcionar un entorno de producción a la parte del módulo administrativo (AM) del conmutador 5ESS . Hay partes del 5ESS que no forman parte del microordenador 3B21D en absoluto: SM y CM. En el emulador, la estación de trabajo se denomina 'AW' (estación de trabajo administrativa). El emulador se instala con Solaris 2.6 / SPARC y también viene con Solstice X.25 9.1 (SUNWconn), anteriormente conocido como SunLink X.25. La razón para empaquetar la pila X.25 con el emulador 3B21D es que Bell System, las compañías operativas regionales de Bell y los ILEC todavía usan redes X.25 para sus sistemas más críticos (los conmutadores telefónicos pueden vivir en X.25 o Datakit VCS II, una red similar desarrollada en Bell Labs), pero no tienen pilas de TCP / IP).
El emulador AT&T / Alcatel-Lucent no es un programa fácil de hacer funcionar correctamente, incluso si uno logra tener una imagen de un archivo de salida 'dd' del disco duro 5ESS extraído. Primero, hay bastantes errores que el usuario debe sortear en el proceso de instalación. Una vez hecho esto, hay un archivo de configuración que conecta los periféricos a los periféricos emulados. Pero hay poca documentación en el CD que describa esto. El nombre de este archivo es em_devmap para SS5s y em_devmap.ultra para Ultra60s.
Además, uno de los errores mencionados en el proceso de instalación es un script roto para fdisk y la imagen de los discos duros correctamente: ciertas cosas deben escribirse con ciertas compensaciones, porque el proceso / opt / ATT3bem / bin / 3bem espera, o parece necesita, estas ubicaciones codificadas.
El emulador se ejecuta en SPARCstation-5s y UltraSPARC-60s. Es probable que el 3B21D se emule más rápido en un SPARC moderno de lo que el procesador de un microordenador 3B21D realmente funciona según lo medido en MIPS. Lo más difícil de tener el emulador es adquirir una imagen de disco duro DMERT / UNIX-RTR para que se ejecute. El sistema operativo del 5ESS está restringido a unas pocas personas, empleados y clientes del proveedor, que trabajan en él o escriben el código. Tener una imagen de un sistema en ejecución, que puede obtenerse en eBay, extraerse de un 3B21D en funcionamiento y crear una imagen en un archivo o colocarse en un Ultra60 o SPARCstation-5, proporciona los recursos para intentar ejecutar el sistema UNIX-RTR.
La salida uname -a del shell Bourne que ejecuta UNIX-RTR (Real-time Reliable) es:
# uname -a <3B21D> <3B21D>
Aunque en los sistemas 3B20D imprimirá 20 en lugar de 21, aunque los 3B20D son raros, hoy en día la mayoría de los 5ESS que no son VCDX son hardware 3B21D, no 3B20D (aunque ejecutarán bien el software). El 3B20D usa el procesador WE32000 mientras que el 21 usa el WE32100. También puede haber otras diferencias. Una cosa inusual sobre el procesador es la dirección en la que crece la pila: hacia arriba.
Página del manual para Falloc (que puede ser responsable de la asignación de espacio de archivo contiguo o extenso):
FALLOC (1) 5ESS UNIX FALLOC (1) NOMBRE Falloc: asigna un archivo contiguo SINOPSIS tamaño de nombre de archivo de Falloc DESCRIPCIÓN Un archivo contiguo del nombre de archivo especificado se asigna a ser de bloques de 'tamaño' (512 bytes). DIAGNOSTICOS El comando se queja de que no se puede buscar un directorio necesario, el directorio final no se puede escribir, el archivo ya existe o no hay suficiente espacio para el archivo.
UNIX-RTR incluye un comando de intercambio de archivos atómicos (atomsw, página de manual a continuación):
ATOMSW (1) 5ESS UNIX ATOMSW (1) NOMBRE atomsw - Archivos de conmutador atómico SINOPSIS atomsw archivo1 archivo2 DESCRIPCIÓN Interruptor atómico de dos archivos. Los contenidos, permisos y los propietarios de dos archivos se cambian en una sola operación. En caso de una falla del sistema durante la operación de este comando, file2 tendrá su contenido original, permisos y propietario, o tendrá los contenidos, permisos y dueño. Por lo tanto, file2 se considera precioso. El archivo 1 puede ser truncado en caso de falla del sistema. RESTRICCIONES Ambos archivos deben existir. Ambos archivos deben residir en el mismo sistema de archivos. Ninguno de los archivos puede ser un "dispositivo especial" (para ejemplo, un puerto TTY). Para ingresar este comando desde el shell de artesanía, cambiando de archivo "/ tmp / abc" con el archivo "/ tmp / xyz", ingrese para MML: EXC: ENVIR: UPROC, FN = "/ bin / atomsw", ARGS = "/ tmp / abc" - "/ tmp / xyz"; Para PDS ingrese: EXC: ENVIR: UPROC, FN "/ bin / atomsw", ARGS ("/ tmp / abc", "/ tmp / xyz")! NOTA El archivo 1 se puede perder durante una falla del sistema. ARCHIVOS / bin / atomsw
Referencias
- ^ a b c Bayer, DL; Lycklama, H. (1975). MERT: un sistema operativo multientorno en tiempo real . Quinto Simposio ACM sobre Principios de Sistemas Operativos. Austin, Texas. doi : 10.1145 / 800213.806519 . Consultado el 18 de agosto de 2008 .
- ^ a b c d Lycklama, H .; Bayer, DL (julio-agosto de 1978). "El sistema operativo MERT". Revista técnica de Bell System . 57 (6): 2049–2086. doi : 10.1002 / j.1538-7305.1978.tb02142.x . S2CID 8711402 .
- ^ Bodenstab, DE; Houghton, TF; Kelleman, KA; Ronkin, G .; Schan, EP (1984). "Experiencias de portabilidad del sistema operativo UNIX". Revista técnica de AT&T Bell Laboratories . 63 (8): 1769-1790. doi : 10.1002 / j.1538-7305.1984.tb00064.x . S2CID 35326182 .
- ^ Kane, JR; Anderson, RE; McCabe, PS (enero de 1983). "El procesador 3B20D y el sistema operativo DMERT: descripción general, arquitectura y rendimiento de DMERT". Revista técnica de Bell System . 62 (1): 291-301. doi : 10.1002 / j.1538-7305.1983.tb04396.x . S2CID 31828139 .
- ^ Grzelakowski, ME; Campbell, JH; Dubman, MR (enero de 1983). "El procesador 3B20D y el sistema operativo DMERT: sistema operativo DMERT". Revista técnica de Bell System . 62 (1): 303–322. doi : 10.1002 / j.1538-7305.1983.tb04397.x . S2CID 12901173 .
- ^ a b Wallace, John J .; Barnes, Walter W. (agosto de 1984). "Diseño para una disponibilidad ultra alta: el sistema operativo Unix RTR" (PDF) . Computadora IEEE . IEEE . 17 (8): 31–39. doi : 10.1109 / MC.1984.1659215 . S2CID 17689432 .
- ^ Ritchie, Dennis M. (1977). El sistema de tiempo compartido de Unix: una retrospectiva . Décima Conferencia Internacional de Hawaii sobre Ciencias de Sistemas. Archivado desde el original el 5 de febrero de 2015.