← К оглавлению урока

📖 Теория: Введение в Linux

⚡ Кратко

UNIX (1970-е, Bell Labs) задал модульный дизайн: утилита + командная оболочка + ядро. В 1983-м Ричард Столлман основал проект GNU — свободные аналоги UNIX-инструментов (bash, gcc, Emacs). В 1991-м студент Линус Торвальдс написал ядро Linux; в 1992-м оно вышло под GNU GPL v2. Дистрибутив = ядро + GNU + программы. Файловая система начинается с /; регистр в именах важен.

  • Ключевые папки: /bin (команды), /etc (конфиги), /home (пользователи), /tmp (временные), /var (логи).
  • File и file — разные объекты в Linux.

История: от UNIX к GNU/Linux

UNIX: модульный фундамент (1970-е)

Системы UNIX появились в 1970-х годах благодаря компании AT&T — проект развивался в исследовательском центре Bell Labs. UNIX задал принципы, на которых построены и современные системы:

  • Модульный дизайн — каждая задача выполняется отдельной небольшой программой (утилитой);
  • Единая файловая система — через неё утилиты взаимодействуют друг с другом;
  • Командная оболочка — интерфейс для запуска утилит и скриптов.
💡 Три ключевых термина
  • Утилита — вспомогательная программа для выполнения специализированных типовых задач (например, ls показывает содержимое каталога и больше ничего).
  • Командная оболочка (shell) — программа-посредник между пользователем и ОС: принимает команды по отдельности или выполняет скрипты — списки команд.
  • Ядро (kernel) — центральная часть ОС, которая даёт приложениям координированный доступ к ресурсам: процессорному времени, памяти, устройствам. Обычно ядро также предоставляет сервисы файловой системы и сетевых протоколов.

GNU: свободные программы (1983–1990)

Проект GNU создал Ричард Столлман 27 сентября 1983 года. Расшифровка рекурсивна: «GNU is Not Unix». Цель — «разработать достаточно свободного ПО, чтобы можно было обойтись без несвободного». К 1990 году были созданы текстовый редактор Emacs, компилятор gcc, отладчик gdb, командная оболочка bash. Проблема одна: свободного ядра не было.

Линус Торвальдс и ядро Linux (1991–1992)

Линус Торвальдс (р. 28 декабря 1969, Хельсинки) в 1991 году, во время учёбы в Хельсинкском университете, начал писать собственное ядро — разочаровавшись в лицензии учебной ОС Minix. Разработка шла сначала на Minix, потом на самом Linux; GNU-утилиты вскоре заменили всё стороннее ПО. В 1992 году ядро вышло под лицензией GNU GPL v2 — последний пробел ОС GNU был закрыт. Эмблемой системы стал пингвин Tux.

Linux сегодня

  • Результат работы тысяч проектов; нет организации-владельца;
  • Монолитное ядро: управляет процессами, сетью, периферией и файловой системой;
  • Драйверы — встроены в ядро или подключаются как модули во время работы.
💡 Терминал — командная строка, где выполняются все команды. В Windows ближайший аналог — PowerShell. Открывается для каждой сессии; при потере соединения история команд теряется.

Дистрибутивы GNU/Linux

Дистрибутив GNU/Linux — ОС на основе ядра Linux, готовая к установке: ядро + утилиты GNU + прикладные программы. Дистрибутивов много, потому что ядро одно, а сборки делают под разные цели.

  • Ubuntu — №1 в рейтингах; легко установить, интуитивно понятна, любимица разработчиков.
  • Linux Mint — на основе Ubuntu/Debian; «современная, элегантная и удобная ОС». Полная поддержка мультимедиа из коробки.
  • OpenSUSE — управляется только сообществом.
  • Debian — «отец-прародитель» семейства дистрибутивов; подходит для серверов и рабочих станций.
  • Arch Linux — для компетентных пользователей; система сборки позволяет настраивать пакеты под себя.
  • Deepin OS — китайский дистрибутив на базе Ubuntu, только для 64-битных систем.
  • Elementary OS (2013) — для новичков; интуитивный и красивый интерфейс.
  • Manjaro OS — упор на удобство, работает «из коробки»; следующая ступень после Elementary.
  • Fedora — «впереди планеты всей» по новым технологиям.
  • Kali Linux — для тестирования на уязвимости; поставляется с набором инструментов. Сложен для новичков.

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

Главное отличие от Windows: программа в Linux распределена по файловой системе. Приложение в Windows лежит в C:\Program Files\Имя; в Linux: исполняемые файлы — в /usr/bin, библиотеки — в /usr/lib, конфигурация — в /etc.

  • Разделитель пути: в Linux — / (прямой слеш), в Windows — \ (обратный).
  • Дисков C: и D: нет: все пути начинаются с /; флешки и разделы монтируются как папки.

Стандартные каталоги (из конспекта лекции)

  • /корень. Изменять файлы прямо в нём может только root. Домашний каталог root — /root, а не /.
  • /bin — пользовательские исполняемые файлы (команды для всех): cat, ls, tail, ps.
  • /sbin — системные исполняемые файлы только для суперпользователя: reboot, fdisk, iptables.
  • /etc — конфигурационные файлы всех программ, скрипты запуска/завершения демонов.
  • /dev — файлы устройств: флешки, клавиатуры, камеры. Все устройства — это файлы (/dev/sda, /dev/tty1).
  • /proc — псевдофайловая система: информация о процессах в реальном времени (/proc/cpuinfo, /proc/meminfo).
  • /var — часто изменяемые файлы:
    • /var/log — логи всех программ;
    • /var/lib — базы данных, пакеты пакетного менеджера;
    • /var/mail — почта сервера;
    • /var/lock — файлы блокировок (ресурс занят другим процессом).
  • /tmp — временные файлы; писать могут все; очищается при перезагрузке. Аналог — Windows\Temp.
  • /usr — программы пользователя: /usr/bin (браузеры, редакторы, плееры), исходники, ресурсы.
  • /home — домашние каталоги пользователей (/home/viktor). Обычно на отдельном разделе — данные не теряются при переустановке системы.
  • /boot — файлы загрузчика системы.
  • /lib — системные библиотеки для программ из /bin и /sbin.
  • /opt — самодостаточные проприетарные программы «в одной папке» (как в Windows). В учебных заданиях — рабочая директория для файлов.
  • /mnt — ручное монтирование разделов администратором.
  • /media — автоматическое монтирование съёмных носителей.
  • /sys — информация о системе и оборудовании.
  • /srv — файлы серверов и сервисов (например, файлы веб-сервера Apache).

Чувствительность к регистру

Linux чувствителен к регистру: Folder, folder и FOLDER — три совершенно разных объекта. Это касается и команд: ls существует, LS — нет.

⚠️ Самая частая ошибка первых дней — привычка из Windows, где регистр не важен. Файл Report.txt командой cat report.txt не откроется. Всегда проверяйте регистр в именах файлов и каталогов.