Skip to content

Linux fayl tizimi arxitekturasi

Linuxda ishlay boshlaganingizda bir narsani sezasiz tizim fayllari qat'iy va mantiqiy tuzilmada joylashganini. Linuxda butun fayl tizimi bitta umumiy ildizdan boshlanadi va har bir turdagi fayl uchun aniq vazifaga ega kataloglar(folders) ajratilgan.

Bu tuzilmani bilish tizimni tezroq tushunishga yordam beradi, agar muammo yuzaga kelganda log, konfiguratsiya, dastur fayllari yoki foydalanuvchi ma'lumotlari qayerda joylashganini topish osonlashadi. Eng muhimi, ko'pchilik dasturlar ham shu umumiy qoidalarga amal qiladi. Shuning uchun Linux fayl tizimi arxitekturasini bilish kundalik ish jarayonini osonlashtiradi.

Hammasi rootdan boshlanadi

Linux fayl tizimi teskari daraxtga o'xshaydi. Bu daraxtning eng yuqori nuqtasi root directory, ya'ni / belgisi bilan ifodalanadigan ildiz katalog hisoblanadi. Boshqa barcha kataloglar aynan shu / ichidan boshlanadi.

Masalan:

/
├── bin
├── etc
├── home
├── usr
└── var

Kimdir faylni rootdan qidiring desa, odatda eng yuqoridagi / katalogdan qidirishni nazarda tutadi. Buni root foydalanuvchisi bilan adashtirmaslik kerak, / fayl tizimining ildizi, root esa tizimdagi maxsus administrator hisobidir.

Endi shu daraxtning eng muhim qismlarini birma-bir ko'rib chiqamiz.

Eng ko'p uchraydigan asosiy kataloglar

  • /bin - tizim ishlashi uchun zarur bo'lgan asosiy bajariladigan dasturlar joylashgan joy. Masalan, ls, cp, mv, cat kabi komandalar shu turdagi binar fayllarga misol bo'ladi. Zamonaviy ko'p distributivlarda /bin amalda /usr/binga bog'langan bo'lishi mumkin, lekin uning vazifasi asosiy komandalarni saqlash hisoblanadi.

  • /etc - tizim va dasturlarning konfiguratsiya fayllari saqlanadigan joy. Masalan, SSH, Nginx, systemd, tarmoq yoki boshqa xizmatlarning sozlamalari ko'pincha shu yerda bo'ladi. Muhim jihat /etc ichida odatda bajariladigan dasturlar emas, sozlama fayllari saqlanadi.

  • /home - oddiy foydalanuvchilarning shaxsiy kataloglari joylashadigan joy. Masalan, farrux foydalanuvchisining bosh katalogi odatda /home/farrux bo'ladi. Hujjatlar, yuklab olingan fayllar, rasmlar va foydalanuvchiga tegishli konfiguratsiyalar shu yerda saqlanishi mumkin.

  • /opt - operatsion tizim bilan birga kelmaydigan, alohida o'rnatiladigan qo'shimcha dasturlar uchun mo'ljallangan joy. Masalan, ayrim yirik third-party dasturlar o'z fayllarini /opt/vendor/app yoki /opt/app-name ko'rinishida saqlashi mumkin. Ko'pincha veb loyihalar shu katalogga joylanadi.

  • /tmp - vaqtinchalik fayllar uchun joy. Ko'p distributivlarda tizim qayta yuklanganda yoki ma'lum vaqt o'tgach /tmp ichidagi fayllar tozalanishi mumkin. Shu sababli bu yerga uzoq muddat saqlanishi kerak bo'lgan fayllarni qo'yish yaxshi amaliyot hisoblanmaydi.

  • /usr - foydalanuvchi darajasidagi dasturlar, kutubxonalar, hujjatlar va umumiy resurslar joylashadigan katta iyerarxiya. Masalan, ko'p dasturlarning bajariladigan fayllari /usr/bin, kutubxonalari esa /usr/lib ichida bo'ladi. Nomida user so'zi borligi sababli u faqat foydalanuvchining shaxsiy fayllari uchun degani emas, amalda bu tizimdagi dastur va resurslarning muhim qismidir.

  • /var - tez-tez o'zgarib turadigan ma'lumotlar uchun joy. Log fayllar, keshlar, ma'lumotlar bazasi fayllari yoki service yaratadigan runtime ma'lumotlar ko'pincha shu yerda bo'ladi. Masalan, loglar odatda /var/log ichida saqlanadi.

Bu kataloglarning har biri o'z ichida yana kichik bo'limlarga bo'linadi. Masalan, /usr ichida /usr/bin, /usr/lib, /usr/share, /usr/local kabi bo'limlar bor. /var ichida esa /var/log, /var/cache, /var/lib kabi joylar uchraydi.

Kamroq uchraydigan, lekin bilish kerak bo'lgan kataloglar

Yuqoridagilar eng ko'p ishlatiladigan kataloglar bo'lsada, haqiqiy Linux tizimida yana bir nechta muhim joylarni uchratasiz:

  • /boot - tizimni ishga tushirish uchun kerakli fayllar joylashadigan joy. Bu yerda Linux kernel, initramfs va bootloader bilan bog'liq fayllar bo'lishi mumkin. Kompyuter yuklanish jarayonida aynan shu fayllar muhim rol o'ynaydi.

  • /dev - qurilmalarni ifodalovchi maxsus fayllar joylashadigan joy. Masalan, disklar, terminal qurilmalari yoki boshqa apparat resurslari Linuxda fayl ko'rinishida ko'rsatiladi. /dev/sda, /dev/null, /dev/tty kabi nomlar bunga misol bo'ladi.

  • /proc - kernel va ishlayotgan jarayonlar haqida virtual ma'lumot beradigan maxsus fayl tizimi. Bu yerda oddiy diskdagi fayllar emas, tizim ishlayotgan paytdagi holat haqida ma'lumotlar ko'rsatiladi. Masalan, /proc/cpuinfo protsessor haqida, /proc/meminfo esa xotira haqida ma'lumotlarni saqlaydi.

  • /sys - kernel, qurilmalar va drayverlar haqida ma'lumot beradigan yana bir virtual fayl tizimi. Bu joy qurilmalar, ularning holati va kernel bilan bog'liq ma'lumotlarni ko'rishda ishlatiladi.

  • /run - tizim ishga tushganidan keyin yaratiladigan runtime ma'lumotlar uchun joy. PID fayllar, socketlar va servicelarga tegishli vaqtinchalik ma'lumotlar shu yerda bo'lishi mumkin. Tizim qayta yuklanganda bu ma'lumotlar saqlanib qolmaydi.

  • /media - USB fleshka, tashqi disk, CD/DVD kabi qurilmalar avtomatik ulanganida, ular odatda shu yerga mount(o'rnatish) qilinadi. Masalan, /media/farrux/USB kabi.

  • /mnt - vaqtinchalik qo'lda mount qilish uchun ishlatiladigan joy. Masalan, administrator biror diskni sinov uchun /mnt/disk ichiga ulashi mumkin.

  • /root - root foydalanuvchisining bosh katalogi. Oddiy foydalanuvchilar odatda /home ichida joylashadi, lekin root foydalanuvchisining bosh katalogi /home/root emas, balki /root hisoblanadi.

  • /srv - server tomonidan taqdim etiladigan ma'lumotlar uchun mo'ljallangan joy. Masalan, ba'zi tizimlarda veb-server fayllari /srv/www, FTP fayllari esa /srv/ftp ichida saqlanishi mumkin. Amalda hamma distributivlar yoki hamma administratorlar bundan foydalanavermaydi.

Dasturlar ham shu qoidaga amal qiladi

Linuxda dastur o'rnatilganda uning barcha fayllari bitta joyga joylanmaydi. Odatda fayllar vazifasiga qarab turli kataloglarga ajratiladi:

  • bajariladigan fayllar - /usr/bin, /usr/local/bin yoki dasturga xos bin katalogida.
  • konfiguratsiya fayllari - ko'pincha /etc/app-name/ ichida.
  • log fayllari - odatda /var/log/app-name/ ichida.
  • servis ma'lumotlari - ba'zan /var/lib/app-name/ ichida.
  • third-party dastur fayllari - ayrim holatlarda /opt/app-name/ ichida.

Masalan, Nginx paket menejeri orqali o'rnatilsa, uning konfiguratsiyasi odatda /etc/nginx/ ichida, loglari /var/log/nginx/ ichida, bajariladigan fayli esa /usr/sbin/nginx yoki tizimga qarab boshqa mos joyda bo'lishi mumkin.

Agar dastur manba koddan qo'lda kompilyatsiya qilinsa, u ko'pincha /usr/local ostiga o'rnatilishi mumkin. Ayrim yirik third-party dasturlar esa /opt ichida o'ziga alohida joy oladi. Masalan, Google Chrome ba'zi tizimlarda /opt/google/chrome ichida saqlanishi mumkin.

Bu tartibni tushunib olsangiz yangi dastur bilan ishlaganda uning konfiguratsiyasi, loglari va asosiy fayllarini qayerdan izlash kerakligini oson bilib olasiz.

Nega bu tuzilmani bilish kerak

Bu kataloglarni yodlab olish shart emas. Vaqt o'tishi bilan ular tabiiy ravishda esda qoladi. Lekin ularning umumiy mantig'ini tushunish juda foydali:

  • muammo yuzaga kelganda, log fayllarini ko'pincha /var/log ichidan qidirasiz.
  • dastur sozlamalarini o'zgartirish kerak bo'lsa, avval /etc ichiga qaraysiz.
  • foydalanuvchi fayllari kerak bo'lsa, /home ichidan qidirasiz.
  • qo'lda yoki third-party o'rnatilgan dasturlarni /usr/local yoki /opt ichidan tekshirasiz.
  • vaqtinchalik fayllar uchun /tmp ishlatilishini bilasiz.

Ya'ni bu shunchaki nazariy bilim emas, balki Linux bilan ishlaganda vaqtingizni tejaydigan amaliy qo'lanma hisoblanadi.

Info

Linuxda papka so'zi ham ishlatiladi, lekin rasmiy va texnik muhitda ko'proq directory yoki katalog atamasi qo'llaniladi. Ikkalasi ham bir xil ma'noni anglatadi, farq asosan atamada.