معياري سي لائبريري PicoLibc 1.1 دستياب آهي

ڪيٿ پيڪارڊ، فعال ديبين ڊولپر، X.Org پروجيڪٽ جو اڳواڻ ۽ ڪيترن ئي ايڪس ايڪسٽينشن جو خالق، بشمول XRender، XComposite ۽ XRandR، متعارف ڪرايو هڪ نئين معياري سي لائبريري جو خلاصو PicoLibc 1.1محدود مقدار ۾ مستقل اسٽوريج ۽ رام سان شامل ٿيل ڊوائيسز تي استعمال لاءِ ترقي ڪئي وئي. ترقي دوران، ڪوڊ جو حصو لائبريري مان قرض ورتو ويو نيو ليب سائگون پروجيڪٽ کان ۽ AVR LibcAtmel AVR microcontrollers لاءِ ترقي ڪئي وئي. PicoLibc ڪوڊ طرفان ورهايل BSD لائسنس جي تحت. لائبريري اسيمبلي ARM (32-bit)، i386، RISC-V، x86_64 ۽ PowerPC آرڪيٽيڪچرز لاءِ سپورٽ ڪئي وئي آهي.

ڪيٿ پيڊارڊ ترقي شروع ڪئي بعد ۾ هڪ مهذب Libc آپشن ڳولڻ ۾ ناڪام ٿيڻ کانپوءِ جيڪو استعمال ڪري سگهجي ٿو ايمبيڊڊ ڊوائيسز تي ٿورڙي رام سان. اهو منصوبو گذريل سال کان ترقي ڪري رهيو آهي. پهرين مرحلي ۾، پروجيڪٽ نيو ليب جو هڪ قسم هو، اسٽيڊيو جا افعال جنهن ۾ avrlibc کان هڪ کمپیکٹ ورزن سان تبديل ڪيو ويو (نيو ليب ۾ اسٽيڊيو ان جي اعلي وسيلن جي استعمال لاءِ مناسب نه هو). جيئن ته ڪيٿ جي موجوده ڪم ۾ RISC-V آرڪيٽيڪچر سان جاري ڪم ۽ ايمبيڊڊ ڊوائيسز لاءِ ٽولنگ جي ترقي شامل آهي، هن تازو ئي libc جي عملن جي حالت جو جائزو ورتو ۽ ان نتيجي تي پهتو ته ٿورڙي ٽائيڪنگ سان، نيولب ۽ avrlibc جو ميلاپ هڪ سٺو عام مقصد ٿي سگهي ٿو. حل. شروعات ۾، پروجيڪٽ "نيوليب-نانو" جي نالي سان ترقي ڪئي وئي، پر نيولب لائبريري سان مونجهاري کان بچڻ لاء ان جو نالو PicoLibc رکيو ويو.

ان جي موجوده شڪل ۾، Picolibc اڳ ۾ ئي ڪم ڪري چڪو آهي سڀني ڪوڊ کي هٽائڻ لاء جيڪو BSD لائسنس تحت فراهم نه ڪيو ويو آهي (هي ڪوڊ استعمال نه ڪيو ويو جڏهن ايمبيڊڊ ڊوائيسز لاء تعمير ڪيو ويو)، جنهن منصوبي جي لائسنس سان صورتحال کي آسان بڻائي ڇڏيو آهي. مقامي اسٽريمز جي نفاذ کي 'struct _reent' مان منتقل ڪيو ويو آهي TLS ميڪانيزم (موضوع- مقامي اسٽوريج). stdio جو ڪمپيڪٽ ورزن، avrlibc لائبريري ڪوڊ مان قرض ورتو ويو آهي، ڊفالٽ طور تي چالو ڪيو ويو آهي (ATmel-specific assembler inserts C ۾ ٻيهر لکيا ويا آهن). ميسن ٽول ڪٽ اسيمبليءَ لاءِ استعمال ڪيو ويو، جنهن اهو ممڪن ڪيو ته نيو لِب اسمبلي اسڪرپٽ سان ڳنڍجي نه وڃي ۽ نيو لِب مان تبديلين جي منتقلي کي آسان بڻائي سگهجي. شروعاتي ڪوڊ (crt0) جو هڪ آسان نسخو شامل ڪيو ويو، قابل عمل فائل سان منسلڪ ڪيو ويو ۽ ڪنٽرول کي مکيه () فنڪشن ۾ منتقل ٿيڻ کان اڳ عمل ڪيو ويو.

Picolibc ورزن 1.1 ۾:

  • ٽيڪنالاجي کي سپورٽ ڪرڻ لاءِ معاون لائبريري شامل ڪئي وئي "نيم هوسٽنگ"ڊيبگر يا ايموليٽر ماحول ۾ هلندڙ ڪوڊ کي ميزبان سسٽم جي I/O ميڪانيزم کي استعمال ڪرڻ جي اجازت ڏئي ٿو؛
  • سسٽم لاءِ جيڪي سسٽم ڪالن کي کولڻ، بند ڪرڻ، پڙهڻ ۽ لکڻ جي حمايت ڪن ٿا، tinystdio معياري POSIX stdio I/O انٽرفيس شامل ڪري ٿو، جنهن ۾ fopen ۽ fdopen فنڪشن، گڏوگڏ stdin/stdout/stderr کي POSIX-defined فائل ڊسڪرپٽرز کي پابند ڪرڻ؛
  • نيو ليب ڪوڊ بيس مان تازيون تبديليون ڪيون ويون آهن. شامل ڪيل libm stubs لاءِ fenv.h، جيڪو فلوٽنگ پوائنٽ سپورٽ کان سواءِ سسٽم تي استعمال ڪري سگھجي ٿو؛
  • ARM ۽ RISC-V سسٽم لاءِ picolibc سان ”هيلو ورلڊ“ ايپليڪيشن ٺاهڻ جو هڪ مثال شامل ڪيو ويو؛
  • نيو ليب، libm ۽ mathfp ڊاريڪٽريز کي هٽايو، جنهن ۾ غير استعمال ٿيل تجرباتي ڪوڊ شامل هئا.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو