11 điểm bởi GN⁺ 2025-04-23 | 2 bình luận | Chia sẻ qua WhatsApp
  • 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 /usr bằ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

  • bootchệ 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 podmanbootc:
    sudo podman build -f Containerfile -t my-fedora  
    sudo bootc switch --transport containers-storage localhost/my-fedora:latest  
    
    Quảng cáo
  • /usr là 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 /usr mà 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ồ
Quảng cáo

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

 
zihado 2025-04-23

Mình vẫn chưa thật sự hiểu rõ về bootable container.

 
GN⁺ 2025-04-23
Ý kiến trên Hacker News
  • Các container thông thường rất hữu ích để thử nghiệm dotfiles

    • Vài năm trước, tôi đã thêm script cài đặt vào https://github.com/nickjj/dotfiles để thiết lập hệ thống nhanh chóng
    • Đã thử nghiệm bằng các image Debian và Ubuntu chính thức
    • Gần đây đã refactor để hỗ trợ Arch Linux
    • Có thể hoàn tất toàn bộ bài kiểm thử trong khoảng 5 phút
    • Container khởi động trong 1 giây, phần còn lại là thời gian chạy script
    • Nó cho phép thử nghiệm mà không phải chỉnh sửa hệ thống
    • Docker đã giúp nhiều điều tốt đẹp trở nên khả thi trong 10 năm qua
  • Tôi thích ý tưởng về Linux bất biến và các container có thể khởi động

    • Dự án tiếp theo của tôi có lẽ sẽ là chuyển sang bazzite
    • Tuy nhiên, khi nhìn vào Containerfile, tôi lo ngại về các lỗ hổng trong chuỗi cung ứng
    • Nó đang dùng 20 kho copr khác nhau và không ghim phiên bản
    • Khi dùng Debian, tôi có mức độ tin cậy cao hơn đối với các gói
    • Việc đóng gói rủi ro chuỗi cung ứng vào một file có thể là điều nguy hiểm
    • Tôi tự hỏi liệu những người khác có cùng mối lo này không
  • Tôi thắc mắc vì sao không có nhiều đam mê hơn dành cho theme

    • Tôi thích Chicago95 và theme KDE của Garuda
    • Có các trang web cho phép tải theme của nhiều DE khác nhau, nhưng phần lớn đều hơi thiếu ổn định
  • Trước giờ tôi hoàn toàn không biết gì về các container có thể khởi động

    • Blue95 trở nên dễ hiểu hơn khi đặt trong bối cảnh dùng bootc
    • Có thể tham khảo các ví dụ như NsCDE
  • Nó khiến tôi nhớ lại thời từng vọc Enlightenment

    • Đó là một nỗ lực nhằm đẩy các khả năng của X11 đến giới hạn
    • Thật ngạc nhiên là nó vẫn còn tồn tại
  • Tôi thấy hứng thú với các container có thể khởi động

    • Nó tương tự module impermanence của NixOS
  • Dự án bootc hiện là một trong những thứ thú vị nhất trên Linux

    • Sẽ rất hay nếu các dự án như Debian áp dụng nó
    • Có thể đạt được nhiều lợi ích về mặt ổn định
  • Ả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

    • Tôi đã nghĩ sẽ tồn tại những theme retro hoàn hảo và cả những theme thật sự độc đáo