मुझे पता है कि एक .so
फ़ाइल एक प्रकार की डायनेमिक लाइब्रेरी है (बहुत सारे थ्रेड ऐसे पुस्तकालयों को साझा कर सकते हैं ताकि स्मृति में इसकी एक से अधिक प्रति होने की आवश्यकता न हो)। लेकिन मध्य क्या अंतर है .a
और .la
? क्या ये सभी स्थिर पुस्तकालय हैं?
यदि डायनेमिक लिबास में स्थैतिक लोगों के लिए बड़े फायदे हैं, तो अभी भी बहुत सारे स्थिर पुस्तकालय क्यों हैं?
मैं पुस्तकालयों (दोनों प्रकार) को लोड करने के लिए अंतर्निहित तंत्र को भी जानना चाहता हूं और एक परिवाद में कोड का एक टुकड़ा कैसे लागू किया जाता है जब इसे कहीं इस्तेमाल किया जाता है। कर्नेल के किस भाग का मुझे अध्ययन करना चाहिए? और क्या संबंधित लिनक्स कमांड / उपयोगिता मुझे पता होना चाहिए कि एक प्रक्रिया कैसे चल रही है? (मैं अब तक केवल ld
कमांड जानता हूं )
मुझे कब .so
या में कोड बनाने की कोशिश करनी चाहिए .a
? इनमे से कौन बेहतर है?
[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