É obrigatório ter um sistema de arquivos e MMU no Linux? [fechadas]

3

Suponha que eu não precise de um sistema de arquivos e eu tenha apenas aplicativos em que o recarregamento de dados não seja necessário - portanto, a MMU pode ser redundante. Posso remover esses dois itens do Linux e inicializar o sistema operacional com sucesso?

Estou tentando desenvolver um kernel Linux de tamanho reduzido e descobri que o sistema de arquivos e a MMU estão ocupando um espaço considerável. Então pensei em removê-los.

Algum conselho sobre isso?

    
por user2799508 24.02.2014 / 15:14

3 respostas

6

Se você quer dizer "nenhum sistema de arquivos externo em um dispositivo de bloco" como o ext2 / 3/4, vfat, etc. você pode construir um kernel sem quaisquer módulos do sistema de arquivos construídos como módulos ou embutidos no kernel. Não tenho certeza se o initramfs support conta como um sistema de arquivos - você precisará de um, é claro, se quiser um shell e outros utilitários. Você pode usar tmpfs para coisas (e, claro, isso é realmente um sistema de arquivos RAM) como /dev . Assim, você pode executar o Linux com apenas initramfs montado em /, bem como itens como /proc e outros.

Qualquer software Linux referenciará pelo menos minimamente o sistema de arquivos de alguma forma, é um conceito central do UNIX e, portanto, do Linux, então você não pode se livrar de toda a noção de arquivos no Linux e ainda ser Linux. p>

Você costumava ser capaz de desabilitar a camada de bloco ao compilar um kernel. Eu não sei se ainda é possível.

A MMU é um recurso de hardware da CPU e o Linux exige isso. Você geralmente quer isso, pois permite que os processos sejam separados uns dos outros e a maioria dos aspectos de segurança do kernel.

No entanto, existe um projeto chamado uCLinux que é uma implementação do Linux que não requer uma MMU. O objetivo é permitir um ambiente semelhante ao Linux em microcontroladores e similares. Processos no uCLinux podem sobrescrever o espaço de endereços de outros, levando a um sistema menos estável se você não tiver um software bem comportado.

    
por 24.02.2014 / 17:14
1

Se você quiser algum tipo de sistema minimalista, talvez começar de um kernel completo como o Linux seja um exagero. Talvez um sistema de microkernel, como o Minix 3 , se ajuste melhor ao projeto. Se o código-fonte aberto não é um requisito, algo como QNX deve ser considerado (aquele que teve uma demonstração com o sistema operacional e um navegador gráfico em um disquete no caminho de volta; é um RTOS para máquinas muito limitadas).

    
por 24.02.2014 / 20:22
1

O carregador pode carregar o kernel e os processos em locais fixos. Então, ele dará o controle ao kernel. Ou talvez algo parecido com o modo de hibernação.

Você deve preservar uma versão minimalista da memória virtual ao solucionar problemas de fragmentação de memória

Observe que esses processos empilhados, que o carregador deve ler, podem ser considerados como um sistema de arquivos, como os primeiros sistemas de arquivos de fita unix.

    
por 25.02.2014 / 09:35