Newlib — это реализация стандартной библиотеки C , предназначенная для использования во встроенных системах . Это совокупность нескольких частей библиотеки, все под лицензиями свободного программного обеспечения , что позволяет легко использовать их во встроенных продуктах.
Он был создан Cygnus Support как часть создания первых цепочек инструментов для перекрестной разработки GNU. В настоящее время его поддерживают разработчики Red Hat Джефф Джонстон и Коринна Виншен и он используется в большинстве коммерческих и некоммерческих портов GCC для встраиваемых систем, отличных от Linux.
В разделе «Системные вызовы» [2] документации Newlib описывается, как его можно использовать со многими операционными системами . Его основное использование — во встроенных системах, в которых отсутствует какая-либо операционная система; в этом случае он вызывает пакет поддержки платы , который может выполнять такие действия, как запись байта вывода в последовательный порт или чтение сектора с диска или другого устройства памяти.
Newlib включен в коммерческие дистрибутивы GCC от Atollic, CodeSourcery , Code Red, KPIT, Red Hat и других и получает поддержку от основных поставщиков архитектуры встроенных процессоров, таких как ARM и Renesas . Она используется в качестве стандартной библиотеки C в Cygwin , а также является одной из нескольких стандартных библиотек C для AmigaOS 4 .
С 2004 года [обновлять]KallistiOS, независимый SDK, ориентированный на Sega Dreamcast , использовал Newlib в качестве стандартной библиотеки C, поставляя ее со многими коммерческими играми на платформе. [3]
С 2007 года [обновлять]devkitARM и devkitPPC, наборы инструментов, предназначенные для самодельной разработки коммерческих игровых систем, включают Newlib в качестве библиотеки C. Open-R SDK для Sony AIBO также основан на Newlib поверх не-Unix Aperios.
С 2013 года [обновлять]Google Native Client SDK (NaCl) включает Newlib в качестве библиотеки C по умолчанию вместо glibc . [4]
В 2019 году Кейт Паккард выпустил Picolibc , [5] библиотеку, предлагающую стандартные API-интерфейсы библиотеки C, предназначенные для небольших встроенных систем с ограниченным объемом оперативной памяти и основанные на сочетании кода из Newlib и AVR Libc.