Представлен (https://www.freebsd.org/news/status/report-2014-07-2014-09.html) отчёт о развитии проекта FreeBSD с января по июля по сентябрь 2014 года. За отчётный период основная работа была сосредоточена на доведении до готовности кода поддержки различных ARM-платформ для FreeBSD 11, развитию средств для использования FreeBSD на рабочем столе и оптимизации производительности.
Основные достижения:
-
Система
- Реализована возможность (https://wiki.freebsd.org/SummerOfCode2014/FreeBSD_PXE_preseed) автоматизированной установки FreeBSD c загрузкой по сети. На первом этапе реализации проекта для управления ходом установки в bsdinstall добавлена поддержка сценариев, в которых доступны такие переменные, как KEYMAP, HOSTNAME, MIRROR, RELEASE, TIMEZONE, DAEMONS, ROOTPWHASH и USERS, а также средства для настройки сети и настройки ZFS. На втором этапе представлен автономный режим установки, активируемый через PXE. Минимальный загрузочный образ с инсталлятором сформирован на базе mfsBSD. Имя и путь к сценарию установки передаётся DHCP-сервером через переменную "bootfile-name".
- Продолжается работа по внедрению системы непрерывной интеграции Jenkins (http://jenkins-ci.org/) в процесс разработки FreeBSD. Инфраструктура непрерывной интеграции основана на системе, уже опробованной компанией iXsystems при разработке дистрибутива FreeNAS. Увеличено число веток, конфигураций и портов, проверяемых в системе непрерывной интеграции. Обеспечено выполнение тестов kyua после завершения сборки. В случае выявления проблем уведомления автоматически отправляются в списки рассылки и разработчикам, осуществлявшим коммиты с момента последней успешной сборки. В систему тестирования kyua добавлена команда report-junit, которая позволяет экспортировать результаты проверки в формате JUnit XML, который успешно поддерживается в Jenkins. На сайте scan.freebsd.org (http://scan.freebsd.org/) организована публикация результатов статического анализа кода FreeBSD, выполненного при помощи инструмента LLVM scan-build.
- В ветку stable/10 перенесена улучшенная поддержка загрузки на системах с UEFI (https://wiki.freebsd.org/UEFI). В загрузчике и процессе загрузки ядра обеспечена совместимость с существующими UEFI-прошивками для ПК, ноутбуков и серверов. Поддержка UEFI войдёт в состав ожидаемого на следующей неделе выпуска FreeBSD 10.1, но потребует использования отдельного установочного образа (базовый установочный образ для избежания регрессивных изменений будет поддерживать только BIOS). Из планов на будущее отмечено создание boot1.efi для ZFS, поддержка UEFI Secure Boot, возможность использования хранимых в NVRAM переменных UEFI.
- Внесена большая порция улучшений в подсистему vt, развиваемую в рамках проекта Newcons (http://svn.freebsd.org/base/user/ed/newcons/) и пришедшую на смену syscons. Vt предоставляет новый интерфейс для обеспечения вывода через графические устройства, позволяющий организовать доступ простых драйверов к консоли и терминальному режиму, а также доступ к фреймбуферу для X.Org. При этом от драйвера не требуется встраивание шрифтов, цветовых карт и изображений курсоров мыши, все эти компоненты предоставлены Newcons-драйвером vt. Проект также включает интеграцию с модулями KMS (Kernel Mode Setting), что позволит добиться поддержки современных релизов X.Org и обеспечить корректный возврат к режиму виртуального терминала после смены видеорежима средствами X.Org. Среди возможностей отмечается поддержка мыши, KMS (i915kms и radeonkms), USB-клавиатур, экрана-заставки, vidcontrol, Unicode, xterm-подобная эмуляция терминала, использование различных шрифтов в разных окнах терминала.
За отчётный период решены проблемы с производительностью vt_vga, проявляющейся при запуске в системах виртуализации. Сформирован набор файлов с клавиатурными раскладками для vt. Обеспечена работа драйверов EFI framebuffer и ofwfb с видеодрайвером xf86-video-scfb. Накопившиеся улучшения и исправления войдут в состав выпуска FreeBSD 10.1 (vt пока предлагается в качестве опции, которая может быть активирована пересборкой ядра с заменой настроек "device sc" и "device vga" на "device vt" и "device vt_vga").
-
Изолированные окружения, эмуляторы, безопасность и ограничения ресурсов
- Продолжена работа по улучшению реализации технологии ASLR (Address space layout randomization) для защиты от некоторых видов атак, манипулирующих переполнением буфера. Устранена проблема, мешающая использованию ASLR в сборках для архитектуры ARM. Добавлен API, позволяющий отключать ASLR во время отладки. Внесены изменения, повышающие производительность ASLR. Максимальный размер рандомизированных данных повышен до 20 битов, по умолчанию установлено значение в 14 битов.
- Для работы над улучшением механизмов защиты FreeBSD авторами патчей ASLR инициирован проект HardenedBSD (http://hardenedbsd.org/), в котором будут развиваться новые технологии и по мере их готовности интегрироваться во FreeBSD. Кроме ASLR проект развивает такие возможности, как SEGVGUARD, secfw, добавление вызовов arc4random и getentropy, поддержку механизма SMAP (Intel Supervisor Mode Access Prevention), повышение защищённости mprotect, PTrace, mmap(MAP_32BIT) и procfs/linprocfs.
- Представлен проект по добавлению (https://wiki.freebsd.org/FreeBSD/Xen) в ядро FreeBSD средств для выполнения в режиме паравиртуализации Xen на системах с архитектурой AMD64. В настоящее время проект находится на стадии формирования рабочего прототипа и доступен для тестирования через ветку projects/amd64_xen_pv.
- Продолжается работа по улучшению реализации гипервизора BHyVe (http://www.bhyve.org), изначально разработанного компанией NetApp и поставляемого в базовом составе FreeBSD 10. Для работы BHyVe требуется система с процессором Intel, поддерживающим аппаратные средства виртуализации VT-x и EPT (Extended Page Tables). Из возможностей можно отметить проброс PCI-устройств, доступ к содержимому виртуальной машины через специальное блочное устройство, возможность назначения нескольких CPU гостевой системе. В качестве гостевых систем могут запускаться системы для которых имеются драйверы VirtIO для паравиртуализации ввода/вывода, в том числе различные версии FreeBSD, OpenBSD, NetBSD и системы GNU/Linux (CentOS, Debian, Ubuntu, openSUSE).
За отчётный период в гипервизор bhyve добавлена поддержка гостевых систем Linux i386/x64, OpenBSD i386/amd6 и NetBSD amd64, реализована эмуляция дополнительных инструкций, в утилиту bhyvectl добавлена команда для сброса/выключения гостевой системы, возможность установки SMBIOS UUID из командной строки, улучшена обработка ошибок AHCI, содержимое памяти гостевой ОС исключено по умолчанию из core-дампов, возможность привязки vCPU к ядрам CPU хост-системы, добавлена эмуляция Virtio RNG, в Handbook добавлена (https://www.freebsd.org/doc/handbook/virtualization-host-bhy...) глава по использованию bhyve. Из планов на будущее можно отметить live-миграцию, поддержку virtio-scsi, эмуляцию сетевых адаптеров Intel 82580 и e1000, поддержку Netmap, возможность запуска bhyve без прав root, добавление поддержки образов в форматах VMDK, VHD и QCOW2, трансляцию вывода через VNC, поддержка приостановки виртуальной машины (Suspend/resume), возможность вложенного запуска виртуальных машин (bhyve внутри гостевой системы), поддержка архитектур ARM, MIPS и PPC.
- Во фреймворк OpenCrypto добавлена поддержка режимов шифрования AES-CTR и AES-GCM с задействованием средств аппаратного ускорения с использованием инструкций AES-NI, доступных в современных процессорах Intel. В дальнейшем ожидается обеспечение поддержку указанных режимов в IPSec, что позволит использовать решения на базе FreeBSD для организации работы высокоскоростных каналов шифрованной связи на обычном оборудовании. Например, новый модуль AES-GCM обеспечит шифрование со скоростью порядка одного гигабайта данных в секунду на одном ядре современного 64-разрядного CPU Intel.
- Проведена работа по устранению ошибок и н...
URL: https://www.freebsd.org/news/status/report-2014-07-2014-09.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=40870