FreeBSD Development Report Q2019 XNUMX

ื™ืฆื ืœืื•ืจ ื“ื™ื•ื•ื— ืขืœ ืคื™ืชื•ื— ืคืจื•ื™ืงื˜ FreeBSD ืžื™ื•ืœื™ ืขื“ ืกืคื˜ืžื‘ืจ 2019. ื”ืฉื™ื ื•ื™ื™ื ื›ื•ืœืœื™ื:

  • ืฉืืœื•ืช ื›ืœืœื™ื•ืช ื•ืžืขืจื›ืชื™ื•ืช
    • ืฆื•ื•ืช ื”ืœื™ื‘ื” ืื™ืฉืจ ื‘ื“ืจืš ื›ืœืœ ืืช ื”ื›ืœืœืช ืงื•ื“ ื‘ืขืœ ืจื™ืฉื™ื•ืŸ BSD ืขื ื”ืกื›ื ืคื˜ื ื˜ ื ื•ืกืฃ (BSD+ืคื˜ื ื˜), ืืš ื™ืฉ ืœืืฉืจ ื‘ื ืคืจื“ ืืช ื”ื”ื—ืœื˜ื” ืœื›ืœื•ืœ ื›ืœ ืจื›ื™ื‘ ื‘ืžืกื’ืจืช ืจื™ืฉื™ื•ืŸ ื–ื” ื‘ืžืขืจื›ืช;
    • ื”ืชืงื™ื™ื ื”ืžืคื’ืฉ ื”ืจืืฉื•ืŸ ืฉืœ ืงื‘ื•ืฆืช ื”ืขื‘ื•ื“ื” ืฉื ื•ืฆืจื” ืœื‘ื™ืฆื•ืข ื”ื’ื™ืจื” ืฉืœ ืงื•ื“ื™ ืžืงื•ืจ ืžืžืขืจื›ืช ื ื™ื”ื•ืœ ืงื•ื“ ื”ืžืงื•ืจ ื”ืžืจื›ื–ื™ืช Subversion ืœืžืขืจื›ืช ื”ืžื‘ื•ื–ืจืช Git. ื”ื“ื™ื•ืŸ ืขืœ ื”ืชืืžืช ื”ื”ื’ื™ืจื” ืขื“ื™ื™ืŸ ื ืžืฉืš, ื•ื ื•ืฉืื™ื ืจื‘ื™ื ื ื•ืชืจื• ืœื”ื›ืจืขื” (ืœื“ื•ื’ืžื”, ื›ื™ืฆื“ ืœื”ืชืžื•ื“ื“ ืขื contrib/, ื”ืื ืœื—ื“ืฉ ื’ื™ื‘ื•ื‘ื™ื ื‘ืžืื’ืจ ื”-git ื”ื ื•ื›ื—ื™ ื•ื›ื™ืฆื“ ืœื™ื™ืฉื ื‘ื“ื™ืงื•ืช commit);
    • ืžืชื•ืš NetBSD ืžื•ืขื‘ืจ ืขืจื›ืช ื”ื›ืœื™ื KCSAN (Kernel Concurrency Sanitizer), ื”ืžืืคืฉืจืช ืœืš ืœื–ื”ื•ืช ืืช ื”ืชืจื—ืฉื•ืชื ืฉืœ ืชื ืื™ ืžื™ืจื•ืฅ ื‘ื™ืŸ ืฉืจืฉื•ืจื™ ืœื™ื‘ื” ื”ืคื•ืขืœื™ื ืขืœ ืžืขื‘ื“ื™ื ืฉื•ื ื™ื;
    • ืžืชื‘ืฆืขืช ืขื‘ื•ื“ื” ืœืฉื™ืžื•ืฉ ื‘-Assembler ื”ืžื•ื‘ื ื” (IAS) ืฉืœ ืงืœืื ื’ ื‘ืžืงื•ื ื‘-Assembler ืž-GNU binutils;
    • ืชืฉืชื™ืช ืืžื•ืœืฆื™ื™ืช ืกื‘ื™ื‘ืช ืœื™ื ื•ืงืก (Linuxulator) ื”ื•ืชืืžื” ืœืขื‘ื•ื“ื” ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ARM64. ืงืจื™ืืช ื”ืžืขืจื›ืช "renameat2" ื™ื•ืฉืžื”. ื›ืœื™ ื”ืฉื™ืจื•ืช strace ืฉื•ืคืจ ื›ื“ื™ ืœืื‘ื—ืŸ ื‘ืขื™ื•ืช ื‘ืงื•ื‘ืฆื™ ื”ืคืขืœื” ืฉืœ ืœื™ื ื•ืงืก ื”ืคื•ืขืœื™ื ื‘- Linuxulator. ืชื•ืงื ื” ืงืจื™ืกื” ื‘ืขืช ืงื™ืฉื•ืจ ืงื•ื‘ืฆื™ ื”ืคืขืœื” ืขื glibc ื˜ืจื™. ื™ืฆื™ืื•ืช ืขื ืจื›ื™ื‘ื™ Linux ืขื‘ื•ืจ Linuxulator ืขื•ื“ื›ื ื• ืœ- CentOS 7.7;
    • ื›ื—ืœืง ืžืชื•ื›ื ื™ืช Google Summer of Code, ื”ืชืœืžื™ื“ื™ื ื”ืฉืœื™ืžื• ื‘ื”ืฆืœื—ื” ืฉื™ืฉื” ืคืจื•ื™ืงื˜ื™ื: ื”ื•ื›ื ื” ื™ื™ืฉื•ื ืฉืœ ื›ืœื™ ping ืžืื•ื—ื“ (IPv4 / IPv6), ืคื•ืชื—ื• ื›ืœื™ื ืœื‘ื“ื™ืงืช ื—ื•ืžื•ืช ืืฉ ื•ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ื‘ืงืจื ืœ (Kernel Sanizer), ืชื•ื›ื ืช mac_ipacl ื”ื•ืฆืข ืžื•ื“ื•ืœ, ื•ืงื•ื“ ื ื›ืชื‘ ื›ื“ื™ ืœื“ื—ื•ืก ื–ื™ื›ืจื•ืŸ ื•ื™ืจื˜ื•ืืœื™ ื•ื ืขืฉืชื” ืขื‘ื•ื“ื” ืœื”ืคืจื“ืช ืชื”ืœื™ืš ื‘ื ื™ื™ืช ื”ืคื•ืจื˜ื™ื ืžื”ื”ืชืงื ื” ื”ืžืงื•ืžื™ืช;
    • ืคืจื•ื™ืงื˜ ืœื‘ื“ื™ืงืช fuzz ืืช ืœื™ื‘ืช FreeBSD ื‘ืืžืฆืขื•ืช ื”ืžืขืจื›ืช syzkaller. ื‘ืžื”ืœืš ืชืงื•ืคืช ื”ื“ื™ื•ื•ื— ืื•ืชืจื• ื™ื•ืชืจ ืžืขืฉืจ ื˜ืขื•ื™ื•ืช ื•ื‘ื•ื˜ืœื• ื‘ืขื–ืจืช syzkaller. ื›ื“ื™ ืœื”ืคืขื™ืœ syzkaller ื‘ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ bhyve, ืžื•ืงืฆื” ืฉืจืช ื ืคืจื“ ื•ืžืฉืชืžืฉ
      syzbot ื‘ื•ื“ืง ืชืชื™ ืžืขืจื›ื•ืช FreeBSD ืฉื•ื ื•ืช ื‘ืชืฉืชื™ืช ื’ื•ื’ืœ. ื”ืขื‘ืจืช ืžื™ื“ืข ืขืœ ื›ืœ ืงืจื™ืกื•ืช ืœืฉื™ืจื•ืช backtrace.io ืื•ืจื’ื ื” ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ืงื™ื‘ื•ืฅ ื•ื”ื ื™ืชื•ื— ืฉืœื”ื;

    • ืžืชื‘ืฆืขืช ืขื‘ื•ื“ื” ืœืขื“ื›ื•ืŸ ื”ื™ื™ืฉื•ื ืฉืœ zlib ื‘ืจืžืช ื”ืงืจื ืœ.
      ื”ืงื•ื“ ื”ืงืฉื•ืจ ืœื“ื—ื™ืกื” ื”ื•ืขื‘ืจ ืž-zlib 1.0.4, ืฉืฉื•ื—ืจืจ ืœืคื ื™ ืœืžืขืœื” ืž-20 ืฉื ื”, ืœื‘ืกื™ืก ื”ืงื•ื“ ื”ื ื•ื›ื—ื™ ืฉืœ zlib 1.2.11. ื”ืคื•ื ืงืฆื™ื•ืช compress, compress2 ื•- uncompress ื ื•ืกืคื• ืœืงืจื ืœ ื›ื“ื™ ืœืื—ื“ ืืช ื”ื’ื™ืฉื” ืœ-zlib. ื”ืงื•ื“ ื”ืžืกืคืง ืืช ืคืจื•ื˜ื•ืงื•ืœ ื”-PPP ืžืชืช-ื”ืžืขืจื›ืช netgraph ื”ื•ืขื‘ืจ ืœืฉื™ืžื•ืฉ ื‘ื™ื™ืฉื•ื ื”ืžืขืจื›ืช ืฉืœ zlib, ื‘ืžืงื•ื ื”ืžื”ื“ื•ืจื” ื”ืžืงื•ืจื™ืช ืฉืœ ืกืคืจื™ื™ื” ื–ื•. ืชืช ื”ืžืขืจื›ื•ืช kern_ctf.c, opencryptodflate, geom_uzip, subr_compressor,
      if_mxge, bxe updated ื•-ng_deflate;

    • ืžืžืฉืง ืงืจื ืœ ื—ื“ืฉ ื ืžืฆื ื‘ืคื™ืชื•ื— sysctlinfo, ื”ืžืืคืฉืจ ืœืžืฆื•ื ืืœืžื ื˜ื™ื ื‘ื‘ืกื™ืก ื”ืคืจืžื˜ืจื™ื sysctl, ื”ืžืขื•ื‘ื“ื™ื ื‘ืฆื•ืจื” ืฉืœ MIB (Management Information Base), ื•ืœื”ืขื‘ื™ืจ ืžื™ื“ืข ืขืœ ืื•ื‘ื™ื™ืงื˜ื™ื ืœืžืจื—ื‘ ื”ืžืฉืชืžืฉ.
  • ืื‘ื˜ื—ื”
    • ืžื•ื“ื•ืœ ืœื™ื‘ื” ืคื•ืชื— mac_ipacl, ื”ืžื‘ื•ืกืกืช ืขืœ TrustedBSD MAC Framework ื•ืžื™ื™ืฉืžืช ืžืขืจื›ืช ื‘ืงืจืช ื’ื™ืฉื” ืœื”ื’ื“ืจื•ืช ืžื—ืกื ื™ืช ื”ืจืฉืช ืขื‘ื•ืจ ืกื‘ื™ื‘ื•ืช ื›ืœื. ืœื“ื•ื’ืžื”, ื‘ืืžืฆืขื•ืช mac_ipacl, ืžื ื”ืœ ืžืขืจื›ืช ืžืืจื— ื™ื›ื•ืœ ืœืžื ื•ืข ืžืžืฉืชืžืฉ ื”ืฉื•ืจืฉ ื‘ืกื‘ื™ื‘ืช ื›ืœื ืœืฉื ื•ืช ืื• ืœื”ื’ื“ื™ืจ ื›ืชื•ื‘ื•ืช IP ืื• ื”ื’ื“ืจื•ืช ืจืฉืช ืžืฉื ื” ืขื‘ื•ืจ ืžืžืฉืงื™ ืจืฉืช ืžืกื•ื™ืžื™ื. ืžืขืจื›ืช ื‘ืงืจืช ื›ื ื™ืกื” ื—ื•ื‘ื” ืžื•ืฆืขืช ื”ื™ื ืžืืคืฉืจืช ืœื”ื’ื“ื™ืจ ืจืฉื™ืžื•ืช ืฉืœ ื›ืชื•ื‘ื•ืช IP ื•ืจืฉืชื•ืช ืžืฉื ื” ื”ืžื•ืชืจื•ืช ืœื›ืœื, ืœืืกื•ืจ ื”ืชืงื ื” ืฉืœ ื›ืชื•ื‘ื•ืช IP ื•ืจืฉืชื•ืช ืžืฉื ื” ืžืกื•ื™ืžื•ืช ื‘ื›ืœื, ืื• ืœื”ื’ื‘ื™ืœ ืฉื™ื ื•ื™ื™ื ื‘ืคืจืžื˜ืจื™ื ืจืง ืขื‘ื•ืจ ืžืžืฉืงื™ ืจืฉืช ืžืกื•ื™ืžื™ื;
    • ืื™ื ื˜ืœ ืชืจืžื” ืœืคืจื•ื™ืงื˜ ื™ืฆื™ืืช ืขืจื™ืžืช ืชื•ื›ื ื” TPM 2.0 (Trusted Platform Module) ืœืื™ื ื˜ืจืืงืฆื™ื” ืขื ืฉื‘ื‘ ื”ืžื—ืฉื•ื‘ ื”ืžืื•ื‘ื˜ื—, ื”ืžืฉืžืฉ ื‘ื“ืจืš ื›ืœืœ ืœืืชื—ื•ืœ ืžืื•ืžืช ืฉืœ ืงื•ืฉื—ื” ื•ืžื˜ืขืŸ ืืชื—ื•ืœ ืžืขืจื›ืช ื”ื”ืคืขืœื”. ืจื›ื™ื‘ื™ ืžื—ืกื ื™ืช ืžืกื•ืคืงื™ื ื‘ืฆื•ืจื” ืฉืœ ื™ืฆื™ืื•ืช ืื‘ื˜ื—ื”/tpm2-tss, ืื‘ื˜ื—ื”/tpm2-tools ื•ื™ืฆื™ืื•ืช ืื‘ื˜ื—ื”/tpm2-abrmd. ื™ืฆื™ืืช tpm2-tss ื›ื•ืœืœืช ืกืคืจื™ื•ืช ืœืฉื™ืžื•ืฉ ื‘ืžืžืฉืง ื”-API ืฉืœ TPM2, tpm2-tools ืžืกืคืงืช ืฉื•ืจืช ืขื–ืจ ืœื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช TPM, ื•-tpm2-abrmd ืžื›ื™ืœ ืชื”ืœื™ืš ืจืงืข ืฉืžื™ื™ืฉื ืืช ืจื›ื™ื‘ื™ TPM Access Broker ื•-Resource Manager ืฉืžืจื‘ื‘ื™ื ื‘ืงืฉื•ืช ืž-TPM ืฉื•ื ื™ื ืžืฉืชืžืฉื™ื ืœืžื›ืฉื™ืจ ื™ื—ื™ื“. ื‘ื ื•ืกืฃ ืœืืชื—ื•ืœ ืžืื•ืžืช ื‘-FreeBSD, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-TPM ื›ื“ื™ ืœืฉืคืจ ืืช ืื‘ื˜ื—ืช Strongswan IPsec, SSH ื•-TLS ืขืœ ื™ื“ื™ ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ืงืจื™ืคื˜ื•ื’ืจืคื™ื•ืช ื‘ืฉื‘ื‘ ื ืคืจื“;
    • ื”ืœื™ื‘ื” ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช amd64 ืžื•ืชืืžืช ืœื˜ืขื™ื ื” ื‘ืืžืฆืขื•ืช ื˜ื›ื ื™ืงืช ื”ื”ื’ื ื” ืฉืœ W^X (write XOR execute), ืžื” ืฉืžืจืžื– ืฉื“ืคื™ ื–ื™ื›ืจื•ืŸ ืœื ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ื–ืžื™ื ื™ื ื‘ื• ื–ืžื ื™ืช ืœื›ืชื™ื‘ื” ื•ื‘ื™ืฆื•ืข (ืขื›ืฉื™ื• ื ื™ืชืŸ ืœื˜ืขื•ืŸ ืืช ื”ืœื™ื‘ื” ื‘ืืžืฆืขื•ืช ื“ืคื™ ื–ื™ื›ืจื•ืŸ ื ื™ืชื ื™ื ืœื”ืจืฆื” ืฉืขื‘ื•ืจื ื”ื›ืชื™ื‘ื” ืžื•ืฉื‘ืชืช). ืฉื™ื˜ืช ื”ื’ื ืช ื”ืœื™ื‘ื” ื”ื—ื“ืฉื” ื›ืœื•ืœื” ื‘ืขื ืฃ 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;
    • ื ืขืฉืชื” ืขื‘ื•ื“ื” ื›ื“ื™ ืœื”ืกื™ืจ ืืช ื”ืคื•ื ืงืฆื™ื” unsafe gets ืž-libc (ื”ื—ืœ ืžืชืงืŸ C11, ืคื•ื ืงืฆื™ื” ื–ื• ืื™ื ื” ื ื›ืœืœืช ื‘ืžืคืจื˜) ื•ืœืชืงืŸ ืืช ื”ืคื•ืจื˜ื™ื ืฉืขื“ื™ื™ืŸ ืžืฉืชืžืฉื™ื ื‘ืคื•ื ืงืฆื™ื” ื–ื•. ื”ืฉื™ื ื•ื™ ืžืชื•ื›ื ืŸ ืœื”ื™ื•ืช ืžื•ืฆืข ื‘-FreeBSD 13.0;
    • ื”ื•ืฉืง ืคืจื•ื™ืงื˜ ืคื™ื™ืœื•ื˜ ืœื™ืฆื™ืจืช ื›ืœื™ื ืœืชื–ืžื•ืจ ืกื‘ื™ื‘ื•ืช ื›ืœื ืขืœ ื‘ืกื™ืก ื”ืžืกื’ืจืช ื™ื›ื•ืœ ืœื™ืฆื™ืจื” ื•ื™ื™ืฆื•ื ืฉืœ ืชืžื•ื ื•ืช, ืžื™ื•ืฉืžื•ืช ื‘ื“ื•ืžื” ืœ-Docker, ื•ืžื ื”ืœ ื”ืชืงืŸ ื ื•ื•ื“, ื”ืžืกืคืง ืžืžืฉืง ืœื”ืคืขืœื” ื“ื™ื ืžื™ืช ืฉืœ ื™ื™ืฉื•ืžื™ื ื‘ืกื‘ื™ื‘ืช ื›ืœื. ื”ืžื•ื“ืœ ื”ืžื•ืฆืข ืžืืคืฉืจ ื”ืคืจื“ื” ื‘ื™ืŸ ืชื”ืœื™ื›ื™ ื™ืฆื™ืจืช ืกื‘ื™ื‘ื•ืช ื›ืœื ื•ืคืจื™ืกื” ืฉืœ ืืคืœื™ืงืฆื™ื•ืช ื‘ื”ืŸ. ืื—ืช ืžืžื˜ืจื•ืช ื”ืคืจื•ื™ืงื˜ ื”ื™ื ืœืกืคืง ืืžืฆืขื™ ืœืชืžืจืŸ ื‘ืชื™ ื›ืœื ื›ืžื• ืžื›ื•ืœื•ืช ื‘ืกื’ื ื•ืŸ ื“ื•ืงืจ;
  • ืžืขืจื›ื•ืช ืื—ืกื•ืŸ ื•ืงื‘ืฆื™ื
    • ืž-NetBSD ืœื›ืœื™ ื”ืฉื™ืจื•ืช "makefs". ื ืงื‘ืข ืžื—ื“ืฉ ืชืžื™ื›ื” ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื FAT (msdosfs). ืฉื™ื ื•ื™ื™ื ืžื•ื›ื ื™ื ืžืืคืฉืจื™ื ืœืš ืœื™ืฆื•ืจ ืชืžื•ื ื•ืช FS ืขื FAT ืœืœื ืฉื™ืžื•ืฉ ื‘ืžื ื”ืœ ื”ื”ืชืงืŸ md ื•ืœืœื ื”ืจืฉืื•ืช ืฉื•ืจืฉ;
    • ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ ืชืช-ื”ืžืขืจื›ืช FUSE (ืžืขืจื›ืช ืงื‘ืฆื™ื ื‘USErspace) ืขื•ื‘ื“ ืžื—ื“ืฉ, ื”ืžืืคืฉืจ ื™ืฆื™ืจืช ื”ื˜ืžืขื•ืช ืฉืœ ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ื‘ืžืจื—ื‘ ื”ืžืฉืชืžืฉ. ื”ื“ืจื™ื™ื‘ืจ ืฉื ืฉืœื— ื‘ืžืงื•ืจ ื”ื›ื™ืœ ื‘ืื’ื™ื ืจื‘ื™ื ื•ื”ืชื‘ืกืก ืขืœ FUSE 7.8 ืฉื™ืฆื ืœืคื ื™ 11 ืฉื ื™ื. ื›ื—ืœืง ืžืคืจื•ื™ืงื˜ ื”ืžื•ื“ืจื ื™ื–ืฆื™ื” ืฉืœ ืžื ื”ืœื™ ื”ืชืงื ื™ื, ื”ื•ื˜ืžืขื” ืชืžื™ื›ืช ืคืจื•ื˜ื•ืงื•ืœ FUSE 7.23, ื ื•ืกืฃ ืงื•ื“ ืœื‘ื“ื™ืงืช ื”ืจืฉืื•ืช ื‘ืฆื“ ื”ืœื™ื‘ื” ("-o default_permissions"), ื ื•ืกืคื• ืงืจื™ืื•ืช VOP_MKNOD, VOP_BMAP ื•-VOP_ADVLOCK, ื”ื™ื›ื•ืœืช ืœื”ืคืจื™ืข ืœืคืขื•ืœื•ืช FUSE ื ื•ืกืคื” ื ื•ืกืฃ, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืฆื™ื ื•ืจื•ืช ืœืœื ืฉื ื•ืฉืงืขื™ ื™ื•ื ื™ืงืก ื‘-fusefs, ืืคืฉืจ ื”ื™ื” ืœื”ืฉืชืžืฉ ื‘-kqueue ืขื‘ื•ืจ /dev/fuse, ืขื“ื›ื•ืŸ ืคืจืžื˜ืจื™ mount ื‘ืืžืฆืขื•ืช "mount -u" ื”ื•ืชืจ, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื™ื™ืฆื•ื fusefs ื“ืจืš NFS, ื—ืฉื‘ื•ื ืื•ืช RLIMIT_FSIZE ื”ื™ื™ืชื” ืžื™ื•ืฉื, ื ื•ืกืคื• ื”ื“ื’ืœื™ื FOPEN_KEEP_CACHE ื•-FUSE_ASYNC_READ, ื‘ื•ืฆืขื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืžืฉืžืขื•ืชื™ื•ืช ืฉืœ ื‘ื™ืฆื•ืขื™ื ื•ืืจื’ื•ืŸ ื”ืื—ืกื•ืŸ ื‘ืžื˜ืžื•ืŸ ืฉื•ืคืจ. ื”ื“ืจื™ื™ื‘ืจ ื”ื—ื“ืฉ ื›ืœื•ืœ ื‘ืกื ื™ืคื™ head and stable/12 (ื›ืœื•ืœ ืขื FreeBSD 12.1);
    • ื”ืขื‘ื•ื“ื” ืขืœ ื”ื™ื™ืฉื•ื ืฉืœ NFSv4.2 (RFC-7862) ืขื‘ื•ืจ FreeBSD ื›ืžืขื˜ ื”ื•ืฉืœืžื”. ื‘ืžื”ืœืš ืชืงื•ืคืช ื”ื“ื™ื•ื•ื—, ื”ืชืžืงื“ื• ื‘ื‘ื“ื™ืงื•ืช. ื‘ื“ื™ืงื•ืช ืชืื™ืžื•ืช ืขื ื”ื˜ืžืขืช ืœื™ื ื•ืงืก ื”ื•ืฉืœืžื•, ืืš ื‘ื“ื™ืงื•ืช ืฉืœ ืฉืจืช pNFS ืขื NFSv4.2 ืขื“ื™ื™ืŸ ื ืžืฉื›ื•ืช. ื‘ืžื•ื ื—ื™ื ื›ืœืœื™ื™ื, ื”ืงื•ื“ ื›ื‘ืจ ื ื—ืฉื‘ ืžื•ื›ืŸ ืœืฉื™ืœื•ื‘ ื‘ืกื ื™ืคื™ื ืจืืฉื™ื™ื/ื ื•ื›ื—ื™ื™ื ืฉืœ FreeBSD. ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ NFS ืžื•ืกื™ืคื” ืชืžื™ื›ื” ื‘ืคื•ื ืงืฆื™ื•ืช posix_fadvise, posix_fallocate, ืžืฆื‘ื™ SEEKHOLE/SEEKDATA ื‘-lseek, ื”ืขืชืงื” ืžืงื•ืžื™ืช ืฉืœ ื—ืœืงื™ ืงื‘ืฆื™ื ื‘ืฉืจืช (ืœืœื ื”ืขื‘ืจื” ืœืœืงื•ื—);
  • ืชืžื™ื›ื” ื‘ื—ื•ืžืจื”
    • ื”ืชื—ื™ืœ ืคืจื•ื™ืงื˜ ืœืฉื™ืคื•ืจ FreeBSD ื‘ืžื—ืฉื‘ื™ื ื ื™ื™ื“ื™ื. ื”ืžื›ืฉื™ืจ ื”ืจืืฉื•ืŸ ืฉื ื‘ื“ืง ืœืชืžื™ื›ื” ื‘ื—ื•ืžืจื” ื‘-FreeBSD ื”ื™ื” ื”ืžื—ืฉื‘ ื”ื ื™ื™ื“ Lenovo X1 Carbon ืžื”ื“ื•ืจ ื”ืฉื‘ื™ืขื™;
    • CheriBSD, ืžื–ืœื’ ืฉืœ FreeBSD ืœืืจื›ื™ื˜ืงื˜ื•ืจืช ืžืขื‘ื“ื™ ืžื—ืงืจ ืฆ'ืจื™ (Capability Hardware Enhanced RISC Instructions), ืขื•ื“ื›ื ื” ืœืชืžื™ื›ื” ื‘ืžืขื‘ื“ ARM Morello ื”ืงืจื•ื‘, ืฉื™ืชืžื•ืš ื‘ืžืขืจื›ืช ื‘ืงืจืช ื”ื’ื™ืฉื” ืœื–ื™ื›ืจื•ืŸ ืฉืœ CHERI ื”ืžื‘ื•ืกืกืช ืขืœ ืžื•ื“ืœ ื”ืื‘ื˜ื—ื” Capsicum. ืฉื‘ื‘ ืžื•ืจืœื• ื”ื ืžืชื›ื ื ื™ื ื™ืฆื ื‘ืฉื ืช 2021. ืžืคืชื—ื™ CheriBSD ื’ื ืžืžืฉื™ื›ื™ื ืœืขืงื•ื‘ ืื—ืจ ื”ืคื™ืชื•ื— ืฉืœ ืื‘ ื”ื˜ื™ืคื•ืก ื”ื™ื™ื—ื•ืก ืฉืœ CHERI ื”ืžื‘ื•ืกืก ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช MIPS;
    • ืชืžื™ื›ื” ืžื•ืจื—ื‘ืช ืขื‘ื•ืจ ืฉื‘ื‘ื™ RockChip RK3399 ื”ืžืฉืžืฉื™ื ื‘ืœื•ื—ื•ืช RockPro64 ื•-NanoPC-T4. ื”ืฉื™ืคื•ืจ ื”ืžืฉืžืขื•ืชื™ ื‘ื™ื•ืชืจ ื”ื™ื” ืชืžื™ื›ืช eMMC ื•ืคื™ืชื•ื— ืฉืœ ื“ืจื™ื™ื‘ืจ ื—ื“ืฉ ืœื‘ืงืจ eMMC ื”ืžืฉืžืฉ ื‘ืœื•ื—;
    • ื”ืขื‘ื•ื“ื” ื ืžืฉื›ื” ืขืœ ื”ื˜ืžืขืช ืชืžื™ื›ื” ืขื‘ื•ืจ ARM64 SoC Broadcom BCM5871X ืขื ืžืขื‘ื“ื™ ARMv8 Cortex-A57 ื”ืžื›ื•ื•ื ื™ื ืœืฉื™ืžื•ืฉ ื‘ื ืชื‘ื™ื, ืฉืขืจื™ื ื•-NAS. ื‘ืžื”ืœืš ืชืงื•ืคืช ื”ื“ื™ื•ื•ื—
      ื”ืจื—ื™ื‘ื” ืืช ื”ืชืžื™ื›ื” ื‘-iProc PCIe ื•ื”ื•ืกื™ืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืคืขื•ืœื•ืช ืงืจื™ืคื˜ื•ื’ืจืคื™ื•ืช ืฉืœ ื—ื•ืžืจื” ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”-IPsec.
      ืฉื™ืœื•ื‘ ืงื•ื“ ื‘ืกื ื™ืฃ HEAD ืฆืคื•ื™ ื‘ืจื‘ืขื•ืŸ ื”ืจื‘ื™ืขื™;

    • ื—ืœื” ื”ืชืงื“ืžื•ืช ืžืฉืžืขื•ืชื™ืช ื‘ืคื™ืชื•ื— ื™ืฆื™ืืช FreeBSD ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช powerpc64. ื”ื”ืชืžืงื“ื•ืช ื”ื™ื ื‘ืืกืคืงืช ื‘ื™ืฆื•ืขื™ื ืื™ื›ื•ืชื™ื™ื ื‘ืžืขืจื›ื•ืช ืขื ืžืขื‘ื“ื™ IBM POWER8 ื•-POWER9, ืืš ื ืชืžื›ืช ืื•ืคืฆื™ื•ื ืœื™ืช ืขืœ ืžื—ืฉื‘ื™ Apple Power Mac ื™ืฉื ื™ื ื™ื•ืชืจ, x500 ื•-Amiga A1222. ืกื ื™ืฃ powerpc*/12 ืžืžืฉื™ืš ืœืฉืœื•ื— ืขื gcc 4.2.1, ื•ืขื ืฃ powerpc*/13 ื™ื•ืขื‘ืจ ื‘ืงืจื•ื‘ ืœ-llvm90. ืžืชื•ืš 33306 ื™ืฆื™ืื•ืช, 30514 ื”ื•ืจื›ื‘ื• ื‘ื”ืฆืœื—ื”;
    • ื”ืขื‘ืจื” ืฉืœ FreeBSD ืœ-NXP LS64A 1046-bit SoC ืžื‘ื•ืกืก ืขืœ ืžืขื‘ื“ ARMv8 Cortex-A72 ืขื ืžื ื•ืข ื”ืืฆืช ืขื™ื‘ื•ื“ ืžื ื•ืช ืžืฉื•ืœื‘ ื‘ืจืฉืช, 10 ื’'ื™ื’ื”-ื‘ื™ื™ื˜ Ethernet, PCIe 3.0, SATA 3.0 ื•-USB 3.0 ื ืžืฉื›ื”. ื‘ืžื”ืœืš ืชืงื•ืคืช ื”ื“ื™ื•ื•ื—, ื”ื•ื˜ืžืขื” ืชืžื™ื›ื” ืขื‘ื•ืจ USB 3.0, SD / MMC, I2C, ืžืžืฉืง ืจืฉืช DPAA ื•-GPIO. ืื ื• ืžืชื›ื ื ื™ื ืœืชืžื•ืš ื‘-QSPI ื•ืœืžื˜ื‘ ืืช ื‘ื™ืฆื•ืขื™ ืžืžืฉืง ื”ืจืฉืช. ื”ืฉืœืžื” ื•ื”ื›ืœืœื” ื‘ืกื ื™ืฃ HEAD ืฆืคื•ื™ื™ื ื‘ืจื‘ืขื•ืŸ ื”ืจื‘ื™ืขื™ ืฉืœ 4;
    • ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ ena ืขื•ื“ื›ืŸ ื›ื“ื™ ืœืชืžื•ืš ื‘ื“ื•ืจ ื”ืฉื ื™ ืฉืœ ืžืชืืžื™ ืจืฉืช ENAv2 (ืžืชืื ืจืฉืช ืืœืกื˜ื™) ื”ืžืฉืžืฉื™ื ื‘ืชืฉืชื™ืช Elastic Compute Cloud (EC2) ืœืืจื’ื•ืŸ ืชืงืฉื•ืจืช ื‘ื™ืŸ ืฆืžืชื™ EC2 ื‘ืžื”ื™ืจื•ื™ื•ืช ืฉืœ ืขื“ 25 Gb/s. ื”ื•ืกืคื” ื•ื ื‘ื“ืงื” ืชืžื™ื›ืช NETMAP ืœืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ ena, ื•ื”ืชืืžืชื” ืืช ืคืจื™ืกืช ื”ื–ื™ื›ืจื•ืŸ ื›ื“ื™ ืœืืคืฉืจ ืžืฆื‘ LLQ ื‘ืกื‘ื™ื‘ื•ืช Amazon EC2 A1;
  • ืžืขืจื›ืช ืืคืœื™ืงืฆื™ื•ืช ื•ื™ืฆื™ืื•ืช
    • ืจื›ื™ื‘ื™ ืžื—ืกื ื™ืช ื’ืจืคื™ืงื” ื•ื™ืฆื™ืื•ืช ืžืขื•ื“ื›ื ื™ื ื”ืงืฉื•ืจื™ื ืœ-xorg. ื™ืฆื™ืื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘-USE_XORG ื•-XORG_CAT ื”ื•ืขื‘ืจื• ืœืžืกื’ืจืช USES ื‘ืžืงื•ื ืœืงืจื•ื bsd.xorg.mk ื“ืจืš bsd.port.mk. ื™ืฆื™ืื•ืช ื›ืืœื” ื›ื•ืœืœื•ืช ื›ืขืช ืืช ื”ื“ื’ืœ "USES=xorg" ื‘ืงื‘ืฆื™ ื”ืžื™ื™ืงืืค ืฉืœื”ื. ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ XORG_CAT ื—ื•ืœืฆื” ืž-bsd.xorg.mk ื•ื”ื™ื ืžื•ืคืขืœืช ื›ืขืช ืขื ื”ื“ื’ืœ "USES=xorg-cat". ื ื•ืกืคื• ื›ืœื™ื ืœื”ืคืงื” ื™ืฉื™ืจื” ืฉืœ ื™ืฆื™ืื•ืช xorg ืžืžืื’ืจ git
      freedesktop.org, ืืฉืจ, ืœืžืฉืœ, ืžืืคืฉืจ ืœื™ืฆื•ืจ ืคื•ืจื˜ื™ื ืขื‘ื•ืจ ื’ืจืกืื•ืช ืฉื˜ืจื ืฉื•ื—ืจืจื•. ื‘ืขืชื™ื“, ืžืชื•ื›ื ืŸ ืœื”ื›ื™ืŸ ืขืจื›ืช ื›ืœื™ื ืœืฉื™ืžื•ืฉ ื‘ืžืขืจื›ืช meson build ื‘ืžืงื•ื ื‘ื›ืœื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ืœื‘ื ื™ื™ืช ื™ืฆื™ืื•ืช xorg.

      ื ืขืฉืชื” ืขื‘ื•ื“ื” ื›ื“ื™ ืœื ืงื•ืช ื™ืฆื™ืื•ืช xorg ื™ืฉื ื•ืช ื”ืงืฉื•ืจื•ืช ืœืจื›ื™ื‘ื™ื ืฉืื™ื ื ื ืชืžื›ื™ื ืขื•ื“, ื›ื’ื•ืŸ ื”ืกืจืช ื™ืฆื™ืืช x11/libXp ื•ื‘ื™ื˜ื•ืœ ื™ืฆื™ืื•ืช x11/Xxf86misc, x11-fonts/libXfontcache ื•-graphics/libGLw;

    • ื ืขืฉืชื” ืขื‘ื•ื“ื” ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืชืžื™ื›ื” ื‘-Java 11 ื•ื‘ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ื™ื•ืชืจ ื‘-FreeBSD, ื•ืœื”ืขื‘ื™ืจ ื›ืžื” ืฉื™ื ื•ื™ื™ื ืœืขื ืฃ Java 8. ืžืื– ืฉ-FreeBSD ื”ื˜ืžื™ืขื” ืชืžื™ื›ื” ื‘ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ืฉืœ Java 11 ื›ื’ื•ืŸ Java Flight Recorder, HotSpot Serviceability Agent, HotSpot Debugger, DTrace, Javac Server, Java Sound ื•-SCTP, ื”ืขื‘ื•ื“ื” ืขื‘ืจื” ืœื”ื‘ื˜ื™ื— ืฉื›ืœ ืžื‘ื—ื ื™ ื”ืชืื™ืžื•ืช ื™ืขื‘ืจื•. ืžืกืคืจ ื”ื›ื™ืฉืœื•ื ื•ืช ื‘ืขืช ืžืขื‘ืจ ืžื‘ื—ื ื™ื ื”ืฆื˜ืžืฆื ืž-50 ืœ-2;
    • ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื” ืฉืœ KDE Plasma, KDE Frameworks, KDE Applications ื•-Qt ื ืฉืžืจื™ื ืžืขื•ื“ื›ื ื™ื ื•ืžืขื•ื“ื›ื ื™ื ืœืžื”ื“ื•ืจื•ืช ื”ืื—ืจื•ื ื•ืช;
    • ื™ืฆื™ืื•ืช ืขื ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื” ืฉืœ Xfce ืขื•ื“ื›ื ื• ืœืฉื—ืจื•ืจ 4.14;
    • ืขืฅ ื”ื™ืฆื™ืื•ืช ืฉืœ FreeBSD ืขื‘ืจ ืืช ืื‘ืŸ ื”ื“ืจืš ืฉืœ 38000 ื™ืฆื™ืื•ืช, ืžืกืคืจ ื”-PRs ื”ืคืชื•ื—ื™ื ืžืขื˜ ื™ื•ืชืจ ืž-2000, ืžืชื•ื›ื 400 PRs ืขื“ื™ื™ืŸ ืžืžืชื™ื ื™ื. ื‘ืžื”ืœืš ืชืงื•ืคืช ื”ื“ื™ื•ื•ื— ื‘ื•ืฆืขื• 7340 ืฉื™ื ื•ื™ื™ื ืขืœ ื™ื“ื™ 169 ืžืคืชื—ื™ื. ืฉื ื™ ืชื•ืจืžื™ื ื—ื“ืฉื™ื (ืกื ืชื•ืฉ ืจืื’'ื• ื•ื“ืžื™ื˜ืจื™ ื’ื•ื˜ื ื™ืง) ืงื™ื‘ืœื• ื–ื›ื•ื™ื•ืช ืžืชื—ื™ื™ื‘ื™ื. ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ืžื ื”ืœ ื”ื—ื‘ื™ืœื•ืช pkg 1.12 ืคื•ืจืกืžื” ืขื ืชืžื™ื›ื” ื‘ืฉื›ื‘ื•ืช-ืขืœ ื‘ืขืฅ ื”ืคื•ืจื˜ื™ื ื•ื ื™ืงื•ื™ bsd.sites.mk. ืขื“ื›ื•ื ื™ ื’ืจืกืช ื™ืฆื™ืื” ืžืฉืžืขื•ืชื™ื™ื ื›ื•ืœืœื™ื: Lazarus 2.0.4, LLVM 9.0, Perl5.30, PostgreSQL 11, Ruby 2.6, Firefox 69.0.1, Firefox-esr 68.1.0, Chromium 76.0;
    • ืคื™ืชื•ื— ื”ืคืจื•ื™ืงื˜ ื ืžืฉืš ClonOS, ืžืชืคืชื— ืขืจื›ืช ื”ืคืฆื” ืžื™ื•ื—ื“ืช ืœืคืจื™ืกืช ืชืฉืชื™ืช ืฉืจืช ื•ื™ืจื˜ื•ืืœื™ืช. ืžื‘ื—ื™ื ืช ื”ืžืฉื™ืžื•ืช ืฉื™ืฉ ืœืคืชื•ืจ, ClonOS ื“ื•ืžื” ืœืžืขืจื›ื•ืช ื›ืžื• Proxmox, Triton (Joyent), OpenStack, OpenNebula ื•-Amazon AWS, ืฉื”ื”ื‘ื“ืœ ื”ืขื™ืงืจื™ ืžื”ื ื”ื•ื ื”ืฉื™ืžื•ืฉ ื‘-FreeBSD ื•ื”ื™ื›ื•ืœืช ืœื ื”ืœ, ืœืคืจื•ืก ื•ืœื ื”ืœ ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœ FreeBSD Jail ื• ืกื‘ื™ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ื”ื™ืคืจื•ื•ื™ื–ื•ืจื™ื ืฉืœ Bhyve ื•-Xen. ืžื”ืฉื™ื ื•ื™ื™ื ื”ืื—ืจื•ื ื™ื, ื™ืฉ ืชืžื™ื›ื”
      cloud-init ืขื‘ื•ืจ Linux/BSD VM ื•-cloudbase-init ืขื‘ื•ืจ Windows VM, ืชื—ื™ืœืช ื”ืžืขื‘ืจ ืœืชืžื•ื ื•ืช ืžืงื•ืจื™ื•ืช, ืฉื™ืžื•ืฉ ื‘-Jenkins CI ืœื‘ื“ื™ืงื•ืช ื‘ื ื™ื™ื” ื•ืžืื’ืจ pkg ื—ื“ืฉ ืœื”ืชืงื ื”
      ClonOS ืžื—ื‘ื™ืœื•ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”