След година и половина след предишното обновление е публикувана версия на операционната система NetBSD 10. Подготовени са инсталационни образи с размер 630 МБ, достъпни за 57 системни архитектури и 16 различни семейства CPU. Новата версия включва редица значителни подобрения, като поддръжка на списъци за контрол на достъпа в файловата система FFS, значителна оптимизация на производителността, криптиране на диска с алгоритъма Adiantum и внедряване на драйвер за VPN WireGuard в ядрото.
Проектът поддържа 8 основни порта, които съставляват ядрото на стратегическия план за развитие на NetBSD: amd64, i386, evbarm, evbmips, evbppc, hpcarm, sparc64 и xen, както и 49 вторични порта, свързани с CPU като alpha, hppa, m68010, m68k, sh3, sparc и vax. Вторичните портове все още се поддържат, но вече са загубили актуалност или нямат достатъчно разработчици, заинтересовани в тяхното развитие. Един порт (acorn26) е включен в третата категория, в която се намират неработещи портове, които претендират за премахване, ако не се намерят заинтересовани ентусиасти за тяхното развитие.
Основни подобрения в NetBSD 10:
- В файловата система FFS е добавена поддръжка на списъци за контрол на достъпа (POSIX.1e ACL), реализирана с помощта на разширени атрибути на файловете и пренесена от FreeBSD. За използване на ACL е предложен нов тип файловата система FFSv2ea (не се използва по подразбиране), на който могат да бъдат прехвърлени съществуващи файлови системи с помощта на утилитата fsck_ffs.
- Добавен е мрежов интерфейс wg с внедряване VPN, съвместим с WireGuard.
- Извършена е оптимизация на производителността. Повишена е ефективността на кеша на файловите пътища в ядрото. Увеличена е производителността на планиращия механизъм, който е адаптиран за работа на системи big.LITTLE Arm, съчетаващи бързи и бавни ядра CPU. Увеличена е производителността на системните повиквания select и poll. Повишена е производителността на файловата система tmpfs. Ускорен е процесът на зареждане. Добавени са оптимизации, специфични за архитектурите x86 и AArch64. Повишена е пропускната способност на входно-изходни и мрежови операции на системи AArch64.
- Внедрени са оптимизации в системата за виртуална памет: за търсене на страници в паметта е използван по-бърз алгоритъм radix tree, подобрена е скоростта на проследяване на чисти и мръсни страници в паметта, значително е ускорено изпълнението на fsync за големи файлове, подобрена е работата с блокировки и е повишена ефективността на паралелното изпълнение на операции.
- Добавена е поддръжка на криптиране на дискове с използването на алгоритъма Adiantum, който позволява висока ефективност на системи без хардуерно ускорение на криптиране AES. В утилитата cgdconfig е добавена поддръжка на споделени ключове, които могат да се използват за криптиране на няколко устройства. По подразбиране алгоритъмът за хеширане на пароли е променен на Argon2id. Включено е автоматично криптиране на дялове за размяна (vm.swap_encrypt=1). Добавена е поддръжка на хардуерни механизми за ускорение на криптиране, предоставяни от процесори x86 и Arm, например, инструкции за ускорение на AES и ChaCha. В предоставената от ядрото софтуерна реализация на AES е осигурено постоянно време за изпълнение на операциите за всички архитектури.
- Добавена е поддръжка на свързани с безопасността разширения, предоставяни в процесорите Armv8-A: PAN (Privileged Access Never), PA (Pointer Authentication), BTI (Branch Target Identification).
- За откриване на проблеми със сигурността в ядрото са внедрени механизми Kernel Concurrency Sanitizer и Kernel Memory Sanitizer.
- В мрежовия стек е реализирана поддръжка на RFC 7048, която подобрява работата на механизма за IPv6 Neighbor Discovery, правейки го независим от адресите.
- Добавен е нов мрежов интерфейс lagg за агрегация на мрежови връзки и осигуряване на отказоустойчивост (lagg замени интерфейса agr).
- Добавен е драйвер vether с реализация на виртуални Ethernet интерфейси, които могат да се използват в мрежови мостове и вместо tap интерфейси.
- В реализацията ipsec е добавен sysctl net.key.allow_different_idtype за подобряване на съвместимостта с други VPN.
- Подобрена е поддръжката на формата UDF (Universal Disk Format, ФС за оптични дискове), който сега е съвместим на ниво грешки с реализацията от Windows 10. В утилитата newfs_udf е добавена възможност за генериране в формат UDF 2.50 с отделен дял за метаданни. Добавена е утилита fsck_udf за проверка и възстановяване на провалили се ФС в формат UDF.
- В утилитата fstat е добавена поддръжка на ZFS.
- Разширена поддръжка на механизма FUSE (Filesystem in Userspace), в драйвера refuse е осигурена пълна поддръжка на вариантите API FUSE, използвани в версиите FUSE от 1.1 до 3.10.
- В реализацията на софтуерния RAID е добавена поддръжка на конфигурации с разменен ред на байтовете (swapped-endian). В утилитата raidctl е добавена опция «-t» за проверка на коректността на файловете с конфигурация.
- Добавена е нова утилита blkdiscard за ръчно изпълнение на операции TRIM на дисковете, за да се информират за неизползваните блокове.
- В утилитата scan_ffs е добавена възможност за показване на текущата статистика при получаване на сигнал SIGINFO (Ctrl+T).
- В състава са включени нови програми:
- aiomixer — миксер за звук
- realpath — извежда абсолютния път до файла на базата на относителния път.
- tradcpp — макропроцесор в стил K&R C.
- ioctlprint — показва стойностите на ioctl.
- testpat — извежда тестова таблица за оценка на цветопредаване на екрана.
- warp — класическа игра от BSD-системи.
- Включени са в състава и активирани в ctwm растерни шрифтове Spleen, предоставяни под лицензия BSD, достъпни както за екрани с ниска резолюция, така и за екрани с висока плътност на пикселите. В състава са включени също така консолните шрифтове Terminus.
- В прослойката за съвместимост с Linux (compat_linux) е добавена поддръжка на механизмите eventfd, timerfd, POSIX таймери, preadv и pwritev.
- Поддръжката на виртуализацията е подобрена. Добавена е поддръжка на Xen PVH, предоставена е възможност за използване на драйвери Xen PV в хост системите, базирани на HVM, подобрена е реализацията на пар-виртуализирани мрежови интерфейси. В хост ядрата (Dom0) за Xen е включена поддръжка на многопроцесорни системи. В ядрата за Xen е предоставена възможност за използване на модули, общи с обикновеното ядро. Мрежовите (xennet) и блочните (xbd) устройства са адаптирани за многопроцесорни системи (получили статус MPSAFE). Значително е подобрена поддръжката на хипервизора HyperV и разширени възможностите на хипервизора nvmm (NetBSD Virtual Machine Monitor). Добавена е възможност за преход в спящ режим при изпълнение на виртуални машини в nvmm.
- Подобрени са драйверите VirtIO, в които сега е реализирана поддръжка на спецификацията VirtIO 1.0. Добавен е драйвер vio9p за монтиране в хост системите на ФС VirtIO 9P, експортирани от хост-околната среда. Добавен е драйвер viocon за виртуален последователен порт.
- Реализирани са системни повици eventfd и timerfd, съвместими с Linux и използвани в compat_linux. Добавен е системен повик fexecve за изпълнение на файл по дескриптор на файл.
- Премахнати са остарели компоненти, например, спряна е поддръжката на технологии HIPPI, FDDI и TokenRing, от ядрото са премахнати драйверите nsmb и mount_smbfs за SMBFS (не поддържат новите версии на протокола SMB), в пространството на потребителя от ядрото е извлечена поддръжката на IPv6 Router Advertisment, премахнати са библиотеките libXTrap, libXevie и libglut, премахнати са драйверите за много остарели устройства.
- Съществено е разширена поддръжката на хардуер. Осигурена е поддръжка на възможностите на нови процесори 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.
- Добавени са 17 нови драйвера за устройства, например, драйвери за таблети Wacom, Realtek 8125 2.5 Gigabit Ethernet, Motorcomm YT8511C / YT8511H Gigabit Ethernet, Intel Ethernet 700, Broadcom GENETv5 Ethernet, криптоускорители Intel QuickAssist и LTE модеми Intel XMM7360.
- Обновени са графичните драйвери за GPU Intel, NVIDIA и AMD за системи x86. Подсистемата DRM/KMS е синхронизирана с ядрото Linux 5.6.
- Обновени са версиите на страничните компоненти, включително мениджъра на прозорци 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_supplican 2.9, OpenLDAP 2.5.6, binutils 2.34, libfido2 1.13.0, pam-u2f 1.2.0, zlib 1.2.13.
Източник: opennet.ru
