Binary File Descriptor library
বাইনারি ফাইল বর্ণনাকারী গ্রন্থাগার (বি. এফ. ডি) হল বিভিন্ন বিন্যাসে অবজেক্ট ফাইলগুলির বহনযোগ্য ম্যানিপুলেশনের জন্য জি. এন. ইউ প্রকল্পের প্রধান প্রক্রিয়া। এটি প্রায় 25টি নির্দেশ সেট স্থাপত্যের জন্য প্রায় 50টি ফাইল বিন্যাসকে সমর্থন করে। ইতিহাস যখন সিগনাস সাপোর্টের ডেভিড হেনকেল-ওয়ালেস কোম্পানির জন্য নতুন ব্যবসায়িক সুযোগ উন্মুক্ত করার উপায় হিসাবে গ্রন্থাগারটি বিকাশের প্রস্তাব দিয়েছিলেন, তখন রিচার্ড স্টলম্যান বলেছিলেন যে এটি কঠিন হবে; ডেভিডের প্রতিক্রিয়া ছিল যে এটি এমন "বিগ ফাকিং ডিল" ছিল না। সংক্ষেপে "বি. এফ. ডি", এটি গ্রন্থাগারের নাম হয়ে ওঠে। "বাইনারি ফাইল ডিস্ক্রিপ্টর" পরে "বি. এফ. ডি"-এর সংক্ষিপ্ত রূপ হিসাবে উদ্ভাবিত হয়েছিল। ডিজাইন বি. এফ. ডি অবজেক্ট ফাইলগুলির একটি সাধারণ বিমূর্ত দৃশ্য উপস্থাপন করে কাজ করে। একটি অবজেক্ট ফাইলের বর্ণনামূলক তথ্য সহ একটি "হেডার" থাকে; "বিভাগগুলির" একটি পরিবর্তনশীল সংখ্যা যার প্রত্যেকটির একটি নাম, কিছু বৈশিষ্ট্য এবং তথ্যের একটি ব্লক থাকে; একটি প্রতীক টেবিল; স্থানান্তর এন্ট্রি; এবং আরও অনেক কিছু। অভ্যন্তরীণভাবে, বি. এফ. ডি বিমূর্ত দৃশ্য থেকে তথ্যকে লক্ষ্য প্রসেসর এবং ফাইল বিন্যাসের জন্য প্রয়োজনীয় বিট/বাইট বিন্যাসের বিবরণে অনুবাদ করে। এর মূল পরিষেবাগুলির মধ্যে রয়েছে বিট অর্ডারের পার্থক্যগুলি পরিচালনা করা, যেমন একটি ছোট-এন্ডিয়ান হোস্ট এবং বড়-এন্ডিয়ান লক্ষ্যের মধ্যে, 32-বিট এবং 64-বিট ডেটার মধ্যে সঠিক রূপান্তর এবং স্থানান্তর এন্ট্রি দ্বারা নির্দিষ্ট ঠিকানার গাণিতিক বিবরণ। বি. এফ. ডি গ্রন্থাগারকে যৌক্তিকভাবে দুটি ভাগে ভাগ করা যেতে পারে। ফ্রন্ট এন্ড এবং ব্যাক এন্ড। ফ্রন্ট-এন্ড অন্তর্নিহিত অবজেক্ট ফাইল ভিউ থেকে স্বাধীন একটি সাধারণ ইন্টারফেস দেয়। ব্যবহারকারীরা এই ইন্টারফেসের সাথে অবজেক্ট ফাইলগুলির সাথে যোগাযোগ করবেন। এমনকি যদি অবজেক্ট ফাইলগুলির বিন্যাস ব্যবহারকারীকে চেনে না, তবুও ব্যবহারকারী ইন্টারফেসটি ব্যবহার করতে সক্ষম হয়। এই বিবরণ লুকানো ব্যাক-এন্ডের সাহায্যে করা হয়। ফ্রন্ট-এন্ড ইন্টারফেস কীভাবে অবজেক্ট ফাইল বিন্যাসের সাথে যোগাযোগ করে তা ব্যাক-এন্ড প্রয়োগ করে। যখনই কোনও নতুন অবজেক্ট ফাইলের ধরন চালু করা হয় তখন ব্যাক-এন্ডকে টাইপটি নিবন্ধিত করতে হবে এবং বিএফডি অ্যাপ্লিকেশন দ্বারা সমর্থিত হওয়ার প্রয়োজন হলে এটি প্রয়োগ করতে হবে। যদিও বি. এফ. ডি মূলত বিভিন্ন ধরনের সরঞ্জাম দ্বারা ব্যবহারযোগ্য একটি সাধারণ গ্রন্থাগার হিসাবে ডিজাইন করা হয়েছিল, তবে নতুন সিস্টেমের ক্ষমতাগুলিকে সামঞ্জস্য করার জন্য এপিআই-এর সাথে ঘন ঘন টিঙ্কার করার প্রয়োজনীয়তা এর ব্যবহারকে সীমাবদ্ধ করার প্রবণতা দেখিয়েছে; বি. এফ. ডি-র প্রধান ক্লায়েন্ট হল জি. এন. ইউ অ্যাসেম্বলার (জিএএস), জি. এন. ইউ লিঙ্কার (জি. এল. ডি), এবং অন্যান্য জি. এন. ইউ বাইনারি ইউটিলিটিজ ("বাইনুটিলস") সরঞ্জাম এবং জি. এন. ইউ ডিবাগার (জি. ডি. বি)। ফলস্বরূপ, বিএফডি আলাদাভাবে বিতরণ করা হয় না, তবে সর্বদা বাইনুটিল এবং জিডিবি প্রকাশের সাথে অন্তর্ভুক্ত করা হয়। তা সত্ত্বেও, এমবেডেড সিস্টেম ডেভেলপমেন্টের জন্য জি. এন. ইউ সরঞ্জাম ব্যবহারের ক্ষেত্রে বি. এফ. ডি একটি গুরুত্বপূর্ণ উপাদান। বি. এফ. ডি গ্রন্থাগারটি একটি মূল ডাম্প থেকে কাঠামোগত তথ্য পড়তে ব্যবহার করা যেতে পারে। বি. এফ. ডি লাইব্রেরি ব্যবহার যেমনঃ বি. এফ. ডি লাইব্রেরি এপিস ব্যবহার করে অবজেক্ট ফাইলের আকার মুদ্রণ করুন। #include "bfd.h" #include <stdio.h> ইন্ট মেইন () {বিএফডি * এবিএফডি = বিএফডি _ ওপেনআর ("এ. ও"., এন. ইউ. এল. এল); প্রিন্টএফ ("% এল. এল. ইউ"., বিএফডি _ গেট _ সাইজ (এ. বি. এফ. ডি)); রিটার্ন 0;} কমান্ড তৈরি করুনঃ জি. সি. সি <আই. ডি2>-এল. বি. এফ. ডি-ও আউটপুট।/আউটপুট #আকারের রেফারেন্স প্রিন্ট করে।