- •Архитектура семейства ос Unix
- •6.1. История и современное состояние
- •6.2. Архитектура Unix
- •6.3. Процессы
- •6.4. Нити
- •6.5. Планирование процессов
- •6.6. Управление памятью
- •6.7. Средства взаимодействия процессов
- •6.8. Файловые системы
- •Файловая система s5
- •Файловая система ufs
- •Файловая система sfs
- •Файловая система Veritas
- •Другие файловые системы Open Unix
- •Файловая система jfs
- •6.9. Интерфейсы Unix
- •6.10. Unix-системы фирмы Caldera
6.9. Интерфейсы Unix
При своем рождении ОС Unix была системой командной строки (в соответствии с тогдашним состоянием аппаратуры отображения), в значительной степени таковой она остается и в настоящее время. Это обусловлено традициями пользователей Unix, но в еще большей степени - богатыми возможностями командного языка ОС. Командный интерпретатор Unix является процессом, работающим в пользовательском режиме, поэтому он может быть легко заменен. В связи с этим командные интерпретаторы интенсивно развиваются все время существования этой ОС, и в настоящее время существует большое число командных интерпретаторов, которые, по-видимому, можно отнести к трем основным семействам:
Bourn-shell - один из первых командных интерпретаторов для ОС Unix
C-shell - командный интерпретатор, синтаксис языка которого похож на язык программирования C;
Korn-shell - развитие Bourn-shell
Названные командные интерпретаторы являются базовыми, на их основе существует множество версий и вариаций. Все командные интерпретаторы ОС Unix объединяют общие основные свойства, такие как:
работа их в режиме интерпретации;
возможность перенаправления ввода-вывода и конвейеризации команд;
возможность порождения и параллельного выполнения процессов в одном сеансе;
полный набор алгоритмических возможностей.
Легкость порождения новых процессов в Unix и наличие в системе большого числа утилит, выполняющих прежде всего обработку текстов, делают язык командного интерпретатора не только языком управления системой, но и языком обработки данных. Обязательные возможности командного интерпретатора и обязательный набор утилит Unix-систем определяются стандартом POSIX. Если командный язык не используется как язык программирования, то коды управляющих процедур (скриптов) не зависят от варианта командного языка.
Со временем, однако, у ОС Unix стали появляться и WIMP-интерфейсы. Основой для создания таких интерфейсов является система X Window, разработанная в Массачусетском технологическом институте. Система X Window строится по схеме клиент/сервер. Основой системы является процесс X-сервер, который выполняется на компьютере конечного пользователя и "знает" ту конкретную аппаратуру отображения, которая установлена на данном рабочем месте. X-сервер принимает и выполняет запросы от X-клиентов - программ, выполняющихся на этом же компьютере или на удаленном. Взаимодействие X-клиента и X-сервера управляется событиями. Событием в системе X является вывод X-клиентом информации на терминал или поступление внешнего события, которое принимается X-сервером, и о котором X-сервер сообщает X-клиенту. Описание двустороннего взаимодействия X-сервера и X-клиента и формата пакетов, которыми они обмениваются, составляет X-протокол. Транспортный уровень для X-протокола прозрачен. Если клиент и сервер находятся на одном компьютере, то для обмена между ними используются средства локального взаимодействия, если на разных - любые сетевые средства. Система X представляет собой совокупность программ и библиотек, таким образом, при разработке интерфейса программист может и не знать деталей X-протокола.
Консорциумом OSF принят в качестве стандарта для разработки графических интерфейсов пакет Motif, построенный на базе X Window. Пакет включает в себя менеджер окон, набор вспомогательных утилит, а также библиотеку классов. В пакете имеются также широкие возможности для создания новых графических классов.
В большинстве промышленных Unix-систем в настоящее время используется построенный на основе OSF/Motif интерфейс CDE (Common Desktop Environment), в ОС Linux применяется большое количество различных интерфейсных систем, наиболее популярные из которых - KDE и Gnome.
