Основные каталоги файловой системы ОС 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; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!