Основные каталоги файловой системы ОС Linux
Имя | Расшифровка | Назначение |
/bin | binaries – двоичные, исполняемые | |
/boot | boot – загрузка системы | |
/dev | devices – устройства | Каталог содержит файлы устройств (дисков, принтеров и пр.) |
/etc | Файлы, необходимые для запуска системы и определяющие ее конфигурацию. | |
/home | home – домашний | Содержит каталоги, принадлежащие пользователям. |
/lib | libraries – библиотеки | Каталог, содержащий совместно используемые библиотеки и компоненты компилятора языка Си. |
/mnt | mount - | Каталог для монтирования (временного подключения) других файловых систем, например, флэшек или CD-ROM. |
/root | root – администратор системы (суперпользователь) | Домашний каталог суперпользователя root, который должен присутствовать в системе всегда. |
/tmp | temp - временный | В каталоге хранятся все временные файлы. |
/usr | В каталоге /usr содержатся подкаталоги /bin, /lib, /etc и другие каталоги, аналогичные содержимому корневого каталога. При этом в подкаталогах корневого каталога хранятся утилиты для загрузки и восстановления системы, а все остальные данные размещаются в каталоге /usr. |
Организация процессов
Как было отмечено ранее ОС Linux является многозадачной операционной системой, что означает, что одновременно в ней может быть запущена более чем одна программа.
Ядро – это самый низкий уровень программного обеспечения, которое взаимодействует с аппаратными средствами компьютера. Ядро Linux относится к типу монолитных ядер, что позволяют ему управлять не только процессором и памятью, но и файловой системой, системой ввода-вывода, драйверами устройств.
|
|
Ядро Linux оформлено как выполняемый бинарный файл, хранящийся на жестком диске (vmlinuz). При запуске ОС считывается в оперативную память, но непосредственно не выполняется.
Процесс – это совокупность программ и данных, обрабатываемых на некотором процессоре. Управление процессами (создание, уничтожение, переключение) является основной функцией ядра операционной системы.
Каждая команда или программа, запускаемые в ОС Linux, порождает минимум один процесс. Каждому процессу в системе назначается уникальный номер PID (process ID) – это целые числа в диапазоне от 0 до 30000. Как и у любого файла у процесса есть владелец и группа.
Процессы в системе могут создаваться, выполняться, быть приостановленными, ожидать события, продолжаться, завершаться (корректно или по сигналу), а также взаимодействовать между собой или обмениваться данными.
Жизнедеятельность процессов (существующих в текущий момент или завершенных) может быть представлена в виде иерархической структуры с отношениями типа «предок-потомок». Любой процесс в системе (кроме процесса инициализации init) является потомком другого процесса. Процесс init загружает ядро в оперативную память и инициализирует пользовательский режим работы (запускает другие процессы). Инициализация пользовательского режима завершается запуском процесса getty (для текстового режима работы) или xdm (для графического режима работы). Эти процессы обеспечивают регистрацию пользователся в системе (запрашивается логин и пароль). После успешной регистрации в cистеме запускается процесс интерпретации команд shell. В текстовом режиме работы ввод команд осуществляется посредством командной строки. В графическом режиме работа осуществояется в режиме оконного интерейса. Для этого существует специальная программа – эмулятор терминала xterm.
|
|
Клиентная программа xtrem – это эмулятор терминала. Предназначена для выполнения любых командных строк, которые могут быть последовательно введены в ее графическом окне. Их интерпретацию обеспечивает командный процессор shell, bash или tcsh, программа которого автоматически стартует в окне xterm как на алфавитно-цифровом терминале, например, vt100. При запуске терминала открывается окно эмулятора и запускается интерпретатор shell.
|
|
Командный интерпретатор shell
Интерпретатор команд (командный процессор) – это оболочка операционной системы (ее часть), обеспечивающая интерфейс командной строки и выполняющая текстовые команды пользователя. Командный интерпретатор реализует базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки.
Интерпретатор команд shell – одна из важнейших частей ОС Linux. Существует большое число различных версий интерпретатора. Наиболее распространенными сегодня версиями интерпретатора shell являются
· B shell (автор Stephen Bourne, Bell Labs);
· C shell (автор Bill Joy, Калифорнийский Университет);
· K shell (автор David Korn, Bell Labs);
· Р shell (основан на стандарте POSIX 1);
· POSIX = Portable Operating System Interface.
Все они поддерживают единый интерфейс взаимодействия «пользователь-ядро» и выполняют следующие основные функции:
· интерпретация команды (проверка ее синтаксиса);
· обработка мета-символов (применение специальных символов, используемых для сокращенной записи);
· переадресация ввода-вывода данных (возможность перенаправления вывода данных не на экран, а в файл и пр.);
· создание среды пользователя (обеспечение для каждого пользователя доступа к любой команде);
|
|
· поддержка командного языка (наличие в составе языка синтаксических конструкций, например, условные операторы (if), операторы цикла (for, while), операторы переключателя).
Переменные языка shell
В отличие от других языков программирования, в языке shell переменные не разделяются на типы. Все переменные представляют собой литералы, то есть обыкновенные строки, которым присвоено имя. Это означает, что если значение переменной "85" – оно интерпретируется не как число, а как строка, состоящая из двух символов "8" и "5". Shell допускает целочисленную арифметику с переменными, но лишь в ограниченном числе команд. Физически переменные представляют собой участки памяти, в которую занесены коды символов в одной из кодировок.
Принято выделять три типа переменных:
· позиционные параметры;
· специальные параметры;
· именованные переменные.
Значения позиционных параметров устанавливаются из аргументов, указанных в командной строке при запуске программы. Для них зарезервированы имена в виде цифр. Значения позиционных параметров в программе можно получить используя ссылки на них при помощи символа $: $1, $2, … . Всего в командной строке могут быть указано не более 128 параметров, но ссылаться через ссылки можно лишь на 9 первых. Для работы с большим числом параметром используется команда shift, которая смещает указатель с первого параметра на заданное число позиций.
На ряду с позиционными параметрами, интерпретатор shell автоматически инициализирует следующие специальные параметры:
? | – значение, возвращаемое последней командой; |
$ | – номер процесса; |
! | – номер фонового процесса; |
# | – число позиционных параметров, переданных программе; |
* | – перечень позиционных параметров, представленных как одна строка; |
@ | – перечень позиционных параметров, представленных как последовательность слов; |
- | – флаги, передаваемые в shell; |
Для получения значений, записанных в специальные параметры, перед ними необходимо поставить символ $. Так чтобы использовать в команде значение, соответствующее числу аргументов, с которыми программа была вызвана, следует указывать $#.
Отличием специальных переменных * и @ состоит в том, что первая переменная будет представлена как одна строка
“arg1 arg2 arg3 …”,
а вторая как набор строк
“arg1” “arg2” “arg3” … .
Именованные переменные – переменные созданные и инициализированные пользователем. Один из наиболее простых способов создания и присваивания именованной переменной значения имеет вид:
Var_name=value
Здесь Var_name – имя переменной, value – присвоенное ей значение. Пробелы перед и после знака = недопустимы.
Для получения значения переменной, перед ее именем необходимо указать знак $.
Названия переменных в языке shell могут состоять из букв, символов подчеркивания и цифр и не должны совпадать с именами команд языка shell. Первая буква имени может быть буквой или символом подчеркивания.
В строгом варианте при обращении к переменным через ссылки их имена должны быть взяты в фигурные скобки ${Var_name}. Такую запись рекомендуется использовать тогда, когда имя переменной имеет сложную структуру и может возникнуть синтаксическая ошибка.
В таблице 1.2 представлены различные способы присваивания переменным значений.
Таблица 1.2
Дата добавления: 2020-01-07; просмотров: 144; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!