Como o DOS pode continuar após a execução de um programa de modelo de memória simples em modo real?

0

Vamos voltar aos anos 70 e 80. Com um modelo de memória plana de modo real, um programa tem controle total de 64 K de memória. Isso significa que, após o DOS iniciar, o programa pode sobrescrever a memória em que o DOS estava, assim como qualquer outro programa.

Dado que, como o DOS foi capaz de "retornar" depois que o programa foi encerrado?

    
por Philip 29.01.2016 / 04:29

1 resposta

0

Primeiro, o IBM DOS original foi lançado em 1981 com o IBM 5150 PC original, embora o sistema operacional CP / M baseado nele existisse na década de 70.

Acho que a melhor maneira de descrevê-lo é que o DOS trata sua memória principal (a "Área de Programa Transiente" ou TPA) como uma pilha.

Normalmente, o primeiro programa carregado é o COMMAND.COM e está na parte inferior. COMMAND.COM pode pedir ao DOS para carregar e dar controle a outro programa - o binário é colocado na memória onde o COMMAND.COM termina. Suponho que o DOS mantenha um ponteiro de "início de memória livre" para essa finalidade. Quando o binário executa a chamada do DOS para finalizar, o DOS diminui o ponteiro de memória livre e a memória é "recuperada".

Como você só tinha um programa rodando ao mesmo tempo, não havia nenhuma preocupação com buracos ou fragmentos nesse esquema.

O DOS suportou TSRs ou programas que terminariam e permaneceriam residentes. Portanto, nesse caso, o DOS não diminuiria esse ponteiro antes de retornar e o programa permaneceria na memória. Nenhuma provisão para removê-lo sem utilitários especiais de terceiros. Os TSRs podem ligar-se às funções do DOS ou às interrupções do sistema e, como tal, conseguem multitarefas limitadas. O artigo da Wikipédia sobre TSRs fornece informações mais detalhadas.

Mas sim, não há proteção de memória, então qualquer programa pode realmente destruir toda a memória RAM, incluindo onde o DOS vive, a qualquer momento. Nesse caso, a execução da chamada de retorno do DOS falharia ou se comportaria de maneira imprevisível. Este esquema depende dos programas que cooperam e não há aplicação. Você pode até mesmo sobrescrever o DOS inteiramente, é o que o programa LOADLIN faz - é um carregador do Linux para DOS. Eu acho que o Netware era da mesma maneira, ele usava o DOS para inicializar, mas basicamente o sistema operacional do Netware substituía o DOS na RAM durante o carregamento.

    
por 29.01.2016 / 05:37

Tags