Skip to content

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:

  1. Giới thiệu và license
  2. Kích thước và tài nguyên sử dụng
  3. Build / cross-compile (Yocto, Petalinux, Buildroot)
  4. Cấu hình mẫu
  5. Tích hợp (CGI/FastCGI, TLS, ...)
  6. Debug và tuning
  7. 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.