Izvješće o razvoju FreeBSD-a za prvi kvartal 2020

Objavljeno Izvješće o razvoju projekta FreeBSD od siječnja do ožujka 2020. Među promjenama mogu se istaknuti sljedeće:

  • Opća i sustavna pitanja
    • GCC kompajlerski paket, zajedno s neiskorištenim gperf, gcov i gtc (kompajler devicetree), uklonjen je iz izvornog stabla FreeBSD-CURRENT. Sve platforme koje ne podržavaju Clang migrirane su na vanjske alate za izgradnju instalirane iz portova. Osnovni sustav isporučen je sa zastarjelim izdanjem GCC 4.2.1, a integracija novijih verzija bila je nemoguća zbog prelaska verzije 4.2.2 na GPLv3 licencu, što se smatralo neprihvatljivim za osnovne komponente FreeBSD-a. Trenutna GCC izdanja, uključujući GCC 9, i dalje se mogu instalirati iz paketa i portova.
    • U infrastrukturi emulacije okruženja Linux (LinuxUlator) dodao je podršku za sistemski poziv sendfile, TCP_CORK način rada (potreban za nginx) i zastavicu MAP_32BIT (rješava problem pokretanja paketa s Mono iz Ubuntu Bionic). Problemi s rješavanjem DNS-a pri korištenju glibc-a novijeg od 2.30 (na primjer, iz CentOS 8).
      Infrastruktura kontinuirane integracije omogućuje izvršavanje poslova za pokretanje LTP-a (Linux Projekt testiranja) pod upravljanjem Linuxregulator za testiranje poboljšanja koda za podršku LinuxOko 400 testova ne uspijeva i zahtijeva ispravak (neke pogreške uzrokovane su lažno pozitivnim rezultatima, neke zahtijevaju trivijalne ispravke, a druge zahtijevaju dodavanje podrške za nove sistemske pozive). Čišćenje koda je dovršeno. Linuxregulator i pojednostaviti ispravljanje pogrešaka. Zakrpe koje podržavaju proširene atribute i sistemski poziv fexecve su pripremljene, ali još nisu pregledane.
    • Sastanci radne skupine stvorene za migraciju izvornog koda iz centraliziranog sustava za upravljanje izvornim kodom Subversiona u decentralizirani Git sustav se nastavljaju. Izvješće s prijedlozima migracije je u pripremi.
    • В rtld (runtime linker) poboljšani način izravnog izvršavanja ("/libexec/ld-elf.so.1 {path} {arguments}").
    • Projekt fuzzinga kernela FreeBSD-a korištenjem syzkaller sustava nastavlja se razvijati. Tijekom izvještajnog razdoblja, problemi u mrežnom stogu i kodu za rad s tablicama deskriptora datoteka identificirani korištenjem syzkallera su riješeni. Nakon dijagnostike grešaka, dodane su promjene u SCTP stog radi pojednostavljenja otklanjanja pogrešaka. Pravila za identificiranje potencijalnih regresija dodana su u stress2 skup. Dodana je podrška za fuzzing testiranje novih sistemskih poziva, uključujući copy_file_range(), __realpathat() i pozive podsustava Capsicum. Rad se nastavlja na pokrivanju sloja emulacije fuzzing testiranjem. LinuxPogreške uočene u nedavnim izvješćima Coverity Scan-a su analizirane i ispravljene.
    • Sustav kontinuirane integracije prebačen je na pokretanje svih testova glavne grane isključivo pomoću clang/lld. Za RISC-V testiranje sada se generira slika cijelog diska za pokretanje testova u QEMU-u pomoću OpenSBI-ja. Dodani su novi zadaci za testiranje slika i virtualnih strojeva powerpc64 (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • U tijeku je rad na migraciji Kyua testnog paketa iz portova (devel/kyua) u jezgru sustava kako bi se riješili problemi (paketi se vrlo sporo implementiraju) koji nastaju pri korištenju Kyua na novim arhitekturama razvijenim pomoću emulatora ili FPGA-e. Integracija u jezgru sustava značajno će pojednostaviti testiranje ugrađenih platformi i povezivanje sa sustavima kontinuirane integracije.
    • Pokrenut je projekt za optimizaciju performansi upravljačkog programa mrežnog mosta. ako_most, koji koristi jedan mutex za zaključavanje internih podataka, sprječavajući željene performanse na sustavima s velikim brojem zatvora ili virtualnih strojeva spojenih na jednu mrežu. U kod su dodani testovi kako bi se spriječile regresije tijekom modernizacije rukovanja zaključavanjem. Razmatra se mogućnost korištenja ConcurrencyKita za paralelizaciju rukovatelja prijenosom podataka (bridge_input(), bridge_output(), bridge_forward(), itd.).
    • Dodan je novi sistemski poziv sigfastblock koji omogućuje niti da odredi blok memorije za brzi rukovatelj signalima kako bi se poboljšale performanse rukovatelja iznimkama.
    • Jezgra sada podržava LSE (Large System Extension) atomske instrukcije, koje podržavaju ARMv8.1 sustavi. Ove instrukcije su potrebne za poboljšanje performansi na pločama Cavium ThunderX2 i AWS Graviton 2. Dodane promjene detektiraju LSE podršku i dinamički omogućuju atomsku implementaciju na temelju tih instrukcija. Tijekom testiranja, korištenje LSE smanjilo je vrijeme CPU-a provedeno na kompajliranju jezgre za 15%.
    • Izvršene su optimizacije performansi i proširena je funkcionalnost alata za izvršne ELF datoteke.
      Dodana je podrška za keširanje DWARF informacija o otklanjanju pogrešaka, riješeni su problemi u uslužnim programima elfcopy/objcopy, dodano je rukovanje DW_AT_rangesima,
      readelf sada podržava dekodiranje zastavica PROTMAX_DISABLE, STKGAP_DISABLE i WXNEEDED, kao i Xen i GNU Build-ID.
  • sigurnosti
    • Kako bi se poboljšale performanse FreeBSD-a u Azure cloud okruženjima, u tijeku je rad na pružanju podrške za HyperV Socket mehanizam, koji omogućuje korištenje socket sučelja za interakciju gostujućeg sustava s host okruženjem bez konfiguracije mreže.
    • U tijeku je rad na osiguravanju ponovljivih FreeBSD verzija, koje osiguravaju da su izvršne datoteke sistemskih komponenti kompajlirane iz deklariranog izvornog koda i da ne sadrže nikakve suvišne promjene.
    • Uslužni program elfctl sada vam omogućuje kontrolu uključivanja dodatnih mehanizama zaštite (ASLR, PROT_MAX, stack gap, W+X mapiranje) na razini pojedinačnog procesa.
  • Pohranjivanje i datotečni sustavi
    • U tijeku je rad na omogućavanju NFS rada preko šifriranog komunikacijskog kanala temeljenog na TLS 1.3, umjesto korištenja Kerberosa (sec=krb5p način rada), koji je ograničen samo na šifriranje RPC poruka i u potpunosti je implementiran softverski. Nova implementacija koristi TLS stog koji pruža kernel, a koji omogućuje hardversko ubrzanje. NFS-over-TLS kod je gotovo spreman za testiranje, ali još uvijek zahtijeva podršku za potpisane klijentske certifikate i prilagodbu TLS stoga kernela za slanje NFS podataka (zakrpe za primanje ove funkcionalnosti već su dostupne).
  • Hardverska podrška
    • U tijeku je rad na dodavanju podrške za kineske x86 Hygon procesore temeljene na AMD tehnologijama;
    • Unutar CheriBSD-a, forka FreeBSD-a za arhitekturu istraživačkog procesora DRAGI (Capability Hardware Enhanced RISC Instructions), podrška za ARM Morello procesor se nastavlja implementirati, što će podržati CHERI sustav kontrole pristupa memoriji, temeljen na modelu zaštite projekta Capsicum. Čip Morello planiraju Objavljeno 2021. godine. Rad je trenutno usmjeren na dodavanje podrške za platformu Arm Neoverse N1, koja je temelj Morella. Objavljen je početni port CheriBSD-a na RISC-V arhitekturu. Razvoj CheriBSD-a za referentni prototip CHERI temeljen na MIPS64 arhitekturi se nastavlja.
    • FreeBSD se i dalje prenosi na 64-bitni NXP LS1046A SoC temeljen na ARMv8 Cortex-A72 procesoru s integriranim mehanizmom za ubrzanje mreže, 10 Gb Ethernetom, PCIe 3.0, SATA 3.0 i USB 3.0. QorIQ i LS1046A upravljački programi, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC i QorIQ LS10xx SDHCI trenutno se pripremaju za uključivanje u glavnu FreeBSD distribuciju.
    • Upravljački program ena ažuriran je na verziju 2.1.1, podržavajući mrežne adaptere ENAv2 (Elastic Network Adapter) druge generacije koji se koriste u infrastrukturi Elastic Compute Cloud (EC2) kako bi se osigurala povezivost između EC2 čvorova brzinama do 25 Gbps. Ažuriranje na ENA 2.2.0 je u pripremi.
    • Rad na FreeBSD portu za powerpc64 platformu se nastavlja. Fokus je na osiguravanju visokokvalitetnih performansi na sustavima s IBM POWER8 i POWER9 procesorima. Tijekom izvještajnog razdoblja, FreeBSD-CURRENT je migriran na korištenje LLVM/Clang 10.0 kompajlera i lld linkera umjesto GCC-a. ELFv2 ABI je omogućen prema zadanim postavkama na powerpc64 sustavima, a podrška za ELFv1 ABI je ukinuta. FreeBSD-STABLE i dalje koristi gcc 4.2.1. Problemi s upravljačkim programima virtio, aacraid i ixl su riješeni. QEMU sada može raditi na powerpc64 sustavima bez podrške za Huge Pages.
    • Rad na implementaciji podrške za RISC-V arhitekturu je nastavljen. U svom trenutnom obliku, FreeBSD se već uspješno pokreće na SiFive Hifive Unleashed ploči, za koju su pripremljeni upravljački programi.
      Podržava UART, SPI i PRCI te podržava OpenSBI i SBI 0.2 firmware. Tijekom izvještajnog razdoblja rad se usredotočio na migraciju s GCC-a na clang i lld.
  • Aplikacije i port sustav
    • Kolekcija portova FreeBSD-a premašila je 39 000 portova, s nešto više od 2 400 otvorenih PR-ova, od kojih 640 još nije riješeno. Tijekom izvještajnog razdoblja, 173 programera napravila su 8 146 promjena. Četiri nova suradnika (Loïc Bartoletti, Mikael Urankar, Kyle Evans i Lorenzo Salvadore) dobila su prava committera. Dodana je zastavica USES=qca, a zastavica USES=zope je uklonjena (zbog nekompatibilnosti s Pythonom 3). U tijeku je rad na uklanjanju Pythona 2.7 iz stabla portova - svi portovi koji se oslanjaju na Python 2 moraju se prenijeti na Python 3 ili ukloniti. Upravitelj paketa pkg ažuriran je na verziju 1.13.2.
    • Ažurirane komponente grafičkog stoga i portovi povezani s xorg-om.
      X.org poslužitelj je ažuriran na verziju 1.20.8 (prethodno je isporučena grana 1.18), što je omogućilo FreeBSD-u da pređe na korištenje udev/evdev backenda prema zadanim postavkama za rukovanje ulaznim uređajima. Mesa paket je prebačen na korištenje DRI3 ekstenzije prema zadanim postavkama umjesto DRI2. U tijeku je rad na ažuriranju grafičkih upravljačkih programa, stoga ulaznih uređaja i drm-kmod komponenti (port koji omogućuje DRM module za amdgpu, i915 i radeon, koristeći linuxkpi okvir za kompatibilnost s kernelovim Direct Rendering Managerom). Linux).
    • KDE Plasma radna površina, KDE Frameworks, KDE aplikacije i Qt se ažuriraju na najnovija izdanja. Nova aplikacija, kstars (zvjezdani atlas), dodana je u portove.
    • Proveden je rad na uklanjanju regresivnih promjena u xfwm4 upravitelju prozora koje su se pojavile nakon ažuriranja Xfce-a na verziju 4.14 (na primjer, artefakti su se pojavljivali prilikom ukrašavanja prozora).
    • Wine port je ažuriran na Wine 5.0 (prethodno 4.0.3).
    • Počevši od verzije 1.14, Go kompajler dodaje službenu podršku za ARM64 arhitekturu za FreeBSD 12.0.
    • OpenSSH u osnovnom sustavu ažuriran je na verziju 7.9p1.
    • Biblioteka sysctlmibinfo2 je implementirana i postavljena u portove (devel/libsysctlmibinfo2), pružajući API za pristup sysctl MIB-u i prevođenje sysctl imena u identifikatore objekata (OID-ove).
    • Ažuriranje distribucije je generirano NomadBSD 1.3.1, koji je izdanje FreeBSD-a prilagođeno za korištenje kao prijenosno stolno računalo koje se može pokrenuti s USB pogona. Grafičko okruženje temelji se na upravitelju prozora Otvori kutiju. Koristi se za montažu pogona DSBMD (podržano je postavljanje CD9660, FAT, HFS+, NTFS, Ext2/3/4), za konfiguriranje bežične mreže - wifimgr, a za kontrolu glasnoće - DSBMixer.
    • Autor posao o pisanju sveobuhvatne dokumentacije za upravitelja zatvorskog okruženja lonacPot 0.11.0 se priprema za izdanje, a uključivat će alate za upravljanje mrežnim stogom.

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster