Релиз операционной системы 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.
- Поддержка мультипроцессорности для процессоров на базе врхитектуры 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