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:
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,catkabi komandalar shu turdagi binar fayllarga misol bo'ladi. Zamonaviy ko'p distributivlarda/binamalda/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/etcichida odatda bajariladigan dasturlar emas, sozlama fayllari saqlanadi. -
/home- oddiy foydalanuvchilarning shaxsiy kataloglari joylashadigan joy. Masalan,farruxfoydalanuvchisining bosh katalogi odatda/home/farruxbo'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/appyoki/opt/app-nameko'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/tmpichidagi 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/libichida 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/logichida 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/ttykabi 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/cpuinfoprotsessor haqida,/proc/meminfoesa 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/USBkabi. -
/mnt- vaqtinchalik qo'lda mount qilish uchun ishlatiladigan joy. Masalan, administrator biror diskni sinov uchun/mnt/diskichiga ulashi mumkin. -
/root- root foydalanuvchisining bosh katalogi. Oddiy foydalanuvchilar odatda/homeichida joylashadi, lekin root foydalanuvchisining bosh katalogi/home/rootemas, balki/roothisoblanadi. -
/srv- server tomonidan taqdim etiladigan ma'lumotlar uchun mo'ljallangan joy. Masalan, ba'zi tizimlarda veb-server fayllari/srv/www, FTP fayllari esa/srv/ftpichida 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/binyoki dasturga xosbinkatalogida. - 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/logichidan qidirasiz. - dastur sozlamalarini o'zgartirish kerak bo'lsa, avval
/etcichiga qaraysiz. - foydalanuvchi fayllari kerak bo'lsa,
/homeichidan qidirasiz. - qo'lda yoki third-party o'rnatilgan dasturlarni
/usr/localyoki/optichidan tekshirasiz. - vaqtinchalik fayllar uchun
/tmpishlatilishini 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.