Upload
yaevents
View
2.290
Download
3
Embed Size (px)
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: <[email protected]>
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 ([email protected])
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 — факс