Основные изменения в базовой системе:
* Заметно переработан pflog(4). Теперь в log-пакете при редиректе исходного пакета дополнительно сохраняется изначальный адрес, а сами log-пакеты генерируются по мере прохода по соответствующим match-правилам. В частности, это позволяет теперь полностью в реальном времени отлаживать сложные наборы правил. * Исправлена семантика работы match- и pass/block-правил: теперь последним применяется итоговое pass/block-правило, даже если подходящее match-правило было обнаружено позднее. Нынешняя логика работы выглядит следующим образом: 1. Правила проходятся по порядку, сверху вниз. 2. Изначально перед началом обхода считается последним подошедшим правило pass all. Дальше шаги 3-6 выполняются для каждого имеющегося в наборе правила. 3. Если это pass- или block-правило и оно подошло к пакету, то оно запоминается как последнее подошедшее. 4. Если это pass- или block-правило, оно подошло к пакету и содержит опцию quick, то обход списка правил заканчивается (переход на шаг 7). 5. Если это match-правило, и оно подошло к пакету, то оно применяется. 6. Происходит переход к следующему правилу в списке (на шаг 3). 7. Если правил в списке больше нет, применяется последнее подошедшее правило. Также добавлена новая опция логирования matches. При её использовании все подходящие пакеты будут отмечаться на pflog(4) не только для указанного правила, но и для всех последующих подошедших к данному пакету правил. * pfctl(8) теперь разрешает rdr-to для исходящих правил и nat-to для входящих. Собственно, сам PF это уже давно позволял делать. Оставлено лишь требование указания направления для таких правил (хотя ядро, опять-таки, позволит создать и такое правило). Помимо прочего, теперь можно использовать rdr-to и nat-to одновременно в одном правиле. * В route(8) добавлен параметр командной строки -label, позволяющий ограничить список отображаемых маршрутов только теми, которые имеют заданную метку. * Для доступа к tun(4)-интерфейсам более не требуются в обязательном порядке права root: для создания интерфейсов без участия файловой системы эти права всё равно требуются, а для файлов /dev/tun* по умолчанию владельцем файлов и так является root. В то же время теперь по необходимости доступ к tun(4)-интерфейсам может быть дан отдельным пользователям, для чего раньше было необходимо использовать sudo(8) или другие способы эскалации привилегий. * В OCF (OpenBSD/FreeBSD Cryptographic Framework) добавлена поддержка AES-GCM; и в ядре, и в userland-утилитах isakmpd(8), ipsecctl(8) и iked(8)). На данный момент поддерживается только 128-битный вариант. * Добавлен новый псевдоинтерфейс pppx(4) — PPP-мультиплексор. pppx(4) создаёт интерфейс в момент установки сессии, благодаря чему ALTQ и PF могут с ней взаимодействовать. * Улучшена пропускная способность сетевого стека под высокими нагрузками и общее поведение ядра в условиях острой нехватки памяти. В частности, буфер отправки TCP теперь автоматически подстраивается без учёта посланных, но не подтверждённых, пакетов. А буфер приёма автоматически подстраивается аналогично FreeBSD, базируясь на произведении задержки и пропускной способности. Это изменение позволило поднять скорость загрузки в некоторых ситуациях; в частности, для ftp.eu.openbsd.org с 300кбит/с до 4.4Мбит/с. Также исправлена ошибка в коде генерации отметок времени для TCP, проявившаяся в результате вышеописанных изменений. * На loopback-интерфейсах более не производится откладывание ACK-пакетов. * Добавлена поддержка чипов SiS191 в se(4). * Завершена переработка кода, работающего с управлением питанием. Жалобы на проблемы с ACPI к концу сентября практически сошли на нет. * Поддержка файловой системы NTFS включена теперь по умолчанию в GENERIC-ядре после исправления ряда проблем с надёжностью работы. В ближайшее время ожидается дальнейшее развитие. * Исправлен ряд проблем с отрисовкой псевдографики на UTF8-терминалах, в частности, PuTTY. * Исправлена как минимум одна из серьёзных проблем, мешающих использованию опции bigmem на платформе amd64. * Добавлена поддержка чипов 82583V в em(4). * Исправлены проблемы с atw(4), возникшие после переезда на GCC 4. * Функциональность pmsi(4) перемещена в состав pms(4). * Исправлены досадные, периодически проявляющиеся баги в umass(4), один из которых приводил к kernel panic при работе с umass-устройствами, имеющими несколько логических подустройств (LUN-ов), а другой — при подключении umass-устройств без подключённых дисков. * Некоторых дисковые устройства (например, CD-приводы) теперь не читают разметку своего диска сразу при подключении; вместо этого принудительно используется псевдоразметка, что позволяет использовать уникальные идентификаторы с такими устройствами. * uyurex(4) переименован в utwitch(4) и включён в сборку по умолчанию. * Для glob(3) добавлен новый флаг, GLOB_KEEPSTAT, который позволяет сохранить копию использовавшейся структуры stat, дабы избежать последующего вызова stat(2)/lstat(2). * Также в libc добавлена timingsafe_bcmp(3), функция, реализующая сравнение областей памяти за непредсказуемое время. Изначально она была создана и использовалась в OpenSSH для предотвращения раскрытия косвенной информации. * Добавлен новый демон iscsid(8), iSCSI-инициатор, использующий ранее созданный vscsi(4). На данный момент реализован абсолютный минимум протокола, необходимый для работы, поэтому для production пока не подходит (даже формат конфигурационного файла iscsi.conf пока что ещё не устоялся). В сопутствующей утилите iscsictl(8) реализованы пока что только обнаружение устройств и перезагрузка конфигурации. iscsid(8), iscsictl(8) и собственно vscsi(4) включены в базовую сборку. * Убраны утилиты msgs(1) и tn3270, как неактуальные в современном мире. * В ldapd(8) реализована прямая поддержка BSD-аутентификации, без использования SASL, посредством использования префикса {BSDAUTH}. * Приятная мелочь: dhclient(8) теперь можно указать в качестве интерфейса egress, что позволяет принудительно обновлять аренду без необходимости знать, на каком интерфейсе dhclient(8) запускали до этого. * GCC 4 теперь успешно работает на MIPS64-архитектурах, а также корректно делает кросс-компиляцию как таковую. Все MIPS-архитектуры переведены на GCC 4. * Добавлена поддержка L2TP для PIPEX в ядре и npppd, в том числе для IPv6. * После исправления проблем со сборкой на архитектурах, не поддерживающих динамическое связывание, утилита для работы с Web-камерами video(1) вновь включена в сборку. * Продолжена работа на OpenRCS/OpenCVS. В частности, исправлены досадные проблема с рекурсивным созданием каталогов и с не-игнорированием каталогов CVS при некоторых операциях в OpenCVS. Возможно, OpenCVS снова будет поставляться в OpenBSD 4.9. * Perl обновлён до версии 5.12.2. * В mod_headers системного Apache 1.3 добавлена поддержка директивы RequestHeader аналогично Apache 2.x. * Новые опции в tmux:
Опция сервера exit-unattached указывает серверной части завершиться после отключения последнего клиента, даже если остались какие-то сессии. Опция сессии destroy-unattached указывает, что сессию следует завершить после отключения последнего клиента.
Изменения в OpenSSH:
* Добавлена опция KexAlgorithms, позволяющая выбирать среди поддерживаемых алгоритмов обмена ключевой информацией. * Исправлена проблема вида «гонка ресурсов» с управляющими сокетами; теперь дохлые серверные сокеты будут автоматически убираться клиентами. * В sftp(1) добавлена поддержка управления скоростью потока (опция командной строки -l), аналогично scp(1).
Заметные изменения в портах:
* Вместо GNU libtool по умолчанию теперь используется собственная версия libtool, написанная на Perl. Основные плюсы альтернативной реализации: o Отсутствие проблем при сборке пакетов параллельно с наличием их же установленных: GNU libtool зачастую подцепляет в этих случаях библиотеки из системы, а не из того места, в котором идёт сборка, что приводит к конфликтам при использовании программ из данных пакетов и от них зависящих. o Большая скорость работы: общая скорость полной сборки портов возросла на 15%. o Более компактный и простой в понимании код, который проще поддерживать и который лучше учитывает специфику OpenBSD. Практически все пакеты успешно собираются с помощью собственной реализации, а для немногих, закладывающихся на ещё нереализованные особенности поведения GNU libtool, по-прежнему используется последняя. * Порт Ruby разбит на две версии, 1.8 и 1.9, аналогично тому как это делается для Python. По умолчанию на данный момент используется 1.8. Программы из портов проверены на работу без наличия симлинка /usr/local/bin/ruby, однако для сторонних программ он может понадобиться.
Также ряд (других) улучшений наблюдался в USB- и звуковой подсистемах (прежде всего касаемо поддержки ждущего режима), программных реализациях RAID, подсистеме IEEE 802.11, поддержке NetAtalk, bridge(4), cwm, gcvt(3), iked(8), mandoc(1), npppd(8), procfs, softraid(4), tcpbench и других многочисленных частях ОС.
_________________ Если Вы уверены, что все ввели правильно, то сообщите об ошибке администратору.
|