10 điểm bởi GN⁺ 2024-11-04 | 4 bình luận | Chia sẻ qua WhatsApp
  • systemd là một bộ ứng dụng tích hợp liên quan đến quản lý hệ thống, thay thế tiến trình init truyền thống và bao gồm nhiều chức năng như quản lý phiên người dùng, quản lý thiết bị, ghi log, hẹn giờ, v.v.
  • Phần lớn người dùng Linux không quan tâm đến ưu và nhược điểm của systemd, nhưng một số người lại phản đối hoặc ủng hộ rất mạnh mẽ
  • Các bản phân phối Linux chủ lưu đã áp dụng systemd, chủ yếu vì những lợi ích của nó trong môi trường desktop thông thường

Vấn đề trong Linux nhúng

  • Trong hệ thống nhúng, những ưu điểm của systemd lại có thể trở thành nhược điểm
  • Lấy mức sử dụng bộ nhớ trên Raspberry Pi 3B làm ví dụ, systemd tiêu tốn nhiều tài nguyên hơn SystemV init
  • Các daemon ghi log của systemd như systemd-journald cũng sử dụng nhiều tài nguyên
  • Môi trường nhúng cần những giải pháp thay thế nhỏ gọn hơn, và systemd không được tối ưu cho các môi trường như vậy

Độ phức tạp của systemd và thời gian khởi động

  • systemd có thể giúp giảm thời gian khởi động, nhưng trong hệ thống nhúng, nó lại có thể làm tăng thời gian khởi động.
  • Độ phức tạp và các tính năng của systemd là cần thiết trong môi trường thông thường, nhưng trong môi trường nhúng thì nhiều khi không cần thiết.

Sự thiếu vắng các giải pháp thay thế

  • Nhiều dịch vụ mà systemd thay thế trong môi trường nhúng vốn có các giải pháp thay thế nhỏ hơn và nhanh hơn, nhưng với một số thành phần thì nay hầu như không còn lựa chọn thay thế
  • Ví dụ, daemon udev đã được tích hợp vào dự án systemd, và gần như không còn giải pháp độc lập nào

Sự lan rộng của systemd và sự suy giảm của các lựa chọn thay thế

  • systemd bao gồm rất nhiều chức năng và mang lại sự tiện lợi cho các nhà quản lý bản phân phối.
  • Khi systemd ngày càng hấp thụ nhiều chức năng hơn, động lực để duy trì các giải pháp thay thế cũng đang giảm đi.
  • Điều này có thể gây ra vấn đề khi systemd không phù hợp với môi trường nhúng.

Kết luận

  • systemd trong môi trường nhúng có thể kém hiệu quả hơn các giải pháp truyền thống.
  • Việc tìm được một bản phân phối Linux chủ lưu không dùng systemd ngày càng trở nên khó khăn.
  • Sự lan rộng của systemd đang đẩy Linux đến một tương lai khó có thể hình dung nếu thiếu systemd.
  • Cần sẵn sàng phát triển hoặc duy trì các giải pháp thay thế, đồng thời tiếp tục hỗ trợ các bản phân phối không sử dụng systemd

4 bình luận

 
iolothebard 2024-11-08

Đâu chỉ riêng systemd là như vậy…

 
ganadist 2024-11-06

init của busybox là một lựa chọn thay thế rất tốt cho systemd dành cho thiết bị nhúng.
Và với một hệ thống bị giới hạn như thiết bị nhúng, thay vì nhất thiết phải dùng udev, bạn chỉ cần đưa các device node cố định vào root filesystem là được.

 
plaaat0102 2024-11-05

Trường hợp của tôi đúng là ngoại lệ trong số những ngoại lệ, nhưng với một người như tôi cài Ubuntu lên Galaxy Tab rồi cài VS Code trên đó để dùng thì cũng có không ít lúc chỉ muốn khóc vì systemd..

 
GN⁺ 2024-11-04
Ý kiến Hacker News
  • systemd giải quyết được nhiều vấn đề, và cộng đồng cũng phản hồi rất nhanh và hữu ích

    • Thỉnh thoảng có những lỗi kỳ lạ, nhưng luôn có cách khắc phục
    • Mức dùng bộ nhớ không quan trọng, và hầu hết thiết bị Linux nhúng đều có từ 1GB RAM trở lên
    • Với các thiết bị nhỏ, người ta dùng Zephyr hoặc FreeRTOS
  • OpenEmbedded/Yocto, Devuan, Gentoo cung cấp nhiều hệ thống init

  • Rustysd là một trình quản lý dịch vụ mô phỏng một phần cách hoạt động của systemd

    • Nó cung cấp các chức năng cốt lõi và có thể mang đến một trình quản lý dịch vụ tương tự systemd trên nhiều nền tảng khác nhau
  • Những người ưa chuộng systemd chủ yếu là các quản trị viên bản phân phối

    • systemd cung cấp nhiều tiện ích hệ thống khác nhau trong một bản build lớn duy nhất
  • Triết lý Unix là các công cụ nhỏ giải quyết từng vấn đề

    • systemd ban đầu còn nhỏ, nhưng giờ thì thậm chí có thể hội nghị truyền hình qua nền web
  • runit rất xuất sắc trong việc giám sát ứng dụng và dịch vụ

    • Được tích hợp trong BusyBox và rất nhẹ
    • Cấu hình rất đơn giản và cũng bao gồm tính năng ghi log
    • Nó hiện thực triết lý Unix gần như hoàn hảo
  • Có thể chạy hệ thống nhúng mà không cần udev

    • Điều này khả thi nếu dùng thiết bị ngoại vi cố định và các mô-đun kernel cố định
  • RPi biến form factor của bo mạch điều khiển công nghiệp thành máy tính để bàn

    • Nhiều phần mềm không được viết với phân khúc này trong đầu
  • Chimera Linux đang đi theo một hướng thú vị trong quản lý dịch vụ và quản lý đăng nhập/ghế ngồi

    • Việc systemd sử dụng các phần mở rộng của gnulibc và gcc là một vấn đề
  • Kích thước cài đặt của systemd là vấn đề lớn nhất trong Linux nhúng

    • Trên thiết bị có 64M RAM và 128M NAND flash, systemd 5M là không hiệu quả
  • systemd trở thành vấn đề trên Linux nhúng vì dùng 250MB RAM

    • Với các hệ thống không nhắm đến các bản phân phối mainstream, đây không phải vấn đề lớn
  • SysVInit phụ thuộc vào các tiện ích bên ngoài để khởi động và dừng tiến trình

    • Ngay cả trong trường hợp tối thiểu, vẫn cần shell để chạy các script init