Laporan Pembangunan FreeBSD kanggo kuartal pisanan 2020

diterbitake laporan babagan pangembangan proyek FreeBSD wiwit Januari nganti Maret 2020. Antarane owah-owahan sing bisa dicathet:

  • Masalah umum lan sistemik
    • Mbusak set kompiler GCC saka wit sumber FreeBSD-SAIKI, uga utilitas gperf, gcov lan gtc (devicetree compiler) sing ora digunakake. Kabeh platform sing ora ndhukung Clang wis diuripake kanggo nggunakake piranti mbangun external diinstal saka bandar. Sistem basis ngirim release outdated saka GCC 4.2.1, lan integrasi saka versi anyar ora bisa amarga transisi 4.2.2 kanggo lisensi GPLv3, kang dianggep ora cocog kanggo komponen dhasar FreeBSD. Rilis GCC saiki, kalebu GCC 9, isih bisa diinstal saka paket lan port.
    • Infrastruktur emulasi lingkungan Linux (Linuxulator) wis nambahake dhukungan kanggo telpon sistem sendfile, mode TCP_CORK (dibutuhake kanggo nginx), lan bendera MAP_32BIT (ngrampungake masalah mbukak paket karo Mono saka Ubuntu Bionic). Masalah karo resolusi DNS nalika nggunakake glibc luwih anyar saka 2.30 (contone saka CentOS 8) wis ditanggulangi.
      Infrastruktur integrasi sing terus-terusan nyedhiyakake kemampuan kanggo mbukak proyek LTP (Linux Testing Project) sing mbukak Linuxulator kanggo nguji perbaikan sing digawe kanggo kode kanggo ndhukung Linux. Udakara 400 tes gagal lan mbutuhake ndandani (sawetara kesalahan disebabake positif palsu, sawetara mbutuhake perbaikan sing ora pati penting, nanging ana liyane sing mbutuhake dhukungan kanggo telpon sistem anyar kanggo ndandani). Karya wis rampung kanggo ngresiki kode Linuxulator lan nyederhanakake debugging. Patch karo dhukungan kanggo atribut lengkap lan telpon sistem fexecve wis disiapake, nanging durung dideleng.

    • Rapat klompok kerja digawe kanggo nindakake migrasi kode sumber saka sistem kontrol sumber terpusat Subversion menyang sistem desentralisasi Git terus. Laporan kanthi usulan migrasi lagi disiapake.
    • Π’ rtld (runtime linker) ningkatake mode eksekusi langsung ("/libexec/ld-elf.so.1 {path} {argumen}").
    • ProyΓ¨k kanggo testing fuzzing kernel FreeBSD nggunakake sistem syzkaller terus berkembang. Sajrone periode nglaporake, masalah ing tumpukan jaringan lan kode kanggo nggarap tabel deskriptor file sing diidentifikasi nggunakake syzkaller diilangi. Sawise diagnosis kesalahan, owah-owahan wis ditambahake menyang tumpukan SCTP kanggo nggawe debugging luwih gampang. Aturan ditambahake kanggo set stress2 kanggo ngenali regresi bisa. Added support kanggo testing fuzz saka telpon sistem anyar, kalebu copy_file_range (), __realpathat () lan Capsicum subsistem telpon. Pakaryan terus nutupi lapisan emulasi Linux kanthi uji fuzz. Kita nganalisa lan ngilangi kesalahan sing dicathet ing laporan Coverity Scan paling anyar.
    • Sistem integrasi terus-terusan wis ngalih kanggo nglakokake kabeh tes cabang kepala mung nggunakake clang/lld. Nalika nyoba kanggo RISC-V, pambentukan gambar disk lengkap dijamin kanggo mbukak tes ing QEMU nggunakake OpenSBI. Nambahake tugas anyar kanggo nguji gambar lan mesin virtual powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Kerjane ditindakake kanggo nransfer suite tes Kyua saka port (devel/kyua) menyang sistem basis kanggo ngatasi masalah (paket dipasang alon-alon) sing muncul nalika nggunakake Kyua ing arsitektur anyar, pangembangan sing ditindakake nggunakake emulator utawa FPGA. Integrasi menyang sistem dhasar bakal nyederhanakake pengujian platform lan antarmuka sing dipasang kanthi sistem integrasi sing terus-terusan.
    • Proyek wis diluncurake kanggo ngoptimalake kinerja driver jembatan jaringan yen_jembatan, sing nggunakake mutex siji kanggo ngunci data internal, sing ora ngidini entuk kinerja sing dikarepake ing sistem kanthi akeh lingkungan kunjara utawa mesin virtual sing digabung ing siji jaringan. Ing tahap iki, tes wis ditambahake menyang kode kanggo nyegah regresi saka kedadeyan sajrone modernisasi nggarap kunci. Kamungkinan nggunakake ConcurrencyKit kanggo parallelize pawang transfer data (bridge_input (), bridge_output (), bridge_forward (), ...) lagi dianggep.
    • Nambahake telpon sistem sigfastblock anyar kanggo ngidini thread nemtokake pemblokiran memori kanggo handler sinyal cepet kanggo nambah kinerja handler istimΓ©wa.
    • Kernel nambahake dhukungan kanggo instruksi atom LSE (Large System Extension) sing didhukung dening sistem ARMv8.1. Pandhuan iki dibutuhake kanggo nambah kinerja nalika mlaku ing papan Cavium ThunderX2 lan AWS Graviton 2. Owah-owahan sing ditambahake ndeteksi dhukungan LSE lan kanthi dinamis mbisakake implementasi atom adhedhasar. Sajrone tes, panggunaan LSE bisa nyuda wektu prosesor nalika ngumpulake kernel nganti 15%.
    • Optimasi kinerja wis ditindakake lan fungsi toolkit wis ditambahi kanggo file eksekusi ing format ELF.
      Dhukungan tambahan kanggo cache informasi debugging DWARF, ngrampungake masalah ing utilitas elfcopy / objcopy, nambah pangolahan DW_AT_ranges,
      readelf ngleksanakake kemampuan kanggo decode flag PROTMAX_DISABLE, STKGAP_DISABLE lan WXNEEDED, uga Xen lan GNU Build-ID.

  • Keamanan
    • Kanggo nambah kinerja FreeBSD ing lingkungan maya Azure, karya kanggo nyedhiyani support kanggo mekanisme HyperV Soket, sing ngidini nggunakake antarmuka soket kanggo interaksi antarane sistem tamu lan lingkungan inang tanpa nyetel jaringan.
    • Pakaryan lagi ditindakake kanggo nyedhiyakake mbangun FreeBSD sing bisa diulang, supaya bisa mesthekake yen file eksekusi komponen sistem dikompilasi persis saka kode sumber sing diumumake lan ora ngemot owah-owahan extraneous.
    • Kemampuan kanggo ngontrol inklusi mekanisme proteksi tambahan (ASLR, PROT_MAX, celah tumpukan, pemetaan W + X) ing tingkat proses individu wis ditambahake menyang utilitas elfctl
  • Sistem panyimpenan lan file
    • Pakaryan ditindakake kanggo ngleksanakake kemampuan NFS kanggo ngoperasikake saluran komunikasi sing dienkripsi adhedhasar TLS 1.3, tinimbang nggunakake Kerberos (mode detik = krb5p), sing diwatesi mung kanggo enkripsi pesen RPC lan mung ditrapake ing piranti lunak. Implementasi anyar nggunakake tumpukan TLS sing diwenehake kernel kanggo ngaktifake akselerasi hardware. NFS liwat kode TLS meh siap kanggo testing, nanging isih mbutuhake karya kanggo ndhukung sertifikat klien mlebu lan adaptasi tumpukan TLS kernel kanggo ngirim data NFS (patch kanggo nampa wis siyap).
  • Dhukungan hardware
    • Pakaryan lagi ditindakake kanggo nambah dhukungan kanggo Cina x86 CPU Hygon adhedhasar teknologi AMD;
    • Minangka bagΓ©an saka CheriBSD, garpu FreeBSD kanggo arsitektur prosesor riset CHERI (Kapabilitas Hardware Enhanced RISC Instructions), support kanggo prosesor ARM Morello terus dipun ginakaken, kang bakal ndhukung sistem kontrol akses memori CHERI adhedhasar model keamanan project Capsicum. Morello chip lagi ngrancang release ing 2021. Pakaryan saiki fokus kanggo nambah dhukungan kanggo platform Arm Neoverse N1 sing nguwasani Morello. Port awal CheriBSD kanggo arsitektur RISC-V wis ditampilake. Pangembangan CheriBSD terus kanggo prototipe referensi CHERI adhedhasar arsitektur MIPS64.
    • Porting FreeBSD terus kanggo 64-bit SoC NXP LS1046A adhedhasar prosesor ARMv8 Cortex-A72 kanthi mesin percepatan pangolahan paket jaringan terpadu, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 lan USB 3.0. Saiki, pembalap QorIQ lan LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI disiapake kanggo transfer menyang komposisi utama FreeBSD.
    • Pembalap ena wis dianyari versi 2.1.1 kanthi dhukungan kanggo adaptor jaringan ENAv2 (Elastic Network Adapter) generasi kapindho sing digunakake ing infrastruktur Elastic Compute Cloud (EC2) kanggo ngatur komunikasi antarane simpul EC2 kanthi kecepatan nganti 25 Gb/ s. Nganyari kanggo ENA 2.2.0 lagi disiapake.
    • Dandan ing port FreeBSD kanggo platform powerpc64 terus. Fokus nyedhiyakake kinerja kualitas ing sistem kanthi prosesor IBM POWER8 lan POWER9. Sajrone periode laporan, FreeBSD-CURRENT ditransfer kanggo nggunakake LLVM / Clang 10.0 compiler lan linker lld tinimbang GCC. Kanthi gawan, sistem powerpc64 nggunakake ELFv2 ABI lan dhukungan kanggo ELFv1 ABI wis mandheg. FreeBSD-STABLE isih duwe gcc 4.2.1. Masalah karo pembalap virtio, aacraid lan ixl wis dirampungake. Ing sistem powerpc64 bisa mbukak QEMU tanpa dhukungan Huge Pages.
    • Pakaryan terus ngetrapake dhukungan kanggo arsitektur RISC-V. Ing wangun saiki, FreeBSD wis sukses boot ing papan SiFive Hifive Unleashed, sing pembalap wis disiapake
      UART, SPI lan PRCI, ndhukung OpenSBI lan SBI 0.2 firmware. Sajrone periode laporan, karya difokusake ing migrasi saka GCC menyang clang lan lld.

  • Aplikasi lan sistem port
    • Koleksi port FreeBSD wis ngliwati ambang 39 ewu port, jumlah PR sing ora ditutup rada ngluwihi 2400, sing 640 PR durung diurutake. Sajrone periode laporan, 8146 owah-owahan digawe saka 173 pangembang. Papat peserta anyar nampa hak committer (LoΓ―c Bartoletti, Mikael Urankar, Kyle Evans, Lorenzo Salvadore). Added USES = qca flag lan dibusak USES = zope flag (amarga incompatibility karo Python 3). Kerjane ditindakake kanggo mbusak Python 2.7 saka wit port - kabeh port basis Python 2 kudu ditransfer menyang Python 3 utawa bakal dibusak. Manajer paket pkg wis dianyari kanggo release 1.13.2.
    • Komponen tumpukan grafis sing dianyari lan port sing gegandhengan karo xorg.
      Server X.org wis dianyari kanggo versi 1.20.8 (sadurunge dikirim ing 1.18 cabang), sing ngidini FreeBSD kanggo standar nggunakake udev / evdev backend kanggo nangani piranti input. Paket Mesa wis diganti kanggo nggunakake extension DRI3 tinimbang DRI2 minangka standar. Kerjane ditindakake kanggo njaga driver grafis, tumpukan piranti input, lan komponen drm-kmod (port sing ngidini operasi modul amdgpu, i915 lan radeon DRM, nggunakake kerangka linuxkpi kanggo kompatibilitas karo Direct Rendering Manager ing kernel Linux) nganti saiki.

    • Desktop KDE Plasma, KDE Frameworks, KDE Applications, lan Qt tetep dianyari lan dianyari nganti rilis paling anyar. Aplikasi anyar kstars (atlas lintang) wis ditambahake menyang bandar.
    • Pakaryan wis rampung kanggo ngilangi owah-owahan regresif ing manajer jendhela xfwm4 sing katon sawise nganyari Xfce menyang versi 4.14 (contone, artefak katon nalika dekorasi jendhela).
    • Port Wine wis dianyari kanggo ngeculake Wine 5.0 (sadurunge 4.0.3 ditawakake).
    • Diwiwiti karo versi 1.14, kompiler basa Go nambahake dhukungan resmi kanggo arsitektur ARM64 kanggo FreeBSD 12.0.
    • OpenSSH ing sistem dhasar wis dianyari kanggo ngeculake 7.9p1.
    • Sysctlmibinfo2 perpustakaan wis dipun ginakaken lan diselehake ing bandar (devel / libsysctlmibinfo2), nyediakake API kanggo ngakses sysctl MIB lan nerjemahake jeneng sysctl menyang pengenal obyek (OIDs).
    • Nganyari distribusi wis digawe NomadBSD 1.3.1, yaiku edisi FreeBSD sing diadaptasi kanggo digunakake minangka bootable desktop portabel saka drive USB. Lingkungan grafis adhedhasar manajer jendhela Openbox. Digunakake kanggo drive soyo tambah DSBMD (munggah CD9660, FAT, HFS+, NTFS, Ext2/3/4 didhukung), kanggo ngatur jaringan nirkabel - wifimgr, lan kanggo ngontrol volume - DBMixer.
    • Diwiwiti nyambut gawe babagan nulis dokumentasi lengkap kanggo manajer lingkungan penjara pot. Pot 0.11.0 lagi disiapake kanggo release, kang bakal kalebu alat kanggo ngatur tumpukan jaringan.

Source: opennet.ru

Add a comment