Единое окно доступа к образовательным ресурсам

Десятая конференция разработчиков свободных программ: Тезисы докладов

Голосов: 0

В книге собраны тезисы докладов, одобренных Программным комитетом десятой конференции разработчиков свободных программ, которая прошла в городе Калуге 20-22 сентября 2013 года.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
    Дневное заседание (15.30–18.40)                                         21




          Рис. 2: Команда Проверить точки управления



Андрей Иванович Бодренко, Ирина Ивановна Бодренко
Волгоград, Волгоградский государственный университет

   Система видеосвязи для невидимого интернета

                                Аннотация
        Разработан интернет проект, представляющий собой систему ви-
   деосвязи и специальный браузер для сети I2P (невидимый интернет
   проект, открытое и свободное ПО). I2P является кросс-платформенным
   программным обеспечением, написанным на Java. В докладе представ-
   ляются приложения для работы в сети I2P: программа организации
   видеоконференций, файлового обмена, упрощенной инсталляции сети
   I2P.
        С помощью представленного программного обеспечения строится
   оверлейная (через I2P), самоорганизующаяся, распределенная, мас-
   штабируемая сеть. Каждому пользователю выделяется постоянный ад-


22                                                             21 сентября


     рес I2P в формате с расширением b32.i2p. Этот адрес можно рассмат-
     ривать как статический IP адрес компьютера в обычном интернете. При
     этом пользователь имеет возможность сам изменить свой статический
     адрес в сети I2P. Показываются возможности применения этой безсер-
     верной технологии, например, построение системы видео-наблюдения
     с большим количеством видео камер, системы мгновенных сообще-
     ний. Рассматривается пример портабельных приложений для запуска
     сети I2P, не требующих установки. Отдельно описывается взаимодей-
     ствие представленных приложений с межсетевыми экранами, с приме-
     нением NAT. Рассматриваются возможности работы приложений через
     fairwall.
         В докладе отмечается надежность работы представляемого про-
     граммного обеспечения. Представленная технология позволяет поль-
     зователям работать в сети I2P, используя все основные функции и
     возможности обычного интернета. При этом устойчивость соединений
     гарантируется безсерверностью сети I2P.
         В докладе описываются некоторые недостатки сети I2P, к которым
     относится недостаточная, порой, скорость невидимого интернета. Рас-
     сматривается возможность развития представленной технологии для
     мобильных приложений и построения системы альтернативного интер-
     нета с использованием Wi-Fi.


Пожидаев Михаил Сергеевич
Томск, ALT Linux
Проект:   Deepsolver http://deepsolver.org

      Deepsolver: статус разработки и предложения

                                  Аннотация
        Deepsolver это менеджер пакетов, разрабатываемый в ALT Linux.
     Доклад освещает состояние процесса разработки, встретившиеся труд-
     ности, а также содержит некоторые предложения для дальнейшего раз-
     вития.
   Настоящая статья содержит обзор процесса разработки менедже-
ра пакетов Deepsolver, описание некоторых трудностей, которые были
встречены в ходе работы, и ряд предложений для дальнейшего разви-
тия проекта. В отличие от намерений, высказанных разработчиками
Deepsolver ранее, нынешняя реализация утилиты основана на алго-
ритме minisat. Все попытки применить 2-SAT алгоритмы приводили


Утреннее заседание (10.00–13.20)                                   23


к существенному ограничению гибкости и по этой причине были от-
клонены. Поддержка Deepsolver интегрирована в набор утилит girar
и функционирует на сборочной площадке git.altlinux.org.
    Одна из самых сложных проблем, с которой пришлось столкнуть-
ся в процессе разработки, заключается в том, что SAT-решение затра-
гивает необоснованно большое число пакетов. На практике это приво-
дит к удалению из системы пакетов, присутствие которых не делает
выполнение задачи пользователя невозможным. Рассмотрим для при-
мера фрагмент SAT-уравнения: (!r∨a∨i). Здесь r некоторый зависи-
мый пакет, a некоторый пакет доступный для установки из репози-
тория, i некоторый пакет, установленный в системе. Если алгоритм
выбрал для установки a, i может быть как “истина”, так и “ложь”, и это
никак не влияет на выполнимость запроса пользователя. В математи-
ческой постановке обе ветви решений имеют одинаковый приоритет.
    В настоящий момент Deepsolver содержит две реализованные оп-
тимизации, но их недостаточно. Первая из них пытается по мере по-
строения уравнения предугадать, какие переменные получат досто-
верно то или иное значение, после чего исключает из уравнения кло-
зы, выполнимость которых оказывается очевидной. После исключе-
ния количество затронутых пакетов уменьшается, и это даёт частич-
ный желаемый результат.
    Другая идея учитывает пакеты, которые уже установлены в систе-
ме. Если установленный пакет появляется в некотором клозе без отри-
цания, но больше нигде не появляется в уравнении, то пакет должен
остаться установленным, а весь клоз с ним считается истинным. Этот
метод в терминологии Deepsolver назван “отложенными клозами”, т. к.
они добавляются в уравнение только после второго включения уста-
новленного пакета.
    Предложенные методы частично решают описанные проблемы.
К недостатку первого подхода, например, относится то, что он чув-
ствителен к порядку вычислений. Они получили своё развитие в идее,
которая описана ниже и находится сейчас в стадии реализации для по-
становки вычислительного эксперимента. Все клозы могут быть раз-
биты на группы, которые отражают действия, необходимые для воз-
можности установки или удаления некоторого пакета. Между подоб-
ными группами может быть определено множество ссылок, которые
отражают, какая группа приводит к необходимости обработки воз-
можности установки или удаления пакета. Ссылки подсчитываются
и после удаления некоторых из них запускается алгоритм “сборки му-


24                                                    21 сентября


сора”. Удаление ссылок возможно как в случае удаления установлен-
ных пакетов, которые нигде не включены с отрицанием, до запуска
minisat, так и после него для тех переменных, значение которых не
изменилось.
   Ниже предлагаются несколько дополнительных идей для дальней-
шего развития Deepsolver. Все они подразумевают введение третьего
уровня управления пакетами без изменения текущей функциональ-
ности (первым уровнем считается librpm). Пользователи, привыкшие
к поведению утилит в стиле APT, не заметят отличий в работе.
   Первое предложение заключается в добавлении новых сущностей
для обработки пакетным менеджером, таких как шрифты, jar-файлы
и т. д. Внутренняя их поддержка должна быть реализована в гиб-
кой форме, чтобы любое требуемое расширение их множества могло
быть выполнено без модификации C/C++ кода. Любая информация,
необходимая для сопоставления пакетов и сущностей в них, долж-
на подготавливаться большей частью автоматически на этапе сборки
пакета, не запрещая мэйнтейнеру вносить корректировки по его же-
ланию.
   Главная причина, по которой такие функции возложены именно
на пакетный менеджер, в том, что только он в системе имеет полную
информацию о приложениях и данных, которые не только уже были
установлены пользователем, но и могут быть установлены из репо-
зитория. В случае рассинхронизации расширенной информации вы-
вод пакетного менеджера останется всегда корректным, но, возмож-
но, будет неполным. Необходимо быть осторожным, выбирая, какие
типы новых сущностей должны быть добавлены. Неясно, стоит ли та-
ким образом обрабатывать, например, модули ядра. Вероятно, часть
функций администрирования должны производиться по-старому.
   Другое предложение подразумевает отслеживание пакетов, кото-
рые меняют поведение системы. Например, к ним относится пакет
acpid-events-power. Важной особенностью этих пакетов является то,
что при их установке или удалении не должны затрагиваться ни-
какие другие пакеты. Оба предложения, очевидно, хорошо подходят
для того, чтобы повысить удобство управления системой при помощи
оконных утилит администрирования.


Утреннее заседание (10.00–13.20)                                               25


Пожидаев Михаил Сергеевич
Томск, ALT Linux
Проект:   Deepsolver http://deepsolver.org

     Deepsolver: development status and suggestions

                                  Аннотация
        Deepsolver is a package manager being under development in ALT
   Linux. The report covers various questions related to current work status
   as well as some suggestions to be considered by community members
   for further project evolution.
    This report includes a survey of Deepsolver developing status, covers
some noticeable difficulties faced during the work and offers several
suggestions for further implementation. In contrast with the statements
made by Deepsolver developers earlier at present Deepsolver got minisat-
based solver. Any 2-SAT approaches considered for implementation
previously cause a lack of flexibility and that makes them not suitable
anymore. Deepsolver support is now integrated to girar utilities and
successfully deployed on ALT Linux package building hosts.
    Rather difficult problem faced amid development process is a unreason-
ably big number of the packages affected during user task processing.
In most cases it can easily lead to removing from the system some set
of packages which presence does not make the same general solution
impossible. For example, consider the following situation written as a part
of SAT-equation: (!r ∨ a ∨ i). Here r is some dependent package, a
is a package in a repository and i is a installed package. If algorithm
once selected a i can be either “true” or “false” without an influence
to a solution. Generally there is no priority between these branches.
    To avoid any unnecessary consequences Deepsolver now tries to do
a couple of optimizations described below but generally they are still
insufficient and research should be continued. First attempt tries to
predict which packages will be installed or removed anyway and exclude
corresponding clauses from the equation as we already know that
the result does not depend on them anymore. After an exclusion some
previously affected packages are not involved in equation and this yields
desired result.
    The second optimization idea revolves around packages already
installed in the system. Once they appear in equation there is a chance


26                                                            21 сентября


they will not appear again and if corresponding clause does not imply
intentional package removing we can consider such clause evaluated
as “true” since installed package remains installed. This technique
is called in Deepsolver as “postponed clauses”. After first appearance
of installed package clause containing it is constructed but actually
is added to equation only after second appearance.
    These attempts partially solve the problem of unreasonably affected
packages but that is not enough yet. The quality of described attempts is
deeply depended on the order of processed packages. The further evolution
of these ideas is described below and their implementation is in progress
now. All clauses can be divided onto groups describing the actions needed
for installation or removing of a particular package. We can define a
set of references between these groups reflecting what group causes
potential installation or removing of a package. The references should
be counted and if some of them are removed we can launch a garbage
collecting strategy to remove all groups left without any references
to them. Removing of references is possible before and after minisat
algorithm execution. The first case implies removing of clauses containing
the installed packages which do not appear anywhere in a equation
in negative state. After the minisat launch we can remove the references
associated with the variables which state is not changed during SAT-
solving. In both cases after the garbage collecting all variables used only
in removed groups can be safely ignored even if SAT-solution yields change
of their value.
    We would like suggest several things to be considered by the community
for further Deepsolver evolution. All of them imply creation of a
new level of package management while current Deepsolver functions
implement second level with using package formats libraries as first level
(librpm, etc.). All proposed functions do not change anything in current
architecture so all users used to work with any APT-like utilities will not
notice any changes.
    The first idea proposes adding new entities for control and processing
by Deepsolver utilities. In particular such as fonts, jar-archives, etc.
Internal implementation should be done in general form allowing easy and
flexible enhancing with new types of entities vendor wants. Any additional
information required for association between packages and entities should
be collected on repository metadata construction either automatically or
with package maintainers support.


Утреннее заседание (10.00–13.20)                                         27


    The main reason why package manager is the most suitable place
for a idea like that can be easily explained since the package manager
is nearly the single place in a system with complete awareness what
exact software and data are accessible through attached repositories.
It can intersect enhanced information about proposed entities with list
of really available packages and provide to user a available entities
list of a given type precisely. For example, fonts. Even in case of any
synchronization problems provided information will be always actual
in sense of availability but probably incomplete. We would like to urge
be cautious considering various types of files to be processed as a entity
with package manager. For example, it is unclear whether kernel modules
should be handled such manner or not. There are some cases that must
be installed and removed with traditional administrative tools.
    The second offer proposes designation of some packages like packages
changing system behaviour. For example, packaged event file for acpid
service changes buttons handling (in particular, power button). A user
may want to view complete lists of such options with easy way to
change their status (leading to package installation and removing). To be
proper option as it is suggested above a package should be available for
installation or removing without affecting other packages for consequent
installation or removing. Only package manager is able to construct list
of options satisfying all requirements so the best quality could be obtained
only if this technique is a package manager essential part. Entities
and options features of a package manager evidently are well-suited
for integration to high-level GUI-instruments for system configuration
making GNU/Linux desktop more user-friendly.

Пожидаев Михаил Сергеевич
Томск, ALT Linux
Проект:   Luwrain http://luwrain.org

     Luwrain: ОС для людей с проблемами зрения

                               Аннотация
      Luwrain это операционная система для людей с проблемами зре-
   ния. Она наследует наиболее успешные достижения проекта ALT Linux
   Homeros и развивает их. Доклад освещает архитектуру системы и ос-
   новные принципы построения пользовательского окружения.


28                                                      21 сентября


    Luwrain     это операционная система (ОС), специально подго-
товленная для людей с проблемами зрения. Она основана на ядре
Linux и предлагает пользовательское окружение, которое представля-
ет все рабочие объекты в текстовом виде. Это существенно отличает
Luwrain от ОС с графическим интерфейсом (GUI). GUI         это один
из самых популярных вариантов пользовательской среды, но взаимо-
действие с ней осуществляется преимущественно при помощи мыши,
практически полностью недоступной незрячему человеку. Это делает
GUI крайне неудобной для работы при помощи речевого вывода.
    Luwrain очень близка по своей архитектуре к Android (Java по-
верх ядра Linux), но она не основана на Android из-за большого коли-
чества уязвимостей, несмотря на некоторые преимущества. Вероят-
но, известные проблемы безопасности вызваны глубокой модифика-
цией важных компонентов, таких как glibc, виртуальная машина Java
и т. д. Luwrain использует все базовые пакеты такими, как их пред-
лагают основные дистрибутивы GNU/Linux. Помимо прочего, этот
подход позволяет рассматривать Luwrain как универсальную плат-
форму без какой-либо ориентировки на конкретный тип компьютера:
настольный компьютер, мобильный компьютер, планшет и т. д. Раз-
витие информационных технологий идёт очень быстрыми темпами,
и в таких условиях подобная универсальность позволяет обезопасить
проект от потери актуальности из-за утраты интереса аудитории к
некоторому типу устройства.
    В архитектуре Luwrain есть три базовых компонента: ядро Linux,
системные службы и пользовательский интерфейс на основе Java. Всё
взаимодействие с необходимыми службами выполняется при помощи
D-Bus. По этой причине предпочтение отдаётся тем из них, которые
D-Bus поддерживают: udisks, network-manager и т. д. Для максималь-
ной совместимости системы с другими дистрибутивами GNU/Linux
все стандарты Free Desktop по мере возможности соблюдаются.
    Реализация пользовательского окружения является одной из са-
мых существенных задач в проекте. Она в значительной мере насле-
дует традиции окружения emacspeak, широко известного в сообществе
незрячих пользователей GNU/Linux. Главное преимущество, предла-
гаемое emacspeak, заключается в высокой скорости работы, которая
обычно недостижима при использовании GUI в сочетании с програм-
мами экранного доступа. Luwrain старается сохранить весь положи-
тельный опыт emacspeak, устранив главные недостатки. Пользова-
тель взаимодействует с несколькими прямоугольными текстовыми об-


Утреннее заседание (10.00–13.20)                                29


ластями, отображаемыми на экране в виде тайлов. Текст выводится
моноширинным шрифтом. Его размер и цвет, а также цвет фона уста-
навливаются общесистемно для всех областей по желанию пользова-
теля. Каждая область связана с одним из запущенных приложений, и
не все из них должны обязательно быть видимыми на экране. Поль-
зователь может свободно и быстро переключаться между приложени-
ями и областями, что качественно отличает Luwrain от emacspeak, ко-
торый вовсе не имеет понятия приложения. Предусмотрен особый тип
областей    так называемые всплывающие области, которые исполь-
зуются для организации диалога с пользователем. Их особенность за-
ключается в том, что они могут быть показаны как один вызов метода
в программном коде, который не возвращает управление до тех пор,
пока область не будет закрыта. Две подобных всплывающих обла-
сти имеют общесистемное значение это главное меню и командная
строка. Идея командной строки была унаследована от emacspeak, но
в новом виде её поведение несколько отличается. С её помощью мо-
гут быть вызваны только команды, которые имеют общесистемное
значение, и поведение которых не привязано к конкретной открытой
области.
   Стандартный набор приложений включает в себя файловый мене-
джер, утилиты для чтения почты, новостей, просмотра документов,
текстовый редактор, календарь и т. д. Почти все из них подразуме-
вают создание только оболочки в традициях Luwrain, поскольку по-
лезный функционал большей частью уже доступен в виде библиотек.
Эта возможность играла ключевую роль при выборе языка Java.
   Есть некоторые вещи, которые не удовлетворяют концепции, из-
ложенной нами. Функционально богатый веб-браузер не может быть
представлен в терминах текстового интерфейса, поэтому он должен
поставляться как внешнее приложение, работающее вне виртуальной
машины Java. Существуют два возможных подхода к выбору веб-
браузера:
   • реализовать легковесный экранный чтец для AT-SPI и использо-
     вать в качестве веб-браузера Firefox, который имеет поддержку
     AT-SPI;
   • использовать Chromium с включённым дополнением ChromeVox.

  Первый вариант несколько сложнее, т. к. реализация чтеца для
AT-SPI требует существенных усилий, но является более предпо-


30                                                                    21 сентября


чтительным, поскольку позволяет получить содержимое веб-страниц
внутри виртуальной машины Java в доступном для операций копи-
рования/вставки виде. Также это сделает доступными некоторые за-
крытые приложения, такие как, например, Skype.
   Установку Luwrain незрячий пользователь может выполнять са-
мостоятельно. Утилита для этого была подготовлена в рамках про-
екта ALT Linux Homeros и основана на технологии клонирования
LiveCD.

Пожидаев Михаил Сергеевич
Томск, ALT Linux
Проект:    Luwrain http://luwrain.org

            Luwrain: text-based OS for blind persons


                                     Аннотация
         Luwrain is an operating system for blind and visually impaired persons.
     It adopts most successful ideas from ALT Linux Homeros project with an
     attempt to eliminate known disadvantages. The report provides general
     system design overview.
    Luwrain is an operating system designed for blind and visually
impaired persons. It uses Linux kernel and offers special type of user
environment based on representation of objects in text form only in
contrast to widely popular graphical user interface (GUI). GUI is a
standard modern way to bring information to user but interaction is
performed mostly through a mouse, usually not used by blind persons.
That makes GUI rather inconvenient for this group of information
technologies consumers.
    Although Luwrain design in general is very close to Android ideas
(Java on Linux kernel) it isn’t based on Android. Even in case of
some benefits, multiple Android vulnerabilities cause a lot of security
concerns. Very likely known Android security issues are a consequence of
deep modification of basic components: glibc, Java virtual machine, etc.
Luwrain uses standard components as they are provided by GNU/Linux
distributions including Linux kernel, Java SE, glibc and so on. This
decision by the way allows consider Luwrain as universal platform without
any bias towards any known computer type: desktop, laptop, tablet. As



    
Яндекс цитирования Яндекс.Метрика