Новости
|
11/5 Графический пользовательский интерфейс |
11/5 Графический адаптер |
|
11/5 Шрифты |
11/5 Растровые изображения |
| Текстовые окна |
|
Вывод проще ввода, когда он представляет собой последовательный вывод символов одного и того же шрифта, размера и цвета. Большей частью программы отправляют символы в текущее окно, где они и отображаются. Обычно за один системный вызов выводится блок символов, к примеру целая строка. Экранные редакторы и многие другие сложные программы должны уметь обновлять экран сложными способами, например удалять одну строку в середине экрана. Для обеспечения этих потребностей большинство драйверов вывода поддерживают наборы команд для перемещения курсора, вставки и удаления символов или строк там, где находится курсор, и т. д. Эти команды часто называются эскейп-последовательностями. В период широкого распространения «немых» ASCII-терминалов с отображением 25 строк по 80 символов существовали сотни типов терминалов, у каждого из которых имелись свои собственные эскейп-последователности. Поэтому трудно было написать программу, которая работала на более чем одном типе терминала. Одно из решений, представленное в системе Berkeley UNIX, представляло собой базу данных терминалов, называемую termcap. Этот программный пакет определял набор основных действий, таких как перемещение курсора в позицию (строка, столбец). Для перемещения курсора в конкретное место программа, например редактор, использовала общую эскейп-последовательность, которая затем превращалась в фактическую эскейп-последовательность для того терминала, на который осуществлялся вывод. Таким образом, редактор работает на любом терминале, для которого имеется запись в базе данных termcap. Основная часть всех UNIX-программ по-прежнему именно так и работает, даже на персональных компьютерах. Со временем промышленность стала испытывать потребность в стандартизации эскейп-последовательностей, поэтому был разработан стандарт ANSI. Система X Window Пользовательский интерфейс практически всех UNIX-систем базируется на системе X Window System (которую часто называют просто X), разработанной в 80-е годы в Массачусетском технологическом институте (M.I.T.) как часть проекта Athena. Она обладает хорошей переносимостью и работает целиком в пользовательском пространстве. Первоначально она предназначалась для подключения большого количества удаленных пользовательских терминалов к центральному вычислительному серверу, поэтому логически она разбита на клиентское и серверное программное обеспечение, которое потенциально может работать на разных компьютерах. На современных персональных компьютерах обе ее составляющие могут работать на одной и той же машине. В Linux-системах популярные среды рабочих столов Gnome и KDE работают поверх Х-системы. Когда Х-система работает на одной машине, программное обеспечение, которое собирает входящую информацию с клавиатуры и мыши и выводит выходную информацию на экран, называется Х-сервером. Х-сервер должен отслеживать, какое из окон выбрано в данный момент (в каком из них находится указатель мыши), поэтому он знает, какому именно клиенту отправлять весь клавиатурный ввод. Он обменивается информацией с работающими программами (возможно, по сети), называемыми Х-клиентами. Х-сервер отправляет им информацию, получаемую с клавиатуры и мыши, и принимает от них команды на отображение информации. |