.So, .la এবং .a লাইব্রেরি ফাইলগুলির মধ্যে পার্থক্য কী?


230

আমি জানি একটি .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

উত্তর:


306

.soফাইলগুলি ডায়নামিক লাইব্রেরি । প্রত্যয়টি "শেয়ার করা অবজেক্ট" হিসাবে দাঁড়িয়েছে, কারণ গ্রন্থাগারের সাথে সংযুক্ত সমস্ত অ্যাপ্লিকেশন একই ফলস্বরূপ এক্সিকিউটেবলের অনুলিপি না করে একই ফাইল ব্যবহার করে।

.aফাইলগুলি স্ট্যাটিক লাইব্রেরি হয় । প্রত্যয়টি "সংরক্ষণাগার" হিসাবে দাঁড়িয়েছে, কারণ তারা আসলে কেবল একটি সংরক্ষণাগার ( arকমান্ড দিয়ে তৈরি - একটি পূর্বসূরীরtar মূল .o অবজেক্ট ফাইলগুলির যা এখন কেবল গ্রন্থাগার তৈরির জন্য ব্যবহৃত হয়)।

.laফাইলগুলি হ'ল পাঠ্য ফাইলগুলি जीএনইউ "লাইবটুলস" প্যাকেজ দ্বারা ব্যবহৃত লাইব্রেরি তৈরির ফাইলগুলি বর্ণনা করতে ব্যবহৃত হয় । আপনি এই প্রশ্নে তাদের সম্পর্কে আরও তথ্য খুঁজে পেতে পারেন: লিবটোলের .la ফাইলটি কী জন্য?

স্ট্যাটিক এবং ডায়নামিক লাইব্রেরিগুলির প্রত্যেকের পক্ষে ভাল এবং কনস রয়েছে।

স্থিতিশীল প্রো: ব্যবহারকারী আপনার লাইব্রেরির যে সংস্করণটি আপনি নিজের অ্যাপ্লিকেশনটির সাথে পরীক্ষা করেছেন তা সর্বদা ব্যবহার করে, সুতরাং কোনও আশ্চর্যজনক সামঞ্জস্যতা সমস্যা হওয়া উচিত নয়।

স্ট্যাটিক কন: কোনও সমস্যা যদি কোনও লাইব্রেরিতে স্থির করা হয়, তবে আপনার সুবিধাটি নিতে আপনার অ্যাপ্লিকেশনটিকে পুনরায় বিতরণ করতে হবে। যাইহোক, এটি গ্রন্থাগার না থাকলে ব্যবহারকারীরা নিজেরাই আপডেট করার সম্ভাবনা রয়েছে, আপনার যেকোনভাবে এটি করার প্রয়োজন হতে পারে।

ডায়নামিক প্রো: আপনার প্রক্রিয়াটির মেমরির পদচিহ্ন ছোট, কারণ গ্রন্থাগারের জন্য ব্যবহৃত মেমরিটি লাইব্রেরি ব্যবহার করে সমস্ত প্রক্রিয়াগুলির মধ্যে এমরোটাইজড।

গতিশীল প্রো: লাইব্রেরিগুলি চালনার সময়ে চাহিদা অনুযায়ী লোড করা যায়; এটি প্লাগইনগুলির পক্ষে ভাল, সুতরাং সফ্টওয়্যারটি সংকলন ও ইনস্টল করার সময় আপনাকে প্লাগিনগুলি ব্যবহার করতে হবে না। ফ্লাইতে নতুন প্লাগইন যুক্ত করা যায়।

ডায়নামিক কন: গ্রন্থাগারটি সেই সিস্টেমে উপস্থিত থাকতে পারে যেখানে কেউ অ্যাপ্লিকেশন ইনস্টল করার চেষ্টা করছে, বা তাদের এমন সংস্করণ থাকতে পারে যা অ্যাপ্লিকেশনটির সাথে সামঞ্জস্যপূর্ণ নয়। এটি প্রশমিত করতে, অ্যাপ্লিকেশন প্যাকেজটিতে গ্রন্থাগারের একটি অনুলিপি অন্তর্ভুক্ত থাকতে পারে, সুতরাং এটি প্রয়োজনে এটি ইনস্টল করতে পারে। এটি প্রায়শই প্যাকেজ পরিচালকদের দ্বারা প্রশমিত করা হয়, যা প্রয়োজনীয় প্রয়োজনীয়তাগুলি ডাউনলোড এবং ইনস্টল করতে পারে।

ডায়নামিক লাইব্রেরি বিশেষত সিস্টেম লাইব্রেরিগুলির জন্য দরকারী libc। এই লাইব্রেরিতে প্রায়শই নির্দিষ্ট ওএস এবং সংস্করণের উপর নির্ভরশীল কোড অন্তর্ভুক্ত করা দরকার কারণ কার্নেল ইন্টারফেসগুলি পরিবর্তিত হয়েছে। আপনি যদি কোনও প্রোগ্রামকে একটি স্ট্যাটিক সিস্টেম লাইব্রেরির সাথে সংযুক্ত করেন তবে এটি কেবল ওএসের সংস্করণে চলবে যা এই লাইব্রেরির সংস্করণটির জন্য লেখা হয়েছিল। তবে আপনি যদি ডায়নামিক লাইব্রেরি ব্যবহার করেন তবে এটি স্বয়ংক্রিয়ভাবে আপনার চালিত সিস্টেমে ইনস্টল করা লাইব্রেরিটি বেছে নেবে।


1
@ বারমার, সুতরাং আপনি কি বলছেন যে স্থির গ্রন্থাগারগুলির সুবিধাগুলি গতিশীল লাইব্রেরির সুবিধার চেয়ে বেশি?
পেসারিয়ার

4
@ পেসারিয়্যার আমি জানি না আপনি কোথা থেকে এটি পেয়েছেন।
বার্মার

13
এটি অর্থহীন প্রশ্ন। নীতিগত ওষুধের ওজন পরিস্থিতিগুলির উপর নির্ভর করে, কোনও সার্বজনীন উত্তর নেই। দেখে মনে হচ্ছে আপনার কোনও এজেন্ডা রয়েছে এবং আপনি আমাকে টোপ দেওয়ার চেষ্টা করছেন।
বারমার

3
@ বারমার, নাহ আমি নির্দোষ শুধু একটি কৌতূহল-এর।
পেসারিয়ার

11
আর একটি বিষয় লাইসেন্স দেওয়া - এলজিপিএলটির বাণিজ্যিক প্রসঙ্গে গতিশীল সংযোগ প্রয়োজন, যেখানে আপনি নিজের উত্সটি বিতরণ করতে চান না।
স্যাম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.