12.x тармағы құрылғаннан кейін екі жарым жылдан кейін FreeBSD 13.0 шығарылымы ұсынылды, ол amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 және riscv64 архитектуралары үшін дайындалған. Сонымен қатар, кескіндер виртуалдандыру жүйелері (QCOW2, VHD, VMDK, raw) және Amazon EC2, Google Compute Engine және Vagrant бұлттық орталары үшін жасалды.
Негізгі инновациялар:
- Бірыңғай c жүйесіне көшу аяқталды Linux OpenZFS жобасының ZFS файлдық жүйесін іске асыруы. OpenZFS-ке ауысқаннан кейін FreeBSD-де қолжетімді болған мүмкіндіктерге мыналар кіреді: кеңейтілген квота жүйесі, деректер жиынтығын шифрлау, бөлек бөлу класын таңдау, RAIDZ енгізуді және бақылау қосындысын есептеуді жеделдету үшін векторлық процессор нұсқауларын пайдалану, ZSTD қысу алгоритмін қолдау, көп хост режимі (MMP, көп модификаторлық қорғау), жақсартылған командалық жол құралдары және көптеген жарыс жағдайлары мен құлыптау қателерін түзету.
- ARM64 архитектурасына арналған порт (AArch64) қолдаудың бірінші деңгейіне (1-деңгей) ауыстырылды, оны осалдықтарды жоюға, шығарылымдарды дайындауға және порттарға қызмет көрсетуге жауапты топтар қолдайды. Қолдау көрсетудің бірінші деңгейі орнату жинақтарын, екілік жаңартуларды және дайын пакеттерді құруды, сондай-ақ нақты мәселелерді шешуге кепілдік беруді және пайдаланушы ортасы мен ядро үшін (кейбір ішкі жүйелерді қоспағанда) өзгеріссіз ABI-ді қолдауды қамтиды.
- i386 архитектурасы платформаны қолдаудың екінші деңгейіне (2-деңгей) ауыстырылды, онда орнату жинақтарын, екілік жаңартуларды және дайын пакеттерді қалыптастыру жалғасады, бірақ нақты мәселелердің шешіміне кепілдік бермейді. i386 архитектурасына арналған әдепкі CPU түрі (CPUTYPE) 486-дан 686-ға өзгертілді (қажет болса, i486 және i586 үшін жинақтарды дербес жасауға болады).
- clang, lld, lldb, compiler-rt, llvm, libunwind және libc++ компоненттері 11 нұсқасына жаңартылды.
- Әзірлеу Subversion орталықтандырылған бастапқы басқару жүйесінен орталықтандырылмаған Git жүйесіне ауыстырылды.
- Негізгі жүйе GPL лицензиясы бойынша таратылған қосымшалардан тазартылды. Binutils 2.17 және gcc 4.2.1 бастапқы тармақтан жойылды және барлық қолдау көрсетілетін архитектуралар LLVM/clang құралдар жинағына жылжытылды. GPL лицензиясы бар нұсқаларды алмастыратын grep және dtc (Device Tree Compiler) утилиталарының BSD лицензияланған нұсқалары кіреді. Amd автоматты орнату процесі жойылды, оның функционалдығы енді autofs арқылы жүзеге асырылады. ctm қызметтік бағдарламасы жойылды және оның орнына misc/ctm портын пайдалану ұсынылады.
- Маршруттау стегі пакетті қажетті орынға қайта жіберу үшін пайдаланылатын күй деректерін сақтайтын nexthop нысандарына қолдау көрсету үшін қайта жазылды. Жеке маршрут іздеу алгоритмдерін қосу мүмкіндігі қосылды. Өте үлкен маршруттау кестелерімен жұмысты оңтайландыруға мүмкіндік беретін DPDK (Data Plane Development Kit) тегін маршруттарды іздеу алгоритмдері қосылды. Проксиарп сұраулары үшін fib интерфейсі пайдаланылады. Fib нөмірін sysctl net.fibs арқылы жылдам өзгерту мүмкіндігі қосылды. IPv4 және IPv6 үшін уақытша маршруттарға қолдау көрсетілді (орнатылған қызмет мерзімімен).
- Іздеу уақыты тізім өлшеміне байланысты емес (O(1)) көп жолды маршруттауды қолдау қайта жазылды және ауқымдырақ болды. Жаңа Multipath іске асыру енді RADIX_MPATH ауыстырған және әдепкі бойынша қосылған ROUTE_MPATH ядро параметрімен байланысты. Multipath басқару үшін sysctl net.route.multipath ұсынылады.
- Ядро деңгейінде іске асырылған криптографиялық жүйе заманауи криптографиялық алгоритмдерді қолдауды қосып, драйверлерде және басқа ядро компоненттерінде шифрлауды пайдалану интерфейсін жеңілдете отырып, қайта жасақталды. ARC4, Blowfish, CAST128, DES, DES, MD5-HMAC және Skipjack ескірген алгоритмдері жойылды. IPsec және Kerberos енді RFC 8221 және RFC 6649/8429, соның ішінде 3DES арқылы ескірген алгоритмдерге қолдау көрсетпейді. Geli және cryptodev дискінің шифрлау ішкі жүйесінде бұрын жарияланған ескірген алгоритмдер жойылды.
- GENERIC ядросы amd8/i64 архитектуралары үшін AES-NI нұсқауларын және ARM386 үшін AES-XTS көмегімен geli негізіндегі диск шифрлауын жеделдету үшін aesni және armv64crypto драйверлерін қолдауды қамтиды.
- Intel QuickAssist (QAT) криптографиялық үдеткіштеріне арналған qat драйвері және ассемблер тілінің коды арқылы оңтайландырылған OpenSSL бағдарламалық құралын шифрлаудың жеделдетілген процедураларын жүзеге асыратын ossl драйвері қосылды. armv8crypto драйвері ARMv8 процессорларына арналған сәйкес нұсқауларды пайдаланып AES-XTS және AES-GCM қолдауын қосады.
- TCP ұяшықтары үшін шифрлау өнімділігін айтарлықтай арттыруға мүмкіндік беретін FreeBSD ядросы деңгейінде жұмыс істейтін қосылған TLS (kTLS) іске асыру. Қолдау көрсетілетін TLS нұсқалары 1.0 - 1.3. Шифрлау үшін AES-CBC немесе AES-GCM қолдайтын ядро крипто драйверлері пайдаланылады. Пайдаланушы кеңістігінде kTLS пайдалану OpenSSL WITH_OPENSSL_KTLS опциясымен қайта құруды қажет етеді.
- Желі буферлерінің жаңа түрі қосылды, mbuf (желі деректері буфері), ол бір буферде салыстырылмаған бірнеше физикалық жад беттерін көрсете алады, ол розетка буферлеріндегі mbuf тізімдерінің өлшемін азайту арқылы sendfile(2) шақыруының өнімділігін жақсартады.
- TCP стегі пакеттерді жіберу қарқындылығын пропорционалды азайту алгоритмін қолдауды біріктіреді (Proportional Rate Reduction, RFC 6937), бұл деректерді берудегі уақытша ақаулардан кейін оңтайлы ағын параметрлерін жылдам қалпына келтіруге мүмкіндік береді. PRR өшіру үшін sysctl net.inet.tcp.do_prr беріледі.
- Bhyve гипервизорының мүмкіндіктері кеңейтілді: VirtIO-9p (VirtFS) арқылы файлдарды ортақ пайдалануға қолдау қосылды. Snapshot қолдауы енгізілді. виртуалды машиналарPCI HDAudio құрылғыларына және қосымша COM3 және COM4 сериялық порттарына қолдау қосылды. Ескірген bvmconsole және bvmdebug құрылғы модельдері жойылды. VNC клиенттерімен тұрақтылық жақсартылды, соның ішінде macOS- Экранды ортақ пайдалану қолданбасы.
- VirtIO драйверлері FreeBSD қонақтарының әртүрлі эмуляторлармен және гипервизорлармен үйлесімділігін жақсартатын VirtIO V1 спецификациясына қолдау қосты.
- Түрме орталарына қосылған процестер үшін процессор байланыстарын түрлендіру қамтамасыз етіледі (бастапқыда процеске байланыстырылған процессор түрменің cpuset және орнатылған шектеулерді ескере отырып ауыстырылады).
- Басқа операциялық жүйелерге негізделген орталарда FreeBSD базалық жүйесін құру мүмкіндігі қосылды. Басқа операциялық жүйелерге негізделу қажеттілігі FreeBSD-ді тестілеу үшін үздіксіз интеграция құралдарын пайдалану ниетімен байланысты, олар негізделген Linux немесе macOS.
- CAM құрылымына негізделген және құрылғыларды SDIO (Secure Digital I/O) интерфейсімен қосуға мүмкіндік беретін жаңа MMC/SD стек ұсынылады. Мысалы, SDIO Raspberry Pi 3 сияқты көптеген тақталар үшін WiFi және Bluetooth модульдерінде қолданылады. Жаңа стек сонымен қатар CAM интерфейсін пайдаланушы кеңістігіндегі қолданбалардан SD пәрмендерін жіберу үшін пайдалануға мүмкіндік береді, бұл құрылғыны жасауға мүмкіндік береді. пайдаланушы деңгейінде жұмыс істейтін драйверлер.
- Үйлесімділік үшін қабатаралық өнімділікті жақсартты LinuxDTS (Құрылғы ағашының көздері) файлдары ядромен синхрондалады Linux 5.8.
- NFSv4.2 (RFC-7862) үшін қолдау қосылды және тек RPC хабарларын шифрлаумен шектелген және жүзеге асырылған Kerberos (sec=krb1.3p режимі) пайдаланудың орнына TLS 5 негізіндегі шифрланған байланыс арнасы арқылы NFS жұмыс істеу мүмкіндігін енгізді. тек бағдарламалық құралда.
- Бұрын /usr/libexec каталогында орнатылған және crashinfo утилитасында пайдаланылған GDB жөндеу құралының ескірген нұсқасы жойылды. Алдын ала орнатылған GDB орнына, апаттың себептері туралы егжей-тегжейлі ақпарат алу үшін енді порттардан немесе бумалардан GDB соңғы нұсқасын орнату ұсынылады. Procfs арқылы процесті жөндеуге қолдау көрсету тоқтатылды. netgdb драйвері қосылды, ол желі арқылы ядроны жөндеуге рұқсат береді.
- Қауіпті алу функциясы libc жүйесінен жойылды (C11 стандартынан бастап бұл функция спецификациядан алынып тасталды) және осы функцияны әлі де қолданатын порттар реттелді. Жойылған cap_random функциялары (getrandom қолданылуы керек).
- Ядроның іске асырылуымен үйлесімді жаңа copy_file_range жүйелік шақыруы қосылды. Linux және деректерді алдымен процесс жадына оқымай, операцияны тек ядро жағында орындау арқылы деректерді бір файлдан екінші файлға көшіруді жылдамдатуға мүмкіндік береді. Жүйелік шақыру сонымен қатар қолданылады сервер NFSv4.2 серверде жергілікті көшіру операцияларын орындауға арналған (клиентке жібермей).
- POSIX AIO асинхронды енгізу/шығару қозғалтқышы векторланған функцияларға қолдау көрсетеді. Атап айтқанда, aio_read және aio_write функцияларының векторланған эквиваленттерін жүзеге асыруға мүмкіндік беретін aio_writev және aio_readv жүйелік шақырулары қосылды.
- i386 архитектуралық жүйелерінде a.out орындалатын файл пішімін қолдау үшін пайдаланушы кеңістігі құрамдастары тоқтатылды. elf2aout утилитасы жойылды.
- Ping және ping6 утилиталары біріктірілді. IP DSCP және Ethernet PCP арқылы қызмет көрсету сапасы (QoS) параметрлерін орнату мүмкіндігі пингке қосылды.
- Freebsd-update утилитасы енді файлдарды жүктеп алу барысын көрсетеді және жаңартуларды тексеру және конфигурацияны көрсету үшін updatesready және showconfig пәрмендерін қосады.
- NUMA (Non-Uniform Memory Access) жүйелеріне қолдау көрсетуді жақсарту бойынша көп жұмыс атқарылды.
- Жаңартылған графикалық драйверлер мен графикалық стек компоненттері. Wayland хаттамасына негізделген орталардың жұмысына қатысты мәселелер шешілді.
- Артқы жарықты басқару драйверлерін жасауға арналған артқы жарық ішкі жүйесі қосылды. Pinebook және Pinebook Pro артқы жарығын басқару үшін pwm-backlight драйвері қосылды.
- SCTP протоколына қолдау көрсету GENERIC ядросында әдепкі бойынша өшірілген sctp.ko жеке модуліне кіреді.
- Енгізу құрылғылары үшін ukbd, ums және uhid драйверлерінің орнына USB HID құрылғыларымен жұмыс істеу үшін hid құрылымын пайдаланатын жаңа usbhid драйвері ұсынылды.
- cpufreq драйвері Intel Speed Shift технологиясын қолдайды.
- 64 биттік ARMv8 процессорларына, соның ішінде Broadcom BCM5871X және NXP LS1046A SoC құрылғыларына негізделген жаңа тақталарға қолдау қосылды.
- AMD64 архитектурасы үшін 57-биттік виртуалды мекенжайларға (LA57) қолдау көрсетіледі. AMD технологияларына негізделген қытайлық x86 Hygon Dhyana процессорына қолдау қосылды.
- powerpc64 архитектурасына арналған порт LLVM және ELFv2 ABI пайдалануға ауыстырылды (FreeBSD алдыңғы нұсқаларының екілік файлдары FreeBSD 13 жүйесінде қолданыла алмайды). virtio, ixl, mrsas, aacraid, cpld драйверлері powerpc64 үшін тасымалданған.
- Бұрынғы Ethernet адаптерлеріне арналған драйверлер жойылды:
- bm(4) BMAC
- cs(4) Crystal Semiconductor CS8900/CS8920
- de(4) DEC DC21x4x
- ed(4) NE-2000 және WD-80×3
- ep(4) 3Com Etherlink III (3c5x9) ISA
- ex(4) Intel EtherExpress Pro/10 және Pro/10+
- fe(4) Fujitsu MB86960A/MB86965A
- hme(4) Sun Microelectronics STP2002-STQ
- pcn(4) AMD PCnet
- sf(4) Starfire
- sn(4) SMC 91Cxx
- tl(4) Texas Instruments ThunderLAN
- tx(4) SMC 83c17x
- txp(4) 3Com 3XP Typhoon/ Sidewinder (3CR990)
- vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
- wb(4) Winbond W89C840F
- xe(4) Xircom PCMCIA
- Жойылған драйверлер ubsec (Broadcom BCM58xx крипто үдеткіштері), ufm (USB интерфейсі бар FM тюнерлері), ctau (Cronix Tau), cx (Cronix Sigma) және vpo (параллель порты SCSI).
Ақпарат көзі: opennet.ru
