{"id":102933,"date":"2022-01-10T15:36:38","date_gmt":"2022-01-10T13:36:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/%d1%80%d0%b5%d0%bb%d0%b8%d0%b7-%d1%8f%d0%b4%d1%80%d0%b0-linux-5-16"},"modified":"2022-01-10T15:36:38","modified_gmt":"2022-01-10T13:36:38","slug":"reliz-yadra-linux-5-16","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-16","title":{"rendered":"Wydanie j\u0105dra Linux 5.16","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po dw\u00f3ch miesi\u0105cach rozwoju Linus Torvalds zaprezentowa\u0142 wydanie j\u0105dra Linux 5.16. W\u015br\u00f3d najbardziej znacz\u0105cych zmian znajduj\u0105 si\u0119: wywo\u0142anie systemowe futex_waitv w celu zwi\u0119kszenia wydajno\u015bci gier Windows w Wine, monitorowanie b\u0142\u0119d\u00f3w w systemie plik\u00f3w za pomoc\u0105 fanotify, koncepcja foliant\u00f3w w zarz\u0105dzaniu pami\u0119ci\u0105, wsparcie dla instrukcji procesorowych AMX, mo\u017cliwo\u015b\u0107 rezerwacji pami\u0119ci dla gniazd sieciowych, wsparcie w netfilter dla klasyfikacji pakiet\u00f3w na etapie \u201eegress\u201d, wykorzystanie podsystemu DAMON do proaktywnego usuwania nieu\u017cywanych obszar\u00f3w pami\u0119ci, poprawa obs\u0142ugi przeci\u0105\u017ce\u0144 przy du\u017cej liczbie operacji zapisu oraz wsparcie dla dysk\u00f3w twardych z wieloma nap\u0119dami.    <\/p>\n<p>Do nowej wersji wprowadzono 15415 poprawek od 2105 programist\u00f3w, rozmiar \u0142atki wynosi 45 MB (zmiany dotyczy\u0142y 12023 plik\u00f3w, dodano 685198 linijek kodu, usuni\u0119to 263867 linijek). Oko\u0142o 44% wszystkich przedstawionych w 5.16 zmian dotyczy sterownik\u00f3w urz\u0105dze\u0144, oko\u0142o 16% zmian jest zwi\u0105zanych z aktualizacj\u0105 kodu specyficznego dla architektur sprz\u0119towych, 16% dotyczy stosu sieciowego, 4% - system\u00f3w plik\u00f3w, a 4% - z wewn\u0119trznymi podsystemami j\u0105dra.    <\/p>\n<p>  G\u0142\u00f3wne nowo\u015bci w j\u0105drze 5.16:  <\/p>\n<ul>\n<li class=\"l\"> <b>Podsystem dyskowy, wej\u015bcie\/wyj\u015bcie i systemy plik\u00f3w<\/b>\n<ul>\n<li class=\"l\"> Do mechanizmu fanotify dodano \u015brodki do monitorowania stanu systemu plik\u00f3w i \u015bledzenia pojawiania si\u0119 b\u0142\u0119d\u00f3w. Informacje o b\u0142\u0119dach s\u0105 przekazywane za pomoc\u0105 nowego typu zdarze\u0144 - FAN_FS_ERROR, kt\u00f3re mog\u0105 by\u0107 przechwytywane w dzia\u0142aj\u0105cych systemach monitorowania, aby natychmiast informowa\u0107 administratora lub uruchamia\u0107 procesy naprawy. W przypadku kaskadowego wyst\u0105pienia serii b\u0142\u0119d\u00f3w fanotify zapewnia dostarczenie komunikatu o pierwszym b\u0142\u0119dzie wraz z og\u00f3lnym licznikiem problem\u00f3w, co u\u0142atwia p\u00f3\u017aniejsze ustalanie przyczyn awarii. Wsparcie dla monitorowania b\u0142\u0119d\u00f3w jest obecnie realizowane tylko dla systemu plik\u00f3w Ext4.\n<li class=\"l\"> Ulepszono obs\u0142ug\u0119 przeci\u0105\u017ce\u0144 podczas operacji zapisu (write congestion), kt\u00f3re wyst\u0119puj\u0105, gdy obj\u0119to\u015b\u0107 operacji zapisu przewy\u017csza pojemno\u015b\u0107 no\u015bnika, a system musi blokowa\u0107 \u017c\u0105dania procesu zapisu do momentu zako\u0144czenia realizacji ju\u017c przekazanych \u017c\u0105da\u0144. W nowej wersji ca\u0142kowicie przebudowano mechanizm j\u0105dra u\u017cywany do pozyskiwania informacji o wyst\u0105pieniu przeci\u0105\u017ce\u0144 i blokowaniu zada\u0144, gdy\u017c w starej implementacji obserwowano problemy z synchronizacj\u0105 obs\u0142ugi przeci\u0105\u017ce\u0144 zapisu z wymian\u0105 stron pami\u0119ci do obszaru swap w przypadku braku pami\u0119ci w systemie.\n<li class=\"l\"> W Btrfs wprowadzono wsparcie dla technologii zonowania urz\u0105dze\u0144 (Zoned Namespace), stosowanej w dyskach twardych i NVMe SSD w celu podzia\u0142u przestrzeni na strefy, sk\u0142adaj\u0105ce si\u0119 z grup blok\u00f3w lub sektor\u00f3w, w kt\u00f3rych dozwolone jest tylko sekwencyjne dodawanie danych z aktualizacj\u0105 ca\u0142ej grupy blok\u00f3w. Dodatkowo wprowadzono drobne optymalizacje logowania inode, co pozwoli\u0142o osi\u0105gn\u0105\u0107 wzrost wydajno\u015bci o 3% w te\u015bcie dbench oraz skr\u00f3ci\u0107 op\u00f3\u017anienia o 11%. Przeprojektowano mechanizm logowania katalog\u00f3w, w kt\u00f3rym zmniejszono liczb\u0119 operacji wyszukiwania i blokad w drzewie, aby zwi\u0119kszy\u0107 efektywno\u015b\u0107. Przyspieszono wstawianie element\u00f3w do struktury btree w trybie wsadowym (czas masowego dodawania element\u00f3w skr\u00f3cono o 4%, a usuwania o 12%). Dodano ograniczone wsparcie dla u\u017cycia kompresji podczas zapisu niepe\u0142nych stron, a tak\u017ce mo\u017cliwo\u015b\u0107 defragmentacji podstron (subpage). Przygotowano si\u0119 do w\u0142\u0105czenia wsparcia dla drugiej wersji protoko\u0142u dla komendy &#171;send&#187;.\n<li class=\"l\"> W systemie plik\u00f3w XFS zredukowano zu\u017cycie pami\u0119ci dzi\u0119ki zastosowaniu oddzielnych pami\u0119ci podr\u0119cznych typu slab dla cz\u0119sto u\u017cywanych element\u00f3w oraz redukcji niekt\u00f3rych struktur danych.\n<li class=\"l\"> W systemie plik\u00f3w Ext4 odnotowano jedynie poprawki b\u0142\u0119d\u00f3w oraz dok\u0142adniejsze obliczenie parametr\u00f3w op\u00f3\u017anionej inicjalizacji tabeli Inode.\n<li class=\"l\"> Na poziomie urz\u0105dze\u0144 blokowych wprowadzono optymalizacje, kt\u00f3re znacz\u0105co zwi\u0119kszaj\u0105 efektywno\u015b\u0107 przypisywania operacji do rdzeni CPU.\n<li class=\"l\"> Dodano wst\u0119pn\u0105 obs\u0142ug\u0119 dysk\u00f3w twardych z wieloma niezale\u017cnymi nap\u0119dami (multi-actuator), kt\u00f3re umo\u017cliwiaj\u0105 jednoczesny dost\u0119p do wielu sektor\u00f3w w r\u00f3\u017cnych strefach magnetycznej p\u0142yty.\n<li class=\"l\"> Dodano nowe polecenie ioctl CDROM_TIMED_MEDIA_CHANGE do okre\u015blania zdarze\u0144 zmiany no\u015bnika w nap\u0119dzie optycznym.\n<li class=\"l\"> W systemie plik\u00f3w EROFS (Enhanced Read-Only File System) dodano mo\u017cliwo\u015b\u0107 pracy na wielu urz\u0105dzeniach pami\u0119ci masowej. R\u00f3\u017cne urz\u0105dzenia mog\u0105 by\u0107 odzwierciedlane w jednym 32-bitowym obszarze adresowym blok\u00f3w. Dodano r\u00f3wnie\u017c wsparcie dla kompresji z u\u017cyciem algorytmu LZMA.\n<li class=\"l\"> W systemie plik\u00f3w F2FS dodano opcje montowania do zarz\u0105dzania fragmentacj\u0105 plik\u00f3w podczas przechowywania (na przyk\u0142ad do debugowania optymalizacji pracy z fragmentowanymi magazynami).\n<li class=\"l\"> W CEPH domy\u015blnie w\u0142\u0105czono operacje tworzenia i usuwania katalog\u00f3w w trybie asynchronicznym (aby przywr\u00f3ci\u0107 poprzednie zachowanie, nale\u017cy u\u017cy\u0107 flagi &#8216;-o wsync&#8217; przy montowaniu). Dodano rejestrowanie metryk, kt\u00f3re \u015bledz\u0105 operacje kopiowania zewn\u0119trznych obiekt\u00f3w.\n<li class=\"l\"> W CIFS dodano parametr montowania tcpnodelay, w kt\u00f3rym dla gniazda sieciowego ustawia si\u0119 tryb tcp_sock_set_nodelay, wy\u0142\u0105czaj\u0105cy oczekiwanie na wype\u0142nienie kolejki w stosie TCP. Dodano wsparcie dla zagnie\u017cd\u017conych link\u00f3w DFS (Distributed File System) podczas ponownego montowania.\n<li class=\"l\"> Dodano wsparcie dla ko\u0144czenia \u017c\u0105da\u0144 do urz\u0105dzenia blokowego w trybie pakietowym. Testy zmiany wykaza\u0142y wzrost intensywno\u015bci wykonywania operacji losowego odczytu z no\u015bnik\u00f3w Optane z 6.1 do 6.6 mln IOPS na jednym rdzeniu CPU.                            <\/ul>\n<li class=\"l\"> <b>Pami\u0119\u0107 i us\u0142ugi systemowe<\/b>\n<ul>\n<li class=\"l\"> Dodano nowy systemowy wywo\u0142anie futex_waitv, umo\u017cliwiaj\u0105ce monitorowanie stanu wielu futex\u00f3w za pomoc\u0105 jednego wywo\u0142ania systemowego. Ta mo\u017cliwo\u015b\u0107 przypomina funkcjonalno\u015b\u0107 WaitForMultipleObjects dost\u0119pn\u0105 w Windows, a jej emulacja przez futex_waitv mo\u017ce by\u0107 przydatna do zwi\u0119kszenia wydajno\u015bci gier Windows uruchamianych pod Wine lub Proton. Co wi\u0119cej, jednoczesne oczekiwanie na futexy mo\u017ce by\u0107 stosowane r\u00f3wnie\u017c w celu optymalizacji wydajno\u015bci natywnych port\u00f3w gier dla Linux.\n<li class=\"l\"> Zrealizowano koncepcj\u0119 foli\u00f3w pami\u0119ci (page folios), kt\u00f3rej zastosowanie w niekt\u00f3rych subsystemach j\u0105dra pozwoli przyspieszy\u0107 zarz\u0105dzanie pami\u0119ci\u0105 przy standardowych obci\u0105\u017ceniach. Obecnie g\u0142\u00f3wny subsystem zarz\u0105dzania pami\u0119ci\u0105 w j\u0105drze oraz implementacja pami\u0119ci podr\u0119cznej stron zosta\u0142y ju\u017c przet\u0142umaczone na foli\u00f3w, a w przysz\u0142o\u015bci planuje si\u0119 r\u00f3wnie\u017c przet\u0142umaczenie system\u00f3w plik\u00f3w. Dodatkowo, w j\u0105drze planowane jest wprowadzenie wsparcia dla foli\u00f3w wielostronicowych.\n<p> Folia przypominaj\u0105 z\u0142o\u017cone strony pami\u0119ci (compound pages), ale r\u00f3\u017cni\u0105 si\u0119 ulepszon\u0105 semantyk\u0105 i bardziej zrozumia\u0142\u0105 organizacj\u0105 pracy. W celu zarz\u0105dzania pami\u0119ci\u0105 systemow\u0105 dost\u0119pna pami\u0119\u0107 RAM dzielona jest na strony pami\u0119ci, kt\u00f3rych rozmiar zale\u017cy od architektury, ale w systemach x86 wynosi zwykle 4096 bajt\u00f3w. Nowoczesne systemy wyposa\u017cone s\u0105 w dziesi\u0105tki gigabajt\u00f3w RAM, co skomplikuje zarz\u0105dzanie pami\u0119ci\u0105 z powodu konieczno\u015bci obs\u0142ugi ogromnej liczby stron pami\u0119ci. Aby zmniejszy\u0107 liczb\u0119 stron, wcze\u015bniej w j\u0105drze zaimplementowano koncepcj\u0119 z\u0142o\u017conych stron (compound pages) ze strukturami obejmuj\u0105cymi wi\u0119cej ni\u017c jedn\u0105 fizyczn\u0105 stron\u0119 pami\u0119ci. Jednak API do manipulacji z\u0142o\u017conymi stronami pami\u0119ci pozostawia\u0142o wiele do \u017cyczenia i prowadzi\u0142o do dodatkowych koszt\u00f3w.    <\/p>\n<li class=\"l\"> Do planisty zada\u0144 dodano obs\u0142ug\u0119 uwzgl\u0119dniaj\u0105c\u0105 klasteryzacj\u0119 pami\u0119ci podr\u0119cznej w CPU. W niekt\u00f3rych procesorach, takich jak Kunpeng 920 (ARM) i Intel Jacobsville (x86), okre\u015blona liczba rdzeni CPU, zwykle 4, mo\u017ce wsp\u00f3\u0142dzieli\u0107 pami\u0119\u0107 podr\u0119czn\u0105 L3 lub L2. Uwzgl\u0119dnienie takich topologii mo\u017ce znacznie zwi\u0119kszy\u0107 efektywno\u015b\u0107 rozdzielania zada\u0144 pomi\u0119dzy rdzeniami CPU w planie, poniewa\u017c przenoszenie zada\u0144 w ramach jednego klastra CPU pozwala zwi\u0119kszy\u0107 przepustowo\u015b\u0107 dost\u0119pu do pami\u0119ci i zmniejszy\u0107 rywalizacj\u0119 w pami\u0119ci podr\u0119cznej.\n<li class=\"l\"> Dodano wsparcie dla instrukcji AMX (Advanced Matrix Extensions), kt\u00f3re b\u0119d\u0105 dost\u0119pne w nadchodz\u0105cych procesorach serwerowych Intel Xeon Scalable rozwijanych pod kodow\u0105 nazw\u0105 Sapphire Rapids. AMX oferuje nowe konfigurowalne rejestry TMM &#171;TILE&#187; oraz instrukcje do manipulacji danymi w tych rejestrach, takie jak TMUL (Tile matrix MULtiply) do mno\u017cenia macierzy.\n<li class=\"l\"> Zrealizowano kilka nowych mo\u017cliwo\u015bci opartych na dodanym w poprzedniej wersji subsystemie DAMON (Data Access MONitor), kt\u00f3ry umo\u017cliwia \u015bledzenie dost\u0119pu do danych w pami\u0119ci operacyjnej, w powi\u0105zaniu z wybranym procesem dzia\u0142aj\u0105cym w przestrzeni u\u017cytkownika. Na przyk\u0142ad, subsystem umo\u017cliwia analiz\u0119, do jakich dok\u0142adnie obszar\u00f3w pami\u0119ci odwo\u0142ywa\u0142 si\u0119 proces w trakcie swojej pracy, a kt\u00f3re obszary pami\u0119ci pozosta\u0142y niewykorzystane.\n<ul>\n<li class=\"l\"> DAMON_RECLAIM do identyfikacji i wypr\u00f3\u017cniania obszar\u00f3w pami\u0119ci, do kt\u00f3rych nie by\u0142o odwo\u0142a\u0144. Mechanizm ten mo\u017cna wykorzysta\u0107 do proaktywnego, \u0142agodnego wypr\u00f3\u017cniania stron pami\u0119ci w sytuacjach zbli\u017caj\u0105cych si\u0119 do wyczerpania dost\u0119pnej pami\u0119ci.\n<li class=\"l\"> DAMOS (Data Access Monitoring-based Operation Schemes) do stosowania okre\u015blonych operacji madvise(), takich jak zwalnianie dodatkowej pami\u0119ci, do obszar\u00f3w pami\u0119ci procesu, dla kt\u00f3rych rejestrowana jest okre\u015blona cz\u0119stotliwo\u015b\u0107 dost\u0119pu do pami\u0119ci. Konfiguracja parametr\u00f3w DAMOS odbywa si\u0119 przez debugfs.\n<li class=\"l\"> Mo\u017cliwo\u015b\u0107 monitorowania fizycznej przestrzeni adresowej pami\u0119ci (wcze\u015bniej mo\u017cna by\u0142o \u015bledzi\u0107 tylko adresy wirtualne).  <\/ul>\n<li class=\"l\"> Implementacja algorytmu kompresji zstd zosta\u0142a zaktualizowana do wersji 1.4.10, co znacz\u0105co poprawi\u0142o wydajno\u015b\u0107 r\u00f3\u017cnych podsystem\u00f3w j\u0105dra, w kt\u00f3rych stosowana jest kompresja (na przyk\u0142ad dekompresja obrazu j\u0105dra przyspieszy\u0142a o 35%, wydajno\u015b\u0107 dekompresji danych skompresowanych w Btrfs i SquashFS wzros\u0142a o 15%, a w ZRAM \u2014 o 30%). Pocz\u0105tkowo w j\u0105drze u\u017cyto oddzielnej implementacji zstd, opartej na wersji 1.3.1, wydanej ponad trzy lata temu, kt\u00f3ra nie zawiera\u0142a wielu wa\u017cnych optymalizacji. Opr\u00f3cz przej\u015bcia na aktualn\u0105 wersj\u0119, dodana \u0142atka r\u00f3wnie\u017c upraszcza synchronizacj\u0119 z ga\u0142\u0119zi\u0105 upstream zstd, pozwalaj\u0105c na generowanie kodu do w\u0142\u0105czenia w j\u0105dro bezpo\u015brednio z g\u0142\u00f3wnego repozytorium zstd. W przysz\u0142o\u015bci kod zstd w j\u0105drze b\u0119dzie planowany do aktualizacji w miar\u0119 wydawania nowych wersji biblioteki zstd.\n<li class=\"l\"> Wprowadzono szereg usprawnie\u0144 w podsystemie eBPF. Dodano mo\u017cliwo\u015b\u0107 wywo\u0142ywania z program\u00f3w BPF funkcji modu\u0142\u00f3w j\u0105dra. Zaimplementowano funkcj\u0119 bpf_trace_vprintk(), w przeciwie\u0144stwie do bpf_trace_printk() umo\u017cliwiaj\u0105c\u0105 wypisywanie jednocze\u015bnie wi\u0119cej ni\u017c trzech argument\u00f3w. Dodano now\u0105 struktur\u0119 przechowywania danych (BPF map) bloom filter, pozwalaj\u0105c\u0105 wykorzysta\u0107 t\u0119 sam\u0105 probabilistyczn\u0105 struktur\u0119 danych do okre\u015blenia obecno\u015bci elementu w zbiorze. Dodano nowy element BTF_KIND_TAG, kt\u00f3ry mo\u017ce by\u0107 stosowany w programach BPF do przypisywania tag\u00f3w do parametr\u00f3w funkcji, na przyk\u0142ad w celu uproszczenia wykrywania b\u0142\u0119d\u00f3w w programach u\u017cytkownik\u00f3w. W libbpf zezwolono na tworzenie w\u0142asnych sekcji .rodata.*\/.data.*, zaimplementowano wsparcie dla zdarze\u0144 \u015bledzenia uprobe i kprobe, dodano API do kopiowania wszystkich typ\u00f3w BTF z jednego obiektu do drugiego. Wsparcie dla AF_XDP przeniesiono z libbpf do oddzielnej biblioteki libxdp. Dla architektury MIPS zaimplementowano kompilator JIT dla maszyny wirtualnej BPF.\n<li class=\"l\"> Dla architektury ARM64 zaimplementowano wsparcie dla rozszerze\u0144 ARMv8.6 dla timera, w tym umo\u017cliwiaj\u0105ce samosynchronizacj\u0119 widoku rejestr\u00f3w systemowych bez u\u017cycia instrukcji ISB.\n<li class=\"l\"> Dla architektury PA-RISC zaimplementowano mo\u017cliwo\u015b\u0107 zastosowania mechanizmu KFENCE do wykrywania b\u0142\u0119d\u00f3w w operacjach pami\u0119ci oraz dodano wsparcie dla detektora stan\u00f3w wy\u015bcigu KCSAN.\n<li class=\"l\"> Udost\u0119pniono mo\u017cliwo\u015b\u0107 konfiguracji praw dost\u0119pu do tracefs na poziomie poszczeg\u00f3lnych u\u017cytkownik\u00f3w i grup, na przyk\u0142ad teraz mo\u017cna zezwoli\u0107 na dost\u0119p do narz\u0119dzi \u015bledzenia tylko cz\u0142onkom okre\u015blonej grupy.                        <\/ul>\n<li class=\"l\"> <b>Wirtualizacja i bezpiecze\u0144stwo<\/b>\n<ul>\n<li class=\"l\"> W podsystemach io_uring i device-mapper zaimplementowano wsparcie dla generowania zdarze\u0144 audytu. W io_uring wprowadzono mo\u017cliwo\u015b\u0107 zarz\u0105dzania dost\u0119pem poprzez modu\u0142y LSM. Dodano mo\u017cliwo\u015b\u0107 audytu wywo\u0142ania systemowego openat2().\n<li class=\"l\"> Kod j\u0105dra zosta\u0142 ca\u0142kowicie pozbawiony nieprzerywaj\u0105cych wyra\u017ce\u0144 case w switch (bez return lub break po ka\u017cdym bloku case). Przy kompilacji j\u0105dra b\u0119dzie teraz mo\u017cna zastosowa\u0107 tryb \u201e-Wimplicit-fallthrough\u201d.\n<li class=\"l\"> W\u0142\u0105czono zmiany maj\u0105ce na celu zaostrzenie kontroli granic podczas wykonywania funkcji memcpy().\n<li class=\"l\"> W interfejsie asynchronicznego wej\u015bcia\/wyj\u015bcia io_uring zaimplementowano mo\u017cliwo\u015b\u0107 stosowania do operacji wej\u015bcia\/wyj\u015bcia polityk bezpiecze\u0144stwa okre\u015blonych przez modu\u0142y SELinux i Smack.\n<li class=\"l\"> W podsystemie IMA (Integrity Measurement Architecture), umo\u017cliwiaj\u0105cym zewn\u0119trznej us\u0142udze weryfikacj\u0119 stanu podsystem\u00f3w j\u0105dra w celu zapewnienia ich autentyczno\u015bci, zaimplementowano mo\u017cliwo\u015b\u0107 stosowania zasad opartych na identyfikatorze grupy (GID), do kt\u00f3rej nale\u017cy plik lub w kt\u00f3r\u0105 wchodzi u\u017cytkownik uzyskuj\u0105cy dost\u0119p do pliku.\n<li class=\"l\"> Niekt\u00f3re zaawansowane mechanizmy ochrony w\u0105tk\u00f3w seccomp() przed atakami klasy Spectre s\u0105 domy\u015blnie wy\u0142\u0105czone, poniewa\u017c uznano je za zb\u0119dne, znacz\u0105co nie zwi\u0119kszaj\u0105ce bezpiecze\u0144stwa, ale negatywnie wp\u0142ywaj\u0105ce na wydajno\u015b\u0107. Zrewidowano zastosowanie ochrony Retpoline.\n<li class=\"l\"> Usuni\u0119to implementacj\u0119 mechanizmu cryptoloop, kt\u00f3ry w 2004 roku zosta\u0142 zast\u0105piony przez dm-crypt, obs\u0142uguj\u0105cy te same algorytmy w razie potrzeby.\n<li class=\"l\"> Domy\u015blnie zablokowano nieuprzywilejowany dost\u0119p do podsystemu eBPF. Zmiana wprowadzono w celu zapobie\u017cenia wykorzystaniu program\u00f3w BPF do omijania ochrony przed atakami kana\u0142ami bocznymi. W razie potrzeby administrator mo\u017ce przywr\u00f3ci\u0107 mo\u017cliwo\u015b\u0107 korzystania z eBPF przez u\u017cytkownik\u00f3w bez uprzywilejowa\u0144.\n<li class=\"l\"> Do hipernadzorcy ACRN, zaprojektowanego do wykonywania zada\u0144 czasu rzeczywistego oraz u\u017cycia w krytycznych systemach, dodano wsparcie dla tworzenia\/usuwania wirtualnych urz\u0105dze\u0144 oraz przekazywania urz\u0105dze\u0144 MMIO.\n<li class=\"l\"> W silniku kryptograficznym dodano wsparcie dla definicji KPP (Key-agreement Protocol Primitives), upraszczaj\u0105cych logik\u0119 tworzenia sterownik\u00f3w dla system\u00f3w kryptograficznych.\n<li class=\"l\"> Dla hipernadzorcy Hyper-V wprowadzono wsparcie dla trybu izolacji, <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/vps\/\"   title=\"maszyn wirtualnych\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2084\">maszyn wirtualnych<\/a>oznaczaj\u0105cego szyfrowanie zawarto\u015bci pami\u0119ci.\n<li class=\"l\"> W hiperwizorze <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/vps\/abuzoustojchivye-vps\/\"   title=\"KVM\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4404\">KVM<\/a> dodano wsparcie dla architektury RISC-V. Zrealizowano mo\u017cliwo\u015b\u0107 migracji w obr\u0119bie hosta wirtualnych maszyn wykonywanych z u\u017cyciem rozszerze\u0144 AMD SEV i SEV-ES. Dodano API do migracji na \u017cywo go\u015bcinnych system\u00f3w szyfrowanych przy u\u017cyciu AMD SEV (Secure Encrypted Virtualization).\n<li class=\"l\"> Dla architektury PowerPC domy\u015blnie w\u0142\u0105czono tryb STRICT_KERNEL_RWX, blokuj\u0105cy u\u017cycie stron pami\u0119ci, kt\u00f3re s\u0105 jednocze\u015bnie dost\u0119pne do zapisu i wykonania.\n<li class=\"l\"> Na 32-bitowych systemach x86 zaprzestano wsparcia dla gor\u0105cego pod\u0142\u0105czania pami\u0119ci (Memory hotplug), kt\u00f3re przez ponad rok by\u0142o w stanie nieaktywno\u015bci.\n<li class=\"l\"> Z j\u0105dra usuni\u0119to bibliotek\u0119 liblockdep, kt\u00f3ra teraz b\u0119dzie utrzymywana oddzielnie od j\u0105dra.                  <\/ul>\n<li class=\"l\"> <b>Subsystem sieciowy<\/b>\n<ul>\n<li class=\"l\"> Dla gniazd wprowadzono now\u0105 opcj\u0119 SO_RESERVE_MEM, za pomoc\u0105 kt\u00f3rej mo\u017cna zarezerwowa\u0107 okre\u015blon\u0105 ilo\u015b\u0107 pami\u0119ci dla gniazda, kt\u00f3ra zawsze b\u0119dzie dost\u0119pna dla gniazda i nie zostanie odebrana. U\u017cycie tej opcji pozwala zwi\u0119kszy\u0107 wydajno\u015b\u0107 poprzez ograniczenie w sieci operacji alokacji i zwracania pami\u0119ci, szczeg\u00f3lnie w przypadku wyst\u0105pienia warunk\u00f3w niedoboru pami\u0119ci w systemie.\n<li class=\"l\"> Dodano wsparcie dla protoko\u0142u automatycznego tunelowania multicastowego (Automatic Multicast Tunneling, RFC 7450), kt\u00f3ry pozwala na dostarczanie multicastowego ruchu z sieci obs\u0142uguj\u0105cych multicast do odbiorc\u00f3w w sieciach bez multicastu. Protok\u00f3\u0142 dzia\u0142a poprzez inkapsulacj\u0119 w pakietach UDP.\n<li class=\"l\"> Ulepszono inkapsulacj\u0119 danych IOAM (In-situ Operations, Administration, and Maintenance) w pakietach tranzytowych.\n<li class=\"l\"> W interfejsie API netlink w ethtool dodano mo\u017cliwo\u015b\u0107 zarz\u0105dzania trybami zasilania nadajnik\u00f3w.\n<li class=\"l\"> W subsystemie netfilter wprowadzono mo\u017cliwo\u015b\u0107 klasyfikacji pakiet\u00f3w na poziomie egress, tj. w momencie, gdy sterownik otrzymuje pakiet od stosu sieciowego j\u0105dra. W nftables wsparcie odpowiednich filtr\u00f3w pojawi\u0142o si\u0119 w wersji 1.0.1. W netfilter dodano mo\u017cliwo\u015b\u0107 dopasowywania i modyfikacji wewn\u0119trznych nag\u0142\u00f3wk\u00f3w i danych dla UDP i TCP (inner header \/ payload), kt\u00f3re nast\u0119puj\u0105 po nag\u0142\u00f3wku transportowym (transport header).\n<li class=\"l\"> Dodano nowe parametry sysctl arp_evict_nocarrier i ndisc_evict_nocarrier, przy kt\u00f3rych ustaleniu cache ARP i tabela ndisc (discovery s\u0105siad\u00f3w) b\u0119d\u0105 czyszczone w przypadku zerwania po\u0142\u0105czenia (NOCARRIER).\n<li class=\"l\"> W mechanizmie zarz\u0105dzania kolejkami sieciowymi fq_codel (Controlled Delay) dodano tryby Low Latency, Low Loss i Scalable Throughput (L4S).                          <\/ul>\n<li class=\"l\"> <b>Sprz\u0119t<\/b>\n<ul>\n<li class=\"l\"> W sterowniku amdgpu wprowadzono wst\u0119pn\u0105 obs\u0142ug\u0119 specyfikacji DP 2.0 (DisplayPort 2.0) oraz mo\u017cliwo\u015b\u0107 tunelowania DisplayPort przez USB4. Dla APU Cyan Skillfish (wyposa\u017cone w GPU Navi 1x) dodano wsparcie dla kontroler\u00f3w wy\u015bwietlacza. Rozszerzono wsparcie dla APU Yellow Carp (mobilne procesory Ryzen 6000 \u201eRembrandt\u201d).\n<li class=\"l\"> W sterowniku i915 ustabilizowano wsparcie dla chip\u00f3w Intel Alderlake S i wprowadzono wsparcie dla technologii Intel PXP (Protected Xe Path), kt\u00f3ra umo\u017cliwia organizacj\u0119 pracy sprz\u0119towo chronionej sesji graficznej na systemach z chipami Intel Xe.\n<li class=\"l\"> W sterowniku nouveau przeprowadzono prace nad popraw\u0105 b\u0142\u0119d\u00f3w i ulepszeniem stylu kodu.\n<li class=\"l\"> Dodano wsparcie dla procesor\u00f3w zgodnych z x86 Vortex (Vortex86MX). Linux na takich procesorach dzia\u0142a\u0142 wcze\u015bniej, ale wyra\u017ana identyfikacja tych CPU by\u0142a potrzebna do wy\u0142\u0105czenia zabezpiecze\u0144 przed atakami Spectre\/Meltdown, kt\u00f3re nie maj\u0105 zastosowania do tych chip\u00f3w.\n<li class=\"l\"> Dodano wst\u0119pne wsparcie dla platform x86 Surface Pro 8 i Surface Laptop Studio.\n<li class=\"l\"> Dodano sterownik do obs\u0142ugi chip\u00f3w audio u\u017cywanych w APU AMD Yellow Carp, Van Gogh, a tak\u017ce dodano wsparcie dla system\u00f3w d\u017awi\u0119kowych i kodek\u00f3w Cirrus CS35L41, Maxim MAX98520\/MAX98360A, Mediatek MT8195, Nuvoton NAU8821, NVIDIA Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS, RT5682S, RT9120, Rockchip RV1126 i RK3568.\n<li class=\"l\"> Dodano sterownik ishtp_eclite do uzyskiwania dost\u0119pu do zintegrowanych kontroler\u00f3w Intel PSE (Programmable Service Engine) za pomoc\u0105 protoko\u0142u ISHTP (Integratd Sensor Hub Transport Protocol), na przyk\u0142ad do zbierania danych o akumulatorze, temperaturze i informacji zwi\u0105zanych z UCSI (USB Type-C Connector System Software Interface).\n<li class=\"l\"> Dodano sterownik dla kontroler\u00f3w gier Nintendo Switch, z obs\u0142ug\u0105 urz\u0105dze\u0144 Switch Pro i Joy-Cons. Dodano wsparcie dla tablet\u00f3w Wacom Intuos BT (CTL-4100WL\/CTL-6100WL) oraz klawiatury Apple 2021 Magic Keyboard. Ulepszono wsparcie dla kontroler\u00f3w Sony PlayStation DualSense. Dodano wsparcie dla bocznych przycisk\u00f3w myszy Xiaomi Mi.\n<li class=\"l\"> Dodano sterownik RT89 z obs\u0142ug\u0105 bezprzewodowych chip\u00f3w Realtek 802.11ax, a tak\u017ce sterowniki dla adapter\u00f3w Ethernet Asix AX88796C-SPI i prze\u0142\u0105cznik\u00f3w Realtek RTL8365MB-VC.\n<li class=\"l\"> Dla chip\u00f3w Apple M1 dodano sterowniki dla PCI i PASemi i2c.\n<li class=\"l\"> Dodano wsparcie dla SoC ARM, urz\u0105dze\u0144 i p\u0142yt Raspberry Pi Compute Module 4, Fairphone 4, Snapdragon 690, LG G Watch R, Sony Xperia 10 III, Samsung Galaxy S4 Mini Value Edition, Xiaomi MSM8996 (Mi 5, Mi Note 2, Mi 5s, Mi Mix, Mi 5s Plus i Xiaomi Mi 5), Sony Yoshino (Sony Xperia XZ1 i Sony Xperia XZ Premium), F(x)tec Pro1 QX1000, Microchip LAN966, CalAmp LMU5000, Exegin Q5xR5, sama7g5, Samsung ExynosAutov9, Rockchip RK3566, RK3399 ROCK Pi 4A+, RK3399 ROCK Pi 4B+, Firefly ROC-RK3328-PC, Firefly ROC-RK3399-PC-PLUS, ASUS Chromebook Tablet CT100, Pine64 Quartz64-A, Netgear GS110EMX, Globalscale MOCHAbin 7040, NXP S32G2, Renesas R8A779M*, Xilinx Kria, Radxa Zero, JetHub D1\/H1, Netronix E70K02.          <\/ul>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56478\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.16. \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 futex_waitv \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 Windows-\u0438\u0433\u0440 \u0432 Wine, \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0424\u0421 \u0447\u0435\u0440\u0435\u0437 fanotify, \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f \u0444\u043e\u043b\u0438\u0430\u043d\u0442\u043e\u0432 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 AMX, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0441\u043e\u043a\u0435\u0442\u0430\u043c\u0438, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 netfilter \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 &#171;egress&#187;, \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-102933","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.16.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-16\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.16 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.16.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-16\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-01-10T13:36:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-01-10T13:36:38+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wydanie j\u0105dra Linux 5.16 | ProHoster","description":"Po dw\u00f3ch miesi\u0105cach prac Linus Torvalds zaprezentowa\u0142 wydanie j\u0105dra Linux 5.16.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-16","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.16 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 5.16.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-16","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-01-10T13:36:38+00:00","article:modified_time":"2022-01-10T13:36:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"102933","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-01-10 13:37:39","updated":"2026-02-09 17:11:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/102933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=102933"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/102933\/revisions"}],"predecessor-version":[{"id":164281,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/102933\/revisions\/164281"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=102933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=102933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=102933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}