Различия между версиями 6 и 8 (по 2 версиям)
Версия 6 от 2008-08-10 20:23:00
Размер: 15886
Редактор: SergeyKorobkov
Комментарий:
Версия 8 от 2008-09-06 21:36:20
Размер: 16261
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
(рассказ про то, как работают иксы)
иксы это клиент серверная архитектура. сервер на вашей машине и забирает(обрабатывает входные сообщения от клавиатуры и мыши и других устройств ввода) всякие входные данные и передает их клиенту, который как-то обрабатывает эти сообщения и передает запросы икс серверу по поводу того что нужно сделать с графической платой, то есть что нарисовать.
=== Структура X-сервера ===
Строка 6: Строка 5:
Если бы не борьба компании ALT с изобретательными дураками, то можно было бы заставить работать все машины на одной или одной принимать все соединения, но в альте иксы запускаются с -nolisten tcp. Это сделано так, поскольку это рабочая станция, и там такой функционал не нужен. ==== Архитектура ====
Строка 8: Строка 7:
Это первый слой. иксы это клиент-серверная архитектура. Сервер на вашей машине обрабатывает входящие сообщения от клавиатуры и мыши (или других устройств ввода) и передает их клиенту, который их обрабатывает и передает запросы икс серверу по поводу того что нужно сделать с графической платой, то есть что нарисовать.
Строка 10: Строка 9:
Организация интерфейса привычная. Есть понятие окно. Это устанавливает серьёзное ограничение на сущности. То есть каждое приложение, когда хочет чего-то показывать на экране, регистрирует себе несколько прямоугольников, которые и есть окна, и может в них рисовать и принимать сигналы нажатия кнопок и движения мыши. Есть понятие фокуса, вы можете переключаться между окнами, разделяя устройство ввода, фокус может перемещаться, и в зависимости от того ,какой прямоугольник захватил его, ему и посылаются события с устройства ввода. Окна могут наслаиваться друг на друга. Существует понятие глубина, и на основе этого определяется какому окну относится некая точка, которая вообще говоря принадлежит нескольким окнам. На всё это накладываются некие дополнительные ограничения, связанные с тем, что вы объявляете что окна всего лишь окна, а управление ими отдаётся отдается приложению под названием окновод/диспетчер окон (window manager). Конечно, существует команда х-серверу по манипуляции окнами, и приложение может такие команды подавать, но было бы неправильно было бы перекладывать управление окнами приложению, поскольку тогда бы в каждом приложении была бы куча кода по манипуляции окнами. Поэтому логично было бы отдать задачу управления окнами отдельному приложению под названием window manager, который и позволяет пользователю всё это делать: двигать, изменять, превращать в иконки, скрывать окна, и так далее. Если бы не борьба компании ALT с изобретательными дураками, то можно было бы заставить работать все машины на одной или одной машиной принимать все соединения, но в альте иксы запускаются с -nolisten tcp. Это сделано так, поскольку в большинстве случаев это рабочая станция, к которой лучше ограничить доступ из сети и которой такой функционал не нужен.
Строка 12: Строка 11:
То, с чем мы имеем дело сейчас --- рабочий стол xfce с диспетчером окон xfwm, в юниоре, терминал сервере и мастере есть рабочий стол kde, диспетчером окон там является kwin ==== Интерфейс ====
Строка 14: Строка 13:
Есть ещё один слой, где мы забываем про протокол X11, и вспоминаем про то, как устроен экран. Тут мы говорим, что виртуальных экранов может быть несколько, есть приятные интерфейсные штуки, которые связаны не с окнами, а с управлением программными продуктами, и так далее. Например управление менюшками, кнопочками. Эти все функции может взять из себя диспетчер окон, а может и не брать. В графических средах типа kde/xfce запускается куча приложений, каждая из которых занимается отдельным делом (например иконки на рабочем столе). Организация интерфейса привычная. Есть понятие окно, которое сильно сужает варианты использования графического интерфейса. То есть каждое приложение, когда хочет чего-то показывать на экране, регистрирует себе несколько прямоугольников (т.е. окон), и может в них рисовать и принимать сигналы нажатия кнопок и движения мыши. Есть понятие фокуса, вы можете переключаться между окнами, разделяя устройство ввода, фокус может перемещаться, и в зависимости от того ,какой прямоугольник захватил его, ему и посылаются события с устройства ввода. Окна могут наслаиваться друг на друга. Существует понятие глубина, и на основе этого определяется какому окну относится некая точка, которая вообще говоря принадлежит нескольким окнам. На всё это накладываются некие дополнительные ограничения, связанные с тем, что вы объявляете что окна всего лишь окна, а управление ими отдаётся отдается приложению под названием окновод/диспетчер окон (window manager). Конечно, существует команда х-серверу по манипуляции окнами, и приложение может такие команды подавать, но неправильно было бы перекладывать управление окнами на приложение, поскольку тогда бы в каждом приложении была бы куча кода по манипуляции окнами. Поэтому логично было бы отдать задачу управления окнами отдельному приложению под названием window manager, который и позволяет пользователю всё это делать: двигать, изменять, превращать в иконки, скрывать окна, и так далее.
Строка 16: Строка 15:
Такое краткое содержание лекции про иксы. То, с чем мы имеем дело сейчас (в дистрибуитиве Lite) --- рабочий стол xfce с диспетчером окон xfwm, в юниоре, терминал сервере и мастере есть рабочий стол kde, диспетчером окон там является kwin
(''м.б. вставить скриншот?'')
Строка 18: Строка 18:
Дополнение. Что интересно пользователю, который сел за такую графическую среду. Первое, что интересно узнать: как настраивать эту графическую среду. Вещь первая --- альтератор. ==== Экран ====

Оставим протокол X11, и вспомним про то, как устроен экран. Тут мы говорим, что виртуальных экранов может быть несколько, есть приятные интерфейсные штуки, которые связаны не с окнами, а с управлением программными продуктами, и так далее. Например управление менюшками, кнопочками. Эти все функции может взять из себя диспетчер окон, а может и не брать. В графических средах типа kde/xfce запускается куча приложений, каждое из которых занимается отдельным делом (например иконки на рабочем столе).


=== Настройка графической среды ===

==== Использование Alterator ====

Запустим Центр Управления системой (он же Alterator)

{{attachment:../acc.png}}
Строка 22: Строка 33:
"Монитор 1024х768" это некая заглушка, когда данных о мониторе нет(монитор по умолчанию). Это не разрешение. Есть некоторые мониторы, о которых есть некоторые данные. Хотелось бы добавить распознаватель драйвера монитора, который является фаилом содержащим допустимые физические характеристики монитора. {{attachment:../acc_display.png}}
Строка 24: Строка 35:
Как устроен xorg.conf. Он состоит из секций, каждая отвечает либо за устройство, либо за синтетическое понятие (комплект устройств для общения с пользователем, или наоборот их части)(например, layout), или за некоторые фаилы(секция модули --- загружает модули). Что мы видим в секции layout... Далее идёт секция загрузки модулей: type1-шрифты, freetype-шрифты (проверить), glx --- трехмерная графика, dri --- графическое ускорение... Флаги: allowmouseopenfail --- чтобы иксы грузились, если мышь отвалится, кроме того, мышью можно управлять с клавиатуры (нажать сочетание shift+numlock, а потом использовать клавиши на цифровой клавиатуре для перемещения мыши). Кроме того, поворот колеса --- перемещение по оси z. Никто почти его не использует, поэтому их принято преобразовывать в нажатия кнопок 4 и 5. Если вдруг кнопки определились неправильно, и при нажатии на одну кнопку он делает то, что должно делать при нажатии на другую, то сначала запускаете xev, а потом xmodmap. "Монитор 1024х768" - это не разрешение, а некий монитор по умолчанию. Есть некоторые мониторы, о которых есть некоторые данные. Хотелось бы добавить распознаватель драйвера монитора, который является файлом содержащим допустимые физические характеристики монитора.
Строка 26: Строка 37:
Дальше идёт секция monitor. Если бы мы воспользовались конфигуратором, то мы бы увидели первые 4 строчки --- название (это именно название), физический размер, частота развёртки и частота кадров. Частота развертки --- это частота строк. Это параметры, которые вписал сюда конфигуратор, они соответствуют типичному монитору, который даёт нормальное разрешение 1024х768. Если достаточно хорошее железо, то тут может не быть ничего кроме identifier, поскольку есть протоколы DDC и EDID, которые позволяют договариваться видеокарте и монитору, какие режимы работы для них приемлемы, и х-сервер может эту информацию вынимать. ==== Файл xorg.conf ====
Строка 28: Строка 39:
Есть утилита modeline, которая выдаёт информацию о доступных режимах. Как устроен xorg.conf. Он состоит из секций, каждая отвечает либо за устройство, либо за синтетическое понятие (комплект устройств для общения с пользователем, или наоборот их части)(например, layout), или за некоторые файлы (секция Module --- загружает модули).
Строка 30: Строка 41:
Как у нас устроена ЭЛТ. У нас идет луч и он рисует пиксели. Как доходит о конца он выключается и перегоняется на начало следующей строки, включается и опять рисует. Когда он доходит до конца всего кадра он в выключенном состоянии перегоняется наверх, и начинает все сначала.
Вообще говоря это можно представить так: пусть у нас есть цилиндр, и луч ходит по спирали, но часть этого цилиндра мы не видим, так ка экран у нас меньше чем размер цилиндра. Поэтому там луч выключается. А потом это все разворачивается и мы видим наш экран.
Первая секция - секция layout.
 
Секция загрузки модулей (Module): type1-шрифты, freetype-шрифты (проверить), glx --- трехмерная графика, dri --- графическое ускорение, dbe - работа с памятью.
 
Секция ServerFlags: allowmouseopenfail --- чтобы иксы грузились, если мышь отвалится. Кроме того, мышью можно управлять с клавиатуры (нажать сочетание shift+numlock, а потом использовать клавиши на цифровой клавиатуре для перемещения мыши).

Секция InputDevice: клавиатура и мышь. Драйвер клавиатуры --- kbd. С мышью стоит отметить, что последняя опция --- ZSxisMapping Кроме того, поворот колеса --- перемещение по оси z. Никто почти его не использует, поэтому их принято преобразовывать в нажатия кнопок 4 и 5. Если вдруг кнопки определились неправильно, и при нажатии на одну кнопку он делает то, что должно делать при нажатии на другую, то сначала запускаете xev, а потом xmodmap.

Секция Monitor. Если бы мы воспользовались конфигуратором, то мы бы увидели первые 3 строчки --- название (это именно название), частота развёртки и частота кадров. Частота развертки --- это частота строк. Считается, что безопасно показывать больше 60 кадров, а эргономично - больше 85. Эти параметры, вписанные сюда конфигуратором, соответствуют типичному монитору, который даёт нормальное разрешение 1024х768. Если монитор достаточно хороший, то тут может не быть ничего кроме identifier, поскольку есть протоколы DDC и EDID, которые позволяют договариваться видеокарте и монитору, какие режимы работы на каком разрешении для них приемлемы, и х-сервер может эту информацию вынимать.

Раздел Device --- видеокарты. Здесь может быть много разных настроек: аппаратное трехмерное ускорение, иногда карточки что-то не умеют и это нужно включать отдельно. Это место, в которое вписываются значения, который в альтераторе представляются в разделе драйвер.

Секция Screen. Это то, как на данном мониторе с карточкой включать разного рода графические режимы. Секция modes описывает, какие из именованных режимов в каком порядке включать. Их много, потому что разная глубина цвета. Там в конце есть приписка такая, что устройство, которое осуществляет аппаратный доступ к графическому ускорителю, будет иметь группу xgrp и права 0660.

Секция layout определяет, на каком screen какие устройства ввода применяются. В большинстве случаев переключатся между разными режимами можно с использованием ctrl+alt++, ctrl+alt+-, при этом виртуальный размер экрана остаётся прежним, а разрешение меняется.

===== ModeLine =====

Утилита modeline выдаёт информацию о доступных режимах работы монитора.

{{{
grep -i modeline /var/log/Xorg.0.log
}}}

Как у нас устроена ЭЛТ. У нас идет луч и он рисует пиксели. Как доходит до конца он выключается и перегоняется на начало следующей строки, включается и опять рисует. Когда он доходит до конца всего кадра он в выключенном состоянии перегоняется наверх, и начинает все сначала.
Вообще говоря это можно представить так: пусть у нас есть цилиндр, и луч ходит по спирали. Часть этого цилиндра мы не видим, так как экран плоский и потому меньше чем размер цилиндра. Поэтому там луч выключается. А потом это все разворачивается и мы видим наш экран.

(''тут, видимо, не помешала бы картинка с тором'')
Строка 35: Строка 72:
Далеко не все пикселы, которые мы выводим при таком дотклоке можно вывести. То есть, реальный размер картинки существенно меньше, или частота кадров существенно меньше, чем возможно. ModeLine --- способ вручную настроить монитор. Для этого есть xvidtune. Далеко не все пикселы, которые мы выводим при таком дотклоке можно вывести. То есть, реальный размер картинки существенно меньше, или частота кадров существенно меньше, чем возможно. ModeLine --- это способ вручную настроить монитор. Сделать это можно программой xvidtune.
Строка 38: Строка 76:
Вот здесь есть все те параметры из modline. Вот здесь есть все те параметры из modeline.
Строка 40: Строка 78:
Есть видеокарты и режимы, где оно настраивается. Не настраивается это в vesa и ещё некоторых. vesa просто лезет в видеокарточку и достает оттуда доступные режимы. Он не умеет ничего менять, но знает, что если установить такие параметры, то оно должно заработать. Есть видеокарты и режимы, где оно настраивается. Не настраивается это в vesa и ещё некоторых. vesa просто лезет в видеокарточку и достает оттуда доступные режимы. Он не умеет ничего менять, но знает, что если установить определенные параметры, то оно должно заработать.
Строка 42: Строка 80:
Дальше идёт раздел Device --- видео карточки, там можно настроить видеокарту.Здесь может быть много разных настроек: различное аппаратное трехмерное ускорение, иногда карточки что-то не умеют и это нужно включать отдельно.(это место, в которое вписываются значения, который в альтераторе представляются в разделе драйвер).
Строка 44: Строка 81:
Screen. Теперь мы занимаемся синтетическими штуками. Это то, как на данном мониторе с карточкой включать разного рода графические режимы. Секция modes описывает, какие из именованных режимов в каком порядке включать. Их много, потому что разная глубина цвета. Там в конце есть приписка такая, что устройство, к которое осуществляет аппаратный доступ к графическому ускорителю, оно будет иметь группу xgrp и права 0660. Существует программа xev, которая ловит события с устройств ввода и выводит по ним информацию.
Строка 46: Строка 83:
Есть ещё одна синтетическая штука, layout, которая определяет, на каком screen какие устройства ввода применяются. В большинстве случаев переключатся между разными режимами можно с использованием ctrl+alt++, ctrl+alt+-, при этом виртуальный размер экрана остаётся прежним, а разрешение меняется. Ещё один момент, связанный с изменением разрешения --- его можно сделать с использованием утилиты xrandr.

Есть программа xev, которая ловит события с устройств ввода и выводит по ним информацию.
Строка 51: Строка 85:
''а результат работы программы был?''

Для включения дополнительных трёх кнопок на клавиатуре надо выбрать в настройках клавиатуры клавиатура acpi, при этом меняется /etc/X11/xinit/Xkbmap. В какой-то момент появился setxkbmap, который повторяет синтаксис xorg.conf, и позволяет каждому пользователю настраивать клавиатуру по-своему.
Строка 52: Строка 90:
Строка 54: Строка 93:
Для включения дополнительных трёх кнопок надо выбрать в настройках клавиатуры клавиатура acpi, при этом меняется /etc/X11/xinit/Xkbmap. В какой-то момент появился setxkbmap, который повторяет синтаксис xorg.conf, и позволяет каждому пользователю настраивать клавиатуру по-своему. Изменить режим работы монитора можно также с помощью xrandr

Строка 62: Строка 103:
|| 20 || 1 || 1 || 1 || || 1 || SergeyKorobkov, VladimirLysikov, MaximByshevskiKonopko || || || || 20 || 1 || 1 || 1 || || 1 || SergeyKorobkov + ПетрНикольский, VladimirLysikov, MaximByshevskiKonopko || || ||

Настройка X-сервера

Структура X-сервера

Архитектура

иксы это клиент-серверная архитектура. Сервер на вашей машине обрабатывает входящие сообщения от клавиатуры и мыши (или других устройств ввода) и передает их клиенту, который их обрабатывает и передает запросы икс серверу по поводу того что нужно сделать с графической платой, то есть что нарисовать.

Если бы не борьба компании ALT с изобретательными дураками, то можно было бы заставить работать все машины на одной или одной машиной принимать все соединения, но в альте иксы запускаются с -nolisten tcp. Это сделано так, поскольку в большинстве случаев это рабочая станция, к которой лучше ограничить доступ из сети и которой такой функционал не нужен.

Интерфейс

Организация интерфейса привычная. Есть понятие окно, которое сильно сужает варианты использования графического интерфейса. То есть каждое приложение, когда хочет чего-то показывать на экране, регистрирует себе несколько прямоугольников (т.е. окон), и может в них рисовать и принимать сигналы нажатия кнопок и движения мыши. Есть понятие фокуса, вы можете переключаться между окнами, разделяя устройство ввода, фокус может перемещаться, и в зависимости от того ,какой прямоугольник захватил его, ему и посылаются события с устройства ввода. Окна могут наслаиваться друг на друга. Существует понятие глубина, и на основе этого определяется какому окну относится некая точка, которая вообще говоря принадлежит нескольким окнам. На всё это накладываются некие дополнительные ограничения, связанные с тем, что вы объявляете что окна всего лишь окна, а управление ими отдаётся отдается приложению под названием окновод/диспетчер окон (window manager). Конечно, существует команда х-серверу по манипуляции окнами, и приложение может такие команды подавать, но неправильно было бы перекладывать управление окнами на приложение, поскольку тогда бы в каждом приложении была бы куча кода по манипуляции окнами. Поэтому логично было бы отдать задачу управления окнами отдельному приложению под названием window manager, который и позволяет пользователю всё это делать: двигать, изменять, превращать в иконки, скрывать окна, и так далее.

То, с чем мы имеем дело сейчас (в дистрибуитиве Lite) --- рабочий стол xfce с диспетчером окон xfwm, в юниоре, терминал сервере и мастере есть рабочий стол kde, диспетчером окон там является kwin (м.б. вставить скриншот?)

Экран

Оставим протокол X11, и вспомним про то, как устроен экран. Тут мы говорим, что виртуальных экранов может быть несколько, есть приятные интерфейсные штуки, которые связаны не с окнами, а с управлением программными продуктами, и так далее. Например управление менюшками, кнопочками. Эти все функции может взять из себя диспетчер окон, а может и не брать. В графических средах типа kde/xfce запускается куча приложений, каждое из которых занимается отдельным делом (например иконки на рабочем столе).

Настройка графической среды

==== Использование Alterator ====

Запустим Центр Управления системой (он же Alterator)

../acc.png

То, что вы видите, это некий графический интерфейс к пачке утилит, которые являются мозгом для определения возможностей графической подсистемы, а с другой стороны, к конфигурационный файлу системы xorg.

../acc_display.png

"Монитор 1024х768" - это не разрешение, а некий монитор по умолчанию. Есть некоторые мониторы, о которых есть некоторые данные. Хотелось бы добавить распознаватель драйвера монитора, который является файлом содержащим допустимые физические характеристики монитора.

Файл xorg.conf

Как устроен xorg.conf. Он состоит из секций, каждая отвечает либо за устройство, либо за синтетическое понятие (комплект устройств для общения с пользователем, или наоборот их части)(например, layout), или за некоторые файлы (секция Module --- загружает модули).

Первая секция - секция layout.

Секция загрузки модулей (Module): type1-шрифты, freetype-шрифты (проверить), glx --- трехмерная графика, dri --- графическое ускорение, dbe - работа с памятью.

Секция ServerFlags: allowmouseopenfail --- чтобы иксы грузились, если мышь отвалится. Кроме того, мышью можно управлять с клавиатуры (нажать сочетание shift+numlock, а потом использовать клавиши на цифровой клавиатуре для перемещения мыши).

Секция InputDevice: клавиатура и мышь. Драйвер клавиатуры --- kbd. С мышью стоит отметить, что последняя опция --- ZSxisMapping Кроме того, поворот колеса --- перемещение по оси z. Никто почти его не использует, поэтому их принято преобразовывать в нажатия кнопок 4 и 5. Если вдруг кнопки определились неправильно, и при нажатии на одну кнопку он делает то, что должно делать при нажатии на другую, то сначала запускаете xev, а потом xmodmap.

Секция Monitor. Если бы мы воспользовались конфигуратором, то мы бы увидели первые 3 строчки --- название (это именно название), частота развёртки и частота кадров. Частота развертки --- это частота строк. Считается, что безопасно показывать больше 60 кадров, а эргономично - больше 85. Эти параметры, вписанные сюда конфигуратором, соответствуют типичному монитору, который даёт нормальное разрешение 1024х768. Если монитор достаточно хороший, то тут может не быть ничего кроме identifier, поскольку есть протоколы DDC и EDID, которые позволяют договариваться видеокарте и монитору, какие режимы работы на каком разрешении для них приемлемы, и х-сервер может эту информацию вынимать.

Раздел Device --- видеокарты. Здесь может быть много разных настроек: аппаратное трехмерное ускорение, иногда карточки что-то не умеют и это нужно включать отдельно. Это место, в которое вписываются значения, который в альтераторе представляются в разделе драйвер.

Секция Screen. Это то, как на данном мониторе с карточкой включать разного рода графические режимы. Секция modes описывает, какие из именованных режимов в каком порядке включать. Их много, потому что разная глубина цвета. Там в конце есть приписка такая, что устройство, которое осуществляет аппаратный доступ к графическому ускорителю, будет иметь группу xgrp и права 0660.

Секция layout определяет, на каком screen какие устройства ввода применяются. В большинстве случаев переключатся между разными режимами можно с использованием ctrl+alt++, ctrl+alt+-, при этом виртуальный размер экрана остаётся прежним, а разрешение меняется.

ModeLine

Утилита modeline выдаёт информацию о доступных режимах работы монитора.

grep -i modeline /var/log/Xorg.0.log

Как у нас устроена ЭЛТ. У нас идет луч и он рисует пиксели. Как доходит до конца он выключается и перегоняется на начало следующей строки, включается и опять рисует. Когда он доходит до конца всего кадра он в выключенном состоянии перегоняется наверх, и начинает все сначала. Вообще говоря это можно представить так: пусть у нас есть цилиндр, и луч ходит по спирали. Часть этого цилиндра мы не видим, так как экран плоский и потому меньше чем размер цилиндра. Поэтому там луч выключается. А потом это все разворачивается и мы видим наш экран.

(тут, видимо, не помешала бы картинка с тором)

Первый параметр --- dot clock(количество пикселей в секунду которое может отображать монитор), второй параметр --- ширина видимой часть в пикселах, дальше ширина в пикселах плюс одна половинка, вторая половинка и дальше --- ширина всего цилиндра. Аналогично устроена высота. Для более точной информации смотрите man XF86vidmodemodmodeline. (o_O)

Далеко не все пикселы, которые мы выводим при таком дотклоке можно вывести. То есть, реальный размер картинки существенно меньше, или частота кадров существенно меньше, чем возможно. ModeLine --- это способ вручную настроить монитор. Сделать это можно программой xvidtune.

../xvidtune.png

Вот здесь есть все те параметры из modeline.

Есть видеокарты и режимы, где оно настраивается. Не настраивается это в vesa и ещё некоторых. vesa просто лезет в видеокарточку и достает оттуда доступные режимы. Он не умеет ничего менять, но знает, что если установить определенные параметры, то оно должно заработать.

Существует программа xev, которая ловит события с устройств ввода и выводит по ним информацию.

../xev.png

а результат работы программы был?

Для включения дополнительных трёх кнопок на клавиатуре надо выбрать в настройках клавиатуры клавиатура acpi, при этом меняется /etc/X11/xinit/Xkbmap. В какой-то момент появился setxkbmap, который повторяет синтаксис xorg.conf, и позволяет каждому пользователю настраивать клавиатуру по-своему.

Есть программа xbindkeys, которая позволяет забиндить действия на чего-нибудь полезное.

../xbindkey.png

Изменить режим работы монитора можно также с помощью xrandr


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

20

1

1

1

1

SergeyKorobkov + ПетрНикольский, VladimirLysikov, MaximByshevskiKonopko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080731/03XConfiguration (последним исправлял пользователь FrBrGeorge 2008-10-15 13:46:17)