
- •Список тем к курсу Red Hat Enterprise Linux
- •Уровни работы ос: уровень ядра и пользователя
- •Назначение и функции ядра ос и системные компоненты (модули ядра, библиотеки и драйвера)
- •Файловая система как способ организации данных на диске
- •Назначение и содержимое супер-блока
- •Индексный узел (I-node). Файлы и каталоги.
- •Жесткие (hard) и символные (symbolic) ссылки
- •Файлы устройств
- •Виртуальная файловая система (vfs): назначение и организация
- •Дерево каталогов: корень и стандартные папки. Содержимое и назначение стандартных каталогов
- •Виды устройств: символьные, блочные. Стандартные устройства: console, null, random, stdin, stdout, stderr
- •Монтирование и работа с mount, umount, fstab
- •Страничная организация памяти и виртуальная память процессов
- •Процесс и контекст процесса: pid, ppid, process state, uid, priority. Потоки
- •Механизм создания процессов и потоков (функция fork)
- •Разделяемая память
- •Переменные окружения
- •Сигналы
- •Shell: назначение, приглашение
- •Shell: логические функции и спец. Символы &&, ||. Возвращаемые программами значения
- •Пользователи и группы. Uid, gid, euid, основная группа в которую входят пользователи.
- •Безопасность в Linux. Права доступа к файлам.
- •Авторизация и аутентификация. Процесс входа пользователя в систему.
- •Пользователь root
- •Конфигурационные файлы. Примеры, формат и назначение.
- •Системные службы (демоны): локальные и сетевые
- •Службы syslog и cron
- •Сетевая подсистема Linux. Сетевой интерфейс, сокеты, стек tcp/ip. Службы dns, dhcp. Файлы hosts, resolv.Conf и настройки сетевых адаптеров. Маршрутизация.
- •Работа со справкой: справка самих команд (вызов с аргументов --help), работа с man, info и whatis
- •Работа с текстовым редактором VI
- •Процесс загрузки ос. Mbr, Загрузочные скрипты, загрузчик, уровни загрузки.
- •Программа init, inittab и другие настройки загрузки.
- •Команды ls, cd, cp, mv, rm, ln, touch, cat, find, mkdir, tar gzip
- •Команды , echo, more, less, tail, head, file
- •Команды useradd, userdel, groupadd, groupdel, usermod, passwd, groupmod
- •Команды ps, top, nice, kill, killall
- •Команды chmod, chown, chgrp
- •Команды ifconfig, ping, route, netstat, traceroute
Работа со справкой: справка самих команд (вызов с аргументов --help), работа с man, info и whatis
whatis выводит список кратких описаний объектов с именами, включающими искомое слово
Больше всего полезной информации содержится в страницах руководства, для краткости мы будем называть их просто «руководство». Каждая страница посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства, нужно дать команду системе man объект
Другой источник информации о UNIX (а точнее, в UNIX-подобных системах, базирующихся на программном обеспечении от GNU) и составляющих ее программах — справочная подсистема info. Страница руководства, несмотря на обилие ссылок различного типа, остается «линейным» текстом, структурированным только логически. Документ info структурирован прежде всего топологически — это настоящий гипертекст, в котором множество небольших страниц объединены в дерево. В каждом разделе документа info всегда есть оглавление, из которого можно перейти сразу к нужному подразделу, откуда всегда можно вернуться обратно. Кроме того, info-документ можно читать и как непрерывный текст, поэтому в каждом подразделе есть ссылки на предыдущий и последующий подразделы.
В программах для UNIX параметры-модификаторы принято называть ключами (а также опциями и иногда флагами). Для формата ключей нет жёсткого стандарта, однако существуют договорённости, нарушать которые не принято. Однобуквенные ключи должны начинаться с символа «-» (как -h), такие ключи можно объединять: du -s -h и du -sh эквивалентны. Другой вид ключей — полнословные — начинается с двух символов «-» (например, --help, который чаще всего выдаёт подсказку).
Работа с текстовым редактором VI
vi /file_folder/filename - открыть файл в редакторе vi
vi /file_folder/filename ++25 - открыть файл в редакторе vi и перейти к строке 25.
i - включить режим внесения зменений
Esc - выйти из данного режима
:w Enter - сохранить внесенные изменения.
:q! Enter - выйти без сохранения изменений
:wq Enter - сохранить внесенные изменения и выйти.
dd - удалет строку на которой находится курсор
x - удалет символ на котором находится курсор
Процесс загрузки ос. Mbr, Загрузочные скрипты, загрузчик, уровни загрузки.
Загрузку операционной системы можно разделить на несколько этапов. Начальный этап загрузки не зависит от того, какая операционная система установлена на компьютере, он в первую очередь связан с особенностями архитектуры используемого компьютера. Затем следуют этапы загрузчиков, которые также могут не относиться к определённым операционным системам, после чего инициализируется ядро операционной системы и производятся специфические только для этой ОС операции.
Рассмотрим загрузку операционной системы UNIX как следующую последовательность этапов
досистемный загрузчик
Как правило, сразу после включения питания программа ПЗУ BIOS проводит тестирование оборудования, затем запускается досистемный загрузчик.
Задача этого этапа — определить (возможно, с помощью пользователя), с какого устройства будет идти загрузка, загрузить оттуда специальную программу-загрузчик и запустить её. Например, выяснить, что устройство для загрузки — жесткий диск, считать самый первый сектор этого диска и передать управление программе, которая находится в считанной области.
загрузчик первого уровня
Загрузчик первого уровня занимает обычно не более одного сектора в самом начале диска — в его загрузочной записи. Загрузочная запись диска (Master Boot Record) — первый сектор диска, в котором хранится таблица разделов и код системного загрузчика.
Ядро операционной системы имеет довольно сложную структуру — а значит, и непростой способ загрузки; оно может быть довольно большим и может располагаться в произвольной област диска, подчиняясь законам файловой системы (например, состоять из нескольких частей, разбросанных по диску). Учесть все это первичный загрузчик не в состоянии, поэтому его задача — определить, где на диске находится загрузчик второго уровня, загрузить его в память и передать ему управление.
загрузчик второго уровня
Вторичный загрузчик — уже более сложная программа с интерфейсом пользователя, который даёт возможность выбирать операционную систему или параметры загрузки ядра. Чтобы продолжить загрузку, необходимо иметь доступ к образу ядра, поэтому зачастую в код загрузчика включается поддержка файловых систем. Более простые загрузчики в процессе предварительной установки сохраняют адреса всех блоков диска, в которых располагается файл с образом ядра.
В любом случае вторичный загрузчик читает образ ядра в определённый адрес памяти и передаёт туда управление.
Большинство операционных систем имеют собственные загрузчики первого и второго уровней. Однако существуют и универсальные загрузчики, не привязанные к конкретной операционной системе, например GRUB.
инициализация ядра операционной системы
Как мы уже выяснили ранее, ядро — очень сложная программа, взаимодействующая с различным оборудованием, поэтому прежде чем начать работу с системой, ядро необходимо проинициализировать.
Этот этап специфичен для различных операционных систем. В UNIX-подобных системах при этом обычно выводится информация отладочного характера о ходе загрузке ядра.
Первым делом ядро занимается определением параметров вычислительной подсистемы компьютера: выясняет тип и быстродействие центрального процессора, объем оперативной памяти, объем и структуру кэш-памяти; делает предположение об архитектуре компьютера в целом и многое другое.
На следующем шаге ядро определяет состав и архитектуру всего аппаратного наполнения компьютера: тип и параметры шин передачи данных и устройств управления ими (контроллеров), список внешних устройств, доступных по шинам, настройки этих устройств — диапазон портов ввода-вывода, адрес ПЗУ, занимаемое аппаратное прерывание, номер канала прямого доступа к памяти и т. п.
Ядро на основании параметра, переданного ему загрузчиком, выбирает корневой раздел — файловую систему, содержащую будущий каталог / и его подкаталоги (для системной начальной загрузки важны каталоги /etc, /bin, и /sbin). Корневой раздел монтируется в качестве /. После этого ядро запускает первый процесс — init (по умолчанию, /sbin/init).
процесс init
С этого момента операционная система обеспечивает полноценную функциональность всем исполняющимся процессам. В UNIX первым запускаемым процессом является init, о котором сказано в следующем разделе.