السلام عليكم ورحمة الله وبركاته …
في التدوينة السابقة حول الـ inode تظمنت سؤال لم أجد له جواب من الزوار والمشاركين في المدونة، ولهذا وجب علي أن أقوم بشرح هذه المسألة عسى أن تكون محل فائدة للجميع.
كلنا نعلم إن كل 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 في الجدول.
هل عرفتم الجواب الحين الى السؤال هذا:
لماذا لدينا 3 ملفات تحمل الـ inode رقم 1 ؟
حيث كان ناتج الأمر التالي:
find / -inum 1
هو:
/dev/pts
/proc
/sys
والمفروض ملف واحد يأخذ رقم 1 في جدول الـ inode ولكن الحقيقة هي إن كل من:
/proc و /sys هما عبارة عن جزء partition بحد ذاتهم وكل واحد له filesystem لوحده وليس له علاقة بالجدول الذي يحتوي على الملف /dev/pts. الحين تريدون دليل ؟ أليكم الدليل:
قم بتنفيذ الأمر mount لوحده، ماذا سيعطيك ناتج ؟ ألم يعطيك إن هذه المجلدات هي عبارة عن filesystem منفصل وتم عمل mount لها بشكل منفصل على نظامك ؟ تريد أدلة أخرى ؟ قم بفتح الملف /etc/fstab وأقرأ محتوياته وما يخص /proc و /sys بالذات، هل تأكدت الحين ؟ لا تقول لي لا رجاءاً !!! إن لم تكن مقتنع الى الحين سأقول لك دليل أخير:
أليس المجلدات /proc و /sys هما عبارة عن مجلدات Virtual ؟ ويقوم النظام بخلقهم عند تشغيله وعمله ؟ وإنهم يمثلون واجهة للنظام والمصادر التي على جهازك ويعتبرون واجهة للــ Running Kernel ؟ أليس كذلك ؟ إذن كيف يكون لهم رقم inode ثابت والذي يؤشر لنا على سجلات وهذه السجلات معلوماتها تتغيير من الحين الى الآخر ؟؟
وصلت الفكرة يا شباب ؟؟ دمتم بود وخير.
تصحيح مهم جداً في الرد التالي:
أخوكم B!n@ry …
هلا بيناري ::14
يأخي والله كنت قربت من الأجابه بس في الاخر شطحت زي ما انت قولت ::6
بس ياريت لا تحرمنا من مواضيعك وأسألتك الشيقه هذه التي هي محل أستفاده كبيره بالنسبة لنا
تحياتي
أخوك
::7
حياك الله أخي AG-Spider توقعت إني سأراك أول الواصلين الى هنا ::18 … إن شاء الله لي مواضيع أخرى بإذن الله … وبما إنك تحب هذه المواضيع خذ هذا الموضوع إقرأه http://www.linuxac.org/forum/showthread.php?t=675&highlight=ext3
اخي العزيز باينري
شكرا كتيرررر الك على المواضيع الحلوة وصدقني حببتني باللينوكس
أخي SVU حياك الله، وتحية خاصة مني للشعب السوري كاملاً …
وأتمنى أن نراك بإستمرار في مدونتي ::18
وبالمناسبة لي يكفي الإعجاب بليونكس !!! يجب أن تستعمله ::20
اعتقد انك اخطأت فسجل inode يحوي جميع المعلومات التي ذكرتها ما عدا اسم الملف حيث هناك جدول أخر يحوي حقلين هما inode number مع اسم الملف الخاص بهذا الرقم
السلام عليكم أخي عبد الله …
نعم بالفعل بعد بحث طويل وجدت في هذه الصفحة:
http://www.cs.niu.edu/~berezin/330/notes/ufs.html
وجدت في آخرها التالي:
NOTE: the one thing that is NOT in the inode table is the name of the file used by the user.
أعتقد إنك أصبت أخي … لكن السؤال الحين حين يتم عمل أكسس على ملف معيين هل يتم قراءة الـ Inode Table أم الجدول الذي فيه الأسماء ؟ ولماذا ؟
شكراً أخي الكريم على التنويه وتصحيح المعلومة لدي، جزاك الله خير … سأقوم بتصحيح التدوينة بإذن الله …
مشكور والله يعطيك الله العافية
الله يعافيك يارب أخت امبلينا …
إن شاء الله تكوني أستفدت ولو القليل …