escrito em uma versão ligeiramente modificada do BCPL
(http://rabbit.eng.miami.edu/class/een521/bcpl-2.pdf)
Para um emulador Intel 80486
- http://rabbit.eng.miami.edu/class/een521/hardware-1.pdf
- http://rabbit.eng.miami.edu/class/een521/hardware-2a.pdf
- http://rabbit.eng.miami.edu/class/een521/intel486vm.pdf
Emulador escrito por dr. Stephen Murrell
(Código -fonte: http://rabbit.eng.miami.edu/class/een521/een521.zip)
Dentro deste repot:
- start.b: memória virtual (para o 80846. 4 GB de memória = 512 páginas * 2048 palavras por página. Word = 32 bits)
Diretório de página com tabelas de página para seis regiões separadas
do espaço de endereço virtual (código de usuário e sistema, pilha e pilha) - OS.B: manipulador de falhas de página para cultivar e empilhar
Capacidade de ler e executar programas de usuário
Exit () System Call to Restore System FP, SP e PC, defina sinalizadores da CPU e reciclando páginas de processo do usuário
sistema de entrada de teclado baseado em interrupção
shell da linha de comando
(em processo) Fila de processos executáveis - newvec.b: alocando e reciclagem de heap com newvec e Freevec
- file_system.b: sistema básico de arquivos (mkdir, cd, rmdir, fcreate, fdelete, fopen, fclose, fwrite, fret)
- SYS_LIB.B: API BASIC SYSTEM CHAMADA PARA PROCESSOS DO USUÁRIO
- Processos do usuário XB, YB: para testes
Por enquanto, as entradas de diretório são limitadas a um bloco cada (128 palavras = 512 bytes),
O que significa que os diretórios são limitados a 16 arquivos e diretórios filhos. Essa criança
Os diretórios também são limitados a 16 entradas, etc.
Cada diretório contém:
- 512 bytes
- Até 16 estruturas de 28 bytes, cada um descrevendo um arquivo ou diretório infantil
- 6 bytes para o nome dos diretórios
- 4 bytes para o local no disco do diretório pai
Os arquivos também servem como suporte de local e incluem um bloco de cabeçalho com
28 palavras de informação descritiva: nome, permissões, tempo criado, etc.
e 100 ponteiros para o conteúdo do arquivo.
100 ponteiros * 512 bytes por bloco = tamanho máximo de arquivo 50kb
- Os diretórios requerem uma leitura de disco para abrir
- Os arquivos fazem uma leitura de um disco para abrir o bloco de cabeçalho
Além de uma leitura de um disco para acessar cada um dos até 100 quarteirões de conteúdo
O objetivo era ter um sistema de arquivos básico (suporte para arquivos e diretórios)
Para testar o sistema operacional subjacente e capturar quaisquer problemas
antes de otimizar. Os recursos que estão sendo testados são
- Memória virtual, diretório de página com tabelas de página para seis regiões separadas
do espaço de endereço virtual (código de usuário e sistema, pilha e pilha) - manipulador de falhas de página para cultivar pilha e empilhamento
- Capacidade de ler e executar programas de usuário
- Sistema de saída () Chamada para restaurar o sistema FP, SP e PC
Definir sinalizadores da CPU, reciclar páginas de processo do usuário - sistema de entrada de teclado baseado em interrupção
- alocação e reciclagem de heap com newvec e Freevec
Em andamento
- fila de processos de usuário que se revezam em execução
- Testando Fread e Fwrite
Em seguida
- Árvore B+ para acomodar arquivos grandes com leituras mínimas de disco