Framfaraskýrsla FreeBSD fyrir þriðja ársfjórðung 2019

birt skýrslu um þróun FreeBSD verkefnisins frá júlí til september 2019. Meðal breytinga sem við getum tekið eftir:

  • Almenn og kerfisbundin atriði
    • Kjarnateymið hefur almennt samþykkt þann möguleika að setja kóða inn í kerfið sem er dreift samkvæmt BSD leyfinu með viðbótar einkaleyfissamningi (BSD+ einkaleyfi), но решение по включению в систему каждого компонента под данной лицензией должно утверждаться отдельно;
    • Состоялось первое заседание рабочей группы, созданной для проведения миграции исходных текстов из централизованной системы управления исходными текстами Subversion в децентрализованную систему Git. Дискуссия по целесообразности миграции пока продолжается и по многим вопросам ещё предстоит выработать решения (например, как поступить с contrib/, нужно ли перегенерировать хэши в текущем git-репозитории и как наилучшим образом реализовать тестирование коммитов);
    • Frá NetBSD fluttur KCSAN (Kernel Concurrency Sanitizer) verkfærasett, sem gerir þér kleift að greina keppnisskilyrði milli kjarnaþráða sem keyra á mismunandi örgjörva;
    • Unnið er að því að nota innbyggða assembler (IAS) Clang í stað GNU binutils assembler;
    • Инфраструктура эмуляции окружения Linux (Linuxulator) адаптирована для работы на архитектуре ARM64. Реализован системный вызов «renameat2 «. Утилита strace доработана для диагностики проблем в исполняемых файлах Linux, запускаемых в Linuxulator. Решена проблема с возникновением сбоев при связывании исполняемых файлов со cвежем glibc. Порты с Linux-компонентами для Linuxulator обновлены до CentOS 7.7;
    • Sem hluti af Google Summer of Code áætluninni luku nemendur sex verkefni með góðum árangri: útbúin var útfærsla á sameinuðu (IPv4/IPv6) ping tóli, verkfæri til að prófa eldveggi og greina villur í kjarnanum (Kernel sanitizer) voru þróuð, mac_ipacl eining var lögð til, kóði var skrifaður fyrir sýndarminnisþjöppun og unnið hefur verið að því að aðskilja portbyggingarferlið frá staðbundinni uppsetningu;
    • Verkefnið fyrir óljós prófun á FreeBSD kjarnanum með því að nota kerfið heldur áfram að þróast syzkaller. Á skýrslutímabilinu voru fleiri en tíu villur greindar og eytt með syzkaller. Til að keyra syzkaller í sýndarvélum byggðar á bhyve, er sérstakur netþjónn hollur og notar
      syzbot hefur komið á fót prófunum á ýmsum FreeBSD undirkerfum í innviðum Google. Skipulagði flutning upplýsinga um öll hrun yfir á backtrace.io þjónustuna til að einfalda flokkun þeirra og greiningu;

    • Ведётся работа по обновлению реализации zlib на уровне ядра.
      Þjöppunartengdur kóða hefur verið fluttur úr zlib 1.0.4, sem kom út fyrir meira en 20 árum, yfir í núverandi zlib 1.2.11 kóðagrunn. Til að sameina aðgang að zlib hefur aðgerðunum compress, compress2 og uncompress verið bætt við kjarnann. Kóðinn sem tryggir virkni PPP samskiptareglunnar frá netgraph undirkerfinu hefur verið fluttur til að nota kerfisútfærslu zlib, í stað eigin útgáfu af þessu bókasafni. Kern_ctf.c, opencryptodflate, geom_uzip, subr_compressor, undirkerfin hafa einnig verið flutt yfir í nýja zlib.
      if_mxge, bxe uppfært og ng_deflate;

    • Verið er að þróa nýtt kjarnaviðmót sysctlinfo, sem gerir þér kleift að finna þætti í sysctl færibreytugagnagrunninum, unnar í formi MIB (Management Information Base), og flytja upplýsingar um hluti í notendarými.
  • öryggi
    • Kjarnaeining þróuð mac_ipacl, byggt á TrustedBSD MAC Framework og innleiðingu aðgangsstýringarkerfis fyrir netstaflastillingar fyrir fangelsisumhverfi. Til dæmis, með því að nota mac_ipacl, getur hýsilkerfisstjóri komið í veg fyrir að rótnotandinn í fangelsisumhverfi breyti eða stilli IP tölur eða undirnetsstillingar fyrir ákveðin netviðmót. Fyrirhugað lögboðið aðgangsstýringarkerfi gerir setja lista yfir IP-tölur og undirnet sem eru leyfð fyrir fangelsi, banna uppsetningu á tilteknum IP-tölum og undirnetum í fangelsi, eða takmarka breytingar á breytum aðeins fyrir ákveðin netviðmót;
    • Intel gaf verkefnið hugbúnaðarstafla TPM 2.0 (Trusted Platform Module) til að tengja við örugga tölvukubbinn, sem venjulega er notaður til að staðfesta hleðslu á fastbúnaði og stýrikerfisræsiforriti. Staflahlutirnir eru sýndir í formi ports security/tpm2-tss, security/tpm2-tools og security/tpm2-abrmd. tpm2-tss tengið inniheldur bókasöfn til að nota TPM2 API, tpm2-tools býður upp á skipanalínutól til að framkvæma TPM aðgerðir og tpm2-abrmd inniheldur bakgrunnsferli útfærslu á TPM Access Broker og Resource Manager íhlutunum sem margfaldar beiðnir frá mismunandi TPM notendum í eitt tæki. Auk staðfestrar ræsingar á FreeBSD er hægt að nota TPM til að auka öryggi Strongswan IPsec, SSH og TLS með því að framkvæma dulmálsaðgerðir á sérstökum flís;
    • Kjarninn fyrir amd64 arkitektúrinn er aðlagaður til að ræsa með því að nota W^X (write XOR execute) verndartækni, sem þýðir að ekki er hægt að nálgast minnissíður samtímis til að skrifa og keyra (nú er hægt að hlaða kjarnanum með því að nota keyranlegar minnissíður sem skrifa á. er bannað). Nýja kjarnavarnaraðferðin er innifalin í HEAD greininni og verður innifalin í FreeBSD 13.0 og 12.2 útgáfunum;
    • Fyrir mmap og mprotect kerfissímtöl komið til framkvæmda macro PROT_MAX(), sem gerir þér kleift að ákvarða mengi aðgangstakmarkana sem eru leyfðar fyrir frekari breytingar (PROT_READ, PROT_WRITE, PROT_EXEC). Með því að nota PROT_MAX() getur þróunaraðili bannað flutning á minnissvæði í keyrsluflokkinn eða beðið um minni sem leyfir ekki keyrslu, en síðar er hægt að breyta því í keyrslu. Til dæmis getur minnissvæði aðeins verið opið fyrir ritun meðan á kraftmikilli tengingu stendur eða JIT kóða myndun, en þegar ritun er lokið er það takmarkað við að lesa og keyra eingöngu, og í framtíðinni, ef það er í hættu, árásarmanninum mun ekki geta virkjað ritun fyrir þá minnisblokk. Til viðbótar við PROT_MAX(), er sysctl vm.imply_prot_max einnig útfært, sem þegar það er virkjað, ákvarðar mengið af gildum fánum byggt á upphafsbreytum fyrsta kallsins til mmap;
    • Для усиления защиты от эксплуатации уязвимостей помимо техники рандомизации адресного пространства (ASLR) предложен механизм рандомиации смещений указателей, адресующих начальный кадр стека и размещаемые в стеке структуры с информацией об окружении, параметрах запуска программы и данных для исполняемых образов в формате ELF;
    • Проведена работа по удалению небезопасной функции gets из libc (начиная со стандарта C11 данная функция исключена из спецификации) и корректировке портов, ещё использующих данную функцию. Изменение планируется предложить во FreeBSD 13.0;
    • Запущен экспериментальный проект по создания средств оркестровки jail-окружений на основе фреймворка pottinn для создания и экспортирования образов, реализованного по аналогии с Docker, и драйвера hirðingi, предоставляющего интерфейс для динамического запуска приложений в jail-окружении. Предложенная модель позволяет разделить процессы создания jail-окружений и развёртывания в них приложений. Одной из целей проекта является предоставление средства для манипуляции jail-ами как контейнерами в стиле Docker;
  • Geymsla og skráarkerfi
    • Frá NetBSD til "makefs" tólsins flutti Stuðningur við FAT skráarkerfi (msdosfs). Undirbúnar breytingar gera þér kleift að búa til FS myndir með FAT án þess að nota md driverinn og án rótarheimildar;
    • Endurgerð á FUSE (Skráakerfi í USErspace) undirkerfisrekla hefur verið lokið, sem gerir kleift að búa til skráarkerfisútfærslur í notendarými. Ökumaðurinn sem upphaflega var sendur innihélt margar villur og var byggður á FUSE 7.8, sem kom út fyrir 11 árum. Sem hluti af nútímavæðingarverkefni ökumanns hefur stuðningur við FUSE 7.23 samskiptareglur verið innleiddur, kóða til að athuga aðgangsrétt á kjarnahliðinni (“-o default_permissions”) hefur verið bætt við, símtölum til VOP_MKNOD, VOP_BMAP og VOP_ADVLOCK hefur verið bætt við, möguleiki til að trufla FUSE-aðgerðir hefur verið veittur, stuðningur fyrir ónefnda rör og unix-innstungur hefur verið bætt við í fusefs, það varð mögulegt að nota kqueue fyrir /dev/fuse, það var hægt að uppfæra mount-breytur í gegnum "mount -u", bætti við stuðningi fyrir útflutning á fusefs í gegnum NFS, innleiddi RLIMIT_FSIZE bókhald, bætti við FOPEN_KEEP_CACHE og FUSE_ASYNC_READ fánum, gerði umtalsverða hagræðingu á afköstum og bætti skyndiminni skipulag. Nýi bílstjórinn er innifalinn í höfuð- og stöðugu/12 greinum (innifalið í FreeBSD 12.1);
    • Почти доведена до конца работа по реализации NFSv4.2 (RFC-7862) для FreeBSD. Основное внимание в отчётный период было уделено тестированию. Завершены тесты для проверки совместимости с реализацией из Linux, но ещё продолжается проверка работы сервера pNFS с NFSv4.2. В общем виде код уже рассматривается как готовый для интеграции в ветки FreeBSD head/current. В новой версии NFS добавлена поддержка функций posix_fadvise, posix_fallocate, режимов SEEKHOLE/SEEKDATA в lseek, операции локального копирования частей файла на сервере (без передачи клиенту);
  • Stuðningur við vélbúnað
    • Стартовал проект по улучшению работы FreeBSD на ноутбуках. Первым устройством, для которого проведён аудит поддержки оборудования во FreeBSD, стал ноутбук Lenovo X1 Carbon седьмого поколения;
    • CheriBSD, ответвление от FreeBSD для исследовательской процессорной архитектуры CHERI (Capability Hardware Enhanced RISC Instructions), uppfærð til að styðja við væntanlegan ARM Morello örgjörva, sem mun styðja CHERI minni aðgangsstýringarkerfið byggt á öryggislíkani Capsicum hönnunarinnar. Morello flís eru að skipuleggja út árið 2021. CheriBSD forritararnir halda einnig áfram að fylgjast með þróun CHERI viðmiðunarfrumgerðarinnar sem byggir á MIPS arkitektúrnum;
    • Aukinn stuðningur fyrir RockChip RK3399 flís notaðir í RockPro64 og NanoPC-T4 borðum. Mikilvægasta framförin var stuðningur við eMMC og þróun nýs rekla fyrir eMMC stjórnandi sem notaður er á borðinu;
    • Vinna heldur áfram að innleiða stuðning fyrir ARM64 SoC Broadcom BCM5871X með ARMv8 Cortex-A57 örgjörvum, sem miðar að notkun í beinum, gáttum og netgeymslu. Á skýrslutímabilinu
      iProc PCIe stuðningur hefur verið aukinn og getu til að nota dulritunaraðgerðir vélbúnaðar til að flýta fyrir IPsec hefur verið bætt við.
      Интеграция кода в ветку HEAD ожидается в четвёртом квартале;

    • Það hafa orðið verulegar framfarir í þróun FreeBSD tengi fyrir powerpc64 pallinn. Áherslan er á að veita gæðaafköst á kerfum með IBM POWER8 og POWER9 örgjörvum, en styður valfrjálst notkun á eldri Apple Power Mac tölvum, x500 og Amiga A1222. Powerpc*/12 útibúið heldur áfram að senda með gcc 4.2.1 og powerpc*/13 útibúið verður flutt yfir í llvm90 fljótlega. Af 33306 höfnum hefur tekist að setja 30514 saman;
    • FreeBSD flutningur heldur áfram fyrir 64 bita SoC NXP LS1046A byggt á ARMv8 Cortex-A72 örgjörva með samþættri netpakkavinnslu hröðunarvél, 10 Gb Ethernet, PCIe 3.0, SATA 3.0 og USB 3.0. Á skýrslutímabilinu var stuðningur við USB 3.0, SD/MMC, I2C, DPAA og GPIO netviðmót innleidd. Það eru áætlanir um að styðja QSPI og hámarka afköst netviðmótsins. Verklok og innlimun í HEAD útibúið er gert ráð fyrir á 4. ársfjórðungi 2019;
    • Обновлён драйвер ena с поддержкой второго поколения сетевых адаптеров ENAv2 (Elastic Network Adapter), используемых в инфраструктуре Elastic Compute Cloud (EC2) для организации связи между узлами EC2 на скоростях до 25 Gb/s. В драйвер ena добавлена и протестирована поддержка NETMAP, а также проведена адаптация раскладки памяти для включения режима LLQ в окружениях Amazon EC2 A1;
  • Umsóknir og hafnarkerfi
    • Uppfærðir grafískir staflahlutir og xorg tengdar hafnir. Hafnir sem nota USE_XORG og XORG_CAT hafa verið færðar yfir í USES rammann í stað þess að hringja í bsd.xorg.mk í gegnum bsd.port.mk. Slíkar hafnir innihalda nú "USES=xorg" fánann í makefile þeirra. XORG_CAT virknin hefur verið aðskilin frá bsd.xorg.mk og er nú virkjuð með „USES=xorg-cat“ fánanum. Bætt við verkfærum til að búa til xorg tengi beint úr git geymslu
      freedesktop.org, что, например, позволяет формировать порты для ещё не выпущенных версий. В дальнейшем планируется подготовить инструментарий для использования сборочной системы meson вместо autotools для сборки портов xorg.

      Выполнена работа по чистке старых портов xorg, привязанных к уже неподдерживаемым компонентам, например, удалён порт x11/libXp, а порты x11/Xxf86misc, x11-fonts/libXfontcache и graphics/libGLw переведены в разряд устаревших;

    • Unnið hefur verið að því að bæta stuðning við Java 11 og nýrri útgáfur í FreeBSD, sem og að flytja nokkrar breytingar á Java 8 útibúinu. Eftir stuðning við nýja Java 11 eiginleika eins og Java Flight Recorder, HotSpot Serviceability Agent, var HotSpot Debugger innleiddur. fyrir FreeBSD , DTrace, Javac Server, Java Sound og SCTP breyttist vinnan í að tryggja að öll eindrægnipróf standist. Misheppnunum við að standast próf hefur fækkað úr 50 í 2;
    • KDE Plasma skjáborðið, KDE Frameworks, KDE forritin og Qt eru uppfærð og uppfærð í nýjustu útgáfur;
    • Порты с рабочим столом Xfce обновлены до выпуск 4.14;
    • FreeBSD ports tréð hefur farið yfir 38000 ports, fjöldi ólokaðra PRs er aðeins yfir 2000, þar af 400 PRs hafa ekki enn verið leyst. Á skýrslutímabilinu voru gerðar 7340 breytingar frá 169 hönnuðum. Tveir nýir þátttakendur (Santhosh Raju og Dmitri Goutnik) fengu skuldbindingarréttindi. Ný útgáfa af pkg 1.12 pakkastjóranum hefur verið gefin út, með stuðningi við yfirlög í portstrénu og hreinsun bsd.sites.mk. Meðal mikilvægra útgáfuuppfærslna í portunum eru: Lazarus 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;
    • Verkefnaþróun heldur áfram ClonOS, þróast sérhæfð dreifing fyrir uppsetningu sýndarmiðlarainnviða. Hvað varðar verkefnin sem það leysir, líkist ClonOS kerfum eins og Proxmox, Triton (Joyent), OpenStack, OpenNebula og Amazon AWS, þar sem helsti munurinn er notkun FreeBSD og hæfni til að stjórna, dreifa og stjórna FreeBSD fangelsisgámum og sýndarumhverfi byggt á Bhyve og Xen yfirsýnum. Nýlegar breytingar fela í sér stuðning
      cloud-init fyrir Linux/BSD VM og cloudbase-init fyrir Windows VM, hefja umskipti yfir í að nota innfæddar myndir, nota Jenkins CI til að prófa smíðar og nýja pkg geymslu fyrir uppsetningu
      ClonOS úr pakka.

Heimild: opennet.ru

Bæta við athugasemd