Dalam program ruang pengguna, main()
adalah titik masuk ke program yang dipanggil oleh kode inisialisasi libc ketika biner dijalankan. Kode kernel tidak memiliki kemewahan untuk bergantung pada libc, karena libc sendiri bergantung pada antarmuka syscall kernel untuk alokasi memori, I / O, manajemen proses dll.
Yang mengatakan, setara dengan main()
dalam kode kernel adalah start_kernel()
, yang dipanggil oleh bootloader setelah memuat gambar kernel, mendekompresinya ke dalam memori dan mengatur perangkat keras penting dan paging memori. start_kernel()
melakukan sebagian besar pengaturan sistem dan akhirnya memunculkan proses init.
Titik masuk ke modul kernel Linux adalah fungsi init yang terdaftar dengan kernel dengan memanggil module_init()
makro. Fungsi init modul terdaftar kemudian dipanggil oleh kode kernel melalui do_initcalls()
fungsi tersebut saat startup kernel.