Операционная система GNU/Linux: устройство и...

Preview:

Citation preview

Операционная система GNU/Linux: устройство и функционированиеВиктор АшикКуратор практик

Лекция КИТ, Москва, 21 марта 2011

2

#yakit

3

КИТПлан курса

— Операционные системы

— Архитектура ЭВМ

— Устройство GNU/Linux

— Системы хранения данных

— Файловые системы

— Сети и протоколы

— Виртуализация

— Безопасность

4

ОС GNU/LinuxУстройство и функционирование

— *nix, BSD и GNU

— загрузка

— состав

— дистрибутивы

5

В каком порядке появились?

Linux

Minix

386BSD

6

Объявление о Linux:What would you like to see most in minix?

Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>

Date: 25 Aug 91 20:57:08 GMT

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like anyfeedback on things people like/dislike in minix, as my OS resembles it somewhat (same physicallayout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll getsomething practical within a few months, and I'd like to know what features most people wouldwant. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torva...@kruuna.helsinki.fi)

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that'sall I have :-(.

7

Каким был загрузчик первой версии Linux?

8

Какие есть загрузчики Linux?

9

Загрузчики Linux

GRUB (v1/v2)

(e)LILO

syslinux/isolinux/pxelinux

10

Конфигурация загрузчика:

/boot/grub/grub.cfg

/boot/grub/menu.lst

/etc/lilo.conf

syslinux.cfg

11

Ядро Linux

Гибридное — драйверы дисковых и файловых подсистем загружаются модулями

Модули — файлы в /lib/modules/

Как работает bootstrapping?

12

Как настроить ядро до его запуска?

13

Как настроить ядро после его запуска?

14

Как появляются новые процессы?

15

Что первично: fork или exec?

16

Linux: init/main.c

if (execute_command) {run_init_process(execute_command);

printk(KERN_WARNING "Failed to execute %s.""Attempting defaults...\n",execute_command);

}run_init_process("/sbin/init"); run_init_process("/etc/init"); run_init_process("/bin/init"); run_init_process("/bin/sh");

panic("No init found. Try passing init= option to kernel. ""See Linux Documentation/init.txt for guidance.");

17

Что будет делать init?

18

init

dpkg -S /sbin/init||rpm -qf /sbin/init

19

Варианты init

BSD-стиль:

– /etc/rc && /etc/rc.d && /etc/rc.local

SysV-стиль:

– sysvinit: /etc/inittab && /etc/rc[0-9].d/ && /etc/rc.local

– upstart: /etc/init/*.conf

– systemd: /etc/system.conf && /etc/user.conf

20

Как монтируются другие файловые системы?

21

man 5 fstab

22

Разбираем initrd/initramfs

INITRD=/boot/init*$(uname -r)*

file $INITRD

zcat $INITRD | file -

zcat $INITRD | cpio -t

23

Как устроен процесс загрузки?

24

linux/Documentation/x86/boot.txt

25

Как изучать процесс загрузки?

26

python-vm-builder

27

dkms: хороший способ добавлять модули

28

КИТПлан курса

— Операционные системы

— Архитектура ЭВМ

— Устройство GNU/Linux

— Системы хранения данных

— Файловые системы

— Сети и протоколы

— Виртуализация

— Безопасность

Виктор Ашик

Куратор практик

119021, Россия, Москва,ул. Льва Толстого, д. 16.

+7 (495) 739-70-00+7 (495) 739-70-70 — факс

vashik@yandex-team.ru

Recommended