Похожие презентации:
Лек 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. Рынок
78. Итак, 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. «Полнота ядра»
2122. Модульность полного ядра
lsmod22
23. Выводы
ОС — это набор слоёв абстракции между железом иприложениями: от разграничения kernel/user space до
менеджеров ресурсов и системного API. Ядро Linux —
классический пример модульного монолита: базовые
механизмы всегда в памяти, а драйверы подгружаются
динамически через .ko-модули (см. демо lsmod).
23
24. История Linux
Это очень поучительная история о счастливойслучайности, чтении новостей и техническом
творчестве
t.me/ITSMDao
24
25. История Linux Unix
UNIX1969 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.github.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/ITSMDao36
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/ITSMDao42
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
Программное обеспечение