What is MUSL? What are the pros of someone carrying it on my laptop?

Asked

Viewed 896 times

10

I’m interested in the pros that this can bring to my laptop.

1 answer

14


To musl (whose name is written in lowercase on the official page) is a Standard library of C. According to its author, it aims to be a libc clean, standard and efficient.

Your target OS is the Linux 2.6, and is officially available on platforms i386, x86_64, arm, mips, microblaze and powerpc. Has experimental support for other architectures, listed on the official website.

One of the advantages of its use in mobile is its size and ability to compete. Another very important point for developers of commercial applications is the fact that it uses the mit license, in general more permissive than the glibc that is LGPL, in particular, allowing its use in closed applications also.

See a brief comparison with glibc:

COMPARAÇÃO DE TAMANHO                musl            glibc
----------------------------------   -------------   -----------------
Coleção de bibliotecas estáticas   | 426k          | 2.0M
Coleção de bibliotecas dinâmicas   | 527k          | 7.9M
Menor executável C                 | 1.8k          | 662k
“hello” estático (com printf)      | 13k           | 662k

COMPORTAMENTO EM EXAUSTÃO            musl            glibc
----------------------------------   -------------   -----------------
Armazenamento Thread-local         | reporta falha | aborta
SIGEV_THREAD timers                | não falha     | perda de overruns
pthread_cancel                     | não falha     | aborta
regcomp e regexec                  | reporta falha | quebra
fnmatch                            | não falha     | reporta falha
Família printf                     | não falha     | reporta falha
Família strtol                     | não falha     | não falha

COMPARAÇÃO DE RECURSOS               musl            glibc
----------------------------------   -------------   -----------------
API de threads C11                 | sim           | não
agendamento de processos POSIX     | apenas stub   | incorreto
Localedef POSIX                    | não           | sim
páginas de código 8 bits legadas   | não           | lento, via gconv
Páginas de código CJK legadas      | não           | lento, via gconv
UTF-8 multibyte                    | nativo;       | lento, via gconv;
                                   | 100% conforme | não conforme
Conversão de caracteres Iconv      | a maior parte | o básico
                                   | dos encodings |
extensão de transliteração Iconv   | não           | sim
Openwall-style TCB shadow          | sim           | não
Sun RPC, NIS                       | não           | sim
Profiling Gmon                     | não           | sim
recursos de debug                  | não           | sim

(see the link to the original table at the end of the reply)


According to the Wikipedia en, to musl was written from the ground up, to enable static "linkage" with robustness for Altime applications, avoiding running conditions and resource exhaustion present in the most common implementations so far.

The Runtime is a single file, with stable binary interface, allowing deploy with the main application in a single executable without swelling its final size.

The project claims to be compatible with POSIX 2008 and C11. In 2015 it was the standard C library of the Alpine Linux distros, Dragora 3, Openwrt, Sabotage, Morpheus Linux and an option on Void Linux.

Official website:

https://www.musl-libc.org/

Here we have a complete comparison with others libc, where the above table was extracted from:

http://www.etalabs.net/compare_libcs.html

  • 1

    It was much clearer, thank you for responding.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.