Sau gần ba năm phát triển, hệ thống khởi tạo Finit 4.0 (Fast init) đã được phát hành. Nó được phát triển như một giải pháp thay thế đơn giản cho SysV init và systemd. Dự án dựa trên công việc được tạo ra bằng cách đảo ngược kỹ thuật hệ thống khởi tạo fastinit được sử dụng trong Linux- Phần mềm nhúng (firmware) dành cho netbook EeePC nổi bật với tốc độ khởi động cực nhanh. Hệ thống này chủ yếu hướng đến việc khởi động các hệ thống nhỏ gọn và nhúng, nhưng cũng có thể được sử dụng trong môi trường máy tính để bàn và máy chủ tiêu chuẩn. Các kịch bản triển khai ví dụ đã được chuẩn bị cho Void. LinuxAlpine Linux и Debian GNU /LinuxMã nguồn của dự án được viết bằng ngôn ngữ C và được phân phối theo giấy phép MIT.
Finit hỗ trợ runlevel theo kiểu init SysV, theo dõi tình trạng của các tiến trình nền (tự động khởi động lại dịch vụ trong trường hợp lỗi), thực thi các trình xử lý một lần, khởi chạy các dịch vụ có tính đến các phần phụ thuộc và điều kiện tùy ý, đính kèm các trình xử lý bổ sung để chạy trước hoặc sau thực hiện dịch vụ. Ví dụ: bạn có thể định cấu hình một dịch vụ chỉ bắt đầu sau khi có quyền truy cập mạng hoặc sau khi một số dịch vụ khác, chẳng hạn như syslogd, đã bắt đầu. Cgroups v2 được sử dụng để thiết lập các hạn chế.
Để mở rộng chức năng và thích ứng với nhu cầu của bạn, bạn có thể sử dụng plugin, trong đó hệ thống hook được cung cấp cho phép bạn gắn trình xử lý vào các giai đoạn tải và thực thi dịch vụ khác nhau, cũng như cung cấp liên kết với các sự kiện bên ngoài. Ví dụ: các plugin đã được chuẩn bị để hỗ trợ D-Bus, ALSA, netlink, resolvconf, cắm nóng thiết bị, kiểm tra tính khả dụng và tải mô-đun hạt nhân, xử lý tệp PID và thiết lập môi trường cho máy chủ X.
Việc sử dụng các tập lệnh chuẩn để khởi động các dịch vụ được tạo cho SysV init được hỗ trợ (/etc/rc.d và /etc/init.d không được sử dụng, nhưng hỗ trợ cho /etc/inittab có thể được triển khai thông qua một plugin), cũng như các tập lệnh rc.local, các tệp chứa biến môi trường và cài đặt mạng /etc/network/interfaces, như trong Debian và BusyBox. Các thiết lập có thể được định nghĩa trong một tệp cấu hình duy nhất /etc/finit.conf hoặc phân tán trên nhiều tệp trong thư mục /etc/finit.d.
Việc quản lý được thực hiện thông qua các công cụ initctl và run-parts tiêu chuẩn, cho phép bạn kích hoạt và hủy kích hoạt các dịch vụ liên quan đến cấp độ chạy, cũng như khởi chạy có chọn lọc một số dịch vụ. Finit cũng bao gồm triển khai getty tích hợp (quản lý đăng nhập thiết bị đầu cuối và người dùng), cơ quan giám sát để theo dõi tình trạng và chế độ khôi phục sự cố với sulogin tích hợp để chạy shell lệnh riêng biệt.

Trong số các thay đổi được thêm vào trong bản phát hành Finit 4.0 (phiên bản 3.2 đã bị bỏ qua do những thay đổi đã phá vỡ khả năng tương thích ngược):
- Tiện ích khởi động lại riêng biệt đã được thay thế bằng một liên kết tượng trưng đến initctl, tương tự như các tiện ích tạm dừng, tắt máy, tắt nguồn và tạm dừng.
- Chỉ dẫn về tiến độ hoạt động đã được thực hiện.
- Hoạt động của lệnh “inictl cond set|clear COND” đã được thay đổi để liên kết các hành động với các sự kiện khác nhau. Cú pháp được sử dụng để xác định dịch vụ là thay vì ràng buộc với đường dẫn .
- Chức năng tích hợp sẵn đã bị loại bỏ. người phục vụ inetd, trong đó có thể cài đặt xinetd nếu cần.
- Đã thêm hỗ trợ cho cgroups v2 để chạy các dịch vụ trong các nhóm riêng biệt.
- Đã thêm chế độ khôi phục sự cố với suslogin của riêng nó.
- Đã thêm hỗ trợ cho tập lệnh bắt đầu/dừng từ SysV init.
- Đã thêm trình xử lý pre:script và post:script cho phép bạn chỉ định các hành động của mình được thực hiện trước hoặc khi dịch vụ bắt đầu.
- Đã thêm hỗ trợ cho tệp env: với các biến môi trường.
- Đã thêm khả năng theo dõi các tệp PID tùy ý.
- Đã thêm khả năng khởi chạy các tác vụ và dịch vụ bằng đường dẫn tương đối.
- Đã thêm tùy chọn "-b" vào initctl để thực hiện các hành động ở chế độ không tương tác (chế độ hàng loạt).
- Cơ quan giám sát tích hợp đã được thay thế bằng một phiên bản watchdogd riêng biệt.
- Đã thêm plugin để tự động tải mô-đun hạt nhân cho các thiết bị được kết nối trong quá trình hoạt động.
- Đã thêm plugin để xử lý /etc/modules-load.d/.
- Đã thêm hỗ trợ để tự động khởi động lại dịch vụ sau khi thay đổi cài đặt, cho phép bạn thực hiện mà không cần thực hiện lệnh “initctl tải lại” theo cách thủ công. Bị tắt theo mặc định và yêu cầu xây dựng lại bằng "./configure --enable-auto-reload".
- Đã thêm khả năng ghi nhật ký các hoạt động ảnh hưởng đến bảo mật, chẳng hạn như thay đổi runlevel, khởi động và dừng dịch vụ cũng như lỗi dịch vụ.
- Cải thiện hỗ trợ cho /etc/network/interfaces.
Nguồn: opennet.ru
