Я прохожу курс "Операционная система Unix" и после тестов, вижу в отчете, что этот тест сдало еще 25 человек. Почему так мало, это ведь реально хороший и полезный урок. Здесь естьи теория и практичесские материалы. Сам курс написан хорошо, живым языком. И здесь я получил ответы на вопросы по Linux, которые боялся спросить. Наверное это из-за того, что в названии курса написано не Linux, а Unix и это многих отпугивает. |
Графическая подсистема X11
Унификация и разделение графических ресурсов
В лекции 7 отмечалось, насколько UNIX не требователен к интерфейсу, когда речь идет об управлении системой. Типичный способ администрирования UNIX-сервера – удаленная работа по сети, причем (спасибо Internet) удалиться от компьютера можно сколь угодно далеко, лишь бы связь была достаточно надежной для терминальной работы. Это означает, что все прочие возможности взаимодействия машины с человеком понимаются системой как ресурс, который следует распределять между пользовательскими задачами так же, как и оперативную память, дисковое пространство или, скажем, ресурсы подсистемы печати.
Напомним три задачи, которые решает операционная среда относительно ресурсов: унификация, разделение и учет доступа. С унификацией все более или менее понятно: на свете существует множество графических устройств, управление которыми на низком уровне – задача совсем не для пользователя, тем более что каждый вид устройства управляется по-своему. Низкоуровневые команды система должна взять на себя, а пользователю предоставить графические примитивы (вроде функции рисования линии), которые будут работать всегда одинаково.
Выходит, что пользователю этого ресурса недостаточно представлять графический адаптер как большую страницу видеопамяти, частично отображаемую на устройстве вывода – мониторе: ведь пользователю диска мало представлять его в виде массива секторов! Разница в том, что этого было бы недостаточно и самой системе, так что в UNIX введено понятие файловой системы, объекты которой значительно сложнее, чем "сектор" или "диск". А что касается графики – у UNIX нет ни предпочтений, ни особых видов на эти способности машины. Значит, со стороны системы разумно организовать именно доступ к устройству, а требуемую объектную модель пусть реализует пользовательская задача.
Такая задача будет, конечно, отличаться от пользовательских утилит и программных продуктов. По своим правам она скорее будет сродни демонам. Она получит единоличный доступ к устройству, а по отношению к пользователю сама окажется операционной средой, организуя на свой лад унификацию, разделение и учет доступа к графическим ресурсам в объектной модели. Поэтому весь комплекс программ для работы с графическими устройствами принято называть графической подсистемой.
Неизбежно удвоение функций: система занимается аутентификацией и авторизацией – и графическая подсистема вынуждена делать то же самое, раз уж ей вменяется в обязанность "разделять". Более того, в отличие от той же файловой системы, само понятие разделения ресурса графического ввода или вывода представляется, мягко говоря, неочевидным. Как разделить между пользователями мышь? экран монитора? Видимо, придется признать, что с этой стороны графической подсистемы находится один человек, а вот каким субъектам принадлежат программы, которые ею пользуются, графической подсистеме неизвестно. Об учете графических ресурсов говорить вообще странно, однако, как мы увидим в дальнейшем, некоторое рациональное зерно в этом есть, и подход UNIX позволяет его использовать.