Ҳисоботи рушди FreeBSD барои семоҳаи аввали соли 2020

нашр шудааст гузориш дар бораи таҳияи лоиҳаи FreeBSD аз январ то марти соли 2020. Дар байни тағиротҳо мо метавонем қайд кунем:

  • Масъалаҳои умумӣ ва системавӣ
    • Маҷмӯи компилятори GCC аз дарахти сарчашмаи FreeBSD-CURRENT, инчунин утилитаҳои истифоданашудаи gperf, gcov ва gtc (compiler devicetree) хориҷ карда шуд. Ҳама платформаҳое, ки Clang-ро пуштибонӣ намекунанд, ба истифодаи асбобҳои сохтани берунаи аз портҳо насбшуда гузаштанд. Системаи асосӣ версияи кӯҳнаи GCC 4.2.1-ро фиристодааст ва ҳамгироии версияҳои навтар аз сабаби гузаштани 4.2.2 ба литсензияи GPLv3, ки барои ҷузъҳои асосии FreeBSD номуносиб дониста мешуд, имконнопазир буд. Варақаҳои кунунии GCC, аз ҷумла GCC 9, метавонанд аз бастаҳо ва портҳо насб карда шаванд.
    • Инфраструктураи эмулятсияи муҳити Linux (Linuxulator) дастгирии занги системаи sendfile, ҳолати TCP_CORK (барои nginx лозим аст) ва парчами MAP_32BIT (мушкилотро бо оғози бастаҳо бо Mono аз Ubuntu Bionic ҳал мекунад) илова кардааст. Мушкилот бо ҳалли DNS ҳангоми истифодаи glibc навтар аз 2.30 (масалан аз CentOS 8) ҳал карда шуданд.
      Инфрасохтори пайвастаи ҳамгироӣ имкон медиҳад, ки LTP (Linux Testing Project) корҳоеро, ки дар Linuxulator кор мекунанд, барои санҷиши беҳбудиҳо дар код барои дастгирии Linux иҷро карда шаванд. Тақрибан 400 санҷиш ноком мешаванд ва ислоҳро талаб мекунанд (баъзе хатогиҳо дар натиҷаи мусбатҳои бардурӯғ ба вуҷуд меоянд, баъзеҳо ислоҳи ночизро талаб мекунанд, аммо дигарон ҳастанд, ки илова кардани дастгирии зангҳои нави системаро барои ислоҳ талаб мекунанд). Кор барои тоза кардани рамзи Linuxulator ва содда кардани ислоҳи хатогӣ анҷом дода шуд. Часбчаҳо бо дастгирии атрибутҳои васеъ ва занги системаи fexecve омода карда шудаанд, аммо ҳанӯз баррасӣ нашудаанд.

    • Ҷаласаҳои гурӯҳи корӣ, ки барои анҷом додани интиқоли рамзҳои сарчашма аз системаи мутамаркази идоракунии манбаъҳои Subversion ба системаи ғайримарказонидашудаи Git таъсис дода шудаанд, идома доранд. Ҳисобот бо пешниҳодҳо оид ба муҳоҷират дар марҳилаи омодасозӣ қарор дорад.
    • В rtld (пайвандкунандаи вақти корӣ) ҳолати беҳтари иҷроиши мустақим (“/libexec/ld-elf.so.1 {path} {arguments}”).
    • Лоиҳаи санҷиши бефосилаи ядрои FreeBSD бо истифода аз системаи syzkaller инкишофро идома медиҳад. Дар давраи ҳисоботӣ мушкилот дар стеки шабакавӣ ва коди кор бо ҷадвалҳои дескриптори файлҳо, ки бо истифода аз syzkaller муайян шудаанд, бартараф карда шуданд. Пас аз ташхиси хатогӣ, ба стеки SCTP тағиротҳо илова карда шуданд, то хатогиҳоро осонтар кунанд. Қоидаҳо ба маҷмӯи стресс2 барои муайян кардани регрессияҳои имконпазир илова карда шуданд. Дастгирии иловашуда барои санҷиши номуайянии зангҳои система, аз ҷумла copy_file_range(), __realpathat() ва зерсистемаи Capsicum. Кор барои пӯшонидани қабати эмулятсияи Linux бо санҷиши fuzz идома дорад. Мо хатогиҳои дар гузоришҳои охирини Coverity Scan қайдшударо таҳлил ва бартараф кардем.
    • Системаи муттаҳидсозии пайваста ба иҷрои ҳама санҷишҳои филиали сар танҳо бо истифода аз clang/lld гузашт. Ҳангоми санҷиши RISC-V, ташаккули тасвири пурраи диск барои санҷишҳо дар QEMU бо истифода аз OpenSBI таъмин карда мешавад. Вазифаҳои нав барои санҷиши тасвирҳо ва мошинҳои виртуалии powerpc64 илова карда шуданд (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Корҳо оид ба интиқоли пакети санҷишии Kyua аз портҳо (devel/kyua) ба системаи асосӣ барои ҳалли мушкилот (бастаҳо хеле суст насб карда мешаванд), ки ҳангоми истифодаи Kyua дар архитектураҳои нав ба вуҷуд меоянд, ки таҳияи онҳо бо истифода аз эмулятор ё FPGA. Интегратсия ба системаи базавӣ санҷиши платформаҳои дарунсохт ва интерфейсро бо системаҳои пайвастаи муттаҳидшавӣ ба таври назаррас содда мекунад.
    • Лоиҳа барои оптимизатсияи кори драйвери пули шабакавӣ оғоз шудааст агар_bridge, ки як мутекси ягонаро барои бастани маълумоти дохилӣ истифода мебарад, ки имкон намедиҳад, ки дар системаҳои дорои миқдори зиёди муҳити зиндон ё мошинҳои виртуалӣ дар як шабака муттаҳид шаванд. Дар ин марҳила, ба код санҷишҳо илова карда шуданд, то ки ҳангоми навсозии кор бо қулфҳо пешгирӣ карда шаванд. Имконияти истифодаи ConcurrencyKit барои мувозӣ кардани коркардкунандагони интиқоли маълумот (bridge_input(), bridge_output(), bridge_forward(), ...) баррасӣ мешавад.
    • Зангҳои нави системаи sigfastblock илова карда шуд, то ба ришта имкон диҳад, ки блоки хотираро барои коркарди сигнали зуд муайян кунад, то кори коркардкунандагони истисноро беҳтар кунад.
    • Ядро барои дастурҳои атомии LSE (Large System Extension), ки аз ҷониби системаҳои ARMv8.1 дастгирӣ мешаванд, илова мекунад. Ин дастурҳо барои беҳтар кардани кор ҳангоми кор дар тахтаҳои Cavium ThunderX2 ва AWS Graviton 2 талаб карда мешаванд.Тағйироти иловашуда дастгирии LSE-ро муайян мекунанд ва татбиқи атомиро дар асоси онҳо ба таври динамикӣ имкон медиҳанд. Ҳангоми санҷиш, истифодаи LSE имкон дод, ки вақти протсессор ҳангоми васл кардани ядро ​​​​15% кам карда шавад.
    • Оптимизатсияи фаъолият анҷом дода шуд ва функсияҳои асбобҳо барои файлҳои иҷрошаванда дар формати ELF васеъ карда шуданд.
      Дастгирии иловашуда барои кэшкунии иттилооти ислоҳи DWARF, ҳалли мушкилот дар утилитаҳои elfcopy/objcopy, коркарди DW_AT_ranges иловашуда,
      readelf қобилияти рамзкушоӣ кардани парчамҳои PROTMAX_DISABLE, STKGAP_DISABLE ва WXNEEDED, инчунин Xen ва GNU Build-ID-ро амалӣ мекунад.

  • Амният
    • Барои беҳтар кардани кори FreeBSD дар муҳитҳои абрии Azure, кор оид ба дастгирии механизми HyperV Socket идома дорад, ки имкон медиҳад интерфейси розетка барои ҳамкории байни системаи меҳмон ва муҳити мизбон бидуни таъсиси шабака истифода шавад.
    • Корҳо оид ба таъмин намудани сохторҳои такроршавандаи FreeBSD идома доранд, ки имкон медиҳад, ки файлҳои иҷрошавандаи ҷузъҳои система маҳз аз кодҳои сарчашмаи эълоншуда тартиб дода шаванд ва тағйироти беруниро дар бар нагиранд.
    • Ба утилитаи elfctl қобилияти назорат кардани дохил кардани механизмҳои муҳофизати иловагӣ (ASLR, PROT_MAX, холигии стек, харитасозии W+X) дар сатҳи равандҳои инфиродӣ илова карда шудааст.
  • Системаҳои нигоҳдорӣ ва файлҳо
    • Корҳо оид ба татбиқи қобилияти NFS дар канали иртиботи рамзшуда дар асоси TLS 1.3, ба ҷои истифодаи Kerberos (sec=krb5p), ки бо рамзгузории танҳо паёмҳои RPC маҳдуд аст ва танҳо дар нармафзор амалӣ карда мешавад, идома дорад. Татбиқи нав стеки TLS-и ядроиро истифода мебарад, то суръатбахшии сахтафзорро фаъол созад. Рамзи NFS бар TLS қариб барои санҷиш омода аст, аммо ба ҳар ҳол кореро барои дастгирии сертификатҳои муштарии имзошуда ва мутобиқ кардани стеки ядрои TLS барои фиристодани маълумоти NFS талаб мекунад (патчҳо барои қабул аллакай омодаанд).
  • Дастгирии сахтафзор
    • Кор барои илова кардани дастгирӣ барои x86 CPU Hygon Чин дар асоси технологияҳои AMD идома дорад;
    • Ҳамчун як қисми CheriBSD, як фардкунандаи FreeBSD барои меъмории протсессори тадқиқотӣ ЧЕРИ (Capability Hardware Enhanced Instructions RISC), дастгирии протсессори ARM Morello идома дорад, ки системаи назорати дастрасии хотираи CHERI-ро дар асоси модели амнияти лоиҳаи Capsicum дастгирӣ мекунад. Чипи Морелло ният доранд озод дар 2021. Айни замон кор ба илова кардани дастгирӣ барои платформаи Arm Neoverse N1, ки Мореллоро қудрат медиҳад, нигаронида шудааст. Бандари ибтидоии CheriBSD барои меъмории RISC-V пешниҳод карда шуд. Таҳияи CheriBSD барои прототипи истинод ба CHERI дар асоси меъмории MIPS64 идома дорад.
    • Интиқоли FreeBSD барои 64-бита SoC NXP LS1046A дар асоси протсессори ARMv8 Cortex-A72 бо муҳаррики суръатбахшии коркарди бастаи шабакавӣ, 10 Гб Ethernet, PCIe 3.0, SATA 3.0 ва USB 3.0 идома дорад. Айни замон ронандагони QorIQ ва LS1046A, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC, QorIQ LS10xx SDHCI барои интиқол ба таркиби асосии FreeBSD омода мешаванд.
    • Драйвери ena ба версияи 2.1.1 бо дастгирии насли дуюми адаптерҳои шабакавии ENAv2 (Elastic Network Adapter) навсозӣ шудааст, ки дар инфрасохтори Elastic Compute Cloud (EC2) барои ташкили иртибот байни гиреҳҳои EC2 бо суръати то 25 Гб/ истифода мешаванд. с. Навсозии ENA 2.2.0 омода карда мешавад.
    • Такмилдиҳии бандари FreeBSD барои платформаи powerpc64 идома дорад. Таваҷҷӯҳ ба таъмини иҷрои босифат дар системаҳо бо протсессори IBM POWER8 ва POWER9 нигаронида шудааст. Дар давраи ҳисоботӣ, FreeBSD-CURRENT барои истифодаи компилятори LLVM/Clang 10.0 ва пайвандгари lld ба ҷои GCC интиқол дода шуд. Бо нобаёнӣ, системаҳои powerpc64 ELFv2 ABI-ро истифода мебаранд ва дастгирии ELFv1 ABI қатъ карда шудааст. FreeBSD-SABLE ҳоло ҳам gcc 4.2.1 дорад. Мушкилот бо драйверҳои virtio, aacraid ва ixl ҳал карда шуданд. Дар системаҳои powerpc64 QEMU-ро бидуни дастгирии Huge Pages кор кардан мумкин аст.
    • Кор барои татбиқи дастгирии меъмории RISC-V идома дорад. Дар шакли кунунии худ, FreeBSD аллакай дар тахтаи SiFive Hifive Unleashed бомуваффақият бор мекунад, ки барои он драйверҳо омода карда шудаанд.
      UART, SPI ва PRCI, нармафзори OpenSBI ва SBI 0.2 -ро дастгирӣ мекунад. Дар давраи ҳисоботӣ кор ба муҳоҷират аз GCC ба clang ва lld нигаронида шудааст.

  • Барномаҳо ва системаи порт
    • Ҷамъоварии бандарҳои FreeBSD аз ҳадди 39 ҳазор бандар гузаштааст, шумораи PR-ҳои пӯшида каме аз 2400 зиёд аст, ки 640 PR то ҳол мураттаб карда нашудаанд. Дар давраи ҳисоботӣ аз 8146 таҳиякунанда 173 тағйирот ворид карда шуд. Чаҳор иштирокчиёни нав ҳуқуқи коммитаторро гирифтанд (Лоик Бартолетти, Микаэл Уранкар, Кайл Эванс, Лоренцо Сальвадор). Илова карда шуд USES = парчами qca ва хориҷ USES = парчами zope (аз сабаби номувофиқӣ бо Python 3). Кор барои хориҷ кардани Python 2.7 аз дарахти портҳо идома дорад - ҳама портҳои дар асоси Python 2 бояд ба Python 3 интиқол дода шаванд ё хориҷ карда мешаванд. Менеҷери бастаи pkg барои нашри 1.13.2 навсозӣ шудааст.
    • Ҷузъҳои стеки графикии навсозӣ ва портҳои марбут ба xorg.
      Сервери X.org ба версияи 1.20.8 (қаблан дар филиали 1.18 фиристода шуда буд) нав карда шуд, ки ин ба FreeBSD имкон дод, ки пас аз udev/evdev барои коркарди дастгоҳҳои воридотӣ истифода барад. Бастаи Mesa бо нобаёнӣ ба ҷои DRI3 тамдиди DRI2 истифода шудааст. Корҳо барои нигоҳ доштани драйверҳои графикӣ, стек дастгоҳи вурудӣ ва ҷузъҳои drm-kmod (порте, ки ба кори модулҳои amdgpu, i915 ва radeon DRM имкон медиҳад, бо истифода аз чаҳорчӯбаи linuxkpi барои мутобиқат бо Менеҷери Rendering Direct Linux ядрои Linux) идома дорад. Навшуда.

    • Мизи кории KDE Plasma, KDE Frameworks, Барномаҳои KDE ва Qt навсозӣ карда мешаванд ва ба версияҳои охирин навсозӣ карда мешаванд. Ба портҳо барномаи нави kstars (атласи ситора) илова карда шуд.
    • Барои аз байн бурдани тағйироти регрессивӣ дар мудири равзанаи xfwm4, ки пас аз навсозии Xfce ба версияи 4.14 пайдо шуд, корҳо анҷом дода шуданд (масалан, артефактҳо ҳангоми ороиши тирезаҳо пайдо шуданд).
    • Порти Wine барои баровардани Wine 5.0 навсозӣ шудааст (қаблан 4.0.3 пешниҳод карда мешуд).
    • Аз версияи 1.14 сар карда, компилятори забони Go дастгирии расмии меъмории ARM64 барои FreeBSD 12.0 илова кард.
    • OpenSSH дар системаи асосӣ барои баровардани 7.9p1 навсозӣ шудааст.
    • Китобхонаи sysctlmibinfo2 дар портҳо (devel/libsysctlmibinfo2) амалӣ ва ҷойгир карда шудааст, ки API-ро барои дастрасӣ ба sysctl MIB ва тарҷумаи номҳои sysctl ба идентификаторҳои объект (OIDs) таъмин мекунад.
    • Навсозии тақсимот тавлид шудааст NomadBSD 1.3.1, ки нашри FreeBSD аст, ки барои истифода ҳамчун мизи кории сайёр аз диски USB пурборшаванда мутобиқ карда шудааст. Муҳити графикӣ ба мудири тиреза асос ёфтааст Кушодан. Барои насб кардани дискҳо истифода мешавад DSBMD (монтажи CD9660, FAT, HFS+, NTFS, Ext2/3/4 дастгирӣ мешавад), барои танзими шабакаи бесим - wifimgr, ва барои назорати садо - DSBMixer.
    • Оғоз кор дар бораи навиштани ҳуҷҷатҳои мукаммал барои мудири муҳити зиндон кӯза. Пот 0.11.0 барои баровардан омода карда мешавад, ки асбобҳоро барои идоракунии стек шабака дар бар мегирад.

Манбаъ: opennet.ru

Илова Эзоҳ