otávio salvador - yocto project reduzindo -time to market- do seu próximo produto
DESCRIPTION
Palestra feita pelo Otávio Salvador no FISL15 sobre o projeto YoctoTRANSCRIPT
● Desenvolvedor Debian● Gerente de Release:
○ Debian Installer (por 3 releases)
○ GNU Parted● Colaborador em:
○ Linux Kernel○ U-Boot○ OpenEmbedded
Otavio Salvador
● Yocto Project:○ BSP ARM para
Freescale○ Qt5○ CMake○ SDK
● O.S. Systems
Yocto Project: o que é?
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
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
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, …)
Yocto Project: Advisor Board
AMDLG ElectronicsRenesasLong Term Support Initiative (LTSI)Juniper NetworksO.S. SystemsHuaweiMentor GraphicsTexas Instruments
Sakoman, Inc.OpenEmbedded eVMontaVista SoftwareLSI CorporationIntel CorporationFreescale SemiconductorEnea ABWind River SystemsDell
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
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
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
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
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
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
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!
Yocto Project: documentação
Yocto Project: http://www.yoctoproject.org● Quick Start Guide● Reference Manual● BSP Manual● Aplication Development Toolkit Manual
OpenEmbedded: http://openembedded.org
Autores:● Otavio Salvador● Daiane Angolini
http://bit.ly/yocto-book
Embedded Linux Development with Yocto Project