Musl
1. 개요
Musl은 POSIX 2008 및 C11 표준과 호환되는 C 표준 라이브러리이다. 리눅스, BSD, glibc 함수를 구현하며, 안정적인 ABI를 가진 단일 파일 동적 런타임과 정적 링킹을 지원한다. 유니코드 12.1.0을 지원하며, 메모리 할당 성능을 개선했다. musl은 정적 링킹, 경쟁 상태 회피 등을 통해 실시간 품질의 견고성을 갖도록 설계되었다. Alpine Linux, OpenWrt, Void Linux 등 여러 리눅스 배포판에서 표준 C 라이브러리로 사용되며, glibc 바이너리는 gcompat 등을 사용하여 musl 기반 배포판에서 실행할 수 있다.
이미지 준비중입니다.
| 이름 | musl |
|---|---|
| 개발자 | 리치 펠커 (dalias) 및 다른 개발자 |
| 배포일 | 2011년 2월 11일 |
| 최신 배포 버전 | 1.2.5 |
| 최신 배포일 | 2024년 3월 1일 |
| 운영체제 | 리눅스 2.6 이상 |
| 플랫폼 | x86 x86-64 ARM loongarch64 MIPS Microblaze PowerPC powerpc64 x32 RISC-V OpenRISC s390x SuperH |
| 장르 | C 표준 라이브러리 임베디드 리눅스 Linux for mobile devices |
| 라이선스 | MIT 라이선스 |
| 웹사이트 | musl.libc.org |
-
리눅스 API -
와인 (소프트웨어)
와인(Wine)은 유닉스 계열 운영체제에서 윈도우 응용 프로그램을 실행하기 위한 호환성 계층으로, 윈도우 API를 직접 구현하여 윈도우 프로그램이 리눅스, macOS 등에서 실행되도록 지원하며, 여러 기업의 후원을 받아 꾸준히 발전해왔다. -
리눅스 API -
OpenAL
OpenAL은 3차원 오디오를 위한 크로스 플랫폼 API로, 소스 객체, 오디오 버퍼, 리스너를 사용하여 3차원 공간에서 소리를 구현하며 다양한 운영 체제와 하드웨어를 지원한다. -
리눅스 커널 인터페이스 -
장치 파일
-
리눅스 커널 인터페이스 -
리눅스 기본 규격
리눅스 기본 규격(LSB)은 리눅스 배포판 간 호환성 증진을 목표로 하는 표준으로, 다양한 발전을 거쳤으나 비판과 제한적인 적용 사례가 있다. -
C로 작성된 자유 소프트웨어 -
PostgreSQL
PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다. -
C로 작성된 자유 소프트웨어 -
김프
김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
2. 특징
musl은 POSIX:2008 사양 및 C99를 준수하며, 널리 사용되는 대부분의 비표준 리눅스, BSD, glibc 함수도 구현되어 있다.
버전 1.2.0은 유니코드 12.1.0을 지원하며(glibc보다 더 적합하고 엄격함), 버전 1.2.1에서는 새로운 'mallocng' malloc 구현을 통해 메모리 할당 성능을 개선했다.
musl을 표준 C 라이브러리로 사용할 수 있는 리눅스 배포판에는 Alpine Linux, Dragora GNU/Linux-Libre, Gentoo Linux, Sabotage, Morpheus Linux 및 Void Linux영어 등이 있다. glibc에 링크된 바이너리의 경우, gcompat을 사용하면 musl 기반 배포판에서 실행할 수 있다.
2.1. 성능 및 안정성
musl은 효율적인 정적 링킹을 허용하고 경쟁 상태, 자원 고갈 시 내부 실패, 기존 구현체에서 보이는 그 밖의 다양한 좋지 않은 최악의 동작들을 회피함으로써 실시간 품질의 견고성을 보유하기 위해 처음부터 새로 설계되었다. 동적 런타임은 안정적인 ABI를 가진 단일 파일로, 경합 없는 업데이트를 허용하며, 정적 연결 지원을 통해 애플리케이션을 상당한 크기 오버헤드 없이 단일 휴대용 바이너리로 배포할 수 있다.