2019 幎第 XNUMX 四半期の FreeBSD 進捗レポヌト

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

  • 䞀般的およびシステム的な問題
    • コア チヌムは、远加の特蚱契玄 (BSD+特蚱) ただし、このラむセンスに基づいおシステムに各コンポヌネントを含めるかどうかの決定は、個別に承認される必芁がありたす。
    • 集䞭型゜ヌス管理システム Subversion から分散型システム Git ぞの゜ヌス コヌドの移行を実行するために蚭立されたワヌキング グルヌプの最初の䌚議が開催されたした。 移行の実珟可胜性に぀いおの議論はただ進行䞭であり、倚くの問題に぀いおはただ決定が䞋されおいたせん (たずえば、 contrib/ をどうするか、珟圚の git リポゞトリでハッシュを再生成する必芁があるかどうか、テストを実装する最適な方法など)コミット数);
    • NetBSD から 移怍された KCSAN (Kernel Concurrency Sanitizer) ツヌルキット。異なる CPU で実行されおいるカヌネル スレッド間の競合状態を怜出できたす。
    • GNU binutils アセンブラの代わりに Clang の組み蟌みアセンブラ (IAS) を䜿甚する䜜業が進行䞭です。
    • Linux 環境゚ミュレヌション むンフラストラクチャ (Linuxulator) は、ARM64 アヌキテクチャで動䜜するように適合されおいたす。 「renameat2」システムコヌルを実装したした。 strace ナヌティリティは、Linuxulator で実行されおいる Linux 実行可胜ファむルの問題を蚺断できるように改良されたした。 実行可胜ファむルを新しい glibc にリンクするずきにクラッシュする問題は解決されたした。 Linuxulator の Linux コンポヌネントを含むポヌトが CentOS 7.7 に曎新されたした。
    • Google Summer of Code プログラムの䞀環ずしお、孊生は 4 ぀のプロゞェクトを無事完了したした。統合 (IPv6/IPvXNUMX) ping ナヌティリティの実装が準備され、ファむアりォヌルをテストしおカヌネル内の゚ラヌを特定するためのツヌル (カヌネル サニタむザヌ) が開発されたした。モゞュヌルが提案され、仮想メモリ圧瞮甚のコヌドが䜜成され、ポヌト構築プロセスをロヌカル むンストヌルから分離する䜜業が行われたした。
    • このシステムを䜿甚した FreeBSD カヌネルのファゞングテストのプロゞェクトは開発を続けおいたす シスカラヌ。 レポヌト期間䞭に、syzkaller を䜿甚しお XNUMX 件を超える゚ラヌが特定され、削陀されたした。 bhyve に基づく仮想マシンで syzkaller を実行するには、別のサヌバヌが専甚であり、
      syzbot は、Google むンフラストラクチャ内のさたざたな FreeBSD サブシステムのテストを確立したした。 すべおのクラッシュに関する情報の backtrace.io サヌビスぞの転送を敎理し、グルヌプ化ず分析を簡玠化したした。

    • zlib 実装をカヌネル レベルで曎新する䜜業が進行䞭です。
      圧瞮関連のコヌドは、1.0.4 幎以䞊前にリリヌスされた zlib 20 から珟圚の zlib 1.2.11 コヌドベヌスに移行されたした。 zlib ぞのアクセスを統合するために、関数 compress、compress2、および uncompress がカヌネルに远加されたした。 netgraph サブシステムからの PPP プロトコルの動䜜を保蚌するコヌドは、このラむブラリの独自の゚ディションではなく、zlib のシステム実装を䜿甚するように転送されたした。 kern_ctf.c、opencryptodeflate、geom_uzip、subr_compressor のサブシステムも新しい zlib に転送されたした。
      if_mxge、bxe 曎新、および ng_deflate;

    • 新しいカヌネルむンタヌフェヌスが開発䞭です sysctlinfoを䜿甚するず、MIB (管理情報ベヌス) の圢匏で凊理された sysctl パラメヌタ デヌタベヌス内の芁玠を怜玢し、オブゞェクトに関する情報をナヌザヌ空間に転送できたす。
  • セキュリティ
    • カヌネルモゞュヌルを開発 mac_ipacl、TrustedBSD MAC フレヌムワヌクに基づいおおり、jail 環境のネットワヌク スタック蚭定のためのアクセス制埡システムを実装しおいたす。 たずえば、ホスト システム管理者は、mac_ipacl を䜿甚しお、jail 環境の root ナヌザヌが特定のネットワヌク むンタヌフェむスの IP アドレスやサブネット蚭定を倉曎たたは蚭定できないようにするこずができたす。 提案された匷制的なアクセス制埡システム 蚱可する Jail に蚱可される IP アドレスずサブネットのリストを蚭定し、Jail ぞの特定の IP ずサブネットのむンストヌルを犁止するか、特定のネットワヌク むンタヌフェむスのみのパラメヌタヌの倉曎を制限したす。
    • むンテルは゜フトりェア スタック ポヌトをプロゞェクトに寄付したした TPM 2.0 (トラステッド プラットフォヌム モゞュヌル) セキュア コンピュヌティング チップずむンタヌフェむスしたす。通垞、ファヌムりェアず OS ブヌトロヌダヌの怜蚌されたロヌドに䜿甚されたす。 スタック コンポヌネントは、ポヌト security/tpm2-tss、security/tpm2-tools、および security/tpm2-abrmd の圢匏で衚瀺されたす。 tpm2-tss ポヌトには、TPM2 API を䜿甚するためのラむブラリが含たれおおり、tpm2-tools には、TPM 操䜜を実行するためのコマンド ラむン ナヌティリティが提䟛され、tpm2-abrmd には、さたざたな TPM ナヌザヌからの芁求を倚重化する TPM アクセス ブロヌカヌおよびリ゜ヌス マネヌゞャヌ コンポヌネントのバックグラりンド プロセス実装が含たれおいたす。単䞀のデバむスに。 FreeBSD での怜蚌枈みブヌトに加えお、TPM を䜿甚するず、別のチップで暗号化操䜜を実行するこずにより、Strongswan IPsec、SSH、および TLS のセキュリティを匷化できたす。
    • amd64 アヌキテクチャのカヌネルは、W^X (曞き蟌み XOR 実行) 保護技術を䜿甚しおブヌトするように適合されおいたす。これは、曞き蟌みず実行のためにメモリ ペヌゞに同時にアクセスできないこずを意味したす (カヌネルは、曞き蟌みが可胜な実行可胜メモリ ペヌゞを䜿甚しおロヌドできるようになりたした)犁止されおいたす。 新しいカヌネル保護メ゜ッドは HEAD ブランチに含たれおおり、FreeBSD 13.0 および 12.2 リリヌスに含たれる予定です。
    • mmap および mprotect システムコヌルの堎合 実装された マクロ PROT_MAX() を䜿甚するず、さらなる倉曎が蚱可されるアクセス制限フラグのセット (PROT_READ、PROT_WRITE、PROT_EXEC) を決定できたす。 PROT_MAX() を䜿甚するず、開発者は、実行可胜カテゎリぞのメモリ領域の転送を犁止したり、実行は蚱可しないが埌で実行可胜に倉換できるメモリを芁求したりできたす。 たずえば、メモリ領域は、動的バむンディングたたは JIT コヌド生成の間のみ曞き蟌み甚に開かれおいる可胜性がありたすが、曞き蟌みが完了するず、読み取りず実行のみに制限され、将来的に䟵害された堎合、攻撃者はその領域をアクセスできなくなりたす。そのメモリ ブロックぞの曞き蟌みを有効にするこずはできたせん。 PROT_MAX() に加えお、sysctl vm.imply_prot_max も実装されおおり、これがアクティブ化されるず、mmap ぞの最初の呌び出しの初期パラメヌタヌに基づいお有効なフラグのセットが決定されたす。
    • 脆匱性の悪甚に察する保護を匷化するために、アドレス空間ランダム化技術 (ASLR) に加えお、初期スタック フレヌムず、環境、プログラム起動パラメヌタ、およびデヌタに関する情報を含むスタック䞊に配眮された構造䜓をアドレス指定するポむンタのオフセットをランダム化するメカニズムが远加されたす。 ELF 圢匏の実行可胜むメヌゞ甚が提案されおいたす。
    • libc から安党でない取埗関数を削陀し (C11 暙準以降、この関数は仕様から陀倖されたした)、この関数をただ䜿甚しおいるポヌトを修正する䜜業が行われたした。 この倉曎は FreeBSD 13.0 で提䟛される予定です。
    • フレヌムワヌクに基づいお刑務所環境を調敎するツヌルを䜜成するための実隓プロゞェクトが開始されたした 猶 Docker ず同様に実装されたむメヌゞの䜜成ず゚クスポヌト甚、およびドラむバヌ 遊牧民、jail環境でアプリケヌションを動的に起動するためのむンタヌフェヌスを提䟛したす。 提案されたモデルでは、jail 環境の䜜成ずその環境ぞのアプリケヌションのデプロむのプロセスを分離できたす。 プロゞェクトの目暙の XNUMX ぀は、jail を Docker スタむルのコンテナずしお操䜜する手段を提䟛するこずです。
  • ストレヌゞずファむル システム
    • NetBSD から "makefs" ナヌティリティぞ 移動したした FAT ファむル システムのサポヌト (msdosfs)。 準備された倉曎により、md ドラむバヌや root 暩限を䜿甚せずに FAT を䜿甚しお FS むメヌゞを䜜成できるようになりたす。
    • FUSE (Userspace のファむル システム) サブシステム ドラむバヌの再䜜業が完了し、ナヌザヌ空間でのファむル システム実装の䜜成が可胜になりたした。 最初に出荷されたドラむバヌには倚くのバグが含たれおおり、7.8 幎前にリリヌスされた FUSE 11 をベヌスにしおいたした。 ドラむバヌ最新化プロゞェクトの䞀環ずしお、FUSE 7.23 プロトコルのサポヌトが実装され、カヌネル偎でアクセス暩をチェックするコヌド (「-odefault_permissions」) が远加され、VOP_MKNOD、VOP_BMAP、および VOP_ADVLOCK ぞの呌び出しが远加されたした。 FUSE 操䜜を䞭断する機胜が提䟛され、名前のないパむプず unix ゜ケットのサポヌトが fusefs に远加されたした。/dev/fuse に kqueue を䜿甚できるようになりたした。「mount -u」を介しおマりント パラメヌタを曎新できるようになり、サポヌトが远加されたしたNFS 経由での furusef の゚クスポヌト甚に、RLIMIT_FSIZE アカりンティングを実装し、FOPEN_KEEP_CACHE フラグず FUSE_ASYNC_READ フラグを远加し、倧幅なパフォヌマンスの最適化ずキャッシュ構成の改善を行いたした。 新しいドラむバヌは、ヘッドおよび安定/12 ブランチ (FreeBSD 12.1 に含たれる) に含たれおいたす。
    • FreeBSD 甚の NFSv4.2 (RFC-7862) の実装がほが完了したした。 報告期間䞭の䞻な焊点はテストでした。 Linux 実装ずの互換性を確認するテストは完了したしたが、NFSv4.2 を䜿甚した pNFS サヌバヌのテストはただ継続䞭です。 䞀般に、コヌドはすでに FreeBSD ヘッド/珟圚のブランチに統合する準備ができおいるず芋なされたす。 NFS の新しいバヌゞョンでは、posix_fadvise、posix_fallocate 関数、lseek の SEEKHOLE/SEEKDATA モヌド、サヌバヌ䞊のファむルの䞀郚を (クラむアントに転送せずに) ロヌカルにコピヌする操䜜のサポヌトが远加されおいたす。
  • ハヌドりェアサポヌト
    • ラップトップ䞊の FreeBSD のパフォヌマンスを向䞊させるプロゞェクトが開始されたした。 FreeBSD でのハヌドりェア サポヌトに぀いお監査された最初のデバむスは、第 1 䞖代 Lenovo XXNUMX Carbon ラップトップでした。
    • CheriBSD、研究甚プロセッサ アヌキテクチャ甚の FreeBSD のフォヌク シェリ (Capability Hardware Enhanced RISC 呜什)、次期 ARM Morello プロセッサをサポヌトするために曎新され、Capsicum 蚭蚈のセキュリティ モデルに基づく CHERI メモリ アクセス制埡システムをサポヌトしたす。 モレロチップ 蚈画しおいたす 2021幎にリリヌス。 CheriBSD 開発者は、MIPS アヌキテクチャに基づいた CHERI 参照プロトタむプの開発も監芖し続けおいたす。
    • RockPro3399 および NanoPC-T64 ボヌドで䜿甚される RockChip RK4 チップのサポヌトが拡匵されたした。 最も重芁な改善は、eMMC のサポヌトず、ボヌド䞊で䜿甚される eMMC コントロヌラヌ甚の新しいドラむバヌの開発でした。
    • ルヌタヌ、ゲヌトりェむ、ネットワヌク ストレヌゞでの䜿甚を目的ずしお、ARMv64 Cortex-A5871 プロセッサを搭茉した ARM8 SoC Broadcom BCM57X のサポヌトの実装が継続的に行われおいたす。 レポヌト期間䞭
      iProc PCIe サポヌトが拡匵され、ハヌドりェア暗号化操䜜を䜿甚しお IPsec を高速化する機胜が远加されたした。
      HEAD ブランチぞのコヌドの統合は第 XNUMX 四半期に予定されおいたす。

    • powerpc64 プラットフォヌム甚の FreeBSD ポヌトの開発は倧幅に進歩したした。 IBM POWER8 および POWER9 プロセッサヌを搭茉したシステムで高品質のパフォヌマンスを提䟛するこずに重点が眮かれおいたすが、オプションで叀い Apple Power Mac、x500、および Amiga A1222 での動䜜をサポヌトしたす。 powerpc*/12 ブランチは匕き続き gcc 4.2.1 ずずもに出荷され、powerpc*/13 ブランチは間もなく llvm90 に移行されたす。 33306 個のポヌトのうち、30514 個が正垞にアセンブルされたした。
    • FreeBSD の移怍は、統合ネットワヌク パケット凊理アクセラレヌション ゚ンゞン、64 Gb Ethernet、PCIe 1046、SATA 8、USB 72 を備えた ARMv10 Cortex-A3.0 プロセッサをベヌスずした 3.0 ビット SoC NXP LS3.0A 向けに継続されおいたす。 レポヌト期間䞭に、USB 3.0、SD/MMC、I2C、DPAA、および GPIO ネットワヌク むンタヌフェむスのサポヌトが実装されたした。 QSPI をサポヌトし、ネットワヌク むンタヌフェむスのパフォヌマンスを最適化する蚈画がありたす。 䜜業が完了し、HEAD ブランチに組み蟌たれるのは 4 幎の第 2019 四半期になる予定です。
    • ena ドラむバヌは、Elastic Compute Cloud (EC2) むンフラストラクチャで䜿甚される第 2 䞖代の ENAv2 (Elastic Network Adaptor) ネットワヌク アダプタヌをサポヌトするように曎新され、EC25 ノヌド間の通信を最倧 2 Gb/s の速床で組織したす。 NETMAP サポヌトが ena ドラむバヌに远加およびテストされ、メモリ レむアりトが Amazon EC1 AXNUMX 環境で LLQ モヌドを有効にするように調敎されたした。
  • アプリケヌションずポヌトシステム
    • グラフィックス スタック コンポヌネントず xorg 関連のポヌトを曎新したした。 USE_XORG および XORG_CAT を䜿甚するポヌトは、bsd.port.mk 経由で bsd.xorg.mk を呌び出すのではなく、USES フレヌムワヌクに移動されたした。 このようなポヌトには、メむクファむルに「USES=xorg」フラグが含たれるようになりたした。 XORG_CAT 機胜は bsd.xorg.mk から分離され、「USES=xorg-cat」フラグによっお有効になるようになりたした。 git リポゞトリから xorg ポヌトを盎接生成するためのツヌルを远加したした
      freedesktop.org では、たずえば、ただリリヌスされおいないバヌゞョンのポヌトを䜜成できたす。 将来的には、オヌトツヌルの代わりに䞭間子アセンブリシステムを䜿甚しお xorg ポヌトを構築するためのツヌルを準備する予定です。

      サポヌトされなくなったコンポヌネントに関連付けられた叀い xorg ポヌトをクリヌンアップする䜜業が行われたした。たずえば、x11/libXp ポヌトが削陀され、x11/Xxf86misc、x11-fonts/libXfontcache、graphics/libGLw ポヌトが非掚奚になりたした。 ;

    • FreeBSD での Java 11 以降のリリヌスのサポヌトを改善するずずもに、いく぀かの倉曎を Java 8 ブランチに移怍するための䜜業が行われ、Java Flight Recorder、HotSpot Serviceability Agent、HotSpot Debugger などの新しい Java 11 機胜のサポヌトが行われたした。 FreeBSD、DTrace、Javac Server、Java Sound、および SCTP に぀いおは、すべおの互換性テストに合栌するこずを確認するこずに移行したした。 テストに合栌したずきの倱敗の数が 50 から 2 に枛少したした。
    • KDE Plasma デスクトップ、KDE ​​フレヌムワヌク、KDE ​​アプリケヌション、および Qt は垞に最新の状態に保たれ、最新リリヌスに曎新されたす。
    • Xfce デスクトップを䜿甚したポヌトがリリヌスに曎新されたした 4.14;
    • FreeBSD のポヌト ツリヌは 38000 ポヌトを超え、クロヌズされおいない PR の数は 2000 をわずかに超えおおり、そのうち 400 の PR はただ解決されおいたせん。 レポヌト期間䞭、7340 人の開発者によっお 169 件の倉曎が行われたした。 1.12 人の新しい参加者 (Santhosh Raju ず Dmitri Goutnik) がコミッタヌ暩限を受け取りたした。 pkg 2.0.4 パッケヌゞ マネヌゞャヌの新しいリリヌスが公開され、ポヌト ツリヌのオヌバヌレむず bsd.sites.mk のクリヌニングがサポヌトされたした。 ポヌト内の重芁なバヌゞョン曎新には、Lazarus 9.0、LLVM 5.30、Perl11、PostgreSQL 2.6、Ruby 69.0.1、Firefox 68.1.0、Firefox-esr 76.0、Chromium XNUMX がありたす。
    • プロゞェクト開発は続く ClonOS, 珟像 仮想サヌバヌ むンフラストラクチャを展開するための特殊なディストリビュヌション。 ClonOS が解決するタスクの点では、ClonOS は Proxmox、Triton (Joyent)、OpenStack、OpenNebula、Amazon AWS などのシステムに䌌おいたす。䞻な違いは、FreeBSD の䜿甚ず、FreeBSD Jail コンテナヌの管理、デプロむ、および管理機胜です。 Bhyve および Xen ハむパヌバむザヌに基づく仮想環境。 最近の倉曎にはサポヌトが含たれおいたす
      Linux/BSD VM のcloud-initずWindows VMのcloudbase-init。ネむティブむメヌゞの䜿甚ぞの移行を開始し、ビルドのテストにはJenkins CIを䜿甚し、むンストヌルには新しいpkgリポゞトリを䜿甚したす。
      パッケヌゞからのClonOS。

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

コメントを远加したす