Извештај за напредокот на FreeBSD Q2019 XNUMX година

објавено извештај за развојот на проектот FreeBSD од април до јуни 2019 година. Меѓу промените можеме да забележиме:

  • Општи и системски прашања
    • Тимот на Core одлучи да формира работна група за да ја истражи можноста за преместување на изворниот код од централизираниот систем за контрола на изворот на Subversion во децентрализираниот систем Git.
    • Спроведено fuzz тестирање на кернелот FreeBSD користејќи го системот syzkaller и коригирани се голем број на идентификувани грешки. Додадено е слој за нејасно тестирање на библиотеките за компатибилност со 32-битна средина на системи со 64-битно јадро. Способноста да се работи syzkaller во виртуелни машини базирани на bhyve е имплементирана. Во следната фаза, планирано е да се прошири опфатот на тестирање на системски повици, да се користи LLVM sanitizer за проверка на кернелот, да се користи netdump за да се зачуваат депонии на кернелот за време на падови за време на тестирање за заматување итн.
    • Започна работата на ажурирање на имплементацијата на zlib на ниво на јадрото. За пристап до кернелот до zlib кодот, директориумот contrib/zlib беше преименуван во sys/contrib/zlib, а заглавието на crc.h исто така беше преименувано за да се избегне конфликт со zlib/crc.h. Исчистен наследен код што зависеше од zlib и inflate. Следно, се планира да се обезбеди можност за изградба на кернелот истовремено со стариот и новиот zlib за постепено пренесување на новата верзија на функции кои користат компресија;
    • Инфраструктурата за емулација на околината Linux (Linuxulator) е ажурирана. Зголемена поддршка за алатките за дебагирање на Linux како што е алатката strace. Пакетот linux-c7-strace е додаден во портите, кои може да се користат за следење на извршните датотеки на Linux наместо стандардните алатки за бандаж и ktrace, кои сè уште не можат да декодираат некои знамиња и структури специфични за Linux. Дополнително, додаден е пакетот linux-ltp со извршни датотеки за тестирање на Linux Project и решени се проблемите со компатибилноста со извршните датотеки поврзани со новите верзии на glibc;
    • Имплементацијата на операциите за одложено поништување во механизмот pmap е префрлена на употреба на алгоритам за обработка на редици кој работи без брави, што овозможи да се решат проблемите со приспособливост при извршување на голем број паралелни операции за отсликување;
    • Механизмот за блокирање на vnode за време на извршување на системски повици од семејството execve() е променет, што овозможи да се постигне зголемена ефикасност при истовремено извршување на execve() за истата датотека (на пример, при извршување операции на склопување со паралелизација на стартувањето на компајлерот);
  • безбедност
    • Хипервизорот bhyve продолжува да ја подобрува поддршката за миграција во живо на гостински околини од еден домаќин во друг и функционалноста Зачувај/Врати, која ви овозможува да го замрзнете системот за гости, да ја зачувате состојбата во датотека и потоа да продолжите со извршувањето.
    • Преку употребата на библиотеката libvdsk, bhyve додаде поддршка за слики од дискот во формат QCOW2. Потребна е инсталација за работа
      специјално изменета верзија на bhyve, која е конвертирана да користи ракувачи со операции со датотеки базирани на libvdsk. Во текот на извештајниот период, libvdsk, исто така, изврши работа за поедноставување на интеграцијата на поддршката за нови формати, ги подобри перформансите за читање и пишување и додаде поддршка за Copy-on-Write. Од преостанатите задачи, забележана е интеграција на libvdsk во главната структура на bhyve;

    • Во пристаништата е додаден систем за собирање информации за сообраќајот
      Maltrail, што ви овозможува да креирате замки за малициозни мрежни барања (се проверуваат IP-адресите и домените од црните листи) и да испраќате информации за откриената активност до централизиран сервер за последователно блокирање или анализа на обидите за напад;

    • Во пристаништата се додадени платформи за откривање напади, анализа на дневници и следење на интегритетот на датотеките Wazuh (вилушка на Ossec со поддршка за интеграција со ELK-Стак);
  • Мрежен потсистем
    • Ена драјверот е ажуриран за да ја поддржува втората генерација на мрежни адаптери ENAv2 (Еластичен мрежен адаптер) што се користат во инфраструктурата Elastic Compute Cloud (EC2) за организирање на комуникација помеѓу EC2 јазли со брзина до 25 Gb/s. Поддршката за NETMAP е додадена на двигателот на ena.
    • FreeBSD HEAD усвојува нов стек MMC/SD, базиран на рамката CAM и ви овозможува да поврзувате уреди со интерфејс SDIO (Secure Digital I/O). На пример, SDIO се користи во модули за WiFi и Bluetooth за многу табли, како што е Raspberry Pi 3. Новиот стек исто така дозволува CAM интерфејсот да се користи за испраќање SD команди од апликациите во корисничкиот простор, што овозможува создавање уред драјвери кои работат на корисничко ниво. Започна работата на создавање драјвери за безжичните чипови на Broadcom кои работат во режимот FullMAC (на страната на чипот работи на привид на сопствениот оперативен систем со имплементации на неговиот безжичен стек 802.11);
    • Во тек е работа за имплементација на NFSv4.2 (RFC-7862) за FreeBSD. Новата верзија на NFS додава поддршка за функциите posix_fadvise, posix_fallocate, режимите SEEKHOLE/SEEKDATA во lseek и операцијата за локално копирање на делови од датотека на серверот (без пренос на клиентот).

      FreeBSD моментално обезбедува основна поддршка за операциите LayoutError, IOAdvise, Allocate и Copy. Останува само да се имплементира операцијата Seek потребна за користење на lseek(SEEKHOLE/SEEKDATA) со NFS. Поддршката за NFSv4.2 е планирана за FreeBSD 13;

  • Складирање и датотечни системи
    • Проектот за преработка на драјверот за потсистемот FUSE (File system in USERspace), кој овозможува креирање имплементации на датотечни системи во корисничкиот простор, е при крај. Првично испорачениот драјвер е застарен и содржи многу грешки. Како дел од проектот за модернизација на драјверите, беше имплементирана поддршка за протоколот FUSE 7.23 (претходна верзија 7.8, објавена пред 11 години беше поддржана), додаден е код за проверка на правата за пристап на страната на јадрото („-o default_permissions“), повици до Додадени се VOP_MKNOD, VOP_BMAP и VOP_ADVLOCK, можност за прекинување на операциите FUSE, додадена поддршка за неименувани цевки и Unix приклучоци во осигурувачите, можност за користење kqueue за /dev/fuse, дозволено ажурирање на параметрите за монтирање преку „mount -u“, додадена поддршка за извоз на осигурувачи преку NFS, имплементирано сметководство RLIMIT_FSIZE, додадени знаменца FOPEN_KEEP_CACHE и FUSE_ASYNC_READ, направени се значителни оптимизации на перформансите и подобрена е организацијата на кеширање;
    • Поддршката за операцијата BIO_DELETE е додадена на кодот за замена на пејџер, кој ви овозможува да ја користите командата TRIM кога отстранувате блокови од SSD-дискови за да го зголемите нивниот животен век.
  • Хардверска поддршка
    • Продолжува работата за имплементација на поддршка за ARM64 SoC Broadcom BCM5871X со процесори ARMv8 Cortex-A57, наменети за употреба во рутери, портали и мрежно складирање. Во текот на извештајниот период, беше подобрена поддршката за внатрешни и надворешни iProc PCIe автобуси, додадена е поддршка за BNXT Ethernet и се работи на користење на вградениот крипто-мотор за забрзување на IPsec. Интеграцијата на кодот во гранката HEAD се очекува во втората половина на годината;
    • Започна работата на поддршката за 64-битниот SoC NXP LS1046A базиран на процесорот ARMv8 Cortex-A72 со интегриран мрежен мотор за забрзување за обработка на пакети, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 и USB 3.0. Поддршката за основната платформа (мулти-кориснички SMP) и SATA 3.0 е веќе имплементирана. Поддршката за USB 3.0, SD/MMC и I2C е во развој. Плановите вклучуваат поддршка за Ethernet, GPIO и QSPI. Завршување на работата и вклучување во гранката HEAD се очекува во четвртиот квартал од 4 година.
    • Ажурирани драјвери mlx5en и mlx5ib за Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] и ConnectX-6 [Dx] Ethernet и InfiniBand адаптери. Додадена е поддршка за Mellanox Socket Direct (ConnectX-6) адаптери, што овозможува проток до 200 Gb/s на магистралата PCIe Gen 3.0. За повеќејадрените BlueField чипови, додадена е поддршка за двигателот RShim. На пристаништата е додаден пакетот mstflint со збир на дијагностички алатки за Mellanox адаптери;
  • Апликации и пристанишен систем
    • Компонентите на графичкиот оџак се ажурирани. Драјверот drm.ko (Менаџер за директно прикажување) е пренесен од кернелот Linux 5.0. Овој двигател се смета за експериментален и е додаден на дрвото на порти како графика/drm-devel-kmod. Бидејќи двигателот ја користи ажурираната рамка на Linux KPI за да биде компатибилна со DRM API на јадрото на Linux, потребна е FreeBSD CURRENT за да се стартува. Драјверот vboxvideo.ko drm за виртуелниот графички процесор VirtualBox исто така е пренесен од Linux. Mesa пакетот е ажуриран за да го објави 18.3.2 и е префрлен да користи LLVM од портата devel/llvm80 наместо од devel/llvm60.
    • Дрвото за порти на FreeBSD надмина 37000 порти, бројот на незатворени PR останува на 2146. Во текот на периодот на известување, направени се 7837 промени од 172 програмери. Тројца нови учесници добија права на обврзници. Меѓу значајните ажурирања на верзијата во пристаништата се: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Chromium 75.0.3770.100. Сите порти Go се конвертирани да го користат знамето „USES=go“. Додадено е знаменце „USES=cabal“ во менаџерот на пакети Cabal што се користи за кодот Haskell. Овозможен е режим на строга заштита на оџакот. Стандардната верзија на Python е 3.6 наместо 2.7.
    • Изданието за комунални услуги е подготвено nsysctl 1.0, кој нуди аналог на /sbin/sysctl што користи libxo за излез и обезбедување на проширен сет на опции. Nsysctl може да се користи за визуелно следење на состојбата на вредностите на sysctl и прикажување информации за објекти во структурирана форма. Можен е излез во XML, JSON и HTML формати;

Извор: opennet.ru

Додадете коментар