Tôi đã trải qua một hướng dẫn về việc thiết lập một initramfs tùy chỉnh trong đó nêu rõ:
Điều duy nhất còn thiếu là / init, tệp thực thi trong thư mục gốc của initramfs được thực thi bởi kernel sau khi được tải. Vì sys-apps / busybox bao gồm shell đầy đủ chức năng, điều này có nghĩa là bạn có thể viết nhị phân / init của mình dưới dạng tập lệnh shell đơn giản (thay vì biến nó thành một ứng dụng phức tạp được viết bằng Trình biên dịch hoặc C mà bạn phải biên dịch).
và đưa ra một ví dụ về init như một kịch bản shell bắt đầu bằng #!/bin/busybox sh
Cho đến nay, tôi đã có ấn tượng rằng init là quá trình chính được đưa ra và tất cả các quá trình không gian người dùng khác cuối cùng là con của init. Tuy nhiên, trong ví dụ đã cho, quá trình đầu tiên thực sự là bin/busybox/ sh
từ đó init được sinh ra.
Đây có phải là một interpertation chính xác? Ví dụ, nếu tôi có một trình thông dịch có sẵn tại thời điểm đó, tôi có thể viết init dưới dạng tập lệnh Python, v.v.?
/
không biến mất trong không khí mỏng - nó được gắn kết (mặc dù thông thường nội dung của nó sẽ bị xóa trước khi để tiết kiệm bộ nhớ) . Nó vẫn ở đó .switch_root
hiện tòa nhàswitchroot
- đó là những gì các nhà phát triển kernel đã cung cấp khi họ thay đổi quá trình khởi động trong kernel 2.6. Một cái gì đó để yêu cầu initramfs. Nó là hạt nhân làm điều kỳ diệu.