Você está na página 1de 28

Linux em Embarcados

Jacqueline, Juliana, Lucas, Rodrigo


Sistema Embarcado

Um computador construdo para o nico propsito da sua aplicao.


Realiza um conjunto de tarefas predefinidas.
Seu tamanho diverso.
O custo para executar este propsito, geralmente mnimo.
Em geral, nesses sistemas suas funcionalidades no podem ser alteradas
durante o uso, caso seja necessrio algum tipo de alterao a reprogramao
ser necessria.
Podem ou no possuir uma interface do usurio.
O software escrito para esse tipo de sistema muitas vezes chamado de
firmware, e armazenado em uma memria ROM ou flash.
Em sua grande maioria o sistema no possui teclado ou tela.
Histria de Sistemas Embarcados

O primeiro sistema embarcado reconhecido foi o Apollo Guidance


Computer, desenvolvido por Charles Stark Draper.
O primeiro sistema embarcado de produo em massa foi o computador guia
do mssil nuclear LGM-30. (1960)
Desde a dcada de 60, os preos dos sistemas embarcados vm reduzindo seu
preo, e ao mesmo tempo aumentando seu poder de processamento e
funcionalidade.
No final da dcada de 80, os sistemas embarcados j eram a norma ao invs
da exceo em dispositivos eletrnicos.
Semelhanas e Diferenas Linux Desktop
e Linux Embarcado
Um sistema Linux embarcado no se difere, no quesito sistmico, de um
sistema Linux desktop. A mesma estrutura e conceitos so aplicados em
ambos os domnios.
A principal diferena est nos requisitos de processamento, armazenamento,
consumo de energia e confiabilidade.
Na maioria dos sistemas Linux embarcado, os recursos disponveis so
limitados e muitas vezes a interface com usurio bastante limitada ou
simplesmente no existe.
Exemplos de Sistemas Linux em
Embarcados
Roteador;
Setup-box;
Smart TV;
Controlador Lgico Programvel (CLP);
Cmera Digital;
GPS;
Relgio de Pulso.
Exemplos de Sistemas Linux em
Embarcados
PDA Sharp Zaurus SL-C3100
Exemplos de Sistemas Linux em
Embarcados
Accton VM1188T
Exemplos de Sistemas Linux em
Embarcados
PDA Sharp Zaurus SL-C3100
Exemplos de Sistemas Linux em
Embarcados
Archos PMA400
Exemplos de Sistemas Linux em
Embarcados
HRP-2M Choromet
Arquitetura bsica de um sistema Linux:
Principais componentes de um Sistema Linux
embarcado
Hardware: o dispositivo;
Bootloader: iniciado pelo hardware, responsvel pela inicializao
bsica, carregamento e execuo do kernel Linux;
Kernel Linux: ncleo do sistema operacional. Gerencia CPU, memria e I/O,
exportando servios para as aplicaes do usurio;
Rootfs: sistema de arquivos principal. Possui as bibliotecas do sistema para
uso dos servios exportados pelo kernel, alm das bibliotecas e aplicaes do
usurio;
Toolchain: conjunto de ferramentas para gerar os artefatos de software do
sistema.
Bootloader

As principais funcionalidades do bootloader so:

Inicializar o hardware antes de executar o kernel como, por exemplo,


configurar a controladora de SDRAM;
Passar parmetros para o kernel;
Prover mecanismos para carregar e gravar o kernel e o sistema de arquivos na
memria flash ou carto SD;
Inicializar via rede ou pelo carto SD;
Rotinas de diagnstico de hardware.
Principais Bootloaders para Sistemas
Embarcados
x86:
LILO;
Grub;
Syslinux.

ARM, MIPS, PPC e outras arquiteturas:


U-Boot;
Barebox;
Redboot.
Linux Kernel

O Linux kernel capaz de rodar em mais de 20 arquiteturas de CPU


diferentes. Como por exemplo: x86, ia64, ARM, PowerPC, MIPS, SuperH,
Blackfin, Coldfire, Microbalze.
Tem suporte arquiteturas de 32 e 64 bits e arquiteturas que no possuem
MMU (Memory Management Unit).
Suporta armazenamento em memrias NAND, FLASH, MMC e hard disks.
Por exemplo, um sistema bsico pode funcionar com at 8MB de RAM e 2MB
de armazenamento, uma vez que necessite de poucos drivers, funcionalidades
do kernel e bibliotecas e aplicativos para que o sistema desempenhe as
funes desejadas.
Linux Kernel
Aplicao Aplicao

Biblioteca Biblioteca Aplicao User space

Biblioteca C

Chamadas de sistema Notificao de eventos


Exportao de informaes

Kernel

Gerenciamento do hardware Notificao de eventos

Hardware
Kernel

O Kernel a base de todo o sistema. No boot ele responsvel por:

Inicializar CPU, memria e barramentos;


Configurar a memria virtual (se tiver MMU);
Inicializar os device drivers;
Iniciar o escalonador de tarefas;
Iniciar threads do kernel;
Montar sistema de arquivos principal (rootfs) e chamar o processo init.
Kernel

Como principais caractersticas podemos apontar:

Gerencia execuo de processos e controla acesso memria e I/O;


Gerenciamento do kernel space X user space;
Interface de user space com kernel space via chamadas do sistema (system
calls);
Acesso ao hardware via arquivos de dispositivo;
Gerenciamento dinmico dos mdulos do kernel.
Rootfs

Aps ter sido montado pelo kernel e ter o processo init (PID = 1) iniciado, o
rootfs utiliza seu mecanismo de inicializao (ex.: SysVinit, Systemd etc) para
inicializar os processos e aplicaes do sistema. responsvel por prover as
bibliotecas de sistema e de usurio.
Rootfs

Alguns exemplos de aplicaes para sistemas embarcados:

Dropbear: cliente e servidor SSH;


Thttpd: servidor web;
DirectFB: biblioteca grfica;
SQLite: banco de dados;
Busybox: o canivete suo de sistemas embarcados com Linux.
Toolchain

Conjunto de ferramentas de programao usadas para gerar determinado produto,


seja um software ou mesmo um sistema completo.
Componentes principais:
Compilador (gcc);
Assembler e Linker (binutils);
Biblioteca C padro (glibc, uclibc, dietlibc, musl, etc).

Algumas opes de toolchains prontas:


GNU Toolchain: Suporte para at 39 arquiteturas ;
Code Sourcery: ARM ;
Linaro: ARM ;
MIPS .
Experimento

Instalao da distribuio Linux Ubuntu MATE na placa do raspberry pi;

A escolha da verso da raspberry uma questo de compatibilidade;


Raspberry Pi
Raspberry Pi 3 - Especificaes

Processador Quad-core 64-bit ARM Cortex A53 com clock de 1.2 GHz;

Em torno de 50% mais rpido que o Raspberry Pi 2;

802.11n Wireless LAN;

Bluetooth 4.1 (incluindo Bluetooth Low Energy);

400MHz VideoCore IV multimedia;

Memria de 1GB LPDDR2-900 SDRAM (900MHz);


Raspberry Pi 3 x Predecessores

O Model B da terceira gerao se destaca pelo aumento de performance e a


tecnologia embarcada;
O processador sobe a 1.2 GHz, mantendo os quatro ncleos, e capaz de
trabalhar em 64 bits;
A RAM continua em 1 GB;
Os grandes diferenciais, entretanto, so a incluso de interfaces sem fio de
diversos tipos;
H Bluetooth e Wi-Fi inclusos no pacote, desobrigando o usurio a ligar
perifricos com essas funcionalidades em projetos que apliquem a placa.
Raspberry Pi 3 - Aplicaes

Automao Residencial;

Chromecast;

Sistema para TV (Ex: OSMC);

Controle de objetos remotos (carros de brinquedo, drones, etc...);

MiniPC.
Ubuntu Mate

Ubuntu Mate um sistema operacional Linux baseado na distribuio Ubuntu,


que vem com o ambiente grfico Mate como desktop padro;

O sistema possui uma rea de trabalho baseada na tradicional metfora do


desktop, com uma barra de tarefa, menu de aplicativos e outros itens comuns
dessa abordagem;

Ele tambm consome poucos recursos e exige requisitos de hardware


modestos;
Ubuntu Mate

Um dos maiores diferenciais do Ubuntu Mate seu baixo consumo de


recursos. Isso o torna adequado tanto para desktops e laptops modernos,
como para micro computadores e hardware mais antigo.