Pemuat (komputer)
Dalam sistem komputer, pemuat adalah bagian dari sistem operasi yang bertanggung jawab untuk memuat program-program dan pustaka perangkat lunak. Ini adalah salah satu tahap penting dalam proses memulai sebuah program, seperti menempatkan program-program ke memori dan mempersiapkannya untuk dijalankan. Memuat sebuah program melibatkan pembacaan isi dari berkas yang dapat dijalankan yang berisi instruksi-instruksi program ke dalam memori, dan kemudian melaksanakan persiapan lain yang diperlukan oleh tugas-tugas untuk mempersiapkan berkas itu untuk dijalankan. Setelah pemuatan selesai, sistem operasi memulai program dengan melewatkan kontrol pada kode program yang dimuat.
Tanggung jawab
suntingDalam Unix, pemuat adalah penanganan untuk sistem panggilan execve()
.[1] Tugas pemuat Unix meliputi:
- validasi (izin, persyaratan memori, dan lain-lain);
- menyalin program gambar dari cakram ke memori utama;
- menyalin argumen baris perintah pada stack;
- menginisialisasi register (misalnya stack pointer);
- melompat ke titik awal program (
_start
).
Dalam Microsoft Windows 7 dan versi di atasnya, pemuat adalah fungsi LdrInitializeThunk
yang terkandung dalam ntdll.dll, yang melakukan hal berikut:
- inisialisasi struktur dalam DLL itu sendiri (yaitu bagian penting, modul daftar);
- validasi eksekusi untuk dimuat;
- penciptaan sebuah tumpukan (melalui fungsi
RtlCreateHeap
); - alokasi blok variabel lingkungan dan blok PATH;
- penambahan eksekusi dan NTDLL ke dalam daftar modul;
- pemuatan KERNEL32.DLL untuk memperoleh beberapa fungsi penting, misalnya
BaseThreadInitThunk
; - pemuatan eksekusi impor (yaitu dynamic-link libraries) secara rekursif (memeriksa impor pengimporan, impor, dan sebagainya);
- dalam mode pengawakutuan, meningkatkan sistem breakpoint;
- inisialisasi DLL;
- pengumpulan sampah;
- memanggil
NtContinue
dalam konteks parameter yang diberikan untuk fungsi pemuat (yaitu melompat keRtlUserThreadStart
, yang akan mulai dieksekusi)