السلام عليكم ورحمة الله وبركاته ...
تم وضع سؤال في مدونتي وبالتحديد في التدوينة هذه حول الــ inode رقم 1 ... فكان هناك بعض المشاركين في الجواب ولكن كلها لم تكن صحيحة (مع إحترامي الشديد للجميع) ولهذا وجب علي أن أشرح فكرة الــ inode table عسى أن أكون منها وضحت ما هو ويكون رداً على سؤالي الأخير. فكتبت الموضوع التالي والذي كان رداً على سؤالي. أليكم الموضوع:
كلنا نعلم إن كل partition له filesystem منفصل عن الجزء الـ partition الآخر، ولهذا فإن كل جزء أو partition له File System Table خاص به. وظيفة هذا الجدول هو للـ Referencing للمعلومات وكيفية الوصول لها على القرص الصلب. أي إن المجلد أو الملف الذي إسمه X بالنسبة للحاسوب إسمه رقم 56689 مثلاً. هذا يعني إنا الأسماء هي لنا للتعرف على الملفات وللنظام الحاسوب الأرقام للتعرف والوصول لها. الآن هذا الرقم يمثل ماذا ؟؟؟؟ هنا هو السؤال !!! الرقم هذا الذي في مثالنا السابق 56689 هو رقم الـ inode !!! وهذا الرقم موجود في جدول يسمى بالـ inode Table. طيب ما علاقة الـ File System Table بالـ inode Table ؟ الجواب هما نفس الشيء. حيث الإسم File System Table هو الإسم العام لأي نوع من انواع الفايل سيستم والـ inode table هو مجرد تسمية أخرى له تحت بيئة اللينوكس.
إذن كل رقم هو inode وكل هذه الملفات والمجلدات لها رقم inode خاص بها، وكلها تقع في الجدول المسمى inode table. الى الآن كل شيء جميل صح ؟ ::18 الحين كل رقم inode والموجود في الجدول هو عبارة عن رقم سجل ذلك الملف أو المجلد !!! دوختنا يا B!n@ry كيف يعني ذلك ؟؟ أنا أقول لكم كيف. هذا الرقم يرمز الى سجل هذا الملف في الجدول وهذا السجل يحتوي على معلومات كالتالي:
إسم الملف
المستخدم صاحب الملف
المجموعة التي ينتمي الملف لها
تاريخ الإنشاء للملف
آخر تاريخ لقراءة الملف
آخر تاريخ التعديل أو التحديث على الملف
الصلاحيات الموجودة على الملف
و و و و و و و
ومن أهمها هو مكان الملف الحقيقي على القرص الصلب، أي سيكون هنا رقم الخانة التي يوجد فيها الملف بصورة فيزيائية physically

الآن كما ذكرنا كل قسم أو جزء أو partition سموه ما تشاؤون له inode table كما ذكرنا، وبالتالي لو كان عندي على جهازي التالي:
/ على جزء
/home على جزء
/var على جزء
فهذا يعني لدي كم inode table ؟ يعني لدي 3 inode tables والسبب إنه كل واحد عبارة عن filesystem مستقل بغض النظر عن طريقة ربطهم في شجرة اللينوكس. وكل جدول من هذه الجداول ستبدأ بالرقم 1 الى آخر رقم inode في الجدول.
هل عرفتم الجواب الحين الى السؤال هذا:
<a href="http://www.binary-zone.com/?p=125">لماذا لدينا 3 ملفات تحمل الـ inode رقم 1 ؟</a>
حيث كان ناتج الأمر التالي:
كود:
find / -inum 1
هو:
كود:
/dev/pts /proc /sys
/proc و /sys هما عبارة عن جزء partition بحد ذاتهم وكل واحد له filesystem لوحده وليس له علاقة بالجدول الذي يحتوي على الملف /dev/pts. الحين تريدون دليل ؟ أليكم الدليل:
قم بتنفيذ الأمر mount لوحده، ماذا سيعطيك ناتج ؟ ألم يعطيك إن هذه المجلدات هي عبارة عن filesystem منفصل وتم عمل mount لها بشكل منفصل على نظامك ؟ تريد أدلة أخرى ؟ قم بفتح الملف /etc/fstab وأقرأ محتوياته وما يخص /proc و /sys بالذات، هل تأكدت الحين ؟ لا تقول لي لا رجاءاً !!! إن لم تكن مقتنع الى الحين سأقول لك دليل أخير:
أليس المجلدات /proc و /sys هما عبارة عن مجلدات Virtual ؟ ويقوم النظام بخلقهم عند تشغيله وعمله ؟ وإنهم يمثلون واجهة للنظام والمصادر التي على جهازك ويعتبرون واجهة للــ Running Kernel ؟ أليس كذلك ؟ إذن كيف يكون لهم رقم inode ثابت والذي يؤشر لنا على سجلات وهذه السجلات معلوماتها تتغيير من الحين الى الآخر ؟؟
وصلت الفكرة يا شباب ؟؟ دمتم بود وخير.
أخوكم B!n@ry ...
تعليق