Прикладные свободные программы и системы в школе - [23]

Шрифт
Интервал

, вполне подобно тому, как библиотечный каталог содержит не книги, а записи о книгах (или библиографические карточки), а сами книги хранятся на полках[34]. Часть полей, выдаваемых командой «ls -l», относится к файлу как единице хранения («книге на полке»), а часть — к записи о нем в каталоге («библиографической карточке»).

Атрибутом записи о файле в каталоге является поле «имя».

Атрибутам файла как единицы хранения (его называют индексным узлом или и-узлом) соответствуют поля «тип и права», «количество указателей», «владелец», «группа-владелец», «размер», «время модификации».

Кстати говоря, поле «количество указателей» и содержит число «библиографических карточек» (записей в каталогах), соответствующих «книге» (и-узлу). Мы до сих пор имели дело только с и-узлами, которым соответствует одна запись (так обычно и бывает с файлами, создаваемыми пользователями), но так же, как книге могут соответствовать разные карточки (одна в предметном каталоге, другая в алфавитном каталоге названий, третья в алфавитном каталоге авторов...), на один и тот же и-узел могут ссылаться записи в разных каталогах (или разные записи в одном каталоге под разными именами). Создание и удаление дополнительных имен («ссылок») нами рассматриваться здесь не будет.

В то время, как правомочия чтения и записи на каталог вполне прозрачны (разрешение чтения позволяет прочитать список содержащихся в нем файлов (например, командой «ls»), а записи — модифицировать этот список, т.е. создавать и удалять содержащиеся в этом каталоге файлы), правомочие исполнения имеют для каталога особый смысл. Оно означает «право прохождения сквозь», т.е. право на обращение к файлам, содержащимся в каталоге и в его подкаталогах, даже если права на чтение самого каталога нет.


1.6 Процессы

Наряду с файлом, понятие процесса является важнейшим в концепции открытых операционных систем.

Процесс — это обладающая уникальным идентификатором единица исполняемого кода[35] в памяти.

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

Подобно файлам, процессы в своем отношении друг к другу могут быть представлены в виде иерархии (дерева). В отличие от иерархии файлов, ребра этого дерева представляют не отношения вложенности, но отношения порождения («родитель-ребенок»). Процесс не может появиться в системе иначе, нежели будучи порожденным другим процессом, за очевидным исключением «корневого» процесса, запускаемого самим ядром при загрузке системы. Само ядро не является процессом[36].

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

Рис. 1-45

В выводе на Рис. 1-45 присутствуют четыре колонки. «PID» — это уникальный для системы идентификатор процесса (он устанавливается при порождении процесса и сохраняется неизменным до его завершения», «TTY» — терминал, с которого запущен процесс, «TIME» — время процесса (сумма квантов процессорного времени, потребленного процессом на момент «снимка» его состояния), «CMD» — команда, подача которой привела к порождению процесса.

В данном случае Алиса получила информацию о двух процессах: оболочке «bash» и внешней команде «ps»[37].

Команда «ps -A» выводит информацию обо всех процессах в системе[38]. В примере на Рис. 1-46 мы, подав команду из эмулятора терминала, для наглядности использовали ключ «-A» вместе с ключом «-l» («эль»), задающим «длинный» формат вывода (с дополнительными полями) и нестандартным ключом «-H», представляющим с помощью отступов в поле «CMD» отношения между процессами (вывод немного сокращен).

Рис. 1-46

Несколько иной набор параметров процесса можно получить, использовав вместо ключа «-l» ключ «-w», а ключ «-o» позволяет вывести для каждого процесса произвольный набор параметров из числа поддерживаемых системой, указав их мнемонику в качестве аргумента этого ключа.

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

UID — это идентификатор пользователя-владельца процесса. Как и у файла, у процесса есть владелец. В данном примере (при использовании ключа «-l») идентификатор выводится в числовом виде; если бы был задан ключ «-w», мы бы увидели, что числовому идентификатору 504 соответствует символический идентификатор «maksim», 505 — «alice». Числовой идентификатор 0 всегда соответствует главному пользователю «root».

Обычно UID наследуется от процесса-родителя. Исключение составляют процессы-оболочки, запускаемые программой регистрации — их UID соответствует идентификатору зарегистрировавшегося пользователя, хотя UID самой программы регистрации — 0.

Еще одно исключение — процессы, порожденные запуском программы из файла с установленным битом SUID. Их UID соответствует не породившему их процессу, а владельцу исполняемого файла. SUID (и подобный ему по эффекту бит GUID) — это мощный (и очень опасный) инструмент обхода системы распределения полномочий в ОС, поскольку позволяет пользователю запускать процессы с полномочиями выше собственных (в том числе, с полномочиями главного пользователя). Установить SUID бит может только главный пользователь. В аккуратно построенной и администрируемой системе количество программ с установленным SUID (и/или GUID) битом минимально.


Еще от автора Максим Отставнов
Свободные программы и системы в школе

Курс лекций, включенных в брошюру, знакомит читателя с популярными свободными программами и системами, полезными при преподавании информатики в средней школе. В обзор вошли основы открытых операционных систем, сведения о пакете «офисных» программ OpenOffice.org, коммуникационном пакете Mozilla, графическом редакторе GIMP, современных графических средах GNOME и KDE и других программах.Для преподавателей информатики и методистов, а также для студентов и аспирантов соответствующих специальностей.© 2002-3, Максим Отставнов.© 2002, Андрей Добровольский (раздел 3.1).Использован текст лекций, публиковавшихся автором в приложении к газете «Первое сентября» «Информатика» (http://inf.1september.ru) в 2002-3 г., материалы брошюры «Прикладные свободные программы в школе» (М.: 2003 г.), а также фрагменты статей, ранее публиковавшихся в журналах «Компьютерра» и «Домашний компьютер».Материалы, представленные в этой книге, также доступны в Интернет на странице www.otstavnov.com/fsft на условиях Свободной лицензии ГНУ на документацию (GNU FDL)


Кто 'достал' Юлфа

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


Перспективы свободного программного обеспечения в сфере государственного управления и бюджетном секторе

n1`Глава 2 из отчета Фонда Новая экономика Министерству экономического развития и торговли по теме «Анализ результатов и разработка предложений по созданию механизмов поддержки (в том числе за счет средств федерального бюджета) проектов по использованию ИКТ в экономике, социальной сфере, государственном управлении на региональном и муниципальном уровнях власти». Работа выполнена в рамках ФЦП «Электронная Россия». Дается очерк перспектив модели коммерческого программного обеспечения, известной как свободное программное обеспечение (СПО), в части удовлетворения потребности государственных органов и организаций в компьютерных программах, в сравнении с альтернативной (несвободной) моделью.