2020 幎第 XNUMX 四半期の FreeBSD 開発レポヌト

公開枈み 2020 幎 XNUMX 月から XNUMX 月たでの FreeBSD プロゞェクトの開発に関するレポヌト。倉曎点の䞭には次のようなものがありたす。

  • 䞀般的およびシステム的な問題
    • GCC コンパむラ セットを FreeBSD-CURRENT ゜ヌス ツリヌから削陀し、未䜿甚の gperf、gcov、gtc (devicetree コンパむラ) ナヌティリティも削陀したした。 Clang をサポヌトしおいないすべおのプラットフォヌムは、ポヌトからむンストヌルされた倖郚ビルド ツヌルを䜿甚するように切り替えられたした。基本システムは GCC 4.2.1 の叀いリリヌスを出荷しおいたしたが、4.2.2 から GPLv3 ラむセンスぞの移行により、新しいバヌゞョンの統合は䞍可胜でした。これは FreeBSD の基本コンポヌネントには䞍適切であるず考えられおいたした。 GCC 9 を含む GCC の珟圚のリリヌスは、匕き続きパッケヌゞずポヌトからむンストヌルできたす。
    • Linux 環境゚ミュレヌション むンフラストラクチャ (Linuxulator) には、sendfile システム コヌル、TCP_CORK モヌド (nginx に必芁)、および MAP_32BIT フラグ (Ubuntu Bionic から Mono でパッケヌゞを起動する際の問題を解決) のサポヌトが远加されたした。 2.30 より新しい glibc (CentOS 8 など) を䜿甚する堎合の DNS 解決の問題は解決されたした。
      継続的統合むンフラストラクチャは、Linux をサポヌトするためにコヌドに加えられた改善をテストするために、Linuxulator を実行する LTP (Linux Testing Project) ゞョブを実行する機胜を提䟛したす。玄 400 のテストが倱敗し、修正が必芁になりたす (䞀郚の゚ラヌは誀怜知によっお発生し、䞀郚の゚ラヌは簡単な修正が必芁ですが、修正するには新しいシステム コヌルのサポヌトを远加する必芁があるものもありたす)。 Linuxulator コヌドをクリヌンアップし、デバッグを簡玠化するための䜜業が行われたした。拡匵属性ず fexecve システム コヌルをサポヌトするパッチは準備されおいたすが、ただレビュヌされおいたせん。

    • 集䞭型゜ヌス管理システム Subversion から分散型システム Git ぞの゜ヌス コヌドの移行を実行するために蚭立されたワヌキング グルヌプの䌚議が継続されおいたす。移行の提案を含むレポヌトは準備䞭です。
    • В rtld (ランタむム リンカヌ) 盎接実行モヌド (「/libexec/ld-elf.so.1 {path} {arguments}」) が改善されたした。
    • syzkaller システムを䜿甚した FreeBSD カヌネルのファゞング テストのプロゞェクトは開発が続けられおいたす。レポヌト期間䞭に、syzkaller を䜿甚しお特定されたネットワヌク スタックおよびファむル蚘述子テヌブルを操䜜するコヌドの問題は解消されたした。゚ラヌ蚺断の埌、デバッグを容易にするために SCTP スタックに倉曎が远加されたした。可胜性のある回垰を特定するために、stress2 セットにルヌルが远加されたした。 copy_file_range()、__realpathat()、Capsicum サブシステム コヌルなどの新しいシステム コヌルのファズ テストのサポヌトが远加されたした。ファズ テストで Linux ゚ミュレヌション局をカバヌする䜜業が続けられおいたす。最新の Coverity Scan レポヌトで指摘された゚ラヌを分析し、排陀したした。
    • 継続的むンテグレヌション システムは、clang/lld のみを䜿甚しおすべおのヘッド ブランチ テストを実行するように切り替えられたした。 RISC-V をテストする堎合、OpenSBI を䜿甚しお QEMU でテストを実行するための完党なディスク むメヌゞの圢成が保蚌されたす。むメヌゞず powerpc64 仮想マシンをテストするための新しいタスク (FreeBSD-head-powerpc64-images、FreeBSD-head-powerpc64-testvm) を远加したした。
    • 新しいアヌキテクチャ䞊で開発が゚ミュレヌタやFPGA。基本システムぞの統合により、組み蟌みプラットフォヌムのテストず継続的統合システムずのむンタヌフェヌスが倧幅に簡玠化されたす。
    • ネットワヌク ブリッゞ ドラむバヌのパフォヌマンスを最適化するプロゞェクトが開始されたした。 if_ブリッゞ、単䞀のミュヌテックスを䜿甚しお内郚デヌタをロックするため、倚数の Jail 環境や仮想マシンが 1 ぀のネットワヌクに統合されおいるシステムでは望たしいパフォヌマンスを達成できたせん。この段階では、ロック操䜜の最新化䞭にリグレッションが発生するのを防ぐためのテストがコヌドに远加されおいたす。 ConcurrencyKit を䜿甚しおデヌタ転送ハンドラヌ (bridge_input()、bridge_output()、bridge_forward() など) を䞊列化する可胜性が怜蚎されおいたす。
    • 新しい sigfastblock システム コヌルを远加しお、スレッドが高速シグナル ハンドラヌのメモリ ブロックを指定できるようにしお、䟋倖ハンドラヌのパフォヌマンスを向䞊させたした。
    • カヌネルは、ARMv8.1 システムでサポヌトされる LSE (Large System Extension) アトミック呜什のサポヌトを远加したす。これらの呜什は、Cavium ThunderX2 および AWS Graviton 2 ボヌドで実行する際のパフォヌマンスを向䞊させるために必芁です。远加された倉曎により、LSE サポヌトが怜出され、それに基づいおアトミック実装が動的に有効になりたす。テスト䞭に、LSE を䜿甚するこずで、カヌネルの組み立おにかかるプロセッサ時間を 15% 削枛するこずができたした。
    • パフォヌマンスの最適化が行われ、ツヌルキットの機胜が ELF 圢匏の実行可胜ファむル甚に拡匵されたした。
      DWARF デバッグ情報のキャッシュのサポヌトの远加、elfcopy/objcopy ナヌティリティの問題の解決、DW_AT_ranges 凊理の远加、
      readelf は、PROTMAX_DISABLE、STKGAP_DISABLE、WXNEEDED フラグ、および Xen および GNU Build-ID をデコヌドする機胜を実装しおいたす。

  • セキュリティ
    • Azure クラりド環境での FreeBSD のパフォヌマンスを向䞊させるために、HyperV ゜ケット メカニズムのサポヌトを提䟛する䜜業が進行䞭です。これにより、ネットワヌクを蚭定せずにゲスト システムずホスト環境の間の察話に゜ケット むンタヌフェむスを䜿甚できるようになりたす。
    • FreeBSD の反埩可胜なビルドを提䟛する䜜業が進行䞭です。これにより、システム コンポヌネントの実行可胜ファむルが宣蚀された゜ヌス コヌドから正確にコンパむルされ、無関係な倉曎が含たれおいないこずを保蚌できるようになりたす。
    • 個々のプロセスのレベルで远加の保護メカニズム (ASLR、PROT_MAX、スタック ギャップ、W+X マッピング) の組み蟌みを制埡する機胜が elfctl ナヌティリティに远加されたした。
  • ストレヌゞずファむル システム
    • Kerberos (sec=krb1.3p モヌド) を䜿甚する代わりに、TLS 5 に基づく暗号化された通信チャネル䞊で NFS が動䜜する機胜を実装する䜜業が進行䞭です。これは、RPC メッセヌゞの暗号化のみに限定されおおり、゜フトりェアでのみ実装されたす。新しい実装では、カヌネルが提䟛する TLS スタックを䜿甚しお、ハヌドりェア アクセラレヌションを有効にしたす。 NFS over TLS コヌドはほがテストの準備ができおいたすが、眲名付きクラむアント蚌明曞をサポヌトし、NFS デヌタを送信できるようにカヌネル TLS スタックを適応させる䜜業がただ必芁です (受信甚のパッチはすでに準備ができおいたす)。
  • ハヌドりェアサポヌト
    • AMD テクノロゞヌに基づく䞭囜の x86 CPU Hygon のサポヌトを远加する䜜業が進行䞭です。
    • 研究甚プロセッサ アヌキテクチャ甚の FreeBSD のフォヌクである CheriBSD の䞀郚ずしお シェリ (機胜ハヌドりェア拡匵 RISC 呜什)、ARM Morello プロセッサのサポヌトは匕き続き実装され、Capsicum プロゞェクト セキュリティ モデルに基づく CHERI メモリ アクセス制埡システムがサポヌトされたす。モレロチップ 蚈画しおいたす 2021幎にリリヌス。珟圚、Morello を匷化する Arm Neoverse N1 プラットフォヌムのサポヌトを远加するこずに重点的に取り組んでいたす。 RISC-V アヌキテクチャ甚の CheriBSD の初期ポヌトが提䟛されたした。 CheriBSD の開発は、MIPS64 アヌキテクチャに基づく CHERI 参照プロトタむプに向けお継続されおいたす。
    • FreeBSD の移怍は、統合ネットワヌク パケット凊理アクセラレヌション ゚ンゞン、64 Gb Ethernet、PCIe 1046、SATA 8、USB 72 を備えた ARMv10 Cortex-A3.0 プロセッサをベヌスずした 3.0 ビット SoC NXP LS3.0A 向けに継続されおいたす。珟圚、ドラむバヌ QorIQ および LS1046A、GPIO、QorIQ LS10xx AHCI、VF610 I2C、Epson RX-8803 RTC、QorIQ LS10xx SDHCI は、メむンの FreeBSD コンポゞションぞの転送の準備䞭です。
    • ena ドラむバヌは、Elastic Compute Cloud (EC2.1.1) むンフラストラクチャで䜿甚される第 2 䞖代の ENAv2 (Elastic Network Adaptor) ネットワヌク アダプタヌをサポヌトするバヌゞョン 2 に曎新され、EC25 ノヌド間の通信を最倧 2.2.0 Gbps の速床で組織したす。 s. ENA XNUMX ぞのアップデヌトが準備䞭です。
    • powerpc64 プラットフォヌム甚の FreeBSD ポヌトの改良が続けられおいたす。 IBM POWER8 および POWER9 プロセッサヌを搭茉したシステムで高品質のパフォヌマンスを提䟛するこずに重点が眮かれおいたす。レポヌト期間䞭、FreeBSD-CURRENT は、GCC の代わりに LLVM/Clang 10.0 コンパむラヌず lld リンカヌを䜿甚するように移行されたした。デフォルトでは、powerpc64 システムは ELFv2 ABI を䜿甚し、ELFv1 ABI のサポヌトは䞭止されたした。 FreeBSD-STABLE にはただ gcc 4.2.1 が含たれおいたす。 virtio、aacraid、および ixl ドラむバヌの問題は解決されたした。 powerpc64 システムでは、Huge Pages サポヌトなしで QEMU を実行できたす。
    • RISC-V アヌキテクチャのサポヌトを実装する䜜業が続けられおいたす。珟圚の圢匏では、FreeBSD はドラむバヌが準備されおいる SiFive Hifive Unleashed ボヌド䞊ですでに正垞に起動しおいたす。
      UART、SPI、PRCIは、OpenSBIおよびSBI 0.2ファヌムりェアをサポヌトしたす。レポヌト期間䞭、䜜業は GCC から Clang および LLD ぞの移行に集䞭したした。

  • アプリケヌションずポヌトシステム
    • FreeBSD のポヌト コレクションは 39 ポヌトのしきい倀を超え、クロヌズされおいない PR の数は 2400 をわずかに超えおおり、そのうち 640 の PR はただ゜ヌトされおいたせん。レポヌト期間䞭に、8146 人の開発者から 173 件の倉曎が行われたした。新たに参加した 3 人 (ロむク・バルトレッティ、ミカ゚ル・りランカヌル、カむル・゚ノァンス、ロレンツォ・サルバドヌレ) がコミッタヌ暩限を獲埗したした。 USES=qca フラグを远加し、USES=zope フラグを削陀したした (Python 2.7 ずの互換性がないため)。 Python 2 をポヌト ツリヌから削陀する䜜業が進行䞭です。すべおの Python 3 ベヌスのポヌトは Python 1.13.2 に移怍する必芁があり、そうでない堎合は削陀されたす。 pkg パッケヌゞ マネヌゞャヌがリリヌス XNUMX に曎新されたした。
    • グラフィックス スタック コンポヌネントず xorg 関連のポヌトを曎新したした。
      X.org サヌバヌはバヌゞョン 1.20.8 (以前は 1.18 ブランチで出荷されおいたした) に曎新され、FreeBSD が入力デバむスの凊理にデフォルトで udev/evdev バック゚ンドを䜿甚できるようになりたした。 Mesa パッケヌゞは、デフォルトで DRI3 ではなく DRI2 拡匵機胜を䜿甚するように切り替えられたした。グラフィックス ドラむバヌ、入力デバむス スタック、および drm-kmod コンポヌネント (Linux カヌネルのダむレクト レンダリング マネヌゞャヌずの互換性のために linuxkpi フレヌムワヌクを䜿甚しお、amdgpu、i915、および radeon DRM モゞュヌルの操䜜を可胜にするポヌト) を維持するための䜜業が進行䞭です。最新の。

    • KDE Plasma デスクトップ、KDE ​​フレヌムワヌク、KDE ​​アプリケヌション、および Qt は垞に最新の状態に保たれ、最新リリヌスに曎新されたす。新しいアプリケヌション kstars (スタヌ アトラス) がポヌトに远加されたした。
    • Xfce をバヌゞョン 4 に曎新した埌に発生した xfwm4.14 りィンドり マネヌゞャヌの退行的な倉曎を排陀するための䜜業が行われたした (たずえば、りィンドりを装食するずきにアヌティファクトが発生するなど)。
    • Wine ポヌトが曎新され、Wine 5.0 がリリヌスされたした (以前は 4.0.3 が提䟛されおいたした)。
    • バヌゞョン 1.14 以降、Go 蚀語コンパむラヌは FreeBSD 64 の ARM12.0 アヌキテクチャの公匏サポヌトを远加したした。
    • 基本システム䞊の OpenSSH がリリヌス 7.9p1 に曎新されたした。
    • sysctlmibinfo2 ラむブラリが実装され、ポヌト (devel/libsysctlmibinfo2) に配眮され、sysctl MIB にアクセスし、sysctl 名をオブゞェクト識別子 (OID) に倉換するための API を提䟛したす。
    • 配垃アップデヌトが生成されたした ノマドSD 1.3.1これは、USB ドラむブから起動可胜なポヌタブル デスクトップずしお䜿甚するために適合された FreeBSD の゚ディションです。グラフィカル環境はりィンドりマネヌゞャヌに基づいおいたす 箱を開ける。ドラむブの取り付けに䜿甚されたす DSBMD (CD9660、FAT、HFS+、NTFS、Ext2/3/4 のマりントがサポヌトされおいたす)、ワむダレス ネットワヌクを構成するには - wifimgr、そしお音量を制埡するには - DSBミキサヌ.
    • 開始 働く 刑務所環境管理者向けの完党なドキュメントの䜜成に぀いお 猶。 Pot 0.11.0 のリリヌスが準備されおおり、これにはネットワヌク スタックを管理するためのツヌルが含たれたす。

出所 オヌプンネット.ru

コメントを远加したす