Документация по ОС FreeBSD Среда, 08.01.2025, 23:02
Приветствую Вас Гость | RSS
Меню сайта
links

Главная » 2008 » Февраль » 29 » Официально анонсирован релиз FreeBSD 7.0, обзор новшеств
Официально анонсирован релиз FreeBSD 7.0, обзор новшеств
10:03

После двух с половиной лет разработки, анонсирован выход релиза FreeBSD 7.0. Ниже обзор новшеств.

Ядро

  • В подсистемы ядра ipsec и geli (шифрование диска) добавлена поддержка 128-битного блочного шифра Camellia, который был разработан компанией Mitsubishi Electric Corporation и открыт для свободного использования весной 2007 года.
  • Сборка и конфигурирование ядра
    • Опция сборки ядра COMPAT_43 признана ненужной и удалена из конфигурации.
    • Удалена опция PIM, вместо нее следует использовать MROUTING
    • Удален код драйверов:
      • cvt(4), альтернативной реализации syscons(4)
      • sab(4), который заменен новым драйвером scc(4) (Serial Communications Controllers).
      • zs, функции которого продублированы в uart(4).
      • el(4)
      • lnc(4), поддержка устройств обеспечена драйверами le(4) и pcn(4);
      • bridge(4), вместо него следует использовать if_bridge(4).
      • rr232x(4), следует использовать hptrr(4)
    • В GENERIC ядре по умолчанию включен cpufreq, драйвер dumb консоли, драйвер uart(4) , fwip (IP over FireWire), wlan_wep(4), wlan_ccmp(4) и wlan_tkip(4).
    • В GENERIC добавлена опция TCP_DROP_SYNFIN;
    • Для платформы ia64 в GENERIC по умолчанию включен SMP режим.
  • Библиотека тредов (1:1) libthr оптимизирована и используется по умолчанию.
  • Выделение кода KSE в опцию ядра. При компиляции ядра на основе собственных конфигурационных файлов необходимо включать 'options KSE'. В случае использования libthr вместо libpthread в KSE нет необходимости.
  • Новые sysctl переменные:
    • kern.hostuuid - содержит уникальный идентификатор хоста UUID (Universally Unique Identifier), неизменный между перезагрузками (сохраняется в /etc/hostid);
    • kern.conftxt - позволяет посмотреть содержимое файла конфигурации для текущей сборки ядра;
    • kern.malloc_stats - статистика распределения памяти ядром (kernel malloc);
    • kern.forcesigexit - заставляет завершать работу процесса по sigexit в случае удержания нитью сигнала "trap" или игнорирования текущим процессом. Включено по умолчанию.
    • vm.kmem_size_min (только для loader) - позволяет задавать минимальное значение vm.kmem_size.
    • debug.mpsafevfs (только для loader) - для архитектур ia64 и powerpc MPSAFE режим отладки кода vfs включен по умолчанию.
    • vm.zone_stats - позволяет получить статистику работы uma аллокатора памяти.
    • переменная hw.pci.do_powerstate разделена на две части: hw.pci.do_powerstate_nodriver и hw.pci.do_powerstate_resume.
    • net.inet.icmp.reply_from_interface - включает отправку ICMP ответов на нелокальные запросы, с IP на который пришел данный пакет.
    • net.inet.icmp.quotelen - изменяет размер цитируемой части TCP запроса при генерации ICMP ответа (минимум 8 байт, максимум - размер mbuf).
  • Усовершенствован режим эмуляции Linux (Linuxulator), произведен переход на использование 2.6.16 Linux ядра. Возможность не включена по умолчанию и является экспериментальной, для включения необходимо установить значение sysctl переменной compat.linux.osrelease в "2.6.16".
  • В PCI подсистему ядра добавлена поддержка Message Signaled Interrupts (MSI) и Extended Message Signaled Interrupts (MSI-X);
  • Добавлен новый интерфейс проверки привилегий внутри ядра - priv(9). Это замена существующему интерфейсу suser(9). priv(9) позволяет более гибко ограничивать привилегии пользователю, и является вариантом реализации POSIX capabilities.
  • Поддержка параллельного чтения данных из файла (read(2)/readv(2)) разными процессами.
  • Переработанный планировщик задач ULE (SCHED_SMP), отличающийся повышенной стабильностью и производительностью, как на однопроцессорных машинах, так и на SMP системах. В сочатании с оптимизацией в других подсистемах, разработчики добились увеличения производительности в тестах на 350% по сравнению с FreeBSD 6, при высокой нагрузке прирост производительности отмечен до 1500%.
  • Реализованы очереди сигналов SIGCHLD, настраиваемые через sysctl переменную kern.sigqueue.queue_sigchild.
  • RedZone - улучшение безопасности работы с памятью на уровне ядра, через защиту буфера от повреждения при выделении/освобождении памяти во время вызова malloc(9).
  • Экспериментальная поддержка POSIX Message Queue (P1003_1B_MQUEUE);
  • Переработан механизм блокировок для UNIX domain socket - улучшена скорость выполнения параллельных операций с сокетом и производительность на SMP системах;
  • Изменен API системы Newbus (архитектура для написания драйверов устройств), добавлены средства для фильтрации прерываний;
  • В загрузчике (Boot Loader) появилась поддержка firewire(4) и dcons(4), добавлена новая опция "-s" для задания скорости консоли привязанной к последовательному порту.

Поддержка оборудования

  • ACPI, управление питанием и температурой:
    • acpi_dock(4) - драйвер для взаимодействия с док-станциями;
    • acpi_thermal(4) драйвер для регулирования температуры посредством ACPI.
    • Драйвер coretemp(4) для опроса температурных датчиков процессора Intel Core;
    • В cpufreq(4) драйвере появилась поддержка процессоров VIA C7-M.
  • Избавление от глобальных блокировок, мешающих оптимальной работе на многопроцессорных системах (приведение к MPSAFE виду): firewire(4), snd_cmi(4), snd_solo(4), bge(4), cm(4), natm(4), ng_h4(4), ng_ppp(4), ahc(4), ahd(4), подсистема CAM, ciss(4), isp(4), mpt(4)
  • Удалена поддержка архитектуры Alpha. Добавлена поддержка архитектуры UltraSPARC-T1, работа FreeBSD/sun4v проверена на серверах Sun Fire T1000 и Sun Fire T2000.
  • Обеспечена работа по умолчанию обоих ядер (core) двуядерных процессоров, таких как Intel Core Duo, в SMP сборках ядра (kernel) FreeBSD;
  • В драйвере uart(4) появилась поддержка доступа к устройствам LOM (Lights Out Management) и RSC (Remote System Control), как к консоли;
  • В драйвер uark(4) добавлена поддержка USB адаптеров последовательного интерфейса, основанных на чипе Arkmicro Technologies ARK3116;
  • Поддержка мультимедиа
    • Новый midi(4) драйвер, основанный на коде из NetBSD. Поддерживается в драйверах snd_cmi(4) и snd_emu10k1(4).
    • Новые драйверы:
      • snd_emu10kx(4) с поддержкой звуковых карт Creative SoundBlaster Live и Audigy;
      • snd_envy24(4) с поддержкой звуковых карт на базе чипов Envy24, а также snd_envy24ht(4) с поддержкой аудиочипов VIA Envy24HT.
      • snd_hda(4) с поддержкой Intel High Definition Audio
      • snd_spicds с поддержкой аудио кодека I2S SPI;
    • В драйвере uaudio(4) реализована поддержка 24/32-битных аудио форматов и их преобразования;
  • Сетевые устройства
    • TCP стек избавлен от глобальных блокировок (Giant Lock), мешающих оптимальной работе на многопроцессорных системах. Ряд оптимизиций (см. ниже) позволил добиться увеличения производительности в разы. Удален отладочный и сопутствующий Giant-локам код, за компанию удалена поддержка IPX поверх IP, временно отключены модули ISDN4BSD и netatm.
    • Поддержка группировки сетевых интерфейсов портирована из OpenBSD. Например, позволяет применить правило пакетного фильтра сразу для нескольких интерфейсов объединенных в группу;
    • Значительно переработан беспроводной стек 802.11. Добавлена возможность фонового обнаружения сетей, роуминга между точками доступа, поддержка 802.11n устройств и 900 MHz карт, половинной (15dBm) и четвертной (12dBm) выходной мощности каналов каналов для 802.11a;
    • Добавлена поддержка altq в драйверы: axe(4), gem(4), vge(4)
    • Новые драйверы:
      • cxgb(4) с поддержкой 10 Gigabit Ethernet адаптеров на базе чипов Chelsio T3 и T3B;
      • ixgbe(4) - Intel 10G PCI-Express adapter (82598);
      • msk(4) - Marvell/SysKonnect Yukon II Gigabit Ethernet;
      • mxge(4) - Myricom Myri10GE 10 Gigabit Ethernet;
      • nfe(4) - открытый драйвер для nForce Ethernet, портированный из OpenBSD;
      • nxge(4) - Neterion Xframe 10 Gigabit Ethernet;
      • rum(4) - беспроводные карты на базе чипов Ralink RT2501USB и RT2601USB;
      • wpi(4) - Intel 3945 Wireless LAN Controller.
      • zyd(4) - беспроводные карты ZyDAS ZD1211/ZD1211B USB IEEE 802.11 b/g;
    • Обновлены драйверы:
      • em(4), добавлена поддержка Intel адаптеров 80003, 82571, 82571EB, 82572, 82575, ICH8. Значительно увеличена производительность, за счет более быстрой обработки прерываний и использования обработчика "taskqueue" вместо "ithread".
      • ipw(4), iwi(4) - firmware для беспроводных карт теперь в комплекте, и не требует установки портов net/ipw-firmware-kmod, net/iwi-firmware-kmod, net/iwi-firmware или net/ipw-firmware;
      • В re(4) появилась поддержка D-Link DGE-528(T) Gigabit Ethernet

Сетевые протоколы

  • Добавлен JIT (Just-In-Time) компилятор BPF правил отсеивания пакетов в bpf(4) и ng_bpf(4). Для включения нужно пересобрать ядро с опцией BPF_JITTER, временно отключить можно через sysctl net.bpf_jitter.enable;
  • Реализована поддержка IPv6 поверх GRE туннелей;
  • В if_bridge появилась поддержка RSTP (Rapid Spanning Tree Protocol, 802.1w), добавлен атрибут private, который позволяет помечать порты, между которыми запрещено передавать трафик;
  • Снято фиксированное ограничение на размер IPv4 multicast групп;
  • В пакетном фильтре ipfw(4) реализована поддержка фильтрации заголовков "Routing Header Type 0" и "Mobile IPv6 Routing Header Type". Удален код пакетного фильтра ip6fw(8), так как в ipfw(4) реализована полноценная поддержка IPv6;
  • Удалена KAME реализация IPSec, на ее место пришел FAST_IPSEC, в котором добавлена поддержка IPv6 и аппаратной акселерации шифрования;
  • Из OpenBSD/NetBSD портирован драйвер для объединения каналов в виртуальный сетевой интерфейс с возможностью обеспечения бесперебойной работы - lagg(4);
  • Новые Netgraph узлы:
    • ng_car - реализация различных алгоритмов ограничения трафика и rate-лимитов.
    • ng_deflate с поддержкой Deflate сжатия для PPP;
    • ng_pred1 c поддержкой Predictor-1 сжатия для PPP;
  • Новая опция сокетов - IP_MINTTL, позволяющая задать минимальный TTL пакетов, которые будут приниматься, пакеты с меньшим TTL будут отбрасываться. Например, при установке IP_MINTTL в 255 будут обслуживаться только запросы с локальной машины.
  • В ppp(4) драйвере, реализованном на уровне ядра, появилась поддержка IPv6;
  • Реализовано IP сокетов Source-Specific Multicast (SSM, RFC 3678);
  • Добавлена поддержка протокола SCTP (Stream Control Transmission Protocol). Включается через опцию ядра SCTP, по умолчанию активно в GENERIC конфигурации;
  • Поддержка TSO (TCP/IP segmentation offload) - снижение нагрузки системы через вынос некоторых моментов обработки TCP соединений на плечи сетевых карт (поддержка в em(4), mxge(4) и cxgb(4));
  • Динамическое вычисление размера send/receive TCP буферов (размер автоматически варьируется в зависимости от типа сетевой активности). Управление через sysctl переменные net.inet.tcp.sendbuf_* и net.inet.tcp.recvbuf_*.
  • Интеграция libalias в ipfw2, трансляцией адресов теперь можно управлять через набор команд "ipfw nat".

Диски и системы хранения данных

  • gjournal - GEOM класс для журналирования, работающий на уровне блоков и не зависящий от типа файловой системы. В настоящее время реализована поддержка журналирования UFS;
  • gvirstor - GEOM класс для создания виртуальных дисковых разделов. Например, при помощи gvirstor можно объединить группу дисков в одно большое хранилище и в дальнейшем подключать к нему новые диски;
  • gmultipath(8) - GEOM класс для создания нескольких точек доступа к диску;
  • Новые драйверы
    • hptiop(4) - Highpoint RocketRAID 3xxx и 4xxx серии SAS и SATA RAID контроллеры;
    • hptrr(4) - HighPoint RocketRAID;
    • Новый драйвер scsi_sg, который эмулирует большую часть Linux SCSI SG и позволяет запускать программы, использующее данное API, в Linux эмуляторе посредством /dev/sg*;
    • Реализация iSCSI Initiator, для удаленного доступа к iSCSI устройствам по сети. Управление производится через утилиту iscontrol
  • Обновленные драйверы
    • aac(4) - добавлена поддержка контроллеров Adaptec 2610SA SATA-RAID, используемых в некоторых машинах производства Hewlett-Packard;
    • GEOM класс g_md.ko переименован в geom_md.ko
    • hptmv(4) теперь поддерживает amd64 также хорошо как и PAE.
    • mpt(4) - значительно расширены возможности, добавлены средства управления RAID разделами, возможность просмотра состояния и уровня ресинхронизации. Реализована поддержка SAS HBA, 64-bit PCI, режима пересылки больших блоков данных;
    • twa(4) - синхронизирован с последней версией драйвера с сайта 3ware. Добавлена поддержка AMCC 3ware 9650 серии SATA контроллеров.
    • umass - расширены возможности драйвера для устройств хранения данных с USB интерфейсом

Файловые системы

  • Избавление серверной и клиентской частей NFS и pseudofs (procfs, linprocfs и linsysfs) от глобальных блокировок, что позволяет добиться значительного увеличения производительности на многопроцессорных системах.
  • Добавлена реализация файловой системы tmpfs, которая была разработана в рамках программы Google "Summer of Code" для проекта NetBSD, от куда и была портирована во FreeBSD.
  • Новая, более стабильная, реализация файловой системы unionfs;
  • Поддержка файловой системы ZFS, портированной из OpenSolaris. ZFS доступна для платформ amd64, i386 и pc98.
  • Реализация файловой системы XFS, работающей пока только в режиме чтения. Код был портирован из реализации XFS для Linux, распространяемой компанией SGI.

Пользовательский уровень

  • Изменения в библиотеках
    • Библиотечные вызовы addr2ascii() и ascii2addr(), представленные в INRIA реализации IPv6, удалены из libc;
    • Из структуры addrinfo исключено поле ai_addrle, в целях сохранения совместимости ABI с 64-битными сборками;
    • В библиотеке libelf реализована SVR4 elf и gelf API для манипуляции ELF файлами;
    • В библиотеке libarchive добавлена поддержка ar-архивов и расширенных атрибутов файлов в стиле POSIX.1e.
    • Библиотечные вызовы семейства setenv переведены от исторического BSD варианта к POSIX.
    • В libc и libm библиотеки включена поддержка карт экспортируемых имен и версий (symbol maps, symbol version definitions).
    • Код библиотеки libedit обновлен из дерева исходных текстов NetBSD, в состоянии за август 2005 года.
    • Новая реализация malloc - jemalloc, оптимальная для многонитевых приложений;
    • Код DNS-резолвера в библиотеке libc импортирован из BIND 9.4.1;
    • В стандартной библиотеке реализована функция wcsdup().
  • Новые и удаленные утилиты:
    • ipfwpcap - утилита для захвата пакетов через divert сокет и сохранения их в формате pcap;
    • sade - наглядный редактор дисковых разделов, в стиле sysinstall.
    • nscd - новый демон для кэширования nsswitch запросов (обращение к файлам с базой пользователей, групп, /etc/services);
    • wpa_passphrase - новая утилита для генерации 256-битных WPA ключей на основе ASCII пароля.
    • Демон mrouted перемещен из базовой системы в порты (net/mrouted)
    • Удалены сопутствующие mount_* утилиты (mount_devfs, mount_ext2fs, mount_fdescfs, mount_linprocfs, mount_procfs, mount_std, mount_linsysfs, mount_reiserfs, mount_umapfs), тип файловой системы следует задавать через опцию '-t';
    • Удалены утилиты objformat и getobjformat, работающие с файлами в формате a.out;
    • Удалена программа usbd, отныне следует использовать devd;
    • Удалена утилита vnconfig(8), отныне следует использовать mdconfig;
    • Удалена утилита wicontrol, для конфигурации беспроводных интерфейсов нужно использовать ifconfig(8).
  • Измененные утилит:
    • atrun и cron - появилась поддержка PAM;
    • camcontrol - добавлена команда readcap для просмотра размера устройств;
    • dhclient - реализована поддержка RFC 3442 (опция Classless Static Route);
    • dump и restore - научились сохранять и восстанавливать расширенные атрибуты файлов;
    • fdisk - добавлен "-p" флаг для вывода информации о слайсах в формате конфигурации fdisk;
    • find - исправлена ошибка, не позволяющая использовать цифровые идентификаторы в опциях -user и -group;
    • В утилите обновления freebsd-update появилась поддержка команды "upgrade", для бинарного обновления системы до нового релиза;
    • ftpd - добавлена поддержка RFC2389 (FEAT) и RFC2640 (UTF8, включается через опцию -8);
    • gpt - добавлена поддержка установки меток на GPT дисковые разделы
    • gvinum - новая команда resetconfig;
    • hccontrol - появилась поддержка автоопределения HCI узлов;
    • В утилите id отныне EUID выводится перед номером группы;
    • mdconfig - возможность получения списка устройств (list, query) в XML формате. Добавлена опция '-u' для указания списка устройств, перечисленных через запятую;
    • mdmfs - новая опция "-P", позволяющая пропустить выполнение newfs, а также опция "-E" для указания точного пути к утилите mdconfig.
    • mount - исправлена ошибка возникающая при переводе раздела из read-only режима в read-write, посредством вызова "mount -u -o rw".
    • pkill - реализована опция "-F" для ограничения срабатывания при выборке по маске, если для PID процесса существует PID-файл. Кроме того, добавлен флаг "-I", аналогичный интерактивному режиму команды rm, т.е. перед отправкой сигнала спрашивает разрешение.
    • pw(8) новый флаг "-M", для задания прав доступа на создаваемую домашнюю директорию пользователя.
    • В rpcbind появилась возможность привязки к определенному IP (-h), в rpc.lockd и rpc.statd - изменения номера порта (-p);
    • time - отправив сигнал SIGINFO еще не завершенному time процессу, можно получить данные о статистике на текущий момент.
    • В команде top при помощи флага -j теперь можно увидеть идентификатор jail окружения в котором выполняется процесс;
    • В утилите truss реализован режим эмуляции strace (-s). Кроме того, truss больше не привязана к псевдо-ФС procfs и работает через ptrace.
  • Безопасность:
    • В gcc по умолчанию включена защита от атак направленных на переполнение стека - SSP (Stack-Smashing Protector);
    • GSS-API v2, новый уровень, поддерживающий механизм GSS-API плагинов (подобный реализации в Solaris);
    • PAM модуль pam_nologin перестал выполнять аутентификацию и теперь предназначен только для аккаунтинга. В файлах внутри директории /usr/local/etc/pam.d может потребоваться ручная замена строк вида "auth required pam_nologin.so no_warn", на "account required pam_nologin.so no_warn"
  • Обновление сторонних программ, входящих в базовую систему:
    • GCC обновлен до версии 4.2.1 (был 3.4.6).
    • Intel ACPI-CA 20070320.
    • awk релиз от 1 мая 2007 г.
    • BIND обновлен с версии 9.3.3 до 9.4.2.
    • BSNMPD обновлен с 1.11 до 1.12.
    • BZIP2 обновлен с 1.0.3 до 1.0.4
    • GNU Diffutils обновлены с 2.7 до 2.8.7.
    • Утилита file обновлена с 4.12 до 4.23.
    • Библиотека GNU Readline обновлена до версии 5.2 patch 2.
    • GNU версия gzip заменена BSD вариантом из проекта NetBSD.
    • IPFilter обновлен с версии 4.1.13 до 4.1.28.
    • Библиотека libpcap обновлена с 0.9.4 до 0.9.8.
    • Утилита netcat и пакетный фильтр PF обновлены до версий из состава OpenBSD 4.1;
    • Библиотека OpenSSL обновлена до версии 0.9.8e (была 0.9.7e).
    • sendmail обновлен с версии 8.13.8 до 8.14.2.
    • Обновлен пакет TrustedBSD OpenBSM с альфа версии до релиза 1.0.
Интересные подробности, касающиеся FreeBSD 7, можно почерпнуть из подробного интервью с разработчиками. Например, подробно рассказано, как удалось увеличения производительности TCP стека в 3-5 раз, что дает возможность справляться с нагрузкой на 1 и 10 гигабитных линках. Этого удалось достигнуть благодаря средствам автовычисления размера TCP буферов, реализации параллельного выполнения операций с SYN-кэшем, новой реализации системного вызова sendfile(2), перехода с socopyin() на m_uiotombuf(),добавления дополнительного указателя на следующий блок отправляемых данных в цепочке mbuf, уменьшения накладных расходов и переключений контекста при обработке пакетов приходящих из сетевой карты.

 
Новость взята с сайта http://www.nixp.ru
Просмотров: 846 | Добавил: oleg | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Календарь новостей
«  Февраль 2008  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
2526272829

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2025