O documento descreve o Yocto Project, um framework open source para desenvolvimento de sistemas embarcados baseados em Linux. O Yocto Project visa reduzir o tempo de desenvolvimento de novos produtos através de ferramentas como BitBake, que automatizam a compilação cruzada e geração de imagens, e permitem o reuso de código entre projetos. O framework é mantido pela Linux Foundation e possui uma grande comunidade de contribuidores e empresas que o utilizam.
4. Yocto Project: motivações
● Necessidade de padronização de processos
○ Plataformas de referencia
○ Planos de desenvolvimento de longo prazo
● Soluções de reais para problemas maiores
○ Redução de retrabalho
○ Redução de custo de desenvolvimento
● Unificação de esforços para um objetivo
comum
5. Yocto Project: o que é?
● Projeto totalmente Free Software sob a
tutela da Linux Foundation
● Projeto guarda-chuva
● Direcionado e apoiado por um conjunto de
membros que atua ativamente no mercado
6. Yocto Project: organização
● Tecnicamente
○ Liderado tecnicamente por Richard Purdie
■ funcionário da Linux Foundation
○ Mantenedores por sub-system (toolchain, gráficos)
○ Desenvolvimento em modo “pull” (como o Linux, em
piramide)
■ Aberto para qualquer pessoa/empresa
contribuir!
● “Advisor Board” para liderança
administrativa (recursos do projeto,
estrutura, marketing, …)
7. Yocto Project: Advisor Board
AMD
LG Electronics
Renesas
Long Term Support
Initiative (LTSI)
Juniper Networks
O.S. Systems
Huawei
Mentor Graphics
Texas Instruments
Sakoman, Inc.
OpenEmbedded eV
MontaVista Software
LSI Corporation
Intel Corporation
Freescale Semiconductor
Enea AB
Wind River Systems
Dell
8. Yocto Project: programa de aderência
● Ajudam a promover o projeto
● Reduzem a fragmentação
Níveis:
● Yocto Project Participant
○ Ideal para empresas que usam publicamente o
projeto e promovem o mesmo
● Yocto Project Compatible
○ Ideal para produtos, BSP e etc
9. Poky: ferramenta de build
● Poky
○ BitBake
■ Hob e Toaster
○ OpenEmbedded-Core
○ Distribuição Poky
○ BSP de referencia
■ QEMU
■ BeagleBone
■ x86 genérico
■ EdgeRouter Lite
■ Freescale MPC8315E-RDB
10. Poky: ferramenta de build
● Suporte a ARM, ARM64, MIPS, PowerPC,
x86 e x86-64
● Release a cada 6 meses - atualmente Daisy
○ ~ 1 ano de manutenção por release
● Extensível por meio de camadas extras
○ Grande maioria dos fabricantes provêem ou tem,
por meio da comunidades, BSPs para uso com o
Yocto Project
○ Empresas provêem camadas com
extensões/customizações
11. Poky: principais funcionalidades
● Geração de
○ imagens
○ toolchains
○ pacotes
○ manifesto de
licenças
● Teste de runtime
○ maquinas virtuais
○ maquinas reais
● toolchains externas
● uclibc, glibc, musl
● multiarch
● filtro de licenças (ex.
sistema sem GPLv3)
● feed de pacotes
● pacotes de fonte
(copyleft, etc…)
● profiling de código
● geração de SDK
● suporte a camadas
12. Yocto Project: por que usa-lo?
● Foco no que trás valor para o seu produto
○ suporte a milhares de pacotes e tecnologias prontas
para uso
○ isolamento do sistema “host” de build
○ foco em ser determinístico
● Facilita reuso da plataforma
○ a mesma plataforma pode ser usado em vários
produtos (mesmo em arquiteturas diferentes)
● Flexibilidade
○ suporte a aplicação de patches quando necessários
○ facilidade de adição de componentes
13. Yocto Project: por que usa-lo?
● Facilita divisão de responsabilidades no
desenvolvimento
○ Arquiteto de Sistema (System Architect)
○ Desenvolvedor de Aplicativo (Aplication Developer)
○ Desenvolvedor de “Device Driver”
● Facilita a aderência a requisitos de
licenciamento
○ Copyleft
○ distribuição de fontes modificados ou com patches
isolados
14. Yocto Project: “time to market”
● Reduz risco com soluções ineficientes e/ou
incompletas
● Reduz tempo gasto com o desenvolvimento
de plataforma
● Reuso de plataforma em vários produtos
● Grande disponibilidade de empresas que
oferecem serviços para ajudá-lo
● Foco no que agrega valor ao seu produto: o
seu produto!