uClibc

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

uClibc
Тип системная библиотека
Операционная система 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 так и без него[2]. Библиотека поддерживает процессоры i386, x86-64, ARM (big/little endian), AVR32, Blackfin[en], H8300, m68k, MIPS (big/little endian), PowerPC, SuperH (big/little endian), SPARC и V850[en].

Среди реализаций libc, uclibc-ng поддерживает наибольшее количество процессорных платформ[3]. Например, ведется работа по добавлению китайской c-sky[4] и nds32[5].

uClibc-ng

В 2014 году разработчики OpenWRT объявили о создании форка библиотеки, назвав его uClibc-ng[6][7][8]. Они решили запустить форк после того, как на протяжении более чем двух лет не могли связаться с мейнтейнером.[9][10][11]. По состоянию на 2017 год этот форк продолжает выпускать релизы, используется в Buildroot[en][12], OpenADK, OpenWrt/Lede для архитектуры ARC, в системах NDS32, Xtensa, Blackfin. Ранее использовавший uclibc мини-дистрибутив Alpine Linux и OpenWrt/Lede переключились на musl; OpenEmbedded вместо uclibc позволяет использовать glibc или musl[3].

Между версиями нарушалась двоичная совместимость. Начиная с 1.0.18 версии все библиотеки были объединены в одну по аналогии с musl[3].

Недостатки

Библиотека не реализует некоторых разделов стандартных UNIX libc, в частности функциональность libnsl и NSS. Также не поддерживает версионирование символов[3]

См. также

  • Contiki, ОС для встраиваемых систем
  • dietlibc, маленькая альтернативная реализация Стандартной библиотеки C
  • Newlib, стандартная библиотека языка программирования C для встраиваемых систем
  • Eglibc, вариант библиотеки glibc для встраиваемых систем.
  • musl

Примечания

  1. 15 May 2012, uClibc 0.9.33.2 Released. Архивировано 12 марта 2012 года.
  2. Choosing System C library Архивная копия от 23 октября 2018 на Wayback Machine, Khem Raj (Comcast) / Embedded Linux Conference Europe 2014 Düsseldorf Germany
  3. 3,0 3,1 3,2 3,3 uClibc today: Still makes sense Архивная копия от 23 октября 2018 на Wayback Machine / Embedded Linux Conference Europe 2017
  4. [http://web.archive.org/web/20181023195723/https://lwn.net/Articles/758778/ Архивная копия от 23 октября 2018 на Wayback Machine C-SKY(csky) Linux Kernel Port [LWN.net]]
  5. Архивированная копия (недоступная ссылка). Дата обращения: 23 октября 2018. Архивировано 23 октября 2018 года.
  6. uClibc-ng. uclibc-ng.org. Дата обращения: 11 июля 2015. Архивировано 10 апреля 2019 года.
  7. Embedded Linux system development Архивная копия от 23 октября 2018 на Wayback Machine / Bootlin, 2018 «uClibc-ng» (стр 71)
  8. Mastering Embedded Linux Programming — Chris Simmonds — Google Книги
  9. Brodkorb, Waldemar uClibc-ng. Список рассылки (20 July 2014). Дата обращения: 23 октября 2018.
  10. Petazzoni, Thomas uClibc-ng. Список рассылки (21 July 2014).
  11. Brodkorb, Waldemar uClibc-ng. Список рассылки (21 July 2014). Дата обращения: 23 октября 2018.
  12. Архивированная копия. Дата обращения: 23 октября 2018. Архивировано 23 октября 2018 года.

Ссылки