Редактирование: UNИX, осень 2007, 05 лекция (от 02 ноября)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 3: | Строка 3: | ||
'''Официальная страница:''' http://uneex.cs.msu.su/uneex/LecturesLinuxSoft2007/04_StartFromDesktop | '''Официальная страница:''' http://uneex.cs.msu.su/uneex/LecturesLinuxSoft2007/04_StartFromDesktop | ||
- | + | Гоша опоздал потому, что ему надо было забрать железяку. Железяка интересная. Те ребята, которые собирали китайские железяки, клеили на них «сделано в россии» и продавали туда,где нельзя покупать китайское железо, они стали делать тонкие клиенты, но оказалось, что тонкие клиенты не просто больше, чем монитор, нужна ещё прошивка, прошивку сделали какую-то свою на основе генту, и надо было объяснять, что прошивка не нужна, нужна только железка, только памяти доставить. В итоге оказалось, что дешевле купить обычный комп. | |
- | Про то, что видит человек после того, как загрузился | + | Про то, что видит человек после того, как загрузился линукс. На прошлой лекции был продемонстрирован диалог новичка и гуру, и из них были вычленены два вопроса решаемых: |
* Консоль | * Консоль | ||
* Добыча информации из дистрибутива | * Добыча информации из дистрибутива | ||
- | + | Линукс отличается от других коммерческих поделий тем, что снабжается большим количеством документации разных уровней, но проблема в том, что сейчас документации столько много, что её уже проблемно запаковывать её всё, ибо это уже информационное пространство. Но мы решаем проблемы в порядке поступления, но если нет привычки сначала читать документацию, а потом делать, то возникает проблема разобраться в том, что на экране. А на экране не линукс, а графическая оболочка. Лектор так твёрдо утверждает, что это не линукс, потому что это изменчиво, вариабельно, и зависит от того, что вы поставите. Если же в случае макоси с её замечательной аквой, или того же линукса всё приблизительно одинаково, то в случае с линуксом, который сам по себе графоболочки не имеет и которая ставится отдельно и совершенно произвольно, это не так. | |
- | + | Изучение рабочего стола. | |
- | + | Спецсимволами могут отмечаться необязательные компоненты рабочего стола. Что бывает: | |
- | Спецсимволами | + | * (х) Регистрация в системе. Нормальные юникс-системы требуют логин и пароль, эта процедура запроса может быть как вполне текстовая, а быть и графическая, а может и вообще не быть. Это называется автологин. Например, совершенно бессмысленно спрашивать логин-пароль, если загружаешься с лайвсиди, ну и для удобства пользования всяких людей, которым не до логина и не до пароля, оно может быть отключено. |
- | * (х) Регистрация в системе. Нормальные | + | * Рабочий стол. |
- | * Рабочий стол | + | ** (х) Иконки на рабочем столе. Это такая незначащая часть. Иконки на рабочем столе --- быстрый доступ к какм-то файлам-каталогам-программам |
- | ** (х) Иконки на рабочем столе. Это такая незначащая часть. Иконки на рабочем столе | + | ** (х) Панели. Постоянно присутствующая на экране хреновина, выполняющая какие-то функции: часики отображают, кнопка пукс (путь к социализму) --- метаменю. Панель выполняет функцию визуализационную. Панель быстрого доступа (запуска). Практически то же самое, что и на рабочем столе, но сгруппированы в одном месте. Ящики выдвижные с быстрым запуском. Системный лоток. Список задач запущенных. Довольно удобная штука, которую придумале в эппле --- меню приложения. |
- | ** (х) Панели. Постоянно присутствующая на экране хреновина, выполняющая какие-то функции: часики | + | * (х) Виртуальные экраны и панель от них. Экран один, а граф. система делает вид, что их несколько, и разные окна могут регистрировать себя на разных экранах |
- | * (х) Виртуальные экраны и панель от них. | + | |
* (х) Постоянное меню | * (х) Постоянное меню | ||
* (х) Меню в окне | * (х) Меню в окне | ||
* (х) Сводные меню приложений | * (х) Сводные меню приложений | ||
- | * (х) Клавиатурные | + | * (х) Клавиатурные сокр., работа с раскладкой, и др. |
* (х) Оконный декоратор, управление окнами. Приложение не рисует обычно декорацию, оно должно отрабатывать события. Отрисовкой рамки занимается декоратор. | * (х) Оконный декоратор, управление окнами. Приложение не рисует обычно декорацию, оно должно отрабатывать события. Отрисовкой рамки занимается декоратор. | ||
- | Мы описали всё, но | + | Мы описали всё, но всё это опционально. |
- | + | Из таких кусочков состоит рабочий стол, но он может и не состоять. Поэтому от того, что может быть переходим к томцу, как это устроено. | |
- | + | ||
- | + | Почему графсреда устроена так гибко? почему всё необязательно? А что обязательно. Обязательна ровно одна вещь --- Х-сервер. Много-много лет назад существовала такая ОС, которая называлась The V System. Поскольку она была никакая несвободная, неоткрытая и была ровно до тех пор, пока её какая-то контора занималась. Для неё была граф. оболочка W System, она каким-то чудом выжила и перекочевала в МИТ, гнде продолжила развиваться по уже университетским стандартам и называлась Xwindow System. Эта графоболочка построена по клиентсерверной технологии. Сервер умеет выполнять какие-то графические команды: нарисуй прямоугольник, напечатай то-то. Это не простые команды, а специализированные под взаимодействие с другими программами. Второе свойство Х-сервера --- он опраживает устройства ввода-вывода --- мышь и клавиатура. То есть, граф. сервер это такой терминал в самом общем понятии, то есть оконеная программа, которая взаимодействует с пользователем. Это называется Х-сервер. Существует множество программ Х-клиентов, которые делают ровно то же самое, но со своей клиентской части, то есть посылают команды и обрабатываюьт данные об устройствах ввода-вывода. Взаимодействие между кл. и сервером происходит любым способом: через сеть, через файл-дырку... | |
- | + | Где-то в то же время изобреталась оконная система, и понятие окно тесно связано с клиент-сервером. То есть, приложению выделяется место, при попаданию курсором (например) в которое все события будут передаваться ему. Потм выяснилось, что курсор --- неудобно, и появилось понятие фокуса, нам необязательно опираться на положение курсора, мы просто говорим, что есть окно, и оно получает события. Понятно, что это понятие условное, и пикселы возбуждения не испытывают от того, что он в фокусе. Фокус мышкой удобен, когда она рядом, если же она уколзает постоянно, то это не очень удобно. Бывают и другие способы. Опять же, вспоминаем другие не столь гибкие оболочки, где всё это прибито гвоздями. | |
+ | |||
+ | взаимодействие клиента и сервера строго стандартизированно, и называется x11. | ||
Два варианта подключения по сети: | Два варианта подключения по сети: | ||
Строка 41: | Строка 41: | ||
В переменной окружения DISPLAY указывается адрес х-сервера, по умолчанию :0.0 (формат address:screen:display) | В переменной окружения DISPLAY указывается адрес х-сервера, по умолчанию :0.0 (формат address:screen:display) | ||
- | Ранее было сказано, что х-сервер работает с | + | Ранее было сказано, что х-сервер работает с устройстваим ввода и видеокартой. но это неправда. Не смотря на наличие mit magic cookie, протокол ненадёжный, печеньку можно перехватить, завалить оригинал, но думать об этом нужно только в том случае, если вы об этом думаете, вряд ли, если в комнате стоят три компьютера, то вы вряд ли будете оставаться спокойным, если вдруг одна машина умерла, а за другой сисдит какой-то волосатый дядька и радостно потирает руки. Поэтому для того, чтобы запустить х-клиенты, надо куда-то залогиниться. А поскольку логин обычно надёжный (secure-shell), то осталось попросить программу, которая его организует, одну вещь --- туннелировать х-протокол. То есть, на удалённой машине просто работает х-сервер, который перенаправляет запросы. |
Ещё бывает xprint и х-сервер в окне. | Ещё бывает xprint и х-сервер в окне. | ||
Строка 47: | Строка 47: | ||
Это самый базовый уровень. | Это самый базовый уровень. | ||
- | + | Разумеется, этого недостаточно. Вспомнин тот список, который был стёрт, и решим её методом одна задача-одна программа. Это вообще идеология unix, не делать комбайнов, которые постоянно разваливаются, а делать отдельных программ, которые хорошо желают свою работу, и потом налаживать взаимодействие между ними. | |
- | Разумеется, этого недостаточно. | + | |
- | Первое, что надо решить --- управление окнами. Это решается | + | Первое, что надо решить --- управление окнами. Это решается ттривально в плане инжиниринга, и эту задачу решили порядка 3 десятков программистких групп, существуует порядка 30 window-manager'ов. Обычно, помимо посылания разных команд приложениям, он рисует ещё и рамочку. |
Ещё --- меню. Можно встроить в window-manager, но может быть та же. | Ещё --- меню. Можно встроить в window-manager, но может быть та же. | ||
- | Виртуальные рабочие столы. Можно встроить в оконный менеджер, можно запустить специальную прокладку | + | Виртуальные рабочие столы. Можно встроить в оконный менеджер, можно запустить специальную прокладку |
- | Панели. Этим разным панелям могут | + | Панели. Этим разным панелям могут соотв. разные программы. |
Иконки на рабочем столе. | Иконки на рабочем столе. | ||
- | Никакой метафоры «рабочий стол» нет. Кто обязан представить рабочее пространство в виде рабочего стола? Никто, пока вы не попросите. И программа нарисует ещё несколько окошек, точно таких же. Другое дело, что вы их рассматриваете как иконки. | ||
- | Оконный менеджер --- программа особая, в частности, он делает то, чего не делают другие программы. Он берёт на себя все события, а потом только | + | Никакой метафоры «рыбочий стол» нет. Кто обязан представить рабочее пространство в виде рабочего стола? Никто, пока вы не попросите. И программа нарисует ещё несколько окошек, точно таких же. Другое дело, что вы их рассматриваете как иконки. |
+ | |||
+ | Оконный менеджер --- программа особая, в частности, он делает то, чего не делают другие программы. Он берёт на себя все события, а потом только отдать их другим окнам. Например, фокус. | ||
Таким способом, unix-way, мы сконструировали себе вполне осмысленное рабочее место. | Таким способом, unix-way, мы сконструировали себе вполне осмысленное рабочее место. | ||
Строка 78: | Строка 78: | ||
* встроенные в desktop enviroment менеджеры --- metacity, kwin | * встроенные в desktop enviroment менеджеры --- metacity, kwin | ||
- | + | Недостатки | |
- | Из-за разрозненности плохо организуется межпроцессное взаимодействие в плане обмена информацией, например, буфер обмена | + | Из-за разрозненности плохо организуется межпроцессное взаимодействие в плане обмена информацией, например, буфер обмена педназначен только для текста. Если надо копировать графику, размеченный текст и т. п., нужно использовать что-нибудь другое |
{{UNИX, осень 2007}} | {{UNИX, осень 2007}} | ||
{{Lection-stub}} | {{Lection-stub}} |