uClibc (uClibc)
uClibc | |
---|---|
| |
Тип | системная библиотека |
Написана на | Си[2] |
Операционная система | Linux |
Последняя версия | 0.9.33.2[1] (15 мая 2012) |
Лицензия | GNU LGPL |
Сайт | uclibc.org |
uClibc — стандартная библиотека языка программирования C, предназначенная для встраиваемых систем на базе Linux. uClibc была разработана для поддержки uClinux (специальная редакция ядра Linux, способная работать без блока управления памятью [MMU]) и таким образом подходящая для микроконтроллеров). Буква u в названии есть адаптация греческой буквы µ, означающей «микро».
Координатор проекта — Erik Andersen, другим активным участником является Manuel Novoa III.
uClibc — свободное программное обеспечение, распространяемое под GNU LGPL.
С 2014 года развитие библиотеки продолжается в форке uClibc-ng.
Возможности
[править | править код]uClibc может запускаться как на системах с MMU так и без него[3]. Библиотека поддерживает процессоры i386, x86-64, ARM (big/little endian), AVR32, Blackfin[англ.], H8300, m68k, MIPS (big/little endian), PowerPC, SuperH (big/little endian), SPARC и V850[англ.].
Среди реализаций libc, uclibc-ng поддерживает наибольшее количество процессорных платформ[4]. Например, ведется работа по добавлению китайской c-sky[5] и nds32[6].
uClibc-ng
[править | править код]В 2014 году разработчики OpenWRT объявили о создании форка библиотеки, назвав его uClibc-ng[7][8][9]. Они решили запустить форк после того, как на протяжении более чем двух лет не могли связаться с мейнтейнером.[10][11][12]. По состоянию на 2017 год этот форк продолжает выпускать релизы, используется в Buildroot[англ.][13], OpenADK, OpenWrt/Lede для архитектуры ARC, в системах NDS32, Xtensa, Blackfin. Ранее использовавший uclibc мини-дистрибутив Alpine Linux и OpenWrt/Lede переключились на musl; OpenEmbedded вместо uclibc позволяет использовать glibc или musl[4].
Между версиями нарушалась двоичная совместимость. Начиная с 1.0.18 версии все библиотеки были объединены в одну по аналогии с musl[4].
Недостатки
[править | править код]Библиотека не реализует некоторых разделов стандартных UNIX libc, в частности функциональность libnsl и NSS. Также не поддерживает версионирование символов[4]
См. также
[править | править код]- Contiki, ОС для встраиваемых систем
- dietlibc, маленькая альтернативная реализация Стандартной библиотеки C
- Newlib, стандартная библиотека языка программирования C для встраиваемых систем
- Eglibc, вариант библиотеки glibc для встраиваемых систем.
- musl
Примечания
[править | править код]- ↑ 15 May 2012, uClibc 0.9.33.2 Released . Архивировано 12 марта 2012 года.
- ↑ The uclibc Open Source Project on Open Hub: Languages Page — 2006.
- ↑ Choosing System C library Архивная копия от 23 октября 2018 на Wayback Machine, Khem Raj (Comcast) / Embedded Linux Conference Europe 2014 Düsseldorf Germany
- ↑ 1 2 3 4 uClibc today: Still makes sense Архивная копия от 23 октября 2018 на Wayback Machine / Embedded Linux Conference Europe 2017
- ↑ [1]Архивная копия от 23 октября 2018 на Wayback Machine C-SKY(csky) Linux Kernel Port [LWN.net]
- ↑ Архивированная копия . Дата обращения: 23 октября 2018. Архивировано из оригинала 23 октября 2018 года.
- ↑ uClibc-ng . uclibc-ng.org. Дата обращения: 11 июля 2015. Архивировано 10 апреля 2019 года.
- ↑ Embedded Linux system development Архивная копия от 23 октября 2018 на Wayback Machine / Bootlin, 2018 «uClibc-ng» (стр 71)
- ↑ Mastering Embedded Linux Programming — Chris Simmonds — Google Книги
- ↑ Brodkorb, Waldemar (2014-07-20). "uClibc-ng". openwrt-devel (Mailing list). Архивировано 21 июня 2017. Дата обращения: 23 октября 2018.
- ↑ Petazzoni, Thomas (2014-07-21). "uClibc-ng". uclibc (Mailing list). Архивировано 21 июня 2017.
- ↑ Brodkorb, Waldemar (2014-07-21). "uClibc-ng". openwrt-devel (Mailing list). Архивировано 21 июня 2017. Дата обращения: 23 октября 2018.
- ↑ Архивированная копия . Дата обращения: 23 октября 2018. Архивировано 23 октября 2018 года.
Ссылки
[править | править код]- Re: Does Newlib support mmu-less CPUs?, 2006 (англ.)
- Сайт форка uClibc-ng (англ.)
Для улучшения этой статьи желательно:
|