|
Norther
|
 |
« : 4 Февраля 2009, 08:57 » |
|
Уже наверно многие знают, что систему Линукс можно настроить так, чтобы за одним компьютером работало сразу несколько человек, при этом не мешая друг другу. Тем более на фоне мирового финансового кризиса это становится наиболее актуально в различных организациях. Такая конфигурация в разных источниках называется по-разному - "мультимониторная конфигурация", "Multihead", "Multiseat", "Multistation", "Multiterminal" и т.д. В интернете основаня масса описаний сводится к настройке такой конфигурации по принципу "1 видеокарта = 1 монитор". Но также существует возможность настроить компьютер на 2 рабочих места, подключив оба монитора к одной видеокарте (благо все современные видеокарты позволяют это сделать). Есть как платные решения, так и бесплатные. Самым популярным бесплатным решением стала настройка на базе Xephyr-сервера. Но у этого способа есть некоторые недостатки. Есть менее популярный способ - настройка на базе Xgl-сервера. У этого сервера нет тех недостатков, которые есть в Xephyr, да и работает он более устойчиво. К сожалению, литературы про этот способ в интернете мало, поэтому я 3 недели потратил на то, чтобы адаптировать этот способ к системе Ubuntu. В результате я сделал более-менне подробное описание этого способа, при этом постарался максимально избежать командной строки. Ещё хочу заметить, что данным способом можно настроить не только Xgl-сервер, но также и другие: Xephyr и Xnest, нужно только установить требуемые пакеты и слегка поправить скрипты. Пока ещё есть некоторые проблемы, поэтому просьба будет ко всем: если кто найдёт решение какой-либо проблемы, напишите сюда либо мне по электронной почте. Ну а если вы найдёте ещё какие-нибудь проблемы, которые не вошли в данное описание, обязательно опишите их, будем стараться их решить!
|
|
|
« Последнее редактирование: 30 Июня 2010, 12:37 от Norther »
|
Записан
|
|
|
|
|
BigAndy
|
 |
« Ответ #1 : 4 Февраля 2009, 10:26 » |
|
Скажите, ( вы насыпали мне соль на рану) а вы рассматривали таковые решения средствами обычного xorg? Если да, то в чем они оказались хуже приведенных Вами выше сервисов? Очень-очень интереснои актуально. Кроме того, задался целью (правда, средсвтами федоры для ppc) организовывать multiseat на SPS3 и sps2. А там мультисит на одной видеокарте - актуальнейшая тема!!!!. Пока ковыряю вот по этому hoow-to (кстати, к бубунте этот мануал ближе) http://www.automation.dn.ua/linux/3d-multiseat.html
|
|
|
|
« Последнее редактирование: 4 Февраля 2009, 10:30 от BigAndy »
|
Записан
|
|
|
|
|
yaleks
|
 |
« Ответ #2 : 4 Февраля 2009, 11:35 » |
|
Скажите, ( вы насыпали мне соль на рану) а вы рассматривали таковые решения средствами обычного xorg?
не получится с 1 видяхой на обычном. Да и поддержку 2-х видях там в последнее время ломают.
|
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #3 : 4 Февраля 2009, 13:07 » |
|
Скажите, ( вы насыпали мне соль на рану) а вы рассматривали таковые решения средствами обычного xorg? Если да, то в чем они оказались хуже приведенных Вами выше сервисов? Очень-очень интереснои актуально. Кроме того, задался целью (правда, средсвтами федоры для ppc) организовывать multiseat на SPS3 и sps2. А там мультисит на одной видеокарте - актуальнейшая тема!!!!. Пока ковыряю вот по этому hoow-to (кстати, к бубунте этот мануал ближе) http://www.automation.dn.ua/linux/3d-multiseat.htmlОбъясняю подробнее: всё это дело реализовывается при помощи сервера XGL. Принцип действия таков: сначала стартует сервер Xorg, а поверх него - два сеанса XGL. К сожалению средствами самого Xorg реализовать мультисит по принципу "1 видяха = 2 монитора" оказалось пока что невозможным (хотя фирме Userful это удалось, но при помощи пропатчивания Xorg'а; есть кстати более старая, но бесплатная версия Userful: http://openuserful.sourceforge.net/wiki/index.php/Main_Page Если хотите, можете поковырять исходники). По мануалу, который Вы привели, система настраивается по принципу "1 видеокарта = 1 монитор", это конечно же более производительный способ, но он требует под себя либо материнскую плату с 2-мя и более разъёмами PCI-E, либо специальные материнки, у которых при использовании внешней видеокарты внутренняя продолжает работать (это практически все материнки с чипсетами nForce/GeForce). Способ, описанный мною, требует для себя стандартного железа, обычной видеокарты с 2-мя разъёмами и стоимостью 30 уе, её вполне хватит. Но этот способ лучше всего применять в офисах. Есть ещё 2 способа мультисита по принципу "1видяха=2 монитора", это Xephyr и Xnest. Эти X-серверы потребляют ресурсов гораздо меньше, чем XGL, но они не поддерживают OpenGL, следовательно те приложения, которые используют OpenGL, работать не будут (в том числе и Wine, его нужно будет пересобирать отдельно без поддержки OpenGL, либо использовать бесплатную сборку от Etersoft'а). В интернете полно описаний, как настроить систему с Xephyr, но способ, описанный мной, хорош тем, что X-серверы не нужно патчить для поддержки драйверов Evdev, которые позволяют разделить клавиатуры и мыши. Более того: если Вам не понравится сервер XGL, вы можете банально снести пакет xserver-xgl и установить вместо него тот же xserver-xephyr, ну и скриптики запуска чуть подправить, и всё.
|
|
|
|
« Последнее редактирование: 4 Февраля 2009, 13:24 от Norther »
|
Записан
|
|
|
|
|
prof-alex
|
 |
« Ответ #4 : 4 Февраля 2009, 14:33 » |
|
Скажите, ( вы насыпали мне соль на рану) а вы рассматривали таковые решения средствами обычного xorg? Если да, то в чем они оказались хуже приведенных Вами выше сервисов? Тем, что очень нестабильно - зависает в произвольные моменты времени, абсолютно непредсказуемо. Кстати, при попытке входа с двух мест под одним пользователем виснет и это решение...
|
|
|
|
|
Записан
|
|
|
|
|
yaleks
|
 |
« Ответ #5 : 4 Февраля 2009, 14:43 » |
|
Тем, что очень нестабильно - зависает в произвольные моменты времени, абсолютно непредсказуемо. Кстати, при попытке входа с двух мест под одним пользователем виснет и это решение... вот так делать не надо, т.к. проблема скорее с KDE/Gnome не рассчитанных на такие издевательства.
|
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #6 : 4 Февраля 2009, 14:50 » |
|
Кстати, при попытке входа с двух мест под одним пользователем виснет и это решение...
Если Вы внимательно прочитали мою статью, то в самом конце был приведён выход из положения, как зайти в систему дважды под одним пользователем, чтобы система при этом не зависла.
|
|
|
|
|
Записан
|
|
|
|
|
prof-alex
|
 |
« Ответ #7 : 4 Февраля 2009, 17:33 » |
|
вот так делать не надо, т.к. проблема скорее с KDE/Gnome не рассчитанных на такие издевательства.
Не только, у меня используется xfce виснет влёт 
|
|
|
|
|
Записан
|
|
|
|
|
ANDSIB
|
 |
« Ответ #8 : 11 Марта 2009, 09:58 » |
|
Norther, будь добр, выложи статью в формате, который бы можно было читать везде и всем. А еще лучше прямо здесь, открытым текстом. А то не так-то просто просмотреть Ваш файл под виндовс.
|
|
|
|
|
Записан
|
|
|
|
Mike
Global Moderator
Участник
 
Offline
Пол: 
Сообщений: 7798
Откуда: Волгоград
|
 |
« Ответ #9 : 11 Марта 2009, 10:00 » |
|
Norther, будь добр, выложи статью в формате, который бы можно было читать везде и всем. А еще лучше прямо здесь, открытым текстом. А то не так-то просто просмотреть Ваш файл под виндовс.
тролль?
|
|
|
|
|
Записан
|
|
|
|
|
BigAndy
|
 |
« Ответ #10 : 11 Марта 2009, 23:29 » |
|
Будущее покажет.... Будем посмотреть.
|
|
|
|
|
Записан
|
|
|
|
|
sergebw
|
 |
« Ответ #11 : 25 Марта 2009, 12:30 » |
|
Пробовал кто-нибудь "Multiseat" на 8.10 (9.04)?
|
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #12 : 27 Апреля 2009, 14:34 » |
|
Обновил статью, добавил описание конфигурирования системы на Xephyr-сервере. Некоторые проблемы остались, так что если кто найдёт решение, либо заметите новые глюки, отписывайтесь сюда! 
|
|
|
|
|
Записан
|
|
|
|
|
|
saimon 2metra
Участник
 
Offline
Пол: 
Сообщений: 60
Откуда: Екатеринбург
|
 |
« Ответ #14 : 4 Мая 2009, 09:34 » |
|
Каких проблем из списка выше я избегу, если буду использовать multiseat по принципу 1 рабочее место = 1 видеокарта?
|
|
|
|
|
Записан
|
|
|
|
|
prof-alex
|
 |
« Ответ #15 : 4 Мая 2009, 10:12 » |
|
Каких проблем из списка выше я избегу, если буду использовать multiseat по принципу 1 рабочее место = 1 видеокарта?
Никаких, по опыту "пытливых", можно отметить что работа непосредственно с "железом" является очень нестабильной, и не зависящей от драйверов и настроек. Так что в любом случае xinerama, затем Xnest, Xgl или Xephyr, а в данном случае число видеокарточек мало на что влияет.
|
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #16 : 4 Мая 2009, 11:19 » |
|
to prof-alex: полностью не согласен! Если настраивать компьютер по принципу "1место = 1 видяха", то в этом случае не потребуется установка XGL, Xnest, Xephyr и т.д., всё будет разрулено средствами самого Xorg. При этом общее быстродействие системы будет ощутимо выше. Я в своей статье давал ссылку на сайт, где система настроена по такому принципу, на всякий случай выкладываю её в форуме, если кто не в курсе: http://www.automation.dn.ua/linux/3d-multiseat.htmlЕдинственный недостаток: это довольно дорогое удовольствие. Материнские платы с 2-мя PCI-E стоят от 3500 (а если учесть, что такие материнки полноформатные, то для них потребуется большой корпус ATX с неплохим блоком питания ватт эдак на 450), плюс 2 видяхи (пусть самые дешёвые по 1200 каждая), итого примерно 6000, приплюсуйте к этому стоимость остальных железяк... Если вы захотите использовать вариант "1 видяха AGP или PCI-E + 1 видяха PCI", то здесь вы сможете использовать стандартные материнские платы за 2000. Но PCI-ные видеокарты сейчас днём с огнём не сыщешь, особенно фирмы Matrox, которые лучше всего для этого подходят. А современные PCI-видеокарты типа GeForce NVS280 с памятью 64МБ стоят от 4000 и выше, и то только под заказ. Вариант, описанный мною - это бюджетный вариант, который больше подходит для офисов. Для него можно взять абсолютно любую материнку за 2000, даже формата mATX подойдёт, плюс любую, даже самую дешёвую видеокарту за 1200, у которой 2 видеовыхода (ну сейчас все такие идут), засунуть всё это в небольшой корпус с блоком питания 350Вт. В итоге получится дешевле тысяч на 3 - 5, но производительность будет ниже (т.е. нельзя будет одновременно порубаться в CS и поработать в Oo), но чем-то надо будет жертвовать.
|
|
|
|
« Последнее редактирование: 4 Мая 2009, 11:29 от Norther »
|
Записан
|
|
|
|
|
prof-alex
|
 |
« Ответ #17 : 4 Мая 2009, 13:34 » |
|
полностью не согласен! Если настраивать компьютер по принципу "1место = 1 видяха", то в этом случае не потребуется установка XGL, Xnest, Xephyr и т.д., всё будет разрулено средствами самого Xorg. При этом общее быстродействие системы будет ощутимо выше. Чужой опыт должен быть интересен всегда. Когда я начинал эту тему прорабатывать, пришлось многое попробовать. В результате удалось добиться определённых результатов. Я внимательно изучал всё что мог найти по данной теме, и натыкался на описание проблемы со стабильностью в работе таких систем. спустя полгода, когда уже обновилось ядро, да и Х-сервер тоже, машина стала "зависать", она могла проработать 6-7 часов, могла зависнуть через несколько секунд после старта Х-сервера. В общем, я понял, что данное решение требует более детальной проработки, в плане подгонки железа и софта. Перевёл всё на Xephyr и в ус не дую. Тем более, что задачи чисто офисные.
|
|
|
|
|
Записан
|
|
|
|
saimon 2metra
Участник
 
Offline
Пол: 
Сообщений: 60
Откуда: Екатеринбург
|
 |
« Ответ #18 : 4 Мая 2009, 16:56 » |
|
В промышленных масштабах внедрять пока не собираюсь, а вот на домашнем компе бы это дело организовал. По роду деятельности часто работаю дома - и тут куча рабочих столов, виртуальных машин, консолей; когда нужно жене поработать, у нас целая война организовывается  Мамка у меня с двумя портами PCI-E, помимо игровой видяхи завалялась еще офисная, да и клавы-мыши в наличии, дело только за вторым монитором - и это выйдет на порядок дешевле, чем брать второй комп или ноут. Да и интереснее  И мощности компа позволяют - 4 ядра камень, 4 гига рамы. Использование Кефира отпадает - тачка домашняя игровая, нужен ogl по-любому; первым вариантом попробую сам Хорг использовать. Спасибо за советы, огромный респект Нортеру за мануал; после опробования разных вариантов и попытки внедрения рабочего варианта обязательно отпишусь и добавлю пару строк в мануал от себя.
|
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #19 : 14 Ноября 2009, 11:34 » |
|
Глобальное обновление статьи, добавлено описания процесс настройки стандартного мультисита (1 видеокарта = 1 монитор) на обычной офисной материнской плате mATX и внешней видеокарте с использованием утилиты Xevdevserver и без неё (при помощи драйвера evdev); добавлен скрипт, позволяющий разрулить USB-порты между пользователями; добавлено описание, как разделить звук между пользователями; различные исправления и дополнения в самой статье. В процессе "обкатки" новой системы в статью будут вноситься изменения и дополнения. P.S.: было обнаружено, что необходимая утилита xevdevserver под Ubuntu 8.10 и старше не компилируется без дополнительных плясок с бубном. Поэтому я собрал эту утилиту в DEB-пакет в Ubuntu 8.04 и выложил в первом сообщении данного топика. Попробовал поставить в Ubuntu 9.10, вроде как не ругнулась, и даже прикинулась, что заработала. Попробуйте скачать и поэкспериментировать, если что-то не заработает, отписывайте сюда. Пакет xserver-xgl можно взять из репозиториев Ubuntu 8.04, он нормально устанавливается и на другие версии Ubuntu. P.P.S.: убрал DEB-пакеты xevdevserver, потому как выяснилось, что толку от них, как от козла молока: программа работала нормально только на том компьютере, на котором собиралась; при установке готового пакета на другой компьютер xevdevserver стартовал, но клавомыхи не разруливал. Так что вот такие невесёлые дела.  Чувствую, что начиная с Ubuntu 8.10, про мультисит с использованием XGL и Xevdevserver можно забыть, остаётся только стандартный и xephyr с драйверами evdev. Но, как говорится, хоть что-то, чем совсем ничего 
|
|
|
|
« Последнее редактирование: 21 Ноября 2009, 19:57 от Norther »
|
Записан
|
|
|
|
bafst
Участник
 
Offline
Пол: 
Сообщений: 12
Откуда: Планета Земля. Евразия(европейская ее часть)
|
 |
« Ответ #20 : 21 Ноября 2009, 23:29 » |
|
у меня вопрос касаемо karmic koala. Во-первых, читал, что xephyr уже поддерживает ogl, но не знаю можно ли верить блогам в интернете. Во-вторых в этой версии так перепахали GDM, что просто не понятно что и где править. Нет файлов ни gdm.conf ни gdm.conf-custom. По крайней мере там, где вы о них писали. В-третьих скомпилировать Xevdevserver в 9.10 не удалось, как и было вами сказано в предыдущем посте. В-четвертых, а можно ли все таки звук не разводить по разным выходам, а использовать pulsaudio, если, скажем вывод звука должен быть общим, можно ли как то это организовать?
|
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #21 : 22 Ноября 2009, 13:29 » |
|
1) насчёт Xephyr не знаю, не пробовал, но то, что н уже поддерживает драйвер evdev без патчей, это точно; да и нужен-то он в основном для офисных компов; 2) в нужной папке есть файл custom.conf, внешне похожий на gdm.conf-custom; попробуйте отредактировать его; 3) мне с горем пополам всё-таки удалось скомпилировать Xevdevserver, но если Вы будете использовать Xephyr либо сам Xorg, то смысла в этой утилите нет, всё можно разрулить за счёт evdev; 4) можно звук и не разводить, это уже кому как нравится.
|
|
|
|
|
Записан
|
|
|
|
bafst
Участник
 
Offline
Пол: 
Сообщений: 12
Откуда: Планета Земля. Евразия(европейская ее часть)
|
 |
« Ответ #22 : 22 Ноября 2009, 16:14 » |
|
>мне с горем пополам всё-таки удалось скомпилировать Xevdevserver
можете рассказать об этом по подробнее, а то у меня команда ./configure прошла успешно (вложение listing1.txt), а вот make - плохо (вложение listing2.txt)
скажите, Вы не в курсе как подправить настройки gdm 2.28.1 (Karmic Koala) чтобы был не gdmgreeter, а gdmlogin
P.S. я понимаю, что ответы на вопросы надо искать самому, но в основном все ссылки приводят на разные русскоязычные форумы именно к Вам. Предвижу Ваш вопрос - почему я не пользуюсь 8.04, а 9.10 - потому что без всяких патчей и правок руками, работает ТВ-тюнер, потому что звук работает тоже из коробки и не надо удалять pulseaudio. Самый свежий пакет программ тоже включен, поэтому 9.10
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #23 : 23 Ноября 2009, 01:05 » |
|
Там ещё надо в файл xserverconnection.h добавить строку #include <inttypes.h> после #include <X11/Xlib.h>, но в процессе компиляции выпадают 2 ошибки, которых в 8.04 не было: eventdevice.cpp: In member function ‘void EventDevice::writeEvent(uint16_t, uint16_t, int32_t)’: eventdevice.cpp:106: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result и xkeyboardeventdevice.cpp: In member function ‘virtual void SystemAction::execute(XKeyboardEventDevice*)’: xkeyboardeventdevice.cpp:170: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result Но в целом компиляция заканчивается успешно. Не знаю, как эти ошибки при компиляции повлияют на работу утилиты в целом, проверьте...
Насчёт GDM: попробуйте, как я и написАл в предыдущем посте, поиграться с файлом /etc/gdm/custom.conf. В секции [daemon] надо прописать Greeter=/usr/lib/gdm/gdmlogin
Если не трудно, отпишитесь о результатах сюда.
P.S.: я понимаю, почему многие уже не используют 8.04: она уже успела устареть, новейшее оборудование не поддерживает, да и огрехов в ней больше, чем в более поздних системах. Правда, в новых системах уже нет многих пакетов, которые были в 8.04 и которые очень и очень нужны, а собирать вручную довольно тяжело. один их таких пакетов - xserver-xgl. А чтобы перенести все свои наработки на новую систему, приходится поплясать с бубном (как в случае с xevdevserver). Следующей системой, которую наша фирма будет продвигать и использовать в качестве экспериментов, станет Infra-Linux 10.04 или 10.10 (зависит от того, какая из них получит статус LTS).
|
|
|
|
« Последнее редактирование: 23 Ноября 2009, 01:17 от Norther »
|
Записан
|
|
|
|
bormant
Global Moderator
Участник
 
Offline
Сообщений: 1404
|
 |
« Ответ #24 : 23 Ноября 2009, 09:23 » |
|
но в процессе компиляции выпадают 2 ошибки, которых в 8.04 не было: eventdevice.cpp: In member function ‘void EventDevice::writeEvent(uint16_t, uint16_t, int32_t)’: eventdevice.cpp:106: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result и xkeyboardeventdevice.cpp: In member function ‘virtual void SystemAction::execute(XKeyboardEventDevice*)’: xkeyboardeventdevice.cpp:170: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
Это не ошибки, а предупреждения. Суть предупреждения -- в месте вызова проигнорировано возвращенное значение ‘функция(параметры)’, объявленной с атрибутом предупреждать_о_неиспользовании_результата. В первом случае, после вызова write() не проверяется количество фактически записанных данных. Во втором -- не проверяется результат вызова команды оболочки (errorlevel). То есть в обоих случаях речь идет о возможных недостатках алгоритма, не предусматривающего действий на случай сбоя, но не об ошибках сборки.
|
|
|
|
|
Записан
|
|
|
|
bafst
Участник
 
Offline
Пол: 
Сообщений: 12
Откуда: Планета Земля. Евразия(европейская ее часть)
|
 |
« Ответ #25 : 23 Ноября 2009, 20:21 » |
|
Здравствуйте, установка Xevdevserver по Вашей рекомендации прошла на ура. Даже предупреждений не было о которых Вы писали. Правда, я мог и не доглядеть, после работы.  Файл Xevdevserver появился там где и должен быть. А вот проблемма с gdm осталась. Я на сайте gdm ( http://library.gnome.org/admin/gdm/2.28/configuration.html.ru) не описана даже секция [servers] для gdm 2.28.1. А у меня как раз эта версия (ну и скорее всего у всех у кого 9.10). О секции [servers] пишется только в gdm 2.20.10. ( http://library.gnome.org/admin/gdm/2.20/configuration.html.en). Никакой реакции от системы на модифицированный /etc/gdm/custom.conf не последовало. Хотя этот же файл хорошо работал в 8.04. Т.е. в 9.10 система запускается, и только на одном мониторе приглашение к входу. У Вас нет еще идей как запустить вторую сессию? файл custom.conf прилагаю.
|
|
|
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #26 : 24 Ноября 2009, 07:40 » |
|
Попробую на днях порыться... Кстати, а пакет XGL брали из 8.04 или компилировали вручную?
|
|
|
|
|
Записан
|
|
|
|
bafst
Участник
 
Offline
Пол: 
Сообщений: 12
Откуда: Планета Земля. Евразия(европейская ее часть)
|
 |
« Ответ #27 : 24 Ноября 2009, 08:30 » |
|
Из 8.04. Как раз тот, на который была ссылка в вашем описании. Он нормально установился. Даже табличка выходила, что то о XGL. Вы думаете проблема в нем еще может быть? Я попробую скомпилировать вечером.
>Попробую на днях порыться... О результатах отпишитесь, пожалуйста.
|
|
|
|
« Последнее редактирование: 24 Ноября 2009, 09:44 от bafst »
|
Записан
|
|
|
|
|
Norther
|
 |
« Ответ #28 : 24 Ноября 2009, 21:14 » |
|
Короче, порылся я в инете, и могу дать только один совет: в менеджере пакетов Synaptic помимо новой версии GDM 2.28 есть стандартная - 2.20. Пакет так и называется - gdm-2.20. Вот его и установите. В данный момент новый GDM является пока что ещё очень сырым, даже толковой утилиты конфигурирования нет. Вот когда он будет доработан по-нормальному, тогда и буду копаться.
Насчёт XGL: если он установился нормально, это ещё не значит, что он нормально заработает. В любом случае отпишитесь, получился ли у Вас мультисит на XGL под Ubuntu 9.10.
|
|
|
|
|
Записан
|
|
|
|
|
BigAndy
|
 |
« Ответ #29 : 25 Ноября 2009, 09:58 » |
|
Долго рылся, где в федоре пакет, который инициализирует мультисит. Наше ссылку на x.org, что эта фича интегрирована в xorgserver 1.7.1 Будем поковырять дальше.
|
|
|
|
|
Записан
|
|
|
|
|