Skip to Content

5 مكتبة الجنو للسي

DJ KING's picture

-5مكتبة الجنو للسي

الشئ الثاني الذي يحدث عندما يبدا جهازك هو انه يتم تحميل و تشغيل الاينت init و مع ذلك اينت init تقريبا يشبه جميع البرامج..حيث يستخدم الدوال من المكاتب و ربما قد تكون رايت مثال لبرنامج سي مثل هذا : main() { printf("Hello World!\n"); }

البرنامج لا يحتوي على تعريف للprintf .. اذا من اين اتت ؟ اتت من مكتبات السي المعياريه..على نظام جنو/لينوكس هي glibc اذا قمت بتجميعه compile تحت فيجوال ++C , اذا فهي تاتي من تطيبق مايكروسوفت لنفس الدوال المعياريه هناك مليارات من هذه الدوال المعياريه , للرياضيات , عباره برمجيه , ايام/اوقات تخصيص الذاكره و على هذا المنوال كل شئ على اليونكس ( بالاضافه للينوكس ) اما مكتوبه بلغة السي او عليك ان تبذل مجهودا كي يظهر و كانه كتبو بلغة السي على اساس ان كل شئ يستخدم هذه الدوال اذا نظرت في lib/ على نظام الينوكس على جهازك فانك سوف ترى العديد من الملفات تسمى libsomething.so او libsomething.so الخ. هم عباره عن المكتبات لهذه الدوال. ال Glibc هو فقط تطبيق الجنو لهذه الدوال هناك طريقتين البرامج من خلالها يمكن ان تستخدم هذه الدوال.اذا قمت بتوصيل برنامج بشكل دائم statically , مكتبة هذه الدوال تنسخ في ملفات التشغيل EXCUTABLE التي يتم انشائها CREATED , و هذا هو سبب وجود مكتبات libsomething.a لكن ان قمت بتوصيل برنامج بشكل متغير ( غير دائم ) statically " و هذا هو الطبيعي default " اذا فهذه الحاله و اثناء تغشيل البرنامج و يحتاج الى كود مكتبي , فانه يتم استدعائه من ملف ْْْlibsomething.so الامر 1dd هو صديقك عندما تريد تحديد اي المكتبات لتغشيل برناج محدد.على سبيل المثال , هنا توجد المكتبات التي يستخدمها ال bash : libtermcap.so.2 => /lib/libtermcap.so.2 (0x40019000) libc.so.6 => /lib/libc.so.6 (0x4001d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

: " التعديل " 5.1

بعض الدوال في المكتبات تعتمد على موقعك على سبيل المثال في استراليا نكتب التواريخ على شكل : dd/mm/yy , بينما الامريكان يكتبون mm/dd/yy . و هناك برنامج ياتي مع توزيع ال glibc و يسمى localedef و الذي يجعلك قادر على تظبيط هذه التعديلات

5.2 التدريبات :

استخدم ldd لتعثر على المكتبات التي تفضلها تطبيقاتك استخدم ldd لتعثر على المكتبات التي تستخدمها init

قم بعمل مكتبه تجريبيه "toy library " تحوي فقط واحده او اثنتان من الدوال.البرنامج ar يستخدم لانشائهم , صفحة ال man لبرنامج ال ar قد تكون بدايه جيده للتحقق كيف يتم <<<---- اكتب , جمع و وصل البرنامج الذي يستخدم هذه المكتبه

5.3 للمزيد من العملومات :

كود المصدر , طالع Building a Minimal Linux System from Source Code for urls // >>--



Dr. Radut | book