Системное и прикладное программное обеспечение. Общая классификация ПО. Принципы построения ОС. Управление ресурсами: файловые системы, страница 3

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

Тем не менее, ОС обеспечивает средства для организации пользовательского интерфейса: окна, консоль.

Графический пользовательский интерфейс (GUI) для персонального компьютера, как известно, придуман и реализован фирмой Apple в 1983 г. В 1987 г году разработан графический стандарт X Window System для Unix систем.

Однако широкое распространение GUI получил лишь в 1990 г. с выходом Windows 3.0, причем весь набор возможностей интерфейса Apple был реализован в Windows только в 1995 г.

При этом развитие GUI в Linux происходило еще медленнее. Одна из причин состоит в том, что Unix-подобные системы были традиционно ориентированы на профессиональных пользователей, для которых наличие графического интерфейса не принципиально. Кажущееся неоспоримым удобство графического интерфейса фактически вопрос субъективного предпочтения. Одним из объективных критериев является скорость работы. Сравнения показывают, что в среднем при достаточном навыке работа в командной строке происходит существенно быстрее, чем в оконном интерфейсе. Даже непосредственный набор с клавиатуры обычно происходит быстрее, чем выбор мышью, а при использовании скриптов преимущество командной строки становится значительным.

Тем не менее, установка GUI на Linux имеет смысл хотя бы из эстетических соображений, поэтому полезно знакомство с графическими оболочками на примере KDE или Gnome.

Перед практическим изучением графической системы Unix следует разобраться с ее общей структурой.

В первую очередь, нужно отметить, что графическая система Unix не связана с ядром ОС, и лежащая в ее основе X Window System реализуется X-сервером, доступ к которому осуществляется посредством сокетов (через сетевой интерфейс). Это, в частности, делает возможным удаленный запуск графических приложений.

Фактически X-сервер можно считать драйвером, создающим виртуальный ресурс универсального графического устройства. Оконные менеджеры, в частности KDE, выступают в роли посредников между приложениями и X-сервером, расширяя сервисные возможности последнего.

Классической реализацией оконного интерфейса является библиотека X11.

Более простой вариант оконного интерфейса — оконный интерфейс Windows. Основным его элементом является окно – объект, с которым ассоциирована область экрана, а также события, отражающие действия пользователя.

Различают несколько типов окон: главные, дочерние и диалоговые. Основной частью окна является клиентская область, в которую приложение выводит информацию. Кроме того, обычно окно имеет рамку и заголовок с управляющими кнопками и меню окна (доступ через Alt-<пробел>), которое позволяет управлять окном, не используя мышь.

Окно может быть в нескольких состояниях (режимах): скрытом (свернутом), развернутом, развернутом на весь экран, полноэкранном. В полноэкранном режиме (переключение обычно через Alt-Enter) клиентская область окна занимает весь экран, при этом для консольных приложений видеокарта обычно переключается в текстовый режим.

В каждый момент одно из окон является активным, или находится в фокусе ввода. Это означает, что ввод с клавиатуры адресуется этому окну. Переключение между окнами может осуществляться через Alt-Tab или мышью.

Для просмотра всех окон, существующих в системе, можно использовать утилиту Spy++ (spyxx).

Основным назначением пользовательского интерфейса является управление работой приложений. Последнее осуществляется, главным образом, посредством управления окнами, ассоциированными с приложением, однако часть действий (например, выгрузку «зависшего» приложения или процесса, не имеющего окон) можно выполнить только через специальные утилиты, такие как диспетчер задач (быстрый вызов через Ctrl-Shift-Esc или Alt-Ctrl-Del).