Os SOs incorporados freqüentemente podem ser executados completamente na RAM, dependendo do aplicativo. Eu escrevi um alguns anos atrás para um microcontrolador Atmel.
Nos anos 80, havia uma variedade de sistemas que podiam rodar completamente na RAM. Tecnicamente, você não precisava de nenhuma unidade no IBM PC ou XT original, pois eles poderiam ser inicializados diretamente em um interpretador BASIC embutido na ROM. Todas as primeiras máquinas Commodore (como a VIC-20, C64, 4+, C16, etc.) (e muitas outras) eram as mesmas.
Na década de 1990, o sistema de consumo mais popular com todo o sistema operacional executado na RAM era o PalmOS, que originalmente não tinha nenhum sistema de arquivos (internamente, tudo era armazenado em um grande banco de dados de RAM). Para lembrar de arquivos PRC e PDB, havia praticamente apenas registros desses registros de RAM para um recurso de aplicativo específico ou armazenamento de dados). Não foi até que eles introduziram opções de armazenamento externo que qualquer tipo de acesso ao sistema de arquivos era embutido no sistema operacional, e mesmo assim, se você não usasse cartões SD ou MMC no seu dispositivo, o sistema seria executado completamente da RAM. Os aplicativos não precisavam ser "carregados", pois funcionavam praticamente in loco (embora pudessem alocar pilha e espaço de pilha, naturalmente).
O kernel do Linux pode ser configurado para rodar completamente a partir da RAM. Isso não é tão útil para computação de propósito geral (onde o dispositivo não sabe o que você vai jogar), mas se você conhece os limites de memória específicos para um determinado aplicativo, você pode configurar e executar assim. Você não terá nenhuma troca, e você terá que usar algo para carregar o kernel em primeiro lugar com qualquer código de aplicativo que queira executar, mas isso pode ser feito (embora, é claro, em um cenário do mundo real , você vai querer pelo menos ter algum tipo de firmware para armazenar o kernel e os dados do aplicativo para se / quando o dispositivo for reinicializado).
Por que não vemos freqüentemente isso na prática fora de certas áreas do espaço embutido? Mesmo os dispositivos embarcados precisam ser inicializados a partir de algo , e atualmente a memória flash é bastante barata e confiável, tornando muito fácil e barato pelo menos adicionar algum pequeno armazenamento de estado sólido para inicializar. E, a menos que o seu volume para o seu dispositivo seja grande, ter chips de ROM feitos para conter o seu sistema operacional para bootstrapping / reinicialização pode ser caro. É claro que, em PCs de propósito geral, onde o fabricante não sabe que tipo de carga você pretende colocar no sistema, ser capaz de ter armazenamento persistente que pode ser usado como armazenamento de apoio para trocar páginas de memória virtual é um grande benefício . Mas, para necessidades mais personalizadas que não exigem armazenamento massivo, há uma variedade de sistemas operacionais que podem ser executados completamente somente a partir de RAM.