Keith Packard นักพัฒนา Debian ที่กระตือรือร้น ผู้นำโครงการ X.Org และผู้สร้างส่วนขยาย X มากมาย รวมถึง XRender, XComposite และ XRandR
Keith Packard เริ่มการพัฒนาหลังจากไม่พบตัวเลือก Libc ที่เหมาะสมที่สามารถใช้กับอุปกรณ์ฝังตัวที่มี RAM เพียงเล็กน้อยได้ โครงการได้รับการพัฒนาตั้งแต่ปีที่แล้ว ในระยะแรก โครงการนี้เป็นตัวแปรของ newlib ซึ่งเป็นฟังก์ชันของ stdio ซึ่งถูกแทนที่ด้วยเวอร์ชันกะทัดรัดจาก avrlibc (stdio ใน newlib ไม่เหมาะสำหรับการใช้ทรัพยากรสูง) เนื่องจากงานปัจจุบันของ Keith เกี่ยวข้องกับการทำงานอย่างต่อเนื่องกับสถาปัตยกรรม RISC-V และการพัฒนาเครื่องมือสำหรับอุปกรณ์ฝังตัว เขาเพิ่งตรวจสอบสถานะของการใช้งาน libc และสรุปว่าด้วยการปรับแต่งเล็กน้อย การรวมกันของ newlib และ avrlibc อาจเป็นวัตถุประสงค์ทั่วไปที่ดี สารละลาย. เริ่มแรก โครงการพัฒนาภายใต้ชื่อ "newlib-nano" แต่เพื่อหลีกเลี่ยงความสับสนกับไลบรารี Newlib จึงได้เปลี่ยนชื่อเป็น PicoLibc
ในรูปแบบปัจจุบัน Picolibc ได้ดำเนินการลบโค้ดทั้งหมดที่ไม่ได้ให้มาภายใต้ใบอนุญาต BSD แล้ว (รหัสนี้ไม่ได้ใช้เมื่อสร้างสำหรับอุปกรณ์ฝังตัว) ซึ่งทำให้สถานการณ์ง่ายขึ้นอย่างมากด้วยใบอนุญาตสำหรับโครงการ การใช้งานสตรีมท้องถิ่นถูกย้ายจาก 'struct _reent' ไปยังกลไก TLS (
ใน Picolibc เวอร์ชัน 1.1:
- เพิ่มไลบรารี่เสริมเพื่อรองรับเทคโนโลยี”
กึ่งโฮสติ้ง "อนุญาตให้โค้ดทำงานในสภาพแวดล้อมดีบักเกอร์หรือโปรแกรมจำลองเพื่อใช้กลไก I/O ของระบบโฮสต์ - สำหรับระบบที่รองรับการเรียกระบบแบบเปิด ปิด อ่านและเขียน Tinystdio เพิ่มอินเทอร์เฟซ POSIX stdio I/O มาตรฐาน รวมถึงฟังก์ชัน fopen และ fdopen รวมถึงการผูก stdin/stdout/stderr เข้ากับตัวอธิบายไฟล์ที่กำหนดโดย POSIX
- การเปลี่ยนแปลงล่าสุดจาก codebase newlib ได้ถูกยกยอดไปแล้ว รวมถึงเพิ่ม libm stubs สำหรับ
เฟนวี.เอช ซึ่งสามารถใช้กับระบบที่ไม่รองรับจุดลอยตัว - เพิ่มตัวอย่างการสร้างแอปพลิเคชั่น “Hello world” ด้วย picolibc สำหรับระบบ ARM และ RISC-V
- ลบไดเร็กทอรี newlib, libm และ mathfp ซึ่งมีโค้ดทดลองที่ไม่ได้ใช้
ที่มา: opennet.ru