Skip to content

08. Boot, kernel va systemd — 15 ta savol-javob

Avval javobni o'zingiz ayting, so'ng ochib solishtiring.

1. Linux yuklanish jarayonini bosqichma-bosqich tushuntiring.

Javob

1) Firmware (BIOS/UEFI) apparatni tekshiradi va yuklanuvchi qurilmani topadi. 2) Bootloader (GRUB) yuklanadi, kernel tanlanadi. 3) Kernel xotiraga yuklanadi, apparatni aniqlaydi va vaqtinchalik initramfs bilan ishlaydi. 4) initramfs haqiqiy root fayl tizimini topib o'rnatadi (kerakli drayverlar, LVM, shifrlash). 5) Kernel PID 1 ni ishga tushiradi (systemd). 6) systemd target bo'yicha xizmatlarni ishga tushiradi.

2. BIOS va UEFI, MBR va GPT farqi nima?

Javob

BIOS — eski firmware, MBR dan yuklaydi; MBR 2 TB gacha disk va 4 asosiy bo'lim bilan cheklangan. UEFI — zamonaviy firmware, GPT bilan ishlaydi, EFI tizim bo'limi (ESP) dan yuklaydi, Secure Boot'ni qo'llab-quvvatlaydi. GPT 2 TB dan katta disklarni va ko'p bo'limlarni qo'llaydi va zaxira sarlavhasi bor.

3. GRUB nima qiladi va qanday sozlanadi?

Javob

GRUB — kernel va initramfs'ni diskdan topib xotiraga yuklaydigan va unga parametr beradigan bootloader; bir nechta kernel/OT orasida tanlash menyusini ham beradi. Sozlama /etc/default/grub da, so'ng update-grub (Debian) yoki grub2-mkconfig (RHEL) yangi konfiguratsiyani yaratadi. Faylni to'g'ridan-to'g'ri /boot/grub/grub.cfg da tahrirlamang, u qayta yoziladi.

4. initramfs nima va nega kerak?

Javob

Kichik vaqtinchalik root fayl tizimi, kernel bilan birga xotiraga yuklanadi. U haqiqiy root'ni o'rnatish uchun zarur drayverlar va vositalarni beradi (disk kontrolleri, LVM, RAID, LUKS shifrlash, fayl tizimi). Kernel o'zida hamma drayverni saqlamasligi uchun shunday qilingan. Root topilmasa, tizim initramfs konsoliga tushib qoladi.

5. Kernel moduli nima? lsmod, modprobe, modinfo nima qiladi?

Javob

Kernel modullari — kernel ishlab turgan paytda yuklanadigan/yuklab olinadigan kod bo'laklari (asosan drayverlar va fayl tizimlari). lsmod — yuklanganlar, modinfo — modul haqida ma'lumot, modprobe — bog'liqliklari bilan yuklash (-r bilan olib tashlash). Doimiy yuklash /etc/modules-load.d/, taqiqlash blacklist orqali.

6. systemd nima va nega eski init (SysV) dan ustun?

Javob

systemd — PID 1 bo'lib ishlaydigan tizim va xizmat menejeri. SysV init xizmatlarni ketma-ket skriptlar bilan ishga tushirardi; systemd esa bog'liqliklarni e'lon qilinadigan unit fayllarida ko'rib, xizmatlarni parallel ishga tushiradi, jarayonlarni cgroups bilan kuzatadi, avtomatik qayta ishga tushiradi, socket/timer aktivatsiyasi va markazlashgan jurnal (journald) beradi.

7. Unit turlari qaysilar?

Javob

.service — xizmat (jarayon), .socket — socket orqali ishga tushirish, .timer — vaqt bo'yicha ishga tushirish, .target — unit'lar guruhi (yuklanish bosqichi), .mount/.automount — fayl tizimlari, .path — fayl o'zgarishini kuzatish, .slice — resurs guruhi. Unit fayllari /lib/systemd/system/ (paketlar) va /etc/systemd/system/ (sizniki, ustuvor).

8. Target nima? Runlevel bilan solishtiring.

Javob

Target — tizim holatini (yuklanish bosqichini) belgilovchi unit guruhi. Runlevel'larga mos: multi-user.target (matnli ko'p foydalanuvchili rejim ~ runlevel 3), graphical.target (~5), rescue.target (~1), poweroff/reboot. Sukut target systemctl get-default bilan ko'riladi va set-default bilan o'zgartiriladi.

9. start va enable farqi nima?

Javob

start xizmatni hozir ishga tushiradi, reboot'dan keyin ishga tushishiga ta'sir qilmaydi. enable xizmatni yuklanishda avtomatik ishga tushadigan qiladi (symlink yaratadi), lekin hozir ishga tushirmaydi. Ikkalasi: systemctl enable --now. is-active va is-enabled ularni alohida tekshiradi.

10. restart va reload farqi nima? Qachon qaysi biri?

Javob

restart jarayonni to'xtatib qayta ishga tushiradi: ulanishlar uziladi, qisqa uzilish bo'ladi. reload jarayonni o'ldirmasdan konfiguratsiyani qayta o'qitadi (xizmat ExecReload= ni qo'llasa). Konfiguratsiyani almashtirishda avval sintaksisni tekshiring (nginx -t), keyin reload; binar yangilanganda yoki reload qo'llanmasa — restart. reload-or-restart ikkalasini qamraydi.

11. disable va mask farqi nima?

Javob

disable faqat yuklanishdagi avtomatik ishga tushishni olib tashlaydi, xizmatni qo'lda yoki boshqa xizmat bog'liqligi orqali baribir ishga tushirish mumkin. mask unit'ni /dev/null ga bog'laydi: uni hech qanday yo'l bilan ishga tushirib bo'lmaydi (masked xatosi). Konflikt qiladigan yoki tasodifan ishga tushmasligi kerak xizmatlar uchun.

12. Wants, Requires va After orasidagi farq nima?

Javob

After= / Before= faqat tartibni belgilaydi, bog'liqlik yaratmaydi. Wants= — yumshoq bog'liqlik: ko'rsatilgan unit ham ishga tushiriladi, lekin u muvaffaqiyatsiz bo'lsa ham biz davom etamiz. Requires= — qattiq bog'liqlik: u ishga tushmasa yoki to'xtasa, biz ham. Odatda tartib va bog'liqlik birga yoziladi (After= + Wants=).

13. Xizmat yiqilganda avtomatik qayta ishga tushirishni qanday sozlaysiz?

Javob

[Service] bo'limida Restart=on-failure (yoki always) va RestartSec= (kutish vaqti). on-failure faqat xato yoki signal bilan tugaganda, always — toza chiqishda ham qayta ishga tushiradi. Cheksiz tez qayta ishga tushish halqasidan StartLimitIntervalSec/StartLimitBurst himoya qiladi. Bu avtomatik tuzatish: sababni jurnaldan aniqlash baribir kerak.

14. Rescue va emergency mode farqi nima? Qachon kerak?

Javob

Rescue mode — asosiy tizim o'rnatilgan, asosiy xizmatlar ishga tushgan, lekin faqat root konsoli va minimal xizmatlar bilan. Emergency mode — eng minimal: root fayl tizimi faqat o'qish uchun, deyarli hech qanday xizmat yo'q. Ishlatiladi: fstab xatosi, buzilgan fayl tizimi, unutilgan root paroli, xizmat tufayli yuklanmaslik. GRUB'da kernel qatoriga systemd.unit=rescue.target qo'shiladi.

15. Vaqt zonasi va locale: timedatectl va localectl nima qiladi?

Javob

timedatectl vaqt zonasi, tizim soati va NTP sinxronizatsiyasi holatini ko'rsatadi/o'zgartiradi (set-timezone). Serverlarda odatda UTC saqlanadi, vaqt zonasi ko'rsatish uchun ishlatiladi. localectl tizim tili va klaviatura sxemasini boshqaradi (locale: til, sana, tartiblash qoidalari). Locale sort va regex natijasiga ham ta'sir qilishi mumkin.