Monitor residente - Resident monitor

Na computação , um monitor residente é um tipo de programa de software de sistema que foi usado em muitos dos primeiros computadores das décadas de 1950 a 1970. Ele pode ser considerado um precursor do sistema operacional . O nome deriva de um programa que está sempre presente na memória do computador, sendo assim "residente". Como a memória era muito limitada nesses sistemas, o monitor residente costumava ser pouco mais do que um esboço que ganharia o controle no final de um trabalho e carregaria uma parte não residente para realizar as tarefas de limpeza e configuração do trabalho necessárias.

Em um computador de uso geral usando entrada de cartão perfurado , o monitor residente controlava a máquina antes e depois de cada cartão de controle de trabalho ser executado, carregado e interpretado cada cartão de controle e agia como um sequenciador de trabalho para operações de processamento em lote . O monitor residente pode limpar a memória do último programa usado (com exceção dele mesmo), carregar programas, pesquisar dados do programa e manter rotinas de entrada-saída padrão na memória.

Camadas de software de sistema semelhantes eram normalmente usadas nos primeiros dias dos minicomputadores e microcomputadores posteriores, antes que eles ganhassem o poder de oferecer suporte a sistemas operacionais completos.

Uso atual

A funcionalidade do monitor residente está presente em muitos sistemas incorporados, carregadores de inicialização e várias linhas de comando incorporadas. As funções originais presentes em todos os monitores residentes são aumentadas com funções atuais que lidam com hardware de tempo de inicialização, discos, ethernet, controladores sem fio, etc. Normalmente, essas funções são acessadas usando um terminal serial ou um teclado físico e monitor, se conectado. Esse monitor residente é freqüentemente chamado de depurador, carregador de boot, interface de linha de comando (CLI), etc. O significado original de monitor residente acessado em série ou acessado por terminal não é frequentemente usado, embora a funcionalidade permaneça a mesma, e foi aumentada.

As funções típicas de um monitor residente incluem examinar e editar ram e / ou ROM (incluindo memória EEPROM) e, às vezes, registros de funções especiais, a capacidade de saltar para o código em um endereço especificado, a capacidade de chamar o código em um determinado endereço, a capacidade de preencha um intervalo de endereços com uma constante como 0x00 e várias outras. Funções mais avançadas incluem desmontagem local para instruções em linguagem assembly do processador e até mesmo montagem e gravação na memória flash a partir do código digitado pelo operador. Além disso, o código pode ser baixado e carregado de várias fontes, e alguns monitores avançados suportam rede tftp, ftp, http etc., bem como formatação e leitura de FAT e outros sistemas de arquivos, normalmente de memória anexada a flash em barramentos USB ou CFcard.

Para processadores incorporados, muitos "depuradores em circuito" com modo apenas de software usam conceitos e funções de monitor residentes que são freqüentemente acessados ​​por um IDE GUI. Eles não são diferentes das linhas de comando do monitor residente tradicionalmente acessadas por linha serial, mas os usuários não estão cientes disso. No mais tardar, os desenvolvedores e usuários avançados descobrirão essas funções de monitor residente incorporadas de baixo nível ao escrever o código API de baixo nível em um host para se comunicar com um destino incorporado para depuração e execução de caso de teste de código.

Vários microcontroladores atuais têm monitores seriais residentes ou carregadores de inicialização estendidos disponíveis como opções a serem usadas pelos desenvolvedores. Muitos são de código aberto. Alguns exemplos são PAULMON2, AVR DebugMonitor e o gerenciador de inicialização e monitor Bamo128 Arduino. Em geral, a maioria dos monitores residentes atuais para computação incorporada podem ser compilados de acordo com várias restrições de memória, desde pequenas e minimalistas a grandes, preenchendo até 25% do espaço de código disponível em um processador AVR ATmega328 com 32 kilobytes de memória flash, para exemplo.

Em muitos casos, os monitores residentes podem ser um avanço em relação à "depuração printf" e são muito úteis no desenvolvimento com um orçamento que não permite o uso de um depurador de circuito interno de hardware (ICD) adequado.

Exemplos para sistemas com monitores residentes

GM-NAA I / O

Veja também

Referências