Ҳисобот оид ба рушди FreeBSD Q2019 XNUMX

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

  • Масъалаҳои умумӣ ва системавӣ
    • Гурӯҳи асосӣ умуман имкони дохил кардани кодро ба системае, ки таҳти литсензияи BSD бо шартномаи патентии иловагӣ тақсим карда мешавад, тасдиқ кардааст (BSD + Патент), аммо қарор дар бораи дохил кардани ҳар як ҷузъи система дар доираи ин иҷозатнома бояд алоҳида тасдиқ карда шавад;
    • Ҷаласаи аввалини гурӯҳи корӣ, ки барои анҷом додани интиқоли рамзҳои сарчашма аз системаи мутамаркази идоракунии сарчашма Subversion ба системаи ғайримарказонидашудаи Git таъсис дода шудааст, баргузор гардид. Муҳокима дар бораи имконпазирии муҳоҷират идома дорад ва қарорҳо оид ба бисёр масъалаҳо ҳанӯз таҳия карда намешаванд (масалан, бо саҳм чӣ кор кардан лозим аст/, оё зарур аст, ки хэшҳоро дар анбори кунунии git барқарор кунед ва чӣ гуна беҳтар кардани санҷиши ӯҳдадор мекунад);
    • Аз NetBSD интиқол дода шуд Маҷмӯаи асбобҳои KCSAN (Kernel Concurrency Sanitizer), ки ба шумо имкон медиҳад шароити мусобиқаро байни риштаҳои ядрое, ки дар CPU-ҳои гуногун кор мекунанд, муайян кунед;
    • Кор барои истифода бурдани ассемблери дарунсохташудаи Clang (IAS) ба ҷои ассемблери GNU binutils идома дорад;
    • Инфрасохтори эмулятсияи муҳити Linux (Linuxulator) барои кор дар меъмории ARM64 мутобиқ карда шудааст. Даъвати системаи "renameat2" -ро амалӣ кард. Утилитаи strace барои ташхиси мушкилот дар файлҳои иҷрошавандаи Linux, ки дар Linuxulator кор мекунанд, такмил дода шудааст. Мушкилоти садамаҳо ҳангоми пайваст кардани файлҳои иҷрошаванда бо glibc нав ҳал карда шуд. Портҳо бо ҷузъҳои Linux барои Linuxulator ба CentOS 7.7 навсозӣ шудаанд;
    • Дар доираи барномаи Google Summer of Code, донишҷӯён шаш лоиҳаро бомуваффақият анҷом доданд: татбиқи утилитаи ягонаи пинг (IPv4/IPv6) омода карда шуд, асбобҳо барои санҷиши деворҳо ва муайян кардани хатогиҳо дар ядро ​​​​(санитизатори ядро) таҳия карда шуданд, mac_ipacl. модул пешниҳод карда шуд, код барои фишурдани хотираи виртуалӣ навишта шуд ва кор барои ҷудо кардани раванди сохтани порт аз насби маҳаллӣ анҷом дода шуд;
    • Лоиҳаи санҷиши бефосилаи ядрои FreeBSD бо истифода аз система рушдро идома медиҳад syzkaller. Дар давраи хисоботй бо ёрии syzkaller зиёда аз дах хатогихо ошкор ва бартараф карда шуданд. Барои идора кардани syzkaller дар мошинҳои виртуалӣ дар асоси bhyve, сервери алоҳида бахшида шудааст, ва истифода
      syzbot озмоиши зерсистемаҳои гуногуни FreeBSD-ро дар инфрасохтори Google муқаррар кардааст. Интиқоли маълумотро дар бораи ҳамаи садамаҳо ба хидмати backtrace.io барои содда кардани гурӯҳбандӣ ва таҳлили онҳо ташкил намуд;

    • Корҳо барои навсозии татбиқи zlib дар сатҳи ядро ​​​​ идома доранд.
      Рамзи марбут ба фишурда аз zlib 1.0.4, ки зиёда аз 20 сол пеш нашр шуда буд, ба пойгоҳи коди кунунии zlib 1.2.11 интиқол дода шуд. Барои ягона кардани дастрасӣ ба zlib, ба ядро ​​​​функсияҳои compress, compress2 ва uncompress илова карда шудаанд. Коде, ки кори протоколи PPP-ро аз зерсистемаи netgraph таъмин мекунад, ба ҷои нашри худи ин китобхона ба истифодаи татбиқи системаи zlib интиқол дода шудааст. kern_ctf.c, opencryptodeflate, geom_uzip, subr_compressor, зерсистемаҳои низ ба zlib нав интиқол дода шуданд.
      if_mxge, bxe навсозӣ ва ng_deflate;

    • Интерфейси нави ядро ​​​​кор карда мешавад sysctlinfo, ки ба шумо имкон медиҳад, ки элементҳоро дар базаи параметрҳои sysctl пайдо кунед, ки дар шакли MIB (Базаи иттилоотии идоракунӣ) коркард карда мешаванд ва маълумот дар бораи объектҳо ба фазои корбар интиқол дода мешаванд.
  • Амният
    • Модули ядро ​​​​кор карда шуд mac_ipacl, дар асоси TrustedBSD MAC Framework ва татбиқи системаи назорати дастрасӣ барои танзимоти стеки шабакавӣ барои муҳити зиндон. Масалан, бо истифода аз mac_ipacl, мудири системаи ҳост метавонад корбари решавӣ дар муҳити зиндонро аз тағир ё гузоштани суроғаҳои IP ё танзимоти зершабақа барои интерфейсҳои шабакавии муайян пешгирӣ кунад. Системаи пешниҳодшудаи ҳатмии назорати дастрасӣ Ин имкон медиҳад, рӯйхати суроғаҳои IP ва зершабақаҳоеро, ки барои Jail иҷозат дода шудаанд, муқаррар кунед, насби муайяни IP ва зершабакаҳоро дар зиндон манъ кунед ё тағир додани параметрҳоро танҳо барои интерфейсҳои муайяни шабака маҳдуд кунед;
    • Intel порти стеки нармафзорро ба лоиҳа тӯҳфа кард TPM 2.0 (Модули платформаи боэътимод) барои интерфейс бо чипи компютерии бехатар, ки одатан барои боркунии тасдиқшудаи нармафзор ва боркунаки OS истифода мешавад. Ҷузъҳои стек дар шакли бандарҳои амниятӣ/tpm2-tss, security/tpm2-tools ва security/tpm2-abrmd пешниҳод карда мешаванд. Порти tpm2-tss китобхонаҳоро барои истифодаи API-и TPM2 дар бар мегирад, tpm2-tools утилитаҳои сатри фармонро барои иҷрои амалиёти TPM таъмин мекунад ва tpm2-abrmd дорои раванди заминавии ҷузъҳои Broker Access TPM ва Resource Manager, ки дархостҳои корбарони гуногуни TPM-ро мултиплекс мекунад ба як дастгоҳ. Илова ба боркунии тасдиқшуда дар FreeBSD, TPM метавонад барои баланд бардоштани амнияти Strongswan IPsec, SSH ва TLS тавассути иҷрои амалиёти криптографӣ дар чипи алоҳида истифода шавад;
    • Ядро барои меъмории amd64 барои пурборкунӣ бо истифода аз техникаи муҳофизати W^X (навиштани XOR execute) мутобиқ карда шудааст, ки маънои онро дорад, ки ба саҳифаҳои хотира ҳамзамон барои навиштан ва иҷро дастрасӣ пайдо кардан мумкин нест (акнун ядроро бо истифода аз саҳифаҳои хотираи иҷрошаванда, ки барои онҳо навиштан мумкин аст, бор кардан мумкин аст) манъ аст). Усули нави муҳофизати ядро ​​ба шохаи HEAD дохил карда шудааст ва ба версияҳои FreeBSD 13.0 ва 12.2 дохил карда мешавад;
    • Барои зангҳои системаи mmap ва mprotect ба амал бароварда шуд macro PROT_MAX(), ки ба шумо имкон медиҳад, ки маҷмӯи парчамҳои маҳдудияти дастрасиро барои тағироти минбаъда иҷозат диҳед (PROT_READ, PROT_WRITE, PROT_EXEC). Бо истифода аз PROT_MAX(), таҳиякунанда метавонад интиқоли минтақаи хотираро ба категорияи иҷрошаванда манъ кунад ё хотираи дархостро, ки иҷроишро иҷозат намедиҳад, аммо баъдтар ба иҷрошаванда табдил додан мумкин аст. Масалан, як минтақаи хотира метавонад барои навиштан танҳо дар тӯли пайвасти динамикӣ ё тавлиди коди JIT кушода бошад, аммо пас аз анҷоми навиштан, он танҳо барои хондан ва иҷро кардани он маҳдуд мешавад ва дар оянда, дар сурати осеб дидан, ҳамлакунанда навиштанро барои ин блоки хотира фаъол карда наметавонад. Илова ба PROT_MAX(), sysctl vm.imply_prot_max низ амалӣ карда мешавад, ки ҳангоми фаъолкунӣ маҷмӯи парчамҳои дурустро дар асоси параметрҳои ибтидоии занги аввал ба mmap муайян мекунад;
    • Барои баланд бардоштани муҳофизат аз истифодаи осебпазириҳо, ба ғайр аз техникаи тасодуфии фазои суроғавӣ (ASLR), механизми тасодуфии ҷуброн кардани нишондиҳандаҳое, ки ба чаҳорчӯбаи стеки ибтидоӣ ва сохторҳои дар стек ҷойгиршуда бо маълумот дар бораи муҳити зист, параметрҳои оғози барнома ва додаҳо муроҷиат мекунанд. барои тасвирҳои иҷрошаванда дар формати ELF пешниҳод карда мешавад;
    • Кор барои нест кардани функсияи gets хатарнок аз libc (аз стандарти C11 сар карда, ин функсия аз мушаххасот хориҷ карда шудааст) ва ислоҳи портҳое, ки то ҳол ин функсияро истифода мебаранд, анҷом дода шуд. Ба нақша гирифта шудааст, ки тағирот дар FreeBSD 13.0 пешниҳод карда шавад;
    • Лоиҳаи таҷрибавӣ барои эҷоди асбобҳо барои ташкили муҳити зиндон дар асоси чаҳорчӯба оғоз шудааст кӯза барои эҷод ва содироти тасвирҳо, ки ба Docker монанд амалӣ карда мешаванд ва драйвер бодиянишин, ки интерфейсро барои ба таври динамикӣ оғоз кардани барномаҳо дар муҳити зиндон таъмин мекунад. Модели пешниҳодшуда ба мо имкон медиҳад, ки равандҳои эҷоди муҳити зиндон ва ҷобаҷогузории барномаҳоро дар онҳо ҷудо кунем. Яке аз ҳадафҳои лоиҳа ин фароҳам овардани васила барои идора кардани зиндонҳо ҳамчун контейнерҳои услуби Docker мебошад;
  • Системаҳои нигоҳдорӣ ва файлҳо
    • Аз NetBSD то утилитаи "makefs" ҳаракат кард Дастгирии системаи файлии FAT (msdosfs). Тағиротҳои омодашуда ба шумо имкон медиҳанд, ки тасвирҳои FS-ро бо FAT бидуни истифодаи драйвери md ва бидуни ваколати реша эҷод кунед;
    • Коркарди дубораи драйвери зерсистемаи FUSE (системаи файлӣ дар USERspace) анҷом ёфт, ки имкон медиҳад татбиқи системаи файлиро дар фазои корбар эҷод кунад. Драйвере, ки дар аввал фиристода шуда буд, дорои хатогиҳои зиёд буд ва дар асоси FUSE 7.8, ки 11 сол пеш бароварда шуда буд, асос ёфтааст. Дар доираи лоиҳаи модернизатсияи драйверҳо дастгирии протоколи FUSE 7.23 амалӣ карда шуд, рамзи тафтиши ҳуқуқҳои дастрасӣ дар тарафи ядро ​​("-o default_permissions") илова карда шуд, зангҳо ба VOP_MKNOD, VOP_BMAP ва VOP_ADVLOCK илова карда шуданд, қобилияти қатъ кардани амалиёти FUSE таъмин карда шуд, дастгирии қубурҳои номаълум ва розеткаҳои unix дар fusefs илова карда шуд, истифодаи kqueue барои /dev/fuse имконпазир шуд, имкон дошт, ки параметрҳои васлкунӣ тавассути "mount -u" навсозӣ карда шаванд, дастгирии иловашуда барои содироти fusefs тавассути NFS, баҳисобгирии RLIMIT_FSIZE амалӣ карда шуд, парчамҳои FOPEN_KEEP_CACHE ва FUSE_ASYNC_READ илова карда шуд, оптимизатсияи назарраси иҷроиш ва ташкили кэшро такмил дод. Драйвери нав ба шохаҳои сар ва устувор/12 дохил карда шудааст (ба FreeBSD 12.1 дохил карда шудааст);
    • Татбиқи NFSv4.2 (RFC-7862) барои FreeBSD қариб ба анҷом расид. Дар давраи хисоботй диккати асосй ба санчиш дода шуд. Санҷишҳо барои тасдиқи мутобиқат бо татбиқи Linux анҷом дода шуданд, аммо санҷиши сервери pNFS бо NFSv4.2 то ҳол идома дорад. Умуман, код аллакай барои ҳамгироӣ ба шохаҳои сар/ҷории FreeBSD омода ҳисобида мешавад. Версияи нави NFS дастгирии функсияҳои posix_fadvise, posix_fallocate, шеваҳои SEEKHOLE/SEEKDATA дар lseek, амалиёти нусхабардории локалии қисмҳои файлро дар сервер (бе интиқол ба муштарӣ) илова мекунад;
  • Дастгирии сахтафзор
    • Лоиҳа барои беҳтар кардани кори FreeBSD дар ноутбукҳо оғоз гардид. Аввалин дастгоҳе, ки барои дастгирии сахтафзор дар FreeBSD санҷида шуд, ноутбуки насли ҳафтуми Lenovo X1 Carbon буд;
    • CheriBSD, як фардкунандаи FreeBSD барои меъмории протсессори тадқиқотӣ ЧЕРИ (Дастурҳои такмилёфтаи сахтафзори RISC), барои дастгирии протсессори дарпешистодаи ARM Morello навсозӣ шудааст, ки системаи назорати дастрасии хотираи CHERI-ро дар асоси модели амнияти тарҳи Capsicum дастгирӣ мекунад. Чипи Морелло ният доранд озод дар 2021. Таҳиягарони CheriBSD инчунин мониторинги таҳияи прототипи истинод CHERI дар асоси меъмории MIPS -ро идома медиҳанд;
    • Дастгирии васеъ барои микросхемаҳои RockChip RK3399, ки дар тахтаҳои RockPro64 ва NanoPC-T4 истифода мешаванд. Такмили муҳимтарин ин дастгирии eMMC ва таҳияи драйвери нав барои контроллери eMMC, ки дар тахта истифода мешавад;
    • Корҳо барои татбиқи дастгирии ARM64 SoC Broadcom BCM5871X бо протсессори ARMv8 Cortex-A57, ки барои истифода дар роутерҳо, шлюзҳо ва нигаҳдории шабака нигаронида шудаанд, идома доранд. Дар давраи хисоботй
      Дастгирии iProc PCIe васеъ карда шуд ва қобилияти истифодаи амалиёти криптографии сахтафзор барои суръат бахшидан ба IPsec илова карда шуд.
      Интегратсияи кодҳо ба филиали HEAD дар семоҳаи чорум дар назар аст;

    • Дар таҳияи бандари FreeBSD барои платформаи powerpc64 пешравиҳои назаррас ба даст омадаанд. Таваҷҷӯҳ ба таъмини иҷрои сифат дар системаҳо бо протсессори IBM POWER8 ва POWER9 нигаронида шудааст, аммо ихтиёрӣ амалиётро дар Mac-ҳои кӯҳнаи Apple Power, x500 ва Amiga A1222 дастгирӣ мекунад. Филиали powerpc*/12 интиқолро бо gcc 4.2.1 идома медиҳад ва филиали powerpc*/13 ба зудӣ ба llvm90 интиқол дода мешавад. Аз 33306 порт 30514-тоаш бомуваффакият васл карда шудааст;
    • Интиқоли FreeBSD барои 64-бита SoC NXP LS1046A дар асоси протсессори ARMv8 Cortex-A72 бо муҳаррики суръатбахшии коркарди бастаи шабакавӣ, 10 Гб Ethernet, PCIe 3.0, SATA 3.0 ва USB 3.0 идома дорад. Дар давраи ҳисоботӣ дастгирии интерфейси шабакавии USB 3.0, SD/MMC, I2C, DPAA ва GPIO амалӣ карда шуд. Нақшаи дастгирии QSPI ва оптимизатсияи кори интерфейси шабака вуҷуд дорад. Анҷоми корҳо ва шомил шудан ба филиали HEAD дар семоҳаи 4-уми соли 2019 дар назар аст;
    • Драйвери ena барои дастгирии насли дуюми адаптерҳои шабакавии ENAv2 (Elastic Network Adapter), ки дар инфрасохтори Elastic Compute Cloud (EC2) барои ташкили иртибот байни гиреҳҳои EC2 бо суръати то 25 Гб/с истифода мешаванд, нав карда шудааст. Дастгирии NETMAP ба драйвери ena илова ва санҷида шудааст ва тарҳбандии хотира барои фаъол кардани режими LLQ дар муҳити Amazon EC2 A1 мутобиқ карда шудааст;
  • Барномаҳо ва системаи порт
    • Ҷузъҳои стеки графикии навсозӣ ва портҳои марбут ба xorg. Портҳое, ки USE_XORG ва XORG_CAT-ро истифода мебаранд, ба ҷои занг задан ба bsd.xorg.mk тавассути bsd.port.mk ба чаҳорчӯбаи USES интиқол дода шуданд. Чунин портҳо ҳоло парчами "USES = xorg" -ро дар файлҳои худ дохил мекунанд. Функсияи XORG_CAT аз bsd.xorg.mk ҷудо карда шудааст ва ҳоло бо парчами "USES=xorg-cat" фаъол карда шудааст. Асбобҳо барои мустақиман тавлид кардани портҳои xorg аз анбори git
      freedesktop.org, ки масалан, ба шумо имкон медиҳад бандарҳоро барои версияҳои ҳанӯз нашрнашуда эҷод кунед. Дар оянда мо нақша дорем, ки асбобҳоро барои истифодаи системаи васлкунии мезон ба ҷои худкор барои сохтани портҳои xorg омода созем.

      Корҳо барои тоза кардани бандарҳои кӯҳнаи xorg, ки ба ҷузъҳои дигар дастгирӣ намешаванд, анҷом дода шуд, масалан, порти x11/libXp хориҷ карда шуд ва портҳои x11/Xxf86misc, x11-fonts/libXfontcache ва графикӣ/libGLw бекор карда шуданд. ;

    • Корҳо барои беҳтар кардани дастгирии Java 11 ва версияҳои навтар дар FreeBSD, инчунин интиқоли баъзе тағйирот ба филиали Java 8 анҷом дода шуданд.Баъди дастгирии чунин хусусиятҳои нави Java 11, ба монанди Java Flight Recorder, HotSpot Serviceability Agent, HotSpot Debugger амалӣ карда шуд. барои FreeBSD, DTrace, Javac Server, Java Sound ва SCTP, кор ба он гузашт, ки ҳама санҷишҳои мутобиқат гузаранд. Шумораи нокомиҳо ҳангоми супоридани санҷишҳо аз 50 ба 2 кам карда шуд;
    • Мизи кории KDE Plasma, Frameworks KDE, Барномаҳои KDE ва Qt навсозӣ карда мешаванд ва ба версияҳои охирин таҷдид карда мешаванд;
    • Портҳо бо мизи кории Xfce навсозӣ карда шуданд 4.14;
    • Дарахти бандарҳои FreeBSD аз 38000 2000 порт гузашт, шумораи PR-ҳои пӯшида каме бештар аз 400 аст, ки 7340 PR то ҳол ҳал нашудааст. Дар давраи ҳисоботӣ аз 169 таҳиягар 1.12 тағйирот ворид карда шуд. Ду иштирокчии нав (Сантош Раҷу ва Дмитрий Гоутник) ҳуқуқҳои коммитро гирифтанд. Нашри нави менеҷери бастаи pkg 2.0.4 бо дастгирии қабатҳои дарахти портҳо ва тоза кардани bsd.sites.mk нашр шуд. Дар байни навсозиҳои назарраси версияи портҳо инҳоянд: Lazarus 9.0, LLVM 5.30, Perl11, PostgreSQL 2.6, Ruby 69.0.1, Firefox 68.1.0, Firefox-esr 76.0, Chromium XNUMX;
    • Таҳияи лоиҳа идома дорад ClonOS, инкишоф ёфта истодааст тақсимоти махсус барои густариши инфрасохтори сервери виртуалӣ. Дар робита ба вазифаҳое, ки ҳал мекунад, ClonOS ба системаҳо ба монанди Proxmox, Triton (Joyent), OpenStack, OpenNebula ва Amazon AWS шабоҳат дорад, ки фарқи асосӣ аз он истифодаи FreeBSD ва қобилияти идора кардан, ҷойгир кардан ва идора кардани контейнерҳои FreeBSD Jail мебошад. муҳити виртуалӣ дар асоси гипервизорҳои Bhyve ва Xen. Тағйироти охирин дастгирӣро дар бар мегиранд
      cloud-init барои Linux/BSD VM ва cloudbase-init барои Windows VM, оғоз кардани гузариш ба истифодаи тасвирҳои ватанӣ, бо истифода аз Jenkins CI барои санҷиши сохтмонҳо ва анбори нави pkg барои насб
      ClonOS аз бастаҳо.

Манбаъ: opennet.ru

Илова Эзоҳ