OS / 8 - OS/8

OS / 8
Desenvolvedor Digital Equipment Corporation
Estado de trabalho Interrompido
Modelo fonte Fonte fechada
lançamento inicial 1971 ; 50 anos atrás ( 1971 )
Plataformas PDP-8
Interface de usuário padrão Concise Command Language (CCL)
( interface de linha de comando )
Licença Proprietário
Precedido por PS / 8

OS / 8 foi o principal sistema operacional utilizado no Equipment Corporation Digital 's PDP-8 minicomputador .

Antes do OS / 8, havia sistemas operacionais PDP-8 anteriores:

  • Monitor RL, também conhecido como MS / 8 .
  • P? S / 8, exigindo apenas 4K de memória.
  • Sistema monitor de disco PDP-8 4K
  • PS / 8 ("Sistema de programação / 8"), exigindo 8K. Isso é o que se tornou o OS / 8 em 1971.

Outros / sistemas operacionais DEC relacionados foram: OS / 78 , OS / 278, OS / 12. O último é uma versão virtualmente idêntica do OS / 8 e foi usado com o computador PDP-12 da Digital .

Imagens OS / 8 lançadas digitalmente para fins não comerciais que podem ser emuladas por meio do SIMH .

Visão geral

O OS / 8 forneceu um ambiente operacional simples que era compatível em complexidade e escala com os computadores PDP-8 nos quais era executado. A E / S era suportada por uma série de drivers fornecidos que usavam técnicas de polling (não direcionadas a interrupções). Os drivers de dispositivo tinham que ser escritos de forma inteligente, pois podiam ocupar apenas uma ou duas páginas de memória de 128 palavras de 12 bits e deveriam ser executados em qualquer página do campo 0. Isso geralmente exigia inteligência considerável, como o uso de a instrução OPR (7XXX) para pequenas constantes negativas.

A "pegada" residente na memória do OS / 8 era de apenas 256 palavras; 128 palavras na parte superior do campo 0 e 128 palavras na parte superior do campo 1. O resto do sistema operacional (o USR, "Rotinas de serviço do usuário") foi trocado para dentro e para fora da memória de forma transparente (em relação ao programa do usuário) como necessário.

A Linguagem de Comando Conciso

As primeiras versões do OS / 8 tinham um interpretador de linha de comando muito rudimentar com poucos comandos básicos : GET, SAVE, RUN, ASSIGN, DEASSIGN e ODT . Com a versão 3, eles adicionaram uma sobreposição mais sofisticada chamada CCL ( Concise Command Language ) que implementou muitos outros comandos. O CCL do OS / 8 foi diretamente padronizado após o CCL encontrado nos sistemas PDP-10 da Digital executando o TOPS-10 . Na verdade, grande parte do sistema de software OS / 8 foi deliberadamente projetado para imitar, tanto quanto possível, o ambiente operacional TOPS-10. (A linguagem de comando CCL foi usada posteriormente em computadores PDP-11 executando RT-11 , RSX-11 e RSTS / E , fornecendo um ambiente operacional de usuário semelhante em todas as três arquiteturas: PDP-8s, PDP-10s e PDP-11s .)

O sistema operacional básico e o CCL implementaram muitos comandos bastante sofisticados, muitos dos quais ainda não existem em linguagens de comando modernas, nem mesmo em MS-DOS , Windows ou sistemas operacionais do tipo Unix.

Por exemplo, o comando COMPILE iria encontrar automaticamente o compilador certo para um determinado arquivo fonte e iniciar o ciclo de compilação / montagem / link.

Os comandos ASSIGN e DEASSIGN permitiam usar nomes de dispositivos lógicos em um programa em vez de nomes físicos (conforme exigido no MS-DOS). Por exemplo, seu programa poderia gravar no dispositivo FLOP: AAA.TXT, e se você primeiro fizesse "ATRIBUIR FLOP: RXA2:", o arquivo seria criado no dispositivo físico RXA2 (a segunda unidade de disquete). VAX / VMS e o sistema operacional AmigaOS do Commodore Amiga (e outros sistemas operacionais construídos em torno do Tripos ) fizeram uso considerável desse recurso muito flexível.

O comando SET foi capaz de definir muitas opções do sistema, embora pelo método bruto de locais de patching no código binário do sistema. Um deles, um comando no OS-78, era SET SYS OS8, e ele reativou os comandos MONITOR que não faziam parte do OS-78.

O comando BUILD pode reconfigurar o sistema operacional em tempo real, até mesmo adicionando drivers de dispositivo , geralmente sem a necessidade de reinicializar o sistema operacional.

O sistema operacional pode inicializar a partir de um disco rígido e apresentar o prompt de comando em menos de meio segundo.

O sistema de arquivos OS / 8

OS / 8 suportava um sistema de arquivos simples e simples em uma variedade de dispositivos de armazenamento em massa , incluindo:

Nomes de arquivos sobre o PDP-8 tomou a forma de FFFFFF.XX onde "F" representa uma letra maiúscula , alfanumérico caracteres do nome do arquivo e "X" representa um maiúsculas, caracteres alfanuméricos da extensão (filetype).

  • .PA: linguagem assembly
  • .SV: imagens centrais salvas (programas executáveis)
  • .FT: arquivos de origem Fortran
  • .DA: Arquivos de dados

O conteúdo de qualquer arquivo era armazenado de forma contígua em uma única "extensão". O PIP incluiu uma opção para compactar ("espremer") o sistema de arquivos, de forma que todo o espaço não alocado fosse movido para uma única extensão no final do disco. Isso poderia ser invocado pelo comando SQuish CCL , da mesma forma que MUNG poderia ser usado para executar uma macro TECO .

Os volumes do OS / 8 tinham um tamanho de armazenamento máximo muito limitado (4096 blocos de 256 palavras de 12 bits) e o disco de cabeça móvel RK05 (2,4 MB) excedia este tamanho: "1,6 milhão de palavras de armazenamento." Por causa disso, os cartuchos RK05 foram divididos em duas partições. Por exemplo, o primeiro RK05 em um sistema seria conhecido como RKA0: (SY :) e RKB0 :. Essa divisão era comumente considerada como significando "a superfície superior" e "a superfície inferior", mas isso estava incorreto; na verdade, eram "os cilindros externos" e "os cilindros internos".

Arquivos ASCII

Os arquivos ASCII foram armazenados como 3 caracteres de 8 bits por par de palavras de 12 bits: Caracteres 1 e 2 à direita das palavras 1 e 2, com os bits 0-3 e 4-7 do terceiro caractere armazenados nos bits mais à esquerda de o par de palavras.

  • PALAVRA 1: c0 c1 c2 c3 | a0 a1 a2 a3 a4 a5 a6 a7
  • PALAVRA 2: c4 c5 c6 c7 | b0 b1 b2 b3 b4 b5 b6 b7 Os
    arquivos ASCII terminam com CTRL / Z (ASCII 232).

Formato de data OS / 8

OS / 8 alocou as palavras de 12 bits do PDP-8 para o armazenamento de datas por:

  • 4 bits por mês
  • 5 bits para a data nele
  • 3 bits por ano.

Y3B! Isso foi reconhecido quando o COS-310 foi desenvolvido.

OS / 8 CUSPs (programas utilitários)

Os CUSPs (programas de sistema comumente usados, ou seja, utilitários) fornecidos com o OS / 8 incluem:

  • BUILD (o programa para instalar um sistema OS / 8 configurado no armazenamento em massa)
  • DIR (o programa de listagem de diretórios)
  • EDIT (um editor orientado a linhas)
  • MACREL (Um montador de relocação que, ao contrário do PAL, implementou macros. Escrito por Stanley Rabinowitz do DEC's Small Systems Group. Stan tinha uma imagem ASCII de um peixe em seu escritório que dizia "MACREL É UM PEIXE")
  • FLAP (um assembler absoluto derivado de RALF)
  • FORTRAN -II.
  • FOTP (File-Oriented Transfer Program, uma alternativa ao PIP)
  • PAL (o montador)
  • PIP (o Peripheral Interchange Program, usado para copiar arquivos)
  • PIP10 (uma versão do PIP usada para copiar arquivos do PDP-10 DECtapes)
  • RALF (Outro montador de realocação para o FPP)
  • TECO (Editor de Texto e COrrector, um editor muito mais sofisticado). O comando MUNG executou macros TECO.
  • CCL, o interpretador de linha de comando , foi fornecido na forma de código-fonte e pode ser estendido pelo usuário.

Linguagens de programação

BASIC

Um BASIC para um único usuário e duas versões para vários usuários do BASIC estavam disponíveis como opções.

O BASIC de usuário único usou várias sobreposições para fornecer a funcionalidade completa da linguagem; quando o OS / 8 foi inicializado a partir de uma fita DECtape, ocorreu um atraso muito perceptível cada vez que o BASIC foi necessário para alternar as sobreposições à medida que precisavam ser lidas da fita.

As versões multiusuário do BASIC (EDU20 e EDU25) diferiam apenas no fato de serem ou não compatíveis com dispositivos substituíveis em bloco (DECtape ou disco). Devido a restrições de custo, muitos PDP-8s tinham leitores de fita de papel perfurado como seu único dispositivo de E / S de armazenamento em massa. O EDU20 carregava de uma fita de papel e poderia fazer a saída para um gravador de fita de papel se a máquina tivesse um, enquanto o EDU25 entendia a estrutura de um sistema de arquivos, podia carregar de uma fita ou disco DEC e poderia criar arquivos em uma fita ou disco DEC. Ambos podiam executar vários programas BASIC simultaneamente usando um agendador de tarefas primitivo que rodava os terminais conectados. A memória sempre foi muito apertada porque o PDP-8 usava memória central, que era extremamente cara se comparada à tecnologia RAM que surgiu alguns anos depois. Em apenas 8K de palavras de 12 bits, o EDU20 podia suportar até 4 terminais ao mesmo tempo, embora mais memória fosse recomendada. EDU25 exigia um banco de memória adicional de 4 K (para um mínimo de 12 K) porque o código continha um driver de dispositivo de disco e um manipulador de sistema de arquivos. Durante a execução, o EDU20 e o EDU25 eram programas independentes que não usavam nenhuma chamada do sistema OS / 8. Imediatamente após serem chamados do interpretador de comandos do OS / 8, eles sobrescreveriam toda a parte residente do OS / 8 - todas as 256 palavras dela. Na inicialização, o EDU25 salvaria o conteúdo da memória em uma fita ou disco DEC e o restauraria ao sair. Mas o EDU20 não podia fazer isso, pois era voltado para configurações de hardware sem nenhum dispositivo substituível em bloco.

FORTRAN

Além de um compilador FORTRAN II disponível gratuitamente , havia também um compilador FORTRAN IV bastante completo disponível a um custo extra. Este compilador gerou código para o processador de ponto flutuante FPP-8 opcional, que era essencialmente uma CPU separada, compartilhando apenas memória com a CPU PDP-8. Se você tivesse a opção FPP-8 instalada, o código de tempo de execução FORTRAN iria detectá-la e usar o FPP-8 para executar o código do programa principal, e a CPU PDP-8 seria executada como um processador de E / S. Se você não tivesse o FPP-8, o código de tempo de execução chamaria um interpretador FPP-8 rodando na CPU PDP-8, então o programa ainda rodaria, mas a uma velocidade consideravelmente reduzida.

Este compilador FORTRAN IV na versão 1 tinha o bug interessante que os loops DO contavam incorretamente: os loops DO contariam 1,2,3,5,6,7,… (pulando 4). Um patch rápido foi lançado para corrigir isso.

Veja também

Referências

links externos