Di Linux, bagaimana sebuah program dimuat ke dalam memori ketika OS memutuskan untuk menjalankannya?

2

Seperti yang kita ketahui, Linux mengimplementasikan cache halaman untuk menyimpan kode atau data dari potongan file yang berpotensi digunakan. Salah satu pertanyaan saya adalah, ketika suatu program, mis. vim, apakah akan berjalan, data dan kodenya akan dimuat pertama kali ke cache halaman itu, kan?

Dan saya juga tidak yakin dengan pemahaman saya yang lain. Apakah OS hanya memuat beberapa bagian kode yang akan segera digunakan ketika program dimulai? Atau OS memuat semuanya sekaligus? OS menggunakan cache kecepatan file untuk menyimpan kode dan data yang dimuat, kan? Fungsi modul apa yang digunakan OS untuk melakukan pemuatan kode?

Xin Li
sumber

Jawaban:

0

data dan kodenya akan dimuat pertama kali ke dalam cache halaman itu, bukan?

Iya nih.

Apakah OS hanya memuat beberapa bagian dari kode yang akan digunakan   segera ketika program dimulai? Atau OS memuat semuanya sekaligus?

Beberapa potong. Sebenarnya ketika kode sebenarnya akan dieksekusi - page_fault akan terjadi, dan halaman akan dipindahkan ke memori (page_cache) dari file terkait

Fungsi modul apa yang digunakan OS untuk melakukan kode   pemuatan?

load_elf_binary http://lxr.free-electrons.com/source/fs/binfmt_elf.c#L663

Alex Hoppus
sumber