FreeBSD Development Report rau thawj peb lub hlis twg ntawm 2020

luam tawm qhia txog kev txhim kho ntawm FreeBSD qhov project txij lub Ib Hlis mus txog Lub Peb Hlis 2020. Ntawm cov kev hloov pauv peb tuaj yeem nco ntsoov:

  • General thiab systemic teeb meem
    • Tshem tawm GCC compiler teeb los ntawm FreeBSD-CURRENT qhov chaw ntoo, nrog rau cov khoom siv tsis siv gperf, gcov thiab gtc (devicetree compiler) cov khoom siv. Txhua lub platform uas tsis txhawb nqa Clang tau hloov mus rau kev siv cov cuab yeej tsim sab nraud tau nruab los ntawm cov chaw nres nkoj. Lub hauv paus system xa tawm qhov kev tso tawm tsis tu ncua ntawm GCC 4.2.1, thiab kev sib koom ua ke ntawm cov ntawv tshiab tsis tuaj yeem ua tau vim qhov kev hloov ntawm 4.2.2 mus rau GPLv3 daim ntawv tso cai, uas tau pom tias tsis tsim nyog rau FreeBSD cov khoom hauv paus. Kev tshaj tawm tam sim no ntawm GCC, suav nrog GCC 9, tseem tuaj yeem ntsia tau los ntawm cov pob thiab cov chaw nres nkoj.
    • Linux ib puag ncig emulation infrastructure (Linuxulator) tau ntxiv kev txhawb nqa rau sendfile system hu, TCP_CORK hom (yuav tsum tau rau nginx), thiab tus chij MAP_32BIT ( daws qhov teeb meem nrog launching pob nrog Mono los ntawm Ubuntu Bionic). Teeb meem nrog DNS daws teeb meem thaum siv glibc tshiab dua 2.30 (piv txwv li los ntawm CentOS 8) tau raug daws.
      Kev sib koom ua ke txuas mus ntxiv muab lub peev xwm los khiav LTP (Linux Testing Project) txoj haujlwm khiav Linuxulator los sim txhim kho cov cai los txhawb Linux. Txog 400 qhov kev sim ua tsis tiav thiab yuav tsum tau kho (qee qhov yuam kev yog tshwm sim los ntawm qhov tsis zoo, qee qhov yuav tsum tau kho tsis tseem ceeb, tab sis muaj lwm tus uas xav tau ntxiv kev txhawb nqa rau kev hu xov tooj tshiab los kho). Ua haujlwm tau ua tiav los ntxuav Linuxulator code thiab ua kom yooj yim debugging. Patches nrog kev txhawb nqa rau cov yam ntxwv txuas ntxiv thiab fexecve system hu tau raug npaj, tab sis tseem tsis tau tshuaj xyuas.

    • Cov 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 txuas ntxiv. Ib daim ntawv tshaj tawm nrog cov lus pom zoo rau kev tsiv teb tsaws yog nyob rau hauv tus txheej txheem ntawm kev npaj.
    • Π’ rtld ua (runtime linker) txhim kho kev ua haujlwm ncaj qha (β€œ/libexec/ld-elf.so.1 {path} {arguments}”).
    • Qhov project rau fuzzing kev sim ntawm FreeBSD ntsiav siv lub syzkaller system txuas ntxiv txhim kho. Thaum lub sijhawm tshaj tawm, cov teeb meem hauv lub network pawg thiab cov cai rau kev ua haujlwm nrog cov ntaub ntawv piav qhia cov lus qhia siv syzkaller raug tshem tawm. Tom qab kuaj pom qhov yuam kev, cov kev hloov pauv tau ntxiv rau pawg SCTP kom ua kom debugging yooj yim dua. Cov cai tau muab ntxiv rau qhov kev ntxhov siab2 teev los txheeb xyuas qhov muaj peev xwm rov ua tau. Ntxiv kev txhawb nqa rau kev sim fuzz ntawm kev hu xov tooj tshiab, suav nrog copy_file_range(), __realpathat() thiab Capsicum subsystem hu. Ua haujlwm txuas ntxiv los npog cov txheej txheem Linux emulation nrog fuzz kuaj. Peb tau txheeb xyuas thiab tshem tawm qhov yuam kev uas tau sau tseg hauv cov ntawv tshaj tawm Coverity Scan tshiab.
    • Qhov kev sib koom ua ke txuas ntxiv tau hloov mus rau kev ua tiav tag nrho cov kev ntsuam xyuas lub taub hau tsuas yog siv clang / lld. Thaum kuaj rau RISC-V, tsim kom tiav daim duab disk tau ua tiav rau kev sim ua haujlwm hauv QEMU siv OpenSBI. Ntxiv cov haujlwm tshiab rau kev sim cov duab thiab powerpc64 virtual machines (FreeBSD-head-powerpc64-dluab, FreeBSD-head-powerpc64-testvm).
    • Kev ua haujlwm tab tom hloov pauv Kyua xeem suite los ntawm cov chaw nres nkoj (devel / kyua) mus rau lub hauv paus system los daws cov teeb meem (pob khoom tau teeb tsa qeeb heev) uas tshwm sim thaum siv Kyua ntawm cov qauv tshiab, kev txhim kho uas tau ua los ntawm kev siv lub emulator lossis FPGA. Kev koom ua ke rau hauv lub hauv paus system yuav ua kom yooj yim rau kev sim ntawm embedded platforms thiab interface nrog kev sib koom ua ke txuas ntxiv.
    • Ib qhov project tau raug tsim los ua kom zoo dua qhov kev ua tau zoo ntawm tus neeg tsav tsheb network choj if_ choj, uas siv ib qho mutex los xauv cov ntaub ntawv sab hauv, uas tsis tso cai rau kev ua tiav qhov kev xav tau ntawm cov tshuab nrog ntau lub tsev kaw neeg ib puag ncig lossis cov tshuab virtual koom ua ke hauv ib lub network. Nyob rau theem no, cov kev ntsuam xyuas tau muab ntxiv rau hauv cov cai los tiv thaiv kev rov qab los ntawm kev tshwm sim thaum lub sijhawm ua haujlwm tshiab ntawm kev ua haujlwm nrog cov xauv. Qhov muaj peev xwm ntawm kev siv ConcurrencyKit los sib piv cov ntaub ntawv hloov chaw tuav (bridge_input(), bridge_output(), bridge_forward(), ...) raug txiav txim siab.
    • Ntxiv ib qho tshiab sigfastblock system hu kom tso cai rau cov xov los qhia txog qhov thaiv ntawm lub cim xeeb rau lub teeb liab ceev ceev kom txhim kho kev ua tau zoo ntawm cov neeg ua haujlwm tshwj xeeb.
    • Lub kernel ntxiv kev txhawb nqa rau LSE (Large System Extension) atomic cov lus qhia txhawb nqa los ntawm ARMv8.1 systems. Cov lus qhia no yuav tsum tau txhim kho kev ua tau zoo thaum khiav ntawm Cavium ThunderX2 thiab AWS Graviton 2 boards. Thaum lub sij hawm sim, kev siv LSE ua rau nws muaj peev xwm txo tau lub sij hawm processor siv thaum sib sau cov kernel los ntawm 15%.
    • Kev ua tau zoo ntawm kev ua tau zoo tau ua tiav thiab kev ua haujlwm ntawm cov cuab yeej tau nthuav dav rau cov ntaub ntawv ua tiav hauv ELF hom.
      Ntxiv kev txhawb nqa rau caching DWARF debugging cov ntaub ntawv, daws teeb meem hauv elfcopy/objcopy utilities, ntxiv DW_AT_ranges ua,
      readelf siv lub peev xwm los txiav txim siab PROTMAX_DISABLE, STKGAP_DISABLE thiab WXNEEDED chij, nrog rau Xen thiab GNU Build-ID.

  • Kev ruaj ntseg
    • Txhawm rau txhim kho kev ua tau zoo ntawm FreeBSD hauv Azure huab ib puag ncig, kev ua haujlwm tab tom muab kev txhawb nqa rau HyperV Socket mechanism, uas tso cai rau kev siv lub qhov (socket interface) rau kev sib cuam tshuam ntawm cov qhua thiab cov chaw ib puag ncig yam tsis tau teeb tsa lub network.
    • Kev ua haujlwm tab tom pib los muab kev tsim rov ua dua ntawm FreeBSD, ua kom nws muaj peev xwm los xyuas kom meej tias cov ntaub ntawv ua tiav ntawm cov txheej txheem system tau muab tso ua ke raws nraim los ntawm cov lej tshaj tawm thiab tsis muaj kev hloov pauv ntxiv.
    • Lub peev xwm los tswj kev suav nrog cov txheej txheem kev tiv thaiv ntxiv (ASLR, PROT_MAX, pawg sib txawv, W + X mapping) ntawm qib ntawm cov txheej txheem ntawm tus kheej tau ntxiv rau cov khoom siv elfctl
  • Cia thiab cov ntaub ntawv systems
    • Kev ua haujlwm tab tom pib siv lub peev xwm rau NFS ua haujlwm dhau ntawm kev sib txuas lus encrypted raws li TLS 1.3, es tsis txhob siv Kerberos (sec = krb5p hom), uas yog txwv rau encrypting nkaus xwb RPC cov lus thiab tsuas yog siv hauv software. Qhov kev siv tshiab no siv cov kernel-muab TLS pawg los pab kom kho vajtse acceleration. NFS dhau TLS code yog yuav luag npaj rau kev sim, tab sis tseem yuav tsum tau ua haujlwm los txhawb cov neeg siv khoom kos npe daim ntawv pov thawj thiab hloov cov kernel TLS pawg xa NFS cov ntaub ntawv ( thaj ua rau kom tau txais twb tau npaj lawm).
  • Kev them nyiaj yug kho vajtse
    • Kev ua haujlwm tab tom pib ntxiv kev txhawb nqa rau Suav x86 CPU Hygon raws li AMD thev naus laus zis;
    • Raws li ib feem ntawm CheriBSD, lub diav rawg ntawm FreeBSD rau kev tshawb fawb processor architecture CHERI (Capability Hardware Enhanced RISC Instructions), kev txhawb nqa rau ARM Morello processor txuas ntxiv mus, uas yuav txhawb nqa CHERI nco nkag mus tswj qhov system raws li Capsicum project kev ruaj ntseg qauv. Morello chip tab tom npaj tso tawm xyoo 2021. Kev ua haujlwm tam sim no tsom mus ntxiv kev txhawb nqa rau Arm Neoverse N1 platform uas muaj zog rau Morello. Thawj qhov chaw nres nkoj ntawm CheriBSD rau RISC-V architecture tau nthuav tawm. CheriBSD kev txhim kho txuas ntxiv rau CHERI cov qauv siv raws li MIPS64 architecture.
    • 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. Tam sim no, cov tsav tsheb QorIQ thiab LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI tab tom npaj rau kev hloov mus rau lub ntsiab FreeBSD muaj pes tsawg leeg.
    • Tus tsav tsheb ena tau hloov kho rau version 2.1.1 nrog kev txhawb nqa rau tiam thib ob ntawm ENAv2 (Elastic Network Adapter) network adapters siv nyob rau hauv Elastic Compute Cloud (EC2) infrastructure los npaj kev sib txuas lus ntawm EC2 nodes ntawm speeds txog li 25 Gb / s. Kev hloov tshiab rau ENA 2.2.0 tab tom npaj.
    • Kev txhim kho rau FreeBSD chaw nres nkoj rau lub platform powerpc64 txuas ntxiv mus. Lub hom phiaj yog los muab kev ua tau zoo ntawm cov tshuab nrog IBM POWER8 thiab POWER9 processors. Thaum lub sijhawm tshaj tawm, FreeBSD-CURRENT tau pauv mus siv LLVM/Clang 10.0 compiler thiab lld linker es tsis txhob GCC. Los ntawm lub neej ntawd, powerpc64 systems siv ELFv2 ABI thiab kev txhawb nqa rau ELFv1 ABI tau raug txiav lawm. FreeBSD-STABLE tseem muaj gcc 4.2.1. Cov teeb meem nrog virtio, aacraid thiab ixl tsav tsheb tau raug daws. Ntawm powerpc64 systems nws muaj peev xwm khiav QEMU yam tsis muaj nplooj ntawv loj txhawb nqa.
    • Kev ua haujlwm txuas ntxiv siv kev txhawb nqa rau RISC-V architecture. Hauv nws daim ntawv tam sim no, FreeBSD twb tau khau raj ua tiav ntawm SiFive Hifive Unleashed board, rau cov tsav tsheb tau npaj.
      UART, SPI thiab PRCI, txhawb nqa OpenSBI thiab SBI 0.2 firmware. Thaum lub sijhawm tshaj tawm, kev ua haujlwm tau tsom mus rau kev tsiv teb tsaws chaw los ntawm GCC mus rau clang thiab lld.

  • Daim ntawv thov thiab chaw nres nkoj system
    • Lub FreeBSD cov chaw nres nkoj sau tau hla qhov pib ntawm 39 txhiab qhov chaw nres nkoj, tus naj npawb ntawm cov PRs tsis tau kaw me ntsis tshaj 2400, ntawm 640 PRs tseem tsis tau txheeb. Thaum lub sijhawm tshaj tawm, 8146 kev hloov pauv tau ua los ntawm 173 tus tsim tawm. Plaub tus neeg koom tshiab tau txais cov cai lij choj (LoΓ―c Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Ntxiv USES = qca chij thiab tshem tawm USES = zope chij (vim incompatibility nrog Python 3). Kev ua haujlwm tab tom ua kom tshem Python 2.7 los ntawm cov chaw nres nkoj ntoo - txhua qhov chaw nres nkoj Python 2 yuav tsum raug xa mus rau Python 3 lossis yuav raug tshem tawm. Tus thawj tswj pob pkg tau hloov kho kom tso tawm 1.13.2.
    • Hloov kho cov duab kab ke cov khoom thiab xorg cov chaw nres nkoj.
      X.org tus neeg rau zaub mov tau hloov kho rau version 1.20.8 (yav dhau los xa tawm ntawm 1.18 ceg), uas tau tso cai rau FreeBSD ua ntej siv udev / evdev backend rau tuav cov khoom siv nkag. Lub pob Mesa tau hloov mus siv DRI3 txuas ntxiv hloov DRI2 los ntawm lub neej ntawd. Kev ua haujlwm tseem tab tom ua kom khaws cov duab tsav tsheb, cov khoom siv nkag thiab cov khoom siv drm-kmod (chaw nres nkoj uas tso cai rau kev ua haujlwm ntawm amdgpu, i915 thiab radeon DRM modules, siv lub linuxkpi lub moj khaum rau kev sib raug zoo nrog Direct Rendering Manager ntawm Linux kernel) mus txog hnub.

    • KDE Plasma desktop, KDE Frameworks, KDE Applications thiab Qt tau khaws cia rau hnub tim thiab hloov kho mus rau qhov tshiab tshaj tawm. Ib daim ntawv thov tshiab kstars (lub hnub qub atlas) tau ntxiv rau cov chaw nres nkoj.
    • Ua haujlwm tau ua kom tshem tawm cov kev hloov pauv hloov hauv xfwm4 qhov rais tus thawj coj uas tshwm sim tom qab hloov kho Xfce rau version 4.14 (piv txwv li, cov khoom cuav tshwm sim thaum kho qhov rais).
    • Wine chaw nres nkoj tau hloov kho kom tso Wine 5.0 (yav dhau los 4.0.3 tau muab).
    • Pib nrog version 1.14, Go lus compiler ntxiv kev txhawb nqa rau ARM64 architecture rau FreeBSD 12.0.
    • OpenSSH ntawm lub hauv paus system tau hloov kho kom tso tawm 7.9p1.
    • Lub tsev qiv ntawv sysctlmibinfo2 tau siv thiab muab tso rau hauv cov chaw nres nkoj (devel / libsysctlmibinfo2), muab API rau kev nkag mus rau sysctl MIB thiab txhais cov npe sysctl rau hauv cov khoom cim (OIDs).
    • Ib qho kev faib hloov tshiab tau tsim tawm NomadBSD 1.3.1, uas yog ib tsab ntawm FreeBSD yoog rau kev siv los ua lub khoos phis tawj portable bootable los ntawm USB drive. graphical ib puag ncig yog raws li tus neeg saib xyuas qhov rais Openbox. Siv rau mounting drives DSBMD (mounting CD9660, FAT, HFS+, NTFS, Ext2/3/4 tau txais kev txhawb nqa), txhawm rau teeb tsa lub wireless network - wifimgr, thiab tswj lub ntim - DSBMixer.
    • Pib txoj hauj lwm ntawm kev sau cov ntaub ntawv ua tiav rau tus neeg saib xyuas ib puag ncig hauv tsev kaw neeg lauj kaub. Lub lauj kaub 0.11.0 tab tom npaj rau kev tso tawm, uas yuav suav nrog cov cuab yeej los tswj cov pawg network.

Tau qhov twg los: opennet.ru

Ntxiv ib saib