- ยูทิลิตีโอเพนซอร์สแบบมัลติคอลไบนารีขนาดเบาที่รวมชุดคำสั่งลินุกซ์ไว้ในไฟล์รันเพียงไฟล์เดียว และพัฒนาขึ้นมาเป็นทางเลือกแทน BusyBox
- เพียงดาวน์โหลดและรันไฟล์เดียว (
toybox-x86_64) ก็สามารถใช้คำสั่งพื้นฐานอย่าง echo, cp, mv, cat เป็นต้น ได้จากไบนารีเดียว
- สอดคล้องกับมาตรฐาน POSIX-2008 และ LSB 4.1 โดยเน้น ความเร็วในการทำงาน, โครงสร้างที่กระชับ และ การปฏิบัติตามมาตรฐาน
- เดิมทีเป้าหมายหลักของโปรเจ็กต์คือ ทำให้ Android กลายเป็นสภาพแวดล้อม self-hosting ที่สมบูรณ์ เพื่อให้สามารถบิลด์ AOSP บน Android เองได้
- Google ยอมรับแนวคิดนี้ และตั้งแต่ปี 2015 ก็ได้รวม Toybox เข้าใน AOSP ตั้งแต่ Android Marshmallow ให้เป็นส่วนประกอบมาตรฐาน
- BusyBox ใช้ไลเซนส์ GPLv2 ซึ่งไม่เข้ากันกับ Android แต่ ToyBox ถูกเขียนขึ้นใหม่ภายใต้ ไลเซนส์ BSD ที่เข้ากันได้กับ Android
- มุ่งลดการพึ่งพาเครื่องมือ GNU และมอบ สภาพแวดล้อมการบิลด์ที่โปร่งใสและทำซ้ำได้มากขึ้น
- Toybox ตั้งเป้าเป็น “ระบบที่สามารถบิลด์ตัวเองได้ด้วยองค์ประกอบอย่างน้อยสี่ส่วน”
- ชุดคำสั่ง POSIX, คอมไพเลอร์, C standard library และเคอร์เนล
- ด้วยองค์ประกอบนี้สามารถสร้าง ระบบพื้นฐานที่ทำซ้ำได้ และต่อยอดเพิ่ม editor (vi), การมอนิเตอร์ระบบ (top), shell history ฯลฯ เพื่อขยายเป็นสภาพแวดล้อมที่ใช้งานจริงได้
- สามารถเรียก subcommand ผ่านคำสั่ง "toybox" หรือสร้าง symbolic link ด้วยชื่อของแต่ละคำสั่งเพื่อใช้งานเหมือนคำสั่งทั่วไปได้
- ใช้ โครงสร้างการบิลด์แบบเดียวกับลินุกซ์เคอร์เนล (
make menuconfig; make; make install) และเลือกฟีเจอร์ที่จะรวมได้ผ่านไฟล์ .config
- รองรับสภาพแวดล้อม cross compile อย่างสมบูรณ์, สามารถบิลด์ static binary สำหรับเป้าหมายที่ไม่ใช่ x86 เช่น ARM ได้
- ใช้
scripts/mkroot.sh เพื่อ บิลด์ระบบลินุกซ์ขั้นต่ำที่อิงกับ Toybox ได้
- สร้าง root filesystem ด้วย
make root แล้วรัน chroot
- หากใช้ร่วมกับ
qemu และ cross compiler ก็สามารถ สร้างมินิสภาพแวดล้อมลินุกซ์ที่บูตได้ด้วยตัวเอง
- มีระบบช่วยเหลือในตัว: ใช้
toybox help <명령어> เพื่อตรวจดูคำอธิบายของแต่ละคำสั่ง
1 ความคิดเห็น
มีใครเคยใช้บ้างไหม มีประโยชน์หรือเปล่า?