Pemuat (komputer)

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

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:

  1. validasi (izin, persyaratan memori, dan lain-lain);
  2. menyalin program gambar dari cakram ke memori utama;
  3. menyalin argumen baris perintah pada stack;
  4. menginisialisasi register (misalnya stack pointer);
  5. 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:

  1. inisialisasi struktur dalam DLL itu sendiri (yaitu bagian penting, modul daftar);
  2. validasi eksekusi untuk dimuat;
  3. penciptaan sebuah tumpukan (melalui fungsi RtlCreateHeap);
  4. alokasi blok variabel lingkungan dan blok PATH;
  5. penambahan eksekusi dan NTDLL ke dalam daftar modul;
  6. pemuatan KERNEL32.DLL untuk memperoleh beberapa fungsi penting, misalnya BaseThreadInitThunk;
  7. pemuatan eksekusi impor (yaitu dynamic-link libraries) secara rekursif (memeriksa impor pengimporan, impor, dan sebagainya);
  8. dalam mode pengawakutuan, meningkatkan sistem breakpoint;
  9. inisialisasi DLL;
  10. pengumpulan sampah;
  11. memanggil NtContinue dalam konteks parameter yang diberikan untuk fungsi pemuat (yaitu melompat ke RtlUserThreadStart, yang akan mulai dieksekusi)

Referensi[sunting | sunting sumber]

  1. ^ "exec". The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition. The Open Group. Diakses tanggal 2008-06-23.