Keith Packard, um desenvolvedor ativo Debian, o líder do projeto X.Org e criador de muitas extensões X, incluindo XRender, XComposite e XRandR, lançamento da biblioteca C padrão , desenvolvido para uso em dispositivos incorporados com armazenamento permanente e RAM limitados. Durante o desenvolvimento, parte do código foi emprestada da biblioteca do projeto Cygwin e , desenvolvido para microcontroladores Atmel AVR. Código PicoLibc sob licença BSD. A montagem da biblioteca é suportada pelas arquiteturas ARM (32 bits), i386, RISC-V, x86_64 e PowerPC.
Inicialmente, o projeto foi desenvolvido sob o nome “newlib-nano” e tinha como objetivo retrabalhar algumas das funções de uso intensivo de recursos do Newlib, que eram problemáticas para uso em dispositivos embarcados com pouca RAM. Por exemplo, as funções stdio foram substituídas por uma versão compacta da biblioteca avrlibc. O código também foi limpo de componentes não licenciados pelo BSD não usados na compilação incorporada. Uma versão simplificada do código de inicialização (crt0) foi adicionada e a implementação de threads locais foi movida de 'struct _reent' para o mecanismo TLS (). O kit de ferramentas Meson é usado para montagem.
Na nova versão:
- Adicionada a capacidade de construir usando compilador .
- Adicionado suporte para o compilador Clang.
- O comportamento da função 'gama' foi alinhado com o comportamento do Glibc.
- A implementação nano-malloc garante que a memória retornada seja limpa.
- Melhor desempenho do nano-realloc, especialmente ao mesclar blocos livres e expandir o tamanho do heap.
- Adicionado um conjunto de testes para verificar o correto funcionamento do malloc.
- Suporte de plataforma aprimorado Windows и добавлена возможность сборки с использованием инструментария mingw.
- Em sistemas ARM, se disponível, o registro de hardware TLS (Thread-Local Storage) está habilitado.
Fonte: opennet.ru
