- •Современные архитектуры файловых систем
- •Операционные системы Windows
- •Операционные системы семейства Windows nt
- •Пользователь как клиент
- •Пользователь как администратор
- •Сущность проективных систем
- •Принципы построения проективных систем
- •Преимущества и недостатки проективных систем
- •Сущность процедурных систем
- •Принципы построения процедурных систем
- •Достоинства и недостатки процедурных систем
- •Истоки unix
- •Идеология
- •Семейства unix
- •Структура unix
- •Утилиты
- •Программные продукты и пакеты
- •Интерфейс
- •Процессы
- •Диспетчер окон
- •Основные принципы функционирования ос Linux
- •Файлы конфигурации
- •Получение информации о дисковом пространстве
Утилиты
Обращаться к системным вызовам могут, конечно, не только демоны, но и вообще любые программы. В UNIX входит немало программ, при помощи которых можно решать разнообразные инструментальные задачи (т. е. связанные с работой самой системы). Это так называемые системные утилиты. Они используются в первую очередь самой системой и системным администратором. Однако и пользователь, не обладающий правами администратора, вполне может задействовать системные утилиты, если они помогают ему в работе, а системе не мешают (например, создавать файловую систему на дискете, просматривать состояние системы или ее ресурсов и т.п.).
Пользовательских программ-утилит в UNIX еще больше, чем системных (чем определенно нарушается принцип Умопостижимости контекста. Множество пользовательских утилит занимается преобразованием текста, немало утилит помогает при разработке различных решений: компиляторы, отладчики, редакторы диаграмм и т. д. Почти всеми пользовательскими утилитами пользуется система, потому что при проективном подходе вообще невозможно провести четкую границу между системным и пользовательским наполнением. К обеим категориям, например, относятся утилиты для работы с файлами и файловой системой или интерпретатор командной строки (shell).
Программные продукты и пакеты
Понятно, что на всякую прикладную область утилит не напасешься. Чем сложнее и нестандартнее задача, тем меньше смысла включать инструменты ее решения в систему. Тем не менее, раз уж задача есть, значит, кому-то нужно ее решать. Такие специализированные наборы программ хотелось бы иметь если и не в самой системе, то где-то "рядом". И уж конечно в системе должен быть мета-инструментарий - это средства программирования и вообще разработки программ: языки программирования, интерфейсные и предметно-ориентированные библиотеки, и т. п.). Такой набор программ (т.е. инструменты решения прикладных задач + средства для их разработки) называется программным продуктом. Архив программного продукта, расположенный в определенном месте файловой системы в UNIX называется пакетом. В пакете могут храниться не только сами программные продукты, но и вообще любые "кирпичики", из которых можно складывать систему: утилиты, драйверы, документация, шрифты и все остальное. Если при установке или удалении пакета нужно проделать какие-нибудь действия (например, зарегистрировать устанавливаемый шрифт), к нему прилагаются сценарии установки и удаления. Система, настроенная на решение определенных задач, не обязательно должна содержать все возможные пакеты. Как правило, в дистрибутив UNIX входит несколько тысяч пакетов разного назначения и объема, например, от утилиты, сообщающей, в какой фазе сегодня находится луна, до издательской системы. Так, например, на 8000 пакетов дистрибутива FreeBSD-5.2, около 1500 в общей сумме составляют средства разработки, языки программирования и графические инструменты. В действительности, редко кто устанавливает больше 2х-3х сотен утилит. Однако, стоит заметить, что в специализированных дистрибутивах, не распространяемых под свободной лицензией, средства разработки могут не входить: в одних - за ненадобностью, в других - из-за желания авторов заработать на продаже дополнительных средств.
***