После двух лет разработки представлен релиз стандартной Си-библиотеки Musl 1.2.6, предоставляющей реализацию libc, которая подходит для применения как на стационарных ПК и серверах, так и на мобильных системах, сочетая полноценную поддержку стандартов (как в Glibc) с небольшим размером, низким потреблением ресурсов и высокой производительностью (как в uClibc, dietlibc и Android Bionic). Ол барлық қажетті C99 және POSIX 2008 интерфейстерін, сондай-ақ ішінара C11 қолдауын және көп ағынды бағдарламалауға (POSIX ағындары), жадты басқаруға және жергілікті қолдауға арналған кеңейтімдер жиынтығын қолдайды. Musl коды тегін MIT лицензиясы бойынша шығарылады.
Негізгі өзгерістер:
- POSIX-2024 стандартында енгізілген posix_getdents функциясы іске асырылды. Бұл функция ашық файл дескрипторымен байланысты каталогтың мазмұнын оқиды және ішкі каталогтар мен файлдар туралы ақпаратты posix_dent құрылымдарына орналастырады, бұл максималды өлшемді шектеу мүмкіндігін береді.
- Добавлена специфичная для Linux функция renameat2, предоставляющая средства для атомарной замены имён двух файлов (первый файл переименовывается во второй, а второй в первый). От renameat новая функция отличается наличием дополнительного флагового поля — без выставления флага поведение renameat2 полностью аналогично renameat, а при указании флага RENAME_NOREPLACE операция переименования не приводит к замене уже существующего файла.
- Loongarch64 жүйелері үшін ағынды жергілікті сақтаудағы айнымалыларға тиімді қол жеткізу үшін TLSDESC (Thread-Local Storage Descriptor) механизміне қолдау қосылды.
- vDSO көмегімен clock_gettime функциясы riscv32, riscv64, powerpc, powerpc64 және s390x архитектураларында оңтайландырылды. vDSO (виртуалды динамикалық ортақ объект) жүйелік шақыру өңдегішін ядродан пайдаланушы кеңістігіне жылжытуға мүмкіндік береді, бұл контексттік ауысуларды болдырмайды.
- Орындалу уақытындағы компиляторлардағы CPU мүмкіндіктерін анықтау үшін __getauxval символы жалпыға қолжетімді ABI-ге аударылды.
- iconv() функциясын пайдаланып EUC-KR кодтауынан UTF-8-ге арнайы жасалған мәтінді түрлендіру кезінде буфердің толып кетуіне әкелетін осалдық (CVE-2025-26519) түзетілді. Осалдық бір жылдан астам уақыт бұрын анықталды және шығарылымға дейін түзетілді.
- initgroups, getusershell, exit, atexit, strerror, isatty, hasmntopt және vdso функцияларындағы, сондай-ақ sched.h және shadow.h тақырып файлдарындағы үйлесімділік мәселелері шешілді.
- pwrite (O_APPEND мәселесі шешілді), mbnrtowcs (POSIX-2024 сәйкестігі ескерілді), strptim (POSIX-2024e сәйкестігі ескерілді) және inet_ntop (RFC 5952 сәйкестігі орнатылды) функцияларында спецификацияға сәйкестік жақсартылды.
Ақпарат көзі: opennet.ru
