Yocto Project: Introdução

yocto project introdução

O uso do Linux como sistema operacional presente em equipamentos eletrônicos vem crescendo de maneira mais acentuada nos últimos anos. Além do fato de possuir licença open source, a evolução constante do sistema vem acompanhada com a evolução da tecnologia em si.

O Yocto Project é um sistema de build composto por diversas ferramentas para criação de distribuições Linux embarcado customizadas e tem suporte dos principais fabricantes de semicondutores.

O que é um Sistema Linux Embarcado?

Um sistema Linux Embarcado não se difere conceitualmente de um sistema Linux usado em computadores desktop. A principal diferença está na customização e adaptações necessárias para que o Linux seja “acoplado” ao hardware específico e satisfaça, principalmente, os requisitos de desempenho, armazenamento e consumo de energia.

Podemos ilustrar um sistema Linux Embarcado como apresentado na figura 1.

Figura 1 – Componente de um Sistema Linux Embarcado.

Basicamente, para um sistema Linux Embarcado desempenhar suas funções temos que agregar seus diversos artefatos de software – Bootloader, Linux Kernel, Bibliotecas, Serviços e Aplicações – para serem executados no Hardware alvo. Ao conjunto desses artefatos de software chamamos de Distribuição.

Temos um artigo específico tratando sobre a Anatomia de um Sistema Linux Embarcado.

Opções para uso de Linux em produtos

Quando desenvolvemos produtos temos basicamente duas opções: utilizar uma Distribuição Linux Pronta ou Customizada. Veremos abaixo quais os Prós e Contras de cada solução:

Distribuição Pronta: Prós

Distribuição Pronta: Contras

Distribuição Customizada: Prós

Distribuição Customizada: Contras

Ferramentas de Desenvolvimento

Para gerarmos os artefatos de software necessários devemos ter à disposição um conjunto de ferramentas de desenvolvimento que são ilustradas na figura 2.

Figura 2 – Ferramentas de Desenvolvimento para Sistemas Linux Embarcado

Das quais podemos definir brevemente:

O que se espera de um Sistema de Build?

Devido à complexidade inerente de um Sistema Linux Embarcado, espera-se que um Sistema de Build:

Atualmente temos disponíveis os seguintes Sistemas de Build:

Yocto Project – Overview

O Yocto Project, além de ser um Sistema de Build, ele endereça questões críticas no desenvolvimento de produtos como: redução do time-to-market, redução de custos de desenvolvimento e manutenção.

O que é o Yocto Project?

O que NÃO é o Yocto Project?

It’s not an embedded Linux distribution
– it creates a custom one for you

Características

Versões:

Nome

Revisão

Poky

Data

Bernard

1.0

5.0

Abril de 2011

Edison

1.1

6.0

Outubro de 2011

Denzil

1.2

7.0

Abril de 2012

Danny

1.3

8.0

Outubro de 2012

Dylan

1.4

9.0

Abril de 2013

Dora

1.5

10.0

Outubro de 2013

Daisy

1.6

11.0

Abril de 2014

Dizzy

1.7

12.0

Outubro de 2014

Fido

1.8

13.0

Abril de 2015

Jethro

2.0

14.0

Outubro de 2015

Krogoth

2.1

15.0

Abril de 2016

Openembedded – Estrutura Simplificada

O Yocto Project é baseado no Openembedded, que se caracteriza como sendo um conjunto de metadados para execução de build e suas dependências através do Bitbake, e pode ser representado  simplificadamente de acordo com a figura 3.

Figura 3 – Estrutura Simplificada do Yocto Project

Onde:

Poky

O Poky é uma Distribuição e um Sistema de Build de Referência do Yocto Project. É considerado como sendo o seu alicerce com os seguintes componentes principais:

Toolchains e Cross Compilers

C Libraries

Diversidade de Pacotes

Apenas no core estão disponíveis mais de 900 receitas de pacotes. Podemos destacar alguns:

Documentação e Grupos de discussão

No site do projeto é disponibilizado um set completo de documentação do Yocto e também separado por categorias de conteúdo.  Além disso, existem diversos grupos de e-mail de discussão para envio de patches, resolução de problemas, novas implementações etc.

Conclusão

O Yocto Project é a solução atual mais completa eficiente para desenvolvimento de produtos eletrônicos baseados  em Linux. Com a liderança da Linux Foundation e o suporte de grandes empresas do setor tem se tornado um padrão na indústria.

No próximo post da série vamos apresentar a arquitetura detalhada bem como os conceitos e definições.