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

تخطيط نظام ملفات يونكس الإصدار 7 : الدلائل الفرعية لـ "/" و "/usr"
نظرة عامة على تخطيط نظام ملفات يونكس

في نظام يونكس وأنظمة التشغيل المستوحاة منه، يُعتبر نظام الملفات مكونًا أساسيًا من مكونات نظام التشغيل. [ 1 ] وكان أيضًا من أوائل أجزاء النظام التي صممها ونفذها كين تومسون في النسخة التجريبية الأولى من يونكس، والتي يعود تاريخها إلى عام 1969. [ 2 ]

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

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

مبادئ

يظهر نظام الملفات كشجرة واحدة ذات جذر من الدلائل. [ 1 ] بدلاً من التعامل مع وحدات التخزين المنفصلة، ​​مثل أقسام القرص والوسائط القابلة للإزالة ومشاركات الشبكة ، كأشجار منفصلة، ​​يمكن ربط هذه الوحدات بدليل، مما يجعل شجرة نظام ملفات وحدة التخزين تظهر كدليل في الشجرة الأكبر. [ 1 ] يُشار إلى جذر الشجرة بأكملها بـ /.

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

لا تحتوي الدلائل في أنظمة ملفات يونكس على ملفات. بل تحتوي على أسماء الملفات مقترنة بمراجع لما يُسمى بـ " العُقد" (inodes )، والتي بدورها تحتوي على الملف وبياناته الوصفية ( المالك، والصلاحيات، ووقت آخر وصول، وما إلى ذلك، ولكن بدون الاسم). قد تشير أسماء متعددة في نظام الملفات إلى الملف نفسه، وهي ميزة تُسمى " الرابط الصلب ". [ 1 ] تجعل الخصائص الرياضية للروابط الصلبة نظام الملفات نوعًا محدودًا من الرسوم البيانية الموجهة غير الدورية ، على الرغم من أن الدلائل لا تزال تُشكل شجرة، لأنها عادةً لا تكون مرتبطة بروابط صلبة. وكما تم تصوره في الأصل عام 1969، كان من المفترض استخدام نظام ملفات يونكس كرسم بياني عام مع روابط صلبة للدلائل لتوفير التنقل، بدلاً من أسماء المسارات. [ 2 ]

أنواع الملفات

كان نظام ملفات يونكس الأصلي يدعم ثلاثة أنواع من الملفات: الملفات العادية، والمجلدات ، و"الملفات الخاصة"، والتي تُسمى أيضًا ملفات الأجهزة. [ 1 ] أضاف كل من توزيعة برمجيات بيركلي ( BSD) ونظام System V نوع ملف لاستخدامه في الاتصال بين العمليات : أضافت BSD المقابس ، [ 3 ] بينما أضاف نظام System V ملفات FIFO .

أضاف نظام BSD أيضًا الروابط الرمزية (التي تُسمى غالبًا "symlinks") إلى نطاق أنواع الملفات، وهي ملفات تُشير إلى ملفات أخرى، وتُكمّل الروابط الصلبة. [ 3 ] صُممت الروابط الرمزية على غرار ميزة مماثلة في نظام Multics ، [ 4 ] وتختلف عن الروابط الصلبة في أنها قد تمتد عبر أنظمة ملفات مختلفة، وأن وجودها مستقل عن الكائن المستهدف. قد تدعم أنظمة يونكس الأخرى أنواعًا إضافية من الملفات. [ 5 ]

تخطيط الدليل التقليدي

توجد بعض الاصطلاحات لتحديد مواقع أنواع معينة من الملفات، مثل البرامج وملفات تهيئة النظام ومجلدات المستخدمين الرئيسية . وقد وُثِّقت هذه الاصطلاحات لأول مرة في hier(7)صفحة الدليل (man page) منذ الإصدار السابع من يونكس ؛ [ 6 ] وعادةً ما تحتوي الإصدارات اللاحقة والمشتقات والنسخ المتماثلة على صفحة دليل مماثلة. [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ]

تفاوتت تفاصيل تخطيط الدليل بمرور الوقت. على الرغم من أن تخطيط نظام الملفات ليس جزءًا من مواصفات يونكس الموحدة ، إلا أن هناك عدة محاولات لتوحيد (أجزاء منه)، مثل واجهة التطبيقات الثنائية لنظام System V ، ومعيار التوافق الثنائي من إنتل ، وبيئة نظام التشغيل المشتركة، ومعيار التسلسل الهرمي لنظام الملفات (FHS) الخاص بـ FreeDesktop . [ 13 ]

فيما يلي نظرة عامة على المواقع الشائعة للملفات على نظام التشغيل يونكس:

دليل أو ملفوصف
/يشير حرف الشرطة المائلة /وحده إلى جذر شجرة نظام الملفات.

/bin

يشير هذا إلى الملفات الثنائية ، ويحتوي على بعض الأدوات الأساسية، مثل ` lsor` أو `or` cp، اللازمة لتركيب /usrنظام الملفات `<file>`، عندما يكون نظام ملفات منفصلاً، أو لتشغيله في وضع المستخدم الواحد (الإدارة) عندما /usrيتعذر تركيبه. في نظام التشغيل V.4، يكون هذا رابطًا رمزيًا إلى /usr/bin`<file>`. بخلاف ذلك، يجب أن يكون موجودًا على نظام الملفات الجذر نفسه.

/boot

يحتوي على جميع الملفات اللازمة لعملية الإقلاع الناجحة. في نظام يونكس البحثي ، كان هذا ملفًا واحدًا وليس مجلدًا. [ 14 ] أما اليوم، فيُوضع عادةً في نظام الملفات الجذر نفسه، إلا إذا تطلب النظام أو مُحمِّل الإقلاع خلاف ذلك.

/dev

يرمز إلى الأجهزة . يحتوي على تمثيلات ملفات للأجهزة الطرفية والأجهزة الوهمية . انظر أيضًا: هيئة أسماء وأرقام لينكس المُخصصة . يجب أن يكون موجودًا على نظام الملفات الجذر نفسه.

/etc

يحتوي على ملفات تكوين النظام وقواعد بياناته؛ يشير الاسم إلى "إلخ" [ 14 ] ، ولكن يُفضل الآن استخدام "تكوينات نصية قابلة للتحرير " . كان يحتوي في الأصل على "أدوات صيانة خطيرة" مثل [ 6 ] ، ولكن تم نقلها عادةً إلى أو مكان آخر. يجب أن يكون موجودًا على نظام الملفات الجذر نفسه.init/sbin

/home

يحتوي على مجلدات المستخدمين الرئيسية على نظام لينكس وبعض الأنظمة الأخرى. في الإصدار الأصلي من يونكس، كانت مجلدات المستخدمين الرئيسية موجودة في مكان /usrآخر. [ 15 ] لا تزال بعض الأنظمة تستخدم أو استخدمت مواقع مختلفة: ففي نظام macOS توجد مجلدات المستخدمين الرئيسية في /Users، وفي الإصدارات القديمة من BSD توجد في /u، وفي FreeBSD توجد في /usr/home.

/lib

كانت المكتبات الأساسية في الأصل هي مكتبات لغة C ، ولكن ليس مكتبات Fortran . [ 14 ] في الأنظمة الحديثة، تحتوي على المكتبات المشتركة التي تحتاجها البرامج /bin، وربما وحدات نواة قابلة للتحميل ، وبرامج تشغيل الأجهزة ، أو ملفات ثنائية . قد تحتوي توزيعات لينكس على إصدارات مختلفة /lib32لدعم /lib64معمارية متعددة.

/media

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

/mnt

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

/opt

يحتوي على برامج مثبتة محليًا. نشأ في نظام التشغيل System V ، الذي يحتوي على مدير حزم يقوم بتثبيت البرامج في هذا الدليل (دليل فرعي واحد لكل حزمة). [ 16 ]

/proc

نظام الملفات الاصطناعي procfs يعرض معلومات حول العمليات كملفات.

/root

المجلد الرئيسي للمستخدم الجذر ( root )، أي مدير النظام. عادةً ما يكون هذا المجلد موجودًا على نظام الملفات الأساسي، وليس في /home (الذي قد يكون نقطة ربط لنظام ملفات آخر) تحسبًا لأي صيانة ضرورية قد لا تكون أنظمة الملفات الأخرى متاحة خلالها. قد يحدث هذا، على سبيل المثال، في حال تعطل أحد محركات الأقراص الصلبة وعدم إمكانية ربطه بشكل صحيح.

/sbin

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

/srv

بيانات الخادم (بيانات الخدمات التي يقدمها النظام).

/sys

في بعض توزيعات لينكس ، يحتوي على نظام ملفات اصطناعي sysfs ، يتضمن معلومات متعلقة بالأجهزة ونظام التشغيل. أما في أنظمة BSD، فيحتوي عادةً على رابط رمزي إلى مصادر النواة في ./usr/src/sys

/tmp

مكان مخصص للملفات المؤقتة التي لا يُتوقع بقاؤها بعد إعادة تشغيل النظام. تقوم العديد من الأنظمة بمسح هذا المجلد عند بدء التشغيل أو تستخدم نظام الملفات المؤقت (tmpfs) لتنفيذ ذلك.

/unix

نواة يونكس في ريسيرش يونكس وسيستم في . [ 14 ] مع إضافة دعم الذاكرة الافتراضية إلى 3BSD ، تمت إعادة تسميتها /vmunix.

/usr

في الإصدارات الأولى من يونكس، /usrكان المجلد `<username>` هو المجلد الذي يحتوي على مجلدات المستخدمين الرئيسية؛ وكان اسم المجلد يعكس ذلك. [ 15 ] مع الإصدار الثالث من كتاب "أبحاث يونكس" (حوالي عام 1973)، تجاوزت برامج نظام التشغيل سعة محرك الأقراص ذي الرأس الثابت 256 كيلوبايت الذي يحتوي على `<username>` /bin، لذلك /usr/binتم إنشاء مجلد `<username>` على القرص الذي يحتوي على ` /usr<username>` ليحتوي على بعض الأوامر؛ وكانت الأوامر ومجلدات المستخدمين الرئيسية موجودة في `<username>` /usr. [ 17 ] كما تم إنشاء مجلدات إضافية، مثل `<username>` /usr/libو` <username>`، ضمن `<username>` ؛ ويحتوي الآن على الملفات التنفيذية والمكتبات والموارد المشتركة غير الضرورية للنظام، مثل نظام X Window ومديري النوافذ ولغات البرمجة النصية ، وما إلى ذلك. في أنظمة يونكس القديمة، قد تظهر مجلدات المستخدمين الرئيسية في `<username>` بجانب المجلدات التي تحتوي على تلك العناصر؛ وقد نقلت بعض الأنظمة مجلدات المستخدمين الرئيسية إلى مجلد آخر غير `<username>` ./usr/tmp/usr/usr/usr

/usr/include

يخزن هذا المجلد ملفات رأس التطوير المستخدمة في جميع أنحاء النظام. وتُستخدم ملفات الرأس#include في الغالب بواسطة التوجيه في لغة C ، وهو السبب التاريخي لاختيار اسم هذا المجلد.

/usr/lib

يخزن المكتبات وملفات البيانات اللازمة للبرامج المخزنة داخله /usrأو في مكان آخر.

/usr/libexec

يحتوي هذا المجلد على برامج مُصممة ليتم تشغيلها بواسطة برامج أخرى بدلاً من المستخدمين مباشرةً. على سبيل المثال، قد يوجد ملف Sendmail القابل للتنفيذ في هذا المجلد. [ 18 ] لم يكن هذا المجلد موجودًا في نظام الملفات الهرمي (FHS) حتى عام 2011؛ ​​[ 19 ] جرت العادة في توزيعات لينكس على نقل محتويات هذا المجلد إلى مجلد آخر /usr/lib، حيث كانت موجودة أيضًا في نظام 4.3BSD.

/usr/local

يشبه /usrفي بنيته، لكن مجلداته الفرعية تُستخدم لإضافات ليست جزءًا من توزيعة نظام التشغيل، مثل البرامج المخصصة أو الملفات من مجموعة منافذ BSD . عادةً ما يحتوي على مجلدات فرعية مثل أو ./usr/local/lib/usr/local/bin

/usr/share

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

/var

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

/var/log

يحتوي على ملفات سجل النظام.

/var/mail

المكان الذي تُخزَّن فيه جميع الرسائل الواردة. لا يمكن للمستخدمين (باستثناء root) الوصول إلا إلى رسائلهم الخاصة. غالبًا ما يكون هذا الدليل رابطًا رمزيًا إلى /var/spool/mail.

/var/spool

دليل التخزين المؤقت . يحتوي على مهام الطباعة، وتخزين البريد، ومهام أخرى في قائمة الانتظار.

/var/src

المكان الذي توجد فيه الشفرة المصدرية غير المُجمّعة لبعض البرامج.

/var/tmp

هذا /var/tmpالمجلد هو مكان للملفات المؤقتة التي يجب الاحتفاظ بها بين عمليات إعادة تشغيل النظام.

انظر أيضاً

مراجع

  • تتضمن هذه المقالة مواد من مقالة Citizendium بعنوان " نظام ملفات Unix "، المرخصة بموجب رخصة Creative Commons Attribution-ShareAlike 3.0 Unported ولكنها ليست مرخصة بموجب رخصة GFDL .
  1. ريتشي ، د.م طومسون ، ك. ( يوليو 1978). "نظام يونكس لتقاسم الوقت". مجلة بيل سيستم التقنية 57 ( 6 ): 1905-1929 . CiteSeerX 10.1.1.112.595 . doi : 10.1002 / j.1538-7305.1978.tb02136.x . 
  2. 1 2 ريتشي، دينيس م. (1979). تطور نظام يونكس لتقاسم الوقت . مؤتمر تصميم اللغات ومنهجية البرمجة. مؤرشف من الأصل بتاريخ 2015-04-08 . تم الاطلاع عليه بتاريخ 2014-04-20 .
  3. 1 2 ليفلر، صموئيل جماكوسيك، مارشال كيرك ؛ كاريلز، مايكل جكوارترمان، جون س. (أكتوبر 1989). تصميم وتنفيذ نظام التشغيل يونكس 4.3BSD . أديسون-ويسلي . ISBN 978-0-201-06196-3.
  4. ماكوسيك، مارشال كيرك؛ وآخرون . "نظام ملفات سريع لنظام يونكس" (ملف PDF) . Freebsd.org . CSRG، جامعة كاليفورنيا، بيركلي . تم الاطلاع عليه بتاريخ 16 نوفمبر 2016 . 
  5. دليل مبرمج لينكس – استدعاءات النظام من Manned.orgstat(2)  
  6. 1 2دليل مبرمج يونكس الإصدار 7hier(7)  
  7. دليل معلومات متنوعة لنظام FreeBSDhier(7)  
  8. دليل معلومات متنوعة لنظام OpenBSDhier(7)  
  9. "hier(7) man page for 2.9.1 BSD" .
  10. "صفحة الدليل التالية (7) لـ ULTRIX 4.2" .
  11. "hier(7) man page for SunOS 4.1.3" .
  12. دليل مبرمج لينكس – نظرة عامة، واصطلاحات، ومعلومات متنوعة من موقع Manned.orghier(7)  
  13. جورج كرافت الرابع (1 نوفمبر 2000). "أين يمكنني تثبيت منتجاتي على لينكس؟" . مجلة لينكس . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  14. 1 2 3 4 كيرنيغان، برايان دبليوبايك، روب (1984). بيئة برمجة يونكس . برنتيس هول. ص 63-65 . Bibcode : 1984upe..book.....K . 
  15. 1 2 ريتشي، دينيس. "ملاحظات يونكس من عام 1972" . تم الاسترجاع في 7 سبتمبر 2025 .
  16. ↑ إصدار واجهة التطبيق الثنائية للنظام الخامس 4.1 (1997-03-18)
  17. إم دي ماكلروي (1987). "مختارات بحثية من يونكس: مقتطفات مشروحة من دليل المبرمج، 1971-1986" (ملف PDF) . مختبرات بيل. CSTR 139.
  18. "الفصل 7. إرسال البريد" . إدارة مرافق الشبكات UNICOS /mp . كراي . مؤرشف من الأصل في 9 نوفمبر 2017. تم الاسترجاع في 14 سبتمبر 2013 .
  19. "مراجعة fhs-spec رقم 44" . مؤرشف من الأصل بتاريخ 2017-03-05 . تم الاطلاع عليه بتاريخ 2016-07-14 .