Hơn 10 năm kể từ khi ra mắt, systemd vẫn là chủ đề gây tranh cãi gay gắt trong cộng đồng Linux. Tuy nhiên, tôi không nằm trong số những người phản đối nó. Dù vẫn thử nghiệm các bản phân phối không dùng systemd, tôi vẫn thường xuyên sử dụng các distro dựa trên systemd. Dưới đây là những lý do cụ thể giải thích cho lựa chọn này.
I. SysVInit Đã Lỗi Thời và Cần Được Thay Thế
Khi systemd xuất hiện lần đầu vào đầu những năm 2010, nhiều người dùng Linux đã thắc mắc tại sao lại cần một sự thay đổi lớn như vậy đối với hệ thống init mà Linux đã sử dụng trong nhiều năm.
Hệ thống cũ, System V Init, hay SysVInit, có nguồn gốc từ những năm 1980. Vào thời điểm đó, các hệ thống Unix được sử dụng theo một cách khác so với các máy móc hiện đại. Unix chủ yếu được dùng trên các máy minicomputer lớn và các máy trạm mạnh mẽ. SysVInit khởi chạy các dịch vụ một cách tuần tự, điều này có thể làm tăng thời gian khởi động. Máy tính xách tay hiếm khi xuất hiện trong kỷ nguyên đó. USB chưa tồn tại, và các thiết bị ngoại vi thường chỉ được thêm hoặc xóa giữa các lần khởi động. Cấu hình hệ thống thường không thay đổi trong suốt quá trình hoạt động. Một khi hệ thống đã hoạt động, nó thường chạy trong thời gian dài, nên thời gian khởi động không phải là một vấn đề lớn. Các thay đổi phần cứng trên các hệ thống chia sẻ cũng hiếm khi xảy ra và chủ yếu là trải nghiệm “một lần và xong”.
Theo truyền thống, nếu bạn thêm một thiết bị phần cứng, ngay cả thứ gì đó như ổ đĩa ngoài, bạn sẽ phải tắt và khởi động lại hệ thống. SysVInit cũng phức tạp, với các script shell tương ứng với “runlevels”. Cách tiếp cận này trở nên không đủ khi Linux ngày càng phổ biến. Với các máy hiện đại, bạn có thể cắm ổ USB hoặc di chuyển giữa mạng Wi-Fi và mạng có dây với một chiếc máy tính xách tay. systemd có thể phản hồi tức thì với các thiết bị “hotplugged” như vậy.
Việc các thành phần chính có thể được thay thế khi cần thiết là một minh chứng cho sức mạnh của ý tưởng về các hệ điều hành giống Unix.
II. systemd Đã Trở Thành Tiêu Chuẩn và Khó Có Thể Thay Thế
Khi systemd mới xuất hiện, đã có nhiều cuộc tranh luận và cạnh tranh về việc hệ thống nào sẽ thay thế nó. Cuộc tranh cãi trở nên gay gắt đến mức một số nhà phát triển distro Linux đã phải từ chức vì áp lực từ những lời chỉ trích không ngừng của người dùng.
Dù muốn hay không, sử dụng một distro Linux phổ biến đồng nghĩa với việc bạn sẽ dùng systemd. Các tài liệu hướng dẫn sẽ đề cập đến nó, và nếu bạn cần hỗ trợ khi gặp sự cố, khả năng cao là bạn sẽ phải sử dụng tiện ích systemctl
.
Vì systemd quá quan trọng đối với cách hoạt động của các bản phân phối Linux hiện đại, hầu hết các distro lớn khó có thể thay thế nó trừ khi có lý do thực sự thuyết phục.
Đây không phải là một kịch bản quá xa vời. Nếu bạn đã sử dụng Linux vào những năm 2000, bạn có thể nghĩ rằng hệ thống SysVInit sẽ tồn tại mãi mãi. Nếu bạn không thích nó, bạn có thể sử dụng một trong các BSD.
Có thể ai đó sẽ tạo ra một hệ thống init khác, một hệ thống mà các nhà phát triển Linux cho là tốt hơn. Tôi tin rằng bất cứ điều gì mà các nhà phát triển BSD tạo ra để thay thế hệ thống init cũ của họ sẽ rất đáng chờ đợi. Tôi hình dung nó sẽ giống như launchd
của macOS, vốn cũng đã ảnh hưởng đến systemd.
Đối với nhiều nhà phát triển distro Linux, systemd dường như là một lựa chọn “đủ tốt”. Trong nhiều lĩnh vực kỹ thuật, bao gồm kỹ thuật phần mềm, bạn phải chấp nhận đánh đổi khi thiết kế mọi thứ cho thế giới thực, thay vì cố gắng xây dựng giải pháp tuyệt đối tốt nhất.
III. Trải Nghiệm Cá Nhân: systemd Mang Lại Hiệu Quả và Dễ Dùng
Một lý do mà tôi sẽ tiếp tục gắn bó với các distro dựa trên systemd là vì tôi chưa bao giờ gặp vấn đề với nó. Phản hồi “nó hoạt động tốt với tôi” có thể gây khó chịu khi nói về các vấn đề của Linux, nhưng đối với cách sử dụng của riêng tôi, tôi không có gì để phàn nàn.
Tôi thích systemd hơn phương pháp cũ. Tôi chưa bao giờ hoàn toàn thoải mái với SysVInit, với việc phải quản lý các script shell và runlevels. Tôi rụt rè mỗi khi thấy tài liệu về cách bật hoặc tắt dịch vụ, mặc dù đó là điều tôi hiếm khi làm trên các hệ thống máy tính để bàn, vì hầu hết chúng đã được thiết lập sẵn những gì cần thiết để hoạt động ngay lập tức.
Khi tôi cần bật, tắt, khởi động hoặc dừng dịch vụ, tôi chỉ cần chạy một lệnh systemctl
nhanh chóng. Đó là tất cả những gì cần thiết.
Giao diện hiển thị trạng thái dịch vụ trên Arch Linux sử dụng lệnh systemctl status
Là một người dùng chỉ thỉnh thoảng khởi động và dừng dịch vụ, tôi thấy lệnh systemctl
dễ hiểu, bất chấp việc systemd bị cho là cồng kềnh.
Tôi gần đây đã cài đặt Arch trong một máy ảo. Tôi đã phải bật một số dịch vụ, vì Arch là một distro mang tính “thủ công” hơn so với các distro Linux khác. Tất cả những gì tôi cần làm chỉ là vài lệnh systemctl
đơn giản.
IV. Quyết Định Từ Arch Linux: Bằng Chứng Về Giá Trị Của systemd
Một điều cuối cùng đã khiến tôi hoàn toàn ủng hộ systemd là việc Arch Linux đã chuyển sang sử dụng nó. Arch vốn nổi tiếng là bản phân phối hướng tới những người dùng Linux sành sỏi, cho phép họ kiểm soát nhiều hơn cách hệ thống được cấu hình. Bạn có thể chọn công cụ phân vùng và bộ tải khởi động, cũng như môi trường máy tính để bàn, hoặc thậm chí không cài đặt môi trường máy tính để bàn nào cả.
Hiển thị danh sách các đơn vị (units) của systemd đang hoạt động bằng lệnh systemctl list-units
Khi tôi tìm thấy một bài đăng cũ trên diễn đàn từ năm 2012 của một nhà phát triển, được liên kết từ Arch Wiki, tôi đã nghiên cứu kỹ những lý lẽ mà nhà phát triển đó đưa ra. Nhà phát triển đã trích dẫn khả năng biết mọi thứ đang diễn ra với hệ thống, khả năng phát hiện các thiết bị hotplugged, tính mô-đun, các tính năng bảo mật và sandboxing của systemd, cũng như sự phát triển đa nền tảng của dự án systemd.
Theo Arch Wiki, một trong những nguyên tắc chỉ đạo của distro này là “chủ nghĩa thực dụng”:
Arch là một bản phân phối thực dụng chứ không phải mang tính ý thức hệ. Các nguyên tắc ở đây chỉ là hướng dẫn hữu ích. Cuối cùng, các quyết định thiết kế được đưa ra dựa trên từng trường hợp cụ thể thông qua sự đồng thuận của nhà phát triển. Phân tích kỹ thuật dựa trên bằng chứng và tranh luận là những gì quan trọng, không phải chính trị hay ý kiến đông đảo.
Arch Linux luôn gây ấn tượng với tôi là một bản phân phối Linux mang đậm phong cách “Unixy” với trọng tâm là cấu hình dựa trên văn bản và mức độ kiểm soát mà nó trao cho người dùng. Nếu các nhà phát triển Arch có thể thấy được những ưu điểm của systemd bất chấp “sự cồng kềnh” bị cho là của nó, tôi nghĩ systemd đáng để xem xét nghiêm túc. Mọi lo lắng còn sót lại đối với systemd đều tan biến. Điều này có vẻ như là một lập luận dựa trên uy tín, nhưng đội ngũ phát triển Arch đã giành được sự tin tưởng của tôi thông qua kết quả của họ.
V. Quản lý Tiến Trình Chỉ Là Một Phần Nhỏ Trong Sử Dụng Linux Hàng Ngày
Hệ thống init có thể là một phần quan trọng của Linux, nhưng đối với tôi, nó chủ yếu hoạt động ở hậu trường. Tôi hiếm khi tương tác trực tiếp với nó ngoại trừ lệnh systemctl
.
Mặc dù việc khởi chạy và đóng các chương trình trong suốt cả ngày có thể được coi là quản lý tiến trình, nhưng hầu hết thời gian, tôi nghĩ rằng mình có thể đếm được số lần tôi tương tác trực tiếp với systemd để quản lý tiến trình thông qua systemctl
chỉ trên một bàn tay. Trên một distro máy tính để bàn, có lẽ là một hoặc hai lần.
Giao diện hiển thị nhật ký hệ thống Linux với lệnh journalctl của systemd
Tôi thỉnh thoảng vẫn kiểm tra nhật ký, như bất kỳ người dùng nào cũng nên làm. Nhật ký nhị phân của systemd cũng gây tranh cãi, nhưng lệnh journalctl
rất dễ sử dụng. Nhiều nhật ký trên Ubuntu dường như cũng được sao lưu trong thư mục /var/log
, vì vậy tôi có thể kiểm tra chúng bằng một trình soạn thảo văn bản thông thường.
VI. Các Distro Không Dùng systemd Chưa Tạo Ấn Tượng Mạnh Mẽ
Việc systemd hoạt động ở hậu trường là một lý do khiến các distro tự quảng bá là không dùng systemd không gây ấn tượng mạnh với tôi. Tôi đã khám phá một vài bản gần đây, chẳng hạn như EXE GNU/Linux và Obarun. Các nhà phát triển distro có quyền đưa vào hoặc không đưa vào distro của họ bất cứ thứ gì họ muốn.
Khi tôi đánh giá các distro, tôi cố gắng đặt mình vào vị trí của một người dùng bình thường, chứ không phải một hacker Linux có những ý kiến mạnh mẽ ủng hộ hoặc chống lại systemd. Trải nghiệm người dùng quan trọng hơn những gì diễn ra bên dưới.
Một distro sẽ thành công hay thất bại dựa trên tất cả những gì nó có. Một số distro mang lại trải nghiệm độc đáo, chẳng hạn như thiết kế cổ điển của EXE GNU/Linux.
VII. Đôi Khi, Thay Đổi Là Điều Tốt
Mặc dù hệ thống init System V nguyên bản đã hoạt động tốt trong nhiều năm, những thay đổi trong thế giới máy tính cuối cùng đã khiến nó lỗi thời trong một thế giới ngày càng di động và trực tuyến.
Có thể có một số lo ngại về kích thước của systemd hoặc sự thống trị được cho là của Red Hat và công ty mẹ IBM trong việc phát triển Linux.
Thế giới thay đổi, phần cứng máy tính thay đổi, và phần mềm hệ điều hành cũng thay đổi theo. Các hệ điều hành phải phục vụ người dùng và chạy các chương trình của họ. Chúng phải phát triển cùng với những gì người dùng làm với chúng. Chúng không thể là những hiện vật bảo tàng.
Tài liệu tham khảo:
- systemd.io – Trang chủ chính thức của dự án systemd
- Arch Wiki – Systemd – Thông tin về systemd trên Arch Wiki
- How-To Geek – How to Use journalctl to Read Linux System Logs – Hướng dẫn sử dụng lệnh journalctl