FreeBSD arenguaruanne 2019. aasta kolmanda kvartali kohta

Avaldatud FreeBSD projekti eduaruanne juulist septembrini 2019. Peamine muudatus on järgmine:

  • Üldised ja süsteemsed küsimused
    • Core tiim heaks kiitis idea, et süsteemis võib kasutada BSD litsentsiga koodi, millele on lisatud patentide kasutamise kokkulepe (BSD+Patent), kuid iga komponente, mis sisaldab seda litsentsi, tuleb eraldi kinnitada;
    • Toimus esimene töögrupi koosolek, mille eesmärk on viia allikaid migreerima keskelt hallatavast Subversion süsteemist hajutatud Git süsteemi. Arutelu migreerimise otstarbekuse üle jätkub, ja paljusid küsimusi tuleb veel lahendada (näiteks, kuidas tegeleda contrib/iga, kas on vaja uuesti genereerida hashid praeguses git-repos ja kuidas parimal viisil testida commit'e);
    • NetBSD-lt porteeritud KCSAN (Kernel Concurrency Sanitizer) tööriist, mis aitab avastada kiuolekute teket erinevate CPU-de peal töötavate kiudude vahel;
    • Tööd tehakse Clangi sisseehitatud assembleri (IAS) kasutamiseks GNU binutils assembleri asemel;
    • Linuxi keskkonna emulatsiooni infrastruktuur (Linuxulator) on kohandatud ARM64 arhitektuurile. Uuendatud on süsteemi kutse «renameat2». tööriist strace on täiustatud Linuxi käivitatavate failide probleemide diagnoosimiseks, mis töötavad Linuxulatoris. Lahendatud on probleemid, mis võisid tekkida käivitatavate failide sidumisel uue glibc-ga. Linuxi komponentidega portfelli Linuxulatorile on värskendatud CentOS 7.7-le;
    • Google Summer of Code programmi raames on üliõpilased edukalt viinud ellu kuus projekti: on valmis saanud ühtne (IPv4/IPv6) ping utiliit, arendatud on tööriistu tulemüüri testimiseks ja kernelivigade tuvastamiseks (Kernel sanitizer), esitatud on module mac_ipacl, kirjutatud kood virtuaalse mälu tihendamiseks ning tehtud töö portide kogumise protsessi lahutamiseks kohalikust installatsioonist;
    • FreeBSD kernel'i fuzzing-testi projekt jätkub, kasutades Buildroot — on ehitusüsteem, mis loob Linuxi keskkonna allikatest ja on väljatöötatud silmas pidades kasutamist sisseehitatud süsteemides. Buildrooti tugevateks külgedeks on kompaktsete piltide loomise optimeerimine (tüüpiline pilt võtab paar megabaiti), toetus umbes 20 erinevale protsessori arhitektuurile, lihtne ristkompileerimine (pildi koostamiseks on sageli piisav kolme käsku — git clone/make nconfig/make).. Aruandeperioodil on syzkaller tuvastanud ja vabandanud rohkem kui kümme viga. Syzkaller'i käitamiseks bhyve põhistes virtuaalmasinates on eraldatud eraldi server, ja
      syzbot on seadnud FreeBSD erinevate alamsüsteemide kontrolli Google'i infrastruktuuris. Teave kõikide kriitiliste olukordade kohta edastatakse teenusesse backtrace.io, et lihtsustada nende gruppimist ja analüüsi;
    • Tööd käivad zlib rakenduse uuendamiseks kernelitasemel.
      Kokkusurumisega seotud kood viidi zlib 1.0.4-st, mis ilmus rohkem kui 20 aastat tagasi, ajakohasele zlib 1.2.11 koodibaasile. Zlib-i ühtse juurdepääsu tagamiseks lisati kernelisse funktsioonid compress, compress2 ja uncompress. PPP protokolli tööks vajalik kood netgraph alamsüsteemist viidi üle süsteemse zlib rakenduse kasutamisele, mitte selle teegi enda variandi kasutamisele. Uuele zlib-ile viidi ka üle alamsüsteemid kern_ctf.c, opencryptodeflate, geom_uzip, subr_compressor,
      if_mxge, bxe updated ja ng_deflate;
    • Areneb uus kerneliliides sysctlinfo, mis võimaldab leida sysctl parameetrite andmebaasi elemendid, mida töödeldakse MIB (Management Information Base) kujul, ja edastada teavet objektide kohta kasutajaruumi.
  • Turvalisus
    • On välja töötatud kernelimoodul mac_ipacl, mis põhineb TrustedBSD MAC Framework'il ja implementeerib juurdepääsuhaldussüsteemi võrgu стек'i seadete jaoks jail-keskkondades. Näiteks saab süsteemiadministraator mac_ipacl-i abil keelata jail-keskkonnas root-kasutajal IP-aadresse või alamvõrkude seadeid kindlate võrguliideste jaoks muutmast või seadistamast. E soovitatud mандaatne juurdepääsu haldamise süsteem kaugelt sulgeda vahekaarte, mis on avatud teistel seadmetel. määrata Jail'i lubatud IP-aadresside ja alamvõrkude nimekirjad, keelata teatud IP-d ja alamvõrgud Jail'is või piirata parameetrite muutmist ainult teatud võrguliideste jaoks;
    • Intel edastas projektile tarkvarakogumi portimise TPM 2.0 (Trusted Platform Module) arendamise suhtlemiseks turvalise arvutamise kiibiga, mida tavaliselt kasutatakse kinnitatud alglaadimise ja op-süsteemi laadimise jaoks. Stacki komponendid on esitatud palkade kujul securtity/tpm2-tss, security/tpm2-tools ja security/tpm2-abrmd. Palk tpm2-tss sisaldab teeke TPM2 API kasutamiseks, tpm2-tools pakub käsurea utiliite TPMi operatsioonide teostamiseks ning tpm2-abrmd sisaldab taustaprotsessi, mis rakendab TPM Access Brokeri ja Resource Manageri komponente, mis multiplexerivad TPMi erinevate kasutajate päringud ühele seadmele. Lisaks kinnitatud alglaadimisele saab FreeBSDs TPMi kasutada Strongswani IPsec, SSH ja TLS turvamise tugevdamiseks, tehes krüptograafilisi operatsioone eraldi kiibil;
    • amd64 arhitektuuri tuuma kohandamine laadimiseks W^X (write XOR execute) meetodi abil, mis tähendab, et mälu lehekülgi ei tohi korraga kirjutada ja täita (tuum saab nüüd laadida täidetavaid mälulehti, mille kirjeldamine on keelatud). Uus tuuma kaitsemeetod on lisatud HEAD harusse ja siseneb FreeBSD 13.0 ja 12.2 väljaannetesse;
    • süsteemi kõnede jaoks mmap ja mprotect rakendatud makro PROT_MAX(), mis määrab lubatud hilisema muudatuse käigus juurdepääsuflagide (PROT_READ, PROT_WRITE, PROT_EXEC) komplekti. PROT_MAX() abil saab arendaja keelata mälu piiri muutmise täidetavaks või küsida mälu, mis ei luba täitmist, kuid tulevikus võib selle muuda täidetavaks. Näiteks võib mälu ala olla kirjutatav ainult dünaamilise sidumise või JIT koodi genereerimise ajal, kuid pärast kirjutamise lõpetamist on see piiratud ainult lugemiseks ja täitmiseks, ning tulevikus, ründe korral, ei saa ründaja sellele mäluhaldurisse kirjutamist lubada. PROT_MAX() kõrval on rakendatud ka sysctl vm.imply_prot_max, mille aktiveerimisel määratakse lubatud lipud esimese mmapi kõne algparameetrite põhjal;
    • Vulnerability exploitation protection is enhanced through a mechanism for randomizing the offsets of pointers that address the initial stack frame and structures stored in the stack containing information about the environment, program launch parameters, and data for executable images in ELF format, in addition to address space layout randomization (ASLR).
    • Work has been done to remove the unsafe function gets from libc (this function has been excluded from the C11 standard) and to adjust ports still using this function. The change is planned to be proposed in FreeBSD 13.0.
    • An experimental project has been launched to create orchestration tools for jail environments based on the framework. pot for creating and exporting images, implemented similarly to Docker, and the driver nomad, which provides an interface for dynamic application launching in a jail environment. The proposed model allows for the separation of the processes of creating jail environments and deploying applications within them. One goal of the project is to provide a tool for manipulating jails as containers in a Docker-like manner.
  • Salvestussüsteemid ja failisüsteemid
    • From NetBSD, the utility 'makefs' is enhanced üleviidud with support for the FAT file system (msdosfs). The prepared changes allow the creation of FAT file system images without using the md driver and without root privileges.
    • The driver for the FUSE (File system in USErspace) subsystem has been reworked, enabling the creation of file system implementations in user space. The originally supplied driver contained many errors and was based on FUSE version 7.8, released 11 years ago. As part of the driver modernization project, support for the FUSE 7.23 protocol has been implemented, code for kernel-side access rights checking ('-o default_permissions') has been added, VOP_MKNOD, VOP_BMAP, and VOP_ADVLOCK calls have been introduced, the ability to interrupt FUSE operations has been provided, support for unnamed pipes and UNIX sockets in fusefs has been added, kqueue support for /dev/fuse has been introduced, updating mount parameters via 'mount -u' has been allowed, support for exporting fusefs via NFS has been implemented, accounting for RLIMIT_FSIZE has been realized, FOPEN_KEEP_CACHE and FUSE_ASYNC_READ flags have been added, significant performance optimizations have been incorporated, and caching organization has been improved. The new driver is included in the head and stable/12 branches (part of FreeBSD 12.1).
    • Töötamine NFSv4.2 (RFC-7862) rakendamise kallal FreeBSD-s on peaaegu lõppenud. Aruandeperioodil pöörati suurt tähelepanu testimisele. Testid Linuxi rakenduse ühilduvuse kontrollimiseks on lõpetatud, kuid pNFS serveri töö kontrollimine NFSv4.2-ga jätkub. Üldiselt peetakse koodi juba valmis FreeBSD peamiste ja jooksva harude integreerimiseks. Uues NFS versioonis on lisatud tugi posix_fadvise, posix_fallocate funktsioonidele, SEEKHOLE/SEEKDATA režiimidele lseek-s, kohaliku failide kopeerimise toimingutele serveris (ilma kliendile edastamata);
  • Riistvara tugi
    • Alustatud on projekt FreeBSD töö parandamiseks sülearvutites. Esimeseks seadme tõttu, mille toetuse audit FreeBSD-s tehti, oli seitsmenda põlvkonna Lenovo X1 Carbon sülearvuti;
    • CheriBSD, lyhenne FreeBSD-st uurimisprotsessori arhitektuurile CHERI (Capability Hardware Enhanced RISC Instructions) on uuendatud tulevase ARM Morello protsessori toetamiseks, mis toetab mäluhaldussüsteemi CHERI, mis põhineb Capsicum projekti kaitse mudelil. Morello kiip plaanivad välja antakse 2021. aastal. CheriBSD arendajad jälgivad samuti CHERI tööstusharu prototüübi arengut MIPS arhidektuuril;
    • Laienenud on RockChip RK3399 kiipide tugi, mida kasutatakse RockPro64 ja NanoPC-T4 plaatidel. Kõige olulisem täiendus on eMMC toe lisamine ja uue draiveri väljatöötamine eMMC kontrolleri jaoks, mida plaadil kasutatakse;
    • Tööd ARM64 SoC Broadcom BCM5871X toetuse rakendamisel on jätkuvalt käimas, mis on varustatud ARMv8 Cortex-A57 protsessoritega, mille eesmärk on kasutada seda ruuterites, väravates ja võrgu salvestustes. Aruandeperioodil
      laiendati iProc PCIe tuge ja lisati võimalus kasutada riistvaralisi krüptograafia toiminguid IPsec toimimise kiirendamiseks.
      Koodi integreerimine peaharu oodatakse neljandaks kvartaliks;
    • On saavutatud märkimisväärseid edusamme FreeBSD sadama arendamisel powerpc64 platvormile. Pööratakse suurt tähelepanu kvaliteetse töö tagamisele IBM POWER8 ja POWER9 protsessoritega süsteemides, kuid valikuline tugi on ka vanadele Apple Power Mac, x500 ja Amiga A1222 süsteemidele. Powerpc* /12 haru jätkab gcc 4.2.1 pakkumist, samas kui powerpc* /13 haru viiakse peagi üle llvm90-le. 33306 portist on edukalt kompileeritud 30514;
    • Jätkub FreeBSD-i portimist 64-bitisele ARMv8 Cortex-A72 põhinevale NXP LS1046A SoC-le, millel on integreeritud võrgupakettide töötlemise kiirus, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 ja USB 3.0. Aruandeperioodi jooksul on lisatud USB 3.0, SD/MMC, I2C, DPAA ja GPIO toe toetamine. Plaanis on QSPI tugi ja võrguliidese jõudluse optimeerimine. Töö lõpetamist ja liitumist HEAD haruga oodatakse 2019. aasta 4. kvartalis;
    • Draiverit ena on uuendatud, et toetada teise põlvkonna ENAv2 (Elastic Network Adapter) võrgukaarte, mida kasutatakse Elastic Compute Cloud (EC2) infrastruktuuris EC2 sõlmede vahelise ühenduse korraldamiseks kiirusel kuni 25 Gb/s. Draiverisse ena on lisatud ja testitud NETMAP toe tugi ning mälu korraldus on kohandatud LLQ režiimi kasutamiseks Amazon EC2 A1 keskkondades;
  • Rakendused ja portide süsteem
    • Graafikaste komponentide ja xorgiga seotud portide uuendamine. Portid, mis kasutavad USE_XORG ja XORG_CAT, on viidud USES raamistikku, selle asemel et kutsuda bsd.xorg.mk bsd.port.mk kaudu. Sellised portid sisaldavad nüüd make-failides lippu "USES=xorg". XORG_CAT funktsionaalsus on eraldatud bsd.xorg.mk-st ja nüüd aktiveeritud lipu "USES=xorg-cat" abil. Lisatud tööriistad xorg-portide otse git-repositooriumist genereerimiseks;
      freedesktop.org, mis näiteks võimaldab genereerida porte veel välja andmata versioonide jaoks. Edasi plaanitakse ette valmistada tööriistad meson ehitussüsteemi kasutamiseks autotools'i asemel xorg-portide ehitamiseks.

      Tööd on tehtud Xorgi vanade portide puhastamiseks, mis on seotud enam mitte toetatud komponentidega, näiteks on eemaldatud port x11/libXp ja portid x11/Xxf86misc, x11-fonts/libXfontcache ning graphics/libGLw on klassifitseeritud aegunuks;

    • Tööd on tehtud Java 11 ja uuemate väljade toe parendamiseks FreeBSD-s, samuti mõnede muudatuste portimiseks Java 8 harusse. Pärast seda, kui FreeBSD-s on rakendatud selliste uute Java 11 omaduste tugi nagu Java Flight Recorder, HotSpot Serviceability Agent, HotSpot Debugger, DTrace, Javac Server, Java Sound ja SCTP, on töö keskendunud kõigi ühilduvuse testide läbimise tagamisele. Testide läbimise ebaõnnestumiste arv on vähenenud 50-lt 2-le;
    • KDE Plasma, KDE Frameworks, KDE rakendused ja Qt on ajakohased ja uuendatud kõige värskemate väljadega;
    • Xfce töölauapordid on uuendatud väljal. 4.14;
    • FreeBSD portide puu on ületanud 38000 sadama piiri, lahendamata PR-e on veidi üle 2000, millest 400 PR-e on endiselt lahendamata. Aruandeperioodil tehti 7340 muudatust 169 arendajalt. Kaks uut liiget (Santhosh Raju ja Dmitri Goutnik) said committeri õigused. Avaldati uus versioon paketihaldurist pkg 1.12, mis toetab ülekandeid portide puus ja bsd.sites.mk puhastamist. Oluliste versioonivärskenduste seas sadamates on: Lazarus 2.0.4, LLVM 9.0, Perl 5.30, PostgreSQL 11, Ruby 2.6, Firefox 69.0.1, Firefox-esr 68.1.0, Chromium 76.0;
    • Projekti arendamine jätkub ClonOS, arenduse spetsialiseeritud jaotamine virtuaalserverite infrastruktuuri seadistamiseks. ClonOS lahendab sarnaseid ülesandeid nagu Proxmox, Triton (Joyent), OpenStack, OpenNebula ja Amazon AWS, peamine erinevus on FreeBSD kasutamine ja võimalus hallata, seadistada ja haldada FreeBSD Jail-konteinereid ning virtuaalsete keskkondade hüperviisoreid Bhyve ja Xen. Viimaste muudatuste seas on toetuse lisamine
      cloud-init Linuxi/BSD VM-ide jaoks ja cloudbase-init Windowsi VM-ide jaoks, algus üleminekuks oma piltide kasutamisele, Jenkins CI kasutamine ehituste testimiseks ja uus pkg-repositoorium ClonOS-i paketide installimiseks.
      ClonOS paketid.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster