ext4
ext4 ( نظام الملفات الموسع الرابع ) هو نظام ملفات تسجيل لنظام Linux ، تم تطويره كخليفة لنظام ext3 .
كان نظام الملفات ext4 في البداية سلسلة من الإضافات المتوافقة مع الإصدارات السابقة لنظام الملفات ext3، وقد طُوِّر العديد منها في الأصل بواسطة شركة Cluster File Systems لنظام الملفات Lustre بين عامي 2003 و2006، بهدف زيادة سعة التخزين وتحسين الأداء. [ 4 ] ومع ذلك، عارض مطورو نواة لينكس الآخرون قبول إضافات لنظام ext3 لأسباب تتعلق بالاستقرار، [ 5 ] واقترحوا إنشاء نسخة من شفرة المصدر لنظام ext3، وإعادة تسميتها إلى ext4، وإجراء جميع عمليات التطوير هناك، دون التأثير على مستخدمي ext3 الحاليين. قُبِل هذا الاقتراح، وفي 28 يونيو 2006، أعلن ثيودور تسو ، المسؤول عن صيانة نظام ext3، عن خطة التطوير الجديدة لنظام ext4. [ 6 ]
أُدرجت نسخة تجريبية أولية من نظام الملفات ext4 في الإصدار 2.6.19 [ 7 ] من نواة لينكس. وفي 11 أكتوبر 2008، دُمجت التصحيحات التي تُصنّف ext4 كبرنامج مستقر في مستودعات شفرة المصدر للينكس 2.6.28، [ 8 ] مما يُشير إلى نهاية مرحلة التطوير ويُوصي باعتماد ext4. أُصدرت نواة لينكس 2.6.28، التي تحتوي على نظام الملفات ext4، رسميًا في 25 ديسمبر 2008. [ 9 ] وفي 15 يناير 2010، أعلنت جوجل أنها ستُحدّث بنية التخزين الخاصة بها من ext2 إلى ext4. [ 10 ] وفي 14 ديسمبر 2010، أعلنت جوجل أيضًا أنها ستستخدم ext4، بدلًا من YAFFS ، في نظام أندرويد 2.3 . [ 11 ]
تشمل تحسيناته مقارنةً بنظام ext3 نطاقًا زمنيًا ينتهي في عام 2446 بدلاً من عام 2038 ، ودقةً في تحديد الطابع الزمني تصل إلى نانوثانية بدلاً من ثانية واحدة، وحدودًا أعلى لحجم الملفات. [ 12 ] [ 13 ]
التبني
يُعد نظام الملفات ext4 هو نظام الملفات الافتراضي للعديد من توزيعات لينكس بما في ذلك ديبيان وأوبونتو . [ 14 ]
سمات
- نظام ملفات كبير
- يدعم نظام الملفات ext4 نظريًا وحدات تخزين يصل حجمها إلى 64 زيتابايت، وملفات مفردة يصل حجمها إلى 16 تيرابايت مع حجم كتلة قياسي يبلغ 4 كيلوبايت ، ووحدات تخزين يصل حجمها إلى 1 يي بايت مع مجموعات بيانات بحجم 64 كيلوبايت ، إلا أن قيود تنسيق الامتداد تجعل 1 إكسابايت الحد العملي. [ 15 ] وتزداد حدود حجم الملفات والمجلدات وأنظمة الملفات القصوى بشكل متناسب على الأقل مع حجم كتلة نظام الملفات حتى الحد الأقصى لحجم الكتلة البالغ 64 كيلوبايت المتوفر على معالجات ARM و PowerPC / Power ISA .
- الامتدادات
- تحلّ وحدات التخزين (Extents) محلّ نظام ربط الكتل التقليدي المستخدم في نظامي ext2 وext3. وحدة التخزين هي نطاق من الكتل الفيزيائية المتجاورة، مما يُحسّن أداء الملفات الكبيرة ويُقلّل من التجزئة. في نظام ext4، يمكن لوحدة تخزين واحدة ربط ما يصل إلى 128 ميجابايت من المساحة المتجاورة بحجم كتلة 4 كيلوبايت. [ 4 ] يمكن تخزين أربع وحدات تخزين مباشرةً في عقدة الملف (inode) . عندما يزيد عدد وحدات التخزين في ملف واحد عن أربع، تُفهرس الوحدات المتبقية في شجرة . [ 16 ]
- التوافق مع الإصدارات السابقة
- يُعدّ نظام الملفات ext4 متوافقًا مع الإصدارات السابقة ext3 و ext2 ، مما يُتيح إمكانية تثبيت ext3 وext2 كنظام ext4. وهذا من شأنه أن يُحسّن الأداء بشكل طفيف، لأن بعض الميزات الجديدة لتطبيق ext4 يُمكن استخدامها أيضًا مع ext3 وext2، مثل خوارزمية تخصيص الكتل الجديدة، دون التأثير على تنسيق القرص. [ 17 ]
- نظام الملفات ext3 متوافق جزئيًا مع نظام الملفات ext4. عمليًا، لن يتم تحميل نظام الملفات ext4 كنظام ملفات ext3 افتراضيًا، إلا إذا تم تعطيل بعض الميزات الجديدة عند إنشائه، مثل
^extentو^flex_bgو^huge_fileو^uninit_bgو^dir_nlinkو^extra_isize. [ 18 ] - التخصيص المسبق المستمر
- يُمكن لنظام الملفات ext4 تخصيص مساحة مُسبقة على القرص لملف. في معظم أنظمة الملفات، تُكتب أصفار في الملف عند إنشائه. أما في ext4 (وبعض أنظمة الملفات الأخرى مثل XFS )
fallocate()، فيُمكن استخدام استدعاء نظام جديد في نواة لينكس. تُضمن المساحة المُخصصة، وغالبًا ما تكون مُتصلة. يُفيد هذا في تطبيقات بث الوسائط وقواعد البيانات. - تخصيص متأخر
- يستخدم نظام الملفات ext4 تقنية لتحسين الأداء تُسمى التخصيص عند الكتابة ، والمعروفة أيضًا بالتخصيص المؤجل . أي أن ext4 يؤجل تخصيص الكتل حتى يتم كتابة البيانات إلى القرص؛ في المقابل، تقوم بعض أنظمة الملفات بتخصيص الكتل فورًا، حتى عند نقل البيانات إلى ذاكرة التخزين المؤقت للكتابة. يُحسّن التخصيص المؤجل الأداء ويقلل من التجزئة من خلال تخصيص كميات أكبر من البيانات في وقت واحد. [ 19 ]
- عدد غير محدود من المجلدات الفرعية
- لا يفرض نظام الملفات ext4 قيودًا على عدد المجلدات الفرعية داخل المجلد الواحد، باستثناء الحد الأقصى لحجم المجلد نفسه. (في نظام ext3، يمكن أن يحتوي المجلد على 32,000 مجلد فرعي كحد أقصى). [ 20 ] وللسماح بمجلدات أكبر حجمًا مع الحفاظ على الأداء الأمثل، يُفعّل نظام ext4 في إصدار Linux 2.6.23 والإصدارات الأحدث فهارس HTree (وهي نسخة متخصصة من شجرة B ) افتراضيًا، مما يسمح بتخزين مجلدات يصل عدد مدخلاتها إلى ما يقارب 10-12 مليون مدخل في فهرس HTree ثنائي المستوى، مع حد أقصى لحجم المجلد يبلغ 2 جيجابايت لحجم كتلة 4 كيلوبايت، وذلك حسب طول اسم الملف. في إصدار Linux 4.12 والإصدارات الأحدث، أتاحت هذه الميزة فهرس HTree ثلاثي المستويات وأحجام مجلدات تتجاوز 2 جيجابايت، مما يسمح بتخزين ما يقارب 6 مليارات مدخل في المجلد الواحد.
large_dir - مجاميع التحقق من السجل
- يستخدم نظام الملفات ext4 مجاميع التحقق [ 21 ] في سجل العمليات لتحسين الموثوقية، نظرًا لأن سجل العمليات يُعدّ من أكثر ملفات القرص استخدامًا. لهذه الميزة فائدة إضافية: فهي تُجنّب تأخير عمليات الإدخال/الإخراج للقرص أثناء عملية التسجيل، مما يُحسّن الأداء بشكل طفيف. استُلهمت فكرة استخدام مجاميع التحقق في سجل العمليات من مقال بحثي من جامعة ويسكونسن بعنوان " أنظمة ملفات IRON " [ 22 ] ، مع تعديلات على تنفيذ المعاملات المركبة التي يُجريها نظام ملفات IRON (الذي اقترحه سام نقشينه في قمة Red Hat).
- التحقق من مجموع البيانات الوصفية
- أُضيفت خاصية دعم التحقق من صحة البيانات الوصفية في نواة لينكس الإصدار 3.5 الصادر عام 2012. [ 23 ] [ 24 ] تم تعديل العديد من هياكل البيانات لإضافة التحقق من صحة CRC-32C، لكن بعضها يخزن فقط 16 بتًا السفلى من مجموع التحقق ذي 32 بتًا، لعدم وجود مساحة كافية محجوزة مسبقًا لاستيعاب البايتات الأربعة كاملة. يمكن إجراء التحويل المباشر باستخدام [ 25 ]
tune2fs -O metadata_csum. - فحص أسرع لنظام الملفات
- في نظام الملفات ext4، تُعلّم مجموعات الكتل غير المخصصة وأقسام جدول inode على هذا النحو. وهذا يُمكّن أداة e2fsck من تخطيها تمامًا، مما يُقلل بشكل كبير من الوقت اللازم لفحص نظام الملفات. يدعم نظام لينكس 2.6.24 هذه الميزة.
- مُخصِّص متعدد الكتل
- عندما يُلحق نظام ext3 البيانات بملف، فإنه يستدعي مُخصِّص الكتل مرة واحدة لكل كتلة. ونتيجةً لذلك، في حال وجود عدة كُتّاب متزامنين، قد تتجزأ الملفات بسهولة على القرص. أما نظام ext4 فيستخدم التخصيص المؤجل، مما يسمح له بتخزين البيانات مؤقتًا وتخصيص مجموعات من الكتل. وبالتالي، يُمكن لمُخصِّص الكتل المتعددة اتخاذ خيارات أفضل لتخصيص الملفات بشكل متجاور على القرص. كما يُمكن استخدام مُخصِّص الكتل المتعددة عند فتح الملفات في وضع O_DIRECT. ولا تؤثر هذه الميزة على تنسيق القرص.
- تحسين الطوابع الزمنية
- مع ازدياد سرعة الحواسيب عمومًا، وتزايد استخدام نظام لينكس في التطبيقات بالغة الأهمية ، أصبحت دقة الطوابع الزمنية المُقاسة بالثواني غير كافية. ولحل هذه المشكلة، يوفر نظام الملفات ext4 طوابع زمنية مُقاسة بالنانو ثانية . إضافةً إلى ذلك، تُضاف بتان من حقل الطابع الزمني المُوسّع إلى البتات الأكثر أهمية في حقل الثواني للطوابع الزمنية لتأجيل مشكلة عام 2038 لمدة 408 سنوات إضافية. [ 3 ]
- يُضيف نظام الملفات ext4 أيضًا دعمًا لطوابع وقت الإنشاء. ولكن، كما يُشير ثيودور تسو ، فبينما يسهل إضافة حقل تاريخ إنشاء إضافي في عقدة البيانات (مما يُتيح تقنيًا دعم هذه الطوابع الزمنية في ext4)، إلا أن تعديل أو إضافة استدعاءات النظام اللازمة ، مثل stat() (والتي قد تتطلب إصدارًا جديدًا) والمكتبات المختلفة التي تعتمد عليها (مثل glibc )، يُعد أكثر صعوبة. ستتطلب هذه التغييرات تنسيقًا بين العديد من المشاريع. [ 26 ] لذلك، فإن تاريخ الإنشاء المُخزّن بواسطة ext4 مُتاح حاليًا لبرامج المستخدم على نظام Linux فقط عبر واجهة برمجة التطبيقات
statx()(API). [ 27 ] - حصص المشروع
- أُضيفت ميزة دعم حصص المشاريع في نواة لينكس 4.4 بتاريخ 8 يناير 2016. تتيح هذه الميزة تحديد حدود حصص القرص لمعرّف مشروع مُحدد. معرّف المشروع هو رقم مكون من 32 بت يُخزّن في كل ملف، ويتم توريثه لجميع الملفات والمجلدات الفرعية المُنشأة ضمن مجلد رئيسي يحمل معرّف المشروع نفسه. يسمح هذا بتحديد حدود الحصص لشجرة مجلدات فرعية مُحددة بغض النظر عن أذونات الوصول إلى الملف، مثل حصص المستخدم والمشروع التي تعتمد على معرّف المستخدم (UID) ومعرّف المجموعة (GID). على الرغم من تشابه هذه الميزة مع حصص المجلدات، إلا أن الفرق الرئيسي يكمن في إمكانية تعيين معرّف المشروع نفسه لمجلدات رئيسية متعددة، مما يُتيح تطبيقها على مستويات هرمية مختلفة. [ 28 ]
- تشفير شفاف
- تمت إضافة دعم التشفير الشفاف في نواة لينكس 4.1 في يونيو 2015. [ 29 ]
- التهيئة الكسولة
- تتيح ميزة lazyinit تنظيف جداول inode في الخلفية، مما يُسرّع عملية التهيئة عند إنشاء نظام ملفات ext4 جديد. [ 30 ] وهي متوفرة منذ عام 2010 في نواة لينكس الإصدار 2.6.37. [ 31 ]
- اكتب الحواجز
- يُفعّل نظام الملفات ext4 خاصية حواجز الكتابة افتراضيًا. يضمن هذا النظام كتابة بيانات تعريف نظام الملفات بشكل صحيح ومرتب على القرص، حتى عند انقطاع التيار الكهربائي عن ذاكرة التخزين المؤقت للكتابة. يُصاحب ذلك انخفاض في الأداء، خاصةً للتطبيقات التي تستخدم fsync بكثافة أو التي تُنشئ وتحذف العديد من الملفات الصغيرة. بالنسبة للأقراص المزودة بذاكرة تخزين مؤقت للكتابة مدعومة ببطارية، قد يُحسّن تعطيل الحواجز (الخيار 'barrier=0') الأداء بشكل آمن. [ 32 ]
القيود
في عام ٢٠٠٨، صرّح ثيودور تسو ، المطور الرئيسي لنظامي الملفات ext3 وext4، بأنه على الرغم من أن ext4 يتمتع بميزات محسّنة مقارنةً بـ ext3، إلا أنه لا يُعدّ تطورًا جذريًا، إذ يعتمد على تقنية أقدم. وأشار تسو آنذاك إلى أن Btrfs قد يكون الخيار الأمثل لأنه "يُقدّم تحسينات في قابلية التوسع والموثوقية وسهولة الإدارة". [ ٣٣ ] كما أن Btrfs يتضمن "عددًا من أفكار التصميم نفسها التي كانت موجودة في ext3 / 4 " والتي جعلته يبدو جذابًا في ذلك الوقت. [ ٣٤ ] ومع ذلك، واصل تسو والعديد من المساهمين من شركات IBM و Google و SuSE و Huawei وغيرها، صيانة ext4 وتحسينه بإضافة ميزات جديدة مثل تشفير الملفات، ومجموع التحقق من البيانات الوصفية، وأسماء الملفات غير الحساسة لحالة الأحرف.
لا يدعم نظام الملفات ext4 خاصية "الحذف الآمن" للملفات ، والتي من المفترض أن تؤدي إلى استبدال الملفات عند حذفها. وقد اقتُرح تصحيح لتطبيق الحذف الآمن في عام 2011، لكنه لم يحل مشكلة وجود البيانات الحساسة في سجل نظام الملفات. [ 35 ]
تأخر في التخصيص واحتمالية فقدان البيانات
نظرًا لأن تأخير تخصيص مساحة التخزين يُغيّر السلوك الذي اعتمد عليه المبرمجون في نظام الملفات ext3، فإن هذه الميزة تُشكّل خطرًا إضافيًا لفقدان البيانات في حال تعطل النظام أو انقطاع التيار الكهربائي عنه قبل كتابة جميع البيانات على القرص. ولهذا السبب، يتعامل نظام الملفات ext4 في إصدارات النواة 2.6.30 والإصدارات الأحدث مع هذه الحالات تلقائيًا كما يفعل نظام ext3.
السيناريو النموذجي الذي قد يحدث فيه هذا هو قيام برنامج باستبدال محتويات ملف دون فرض الكتابة على القرص باستخدام fsync . هناك طريقتان شائعتان لاستبدال محتويات ملف على أنظمة يونكس: [ 36 ]
fd=open("file", O_TRUNC); write(fd, data); close(fd);
- في هذه الحالة، يتم اقتطاع الملف الموجود عند فتحه (بسبب
O_TRUNCعلامة معينة)، ثم تُكتب البيانات الجديدة. ونظرًا لأن عملية الكتابة قد تستغرق بعض الوقت، فهناك احتمال لفقدان بعض المحتويات حتى مع نظام الملفات ext3، ولكنه عادةً ما يكون ضئيلاً جدًا. أما مع نظام الملفات ext4، فقد يكون هذا الاحتمال أكبر بكثير نظرًا لقدرته على تأخير كتابة بيانات الملف لفترة طويلة. - هناك العديد من المشاكل التي قد تنشأ:
- إذا لم تنجح عملية الكتابة (والتي قد تكون بسبب ظروف خطأ في برنامج الكتابة، أو بسبب ظروف خارجية مثل امتلاء القرص)، فسيتم فقدان كل من النسخة الأصلية والنسخة الجديدة من الملف، وقد يتلف الملف لأنه لم تتم كتابة سوى جزء منه.
- إذا قامت عمليات أخرى بالوصول إلى الملف أثناء كتابته، فإنها سترى نسخة تالفة.
- إذا كانت عمليات أخرى تستخدم الملف ولا تتوقع تغيير محتوياته، فقد تتعطل تلك العمليات. ومن الأمثلة البارزة على ذلك ملف مكتبة مشتركة يتم ربطه بالبرامج قيد التشغيل.
- بسبب هذه المشكلات، غالباً ما يُفضّل استخدام التعبير التالي على التعبير المذكور أعلاه:
fd=open("file.new"); write(fd, data); close(fd); rename("file.new", "file");
- يتم إنشاء ملف مؤقت جديد ("file.new") يحتوي مبدئيًا على المحتويات الجديدة. ثم يُعاد تسمية الملف الجديد ليحل محل الملف القديم.
rename()يضمن معيار POSIX أن استبدال الملفات بهذه الطريقة عملية ذرية ، أي إما أن يبقى الملف القديم أو يُستبدل بالملف الجديد. ولأن وضع التسجيل "المرتب" الافتراضي في نظام ext3 يضمن كتابة بيانات الملف على القرص قبل البيانات الوصفية، فإن هذه التقنية تضمن بقاء محتويات الملف، سواءً القديمة أو الجديدة، على القرص. أما نظام ext4، فيُخالف هذا التوقع بسبب تأخير تخصيص الذاكرة، إذ يمكن تأخير كتابة الملف لفترة طويلة، وعادةً ما تتم إعادة التسمية قبل وصول محتويات الملف الجديدة إلى القرص.
قد يؤدي استخدام fsync()ext4 بشكل متكرر لتقليل المخاطر إلى انخفاض أداء أنظمة ملفات ext3 المُثبّتة باستخدام data=orderedالعلامة (وهي الوضع الافتراضي في معظم توزيعات لينكس). ونظرًا لاستخدام كلا نظامي الملفات لفترة من الوقت، يُعقّد هذا الأمر الأمور بالنسبة لمطوري تطبيقات المستخدم النهائي. وللتغلب على هذه المشكلة، يقوم ext4 في نواة لينكس 2.6.30 والإصدارات الأحدث باكتشاف هذه الحالات الشائعة وفرض تخصيص الملفات فورًا. مقابل انخفاض طفيف في الأداء، يوفر هذا دلالات مشابهة لوضع الترتيب في ext3، ويزيد من احتمالية بقاء أي من نسختي الملف بعد التعطل. هذا السلوك الجديد مُفعّل افتراضيًا، ولكن يمكن تعطيله باستخدام خيار التثبيت "noauto_da_alloc". [ 36 ]
أصبحت التصحيحات الجديدة جزءًا من نواة النظام الرئيسية 2.6.30، لكن العديد من التوزيعات اختارت نقلها إلى الإصدار 2.6.28 أو 2.6.29. [ 37 ]
لا تمنع هذه التحديثات فقدان البيانات المحتمل بشكل كامل، ولا تُساعد إطلاقًا في التعامل مع الملفات الجديدة. والطريقة الوحيدة لضمان الأمان هي كتابة واستخدام برامج تُجري هذه التحديثات fsync()عند الحاجة. ويمكن تقليل مشاكل الأداء عن طريق الحد من عمليات الكتابة الأساسية على القرص التي تتطلب fsync()تكرارًا أقل. [ 38 ]
تطبيق

نظام الملفات الافتراضي لنواة لينكس هو نظام فرعي أو طبقة داخل نواة لينكس. وهو نتاج محاولة دمج أنظمة ملفات متعددة في بنية واحدة منظمة. الفكرة الأساسية، التي تعود إلى العمل الرائد الذي قام به موظفو شركة صن مايكروسيستمز عام 1986، [ 39 ] هي تجريد ذلك الجزء من نظام الملفات المشترك بين جميع أنظمة الملفات ووضع هذا الكود في طبقة منفصلة تستدعي أنظمة الملفات الفعلية الأساسية لإدارة البيانات.
تُوجَّه جميع استدعاءات النظام المتعلقة بالملفات (أو الملفات الوهمية) إلى نظام الملفات الافتراضي لنواة لينكس للمعالجة الأولية. هذه الاستدعاءات، الصادرة من عمليات المستخدم، هي استدعاءات POSIX القياسية، مثل open`<file> read` و` <file>` writeو`<file lseek>` وغيرها.
قابلية التشغيل البيني
على الرغم من أن نظام الملفات ext4 مصمم للاستخدام مع نظام Linux بشكل أساسي، إلا أنه يمكن الوصول إليه عبر أنظمة تشغيل أخرى من خلال أدوات التوافق.
يُتيح نظام ويندوز الوصول إلى نظام لينكس الفرعي (WSL). تحديدًا، يُعدّ الإصدار الرئيسي الثاني، WSL 2، أول إصدار يدعم نظام الملفات ext4. وقد طُرح لأول مرة في الإصدار التجريبي 20211 من ويندوز 10. [ 40 ] [ 41 ] [ 42 ] [ 43 ] يتطلب WSL 2 نظام ويندوز 10 الإصدار 1903 أو أحدث، مع البنية 18362 أو أحدث، لأنظمة x64، والإصدار 2004 أو أحدث، مع البنية 19041 أو أحدث، لأنظمة ARM64. [ 44 ]
تقدم شركة Paragon Software منتجات تجارية توفر إمكانية الوصول الكامل للقراءة/الكتابة لأنظمة الملفات ext2/3/4 - Linux لنظام التشغيل Windows [ 45 ] و extFS لنظام التشغيل Mac . [ 46 ]
يوفر برنامج ext4fuse المجاني دعمًا محدودًا (للقراءة فقط).
الهندسة المعمارية العامة
يقسم نظام الملفات ext4 القسم الذي يوجد فيه إلى أجزاء أصغر تُسمى كتل (مجموعة من القطاعات، يتراوح حجمها عادةً بين 1 كيلوبايت و64 كيلوبايت). افتراضيًا، يكون حجم الكتلة مساويًا لحجم الصفحة (4 كيلوبايت)، ولكن يمكن تغييره باستخدام الأمر mkfs أثناء إنشاء نظام الملفات. تُجمّع الكتل في أجزاء أكبر تُسمى مجموعات الكتل.
كتلة فائقة
هذا هو جوهر نظام الملفات؛ وهو موجود في كتلة واحدة فقط من القرص. [ 47 ] عادةً ما يكون العنصر الأول في مجموعة الكتل، باستثناء المجموعة 0، حيث تُحجز أول 1024 بايت [ 48 ] لقطاع الإقلاع "وغيره من البيانات". الكتلة الفائقة (Superblock) حيوية لنظام الملفات - ولذلك، تُكتب نسخ احتياطية منها عبر الأقسام عند إنشاء نظام الملفات، بحيث يمكن استعادتها في حالة تلفها.
جدول وصف المجموعات
يأتي جدول وصف مجموعات الكتل (GDT) في المرتبة الثانية بعد الكتلة الفائقة. يخزن جدول وصف مجموعات الكتل (GDT) مُعرّفات مجموعات الكتل لكل مجموعة كتل في نظام الملفات. ويوجد على أكثر من كتلة واحدة على القرص. يبلغ حجم كل جدول وصف مجموعات كتل (GDT) 64 بايت. يُعد هذا الهيكل حيويًا لنظام الملفات؛ ولذلك، تُخزّن النسخ الاحتياطية المُكرّرة عبر نظام الملفات.
صورة نقطية للكتلة
تتتبع خريطة بتات الكتل حالة استخدام جميع كتل مجموعة الكتل. يمثل كل بت في خريطة البتات كتلةً. إذا كانت الكتلة قيد الاستخدام، فسيتم ضبط البت المقابل لها؛ وإلا، فسيتم إلغاء ضبطه. موقع خريطة بتات الكتل غير ثابت، لذا يتم تخزين موقعها في واصفات مجموعة الكتل المعنية.
خريطة نقطية للعقدة
على غرار خريطة بتات الكتلة، فإن موقع خريطة بتات العقدة ليس ثابتًا أيضًا؛ لذا، يشير واصف المجموعة إلى موقع خريطة بتات العقدة. تتتبع خريطة بتات العقدة استخدام العقد. يمثل كل بت في خريطة البتات عقدة. إذا كانت العقدة قيد الاستخدام، فسيتم تعيين البت المقابل لها في خريطة بتات العقدة؛ وإلا، فسيتم إلغاء تعيينه.
مُعرِّفات مجموعات الكتل
يتم تمثيل كل مجموعة كتل بواسطة واصف مجموعة الكتل الخاص بها. يحتوي هذا الواصف على معلومات حيوية لمجموعة الكتل مثل عدد العقد المتاحة ، وعدد الكتل المتاحة، وموقع خريطة بتات العقد، وخريطة بتات الكتل، وجدول العقد لتلك المجموعة تحديدًا.
مجموعات الكتل المرنة
قدّم نظام الملفات Ext4 مجموعات الكتل المرنة. في flex_bg ، يتم تجميع عدة مجموعات كتل في مجموعة كتل منطقية واحدة. يتم توسيع خريطة بتات الكتل وخريطة بتات العقد (inode) لمجموعة الكتل الأولى لتشمل خريطة بتات وجدول العقد (inode) لمجموعات الكتل الأخرى.
انظر أيضاً
- نظام ملفات Btrfs – نظام ملفات النسخ عند الكتابة
- مقارنة أنظمة الملفات
- سمات الملفات الموسعة - مجموعة من ميزات نظام الملفات
- e2fsprogs – برنامج لصيانة أنظمة ملفات ext*
- Ext2Fsd – برنامج تشغيل نظام الملفات مفتوح المصدر
- JFS – نظام الملفات
- قائمة أنظمة الملفات
- قائمة أنظمة الملفات الافتراضية
- Reiser4 – نظام ملفات تسجيل الأحداث لنظام لينكس
- نظام الملفات XFS – نظام ملفات التسجيل لأنظمة IRIX و Linux
- نظام الملفات ZFS – نظام الملفات الذي يعتمد على النسخ عند الكتابة
مراجع
- ١ ٢ سابقًا، كان نظام لينكس يستخدم نفس مُعرّف GUID لأقسام البيانات كما في نظام ويندوز (قسم البيانات الأساسي: EBD0A0A2 - B9E5-4433-87C0-68B6B72699C7 ) . لم يكن لدى لينكس مُعرّف GUID فريد خاص بأقسام البيانات. وقد تسبب هذا في مشاكل عند تثبيت نظامي لينكس وويندوز معًا في إعداد UEFI-GPT. تم تعريف مُعرّف GUID الجديد (بيانات نظام ملفات لينكس: 0FC63DAF - 8483-4772-8E79-3D69D8477DE4 ) بشكل مشترك من قِبل مطوري GPT fdisk وGNU Parted. ويُعرف هذا المُعرّف برمز النوع 0x8300 في GPT fdisk. (راجع التعريفات في ملف parttypes.cc الخاص بـ gdisk )
- ↑ "DiscoverablePartitionsSpec" . freedesktop.org . تم الاطلاع عليه بتاريخ 7 أبريل 2018 .
- 1 2 "ext4: إصلاح معالجة tv_sec الموسعة" . شجرة نواة لينكس المستقرة . تم الاسترجاع في 14 فبراير 2017 .
- 1 2 ماثور، أفانتيكا؛ كاو، مينغ مينغ؛ بهاتاشاريا، سوبارنا ؛ ديلجر، أندرياس؛ جورافليف (توماس)، أليكس؛ فيفييه، لوران (2007). "نظام الملفات ext4 الجديد: الوضع الحالي والخطط المستقبلية" (ملف PDF) . وقائع ندوة لينكس . أوتاوا، أونتاريو، كندا: ريد هات. مؤرشف من الأصل (ملف PDF) في 6 يوليو 2010. تم الاطلاع عليه في 15 يناير 2008 .
- ↑ تورفالدز، لينوس (9 يونيو 2006). "extents و ext3 48 بت" . قائمة بريدية لنواة لينكس .
- ↑ تسو، ثيودور (28 يونيو 2006). "اقتراح وخطة لأعمال التطوير المستقبلية لنظامي ext2/3" . قائمة بريدية لنواة لينكس .
- ↑ ليمهاوس، ثورستن (23 ديسمبر 2008). "أعلى وأبعد: ابتكارات لينكس 2.6.28 (الصفحة 2)" . هايز أونلاين. مؤرشف من الأصل في 3 يناير 2009. تم الاطلاع عليه في 9 يناير 2010 .
- ↑ "ext4: إعادة تسمية ext4dev إلى ext4" . شجرة نواة لينوس . تم الاطلاع عليه في 20 أكتوبر 2008 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ ليمهاوس، ثورستن (23 ديسمبر 2008). "أعلى وأبعد: ابتكارات لينكس 2.6.28" . هايز أونلاين.
- ↑ بول، رايان (15 يناير 2010). "جوجل تُحدّث نظامها إلى Ext4، وتُعيّن المدير التقني السابق لمؤسسة لينكس" . آرس تكنيكا .
- ↑ "نظام أندرويد 2.3 جينجربريد سيستخدم نظام الملفات Ext4" . ذا إتش أوبن . 14 ديسمبر 2010.
- ↑ ext4: إصلاح معالجة tv_sec الموسعة - kernel/git/stable/linux.git - شجرة نواة لينكس المستقرة
- ↑ "معلومات عامة عن نظام الملفات ext4 - وثائق نواة لينكس" . تم الاطلاع عليه بتاريخ 17 أغسطس 2025 .
- ↑ "نظام الملفات في دبيان" . 14 سبتمبر 2019.
- ↑ "ext4 – التصميم عالي المستوى" . kernel.org . تم الاطلاع عليه بتاريخ 8 ديسمبر 2023 .
- ↑ بوميرانز، هال (28 مارس 2011). "فهم نظام الملفات EXT4 (الجزء 3): أشجار الامتداد" . مدونة SANS للطب الشرعي الرقمي والاستجابة للحوادث . مؤرشف من الأصل في 18 أغسطس 2019.
- ↑ "تشريح نظام الملفات ext4" . مطور IMB . تم الاطلاع عليه بتاريخ 27 مايو 2024 .
- ↑ "فشل تثبيت نظام الملفات ext4 (الذي تم إنشاؤه بدون امتدادات) كنظام ext3 على نظام RH6.2" . www.linuxquestions.org . مؤرشف من الأصل في 5 أغسطس 2023. تم الاطلاع عليه في 8 ديسمبر 2023 .
- ↑ "2. التصميم عالي المستوى - وثائق نواة لينكس" . docs.kernel.org . تم الاطلاع عليه في 9 يناير 2025 .
- ↑ "Ext4 – مبتدئو نواة لينكس" . kernelnewbies.org .
- ↑ "ميزات جديدة في نظام الملفات ext4" . ext4.wiki.kernel.org . مؤرشف من الأصل بتاريخ 23 سبتمبر 2023. تم الاطلاع عليه بتاريخ 8 ديسمبر 2023 .
- ↑ برابهاكاران، فيجايان؛ بايرافاسوندارام، لاكشمي ن.؛ أغراوال، نيتين؛ غوناوي، هاريادي س.؛ أرباتشي-دوسو، أندريا س.؛ أرباتشي-دوسو، رمزي ح. (أكتوبر 2005). أنظمة ملفات IRON (ملف PDF) . ندوة حول مبادئ أنظمة التشغيل (SOSP '05) . برايتون، المملكة المتحدة: قسم علوم الحاسوب، جامعة ويسكونسن. القسم 6.1، الفقرة 5 "مجموعات التحقق من المعاملات" . تم الاطلاع عليه بتاريخ 8 ديسمبر 2023 .
- ↑ "مجموعات التحقق من بيانات تعريف Ext4 - Ext4" . ext4.wiki.kernel.org . مؤرشف من الأصل في 6 نوفمبر 2023. تم الاطلاع عليه في 8 ديسمبر 2023 .
- ↑ "Linux_3.5 – مبتدئو نواة لينكس" . kernelnewbies.org .
- ↑ "2. التصميم عالي المستوى" . وثائق نواة لينكس . تم الاطلاع عليه في 3 أبريل 2025 .
- ↑ تسو، ثيودور (5 أكتوبر 2006). "ردًا على: طوابع وقت الإنشاء لنظام الملفات ext4 ؟" .
- ↑ إيدج، جيك (31 مارس 2017). "توسيع دالة statx()" . مؤرشف من الأصل في 20 سبتمبر 2023. تم الاطلاع عليه في 8 ديسمبر 2023 .
- ↑ لي، شي (12 يناير 2016). "ext4: إضافة دعم حصص المشاريع" (قائمة بريدية). مؤرشف من الأصل في 20 سبتمبر 2023. تم الاطلاع عليه في 8 ديسمبر 2023 .
- ↑ تسو، ثيودور (8 أبريل 2015). "تشفير Ext4" . مؤرشف من الأصل في 12 أكتوبر 2023. تم الاطلاع عليه في 8 ديسمبر 2023 .
- ↑ "نظام ملفات Ext4" . ويكي توماس كرين . مؤرشف من الأصل في 14 فبراير 2022. تم الاطلاع عليه في 8 ديسمبر 2023 .
- ↑ "kernel/git/torvalds/linux.git – شجرة مصدر نواة لينكس" . git.kernel.org .
- ↑ "Ext4 –" . ArchWiki .
- ↑ بول، رايان (14 أبريل 2009). "المتحدثون يناقشون نواة نظام التشغيل في قمة تعاون لينكس" . آرس تكنيكا . تاريخ الاسترجاع: 22 أغسطس 2009 .
- ↑ ثيودور تسو (1 أغسطس 2008). "ردًا على: reiser4 للإصدار 2.6.27-rc1" . قائمة بريدية لنواة لينكس . تم الاطلاع عليه في 31 ديسمبر 2010 .
- ↑ كوربيت، جوناثان (11 أكتوبر 2011). "حذف الملفات بشكل آمن من أنظمة ملفات ext4" .
- 1 2 "توثيق ext4 في مصدر نواة لينكس" . 28 مارس 2009.
- ↑ خطأ أوبونتو رقم 317781: نقاش مطول بين مطوري أوبونتو وثيودور تسو حول احتمالية فقدان البيانات
- ↑ أفكار تيد، 12 مارس 2009، تدوينة لثيودور تسو حول هذا الموضوع
- ↑ كلايمان
- ↑ براندون لوبلان (10 سبتمبر 2020). "الإعلان عن الإصدار التجريبي 20211 من ويندوز 10 للمطورين" . مدونات ويندوز . تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ بيير بولاي (10 سبتمبر 2020). "الوصول إلى أنظمة ملفات لينكس في ويندوز وWSL 2" . سطر أوامر ويندوز . تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ "ابدأ بتثبيت قرص لينكس في WSL 2" . وثائق مايكروسوفت . تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ كريج لويوين (12 يونيو 2019). "WSL 2 متوفر الآن لمستخدمي برنامج Windows Insider" . سطر أوامر ويندوز . تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ "دليل تثبيت نظام ويندوز الفرعي لنظام لينكس لنظام ويندوز 10" . وثائق ويندوز . تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ "أنظمة ملفات لينكس لنظام ويندوز" . شركة باراغون للبرمجيات . تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ "extFS لنظام التشغيل Mac" . شركة Paragon Software . تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ "2. التصميم عالي المستوى - وثائق نواة لينكس" .
- ↑ "2.2. مجموعات الكتل — وثائق نواة لينكس" .
روابط خارجية
- توثيق نظام الملفات ext4 في مصدر نواة لينكس
- مناقشة ثيودور تسو حول نظام الملفات ext4 ، 29 يونيو 2006
- "إلغاء تجزئة الملفات عبر الإنترنت ext4" مؤرشف في 30 ديسمبر 2019 على موقع Wayback Machine (مواد من ندوة أوتاوا لينكس 2007)
- "نظام الملفات ext4 الجديد: الوضع الحالي والخطط المستقبلية" (مواد من ندوة أوتاوا لينكس 2007)
- سجل النواة: نظام الملفات Ext4 يُكمل مرحلة التطوير كخطوة مؤقتة نحو نظام الملفات btrfs ، 17 أكتوبر 2008
- "تحسينات على مُخصِّص الكتل والعقد في نظام الملفات Ext4" مؤرشف في 31 مارس 2010 على موقع Wayback Machine (مواد من ندوة أوتاوا لينكس 2008)
- "Ext4: الجيل التالي من نظام الملفات Ext2/3"
- ويكي Ext4 (و Ext2/Ext3)
- ويكي Ext4 على موقع kernelnewbies.org
- منفذ ويندوز أصلي لنظام الملفات Ext4 وأنظمة الملفات الأخرى في CROSSMETA
- Ext2read هو تطبيق ويندوز لقراءة/نسخ ملفات ext2/ext3/ext4 مع دعم extent و LVM2.
- Ext2Fsd هو برنامج تشغيل مفتوح المصدر لقراءة وكتابة أنظمة الملفات ext2/ext3/ext4 لنظام التشغيل Windows. يدعم نظام الملفات ext4 بدءًا من الإصدار 0.50.
- Ext4fuse هو برنامج تشغيل مفتوح المصدر للقراءة فقط لنظام الملفات ext4 الخاص بـ FUSE . (يدعم نظام التشغيل Mac OS X 10.5 والإصدارات الأحدث، باستخدام MacFuse )
- منشور أوراكل: فهم تخطيط القرص ext4
- برنامج 2008
- أنظمة ملفات القرص
- أنظمة الملفات التي يدعمها نواة لينكس
