Quais são todos os conteúdos obrigatórios da partição de inicialização?

1

Enquanto estudava sobre inicializar um Android em uma placa, aprendi que MLO (X-loader), U-Boot e uImage são necessários para inicializar o Android no quadro.

Mas fiquei imaginando que, quando eu soubesse disso, o IMX53quickstart Board não precisa da MLO para inicializar um Android nele.

  1. Como isso é possível? Como a placa pode inicializar sem o MLO?
  2. Este fórum possui algum recurso especial? O que é isso?
  3. Se sim, por que outro fórum não poderia ter esse recurso?
  4. Podemos implementar esse recurso em todas as pastas?
por Dhasneem 20.02.2013 / 06:47

1 resposta

2

O que um sistema "precisa" para inicializar é o código executável em um endereço de memória específico.

Se você colocar o kernel no local certo, ele será inicializado (e foi assim que fizemos nos velhos tempos - sem carregadores de inicialização). Nos dias de hoje nós colocamos um carregador de boot lá. Um gerenciador de partida é apenas um código executável que é um pouco mais inteligente que o hardware (mas não muito) sobre onde encontrar outro código executável.

Para explicá-lo em termos muito simples, ao ligar o hardware começará a execução de um programa no firmware. Isso varia de acordo com o hardware, mas no PC costumava ser o BIOS. Hoje pode ser EFI. Esse programa, o que quer que seja, sabe como procurar no (s) dispositivo (s) de bloco em endereços específicos. Os blocos encontrados lá são carregados na RAM e então executados. O hardware é muito pouco inteligente sobre o que isso pode ser, então realmente não há qualquer exigência de que seja uma coisa específica, exceto que é o código de máquina adequado para o processador *.

No seu caso, a única coisa necessária para inicializar é uImage (a imagem do Kernel). O U-Boot é simplesmente uma maneira de encontrar o uImage. MLO é, presumivelmente, apenas uma maneira de encontrar o U-Boot. Em teoria, se você colocasse uImage nos blocos certos, ele seria inicializado diretamente.

* Aliás, bricking é quando o que acontece nesses blocos não é apropriadamente executável pelo processador.

    
por 20.02.2013 / 23:32