Se eu definir o valor de swappiness como 100 e tentar inicializar o disco rígido instalado no ubuntu no computador do meu amigo que não possui RAM, posso inicializar o computador sem o Ram?
Não. A CPU não pode executar o código do swap. A troca funciona movendo o conteúdo da RAM para o disco e outro conteúdo do disco para a RAM, mas a execução é sempre da RAM.
E não, não há como transferir código ou dados do disco diretamente para os caches da CPU. Você não pode ignorar a RAM.
Mesmo as arquiteturas de microcontroladores que podem executar código diretamente do flash NOR precisam de RAM para a pilha, pelo menos algumas SRAM embutidas como alguns controladores.
@ LưuVĩnhPhúc Você está certo. Ainda estou acostumado a chamar esses SoCs com núcleos ARM Cortex-A de "microcontroladores", embora isso possa ser enganoso. Aqueles têm uma MMU, podem executar o Linux e, normalmente, também possuem essa SRAM interna (necessária para o código de inicialização), mas não acho que possam executar código diretamente do flash. Bem, o OP parece pensar em um PC comum de qualquer maneira.
Philippos
11
Eu acho que o S390 Linux pode executar código diretamente do HDD. O recurso foi adicionado porque o S390 é uma arquitetura de 31 bits e disponibilizar todos os bytes para dados em vez de código é uma vitória. Eu poderia estar me lembrando errado, porém, mas o conjunto de patches foi memorável, porque tinha a distinção única de ser valioso tanto para mainframes quanto para microcontroladores (ou seja, os dois extremos da escala do Linux), mas não interessa a nada no meio.
Jörg W Mittag
2
Ah, achei, é o recurso XIP (eXecute In Place). Obviamente, você ainda precisa de RAM para dados. É apenas sobre código.
Jörg W Mittag
11
@rackandboneman Como desenvolvedor embarcado, fiz de tudo, desde assembler nu em controladores de 8 bits sobre RTOS até Linux embarcado. O mínimo de memória que encontrei foi um ATtiny com memória para uma pilha de três endereços de retorno. Sem isso, você nem poderia ter interrupções! Agora, por favor, não discuta se essa memória da pilha é ram ou registra ... (-:
Philippos
11
@ Philippos, por que eu diria - estamos falando a mesma coisa.
TL; DR: Não. De fato, há uma fase durante a inicialização em que os chips de RAM não são usados e o processador está executando apenas com seu cache interno funcionando como RAM improvisada. Mas isso é muito cedo no processo de carregamento do BIOS e uma das primeiras coisas que o BIOS faz é inicializar a RAM, para poder usá-lo. O código da máquina em execução lá é muito especializado, muito artesanal.
Depois que muito cedo, RAM é necessária para tudo. Isso significa que você nem poderá entrar no BIOS, obter um sinal de vídeo ou muito menos inicializar a partir de qualquer mídia, sem RAM.
Respostas:
Não. A CPU não pode executar o código do swap. A troca funciona movendo o conteúdo da RAM para o disco e outro conteúdo do disco para a RAM, mas a execução é sempre da RAM.
E não, não há como transferir código ou dados do disco diretamente para os caches da CPU. Você não pode ignorar a RAM.
Mesmo as arquiteturas de microcontroladores que podem executar código diretamente do flash NOR precisam de RAM para a pilha, pelo menos algumas SRAM embutidas como alguns controladores.
fonte
/electronics//a/311839/111920 contém o link http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2, que descreve o processo de inicialização de uma moderna CPU Intel com detalhes excruciantes.
TL; DR: Não. De fato, há uma fase durante a inicialização em que os chips de RAM não são usados e o processador está executando apenas com seu cache interno funcionando como RAM improvisada. Mas isso é muito cedo no processo de carregamento do BIOS e uma das primeiras coisas que o BIOS faz é inicializar a RAM, para poder usá-lo. O código da máquina em execução lá é muito especializado, muito artesanal.
Depois que muito cedo, RAM é necessária para tudo. Isso significa que você nem poderá entrar no BIOS, obter um sinal de vídeo ou muito menos inicializar a partir de qualquer mídia, sem RAM.
fonte