Você está na página 1de 9

Linux

Sistemas Embarcados • É um núcleo, não um sistema operacional


• Altamente modulável
• usado desde servidores a equipamentos dedicados
• Desktop x embedded
• foco:
Introdução ao Linux embarcado e • desktop: ferramentas e aplicativos para usuário final
aspectos de software livre • embedded: ferramentas de desenvolvimento
• Reflexo em:
• conjunto de drivers e sistemas de arquivos
• utilitários
• necessidade de suporte à GUI
• número de usuários (single user x multiuser)
Aula 02
INF01059 - Sistemas Embarcados 2

Por que Linux embarcado? Por que Linux embarcado?

• Independência de fornecedor • Vasta gama de drivers já existentes


• soluções proprietárias levam a dependência de fornecedor • Baixo custo
• Linux: várias distribuições (comerciais e livres) • desenvolvimento
• Time to market • evita necessidade de licenças de software para ambientes e
• existência de pporte de Linux p
para várias p
plataformas ferramentas de desenvolvimento
• tempo é gasto no desenvolvimento da aplicação • treinamento e contratação
• desenvolvimento e testes em ambientes Linux e não • treinamento em UNIX básico e não em algo específico
necessariamente na plataforma alvo • royalties
• flexibilidade • Linux não tem royalties
• reduz custos em ambientes competitivos
• Open-source

INF01059 - Sistemas Embarcados 3 INF01059 - Sistemas Embarcados 4


Distribuições de Linux embarcado O mercado de Linux embarcado

• Comerciais
• vasta gama (www.linuxdevices.com)
• “Do-it-yourself”
• obtenção de um núcleo (www.kernel.org)
• instalação
ç de uma toolchain
• customização de pacotes
• especial atenção para: busybox e BSP (mais adiante...)

INF01059 - Sistemas Embarcados 5 INF01059 - Sistemas Embarcados 6

Projeção do mercado de Linux embarcado Distribuição Linux: desktop x embarcados

• Distribuição = conjunto de pacotes de software


• bibliotecas, ferramentas,utilitários, documentação etc
• instaladores e gerenciadores de software
• Embarcados versus desktop/servers
• binários p
para determinado pprocessador/plataforma
p
• ausência de ambientes de janelas
• ferramentas de desenvolvimento (analisadores de memória,
depuradores etc)
• cross-tools ao invés de nativas

Vale a pena acessar este site!!

INF01059 - Sistemas Embarcados 7 INF01059 - Sistemas Embarcados 8


Linux embarcado: algumas distribuições Linux embarcado: algumas distribuições

• Blue Cat Linux (LynuxWorks) • Metrowerks


• disponível para x86 e PowerPC • X86, ARM, PowerPC e ColdFire
• Cadenux • Monta Vista Linux
• ARM7 e ARM9 (sem MMU) • IA32, PowerPC, ARM, MIPS, Xscale e Xtensa
• Denx • Embedix (Lineo)
• PowerPC, ARM, MIPS e Xscale • disponível para PowerPC e x86, suporte para ARM está sendo
• Embedded Debian (Emdebian) implementado
• Intel IA-32, Motorola, Sparc, Alpha, ARM, PowerPC, MIPS, HP • RTLinux (Wind River)
PA-RISC e IA64 • RTLinux é um RTOS mínimo rodando Linux standard como uma
• ElinOS thread preemptável
• PowerPC, x86, ARM/Xscale, MIPS e SH microprocs • uClinux (RT-Control)
• primeira adaptação de Linux para microcontroladores sem MMU

INF01059 - Sistemas Embarcados 9 INF01059 - Sistemas Embarcados 10

Como escolher? Sugestões de critérios Qual distribuição?

• Características gerais • Pacote


• Ambiente de desenvolvimento • tem o necessário para o desenvolvimento do projeto?
• Documentação • Documentação
• Suporte • exemplos, manuais de referência, etc
• Software proprietário?
• código binário para drivers, módulos, ferramentas etc
• cuidado: dependência e royalties
• Upgrades
• contempla atualizações?
• custos?

INF01059 - Sistemas Embarcados 11 INF01059 - Sistemas Embarcados 12


Qual distribuição? Desenvolvimento com Linux embarcado

• Flexibilidade • Distribuição comercial


• suporta os objetivos • vantagens
• longo prazo • suporte (atenção ao contrato)
• Suporte • ferramentas de desenvolvimento e utilitários (busybox/BSP)
• contrato à p
parte ou incluído? • desvantagem:
g depender
p de expertise
p não local
• custo? • Distribuição própria
• qualidade do suporte? • vantagem: expertise e know-how locais
• desvantagem: suporte e ferramentas
• Aspectos legais (licenças e propriedade intelectual)
• Porte de boot loader e BSP
• Roadmap

INF01059 - Sistemas Embarcados 13 INF01059 - Sistemas Embarcados 14

Frequently Asked Questions Frequently Asked Questions

• O Linux é muito grande ? • O Linux é muito grande ?


• O Linux é tempo real ? • O Linux é tempo real ?
• Sistema operacional completo, mas modular
• Posso proteger meu código proprietário ? • Posso proteger meu código proprietário ?
• empregar apenas o necessário
• Tamanhos típicos
• (MIN) 4MB RAM + 2MB (Flash)
• (MAX) 32MB RAM + 4 MB (Flash)
• Distribuições específicas
• uClinux, ELKS, ThinLinux etc

INF01059 - Sistemas Embarcados 15 INF01059 - Sistemas Embarcados 16


Frequently Asked Questions Frequently Asked Questions

• O Linux é muito grande ? • O Linux é muito grande ?


• O Linux é tempo real ? • O Linux é tempo real ?
• Posso proteger meu código proprietário ? • Posso proteger meu código proprietário ?
• Tem capacidade, mas com limitações
• SIM, é possível, porém deve-se estar atento a
• RTAI
alguns pontos
• Esforços em desenvolvimento
• A seguir...

INF01059 - Sistemas Embarcados 17 INF01059 - Sistemas Embarcados 18

Linux e Open Source Software livre

• Pontos polêmicos (?) • Software que pode ser usado, copiado, estudado, modificado
• (re)distribuição do fonte e redistribuído sem restrições
• contaminação de licenças • licença de software livre + código fonte
• propriedade intelectual • Garante os direitos autorais
• Objetivo:
j desmistificar “lendas urbanas” • software p
público - renúncia à p
propriedade
p do p
programa
g
• Free Software Foundation (FSF) - www.fsf.org

FREE SPEECH, NOT FREE BEER!

INF01059 - Sistemas Embarcados 19 INF01059 - Sistemas Embarcados 20


As 4 liberdades Ser software livre é...

• Executar o programa para qualquer propósito • Garantir as 4 liberdades


• Estudar o funcionamento e adaptá-lo às necessidades - • Poder redistribuir cópias
acesso ao fonte • com ou sem modificações
• Liberdade para redistribuir cópias • gratuitamente ou mediante pagamento
• Liberdade para aperfeiçoar, e liberar os aperfeiçoamentos, • Não ser necessário pagar ou pedir permissão para usá-lo
usá lo
para beneficiar a comunidade - acesso ao fonte • Poder modificar para uso privativo sem comunicar a ninguém

INF01059 - Sistemas Embarcados 21 INF01059 - Sistemas Embarcados 22

©
Copyleft Política & software

• Duas correntes filosóficas


• Trocadilho com copyright
• Free Software Foundation (FSF)
• Obrigação de manter as 4 liberdades • software livre é uma visão ética e social
• FSF: “O copyleft diz que qualquer um que distribuir o software, • seguir as 4 liberdades
com ou sem modificações, tem que passar adiante a liberdade
de copiar e modificar novamente o programa” • Open Source Initiative (OSI)
• software livre é uma visão pragmática
• Na prática
• atender 10 critérios para ser software aberto
• software livre com copyleft, caso seja distribuído, deve manter a
mesma licença • Na prática, as diferenças são...
• nem todos softwares livres incluem copyleft • objetivos
• filosofia
• modo de agir
Discordância básica: condenação
ou não de software proprietário

INF01059 - Sistemas Embarcados 23 INF01059 - Sistemas Embarcados 24


Open Source Relação FSF e OpenSource: licenças

• Definição formal segue 10 critérios


• redistribuição livre
• código fonte
• trabalhos derivados
• integridade do código fonte (autor)
• não discriminar pessoas ou g grupos
• não discriminar ramos de empreendimento ou aréas GPL
• distribuição de licença
• licença não pode ser específica a um produto FSF
• licença não pode restringir outros softwares
• licença deve ser neutra quanto às tecnologias OpenSource

INF01059 - Sistemas Embarcados 25 INF01059 - Sistemas Embarcados 26

Licenças de software livre Licenças de código aberto

• Existem várias (cerca de 32) • Licença que define privilégios e restrições


• Possível criar a sua própria • uso, modificação e (re)distribuição de software
• atender as quatro liberdades • deve atender os 10 critérios
• incluir ou não o copyleft • Existem 58 licenças open source
• Exemplos • consultar www.opensource.org
p g
• GNU GPL (GNU Public Licence) v3 - inclui copyleft
• MPL (Mozilla Public Licence) - copyleft non-strong
• ASL v2 (Apache Software Licence) - copyleft non-strong
• Lesser GPL - copyleft non-strong
Termo: FOSS → Free/Open Source Software

INF01059 - Sistemas Embarcados 27 INF01059 - Sistemas Embarcados 28


GPL (GNU Public Licence) LGPL (Lesser GNU Public Licence)

• Garante as 4 liberdades • Licença menos restritiva


• Usada no núcleo do Linux e no GNU • a maioria das bibliotecas importantes estão sob a LGPL e não
sob a GPL (POSIX threads, glibc etc)
• Faz “contaminação” (copyleft)
• qualquer software que englobe um programa sob GPL • Não faz contaminação
automaticamente herda a GPL, ou seja, j deve-se tornar o código
g • Permite a criação
ç de software p
proprietário
p
fonte disponível
• válido para ligações estáticas e dinâmicas

E agora!??

INF01059 - Sistemas Embarcados 29 INF01059 - Sistemas Embarcados 30

Licenças no Linux Propriedade intelectual

• Divisão em duas partes • É possível preservar com código aberto


• espaço de núcleo (kernel) • Procedimento
• espaço de usuário Espaço de usuário • identificar as partes sensíveis
• Contaminação GPL • não usar software GPL (ou derivados) ou outra licença que gere
• no núcleo, seus derivados e contaminação não desejada
componentes • Inclui ligação estática e dinâmica com bibliotecas
• não afeta o espaço de usuário Espaço de núcleo • isolar bem componentes de código aberto proprietário
desde que sejam feitas apenas
chamadas de sistema
• Solução
• usar código/programas sob LGPL (ou similar)
Chamadas de sistema • interfacear com o núcleo com chamadas de sistema
• CUIDADO: módulos do núcleo
• são contaminados ao usarem bibliotecas/simbolos do núcleo

INF01059 - Sistemas Embarcados 31 INF01059 - Sistemas Embarcados 32


Conclusões

• Linux embarcado é uma realidade


• Pode ser usado em determinadas aplicações de tempo real
• Possível proteger propriedade intelectual
• cuidados na fase de desenvolvimento
• Distribuição comercial x livre
• relação custo x benefício a ser analisada com cuidado
• abordagem mista (expertise local + infra-estrutura da comercial)

INF01059 - Sistemas Embarcados 33

Você também pode gostar