Ядроның шығарылуы Linux 5.6

Екі айлық дамудан кейін Линус Торвальдс енгізілді ядро шығару Linux 5.6Ең маңызды өзгерістердің бірі: VPN интерфейсінің интеграциясы WireGuard, USB4 қолдауы, уақыт атау кеңістіктері, BPF көмегімен TCP тығын өңдеушілерін жасау мүмкіндігі, MultiPath TCP үшін бастапқы қолдау, 2038 жылғы мәселеге арналған ядролық түзету, "bootconfig" механизмі, ZoneFS.

Жаңа нұсқа 13702 әзірлеушілерден 1810 XNUMX түзетуді қамтиды,
патч өлшемі - 40 МБ (өзгерістер 11577 файлға әсер етті, 610012 код жолы қосылды,
294828 жол жойылды). Барлығының шамамен 45% 5.6-те ұсынылған
өзгерістер құрылғы драйверлеріне қатысты, өзгерістердің шамамен 15%
аппараттық архитектураға тән кодты жаңартуға деген көзқарас, 12%
желілік стекпен байланысты, 4% файлдық жүйелермен және 3% ішкі
ядроның ішкі жүйелері.

басты инновациялар:

  • Желілік ішкі жүйе
    • Қосылды VPN интерфейсін енгізу WireGuard, заманауи шифрлау әдістері (ChaCha20, Poly1305, Curve25519, BLAKE2s) негізінде жүзеге асырылған, пайдалану оңай, асқынусыз, бірқатар ірі іске асыруларда өзін дәлелдеді және өте жоғары өнімділікті (3,9 есе жылдам) қамтамасыз етеді. OpenVPN өткізу қабілеті бойынша). Ішінде WireGuard Шифрлау кілтін бағыттау тұжырымдамасы қолданылады, ол әрбір желі интерфейсіне жеке кілтті байлауды және байланыстыру үшін ашық кілттерді пайдалануды қамтиды. Қосылуды орнату үшін ашық кілттермен алмасу SSH-ке ұқсас. Жұмыс істеу үшін қажет. WireGuard криптографиялық примитивтер It болды өткізілген кітапханадан мырыш стандартты Crypto API бөлігі ретінде және қоса алғанда өзегіне 5.5.
    • Басталды MPTCP (MultiPath TCP) қолдауына қажетті компоненттерді біріктіру, әртүрлі IP мекенжайларымен байланысты әртүрлі желілік интерфейстер арқылы бірнеше маршруттар бойынша пакеттерді бір уақытта жеткізумен TCP қосылымының жұмысын ұйымдастыруға арналған TCP протоколының кеңейтімі. Желілік қолданбалар үшін мұндай біріктірілген қосылым кәдімгі TCP қосылымына ұқсайды және барлық ағынды бөлу логикасы MPTCP арқылы орындалады. Көп жолды TCP өткізу қабілеттілігін арттыру және сенімділікті арттыру үшін де пайдаланылуы мүмкін. Мысалы, MPTCP бір мезгілде WiFi және 4G сілтемелерін пайдаланып смартфонда деректерді беруді ұйымдастыру үшін немесе қымбат емес бірнеше арзан сілтемелерді пайдаланып серверді қосу арқылы шығындарды азайту үшін пайдаланылуы мүмкін.
    • Қосылды sch_ets желілік кезекті өңдеу пәнін қолдау (Жетілдірілген трансмиссия таңдауы, IEEE 802.1Qaz), ол трафиктің әртүрлі кластары арасында өткізу қабілеттілігін бөлу мүмкіндігін қамтамасыз етеді. Егер белгілі бір трафик класындағы жүктеме бөлінген өткізу қабілеттілігінен төмен болса, онда ETS басқа трафик кластарына қолжетімді (пайдаланылмаған) өткізу қабілеттілігін пайдалануға мүмкіндік береді. Qdisc sch_ets PRIO пәні ретінде конфигурацияланған және қатаң және ортақ өткізу қабілеттілігі шектеулерін анықтау үшін трафик кластарын пайдаланады. ETS пәндер жиынтығы ретінде жұмыс істейді ПРИО и DRR — егер қатаң шектелген трафик кластары болса, PRIO қолданылады, бірақ кезекте трафик болмаса, ол DRR сияқты жұмыс істейді.
    • BPF бағдарламаларының жаңа түрі қосылды BPF_PROG_TYPE_STRUCT_OPS, ол BPF арқылы ядро ​​функцияларын өңдеушілерді жүзеге асыруға мүмкіндік береді. Қазіргі уақытта бұл мүмкіндікті BPF бағдарламалары түрінде TCP кептелістерін басқару алгоритмдерін енгізу үшін пайдалануға болады. Мысал ретінде ұсынылды Алгоритмді жүзеге асырумен BPF бағдарламасы DCTCP.
    • Өзегіне қабылданды өзгерту, аударма құралдары эттол пайдалану үшін ioctl() көмегімен netlink интерфейсі. Жаңа интерфейс кеңейтімдерді қосуды жеңілдетеді, қателерді өңдеуді жақсартады, күй өзгерген кезде хабарландыруларды жіберуге мүмкіндік береді, ядро ​​мен пайдаланушы кеңістігі арасындағы өзара әрекетті жеңілдетеді және синхрондалу қажет атаулы тізімдердің санын азайтады.
    • Желілік кезекті басқару алгоритмін FQ-PIE (Flow Queue PIE) енгізу қосылды, ол шеткі желі жабдығына (bufferbloat) аралық буферлеудің теріс әсерін азайтуға бағытталған. FQ-PIE кабельдік модемдері бар жүйелерде пайдаланған кезде жоғары тиімділікті көрсетеді.
  • Дискінің ішкі жүйесі, енгізу/шығару және файлдық жүйелер
    • Btrfs файлдық жүйесі үшін қосылды DISCARD операциясының асинхронды орындалуы (бұдан әрі физикалық сақтауды қажет етпейтін босатылған блоктарды белгілеу). Бастапқыда DISCARD операциялары синхронды түрде орындалды, бұл дискілердің сәйкес пәрмендердің аяқталуын күтуіне байланысты өнімділіктің төмендеуіне әкелуі мүмкін. Асинхронды іске асыру дискіні ЖОҚТАУ аяқталуын күтпеуге және бұл әрекетті фондық режимде орындауға мүмкіндік береді.
    • XFS жүйесінде орындалған Ескі 32-биттік уақыт есептегіштерін пайдаланған кодты тазалау (time_t түрі time64_t деп ауыстырылды), бұл 2038 мәселесіне әкеледі. 32 биттік платформаларда орын алған қателер мен жадтың бұзылуы түзетілді. Код кеңейтілген атрибуттармен жұмыс істеу үшін қайта өңделген.
    • Ext4 файлдық жүйесіне енгізілді Оқу және жазу әрекеттері кезінде инодты құлыптауды өңдеуге қатысты өнімділікті оңтайландыру. Тікелей енгізу/шығару режимінде жақсартылған қайта жазу өнімділігі. Мәселелерді диагностикалауды жеңілдету үшін бірінші және соңғы қате кодтары суперблокта сақталады.
    • F2FS файлдық жүйесінде жүзеге асырылды деректерді қысылған түрде сақтау мүмкіндігі. Жеке файл немесе каталог үшін қысуды "chattr +c file" немесе "chattr +c dir" пәрмені арқылы қосуға болады; dir/файлды түртіңіз». Бүкіл бөлімді қысу үшін орнату утилитасындағы “-o compress_extension=ext” опциясын пайдалануға болады.
    • Ядро файлдық жүйені қамтиды ZoneFS, бұл аймақтарға бөлінген сақтау құрылғыларымен төмен деңгейлі жұмысты жеңілдетеді. Аймақтық дискілер қатты магниттік дискілердегі немесе NVMe SSD дискілеріндегі құрылғыларды білдіреді, олардың сақтау кеңістігі блоктар тобын немесе секторларды құрайтын аймақтарға бөлінген, оларға блоктардың барлық тобын жаңартып отыратын деректерді тек дәйекті түрде қосуға рұқсат етіледі. FS ZoneFS Western Digital әзірлеген және дискідегі әрбір аймақты сектор мен блок деңгейінде манипуляциясыз шикізат режимінде деректерді сақтау үшін пайдалануға болатын бөлек файлмен байланыстырады, яғни. Қолданбаларға ioctl арқылы блоктау құрылғысына тікелей қатынаудың орнына API файлын пайдалануға мүмкіндік береді.
    • NFS жүйесінде бөлімдерді UDP арқылы орнату әдепкі бойынша өшірілген. NFS 4.2 спецификациясында анықталған серверлер арасында файлдарды тікелей көшіру мүмкіндігіне қолдау қосылды. Сервер істен шыққан жағдайда кэштелген төлсипат мәндерін пайдалануға мүмкіндік беретін жаңа орнату опциясы «softreval» қосылды. Мысалы, бұл опцияны көрсеткенде, сервер қолжетімсіз болғаннан кейін, NFS бөліміндегі жолдар бойымен қозғалуға және кэште орнатылған ақпаратқа қол жеткізуге болады.
    • Орындалған жеке файлдардың тұтастығын және аутентификациясын бақылау үшін қолданылатын fs-verity механизмінің өнімділігін оңтайландыру. Merkle хэш ағашын пайдаланудың арқасында дәйекті оқу жылдамдығы артты. FS_IOC_ENABLE_VERITY өнімділігі кэште деректер болмаған кезде оңтайландырылған (деректері бар беттерді алдын ала оқу қолданылған).
  • Виртуализация және қауіпсіздік
    • SE модулін өшіру мүмкіндігі ескірген.Linux жұмыс кезінде және болашақта қазірдің өзінде белсендірілген SE-ді түсіруLinux тыйым салынады. SE өшіру үшінLinux Сізге ядро ​​командалық жолында "selinux=0" параметрін беру қажет болады.
    • Қосылды жүйелік сағаттың күйін контейнерге (CLOCK_REALTIME,) байланыстыруға мүмкіндік беретін уақыттың аттар кеңістігіне қолдау көрсету
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), контейнердегі өз уақытыңызды пайдаланыңыз және контейнерді басқа хостқа тасымалдаған кезде CLOCK_MONOTONIC және CLOCK_BOOTTIME көрсеткіштерінің өзгеріссіз қалуына көз жеткізіңіз (жүктеуден кейінгі уақытты ескеріңіз, ұйқы режимінде болған немесе жоқ ).
    • /dev/random блоктау пулы жойылды. /dev/random әрекеті пулды инициализациялаудан кейін энтропияны блоктауды болдырмау тұрғысынан /dev/urandom-қа ұқсас.
    • Негізгі ядро ​​VirtualBox іске қосылған қонақ жүйелеріне хост ортасы (VirtualBox ортақ қалтасы) экспорттаған каталогтарды орнатуға мүмкіндік беретін драйверді қамтиды.
    • BPF ішкі жүйесіне патчтар жинағы қосылды (BPF диспетчері), Spectre V2 класының шабуылдарынан қорғау үшін Retpoline механизмін пайдаланған кезде, олармен байланысты оқиғалар орын алған кезде BPF бағдарламаларын шақыру тиімділігін арттыруға мүмкіндік береді (мысалы, бұл XDP өңдеушілерін шақыруды жылдамдатуға мүмкіндік береді. желі пакеті келеді).
    • AMD APU құрылғыларында орнатылған TEE (Сенімді орындау ортасы) қолдауына арналған драйвер қосылды.
  • Жад және жүйелік қызметтер
    • BPF жаһандық функцияларға қолдауды қосты. Әзірлеу BPF бағдарламаларына қосылуы мүмкін функциялар кітапханаларын қолдауды қосу бастамасының бөлігі ретінде жүзеге асырылуда. Келесі қадам жаһандық функцияларды жүктеуге мүмкіндік беретін динамикалық кеңейтімдерді қолдау болады, соның ішінде олар қолданыста бар жаһандық функцияларды ауыстыру. BPF ішкі жүйесі сонымен қатар пакеттік режимде орындауды қолдайтын карта операциясының нұсқасына (тұрақты деректерді сақтау үшін пайдаланылады) қолдауды қосады.
    • Жүктелді «Cpu_cooling» құрылғысы қызып кеткен процессорды қысқа уақыт ішінде бос күйге қою арқылы салқындатуға мүмкіндік береді.
    • Жүйелік қоңырау қосылды openat2(), ол файл жолының ажыратымдылығын шектеу үшін қосымша жалаулар жинағын ұсынады (бекіту нүктелерін, символдық сілтемелерді, сиқырлы сілтемелерді (/proc/PID/fd), «../» құрамдастарын кесіп өтуге тыйым салу).
    • Бір микросхемада қуатты және тиімділігі төмен CPU ядроларын біріктіретін big.LITTLE архитектурасына негізделген гетерогенді жүйелер үшін uclamp_min параметрі нақты уақыттағы тапсырмаларды орындау кезінде орнатылады (пайда болды 5.3 ядросында жүктемені бекіту механизмі бар). Бұл параметр тапсырманы жоспарлаушы жеткілікті өнімділігі бар CPU өзегіне орналастыруын қамтамасыз етеді.
    • ядродан босатылады 2038 жылғы мәселелер. 32 жылғы есепті ескере отырып, 1970 жылы толып кетуі керек кезеңдік уақыт есептегіші үшін 2038-биттік (қол қойылған int) time_t түрін пайдаланған соңғы қалған өңдеушілер ауыстырылды.
    • Асинхронды енгізу/шығару интерфейсін жетілдіруді жалғастыру io_uringонда қамтамасыз етілген жаңа операцияларды қолдау: IORING_OP_FALLOCATE (бос аумақтарды резервтеу), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (файлдарды ашу және жабу),
      IORING_OP_FILES_UPDATE (жылдам қол жеткізу тізімінен файлдарды қосу және жою),
      IORING_OP_STATX (файлдық ақпарат сұрауы),
      IORING_OP_READ,
      IORING_OP_WRITE (IORING_OP_READV және IORING_OP_WRITEV жеңілдетілген аналогтары),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (posix_fadvise және madvise қоңырауларының асинхронды нұсқалары), IORING_OP_SEND,
      IORING_OP_RECV (желі деректерін жіберу және қабылдау),
      IORING_OP_EPOLL_CTL (epoll файл дескрипторларында операцияларды орындау).
    • Жүйелік қоңырау қосылды pidfd_getfd(), процеске басқа процестен ашық файл үшін файл дескрипторын шығарып алуға мүмкіндік береді.
    • Орындалды пәрмен жолы опцияларына қосымша ядро ​​параметрлерін параметрлер файлы арқылы анықтауға мүмкіндік беретін «bootconfig» механизмі. Мұндай файлдарды initramfs кескініне қосу үшін bootconfig утилитасы ұсынылады. Бұл мүмкіндікті, мысалы, жүктеу кезінде kprobes конфигурациялау үшін пайдалануға болады.
    • Қайта жасалған аты жоқ құбырлардағы деректерді жазуды және оқуды күту механизмі. Өзгеріс ірі жобаларды қатар құрастыру сияқты тапсырмаларды жылдамдатуға мүмкіндік берді. Дегенмен, оңтайландыру 4.2.1 нұсқасында түзетілген 4.3 шығарылымындағы қатеге байланысты GNU make жүйесіндегі жарыс жағдайына әкелуі мүмкін.
    • prctl() қызметіне PR_SET_IO_FLUSHER жалаушасы қосылды, ол жадты босататын процестерді белгілеу үшін пайдаланылуы мүмкін және жүйе жады аз болған кезде шектеулерге бағынбауы керек.
    • Қолданылатын технологияға негізделген Android ION жад бөлу жүйесінде ішкі жүйе енгізілген dma-buf үйінділері, ол драйверлер, қолданбалар және әртүрлі ішкі жүйелер арасында жад аумақтарын ортақ пайдалану үшін DMA буферлерінің бөлінуін басқаруға мүмкіндік береді.
  • Аппараттық құрылымдар
    • ARMv0 нұсқасында пайда болған және орталық процессордағы нұсқауларды алыпсатарлық орындауға байланысты шабуылдардан қорғауға мүмкіндік беретін E8.5PD кеңейтіміне қолдау қосылды. E0PD негізіндегі қорғаныс KPTI (ядро бетінің кестесін оқшаулау) қорғанысынан төмен үстеме шығындарға әкеледі.
    • ARMv8.5 архитектурасына негізделген жүйелер үшін аппараттық жалған кездейсоқ сандар генераторына қол жеткізуді қамтамасыз ететін RNG нұсқаулығын қолдау қосылды. Ядрода RNG нұсқауы ядромен қамтамасыз етілген псевдокездейсоқ сандар генераторын инициализациялау кезінде энтропияны құру үшін пайдаланылады.
    • Ядроға қосылған MPX (жадты қорғау кеңейтімдері) қолдауы жойылды 3.19 және жад аймақтарының шекараларының сақталуын қамтамасыз ету үшін көрсеткіштерді тексеруді ұйымдастыруға мүмкіндік береді. Бұл технология компиляторларда кеңінен қолданылмады және GCC-тен жойылды.
    • RISC-V архитектурасы үшін жадпен жұмыс істеу кезінде қателерді анықтауға көмектесетін KASan (ядро мекенжайын тазартқыш) жөндеу құралына қолдау көрсетілді.
  • Жабдық
    • Спецификацияны қолдау жүзеге асырылды USB 4.0, ол Thunderbolt 3 протоколына негізделген және USB 40 және USB 2.0 құрылғыларымен кері үйлесімділікті сақтай отырып, 3.2 Гбит/с-қа дейінгі өткізу қабілеттілігін қамтамасыз етеді. Аналогия бойынша Thunderbolt USB 4.0 интерфейсі қосқышы бар бір кабель арқылы әртүрлі протоколдарды туннельдеуге мүмкіндік береді Түрі-С, PCIe, Display Port және USB 3.x қоса алғанда, сондай-ақ хосттар арасында желілік байланыстарды орнату сияқты хаттамалардың бағдарламалық жасақтамалық іске асырулары. Іске асыру ядроға енгізілгенге негізделген. Linux Thunderbolt драйвері USB4-үйлесімді хосттар мен құрылғылармен жұмыс істеу үшін жаңартылып, бейімделген. Өзгерістер сонымен қатар бірнеше құрылғыны бір порт арқылы қосуға арналған туннельдер жасауға жауапты Connection Manager бағдарламалық жасақтамасын іске асыруға Thunderbolt 3 құрылғыларын қолдауды қосады.
    • Amdgpu драйверінде қосылды HDCP 2.x (Жоғары өткізу қабілеттілігі бар сандық мазмұнды қорғау) көшіруден қорғау технологиясын бастапқы қолдау. Raven 2 негізіндегі AMD Pollock ASIC чипіне қолдау қосылды. Renoir және Navi отбасылары үшін графикалық процессорды қалпына келтіру мүмкіндігі енгізілді.
    • Intel бейне карталарына арналған DRM драйвері қосылды Ice Lake және Tiger Lake микроархитектурасына негізделген чиптерге DSI VDSC қолдауы, LMEM mmap (құрылғының жергілікті жады) іске асырылды, VBT (Video BIOS кестесі) талдауы жақсартылды, Кофе көлінің чиптері үшін HDCP 2.2 қолдауы іске асырылды.
    • amdkfd драйвер кодын (Fiji, Tonga, Polaris сияқты дискретті GPU үшін) amdgpu драйверімен біріктіру бойынша жұмыс жалғасты.
    • k10temp драйвері қайта өңделді, ол қазір AMD Zen процессорлары үшін шығыс кернеуі мен ток параметрлерін, сондай-ақ Zen және Zen 2 процессорларында қолданылатын температура сенсорларынан алынған кеңейтілген ақпаратты қолдайды.
    • Жаңа жүргізушіде қосылды Turing микроархитектурасына (GeForce RTX 2000) негізделген NVIDIA графикалық процессорлары үшін тексерілген микробағдарламаны жүктеу режимін қолдау, бұл осы карталар үшін 3D жеделдету қолдауын қосуға мүмкіндік берді (NVIDIA-дан сандық қолтаңбасы бар ресми микробағдарламаны жүктеп алу қажет). TU10x графикалық қозғалтқышына қолдау қосылды. HD дыбысына қатысты мәселелер шешілді.
    • DisplayPort MST (Multi-Stream Transport) арқылы тасымалданған кезде деректерді қысуға қолдау қосылды.
    • Жаңа драйвер қосылдыат11к» 802.11ax қолдайтын Qualcomm сымсыз чиптері үшін.
      Драйвер mac80211 стекіне негізделген және кіру нүктесі, жұмыс станциясы және торлы желі түйіні режимдерін қолдайды.
    • Sysfs арқылы заманауи қатты дискілер мен SSD дискілерінде қолданылатын оқылатын температура сенсорының көрсеткіштеріне қол жеткізу қамтамасыз етіледі.
    • Жіберілді кодынан арылуға бағытталған ALSA дыбыс жүйесіне елеулі өзгерістер 2038 жылғы мәселелер (snd_pcm_mmap_status және snd_pcm_mmap_control интерфейстерінде 32 биттік time_t түрін пайдалануды болдырмау). Жаңа аудио кодектерге қолдау қосылды
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.
    • Қосылды Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940, LCD панельдерінің драйверлері
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sharp LS020B1DD01D.
    • Қосылды ARM тақталары мен Gen1 платформаларына қолдау Amazon Echo (OMAP3630 негізіндегі), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Tolino Shine 3 электронды кітап оқу құралы,
      Енгізілген орындаушылар COM (i.MX7ULP), SolidRun Clearfog CX/ITX және HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang тасымалдаушысы, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Uni9863 Raspberry Pi 7180 жүйесінде қолданылатын PCIe контроллеріне қолдау қосылды.

Бұл ретте Латын Америкасының еркін бағдарламалық қамтамасыз ету қоры қалыптасты
опция толығымен бос ядро ​​5.6 - Linux-libre 5.6-gnu, көлемін өндіруші шектейтін бос емес құрамдастарды немесе код бөлімдерін қамтитын микробағдарлама және драйвер элементтерінен тазартылған. Жаңа шығарылым AMD TEE, ATH11K және Mediatek SCP үшін драйверлерде блокты жүктеуді өшіреді. AMD PSP, amdgpu және nouveau драйверлері мен ішкі жүйелеріндегі жаңартылған blob тазалау коды.

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

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