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

X конференция разработчиков свободных программ, г. Калуга, 21 сентября 2013 г.

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, устранив главные недостатки. Пользователь взаимодействует с несколькими прямоугольными текстовыми областями, отображаемыми на экране в виде тайлов. Текст выводится моноширинным шрифтом. Его размер и цвет, а также цвет фона устанавливаются общесистемно для всех областей по желанию пользователя. Каждая область связана с одним из запущенных приложений, и не все из них должны обязательно быть видимыми на экране. Пользователь может свободно и быстро переключаться между приложениями и областями, что качественно отличает LUWRAIN от emacspeak, который вовсе не имеет понятия приложения. Предусмотрен особый тип областей — так называемые всплывающие области, которые используются для организации диалога с пользователем. Их особенность заключается в том, что они могут быть показаны как один вызов метода в программном коде, который не возвращает управление до тех пор, пока область не будет закрыта. Две подобных всплывающих области имеют общесистемное значение — это главное меню и командная строка. Идея командной строки была унаследована от emacspeak, но в новом виде её поведение несколько отличается. С её помощью могут быть вызваны только команды, которые имеют общесистемное значение, и поведение которых не привязано к конкретной открытой области.

Стандартный набор приложений включает в себя файловый менеджер, утилиты для чтения почты, новостей, просмотра документов, текстовый редактор, календарь и т. д. Почти все из них подразумевают создание только оболочки в традициях LUWRAIN, поскольку полезный функционал большей частью уже доступен в виде библиотек. Эта возможность играла ключевую роль при выборе языка Java.

Есть некоторые вещи, которые не удовлетворяют концепции, изложенной нами. Функционально богатый веб-браузер не может быть представлен в терминах текстового интерфейса, поэтому он должен поставляться как внешнее приложение, работающее вне виртуальной машины Java. Существуют два возможных подхода к выбору веб-браузера:

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

Установку LUWRAIN незрячий пользователь может выполнять самостоятельно. Утилита для этого была подготовлена в рамках проекта ALT Linux Homeros и основана на технологии клонирования LiveCD.