Este artigo tem o intuito de esclarecer, ou pelo menos informar, qual e o real valor de uma distribuicao Linux comercial para o desenvolvimento de um novo produto.Este artigo tem o intuito de esclarecer, ou pelo menos informar, qual e o real valor de uma distribuicao Linux comercial para o desenvolvimento de um novo produto.Nao pretendo neste artigo argumentar entre o desenvolvimento de uma distribuicao comercial em funcao de uma distribuicao realizada por equipes internas de desenvolvimento. Pretendo abordar este tema em um outro artigo.O objetivo aqui neste artigo e ilustrar a principal diferenca entre uma distribuicao Linux comercial em relacao a um BSP fornecido por um fabricante de System On Chip (SoC).Quando um fabricante desenvolve um novo processador (ou SoC), ele tem interesse com que os engenheiros desenvolvam rapidamente novas solucoes com este novo produto recem-lancado. Para isso, o fabricante deve realizar dois trabalhos: o desenvolvimento de uma placa reference-design, na qual os novos projetos serao construidos a partir deste projeto original; e uma distribuicao Linux inicial, na qual funciona perfeitamente para esta placa e de onde se tem os componentes principais para desenvolvimento do software aplicativo que sera o produto propriamente dito.Acredito que a questao do hardware de reference-design e bem resolvida. A empresa compra o hardware e realiza o download do material de projeto, que permite o projeto do novo hardware. Se o fabricante do reference-design fornecer modulos (System On Modules - SOM), o trabalho de projeto e ainda mais simplificado.Porem, no que se refere ao BSP (Board Support Package), a questao e um pouco mais complexa. Resumidamente, o BSP e um pacote que contem os seguintes elementos:* Toolchain - compilador capaz de gerar os binarios para o sistema embarcado* Bootloader - previamente preparado para inicializar a placa com a CPU apropriada* Kernel do Linux - adaptado especificamente para atender as especificacoes do reference-design* Sistema de arquivos - distribuicao Linux pre-preparadaA partir destes conceitos, aparente a questao de infra-estrutura de software esta minimamente resolvida.Na grande maioria dos casos, o BSP inicial serve para o desenvolvimento de um prototipo. Esta solucao nao e necessariamente apropriada para uma aplicacao final. E a razao para isso sao os requisitos que o produto exige. Sao requisitos de hardware e nao de produto. Sao questoes do tipo:* Qual e o tempo de boot necessario para o sistema?* Qual e a quantidade maxima de memoria do produto? Flash? Ram?* Quais sao os componentes de acessibilidade ao sistema? Web server? Telnet? SSH? Nada disso?* O Linux sera executado a partir da RAM? Existe arquivos salvos com persistencia?* Quais os drivers que serao necessarios? Quais protocolos? Quais nao serao usados?Um BSP fornecido por um fabricante nao atende a estas necessidades. O BSP fornecido pelos fabricantes devem ter um carater generico, de maneira a permitir a implementacao rapida de diferentes solucoes, que abrange todos os possiveis cenarios de desenvolvimento de aplicacoes para os quais o SoC foi concebido. E, para ajustes especificos, dificilmente o fabricante dara o suporte necessario para personalizacao.A explicacao para o nao-suporte e o fato de o BSP ser um ponto de partida para realizacao