projeto TCCBOOT é um boot loader capaz de compilar e inicializar um kernel Linux diretamente do seu código fonte.
TCCBOOT é de apenas 138 KB grande (código não comprimido) e pode compilar e executar um kernel Linux típico em menos de 15 segundos em um Pentium 4 de 2,4 GHz.
TCCBOOT baseia-se na TinyCC compilador, montador e ligante. TinyCC é um experimento para produzir um pequeno e simples compilador C compatível com o compilador GNU C e utilitários binários.
Botas TCCBOOT da mesma forma que um kernel Linux, portanto, qualquer gestor de arranque que pode executar uma imagem de kernel "bzImage 'Linux pode executar TCCBOOT. Eu só testei com ISOLINUX, mas o LILO ou GRUB deve funcionar também.
TCCBOOT lê C ou montagem fontes a partir de um sistema de arquivos ROMFS compactado armazenados em um disco RAM inicial (initrd). Ele primeiro lê o arquivo de 'boot / tccargs' que contém a linha de comando TinyCC (mesma sintaxe que o executável tcc). A invocação TinyCC deve saída uma imagem binária 'núcleo'. Esta imagem é carregada no endereço 0x00100000. TCCBOOT em seguida, faz um salto para o endereço 0x00100000 no modo de plano de 32 bits. Isto é compatível com a ABI da imagem do kernel 'vmlinux'.
Compilação:
TCCBOOT só foi testado com Linux 2.4.26. A fim de construir TCCBOOT, primeiro você deve compilar um kernel 2.4.26, porque a simplicidade TCCBOOT usa alguns arquivos binários e os cabeçalhos do kernel Linux. TCCBOOT também precisa do código-fonte do TinyCC (testado com versão 0.9.21 TinyCC). Você pode modificar o Makefile para dar os caminhos necessários.
Exemplo:
Uma partição "Olá mundo" ROMFS está incluído (initrd.img). Você pode reconstruí-lo a partir do exemplo / diretório. Você pode testá-lo com o emulador de PC QEMU com o script 'qemu-tccboot'.
A compilação do Kernel:
Para sua informação, o patch 'linux-2.4.26-tcc.patch' dá as modificações necessárias para construir um kernel Linux com TCCBOOT (NOTA: não é suffisant para construir o kernel com a sua própria Makefiles - Eu nunca tentei). A configuração do kernel correspondente está no arquivo linux-2.4.26-config. Os remendos são necessárias para as seguintes razões:
- Directivas de montagem não suportados: .rept, .endr, .subsection
- '__ASSEMBLY__ #define' Necessário em fontes de montagem
- Variáveis estáticas não podem ser vistos a partir do código de assembly embutido
- Problemas de digitação / lvalue com '? : '
- campos de bits não long longos
- 'Alinhado' não atributo suportado para estruturas inteiras, apenas para campos
- Bug obscur pré-processador
Alguns desses problemas podem ser facilmente corrigido, mas eu sou muito preguiçoso agora. É certo que há ainda muitos bugs no kernel gerado pelo TinyCC / TCCBOOT, mas pelo menos ele pode inicializar e carregar um escudo.
Detalhes de Software:
Versão: 0.1
Data de upload: 3 Jun 15
Licença: Shareware
Preço: 0.00 $
Popularidade: 58
Comentários não encontrado