ДУП.03 Основы информационных технологий
Лекция 23 · 4 академических часа (2 пары)
Операционная система (ОС) — это фундамент, на котором работает весь код. Разработчику недостаточно уметь нажимать кнопки в интерфейсе. Нужно понимать, как устроено ядро, как работают процессы, что такое права доступа и как управлять системой через терминал. Сегодня — технический разбор Linux, macOS и мобильных ОС.
Операционная система — это комплекс программ, который управляет ресурсами компьютера (процессором, памятью, дисками, периферией) и предоставляет программам удобный интерфейс для работы с этим железом.
Аналогия: ОС — это дирижёр оркестра. Музыканты (программы) играют, но дирижёр решает, кто когда вступает, чтобы получилась музыка, а не хаос.
ОС делится на две главные части:
Когда программа запрашивает данные с диска или сети, она делает системный вызов (system call). Это переход из пространства пользователя в ядро. Понимание этого важно для оптимизации кода.
Файловая система — это способ организации данных на накопителе: как хранятся файлы, папки, права доступа, метаданные.
При переносе файлов между ОС используйте exFAT — её понимают все системы. NTFS на Linux работает только в режиме чтения (без спец. драйверов).
В Linux всё — это файл. Даже устройства и процессы. Дерево начинается с корня /.
Каждый файл имеет владельца и набор прав для трёх категорий: владелец, группа, остальные.
chmod 777 даёт полный доступ всем — это дыра в безопасности. Никогда не используйте её в продакшене.
Процесс — это запущенная программа со своим состоянием: памятью, открытыми файлами, идентификатором (PID).
Если приложение «зависло», не перезагружайте компьютер. Найдите процесс через ps aux | grep имя и убейте через kill -9 PID. Это база.
rm -rf / удалит всё. Никогда не запускайте команды из интернета, если не понимаете, что они делают.
В Linux программы устанавливаются через пакетные менеджеры. Это удобно: одна команда — и всё нужное скачано, установлено и настроено.
Пакетные менеджеры — это не только программы. Через них ставятся библиотеки, компиляторы, базы данных. Освоив apt, вы сэкономите десятки часов.
macOS — это UNIX-подобная ОС на базе ядра Darwin (открытый код). Поэтому здесь есть терминал и почти все команды Linux.
Мобильные ОС — это отдельный мир со своими правилами.
Android-приложения пишут на Kotlin/Java, iOS — на Swift. Обе ОС используют песочницу (sandbox) — приложение не имеет доступа к чужим данным. Это защита, но и ограничение.
В мобильных ОС каждое приложение работает в песочнице — изолированной среде. Оно не может просто так прочитать файлы другого приложения или системы.
Каждое разрешение нужно запрашивать у пользователя с объяснением. Если пользователь отказал — приложение должно работать (хоть и с ограничениями). Навязчивые запросы → удаление приложения.
Что делать, если нужна Linux, а работаете в Windows?
WSL — идеальный вариант для Windows-разработчика. Полноценный Linux-терминал рядом с Windows-приложениями. Не нужно перезагружаться.
Linux — это ядро. А дистрибутив — это ядро + программы + менеджер пакетов + оформление.
Совет: начните с Ubuntu или Linux Mint. Не бойтесь «сломать» — можно переустановить.
В Linux есть root (суперпользователь) и обычные пользователи. Root может всё. Обычные — только то, что разрешено.
Пользователи объединяются в группы для удобства управления правами.
sudo только для конкретных действий. Иначе одна ошибка может сломать систему.
В Linux фоновые программы называются сервисами (или демонами). Их управляет systemd.
Если ваш сайт или приложение «не работает», первым делом проверьте статус сервиса через systemctl status и логи через journalctl.
В Linux логи хранятся в каталоге /var/log.
SSH (Secure Shell) — протокол для безопасного подключения к удалённым серверам.
SSH — обязательный навык. Через него вы подключаетесь к серверам, деплоите проекты, смотрите логи. Ключи SSH (ssh-keygen) безопаснее пароля.
Переменные окружения — это значения, которые доступны программам и влияют на их работу. Например, PATH (где искать программы), HOME (домашний каталог).
API-ключи и пароли хранят в переменных окружения (не в коде!). Это основа безопасности приложений. В Docker и на серверах это стандарт.
Bash-скрипт — это файл с командами, который можно запустить одной командой.
grep — одна из самых полезных команд. Ищет строки по шаблону.
grep + регулярные выражения — это мощный инструмент поиска по логам и коду. Освоив его, вы будете быстро находить причины ошибок.
Пайп (|) передаёт вывод одной команды на вход другой. Перенаправление (>, >>) записывает вывод в файл.
Пример из практики: cat access.log | grep "404" | wc -l — считает, сколько раз сервер отдал ошибку 404.
Для резервных копий и передачи файлов используют tar (архив) и gzip (сжатие).
Когда «всё тормозит», нужно понять, что именно ест ресурсы.
sudo (superuser do) — позволяет обычному пользователю выполнить команду с правами root.
Для разработчика: Linux — лучший выбор для серверной разработки. Windows — универсален с WSL. macOS — оптимален, если работаете с Apple.
Вы задеплоили сайт на сервер, но браузер выдаёт 502 Bad Gateway. Ничего не работает.
systemctl status nginx — проверить, запущен ли веб-сервер.journalctl -u nginx — посмотреть логи сервиса.tail -f /var/log/nginx/error.log — посмотреть ошибки.curl localhost:8080 — проверить, отвечает ли приложение.ss -tulpn | grep 8080 — проверить, слушает ли порт приложение.Вывод: 502 — проблема не в браузере, а в связке nginx ↔ приложение. Обычно приложение упало или слушает не тот порт.
Сервер перестал писать логи и работать. Ошибка «No space left on device».
df -h — посмотреть, какой диск заполнен.du -sh /var/* | sort -h — найти, что занимает место.find /var/log -name "*.log" -size +100M — найти большие логи.truncate -s 0 /var/log/syslog.Настройте logrotate — утилиту, которая автоматически ротирует и сжимает логи. Иначе сервер «умрёт» от логов.
Задание: выполните на своей ОС (или в WSL):
uname -a — запишите версию ядра и архитектуру.ls -la /home — что видите?mkdir test_folder.echo "hello" > test_folder/file.txt.ls -la test_folder.ps aux | grep bash.df -h./tmp.Мы рассмотрели:
Операционная система — это не «просто интерфейс». Это фундамент, на котором работает весь код. Понимание ядра, терминала и прав доступа отличает новичка от профессионала.
Спасибо за внимание! Вопросы?
Следующая тема — IT-профессионал и карьера в IT.