Trong các chương trình không gian người dùng, main()
là điểm vào chương trình được gọi bởi mã khởi tạo libc khi nhị phân được thực thi. Mã hạt nhân không có sự sang trọng để dựa vào libc, vì chính libc dựa vào giao diện tòa nhà nhân để phân bổ bộ nhớ, I / O, quản lý quy trình, v.v.
Điều đó nói rằng, tương đương với main()
mã hạt nhân start_kernel()
, được gọi bởi bộ tải khởi động sau khi đã tải hình ảnh hạt nhân, giải nén nó vào bộ nhớ và thiết lập phân trang phần cứng và bộ nhớ thiết yếu. start_kernel()
thực hiện phần lớn thiết lập hệ thống và cuối cùng sinh ra quá trình init.
Điểm vào các mô-đun hạt nhân Linux là một hàm init được đăng ký với kernel bằng cách gọi module_init()
macro. Hàm init mô-đun đã đăng ký sau đó được gọi bởi mã kernel thông qua do_initcalls()
chức năng trong khi khởi động kernel.