Релиз операционной системы NetBSD 7.0

После более двух лет разработки состоялся релиз операционной системы NetBSD 7.0, в котором реализована очередная порция новых возможностей. Для загрузки подготовлены установочные образы, размером 410 Мб.

Релиз NetBSD 7.0 официально доступен в сборках для 58 системных архитектур и 16 различных семейств CPU. Отдельно выделены 8 первично поддерживаемых портов, составляющих ядро стратегии развития NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 и xen. Остальные 50 портов, связанных с такими CPU, как alpha, hppa, m68010, m68k, sh3, sparc и vax, отнесены ко второй категории, т.е. ещё поддерживаются, но уже потеряли актуальность или не имеют достаточного числа заинтересованных в их развитии разработчиков.

Ключевые улучшения NetBSD 7.0:

  • Возможность использования языка Lua для написания динамически загружаемых расширений к ядру, изменяющих поведение существующих систем или создающие новые возможности. В том числе при помощи Lua-дополнений можно реализовать прототипы новых алгоритмов работы планировщика задач, механизмы QoS, расширенные обработчики сетевых пакетов, изощрённые сетевые фильтры, собственные правила управления энергопотреблением процессора и драйверы устройств. При этом, выполняемые в пространстве ядра скрипты не имеют прямого доступа к памяти ядра, изолированы в отдельной виртуальной машине Lua и взаимодействуют с подсистемами ядра через специальные биндинги. Перед загрузкой Lua-дополнения выполняется стадия формирования байткода, на которой выявляются и блокируются опасные конструкции, таких как бесконечное зацикливание. Для запуска скриптов в пространстве ядра из окружения применяется утилита luactl. 0_1382123741.png
  • Поддержка мультипроцессорности для процессоров на базе врхитектуры ARM;
  • Портирование из Linux работающих на уровне ядра драйверов DRM/KMS для GPU Intel и AMD Radeon;
  • Поддержка распараллеливания USB-стека на многопроцессорных системах;
  • Значительные улучшения пакетного фильтра NPF:
    • Поддержка подключения BPF-фильтров с применением по умолчанию JIT-компиляции;
    • Возможность создания динамических правил;
    • Поддержка статического NAT (не учитывающего состояние соединений)
    • Поддержка трансляции сетевых префиксов IPv6-to-IPv6 (NPTv6) в соответствии с RFC 6296;
    • Поддержка таблиц на базе хэшей CDB (O(1)-выборка без блокировок).
  • Представлен демон blacklistd, интегрируемый с пакетным фильтром и реализующий идею динамического межсетевого экрана для защиты от попыток взлома локальных сервисов, таких как ssh, named и ftpd;
  • Возможность создания именованных wedge-разделов на диске;
  • В качестве компилятора по умолчанию задействован GCC 4.8.4 с поддержкой стандарта C++11;
  • Опционально доступен распространяемый под лицензией BSD сборочный инструментарий, основанный на LLVM/Clang 3.6.1, compiler_rt, libc++ и libcxxrt;
  • Поддержка дисковых разделов GPT в SysVinit (через расширенное меню управления разделами);
  • Новый порт epoc32 для ARM-платформы, используемой в PDF Psion EPOC;
  • Поддержка новых ARM-плат:
    • Raspberry Pi 2
    • ODROID-C1
    • BeagleBoard, BeagleBone, BeagleBone Black
    • MiraBox
    • Allwinner A20, A31: Cubieboard2, Cubietruck, Banana Pi и т.п.
    • Freescale i.MX50, i.MX51: Kobo Touch, Netwalker
    • Xilinx Zynq: Parallella, ZedBoard
  • Новый лимит RLIMIT_NTHR для ограничения числа процессов в привязке к пользователю;
  • Поддержка системных вызовов sendmmsg(2), recvmmsg(2), fdiscard(2) и posix_fallocate(2);
  • Из OpenBSD перенесена порция sysctls для избежания DoS-атак на IPv6: net.inet6.ip6.neighborgcthresh = 2048, net.inet6.ip6.maxifprefixes = 16, net.inet6.ip6.maxifdefrouters = 16, net.inet6.ip6.maxdynroutes = 4096;
  • Поддержка опции сокета TCP_INFO для получения информации о TCP-соединении;
  • В псевдоФС ptyfs добавлена возможность множественного монтирования и обеспечено корректное отображения устройств в chroot-окружениях;
  • В GENERIС-ядре включена по умолчанию поддержка расширенных атрибутов файлов для UFS1;
  • В драйвер wd и FFS добавлена экспериментальная поддержка операции "discard" (ATA "TRIM") для SSD-накопителей;

© OpenNet