Open Source Packages Overview¶
Trang tổng quan về các gói mã nguồn mở hay dùng trên hệ thống Linux nhúng. Mỗi nhóm chức năng có một trang so sánh riêng, mỗi gói có một trang chi tiết theo cùng một khung (xem mục "Khung trang cho từng gói" bên dưới).
Tiêu chí chọn gói cho hệ thống nhúng¶
| Tiêu chí | Câu hỏi cần trả lời |
|---|---|
| Footprint | Kích thước binary, RAM lúc chạy, số thư viện phụ thuộc? |
| License | GPL, LGPL, MIT, BSD, Apache hay dual-license thương mại? Có ảnh hưởng tới code sản phẩm không? |
| Bảo trì | Dự án còn được cập nhật không, tần suất vá lỗi bảo mật (CVE) thế nào? |
| Tích hợp build | Đã có sẵn recipe Yocto hay package Buildroot chưa? |
| Cấu hình | Cấu hình bằng file text, có thể tắt bớt module không cần thiết không? |
| Bảo mật | Hỗ trợ TLS, chạy dưới user không phải root, sandbox? |
License: những điểm cần lưu ý¶
- GPL-2.0 / GPL-3.0: phân phối binary thì phải cung cấp mã nguồn của gói (và các phần sửa đổi). Nếu link tĩnh hoặc nhúng code GPL vào ứng dụng thì ứng dụng cũng bị ràng buộc.
- LGPL: link động thì ứng dụng không bị ràng buộc; link tĩnh cần cẩn thận.
- MIT / BSD / Apache-2.0: permissive, chỉ cần giữ thông báo bản quyền (Apache-2.0 có thêm điều khoản về patent).
- Dual-license (GPL + thương mại): ví dụ Mongoose. Dùng trong sản phẩm đóng thì cần mua license thương mại.
Trong Yocto có thể dùng INCOMPATIBLE_LICENSE để chặn các gói có license không mong muốn, và thư mục tmp/deploy/licenses/ để tổng hợp license của image.
Tích hợp vào hệ thống build¶
| Build system | Cách thêm gói |
|---|---|
| Yocto | IMAGE_INSTALL:append = " <package>" trong local.conf hoặc image recipe; một số gói nằm ở layer ngoài (ví dụ meta-openembedded/meta-webserver). |
| Petalinux | petalinux-config -c rootfs để chọn gói, hoặc thêm vào project-spec/meta-user/conf/user-rootfsconfig. |
| Buildroot | make menuconfig → Target packages, hoặc bật BR2_PACKAGE_<NAME> trong defconfig. |
Khung trang cho từng gói¶
Các trang chi tiết dùng chung các mục sau:
- Giới thiệu và license
- Kích thước và tài nguyên sử dụng
- Build / cross-compile (Yocto, Petalinux, Buildroot)
- Cấu hình mẫu
- Tích hợp (CGI/FastCGI, TLS, ...)
- Debug và tuning
- Tài liệu tham khảo
Bản đồ tài liệu¶
- Web Server: lighttpd, Nginx, Mongoose / CivetWeb.
- Networking (dự kiến): dropbear, dnsmasq, hostapd, iperf3. Xem thêm Linux PTP, DPDK, NBD.
- IPC & Messaging (dự kiến): Mosquitto (MQTT), D-Bus, ZeroMQ.
- System (dự kiến): BusyBox, systemd / sysvinit, udev / mdev.
- Data (dự kiến): SQLite, json-c, cJSON.