Binary File Descriptor library
બાઈનરી ફાઇલ ડિસ્ક્રીપ્ટર લાઇબ્રેરી (બી. એફ. ડી.) એ વિવિધ સ્વરૂપોમાં ઓબ્જેક્ટ ફાઇલોના પોર્ટેબલ હેરફેર માટે જી. એન. યુ. પ્રોજેક્ટની મુખ્ય પદ્ધતિ છે. તે લગભગ 25 ઇન્સ્ટ્રક્શન સેટ આર્કિટેક્ચર માટે આશરે 50 ફાઇલ ફોર્મેટને સપોર્ટ કરે છે. ઇતિહાસ જ્યારે સિગ્નસ સપોર્ટના ડેવિડ હેન્કેલ-વાલેસે કંપની માટે નવી વ્યવસાયિક તકો ખોલવાના માર્ગ તરીકે પુસ્તકાલય વિકસાવવાની દરખાસ્ત કરી, ત્યારે રિચાર્ડ સ્ટોલમેને કહ્યું કે તે મુશ્કેલ હશે; ડેવિડની પ્રતિક્રિયા એ હતી કે તે આવી "બિગ ફકિંગ ડીલ" નહોતી. "બીએફડી" માટે સંક્ષિપ્ત, આ પુસ્તકાલયનું નામ બની ગયું. "બાઈનરી ફાઇલ ડિસ્ક્રીપ્ટર" ની શોધ પાછળથી "બી. એફ. ડી". ના ટૂંકાક્ષર તરીકે કરવામાં આવી હતી. ડિઝાઇન બી. એફ. ડી. ઓબ્જેક્ટ ફાઇલોનું સામાન્ય અમૂર્ત દૃશ્ય રજૂ કરીને કામ કરે છે. ઑબ્જેક્ટ ફાઇલમાં વર્ણનાત્મક માહિતી સાથે "હેડર" હોય છે; "વિભાગો" ની ચલ સંખ્યા કે જેમાં દરેકનું નામ, કેટલાક લક્ષણો અને ડેટાનો બ્લોક હોય છે; પ્રતીક કોષ્ટક; સ્થળાંતર એન્ટ્રીઓ; અને તેથી આગળ. આંતરિક રીતે, બી. એફ. ડી. ડેટાને અમૂર્ત દૃશ્યમાંથી લક્ષ્ય પ્રોસેસર અને ફાઇલ ફોર્મેટ દ્વારા જરૂરી બીટ/બાઈટ લેઆઉટની વિગતોમાં અનુવાદિત કરે છે. તેની મુખ્ય સેવાઓમાં બાઈટ ક્રમના તફાવતોને સંભાળવાનો સમાવેશ થાય છે, જેમ કે લિટલ-એન્ડિયન યજમાન અને બિગ-એન્ડિયન લક્ષ્ય વચ્ચે, 32-બીટ અને 64-બીટ ડેટા વચ્ચે યોગ્ય રૂપાંતર, અને સ્થળાંતર એન્ટ્રીઓ દ્વારા નિર્દિષ્ટ સરનામાના અંકગણિતની વિગતો. બી. એફ. ડી. પુસ્તકાલયને તાર્કિક રીતે બે ભાગોમાં વહેંચી શકાય છે. ફ્રન્ટ એન્ડ અને બેક એન્ડ. ફ્રન્ટ-એન્ડ અંતર્ગત ઓબ્જેક્ટ ફાઇલ વ્યૂથી સ્વતંત્ર એક સામાન્ય ઇન્ટરફેસ આપે છે. વપરાશકર્તાઓ આ ઇન્ટરફેસ સાથે ઑબ્જેક્ટ ફાઇલો સાથે ક્રિયાપ્રતિક્રિયા કરશે. જો ઑબ્જેક્ટ ફાઇલોનું લેઆઉટ વપરાશકર્તાને જાણતું ન હોય તો પણ, વપરાશકર્તા હજુ પણ ઇન્ટરફેસનો ઉપયોગ કરી શકશે. વિગતવાર આ છુપાવવું બેક-એન્ડની મદદથી કરવામાં આવે છે. ફ્રન્ટ-એન્ડ ઇન્ટરફેસ ઑબ્જેક્ટ ફાઇલોના લેઆઉટ સાથે કેવી રીતે ક્રિયાપ્રતિક્રિયા કરે છે તે બેક-એન્ડ અમલમાં મૂકે છે. જ્યારે પણ કોઈ નવી ઓબ્જેક્ટ ફાઇલનો પ્રકાર રજૂ કરવામાં આવે છે ત્યારે બેક-એન્ડને તે પ્રકારની નોંધણી કરવાની અને જો તેને BFD એપ્લિકેશન દ્વારા સપોર્ટેડ કરવાની જરૂર હોય તો તેને અમલમાં મૂકવાની જરૂર પડે છે. જો કે બી. એફ. ડી. મૂળરૂપે વિવિધ સાધનો દ્વારા ઉપયોગમાં લઇ શકાય તેવી સામાન્ય લાઇબ્રેરી તરીકે ડિઝાઇન કરવામાં આવી હતી, નવી સિસ્ટમોની ક્ષમતાઓને સમાવવા માટે એ. પી. આઈ. સાથે વારંવાર ફેરફાર કરવાની જરૂરિયાત તેના ઉપયોગને મર્યાદિત કરવા તરફ વળ્યું છે; બી. એફ. ડી. ના મુખ્ય ગ્રાહકો જી. એન. યુ. એસેમ્બલર (જી. એ. એસ.), જી. એન. યુ. લિંકર (જી. એલ. ડી.), અને અન્ય જી. એન. યુ. દ્વિસંગી ઉપયોગિતાઓ ("બાઇન્યુટિલ્સ") સાધનો અને જી. એન. યુ. ડીબગર (જી. ડી. બી.) છે. પરિણામે, બી. એફ. ડી. અલગથી વહેંચવામાં આવતી નથી, પરંતુ હંમેશા બિન્યુટિલ્સ અને જી. ડી. બી. ના પ્રકાશન સાથે સમાવવામાં આવે છે. તેમ છતાં, એમ્બેડેડ સિસ્ટમ્સના વિકાસ માટે જીએનયુ ટૂલ્સના ઉપયોગમાં બીએફડી એક મહત્વપૂર્ણ ઘટક છે. બી. એફ. ડી. લાઈબ્રેરીનો ઉપયોગ કોર ડમ્પમાંથી સંરચિત માહિતીને વાંચવા માટે થઈ શકે છે. બી. એફ. ડી. લાઈબ્રેરીનો ઉપયોગઃ બી. એફ. ડી. લાઈબ્રેરી એપીઆઈએસનો ઉપયોગ કરીને ઓબ્જેક્ટ ફાઇલનું કદ છાપો. #include "bfd.h" #include <stdio.h> પૂર્ણાંક મુખ્ય () {bfd * abfd = bfd _ openr ("a. o", NULL); પ્રિન્ટફ ("% llu\n", bfd _ પ્રાપ્તિ _ કદ (abfd)); વળતર 0;} આદેશ બનાવોઃ gcc main.c-lbfd-o આઉટપુટ./આઉટપુટ #કદ સંદર્ભો પ્રિન્ટ કરે છે બિનુતિલ પૃષ્ઠની બાહ્ય કડીઓ, વર્તમાન BFD સ્રોતોની ઍક્સેસ સાથે ઓબ્જેડમપ અમલીકરણ, ઘણા BFD એપિસ સી (પ્રોગ્રામિંગ લેંગ્વેજ) પુસ્તકાલયો એક્ઝેક્યુટેબલ ફાઇલ ફોર્મેટ ફ્રી કમ્પ્યુટર લાઇબ્રેરીઓ જીએનયુ પ્રોજેક્ટ સોફ્ટવેરનો ઉપયોગ કરે છે