Ստանդարտ C գրադարան PicoLibc 1.1 հասանելի է

Քեյթ Փաքարդ, ակտիվ մշակող Debian, X.Org նախագծի ղեկավարը և բազմաթիվ X ընդլայնումների ստեղծողը, այդ թվում՝ XRender-ի, XComposite-ի և XRandR-ի, ներկայացրեց նոր ստանդարտ C գրադարանի թողարկում PicoLibc 1.1, մշակվել է սահմանափակ հիշողություն և օպերատիվ հիշողություն ունեցող ներդրված սարքերի վրա օգտագործելու համար: Մշակման ընթացքում կոդի մի մասը փոխառվել է գրադարանից: newlib Cygwin նախագծից և AVR Libc, մշակված Atmel AVR միկրոկոնտրոլերների համար։ PicoLibc կոդը տարածվում է BSD լիցենզիայի ներքո: Աջակցվում է ARM (32-բիթ), i386, RISC-V, x86_64 և PowerPC ճարտարապետությունների համար նախատեսված գրադարանային հավաքածու:

Քեյթ Փաքարդը սկսեց այն մշակել, երբ չկարողացավ գտնել Libc-ի պատշաճ տարբերակ, որը կարող էր օգտագործվել փոքր օպերատիվ հիշողությամբ ներդրված սարքերի վրա: Նախագիծը մշակման փուլում էր անցյալ տարվանից: Առաջին փուլում նախագիծը newlib-ի տարբերակ էր, որի stdio գործառույթները փոխարինվեցին avrlibc-ի կոմպակտ տարբերակով (newlib-ում stdio-ն բավարար չէր իր բարձր ռեսուրսների սպառման պատճառով): Քանի որ Քեյթի ներկայիս գործունեությունը կապված է RISC-V ճարտարապետության հետ մշտական ​​աշխատանքի և ներդրված սարքերի համար գործիքների մշակման հետ, նա վերջերս վերանայեց libc իրականացումների վիճակը և եկավ այն եզրակացության, որ փոքր-ինչ կատարելագործմամբ newlib-ի և avrlibc-ի համադրությունը կարող է դառնալ լավ ունիվերսալ լուծում: Սկզբում նախագիծը մշակվել է «newlib-nano» անվամբ, բայց Newlib գրադարանի հետ շփոթությունից խուսափելու համար այն վերանվանվեց PicoLibc:

Իր ներկայիս տեսքով Picolibc-ում արդեն աշխատանքներ են տարվել BSD լիցենզիայի ներքո չմատակարարված ամբողջ կոդը հեռացնելու համար (այս կոդը չի օգտագործվել ներդրված սարքերի համար կառուցելիս), ինչը զգալիորեն պարզեցրել է նախագծի լիցենզիայի հետ կապված իրավիճակը։ Տեղական թելերի իրականացումը «struct _reent»-ից տեղափոխվել է TLS մեխանիզմի (thread-local storage)։ Stdio-ի կոմպակտ տարբերակը, որը փոխառված է avrlibc գրադարանի կոդից, ակտիվանում է լռելյայնորեն (ATmel-ին հատուկ ասեմբլերային ներդիրները վերաշարադրվում են C լեզվով)։ Ասեմբլերի համար օգտագործվում է Meson գործիքակազմը, որը թույլ է տալիս չկապվել newlib ասեմբլերի սկրիպտների հետ և պարզեցնել newlib-ից փոփոխությունների փոխանցումը։ Ավելացվում է նախնականացման կոդի պարզեցված տարբերակը (crt0), որը կցվում է կատարվող ֆայլին և կատարվում է նախքան կառավարումը main() ֆունկցիային փոխանցելը։

Picolibc 1.1 տարբերակում.

  • Ավելացվեց օժանդակ գրադարան՝ տեխնոլոգիային աջակցելու համար »կիսահոսթինգ«Թույլ տալով կոդի գործարկվող վրիպազերծիչ կամ էմուլյատոր միջավայրում օգտագործել հյուրընկալող համակարգի I/O մեխանիզմները.
  • Համակարգերի համար, որոնք աջակցում են բաց, փակել, կարդալ և գրել համակարգային զանգեր, tinystdio-ն ավելացնում է ստանդարտացված POSIX stdio I/O ինտերֆեյսներ, ներառյալ fopen և fdopen ֆունկցիաները, ինչպես նաև stdin/stdout/stderr-ի միացումներ POSIX-ով սահմանված ֆայլերի նկարագրիչներին.
  • Վերջերս newlib կոդային բազայից պորտացված են։ Ներառյալ libm stub-ները։ fenv.h, որը կարող է օգտագործվել համակարգերի վրա՝ առանց լողացող կետի աջակցության;
  • Ավելացվել է ARM և RISC-V համակարգերի համար picolibc-ով «Բարև աշխարհ» հավելվածի կառուցման օրինակ։
  • Հեռացվել են newlib, libm և mathfp դիրեկտորիաները, որոնք պարունակում էին չօգտագործված փորձնական կոդ:

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster