FreeBSD Development Report Q2020 XNUMX

gipatik report bahin sa pag-uswag sa proyekto sa FreeBSD gikan sa Enero hangtod Marso 2020. Lakip sa mga pagbag-o nga atong mamatikdan:

  • Kinatibuk-ang ug sistematikong mga isyu
    • Gikuha ang GCC compiler set gikan sa FreeBSD-CURRENT source tree, ingon man ang wala magamit nga gperf, gcov ug gtc (devicetree compiler) utilities. Ang tanan nga mga plataporma nga wala nagsuporta sa Clang gibalhin sa paggamit sa gawas nga mga himan sa pagtukod nga gi-install gikan sa mga pantalan. Ang base nga sistema nagpadala sa usa ka outdated release sa GCC 4.2.1, ug integration sa mas bag-ong mga bersyon dili mahimo tungod sa transisyon sa 4.2.2 ngadto sa GPLv3 lisensya, nga giisip nga dili angay alang sa FreeBSD base component. Ang mga karon nga pagpagawas sa GCC, lakip ang GCC 9, mahimo pa nga ma-install gikan sa mga pakete ug pantalan.
    • Ang Linux environment emulation infrastructure (Linuxulator) midugang og suporta para sa sendfile system call, TCP_CORK mode (gikinahanglan para sa nginx), ug ang MAP_32BIT nga bandila (pagsulbad sa problema sa paglansad sa mga pakete sa Mono gikan sa Ubuntu Bionic). Ang mga problema sa resolusyon sa DNS kung gigamit ang glibc nga mas bag-o kaysa 2.30 (pananglitan gikan sa CentOS 8) nasulbad na.
      Ang padayon nga integrasyon nga imprastraktura naghatag ug katakus sa pagpadagan sa mga trabaho sa LTP (Linux Testing Project) nga nagpadagan sa Linuxulator aron sulayan ang mga pagpaayo nga gihimo sa code aron suportahan ang Linux. Mga 400 ka mga pagsulay ang napakyas ug nanginahanglan pag-ayo (ang pipila ka mga sayup gipahinabo sa mga sayup nga positibo, ang uban nanginahanglan dili hinungdanon nga pag-ayo, apan adunay uban nga nanginahanglan pagdugang suporta alang sa bag-ong mga tawag sa sistema aron ayohon). Gihimo ang trabaho aron limpyohan ang Linuxulator code ug pasimplehon ang pag-debug. Ang mga patch nga adunay suporta alang sa gipalawig nga mga hiyas ug ang tawag sa sistema sa fexecve giandam na, apan wala pa gisusi.

    • Ang mga miting sa nagtrabaho nga grupo nga gihimo aron ipatuman ang paglalin sa mga source code gikan sa sentralisadong source control system Subversion ngadto sa desentralisadong sistema Git nagpadayon. Ang usa ka taho nga adunay mga sugyot alang sa paglalin anaa sa proseso sa pag-andam.
    • В rtld (runtime linker) mipauswag sa direktang execution mode (“/libexec/ld-elf.so.1 {path} {arguments}”).
    • Ang proyekto alang sa fuzzing testing sa FreeBSD kernel gamit ang syzkaller system nagpadayon sa pag-uswag. Atol sa panahon sa pagreport, ang mga problema sa network stack ug code alang sa pagtrabaho sa mga file descriptor nga mga lamesa nga giila gamit ang syzkaller giwagtang. Pagkahuman sa pagdayagnos sa sayup, ang mga pagbag-o gidugang sa stack sa SCTP aron mapadali ang pag-debug. Gidugang ang mga lagda sa set sa stress2 aron mahibal-an ang posible nga mga pagbag-o. Gidugang nga suporta alang sa fuzz testing sa bag-ong sistema sa mga tawag, lakip ang copy_file_range(), __realpathat() ug Capsicum subsystem nga mga tawag. Ang trabaho nagpadayon sa pagtabon sa Linux emulation layer nga adunay fuzz testing. Among gianalisa ug giwagtang ang mga sayop nga nakita sa pinakaulahing Coverity Scan nga mga taho.
    • Ang padayon nga sistema sa panagsama mibalhin sa pagpatuman sa tanan nga mga pagsulay sa sanga sa ulo gamit lamang ang clang/lld. Kung gisulayan ang RISC-V, ang pagporma sa usa ka kompleto nga imahe sa disk gisiguro alang sa pagpadagan sa mga pagsulay sa QEMU gamit ang OpenSBI. Gidugang bag-ong mga buluhaton alang sa pagsulay sa mga imahe ug powerpc64 virtual machine (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Gisugdan ang pagtrabaho aron ibalhin ang Kyua test suite gikan sa mga pantalan (devel/kyua) ngadto sa base system aron masulbad ang mga problema (hinay-hinay nga gi-install ang mga pakete) nga mitungha kung gigamit ang Kyua sa bag-ong mga arkitektura, ang pag-uswag nga gihimo gamit ang usa ka emulator o FPGA. Ang pag-integrate sa base nga sistema makapasimple sa pagsulay sa mga naka-embed nga platform ug interface nga adunay padayon nga sistema sa panagsama.
    • Usa ka proyekto ang gilusad aron ma-optimize ang performance sa network bridge driver if_bridge, nga naggamit sa usa ka mutex sa pag-lock sa internal nga datos, nga wala magtugot sa pagkab-ot sa gitinguha nga performance sa mga sistema nga adunay daghang gidaghanon sa mga jail environment o virtual machine nga nahiusa sa usa ka network. Sa kini nga yugto, ang mga pagsulay gidugang sa code aron mapugngan ang mga pagbag-o nga mahitabo sa panahon sa modernisasyon sa pagtrabaho sa mga kandado. Ang posibilidad sa paggamit sa ConcurrencyKit aron iparehas ang mga tigdumala sa pagbalhin sa datos (bridge_input(), bridge_output(), bridge_forward(),...) kay gikonsiderar.
    • Gidugang ang usa ka bag-ong tawag sa sistema sa sigfastblock aron tugotan ang usa ka hilo sa pagtino sa usa ka bloke sa memorya alang sa usa ka paspas nga tigdumala sa signal aron mapauswag ang pasundayag sa mga tigdumala sa eksepsiyon.
    • Ang kernel midugang og suporta para sa LSE (Large System Extension) atomic instructions nga gisuportahan sa ARMv8.1 system. Kini nga mga instruksyon gikinahanglan aron mapalambo ang pasundayag kung nagdagan sa Cavium ThunderX2 ug AWS Graviton 2 nga mga tabla. Ang dugang nga mga pagbag-o nakamatikod sa suporta sa LSE ug dinamikong makahimo sa atomic nga pagpatuman base niini. Atol sa pagsulay, ang paggamit sa LSE nagpaposible sa pagpakunhod sa oras sa processor nga gigugol sa pag-assemble sa kernel sa 15%.
    • Ang pag-optimize sa performance nahimo na ug ang gamit sa toolkit gipalapdan para sa mga executable nga file sa ELF format.
      Gidugang nga suporta alang sa pag-cache sa DWARF debugging nga impormasyon, pagsulbad sa mga problema sa elfcopy/objcopy utilities, dugang DW_AT_ranges processing,
      Ang readelf nagpatuman sa abilidad sa pag-decode sa PROTMAX_DISABLE, STKGAP_DISABLE ug WXNEEDED nga mga bandera, ingon man Xen ug GNU Build-ID.

  • Kasegurohan
    • Aron mapauswag ang pasundayag sa FreeBSD sa Azure cloud environment, gisugdan ang pagtrabaho aron mahatagan suporta ang mekanismo sa HyperV Socket, nga nagtugot sa paggamit sa usa ka socket interface alang sa interaksyon tali sa guest system ug sa host environment nga wala mag-set up sa usa ka network.
    • Nagpadayon ang trabaho aron mahatagan ang mga gibalikbalik nga pagtukod sa FreeBSD, nga nagpaposible nga masiguro nga ang mga ma-executable nga mga file sa mga sangkap sa sistema gitipon nga eksakto gikan sa gideklarar nga mga source code ug wala’y sulod nga mga pagbag-o.
    • Ang abilidad sa pagkontrolar sa paglakip sa dugang nga mekanismo sa pagpanalipod (ASLR, PROT_MAX, stack gap, W+X mapping) sa lebel sa indibidwal nga mga proseso gidugang sa elfctl utility
  • Pagtipig ug mga sistema sa file
    • Gisugdan ang pagtrabaho aron ipatuman ang abilidad sa NFS nga mag-operate sa usa ka naka-encrypt nga channel sa komunikasyon nga gibase sa TLS 1.3, imbes nga gamiton ang Kerberos (sec=krb5p mode), nga limitado sa pag-encrypt lamang sa mga mensahe sa RPC ug gipatuman lamang sa software. Ang bag-ong implementasyon naggamit sa kernel-provided TLS stack aron makahimo sa hardware acceleration. Ang NFS sa TLS code hapit na andam alang sa pagsulay, apan nanginahanglan gihapon og trabaho aron suportahan ang gipirmahan nga mga sertipiko sa kliyente ug ipahiangay ang kernel TLS stack aron ipadala ang datos sa NFS (andam na ang mga patch alang sa pagdawat).
  • Suporta sa hardware
    • Nagpadayon ang trabaho aron makadugang suporta alang sa Chinese x86 CPU Hygon base sa mga teknolohiya sa AMD;
    • Isip kabahin sa CheriBSD, usa ka fork sa FreeBSD alang sa research processor architecture CHERI (Capability Hardware Enhanced RISC Instructions), ang suporta alang sa ARM Morello processor padayon nga gipatuman, nga mosuporta sa CHERI memory access control system base sa Capsicum project security model. Morello nga chip nagplano release sa 2021. Ang trabaho karon naka-focus sa pagdugang suporta alang sa Arm Neoverse N1 nga plataporma nga naghatag gahum sa Morello. Usa ka inisyal nga pantalan sa CheriBSD alang sa RISC-V nga arkitektura gipresentar. Ang pag-uswag sa CheriBSD nagpadayon alang sa CHERI reference prototype base sa MIPS64 nga arkitektura.
    • Ang FreeBSD porting nagpadayon para sa 64-bit SoC NXP LS1046A base sa ARMv8 Cortex-A72 processor nga adunay integrated network packet processing acceleration engine, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 ug USB 3.0. Sa pagkakaron, ang mga drayber nga QorIQ ug LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI giandam alang sa pagbalhin ngadto sa nag-unang komposisyon sa FreeBSD.
    • Ang drayber sa ena gi-update sa bersyon 2.1.1 nga adunay suporta alang sa ikaduhang henerasyon sa ENAv2 (Elastic Network Adapter) nga mga adapter sa network nga gigamit sa imprastraktura sa Elastic Compute Cloud (EC2) aron maorganisar ang komunikasyon tali sa mga EC2 node sa katulin nga hangtod sa 25 Gb/ s. Usa ka update sa ENA 2.2.0 ang giandam.
    • Ang mga pagpaayo sa FreeBSD nga pantalan alang sa powerpc64 nga plataporma nagpadayon. Ang focus mao ang paghatag og kalidad nga performance sa mga sistema nga adunay IBM POWER8 ug POWER9 processors. Sa panahon sa pagreport, ang FreeBSD-CURRENT gibalhin aron gamiton ang LLVM/Clang 10.0 compiler ug lld linker imbes nga GCC. Sa kasagaran, ang mga sistema sa powerpc64 naggamit sa ELFv2 ABI ug ang suporta alang sa ELFv1 ABI gihunong na. Ang FreeBSD-STABLE aduna gihapon gcc 4.2.1. Nasulbad na ang mga problema sa virtio, aacraid ug ixl drivers. Sa mga sistema sa powerpc64 posible nga modagan ang QEMU nga wala’y suporta sa Daghang Pahina.
    • Ang trabaho nagpadayon sa pagpatuman sa suporta alang sa RISC-V nga arkitektura. Sa kasamtangan nga porma niini, ang FreeBSD malampuson nga nag-boot sa SiFive Hifive Unleashed board, diin ang mga drayber giandam na.
      Ang UART, SPI ug PRCI, nagsuporta sa OpenSBI ug SBI 0.2 firmware. Sa panahon sa pagreport, ang trabaho naka-focus sa paglalin gikan sa GCC ngadto sa clang ug lld.

  • Mga aplikasyon ug sistema sa pantalan
    • Ang koleksyon sa mga pantalan sa FreeBSD milapas sa threshold sa 39 ka libo nga mga pantalan, ang gidaghanon sa mga wala masira nga PRs gamay nga milapas sa 2400, diin ang 640 ka PRs wala pa maihap. Sa panahon sa pagreport, 8146 nga mga pagbag-o ang nahimo gikan sa 173 nga mga developer. Upat ka bag-ong mga partisipante nakadawat mga katungod sa committer (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Gidugang USES=qca flag ug gitangtang USES=zope flag (tungod sa incompatibility sa Python 3). Nagpadayon ang trabaho aron tangtangon ang Python 2.7 gikan sa punoan sa pantalan - ang tanan nga mga pantalan nga nakabase sa Python 2 kinahanglan i-port sa Python 3 o tangtangon. Ang pkg package manager gi-update aron buhian ang 1.13.2.
    • Gi-update nga mga sangkap sa stack sa graphic ug mga pantalan nga may kalabotan sa xorg.
      Ang X.org server gi-update sa bersyon 1.20.8 (kaniadto gipadala sa 1.18 nga sanga), nga nagtugot sa FreeBSD sa paggamit sa udev/evdev backend alang sa pagdumala sa mga input device. Ang pakete sa Mesa gibalhin aron gamiton ang extension sa DRI3 imbes nga DRI2 pinaagi sa default. Nagpadayon ang trabaho aron mapadayon ang mga driver sa graphic, input device stack, ug drm-kmod nga mga sangkap (usa ka pantalan nga makapahimo sa operasyon sa mga module sa amdgpu, i915 ug radeon DRM, gamit ang linuxkpi framework alang sa pagkaangay sa Direct Rendering Manager sa Linux kernel) hangtod karon.

    • Ang KDE Plasma desktop, KDE Frameworks, KDE Applications ug Qt gipadayon nga updated ug updated sa pinakabag-o nga mga release. Usa ka bag-ong aplikasyon nga kstars (star atlas) ang gidugang sa mga pantalan.
    • Gihimo ang trabaho aron mawagtang ang mga pagbag-o nga pagbag-o sa manager sa bintana sa xfwm4 nga nagpakita pagkahuman gi-update ang Xfce sa bersyon 4.14 (pananglitan, ang mga artifact nagpakita kung nagdekorasyon sa mga bintana).
    • Ang Wine port gi-update aron buhian ang Wine 5.0 (kaniadto 4.0.3 ang gitanyag).
    • Sugod sa bersyon 1.14, ang Go language compiler nagdugang opisyal nga suporta para sa ARM64 nga arkitektura para sa FreeBSD 12.0.
    • Ang OpenSSH sa base nga sistema gi-update aron buhian ang 7.9p1.
    • Ang sysctlmibinfo2 library kay gipatuman ug gibutang sa mga pantalan (devel/libsysctlmibinfo2), naghatag ug API para sa pag-access sa sysctl MIB ug paghubad sa mga ngalan sa sysctl ngadto sa mga object identifiers (OIDs).
    • Nahimo ang usa ka update sa pag-apod-apod NomadBSD 1.3.1, nga usa ka edisyon sa FreeBSD nga gipahaom para gamiton isip portable desktop bootable gikan sa USB drive. Ang graphical nga palibot gibase sa usa ka window manager Openbox. Gigamit alang sa pag-mount drive DSBMD (gisuportahan ang CD9660, FAT, HFS+, NTFS, Ext2/3/4), aron ma-configure ang wireless network - wifimgr, ug aron makontrol ang volume - DSBMixer.
    • Nagsugod buhat sa pagsulat sa kompleto nga dokumentasyon para sa tagdumala sa palibot sa bilanggoan kaang. Ang Pot 0.11.0 giandam alang sa pagpagawas, nga maglakip sa mga himan alang sa pagdumala sa network stack.

Source: opennet.ru

Idugang sa usa ka comment