O que é o modo real?
O modo real é um esquema de endereçamento de memória e estado operacional para microprocessadores de computador. No modo real, a memória que pode ser acessada por um programa - geralmente memória de acesso aleatório (RAM) - não é gerenciada ou armazenada em buffer de forma alguma pelo hardware, software ou serviços básicos de entrada e saída (BIOS). Isso significa que um programa é capaz de acessar todos os endereços de memória acessível, independentemente do uso da memória, e deve gerenciar todos os aspectos de leitura e gravação nos locais de memória. Várias restrições vêm com o uso do modo real, incluindo o fato de que a quantidade de memória acessível é limitada a 1 megabyte, porque o processador nesse modo permite que os endereços tenham apenas 20 bits de comprimento. De uma perspectiva prática, o software de computador não usa mais o modo real, porque foi substituído por um modo de endereçamento mais seguro, expansível e flexível, conhecido como modo protegido.
A unidade central de processamento (CPU) de um computador é onde o modo real pode ser ativado, e a maioria dos aspectos do modo realmente lida com problemas geralmente vistos em aplicativos escritos em linguagem assembly, porque são de natureza bastante atômica. Os chips de processador baseados na arquitetura original do 8086 começam no modo real quando ativados para poder executar programas que foram escritos para hardware anterior, embora isso geralmente exija o sucesso do software de emulação. O modo protegido substituiu quase completamente o endereçamento real, a partir de 2011, a ponto de haver muito poucos compiladores disponíveis que podem até compilar um programa que pode usar o endereçamento real e ainda menos sistemas operacionais convencionais que possam executá-lo.
A memória no modo real é basicamente uma sequência linear única de bytes que pode ser acessada livremente com um endereço composto por um endereço de segmento de 16 bits e um deslocamento de 4 bits dentro do segmento, formando um endereço completo de 20 bits quando combinados. Um programa pode acessar qualquer ponto da memória e ler ou gravar qualquer coisa, independentemente do local. Isso significa que, sem o gerenciamento e o conhecimento adequados, um programa usando o modo de endereçamento real pode substituir facilmente o sistema operacional e o BIOS do sistema, acionar uma interrupção física do hardware ou enviar acidentalmente um sinal para um dispositivo periférico. Isso não apenas pode causar um congelamento ou travamento do sistema, mas também pode causar perda de dados ou danos físicos ao hardware.
À medida que a arquitetura do processador avançava, o modo protegido acabou substituindo o modo real em quase todos os softwares. Com o tempo, o uso do modo de endereçamento real se tornou desnecessário, porque era incapaz de acessar mais de 1 megabyte de RAM e incapaz de usar mais de 20 bits do barramento do sistema, o que significa que ele só podia usar uma fração dos recursos disponíveis na maioria dos computadores. O endereçamento real também representa um risco de segurança significativo. Uma das poucas maneiras de escrever um programa que usa o modo de endereçamento real é usar a linguagem assembly e executar o programa em um sistema operacional de disco especial (DOS) que não muda automaticamente para o modo protegido na inicialização.