1

بنية نظام الملفات في لينكس

يجد بعض القادمين الجدد إلى نظام غنو/لينوكس بعض الصّعوبة في التعامل مع نظام الملفات المستخدم في هذا النظام.

سأحاول في هذه التدوينة تقريب المبدأ لمن ليس معتادًا على التعامل مع نظام الملفات في غنو/لينوكس، مع التركيز على المُعتادين على Windows، لعل ذلك يُساعد من لا زالت لديه لخبطة في الفهم.

سنتحدّث في هذه التدوينة عن تنظيم الملفات وأنواعها في لينوكس وبعض الفروق بين نظامي الملفات في كل من غنو/لينوكس وWindows.  فلنبدأ بمقدّمة بسيطة.

كيف يُقرأ مسار الملفات على غنو/لينوكس؟

إدارة الملفات في غنو/لينوكس تتبع لمعيارالتسلسل الهرمي القياسي لنظام الملفات (FHS = Filesystem Hierarchy Standard) الذي يحدّد الغرض من كل مجلد ضمن تنظيم شجري ينتمي فيه كل مجلّد أو ملف لمجلّد أب. تنطبق هذه القاعدة على كل الملفات الموجودة في النظام ما عدا مجلد واحد يُسمى المجلّد الجذر Root Directory. ينبغي ملاحظة أن كل شيء في نظام غنو/لينوكس عبارة عن ملف، بما فيه المجلّدات التي هي في نهاية الأمر ملف خاص.

يُمكن تشبيه الأمر بشجرة ذات أصل (جذر) واحد. أيّ غصن أو ورقة في هذه الشجرة على صلة، عبر مسار مباشر أو غير مباشر، بالجذر.

في الصّورة أدناه يظهر المجلّد الجذر وبه بعض المجلّدات الأخرى. كل الملفات الموجودة في الجهاز تتبع بطريقة مباشرة أو غير مباشرة لأحد هذه المجلّدات.

المجلَّد الجذر

المجلَّد الجذر

في الصّورة السابقة تظهر علامة “/” (خط مائل) ضمن شريط الاسم بمستعرِض الملفات، هذه العلامة تعني “المجلّد الجذر”. عند الدّخول إلى أحد المجلّدات الظاهرة أعلاه فسيظهر اسمه في الشريط مسبوقًا بخط مائل “/”.

مجلّد etc

مجلّد etc

في هذه الصّورة يظهر مسار الملف، ويُمكن قراءته “المجلّد etc الموجود في المجلّد الجذر”. عند استعراض مجلّد من محتويات etc فسيتغيّر المسار كما في الصّورة التالية.

مجلَّد apache2

مجلَّد apache2

مسار المجلّد الحالي هو، كما يظهر في شريط العنوان:

/etc/apache2/

الخط المائل “/” الثاني الذي يظهر في المسار هو فاصل بين المجلّد الأب (etc) والمجلّد المتفرّع منه (apache2). المسار يُقرأ “المجلّد apache2 الموجود في المجلّد etc الذي يوجد في المجلّد الجذر”. وهكذا في كل مرة نُضيف مجلّدا فرعيًا جديدًا نفصل بينه وبين المجلّد الأعلى منه في التسلسل الشّجري بخط مائل “/” إلى أن نصل إلى أعلى التسلسل حيثُ المجلّد الجذر (الخط المائل الأول في المسار).

بنية نظام الملفات في لينوكس

كما ذكرتُ في بداية التدوينة يحدّد المعيار الذي يستخدمه غنو/لينوكس الغرض من المجلّدات الأساسية الموجودة في النظام. سنتطرّق إلى المجلّدات اﻷساسية في الفقرات التالية.

المجلّد الجذر Root Directory

يُحِب الكثيرون مقارنة المجلّد الجذر في غنو/لينوكس بتجزئة C في وندوز. هذه المقارنة غير دقيقة من ناحية أن غنو/لينوكس لا يستخدم أحرفا لأسماء التجزئات، كما أن الملفات التابعة ل D مثلا غير موجودة في :C، وهو ما يكسر قاعدة التنظيم الشجري في لينوكس. بعبارة أخرى يُمكن في نظام التجزئات الذي يستخدمه Windows أن يوجد أكثر من جذر، وهو ما لا يصح في معيار البنية الشجرية للملفات.

في المستوى الأعلى (المجلّد الجذر) تأتي بعض المجلّدات المهمة، في ما يلي وصف مُقتَضَب لبعضها:

  • bin/ الذي يضم الملفات التنفيذية الأساسية(برامج وأوامر). البرامج التي يحتاجها النّظام للإقلاع موجودة هنا.
  • boot/ توجد له ملفات مهمَّة لإقلاع النِّظام.
  • dev/  هنا توجد ملفات للتعامل مع الأجهزة مثل مفاتيح يو أس بي، أو ملحقات الجهاز الأخرى.
  • etc/ مجلّد لملفات إعداد البرامج. توجد به أيضًا سكربتات لتشغيل/إيقاف بعض البرامج.
  • home/ مجلَّد المستخدمين. في كل مرة يُضاف مستخدِم جديد يُنشئ له النظام مجلَّدا شخصيا باسمه في هذا المجلَّد. في المجلَّد الشخصي للمستخدِم توجد عادة مجلّدات فرعية للصوَّر والتنزيلات والموسقى وغيرها.
  • lib/ مجلَّد المكتبات، حيثُ توجد وحدات نواة نظام التّشغيل ومكتبات مُشتركة بين عدة برامج وتُستخدَم أثناء إقلاع النِّظام أو لتنفيذ بعض الأوامر على ملفات الجذر.
  • media/ مجلَّد التركيب Mount المؤقَّت للملحقات مثل القرص المُدمَج (يوجد تشابه وفروق بينه وبين /dev ولكن لن ندخُل في التفاصيل).
  • mnt/ مجلَّد للتركيب المؤقت لنظام ملفات.
  • opt/ مجلَّد لبرامج إضافية غير مرتبطة بأي مكتبة برمجية على نظام التشغيل.
  • proc/ : نظام ملفات وهمي (محاكاة)، يُشكِّل واجهة مع بيانات النواة. أغلب هذه الملفات هي للقراءة فقط.
  • sbin/ يحوي ملفات تنفيذية،  مثل المجلّد السابق، ولكنها لبرامج تُستخدم عادةً لإدارة أو صيانة النظام.
  • usr/ جميع البرامج غير المرتبطة بإقلاع النظام توجد هنا.
  • tmp/ يحوي ملفات آنية يتعامل معها النظام أو أحد البرامج أو المستخدمون. تُحذَف هذه المفات عند إعادة التشغيل.

فروق ظاهرية بين نظامي الملفات في لينوكس وWindows

يتعامل نظاما التشغيل لينوكس ووندوز بشكل مختلف مع الملفات، نذكر هنا بعض الفروق بينهما:

بنية المجلّدات

ذكرنا في المقدّمة أن نظام الملفات في لينوكس يختلف عنه في وندوز من ناحية أن الأول لا يقبَل إلا أصلا واحدا (الجذر) توجد جميع الملفات تحته في حين أن الثاني يسمح بوجود عدة أصول (التجزئات C و D)؛ يتعدّى الاختلاف في بينة المجلّدات هذا الأمر إلى طريقة حفظ ملفات البرامج. على الأغلب ستجد أن كل الملفات التي يحتاجها برنامج مُعيَّن في وندوز توجد في نفس المجلَّد (عادة مجلَّد فرعي من Program Files)، هذا الأمر لا ينطبق على البرامج في لينوكس حيثُ إن ملفات البرنامج تتوزّع غالبا بين عدة مجلّدات: الملفات التنفيذية في usr/bin/، المكتبات التي يحتاجها في usr/lib/، وملفات الإعداد في المُجلَّد etc/.

الحساسية لكتابة الأحرف Case Sensitivity

يُفرِّق نظام الملفات في غنو/لينوكس بين الأحرف الصغيرة (Lower case) والكبيرة (Upper case)؛ فتجد في نفس المجلَّد ملفات باسم File وfile وFIle. يجب أخذ هذه الخاصية في الحسبان دوما عند التعامل مع الملفات في غنو/لينوكس.

الخطوط المائلة في مسار الملف

للتفريق بين أجزاء مسار ملف فإن وندوز يستخدِم خطوطا مائلة عكسية (\) Backslashes كما يلي:

C:\Users\Zeine77

أما في غنو/لينوكس فإن الخطوط المائلة “المباشرة”(/) Forward Slashes هي المستخدَمة:

/home/Zeine77

التعديل على الملفات المفتوحة

في وندوز يُمنع التعديل على ملف مفتوح  لكن الأمر ممكن في غنو/لينوكس ونظم التشغيل التي تستخدم معيار البنية الشجرية للملفات. يُمكنك في غنو/لينوكس مثلا تغيير اسم مستند PDF أثناء قراءته.

أنواع الملفات في غنو/لينوكس

تنقسم الملفات في غنو/لينوكس إلى عدة تصنيفات. علاوةً على الملفات العادية والمجلّدات توجد أنواع الملفات التالية:

الملفات الخاصة بالأجهزة Device files

تظهر هذه الملفات كأي ملف عادي على غنو/لينوكس ولكنّ لديها استخداما خاصًّا؛ إذ تُستَعمَل كواجهة لوحدات الإدخال والإخراج (I/O). تنقسم هذه الملفات بدورها إلى نوعين حسب آلية عمل الجهاز الموصول بالحاسوب: الأول للأجهزة التي تنقل محرفا Character واحدا في كل مرة، والثاني للأجهزة التي تنقل مجموعة (كتلة Block) من المحارف في المرة الواحدة.

الوصلات Links

الوصلات أو الروابط هي ملفات تُحيل إلى ملفات أخرى، ويوجد نوعان منها: الوصلات الصّلبة Hard links والوصلات الرمزية Symbolic links. الفرق بين الإثنين أن الوصلات الصّلبية تحتفظ بنسخة خاصة من خصائص الملف (موقعه على القرص، الأذونات Permissions المُطَبَّقة عليه، …إلخ)؛ أما الوصلات الرمزية فتحوي فقط إحالة للملف الأصلي. يعني هذا أنه عند حذف ملف فإن الوصلات الرمزية تحيل إلى ملف غير موجود بينما تُحيل الوصلات الصّلبة إلى النسخة الخاصة بها من الملف.

للحصول على آخر الإضافات مباشرة بعد نشرها يُرجى الاشتراك في تغذيات RSS  أو على تطبيق فيدلي عبر الضغط على الزر أدناه

تابعنا على تطبيق فيدلي

فضلًا.. شارك هذا المقال 🙂

Email this to someoneTweet about this on TwitterShare on FacebookShare on Google+Share on StumbleUpon

zeine77

محمد أحمد ولد العيل، مهندس نظم معلومات. مهتم بنظام تشغيل غنو/لينوكس والبرمجيات الحرّة والمفتوحة المصدر. أسعى من خلال هذه المدوّنة لإثراء المحتوى العربي على الشّبكة.

تعليق واحد 1

  1. بارك الله فيك أخي الغالي جزاك الله خيرا

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *