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

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

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

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

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

Текущая версия Ваш текст
Строка 24: Строка 24:
* Копирование совпадает с выделением
* Копирование совпадает с выделением
-
Кроме праймари буффера есть секнодари и дерево подбуферов... Х11 это такая программа, которая за 25 лет обросла таким количеством вещей, что никто уже и не помнит, что это и зачем.
+
Кроме праймари буффера есть секнодари и дерево подбуферов... Х11 это такая программа, которая за 25 лет обросла таким количеством вещи, что никто уже и не помнит, что это и зачем.
Все перечисленные пункты делаются с помощью отдельных программ:
Все перечисленные пункты делаются с помощью отдельных программ:
Строка 41: Строка 41:
** встроенные окна
** встроенные окна
*** трей
*** трей
-
* Startup-shutdown notification --- если в консоли интерфейс управления совмещён с интерфейсом передачи данных, и там явно видно, когда запустилось приложение, как оно работает и как умирает; в случае с оконной системой действия по запуску и завершению могут никак не обозначаться визуально. В принципе, если бы народ соблюдал некую дисциплину программирования, то это можно было бы организовать даже на уровне наборного десктопа: был такой xtoolwait, который ждал, пока запущенное приложение зарегистрирует окно через xtool. Это решение, которое позволяет разруливать race condition, но возникает непонятное требование использовать xtool, ну и отслеживать хочется не только запуск.
+
* Startup-shutdown notification --- если в консоли интерфейс управления совмещён с интерфейсом передачи данных, и там явно видно, когда запустилось приложение, как оно работает и ка умирает; в случае с оконной системой действия по запуску и завершению могут никак не обозначаться визуально. В принципе, если бы народ соблюдал некую дисциплину программирования, то это можно было бы организовать даже на уровне наборного десктопа: был такой xtoolwait, который ждал, пока запущенное приложение зарегистрирует окно через xtool. Это решение, которое позволяет разруливать race condition, но возникает непонятное требование использовать xtool, ну и отслеживать хочется не только запуск.
* Документация. С одной стороны, документации полно, с другой, нигде не написано, что её полно, пользователю нужно решать конкретной проблемы, контекстная справка
* Документация. С одной стороны, документации полно, с другой, нигде не написано, что её полно, пользователю нужно решать конкретной проблемы, контекстная справка
* Интерфейс с системой. Граф. система сама по себе, система сама по себе. Всё это замечательно, только непонятно, как открыть флешку.
* Интерфейс с системой. Граф. система сама по себе, система сама по себе. Всё это замечательно, только непонятно, как открыть флешку.
-
Ни одна из этих задач не является неразрешимой, отличие в том, что если предыдущие задачи решаются в соответствии со стандартом х11, то есть, классически, и если нет у вас меню, запустили одну из десяти имеющихся, и будет вам меню, или свой photkeys, который поддерживает vaio, или ещё что-нибудь. Тут же, если хочется скопировать файл из одной программы в другую, то нужно, чтобы сначала программы договорились, нужен фреймворк. И садятся ребята и пишут фремворк, некий абстрактный рабочий стол, который оперировал бы не с окнами, а с объектами, и позволял с этими объектами работать.
+
Ни одна из этих задач не является неразрешимой, отличие в том, что если предыдущие задачи решаются в соответствии со стандартом х11, то есть, классически, и если нет у вас меню, запустили одну из десяти имеющихся, и будет вам меню, или свой photkeys, который поддерживает vaio, или ещё что-нибудь. Тут же, если хочется скопировать файл из одной программы в другую, то нудно, чтобы сначала программы договорились, нужен фреймворк. И садятся ребята и пишут фремворк, некий абстрактный рабочий стол, который оперировал бы не с окнами, а с объектами, и позволял с этими объектами работать.
-
В прошлом семестре говорилось, что графический интерфейс --- матрица пикселей, то рабочий стол --- работа с объектами. То есть нужна объектная модель, поверх которой всё будет работать. Так сделали ребята из кде. Кроме этого, нужна единая интерфейсная библиотека (например, qt). И если две программы написаны на qt, то они смогут обмениваться объектами. Так, собственно, и сделано в виндовсе --- там есть винапи, точнее был, пока не появился дотнет, и винапи теперь не поддерживается. Так что wine поддерживает винапи, а виндовз --- всё меньше.
+
В прошлом семестре говорилось, что графический интерфейс --- матрица пикселей, то рабочий стол --- работа с объектами. То есть нужна объектная модель, поверх которой всё будет работать. Так сделали ребята из кде. Кроме этого, нужна единая интерфейсная библиотека (например, qt). И если две программы написаны на qt, то они смогут обмениваться объектами. ТаК, собственно, и сделано в виндовсе --- там есть винапи, точнее был, пока не появился дотнет, и винапи теперь не поддерживается. Так что wine поддерживает винапи, а виндовз --- всё меньше.
Но теперь надо делать все программы с поддержкой этого всего. Иначе возвращаемся к тому, с чего начали. В итоге, каждый фреймворк имеет свою объектную модель, свою интерфейсную библиотеку, свой десктоп и свой набор ПО.
Но теперь надо делать все программы с поддержкой этого всего. Иначе возвращаемся к тому, с чего начали. В итоге, каждый фреймворк имеет свою объектную модель, свою интерфейсную библиотеку, свой десктоп и свой набор ПО.
Строка 60: Строка 60:
Скорее всего, то, что вы увидите, будет либо гном, либо kde, реже xfce. Ещё есть rox, на который лектор в своё время возлагал большие надежды.
Скорее всего, то, что вы увидите, будет либо гном, либо kde, реже xfce. Ещё есть rox, на который лектор в своё время возлагал большие надежды.
-
Но тут возникает проблема: такие вещи, как интерфейс с системой, подсистема помощи, и так далее, представляете себе уровень бессмысленной работы --- дали много денег и написать огромную графическую конфигурилку для системы, которая отвечает на вопросы типа «где моя флешка», она смотрит на системные логи и показывает всё пользователю. Но чреез полгода мог поменяться формат системных сообщений, линукс тоже не стоит на месте, кде изменяется. Первая проблема в том, что взаимодействие с системой и внешними источниками активности --- задача двойная и очень большая работа. Поэтому, сколько бы не писались такие программы, это работа на вчера.
+
Но тут возникает проблема: такие вещи, как интерфейс с системой, подсистема помощи, и так далее, представляете себе уровень бессмысленной работы --- дали много денег и написать огромную графическую конфигурилку для системы, которая отвечает на вопросы типа «где моя флешка», она смотрит на системные логи и показывает всё пользователю. но чреез полгода мог поменяться формат системных сообщений, линукс тоже не стоит на месте, кде изменяется. Первая проблема в том, что взаимодействие с системой и внешними источниками активности --- задача двойная и очень большая работа. Поэтому, сколько бы не писались такие программы, это работа на вчера.
-
Вторая проблема состоит в том, что все программы должны быть собраны с использованием этой системной библиотеки. Если запустить гткшное приложение в кде, то (по крайней мере, лет 5 назад), общаться с ним можно не более, чем в рамках х-протокола. Потому что оно не знает о кдешной модели.
+
Вторая проблема состоит в том, что все программы должны быть собраны с использованием этой системной библиотеки. Если запустить гткшное приложение в кде, то )по крайней мере, лет 5 назад(, общаться с ним можно не более, чем в рамках х-протокола. Потому что оно не знает о кдешной модели.
Всё это вплоть до настройки цветовых схем. Вот поменял фон программы. потом выясняется, что пользуешься не одной программой, а тридцатью, и как поменять у них всех? Существует xresources --- способ настройки всех иксовых программ одновременно. Организован он в виде единого дерева. Если есть окно класса window и с заголовком terminal, то к нему можно обратиться как через класс, так и через название.
Всё это вплоть до настройки цветовых схем. Вот поменял фон программы. потом выясняется, что пользуешься не одной программой, а тридцатью, и как поменять у них всех? Существует xresources --- способ настройки всех иксовых программ одновременно. Организован он в виде единого дерева. Если есть окно класса window и с заголовком terminal, то к нему можно обратиться как через класс, так и через название.

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

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