Oasis – hệ thống Linux nhỏ gọn, liên kết tĩnh
(github.com/oasislinux)Oasis là một hệ thống Linux nhỏ gọn
- Oasis khá khác biệt so với các hệ điều hành dựa trên Linux khác và gần với BSD hơn.
- Toàn bộ phần mềm đều được liên kết tĩnh, giúp giải quyết vấn đề nâng cấp thư viện và cung cấp các tệp nhị phân hoàn toàn độc lập có thể dễ dàng sao chép sang hệ thống khác.
- Cung cấp khả năng build nhanh và build tái lập 100%, với thời gian build tối ưu, quy trình build có thể dự đoán và tái lập, giảm phụ thuộc vào thời gian build, đồng thời hỗ trợ build gia tăng ngay cả khi vượt qua ranh giới gói.
- Có mức phụ thuộc bootstrap tối thiểu, nên có thể dễ dàng cross-compile ngay cả trên các hệ thống không phải Linux như macOS hoặc OpenBSD.
Nguyên tắc
- Độ phức tạp của phần mềm cần được đo lường bao gồm toàn bộ các phụ thuộc bắc cầu.
- Các tệp thực thi phải được liên kết tĩnh.
- Các thành phần phần mềm phải cho phép tùy biến và chỉnh sửa dễ dàng.
- Mã nguồn gói phải được tham chiếu qua URL hoặc git submodule, không được nhúng trực tiếp.
/etcphải đủ đơn giản để có thể được hiểu hoàn toàn.- Các bản vá phải được tổ chức tốt, có mô tả rõ ràng và luôn áp dụng sạch sẽ.
Cài đặt
- Oasis là một dự án đầy tham vọng và vẫn còn nhiều việc phải làm.
- Người dùng nên quen với việc tự build kernel của mình và xử lý các sự cố hệ thống.
- Nếu gặp vấn đề, luôn sẵn sàng hỗ trợ.
QEMU
- Nếu muốn thử Oasis mà không cài đặt trực tiếp, bạn có thể dùng image QEMU.
- Gói lưu trữ bao gồm root filesystem, Linux kernel và script để chạy QEMU.
- Có thể chạy ở chế độ đồ họa bằng
./run, hoặc ở chế độ serial bằng./run -s.
Phần mềm
- Sử dụng các triển khai thư viện và công cụ đơn giản, nhỏ gọn nhất có thể.
- musl, sbase, ubase, pigz, mandoc, bearssl, oksh, sdhcp, vis, byacc, perp và sinit, netsurf, samurai, velox, netbsd-curses được dùng thay cho glibc, coreutils, util-linux, gzip, man-db, openssl, bash, dhclient/dhcpcd, vim/emacs, bison, sysvinit/systemd, chromium/firefox, ninja, Xorg, ncurses.
- Các gói được nhóm thành các tập hợp hợp lý; có thể xem toàn bộ danh sách trong thư mục pkg.
- Nếu phần mềm bạn ưa dùng bị thiếu, vẫn có thể cài qua pkgsrc hoặc nix.
Liên hệ
- Với câu hỏi, bản vá hoặc thảo luận chung, có thể sử dụng mailing list (~mcf/oasis@lists.sr.ht) và kênh IRC (#oasis on libera.chat).
Ý kiến của GN⁺
- Oasis đưa ra một cách tiếp cận khác so với các hệ thống Linux truyền thống, với các đặc điểm như liên kết tĩnh, build nhanh và phụ thuộc bootstrap tối thiểu, mang đến cho lập trình viên thêm một lựa chọn mới.
- Hệ thống này theo đuổi triết lý giảm độ phức tạp trong phát triển phần mềm và đề cao sự dễ dàng trong tùy biến, chỉnh sửa, từ đó mang lại một góc nhìn mới mẻ về các nguyên tắc kỹ nghệ phần mềm.
- Dù Oasis vẫn là một dự án đang được phát triển, nó có thể trở thành một lựa chọn hấp dẫn cho những người dùng thích thử thách kỹ thuật và muốn hiểu sâu về hệ thống.
1 bình luận
Ý kiến trên Hacker News
Không thể nói nhiều về hệ thống này, nhưng khi tương tác với cộng đồng qua IRC thì họ rất thân thiện. Đã có kế hoạch xây dựng một ảnh OS bất biến để chạy làm node Kubernetes, và với một chút trợ giúp thì đã thành công.
Liên kết tĩnh cho thấy ảnh cơ sở và bộ nhớ lúc chạy có thể lớn hơn do có nhiều bản sao của thư viện. Sự đơn giản của liên kết tĩnh là điểm tốt, nhưng có vẻ đi ngược lại ý tưởng "giảm dung lượng".
Có cung cấp liên kết đến cuộc thảo luận trước đó vào tháng 8 năm 2022.
Tò mò không biết kích thước cài đặt mặc định là bao nhiêu. Không tìm thấy câu trả lời ở đâu cả, và liên kết đến ảnh QEMU hiện đang bị hỏng. Ví dụ, muốn biết nó như thế nào nếu so với Alpine có bộ gói tương tự.
Tò mò về các trường hợp sử dụng và lợi thế của việc dùng trình biên dịch C croc. Lợi ích của việc dùng croc thay vì TCC là gì, và thấy thú vị khi biết đến trình duyệt Netsurf. Tuy nhiên, vì nó dùng engine JS Duktape nên có thể sẽ có vấn đề về hiệu năng.
Có một bình luận (đã bị xóa) phàn nàn rằng không thể truy cập Github khi tắt JavaScript. Kho lưu trữ Oasis cũng được mirror trên sourcehut, nên điều đó có thể dễ chấp nhận hơn.
michaelforney cũng đã thực hiện bản port wayland của st. Tiền thân của Oasis là sta.li.
Tò mò không biết kích thước của các thư viện tĩnh là bao nhiêu. Thư viện động có thể chia sẻ không gian địa chỉ, nhưng với thư viện tĩnh, linker có thể loại bỏ các routine không dùng đến, nên có thể có những hiệu quả ngoài dự đoán. Ngoài ra, nó cũng có thể nhanh hơn.
Tò mò về sự so sánh giữa musl và glibc truyền thống, và liệu có khác biệt hiệu năng nào giữa hai thư viện hay không. Gần đây việc dùng musl trong hệ sinh thái Rust và Zig đang ngày càng nhiều hơn.
Đánh giá tích cực về những lựa chọn thú vị, vì đây không chỉ đơn thuần là một bản phân phối Linux khác.