И снова с нами релиз NetBSD, на этот раз десятый. Со времени предыдущего прошло полтора года, так что обновлений, дополнений и прочих изменений достаточно много. Уже готовы загрузочные образы сразу для 57 разных архитектур и 16 семейств процессоров. Ознакомиться с релизом можно вот здесь, а пока давайте посмотрим, что там интересного.

Главные изменения нового релиза:

  • В файловой системе FFS появилась поддержка списков контроля доступа (POSIX.1e ACL). Её реализовали с применением расширенных атрибутов файлов, перенеся из FreeBSD. Для того чтобы использовать ACL, появился новый тип файловой системы FFSv2ea. Перейти на него можно посредством специальной утилиты fsck_ffs.

  • Оптимизирована система виртуальной памяти. Так, для поиска страниц решено использовать более оперативный алгоритм radix tree, плюс повышена скорость отслеживания как чистых, так и грязных страниц памяти. Ускорена работа fsync для крупных файлов, улучшена работа с блокировками и повышена эффективность параллельного выполнения операций.

  • Хорошая новость в том, что появилась поддержка шифрования носителей с использованием алгоритма Adiantum. Нововведение позволяет добиться высокой эффективности на системах без AES. В утилите cgdconfig теперь есть поддержка разделяемых ключей, которые можно использовать для шифрования нескольких накопителей. Также решено по дефолту включить хэширования паролей на Argon2id и разделы подкачки (vm.swap_encrypt=1). Добавлена поддержка аппаратных механизмов ускорения шифрования, предоставляемых процессорами x86 и Arm, например, инструкций для ускорения AES и ChaCha.

  • В релизе теперь есть и сетевой интерфейс wg с реализацией VPN, совместимого с WireGuard.

  • Особое внимание разработчики уделили оптимизации производительности. Так, улучшена эффективность работы кэша файловых путей в ядре. Кроме того, повышена производительность планировщика задач, адаптированного для работы на системах big.LITTLE Arm. В них сочетаются как быстрые, так и медленные ядра CPU. Увеличена также производительность системных вызовов select и poll. Повышена производительность ФС tmpfs. Плюс удалось ускорить процесс загрузки, добавить оптимизации для разных архитектур и т. п.

  • Добавлен драйвер vether с реализацией виртуальных интерфейсов Ethernet, их теперь можно использовать в сетевых мостах и вместо интерфейсов tap.

  • В сетевом стеке реализована поддержка RFC 7048, улучшающая работу механизма IPv6 Neighbor Discovery и делающая его независимым от адресов.

  • Кроме того, появилась поддержка расширений, связанных с ИБ для чипов Armv8-A: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification).

  • Также улучшена поддержка формата UDF, теперь он совместим на уровне ошибок с реализацией из «десятки», т. е. Windows 10. В частности, в утилите newfs_udf появилась возможность формирования в формате UDF 2.50 с отдельным разделом для метаданных. Добавлена утилита fsck_udf для проверки и восстановления сбойных ФС в формате UDF.

  • В утилите fstat появилась поддержка ZFS.

  • Расширена поддержка известного механизма FUSE (Filesystem in Userspace), в драйвере refuse обеспечена полная поддержка вариантов API FUSE, используемых в версиях FUSE от 1.1 до 3.10.

  • В дистрибутив добавили новые программы:
    ○ aiomixer — микшер звука
    ○ realpath — вывод абсолютного пути к файлу на основе относительного пути
    ○ tradcpp — макропроцессор в стиле K&R C
    ○ ioctlprint — показ значений ioctl
    ○ testpat — вывод тестовой таблицы для оценки цветопередачи экрана
    ○ warp — классическая игра BSD-систем

  • Нельзя забывать и про обновление версий различных компонентов от третьих сторон, включая ctwm 4.0.3, gcc 10.5, lua 5.4.6, OpenSSL 3.0.12, postfix 3.8.4, tmux 3.2a, OpenSSH 9.6, X.org Server 21.1.7, BIND 9.18.24, Heimdal kerberos 7.8.0, unbound 1.19.1, wpa_supplicant 2.9, OpenLDAP 2.5.6, binutils 2.34, libfido2 1.13.0, pam-u2f 1.2.0, zlib 1.2.13.

  • Конечно, не могли разработчики не подумать про обновление графических драйверов, обновлены GPU Intel, NVIDIA и AMD для систем x86. Подсистема DRM/KMS синхронизирована с ядром Linux 5.6

  • Что касается «железа», то добавлены ещё и 17 новых драйверов устройств, включая драйверы для tablet pc Wacom, Realtek 8125 2.5 Gigabit Ethernet, Motorcomm YT8511C/YT8511H Gigabit Ethernet, Intel Ethernet 700, Broadcom GENETv5 Ethernet, криптоускорителей Intel QuickAssist и LTE-модемов Intel XMM7360.

  • Также появилась поддержка функций новых процессоров от Intel и AMD, добавлена поддержка новых ARM-плат (Raspberry Pi 4, Orange Pi 5, Lichee Pi Zero, ODROID-N2+, M1 Mac Mini, HummingBoard Pulse, UDOO Neo Full, PINE64 Quartz64, Asus Tinker и т. д.). Расширена поддержка архитектуры MIPS.

  • Если говорить про удалённые компоненты, то их немало. Так, уже не поддерживаются технологии HIPPI, FDDI и TokenRing, из ядра удалены драйверы nsmb и mount_smbfs для SMBFS (не поддерживают новые версии протокола SMB), в пространство пользователя из ядра вынесена поддержка IPv6 Router Advertisment, удалены библиотеки libXTrap, libXevie и libglut, удалены драйверы для многих устаревших устройств.

  • Улучшены драйверы VirtIO, в которых теперь реализована поддержка спецификации VirtIO 1.0. Добавлен драйвер vio9p для монтирования в гостевых системах ФС VirtIO 9P, экспортируемых хост-окружением. Добавлен драйвер viocon для виртуального последовательного порта.

Также стоит добавить, что NetBSD поддерживает 8 первичных портов, включая amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 и xen, а также 49 вторичных портов, связанных с такими CPU, как alpha, hppa, m68010, m68k, sh3, sparc и vax. Вторичные порты ещё поддерживаются, но актуальность потеряли.

Если вы уже протестировали новый релиз, расскажите, как он вам.

Комментарии (5)


  1. BigD
    03.04.2024 16:05

    А... зачем?)


  1. unreal_undead2
    03.04.2024 16:05

    NetBSD поддерживает 8 первичных портов, включая amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 и xen, а также 49 вторичных портов, связанных с такими CPU, как alpha, hppa, m68010, m68k, sh3, sparc и vax

    А RISC V в каком статусе?


  1. checkpoint
    03.04.2024 16:05

    В то время как в NetBSD добавляют новые платформы и расширяют список поддерживаемых, из фрюхи начали старые "не актуальные" платформы выметать. Это ничего кроме сожаления не вызывает. :( Чую не далёк тот день, когда придется пересесть с FreeBSD на NetBSD.


    1. remendado
      03.04.2024 16:05

      Увы поддержка фряхи со стороны разработчиков приложений сокращается. Только вчера попробовал поднять opencv 4.9 на FreeBSD 13.3 + python 3.11, как выяснилось, исходники opencv нужно править руками. И такого все больше.


  1. m3nthal
    03.04.2024 16:05

    Интересно, какая целевая аудитория этой ОС? В чем ее преимущества по сравнению с популярными дистрибутивами или перед теми же *BSD системами?