أدوات المستخدم

أدوات الموقع


linux-filesystem-architecture

هذه نسخة قديمة من الصفحة!


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

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

نظام الملفات على لينكس مختلف عن الذي على ويندوز وسنرى في هذه الصفحة الفروقات بينهما.

الفرق بين مجلد الجذر ومجلد المنزل على لينكس

دعنا نشرح بالبداية مفهوميّ مجلد الجذر (Root directory) ومجلد المنزل (Home directory).

بيانات المستخدمين على لينكس مفصولة عن ملفّات التطبيقات، فعلى عكس ويندوز الذي قد يخزّنها في نفس المجلد أو في مجلد AppData أو غيرها من الأماكن، تكون جميع ملفّات التطبيقات على لينكس مخزّنة على قرص الجذر (Root directory) ضمن مجلدات مختلفة. بينما تكون بيانات المستخدمين وإعدادات التطبيقات التي يستعملونها وملفّاتهم الشخصية وكل ما يتعلق بهم مخزّنةً في مجلد المنزل (Home directory)، وهو ما يسمح للمستخدمين مثلًا بإزالة التطبيقات لكن مع الاحتفاظ ببياناتهم وإعداداتهم.

تكون مجلدات المنزل الخاصّة بالمستخدمين موجودة تحت المسار /home/، فمثلًا إذا كان على نظام 3 مستخدمين هم خالد وأحمد ومحمد، فستجد 3 مجلدات منزل مختلفة تحت /home/ منفصلة عن بعضها وتحوي ملفّات مختلفة عن غيرها مثل /home/khalid و/home/ahmed و/home/mohammed.

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

لينكس مرن جدًا فيما يتعلق بتقسيم قرص التخزين (Storage Disk) إلى أقراص (Partitions) مختلفة على عكس ويندوز، فيمكنك مثلًا أن تختار أن تجعل مجلد المنزل على قرص منفصل عن قرص مجلد الجذر، بل يمكنك حتى أن تجعل قرص الملفّات الإقلاعية الخاصّة بالنظام (التي على /boot/) هي الأخرى في قرص منفصل إن أردت ذلك. ويمكنك أيضًا بطبيعة الحال أن تضعهم جميعًا على قرصٍ واحد (وهو الخيار الافتراضي).

بنية مجلد المنزل على لينكس

ستجد الكثير من المجلدات المخفية في مجلد المنزل الخاصّ بك، وكل واحد منها يحوي ملفات مخصصة لأمورٍ مختلفة عن غيره، منها نذكر:

اسم المجلد الوظيفة
.themesيحوي سِمات تطبيقات GTK الخاصّة بالمستخدم.
.iconsيحوي سِمات الأيقونات وسِمات مؤشّر الفأرة الخاصّة بالمستخدم.
.configيحوي مجموعةً من إعدادات التطبيقات الخاصّة بالمستخدم، بالإضافة إلى إعدادات بيئة سطح المكتب الحالية. لكن ليس من الضروري أن تكون جميع إعدادات التطبيقات في هذا المجلد، بل قد تكون في مجلدات منفصلة.
.fontsيحوي الخطوط التي اختار المستخدم تثبيتها لنفسه (أي لن تظهر هذه الخطوط للمستخدمين الآخرين على النظام، بل فقط لهذا المستخدم). هناك عمومًا مسار آخر للخطوط على النظام هو /usr/share/fonts/
.mozillaمجلد يحوي بيانات متصفح فيرفكس الخاصّة بالمستخدم.
.localمجلد آخر لإعدادات التطبيقات وبعض إعدادات النظام الخاصّة بالمستخدم.

وبالطبع هناك المجلدات غير المخفية العادية لتخزين ملفات المستخدم؛ مثل المستندات والصور والموسيقى والتنزيلات وغيرها (تتبع أسماء هذه المجلدات لغة النظام، فقد تجدها بالإنجليزية إن كان نظامك بالإنجليزية وستجدها بالعربية إن كان نظامك بالعربية).


يمكنك عرض المجلدات المخفية في أي مجلد في متصفح الملفات على لينكس عبر الضغط على مفتاحيّ Ctrl + H.

بنية مجلد الجذر على لينكس

يُرمز لقرص الجذر بالرمز /، ولهذا يمكنك مثلًا كتابة الأمر cd / في الطرفية وبعدها ls لترى محتويات هذا القرص ومجلّداته:

mhsabbagh@ryzenpc:~$ cd /
mhsabbagh@ryzenpc:/$ ls
bin    dev   lib    libx32      mnt   root  snap      sys  var
boot   etc   lib32  lost+found  opt   run   srv       tmp
cdrom  home  lib64  media       proc  sbin  swapfile  usr

إليك شرحًا ببعض هذه المجلدات وما تحويه من ملفات تحتها:

اسم المسار وظيفته
/usrيحتوي معظم ملفّات التطبيقات التي يثبّتها المستخدم على جهازه، ولا يحويها مباشرةً بل يضعها في مجلدات أخرى ضمنه مثل /usr/share أو /usr/games وغيرها.
/binيحتوي الملفّات التنفيذية الخاصّة بالحزم والتطبيقات المثبّتة على الجهاز. بعض توزيعات لينكس لا تضع جميع الملفّات التنفيذية في هذا المسار (مثل أوبن سوزا) بل تفصل بينها وبين الملفات التنفيذية التي تتطلب صلاحيات الجذر فتضع هذه الأخيرة في المسار /usr/sbin وتضع التي لا تحتاج هذه الصلاحيات في /bin
/tmpمسار يحوي ملفّات ذاكرة الخبيئة (Cache) والملفّات المؤقتة للعمليات التي تعمل حاليًا.
/varغالبًا ما يحوي ضمنه مجلدات تفيد أنظمة الخواديم (Servers) أكثر؛ مثل ملفّات السجل في /var/log وملفّات مواقع الإنترنت في /var/www وملفّات أخرى.
/etcمسار يحتوي إعدادات النظام والحزم التي ليست من طرف المستخدمين (أي تلك الإعدادات العامة لكامل النظام وليس لكل مستخدم على حدى).
lib64مسار يحوي المكتبات المثبّتة على النظام بإصدار 64 بت.
/homeيحوي مجلّدات المنزل الخاصّة بالمستخدمين.
/rootمجلد المنزل الخاصّ بالمستخدم الجذر (Root user)؛ غالبًا لا يُستعمل.

أنظمة الملفّات على لينكس

تأتي معظم توزيعات لينكس افتراضيًا بنظام الملفّات ext4؛ وهو نظام ملفات قوي ومتين أُطلق منذ 2008م ولا يزال مدعومًا بالتحديثات والتطويرات.

لكن هناك أنظمة ملفّات أخرى، وكل واحد منها يمتلك مميزات مختلفة عن غيره:

  • XFS مثلًا يقال أنه أسرع من أنظمة الملفّات الأخرى في عمليات القراءة والكتابة، لكن عيبه هو أنه لا يدعم عمليات تصغير الأقراص.
  • Btrfs نظام ملفّات من نوع Copy-on-write أو “إنشاء نسخة عند الكتابة”، وهو يدعم إنشاء “لقطات” (Snapshots) للملفّات مما يمكّن المستخدم من استرجاع الإصدارات السابقة من الملفّات في أي وقت، شبيه بميزة “نقطة الاستعادة” على أنظمة ويندوز غير أنه يقوم بها فوريًا وعلى جميع الملفّات. ما يزال تحت التطوير الكثير وقد واجهنا شخصيًا مشاكل فقد بيانات بسبب استخدامه.
  • الكثير جدًا غيرها ولكلٍ استخداماته.

إن كنت مترددًا في اختيار نظام الملفّات المناسب لتوزيعتك عند مرحلة التثبيت، فأفضل ما تفعله هو أن تختار ext4؛ فهو الافتراضي ووضعه مستقر والعلل والمشاكل شبه معدومة معه.

linux-filesystem-architecture.1638384205.txt.gz · آخر تعديل: 2023/12/20 17:08 (تحرير خارجي)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki