Laporan Kamajuan FreeBSD pikeun Q2019 XNUMX

diterbitkeun laporan ngeunaan pamekaran proyék FreeBSD ti bulan Juli nepi ka Séptémber 2019. Di antara parobahan urang tiasa dicatet:

  • Masalah umum sareng sistemik
    • Tim Inti umumna disatujuan kamungkinan ngalebetkeun kode dina sistem anu disebarkeun dina lisénsi BSD kalayan perjanjian patén tambahan (BSD+Patén), tapi kaputusan pikeun ngalebetkeun unggal komponén dina sistem dina lisénsi ieu kedah disatujuan nyalira;
    • Rapat kahiji grup kerja anu didamel pikeun ngalaksanakeun migrasi kode sumber tina sistem kontrol sumber terpusat Subversion ka sistem desentralisasi Git lumangsung. Diskusi ngeunaan kelayakan hijrah masih diteruskeun sareng kaputusan ngeunaan seueur masalah anu acan dikembangkeun (contona, naon anu kudu dilakukeun sareng contrib/, naha perlu regenerasi hashes dina gudang git ayeuna, sareng kumaha cara anu pangsaéna pikeun ngalaksanakeun tés. tina komitmen);
    • Ti NetBSD porting KCSAN (Kernel Concurrency Sanitizer) toolkit, nu ngidinan Anjeun pikeun ngadeteksi kaayaan lomba antara threads kernel ngajalankeun on CPUs béda;
    • Dijalankeun pikeun ngagunakeun Clang's built-in assembler (IAS) gaganti GNU binutils assembler;
    • Infrastruktur émulasi lingkungan Linux (Linuxulator) diadaptasi pikeun dianggo dina arsitektur ARM64. Dilaksanakeun panggero sistem "renameat2". Utilitas strace parantos ningkat pikeun ngadiagnosa masalah dina executable Linux anu dijalankeun dina Linuxulator. Masalah kacilakaan nalika ngahubungkeun file anu tiasa dieksekusi sareng glibc seger parantos direngsekeun. Palabuhan sareng komponén Linux pikeun Linuxulator parantos diropéa kana CentOS 7.7;
    • Salaku bagian tina program Google Summer of Code, siswa suksés ngalengkepan genep proyék: palaksanaan utilitas ping ngahiji (IPv4/IPv6) disiapkeun, alat pikeun nguji firewall sareng ngaidentipikasi kasalahan dina kernel (Kernel sanitizer) dikembangkeun, mac_ipacl modul ieu diajukeun, kode ieu ditulis pikeun komprési memori maya jeung karya geus dipigawé pikeun misahkeun prosés ngawangun port ti instalasi lokal;
    • Proyék pikeun nguji fuzzing kernel FreeBSD nganggo sistem terus berkembang syzkaller. Salila période ngalaporkeun, leuwih ti sapuluh kasalahan anu dicirikeun sarta ngaleungitkeun ngagunakeun syzkaller. Pikeun ngajalankeun syzkaller dina mesin virtual dumasar kana bhyve, a server misah dedicated, sarta ngagunakeun
      syzbot parantos ngadamel uji coba sababaraha subsistem FreeBSD dina infrastruktur Google. Ngatur transfer inpormasi ngeunaan sadaya kacilakaan ka jasa backtrace.io pikeun nyederhanakeun pangkelompok sareng analisa;

    • Dijalankeun pikeun ngapdet palaksanaan zlib di tingkat kernel.
      Kodeu patali komprési geus migrasi ti zlib 1.0.4, dirilis leuwih 20 sababaraha taun ka pengker, ka zlib 1.2.11 codebase ayeuna. Pikeun ngahijikeun aksés ka zlib, fungsi compress, compress2 sareng uncompress parantos ditambahkeun kana kernel. Kodeu nu ensures operasi protokol PPP ti subsistem netgraph geus dibikeun ka pamakéan palaksanaan sistem zlib, tinimbang édisi sorangan perpustakaan ieu. Kern_ctf.c, opencryptodeflate, geom_uzip, subr_compressor, subsistem ogé geus dipindahkeun ka zlib anyar.
      if_mxge, bxe diropéa sarta ng_deflate;

    • Antarbeungeut kernel anyar nuju dikembangkeun sysctinfo, nu ngidinan Anjeun pikeun manggihan elemen dina database parameter sysctl, diolah dina bentuk MIB (Manajemén Émbaran Base), sarta mindahkeun informasi ngeunaan objék ka spasi pamaké.
  • kasalametan
    • modul kernel dimekarkeun mac_ipacl, dumasar kana TrustedBSD MAC Framework jeung nerapkeun sistem kontrol aksés pikeun setelan tumpukan jaringan pikeun lingkungan jail. Contona, ngagunakeun mac_ipacl, administrator sistem host bisa nyegah pamaké root dina lingkungan jail ngarobah atawa netepkeun alamat IP atawa setélan subnet pikeun interfaces jaringan tangtu. Diusulkeun sistem kontrol aksés wajib Hal ieu ngamungkinkeun daptar daptar alamat IP sareng subnet anu diidinan pikeun Jail, ngalarang pamasangan IP sareng subnet tinangtu di Jail, atanapi ngabatesan ngarobih parameter ngan ukur pikeun antarmuka jaringan anu tangtu;
    • Intel nyumbangkeun port tumpukan parangkat lunak pikeun proyék éta TPM 2.0 (Modul Platform Dipercanten) pikeun panganteur sareng chip komputasi anu aman, anu biasana dianggo pikeun loading firmware sareng OS bootloader anu diverifikasi. Komponén tumpukan dibere dina bentuk kaamanan palabuhan / tpm2-tss, kaamanan / tpm2-parabot sareng kaamanan / tpm2-abrmd. port tpm2-tss ngawengku perpustakaan pikeun ngagunakeun API TPM2, tpm2-parabot nyadiakeun utiliti garis paréntah pikeun ngajalankeun operasi TPM, sarta tpm2-abrmd ngandung hiji prosés latar tukang palaksanaan tina TPM Aksés calo na Resource Manajer komponén nu multiplexes requests ti pamaké TPM béda. ka hiji alat. Salian boot diverifikasi on FreeBSD, TPM bisa dipaké pikeun ngaronjatkeun kaamanan Strongswan IPsec, SSH na TLS ku ngajalankeun operasi cryptographic dina chip misah;
    • Kernel pikeun arsitéktur amd64 diadaptasi pikeun boot maké téknik panyalindungan W^X (write XOR execute), nu hartina kaca mémori teu bisa sakaligus diaksés pikeun nulis jeung dieksekusi (kernel ayeuna bisa dimuat maké kaca mémori laksana nu nulis. dilarang). Metodeu panyalindungan kernel anyar kaasup dina cabang HEAD sarta bakal kaasup dina FreeBSD 13.0 jeung 12.2 release;
    • Pikeun mmap sareng mprotect sauran sistem dilaksanakeun makro PROT_MAX (), nu ngidinan Anjeun pikeun nangtukeun susunan pangwatesan aksés umbul diwenangkeun pikeun parobahan salajengna (PROT_READ, PROT_WRITE, PROT_EXEC). Ngagunakeun PROT_MAX (), pamekar a bisa nyaram mindahkeun wewengkon memori ka kategori laksana atawa ménta memori nu teu ngidinan palaksanaan, tapi engké bisa dirobah jadi laksana. Contona, hiji wewengkon mémori bisa jadi kabuka pikeun nulis ngan salila durasi linking dinamis atawa generasi kode JIT, tapi lamun nulis geus réngsé, éta diwatesan pikeun maca jeung ngaéksekusi wungkul, sarta dina mangsa nu bakal datang, lamun kompromi, panyerang. moal bisa ngaktipkeun tulisan pikeun éta blok memori. Salian PROT_MAX () ogé dilaksanakeun sysctl vm.imply_prot_max, nu lamun diaktipkeun, nangtukeun susunan umbul valid dumasar kana parameter awal panggero mimiti mmap;
    • Pikeun ningkatkeun panangtayungan ngalawan eksploitasi kerentanan, sajaba ti téhnik randomization spasi alamat (ASLR), mékanisme pikeun randomizing offsets of pointers alamat pigura tumpukan awal jeung struktur disimpen dina tumpukan jeung informasi ngeunaan lingkungan, parameter peluncuran program jeung data. pikeun gambar laksana dina format ELF diusulkeun;
    • Karya geus dipigawé pikeun miceun unsafe meunang fungsi ti libc (dimimitian ti standar C11, fungsi ieu geus kaasup ti spésifikasi) jeung ngabenerkeun port nu masih ngagunakeun fungsi ieu. Parobahan rencanana bakal ditawarkeun dina FreeBSD 13.0;
    • Proyék ékspérimén parantos diluncurkeun pikeun nyiptakeun alat pikeun ngatur lingkungan panjara dumasar kana kerangka pot pikeun nyiptakeun sareng ngékspor gambar, dilaksanakeun sami sareng Docker, sareng supir nomaden, nu nyadiakeun antarbeungeut pikeun dinamis launching aplikasi dina lingkungan jail. Modél anu diusulkeun ngamungkinkeun urang pikeun misahkeun prosés nyiptakeun lingkungan jail sareng nyebarkeun aplikasi di jerona. Salah sahiji tujuan proyék nyaéta nyadiakeun sarana pikeun ngamanipulasi jails sakumaha Docker-gaya peti;
  • Panyimpenan sareng sistem file
    • Tina NetBSD ka utilitas "makefs". dipindahkeun Pangrojong sistem file FAT (msdosfs). Parobihan anu disiapkeun ngamungkinkeun anjeun nyiptakeun gambar FS sareng FAT tanpa nganggo supir md sareng tanpa otoritas akar;
    • Reworking supir subsistem FUSE (Sistem file dina USErspace) parantos réngsé, ngamungkinkeun nyiptakeun palaksanaan sistem file dina rohangan pangguna. Supir anu asalna dikirimkeun ngandung seueur bug sareng didasarkeun kana FUSE 7.8, anu dileupaskeun 11 sababaraha taun ka pengker. Salaku bagian tina proyék modernisasi supir, dukungan pikeun protokol FUSE 7.23 parantos dilaksanakeun, kode pikeun mariksa hak aksés di sisi kernel ("-o default_permissions") parantos ditambahkeun, sauran ka VOP_MKNOD, VOP_BMAP sareng VOP_ADVLOCK parantos ditambahkeun. Kamampuhan pikeun ngaganggu operasi FUSE parantos disayogikeun, dukungan pikeun pipa anu teu namina sareng soket unix parantos ditambihan dina fusefs, janten mungkin nganggo kqueue pikeun / dev / fuse, éta mungkin pikeun ngapdet parameter gunung ku "Gunung -u", dukungan tambahan. pikeun exporting fusefs via NFS, dilaksanakeun RLIMIT_FSIZE akuntansi, ditambahkeun FOPEN_KEEP_CACHE na FUSE_ASYNC_READ bandéra, dijieun optimizations kinerja signifikan jeung organisasi cache ningkat. Supir anyar kaasup kana sirah jeung stabil / 12 cabang (kaasup dina FreeBSD 12.1);
    • Palaksanaan NFSv4.2 (RFC-7862) pikeun FreeBSD ampir réngsé. Fokus utama salami période ngalaporkeun éta dina tés. Tés geus réngsé pikeun pariksa kasaluyuan jeung palaksanaan Linux Ubuntu, tapi nguji server pNFS kalawan NFSv4.2 masih lumangsung. Sacara umum, kodeu geus dianggap siap pikeun integrasi kana FreeBSD sirah / cabang ayeuna. Versi anyar NFS nambahkeun rojongan pikeun posix_fadvise, fungsi posix_fallocate, SEEKHOLE / modeu SEEKDATA di lseek, operasi nyalin lokal bagian tina file dina server (tanpa mindahkeun ka klien);
  • rojongan hardware
    • Proyék parantos diluncurkeun pikeun ningkatkeun kinerja FreeBSD dina laptop. Alat anu munggaran diaudit pikeun dukungan hardware di FreeBSD nyaéta laptop Lenovo X1 Carbon generasi katujuh;
    • CheriBSD, garpu FreeBSD pikeun arsitéktur prosésor panalungtikan CHERI (Kamampuan Hardware Enhanced RISC Parentah), diropéa pikeun ngarojong processor ARM Morello upcoming, nu bakal ngarojong sistem kontrol aksés memori CHERI dumasar kana modél kaamanan desain Capsicum urang. chip Morello keur perencanaan dirilis dina 2021. Pamekar CheriBSD ogé terus ngawas ngembangkeun prototipe rujukan CHERI dumasar kana arsitektur MIPS;
    • rojongan dimekarkeun pikeun RockChip RK3399 chip dipaké dina RockPro64 na papan NanoPC-T4. Perbaikan paling signifikan éta rojongan pikeun eMMC sarta ngembangkeun supir anyar pikeun eMMC controller dipaké dina dewan;
    • Karya terus nerapkeun rojongan pikeun ARM64 SoC Broadcom BCM5871X kalawan prosesor ARMv8 Cortex-A57, aimed dina pamakéan dina routers, gateways jeung neundeun jaringan. Salila période ngalaporkeun
      Pangrojong iProc PCIe parantos dilegaan sareng kamampuan ngagunakeun operasi kriptografi hardware pikeun nyepetkeun IPsec parantos ditambah.
      Integrasi kode kana cabang HEAD diperkirakeun dina kuartal kaopat;

    • Aya kamajuan signifikan dina ngembangkeun port FreeBSD pikeun platform powerpc64. Fokusna nyaéta pikeun nyayogikeun kinerja anu berkualitas dina sistem sareng prosesor IBM POWER8 sareng POWER9, tapi sacara opsional ngadukung operasi dina Apple Power Mac anu langkung lami, x500 sareng Amiga A1222. Cabang powerpc*/12 terus dikirimkeun ku gcc 4.2.1, sarta cabang powerpc*/13 bakal geura-giru dipindahkeun ka llvm90. Tina 33306 palabuhan, 30514 hasil dirakit;
    • 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. Salila période ngalaporkeun, rojongan pikeun USB 3.0, SD / MMC, I2C, DPAA na panganteur jaringan GPIO dilaksanakeun. Aya rencana pikeun ngadukung QSPI sareng ngaoptimalkeun kinerja antarmuka jaringan. Parantosan karya sareng inklusi dina cabang KEPALA diperkirakeun dina triwulan 4 taun 2019;
    • Supir ena parantos diropéa pikeun ngadukung 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. rojongan NETMAP geus ditambahkeun jeung diuji ka supir ena, sarta perenah memori geus diadaptasi pikeun Aktipkeun mode LLQ di lingkungan Amazon EC2 A1;
  • Aplikasi sareng sistem port
    • Diropéa grafik komponén tumpukan jeung palabuhan patali xorg. Palabuhan maké USE_XORG na XORG_CAT geus dipindahkeun kana kerangka USES tinimbang nelepon bsd.xorg.mk via bsd.port.mk. Palabuhan sapertos ayeuna kalebet bandéra "USES = xorg" dina makefiles na. Fungsi XORG_CAT geus dipisahkeun tina bsd.xorg.mk tur ayeuna diaktipkeun ku bendera "USES = xorg-cat". Katambah alat pikeun langsung ngahasilkeun palabuhan xorg tina gudang git
      freedesktop.org, anu, contona, ngamungkinkeun anjeun nyiptakeun palabuhan pikeun versi anu henteu acan dileupaskeun. Dina mangsa nu bakal datang, urang rencanana nyiapkeun parabot pikeun ngagunakeun sistem assembly meson tinimbang autotools ngawangun port xorg.

      Karya geus dipigawé pikeun ngabersihan up port xorg heubeul dihijikeun ka komponén nu teu dirojong deui, contona, x11 / port libXp geus dihapus, sarta x11 / Xxf86misc, x11-fonts / libXfontcache jeung grafik / port libGLw geus deprecated. ;

    • Karya geus dipigawé pikeun ngaronjatkeun rojongan pikeun Java 11 sarta release anyar dina FreeBSD, kitu ogé pikeun port sababaraha parobahan ka cabang Java 8. Saatos rojongan pikeun Java anyar 11 fitur sapertos Java Flight Recorder, HotSpot Serviceability Agen, HotSpot Debugger dilaksanakeun. pikeun FreeBSD, DTrace, Javac Server, Java Sora jeung SCTP, karya bergeser pikeun mastikeun yén sakabéh tés kasaluyuan lulus. Jumlah gagal nalika lulus tés parantos dikirangan tina 50 ka 2;
    • Desktop KDE Plasma, KDE Frameworks, KDE Applications sareng Qt tetep diropéa sareng diropéa kana rilis panganyarna;
    • Palabuhan sareng desktop Xfce diropéa pikeun dileupaskeun 4.14;
    • Tangkal palabuhan FreeBSD parantos langkung ti 38000 palabuhan, jumlah PR anu teu ditutup rada langkung ti 2000, dimana 400 PR anu henteu acan direngsekeun. Salila période ngalaporkeun, 7340 parobahan dijieun tina 169 pamekar. Dua pamilon anyar (Santhosh Raju jeung Dmitri Goutnik) narima hak committer. Kaluaran énggal tina manajer pakét pkg 1.12 parantos diterbitkeun, kalayan dukungan pikeun overlay dina tangkal palabuhan sareng beberesih bsd.sites.mk. Diantara apdet vérsi anu penting dina palabuhan nyaéta: Lasarus 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;
    • Pangwangunan proyék terus ClonOS, ngembang distribusi husus pikeun deploying infrastruktur server virtual. Dina hal tugas anu direngsekeun, ClonOS nyarupaan sistem sapertos Proxmox, Triton (Joyent), OpenStack, OpenNebula sareng Amazon AWS, bédana utama nyaéta panggunaan FreeBSD sareng kamampuan pikeun ngatur, nyebarkeun sareng ngatur wadah FreeBSD Jail sareng lingkungan maya dumasar kana Bhyve na Xen hypervisors. Parobahan panganyarna kaasup rojongan
      cloud-init pikeun Linux/BSD VM jeung cloudbase-init pikeun Windows VM, dimimitian transisi ka maké gambar asli, maké Jenkins CI pikeun nguji ngawangun sarta gudang pkg anyar pikeun instalasi.
      ClonOS tina bungkusan.

sumber: opennet.ru

Tambahkeun komentar