كيف تتعلم المزيد عن Linux Kernel من جهازك الخاص



جرب أداة القضاء على المشاكل

يتطلب تعلم العمل مع جنو / لينكس بشكل عام تعلم العمل مع بيئة سطح المكتب. تسمح تقنية السمات لبيئات سطح المكتب هذه بتقليد واجهات أجهزة iOS و Microsoft Windows و OS X. هذا يساعد على تقليل هذا كما كان. يذهب الكثير من الناس إلى أبعد من ذلك ويتعلمون إدارة سطر أوامر Unix باستخدام قذائف Bash أو tcsh. ومع ذلك ، يمكن أن يساعدك التعرف على العناصر الداخلية لنواة Linux على فهم أفضل لكيفية تفاعل الأجزاء المختلفة من كود التشغيل مع بعضها البعض.



قد يجادل بعض الأشخاص بأنه سيكون من الأفضل المضي قدمًا بعدة خطوات ، بالإضافة إلى معرفة كيفية قيام المجمعين بتحويل كود C إلى مدربين آليين لمعالج دقيق. قد يجادل دعاة كود التجميع بأنه من الأفضل تعلم ASM لفهم البرمجة حقًا على الأنظمة الأساسية x86 و x86_64. بغض النظر عن هذه المواقف ، يمكن لأوامر Linux الأساسية توفير ثروة من المعلومات حول كيفية رؤية النواة لجهاز الكمبيوتر الخاص بك. التعلم من خلال نظرة ولكن لا تلمس النموذج هو طريقة رائعة لإتقان النواة نفسها. أثناء استخدام حساب الجذر للأمثلة الموجودة في هذه الصفحة ، يوصى بشدة بعدم عرض الدلائل المرتبطة بـ kernel إلا من خلال حساب مستخدم.



الطريقة 1: دليل / proc

يقع الدليل / proc في إحدى المناطق الأساسية للدليل الجذر ذي المستوى الأعلى في أي بنية ملف يونكس. يحتوي على ما يسمى نظام ملفات proc ، المعروف باسم procfs الذي يحتوي على معلومات حول طريقة وصول الموارد المختلفة إلى ذاكرة kernel. تم تعيينه لـ / proc في وقت تشغيل النظام. نظرًا لأن بنية ملف الوكيل تعمل كواجهة لهيكل البيانات الداخلية داخل Linux kernel ، فمن الأفضل مرة أخرى استكشاف هذا فقط عبر حساب مستخدم. يتم تصنيف معظم الملفات من خلال بنية ملفات النظام المرئية على أنها للقراءة فقط على أي حال ، ولكن من الأفضل أن تكون في الجانب الآمن.



ومع ذلك ، فإن كل منها عبارة عن ملف نصي ، لذا يمكنك مشاهدتها إذا كنت ترغب في ذلك. استخدم الأمر cd لإدخال دليل / proc ، ثم قم بإصدار الأمر ls لإلقاء نظرة على ما يوجد هناك. استخدم الأمر القط ، أو أقل أو أكثر مع أي من الملفات للنظر فيها. يعد ملف cpuinfo مكانًا جيدًا للبدء ، لأنه يعرض كيفية عرض kernel للمعالج الدقيق الخاص بك. انظر إلى ملف stat للحصول على عرض للعمليات الجارية.

25-11-2016_020006

ستمنحك كتابة أجهزة القطط نظرة على الأشياء المتصلة بجهازك.



25-11-2016_020109

بالمناسبة ، يمكنك دائمًا إصدار الأمر proc man للحصول على ملخص لكيفية ارتباط بنية ملف / proc بالنواة. تأتي الصفحة المعروضة من دليل مبرمج Linux.

25-11-2016_020156

الطريقة 2: دليل / sys

محطتك التالية في جولة kernel الخاصة بك هي / sys ، وهو دليل آخر تم تعيينه لهيكل ملف وهمي. يتبع هذا نفس مفهوم Unix العام مثل / proc ، ولكنه بدلاً من ذلك يقوم بتصدير معلومات حول محركات الأجهزة المرتبطة وعدد من أنظمة kernel الفرعية. إذا سبق لك العمل مع نظام قائم على BSD ، فقد تكون أكثر دراية بنظام sysctl الذي يوفر هذه الوظائف. يتم تعيين جميع أجهزة ناقل PCI و USB و S / 390 إلى دليل / sys.

استخدم cd / sys للتوجه إلى الدليل ثم قم بإصدار الأمر ls أو dir. قد يكون لديك أدلة بعنوان block ، class ، device ، fs ، kernel وربما أخرى. يمكنك استكشافها للحصول على مزيد من الملفات الثابتة التي تحتوي على معلومات حول النظام ، ولكن قم بذلك مرة أخرى من حساب مستخدم ، وألق نظرة ولكن لا تلمس عقلية عن نفسك.

الطريقة الثالثة: دليل / dev

استخدم الأمر cd / dev للانتقال إلى الدليل / dev ، والذي قد يكون بنية kernel الافتراضية الوحيدة التي تعرفها أكثر من أي وقت مضى. الاسم يعني الأجهزة ، ويحتوي على ملف تمثيل للأجهزة المتصلة بنظامك. سيعيد الأمر ls في هذا الدليل العديد من الملفات حتى في أبسط توزيعات الخادم.

25-11-2016_020242

القليل من هؤلاء مميزون جدا يعد الملف / dev / null جهازًا فارغًا لا يفعل شيئًا. إذا كتبت cat / dev / null ، فلن تحصل على شيء منه. يطلق عليه دلو البت ، ويمكن إعادة توجيه الإخراج إليه للحفاظ على نظافة الشاشة. الملف المسمى / dev / zero لا يحتوي على أي شيء سوى بيانات صفرية ، والتي يمكن كتابتها على قرص لإخراجها إلى الصفر. تحتوي الملفات العشوائية والعشوائية على بيانات عشوائية غير مهمة لإنشاء تجزئة أمنية.

إذا سبق لك أن قمت بتهيئة قرص ، فمن المحتمل أن يكون لديك على الأقل بعض الخبرة بالطريقة التي يعرضها بها نواة Linux. يحصل كل قرص متصل بالنظام على اسم مثل sda و sdb وما إلى ذلك لكل قرص. أنواع الأقراص المختلفة لها أسماء مختلفة. ضع في اعتبارك أن دليل / dev يستخدم تعريفًا رسميًا محتملاً لعلوم الكمبيوتر للقرص بدلاً من الطريقة التي نستخدم بها هذا المصطلح عادةً. هذا يعني أن محرك الأقراص الثابتة ، و SSD ، وبطاقة SD ، وبطاقة microSDHC ، ونظام ملفات الهاتف الذكي المثبت عبر USB ، وعصا USB وحتى الأجهزة اللوحية المثبتة كلها أقراص على النواة.

يتلقى كل اسم قرص في Linux بعد ذلك رقمًا يشير إلى رقم القسم. إذا كان لديك SSD مع قسمين أساسيين ، فقد يكون لديك / dev / sda1 و / dev / sda2 كوحدات تخزين صالحة. على الأرجح إذا كنت تقوم بتشغيل Linux من سطح مكتب أو كمبيوتر محمول مع تقسيم نمط MBR ، فحينئذٍ قمت بتعيين / dev / sda1 على قسم ext4 الذي تم تثبيت Linux عليه بالفعل. أكثر من المحتمل أن / dev / sda2 هو قسم موسع يحتوي بعد ذلك على / dev / sda5 كقسم مبادلة. هذا المخطط شائع ، لكنه ليس ضروريًا بأي حال من الأحوال. لاحظ أنه نظرًا لأن قسم المبادلة في هذا المثال الشائع هو قرص منطقي داخل قسم موسع ، فإنه يتلقى 5 بدلاً من 3 كرقم خاص به.

إذا كنت تريد معرفة المزيد حول طريقة عرض kernel للأقسام وتنسيقاتها ، فيمكنك بالفعل عرض قائمة الأقسام المدعومة باستخدام الأمر fdisk. في حين fdisk لا تكتب جداول التقسيم حتى تخبرها بذلك ، فلا يزال من الأفضل تجربة ذلك بشيء لا تهتم به لتحميصه. يوصى بتوجيهه إلى شيء مثل محرك أقراص USB فارغ يمكنك إعادة تنسيقه بسهولة.

لنفترض أن العصا الخاصة بك تظهر على شكل / ديف / sdc ، ثم يمكنك استخدام sudo fdisk / dev / sdc لتحميله. إذا كان لديك قسم صالح بداخله ، فاكتب t لتغيير النوع والنوع L لتحميل قائمة الأكواد السداسية العشرية. لاحظ أن أنظمة تقسيم MBR و GUID تتحدث إلى kernel بشكل مختلف ، وبالتالي لها تعيينات مختلفة.

25-11-2016_020331

في أغلب الأحيان ، سيكون لديك محركات أقراص مضبوطة على النوع 83 ، وهو لمحركات أقراص Linux ، أو 82 ، وهو لأقسام مبادلة Linux ، أو أحد أنواع ملفات FAT. يعود تاريخ FAT بشكل أو بآخر إلى عام 1977 ، ولا يزال مفضلاً للعديد من أنواع الأجهزة المحمولة بالإضافة إلى العديد من محركات الأقراص القابلة للإزالة. لاحظ أن بعض أنواع الأقسام ، مثل النوع 0x0c ، تتميز بشيء يسمى دعم LBA.

عندما يصمم المبرمج نواة لنظام تشغيل ، فإن لديهم بعض الطرق المختلفة التي يمكنهم من خلالها النظر إلى الأقراص. الأول هو تقسيم الأطباق إلى أسطوانات ورؤوس وقطاعات. كانت هذه هي الطريقة الكلاسيكية للإشارة إلى محركات الأقراص الثابتة لأطول وقت. لم تكن هندسة القرص الأصلية مهمة على الإطلاق لنظام Linux ، ولسوء الحظ نفد هذا المخطط من العناوين بعد ما يقرب من 8 جيجا بايت ثنائية. الطريقة الثانية هي استخدام العنونة المنطقية C / H / S ، والتي تقوم بذلك ، ولكنها تسمح بعد ذلك لوحدة التحكم بالقرص بتعيين الأسطوانة وأرقام الرأس والقطاع أينما يحلو لهم. هذا هو السبب في أن نظام التشغيل يمكن أن يدعي نظريًا وجود رؤوس في بطاقة SD أو عصا USB عندما يكون ذلك مستحيلًا ماديًا.

الطريقة الثالثة هي من خلال العنونة المنطقية ، وهو ما ترمز إليه LBA. تتلقى كل كتلة مادية في مجلد رقمًا في هذا المخطط. يخبر نظام التشغيل وحدة التحكم في القرص بالكتابة إلى كتلة مرقمة معينة ، لكنه لا يعرف في الواقع ما إذا كانت هذه هي الكتلة المباشرة على القرص. هذا هو المخطط الأكثر استخدامًا اليوم ، وقد تم استخدامه بالتأكيد على الغالبية العظمى من الأقراص الثابتة منذ منتصف التسعينيات.

يقدم Linux دعم kernel لتحميل مجموعة متنوعة من أنواع الأقسام بدون إدخال مباشر ، ولكن لا يزال من الأفضل ألا تكون غريبًا جدًا عند تحديدها. يمكنك تحميص بياناتك إذا قمت بعمل نوع قسم غريب جدًا لاختيار مطابقة نظام الملفات.

الطريقة الرابعة: مكالمات النظام من دليل مبرمج Linux

يمكن لقراء الصفحات الموجودة على متن الطائرة والمتضمنين في غالبية توزيعات Linux أن يقدموا لك بالفعل دورة تدريبية مكثفة حول مكالمات النظام ، والتي يمكن أن تساعد بشكل كبير في التعرف على النواة. ابدأ متصفح صفحات الرجل الرسومية xman إما من رابط .desktop إذا كان لديك واحد ، أو بدلاً من ذلك عن طريق الضغط باستمرار على المفتاح الفائق و R في نفس الوقت ثم كتابة xman والضغط على Enter. حدد خيار 'الصفحة اليدوية' ثم اختر 'الأقسام' وأخيرًا '(2) مكالمات النظام' من القائمة المنسدلة.

25-11-2016_020430

بمجرد قراءة الخيار ' مقدمة '، حدد ذلك. سترحب بك بعد ذلك صفحة من دليل مبرمج لينكس والتي ستعلمك القليل عن مكالمات النظام.

25-11-2016_020518

6 دقائق للقراءة