PicoLibc чектелген ресурстар менен камтылган тутумдар үчүн C китепканасы

Камтылган-C-

Кит Пакард активдүү Debian иштеп чыгуучусу жана ал ошондой эле X.Org долбоорунун жетекчиси жана ошондой эле жаратуучу көптөгөн X кеңейтүүлөрүнүн, анын ичинде XRender, XComposite жана XRandR. PicoLibc - анын дагы бир эмгеги жана бул C китепканасы камтылган түзмөктөрдө колдонуу үчүн иштелип чыккан чектелген ресурстар менен (башкача айтканда, алардын туруктуу сактагыч мейкиндиги жана оперативдик эс тутуму аз). Иштеп чыгуу учурунда кээ бир коддор Cygwin жана AVR Libc долбоорунун Atmel AVR микроконтроллерлери үчүн иштелип чыккан newlib китепканасынан алынган.

Кит Пакард аз иштелип чыккан RAM орнотулган түзмөктөрдө колдонула турган Libcтын татыктуу нускасын таба албай, иштеп баштадык. Долбоор өткөн жылдан бери иштелип жатат. Биринчи этапта, Долбоор жаңы вариант болгон, анда stdio функциялары avrlibcтин чакан версиясы менен алмаштырылган (stdio in newlib ресурстарды көп колдонууга ылайыкташтырылган эмес).

Кытайдын учурдагы ишмердүүлүгү RISC-V архитектурасы жана камтылган шаймандар үчүн шаймандарды иштеп чыгуу боюнча жүрүп жаткан иштерге байланыштуу болгондуктан, жакында libc ишке ашырылышынын абалын текшерди y жыйынтыкталды эмне жөнүндө, бир аз өзгөрүү менен, newlib менен avrlibc айкалышы жакшы универсалдуу чечим болушу мүмкүн. Башында, долбоор "newlib-nano" деген ат менен иштелип чыккан, бирок Newlib китепканасы менен чаташпаш үчүн, ал PicoLibc деп өзгөртүлгөн.

PicoLibc жөнүндө

Учурдагы формасында, Picolibc буга чейин BSD лицензиясында берилбеген бардык коддорду алып салуу боюнча иштерди жүргүзгөн (Бул код камтылган түзмөктөр үчүн жамаатта колдонулган эмес), бул долбоордун лицензиясындагы кырдаалды кыйла жөнөкөйлөтүп жиберген.

Жиптин жергиликтүү жүзөгө ашырылышы 'struct _reent' дан TLS (thread local storage) механизмине которулду. Stdio компакт-нускасы, avrlibc китепканасынын кодунан алынган демейки шартта иштетилген (ATmelге тиешелүү ассемблердин кыстармалары С тилинде кайра жазылат).

Tools Мезон компиляция үчүн колдонулат, эмне скрипттерди тиркөөгө жана newlibден өзгөртүүлөрдү өткөрүп берүүнү жөнөкөйлөтпөөгө мүмкүндүк берет. Баштапкы коддун жөнөкөйлөтүлгөн версиясы (crt0) кошулуп, аткарылуучу файлга тиркелип, башкарууну main () функциясына өткөрүп бергенге чейин аткарылды.

PicoLibc булагы коду BSD лицензиясы жана Китепкана ARM (32-бит), i386, RISC-V, x86_64 жана PowerPC архитектураларын колдойт.

PicoLibc 1.1дин жаңы версиясы жөнүндө

Жакында PicoLibc 1.1дин жаңы версиясынын чыгарылышын сунуштадым, анда жарым хостинг технологиясын колдоо үчүн жардамчы китепкана кошулду, Мүчүлүштүктөрдү оңдоочу же эмулятор чөйрөсүндө иштеп жаткан кодду хост тутумунан киргизүү / чыгаруу механизмдерин колдонууга мүмкүндүк берген А.

Ачуу, жабуу, окуу жана жазуу тутумунун чалууларын колдогон тутумдар үчүн tinystdio стандартташтырылган POSIX I / O интерфейстерин кошот, анын ичинде fopen жана fdopen функциялары, ошондой эле stdin / stdout / stderr файлдарынын POSIX тарабынан аныкталган файл дескрипторлору менен байланышы.

  • Акыркы өзгөрүүлөр newlib код базасынан жүргүзүлдү. Эсептөө колдоосу жок тутумдарда колдонула турган fenv.h үчүн кошумча libm стабдары.
  • Колдонулбаган эксперименталдык коддорду камтыган newlib, libm жана mathfp каталогдорун алып салуудан тышкары, ARM жана RISC-V тутумдары үчүн picolibc менен Hello World тиркемесинин компиляция мисалы кошулду.

Picolibc колдонууну баштаңыз

Picolibc менен иштөөнү баштоо үчүн, Picolibc GCC колдонуп Linux хосттогу ар кандай аппараттык платформаларды топтоо үчүн meson build тутумун колдоноорун билишиңиз керек. Ошондуктан, аларда Python 3 жана Ninja орнотулгандан тышкары, өнүгүү чөйрөсүнүн бир бөлүгү катары мезон болушу керек. Бул үчүн анын колдонмосу менен таанышууга болот Төмөнкү шилтемеде. 

Акыр-аягы, Picolibc кодун алуу үчүн, аны төмөнкү шилтемеден таба аласыз, ал жерден таба аласыз керектүү документтер. 

Же ошол эле жол менен алар кеңеше алышат тордон тапкан төмөнкү колдонмо жана толук маалыматка ээ.


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

Комментарий биринчи болуп

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.