Mobil cihazın fayl sistemi: bu nədir, kataloq quruluşu və necə işləyir

Müəllif: IT Sectr Dərc olunub: 2026-03-13 Oxuma vaxtı: 11 dəq

Mobil cihazın fayl sistemi — fləş yaddaşda məlumatların təşkili, saxlanması və adlandırılması üsuludur. Android Developers, 2026-ya görə, mobil əməliyyat sistemləri iyerarxik kataloq quruluşundan istifadə edir, burada hər bir tətbiq təcrid olunmuş sandbox-da işləyir. Bu arxitektura məlumatlara icazəsiz girişin qarşısını alır və çoxsaylı tətbiqlərin eyni vaxtda işə salınması zamanı sistemin sabit işini təmin edir.

Əsas məqamlar

  • Fayl sistemi məlumatların cihazda necə təşkil olunduğunu, indeksləndiyini və qorunduğunu müəyyən edir
  • Android müxtəlif giriş hüquqları və fayl sistemləri ilə /data, /system və /sdcard bölmələrindən istifadə edir
  • iOS APFS və Sandbox konteynerləri ilə işləyir, burada hər tətbiq nüvə səviyyəsində təcrid olunub
  • EXT4 və F2FS Android-də əsas fayl sistemləri, APFS iOS-da, exFAT isə SD kartlardadır
  • Giriş hüquqları Android-də Linux (rwx) və iOS-da Sandbox profilləri tətbiqin hansı faylları oxuya və dəyişdirə biləcəyini idarə edir

Mobil cihazın fayl sistemi nədir?

Fayl sistemi — əməliyyat sisteminin məlumatların fiziki daşıyıcıda necə yazılmasını, oxunmasını və təşkil olunmasını idarə edən proqram komponentidir. Mobil cihazlarda fayl sistemi kritik funksiyaları yerinə yetirir: fləş yaddaş sahəsinin idarə edilməsi, icazələr əsasında fayllara giriş nəzarəti, nasazlıqlardan sonra bərpa üçün dəyişikliklərin jurnallaşdırılması və NAND fləş yaddaşın xüsusiyyətlərini nəzərə alaraq yazmanın optimallaşdırılması.

İş masası əməliyyat sistemlərindən fərqli olaraq, mobil fayl sistemləri fləş yaddaşın məhdud yazma dövrü resursu nəzərə alınmaqla layihələndirilir. NAND hüceyrələri məhdud sayda silmə əməliyyatına dözür — TLC və MLC yaddaş üçün müvafiq olaraq 3 000-dən 10 000 dövrə qədər. Saxlayıcının ömrünü uzatmaq üçün fayl sistemləri wear leveling (aşınmanın bərabərləşdirilməsi) mexanizmlərini və TRIM əmrlərini tətbiq edir. Samsung tərəfindən xüsusi olaraq fləş yaddaş üçün hazırlanmış F2FS, NAND massivinin həndəsəsini nəzərə alır və məlumatları elə yerləşdirir ki, fraqmentasiya və blokların silinmə əməliyyatlarının sayı minimuma ensin.

Müasir mobil cihazlar bir neçə fayl sisteminin kombinasiyasından istifadə edir. Daxili yaddaş (/data bölməsi) Android-də EXT4 və ya F2FS, iOS-da isə APFS ilə formatlanır. SD kartlar ənənəvi olaraq 4 GB-dan böyük faylları dəstəkləmək üçün exFAT və ya maksimum uyğunluq üçün FAT32 istifadə edir. Android-də /system bölməsi çox vaxt yalnız oxumaq üçün bağlanır və EXT4 və ya EROFS (Enhanced Read-Only File System) — sistem bölməsinin ölçüsünü azaltmaq üçün Huawei tərəfindən hazırlanmış sıxılmış fayl sistemindən istifadə edir.

Android-də kataloq quruluşu

Kataloq iyerarxiyası Android, kökü / olan Linux quruluşuna əsaslanır. Hər bölmənin öz fayl sistemi, giriş hüquqları və təyinatı var. Tətbiq yalnız məhdud kataloqlar dəstinə giriş əldə edə bilər — qalanları root hüquqları ilə qorunur.

YolBölməFayl sistemiTətbiq üçün giriş
/dataUserdataF2FS / EXT4Yalnız öz sandbox
/systemSystemEROFS / EXT4Yalnız oxuma (root)
/sdcardExternalexFAT / FAT32İcazə ilə
/cacheCacheEXT4Yalnız root
/vendorVendorEROFS / EXT4Yalnız oxuma (root)

/data bölməsi və tətbiq sandbox-u

/data bölməsi — istifadəçi məlumatlarının, quraşdırılmış tətbiqlərin və onların parametrlərinin saxlanması üçün əsas bölmədir. Hər tətbiq /data/data/<package_name>/ yolunda öz kataloqunu alır. Bu kataloqun daxilində sistem avtomatik olaraq alt kataloqlar yaradır: tətbiq faylları üçün files/, müvəqqəti fayllar üçün cache/, SQLite verilənlər bazaları üçün databases/, SharedPreferences üçün shared_prefs/. Bu kataloqa giriş hüquqları tətbiqin quraşdırılması zamanı təyin edilir və root girişi olmadan dəyişdirilə bilməz. /data bölməsi müasir cihazların əksəriyyətində F2FS ilə formatlanır ki, bu da EXT4 ilə müqayisədə təsadüfi yazma sürətini 40% -dək artırır.

/system bölməsi və sistem komponentləri

/system bölməsi əməliyyat sistemi, sistem tətbiqləri və kitabxanaları ehtiva edir. Bu bölmə sistem fayllarının təsadüfi və ya zərərli dəyişdirilməsinin qarşısını almaq üçün yalnız oxumaq üçün bağlanır. Android 10+ və Project Treble olan cihazlarda /system bölməsi dinamikdir və tam proşivka olmadan OTA paketləri vasitəsilə yenilənə bilər. Tətbiqlər üçün /system bölməsi əlçatmazdır — yazma cəhdi SecurityException istisnasına səbəb olacaq. Bununla belə, tətbiqlər /system-dən bəzi faylları, məsələn, sistem şriftlərini və konfiqurasiya fayllarını, müvafiq icazələri varsa, oxuya bilər.

/sdcard bağlama nöqtəsi

/sdcard bağlama nöqtəsi — emulyasiya edilmiş və ya fiziki xarici yaddaş bölməsinə simvolik keçiddir. SD kartı olmayan cihazlarda /sdcard ümumi giriş üçün ayrılmış /data daxilindəki alt bölməyə işarə edir. Bu bölmə cihaz MTP protokolu vasitəsilə kompüterə qoşulduqda istifadəçiyə görünür. Tətbiqlər /sdcard-a READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE icazələri, Android 10-dan başlayaraq isə MediaStore API ilə Scoped Storage vasitəsilə giriş əldə edir. /sdcard ölçüsü adətən cihazın fləş yaddaşının ümumi həcminin 60–80%-ni təşkil edir, qalan hissəsi isə /data bölməsi üçün ayrılır.

iOS-da kataloq quruluşu

iOS-da fayl sistemi tətbiqlərin Sandbox konteynerləri vasitəsilə təşkil olunur. Hər tətbiq girişi XNU nüvə səviyyəsində məhdudlaşdırılmış təcrid olunmuş kataloq alır. İstifadəçi bölməsi iOS 10.3-də təqdim edilmiş APFS (Apple File System) fayl sistemindən istifadə edir. APFS snapshot-ları, fayl klonlamanı və fayl səviyyəsində şifrələməni dəstəkləyir ki, bu da onu mobil cihazlar üçün optimal edir.

Sandbox konteynerinin standart kataloqları

iOS Sandbox konteyneri dörd əsas kataloqu ehtiva edir: Documents, Library, tmp və SystemData. Hər kataloqun öz ehtiyat surəti siyasəti, məlumatların saxlanma müddəti və giriş səviyyəsi var. Documents avtomatik olaraq iCloud və iTunes ehtiyat surətinə daxil edilir. Library alt kataloqları ehtiva edir: Caches (ehtiyat surəti çıxarılmır), Preferences (ehtiyat surəti çıxarılır) və Application Support (ehtiyat surəti çıxarılır). tmp kataloqu müvəqqəti fayllar üçün nəzərdə tutulub — iOS yer çatışmazlığı olduqda onları silə bilər; ehtiyat surətə daxil edilmir. SystemData sistemin özü tərəfindən istifadə olunur və standart API vasitəsilə tətbiq üçün əlçatmazdır.

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 konteynerinin hər kataloqunun öz qoruma identifikatoru (protection class) var. iOS dörd sinfi dəstəkləyir: Complete Protection (cihaz bloklananda fayl əlçatmazdır), Protected Unless Open (artıq açılmış fayllar bloklama zamanı əlçatandır), Protected Until First User Authentication (fayllar ilk açmadan sonra əlçatandır) və No Protection (fayllar cihaz yükləndikdən sonra həmişə əlçatandır). Defolt olaraq Documents və Library-dəki bütün fayllar Complete Protection sinfini alır ki, bu da istifadəçi məlumatlarının maksimum qorunmasını təmin edir. Fayl yaradılarkən, fon tətbiqi bloklanmış cihazda məlumatlara giriş əldə etməlidirsə, fərqli qoruma sinfi açıq şəkildə təyin edilə bilər.

Fayl sisteminin giriş hüquqları və təhlükəsizliyi

Mobil cihazlarda fayllara girişin idarə edilməsi Android və iOS arasında əsas fərqdir. Android tətbiqlərin təcrid edilməsi üçün genişləndirmələrlə klassik Linux giriş hüququ modelindən (oxu, yazma, icra) istifadə edir. iOS daha sərt Sandbox modelini tətbiq edir, burada hər tətbiq təcrid olunmuş konteynerdə işləyir və xüsusi mexanizmlər olmadan digər tətbiqlərin fayllarına girişi yoxdur.

Android-də icazələr

Android-də hər tətbiq ayrıca UID (User ID) ilə işə salınır. Tətbiqin öz sandbox-unda yaratdığı bütün fayllar bu UID-yə məxsusdur və digər tətbiqlər üçün görünməzdir. Ümumi kataloqlara (xarici yaddaş) giriş üçün tətbiq READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE icazələrini tələb etməlidir. Android 11-dən başlayaraq, icazələr icra zamanı tələb edilməlidir və targetSdkVersion 30+ olan tətbiq digər tətbiqlərin fayllarına giriş üçün SAF istifadə etməlidir. İcazə modelinin pozulması standart try-catch bloku ilə işlənən SecurityException-a səbəb olur. Google Play dərc olunmazdan əvvəl tətbiqin icazə siyasətinə uyğunluğunu avtomatik yoxlayır.

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

iOS Sandbox və Keychain

iOS Sandbox XNU nüvə səviyyəsində tətbiq olunub və tətbiqin öz konteynerindən kənara çıxmasına imkan vermir. Tətbiq Document Picker vasitəsilə xarici faylın URI-sinə giriş əldə etsə belə, əməliyyat sistemi orijinala birbaşa giriş təmin etmək əvəzinə tətbiqin konteynerində müvəqqəti surət yaradır. Tətbiqlər arasında fayl mübadiləsi üçün iOS faylı bir tətbiqin konteynerindən digərinin konteyerinə surətləyən Share Sheet və UIActivityViewController mexanizmlərindən istifadə edir. Etibar məlumatlarının (tokenlər, şifrələr, açarlar) təhlükəsiz saxlanması üçün iOS Keychain-i — nüvə səviyyəsində sistem üçün əlçatan olan şifrələnmiş anbarı təqdim edir. Keychain Sandbox konteynerinin hissəsi deyil və ayrıca securityd demonu tərəfindən idarə olunur ki, bu da tətbiqin təhlükəsizliyi pozulsa belə əlavə qoruma səviyyəsini təmin edir.

Fayl sistemlərinin xüsusiyyətləri: EXT4, APFS, F2FS

Fayl sisteminin seçimi məlumatların saxlanmasının performansına və etibarlılığına birbaşa təsir edir. Hər fayl sisteminin öz arxitekturası, optimallaşdırmaları və məhdudiyyətləri var. Tərtibatçı üçün bu fərqləri başa düşmək faydalıdır ki, tətbiqin müxtəlif cihazlarda davranışını proqnozlaşdırsın.

  • EXT4 — jurnallaşdırma ilə standart Linux fayl sistemi, 16 TB-a qədər faylları və 1 EB-a qədər həcmləri dəstəkləyir. Android-də F2FS tətbiqinə qədər əsas sistem kimi istifadə olunur. Jurnal sayəsində etibarlılığı təmin edir, lakin hər əməliyyatda inodların və blok bitmaplarının yenilənməsi zərurəti səbəbindən təsadüfi yazma sürətinə görə F2FS-dən geri qalır
  • F2FS — Samsung tərəfindən 2012-ci ildə xüsusi olaraq NAND fləş yaddaş üçün hazırlanmış fayl sistemi. Fləş massivinin həndəsəsini nəzərə alır, log-strukturlu arxitekturadan istifadə edir və EXT4 ilə müqayisədə 25–40% daha yüksək təsadüfi yazma performansı təmin edir. Android 11-dən başlayaraq F2FS Google tərəfindən /data bölməsi üçün əsas fayl sistemi kimi tövsiyə olunur
  • APFS — 2017-ci ildə təqdim edilmiş Apple fayl sistemi. Snapshot-ları, fayl klonlamanı (copy-on-write), fayl səviyyəsində şifrələməni və yoxlama cəmləri vasitəsilə ciddi məlumat bütövlüyü nəzarətini dəstəkləyir. APFS SSD üçün optimallaşdırılıb və saxlama qurğusunun bütün istismar müddəti ərzində performansı qorumaq üçün TRIM əmrlərindən istifadə edir
  • exFAT — SD kartlarda və USB sürücülərdə istifadə olunan Microsoft fayl sistemi. 4 GB-dan böyük faylları və 128 PB-a qədər həcmləri dəstəkləyir. Jurnallaşdırması yoxdur, ona görə də qəfil enerji kəsilməsi məlumatların zədələnməsinə səbəb ola bilər. Çıxarıla bilən daşıyıcılar üçün tövsiyə olunur, lakin sistem bölmələri üçün deyil

Tətbiqlərin hazırlanması zamanı nəzərə alın ki, müxtəlif fayl sistemlərinin fayl adı uzunluğu məhdudiyyətləri (EXT4 və F2FS üçün 255 bayt, APFS üçün 255 Unicode simvol), maksimal fayl ölçüsü və xüsusi simvolların dəstəyi fərqlidir. Məsələn, APFS fayl adlarında emoji daxil olmaqla Unicode simvollarına icazə verir, EXT4 isə ASCII ilə məhdudlaşır. Tətbiq müxtəlif dillərdə adları olan fayllar yaradırsa, bütün hədəf cihazlarda işi sınayın — APFS-də düzgün yaradılmış fayl adı EXT4-də kəsilə bilər.

Fayl sistemi ilə işləmək üçün tövsiyələr

Mobil cihazın fayl sistemi ilə etibarlı iş bir neçə əsas qaydaya riayət etməyi tələb edir. Onlar tərtibatçıların tipik səhvlərinin təhlilinə və rəsmi sənədlərin tövsiyələrinə əsaslanır.

  • Sərt kodlaşdırılmış yollardan istifadə etməyin kataloqlara. Yolları həmişə sistem API-ləri vasitəsilə əldə edin: Android-də context.filesDir, iOS-da NSSearchPathForDirectoriesInDomains. Sərt yollar ƏS versiyaları və cihazlar arasında dəyişir
  • İstisnaları idarə edin fayl əməliyyatlarının: IOException, FileNotFoundException, SecurityException. iOS-da bütün FileManager əməliyyatları xəta ata bilər — onları do-catch-ə sarın. Android-də xarici yaddaşla əməliyyatlar daşıyıcının olmaması səbəbindən xəta ilə nəticələnə bilər
  • Mövcud yeri yoxlayın yazmadan əvvəl. Android-də File.getUsableSpace() və iOS-da URLResourceValues.volumeAvailableCapacityKey istifadə edin. Boş yer kifayət deyilsə, istifadəçini xəbərdar edin
  • Böyük faylların saxlanmasından çəkinin ehtiyat surətə daxil olan kataloqlarda. iOS-da keşi ehtiyat surətdən isExcludedFromBackup ilə istisna edin. Android-də müvəqqəti fayllar üçün cacheDir-ə üstünlük verin
  • Davranışı sınayın yaddaşın dolması və qəfil enerji kəsilməsi zamanı. Transaksiya yazmasından istifadə edin: müvəqqəti fayla yazın, sonra atomik olaraq adını dəyişdirin

Xüsusi diqqət yetirin platformalararası fərqlərə. Android-də fayl yolları düz slash ilə qurulur (/data/data/.../files/), iOS-da — URL sxemi ilə (file:///var/mobile/.../Documents/). Tətbiqiniz çoxplatformalı çərçivədən (Flutter, React Native, Kotlin Multiplatform) istifadə edirsə, fayl əməliyyatlarını platforma adapterləri vasitəsilə birləşdirin. Məsələn, Flutter platformadan asılı kod yazmadan hər iki platformada Documents və ya filesDir-ə düzgün yolu qaytaran path_provider paketini təqdim edir. Yolları heç vaxt sətir əməliyyatları ilə birləşdirməyin — müxtəlif platformalarda ayırıcıları düzgün idarə edən File.join() və ya URL.appendingPathComponent() istifadə edin.

Tez-tez verilən suallar

Android-də defolt olaraq hansı fayl sistemi istifadə olunur?

Müasir Android cihazlarında (11+) /data bölməsi üçün F2FS istifadə olunur. Köhnə cihazlarda — EXT4. /system bölməsi EROFS və ya EXT4 istifadə edir. SD kartlar tutumdan asılı olaraq exFAT və ya FAT32 ilə formatlanır.

APFS EXT4-dən nə ilə fərqlənir?

APFS snapshot-ları, fayl klonlamanı, fayl səviyyəsində şifrələməni və yoxlama cəmlərini dəstəkləyir. EXT4 jurnallaşdırmaya və daha geniş uyğunluğa malikdir. APFS SSD üçün optimallaşdırılıb, EXT4 universal fayl sistemidir.

iOS-da documents kataloqunun yolunu necə əldə etmək olar?

FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) istifadə edin. Metod URL ünvanları massivini qaytarır, birinci element tətbiqin Sandbox konteynerinin əsas Documents kataloqudur.

Android-də Scoped Storage nədir?

Scoped Storage — Android 10-da təqdim edilmiş, fayl sisteminə birbaşa girişi məhdudlaşdıran giriş modelidir. Tətbiqlər icazəsiz yalnız öz fayllarını oxuya bilər. Ümumi media fayllarına giriş üçün MediaStore API istifadə olunur.

SD kart üçün hansı fayl sistemi daha yaxşıdır — FAT32 və ya exFAT?

exFAT 32 GB-dan çox tutumlu SD kartlar üçün üstünlük təşkil edir, çünki 4 GB-dan böyük faylları dəstəkləyir. FAT32 köhnə cihazlarla maksimum uyğunluğu təmin edir, lakin fayl ölçüsünü 4 GB ilə məhdudlaşdırır.

Nəticə

  • Fayl sistemi mobil cihazın fləş yaddaşında NAND hüceyrələrinin məhdud resursu nəzərə alınmaqla məlumatların saxlanmasını, indeksləşdirilməsini və qorunmasını idarə edir
  • Android müxtəlif giriş modelləri ilə /data (F2FS/EXT4), /system (EROFS/EXT4) və /sdcard (exFAT/FAT32) bölmələrindən istifadə edir
  • iOS APFS ilə işləyir, hər tətbiq XNU nüvə səviyyəsində təcrid olunmuş Sandbox konteynerlərindədir
  • F2FS log-strukturlu arxitektura sayəsində EXT4 ilə müqayisədə 25–40% daha yüksək təsadüfi yazma performansı təmin edir
  • İcazələr Android-də Linux UID modelinə, iOS-da dörd fayl qoruma sinfi olan Sandbox profillərinə əsaslanır
  • Müxtəlif fayl sistemləri ad uzunluğu, fayl ölçüsü və simvol dəstəyi məhdudiyyətlərinə malikdir — bütün hədəf cihazlarda sınayın
  • Transaksiya yazması və yazmadan əvvəl mövcud yerin yoxlanması nasazlıqlar zamanı məlumatların zədələnməsinin qarşısını alır

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun