Операционные системы: Linux, macOS, мобильные ОС — Лекция 23 по основам информационных технологий

01

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

$

ДУП.03 Основы информационных технологий

Лекция 23 · 4 академических часа (2 пары)

Операционная система (ОС) — это фундамент, на котором работает весь код. Разработчику недостаточно уметь нажимать кнопки в интерфейсе. Нужно понимать, как устроено ядро, как работают процессы, что такое права доступа и как управлять системой через терминал. Сегодня — технический разбор Linux, macOS и мобильных ОС.

Ядро Linux Терминал macOS Android WSL
Курс 2026 · для специальности «Разработчик ПО»
02

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

Операционная система — это комплекс программ, который управляет ресурсами компьютера (процессором, памятью, дисками, периферией) и предоставляет программам удобный интерфейс для работы с этим железом.

Что делает ОС

  • Управляет процессами: решает, какая программа и когда будет выполняться.
  • Управляет памятью: выделяет каждой программе её кусок ОЗУ и не даёт залезть в чужой.
  • Управляет файлами: организует хранение данных на диске.
  • Управляет устройствами: через драйверы общается с железом.
  • Обеспечивает безопасность: разграничивает доступ пользователей.

Аналогия: ОС — это дирижёр оркестра. Музыканты (программы) играют, но дирижёр решает, кто когда вступает, чтобы получилась музыка, а не хаос.

03

Ядро и пространство пользователя

ОС делится на две главные части:

Ядро (Kernel)

  • Работает с «голым» железом.
  • Имеет максимальные права.
  • Управляет памятью и процессами.
  • Ошибка в ядре → крах всей системы.

Пространство пользователя

  • Здесь работают обычные программы.
  • Ограничены в правах.
  • Не имеют прямого доступа к железу.
  • Ошибка в программе → падает только она.
Для разработчика

Когда программа запрашивает данные с диска или сети, она делает системный вызов (system call). Это переход из пространства пользователя в ядро. Понимание этого важно для оптимизации кода.

04

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

Файловая система — это способ организации данных на накопителе: как хранятся файлы, папки, права доступа, метаданные.

ФСГде используетсяОсобенности NTFSWindowsПрава доступа, журналирование ext4LinuxЖурналирование, стабильность APFSmacOS, iOSШифрование, снапшоты exFATФлешки, SDРаботает на всех ОС
Для разработчика

При переносе файлов между ОС используйте exFAT — её понимают все системы. NTFS на Linux работает только в режиме чтения (без спец. драйверов).

05

Linux: структура файловой системы

В Linux всё — это файл. Даже устройства и процессы. Дерево начинается с корня /.

КаталогЧто хранитсяПример /binОсновные программыls, cat /etcКонфигурацииpasswd, fstab /homeДомашние папки/home/user /varИзменяемые данныелоги, кэш /tmpВременные файлыочищается при ребуте /usrПользовательские программы/usr/bin
# Перейти в домашний каталог cd ~ # Посмотреть содержимое ls -la
06

Права доступа в Linux

Каждый файл имеет владельца и набор прав для трёх категорий: владелец, группа, остальные.

# Вывод ls -l: -rwxr-xr-- 1 user group 1024 Nov 1 file.sh
  • r (read) — чтение.
  • w (write) — запись.
  • x (execute) — выполнение.
# Дать право выполнения chmod +x script.sh # Сменить владельца chown user:group file.txt
Осторожно: команда chmod 777 даёт полный доступ всем — это дыра в безопасности. Никогда не используйте её в продакшене.
07

Процессы: как ОС управляет программами

Процесс — это запущенная программа со своим состоянием: памятью, открытыми файлами, идентификатором (PID).

# Список процессов ps aux # Мониторинг в реальном времени top htop # Убить процесс по PID kill -9 1234
Для разработчика

Если приложение «зависло», не перезагружайте компьютер. Найдите процесс через ps aux | grep имя и убейте через kill -9 PID. Это база.

08

Терминал и bash: базовые команды

КомандаЧто делаетПример lsСписок файловls -la cdСменить каталогcd /var/log catПоказать файлcat file.txt grepПоиск по текстуgrep "error" log.txt mkdirСоздать папкуmkdir project rmУдалитьrm -rf folder cpКопироватьcp a.txt b.txt mvПереместитьmv a.txt /tmp/
Осторожно: rm -rf / удалит всё. Никогда не запускайте команды из интернета, если не понимаете, что они делают.
09

Пакетные менеджеры

В Linux программы устанавливаются через пакетные менеджеры. Это удобно: одна команда — и всё нужное скачано, установлено и настроено.

ДистрибутивМенеджерУстановка Ubuntu, Debianaptsudo apt install git Fedora, RHELdnfsudo dnf install git Arch Linuxpacmansudo pacman -S git macOSHomebrewbrew install git
Для разработчика

Пакетные менеджеры — это не только программы. Через них ставятся библиотеки, компиляторы, базы данных. Освоив apt, вы сэкономите десятки часов.

10

macOS: особенности для разработчика

macOS — это UNIX-подобная ОС на базе ядра Darwin (открытый код). Поэтому здесь есть терминал и почти все команды Linux.

Плюсы

  • Есть терминал (bash/zsh).
  • Работает большинство Linux-утилит.
  • Отличная оптимизация с железом Apple.
  • Стабильность и красивый интерфейс.

Минусы

  • Работает только на технике Apple (официально).
  • Дорого.
  • Некоторые Linux-программы требуют адаптации.
# Homebrew — пакетный менеджер для macOS /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install git node python
11

Мобильные ОС: Android и iOS

Мобильные ОС — это отдельный мир со своими правилами.

ОСОсноваОсобенности AndroidЯдро LinuxОткрытая, много производителей iOSDarwin (как macOS)Закрытая, только Apple
Для разработчика

Android-приложения пишут на Kotlin/Java, iOS — на Swift. Обе ОС используют песочницу (sandbox) — приложение не имеет доступа к чужим данным. Это защита, но и ограничение.

12

Sandbox и разрешения приложений

В мобильных ОС каждое приложение работает в песочнице — изолированной среде. Оно не может просто так прочитать файлы другого приложения или системы.

Разрешения

  • Камера, микрофон.
  • Геолокация.
  • Контакты, звонки.
  • Хранилище.
  • Интернет.
Для разработчика

Каждое разрешение нужно запрашивать у пользователя с объяснением. Если пользователь отказал — приложение должно работать (хоть и с ограничениями). Навязчивые запросы → удаление приложения.

13

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

Что делать, если нужна Linux, а работаете в Windows?

  • Виртуальная машина: VirtualBox, VMware. Запускает полноценную ОС в окне.
  • WSL: Windows Subsystem for Linux. Позволяет запускать Linux прямо в Windows без установки виртуальной машины.
  • Docker: контейнеры с приложениями.
# Установить WSL в Windows (PowerShell от админа) wsl --install # Запустить Ubuntu wsl
Для разработчика

WSL — идеальный вариант для Windows-разработчика. Полноценный Linux-терминал рядом с Windows-приложениями. Не нужно перезагружаться.

14

Дистрибутивы Linux: что выбрать

Linux — это ядро. А дистрибутив — это ядро + программы + менеджер пакетов + оформление.

ДистрибутивДля когоОсобенности UbuntuНачинающиеПростота, много документации DebianСтабильностьОснова Ubuntu, долгие релизы FedoraРазработчикиНовые технологии, dnf Arch LinuxОпытныеПолный контроль, pacman Linux MintПереход с WindowsПохож на Windows

Совет: начните с Ubuntu или Linux Mint. Не бойтесь «сломать» — можно переустановить.

15

Пользователи и группы в Linux

В Linux есть root (суперпользователь) и обычные пользователи. Root может всё. Обычные — только то, что разрешено.

Группы

Пользователи объединяются в группы для удобства управления правами.

# Добавить пользователя в группу sudo usermod -aG docker username # Переключиться на root sudo -i
Правило: не работайте под root постоянно. Используйте sudo только для конкретных действий. Иначе одна ошибка может сломать систему.
16

Сервисы и systemd

В Linux фоновые программы называются сервисами (или демонами). Их управляет systemd.

# Запустить сервис sudo systemctl start nginx # Включить автозапуск sudo systemctl enable nginx # Посмотреть статус sudo systemctl status nginx # Посмотреть логи journalctl -u nginx
Для разработчика

Если ваш сайт или приложение «не работает», первым делом проверьте статус сервиса через systemctl status и логи через journalctl.

17

Логи: где искать проблемы

В Linux логи хранятся в каталоге /var/log.

ФайлЧто внутриКоманда /var/log/syslogСистемные событияtail -f /var/log/syslog /var/log/auth.logВходы и безопасностьgrep "Failed" auth.log /var/log/nginx/Логи веб-сервераcat access.log
# Смотреть логи в реальном времени tail -f /var/log/nginx/error.log # Поиск по логам grep "404" /var/log/nginx/access.log
18

SSH: удалённый доступ к серверу

SSH (Secure Shell) — протокол для безопасного подключения к удалённым серверам.

# Подключение к серверу ssh user@server.com # Копирование файлов scp file.txt user@server:/home/user/ # Синхронизация папок rsync -av /local/ user@server:/remote/
Для разработчика

SSH — обязательный навык. Через него вы подключаетесь к серверам, деплоите проекты, смотрите логи. Ключи SSH (ssh-keygen) безопаснее пароля.

19

Переменные окружения

Переменные окружения — это значения, которые доступны программам и влияют на их работу. Например, PATH (где искать программы), HOME (домашний каталог).

# Посмотреть все переменные env # Посмотреть конкретную echo $PATH # Установить переменную export API_KEY="secret123"
Для разработчика

API-ключи и пароли хранят в переменных окружения (не в коде!). Это основа безопасности приложений. В Docker и на серверах это стандарт.

20

Bash-скрипты: автоматизация

Bash-скрипт — это файл с командами, который можно запустить одной командой.

#!/bin/bash # Скрипт для резервной копии DATE=$(date +%Y-%m-%d) tar -czf backup-$DATE.tar.gz /home/user/documents echo "Бэкап за $DATE готов"
# Сделать скрипт исполняемым chmod +x backup.sh # Запустить ./backup.sh
21

Поиск и фильтрация через grep

grep — одна из самых полезных команд. Ищет строки по шаблону.

# Найти все строки с "error" grep "error" app.log # Игнорировать регистр grep -i "error" app.log # Рекурсивно по папкам grep -r "TODO" src/ # С номерами строк grep -n "exception" app.log
Для разработчика

grep + регулярные выражения — это мощный инструмент поиска по логам и коду. Освоив его, вы будете быстро находить причины ошибок.

22

Пайпы и перенаправление

Пайп (|) передаёт вывод одной команды на вход другой. Перенаправление (>, >>) записывает вывод в файл.

# Найти процессы nginx ps aux | grep nginx # Посчитать количество строк wc -l file.txt # Записать в файл echo "Hello" > file.txt # Дописать в файл echo "World" >> file.txt

Пример из практики: cat access.log | grep "404" | wc -l — считает, сколько раз сервер отдал ошибку 404.

23

Архивация: tar и gzip

Для резервных копий и передачи файлов используют tar (архив) и gzip (сжатие).

# Создать архив tar -czf archive.tar.gz folder/ # Распаковать tar -xzf archive.tar.gz # Посмотреть содержимое tar -tzf archive.tar.gz
ФлагЗначениеЗачем -ccreateСоздать архив -xextractРаспаковать -zgzipСжать -ffileУказать имя файла -vverboseПоказать процесс
24

Мониторинг ресурсов

Когда «всё тормозит», нужно понять, что именно ест ресурсы.

КомандаЧто показываетКогда использовать top / htopПроцессы, CPU, RAMОбщая нагрузка df -hМесто на дискахДиск заполнен du -shРазмер папокЧто занимает место free -hОперативная памятьМало RAM iostatНагрузка на дискДиск тормозит netstat / ssСетевые соединенияПроблемы с сетью
25

sudo и безопасность в Linux

sudo (superuser do) — позволяет обычному пользователю выполнить команду с правами root.

# Установить пакет sudo apt install nginx # Посмотреть, кому можно sudo cat /etc/sudoers
Правило: не давайте sudo всем подряд. Не запускайте неизвестные скрипты от root. Одна ошибка — и система сломана.
26

Сравнение Windows, Linux, macOS

КритерийWindowsLinuxmacOS ОткрытостьЗакрытаяОткрытаяЗакрытая (Darwin открыт) ТерминалPowerShellBash/ZshBash/Zsh ПрограммыВсеСпециализированныеПрофессиональные ИгрыВсеОграниченноОграниченно СерверыМеньшеБольшинствоМеньше

Для разработчика: Linux — лучший выбор для серверной разработки. Windows — универсален с WSL. macOS — оптимален, если работаете с Apple.

27

Кейс: сайт не работает на сервере

Ситуация

Вы задеплоили сайт на сервер, но браузер выдаёт 502 Bad Gateway. Ничего не работает.

Что делать

  1. systemctl status nginx — проверить, запущен ли веб-сервер.
  2. journalctl -u nginx — посмотреть логи сервиса.
  3. tail -f /var/log/nginx/error.log — посмотреть ошибки.
  4. curl localhost:8080 — проверить, отвечает ли приложение.
  5. ss -tulpn | grep 8080 — проверить, слушает ли порт приложение.

Вывод: 502 — проблема не в браузере, а в связке nginx ↔ приложение. Обычно приложение упало или слушает не тот порт.

28

Кейс: кончилось место на диске

Ситуация

Сервер перестал писать логи и работать. Ошибка «No space left on device».

Диагностика

  1. df -h — посмотреть, какой диск заполнен.
  2. du -sh /var/* | sort -h — найти, что занимает место.
  3. find /var/log -name "*.log" -size +100M — найти большие логи.
  4. Очистить старые логи: truncate -s 0 /var/log/syslog.
Для разработчика

Настройте logrotate — утилиту, которая автоматически ротирует и сжимает логи. Иначе сервер «умрёт» от логов.

29

Практическое задание

Задание: выполните на своей ОС (или в WSL):

  1. Откройте терминал.
  2. Выполните uname -a — запишите версию ядра и архитектуру.
  3. Выполните ls -la /home — что видите?
  4. Создайте папку: mkdir test_folder.
  5. Создайте файл: echo "hello" > test_folder/file.txt.
  6. Посмотрите права: ls -la test_folder.
  7. Найдите процессы: ps aux | grep bash.
  8. Посмотрите использование диска: df -h.
  9. Создайте bash-скрипт, который выводит дату и очищает папку /tmp.
30

Итоги лекции

Мы рассмотрели:

  • Что такое ОС и зачем она нужна.
  • Ядро и пространство пользователя.
  • Файловые системы (NTFS, ext4, APFS).
  • Структуру Linux (/) и права доступа.
  • Процессы и управление ими.
  • Терминал и базовые команды.
  • Пакетные менеджеры (apt, dnf, brew).
  • macOS: особенности и Homebrew.
  • Мобильные ОС: Android и iOS.
  • Sandbox и разрешения.
  • Виртуализацию и WSL.
  • Дистрибутивы Linux и выбор.
  • Пользователей и группы.
  • Сервисы и systemd.
  • Логи в Linux.
  • SSH и удалённый доступ.
  • Переменные окружения и bash-скрипты.
  • Поиск через grep и пайпы.
  • Архивацию и мониторинг.
  • Сравнение Windows, Linux, macOS.
  • Кейсы: 502 Bad Gateway и переполнение диска.
Главная мысль

Операционная система — это не «просто интерфейс». Это фундамент, на котором работает весь код. Понимание ядра, терминала и прав доступа отличает новичка от профессионала.

Спасибо за внимание! Вопросы?

Следующая тема — IT-профессионал и карьера в IT.