Очередная версия Fedora, ведущей Linux-системы компании Red Hat, вышла на этап бета-тестирования. Аналогично системе Ubuntu Linux, у которой также недавно началось бета-тестирование, Fedora 12 укомплектована самыми последними версиями популярных приложений с открытым кодом, таких как пакет офисных программ OpenOffice.org, веб-браузер Firefox и настольные интерфейсы GNOME и KDE.

Помимо этих типичных улучшений новая версия выделяется еще и тем, что укрепляет позиции не только самой Fedora, но и Linux-дистрибутивов в целом, так как компания Red Hat начала переносить последние достижения технологии Open Source в свои настольные Linux-системы. В частности, в Fedora 12 усовершенствованы средства для управления системными привилегиями и инструменты виртуализации.

Системные привилегии

Одним из первых улучшений Fedora 12, которое привлекло мое внимание, является новое средство для перемещения потенциально опасных графических приложений в “песочницу” (sandbox) на базе платформы SELinux. Новая функция под названием sandbox-X позволяет запускать графические приложения во временной среде изолированно от остальной системы.

Например, я создал на своей тестовой машине сценарий для Adobe Reader (типичная цель вирусописателей), который запускает данное приложение в “песочнице” SELinux. Я смог нормально просматривать свой документ (правда, лишь более-менее, потому что во время тестирования Reader периодически давал сбои, как в “песочнице”, так и вне ее), однако не мог обращаться к файловой системе или к сети. Если мне нужно было получить доступ к “песочнице” через Интернет, чтобы, например, проверить веб-браузер, я просто добавлял в своей команде строку “-t sandbox_web_t”.

Сейчас приложения из “песочницы” запускаются в окне, размеры которого нельзя менять, и не каждое приложение нормально работает в “песочнице”. Например, браузер Firefox исполнялся без проблем, а Chromium компании Google зависал сразу после запуска.

В будущем мне хотелось бы узнать, как разработчики Fedora интегрируют sandbox-X с остальным дистрибутивом. Во всяком случае эта функция является хорошим примером того, что можно сделать с помощью SELinux.

SELinux обеспечивает систему Linux средством обязательного контроля доступа, в котором пользователи и процессы имеют только права, предоставленные им в явном виде. В системах Red Hat и Fedora платформа SELinux обычно используется под управлением специальных правил, по которым только определенная часть систем контролируется так строго. В остальной системе применяется традиционный инструмент Linux DAC (discretionary access control).

В Fedora 12 инструментарий Linux DAC стал более детализированным: появилась возможность ограничивать привилегии процессов, ранее обладавших полным правом корневого доступа. Концепция capabilities (возможности) позволяет исполнять приложения, которым требуются некоторые корневые привилегии, но только с этими правами.

Таким образом, SELinux служит для ограничения того, что разрешено делать приложениям, а capabilities позволяет приложениям запросить некоторые права. При этом capabilities обращается в библиотеку под названием libcap-ng, которая упрощает разработчикам приложений процесс предоставления “возможностей”.

Третьей новинкой в области управления привилегиями в Fedora 12 является переписанная среда PolicyKit, предназначенная для предоставления пользователям некоторых расширенных прав, например, права менять информацию о дате и времени, создавать и менять установки отдельных пользователей и групп или устанавливать на машине программные пакеты.

Текущая версия PolicyKit, которая поставляется вместе с дистрибутивами Red Hat и Fedora, а также Ubuntu, SUSE и другими, не интегрируется с сетевыми ресурсами, такими как серверы каталогов, что значительно ограничивает ее использование в управляемой среде.

Но хотя версия PolicyKit, поставляемая с Fedora 12, все еще хранит политики локально, она снабжена некоторыми сетевыми возможностями, направленными на будущую интеграцию с каталогами, что станет большим достижением не только для Fedora, но и для дистрибутивов Linux в целом.

Виртуализация

До сих пор никакие версии Fedora не выходили без новых средств виртуализации, и Fedora 12 — не исключение.

В этой версии одна из наиболее интересных новинок — это поддержка средства Kernel Shared Memory (KSM), которое недавно было добавлено в ядро Linux для того, чтобы приложения могли идентифицировать и совместно использовать дублируемые страницы памяти. Вместе с гипервизором Fedora KVM средство KSM позволит повысить плотность виртуальных машин на одном хосте, дав администраторам возможность перераспределять память без свопинга виртуальных машин на диск.

Я протестировал KSM, создав пару виртуальных машин Ubuntu 9.04, каждая с 1 Гб оперативной памяти, и одну виртуальную машину Windows 7 с 2 Гб памяти. Эти виртуальные машины вместе использовали 4 Гб памяти на моей тестовой системе под управлением Fedora 12.

Когда я включил KSM, я заметил, что потребление памяти на моей машине довольно быстро сократилось с 3,1 до 2,1 Гб, потому что моя система начала распознавать и объединять дублированные страницы памяти. Мне хотелось бы опробовать KSM на более реальной системе, но и то, что я увидел, произвело на меня большое впечатление.

Помимо этого мне понравилось, что в Fedora 12 гипервизор KVM поддерживает “горячее” подключение виртуальных сетевых адаптеров и обеспечивает гостевые машины эмуляцией аппаратных платформ, которая не меняется при обновлении гипервизора. Как правило, системы на базе Linux не зависят от изменения аппаратной платформы, на которой исполняются, однако такие перемены могут вызвать проблемы в Windows. Я наблюдал отказ виртуальной машины Windows после обновления KVM и поэтому приветствую данное усовершенствование.