Командная строка linux и сценарии оболочки


Управление программным обеспечением
В операционной системеLinux исполняемая программа именуется процессом . Процесс может выполняться на переднем плане и отображать свой вывод на дисплее или в фоновом режиме незаметно для посторонних глаз. Ядро осуществляет контроль над тем, как системаLinux управляет всеми процессами, эксплуатируемыми в системе.
Ядро создает первый процесс, называемый процессом init , который обеспечивает запуск всех прочих процессов в системе. После запуска ядро загружает процесс init в виртуальную память. По мере загрузки ядром каждого следующего процесса происходит выделение для него уникальной области в виртуальной памяти для хранения данных и кода, используемых процессом.
В некоторых реализацияхLinux предусмотрено использование таблицы процессов, в которой показаны процессы, запускаемые автоматически после загрузки. В одних системахLinux эта таблица обычно находится в специальном файле /etc/inittabs.
А в других системах(таких как популярный дистрибутивUbuntu Linux) используется папка /etc/init.d, которая содержит сценарии запуска и останова отдельных приложений во время начальной загрузки. Сценарии запускаются с помощью записей в папках /etc/rcX.d, где X обозначает режим работы.
В операционной системеLinux используется определенная система инициализации, которая вводит в действие конкретные режимы работы. Режим работы может использоваться для управления процессом инициализации в целях выполнения при запуске системы только процессов определенного типа в соответствии с тем, что задано в файле /etc/inittabs или в папках /etc/rcX.d. В операционной системеLinux предусмотрено пять режимов работы процесса инициализации.
В режиме работы 1 запускаются только основные процессы системы, а также один процесс операторского терминала. Этот режим называется однопользовательским и чаще всего применяется для сопровождения файловой системы в чрезвычайных обстоятельствах, когда приходится устранять последствия какого-то нарушения в работе. Очевидно, что в этом режиме в систему может войти только одно лицо(обычно администратор) для манипулирования данными.
Стандартным режимом работы процесса инициализации является режим 3, в котором запускается основная часть прикладного программного обеспечения, такого как программное обеспечение поддержки сети. Еще одним широко применяемым вLinux режимом работы является режим работы 5. В этом режиме работы система запускает графическое программное обеспечение X Window и предоставляет пользователю возможность войти в систему с применением графического окна рабочего стола.
СистемаLinux может управлять всеми системными функциональными средствами путем задания режима работы процесса инициализации. После перехода от режима работы 3 к режиму работы 5 в системе вместо доступа к программным средствам с помощью консоли начинает применяться развитая графическая системаX Window.
В главе 4 будет показано, как используется команда ps для просмотра процессов, исполняемых в настоящее время в системеLinux. Ниже показано, какой вид имеют результаты выполнения команды ps.

Управление аппаратными средствами
Еще одной задачей, возложенной на ядро, является управление аппаратными средствами. Любое устройство, управляемое системой Linux, должно обмениваться данными с кодом драйвера, вставленного в код ядра. Код драйвера позволяет ядру передавать данные в устройство в прямом и обратном направлениях, действуя в качестве посредника между приложениями и аппаратными средствами. Предусмотрены два указанных ниже метода вставки кода драйвера в ядроLinux.

  • Компиляция кода драйвера вместе с кодом ядра.
  • Добавление модуля драйвера к ядру.

В ранних версиях Linux единственный способ вставки кода драйвера устройства состоял в повторной компиляции ядра. После добавления к системе каждого нового устройства приходилось повторно компилировать код ядра. Этот процесс становился все более трудоемким по мере того, как возрастало разнообразие аппаратных средств, поддерживаемых ядром Linux. К счастью, разработчики Linux изобрели лучший метод вставки кода драйвера в исполняемое ядро.

Программисты разработали понятие модулей ядра, позволяющих вставлять код драйвера в ядро, не прерывая его работу и не испытывая необходимости повторно компилировать ядро. Кроме того, модуль ядра может быть удален из ядра после завершения работы устройства, для которого предназначен данный модуль. Это способствует существенному упрощению использования аппаратных средств в системе Linux и расширению их номенклатуры.

В системе Linux конкретные устройства, входящие в состав аппаратных средств, идентифицируются как специальные файлы, называемые файлами устройств . Предусмотрено применение файлов устройств, относящихся к трем указанным ниже различным классам.

  • Символьные.
  • Блочные.
  • Сетевые.

Символьные файлы устройств предназначены для устройств, которые могут обрабатывать данные только по одному символу одновременно. Большинство типов модемов и терминалов создаются как символьные файлы. Блочные файлы поддерживают устройства, способные обрабатывать данные одновременно в виде больших блоков, такие как дисковые накопители Сетевые типы файлов используются для устройств, в которых применяются сетевые пакеты для отправки и получения данных. К таким устройствам относятся сетевые платы и специальное петлевое устройство, которое позволяет системе Linux обмениваться данными с самой собой, используя общие сетевые программные протоколы.

В системе Linux создаются особые файлы, называемые специальными файлами , для каждого системного устройства. Вся связь с устройством осуществляется через специальный файл устройства. Каждый специальный файл обозначен уникальной парой номеров, которая идентифицирует его для ядра Linux. Эта пара номеров состоит из старшего и младшего номера устройства. Аналогичные устройства группируются под одним и тем же старшим номе-ром устройства. Младший номер устройства используется для идентификации конкретного устройства в группе старшего номера устройства. Ниже приведены примеры нескольких файлов устройств на сервере Linux.

[email protected]: $ cd /dev
[email protected]:/dev$ ls -al sda ttyS
brw-rw—- 1 root disk 8, 0 2010-09-18 17:25 sda
brw-rw—- 1 root disk 8, 1 2010-09-18 17:25 sda1
brw-rw—- 1 root disk 8, 2 2010-09-18 17:25 sda2
brw-rw—- 1 root disk 8, 5 2010-09-18 17:25 sda5
crw-rw—- 1 root dialout 4, 64 2010-09-18 17:25 ttyS0
crw-rw—- 1 root dialout 4, 65 2010-09-18 17:25 ttyS1
crw-rw—- 1 root dialout 4, 66 2010-09-18 17:25 ttyS2
crw-rw—- 1 root dialout 4, 67 2010-09-18 17:25 ttyS3
[email protected]:/dev$

В различных дистрибутивахLinux работа с устройствами ведется с применением разных имен устройств. В рассматриваемом дистрибутиве устройство sda представляет собой первый жесткий диск ATA, а устройства ttyS соответствуют стандартным COM-портам персонального компьютера класса IBM. В этом листинге показаны все устройства sda, которые были созданы в типичной системе Linux. Не все эти устройства фактически используются, но они были созданы на тот случай, что потребуются администратору. Аналогичным образом в том же листинге показаны все созданные устройства ttyS.

В пятом столбце приведены старшие номера специальных файлов устройств. Обратите внимание на то, что все устройства sda имеют обозначенный одним и тем же номером 8 старший специальный файл устройства, а для всех устройств ttyS используется номер 4. В шестом столбце показан младший номер специального файла устройства. Каждое устройство, относящееся к определенному старшему номеру, имеет свой собственный уникальный младший номер специального файла устройства.

В первом столбце приведены разрешения для файла устройства. Первый символ разрешений указывает тип файла. Заслуживает внимания то, что все файлы жестких дисков ATA отмечены как блочные устройства (b— block), а файлы устройств COM-портов обозначены как символьные устройства (c— character).


Поделись с друзьями



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Командная строка Linux и сценарии оболочки. Библия пользователя, 2-е изд Сценарий для 55 лет с юмором

Командная строка linux и сценарии оболочки Командная строка linux и сценарии оболочки Командная строка linux и сценарии оболочки Командная строка linux и сценарии оболочки Командная строка linux и сценарии оболочки Командная строка linux и сценарии оболочки

ШОКИРУЮЩИЕ НОВОСТИ