نظام ملفات الجهاز المحمول: ما هو، هيكل الدلائل وكيف يعمل

المؤلف: IT Sectr نُشر: 2026-03-13 وقت القراءة: 11 دق

نظام ملفات الجهاز المحمول هو طريقة تنظيم وتخزين وتسمية البيانات على الذاكرة الوميضية. وفقًا لـ Android Developers, 2026، تستخدم أنظمة التشغيل المحمولة هيكلًا هرميًا للدلائل حيث يعمل كل تطبيق في صندوق رمل معزول. تمنع هذه البنية الوصول غير المصرح به للبيانات وتضمن استقرار عمل النظام عند تشغيل تطبيقات متعددة في وقت واحد.

النقاط الرئيسية

  • نظام الملفات يحدد كيفية تنظيم البيانات وفهرستها وحمايتها على الجهاز
  • Android يستخدم أقسام /data و /system و /sdcard بصلاحيات وصول وأنظمة ملفات مختلفة
  • iOS يعمل مع APFS وحاويات Sandbox حيث يكون كل تطبيق معزولًا على مستوى النواة
  • EXT4 و F2FS هما نظاما الملفات الرئيسيان على Android، و APFS على iOS، و exFAT على بطاقات SD
  • صلاحيات الوصول Linux (rwx) على Android وملفات Sandbox على iOS تتحكم في الملفات التي يمكن للتطبيق قراءتها وتعديلها

ما هو نظام ملفات الجهاز المحمول؟

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

على عكس أنظمة تشغيل سطح المكتب، تُصمم أنظمة الملفات المحمولة مع مراعاة العدد المحدود لدورات إعادة كتابة الذاكرة الوميضية. تتحمل خلايا NAND عددًا محدودًا من عمليات المسح — من 3,000 إلى 10,000 دورة لذاكرة TLC و MLC على التوالي. لإطالة عمر التخزين، تستخدم أنظمة الملفات آليات موازنة التآكل وأوامر TRIM. F2FS، التي طورتها Samsung خصيصًا للذاكرة الوميضية، تراعي هندسة مصفوفة NAND وتضع البيانات بطريقة تقلل التجزؤ وعدد عمليات مسح الكتل.

تستخدم الأجهزة المحمولة الحديثة مزيجًا من أنظمة ملفات متعددة. يتم تنسيق الذاكرة الداخلية (قسم /data) بصيغة EXT4 أو F2FS على Android و APFS على iOS. تستخدم بطاقات SD تقليديًا exFAT للملفات الأكبر من 4 جيجابايت أو FAT32 لأقصى توافق. غالبًا ما يتم تثبيت قسم /system على Android للقراءة فقط ويستخدم EXT4 أو EROFS (نظام ملفات محسّن للقراءة فقط) — وهو نظام ملفات مضغوط طورته Huawei لتقليل حجم قسم النظام.

هيكل الدلائل على Android

التسلسل الهرمي للدلائل على Android مبني على هيكل Linux مع الجذر في /. لكل قسم نظام الملفات الخاص به وصلاحيات الوصول والغرض. يمكن للتطبيق الوصول فقط إلى مجموعة محدودة من الدلائل — والباقي محمي بصلاحيات الجذر.

المسارالقسمنظام الملفاتوصول التطبيق
/dataبيانات المستخدمF2FS / EXT4الصندوق الرمل الخاص به فقط
/systemالنظامEROFS / EXT4قراءة فقط (جذر)
/sdcardخارجيexFAT / FAT32بإذن
/cacheذاكرة تخزين مؤقتEXT4جذر فقط
/vendorالموردEROFS / EXT4قراءة فقط (جذر)

قسم /data والصندوق الرمل للتطبيقات

قسم /data هو القسم الرئيسي لتخزين بيانات المستخدم والتطبيقات المثبتة وإعداداتها. يحصل كل تطبيق على دليله الخاص في المسار /data/data/<package_name>/. داخل هذا الدليل، ينشئ النظام تلقائيًا أدلة فرعية: files/ لملفات التطبيق، cache/ للملفات المؤقتة، databases/ لقواعد بيانات SQLite، shared_prefs/ لـ SharedPreferences. يتم تعيين صلاحيات الوصول إلى هذا الدليل عند تثبيت التطبيق ولا يمكن تغييرها دون وصول الجذر. يتم تنسيق قسم /data بصيغة F2FS على معظم الأجهزة الحديثة، مما يوفر سرعة كتابة عشوائية أعلى بنسبة تصل إلى 40% مقارنة بـ EXT4.

قسم /system ومكونات النظام

قسم /system يحتوي على نظام التشغيل والتطبيقات النظامية والمكتبات. يتم تثبيت هذا القسم للقراءة فقط لمنع التعديل العرضي أو الضار لملفات النظام. على الأجهزة التي تعمل بنظام Android 10+ و Project Treble، يكون قسم /system ديناميكيًا ويمكن تحديثه عبر حزم OTA دون الحاجة إلى إعادة تثبيت كاملة. بالنسبة للتطبيقات، قسم /system غير قابل للوصول — محاولة الكتابة ستؤدي إلى استثناء SecurityException. ومع ذلك، يمكن للتطبيقات قراءة بعض الملفات من /system، مثل خطوط النظام وملفات التكوين، إذا كانت لديها الصلاحيات المناسبة.

نقطة التثبيت /sdcard

نقطة التثبيت /sdcard هي رابط رمزي لقسم التخزين الخارجي المحاكى أو الفعلي. على الأجهزة بدون بطاقة SD، يشير /sdcard إلى قسم فرعي داخل /data مخصص للوصول المشترك. هذا القسم مرئي للمستخدم عند توصيل الجهاز بالكمبيوتر عبر بروتوكول MTP. تصل التطبيقات إلى /sdcard عبر صلاحيات READ_EXTERNAL_STORAGE و WRITE_EXTERNAL_STORAGE، واعتبارًا من Android 10 — عبر Scoped Storage باستخدام MediaStore API. يبلغ حجم /sdcard عادة 60–80% من إجمالي الذاكرة الوميضية، ويتم حجز الباقي لقسم /data.

هيكل الدلائل على iOS

على iOS، يتم تنظيم نظام الملفات عبر حاويات Sandbox للتطبيقات. يحصل كل تطبيق على دليل معزول يكون الوصول إليه مقيدًا على مستوى نواة XNU. يستخدم قسم المستخدم نظام ملفات APFS (Apple File System)، الذي تم تقديمه في iOS 10.3. يدعم APFS اللقطات واستنساخ الملفات والتشفير على مستوى الملف، مما يجعله مثاليًا للأجهزة المحمولة.

الأدلة القياسية لحاوية Sandbox

تتضمن حاوية Sandbox على iOS أربعة أدلة رئيسية: Documents و Library و tmp و SystemData. لكل دليل سياسة النسخ الاحتياطي الخاصة به وفترة الاحتفاظ بالبيانات ومستوى الوصول. يتم تضمين Documents تلقائيًا في النسخ الاحتياطي لـ iCloud و iTunes. يحتوي Library على أدلة فرعية Caches (لا يتم نسخه احتياطيًا) و Preferences (يتم نسخه احتياطيًا) و Application Support (يتم نسخه احتياطيًا). دليل tmp مخصص للملفات المؤقتة التي قد يحذفها iOS عند ضيق المساحة — ولا يتم تضمينه في النسخ الاحتياطي. SystemData يُستخدم من قبل النظام نفسه ولا يمكن للتطبيق الوصول إليه عبر واجهات برمجة التطبيقات القياسية.

swift
let fm = FileManager.default

let documents = fm.urls(
    for: .documentDirectory,
    in: .userDomainMask
).first!

let caches = fm.urls(
    for: .cachesDirectory,
    in: .userDomainMask
).first!

let appSupport = fm.urls(
    for: .applicationSupportDirectory,
    in: .userDomainMask
).first!

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

صلاحيات الوصول وأمان نظام الملفات

التحكم في الوصول إلى الملفات على الأجهزة المحمولة هو الفرق الرئيسي بين Android و iOS. يستخدم Android نموذج صلاحيات Linux الكلاسيكي (قراءة، كتابة، تنفيذ) مع امتدادات لعزل التطبيقات. يستخدم iOS نموذج Sandbox الأكثر صرامة، حيث يعمل كل تطبيق في حاوية معزولة ولا يمكنه الوصول إلى ملفات التطبيقات الأخرى دون آليات خاصة.

الصلاحيات على Android

على Android، يعمل كل تطبيق بمعرف مستخدم UID منفصل. جميع الملفات التي ينشئها التطبيق في صندوقه الرمل تنتمي إلى هذا UID وغير مرئية للتطبيقات الأخرى. للوصول إلى الأدلة المشتركة (التخزين الخارجي)، يجب على التطبيق طلب صلاحيات READ_EXTERNAL_STORAGE و WRITE_EXTERNAL_STORAGE. اعتبارًا من Android 11، يجب طلب الصلاحيات أثناء وقت التشغيل، ويجب على التطبيق الذي يستخدم targetSdkVersion 30+ استخدام SAF للوصول إلى ملفات التطبيقات الأخرى. يؤدي انتهاك نموذج الصلاحيات إلى SecurityException، والتي يتم معالجتها بواسطة كتلة try-catch القياسية. يتحقق Google Play تلقائيًا من امتثال التطبيق لسياسة الصلاحيات قبل النشر.

kotlin
if (ContextCompat.checkSelfPermission(
    context,
    Manifest.permission.READ_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(
        activity,
        arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
        REQUEST_CODE
    )
}

Sandbox على iOS و Keychain

Sandbox على iOS مطبق على مستوى نواة XNU ولا يسمح للتطبيق بمغادرة حاويته. حتى إذا حصل التطبيق على وصول إلى URI لملف خارجي عبر Document Picker، يقوم نظام التشغيل بإنشاء نسخة مؤقتة في حاوية التطبيق بدلاً من توفير وصول مباشر إلى الأصل. لمشاركة الملفات بين التطبيقات، يستخدم iOS آليتي Share Sheet و UIActivityViewController، اللتين تنسخان ملفًا من حاوية تطبيق إلى أخرى. للتخزين الآمن لبيانات الاعتماد (الرموز، كلمات المرور، المفاتيح)، يوفر iOS Keychain — مخزنًا مشفرًا يمكن للنظام الوصول إليه على مستوى النواة. Keychain ليس جزءًا من حاوية Sandbox ويتم إدارته بواسطة برنامج خفي منفصل securityd، مما يوفر طبقة إضافية من الحماية حتى في حالة اختراق التطبيق.

خصائص أنظمة الملفات: EXT4، APFS، F2FS

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

  • EXT4 — نظام ملفات Linux قياسي مع تسجيل يومي، يدعم ملفات حتى 16 تيرابايت وأحجام حتى 1 إكسابايت. يُستخدم على Android كنظام رئيسي قبل اعتماد F2FS. يوفر الموثوقية بفضل السجل، لكنه أدنى من F2FS في سرعة الكتابة العشوائية بسبب الحاجة إلى تحديث العقد ومخططات بت الكتل في كل عملية
  • F2FS — نظام ملفات طورته Samsung في 2012 خصيصًا لذاكرة NAND الوميضية. يراعي هندسة مصفوفة الذاكرة الوميضية، ويستخدم بنية سجل منظم، ويوفر أداء كتابة عشوائية أعلى بنسبة 25–40% مقارنة بـ EXT4. اعتبارًا من Android 11، توصي Google باستخدام F2FS كنظام ملفات رئيسي لقسم /data
  • APFS — نظام ملفات Apple الذي تم تقديمه في 2017. يدعم اللقطات واستنساخ الملفات (النسخ عند الكتابة) والتشفير على مستوى الملف والتحكم الصارم في سلامة البيانات عبر المجاميع الاختبارية. APFS محسّن لأقراص SSD ويستخدم أوامر TRIM للحفاظ على الأداء طوال عمر التخزين
  • exFAT — نظام ملفات Microsoft المستخدم على بطاقات SD ومحركات USB. يدعم ملفات أكبر من 4 جيجابايت وأحجام تصل إلى 128 بيتابايت. لا يحتوي على تسجيل يومي، لذلك قد يؤدي انقطاع الطاقة المفاجئ إلى تلف البيانات. يُوصى به للوسائط القابلة للإزالة، ولكن ليس لأقسام النظام

عند تطوير التطبيقات، ضع في اعتبارك أن أنظمة الملفات المختلفة لها حدود مختلفة لطول اسم الملف (255 بايت لـ EXT4 و F2FS، 255 حرف Unicode لـ APFS)، والحد الأقصى لحجم الملف ودعم الأحرف الخاصة. على سبيل المثال، يسمح APFS بأحرف Unicode في أسماء الملفات، بما في ذلك الرموز التعبيرية، بينما يقتصر EXT4 على ASCII. إذا كان تطبيقك ينشئ ملفات بأسماء بلغات مختلفة، فاختبر على جميع الأجهزة المستهدفة — فقد يتم اقتطاع اسم ملف تم إنشاؤه بشكل صحيح على APFS على EXT4.

توصيات للعمل مع نظام الملفات

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

  • لا تستخدم مسارات مشفرة للأدلة. احصل دائمًا على المسارات عبر واجهات برمجة التطبيقات للنظام: context.filesDir على Android، NSSearchPathForDirectoriesInDomains على iOS. تتغير المسارات المشفرة بين إصدارات نظام التشغيل والأجهزة
  • تعامل مع الاستثناءات لعمليات الملفات: IOException، FileNotFoundException، SecurityException. على iOS، جميع عمليات FileManager قد ترمي أخطاءً — لفها في do-catch. على Android، قد تفشل عمليات التخزين الخارجي بسبب عدم وجود الوسائط
  • تحقق من المساحة المتاحة قبل الكتابة. استخدم File.getUsableSpace() على Android و URLResourceValues.volumeAvailableCapacityKey على iOS. حذر المستخدم إذا كانت المساحة الحرة غير كافية
  • تجنب تخزين الملفات الكبيرة في الأدلة التي يتم تضمينها في النسخ الاحتياطي. على iOS، استبعد ذاكرة التخزين المؤقت من النسخ الاحتياطي عبر isExcludedFromBackup. على Android، فضّل cacheDir للملفات المؤقتة
  • اختبر السلوك عند امتلاء التخزين وانقطاع الطاقة المفاجئ. استخدم الكتابة التعاملية: اكتب في ملف مؤقت، ثم أعد تسميته بشكل ذري

أولِ اهتمامًا خاصًا للاختلافات عبر المنصات. تُبنى مسارات الملفات على Android باستخدام شرطة مائلة للأمام (/data/data/.../files/)، وعلى iOS — باستخدام مخطط URL (file:///var/mobile/.../Documents/). إذا كان تطبيقك يستخدم إطار عمل متعدد المنصات (Flutter، React Native، Kotlin Multiplatform)، فوحد عمليات الملفات عبر محولات المنصة. على سبيل المثال، يوفر Flutter حزمة path_provider التي تُرجع المسار الصحيح إلى Documents أو filesDir على كلتا المنصتين دون كتابة كود يعتمد على المنصة. لا تقم أبدًا بتسلسل المسارات بعمليات السلاسل النصية — استخدم File.join() أو URL.appendingPathComponent() التي تتعامل بشكل صحيح مع الفواصل على المنصات المختلفة.

الأسئلة الشائعة

ما نظام الملفات المستخدم على Android افتراضيًا؟

على أجهزة Android الحديثة (11+) لقسم /data يُستخدم F2FS. على الأجهزة القديمة — EXT4. قسم /system يستخدم EROFS أو EXT4. تُنسق بطاقات SD كـ exFAT أو FAT32 حسب السعة.

ما الفرق بين APFS و EXT4؟

APFS يدعم اللقطات واستنساخ الملفات والتشفير على مستوى الملف والمجاميع الاختبارية. EXT4 يحتوي على تسجيل يومي وتوافق أوسع. APFS محسّن لأقراص SSD، بينما EXT4 نظام ملفات عالمي.

كيف أحصل على المسار إلى دليل documents على iOS؟

استخدم FileManager.default.urls(for: .documentDirectory, in: .userDomainMask). الطريقة تُرجع مصفوفة من عناوين URL، العنصر الأول هو دليل Documents الرئيسي لحاوية Sandbox للتطبيق.

ما هو Scoped Storage على Android؟

Scoped Storage هو نموذج وصول تم تقديمه في Android 10 يقيد الوصول المباشر إلى نظام الملفات. يمكن للتطبيقات قراءة ملفاتها الخاصة فقط دون إذن. يتم استخدام MediaStore API للوصول إلى ملفات الوسائط المشتركة.

أي نظام ملفات أفضل لبطاقة SD — FAT32 أم exFAT؟

exFAT أفضل لبطاقات SD الأكبر من 32 جيجابايت، حيث يدعم ملفات أكبر من 4 جيجابايت. FAT32 يوفر أقصى توافق مع الأجهزة القديمة لكنه يحد من حجم الملف إلى 4 جيجابايت.

الملخص

  • نظام الملفات للجهاز المحمول يدير التخزين والفهرسة وحماية البيانات على الذاكرة الوميضية مع مراعاة الموارد المحدودة لخلايا NAND
  • Android يستخدم أقسام /data (F2FS/EXT4) و /system (EROFS/EXT4) و /sdcard (exFAT/FAT32) بنماذج وصول مختلفة
  • iOS يعمل على APFS مع حاويات Sandbox حيث يكون كل تطبيق معزولًا على مستوى نواة XNU
  • F2FS يوفر أداء كتابة عشوائية أعلى بنسبة 25–40% مقارنة بـ EXT4 بفضل بنيته السجلية المنظمة
  • الصلاحيات على Android مبنية على نموذج Linux UID، وعلى iOS — على ملفات Sandbox مع أربع فئات حماية للملفات
  • أنظمة الملفات المختلفة لها قيود على طول الأسماء وحجم الملفات ودعم الأحرف — اختبر على جميع الأجهزة المستهدفة
  • الكتابة التعاملية والتحقق من المساحة المتاحة قبل الحفظ يمنعان تلف البيانات أثناء الأعطال

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا