Команда разработчиков операционной системы OpenBSDофициально представила очередной релиз 5.0. Несмотря на изменение ведущей цифры, релиз не отличается более заметно, чем обычно, от предыдущего, выпуска 4.9. Более того, осенние релизы традиционно менее богаты новшествами, чем весенние (проект OpenBSD выпускает два релиза в год). Тем не менее, список новинок, улучшений и доработок отнюдь не мал.
Самые заметные улучшения с точки зрения пользователя:
- Убран как неиспользуемый код бинарной совместимости со многими сторонними системами; На x86-платформах оставлен и улучшен только Linux ABI.
- Демон timed(8) удалён из состава системы, а так же убрана опция по запуску rdate(8) вместе с системой: и то, и другое дублировало функциональность более совершенного и надёжного OpenNTPD.>
- Xenocara, субпроект поддержки X.org в OpenBSD, переведён на использование xkeyboard-config. В случае использования (наличия) /etc/X11/xorg.conf, следует проверить его на совместимость.
- Новые драйверы:
- hds(4)
- драйвер для модульных устройств хранения данных производства Hitachi.
- myx(4)
- драйвер для 10Gb Ethernet-карт Myri-10G, производства Myricom.
- dfs(4)
- драйвер для динамического управления частотой на некоторых системах macppc.
- cardbus(4) и pcmcia(4) теперь работают на платформе sgi.
- Для ноутбуков Loongson Yeelong добавлена поддержка ждущего режима (STR).
- Благодаря переработанной архитектуре взаимодействия драйверов с оперативной памятью (dma_alloc(9) позволяет, среди прочего, указывать приемлемые диапазоны памяти для каждого устройства) на всех подходящих платформах по умолчанию включена поддержка объёмов памяти более 4ГБайт (ранее она была так же доступна, но включать следовало на свой страх и риск).
Самые заметные изменения с точки зрения разработчика:
- Добавлены определённые в POSIX 2008 вызовы fdopendir(3) и openat(2), а также флаги
O_CLOEXEC
,O_DIRECTORY
иF_DUPFD_CLOEXEC
. - Добавлены функции для вывода, сравнения и дублирования Unicode-строк (в -CURRENT уже появились и *wscanf(3)).
- libm (стандартная библиотека для работы с числами с плавающей запятой) приведена в соответствие со стандартом C99 на всех поддерживаемых архитектурах.
- kdump(8) теперь понимает и может оформлять заметно больше передаваемых структур.
- Указатель NULL теперь кодируется как настоящий "(void *)".
- Имена UNIX-сокетов теперь гарантированно заканчиваются NUL-символом.
- В kqueue(9) добавлена поддержка random(4) и sosplice(9).
- Заметно увеличена скорость работы malloc(3), и при этом добавлены дополнительные средства для обнаружения проблем, связанных с выделением, использованием и освобождением памяти. Параноики (и ответственные разработчики) могут запускать программы с переменной окружения
MALLOC_OPTIONS=S
для проверки программ. - Заметно доработана собственная реализация (учитывающая особенности OpenBSD) pkg-config(1), по аналогии с последними версиями оригинала от FreeDesktop.org.
- В mandoc, альтернативе GNU groff, добавлена поддержка eqn(7) и UTF8-вывода.
- Добавлены новые и доработаны имеющиеся проверки lint(1), касающиеся форматированного ввода-вывода (в стиле printf(3)).
- Дальнейшие улучшения в rthreads, поддержке множественных потоков выполнения для одного процесса на уровне ядра. Для удобства тестирования поддержку rthreads можно включать и выключать во время работы системы посредством вызова sysctl(3) для MIB
kern.rthreads
.
Самые заметные изменения с точки зрения системного администратора:
- Увеличен размер дискового кэша по умолчанию, после реализации интеллектуальных методов автоматического управления его размером (кэш использует по возможности всю не занятую память до указанного предела).
- Пакетный фильтр PF научился пересобирать фрагментированные пакеты для IPv6, что позволяет оптимизировать, а в определённых ситуациях и исправить проблемы, связанные с ограничениями на размер пакета в соседних узлах или сетях.
- DUID полностью готовы для использования при установке системы (и включены по умолчанию).
- rc.d(8) теперь может использоваться для запуска практически всех системных сервисов. Обратная совместимость сохранена, за исключением того момента, что для устанавливаемых сторонних пакетов теперь вместо переменной rc_scripts следует использовать pkg_scripts. Для любого запускаемого сервиса можно указывать индивидуальные параметры учётной записи в /etc/login.conf, и они будут автоматически использованы фреймворком rc.d(8) при запуске сервиса.
- Некоторые сервисы, такие как ftp-proxy(8) и relayd(8), ранее использовавшие опцию rdr-to в PF для перенаправления на себя трафика, теперь поддерживают divert-сокеты. Для ftp-proxy(8) и tftp-proxy(8) требуется изменение имеющихся правил PF.
- Теперь официально поддерживается установка нескольких версий PHP одновременно. В связи с этим некоторые файлы были перемещены/переименованы, в частности, /etc/php.conf и /var/www/conf/php.ini.
- Исправлен ряд причин подвисаний при выключении или рестарте NFS-клиентов.
- В ospfd(8) добавлена частичная поддержка RFC 5250 (opaque LSA).
- В ряд драйверов сетевых интерфейсов добавлена поддержка Wake-on-Lan. Для управления и использования WoL доступны новые опции в arp(8) и ifconfig(8).
- Для многих устройств включена поддержка MSI (message signalled interrupts) на платформах i386, amd64 и sparc64.
- Ряд исправлений и мелких улучшений в SCSI-стеке, carp(4), bgpd(8), ldpd(8), netstat(8), ospf6d(8), ripd(8), snmpd(8) и traceroute(8).
В составе базовой системы поставляется код следующих проектов, разивающихся целиком либо частично в составе OpenBSD:
- mandoc, BSDL-альтернатива пакета GNU groff
- OpenBGPD и OpenOSPFD, свободные реализации протоколов маршрутизации BGP и OSPF
- OpenRCS, BSD-альтернатива GNU RCS
- OpenSMTPD, простой, быстрый и безопасный почтовый сервер
- OpenSSH, абсолютный мировой лидер среди реализаций SSH
- tmux, виртуальный мультиплексор текстового терминала (аналог GNU screen)
Также в составе системы поставляется следующее ПО сторонних разработчиков:
- Apache HTTP Server 1.3.27 с поддержкой SSL/TLS и DSO (+патчи)
- Arla 0.35.7
- BIND 9.4.2-P2 (+патчи)
- GCC 2.95.3, 3.3.5 и 4.2.1 (+патчи)
- GNU Binutils 2.15 (+патчи)
- Heimdal 0.7.2 (+патчи)
- Lynx 2.8.7rel2 с поддержкой HTTPS и IPv6 (+патчи)
- NCurses 5.7
- OpenSSL 1.0.0a (+патчи)
- Perl 5.12.2
- Sendmail 8.14.5 + libmilter
- Sudo 1.7.2p8
- X.org 7.6, с xserver 1.9, freetype 2.4.5, fontconfig 2.8.0, Mesa 7.8.2, xterm 270, xkeyboard-config 2.3 и т.д. (+патчи)
Из ПО, имеющегося в портах и доступного к установке, можно отметить:
- Chromium 12.0.742.122
- Emacs 21.4, 22.3 и 23.3
- GHC 7.0.4
- Gnome 2.32.2
- Groff 1.21
- KDE 3.5.10
- LibreOffice 3.4.1.3
- Mono 2.10.2
- Mozilla Firefox 3.5.19, 3.6.18 и 5.0
- Mozilla Thunderbird 5.0
- MySQL 5.1.54
- OpenLDAP 2.3.43 и 2.4.25
- PHP 5.2.17 и 5.3.6
- Postfix 2.8.4
- PostgreSQL 9.0.5
- Python 2.4.6, 2.5.4 и 2.7.1
- Ruby 1.8.7.352 и 1.9.2.200
- Vim 7.3.154
- Xfce 4.8.0
Порт www/opera-flashplugin
убран из-за своей бесполезности. Взамен можно использовать Gnash вместе с любым браузером, поддерживающим Netscape-плагины (в т.ч. браузеры на движках Gecko, KHTML и Webkit).
В настоящее время активно идёт работа над портированием на OpenBSD свежей версии KDE 4. Желающие поучаствовать могут присоединиться в специальной группе рассылки openbsd-kde (группа полностью открытая).
Не вошедшая в страницы руководств документация, доступна в обновлённом FAQ, который теперь назван в унисон с темой релиза: SASQ, Snappy Answers to Stupid Questions. Такая традиция шуточно модифицировать заглавную страницу FAQ поддерживается уже в течение нескольких последних релизов.
Все, кто хочет поддержать проект, могут приобрести фирменные диски (как обычно, со специально подготовленной к релизу песней и оригинальным комиксом от Ty Semaka) или другую продукцию.