Multi-Ambiente Real-Time - Multi-Environment Real-Time

Multi-ambiente em tempo real
Desenvolvedor Bell Labs
Escrito em C
Família OS Tipo Unix
Estado de trabalho Versão UNIX-RTR / 3B21D ainda em uso.
Alvo de marketing Aplicativos de computação em tempo real
Disponível em inglês
Plataformas PDP-11 , 3B20D , 3B21D
Tipo de kernel Microkernel RTOS

Multi-Ambiente em Tempo Real ( MERT ), mais tarde renomeado UNIX Real-Time ( UNIX-RT ), é um híbrido de compartilhamento de tempo e sistema operacional em tempo real desenvolvido na década de 1970 na Bell Labs para uso em embutidos minicomputadores (especialmente PDP 11s ). Uma versão denominada Duplex Multi Environment Real Time ( DMERT ) foi o sistema operacional para o minicomputador de comutação telefônica AT&T 3B20D , projetado para alta disponibilidade ; DMERT foi posteriormente renomeado para Unix RTR (Real-Time Reliable).

Uma generalização do sistema operacional de compartilhamento de tempo Unix da Bell Labs , o MERT apresentou um kernel modular redesenhado que era capaz de executar programas Unix e processos de computação em tempo real privilegiados . As estruturas de dados desses processos foram isoladas de outros processos com a passagem de mensagens sendo a forma preferida de comunicação entre processos (IPC), embora a memória compartilhada também tenha sido implementada. O MERT também tinha um sistema de arquivos personalizado com suporte especial para arquivos grandes, contíguos e de tamanho estático, usados ​​em aplicativos de banco de dados em tempo real . O design do MERT foi influenciado pelo THE de Dijkstra , pelo Monitor de Hansen e pelo CP-67 da IBM .

O sistema operacional MERT era um design de quatro camadas, em ordem decrescente de proteção :

  • Kernel: alocação de recursos de memória, tempo de CPU e interrupções
  • Processos no modo kernel, incluindo drivers de dispositivos de entrada / saída (I / O) , gerenciador de arquivos, gerenciador de troca , processo raiz que conecta o gerenciador de arquivos ao disco (geralmente combinado com o gerenciador de troca)
  • Supervisor de sistema operacional
  • Processos do usuário

O supervisor padrão era MERT / UNIX, um emulador Unix com uma interface de chamada de sistema estendida e shell que permitia o uso de mecanismos IPC personalizados do MERT, embora um emulador RSX-11 também existisse.

Processos kernel e não kernel

Um recurso interessante que DMERT - UNIX-RTR introduziu foi a noção de processos do kernel . Isso está conectado com suas raízes de arquitetura microkernel . No suporte, há um comando separado ( /bin/kpkill) em vez de ( /bin/kill), que é usado para enviar sinais aos processos do kernel. É provável que haja duas chamadas de sistema diferentes também ( kill(2)e kpkill(2), a primeira para encerrar um processo do usuário e a segunda para encerrar um processo do kernel). Não se sabe o quanto do mecanismo de sinalização de espaço de usuário normal está em vigor /bin/kpkill, supondo que haja uma chamada de sistema para ele, não se sabe se é possível enviar vários sinais ou simplesmente enviar um. Também não se sabe se o processo do kernel tem uma maneira de capturar os sinais que são enviados a ele. Pode ser que os desenvolvedores UNIX-RTR implementaram uma interface de programação de aplicativo (API) de sinal e mensagem inteira para processos do kernel.

Bits do sistema de arquivos

Se alguém tiver root em um sistema UNIX-RTR, com certeza logo descobrirá que sua ls -lsaída é um pouco diferente do esperado. Ou seja, existem dois bits completamente novos no drwxr-xr-xcampo. Ambos ocorrem na primeira coluna e são C(contíguos) e x( extensões ). Ambos têm a ver com dados contíguos, no entanto, um pode estar relacionado com inodes e o outro com não metadados.

Exemplo ls -l(que não inclui nomes de grupos, pois ls -lnão costumava imprimi-los).

 drwxr-xr-x       root          64  Sun Dec 4   2003     /cft
 xrwxr-xr-x       root          64  Mon Dec 11  2013     /no5text
 Crwxr-xr-x       root         256  Tue Dec 12  2014     /no5data

Emulador Lucent e VCDX

AT&T, então Lucent e agora Alcatel-Lucent , são os fornecedores do pacote baseado em SPARC e Solaris -OEM ATT3bem (que reside no Solaris SPARC em / opt / ATT3bem). Este é um emulador 3B21D completo (conhecido como 3B21E, o sistema por trás do Very Compact Digital eXchange ou VCDX) que se destina a fornecer um ambiente de produção para a parte do Módulo Administrativo (AM) do switch 5ESS . Existem partes do 5ESS que não fazem parte do microcomputador 3B21D: SMs e CMs. No emulador, a estação de trabalho é chamada de 'AW' (Estação de Trabalho Administrativa). O emulador é instalado com Solaris 2.6 / SPARC e também vem com Solstice X.25 9.1 (SUNWconn), anteriormente conhecido como SunLink X.25. A razão para empacotar a pilha X.25 com o emulador 3B21D é porque o Sistema Bell, empresas operacionais Bell regionais e ILECs ainda usam redes X.25 para seus sistemas mais críticos (comutadores telefônicos podem viver em X.25 ou Datakit VCS II, uma rede semelhante desenvolvida no Bell Labs), mas eles não têm pilhas TCP / IP).

O emulador AT & T / Alcatel-Lucent não é um programa fácil de funcionar corretamente, mesmo que se consiga obter uma imagem de um arquivo de saída 'dd' do disco rígido 5ESS em funcionamento. Primeiro, existem alguns bugs que o usuário deve navegar durante o processo de instalação. Feito isso, há um arquivo de configuração que conecta periféricos a periféricos emulados. Mas há pouca documentação no CD que descreve isso. O nome desse arquivo é em_devmap para SS5s e em_devmap.ultra para Ultra60s.

Além disso, um dos bugs mencionados no processo de instalação é um script quebrado para fdisk e discos rígidos de imagem corretamente: certas coisas precisam ser gravadas em certos deslocamentos, porque o processo / opt / ATT3bem / bin / 3bem espera, ou parece precisa, esses locais codificados.

O emulador é executado em SPARCstation-5s e UltraSPARC-60s. É provável que o 3B21D seja emulado mais rápido em um SPARC moderno do que o processador de um microcomputador 3B21D realmente funciona conforme medido em MIPS. A coisa mais difícil de ter o emulador é adquirir uma imagem de HD DMERT / UNIX-RTR para realmente rodar. O sistema operacional do 5ESS é restrito a algumas pessoas, funcionários e clientes do fornecedor, que trabalham nele ou escrevem o código para ele. Ter uma imagem de um sistema em execução, que pode ser obtido no eBay, extraído de um 3B21D em funcionamento e criado para um arquivo ou colocado em um Ultra60 ou SPARCstation-5, fornece os recursos para tentar executar o sistema UNIX-RTR.

A saída uname -a do shell Bourne executando UNIX-RTR (confiável em tempo real) é:

 # uname -a
  <3B21D> <3B21D>

Embora em sistemas 3B20D imprima 20 em vez de 21, embora 3B20Ds sejam raros, hoje em dia a maioria dos 5ESSs não VCDX são hardware 3B21D, não 3B20D (embora executem o software bem). O 3B20D usa o processador WE32000 enquanto o 21 usa o WE32100. Pode haver algumas outras diferenças também. Uma coisa incomum sobre o processador é a direção em que a pilha cresce: para cima.

Página do manual para falloc (que pode ser responsável pela alocação de espaço de arquivo contíguo ou eXtent):

     FALLOC(1)                   5ESS UNIX                   FALLOC(1)
     NAME
          falloc - allocate a contiguous file
     SYNOPSIS
          falloc filename size
     DESCRIPTION
          A contiguous file of the specified filename is allocated to
          be of 'size' (512 byte) blocks.
     DIAGNOSTICS
          The command complains a needed directory is not searchable,
          the final directory is not writable, the file already exists
          or there is not enough space for the file.


UNIX-RTR inclui um comando de troca de arquivo atômico (atomsw, página do manual abaixo):

    ATOMSW(1)                   5ESS UNIX                   ATOMSW(1)
     NAME
          atomsw - Atomic switch files
     SYNOPSIS
          atomsw file1 file2
     DESCRIPTION
          Atomic switch of two files. The contents, permissions, and
          owners of two files are switched in a single operation. In
          case of a system fault during the operation of this command,
          file2 will either have its original contents, permissions
          and owner, or will have file1's contents, permissions and
          owner. Thus, file2 is considered precious. File1 may be
          truncated in case of a system fault.
     RESTRICTIONS
          Both files must exist. Both files must reside on the same
          file system. Neither file may be a "special device" (for
          example, a TTY port).
          To enter this command from the craft shell, switching file
          "/tmp/abc" with file "/tmp/xyz", enter for MML:
          EXC:ENVIR:UPROC,FN="/bin/atomsw",ARGS="/tmp/abc"-"/tmp/xyz";
          For PDS enter:
          EXC:ENVIR:UPROC,FN"/bin/atomsw",ARGS("/tmp/abc","/tmp/xyz")!
     NOTE
          File 1 may be lost during a system fault.
     FILES
          /bin/atomsw

Referências