Saya tahu .so
file adalah semacam perpustakaan dinamis (banyak utas dapat berbagi perpustakaan seperti itu sehingga tidak perlu memiliki lebih dari satu salinan di memori). Tetapi apa perbedaan antara .a
dan .la
? Apakah ini semua perpustakaan statis?
Jika lib dinamis memiliki keunggulan besar dibandingkan yang statis, mengapa masih ada banyak perpustakaan statis?
Saya juga ingin tahu mekanisme yang mendasari untuk memuat pustaka (kedua jenis) dan bagaimana sepotong kode dalam lib dipanggil ketika digunakan di suatu tempat. Bagian mana dari kernel yang harus saya pelajari? Dan perintah / utilitas Linux apa yang harus saya ketahui untuk mengetahui bagaimana suatu proses berjalan? (Saya hanya tahu ld
perintah sekarang)
Kapan saya harus mencoba membuat kode menjadi .so
atau .a
? Mana yang lebih baik?
[mirror@home ins_openvpn]$ ls lib/openvpn/plugins/ -l
total 96
-rw-r--r-- 1 mirror mirror 22892 Sep 2 23:25 openvpn-plugin-auth-pam.a
-rwxr-xr-x 1 mirror mirror 931 Sep 2 23:25 openvpn-plugin-auth-pam.la
-rwxr-xr-x 1 mirror mirror 23621 Sep 2 23:25 openvpn-plugin-auth-pam.so
-rw-r--r-- 1 mirror mirror 17228 Sep 2 23:25 openvpn-plugin-down-root.a
-rwxr-xr-x 1 mirror mirror 932 Sep 2 23:25 openvpn-plugin-down-root.la
-rwxr-xr-x 1 mirror mirror 18805 Sep 2 23:25 openvpn-plugin-down-root.so