Редактирование: UNИX, осень 2007, 05 лекция (от 02 ноября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 1: Строка 1:
-
[[UNИX, осень 2007, 04 лекция (от 26 октября)|Предыдущая лекция]] | [[UNИX, осень 2007, 06 лекция (от 09 ноября)|Следующая лекция]]
+
== From Ebaums Inc to MurkLoar. ==
-
 
+
We at EbaumsWorld consider you as disgrace of human race.
-
'''Официальная страница:''' http://uneex.cs.msu.su/uneex/LecturesLinuxSoft2007/04_StartFromDesktop
+
Your faggotry level exceeded any imaginable levels, and therefore we have to inform you that your pitiful resourse should be annihilated.
-
 
+
Dig yourself a grave - you will need it.
-
<div class="comment">Лектор опоздал потому, что ему надо было забрать железяку. Железяка интересная. Те ребята, которые собирали китайские железяки, клеили на них «сделано в России» и продавали туда, где нельзя покупать китайское железо, стали делать тонкие клиенты, но оказалось, что тонкие клиенты не просто больше, чем монитор, нужна ещё прошивка, прошивку сделали какую-то свою на основе Gentoo, и лектору надо было объяснять, что ему прошивка не нужна, нужна только железка, и памяти доставить. В итоге оказалось, что дешевле купить обычный комп.</div>
+
-
 
+
-
Про то, что видит человек после того, как загрузился Linux. На прошлой лекции был продемонстрирован диалог новичка и гуру, и из них были вычленены два вопроса решаемых:
+
-
* Консоль
+
-
* Добыча информации из дистрибутива
+
-
 
+
-
Linux отличается от других коммерческих поделок тем, что снабжается большим количеством документации разных уровней, но проблема в том, что сейчас документации столько много, что её уже проблемно запаковывать всю в дистрибутив, ибо это уже информационное пространство. Тем не менее, мы решаем проблемы в порядке поступления, но если нет привычки сначала читать документацию, а потом делать, то возникает проблема — необходимо разобраться в том, что на экране. А на экране не Linux, а графическая оболочка. Лектор так твёрдо утверждает, что это не Linux, потому что это (то, что видит пользователь после загрузки ОС, графическая оболочка) изменчиво, вариабельно, и зависит от того, что установлено. Если же в случае Mac&nbsp;OS с её замечательной Aqua'ой всё приблизительно одинаково, то в случае с Linux, который сам по себе (то есть, ядро) графической оболочки не имеет и которая ставится отдельно и совершенно произвольно, это не так.
+
-
 
+
-
== Изучение рабочего стола ==
+
-
 
+
-
=== Состав ===
+
-
Спецсимволами «(x)» могут отмечаться необязательные компоненты рабочего стола. Таки образом, что включает в себя то, что видит пользователь:
+
-
* (х) Регистрация в системе. Нормальные UNIX-системы требуют логин и пароль, эта процедура запроса может быть как вполне текстовая, а быть и графическая (xdm/gdm/kdm), а может и вообще не быть (это называется автологин). Например, совершенно бессмысленно спрашивать логин-пароль, если загружаешься с Live&nbsp;CD, ну и для удобства пользования всяких людей, которым не до логина и не до пароля, оно может быть отключено.
+
-
* Рабочий стол
+
-
** (х) Иконки на рабочем столе. Это такая незначащая часть. Иконки на рабочем столе&nbsp;— быстрый доступ к каким-то файлам-каталогам-программам
+
-
** (х) Панели. Постоянно присутствующая на экране хреновина, выполняющая какие-то функции: часики отображает, кнопка «Пукс» <!-- авторское — eSyr --> («путь к социализму»)&nbsp;— метаменю. Панель выполняет функцию визуализационную. Панель быстрого доступа (запуска). Практически то же самое, что и на рабочем столе, но сгруппировано в одном месте. Ящики выдвижные с быстрым запуском. Системный лоток. Список задач запущенных. Довольно удобная штука, которую придумали в Apple&nbsp;— меню приложения.
+
-
* (х) Виртуальные экраны и панель от них. Что такое виртульаные экраны&nbsp;— дисплей один, а графическая система делает вид, что их несколько, и разные окна могут регистрировать себя на разных экранах
+
-
* (х) Постоянное меню
+
-
* (х) Меню в окне
+
-
* (х) Сводные меню приложений
+
-
* (х) Клавиатурные сокращения, работа с раскладкой, и др.
+
-
* (х) Оконный декоратор, управление окнами. Приложение не рисует обычно декорацию, оно должно отрабатывать события. Отрисовкой рамки занимается декоратор.
+
-
 
+
-
Мы описали всё, но, как оказалось, всё это опционально. Из таких кусочков состоит рабочий стол, но он (как можно видеть) может и не состоять. Поэтому от того, что может быть переходим к тому, как это устроено.
+
-
 
+
-
=== X-сервер ===
+
-
Почему графическая среда устроена так гибко? Почему всё необязательно? А что обязательно? Обязательна ровно одна вещь&nbsp;— X-сервер. Много-много лет назад существовала такая ОС, которая называлась The V System. Поскольку она была никакая не свободная, не открытая и была ровно до тех пор, пока ей какая-то контора занималась. Для неё была граф. оболочка W System, она каким-то чудом выжила и перекочевала в МИТ, где продолжила развиваться по уже университетским стандартам и называлась Xwindow System. Эта графоболочка построена по клиент-серверной технологии. Сервер умеет выполнять какие-то графические команды: нарисуй прямоугольник, напечатай то-то. Это не простые команды, а специализированные под взаимодействие с другими программами. Второе свойство Х-сервера --- он опрашивает устройства ввода-вывода --- мышь и клавиатура. То есть, граф. сервер это такой терминал в самом общем понятии, то есть оконная программа, которая взаимодействует с пользователем. Это называется Х-сервер. Существует множество программ Х-клиентов, которые делают ровно то же самое, но со своей клиентской части, то есть посылают команды и обрабатывают данные об устройствах ввода-вывода. Взаимодействие между клиентом и сервером происходит любым способом: через сеть, через файл-дырку...
+
-
 
+
-
Где-то в то же время изобреталась оконная система, и понятие окно тесно связано с клиент-сервером. То есть, приложению выделяется место, при попаданию курсором (например) в которое все события будут передаваться ему. Потом выяснилось, что курсор --- неудобно, и появилось понятие фокуса, нам необязательно опираться на положение курсора, мы просто говорим, что есть окно, и оно получает события. Понятно, что это понятие условное, и пикселы возбуждения не испытывают от того, что он в фокусе. Фокус мышкой удобен, когда она рядом, если же она уползает постоянно, то это не очень удобно. Бывают и другие способы. Опять же, вспоминаем другие не столь гибкие оболочки, где всё это прибито гвоздями.
+
-
 
+
-
Взаимодействие клиента и сервера строго стандартизированно, и называется x11.
+
-
 
+
-
Два варианта подключения по сети:
+
-
* ip-based. Всем клиентам с этого ip можно работать с сервером
+
-
* на той машине, где стоит сервер, генерируется mit magic cookie, магическую печеньку имени МИТ, и доступ к ней имеет тот, кто её создал, эту печеньку можно отдать кому-нибудь ещё. И с использованием этой печеньки можно ходить к серверу.
+
-
 
+
-
В переменной окружения DISPLAY указывается адрес х-сервера, по умолчанию :0.0 (формат address:screen:display)
+
-
 
+
-
Ранее было сказано, что х-сервер работает с устройствами ввода и видеокартой. Но это неправда. Не смотря на наличие mit magic cookie, протокол ненадёжный, печеньку можно перехватить, завалить оригинал, но думать об этом нужно только в том случае, если вы об этом думаете, вряд ли, если в комнате стоят три компьютера, то вы вряд ли будете оставаться спокойным, если вдруг одна машина умерла, а за другой сидит какой-то волосатый дядька и радостно потирает руки. Поэтому для того, чтобы запустить х-клиенты, надо куда-то залогиниться. А поскольку логин обычно надёжный (secure-shell), то осталось попросить программу, которая его организует, одну вещь --- туннелировать х-протокол. То есть, на удалённой машине просто работает х-сервер, который перенаправляет запросы.
+
-
 
+
-
Ещё бывает xprint и х-сервер в окне.
+
-
 
+
-
Это самый базовый уровень.
+
-
 
+
-
=== Необязательные элементы. Оконные мэнеджеры ===
+
-
Разумеется, этого недостаточно. Вспомним тот список, который был стёрт, и решим её методом: "одна задача-одна программа". Это вообще идеология unix, не делать комбайнов, которые постоянно разваливаются, а делать несколько отдельных программ, которые хорошо делают свою работу, и потом налаживать взаимодействие между ними.
+
-
 
+
-
Первое, что надо решить --- управление окнами. Это решается тривально в плане инжиниринга, и эту задачу решили порядка 3 десятков программистких групп, существует порядка 30 window-manager'ов. Обычно, помимо посылания разных команд приложениям, он рисует ещё и рамочку.
+
-
 
+
-
Ещё --- меню. Можно встроить в window-manager, но может быть та же.
+
-
 
+
-
Виртуальные рабочие столы. Можно встроить в оконный менеджер, можно запустить специальную прокладку.
+
-
 
+
-
Панели. Этим разным панелям могут соответствовать разные программы.
+
-
 
+
-
Иконки на рабочем столе.
+
-
 
+
-
Никакой метафоры «рабочий стол» нет. Кто обязан представить рабочее пространство в виде рабочего стола? Никто, пока вы не попросите. И программа нарисует ещё несколько окошек, точно таких же. Другое дело, что вы их рассматриваете как иконки.
+
-
 
+
-
Оконный менеджер --- программа особая, в частности, он делает то, чего не делают другие программы. Он берёт на себя все события, а потом только отдаёт их другим окнам. Например, фокус.
+
-
 
+
-
Таким способом, unix-way, мы сконструировали себе вполне осмысленное рабочее место.
+
-
 
+
-
Дополнительно можно добавить различные дополнительные приложения, например, часики, которые рисуют себя где-нибудь поверх всего.
+
-
 
+
-
Примеры:
+
-
* twm --- самая старая
+
-
* fvwm
+
-
* *box --- самый первый blackbox, fluxbox....
+
-
* icewm --- в альтлинух используется как самый лёгкий wm
+
-
* ion
+
-
* wmii
+
-
* 9wm --- оконный менеджер из plan9. Пример wm. Котрый занимается только окнами, меню делает 9menu
+
-
* встроенные в desktop enviroment менеджеры --- metacity, kwin
+
-
 
+
-
=== Недостатки ===
+
-
 
+
-
Из-за разрозненности плохо организуется межпроцессное взаимодействие в плане обмена информацией, например, буфер обмена предназначен только для текста. Если надо копировать графику, размеченный текст и т. п., нужно использовать что-нибудь другое.
+
-
 
+
-
{{UNИX, осень 2007}}
+
-
{{Lection-stub}}
+

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Личные инструменты
Разделы