Standart C kitabxanası PicoLibc 1.1 mövcuddur

Keith Packard, aktiv Debian tərtibatçısı, X.Org layihəsinin lideri və XRender, XComposite və XRandR daxil olmaqla bir çox X genişləndirmələrinin yaradıcısı, təqdim etdi yeni standart C kitabxanasının buraxılışı PicoLibc 1.1, məhdud daimi saxlama və RAM ilə quraşdırılmış cihazlarda istifadə üçün hazırlanmışdır. İnkişaf zamanı kodun bir hissəsi kitabxanadan götürülmüşdür newlib Cygwin layihəsindən və AVR Libc, Atmel AVR mikro nəzarətçiləri üçün hazırlanmışdır. PicoLibc kodu yayılır BSD lisenziyası altında. Kitabxana montajı ARM (32-bit), i386, RISC-V, x86_64 və PowerPC arxitekturaları üçün dəstəklənir.

Keith Packard, kiçik RAM ilə quraşdırılmış cihazlarda istifadə edilə bilən layiqli Libc seçimini tapa bilmədikdən sonra inkişafa başladı. Layihə ötən ildən hazırlanır. Birinci mərhələdə layihə newlib-in bir variantı idi, stdio-nun funksiyaları avrlibc-dən yığcam versiya ilə əvəz edilmişdir (newlib-də stdio yüksək resurs istehlakı üçün uyğun deyildi). Keytin hazırkı işi RISC-V arxitekturası ilə davamlı işi və quraşdırılmış qurğular üçün alətlərin işlənməsini əhatə etdiyindən, o, bu yaxınlarda libc tətbiqlərinin vəziyyətini nəzərdən keçirdi və bir az tənzimləmə ilə newlib və avrlibc birləşməsinin yaxşı bir ümumi məqsəd ola biləcəyi qənaətinə gəldi. həll. Əvvəlcə layihə "newlib-nano" adı altında inkişaf etdirildi, lakin Newlib kitabxanası ilə qarışıqlığın qarşısını almaq üçün PicoLibc adlandırıldı.

Hazırkı formada Picolibc artıq BSD lisenziyası ilə təmin olunmayan bütün kodları silmək üçün iş görmüşdür (bu kod daxili qurğular üçün qurularkən istifadə edilməmişdir), bu da layihə üçün lisenziya ilə bağlı vəziyyəti xeyli sadələşdirmişdir. Yerli axınların tətbiqi 'struct _reent'-dən TLS mexanizminə köçürüldü (yivli yerli saxlama). Avrlibc kitabxana kodundan götürülmüş stdio-nun yığcam versiyası defolt olaraq aktivləşdirilir (ATmel-ə məxsus assembler əlavələri C-də yenidən yazılır). Montaj üçün Meson alət dəsti istifadə edildi, bu, newlib montaj skriptlərinə bağlanmamağa və dəyişikliklərin newlib-dən köçürülməsini asanlaşdırmağa imkan verdi. İcra olunan fayla əlavə edilmiş və idarəetmə main() funksiyasına ötürülməzdən əvvəl yerinə yetirilən başlatma kodunun (crt0) sadələşdirilmiş versiyası əlavə edildi.

Picolibc 1.1 versiyasında:

  • Texnologiyanı dəstəkləmək üçün köməkçi kitabxana əlavə edildi "semihosting"sazlayıcı və ya emulyator mühitində işləyən koda host sisteminin I/O mexanizmlərindən istifadə etməyə imkan verir;
  • Açıq, qapalı, oxuyan və yazan sistem zənglərini dəstəkləyən sistemlər üçün tinystdio standartlaşdırılmış POSIX stdio I/O interfeyslərini, o cümlədən fopen və fdopen funksiyalarını, həmçinin stdin/stdout/stderr-i POSIX tərəfindən müəyyən edilmiş fayl deskriptorlarına bağlamaq;
  • Newlib kod bazasındakı son dəyişikliklər həyata keçirildi. üçün əlavə edilmiş libm kötükləri daxil olmaqla fenv.h, üzən nöqtə dəstəyi olmayan sistemlərdə istifadə edilə bilər;
  • ARM və RISC-V sistemləri üçün picolibc ilə “Salam dünya” proqramının qurulması nümunəsi əlavə edildi;
  • İstifadə edilməmiş eksperimental kodu ehtiva edən newlib, libm və mathfp qovluqları silindi.

Mənbə: opennet.ru

Добавить комментарий