FreeBSD 13.0 發布

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 產生了映像。

主要創新:

  • 已經從 OpenZFS 專案過渡到 ZFS 檔案系統的統一 Linux 實作。過渡到 OpenZFS 後 FreeBSD 中可用的功能包括:擴展的配額系統、資料集加密、單獨選擇區塊分配類別(分配類別)、使用向量處理器指令來加速 RAIDZ 和校驗和的實作計算、支援ZSTD 壓縮演算法、多主機模式(MMP、多修飾符保護)、改進的命令列工具、修復了許多與競爭條件和阻塞相關的錯誤。
  • ARM64 架構 (AArch64) 的移植已移至第一級支援 (Tier 1),由負責消除漏洞、準備版本和維護移植的團隊提供支援。第一層支援涉及安裝組件、二進位更新和現成套件的創建,以及為解決特定問題和維護使用者環境和核心(某些子系統除外)的 ABI 不變提供保證。
  • i386架構已轉移到第二級平台支援(Tier 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 工具包。其中包括 BSD 授權版本的 grep 和 dtc(裝置樹編譯器)實用程序,它們取代了 GPL 授權版本。 amd 自動掛載進程已被刪除,其功能現在透過 autofs 實現。 ctm 實用程式已刪除,建議改用misc/ctm 連接埠。
  • 路由堆疊已被重寫,以包括對下一跳物件的支持,該物件儲存用於將封包轉發到所需目的地的狀態資料。新增了連接您自己的路線搜尋演算法的功能。新增了 DPDK(資料平面開發套件)librte 中的路由搜尋演算法,讓您可以最佳化非常大的路由表的工作。對於 proxyarp 請求,使用 fib 介面。新增了透過 sysctl net.fibs 動態更改 fib 編號的功能。實現了對 IPv4 和 IPv6 臨時路由的支援(具有設定的生命週期)。
  • 多路徑路由支援已被重寫並變得更具可擴展性,其中搜尋時間不依賴列表大小 (O(1))。新的多路徑實作現在與 ROUTE_MPATH 核心參數關聯,該參數已取代 RADIX_MPATH 並預設為啟用。為了管理多路徑,建議使用 sysctl net.route.multipath。
  • 在核心層級實現的加密框架已經重新設計,增加了對現代加密演算法的支持,並簡化了在驅動程式和其他核心元件中使用加密的介面。刪除了過時的演算法 ARC4、Blowfish、CAST128、DES、DES、MD5-HMAC 和 Skipjack。 IPsec 和 Kerberos 不再支援 RFC 8221 和 RFC 6649/8429 棄用的演算法,包括 3DES。刪除了先前宣告的 geli 和 cryptodev 磁碟加密子系統中已棄用的演算法。
  • GENERIC 核心支援 aesni 和 armv8crypto 驅動程序,可使用適用於 amd64/i386 架構的 AES-NI 指令和適用於 ARM64 的 AES-XTS 來加速基於 geli 的磁碟加密。
  • 新增了用於英特爾 QuickAssist (QAT) 加密加速器的 qat 驅動程式和 ossl 驅動程序,可實現 OpenSSL 的加速軟體加密程序,並使用彙編語言程式碼進行最佳化。 armv8crypto 驅動程式使用 ARMv8 處理器的對應指令新增了對 AES-XTS 和 AES-GCM 的支援。
  • 新增了在 FreeBSD 核心層級運行的 TLS (kTLS) 實現,這可以顯著提高 TCP 套接字的加密效能。支援的 TLS 版本 1.0 至 1.3。對於加密,使用支援 AES-CBC 或 AES-GCM 的核心加密驅動程式。在使用者空間中使用 kTLS 需要使用 WITH_OPENSSL_KTLS 選項重建 OpenSSL。
  • 新增了一種新型網路緩衝區mbuf(網路資料緩衝區),它可以在一個緩衝區中表示多個未映射的實體記憶體頁,透過減少套接字緩衝區中mbuf 列表的大小來提高sendfile(2 ) 調用的性能。
  • TCP 堆疊整合了對按比例減少發送資料包強度的演算法(按比例速率減少,RFC 6937)的支持,這使您可以在資料傳輸出現臨時問題後快速恢復最佳流參數。要停用 PRR,提供了 sysctl net.inet.tcp.do_prr。
  • Bhyve 虛擬機器管理程式的功能擴大了: 新增了使用 VirtIO-9p (VirtFS) 共用檔案的支援。已經實現了使用虛擬機器快照的功能。新增了對 PCI HDAudio 設備以及附加序列埠 COM3 和 COM4 的支援。刪除了過時的 bvmconsole 和 bvmdebug 設備模型。提高了 VNC 用戶端的穩定性,包括 macOS 螢幕共享應用程式。
  • VirtIO 驅動程式增加了對 VirtIO V1 規範的支持,這提高了 FreeBSD guest 虛擬機器與各種模擬器和管理程式的兼容性。
  • 對於附加到監獄環境的過程,提供了 CPU 綁定的轉換(考慮到監獄的 cpuset 和限制集,最初綁定到進程的 cpuset 將被替換)。
  • 新增了在基於其他作業系統的環境中建立 FreeBSD 基礎系統的能力。需要在其他作業系統上建置是由於希望使用基於 Linux 或 macOS 的持續整合工具來測試 FreeBSD。
  • 提出了一種新的 MMC/SD 堆疊,它基於 CAM 框架,讓您可以使用 SDIO(安全數位 I/O)介面連接設備。例如,SDIO 用於許多板的 WiFi 和藍牙模組,例如 Raspberry Pi 3。新堆疊還允許使用 CAM 介面從用戶空間的應用程式發送 SD 命令,從而可以建立裝置在使用者層級運行的驅動程式。
  • 改進了該層的性能以與 Linux 相容。 DTS(裝置樹源)檔案與 Linux 5.8 核心同步。
  • 增加了對 NFSv4.2 (RFC-7862) 的支持,並實現了透過基於 TLS 1.3 的加密通訊通道操作 NFS 的功能,而不是使用 Kerberos(sec=krb5p 模式),後者僅限於加密 RPC 訊息並實現僅在軟體中。
  • 過時版本的 GDB 偵錯器(先前安裝在 /usr/libexec 目錄中並在 crashinfo 實用程式中使用)已被刪除。為了獲取有關崩潰原因的詳細信息,現在建議從 ports 或 package 安裝最新版本的 GDB,而不是預先安裝 GDB。透過 procfs 進行進程調試的支援已停止。新增了 netgdb 驅動程序,允許透過網路存取核心偵錯器。
  • unsafe gets 函數已從 libc 中刪除(從 C11 標準開始,該函數已從規範中排除),並且仍然使用該函數的連接埠已進行了調整。刪除了 cap_random 函數(應該使用 getrandom)。
  • 新增了新的系統呼叫 copy_file_range,與 Linux 核心的實作相容,允許您僅在核心端執行操作,而無需先將資料讀入進程內存,從而加快將資料從一個檔案複製到另一個檔案的速度。此系統呼叫也用於 NFSv4.2 伺服器中,在伺服器本機執行複製操作(無需傳輸到客戶端)。
  • POSIX AIO 非同步 I/O 引擎引入了對向量化函數的支援。特別是,添加了 aio_writev 和 aio_readv 系統調用,允許實現 aio_read 和 aio_write 函數的向量化等效項。
  • 使用者空間元件已不再支援 i386 體系結構系統上的 a.out 執行檔格式。 elf2aout 實用程式已刪除。
  • ping 和 ping6 公用程式已合併。 ping 中新增了透過 IP DSCP 和乙太網路 PCP 設定服務品質 (QoS) 參數的功能。
  • freebsd-update 實用程式現在顯示檔案下載進度,並新增了 updateready 和 showconfig 命令來檢查更新並顯示設定。
  • 為了改進對 NUMA(非統一記憶體存取)系統的支持,我們做了很多工作。
  • 更新了圖形驅動程式和圖形堆疊元件。基於 Wayland 協議的環境運作問題已解決。
  • 添加了用於創建背光控制驅動程式的背光子系統。增加了 pwm-backlight 驅動程式來控制 Pinebook 和 Pinebook Pro 背光。
  • 對 SCTP 協定的支援包含在單獨的模組 sctp.ko 中,該模組在 GENERIC 內核中預設為停用狀態。
  • 對於輸入設備,提出了一種新的 usbhid 驅動程序,該驅動程式使用 hid 框架來與 USB HID 設備配合使用,而不是 ukbd、ums 和 uhid 驅動程式。
  • cpufreq驅動程式支援Intel Speed Shift技術。
  • 新增了對基於 64 位元 ARMv8 CPU 的新板的支持,包括 Broadcom BCM5871X 和 NXP LS1046A SoC。
  • 對於AMD64架構,實現了對57位元虛擬位址(LA57)的支援。增加了對基於 AMD 技術的中國 x86 CPU Hygon Dhyana 的支援。
  • powerpc64 架構的連接埠已切換為使用 LLVM 和 ELFv2 ABI(先前版本的 FreeBSD 的二進位檔案將無法在 FreeBSD 13 中使用)。驅動程式 virtio、ixl、mrsas、aacraid、cpld 已移植到 powerpc64。
  • 舊版乙太網路適配器的驅動程式已被刪除:
    • BM(4) BMAC
    • cs(4) 晶振 CS8900/CS8920
    • de(4) DEC DC21x4x
    • 編(4) NE-2000 和 WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) 英特爾 EtherExpress Pro/10 和 Pro/10+
    • fe(4) 富士通 MB86960A/MB86965A
    • hme(4) 太陽微電子 STP2002-STQ
    • pcn(4) AMD PCnet
    • SF(4) 星火
    • sn(4) SMC 91Cxx
    • tl(4) 德州儀器 ThunderLAN
    • 發送(4) SMC 83c17x
    • txp(4) 3Com 3XP 颱風/響尾蛇 (3CR990)
    • vx(4) 3Com EtherLink III / 快速 EtherLink III (3c59x) PCI
    • WB(4) 華邦 W89C840F
    • xe(4) 捷訊 PCMCIA
  • 刪除了驅動程式 ubsec(Broadcom BCM58xx 加密加速器)、ufm(帶 USB 介面的 FM 調諧器)、ctau (Cronix Tau)、cx (Cronix Sigma) 和 vpo(並行連接埠 SCSI)。

來源: opennet.ru

添加評論