Todo sistema operacional precisa de RAM?

77

Existe um sistema operacional que pode ser usado sem a RAM, especificamente do tipo que eu posso criar um pendrive inicializável e usá-lo no computador? Isso fica estranho, já que a inicialização é essencialmente carregar o SO na RAM.

Nota: originalmente eu queria saber sobre um sistema operacional sem RAM para verificar se o meu laptop (que não inicializa, mas apresenta uma tela em branco) RAM tinha ido mal, mas eu gosto do jeito pergunta tem snowballed.

    
por Suvarna Pattayil 31.08.2014 / 10:12

12 respostas

96

Todo sistema operacional precisa de RAM?
Para hardware compatível com IBM PC, uma etapa obrigatória do BIOS POST process é verificar se há RAM para carregar o BIOS. Opcionalmente, o processo POST verifica suas funções RAM corretamente. Após o processo do POST, o BIOS carrega o carregador de inicialização na RAM e dá o controle ao bootloader. Portanto, a resposta à sua pergunta ("Todo sistema operacional precisa de RAM?") É: sim, todo hardware compatível com IBM PC requer pelo menos alguma RAM em funcionamento para inicializar. Isso é verdadeiro para qualquer sistema operacional executado nesse hardware.

Note que na pergunta original do OP, havia uma referência a um "laptop", que eu interpretei como: hardware compatível com IBM PC. Para o restante desta resposta, assumirei o hardware compatível com IBM PC.

Um SO pode ser inicializado com RAM defeituosa?
Se sua RAM estiver com defeito (e não totalmente ausente / interrompida) ou se você puder (parcialmente) substituir sua RAM, você poderá boot usando o BadRAM de BadMEM correções do kernel. Ele exige que você recompile o kernel (sons mais fáceis do que se você o fizer pela primeira vez) e você pode reinicializar e informar ao kernel onde está sua memória ruim. Uma boa explicação do uso de Memtest86 / Memtest86 + , BadRAM / BadMEM pode ser encontrado aqui .

Um sistema operacional pode inicializar sem RAM e usar o cache da CPU como RAM?
Tanto quanto eu sei, não há maneira de usar o cache da sua CPU como RAM, sem qualquer RAM presente no seu sistema (como é sugerido por @philipp e outros) nos comentários. Se houver, seria bom adicioná-lo aqui. O único trabalho que eu poderia encontrar sobre este assunto é este documento que diz: "Usando o cache do processador como RAM até que a RAM seja inicializada ". Não tenho certeza se (e como) funcionará sem RAM. Tanto quanto eu sei, não há código funcionando que inicialize um sistema operacional em um PC compatível com IBM. Qualquer referência à prova de conceitos, código de trabalho ou qualquer coisa é bem-vinda nos comentários e eu adicionarei a esta resposta.

Posso chegar ao BIOS?
A pergunta do OP é um pouco vaga se o laptop for capaz de passar o BIOS POST. Como aponta @Tonny, nenhum OS irá ajudá-lo a " chegar ao BIOS ". Você entra no BIOS usando o F1 ou F2 ou F10 ou DEL ou ESC chave, dependendo da sua marca de BIOS.

Como recuperar dados do laptop sem RAM?
Quanto ao objetivo por trás da sua pergunta: por que você precisa de acesso ao seu laptop? Provavelmente porque ainda há dados no disco rígido que você deseja recuperar? Se for esse o caso, é muito mais fácil retirar o HDD (consulte o manual) e conectá-lo a um dispositivo de armazenamento externo ou diretamente a um PC. Aqui é um bom guia para fazer exatamente isso.

    
por 31.08.2014 / 15:40
33

É possível em teoria , mas seria muito lento, já que precisaria usar o disco para qualquer armazenamento temporário que não coubesse nos caches da CPU. (CPUs têm alguns megabytes de cache, porque mesmo a RAM é muito lenta para eles. Pense nisso.) Então você precisaria de um sistema operacional bastante pequeno.

(Bem, sistemas embutidos no chip podem executar código a partir da RAM ou memória Flash interna - o BIOS do PC poderia, em teoria, fazer o mesmo, mas não pode rodar todo o sistema operacional. )

Mas, outra coisa é, o BIOS roda antes e fora de qualquer sistema operacional instalado, e é o BIOS que permite inicializar a partir de um pendrive ou qualquer outra coisa. Então, se você não puder acessar a BIOS, então no outro sistema operacional no mundo irá ajudá-lo.

    
por 31.08.2014 / 14:25
15

Você poderia, com algum esforço, projetar um sistema que não continha RAM. Carregue seu software de ROM (ou armazenamento) e faça tudo em registros ou em cache. Tal sistema teria um uso excepcionalmente restrito e, dado que os preços de RAM atuais são um pouco inúteis. Um laptop de prateleira não funcionará sem alguma memória interna.

Sua pergunta real é mais provável "Como faço para obter informações de um computador que não inicializa" e isso é fácil. Desmonte-o, remova a unidade e conecte-a a um gabinete externo.

Note, no entanto, que qualquer computador com idade suficiente para que você não possa obter apenas $ 20 em RAM, ele terá um drive ATA (regular ATA, não SATA). Esta interface está quase extinta hoje, então você também precisará encontrar um caso de unidade com uma placa ATA, bem como um adaptador de tamanho grande para o tamanho de um laptop. Eu tenho um que eu comprei em 2000, e eu mantenho alguns casos antigos apenas para esse fim.

    
por 01.09.2014 / 01:41
10

Se eu ler a pergunta corretamente, todos aqui estão latindo na árvore errada.

Ele afirma explicitamente "para chegar ao BIOS".

Se o laptop está tão quebrado que nem entra na BIOS, todo o resto é inútil.

Você não pode inicializar QUALQUER SO neste, independentemente da situação da RAM.

    
por 02.09.2014 / 09:45
8

Sua suposição de que a memória é ruim provavelmente é inválida. Se você não receber bips ou mensagens na tela, a causa raiz é quase certamente uma CPU com falha (um pouco improvável) ou uma placa-mãe com falha (muito provável). Placas principais falham com a idade o tempo todo devido a juntas de solda fria, que eram uma ocorrência comum nos primeiros dias do movimento ROHS e a exigência de usar solda sem chumbo. As técnicas de fabricação foram otimizadas para o uso de solda baseada em chumbo e a indústria demorou um pouco para entender e resolver os problemas. Muitos fabricantes de componentes não estavam dispostos a gastar dinheiro para atualizar seus processos. Afinal de contas, os dispositivos testariam e queimariam bem, só para falhar meses ou anos depois, depois que qualquer garantia tivesse expirado. Somente com uma montanha crescente de falhas e um intenso feedback negativo dos usuários os fabricantes começaram a melhorar as coisas. Em um laptop desse tipo, ter a placa-mãe recirculada para corrigir as juntas de solda fria é quase certamente um custo proibitivo.

    
por 01.09.2014 / 12:42
5

A maioria dos primeiros computadores dos anos 80, ou aproximadamente, tinha algum tipo de sistema operacional (drivers de hardware, suporte IO, carregamento de programas, interface de linha de comando muito simples, etc.) no chip ROM. Poderia funcionar um pouco, mesmo quando os chips de RAM estivessem inoperantes. Esse recurso foi usado em versões especiais de conteúdo de ROM projetadas para executar testes de hardware e se comunicar principalmente através das luzes de bipe e teclado.

A CPU tem vários registradores para lembrar o endereço do comando que está sendo executado, pelo menos, mas eles normalmente não são chamados de RAM.

O código C regular não pode ser executado em um sistema sem RAM, pois ele usa a memória de pilha para alocar variáveis e a pilha está na RAM. Quando um computador recente é inicializado, inicialmente não está disponível uma RAM dinâmica regular, pois o dispositivo de atualização da RAM precisa de configuração inicial para funcionar. O código de montagem é executado primeiro e executa a inicialização da placa-mãe. RAM começa a funcionar e, em seguida, o código C pode ser executado.

    
por 02.09.2014 / 19:00
4

Quando fui para a Universidade em 1967, o Departamento de Computação tinha uma Stantec Zebra . A memória consistia em um tambor magnético de 8192 palavras. Havia também 12 registros e dois acumuladores. Você pode considerar essa RAM, mas não como a conhecemos.

    
por 03.09.2014 / 10:45
3

Você precisaria pelo menos do cache de chips para registradores (essencialmente uma quantidade muito pequena de RAM no chip) para que a unidade de execução da CPU pudesse funcionar. Então, até mesmo a sua CPU tem 'RAM'.

Nenhum sistema operacional Von-Neumann foi projetado sem a necessidade de memória, acredito.

Então não.

    
por 02.09.2014 / 13:17
3

Como todas as outras pessoas aqui, eu concordo com o fato de você precisar de RAM e não pode trabalhar sem ele, mas eu também leio o seguinte:

(I originally wanted to load a RAM-less OS to check if the RAM had gone bad, but I like the way this question has snowballed.)

Isso realmente existe na BIOS, existe uma função para verificar a RAM em profundidade. Ao inicializar e entrar no BIOS, mude a opção "Quick Power-on self test" para off, e ele fará uma verificação completa da RAM. Esta opção deve estar localizada em "recursos avançados do BIOS", algo como segunda escolha em BIOS da AMI.

Espero que isso lhe dê mais um passo. ; -)

    
por 03.09.2014 / 07:45
3

Você não precisa de RAM , por exemplo, use uma máquina de Turing .

A Turing machine is a hypothetical device that manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer algorithm, and is particularly useful in explaining the functions of a CPU inside a computer.

(Eu não consideraria uma fita como RAM).

Agora, suas perguntas reais devem ser perguntadas sobre "útil" e definir o que você quer dizer com "útil" .

    
por 03.09.2014 / 10:14
3

Existem SOs especializados para uso embarcado que são executados inteiramente a partir de uma ROM (memória somente de leitura). No entanto, para fazer qualquer coisa útil, você geralmente precisa de pelo menos uma pequena quantidade de RAM. Eu não vi um PC que irá arrancar sem memória RAM.

Quanto à pergunta original sobre um teste de memória, se o computador fizer POST (por exemplo, passar pelo Power-On Self-Test e tentar inicializar), então o Memtest86 é projetado especificamente para testar sua RAM. Ele testa os primeiros 64 KB de RAM, carrega-se nessa RAM e, em seguida, testa o restante da memória do sistema da maneira que desejar. A memória "Flakey" (em oposição à memória ruim) é incomum, mas eu vi o Memtest86 pegar um bit intermitentemente ruim que o teste de memória do computador falhou (afinal, o teste de memória POST deve ser concluído em um período razoável de tempo , enquanto o teste mais rápido do memtest86 roda de 5 a 10 minutos, com testes mais abrangentes que levam horas.)

    
por 04.09.2014 / 20:56
1

Sim, você pode ter um computador sem RAM. Existe um modo especial na maioria dos processadores x86 que permite executá-lo apenas com cache. Se você verificar o coreboot (ex-linuxbios), ele pode fazer isso. Seu chamado cache-as-ram. Na verdade, você pode fazer todo um sistema operacional baseado nisso, e com os caches modernos de grande porte, ele pode acabar tendo um gui (confira o menuet-os). Mas nenhum feito ainda.

    
por 03.05.2015 / 16:00