Asosiy mazmunga o'tish

14-dars: Fayl tizimi

4-blokXotira, OS va fayl13–16 darslar

Diskingizda rasm.jpg yotibdi. Uni rasm.txt deb qayta nomlasangiz nima o’zgaradi? Ko’pchilik “fayl buziladi” deb o’ylaydi. Aslida — hech narsa o’zgarmaydi: baytlar joyida, rasm ham joyida. Faqat kompyuter uni endi “matn” deb ochishga urinadi.

Bu darsda fayl degan tushunchaning pardasini ochamiz: ichida nima bor, nomi qayerda saqlanadi va haqiqiy turini kim biladi. Bu bilim xavfsizlikda ham asqotadi: virus ba’zan o’zini “rasm” deb tanishtiradi.

Bu darsdan keyin siz

  • fayl aslida nimalardan iboratligini (baytlar + metama’lumot) bilasiz
  • papkalar daraxti va yo’l (path) tushunchasini tushuntira olasiz
  • kengaytma shunchaki kelishuv ekanini va magic baytlar nima ekanini bilasiz
  • fayl “o’chirilganda” aslida nima bo’lishini ayta olasiz

Disk darajasida fayl — shunchaki baytlar ketma-ketligi. 4-darsda ko’rgansiz: o’sha baytlar matn ham, rasm ham, ovoz ham bo’lishi mumkin. Diskda ular hech qanday “turga” ega emas.

Fayl tizimi har faylga qo’shimcha “pasport” yuritadi: nomi, hajmi, yaratilgan sanasi, kim o’qiy olishi. Bu pasport faylning ichida emas, fayl tizimining o’z jadvallarida saqlanadi.

fayl tizimifile system

Diskdagi baytlarni fayl va papkalarga tartiblab, har biriga nom, joy va huquqlarni biriktirib beruvchi tizim. NTFS, APFS, ext4 — shular jumlasidan.

Fayllar papkalarga, papkalar papkalarga joylanadi — daraxt hosil bo’ladi. Daraxtdagi manzil yo’l deyiladi: hujjatlar/maktab/insho.txt — ildizdan boshlab har qadam.

yo'lpath

Fayl yoki papkaning daraxtdagi to’liq manzili. Har bo’g’in — bitta papka, oxirgisi — nishon.

Aslida esa daraxt ham illyuziya: diskda hammasi yonma-yon bloklarda yotadi. Daraxtni fayl tizimi o’z jadvallari bilan “chizib beradi” — xuddi RAM’dagi manzillar ustiga qurilgan tartib kabi.

.jpg, .pdf, .mp3 — bular faylning nomidagi dumcha, xolos. Hech qanday qulf yo’q: nomni o’zgartirish baytlarga tegmaydi. Kengaytma operatsion tizimga beriladigan va’da: “meni rasm ko’ruvchida och”.

Haqiqat esa faylning birinchi baytlarida yotadi. Ko’p formatlar o’z imzosi bilan boshlanadi: PNG doim 89 50 4E 47, PDF doim 25 50 44 46 (bu ASCII’da %PDF).

magic baytlarmagic bytes

Fayl boshidagi formatni bildiruvchi qat’iy baytlar imzosi. Kengaytmadan farqli, faylning o’zida yashaydi — nom o’zgarsa ham qoladi.

Faylni o’chirsangiz, diskdagi baytlar joyida qoladi — fayl tizimi shunchaki o’z jadvalidan yozuvni olib tashlab, “bu joy bo’sh” deb belgilaydi. Baytlar ustiga yangi narsa yozilgunicha ular tiklanishi mumkin.

Shu sababli maxsus dasturlar “o’chirilgan” fayllarni qaytara oladi. Va shu sababli telefonni sotishdan oldin oddiy o’chirish yetarli emas — to’liq shifrlash yoki qayta yozish kerak.

Istalgan faylni tanlang (u kompyuteringizdan chiqmaydi, faqat birinchi 16 bayti brauzerda o’qiladi). Baytlar imzosi kengaytma bilan solishtiriladi. Keyin faylning nusxasini boshqa kengaytma bilan saqlab, qayta tekshiring — kim yolg’on gapiradi?

Magic bayt kuzatuvchi

Istalgan faylni tanlang — birinchi baytlari haqiqiy turini fosh qiladi.

Bu simulyator faylning birinchi baytlarini (imzosini) o'qib, haqiqiy turini aniqlaydi va kengaytma bilan solishtiradi. Masalan har PNG fayl 89 50 4E 47 baytlari bilan, har JPEG esa FF D8 FF bilan boshlanadi.

JavaScript'siz sinash: hexed.it saytida istalgan PNG va JPEG faylni ochib, birinchi to'rt baytini solishtiring.

  • Fayl diskda — baytlar qatori; nomi, sanasi, huquqlari fayl tizimi jadvalida
  • Yo’l — daraxtdagi manzil; daraxtning o’zi ham fayl tizimi chizgan illyuziya
  • Kengaytma — nomdagi va’da; magic baytlar — fayl ichidagi haqiqat
  • “O’chirish” — jadvaldan yozuvni olish; baytlar ustiga yozilgunicha tiklanadi
  • Fayl turiga nomidan qarab emas, mazmunidan qarab ishonish kerak

1rasm.jpg ni rasm.txt deb nomlasak, diskdagi baytlarga nima bo'ladi?

Javobni ko'rish

Hech narsa. Nom fayl tizimining jadvalida saqlanadi, baytlar esa diskda o’z joyida. O’zgargan yagona narsa — tizim endi faylni matn muharririda ochishga urinadi va ekranda “qiyqim” belgilar ko’rasiz. Bu baytlar buzilgani emas, noto’g’ri o’qilgani.

2Nega PNG mualliflari faylni aynan 89 50 4E 47 bilan boshlashga kelishgan?

Javobni ko'rish

50 4E 47 — ASCII’da “PNG”, odam hex’da ko’rsa tanisin. Birinchi 89 esa ataylab ASCII’dan tashqarida: fayl tasodifan matn deb o’qilsa darhol “bu matn emas” degan signal beradi. O’ylab qilingan muhandislik.

3Fayl tizimisiz disk qanday ko'rinardi va nima yo'qolardi?

Javobni ko'rish

Milliardlab baytning uzluksiz qatori. “Fayl”, “nom”, “papka” tushunchalarining o’zi yo’qolardi — qaysi bayt qaysi hujjatga tegishli ekanini hech kim bilmasdi. Fayl tizimi — xotira ustiga qurilgan tartib abstraksiyasi.

4O'chirilgan faylni tiklash dasturlari qanday ishlaydi va qachon ojiz qoladi?

Javobni ko'rish

Ular jadvaldan o’chirilgan, lekin baytlari hali joyida turgan fayllarni qidiradi — ko’pincha magic baytlar bo’yicha. Ustiga yangi ma’lumot yozilgan bo’lsa, tiklab bo’lmaydi: eski baytlarning o’rnida endi yangilari.

5Nega docx fayli ZIP imzosi bilan boshlanadi?

Javobni ko'rish

Chunki docx aslida ZIP arxiv: ichida matn, rasmlar va formatlash alohida fayllar bo’lib yotadi. Kengaytmani .zip ga o’zgartirsangiz, arxiv sifatida ochib ichini ko’rishingiz mumkin. Yana bir dalil: tur — kelishuv, mazmun — baytlar.

Amaliy topshiriq

~30 daqiqao'rta

Birinchi qism. Kompyuterda istalgan rasmning NUSXASINI oling (aslini emas!) va kengaytmasini .txt ga o’zgartiring. Matn muharririda oching — nima ko’rinadi? Birinchi qatorda formatga oid belgilar bormi? Keyin kengaytmani qaytarib, rasm ochilishini tekshiring.

Ikkinchi qism. O’sha nusxani yuqoridagi simulyatorda .txt holida tekshiring: baytlar haqiqatni aytdimi?

Uchinchi qism. hexed.it saytida bitta PNG va bitta JPEG faylni ochib, birinchi 8 baytini daftarga yozing va solishtiring.

Topshiriladigan natija: .txt tajribasi tavsifi (2-3 gap), simulyator xulosasi va ikki faylning bosh baytlari.

Darsni belgilash uchun JavaScript kerak. Bu progressni saqlash uchun ishlatiladi — darslikning o'zi JavaScript'siz ham to'liq o'qiladi.