2020 жылдың бірінші тоқсанындағы FreeBSD даму есебі

жарияланды 2020 жылдың қаңтар-наурыз аралығындағы FreeBSD жобасының дамуы туралы есеп. Өзгерістердің арасында мыналарды атап өтуге болады:

  • Жалпы және жүйелі мәселелер
    • GCC компиляторлар жинағы пайдаланылмаған gperf, gcov және gtc (құрылғы ағашының компиляторы) бірге FreeBSD-CURRENT бастапқы тармағынан жойылды. Clang қолданбасын қолдамайтын барлық платформалар порттардан орнатылған сыртқы құрастыру құралдарына көшірілді. Негізгі жүйе GCC 4.2.1 ескірген шығарылымымен жеткізілді және 4.2.2 нұсқасының FreeBSD базалық құрамдастары үшін қолайсыз деп танылған GPLv3 лицензиясына көшуіне байланысты жаңа нұсқаларды біріктіру мүмкін болмады. Ағымдағы GCC шығарылымдары, соның ішінде GCC 9, әлі де бумалар мен порттардан орнатылуы мүмкін.
    • Қоршаған ортадағы эмуляциялық инфрақұрылымда Linux (Linuxulator) sendfile жүйелік шақыруын, TCP_CORK режимін (nginx үшін қажет) және MAP_32BIT жалаушасын қолдауды қосты (Mono арқылы пакеттерді іске қосу мәселесін шешеді). Ubuntu Bionic). 2.30 нұсқасынан жаңа glibc пайдаланған кездегі DNS мәселелерін шешу (мысалы, CentOS 8).
      Үздіксіз интеграция инфрақұрылымы LTP іске қосу үшін жұмыстарды орындау мүмкіндігін береді (Linux Сынақ жобасы) басқарады Linuxқолдау үшін кодқа енгізілген жақсартуларды тестілеуге арналған үлатор LinuxШамамен 400 сынақ сәтсіз аяқталды және оларды түзету қажет (кейбір қателер жалған оң нәтижелерден туындайды, кейбіреулері қарапайым түзетулерді қажет етеді, ал басқалары жаңа жүйелік шақыруларға қолдау қосуды қажет етеді). Кодты тазалау аяқталды. Linuxulator және отладканы жеңілдету. Кеңейтілген атрибуттарды және fexecve жүйелік шақыруын қолдайтын патчтар дайындалды, бірақ әлі қаралған жоқ.
    • Орталықтандырылған Subversion бастапқы кодты басқару жүйесінен орталықтандырылмаған Git жүйесіне бастапқы кодты көшіру үшін құрылған жұмыс тобының отырыстары жалғасуда. Көші-қон ұсыныстары бар есеп дайындалуда.
    • В rtld (орындау уақытының сілтемесі) жақсартылған тікелей орындау режимі ("/libexec/ld-elf.so.1 {path} {аргументтер}").
    • FreeBSD ядросын syzkaller жүйесін пайдаланып фузингтеу жобасы дамуын жалғастыруда. Есепті кезеңде желілік стектегі және syzkaller көмегімен анықталған файлдық дескриптор кестелерімен жұмыс істеу кодтарындағы мәселелер шешілді. Қателерді диагностикалаудан кейін, SCTP стегіне түзетуді жеңілдету үшін өзгерістер қосылды. Ықтимал регрессияларды анықтау ережелері stress2 жиынтығына қосылды. Жаңа жүйелік шақыруларды фузингтеу тестілеуін қолдау қосылды, соның ішінде copy_file_range(), __realpathat() және Capsicum ішкі жүйе шақырулары. Эмуляция қабатын фузингтеу тестілеуімен жабу жұмыстары жалғасуда. LinuxЖақында жүргізілген Coverity Scan есептерінде анықталған қателер талданып, түзетілді.
    • Үздіксіз интеграция жүйесі тек clang/lld көмегімен барлық бас тармақ сынақтарын орындауға ауыстырылды. RISC-V сынағы үшін OpenSBI көмегімен QEMU жүйесінде сынақтарды орындау үшін толық диск кескіні енді құрылады. Powerpc64 кескіндері мен виртуалды машиналарын сынауға арналған жаңа тапсырмалар қосылды (FreeBSD-head-powerpc64-images, FreeBSD-head-powerpc64-testvm).
    • Эмулятор немесе FPGA көмегімен жасалған жаңа архитектураларда Kyua пайдалану кезінде туындайтын мәселелерді шешу (бумалар өте баяу орналастырылады) үшін Kyua сынақ жиынтығын порттардан (devel/kyua) негізгі жүйеге көшіру бойынша жұмыс жүргізілуде. Негізгі жүйеге интеграция ендірілген платформаларды тестілеуді және үздіксіз интеграциялық жүйелермен араласуды айтарлықтай жеңілдетеді.
    • Желілік көпір драйверінің өнімділігін оңтайландыру жобасы іске қосылды. егер_көпір, ол ішкі деректерді құлыптау үшін жалғыз мутексті қолданып, бір желіге қосылған көптеген түрмелер немесе виртуалды машиналары бар жүйелерде қажетті өнімділікті болдырмайды. Құлыпты өңдеуді жаңғырту кезінде регрессияларды болдырмау үшін кодқа сынақтар қосылды. Деректерді тасымалдау өңдегіштерін (bridge_input(), bridge_output(), bridge_forward(), т.б.) параллельдеу үшін ConcurrencyKit пайдалану мүмкіндігі қарастырылуда.
    • Жаңа сигфастблок жүйесінің шақыруы қосылды, ол ағынға ерекше жағдайларды өңдеушілердің жұмысын жақсарту үшін жылдам сигнал өңдеушісі үшін жад блогын көрсетуге мүмкіндік береді.
    • Ядро енді ARMv8.1 жүйелері қолдайтын LSE (Large System Extension) атомдық нұсқауларын қолдайды. Бұл нұсқаулар Cavium ThunderX2 және AWS Graviton 2 тақталарындағы өнімділікті жақсарту үшін қажет. Қосылған өзгертулер LSE қолдауын анықтайды және осы нұсқауларға негізделген атомдық енгізуді динамикалық түрде қосады. Тестілеу кезінде LSE пайдалану ядроны құрастыруға кететін CPU уақытын 15%-ға қысқартты.
    • Өнімділікті оңтайландырулар жасалды және ELF орындалатын файлдарға арналған құралдар жинағының функционалдығы кеңейтілді.
      DWARF жөндеу ақпаратын кэштеуге қолдау қосылды, elfcopy/objcopy утилиталарындағы мәселелер шешілді, DW_AT_ranges өңдеуі қосылды,
      readelf енді PROTMAX_DISABLE, STKGAP_DISABLE және WXNEEDED жалауларының, сондай-ақ Xen және GNU Build-ID декодтауын қолдайды.
  • Қауіпсіздік
    • Azure бұлттық орталарында FreeBSD өнімділігін жақсарту үшін желі конфигурациясынсыз хост ортасымен қонақ жүйесінің өзара әрекеттесуі үшін розетка интерфейсін пайдалануға мүмкіндік беретін HyperV Socket механизміне қолдау көрсету бойынша жұмыс жүргізілуде.
    • Жүйе құрамдастарының орындалатын файлдары жарияланған бастапқы кодтан құрастырылғанын және ешқандай бөгде өзгерістердің болмауын қамтамасыз ететін қайталанатын FreeBSD құрастыруларын қамтамасыз ету бойынша жұмыс жүргізілуде.
    • elfctl утилитасы енді жеке процесс деңгейінде қосымша қорғау механизмдерін (ASLR, PROT_MAX, стек аралығы, W+X салыстыру) қосуды басқаруға мүмкіндік береді.
  • Сақтау және файлдық жүйелер
    • RPC хабарламаларын шифрлаумен шектелген және толығымен бағдарламалық құралда жүзеге асырылатын Kerberos (sec=krb5p режимі) пайдаланудың орнына TLS 1.3 негізіндегі шифрланған байланыс арнасы арқылы NFS жұмысын қосу жұмыстары жүргізілуде. Жаңа іске асыру аппараттық құралдарды жеделдетуге мүмкіндік беретін ядромен қамтамасыз етілген TLS стекін пайдаланады. NFS-over-TLS коды тестілеуге дерлік дайын, бірақ әлі де қол қойылған клиент сертификаттарын қолдауды және NFS деректерін жіберу үшін ядро ​​​​TLS стекін бейімдеуді қажет етеді (бұл функцияны алуға арналған патчтар бұрыннан бар).
  • Аппараттық қолдау
    • AMD технологияларына негізделген қытайлық x86 Hygon процессорларына қолдауды қосу жұмыстары жүргізілуде;
    • CheriBSD ішінде, зерттеу процессорының архитектурасына арналған FreeBSD шанышқысы CHERI (Capability Hardware Enhanced RISC Instructions), Capsicum жобасын қорғау үлгісіне негізделген CHERI жадқа қол жеткізуді басқару жүйесін қолдайтын ARM Morello процессорын қолдауды іске асыру жалғасуда. Морелло чипі жоспарлап отыр 2021 жылы шығарылды. Қазіргі уақытта жұмыс Морелло негізінде жатқан Arm Neoverse N1 платформасына қолдау қосуға бағытталған. RISC-V архитектурасына CheriBSD бастапқы порты шығарылды. MIPS64 архитектурасына негізделген CHERI анықтамалық прототипі үшін CheriBSD әзірлеу жалғасуда.
    • FreeBSD біріктірілген желілік жеделдету қозғалтқышы, 10 Гб Ethernet, PCIe 3.0, SATA 3.0 және USB 3.0 бар ARMv8 Cortex-A72 процессоры негізіндегі 64 биттік NXP LS1046A SoC жүйесіне тасымалдануын жалғастыруда. QorIQ және LS1046A драйверлері, GPIO, QorIQ LS10xx AHCI, VF610 I2C, Epson RX-8803 RTC және QorIQ LS10xx SDHCI қазіргі уақытта негізгі FreeBSD дистрибутивіне қосуға дайындалуда.
    • ena драйвері 25 Гбит/с дейінгі жылдамдықта EC2 түйіндері арасында қосылымды қамтамасыз ету үшін Elastic Compute Cloud (EC2) инфрақұрылымында пайдаланылатын екінші буын ENAv2 (Elastic Network Adapter) желілік адаптерлеріне қолдау көрсететін 2.1.1 нұсқасына жаңартылды. ENA 2.2.0 жаңартуы дайындалуда.
    • Powerpc64 платформасына арналған FreeBSD портындағы жұмыс жалғасуда. Негізгі назар IBM POWER8 және POWER9 процессорлары бар жүйелерде жоғары сапалы өнімділікті қамтамасыз етуге бағытталған. Есепті кезеңде FreeBSD-CURRENT GCC орнына LLVM/Clang 10.0 компиляторын және lld сілтемесін пайдалану үшін көшірілді. ELFv2 ABI әдепкі бойынша powerpc64 жүйелерінде қосылады және ELFv1 ABI қолдауы тоқтатылды. FreeBSD-STABLE әлі де gcc 4.2.1 пайдаланады. Virtio, aacraid және ixl драйверлеріне қатысты мәселелер шешілді. QEMU енді Powerpc64 жүйелерінде Huge Pages қолдауынсыз жұмыс істей алады.
    • RISC-V архитектурасын қолдауды енгізу бойынша жұмыс жалғасты. Қазіргі пішінінде FreeBSD драйверлері дайындалған SiFive Hifive Unleashed тақтасында сәтті жүктеледі.
      UART, SPI және PRCI қолдайды және OpenSBI және SBI 0.2 микробағдарламасын қолдайды. Есепті кезеңде жұмыс GCC-тен clang және lld-ке көшуге бағытталған.
  • Қолданбалар және порт жүйесі
    • FreeBSD порттарының жинағы 39 000 порттан асып түсті, 2400-ден сәл астам ашық PR бар, олардың 640-ы әлі шешілмеген. Есепті кезеңде 173 әзірлеушімен 8 146 өзгерту енгізілді. Төрт жаңа салымшыға (Лик Бартолетти, Микаэль Уранкар, Кайл Эванс және Лоренцо Сальвадор) авторлық құқықтар берілді. 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 пакеті әдепкі бойынша DRI2 орнына DRI3 кеңейтімін пайдалануға ауыстырылды. Графикалық драйверлерді, кіріс құрылғысының стегі мен drm-kmod компоненттерін (ядроның Direct Rendering Manager бағдарламасымен үйлесімділік үшін linuxkpi құрылымын пайдаланып, amdgpu, i915 және radeon үшін DRM модульдерін қосатын порт) жаңартып отыру жұмыстары жүргізілуде. Linux).
    • KDE Plasma жұмыс үстелі, KDE Frameworks, KDE қолданбалары және Qt жаңартылған және соңғы шығарылымдарға жаңартылған. Порттарға kstars (жұлдыз атлас) жаңа қосымшасы қосылды.
    • Xfce 4.14 нұсқасына жаңартқаннан кейін пайда болған xfwm4 терезе менеджеріндегі регрессивті өзгерістерді жою бойынша жұмыс жүргізілді (мысалы, артефактілер терезелерді безендіру кезінде пайда болды).
    • Шарап порты Wine 5.0 нұсқасына жаңартылды (бұрын 4.0.3).
    • 1.14 нұсқасынан бастап Go компиляторы FreeBSD 12.0 үшін ARM64 архитектурасына ресми қолдауды қосады.
    • Негізгі жүйедегі OpenSSH 7.9p1 шығару үшін жаңартылды.
    • sysctlmibinfo2 кітапханасы sysctl MIB қатынасу және sysctl атауларын нысан идентификаторларына (OID) аудару үшін API қамтамасыз ететін порттарға (devel/libsysctlmibinfo2) енгізілді және орналастырылды.
    • Тарату жаңартуы жасалды NomadBSD 1.3.1, бұл USB дискісінен жүктелетін портативті жұмыс үстелі ретінде пайдалануға бейімделген FreeBSD нұсқасы. Графикалық орта терезе менеджеріне негізделген Openbox. Дискілерді монтаждау үшін қолданылады DSBMD (CD9660, FAT, HFS+, NTFS, Ext2/3/4 орнатуға қолдау көрсетіледі), сымсыз желіні конфигурациялау үшін - wifimgr, және дыбыс деңгейін басқару үшін - DSBMixer.
    • Басталды жұмыс түрме ортасының менеджері үшін толық құжаттама жазу туралы құмыраПот 0.11.0 шығаруға дайындалуда, оған желілік стек басқару құралдары кіреді.

Ақпарат көзі: opennet.ru

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster