- Nhờ bootc và container có thể khởi động, việc thay đổi giao diện giờ đây có thể thực hiện theo cách an toàn và dễ quản lý hơn
- Vì có thể định nghĩa
/usrbằng container và hoàn tác, nên có thể dễ dàng thử nghiệm rồi đưa hệ thống trở lại trạng thái trước đó - Với lệnh
ostree admin unlock, cũng có thể tùy biến tạm thời mà không cần khởi động lại - Các dự án như Blue95 phản ánh thời đại mà ranh giới giữa bản phân phối và container trở nên mờ nhạt
- Thông qua container có thể khởi động, có thể hiện thực hóa sự thể hiện sáng tạo cá nhân
Niềm vui của việc tùy biến giao diện Linux
- Trong nhiều thập kỷ, tác giả đã quan tâm đến nhiều môi trường desktop và thiết lập giao diện khác nhau
- Cài đặt Xfce, LXQt, Sway... rồi tùy biến panel, launcher, âm thanh, phông chữ, giao diện...
- Ban đầu dùng shell script, sau đó phát triển thành playbook Ansible
- Bao gồm cả những thay đổi ở phạm vi toàn hệ thống cần chỉnh sửa thư mục
/usr
- Tuy nhiên, theo thời gian, do những vấn đề như panel thường xuyên hỏng hoặc biến mất, launcher không hoạt động..., tác giả đã chọn quay lại cấu hình mặc định
- Các môi trường desktop hiện đại như GNOME, KDE vốn đã được hoàn thiện tốt nên trạng thái mặc định cũng đủ làm hài lòng
- Dù vậy, mong muốn tùy biến vẫn không biến mất, và rồi tác giả biết đến khái niệm
bootc
Bootc là sân chơi của người tạo giao diện
- bootc là hệ thống container có thể khởi động do Red Hat phát triển
- Có thể định nghĩa và phân phối hệ điều hành dựa trên container
FROM quay.io/fedora/fedora-bootc:42 RUN dnf install -y my-custom-theme my-custom-fonts my-custom-panel - Có thể build image và chuyển đổi hệ thống bằng lệnh
podmanvàbootc:sudo podman build -f Containerfile -t my-fedora sudo bootc switch --transport containers-storage localhost/my-fedora:latest /usrlà chỉ đọc và có thể dễ dàng hoàn tác container về trạng thái trước đó- Đây là cách làm rất phù hợp để thử nghiệm các ý tưởng giao diện mới
- Nếu thất bại hoặc không ưng ý, có thể đơn giản khôi phục trạng thái trước đó
Development Mode (ostree admin unlock)
- Chế độ cho phép tạm thời sửa
/usrmà không cần khởi động lại - Nếu thành công thì đưa vào Containerfile, nếu thất bại thì chỉ cần khởi động lại để xóa thay đổi
- Có ưu điểm là hầu như không phát sinh rác tồn đọng thường tích tụ trong môi trường Linux thông thường
So sánh với các cách thay thế
- Ansible hoặc shell script: có giới hạn về khả năng tái hiện và khôi phục
systemd-sysext: có thể dùng image overlay/usr, nhưng hệ sinh thái còn non trẻ- Nix: chi phí học tập rất cao
Tóm lại, bootc là cách tiếp cận mạnh mẽ nhất về độ an toàn, tính linh hoạt và hỗ trợ công cụ
Ngay cả khi có thay đổi sai, việc hoàn tác cũng dễ dàng nên không phải lo làm hỏng /usr
"Bản phân phối" là gì?
- Blue95 là image OCI được tùy biến dựa trên Fedora Xfce
- Sau khi được giới thiệu trên Hacker News, đã xuất hiện câu hỏi: "Chỉ là một giao diện thôi mà cũng cần cả bản phân phối sao?"
Định nghĩa về bản phân phối đang mờ dần
- Trước đây, việc tạo ra một bản phân phối là công việc rất phức tạp và tốn thời gian
- Giờ đây, chỉ với Containerfile + pipeline CI/CD là có thể dễ dàng tạo ra kết quả tương tự
- Blue95 được build tự động bằng GitHub Actions và phân phối lên OCI registry
- Tiêu chí để xem một container nền Fedora đơn thuần là một bản phân phối hay không vẫn rất mơ hồ
So sánh với các trường hợp trước đó
- Các dự án dựa trên bootc như Bluefin, Bazzite cũng thường được xem là bản phân phối
- Trải nghiệm sử dụng thực tế khác biệt rõ rệt so với Fedora truyền thống
- Theo định nghĩa cũ, ngày càng khó giải thích ý nghĩa của một bản phân phối
- "Nhìn vào là biết" có lẽ là tiêu chí định tính duy nhất còn lại
Kết luận
- Việc tạo ra một "bản phân phối" chỉ để phục vụ giao diện có thể trông như không cần thiết
- Nhưng với container có thể khởi động, có thể định nghĩa một thiết kế và cấu hình ứng dụng nhất quán, rồi
- Tự mình tạo ra và sử dụng nó mang lại niềm vui và cảm giác thành tựu rất lớn
Hệ điều hành mà tác giả đang dùng để viết bài này là một hệ thống được khởi động từ container do chính tác giả tạo ra
Đó là kết quả của sự kết hợp giữa biểu đạt sáng tạo của tác giả với công sức của vô số nhà phát triển,
và chính điều đó mang lại cho tác giả niềm vui lớn
2 bình luận
Mình vẫn chưa thật sự hiểu rõ về bootable container.
Ý kiến trên Hacker News
Các container thông thường rất hữu ích để thử nghiệm dotfiles
Tôi thích ý tưởng về Linux bất biến và các container có thể khởi động
Tôi thắc mắc vì sao không có nhiều đam mê hơn dành cho theme
Trước giờ tôi hoàn toàn không biết gì về các container có thể khởi động
Nó khiến tôi nhớ lại thời từng vọc Enlightenment
Tôi thấy hứng thú với các container có thể khởi động
Dự án bootc hiện là một trong những thứ thú vị nhất trên Linux
Ảnh thumbnail đại diện cho toàn bộ trạng thái của tôi
Tôi từng kỳ vọng các OS hiện đại sẽ có thể được theme hóa dễ dàng đến vô hạn, nhưng thực tế không phải vậy