Se a newlib é tão boa para embarcados, por que não foi adotada pelo Android?

Conheça o Android 9 Pie
Android 9 Pie
 Escrevi ontem a noticia sobre um novo patch para a newlib que irá melhorar seu desempenho significativamente. A newlib foi adquirida pela Red Hat quando esta comprou a cygnus solution. Se buscarmos informações em vários sites, veremos como a newlib é bem mencionada por vários profissionais da área de embarcados.

 Daí, surge a questão:
 "Se newlib é a biblioteca mais indicada por muitos profissionais para embarcados, por que então criaram a Bionic para o Android?"
 A questão é um pouco mais complicada, e para isso temos que entender como a comunidade do Android é regida. A primeira coisa que temos que entender é que há uma política no Android de não haver aplicações sob GPL em seu user space e se houver, você não poderá utilizar o nome Android em seu sistema, vindo a ter que remover o nome Android de todo o sistema operacional que está fornecendo.

 Nesse caso, como quem rege o user space é a biblioteca C e a Bionic está sob clausula 2 da BSD (coisa que a Bionic herdou do freeBSD e do NetBSD uma vez que a Bionic é derivada de porções de bibliotecas dos dois sistemas), acho que fica claro o motivo se cruzarmos os fatos. A ideia por trás disso é evitar problemas futuros com o uso de GPL nas aplicações do Android; problemas que já ocorreram com outros projetos e empresas. Por conta desta politica, a maior parte de suas aplicações em user space estão sob licença Apache e algumas partes sob outras licenças como o próprio kernel que está sob GPL (lembrando, não há problema quanto ao kernel pois ele não atua no user space e sim no kernel space), seu terminal padrão que desde a versão 7 do sistema é o toybox está sob 0BSD e vale mencionar até o microkernel Fuschia roda no processo de boot do Android.

 Há um misto de tecnologias que são utilizadas no desenvolvimento do Android e expliquei neste vídeo aqui:


 E o que isso tudo tem a ver com a newlib? A newlib é uma biblioteca que possui um misto de licenças, sendo uma delas a GPL e com isso, acaba dificultando a adoção da newlib no Android. O que poderia ser feito nesse caso é utilizar as partes que não estejam sob GPL para a criação de algo novo ou até mesmo serem incorporadas a bionic.

 Honestamente eu espero verdade é que a bionic venha a ser substituída pela musl. Agora, se você trabalha em um projeto baseado no Android (uma distribuição baseada no Android) e não se importa quando ao uso do nome, aí tanto faz qual biblioteca e sob qual licença que vai rodar no user space, você só não poderá usar o nome Android. Podem haver outras implicações, mas essa é a maior.

Comente com o Facebook:

Nenhum comentário:

Postar um comentário

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (2) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (5) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (31) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (33) comp (1) compressores (7) container (8) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (2) desenvolvimento (98) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (91) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (13) DragonflyBSD (22) driver (2) dropbear (3) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (11) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (21) Funtoo Linux (13) games (94) garbage collector (1) gerenciadores de pacotes (4) glaucus (7) GOG (3) google (9) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (12) Intel (15) inteligencia artificial (2) IoT (1) ispconfig (1) jogos (38) kde (1) kernel (141) lançamento (64) leis (1) LFCS (1) libs (2) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) lkgr (1) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (172) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (6) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) ONLYOFFICE (1) open source (84) OpenBSD (7) OpenShift (1) oracle (1) os vários sabores de Linux (44) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (2) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (68) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (23) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (14) segurança digital (25) servidor web (2) servidores (3) shell (9) shell script (8) sistema operacional (25) skarnet (2) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (6) systemd (8) terminal (89) terminal de comandos (19) toca do tux (1) toybox (27) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (3) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (16) zsh (3)