Câu trả lời ngắn:
- Không, nó không phải là một quá trình
- Chủ đề người dùng không được bắt nguồn từ init.
Ban đầu chỉ là quá trình đầu tiên; nó không quản lý bất kỳ quy trình hoặc chủ đề. Nó tạo ra một số, sử dụng kernel syscalls fork () và exec.
Tôi nghĩ rằng bạn có một ý tưởng lầy lội về quá trình là gì. nó không chỉ có nghĩa là một chút thực thi mã. Vâng, kernel thực thi trước init (và bộ tải khởi động trước đó). Nhưng một "quy trình" có một định nghĩa cụ thể về:
- Chạy trong không gian người dùng
- Chạy với ID tiến trình
- Nhiều tương tác cần phải đi qua kernel
- Tất cả tài nguyên cần đến từ kernel
- Cần phải được lên lịch bởi kernel
Vì vậy, một khi kernel khởi tạo, nó sẽ chạy init, sau đó sinh ra bất kỳ quá trình nào khác mà cấu hình của nó nói đến.
Theo như # 2, tất cả các công cụ kernel là, trong kernel. Hãy nghĩ về kernel như một vùng mã lớn. Một lần nữa, không phải là một quá trình, mà là một blob mã lớn. Các phần của kernel xử lý việc quản lý bộ nhớ, các phần của nó với các phần lập lịch của chính nó (như trình điều khiển, v.v.) và các phần của nó với các quy trình lập lịch.