Uploaded by nikolas

Знакомство с Linux

advertisement
Основы ОС Linux
Развенчивая мифы, открываем глаза…
Малинский Николай Михайлович
Главный специалист отдела ИТ
Цели семинара
• Ответить на
работаем»
вопрос
«с
чем
мы
• Познакомиться с Unix-way концепцией
• Посмотреть ключевые
работы с Linux
особенности
• Пробудить желание изучения Linux
… и может быть вы даже сможете
полюбить
«Философия Linux — «смейся в лицо опасностям». Упс. Не то. «Делай это сам.»
Линус Торвальдс
2
UNIX – GNU - Linux
Linux
свободно
распространяемое
ядро
операционной системы (ОС) созданное Линусом
Торвальдсом, который был вдохновлён проектом
GNU, который вдохновился Unix.
GNU - GNU is Not Unix (GNU не Юникс), проект
Ричарда
Столлмана
по
созданию
свободно
распространяемой
операционной
системы.
Манифест GNU лёг в основу свободной лицензии
GPL.
Unix - закрытая (проприетарная) операционная
система разработанная в 1969 году AT&T – Bell
Laboratories.
GNU/Linux – приложения GNU + ядро Linux
Приемы работы в Unix отличаются от приемов
работы в Windows. Unix – это не только
операционная система, это еще и идеология
работы с компьютером.
3
Что общего?
4
Позволяют попасть из точки «А» в точку «Б»
Linux не Windows. Даже если Linux сделать на 100% визуально похожим на Windows – это не будет
полным аналогом. Основной функционал, который нужен 90% пользователей, реализован, нужное ПО
есть, но на 100% удовлетворить потребности всех пользователей на данный момент невозможно...
… в силу того, что
Unix – был рассчитан на профессионалов
Linux – был создан для энтузиастов
Поэтому программы, необходимые для работы пользователей писались для Windows.
5
Кроме этого эти ОС предназначались для выполнения разных задач.
Наследие UNIX
UNIX
характеризуются
модульным
дизайном, в котором каждая задача
выполняется
отдельной
утилитой,
взаимодействие осуществляется через
единую файловую систему, а для работы
с утилитами используется командная
оболочка.
одна задача – одна программа . В Unix не принято делать
комбайны для выполнения "сразу всего". Программа делается
таким образом, чтобы она могла выполнять одно простое
действие, но выполняла его хорошо.
есть множество путей решения. Для решений той или иной
комплексной задачи каждый может выбирать свой набор
простых компонентов для ее решения.
все есть файл . Самая замечательная концепция в unix.
Действительно, в Unix все представлено в виде файлов –
программы, настройки, системные данные и даже
устройства. И с устройствами можно работать как с простыми
файлами.
6
История развития
1965 - появление PDP-7 (мини-компьютер, производившийся Digital Equipment
Corporation)
1969 - Кен Томпсон написал первую версию ОС UNIX на языке ассемблера
PDP-7, позже названную Unics (потом преобразованную в UNIX)
1971 - появление Version 1 Unix
В 1978 году - первый раскол, появление по лицензионным соображениям, BSD
(Berkeley Software Distribution)
1980-е окончательное разделение: BSD (Беркли) и System V (AT&T)
Появление Linux и MacOS
1991 - финский студент Линус Рорвальдс пишет ядро ОС (на
основе Minix – ограниченном аналоге Unix для ПК). Новая ОС
Linux включает некоторые утилиты из проекта GNU, к проекту
подключаются другие разработчики.
1994* – первая версия Linux 1.0
2000 - Apple выпускает ОС Darwin в основе которой в т.ч.
FreeBSD (свободная реализация BSD).
7
* Windows 1.0 появилась в 1985
На текущий момент…
Tux (Такс) — официальный талисман Linux, созданный
в 1996 году Ларри Юингом. Это пухлый пингвин,
выглядящий сытым и довольным. Идею использовать
пингвина в качестве талисмана Linux выдвинул
создатель ядра Линус Торвальдс. Название TUX (Такс)
означает «(T)orvalds (U)ni(X)».
Linux = ядро ОС - тысячи команд разработки (или индивидуальные программисты), коммерческие и
свободно распространяемые дистрибутивы и системы, со своими стандартами, точками развития,
идеологией и логотипами.
Linux – это не одна ОС (да и не ОС* вообще!), под которую «подстраиваются все остальные» и не
компания со штатными программистами.
Поэтому, в отличии от Windows нельзя всё «свалить на Microsoft» – каждый проект отвечает сам за себя и,
как правило, работает не за деньги.
*Операционная система (ОС) — комплекс взаимосвязанных программ, предназначенных для управления
ресурсами компьютера и организации взаимодействия с пользователем.
8
Дистрибутивы Linux
• Есть огромное количество
различных дистрибутивов (каждый
может написать свой Linux):
MintLinux, SUSELinux, Mandriva
Linux, Fedora, KaliLinux, ArchLinux,
AltLinux, Runtu, Gentoo и другие.
• Изначально всё
компилировалось (создавалось)
непосредственно на каждом
компьютере из исходных кодов отсюда проблемы с
зависимостями, переносимостью,
обновлением и удалением.
• На смену пришли пакеты "готовые" программы и системы
контроля зависимостей.
Вот это уже ОС в полном смысле слова!
Astra Linux
9
• Большинство современных дистрибутивов основано на двух ветках:
Red Hat | Debian
• Главной особенностью является система распространения и
управления ПО (пакетами), графическая среда, а так же наборы
утилит, идущих в комплекте.
Red Hat (компания) - возникла в 1995 году. В 2018 году куплена IBM за 34 млрд $. Red Hat Enterprice Linux
(RHEL) - коммерческий проект, распространяемый по подписке. Свободная версия CentOS. Система
управления пакетами - RPM (RPM Package Manager).
Debian – берёт начало в 1993 году. Название «Debian» составлено из имён основателя проекта Иана Мёрдока
(Ian Murdock) и его жены Дебры Линн (Debra Lynn).
• Самое большое хранилище пакетов. Наибольший вклад в развитие свободного ПО. Самый успешный
дистрибутив для домашнего использования - Ubuntu.
• Основной способ распространения пакетов - пакеты deb и менеджер пакетов APT.
• На текущий момент более 59 000 пакетов (готовых программ).
10
Astra Linux — Операционная Система на базе ядра Linux и системы управления пакетами
APT.
Дистрибутив основан на ветке Debian Linux.
11
От истории…
К практике!
Загрузчик Linux
GRUB2 - наиболее современный
загрузчик ядра операционной системы
(можно выбрать какое ядро загружать и в
общем случае это не скажется на
установленных программах и
пользовательском окружении)
После загрузки ядра происходит
инициализация уровней выполнения
программ
Далее программы начинают выполнение
в зависимости от уровня и заранее
написанного сценария для каждой
программы
13
Основные системные утилиты
Лирическое отступление…
когда-то давно общение пользователей с
компьютерами осуществлялось по средствам
терминала - устройств ввода-вывода
информации.
В основе Linux - ядро, драйвера и утилиты,
доступ к которым осуществляется по средству
эмуляции терминала (входа в консоль).
Консоль (или терминал) - не равно
командная строка!
Консоли можно переключать, выводит
информацию на разные консоли, производить
вычисления под разными консолями.
bash - командный интерпретатор (оболочка), который
переводит команды из консоли (скриптов) на
машинный язык.
Переключение осуществляется сочетанием
CTRL + ALT + F(1-12)
F7 – по умолчанию графическая консоль
14
Графическая подсистема
Графическая подсистема в Linux – набор
приложений и утилит отделённых от ядра
системы.
Сервера, обслуживающие Internet,
выполняющие маршрутизацию и выполняющие
другие специфические функции не имеют
графического интерфейса (но его всегда можно
поставить) и выполняют свою работу на 100%.
Xorg - свободная реализация X Window System
(X11 или X), основная графическая подсистема
Metacity, kwin, XCFE, Fly-wm - менеджер окон (не
консолей)
GNOME, KDE, Fly - графические среды
15
Основные консольные команды (программы)
cd – смена текущего каталога
cat - просмотр содержимого файла
ls - просмотр содержимого каталога
mkdir - создание каталога
touch - создание файла
cp - копирование файлов или каталогов
mv - перемещение файлов или каталогов
rm - удаление файлов
rmdir - удаление каталогов
man – подробная документация обо всём
chmod - смена атрибутов и прав доступа файла
или каталога
nano - простой и удобный консольный текстовый редактор
chown - смена владельца файла или каталога
su - смена пользователя в текущем сеансе (в консоли)
ifconfig - просмотр сведений о сети
passwd - смена пароля текущего пользователя
tar и gzip - работа с архивами и сжатием
sudo – выполнение команды от имени другого пользователя
(без указания пользователя - от имени root)
ps – показать список процессов
kill – завершение работы процесса
mc - файловый менеджер
16
Файловая система Linux
• Нет деления на разделы (диски). Вся
файловая система представлена в
виде дерева каталогов.
• Корневой каталог - это уровень
файловой системы, выше которого
по дереву каталогов подняться
невозможно.
• Для подключения любого устройства
к файловой системе используется
так называемая точка
монтирования – каталог, все
вложенные уровни которого
являются файловой системой на
устройстве-носителе.
Хочешь с чем-то поработать – сначала смонтируй это!
17
Имя каталога
/bin
Описание
в этом каталоге находятся основные исполняемые файлы, жизненно необходимые для
функционирования системы
/boot
содержит ядро операционной системы и карты загрузки, а также конфигурационные файлы загрузчиков (GRUB)
/dev
/etc
/home
/lib
/lost+found
/media
содержит файлы, которые являются интерфейсом с периферийными устройствами
содержит основные файлы настроек приложений Linux
содержит домашние папки пользователей
содержит основные библиотеки, необходимые для нормальной работы системы
информация, восстановленная при проверке файловой системы на наличие ошибок
точки монтирования отключаемых устройств (usb-диски, CD, floppy)
/mnt
точки монтирования ISO-образов, сетевых файловых систем, других постоянных файловых систем
/opt
альтернатива usr, для коммерческого ПО или ПО, не входящего в основной дистрибутив
/proc
внутри этого каталога находится виртуальная файловая система proc, создаваемая ядром Linux "на лету".
Содержит общую информацию о системе и подробную о процессах.
/root
/sbin
/srv
/sys
домашний каталог пользователя root
утилиты суперпользователя
файлы, выкладываемые для доступа всевозможных внешних служб (например , tftp )
внутри этого каталога также находится виртуальная файловая система, только она содержит подробную
информацию о процессах
/tmp
в этом каталоге находятся временные файлы, используемые запущенными в данный момент процессами
/usr
/var
программы, библиотеки и другие данные пользовательских приложений
содержащий файлы, которые подвергаются наиболее частому изменению
18
Основные конфигурационные файлы
Путь к файлу
Описание
/etc/hostname
в этом файле содержится имя хоста, файл будет прочитан во время загрузки системы и указанное имя
компьютера установится в системе.
/etc/hosts
позволяет задавать псевдонимы для различных сетевых узлов. Таким образом, компьютер не
обращается к DNS для получения IP домена, а берет его из этого файла
/etc/passwd
содержит список всех зарегистрированных в системе пользователей, а также дополнительные настройки
для них, например, оболочку, дату смены пароля и дату отключения аккаунта, кроме самого пароля
/etc/resolv.conf
содержит список DNS серверов
/etc/fstab
определяет, где будут смонтированы все доступные системе разделы диска
/etc/hosts.deny
перечисленные в этом файле удалённые хосты лишены доступа к машине
/etc/samba/smb.conf
файл настройки Samba
/etc/krb5.cfg
файл настроек Kerberos аутентификации
/etc/cups/printers.conf
файл с настройками принтеров
19
Процессы и демоны
Процесс – совокупность программного кода и
данных, загруженных в память ЭВМ
Существует всего 3 состояния, в которых
может находиться процесс:
• Работающий процесс – в данный момент
код этого процесса выполняется.
• Спящий процесс – в данный момент код
процесса не выполняется в ожидании какого
либо события (нажатия клавиши на
Процессы, не привязанные к какому-то конкретному терминалу
клавиатуре, поступление данных из сети и
(и сеансу) называются «демонами» (daemons).
т.д.)
• Процесс-зомби – сам процесс уже не
существует, его код и данные выгружены из
оперативной памяти, но запись в таблице
процессов остается по тем или иным
причинам.
Каждый процесс имеет свой PID
(идентификатор процесса) и PPID
(идентификатор родительского процесса)
Демон – аналог службы в MS Windows.
Демон напрямую не взаимодействует с пользователем,
управление осуществляется через управляющие программы.
Работают автономно получая данные от других демонов или
процессов, выполняют операции и передают результаты
вычислений запрашивающим процессам или другим демонам.
20
Запуск приложений Windows
Wine - это инструмент, который позволяет
пользователям Linux запускать приложения и игры,
созданные для операционной системы Windows.
• Название W.I.N.E. - рекурсивный акроним и
расшифровывается «Wine Is Not Emulator» «W.I.N.E. - это не эмулятор».
• Имеется в виду, что Wine — это не эмулятор
компьютера или виртуальная машина, как,
например, VirtualBox и другие подобные им.
Вместо этого Wine — это альтернативная,
свободная реализация Windows API.
• Позволяет устанавливать, настраивать и
работать с приложениями Windows
• Требует настройки для каждого пользователя
21
Немного статистики
Веб-серверы
В сегменте РуНета
23
24
Доля рынка в РФ среди отечественных
разработчиков ОС
На 2021 год
25
В заключении
Будем учится вместе,
нарабатывать экспертизу в
целом новом мире
свободного ПО!
27
Спасибо
за внимание
Малинский Николай Михайлович
Главный специалист отдела ИТ
Download