Mobil qurilmaning fayl tizimi — flesh-xotirada ma'lumotlarni tashkil qilish, saqlash va nomlash usulidir. Android Developers, 2026 ma'lumotlariga ko'ra, mobil operatsion tizimlar iyerarxik katalog tuzilmasidan foydalanadi, bunda har bir ilova izolyatsiyalangan sandbox-da ishlaydi. Bunday arxitektura ma'lumotlarga ruxsatsiz kirishning oldini oladi va ko'plab ilovalar bir vaqtda ishga tushirilganda tizimning barqaror ishlashini ta'minlaydi.
Asosiy fikrlar
Fayl tizimi — ma'lumotlarning fizik muhitda qanday yozilishi, o'qilishi va tashkil etilishini boshqaradigan operatsion tizimning dasturiy komponentidir. Mobil qurilmalarda fayl tizimi muhim vazifalarni bajaradi: flesh-xotira maydonini boshqarish, ruxsatnomalar asosida fayllarga kirishni nazorat qilish, nosozliklardan keyin tiklash uchun o'zgarishlarni jurnalga yozish va NAND flesh-xotiraning xususiyatlarini hisobga olgan holda yozishni optimallashtirish.
Ish stoli operatsion tizimlaridan farqli o'laroq, mobil fayl tizimlari flesh-xotiraning cheklangan qayta yozish resursini hisobga olgan holda loyihalashtiriladi. NAND hujayralari cheklangan miqdordagi o'chirish operatsiyalariga bardosh beradi — TLC va MLC xotirasi uchun mos ravishda 3 000 dan 10 000 gacha sikl. Xotira qurilmasining ishlash muddatini uzaytirish uchun fayl tizimlari wear leveling (eskirishni tenglashtirish) mexanizmlarini va TRIM buyruqlarini qo'llaydi. Samsung tomonidan maxsus flesh-xotira uchun ishlab chiqilgan F2FS, NAND massivining geometriyasini hisobga oladi va ma'lumotlarni fragmentatsiya va bloklarni o'chirish operatsiyalari sonini minimallashtiradigan tarzda joylashtiradi.
Zamonaviy mobil qurilmalar bir nechta fayl tizimlarining kombinatsiyasidan foydalanadi. Ichki xotira (/data bo'limi) Android-da EXT4 yoki F2FS va iOS-da APFS bilan formatlanadi. SD kartalar an'anaviy ravishda 4 GB dan katta fayllarni qo'llab-quvvatlash uchun exFAT yoki maksimal moslik uchun FAT32 dan foydalanadi. Android-dagi /system bo'limi ko'pincha faqat o'qish uchun o'rnatiladi va EXT4 yoki EROFS (Enhanced Read-Only File System) — tizim bo'limining hajmini kamaytirish uchun Huawei tomonidan ishlab chiqilgan siqilgan fayl tizimidan foydalanadi.
Kataloglar iyerarxiyasi Android ildizi / bo'lgan Linux tuzilmasiga asoslanadi. Har bir bo'lim o'z fayl tizimiga, kirish huquqlariga va maqsadiga ega. Ilova faqat cheklangan kataloglar to'plamiga kirish huquqiga ega — qolganlari root huquqlari bilan himoyalangan.
| Yo'l | Bo'lim | Fayl tizimi | Ilova uchun kirish |
|---|---|---|---|
| /data | Userdata | F2FS / EXT4 | Faqat o'z sandbox |
| /system | System | EROFS / EXT4 | Faqat o'qish (root) |
| /sdcard | External | exFAT / FAT32 | Ruxsat bilan |
| /cache | Cache | EXT4 | Faqat root |
| /vendor | Vendor | EROFS / EXT4 | Faqat o'qish (root) |
/data bo'limi — foydalanuvchi ma'lumotlarini, o'rnatilgan ilovalarni va ularning sozlamalarini saqlash uchun asosiy bo'limdir. Har bir ilova /data/data/<package_name>/ yo'lida o'z katalogini oladi. Ushbu katalog ichida tizim avtomatik ravishda pastki kataloglarni yaratadi: ilova fayllari uchun files/, vaqtinchalik fayllar uchun cache/, SQLite ma'lumotlar bazalari uchun databases/, SharedPreferences uchun shared_prefs/. Ushbu katalogga kirish huquqlari ilovani o'rnatish vaqtida o'rnatiladi va root kirishisiz o'zgartirilmaydi. /data bo'limi zamonaviy qurilmalarning ko'pchiligida F2FS bilan formatlanadi, bu EXT4 bilan solishtirganda tasodifiy yozish tezligini 40% gacha oshiradi.
/system bo'limi operatsion tizimni, tizim ilovalari va kutubxonalarini o'z ichiga oladi. Ushbu bo'lim tizim fayllarining tasodifiy yoki zararli o'zgartirilishining oldini olish uchun faqat o'qish uchun o'rnatiladi. Android 10+ va Project Treble bo'lgan qurilmalarda /system bo'limi dinamik bo'lib, to'liq fleshkalash zaruratisiz OTA paketlari orqali yangilanishi mumkin. Ilovalar uchun /system bo'limi mavjud emas — yozish urinishi SecurityException istisnosiga olib keladi. Biroq, ilovalar tegishli ruxsatnomalarga ega bo'lsa, /system dan ba'zi fayllarni, masalan, tizim shriftlari va konfiguratsiya fayllarini o'qishi mumkin.
/sdcard ulanish nuqtasi — emulyatsiya qilingan yoki jismoniy tashqi xotira bo'limiga ramziy havoladir. SD kartasi bo'lmagan qurilmalarda /sdcard umumiy foydalanish uchun ajratilgan /data ichidagi pastki bo'limga ishora qiladi. Ushbu bo'lim qurilma MTP protokoli orqali kompyuterga ulanganda foydalanuvchiga ko'rinadi. Ilovalar /sdcard ga READ_EXTERNAL_STORAGE va WRITE_EXTERNAL_STORAGE ruxsatnomalari orqali, Android 10 dan boshlab esa MediaStore API bilan Scoped Storage orqali kirishadi. /sdcard hajmi odatda qurilma flesh-xotirasining umumiy hajmining 60–80% ini tashkil qiladi, qolgan qismi /data bo'limi uchun ajratiladi.
iOS-da fayl tizimi ilovalarning Sandbox konteynerlari orqali tashkil etiladi. Har bir ilova XNU yadro darajasida kirish cheklangan izolyatsiyalangan katalog oladi. Foydalanuvchi bo'limi iOS 10.3 da taqdim etilgan APFS (Apple File System) fayl tizimidan foydalanadi. APFS snapshot-lar, fayl klonlash va fayl darajasida shifrlashni qo'llab-quvvatlaydi, bu uni mobil qurilmalar uchun maqbul qiladi.
iOS Sandbox konteyneri to'rtta asosiy katalogni o'z ichiga oladi: Documents, Library, tmp va SystemData. Har bir katalog o'z zahira nusxasi siyosatiga, ma'lumotlarni saqlash muddatiga va kirish darajasiga ega. Documents avtomatik ravishda iCloud va iTunes zahira nusxasiga kiritiladi. Library pastki kataloglarni o'z ichiga oladi: Caches (zahira olinmaydi), Preferences (zahira olinadi) va Application Support (zahira olinadi). tmp katalogi vaqtinchalik fayllar uchun mo'ljallangan — iOS joy etishmasligi bo'lganda ularni o'chirishi mumkin va zahira nusxasiga kiritilmaydi. SystemData tizimning o'zi tomonidan ishlatiladi va standart API orqali ilova uchun mavjud emas.
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 konteynerining har bir katalogi o'z himoya sinfiga (protection class) ega. iOS to'rtta sinfni qo'llab-quvvatlaydi: Complete Protection (qurilma qulflanganda fayl mavjud emas), Protected Unless Open (allaqachon ochilgan fayllar qulflash vaqtida mavjud), Protected Until First User Authentication (fayllar birinchi qulf ochishdan keyin mavjud) va No Protection (fayllar qurilma yuklangandan keyin doimo mavjud). Odatiy bo'lib, Documents va Library-dagi barcha fayllar Complete Protection sinfini oladi, bu foydalanuvchi ma'lumotlarining maksimal himoyasini kafolatlaydi. Fayl yaratilayotganda, agar fon ilovasi qulflangan qurilmada ma'lumotlarga kirishga muhtoj bo'lsa, boshqa himoya sinfi aniq belgilanishi mumkin.
Mobil qurilmalarda fayllarga kirishni boshqarish Android va iOS o'rtasidagi asosiy farqdir. Android ilovalarni izolyatsiyalash uchun kengaytmalar bilan klassik Linux kirish huquqi modelidan (o'qish, yozish, bajarish) foydalanadi. iOS qattiqroq Sandbox modelini qo'llaydi, bunda har bir ilova izolyatsiyalangan konteynerda ishlaydi va maxsus mexanizmlarsiz boshqa ilovalarning fayllariga kirish huquqiga ega emas.
Android-da har bir ilova alohida UID (User ID) bilan ishga tushiriladi. Ilova o'z sandboxida yaratgan barcha fayllar ushbu UID ga tegishli va boshqa ilovalarga ko'rinmaydi. Umumiy kataloglarga (tashqi xotira) kirish uchun ilova READ_EXTERNAL_STORAGE va WRITE_EXTERNAL_STORAGE ruxsatnomalarini so'rashi kerak. Android 11 dan boshlab, ruxsatnomalar ish vaqtida so'ralishi kerak va targetSdkVersion 30+ bo'lgan ilova boshqa ilovalarning fayllariga kirish uchun SAF dan foydalanishi kerak. Ruxsatnoma modelining buzilishi standart try-catch bloki bilan ishlanadigan SecurityException ga olib keladi. Google Play nashr qilishdan oldin ilovaning ruxsatnoma siyosatiga muvofiqligini avtomatik tekshiradi.
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 XNU yadro darajasida amalga oshirilgan va ilovaning o'z konteyneridan chiqishiga yo'l qo'ymaydi. Ilova Document Picker orqali tashqi faylning URI siga kirishga ega bo'lsa ham, operatsion tizim asl nusxaga to'g'ridan-to'g'ri kirishni ta'minlash o'rniga ilova konteynerida vaqtinchalik nusxa yaratadi. Ilovalar o'rtasida fayl almashish uchun iOS faylni bir ilova konteyneridan ikkinchisining konteyneriga nusxalaydigan Share Sheet va UIActivityViewController mexanizmlaridan foydalanadi. Autentifikatsiya ma'lumotlarini (tokenlar, parollar, kalitlar) xavfsiz saqlash uchun iOS yadro darajasida tizim uchun mavjud bo'lgan shifrlangan ombor — Keychain ni taqdim etadi. Keychain Sandbox konteynerining bir qismi emas va alohida securityd demoni tomonidan boshqariladi, bu ilova xavfsizligi buzilgan taqdirda ham qo'shimcha himoya darajasini ta'minlaydi.
Fayl tizimini tanlash ma'lumotlarni saqlashning unumdorligi va ishonchliligiga bevosita ta'sir qiladi. Har bir fayl tizimining o'z arxitekturasi, optimallashtirishlari va cheklovlari bor. Ishlab chiquvchi uchun bu farqlarni tushunish foydalidir, chunki bu ilovaning turli qurilmalardagi xatti-harakatini bashorat qilishga yordam beradi.
Ilovalarni ishlab chiqishda turli fayl tizimlari fayl nomi uzunligi cheklovlari (EXT4 va F2FS uchun 255 bayt, APFS uchun 255 Unicode belgi), maksimal fayl hajmi va maxsus belgilarni qo'llab-quvvatlashda farq qilishini hisobga oling. Masalan, APFS fayl nomlarida emoji bilan birga Unicode belgilariga ruxsat beradi, EXT4 esa ASCII bilan cheklangan. Agar ilova turli tillarda nomlangan fayllarni yaratsa, barcha maqsadli qurilmalarda ishlashni sinab ko'ring — APFS da to'g'ri yaratilgan fayl nomi EXT4 da qisqartirilishi mumkin.
Mobil qurilmaning fayl tizimi bilan ishonchli ishlash bir necha asosiy qoidalarga rioya qilishni talab qiladi. Ular ishlab chiquvchilarning odatiy xatolari tahlili va rasmiy hujjatlarning tavsiyalariga asoslangan.
context.filesDir, iOS-da NSSearchPathForDirectoriesInDomains. Qattiq yo'llar OT versiyalari va qurilmalar o'rtasida o'zgaradiFile.getUsableSpace() va iOS-da URLResourceValues.volumeAvailableCapacityKey dan foydalaning. Bo'sh joy yetarli bo'lmasa, foydalanuvchini ogohlantiringisExcludedFromBackup orqali istisno qiling. Android-da vaqtinchalik fayllar uchun cacheDir ni afzal ko'ringMaxsus e'tibor bering platformalararo farqlarga. Android-da fayl yo'llari to'g'ri chiziq bilan quriladi (/data/data/.../files/), iOS-da — URL sxemasi bilan (file:///var/mobile/.../Documents/). Agar ilovangiz ko'p platformali freymvorkdan (Flutter, React Native, Kotlin Multiplatform) foydalansa, fayl operatsiyalarini platforma adapterlari orqali birlashtiring. Masalan, Flutter platformaga bog'liq kod yozmasdan ikkala platformada Documents yoki filesDir ga to'g'ri yo'lni qaytaradigan path_provider paketini taqdim etadi. Yo'llarni hech qachon satr operatsiyalari bilan birlashtirmang — turli platformalarda ajratgichlarni to'g'ri boshqaradigan File.join() yoki URL.appendingPathComponent() dan foydalaning.
Tez-tez so'raladigan savollar
Zamonaviy Android qurilmalarida (11+) /data bo'limi uchun F2FS ishlatiladi. Eski qurilmalarda — EXT4. /system bo'limi EROFS yoki EXT4 dan foydalanadi. SD kartalar hajmiga qarab exFAT yoki FAT32 bilan formatlanadi.
APFS snapshot-lar, fayl klonlash, fayl darajasida shifrlash va tekshirish summalarini qo'llab-quvvatlaydi. EXT4 jurnallashtirish va kengroq moslikka ega. APFS SSD uchun optimallashtirilgan, EXT4 universal fayl tizimidir.
FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) dan foydalaning. Metod URL manzillar massivini qaytaradi, birinchi element ilova Sandbox konteynerining asosiy Documents katalogidir.
Scoped Storage — Android 10 da joriy qilingan, fayl tizimiga to'g'ridan-to'g'ri kirishni cheklaydigan kirish modelidir. Ilovalar ruxsatisiz faqat o'z fayllarini o'qiy oladi. Umumiy media fayllariga kirish uchun MediaStore API ishlatiladi.
exFAT 32 GB dan ortiq sig'imli SD kartalar uchun afzal, chunki u 4 GB dan katta fayllarni qo'llab-quvvatlaydi. FAT32 eski qurilmalar bilan maksimal moslikni ta'minlaydi, lekin fayl hajmini 4 GB bilan cheklaydi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.