Rapport om utvecklingen av FreeBSD för andra kvartalet 2019

Publicerad Rapport om utvecklingen av projektet FreeBSD frÄn april till juni 2019. Bland förÀndringarna kan nÀmnas:

  • AllmĂ€nna och systemfrĂ„gor
    • KĂ€rnteamet har beslutat att inrĂ€tta en arbetsgrupp för att undersöka möjligheten att överföra kĂ€lltexter frĂ„n det centraliserade systemet för hantering av kĂ€lltexter Subversion till det decentraliserade systemet Git.
    • Fuzzing-testning av FreeBSD-kĂ€rnan har genomförts med hjĂ€lp av systemet syzkaller och en rad fel som identifierades har Ă„tgĂ€rdats. Ett lager för fuzzing-testning av bibliotek har lagts till för kompatibilitet med 32-bitarsmiljöer pĂ„ system med 64-bitars kĂ€rna. Möjligheten att köra syzkaller i virtuella maskiner baserade pĂ„ bhyve har implementerats. Under nĂ€sta steg planeras det att utöka testningen av systemanrop, anvĂ€nda LLVM-sanitizer för att kontrollera kĂ€rnan, anvĂ€nda netdump för att spara kĂ€rndumpar under krascher vid fuzzing-testning osv.
    • Arbetet med att uppdatera implementationen av zlib pĂ„ kĂ€rnnivĂ„ har inletts. För att ge kĂ€rnan tillgĂ„ng till zlib-koden har katalogen contrib/zlib döpts om till sys/contrib/zlib, och header-filen crc.h har ocksĂ„ döpts om för att undvika konflikter med zlib/crc.h. Utdaterad kod som Ă€r beroende av zlib och inflate har rensats. Det planeras att möjliggöra kompilerings av kĂ€rnan med bĂ„de den gamla och den nya versionen av zlib för att gradvis övergĂ„ till den nya versionen av funktioner som anvĂ€nder komprimering;
    • Infrastrukturen för emulering av Linux-miljö (Linuxulator) har uppdaterats. Stödet för Linux-felsökningsverktyg, sĂ„som strace, har utökats. Paketet linux-c7-strace har lagts till i portarna, vilket kan anvĂ€ndas för att spĂ„ra Linux-exekverbara filer istĂ€llet för de inbyggda verktygen truss och ktrace, som Ă€nnu inte kan avkoda vissa specifika Linux-flaggor och strukturer. Dessutom har paketet linux-ltp med Linux Test Project-exekverbara filer lagts till och kompatibilitetsproblem med exekverbara filer som har lĂ€nkas med nya versioner av glibc har lösts;
    • Implementeringen av operationer för fördröjd invalidation av bindningar till fysiska minnessidor (delayed invalidation) i pmap-mekanismen har övergĂ„tt till att anvĂ€nda en lĂ„sless köhanteringsalgoritm, vilket har löst skalbarhetsproblem vid utförande av ett stort antal parallella unmap-operationer.
    • Blockering av vnode har Ă€ndrats i samband med systemanrop av typen execve(), vilket har ökat effektiviteten vid samtidig körning av execve() för samma fil (till exempel vid byggprocesser med parallell körning av kompilatorer);
  • SĂ€kerhet
    • I hypervisorn bhyve har stödet för live-migrering av gĂ€stmiljöer frĂ„n en vĂ€rd till en annan samt funktionaliteten för att spara/Ă„terstĂ€lla fortsatts förbĂ€ttras. Detta möjliggör att frysa en gĂ€stsystem och spara tillstĂ„ndet i en fil för att senare Ă„teruppta körningen.
    • Genom anvĂ€ndning av biblioteken libvdsk har stöd för diskavbildningar i QCOW2-format lagts till i bhyve. För att fungera krĂ€vs installation av
      en sÀrskilt modifierad version av bhyve, som har omvandlats för att anvÀnda filoperationhanterare baserade pÄ libvdsk. Under den rapporterade perioden har ocksÄ arbete utförts i libvdsk för att förenkla integrationen av nytt formatstöd, förbÀttra lÀs- och skrivprestanda och lÀgga till stöd för Copy-On-Write. De ÄterstÄende uppgifterna inkluderar integrering av libvdsk i huvudkomponenten av bhyve;
    • Till portarna har ett system för insamling av trafikdata lagts till
      Maltrail, vilket möjliggör skapande av fÀllor för skadliga nÀtverksförfrÄgningar (IP och domÀner kontrolleras mot svarta listor) och skickar information om upptÀckt aktivitet till en centraliserad server för senare blockering eller analys av attackförsök;
    • Till portarna har Ă€ven plattformar för att upptĂ€cka attacker, analysera loggar och övervaka filintegritet lagts till Wazuh (en fork av Ossec med stöd för integration med ELK-Stack);
  • NĂ€tverkssystemet
    • Den uppdaterade ena-drivern stöder andra generationens nĂ€tverksadaptrar ENAv2 (Elastic Network Adapter), som anvĂ€nds i Elastic Compute Cloud (EC2) för att organisera kommunikation mellan EC2-noder med hastigheter upp till 25 Gb/s. I ena-drivern har stöd för NETMAP lagts till.
    • I FreeBSD HEAD har en ny MMC/SD-stack antagits, baserad pĂ„ CAM-ramverket, som gör det möjligt att ansluta enheter med SDIO (Secure Digital I/O) grĂ€nssnitt. SDIO anvĂ€nds exempelvis i WiFi och Bluetooth-moduler pĂ„ mĂ„nga plattor, som Raspberry Pi 3. Den nya stacken möjliggör ocksĂ„ anvĂ€ndning av CAM-grĂ€nssnittet för att skicka SD-kommandon frĂ„n anvĂ€ndarrum-applikationer, vilket ger möjlighet att skapa enhetsdrivrutiner som fungerar pĂ„ anvĂ€ndarnivĂ„. Arbetet med att utveckla drivrutiner för Broadcom:s trĂ„dlösa chip, som fungerar i FullMAC-lĂ€get (chipet kör en liknande operativsystemimplementation med sin egen trĂ„dlösa stack för 802.11), har pĂ„börjats.
    • Arbetet med att implementera NFSv4.2 (RFC-7862) för FreeBSD pĂ„gĂ„r. Den nya versionen av NFS har lagt till stöd för funktioner som posix_fadvise, posix_fallocate, och lĂ€gena SEEKHOLE/SEEKDATA i lseek, samt operationer för lokal kopiering av fildelar pĂ„ servern (utan att överföra till klienten).

      För nĂ€rvarande har FreeBSD redan implementerat grundlĂ€ggande stöd för operationerna LayoutError, IOAdvise, Allocate och Copy. ÅterstĂ„r att implementera operationen Seek, som Ă€r nödvĂ€ndig för att anvĂ€nda lseek(SEEKHOLE/SEEKDATA) med NFS. Stödet för NFSv4.2 planeras att inkluderas i FreeBSD 13.

  • Lagringssystem och filsystem
    • Projektet för att omarbeta drivrutinen för FUSE (File system in USErspace) nĂ€rmar sig sitt slut, vilket möjliggör skapande av filsystemimplementationer i anvĂ€ndarrummet. Den ursprungligen levererade drivrutinen Ă€r förĂ„ldrad och innehĂ„ller mĂ„nga fel. Inom ramen för projektet för att modernisera drivrutinen har stöd för protokollet FUSE 7.23 implementerats (tidigare version 7.8 stöddes, slĂ€ppt för 11 Ă„r sedan), kod har lagts till för att kontrollera Ă„tkomstrĂ€ttigheter pĂ„ kĂ€rnnivĂ„ ("-o default_permissions"), anrop av VOP_MKNOD, VOP_BMAP och VOP_ADVLOCK har lagts till, möjlighet att avbryta FUSE-operationer har sĂ€kerstĂ€llts, stöd för namnlösa rör och Unix-sockets i fusefs har lagts till, möjligheten att anvĂ€nda kqueue för /dev/fuse har införts, uppdatering av monteringsparametrar via "mount -u" har godkĂ€nts, stöd för att exportera fusefs via NFS har implementerats, hantering av RLIMIT_FSIZE har införts, flaggor som FOPEN_KEEP_CACHE och FUSE_ASYNC_READ har lagts till, betydande prestandaoptimeringar har genomförts och cacheorganisationen har förbĂ€ttrats.
    • I koden för sidbyte av minnesutrymmet i vĂ€xlingsminnet (swap pager) har stöd för operationen BIO_DELETE lagts till, vilket gör det möjligt att anvĂ€nda kommandot TRIM vid borttagning av block frĂ„n SSD-enheter för att öka deras livslĂ€ngd.
  • Stöd för hĂ„rdvara
    • Arbetet med att implementera stöd för ARM64 SoC Broadcom BCM5871X med ARMv8 Cortex-A57-processorer, som riktar sig mot anvĂ€ndning i routrar, gateways och nĂ€tverkslagring, fortsĂ€tter. Under rapportperioden har stödet för interna och externa iProc PCIe-bussar förbĂ€ttrats, stöd för BNXT Ethernet har lagts till, och arbete pĂ„gĂ„r för att aktivera den inbyggda kryptomotoren för att snabba upp IPsec. Integrationen av koden i HEAD-grenen förvĂ€ntas under andra halvĂ„ret.
    • Arbetet med att stödja den 64-bitars SoC NXP LS1046A baserad pĂ„ ARMv8 Cortex-A72-processorn med en integrerad motor för acceleration av nĂ€tverkspaketbehandling, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 och USB 3.0 har inletts. Stöd för grundplattformen (multi-user SMP) och SATA 3.0 har redan implementerats. Stöd för USB 3.0, SD/MMC och I2C Ă€r under utveckling. Planer finns för stöd för Ethernet, GPIO och QSPI. Arbetet berĂ€knas vara klart och ingĂ„ i HEAD-grenen under fjĂ€rde kvartalet 2019.
    • Drivrutinerna mlx5en och mlx5ib för Ethernet- och InfiniBand-adaptrar frĂ„n Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] och ConnectX-6 [Dx] har uppdaterats. Stöd för Mellanox Socket Direct-adaptrar (ConnectX-6) har lagts till, vilket möjliggör en bandbredd pĂ„ upp till 200 Gb/s pĂ„ PCIe Gen 3.0. För multiprocessorchipparna "BlueField" har stöd för RShim-drivrutinen lagts till. Paketet mstflint med ett set diagnosverktyg för Mellanox-adaptrar har lagts till portarna.
  • Applikationer och portsystem
    • Komponenterna i det grafiska stapeln har uppdaterats. Drivrutinen drm.ko (Direct Rendering Manager) har portats frĂ„n kĂ€rna Linux 5.0. Denna drivrutin betraktas som experimentell och har lagts till i porttrĂ€det som graphics/drm-devel-kmod. Eftersom drivrutinen anvĂ€nder det uppdaterade ramverket Linux KPI för kompatibilitet med DRM API i Linux-kĂ€rnan, krĂ€vs FreeBSD CURRENT för att den ska fungera. Även drm-drivrutinen vboxvideo.ko för virtuell GPU i VirtualBox har portats frĂ„n Linux. Mesa-paketet har uppdaterats till version 18.3.2 och konverterats till att anvĂ€nda LLVM frĂ„n porten devel/llvm80 istĂ€llet för devel/llvm60.
    • FreeBSD:s porttrĂ€d har passerat 37000 portar, och antalet öppna PR har hĂ„llit sig pĂ„ 2146. Under rapporteringsperioden har 7837 Ă€ndringar genomförts av 172 utvecklare. Tre nya deltagare har fĂ„tt committrĂ€ttigheter. Bland de betydande versionuppdateringarna i portarna finns: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Alla portar skrivna i Go har konverterats för att anvĂ€nda flaggan „USES=go“. Flaggan „URES=cabal“ har lagts till för paketmanagern Cabal, som anvĂ€nds för Haskell-kod. Strikt lĂ€ge för stackskydd har aktiverats. Python 3.6 föreslĂ„s som standard i stĂ€llet för 2.7.
    • En release av verktyget nsysctl 1.0, som erbjuder en alternativ version av /sbin/sysctl, som anvĂ€nder libxo för utmatning och ger en utökad uppsĂ€ttning alternativ. Nsysctl kan anvĂ€ndas för att tydligt övervaka tillstĂ„ndet för sysctl-vĂ€rden och presentera information om objekt i strukturerad form. Utmatning i formaten XML, JSON och HTML Ă€r möjlig;

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster