Multi-Environment Real-Time ( MERT ), posteriormente renombrado UNIX Real-Time ( UNIX-RT ), [3] es un sistema operativo híbrido de tiempo compartido y tiempo real 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] DMERT fue posteriormente renombrado Unix RTR (Real-Time Reliable). [6]
Una generalización del sistema operativo de tiempo compartido Unix de Bell Labs , [7] MERT presentó un núcleo modular rediseñado que podía ejecutar programas Unix y procesos de computación en tiempo real privilegiados . Las estructuras de datos de estos procesos estaban aisladas de otros procesos y el paso de mensajes era 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 los que se usan en aplicaciones de bases de datos en tiempo real . El diseño de MERT estuvo influenciado por THE de Dijkstra, Monitor de Hansen y CP-67 de IBM . [2]
El sistema operativo MERT tenía un diseño de cuatro capas, en orden decreciente de protección : [2]
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]
Una característica interesante que introdujo DMERT – UNIX-RTR fue la noción de procesos del núcleo . Esto está relacionado con sus raíces arquitectónicas de micronúcleo . Como apoyo, hay un comando separado ( /bin/kpkill
) en lugar de ( /bin/kill
), que se utiliza para enviar señales a los procesos del núcleo. 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 núcleo). Se desconoce cuánto del mecanismo de señalización normal del espacio de usuario está en funcionamiento en /bin/kpkill
, suponiendo que haya una llamada al 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 núcleo tiene una forma de captar las señales que se le envían. Puede ser que los desarrolladores de UNIX-RTR hayan implementado una interfaz de programación de aplicaciones (API) completa de señales y mensajería para los procesos del núcleo.
Si uno tiene acceso root a un sistema UNIX-RTR, seguramente pronto descubrirá que su ls -l
salida es un poco diferente a la esperada. Es decir, hay dos bits completamente nuevos en el drwxr-xr-x
campo. Ambos tienen lugar en la primera columna y son C
(contiguo) y x
( extensiones ). Ambos tienen que ver con datos contiguos, sin embargo, uno puede estar relacionado con inodos y el otro con datos que no son metadatos.
Ejemplo ls -l
:
drwxr-xr-x root 64 dom dic 4 2003 /cft xrwxr-xr-x root 64 lun dic 11 2013 /no5text Crwxr-xr-x root 256 mar dic 12 2014 /no5data
AT&T, luego Lucent y ahora Alcatel-Lucent son los vendedores del paquete ATT3bem basado en SPARC y OEM de Solaris (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á pensado para proporcionar un entorno de producción a la parte del módulo administrativo (AM) del conmutador 5ESS . Hay partes del 5ESS que no son parte del microordenador 3B21D en absoluto: SMs y CMs. Bajo el emulador, la estación de trabajo se conoce como '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. El motivo para empaquetar la pila X.25 con el emulador 3B21D es porque Bell System, las compañías operativas regionales de Bell y las ILEC aún utilizan redes X.25 para sus sistemas más críticos (los conmutadores telefónicos pueden funcionar con X.25 o Datakit VCS II, una red similar desarrollada en Bell Labs, pero no tienen pilas TCP/IP).
El emulador de AT&T/Alcatel-Lucent no es un programa fácil de poner en funcionamiento, incluso si uno consigue tener una imagen de un archivo de salida 'dd' de disco duro 5ESS que funcione. En primer lugar, hay bastantes errores que el usuario debe solucionar durante 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 SS5 y em_devmap.ultra para Ultra60.
Además, uno de los errores mencionados en el proceso de instalación es un script roto para fdisk y crear imágenes de discos duros correctamente: ciertas cosas deben escribirse en ciertas ubicaciones, porque el proceso /opt/ATT3bem/bin/3bem espera, o parece necesitar, estas ubicaciones codificadas.
El emulador funciona en SPARCstation-5 y UltraSPARC-60. Es probable que el 3B21D se emule más rápido en un SPARC moderno que el procesador de una microcomputadora 3B21D, medido en MIPS. Lo más difícil de tener el emulador es adquirir una imagen de disco duro DMERT/UNIX-RTR para ejecutarlo. El sistema operativo para el 5ESS está restringido a unas pocas personas, empleados y clientes del proveedor, que trabajan en él o escriben el código para él. Tener una imagen de un sistema en funcionamiento, que se puede obtener en eBay, extraer de un 3B21D en funcionamiento y crear una imagen en un archivo o colocar 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 el software sin problemas). 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 de falloc (que puede ser responsable de la asignación de espacio de archivos contiguos o eXtent):
FALLOC(1) 5ESS UNIX FALLOC(1) NOMBRE falloc - asignar un archivo contiguo SINOPSIS tamaño del nombre del archivo falloc DESCRIPCIÓN Se asigna un archivo contiguo del nombre de archivo especificado a ser de bloques de 'tamaño' (512 bytes). DIAGNÓSTICO El comando se queja de que no se puede buscar un directorio necesario. El directorio final no es escribible, el archivo ya existe o no hay suficiente espacio para el archivo.
UNIX-RTR incluye un comando de intercambio de archivos atómico (atomsw, página del manual a continuación):
ÁTOMOSW(1) 5ESS UNIX ÁTOMOSW(1) NOMBRE atomsw - Archivos de conmutación atómica SINOPSIS atomsw archivo1 archivo2 DESCRIPCIÓN Conmutación atómica de dos archivos. El contenido, los permisos y Los propietarios de dos archivos se intercambian en una sola operación. En caso de un fallo del sistema durante la ejecución de este comando, El archivo2 tendrá su contenido y permisos originales. y el propietario, o tendrá el contenido, los permisos y el archivo1 propietario. Por lo tanto, el archivo 2 se considera valioso. El archivo 1 puede ser truncado en caso de fallo del sistema. RESTRICCIONES Ambos archivos deben existir. Ambos archivos deben residir en el mismo directorio. sistema de archivos. Ningún archivo puede ser un "dispositivo especial" (por ejemplo, por ejemplo, un puerto TTY). Para ingresar este comando desde el shell de Craft, cambie el archivo "/tmp/abc" con 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 podría perderse durante una falla del sistema. ARCHIVOS /bin/atomsw