Представлен отчёт о состоянии развития FreeBSD за третий квартал 2013 года
Представлен отчёт о состоянии развития FreeBSD за третий квартал 2013 года
23.10.2013
Представлен отчёт о развитии проекта FreeBSD с июля по сентябрь 2013 года.
Основные достижения:
- Система
- Продолжена разработка проекта Newcons, в рамках которого развивается новый интерфейс для обеспечения вывода через графические устройства, позволяющий организовать доступ простых драйверов к консоли и терминальному режиму, а также доступ к фреймбуферу для X.Org. При этом от драйвера не требуется встраивание шрифтов, цветовых карт и изображений курсоров мыши, все эти компоненты будут предоставлены Newcons-драйвером vt. Проект также включает интеграцию с модулями KMS (Kernel Mode Setting), что позволит добиться поддержки современных релизов X.Org и обеспечить корректный возврат к режиму виртуального терминала после смены видеорежима средствами X.Org. Среди возможностей отмечается поддержка мыши, KMS (i915kms и radeonkms), USB-клавиатур, экрана-заставки, vidcontrol. Уже доступен первый рабочий вариант проекта, включающий поддержку мыши (sysmouse, пока без копирования и вставки), KMS, Unicode-шрифтов (в том числе кириллических), вывода Unicode символов на экран, работы в графическом и текстовом режимах, прокрутки истории вывода на экран.
- Доведена до конца работа по реализации атомарной установки флага "close-on-exec" для предотвращения утечки файловых дескрипторов в дочерние процессы при вызове fork() и exec() в нитях и обработчиках сигналов. Поддержка атомарной установки флага обеспечена для всех POSIX-функций, создающих новые файловые дескрипторы, а также задействована для многих файловых дескрипторов, используемых в libc и libutil;
- Продолжена работа по интеграции в базовую систему отладчика LLDB, развиваемого проектом LLVM. Для тестирования в базовую систему импортирван снапшот LLDB (SVN rev 255722), который можно собрать, указав WITH_LLDB= в src.conf. Из пока не решённых задач отмечается поддержка отладки многопоточных программ, core-файлов и ядра, возможность удалённой отладки, поддержка архитектуры MIPS;
- Ведётся работа по устранению дефектов, выявленных в результате проведения статического анализа кода в сервисе Coverity, а также при использовании развиваемого проектом LLVM статического анализатора. Налажено автоматизированное тестирование кода FreeBSD HEAD в clang-analyzer, выполняемое несколько раз в неделю. Планируется обеспечить автоматическую публикацию в списке рассылки информации о новых проблемах.
- Изолированные окружения, эмуляторы, безопасность и ограничения ресурсов
- Представлены результаты улучшения реализации встроенного в ядро генератора псевдослучайных чисел CSPRNG, доступного через /dev/random. Текущий генератор случайных чисел является достаточно надёжным и пригодным для формирования непредсказуемых последовательностей в том числе и для криптографических нужд. Для формирования качественных непредсказумых входных данных в генераторе случайных чисел реализован предложенный Шнайером алгоритм Yarrow, основанный на дополнительном цикличном применении хэшей над неповторяющимися данными из разных частей ядра. Но в базовой реализации CSPRNG некоторые считающиеся качественными источники энтропии использовались без дополнительной рандомизации при помощи Yarrow.
Недавние разоблачения действий АНБ дали повод для дополнительной проверки качества методов сбора энтропии и применения дополнительных параноидальных методов для гарантирования независимости от отдельных источников энтропии, даже для тех которые считаются надёжными. В обновлённой реализации осуществлён переход к применению Yarrow для всех без исключения источников энтропии. В будущем планируется подготовить реализацию нового алгоритма Fortuna, также разработанного при участии Шнайера. Fortuna сможет быть использован в качестве альтернативной опции и, возможно, заменит по умолчанию Yarrow (решение пока не принято). Также планируется реализовать поддержку FIPS 800-90b и провести глубокий аудит качества энтропии;
- Улучшение поддержки инструкций AES-NI и задействование SSE2 во фреймворке OpenCrypto позволило существенно поднять скорость расшифровки AES-XTS и AES-CBC. Как следствие, производительность дискового шифрования при помощи GEOM-класса GELI при использовании AES-XTS поверх GNOP возросла в три раза.
- Продолжена работа по расширению применения средств для изоляции выполнения приложений при помощи фреймворка Capsicum. Capsicum расширяет POSIX API и предоставляет несколько новых системных примитивов, нацеленных на поддержку модели безопасности через управление возможностями объектов ("object-capability") для Unix-систем. Capsicum нацелен на дополнение традиционного централизованного мандатного контроля доступа средствами для защиты отдельных приложений и активируется на стороне самого приложения. Используя Capsicum приложение можно запустить в режиме повышенной изоляции (sandbox), при котором программа сможет выполнять только ранее специфицированные штатные действия.
Из последних изменений отмечено включение в состав FreeBSD 10 переработанного варианта capability cap_rights_t, позволяющего снять лимит в 64 правила над файловыми дескрипторами. Доведена до конца разработка библиотеки libnv, выступающей связующим звеном между потребителями и сервисами Casper (демон, предоставляющий сервисы для доступа к привилегированным операциям из изолированных процессов). Расширено число приложений для которых задействованы механизмы изоляции Capsicum.
- Подготовлены сборки FreeBSD 8.3-RELEASE, 8.4-RELEASE, 9.0-RELEASE, 9.1-RELEASE и 9.2-RELEASE для развёртывания в качестве гостевой ОС в cloud-окружениях Amazon EC2. Во FreeBSD 9.2-RELEASE работа FreeBSD в EC2 возможна без применения дополнительных патчей, но требует сборки ядра с включением опции XENHVM, которая включена по умолчанию начиная с FreeBSD 10.0-ALPHA3 (в EC2 смогут работать штатные сборки FreeBSD 10.0).
- Проведена чистка и расширена функциональность драйвера virtio с поддержкой паравиртуальных устройств ввода/вывода vtnet (Ethernet), virtio_blk (блочное устройство), virtio_scsi (SCSI HBA) и virtio_balloon (для возвращения памяти гипервизору). Добавлена поддержка работы с несколькими очередями (multiqueue);
- Представлены результаты улучшения реализации встроенного в ядро генератора псевдослучайных чисел CSPRNG, доступного через /dev/random. Текущий генератор случайных чисел является достаточно надёжным и пригодным для формирования непредсказуемых последовательностей в том числе и для криптографических нужд. Для формирования качественных непредсказумых входных данных в генераторе случайных чисел реализован предложенный Шнайером алгоритм Yarrow, основанный на дополнительном цикличном применении хэшей над неповторяющимися данными из разных частей ядра. Но в базовой реализации CSPRNG некоторые считающиеся качественными источники энтропии использовались без дополнительной рандомизации при помощи Yarrow.
- Сетевая подсистема
- Портирован из OpenBSD и интегрирован в HEAD драйвер vmx для виртуальных ethernet-адаптеров VMware. Драйвер может быть использован вместо неподдерживаемого в 10.0-RELEASE и 9-STABLE драйвера vmxnet3 из состава VMware Tools. Из планов отмечается намерение включить драйвер в ветку stable/9.
- Системы хранения и файловые системы
- Проведена работа по увеличению масштабируемости в GEOM и CAM на многопроцессорных системах, направленная на устранение узких мест в подсистеме работы с блочными устройствами, ограничивающими пиковую производительность на уровне 300-500 тысяч операций ввода/вывода в секунду. В GEOM была обеспечена возможность одновременной обработки запросов ввода/вывода из параллельно выполняемых потоков. В CAM переработан механизм блокировок, крупные блокировки разделены на серию мелких локальных блокировок (отдельные блокировки для шины, LUN, очередей), полностью не останавливающих работу CAM. В итоге, удалось поднять пиковую производительность в два раза, доведя её до миллиона операций ввода/вывода в секунду. Изменения планируется в скором времени включить в состав FreeBSD HEAD и ветку stable/10, после выпуска релиза FreeBSD 10.0.
- Во FreeBSD HEAD добавлен новый нативный iSCSI стек, содержащий реализации iSCSI Target и iSCSI Initiator, отличающиеся более высокой надёжностью и производительностью, в сочетании с предоставлением значительно упрощённых средств администрирования. Новый стек будет поставляться в составе FreeBSD 10. Для упрощения миграции со старого iSCSI Initiator в новом обеспечена совместимость на уровне файлов конфигурации;
- Поддержка оборудования
- Во FreeBSD HEAD принят порт с поддержкой Allwinner A20 SoC, позволяющий запустить FreeBSD на плате Cubieboard2. Из периферии поддерживается USB EHCI и GPIO. В ближайшее время планируется обеспечить работу EMAC Ethernet и других драйверов;
- Во FreeBSD HEAD интегрирована ветка projects/pseries, позволяющая использовать сборки FreeBSD/powerpc64 на серверах IBM pSeries внутри логических разделов IBM POWER;
- Устранены ранее наблюдаемые проблемы с портом FreeBSD/sparc64, обеспечена кросс-сборка образов для данного порта и налажена возможность использования нового графического стека на базе X.Org.
- Продолжено развитие драйвера для устройств с интерфейсом SDIO (Secure Digital I/O), позволяющего подключать периферийные устройства через стандартный контроллер для SD-карт. Среди устройств с интерфейсом SDIO на рынке присутствуют адаптеры Bluetooth и WiFi, камеры, устройства чтения отпечатков пальцев, сканеры штрихкодов и т.п. Драйвер выполнен в виде дополнения для существующей шины MMC, расширенной поддержкой специфичных для SDIO возможностей. Поддерживаются операции получения информации об устройстве, простая байтовая передача данных и чтение в мультибайтовом режиме. Дополнительно подготовлен прототип драйвера для модуля Marvell SDIO WLAN/BT, созданный на основе аналогичного драйвера для Linux. В настоящее время драйвер уже успешно определяет SDIO-карты и производит их инициализацию, реализована и протестирована поддержка большинства методов шины, возможна загрузка прошивки для беспроводных карт. Из нерешённых задач отмечается создание модели блокировок в стеке SDIO и доведение до полноценного вида драйвера Marvell SDIO WiFi.
- Во FreeBSD HEAD добавлены разработанные для порта FreeBSD/ARM средства для манипуляции страницами памяти большого размера (Transparent SuperPages), поддерживаемыми процессорами ARMv7. Поддержка SuperPages позволит увеличить эффективность и производительность работы FreeBSD на ARM-системах, благодаря обеспечению средств трансляции TLB для динамического покрытия больших областей памяти, что особенно актуально с появлением серверных ARM-систем. Модуль pmap настроен для задействования SuperPages. Проведено тестирование, которое показало сокращение задержек при доступе к памяти на 34% в тесте GUPS и на 38% в тесте LMbench, время сборки buildworld сократилось на 20%.
- Приложения и система портов
- Реализован новый менеджер загрузки портов, призванный заменить собой утилиту fetch для более эффективного выполнения задач загрузки требуемых для установки порта компонентов, таких как архивы с исходными текстами программ. Из недостатков fetch, которые попытались устранить в новом менеджере загрузки, отмечаются дублирующие загрузки, проблемы с выбором оптимального зеркала и отсутствие средств для ускорения загрузки (например, загрузка в несколько параллельных потоков с разных зеркал). В рамках проекта разработан сервис, обслуживающий запросы на загрузку, и клиентское приложение dmget. Сервис поддерживает выбор оптимального зеркала на основании накопления статистики о скорости загрузки с разных зеркал, может мигрировать выполнение загрузок с одного зеркала на другое при выявлении более быстрого зеркала;
- Возвращены порты для поддержки языка программирования Ada, которые были убраны из-за проблем со сборкой компилятора GNAT в новых версиях FreeBSD. В рамках порта lang/gnat-aux представлен новый вариант компилятора GNAT. Также добавлены порты со средой разработки GNAT Programming Studio, XML/Ada и GtkAda;
- FreeBSD Core Team работает над введением в строй pkg.freebsd.org, первого официального репозитория бинарных пакетов, который можно будет использовать с утилитой pkg. Также ведётся подготовка к прекращению использования pkg_add и задействованию по умолчанию pkg, начиная с 10.0-RELEASE;
- Дерево портов FreeBSD преодолело отметку в 24,400 портов, число незакрытых PR повысился до 1900. Проведена большая работа по подготовке инфраструктуры к переходу на использование пакетного менеджера pkg вместо pkg_add и задействование Clang в качестве компилятора портов по умолчанию. Реализована автоматизированная процедура для обеспечения качества сборки портов.
- Проводится чистка портов lang/python* для обеспечения совместимости с используемыми в upstream методами сборки и разными версиями Python, без применения специфичных для FreeBSD сборочных патчей.
- В дерево портов добавлены новые версии библиотек Glib 2.36 и GTK+ 3.8. Ведётся работа по увеличению качества работы портов с десктоп-окружением GNOME 3.6. В порт multimedia/cheese добавлена возможность использования devd для работы с web-камерой с использованием порта multimedia/webcamd. Внесены исправления, связанные со сборкой www/webkit-gtk3. Близок к готовности порт с окружением MATE. GNOME 2 скоро будет удалён из дерева портов. (примечание: GNOME 3.6.2, Cinnamon 1.8.8.1 и Mate 1.6 для FreeBSD можно установить из стороннего репозитория Pkgdemon).
- Обновлены порты с компонентами проекта GNUstep, в рамках которого развивается фреймворк с реализацией API Apple Cocoa (OpenStep) и сопутствующих библиотек. Обеспечена поддержка сборки с использованием GNUstep Objective-C runtime и Clang 3.3, что позволяет задействовать все актуальные возможности Objective-C, включая ARC (Automatic Reference Counting) и новые элементы синтаксиса. Так как libc из состава FreeBSD и OS X достаточно близки, FreeBSD становится привлекательной платформой для портирования программ OS X с использованием наработок GNUstep. Для установки всех необходимых для работки библиотек GNUstep можно использовать мета-порт devel/gnustep, а для установки приложений - x11/gnustep-app.
- Обновлены порты с графическим стеком. В состав портов включен выпуск MESA 9.1, в том числе с экспериментальной поддержкой libEGL и libgles2, требуемой для работы Wayland/Weston. В порт x11-servers/xorg-server добавлена поддержка бэкенда devd для динамического определения и настройки устройств ввода.
В состав 10.0-RELEASE принят код драйвера radeonkms, который уже достаточно стабилен, но пока не поддерживает переход в спящий режим. С появлением поддержки KMS драйвер x11-drivers/xf86-video-ati был обновлён до версии 7.2.0, что позволило обеспечить работу GPU серии HD7000 и HD8000. Началась работа по портированию из ядра Linux 3.8 DRM-кода (Direct Rendering Manager), используемого в драйверах i915kms и radeonkms. Из планов отмечается работа по интеграции Mesa 9.2 и xorg-server 1.14, тестирование новых драйверов для GPU AMD, обеспечение экспериментальной поддержки Wayland и Weston, улучшение работы бэкенда devd.
Ваш комментарий
|
Подробнее: http://citforum.ru/news/31101/
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Всегда храни верность своему начальнику - следующий, может быть еще хуже... |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.