Init trên Ubuntu làm gì?


13

Tôi đã biết rằng đó initlà chương trình ma thuật cần thiết để khởi động máy tính của bạn và quản lý đường băng, nhưng mục đích thực sự của nó là gì?

Tại sao chúng ta thậm chí cần initở nơi đầu tiên? Tại sao bộ nạp khởi động không thể nói với Upstart những chương trình nào nên chạy và không chạy?

Câu hỏi này trong câu trả lời (muộn) cho câu hỏi Điều gì sẽ xảy ra nếu initbị xóa? câu hỏi


initlà mẹ của tất cả các quá trình.
ctrl-alt-delor

Việc viết chức năng của initmột quá trình người dùng sẽ dễ dàng hơn là viết nó trong kernel. Nếu nó được ghi trong kernel, thì ai đó sẽ thêm một tiến trình startersẽ chạy trong không gian người dùng, điều đó linh hoạt hơn. Do đó nhân đôi chức năng. Vì vậy, tốt nhất là giữ cho phần nhân càng đơn giản càng tốt.
ctrl-alt-delor

man init > "What does init on Ubuntu do"và đọc nó trong thư mục nhà
αғsнιη

Câu trả lời:


6

Xem hướng dẫn cho initcác hệ thống Unix .

Đây là một bài đăng từ mục Wikipedia trêninit :

Trong các hệ điều hành máy tính dựa trên Unix, init (viết tắt của khởi tạo) là quá trình đầu tiên được bắt đầu trong quá trình khởi động hệ thống máy tính. Ban đầu là một quá trình daemon tiếp tục chạy cho đến khi hệ thống được tắt. Nó là tổ tiên trực tiếp hoặc gián tiếp của tất cả các quy trình khác và tự động chấp nhận tất cả các quy trình mồ côi. Ban đầu được khởi động bởi kernel bằng tên tệp được mã hóa cứng và nếu kernel không thể khởi động nó, thì sự hoảng loạn của kernel sẽ xảy ra. Ban đầu thường được gán định danh quy trình 1.

Thiết kế của init đã chuyển hướng trong các hệ thống Unix như System III và System V, từ chức năng được cung cấp bởi init trong Research Unix và các dẫn xuất BSD của nó. Việc sử dụng trên hầu hết các bản phân phối Linux tương thích với System V, nhưng một số bản phân phối, chẳng hạn như Slackware, sử dụng kiểu BSD và các bản khác, như Gentoo, có phiên bản tùy chỉnh riêng.

Một số triển khai init thay thế đã được viết với nỗ lực giải quyết các hạn chế thiết kế trong các phiên bản tiêu chuẩn. Chúng bao gồm launchd, Cơ sở quản lý dịch vụ, systemd và Upstart, thứ hai đang được Ubuntu và một số bản phân phối Linux khác sử dụng.

Hy vọng điều này sẽ giúp giải thích nó cho bạn; nó rất nhiều đọc.


3

upstartsystemdinitcác hệ thống. Theo quy ước (và có lẽ các ràng buộc khác), chương trình vẫn được gọi init, bất kể có systemdhay upstartkhông một cái gì khác đang chơi. Đừng để tên quá trình đánh lừa bạn. PID1 không còn là SysV initnữa. Nó đã không được một thời gian trên Ubuntu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.