FreeBSD Development Report Q2019 XNUMX

luam tawm qhia txog kev txhim kho FreeBSD qhov project txij lub Xya Hli mus txog rau lub Cuaj Hli 2019. Ntawm cov kev hloov pauv peb tuaj yeem nco ntsoov:

  • General thiab systemic teeb meem
    • Pab pawg tub ntxhais feem ntau tau pom zoo qhov muaj peev xwm suav nrog cov lej hauv cov kab ke uas tau muab faib raws li BSD daim ntawv tso cai nrog kev pom zoo patent ntxiv (BSD + Patent), tab sis qhov kev txiav txim siab kom suav nrog txhua yam hauv qhov system raws li daim ntawv tso cai no yuav tsum tau pom zoo cais;
    • Thawj lub rooj sib tham ntawm pab pawg neeg ua haujlwm tsim los ua kom tau txais kev tsiv teb tsaws chaw ntawm cov lej los ntawm lub hauv paus tswj hwm qhov system Subversion mus rau decentralized system Git coj qhov chaw. Kev sib tham txog qhov ua tau ntawm kev tsiv teb tsaws chaw tseem tab tom ua thiab kev txiav txim siab ntawm ntau qhov teeb meem tseem tsis tau tsim kho (piv txwv li, yuav ua li cas nrog kev koom tes /, seb nws puas tsim nyog los tsim cov hashes hauv git repository tam sim no thiab yuav ua li cas zoo tshaj los siv kev sim ntawm cog lus);
    • Los ntawm NetBSD ported KCSAN (Kernel Concurrency Sanitizer) cov cuab yeej, uas tso cai rau koj los txheeb xyuas cov xwm txheej ntawm cov kab xov xov uas khiav ntawm CPU sib txawv;
    • Kev ua haujlwm tab tom siv Clang's built-in assembler (IAS) es tsis txhob GNU binutils assembler;
    • Linux ib puag ncig emulation infrastructure (Linuxulator) tau yoog mus ua haujlwm ntawm ARM64 architecture. Ua raws li "renameat2" system hu. Cov cuab yeej siv hluav taws xob tau raug txhim kho kom kuaj xyuas cov teeb meem hauv Linux executables khiav hauv Linuxulator. Qhov teeb meem nrog kev sib tsoo thaum txuas cov ntaub ntawv ua tiav nrog glibc tshiab tau raug daws. Chaw nres nkoj nrog Linux Cheebtsam rau Linuxulator tau hloov kho rau CentOS 7.7;
    • Raws li ib feem ntawm Google Lub Caij Ntuj Sov ntawm Code program, cov tub ntxhais kawm ua tiav rau 4 txoj haujlwm: kev ua tiav ntawm kev sib koom ua ke (IPv6 / IPvXNUMX) ping utility tau npaj, cov cuab yeej rau kev sim firewalls thiab txheeb xyuas qhov yuam kev hauv kernel (Kernel sanitizer) tau tsim, lub mac_ipacl module tau thov, code tau sau rau virtual nco compression thiab ua hauj lwm tau ua kom cais cov chaw nres nkoj tsim txheej txheem los ntawm lub zos installation;
    • Txoj haujlwm rau fuzzing kev sim ntawm FreeBSD kernel siv lub kaw lus txuas ntxiv txhim kho syzkaller ua. Thaum lub sijhawm tshaj tawm, ntau tshaj kaum qhov yuam kev raug txheeb xyuas thiab tshem tawm siv syzkaller. Txhawm rau khiav syzkaller hauv cov tshuab virtual raws li bhyve, ib lub server cais, thiab siv
      syzbot tau tsim kev sim ntau yam FreeBSD subsystems hauv Google infrastructure. Npaj cov kev hloov pauv ntawm cov ntaub ntawv hais txog txhua qhov kev sib tsoo mus rau qhov kev pabcuam backtrace.io kom yooj yim lawv pab pawg thiab tshuaj xyuas;

    • Kev ua haujlwm tab tom tab tom hloov kho qhov kev siv zlib ntawm qib kernel.
      Compression-related code tau tsiv los ntawm zlib 1.0.4, tso tawm tshaj 20 xyoo dhau los, mus rau tam sim no zlib 1.2.11 codebase. Txhawm rau koom ua ke nkag mus rau zlib, cov haujlwm compress, compress2 thiab uncompress tau ntxiv rau lub ntsiav. Cov cai uas ua kom muaj kev ua haujlwm ntawm PPP raws tu qauv los ntawm netgraph subsystem tau raug xa mus rau kev siv qhov system siv zlib, tsis yog nws tus kheej ib tsab ntawm lub tsev qiv ntawv no. Lub kern_ctf.c, opencryptodeflate, geom_uzip, subr_compressor, subsystems kuj tau pauv mus rau zlib tshiab.
      if_mxge, bxe tshiab thiab ng_deflate;

    • Ib qho tshiab kernel interface tab tom tsim sysctlinfo, uas tso cai rau koj los nrhiav cov ntsiab lus hauv sysctl parameter database, ua tiav hauv daim ntawv ntawm MIB (Kev Tswj Xyuas Cov Ntaub Ntawv), thiab hloov cov ntaub ntawv hais txog cov khoom mus rau qhov chaw siv.
  • Kev ruaj ntseg
    • Kernel module tsim mac_ipacl, raws li TrustedBSD MAC Framework thiab siv qhov kev tswj xyuas kev nkag mus rau cov chaw teeb tsa network rau hauv tsev kaw neeg ib puag ncig. Piv txwv li, siv mac_ipacl, tus tswv tsev tswj hwm tuaj yeem tiv thaiv tus neeg siv hauv paus hauv tsev kaw neeg los ntawm kev hloov lossis teeb tsa IP chaw nyob lossis subnet chaw rau qee qhov kev sib txuas hauv network. Npaj yuav tsum nkag mus tswj system nws tso cai rau teeb cov npe ntawm IP chaw nyob thiab subnets tso cai rau Jail, txwv tsis pub kev teeb tsa ntawm qee tus IPs thiab subnets hauv Jail, lossis txwv tsis pub hloov pauv rau qee qhov kev sib txuas hauv network;
    • Intel tau pub dawb software pawg chaw nres nkoj rau qhov project TPM 2.0 (Trusted Platform Module) rau kev cuam tshuam nrog kev ruaj ntseg hauv computer nti, uas feem ntau yog siv rau kev txheeb xyuas qhov chaw thau khoom ntawm firmware thiab OS bootloader. Cov pawg pawg tau nthuav tawm nyob rau hauv daim ntawv ntawm ports kev ruaj ntseg / tpm2-tss, kev ruaj ntseg / tpm2-cov cuab yeej thiab kev ruaj ntseg / tpm2-abrmd. tpm2-tss chaw nres nkoj suav nrog cov tsev qiv ntawv rau kev siv TPM2 API, tpm2-cov cuab yeej muab cov kab lus hais kom ua haujlwm rau kev ua haujlwm TPM, thiab tpm2-abrmd muaj cov txheej txheem keeb kwm yav dhau los ntawm TPM Access Broker thiab Resource Manager Cheebtsam uas multiplexes thov los ntawm cov neeg siv TPM sib txawv. mus rau ib qho khoom siv. Ntxiv nrog rau kev txheeb xyuas cov khau raj ntawm FreeBSD, TPM tuaj yeem siv los txhim kho kev ruaj ntseg ntawm Strongswan IPsec, SSH thiab TLS los ntawm kev ua haujlwm cryptographic ntawm nyias nyias;
    • Lub kernel rau amd64 architecture yog yoog rau khau raj siv W^X (sau XOR tua) cov txheej txheem tiv thaiv, uas txhais tau hais tias cov nplooj ntawv nco tsis tuaj yeem nkag mus rau ib txhij rau kev sau ntawv thiab ua tiav (cov ntsiav tam sim no tuaj yeem thauj khoom siv cov nplooj ntawv cim xeeb uas sau tau. txwv). Txoj kev tiv thaiv kernel tshiab suav nrog hauv HEAD ceg thiab yuav suav nrog FreeBSD 13.0 thiab 12.2 tso tawm;
    • Rau mmap thiab mpprotect system hu ua raws macro PROT_MAX(), uas tso cai rau koj los txiav txim siab txog cov txheej txheem txwv kev nkag tau tso cai rau kev hloov pauv ntxiv (PROT_READ, PROT_WRITE, PROT_EXEC). Siv PROT_MAX(), tus tsim tawm tuaj yeem txwv tsis pub hloov chaw ntawm thaj chaw nco mus rau pawg ua tiav lossis thov nco uas tsis tso cai rau kev tua, tab sis tom qab ntawd tuaj yeem hloov mus ua tiav. Piv txwv li, ib cheeb tsam ntawm lub cim xeeb yuav qhib rau kev sau ntawv nkaus xwb rau lub sijhawm ntawm kev sib txuas dynamic lossis JIT code tiam, tab sis thaum sau tiav, nws raug txwv kom nyeem thiab ua haujlwm nkaus xwb, thiab yav tom ntej, yog tias muaj kev cuam tshuam, tus neeg tawm tsam. yuav tsis muaj peev xwm ua kom sau ntawv rau lub cim xeeb ntawd. Ntxiv rau PROT_MAX(), sysctl vm.imply_prot_max kuj tseem siv tau, uas thaum qhib, txiav txim siab cov chij siv tau raws li qhov pib tsis tau ntawm thawj hu rau mmap;
    • Txhawm rau txhim kho kev tiv thaiv kev siv dag zog ntawm qhov tsis zoo, ntxiv rau qhov chaw nyob qhov chaw randomization txheej txheem (ASLR), ib lub tswv yim rau randomizing cov offsets ntawm pointers hais txog thawj pawg thav duab thiab cov qauv muab tso rau hauv pawg nrog cov ntaub ntawv hais txog ib puag ncig, qhov kev pab cuam tso tawm thiab cov ntaub ntawv. rau executable dluab nyob rau hauv ELF hom yog npaj;
    • Ua haujlwm tau ua kom tshem tawm qhov tsis zoo tau txais kev ua haujlwm los ntawm libc (pib los ntawm C11 tus qauv, qhov haujlwm no tau raug cais tawm ntawm qhov tshwj xeeb) thiab kho cov chaw nres nkoj uas tseem siv cov haujlwm no. Qhov kev hloov pauv tau npaj yuav muab rau hauv FreeBSD 13.0;
    • Ib txoj haujlwm sim tau raug tsim los tsim cov cuab yeej rau orchestrating hauv tsev kaw neeg ib puag ncig raws li lub hauv paus lauj kaub tsim thiab xa tawm cov duab, siv zoo ib yam li Docker, thiab tus tsav tsheb nomad, uas muab ib qho interface rau dynamically launching daim ntawv thov nyob rau hauv ib lub tsev kaw neeg ib puag ncig. Cov qauv npaj tso cai rau peb cais cov txheej txheem ntawm kev tsim cov chaw kaw hauv tsev kaw neeg thiab siv cov ntawv thov hauv lawv. Ib lub hom phiaj ntawm txoj haujlwm yog los muab ib txoj hauv kev los tswj cov tsev kaw neeg li Docker-style ntim;
  • Cia thiab cov ntaub ntawv systems
    • Los ntawm NetBSD mus rau "makefs" utility tsiv FAT file system txhawb nqa (msdosfs). Cov kev hloov pauv tau npaj tso cai rau koj los tsim cov duab FS nrog FAT yam tsis tas siv md tsav tsheb thiab tsis muaj cai hauv paus;
    • Kev rov ua haujlwm ntawm FUSE (File system hauv USErspace) tus tsav tsheb subsystem tau ua tiav, tso cai rau kev tsim cov ntaub ntawv siv hauv qhov chaw siv. Tus neeg tsav tsheb uas tau xa tawm thaum xub thawj muaj ntau yam kab thiab ua raws li FUSE 7.8, uas tau tso tawm 11 xyoo dhau los. Raws li ib feem ntawm qhov kev tsim kho tshiab ntawm tus neeg tsav tsheb, kev txhawb nqa rau FUSE 7.23 raws tu qauv tau raug coj los siv, cov cai rau kev txheeb xyuas cov cai nkag mus rau sab kernel ("-o default_permissions") tau ntxiv, hu rau VOP_MKNOD, VOP_BMAP thiab VOP_ADVLOCK tau ntxiv, cov muaj peev xwm cuam tshuam FUSE kev ua haujlwm tau muab, kev txhawb nqa rau cov kav dej tsis muaj npe thiab cov qhov (socket) unix tau ntxiv rau hauv fusefs, nws tau dhau los siv kqueue rau /dev / fuse, nws tuaj yeem hloov kho qhov tsis sib xws ntawm "mount -u", ntxiv kev txhawb nqa rau kev xa tawm fusefs ntawm NFS, tau siv RLIMIT_FSIZE accounting, ntxiv FOPEN_KEEP_CACHE thiab FUSE_ASYNC_READ chij, ua kom muaj txiaj ntsig zoo thiab txhim kho lub koom haum caching. Tus tsav tsheb tshiab suav nrog hauv lub taub hau thiab ruaj khov / 12 ceg ntoo (suav nrog FreeBSD 12.1);
    • Kev siv NFSv4.2 (RFC-7862) rau FreeBSD yuav luag tiav. Lub hom phiaj tseem ceeb ntawm lub sijhawm tshaj tawm yog nyob rau hauv kev sim. Kev ntsuam xyuas tau ua tiav los txheeb xyuas qhov sib haum nrog Linux kev siv, tab sis kev sim pNFS server nrog NFSv4.2 tseem tab tom ua. Feem ntau, cov cai twb tau txiav txim siab npaj rau kev koom ua ke rau hauv FreeBSD lub taub hau / tam sim no ceg. Tus tshiab version ntawm NFS ntxiv kev txhawb nqa rau posix_fadvise, posix_fallocate functions, SEEKHOLE / SEEKDATA hom hauv lseek, kev ua haujlwm ntawm kev luam hauv zos ntawm qhov chaw ntawm cov ntaub ntawv ntawm lub server (tsis hloov mus rau tus neeg siv khoom);
  • Kev them nyiaj yug kho vajtse
    • Ib qhov project tau tsim los txhim kho kev ua haujlwm ntawm FreeBSD ntawm lub laptops. Thawj cov cuab yeej raug kuaj xyuas rau kev txhawb nqa kho vajtse hauv FreeBSD yog lub cim thib xya Lenovo X1 Carbon laptop;
    • CheriBSD, tus diav rawg ntawm FreeBSD rau kev tshawb fawb processor architecture CHERI (Capability Hardware Enhanced RISC Instructions), kho tshiab los txhawb ARM Morello processor uas yuav los tom ntej, uas yuav txhawb nqa CHERI nco txog kev tswj hwm qhov system raws li Capsicum tsim tus qauv kev ruaj ntseg. Morello chip tab tom npaj tso tawm xyoo 2021. Cov neeg tsim tawm CheriBSD kuj tseem saib xyuas kev txhim kho ntawm CHERI cov qauv siv raws li MIPS architecture;
    • Kev txhawb nqa rau RockChip RK3399 chips siv hauv RockPro64 thiab NanoPC-T4 boards. Qhov kev txhim kho tseem ceeb tshaj plaws yog kev txhawb nqa rau eMMC thiab kev txhim kho tus tsav tsheb tshiab rau eMMC maub los siv rau ntawm lub rooj tsavxwm;
    • Kev ua haujlwm txuas ntxiv siv kev txhawb nqa rau ARM64 SoC Broadcom BCM5871X nrog ARMv8 Cortex-A57 processors, tsom rau kev siv hauv routers, rooj vag thiab network cia. Thaum lub sij hawm tshaj tawm
      iProc PCIe kev txhawb nqa tau nthuav dav thiab muaj peev xwm siv kho vajtse cryptographic ua haujlwm kom ceev IPsec tau ntxiv.
      Code kev koom ua ke rau hauv HEAD ceg yuav tsum nyob rau lub quarter thib plaub;

    • Muaj kev nce qib tseem ceeb hauv kev txhim kho FreeBSD chaw nres nkoj rau lub platform powerpc64. Lub hom phiaj yog los muab kev ua tau zoo ntawm cov tshuab nrog IBM POWER8 thiab POWER9 processors, tab sis xaiv tau txhawb kev ua haujlwm ntawm Apple Power Macs qub, x500 thiab Amiga A1222. Lub hwj chimpc * / 12 ceg txuas ntxiv xa nrog gcc 4.2.1, thiab lub hwj chimpc * / 13 ceg yuav raug tsiv mus rau llvm90 sai sai. Tawm ntawm 33306 chaw nres nkoj, 30514 tau ua tiav tiav;
    • FreeBSD chaw nres nkoj txuas ntxiv mus rau 64-ntsis SoC NXP LS1046A raws li ARMv8 Cortex-A72 processor nrog kev sib koom ua ke network pob khoom ua haujlwm nrawm, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 thiab USB 3.0. Thaum lub sijhawm tshaj tawm, kev txhawb nqa rau USB 3.0, SD / MMC, I2C, DPAA thiab GPIO network interface tau siv. Muaj cov phiaj xwm los txhawb QSPI thiab txhim kho kev ua haujlwm ntawm lub network interface. Kev ua tiav ntawm kev ua haujlwm thiab suav nrog hauv HEAD ceg yuav tsum nyob rau lub quarter thib 4 ntawm 2019;
    • Tus neeg tsav tsheb ena tau hloov kho los txhawb lub tiam thib ob ntawm ENAv2 (Elastic Network Adapter) network adapters siv hauv Elastic Compute Cloud (EC2) infrastructure los npaj kev sib txuas lus ntawm EC2 nodes ntawm speeds txog li 25 Gb / s. NETMAP kev txhawb nqa tau ntxiv thiab sim rau tus tsav tsheb ena, thiab lub cim xeeb layout tau raug kho kom pab LLQ hom hauv Amazon EC2 A1 ib puag ncig;
  • Daim ntawv thov thiab chaw nres nkoj system
    • Hloov kho cov duab kab ke cov khoom thiab xorg cov chaw nres nkoj. Chaw nres nkoj siv USE_XORG thiab XORG_CAT tau tsiv mus rau USES lub moj khaum es tsis txhob hu bsd.xorg.mk ntawm bsd.port.mk. Cov chaw nres nkoj tam sim no suav nrog "USES = xorg" chij hauv lawv cov ntaub ntawv. XORG_CAT kev ua haujlwm tau raug cais tawm ntawm bsd.xorg.mk thiab tam sim no tau qhib los ntawm "USES = xorg-cat" chij. Ntxiv cov cuab yeej rau ncaj qha tsim xorg ports los ntawm git repository
      freedesktop.org, uas, piv txwv li, tso cai rau koj los tsim cov chaw nres nkoj rau tsis tau tso tawm versions. Nyob rau hauv lub neej yav tom ntej, peb npaj yuav npaj cov cuab yeej siv lub meson los ua ke system es tsis txhob autotools los tsim xorg ports.

      Kev ua haujlwm tau ua tiav los ntxuav cov qub xorg cov chaw nres nkoj khi rau cov khoom uas tsis muaj kev txhawb nqa ntxiv lawm, piv txwv li, x11 / libXp chaw nres nkoj tau raug tshem tawm, thiab x11 / Xxf86misc, x11-fonts / libXfontcache thiab cov duab / libGLw cov chaw nres nkoj tau raug tshem tawm. ;

    • Kev ua haujlwm tau ua tiav los txhim kho kev txhawb nqa rau Java 11 thiab tshaj tawm tshiab hauv FreeBSD, nrog rau qhov chaw nres nkoj qee qhov kev hloov pauv rau Java 8 ceg. rau FreeBSD, DTrace, Javac Server, Java Suab thiab SCTP, ua haujlwm hloov mus ua kom ntseeg tau tias tag nrho cov kev xeem sib raug tau dhau los. Tus naj npawb ntawm kev ua tsis tiav thaum dhau qhov kev xeem tau raug txo los ntawm 11 mus rau 50;
    • KDE Plasma desktop, KDE Frameworks, KDE Applications thiab Qt tau khaws cia rau hnub tim thiab hloov kho mus rau qhov tshiab tshaj tawm;
    • Ports nrog Xfce desktop hloov tshiab tso tawm 4.14;
    • FreeBSD cov chaw nres nkoj ntoo tau dhau 38000 qhov chaw nres nkoj, tus naj npawb ntawm PRs tsis tau kaw yog me ntsis ntau dua 2000, ntawm 400 PRs tseem tsis tau daws. Thaum lub sijhawm tshaj tawm, 7340 hloov pauv tau ua los ntawm 169 tus tsim tawm. Ob tus neeg koom tshiab (Santhosh Raju thiab Dmitri Goutnik) tau txais txoj cai ua haujlwm. Kev tso tawm tshiab ntawm pkg 1.12 tus thawj tswj pob tau raug luam tawm, nrog kev txhawb nqa rau overlays hauv cov chaw nres nkoj ntoo thiab tu ntawm bsd.sites.mk. Ntawm cov kev hloov tshiab tseem ceeb hauv cov chaw nres nkoj yog: 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;
    • Kev tsim kho qhov project txuas ntxiv mus ClonOS, txhim kho ib tug tshwj xeeb tis rau deploying virtual server infrastructure. Hais txog cov dej num nws daws tau, ClonOS zoo ib yam li cov tshuab xws li Proxmox, Triton (Joyent), OpenStack, OpenNebula thiab Amazon AWS, qhov txawv ntawm qhov uas yog siv FreeBSD thiab muaj peev xwm tswj hwm, xa thiab tswj FreeBSD Jail ntim thiab virtual ib puag ncig raws li Bhyve thiab Xen hypervisors . Cov kev hloov pauv tsis ntev los no suav nrog kev txhawb nqa
      huab-init rau Linux / BSD VM thiab cloudbase-init rau Windows VM, pib hloov mus rau kev siv cov duab ib txwm muaj, siv Jenkins CI rau kev sim tsim thiab pkg repository tshiab rau kev teeb tsa
      ClonOS los ntawm pob khoom.

Tau qhov twg los: opennet.ru

Ntxiv ib saib