PicoLibc 1.4.7 Standard C စာကြည့်တိုက် ဖြန့်ချိမှု

Keith Packard၊ တက်ကြွသော Debian developer၊ X.Org ပရောဂျက်၏ခေါင်းဆောင်နှင့် XRender၊ XComposite နှင့် XRandR အပါအဝင် X extensions များစွာကို ဖန်တီးသူ၊ ပုံနှိပ်ထုတ်ဝေ စံ C စာကြည့်တိုက်ကို ထုတ်ဝေသည်။ PicoLibc 1.4.7အမြဲတမ်းသိုလှောင်မှုနှင့် RAM အကန့်အသတ်ရှိသော မြှုပ်သွင်းထားသော စက်များတွင် အသုံးပြုရန်အတွက် တီထွင်ထုတ်လုပ်ထားသည်။ ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်း၊ ကုဒ်တစ်စိတ်တစ်ပိုင်းကို စာကြည့်တိုက်မှ ချေးယူခဲ့သည်။ newlib Cygwin ပရောဂျက်နှင့် AVR LibcAtmel AVR မိုက်ခရိုကွန်ထရိုလာများအတွက် ဖန်တီးထားသည်။ PicoLibc ကုဒ် ဖြန့်ဝေသည် BSD လိုင်စင်အောက်တွင်။ စာကြည့်တိုက်စည်းဝေးပွဲကို ARM (32-bit), i386, RISC-V, x86_64 နှင့် PowerPC ဗိသုကာများအတွက် ပံ့ပိုးထားသည်။

ကနဦးတွင်၊ ပရောဂျက်ကို “newlib-nano” ဟူသောအမည်ဖြင့် တီထွင်ခဲ့ပြီး RAM အနည်းငယ်ပါသော ကိရိယာများတွင် အသုံးပြုရန် ပြဿနာရှိသော Newlib ၏ အရင်းအမြစ်-အများသုံး လုပ်ဆောင်ချက်အချို့ကို ပြန်လည်လုပ်ဆောင်ရန် ရည်ရွယ်ခဲ့သည်။ ဥပမာအားဖြင့်၊ stdio လုပ်ဆောင်ချက်များကို avrlibc စာကြည့်တိုက်မှ သေးငယ်သောဗားရှင်းဖြင့် အစားထိုးထားသည်။ ထည့်သွင်းထားသော တည်ဆောက်မှုတွင် အသုံးမပြုသော BSD-လိုင်စင်မဟုတ်သော အစိတ်အပိုင်းများကိုလည်း ကုဒ်ကို ရှင်းထုတ်ထားပါသည်။ ကနဦးကုဒ် (crt0) ၏ ရိုးရှင်းသောဗားရှင်းကို ထည့်သွင်းထားပြီး၊ ဒေသခံစာတွဲများ၏ အကောင်အထည်ဖော်မှုကို 'struct _reent' မှ TLS ယန္တရားသို့ ရွှေ့ထားသည် (thread-local storage) Meson toolkit ကို တပ်ဆင်ခြင်းအတွက် အသုံးပြုပါသည်။

ထုတ်ဝေမှုအသစ်တွင်-

  • ထည့်သွင်းအသုံးပြု၍ တည်ဆောက်နိုင်မှု၊ သင်္ချာနည်းဖြင့် စိစစ်ထားသည်။ compiler CompCert.
  • Clang compiler အတွက် ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။
  • 'gamma' လုပ်ဆောင်ချက်၏ အပြုအမူသည် Glibc ၏ အပြုအမူနှင့် လိုက်လျောညီထွေဖြစ်စေသည်။
  • nano-malloc အကောင်အထည်ဖော်မှုသည် ပြန်လာသောမှတ်ဉာဏ်ကို ရှင်းရှင်းလင်းလင်းဖြစ်စေကြောင်း သေချာစေသည်။
  • အထူးသဖြင့် အခမဲ့လုပ်ကွက်များကို ပေါင်းစည်းပြီး အမှိုက်ပုံအရွယ်အစားကို ချဲ့ထွင်သောအခါတွင်၊ အထူးသဖြင့် nano-realloc ၏ စွမ်းဆောင်ရည်ကို မြှင့်တင်ထားသည်။
  • Malloc ၏မှန်ကန်သောလုပ်ဆောင်ချက်ကိုစစ်ဆေးရန် စမ်းသပ်မှုအစုံကို ပေါင်းထည့်ခဲ့သည်။
  • Windows ပလပ်ဖောင်းအတွက် ပိုမိုကောင်းမွန်သော ပံ့ပိုးကူညီမှုနှင့် mingw toolkit ကို အသုံးပြု၍ တည်ဆောက်နိုင်မှုတို့ကို ပေါင်းထည့်ခဲ့သည်။
  • ARM စနစ်များတွင် ရနိုင်လျှင် TLS (Thread-Local Storage) ဟာ့ဒ်ဝဲ မှတ်ပုံတင်ခြင်းကို ဖွင့်ထားသည်။

source: opennet.ru