أنظمة الملفات
نظام الملفات هو المكون الخاص بنظام التشغيل الذي ينظم البيانات المستمرة في ملفات وأدلة مسماة على أجهزة التخزين، ويدير كيفية ترتيب البيانات وتحديد موقعها وحمايتها والحفاظ على اتساقها.
Definition
نظام الملفات هو الطريقة وهياكل البيانات التي يستخدمها نظام التشغيل لتخزين وتنظيم وتسمية واسترداد وحماية البيانات المستمرة على جهاز تخزين، ويقدم الملفات والأدلة للتطبيقات بينما يدير التخطيط والاتساق على الجهاز.
Scope
يغطي هذا الموضوع تجريد الملف وواجهته، وهياكل الأدلة، وطرق التخصيص (المتجاورة، المرتبطة، المفهرسة) وإدارة المساحة الحرة، وهياكل البيانات الوصفية مثل العقد الطرفية (inodes)، والتسجيل (journaling) واتساق الأعطال، وذاكرة التخزين المؤقت (buffer cache). ويتناول كيف يحول نظام التشغيل التخزين الخام إلى مساحة اسم موثوقة ومسماة. ويستثني أجهزة التخزين المادية نفسها (أجهزة التخزين الثانوية) وإدارة الذاكرة الرئيسية لنظام التشغيل (إدارة الذاكرة).
Core questions
- كيف يتم تسمية الملفات وتنظيمها في أدلة والوصول إليها؟
- كيف يتم تخصيص بيانات الملف وتحديد موقعها على جهاز التخزين؟
- ما هي البيانات الوصفية التي يحتفظ بها نظام الملفات، وكيف تتم إدارة المساحة الحرة؟
- كيف يحافظ نظام الملفات على اتساقه عبر الأعطال؟
Key concepts
- تجريد الملف وواجهته
- الأدلة ومساحات الأسماء
- العقد الطرفية (inodes) والبيانات الوصفية
- طرق التخصيص (المتجاورة، المرتبطة، المفهرسة)
- إدارة المساحة الحرة
- التسجيل (journaling) واتساق الأعطال
- ذاكرة التخزين المؤقت (buffer cache)
- التحكم في الوصول والأذونات
Key theories
- اتساق الأعطال
- نظرًا لأن العطل قد يقطع التحديثات متعددة الخطوات، تستخدم أنظمة الملفات تقنيات مثل التسجيل (journaling) (تسجيل التغييرات المقصودة قبل تطبيقها) أو النسخ عند الكتابة (copy-on-write) لضمان أنه بعد الفشل يمكن استعادة نظام الملفات إلى حالة متسقة.
Mechanisms
يقوم نظام الملفات بربط تدفق البايت المنطقي لكل ملف بالكتل الموجودة على الجهاز، ويسجل هذا الربط والسمات في هياكل البيانات الوصفية مثل العقد الطرفية (inodes) والأدلة. تحدد طرق التخصيص كيفية تعيين الكتل وتتبعها، وتسجل هياكل المساحة الحرة الكتل المتاحة. تحتفظ ذاكرة التخزين المؤقت (buffer cache) بالكتل المستخدمة مؤخرًا في الذاكرة، ويضمن التسجيل (journaling) أو النسخ عند الكتابة (copy-on-write) أن التحديثات المتقطعة تترك نظام الملفات في حالة قابلة للاسترداد ومتسقة.
Clinical relevance
تعد أنظمة الملفات هي الطريقة التي يتم بها تخزين واسترداد جميع البيانات المستمرة تقريبًا، لذا فإن أداءها وموثوقيتها أمران حاسمان لقواعد البيانات والتطبيقات والمستخدمين على حد سواء. تحدد خيارات التصميم المتعلقة بالبيانات الوصفية والتخزين المؤقت واتساق الأعطال المتانة والاسترداد بعد الأعطال، وتجسد أنظمة الملفات المستخدمة على نطاق واسع مثل ext4 وNTFS وZFS عقودًا من هذه المقايضات.
History
تم إنشاء أنظمة الملفات الهرمية ذات الأدلة ونموذج العقدة الطرفية (inode) بواسطة UNIX حوالي عام 1970. وقد حسّن نظام الملفات السريع Berkeley Fast File System التخطيط والأداء، وتناولت تصاميم التسجيل (journaling) والهياكل القائمة على السجلات في التسعينيات اتساق الأعطال وأداء الكتابة. ثم قامت أنظمة الملفات التي تعتمد على النسخ عند الكتابة (copy-on-write) مثل ZFS وBtrfs بدمج المجاميع الاختبارية (checksums) واللقطات (snapshots) لضمان سلامة أقوى.
Debates
- التسجيل (journaling) مقابل النسخ عند الكتابة (copy-on-write) للاتساق
- يسجل التسجيل (journaling) التغييرات المقصودة قبل تطبيقها، بينما يكتب النسخ عند الكتابة (copy-on-write) بيانات جديدة إلى مواقع جديدة ويقوم بتبديل المؤشرات بشكل ذري؛ كل منهما يوفر اتساق الأعطال مع مقايضات مختلفة في الأداء والمساحة والسلامة، وكلاهما يستخدم في الأنظمة الحديثة.
Key figures
- Ken Thompson
- Dennis Ritchie
- Marshall Kirk McKusick
- Abraham Silberschatz
Related topics
Seminal works
- silberschatz2018
- tanenbaum2014os
Frequently asked questions
- ما هي العقدة الطرفية (inode)؟
- العقدة الطرفية (inode) هي بنية بيانات وصفية تصف ملفًا: حجمه، ملكيته وأذوناته، طوابع الوقت، ومؤشرات إلى كتل التخزين التي تحتوي على بياناته. تربط الأدلة الأسماء المقروءة بشريًا بالعقد الطرفية (inodes)، مما يفصل اسم الملف عن تمثيله على الجهاز.
- كيف يحمي التسجيل (journaling) من الأعطال؟
- قبل تعديل هياكل نظام الملفات، يسجل نظام الملفات الذي يستخدم التسجيل (journaling) التغييرات المقصودة في سجل. إذا أدى عطل إلى مقاطعة التحديث، يقوم النظام عند إعادة التشغيل بإعادة تشغيل أو تجاهل التغييرات المسجلة، مما يعيد حالة متسقة بدلاً من ترك نظام الملفات تالفًا.