Laporan Pangwangunan FreeBSD pikeun kuartal kahiji 2020

diterbitkeun laporan ngeunaan pamekaran proyék FreeBSD ti Januari nepi ka Maret 2020. Di antara parobahan urang tiasa dicatet:

  • Masalah umum sareng sistemik
    • Dipiceun set kompiler GCC tina tangkal sumber FreeBSD-CURRENT, kitu ogé utilitas gperf, gcov sareng gtc (devicetree compiler) anu henteu kapake. Sadaya platform anu henteu ngadukung Clang parantos dialihkeun ngagunakeun alat ngawangun éksternal anu dipasang ti palabuhan. Sistem dasar ngirimkeun sékrési GCC 4.2.1 anu luntur, sareng integrasi versi anu langkung énggal henteu mungkin kusabab transisi 4.2.2 kana lisénsi GPLv3, anu dianggap henteu pantes pikeun komponén dasar FreeBSD. Kaluaran GCC ayeuna, kalebet GCC 9, masih tiasa dipasang tina bungkusan sareng palabuhan.
    • Infrastruktur émulasi lingkungan Linux (Linuxulator) parantos nambihan dukungan pikeun telepon sistem sendfile, mode TCP_CORK (diperlukeun pikeun nginx), sareng bandéra MAP_32BIT (ngarengsekeun masalah sareng ngaluncurkeun bungkusan sareng Mono ti Ubuntu Bionic). Masalah sareng résolusi DNS nalika nganggo glibc langkung énggal ti 2.30 (contona ti CentOS 8) parantos direngsekeun.
      Infrastruktur integrasi kontinyu nyadiakeun kamampuhan pikeun ngajalankeun LTP (Linux Testing Project) jobs ngajalankeun Linuxulator pikeun nguji perbaikan dijieun pikeun kode pikeun ngarojong Linux Ubuntu. Sakitar 400 tés gagal sareng peryogi ngalereskeun (sababaraha kasalahan disababkeun ku positip palsu, sababaraha peryogi perbaikan anu sepele, tapi aya ogé anu peryogi tambihan dukungan pikeun telepon sistem anyar pikeun ngalereskeun). Karya parantos dilakukeun pikeun ngabersihan kode Linuxulator sareng nyederhanakeun debugging. Patches kalayan rojongan pikeun atribut nambahan sarta panggero sistem fexecve geus disiapkeun, tapi teu acan reviewed.

    • Rapat kelompok kerja anu didamel pikeun ngalaksanakeun migrasi kode sumber tina sistem kontrol sumber terpusat Subversion ka sistem desentralisasi Git terus. Laporan sareng usulan pikeun migrasi aya dina prosés persiapan.
    • В rtld (runtime linker) ningkat mode palaksanaan langsung ("/libexec/ld-elf.so.1 {jalur} {argumen}").
    • Proyék pikeun nguji fuzzing kernel FreeBSD nganggo sistem syzkaller terus berkembang. Salila période ngalaporkeun, masalah dina tumpukan jaringan jeung kode pikeun gawé bareng tabel file descriptor dicirikeun maké syzkaller ngaleungitkeun. Saatos diagnosis kasalahan, parobihan parantos ditambah kana tumpukan SCTP pikeun ngagampangkeun debugging. Aturan geus ditambahkeun kana set stress2 pikeun ngaidentipikasi mungkin regressions. Ditambahkeun rojongan pikeun nguji fuzz tina panggero sistem anyar, kaasup copy_file_range (), __realpathat () sarta Capsicum subsistem panggero. Karya terus nutupan lapisan émulasi Linux kalayan uji fuzz. Kami nganalisis sareng ngaleungitkeun kasalahan anu kacatet dina laporan Coverity Scan panganyarna.
    • Sistem integrasi kontinyu geus switched pikeun executing sadayana tés cabang sirah ngan ngagunakeun clang / lld. Nalika nguji pikeun RISC-V, formasi gambar disk lengkep dipastikeun pikeun ngajalankeun tés dina QEMU nganggo OpenSBI. Ditambahkeun tugas anyar pikeun nguji gambar na powerpc64 mesin virtual (FreeBSD-head-powerpc64-gambar, FreeBSD-head-powerpc64-testvm).
    • Dijalankeun pikeun mindahkeun Kyua test suite ti palabuhan (devel/kyua) kana sistem dasar pikeun ngajawab masalah (pakét dipasang lambat pisan) anu timbul nalika ngagunakeun Kyua dina arsitéktur anyar, pangwangunan anu dilumangsungkeun maké émulator atawa FPGA. Integrasi kana sistem dasar bakal nyederhanakeun tés platform anu dipasang sareng antarmuka sareng sistem integrasi kontinyu.
    • Proyék parantos diluncurkeun pikeun ngaoptimalkeun kinerja supir sasak jaringan if_bridge, anu ngagunakeun mutex tunggal pikeun ngonci data internal, anu henteu ngamungkinkeun pikeun ngahontal prestasi anu dipikahoyong dina sistem kalayan sajumlah ageung lingkungan jail atanapi mesin virtual anu dihijikeun dina hiji jaringan. Dina tahap ieu, tés geus ditambahkeun kana kode pikeun nyegah regressions lumangsung salila modernisasi gawé bareng konci. Kamungkinan ngagunakeun ConcurrencyKit pikeun parallelize pawang mindahkeun data (bridge_input (), bridge_output (), bridge_forward (), ...) keur dianggap.
    • Ditambahkeun panggero sistem sigfastblock anyar pikeun ngidinan thread hiji nangtukeun blok memori pikeun handler sinyal gancang pikeun ngaronjatkeun kinerja pawang iwal.
    • Kernel nambihan dukungan pikeun LSE (System Extension ageung) paréntah atom anu dirojong ku sistem ARMv8.1. Parentah ieu diperlukeun pikeun ngaronjatkeun kinerja nalika ngajalankeun on dewan Cavium ThunderX2 na AWS Graviton 2. Parobahan ditambahkeun ngadeteksi rojongan LSE tur dinamis ngaktipkeun palaksanaan atom dumasar kana éta. Salila nguji, pamakéan LSE ngamungkinkeun pikeun ngurangan waktu processor spent nalika assembling kernel ku 15%.
    • Optimasi kinerja parantos dilaksanakeun sareng pungsionalitas toolkit parantos dilegaan pikeun file anu tiasa dieksekusi dina format ELF.
      Ditambahkeun rojongan pikeun cache informasi debugging DWARF, direngsekeun masalah dina elfcopy / objcopy utiliti, ditambahkeun DW_AT_ranges processing,
      readelf implements kamampuhan pikeun decode PROTMAX_DISABLE, STKGAP_DISABLE na WXNEEDED bandéra, kitu ogé Xen jeung GNU Build-ID.

  • kasalametan
    • Pikeun ngaronjatkeun kinerja FreeBSD di lingkungan awan Azure, gawé keur nyadiakeun rojongan pikeun mékanisme HyperV stop kontak, nu ngidinan pamakéan panganteur stop kontak pikeun interaksi antara sistem tamu jeung lingkungan host tanpa nyetél jaringan.
    • Karya dijalankeun pikeun nyadiakeun ngawangun ulang FreeBSD, sahingga mungkin pikeun mastikeun yén file laksana tina komponén sistem anu disusun persis tina Konci sumber dinyatakeun tur teu ngandung parobahan extraneous.
    • Kamampuhan pikeun ngadalikeun inklusi mékanisme panyalindungan tambahan (ASLR, PROT_MAX, celah tumpukan, pemetaan W + X) dina tingkat prosés individu parantos ditambahkeun kana utilitas elfctl.
  • Panyimpenan sareng sistem file
    • Karya keur dijalankeun pikeun nerapkeun kamampuhan pikeun NFS beroperasi ngaliwatan hiji saluran komunikasi énkripsi dumasar kana TLS 1.3, tinimbang ngagunakeun Kerberos (detik = mode krb5p), nu dugi ka encrypting pesen RPC wungkul tur dilaksanakeun ukur dina software. Palaksanaan anyar nganggo tumpukan TLS anu disayogikeun ku kernel pikeun ngaktifkeun akselerasi hardware. NFS leuwih kode TLS ampir siap pikeun nguji, tapi masih merlukeun gawé pikeun ngarojong sertipikat klien ditandatanganan sarta adaptasi tumpukan TLS kernel pikeun ngirim data NFS (patches pikeun narima geus siap).
  • rojongan hardware
    • Karya keur dijalankeun pikeun nambahkeun rojongan pikeun Cina x86 CPU Hygon dumasar kana téhnologi AMD;
    • Salaku bagian tina CheriBSD, garpu FreeBSD pikeun arsitéktur prosésor panalungtikan CHERI (Kamampuhan Hardware Enhanced RISC Parentah), rojongan pikeun processor ARM Morello terus dilaksanakeun, nu bakal ngarojong sistem kontrol aksés memori CHERI dumasar kana modél kaamanan proyék Capsicum. chip Morello keur perencanaan dirilis dina 2021. Gawé ayeuna fokus kana nambihan dukungan pikeun platform Arm Neoverse N1 anu ngawasa Morello. Pelabuhan awal CheriBSD pikeun arsitéktur RISC-V parantos dibere. Pangwangunan CheriBSD dituluykeun pikeun prototipe rujukan CHERI dumasar kana arsitektur MIPS64.
    • Porting FreeBSD diteruskeun pikeun 64-bit SoC NXP LS1046A dumasar kana prosésor ARMv8 Cortex-A72 kalayan mesin akselerasi ngolah pakét jaringan terpadu, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 sareng USB 3.0. Ayeuna, supir QorIQ sareng LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI keur disiapkeun pikeun mindahkeun kana komposisi FreeBSD utama.
    • Supir ena parantos diropéa kana vérsi 2.1.1 kalayan dukungan pikeun generasi kadua adaptor jaringan ENAv2 (Elastic Network Adapter) anu dianggo dina infrastruktur Elastic Compute Cloud (EC2) pikeun ngatur komunikasi antara titik EC2 dina kecepatan dugi ka 25 Gb / s. Pembaruan kana ENA 2.2.0 keur disiapkeun.
    • Perbaikan kana port FreeBSD pikeun platform powerpc64 terus. Fokusna nyaéta nyayogikeun kinerja kualitas dina sistem sareng prosesor IBM POWER8 sareng POWER9. Salila période ngalaporkeun, FreeBSD-CURRENT ditransfer pikeun ngagunakeun LLVM / Clang 10.0 kompiler sareng linker lld tinimbang GCC. Sacara standar, sistem powerpc64 nganggo ELFv2 ABI sareng dukungan pikeun ELFv1 ABI parantos dileungitkeun. FreeBSD-STABLE masih gaduh gcc 4.2.1. Masalah sareng supir virtio, aacraid sareng ixl parantos direngsekeun. Dina sistem powerpc64 kasebut nyaéta dimungkinkeun pikeun ngajalankeun QEMU tanpa rojongan Kaca badag.
    • Karya terus nerapkeun rojongan pikeun arsitektur RISC-V. Dina bentuk ayeuna, FreeBSD parantos suksés boot dina papan SiFive Hifive Unleashed, anu supirna parantos disiapkeun.
      UART, SPI sareng PRCI, ngadukung firmware OpenSBI sareng SBI 0.2. Salila période ngalaporkeun, karya ieu fokus kana migrasi ti GCC ka clang na lld.

  • Aplikasi sareng sistem port
    • Koléksi palabuhan FreeBSD parantos ngalangkungan ambang 39 rébu palabuhan, jumlah PR anu henteu ditutup rada langkung ti 2400, dimana 640 PR henteu acan diurutkeun. Salila période ngalaporkeun, 8146 parobahan dijieun tina 173 pamekar. Opat pamilon anyar nampi hak committer (Loïc Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Ditambahkeun USES = qca bandéra sarta dipiceun USES = zope bandéra (kusabab incompatibility kalawan Python 3). Pagawean keur dijalankeun pikeun nyoplokkeun Python 2.7 tina tangkal palabuhan - sadaya palabuhan basis Python 2 kudu porting ka Python 3 atawa bakal dihapus. Manajer pakét pkg parantos diropéa pikeun ngabebaskeun 1.13.2.
    • Diropéa grafik komponén tumpukan jeung palabuhan patali xorg.
      server X.org geus diropéa pikeun versi 1.20.8 (saméméhna shipped on cabang 1.18), nu diwenangkeun FreeBSD mun standar ngagunakeun udev / evdev backend pikeun alat input cecekelan. pakét Mesa geus switched ngagunakeun extension DRI3 tinimbang DRI2 sacara standar. Dijalankeun pikeun ngajaga supir grafik, tumpukan alat input sareng komponén drm-kmod (port anu ngamungkinkeun operasi modul amdgpu, i915 sareng radeon DRM, nganggo kerangka linuxkpi pikeun kasaluyuan sareng Direct Rendering Manager tina kernel Linux) kaping.

    • Desktop KDE Plasma, KDE Frameworks, KDE Applications sareng Qt tetep diropéa sareng diropéa kana rilis panganyarna. A kstars aplikasi anyar (atlas béntang) geus ditambahkeun kana palabuhan.
    • Karya parantos dilakukeun pikeun ngaleungitkeun parobihan régrésif dina manajer jandela xfwm4 anu muncul saatos ngamutahirkeun Xfce kana versi 4.14 (contona, artefak muncul nalika ngahias windows).
    • Port Anggur parantos diropéa pikeun ngabebaskeun Anggur 5.0 (saméméhna 4.0.3 ditawarkeun).
    • Dimimitian ku vérsi 1.14, kompiler basa Go nambihan dukungan resmi pikeun arsitektur ARM64 pikeun FreeBSD 12.0.
    • OpenSSH dina sistem dasar parantos diropéa pikeun ngaleupaskeun 7.9p1.
    • Perpustakaan sysctlmibinfo2 parantos dilaksanakeun sareng ditempatkeun di palabuhan (devel / libsysctlmibinfo2), nyayogikeun API pikeun aksés ka MIB sysctl sareng narjamahkeun nami sysctl kana identifier obyék (OID).
    • Pembaruan distribusi parantos dihasilkeun NomadBSD 1.3.1, anu édisi FreeBSD diadaptasi pikeun dianggo salaku bootable desktop portabel tina drive USB. Lingkungan grafis dumasar kana manajer jandela Openbox. Dipaké pikeun ningkatna drive DSBMD (pasang CD9660, FAT, HFS+, NTFS, Ext2/3/4 dirojong), pikeun ngonpigurasikeun jaringan nirkabel - wifimgr, jeung ngadalikeun volume - DBMixer.
    • Dimimitian pagawean dina nulis dokuméntasi lengkep pikeun manajer lingkungan jail pot. Pot 0.11.0 keur disiapkeun keur release, nu bakal kaasup parabot pikeun ngatur tumpukan jaringan.

sumber: opennet.ru

Tambahkeun komentar