සම්මත C පුස්තකාලය PicoLibc 1.1 ඇත

කීත් පැකාර්ඩ්, ක්‍රියාකාරී ඩේබියන් සංවර්ධක, X.Org ව්‍යාපෘතියේ නායකයා සහ XRender, XComposite සහ XRandR ඇතුළු බොහෝ X දිගුවල නිර්මාතෘ, හඳුන්වා දී ඇත නව සම්මත C පුස්තකාලයක් නිකුත් කිරීම PicoLibc 1.1, සීමිත ස්ථිර ගබඩා සහ RAM සහිත කාවැද්දූ උපාංගවල භාවිතය සඳහා සංවර්ධනය කර ඇත. සංවර්ධනය අතරතුර, කේතයේ කොටසක් පුස්තකාලයෙන් ණයට ගන්නා ලදී newlib Cygwin ව්‍යාපෘතියෙන් සහ AVR Libc, Atmel AVR ක්ෂුද්‍ර පාලක සඳහා සංවර්ධනය කරන ලදී. PicoLibc කේතය විසින් බෙදා හරිනු ලැබේ BSD බලපත්‍රය යටතේ. පුස්තකාල එකලස් කිරීම ARM (32-bit), i386, RISC-V, x86_64 සහ PowerPC ගෘහ නිර්මාණ සඳහා සහය දක්වයි.

කීත් පැකාර්ඩ් සංවර්ධනය ආරම්භ කළේ කුඩා RAM සහිත කාවැද්දූ උපාංගවල භාවිතා කළ හැකි යහපත් Libc විකල්පයක් සොයා ගැනීමට නොහැකි වීමෙන් පසුවය. මෙම ව්‍යාපෘතිය පසුගිය වසරේ සිට සංවර්ධනය වෙමින් පවතී. පළමු අදියරේදී, ව්‍යාපෘතිය newlib හි ප්‍රභේදයක් වූ අතර, stdio හි කාර්යයන් avrlibc වෙතින් සංයුක්ත අනුවාදයකින් ප්‍රතිස්ථාපනය කරන ලදී (newlib හි stdio එහි ඉහළ සම්පත් පරිභෝජනය සඳහා සුදුසු නොවේ). කීත්ගේ වර්තමාන කාර්යයට RISC-V ගෘහනිර්මාණ ශිල්පය සහ කාවැද්දූ උපාංග සඳහා මෙවලම් සංවර්ධනය කිරීම සම්බන්ධ වන බැවින්, ඔහු මෑතකදී libc ක්‍රියාත්මක කිරීමේ තත්ත්වය සමාලෝචනය කළ අතර, කුඩා tweaking සමඟ, newlib සහ avrlibc සංයෝජනය හොඳ පොදු අරමුණක් විය හැකි බව නිගමනය කළේය. විසඳුමක්. මුලදී, ව්‍යාපෘතිය "newlib-nano" නමින් සංවර්ධනය වූ නමුත් Newlib පුස්තකාලය සමඟ ඇති වියවුල් වළක්වා ගැනීම සඳහා එය PicoLibc ලෙස නම් කරන ලදී.

එහි වත්මන් ස්වරූපයෙන්, Picolibc විසින් BSD බලපත්‍රයක් යටතේ සපයා නොමැති සියලුම කේතයන් ඉවත් කිරීමට දැනටමත් කටයුතු කර ඇත (මෙම කේතය කාවැද්දූ උපාංග සඳහා තැනීමේදී භාවිතා නොකළ), එමඟින් ව්‍යාපෘතිය සඳහා බලපත්‍රය සමඟ තත්වය සැලකිය යුතු ලෙස සරල කර ඇත. දේශීය ප්‍රවාහ ක්‍රියාත්මක කිරීම 'struct _reent' සිට TLS යාන්ත්‍රණය වෙත ගෙන ගොස් ඇත (නූල්-දේශීය ගබඩාව) avrlibc පුස්තකාල කේතයෙන් ණයට ගත් stdio හි සංයුක්ත අනුවාදය පෙරනිමියෙන් සක්‍රිය කර ඇත (ATmel-විශේෂිත එකලස් කිරීමේ ඇතුළු කිරීම් C වලින් නැවත ලියා ඇත). Meson මෙවලම් කට්ටලය එකලස් කිරීම සඳහා භාවිතා කරන ලද අතර, එමඟින් newlib එකලස් කිරීමේ ස්ක්‍රිප්ට් වලට සම්බන්ධ නොවී සිටීමට සහ newlib වෙතින් වෙනස්කම් මාරු කිරීම සරල කිරීමට හැකි විය. ආරම්භක කේතයේ (crt0) සරල කළ අනුවාදයක් එක් කර, ක්‍රියාත්මක කළ හැකි ගොනුවට අමුණා ඇති අතර පාලනය ප්‍රධාන() ශ්‍රිතයට මාරු කිරීමට පෙර ක්‍රියාත්මක වේ.

Picolibc අනුවාදය 1.1 හි:

  • තාක්ෂණයට සහාය වීම සඳහා සහායක පුස්තකාලය එකතු කරන ලදී "අර්ධ සත්කාරක"ධාරක පද්ධතියේ I/O යාන්ත්‍රණ භාවිතා කිරීමට debugger හෝ emulator පරිසරයක ධාවනය වන කේතයට ඉඩ දෙයි;
  • පද්ධති ඇමතුම් විවෘත කිරීම, වසා දැමීම, කියවීම සහ ලිවීම සඳහා සහාය දක්වන පද්ධති සඳහා, tinystdio විසින් fopen සහ fdopen ශ්‍රිතයන් ඇතුළුව ප්‍රමිතිගත POSIX stdio I/O අතුරුමුහුණත් එක් කරයි, එමෙන්ම STdin/stdout/stderr POSIX-නිර්වචනය කළ ගොනු විස්තර සඳහා බන්ධනය කරයි;
  • newlib codebase වෙතින් මෑත වෙනස්කම් සිදු කර ඇත. සඳහා එකතු කරන ලද libm stubs ඇතුළුව fenv.h, පාවෙන ලක්ෂ්ය ආධාරකයක් නොමැතිව පද්ධති මත භාවිතා කළ හැකි;
  • ARM සහ RISC-V පද්ධති සඳහා picolibc සමඟින් "Hello world" යෙදුම ගොඩනැගීමේ උදාහරණයක් එකතු කරන ලදී;
  • භාවිතයට නොගත් පර්යේෂණාත්මක කේතය අඩංගු newlib, libm සහ mathfp නාමාවලි ඉවත් කරන ලදී.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න