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
[sunting | sunting sumber]Dalam 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)