Введение в ОС Linux
О курсе
Контакты
План
Место Linux на рынке
Рынок
Итак, Linux применяется
Что такое операционная система?
Состав вычислительной платформы
Архитектура процессора
Задачи ОС
Аппаратная поддержка разграничения доступа кода
Типовая архитектура ОС
Типовая архитектура ОС
Типовая архитектура ОС
Типовая архитектура ОС
Типовая архитектура ОС
Архитектура Linux
Зависимость от аппаратуры
«Полнота ядра»
Модульность полного ядра
Выводы
История Linux
История Linux Unix
GNU GNU’s Not UNIX
История Linux
Выводы
Что же такое Linux?
Linux – это ядро ОС
Версии ядра Linux
Ядро
Что в ядре?
Выводы
Что же такое дистрибутив Linux?
Дистрибутив Linux
Модели распространения дистрибутивов Linux
Технические отличия дистрибутивов Linux
Выводы
Что дальше?
Что будет дальше?
Выводы
Выводы

Лек 1. ОС и Linux

1. Введение в ОС Linux

Лекция 1. Обзор предметной области
Artem Beresnev
t.me/ITSMDao
t.me/ITSMDaoChat

2.

Кто я?
• Преподаватель с 20 летним опытом
• к.т.н.
• Победитель конкурса «Лучший преподаватель
ИТМО» 2021 и 2022 года
• Действующий IT-инженер
• Действующий руководитель IT-проектов
• Автор более 25 научных публикаций
• Серийный РОП
@artemberesnev
t.me/ITSMDao
artem.beresnev@itmo.ru
+79213106998
t.me/ITSMDaoChat
2

3. О курсе

• Курс носит вводный характер
• Задача
• сформировать общее представление о Linux как платформе для запуска сервисов
• получить полезные практические навыки которые можно использовать в учебе и
работе
• Практическая часть на Linux (Debian)
• Мы не будем касаться вопросов:
• Разработки ПО
• Управления разработкой ПО
• ITSM
• Нас ждет экзамен
• Будут котики
3

4. Контакты

СЕКРЕТНЫЙ ЧАТ
Для ТОП ИТ ПРО будет отдельный!
4

5. План

• Почему Linux?
• Что такое операционная система?
• Что такое Linux?
• Ядро Linux
• Дистрибутивы Linux
5

6. Место Linux на рынке

Какое место занимает Linux на рынке? Где в
основном используется?
t.me/ITSMDao
6

7. Рынок

7

8. Итак, Linux применяется

• Как основа суперкомпьютеров
• Как серверная платформа для Интернетсервисов
• Как серверная платформа для
корпоративных систем и научных
вычислений
• Как серверная платформа для ИИ
• Для десктопов
• Для встраиваемых систем
2026 год. Linux работает на 100%
суперкомпьютеров из списка TOP500,
включая нового лидера LineShine (Китай,
2,198 петафлопс) на Kylin OS и El Capitan
(США) на TOSS.
8

9. Что такое операционная система?

Что такое операционная система и что она
делает?
t.me/ITSMDao
9

10. Состав вычислительной платформы

• Вычислитель
• ОЗУ
• ПЗУ
• Ввод\вывод
• Шины передачи данных
В реальности все
конечно сложнее
Принстонская архитектура (фон Неймана)
10

11. Архитектура процессора

• Архитектура как идеологический подход к разработке
процессора (CISC, RISC, MISC, VLIW)
• Архитектура как набор команд (ассемблер)
это совместимость с определённым набором
команд, их структуры (система адресации, набор
регистров) и способа исполнения (счётчик команд).
например для 32-битного варианта: i386, i686, для
64-битного варианта: Intel 64, AMD64, amd64,
EM64T, x86-64, ARM7, ARM9.
• Архитектура как это набор свойств и качеств, присущий
одному семейству процессоров одного вендора
(Skylake – процессоры Intel Core 5 и 6 поколений).
11

12. Задачи ОС

• Взаимодействие с оборудованием (Процессор, Прерывания, I/O,
внешними устройствами)
• Управление ресурсами (процессами, памятью, файловыми
системами)
• Защита данных и безопасность
• Сетевое взаимодействие
• API
• Предоставление пользовательского интерфейса
12

13. Аппаратная поддержка разграничения доступа кода

https://habr.com/ru/company/smart_soft/blog/184174/
• Доступ к «железу»:
режим ядра (kernel mode) и пользовательский режим
(user mode)
• Доступ к памяти:
пространство ядра (kernel space) и пространство
пользователя (user space)
13

14. Типовая архитектура ОС

• наличие аппаратных
компонентов
• слои абстракции
• распределение задач
• интерфейсы
14

15. Типовая архитектура ОС

Средства аппаратной поддержки и
машинно-зависимые модули (средства
поддержки привилегированного режима,
распределение памяти, переключение
контекстов процессора и т.п.)
• Чтобы остальной код ядра не знал, x86 перед ним или ARM —
один и тот же планировщик процессов работает одинаково на
ноутбуке и на Raspberry Pi
• Реализует переключение колец защиты (ring 0/3), таблицы
прерываний, работу с MMU; при смене архитектуры
переписывается почти полностью, остальные слои — нет
• https://github.com/torvalds/linux/tree/master/arch
15

16. Типовая архитектура ОС

Базовые механизмы ядра - выполнение наиболее
примитивные операции ядра: как программное
переключение контекстов процессов,
диспетчеризацию прерываний, перемещение
страниц из памяти на диск и обратно и т. п.
• Эта часть кода ядра редко меняется
• Планировщик процессов — до версии ядра 6.5 это был
CFS (Completely Fair Scheduler), с версии 6.6 (октябрь
2023) его заменил EEVDF (Earliest Eligible Virtual Deadline
First)
• uname -r
16

17. Типовая архитектура ОС

Менеджеры ресурсов – абстрагирует для процессов
системы работу ресурсами.
• диспетчеры процессов, ввода-вывода, файловой системы и
оперативной памяти. Модули тесно взаимодействую друг с
другом, например, при создании процесса менеджер
процессов обращается к менеджеру памяти, который
должен выделить процессу определенную область памяти
• менеджеры процессов/памяти/ФС/сети управляют
ресурсами; при смене железа сами менеджеры почти не
меняются — меняется только нижний драйверный слой,
который они вызывают
17

18. Типовая архитектура ОС

Интерфейс системных вызовов - самый
верхний слой ядра, взаимодействует
непосредственно с приложениями и
системными утилитами, образуя
прикладной программный интерфейс
операционной системы (системный API)
через который glibc вызывает ядро
Программисту очень удобно.
strace ls
18

19. Архитектура Linux

Слой из типовой архитектуры ОС
Как реализован в Linux
Аппаратная поддержка /
машинно-зависимые модули
arch/ в исходниках ядра
Device Modules & Drivers
Базовые механизмы ядра
Process Scheduler (CFS/EEVDF)
Kernel Services
Менеджеры ресурсов
Memory, VFS, Network Interface
Kernel Services
Интерфейс системных вызовов
glibc
System Call Interface
(в нашем рассказе не
упоминалось)
Программы user-space:
библиотеки, утилиты, сервисы
19

20. Зависимость от аппаратуры

• Причины аппаратной зависимости
• Архитектура и Набор команд
• Разрядность 16\32\64 в далекой перспективе 128
• Использование аппаратных функций безопасности и
распределения ресурсов
• Одно-многопроцессорные системы
• Реализация разграничения кода на аппаратном уровне
• Как обеспечить переносимость
• Архитектура ОС
• Перекомпиляция кода, как компонентов ОС, так и приложений
20

21. «Полнота ядра»

21

22. Модульность полного ядра

lsmod
22

23. Выводы

ОС — это набор слоёв абстракции между железом и
приложениями: от разграничения kernel/user space до
менеджеров ресурсов и системного API. Ядро Linux —
классический пример модульного монолита: базовые
механизмы всегда в памяти, а драйверы подгружаются
динамически через .ko-модули (см. демо lsmod).
23

24. История Linux

Это очень поучительная история о счастливой
случайности, чтении новостей и техническом
творчестве
t.me/ITSMDao
24

25. История Linux Unix

UNIX
1969 Bell Labs, Деннис Ричи, Кен Томпсон. PDP-7 (1969)
1971 PDP-11 первая UNIX на языке Си
AT&T System V vs BSD
http://www.levenez.com/unix/history.html#22
Д. Ричи и К. Томпсон
Основные идеи:
• Ключевые компоненты процесс и файл
• Компонентная архитектура – одна программа – одна
функция
• Минимизация ядра
• Максимально абстрагирование от оборудования
• Все файл
PDP-7
t.me/ITSMDao
25

26. GNU GNU’s Not UNIX

1983 основание проекта
Ричард Столлмэн
GNU toolchain
GNU Emacs
GNU Linux
26

27. История Linux

• 1988 год Ларс Вирзениус, работая на компьютере с Ultrix
опечатался и вместо rm набрал rn и попал в UseNet…
• Линус Торвальдс и Ларс Вирзениус проходят курс
программирования на Си …
• 1990 Торвальдс покупает себе комп (386 / Minix) и
начинает писать собственный терминал…
• 25 августа 1991 года – первое сообщение от Торвальдса о
бесплатной ОС.
• 17 сентября 1991 / Linux 0.0.1 / POSIX
• FREAX или Linux?
• Март 1994 Linux 1.0 под лицензией GNU
Линус Бенедикт Торвальдс
1996 Ларри Юинг и Алан Кокс
t.me/ITSMDao
27

28. Выводы

Linux родился на пересечении трёх факторов: идей
Unix (простота, «всё файл»), лицензии GNU и личного
студенческого проекта, который перерос в глобальное
сообщество. Путь от хобби-проекта Торвальдса (1991)
до полноценной ОС под GPL (Linux 1.0, 1994) занял
всего три года.
28

29. Что же такое Linux?

Что такое Linux? А что такое дистрибутив Linux?
В чем разница?
t.me/ITSMDao
29

30. Linux – это ядро ОС

• Linux – это ядро!
• uname
• /boot/vm*
• www.kernel.org
• Управление: Линус Торвальдс – Ответственные за версию ядра –
Мейнтейнеры модулей – Сообщество
• Тоталитарная демократия
• Любые изменения проходят монго уровней тестирования.
Сообщество активно участвует в этом процессе, выявляя и исправляя
ошибки.
• Ядро Linux выпускается в виде стабильных версий каждые несколько
месяцев. Между основными версиями существуют тестовые (релизкандидаты), которые помогают выявить и устранить ошибки до
выхода финальной версии.
• Система контроля версий - Git.
• Кто за все платит? Linux Foundation
t.me/ITSMDao
30

31. Версии ядра Linux

https://en.wikipedia.org/wiki/Linux_kernel_version_history
Цифра
Название
Что меняется
Как часто
A
Major
Крупная веха, скорее символическая (Линус меняет,
когда «надоело считать B»)
Раз в несколько лет
B
Minor
Реальные новые функции: новые драйверы, новый
планировщик, поддержка нового железа
Каждые ~9-10 недель, при
каждом релизе kernelnewbies
C
Patch
Только исправления багов и уязвимостей, никаких
новых функций
Постоянно, несколько раз в
неделю
t.me/ITSMDao
31

32. Ядро

https://makelinux.git
hub.io/kernel/map/
t.me/ITSMDao
32

33. Что в ядре?

Содержит: Process Scheduler - планировщик
процессов (делит CPU), Memory Manager система управления памятью - формирует из
оперативной памяти и свопа виртуальную память,
делит ее на kernel и user space, Inter-Process
Communication - механизмы межпроцессного
взаимодействия, Virtual File System - виртуальная
файловая система, Network Interface - сетевая
подсистема - реализует концепции сетевых
интерфейсов и стеков сетевых протоколов
33

34. Выводы

Linux — это только ядро, а не вся операционная система:
разработкой руководит сообщество через git и Linux Foundation, а
версии A.B.C отражают major/minor/patch изменения, а не
привязку к календарным годам. Внутри ядра работают ключевые
подсистемы — планировщик, менеджер памяти, VFS и сетевой
стек, — которые взаимодействуют с программами через
системные вызовы (см. демо strace ls).
34

35. Что же такое дистрибутив Linux?

Что такое дистрибутив Linux? Почему их так
много?
t.me/ITSMDao
35

36. Дистрибутив Linux

t.me/ITSMDao
36

37. Модели распространения дистрибутивов Linux


Выпуски с фиксированными релизами (Fixed Release), новые версии через
определенные промежутки времени. Больше стабильности (Ubuntu, выпуски
которого происходят каждые шесть месяцев с дополнительным долгосрочным
выпуском (LTS) каждые два года)
• Непрерывные релизы (Rolling Release). Обновления происходят постоянно.
Пользователи получают новейшие версии программного обеспечения (Arch
Linux, CentOS 9, Fedora)
• Гибридные релизы (Hybrid Release). Выпускаются регулярно обновляемые пакеты
в пределах стабильного релиза (Debian с тремя ветками Stable, Testing и
Unstable).
• Дистрибутивы с поддержкой корпоративного уровня (Enterprise Release).
Принцип Fixed Release, но с длительными периодами поддержки (Red Hat
Enterprise Linux (RHEL) и SUSE Linux Enterprise Server (SLES).
37

38. Технические отличия дистрибутивов Linux

• Формат пакетов RPM, APT, SNAP и др.
• Конфигурационные файлы
• Набор пакетов
• Окружения GUI
38

39. Выводы

Дистрибутив — это ядро плюс набор пакетов,
конфигураций и модель обновлений (fixed, rolling,
hybrid, enterprise); дистрибутивы отличаются не
функциональностью ядра, а подходом к сборке и
поддержке системы. Выбор дистрибутива на практике
определяется требованиями к стабильности и частоте
обновлений, а не философией (например, Debian
stable vs Arch rolling).
39

40. Что дальше?

Это очень интересно, но ничего не понятно. Что
дальше?
t.me/ITSMDao
40

41. Что будет дальше?

Ближайшие планы:
На лекциях познакомимся с основами bash,
приемами эффективной работы в терминале.
На практике – обустроим
знакомиться с Linux
стенд
и
начнем
41

42. Выводы

t.me/ITSMDao
42

43. Выводы

• Без Linux никуда
• Задача ОС - реализация нескольких уровней абстракции для пользователя и
пользовательских программ
• Есть kernel и user space
• Ядра ОС бывают разные, у Linux – монолитное, с выгружаемыми модулями
• Linux – это ядро вокруг строится дистрибутив
Фундаментальная теория:
Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. — СПб.: Питер, 2019/2024. — 1120 с.
Прикладные вопросы:
Негус К. Библия Linux. 10-е изд. — СПб.: Питер, 2022. — 928 с
Интернет ресусры:
kernel.org, kernelnewbies.org/LinuxVersions, makelinux.github.io/kernel/map, levenez.com/unix.
43
English     Русский Правила