SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Globalcode – Open4education
Linux Embarcado
Uma conversa entre o Bootloader e o Kernel
Bruno Eduardo de Oliveira Meneguele
Engenheiro de Computação
Globalcode – Open4education
Agenda
Introdução
Plataformas Embarcadas
Bootloaders
Linux Kernel
Transferência de dados
ATAGs
Device Tree Blobs
DTB vs FEX
Globalcode – Open4education
Introdução
Para esta nossa conversa:
Qual é a motivação para realizar ou assistir?
Qual é o objetivo?
Para quem se destina ou interessa?
Globalcode – Open4education
Diferenças entre plataformas embarcadas e
PCs (desktops e notebooks) atuais.
Globalcode – Open4education
Desktops/Notebooks
Arquitetura mais autocontida e estática.
Descoberta dinâmica de componentes de HW.
Protocolos com mecanismos de descoberta: USB, PCI,
LPC, entre outros.
Uma única fonte e interface de alimentação.
Arquitetura de processadores “única”: x86(_64).
Globalcode – Open4education
Plataformas Embarcadas
Arquitetura totalmente dinâmica e sem um
determinado padrão.
Múltiplos domínios e fontes de alimentação:
Componentes que necessitam de 12V, 5V, 3V3, 2V8, ...
Baterias recarregáveis.
USB ou alimentação externa direta (12V, 5V, ...).
Múltiplas interfaces de comunicação “primitivas”:
I²C, SPI, UART, entre outras.
GPIOs
Globalcode – Open4education
Plataformas Embarcadas
Múltiplos clocks independentes para periféricos ou
subsistemas da plataforma.
Toda esta imprevisibilidade nos leva a concluir:
É necessário saber como o sistema inicializa e como descrever o
hardware presente na plataforma (SoC e Board).
Globalcode – Open4education
Como funciona a inicialização de uma plataforma
embarcada?
Globalcode – Open4education
Inicialização
Antes de mais nada é necessário criar o contexto
de execução:
Configurações internas à CPU.
Executar sobre memória DRAM.
Iniciar pilha para execução de códigos de alto nível,
como os escritos em linguagem C.
Necessidade de drivers:
Controlador para DRAM.
Controlador para memória não-volátil flash NAND.
Bootloaders
Globalcode – Open4education
Bootloaders
Os bootloaders são pedaços de códigos
responsáveis por:
Inicialização básica do hardware.
Carregar aplicação binária, como um sistema
operacional.
Execução desta aplicação binária.
Além destas, possibilidade de:
Inspeção de memória.
Diagnóstico de hardware.
Interface com o usuário.
Globalcode – Open4education
Bootloaders
Inicialização a partir da ROM interna.
Endereço preestabelecido pelo fabricando.
Execução em dois estágios.
Globalcode – Open4education
Bootloaders
Bootloader de 1º estágio
Executado a partir da SRAM interna.
Inicializa controlador DRAM e NAND.
Cria o contexto de execução para executar códigos de
mais alto nível.
Carrega o bootloader de segundo estágio, presente na
memória não-volátil, na DRAM.
Exemplos: X-Loader, AT91Bootstrap, U-Boot SPL
Globalcode – Open4education
Bootloaders
Bootloader de 2º estágio
Executado a partir da DRAM.
Carrega módulos para outros subsistemas, como USB,
Rede, entre outros.
Carrega a aplicação binária na memória, podendo ser a
imagem do Linux Kernel.
Possibilidade de carregar configurações/dados
específicos para esta aplicação, como ATAGs ou DTBs
em caso de Linux Kernel.
Exemplos: Barebox, RedBoot, U-Boot (2º estágio apenas
ou SPL).
Globalcode – Open4education
Bootloaders
Globalcode – Open4education
Linux Kernel
Camada de abstração do hardware empregado:
Gerência de todos recursos de hardware
Controle de acesso concorrente
Sistema de arquivos
API estável para espaço do usuário
Entre outros ...
Globalcode – Open4education
Linux Kernel
Imagem carregada na DRAM pelo bootloader.
Processo de descompressão do vmlinux.
Ponto de entrada do Kernel é encontrado em
head.o.
Tabela de páginas começa a ser preenchida.
Estruturas internas do Kernel são inicializadas.
MMU é habilitada.
Endereços físicos passam a ser traduzidos.
Início da execução do vmlinux.
Globalcode – Open4education
Linux Kernel
Informações (parâmetros) passados pelo bootloader
são tratados.
Fonte: arch/arm/kernel/setup.c
void __init setup_arch(char **cmdline_p)
{
const struct machine_desc *mdesc;
setup_processor();
mdesc = setup_machine_fdt(__atags_pointer);
if (!mdesc)
mdesc = setup_machine_tags(__atags_pointer,
__machine_arch_type);
machine_desc = mdesc;
machine_name = mdesc->name;
...
}
Globalcode – Open4education
Linux Kernel
Inicialização de especificidades do processador e
também da plataforma.
Processo segue até o processo pai “init” for
iniciado.
Uma vez que o Kernel é totalmente inicializado, o
bootloader deixa de existir em memória.
Globalcode – Open4education
Globalcode – Open4education
Como informações são passadas do bootloader para
o Kernel do Linux?
Globalcode – Open4education
Transferência de dados
Formas convencionais (PowerPC, ARM, ...):
Passado: ATAGs.
Atual: Device Tree Blobs (DTBs).
Modelos específicos de fabricantes:
Arquivos FEX especificado pela Allwinner.
Entre outros.
Globalcode – Open4education
Transferência de dados
Modelo utilizando ATAGs:
Parâmetros carregados em uma posição
predeterminada da memória.
Machine type.
Linha de comandos do Kernel.
Ponteiro para estruturas.
Tamanho e posição da memória.
Entre outros.
Todas informações do HW são mantidas
estaticamente no Kernel.
Modificações no HW gera a necessidade de
modificar tanto Bootloader como Kernel.
Globalcode – Open4education
Transferência de dados
Modelo utilizando DTBs:
Baseado no padrão OpenFirmware IBM.
Arquivo binário carregados em uma posição
predeterminada da memória.
Descreve o HW presente na plataforma.
CPU, memória, interfaces de comunicação.
Independente de Sistema Operacional.
Parâmetros para o Kernel são passados
internamente a este arquivo.
Linguagem de descrição própria, lembrando
JSON e trabalhando sobre o modelo de árvore
(nós).
Globalcode – Open4education
Device Tree Source
Fonte: /arch/arm/boot/dts/omap3-beagle.dts
/dts-v1/;
#include "omap34xx.dtsi"
/ {
model = "TI OMAP3 BeagleBoard";
compatible = "ti,omap3-beagle", "ti,omap3";
cpus {
cpu@0 {
cpu0-supply = <&vcc>;
};
};
memory {
device_type = "memory";
reg = <0x80000000 0x10000000>; /* 256 MB */
};
...
};
Globalcode – Open4education
DTS vs FEX
Device Tree Source FEX (Allwinner)
uart4: serial@49042000 {
compatible = "ti,omap3-uart";
reg = <0x49042000 0x400>;
interrupts = <80>;
dmas = <&sdma 81 &sdma 82>;
dma-names = "tx", "rx";
ti,hwmods = "uart4";
clock-frequency = <48000000>;
};
[uart_para4]
uart_used = 0
uart_port = 4
uart_type = 2
uart_tx =
port:PH04<4><1><default><default>
uart_rx =
port:PH05<4><1><default><default>
Globalcode – Open4education
Device Tree Bindings
Documentação a respeitos das tags existentes
para uma determinada plataforma.
Repositório: Documentation/devicetree/bindings/
Globalcode – Open4education
Referências
Livros:
Embedded Linux Primer: A Practical, Real-World
Approach, Christopher Hallinan, 2010.
Linux Kernel Development, Robert Love, 2010.
Material da Free Electrons (free-electrons.com):
Cursos.
Palestras.
Artigos.
Globalcode – Open4education
MUITO OBRIGADO!
Bruno Eduardo de Oliveira Meneguele
bmeneg.com @bmeneguele
bmeneguele@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcadostdc-globalcode
 
Android Core Aula 3 - HAL (Hardware Abstraction Layer)
Android Core Aula 3 - HAL (Hardware Abstraction Layer)Android Core Aula 3 - HAL (Hardware Abstraction Layer)
Android Core Aula 3 - HAL (Hardware Abstraction Layer)Felipe Silveira
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux DayFábio Albuquerque
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhsAnderson Lago
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini Tchelinux
 
Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Ivo Calado
 
Lxde
LxdeLxde
Lxdeweb04
 
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteComo Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteTchelinux
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básicoAdriano Melo
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e DispositivosSistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e DispositivosLuiz Arthur
 
Arquivos slides aula25
Arquivos slides aula25Arquivos slides aula25
Arquivos slides aula25AlanoG
 
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonFerramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonTchelinux
 

Was ist angesagt? (20)

TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcados
 
Imei
ImeiImei
Imei
 
Android Core Aula 3 - HAL (Hardware Abstraction Layer)
Android Core Aula 3 - HAL (Hardware Abstraction Layer)Android Core Aula 3 - HAL (Hardware Abstraction Layer)
Android Core Aula 3 - HAL (Hardware Abstraction Layer)
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux Day
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
 
Lab so-abertos-unidade8
Lab so-abertos-unidade8Lab so-abertos-unidade8
Lab so-abertos-unidade8
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
 
Exercicios linux
Exercicios linuxExercicios linux
Exercicios linux
 
Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1
 
Minicurso linux
Minicurso linuxMinicurso linux
Minicurso linux
 
Lxde
LxdeLxde
Lxde
 
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé LeiteComo Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 
Introdução Linux
Introdução LinuxIntrodução Linux
Introdução Linux
 
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e DispositivosSistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
Sistemas Operacionais - Gnu/Linux Sistemas de Arquivos e Dispositivos
 
Aula 16 memórias
Aula 16 memóriasAula 16 memórias
Aula 16 memórias
 
Arquivos slides aula25
Arquivos slides aula25Arquivos slides aula25
Arquivos slides aula25
 
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonFerramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
 

Andere mochten auch

Teen community project
Teen community projectTeen community project
Teen community projectglobalecoteen
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduínotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradoTDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradotdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...tdc-globalcode
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 

Andere mochten auch (20)

Teen community project
Teen community projectTeen community project
Teen community project
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favoritaTDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
TDC2016SP - Protocolo Firmata - controle o Arduino com sua linguagem favorita
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com ArduínoTDC2016SP - Cervejaria artesanal automática com Arduíno
TDC2016SP - Cervejaria artesanal automática com Arduíno
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito erradoTDC2016SP - #NoEstimates do jeito errado
TDC2016SP - #NoEstimates do jeito errado
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Testes em go
Testes em goTestes em go
Testes em go
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
Testing in go
Testing in goTesting in go
Testing in go
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 

Ähnlich wie Bootloader e Kernel conversam sobre inicialização de plataformas embarcadas

Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafTchelinux
 
(11) hardware, modulos
(11)   hardware, modulos(11)   hardware, modulos
(11) hardware, modulosAnderson Lago
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSDflisolmaringa
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxFrederico Madeira
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaFelipe Silveira
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSDflisolmaringa
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema OperacionalAnderson Favaro
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 

Ähnlich wie Bootloader e Kernel conversam sobre inicialização de plataformas embarcadas (20)

Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
S.o iuras
S.o iurasS.o iuras
S.o iuras
 
Mini-curso CUDA
Mini-curso CUDAMini-curso CUDA
Mini-curso CUDA
 
Linux
LinuxLinux
Linux
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
 
(11) hardware, modulos
(11)   hardware, modulos(11)   hardware, modulos
(11) hardware, modulos
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSD
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao Linux
 
SlackWare - Leonel
SlackWare - LeonelSlackWare - Leonel
SlackWare - Leonel
 
apostila linux
apostila linuxapostila linux
apostila linux
 
Linux lpi 101
Linux lpi 101Linux lpi 101
Linux lpi 101
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSD
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema Operacional
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
Por que FreeBSD?
Por que FreeBSD?Por que FreeBSD?
Por que FreeBSD?
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
So-mod-2
So-mod-2So-mod-2
So-mod-2
 

Mehr von tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocustdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 

Mehr von tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Kürzlich hochgeladen

421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 

Kürzlich hochgeladen (20)

421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 

Bootloader e Kernel conversam sobre inicialização de plataformas embarcadas

  • 1. Globalcode – Open4education Linux Embarcado Uma conversa entre o Bootloader e o Kernel Bruno Eduardo de Oliveira Meneguele Engenheiro de Computação
  • 2. Globalcode – Open4education Agenda Introdução Plataformas Embarcadas Bootloaders Linux Kernel Transferência de dados ATAGs Device Tree Blobs DTB vs FEX
  • 3. Globalcode – Open4education Introdução Para esta nossa conversa: Qual é a motivação para realizar ou assistir? Qual é o objetivo? Para quem se destina ou interessa?
  • 4. Globalcode – Open4education Diferenças entre plataformas embarcadas e PCs (desktops e notebooks) atuais.
  • 5. Globalcode – Open4education Desktops/Notebooks Arquitetura mais autocontida e estática. Descoberta dinâmica de componentes de HW. Protocolos com mecanismos de descoberta: USB, PCI, LPC, entre outros. Uma única fonte e interface de alimentação. Arquitetura de processadores “única”: x86(_64).
  • 6. Globalcode – Open4education Plataformas Embarcadas Arquitetura totalmente dinâmica e sem um determinado padrão. Múltiplos domínios e fontes de alimentação: Componentes que necessitam de 12V, 5V, 3V3, 2V8, ... Baterias recarregáveis. USB ou alimentação externa direta (12V, 5V, ...). Múltiplas interfaces de comunicação “primitivas”: I²C, SPI, UART, entre outras. GPIOs
  • 7. Globalcode – Open4education Plataformas Embarcadas Múltiplos clocks independentes para periféricos ou subsistemas da plataforma. Toda esta imprevisibilidade nos leva a concluir: É necessário saber como o sistema inicializa e como descrever o hardware presente na plataforma (SoC e Board).
  • 8. Globalcode – Open4education Como funciona a inicialização de uma plataforma embarcada?
  • 9. Globalcode – Open4education Inicialização Antes de mais nada é necessário criar o contexto de execução: Configurações internas à CPU. Executar sobre memória DRAM. Iniciar pilha para execução de códigos de alto nível, como os escritos em linguagem C. Necessidade de drivers: Controlador para DRAM. Controlador para memória não-volátil flash NAND. Bootloaders
  • 10. Globalcode – Open4education Bootloaders Os bootloaders são pedaços de códigos responsáveis por: Inicialização básica do hardware. Carregar aplicação binária, como um sistema operacional. Execução desta aplicação binária. Além destas, possibilidade de: Inspeção de memória. Diagnóstico de hardware. Interface com o usuário.
  • 11. Globalcode – Open4education Bootloaders Inicialização a partir da ROM interna. Endereço preestabelecido pelo fabricando. Execução em dois estágios.
  • 12. Globalcode – Open4education Bootloaders Bootloader de 1º estágio Executado a partir da SRAM interna. Inicializa controlador DRAM e NAND. Cria o contexto de execução para executar códigos de mais alto nível. Carrega o bootloader de segundo estágio, presente na memória não-volátil, na DRAM. Exemplos: X-Loader, AT91Bootstrap, U-Boot SPL
  • 13. Globalcode – Open4education Bootloaders Bootloader de 2º estágio Executado a partir da DRAM. Carrega módulos para outros subsistemas, como USB, Rede, entre outros. Carrega a aplicação binária na memória, podendo ser a imagem do Linux Kernel. Possibilidade de carregar configurações/dados específicos para esta aplicação, como ATAGs ou DTBs em caso de Linux Kernel. Exemplos: Barebox, RedBoot, U-Boot (2º estágio apenas ou SPL).
  • 15. Globalcode – Open4education Linux Kernel Camada de abstração do hardware empregado: Gerência de todos recursos de hardware Controle de acesso concorrente Sistema de arquivos API estável para espaço do usuário Entre outros ...
  • 16. Globalcode – Open4education Linux Kernel Imagem carregada na DRAM pelo bootloader. Processo de descompressão do vmlinux. Ponto de entrada do Kernel é encontrado em head.o. Tabela de páginas começa a ser preenchida. Estruturas internas do Kernel são inicializadas. MMU é habilitada. Endereços físicos passam a ser traduzidos. Início da execução do vmlinux.
  • 17. Globalcode – Open4education Linux Kernel Informações (parâmetros) passados pelo bootloader são tratados. Fonte: arch/arm/kernel/setup.c void __init setup_arch(char **cmdline_p) { const struct machine_desc *mdesc; setup_processor(); mdesc = setup_machine_fdt(__atags_pointer); if (!mdesc) mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type); machine_desc = mdesc; machine_name = mdesc->name; ... }
  • 18. Globalcode – Open4education Linux Kernel Inicialização de especificidades do processador e também da plataforma. Processo segue até o processo pai “init” for iniciado. Uma vez que o Kernel é totalmente inicializado, o bootloader deixa de existir em memória.
  • 20. Globalcode – Open4education Como informações são passadas do bootloader para o Kernel do Linux?
  • 21. Globalcode – Open4education Transferência de dados Formas convencionais (PowerPC, ARM, ...): Passado: ATAGs. Atual: Device Tree Blobs (DTBs). Modelos específicos de fabricantes: Arquivos FEX especificado pela Allwinner. Entre outros.
  • 22. Globalcode – Open4education Transferência de dados Modelo utilizando ATAGs: Parâmetros carregados em uma posição predeterminada da memória. Machine type. Linha de comandos do Kernel. Ponteiro para estruturas. Tamanho e posição da memória. Entre outros. Todas informações do HW são mantidas estaticamente no Kernel. Modificações no HW gera a necessidade de modificar tanto Bootloader como Kernel.
  • 23. Globalcode – Open4education Transferência de dados Modelo utilizando DTBs: Baseado no padrão OpenFirmware IBM. Arquivo binário carregados em uma posição predeterminada da memória. Descreve o HW presente na plataforma. CPU, memória, interfaces de comunicação. Independente de Sistema Operacional. Parâmetros para o Kernel são passados internamente a este arquivo. Linguagem de descrição própria, lembrando JSON e trabalhando sobre o modelo de árvore (nós).
  • 24. Globalcode – Open4education Device Tree Source Fonte: /arch/arm/boot/dts/omap3-beagle.dts /dts-v1/; #include "omap34xx.dtsi" / { model = "TI OMAP3 BeagleBoard"; compatible = "ti,omap3-beagle", "ti,omap3"; cpus { cpu@0 { cpu0-supply = <&vcc>; }; }; memory { device_type = "memory"; reg = <0x80000000 0x10000000>; /* 256 MB */ }; ... };
  • 25. Globalcode – Open4education DTS vs FEX Device Tree Source FEX (Allwinner) uart4: serial@49042000 { compatible = "ti,omap3-uart"; reg = <0x49042000 0x400>; interrupts = <80>; dmas = <&sdma 81 &sdma 82>; dma-names = "tx", "rx"; ti,hwmods = "uart4"; clock-frequency = <48000000>; }; [uart_para4] uart_used = 0 uart_port = 4 uart_type = 2 uart_tx = port:PH04<4><1><default><default> uart_rx = port:PH05<4><1><default><default>
  • 26. Globalcode – Open4education Device Tree Bindings Documentação a respeitos das tags existentes para uma determinada plataforma. Repositório: Documentation/devicetree/bindings/
  • 27. Globalcode – Open4education Referências Livros: Embedded Linux Primer: A Practical, Real-World Approach, Christopher Hallinan, 2010. Linux Kernel Development, Robert Love, 2010. Material da Free Electrons (free-electrons.com): Cursos. Palestras. Artigos.
  • 28. Globalcode – Open4education MUITO OBRIGADO! Bruno Eduardo de Oliveira Meneguele bmeneg.com @bmeneguele bmeneguele@gmail.com