Thư viện C chuẩn PicoLibc 1.1 có sẵn

Keith Packard, một nhà phát triển năng động Debian, người đứng đầu dự án X.Org và là người tạo ra nhiều tiện ích mở rộng X, bao gồm XRender, XComposite và XRandR, giới thiệu phát hành thư viện C tiêu chuẩn mới PicoLibc 1.1, được phát triển để sử dụng trên các thiết bị nhúng có RAM và bộ nhớ cố định hạn chế. Trong quá trình phát triển, một phần mã được mượn từ thư viện thư viện mới từ dự án Cygwin và AVR Libc, được phát triển cho bộ vi điều khiển Atmel AVR. Mã PicoLibc phân phối bởi theo giấy phép BSD. Việc lắp ráp thư viện được hỗ trợ cho các kiến ​​trúc ARM (32-bit), i386, RISC-V, x86_64 và PowerPC.

Keith Packard bắt đầu phát triển sau khi không thể tìm thấy tùy chọn Libc phù hợp có thể sử dụng trên các thiết bị nhúng có ít RAM. Dự án đã được phát triển từ năm ngoái. Ở giai đoạn đầu, dự án là một biến thể của newlib, các chức năng của stdio trong đó được thay thế bằng phiên bản nhỏ gọn của avrlibc (stdio trong newlib không phù hợp với mức tiêu thụ tài nguyên cao). Vì công việc hiện tại của Keith liên quan đến công việc đang diễn ra với kiến ​​trúc RISC-V và phát triển công cụ cho các thiết bị nhúng nên gần đây anh ấy đã xem xét trạng thái triển khai libc và kết luận rằng chỉ cần điều chỉnh một chút, sự kết hợp giữa newlib và avrlibc có thể là một mục đích chung tốt giải pháp. Ban đầu, dự án được phát triển dưới tên “newlib-nano”, nhưng để tránh nhầm lẫn với thư viện Newlib, nó được đổi tên thành PicoLibc.

Ở dạng hiện tại, Picolibc đã thực hiện công việc xóa tất cả mã không được cung cấp theo giấy phép BSD (mã này không được sử dụng khi xây dựng cho các thiết bị nhúng), điều này đã đơn giản hóa đáng kể tình hình với giấy phép cho dự án. Việc triển khai các luồng cục bộ đã được chuyển từ 'struct _reent' sang cơ chế TLS (lưu trữ cục bộ chuỗi). Phiên bản nhỏ gọn của stdio, mượn từ mã thư viện avrlibc, được kích hoạt theo mặc định (các phần chèn của trình biên dịch mã dành riêng cho ATmel được viết lại bằng C). Bộ công cụ Meson được sử dụng để lắp ráp, giúp nó không bị ràng buộc với các tập lệnh lắp ráp newlib và đơn giản hóa việc chuyển các thay đổi từ newlib. Đã thêm phiên bản đơn giản của mã khởi tạo (crt0), được đính kèm vào tệp thực thi và được thực thi trước khi điều khiển được chuyển sang hàm main().

Trong Picolibc phiên bản 1.1:

  • Đã thêm thư viện phụ trợ để hỗ trợ công nghệ "bán lưu trữ"cho phép mã chạy trong môi trường trình gỡ lỗi hoặc trình mô phỏng sử dụng cơ chế I/O của hệ thống máy chủ;
  • Đối với các hệ thống hỗ trợ các lệnh gọi hệ thống mở, đóng, đọc và ghi, tinystdio bổ sung các giao diện I/O POSIX stdio được tiêu chuẩn hóa, bao gồm các hàm fopen và fdopen, cũng như liên kết stdin/stdout/stderr với các bộ mô tả tệp do POSIX xác định;
  • Những thay đổi gần đây từ cơ sở mã newlib đã được chuyển sang. Bao gồm các sơ khai libm được thêm vào cho fenv.h, có thể được sử dụng trên các hệ thống không hỗ trợ dấu phẩy động;
  • Đã thêm ví dụ về xây dựng ứng dụng “Hello world” với picolibc cho hệ thống ARM và RISC-V;
  • Đã xóa các thư mục newlib, libm và mathfp chứa mã thử nghiệm không được sử dụng.

Nguồn: opennet.ru

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster