{"id":120593,"date":"2024-11-18T13:09:07","date_gmt":"2024-11-18T11:09:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima"},"modified":"2024-11-18T13:09:07","modified_gmt":"2024-11-18T11:09:07","slug":"reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","title":{"rendered":"Wydanie j\u0105dra Linux 6.12 z obs\u0142ug\u0105 trybu czasu rzeczywistego","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po dw\u00f3ch miesi\u0105cach prac Linus Torvalds zaprezentowa\u0142 wydanie j\u0105dra Linux 6.12. W\u015br\u00f3d najbardziej znacz\u0105cych zmian znajduj\u0105 si\u0119: mo\u017cliwo\u015b\u0107 w\u0142\u0105czenia trybu czasu rzeczywistego, sched_ext do tworzenia planist\u00f3w CPU za po\u015brednictwem eBPF, generowanie kodu QR w stanach awaryjnych, mechanizm pami\u0119ci urz\u0105dzenia TCP, mechanizm rezerwacji zasob\u00f3w SCHED_DEADLINE, poprawa planisty zada\u0144 EEVDF oraz modu\u0142 IPE do ustalania polityk zapewnienia integralno\u015bci.        <\/p>\n<p>W nowej wersji wprowadzono 14607 poprawek od 2167 deweloper\u00f3w, rozmiar \u0142atki wynosi 37 MB (zmiany dotyczy\u0142y 13087 plik\u00f3w, dodano 507913 linii kodu, usuni\u0119to 234083 linii). W poprzedniej wersji wprowadzono 15130 poprawek od 2078 deweloper\u00f3w, rozmiar \u0142atki wynosi\u0142 85 MB (w j\u0105drze 6.10 \u0142atka mia\u0142a rozmiar 41 MB). Oko\u0142o 45% wszystkich przedstawionych w 6.12 zmian dotyczy sterownik\u00f3w urz\u0105dze\u0144, oko\u0142o 12% zmian odnosi si\u0119 do aktualizacji kodu specyficznego dla architektur sprz\u0119towych, 13% jest zwi\u0105zane z stosem sieciowym, 6% dotyczy system\u00f3w plik\u00f3w, a 3% z wewn\u0119trznymi podsystemami j\u0105dra.      <\/p>\n<p>G\u0142\u00f3wne nowo\u015bci w j\u0105drze 6.12:  <\/p>\n<ul>\n<li class=\"l\"> <b>Pami\u0119\u0107 i us\u0142ugi systemowe<\/b>\n<ul>\n<li class=\"l\"> Udost\u0119pniono mo\u017cliwo\u015b\u0107 kompilacji j\u0105dra z opcj\u0105 PREEMPT_RT bez dodatkowych \u0142at w celu pracy w trybie czasu rzeczywistego. Ostatni\u0105 brakuj\u0105c\u0105 funkcj\u0105, kt\u00f3ra uniemo\u017cliwia\u0142a aktywacj\u0119 trybu PREEMPT_RT, by\u0142a obs\u0142uga nieblokuj\u0105cego atomowego wyj\u015bcia przez funkcj\u0119 printk, kt\u00f3ra r\u00f3wnie\u017c zosta\u0142a przyj\u0119ta do j\u0105dra. Obs\u0142uga PREEMPT_RT jest dost\u0119pna dla architektur x86, x86_64, ARM64 i RISC-V. Do tej pory implementacja trybu PREEMPT_RT by\u0142a dostarczana w formie zewn\u0119trznych \u0142at, na podstawie kt\u00f3rych niekt\u00f3re dystrybucje, takie jak RHEL, SUSE i Ubuntu, tworzy\u0142y osobne edycje czasu rzeczywistego swoich produkt\u00f3w, poszukiwane w takich dziedzinach jak systemy finansowe, urz\u0105dzenia do przetwarzania d\u017awi\u0119ku i wideo, lotnictwo, medycyna, robotyka, telekomunikacyjne i przemys\u0142owe systemy, w kt\u00f3rych konieczne jest zapewnienie przewidywalnego czasu przetwarzania zdarze\u0144.\n<li class=\"l\"> Dodano mechanizm \u00absched_ext\u00bb (SCX), kt\u00f3ry pozwala na u\u017cycie eBPF do tworzenia planist\u00f3w CPU, obejmuj\u0105cych niemal wszystkie aspekty planowania wykonania zada\u0144 oraz przydzia\u0142u zasob\u00f3w CPU. Takie planisty mog\u0105 by\u0107 \u0142adowane dynamicznie i wykonywane wewn\u0105trz j\u0105dra Linux. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/vps\/abuzoustojchivye-vps\/\"   title=\"maszynie wirtualnej\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4348\">maszynie wirtualnej<\/a> eBPF. Mechanizm sched_ext u\u0142atwia tworzenie specyficznych dla okre\u015blonych zada\u0144 planist\u00f3w, umo\u017cliwia eksperymentowanie z r\u00f3\u017cnymi technikami i strategiami planowania oraz pozwala na szybkie tworzenie dzia\u0142aj\u0105cych prototyp\u00f3w i wymian\u0119 planist\u00f3w w infrastrukturach roboczych. Na przyk\u0142ad, przy u\u017cyciu sched_ext mo\u017cna stworzy\u0107 planist\u0119 uwzgl\u0119dniaj\u0105cego specyfik\u0119 danego aplikacji i dynamicznie zmieniaj\u0105cego strategi\u0119 planowania w zale\u017cno\u015bci od stanu systemu i dodatkowych czynnik\u00f3w.\n<li class=\"l\"> W sk\u0142ad wchodzi pozosta\u0142a cz\u0119\u015b\u0107 \u0142atek wymaganych do dzia\u0142ania mechanizmu SCHED_DEADLINE server, kt\u00f3ry rozwi\u0105zuje problem niedostatecznego otrzymywania zasob\u00f3w CPU przez zwyk\u0142e zadania w warunkach monopolizacji CPU przez zadania o wysokim priorytecie (realtime). Aby zapobiec monopolizacji CPU, w j\u0105drze wcze\u015bniej u\u017cywano mechanizmu Realtime throttling, kt\u00f3ry pr\u00f3bowa\u0142 zarezerwowa\u0107 5% dla zada\u0144 niskoprioritytowych, pozostawiaj\u0105c 95% czasu zadaniom realtime. Mechanizm ten pozostawia\u0142 wiele do \u017cyczenia, poniewa\u017c zwyk\u0142e zadania w wielu sytuacjach nie otrzymywa\u0142y wystarczaj\u0105cej ilo\u015bci czasu procesora. SCHED_DEADLINE server realizuje bardziej efektywny mechanizm rezerwacji zasob\u00f3w.\n<li class=\"l\"> Zako\u0144czono integracj\u0119 planisty zada\u0144 EEVDF (Earliest Eligible Virtual Deadline First), kt\u00f3ry zast\u0105pi\u0142 planist\u0119 CFS (Completely Fair Scheduler) dostarczanego od j\u0105dra 2.6.23. Nowy planista przy wyborze nast\u0119pnego procesu do przekazania wykonania uwzgl\u0119dnia procesy, kt\u00f3re nie otrzyma\u0142y wystarczaj\u0105cych zasob\u00f3w procesora lub otrzyma\u0142y nies\u0142usznie du\u017co czasu procesora. W pierwszym przypadku wymusza przekazanie kontroli procesowi, a w drugim, przeciwnie, odk\u0142ada je. Stary planista CFS u\u017cywa\u0142 heurystyki i drobnych dostosowa\u0144 do okre\u015blenia proces\u00f3w wymagaj\u0105cych szczeg\u00f3lnej uwagi, podczas gdy nowy planista \u015bledzi je bardziej bezpo\u015brednio i nie wymaga drobnych dostosowa\u0144. Zak\u0142ada si\u0119, \u017ce EEVDF pozwoli na zmniejszenie op\u00f3\u017anie\u0144 przy realizacji zada\u0144, z kt\u00f3rymi CFS mia\u0142o problemy z planowaniem.\n<li class=\"l\"> Do obs\u0142ugi awarii w j\u0105drze \u2014 DRM Panic, wykorzystuj\u0105cego podsystem DRM (Direct Rendering Manager) do wy\u015bwietlania wizualnego raportu w stylu \u00abniebieskiego ekranu \u015bmierci\u00bb, dodano mo\u017cliwo\u015b\u0107 pokazu na ekranie logo i kodu QR z raportem kmsg w przypadku wyst\u0105pienia stanu awaryjnego. Poniewa\u017c w kodzie QR mie\u015bci si\u0119 tylko 2953 bajty, przewidziano opcj\u0119 DRM_PANIC_SCREEN_QR_CODE_URL, w ramach kt\u00f3rej raport kmsg jest kompresowany za pomoc\u0105 zlib i do\u0142\u0105czany jako parametr do URL, co pozwala na przes\u0142anie przez kod QR V40 oko\u0142o 7500 bajt\u00f3w. Przy budowie pakiet\u00f3w z j\u0105drem dystrybucje mog\u0105 okre\u015bli\u0107 podstawowy link dla URL, co umo\u017cliwi przej\u015bcie na stron\u0119 do zg\u0142aszania problemu. Dla wyboru formatu kodu QR przewidziano ustawienie DRM_PANIC_SCREEN_QR_VERSION.\n<li class=\"l\"> Dodano wsparcie dla rozszerzenia ARM POE (Permission Overlay Extension), kt\u00f3re pozwala na definiowanie uprawnie\u0144 dost\u0119pu do obszar\u00f3w pami\u0119ci. Dzi\u0119ki temu rozszerzeniu w systemach z procesorami ARM64 mo\u017cna zrealizowa\u0107 mechanizm Memory Protection Keys, stosowany do ograniczania dost\u0119pu do stron pami\u0119ci bez konieczno\u015bci zmiany tabeli stron pami\u0119ci.\n<li class=\"l\"> Dla architektur Loongarch, ARM64, PowerPC i s390 przeniesiono realizacj\u0119 wywo\u0142ania systemowego getrandom(), optymalizuj\u0105c j\u0105 za pomoc\u0105 mechanizmu vDSO (virtual dynamic shared object), kt\u00f3ry pozwala na przeniesienie obs\u0142ugi wywo\u0142ania systemowego z j\u0105dra do przestrzeni u\u017cytkownika, unikaj\u0105c prze\u0142\u0105cze\u0144 kontekstu. Optymalizacja ta pozwala przyspieszy\u0107 uzyskiwanie losowych liczb do 15 razy.\n<li class=\"l\"> Do podsystemu asynchronicznego wej\u015bcia\/wyj\u015bcia io_uring dodano mo\u017cliwo\u015b\u0107 u\u017cywania absolutnych timeout\u00f3w, kt\u00f3re uruchamiaj\u0105 si\u0119 po osi\u0105gni\u0119ciu okre\u015blonego czasu w systemowych zegarach (wcze\u015bniej mo\u017cna by\u0142o ustawia\u0107 tylko wzgl\u0119dne timeouty, w kt\u00f3rych okre\u015blano czas trwania od pocz\u0105tku operacji).\n<li class=\"l\"> Dodano pliki do generowania wi\u0105za\u0144 dla biblioteki libcpupower przy u\u017cyciu narz\u0119dzi SWIG, kt\u00f3re pozwalaj\u0105 na tworzenie wi\u0105za\u0144 z kodu w C\/C++ dla r\u00f3\u017cnych j\u0119zyk\u00f3w programowania. Wi\u0105zania te umo\u017cliwiaj\u0105 tworzenie skrypt\u00f3w w Pythonie i innych j\u0119zykach oraz ich wykorzystanie do rozszerzenia funkcjonalno\u015bci biblioteki libcpupower, kt\u00f3ra udost\u0119pnia API do zarz\u0105dzania cpufreq i sterownikami z przestrzeni u\u017cytkownika.\n<li class=\"l\"> W narz\u0119dziu cpuidle wprowadzono wy\u015bwietlanie warto\u015bci stanu bezczynno\u015bci \u00abresidency\u00bb, stosowanego w systemach czasu rzeczywistego i uwzgl\u0119dniaj\u0105cego minimalny czas, przez kt\u00f3ry procesor musi znajdowa\u0107 si\u0119 w stanie bezczynno\u015bci, aby uzasadni\u0107 koszty energii zwi\u0105zane z przej\u015bciem w ten stan i powrotem z niego.\n<li class=\"l\"> Dodano mo\u017cliwo\u015b\u0107 korzystania z kompilatora Clang do budowy standardowej biblioteki C nolibc, wchodz\u0105cej w sk\u0142ad \u017ar\u00f3de\u0142 j\u0105dra Linux, kt\u00f3ra zapewnia interfejs do podstawowych wywo\u0142a\u0144 systemowych. Podczas budowania nolibc w Clang dopuszcza si\u0119 wykorzystanie optymalizacji na etapie \u0142\u0105czenia (LTO).\n<li class=\"l\"> Niekt\u00f3re interfejsy cgroup1, takie jak rozliczanie TCP, pierwsza wersja mi\u0119kkich limit\u00f3w (soft limit) oraz zarz\u0105dzanie wyczerpywaniem pami\u0119ci, zosta\u0142y uznane za przestarza\u0142e. Wsparcie dla tych funkcji wci\u0105\u017c pozostaje w pe\u0142nym zakresie, a ostrze\u017cenie zosta\u0142o wydane w celu zbadania liczby u\u017cytkownik\u00f3w, kt\u00f3rzy nadal korzystaj\u0105 z tych mo\u017cliwo\u015bci.\n<li class=\"l\"> Dodano ustawienie bufora pier\u015bcieniowego \u015bledzenia, kt\u00f3re pozwala na zachowanie zgromadzonych danych po restarcie, co umo\u017cliwia nieutracenie zebranych informacji debuguj\u0105cych w przypadku awaryjnego zako\u0144czenia pracy j\u0105dra. Dane s\u0105 przechowywane w pami\u0119ci. W\u0142\u0105czenie odbywa si\u0119 za pomoc\u0105 parametru wiersza polece\u0144 j\u0105dra trace_instance; na przyk\u0142ad ustawienie \u201etrace_instance=boot_map@0x285400000:12M\u201d zarezerwuje 12 MB pami\u0119ci pod adresem 0x285400000 dla bufora \u201eboot_map\u201d, kt\u00f3ry b\u0119dzie dost\u0119pny przez plik \/sys\/kernel\/tracing\/instances\/boot_map.\n<li class=\"l\"> Kontynuowana jest migracja zmian z ga\u0142\u0119zi Rust-for-Linux, zwi\u0105zanych z u\u017cyciem j\u0119zyka Rust jako drugiego j\u0119zyka do pisania sterownik\u00f3w i modu\u0142\u00f3w j\u0105dra (wsparcie dla Rust nie jest domy\u015blnie aktywowane i nie prowadzi do uwzgl\u0119dnienia Rust w obowi\u0105zkowych zale\u017cno\u015bciach podczas kompilacji j\u0105dra). Dodano modu\u0142y \u2018list\u2019 oraz \u2018rbtree\u2019 do pracy z dwukierunkowymi listami po\u0142\u0105czonymi oraz drzewami czerwono-czarnymi. Rozszerzone mo\u017cliwo\u015bci modu\u0142\u00f3w \u2018init\u2019, \u2018sync\u2019, \u2018types\u2019 i \u2018error\u2019. Umo\u017cliwiono u\u017cycie kodu w Rust przy kompilacji j\u0105dra z zabezpieczeniem przed atakami Spectre (opcje MITIGATION_{RETHUNK, RETPOLINE, SLS}), u\u017cyciem systemu debugowania KASAN, mechanizm\u00f3w ochrony kCFI (kernel Control Flow Integrity) oraz Shadow Call, a tak\u017ce podczas korzystania z dodatkowych wtyczek GCC. Dodano sterownik dla kontrolera Ethernet Applied Micro QT2025 PHY, napisany w Rust. Przygotowano osobn\u0105 stron\u0119 z dokumentacj\u0105 \u2013 rust.docs.kernel.org.\n<li class=\"l\"> W sk\u0142ad \u017ar\u00f3de\u0142 j\u0105dra dodano narz\u0119dzie xdrgen do konwersji specyfikacji XDR (eXternal Data Representation) na funkcje kodowania i dekodowania XDR napisane w stylu C akceptowanym w j\u0105drze Linux.\n<li class=\"l\"> Do j\u0105dra wprowadzono zmian\u0119 z implementacj\u0105 mechanizmu maskowania wska\u017anik\u00f3w w celu zmniejszenia liczby wolnych wywo\u0142a\u0144 barrier_nospec() w 64-bitowej funkcji copy_from_user(), kt\u00f3ra jest u\u017cywana do kopiowania danych z przestrzeni u\u017cytkownika do j\u0105dra. Zastosowanie maskowania przyspiesza przej\u015bcie testu \u201eper_thread_ops\u201d, kt\u00f3ry ocenia liczb\u0119 operacji, kt\u00f3re mog\u0105 zosta\u0107 wykonane w jednym w\u0105tku, o 2,6%.\n<li class=\"l\"> Dodano nowy sterownik USB, kt\u00f3ry umo\u017cliwia u\u017cycie protoko\u0142u 9pfs jako transportu do przesy\u0142ania i odbierania danych z urz\u0105dzenia USB przy montowaniu systemu plik\u00f3w 9p na USB (na przyk\u0142ad \u201emount -t 9p -o trans=usbg,aname=\/path\/to\/fs  \/mnt\/9\u201d). Jako przyk\u0142ad zastosowania nowego sterownika podano u\u017cycie zamiast NFS do organizacji \u0142adowania partycji root podczas rozwoju urz\u0105dze\u0144 wbudowanych.                    <\/ul>\n<li class=\"l\"> <b>Podsystem dyskowy, wej\u015bcie\/wyj\u015bcie i systemy plik\u00f3w<\/b>\n<ul>\n<li class=\"l\"> W podsystemie VFS dodano mo\u017cliwo\u015b\u0107 pracy z urz\u0105dzeniami pami\u0119ci masowej, kt\u00f3rych rozmiar blok\u00f3w jest wi\u0119kszy ni\u017c rozmiar strony pami\u0119ci w systemie. W systemach plik\u00f3w, ta mo\u017cliwo\u015b\u0107 jest obecnie wspierana tylko w XFS.\n<li class=\"l\"> Do podsystemy FUSE, umo\u017cliwiaj\u0105cej tworzenie implementacji system\u00f3w plik\u00f3w dzia\u0142aj\u0105cych w przestrzeni u\u017cytkownika, dodano wsparcie dla mapowania identyfikator\u00f3w u\u017cytkownik\u00f3w zamontowanych system\u00f3w plik\u00f3w, stosowanego do kojarzenia plik\u00f3w okre\u015blonego u\u017cytkownika na zamontowanej obcej partycji z innym u\u017cytkownikiem w bie\u017c\u0105cym systemie.\n<li class=\"l\"> Zrealizowano now\u0105 operacj\u0119 fcntl F_CREATED_QUERY, umo\u017cliwiaj\u0105c\u0105 aplikacji okre\u015blenie, czy plik otwarty z flag\u0105 O_CREAT zosta\u0142 stworzony, czy istnia\u0142 wcze\u015bniej.\n<li class=\"l\"> Do wywo\u0142ania systemowego name_to_handle_at() dodano mo\u017cliwo\u015b\u0107 u\u017cycia unikalnych 64-bitowych identyfikator\u00f3w punkt\u00f3w montowania w celu unikni\u0119cia warunk\u00f3w wy\u015bcigu podczas analizy \/proc\/mountinfo.\n<li class=\"l\"> Rozmiar struktury &#171;file&#187; w j\u0105drze zosta\u0142 zmniejszony z 232 do 184 bajt\u00f3w, co pozwala na zmniejszenie zu\u017cycia pami\u0119ci w systemach aktywnie pracuj\u0105cych z plikami.\n<li class=\"l\"> Zabroniono montowania system\u00f3w plik\u00f3w do punkt\u00f3w montowania wewn\u0105trz hierarchii \/proc, na przyk\u0142ad w \/proc\/PID\/fd, co stwarza\u0142o potencjalne problemy z bezpiecze\u0144stwem.\n<li class=\"l\"> W pseudo-FS NSFS (NameSpace FS), u\u017cywanym do pracy z przestrzeniami nazw, wprowadzono dodatkowe informacje o przestrzeniach nazw punkt\u00f3w montowania.\n<li class=\"l\"> W systemie plik\u00f3w EROFS (Extendable Read-Only File System), przeznaczonym do u\u017cytku na partycjach dost\u0119pnych w trybie tylko do odczytu, dodano wsparcie dla montowania system\u00f3w plik\u00f3w bezpo\u015brednio z obraz\u00f3w dysk\u00f3w przechowywanych w postaci plik\u00f3w.\n<li class=\"l\"> W XFS dodano nowe polecenia ioctl XFS_IOC_START_COMMIT i XFS_IOC_COMMIT_RANGE do wymiany zawarto\u015bci mi\u0119dzy dwoma plikami.\n<li class=\"l\"> W NFS dodano wsparcie dla protoko\u0142u &#171;LOCALIO&#187;, kt\u00f3ry pozwala okre\u015bli\u0107, czy klient i <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/\"   title=\"serwer\" data-wpil-keyword-link=\"linked\">serwer<\/a> NFS znajduj\u0105 si\u0119 na tym samym ho\u015bcie, aby wykorzysta\u0107 odpowiednie optymalizacje.\n<li class=\"l\"> W systemie plik\u00f3w Btrfs proponowane s\u0105 optymalizacje wydajno\u015bci, przeprowadzono refaktoryzacj\u0119 kodu, zmniejszono obszar blokowania extents podczas operacji odczytu, kontynuowano prace nad przej\u015bciem na u\u017cycie foli\u00f3w stron pami\u0119ci (page folios), wprowadzono automatyczne zwalnianie pami\u0119ci dla struktury btrfs_path.\n<li class=\"l\"> W systemie plik\u00f3w Ext4 naprawiono b\u0142\u0119dy zwi\u0105zane z przydzielaniem blok\u00f3w, zarz\u0105dzaniem extentami, mechanizmem &#171;fast commit&#187; i dziennikowaniem.                  <\/ul>\n<li class=\"l\"> <b>Wirtualizacja i bezpiecze\u0144stwo<\/b>\n<ul>\n<li class=\"l\"> Dodano modu\u0142 LSM IPE (Integrity Policy Enforcement), opracowany przez firm\u0119 Microsoft w celu rozszerzenia istniej\u0105cego systemu mandatywnego zarz\u0105dzania dost\u0119pem. Modu\u0142 pozwala okre\u015bli\u0107 og\u00f3ln\u0105 polityk\u0119 zapewnienia integralno\u015bci dla ca\u0142ego systemu, wskazuj\u0105c, jakie operacje s\u0105 dozwolone i w jaki spos\u00f3b nale\u017cy weryfikowa\u0107 autentyczno\u015b\u0107 sk\u0142adnik\u00f3w. Na przyk\u0142ad, za pomoc\u0105 IPE mo\u017cna wskaza\u0107, kt\u00f3re pliki wykonywalne mo\u017cna uruchamia\u0107, z uwzgl\u0119dnieniem weryfikacji ich zgodno\u015bci z wersj\u0105 odniesienia przy u\u017cyciu kryptograficznych haszy dostarczonych przez system dm-verity.\n<li class=\"l\"> Na etapie kompilacji j\u0105dra wprowadzono mo\u017cliwo\u015b\u0107 oddzielnego w\u0142\u0105czania dost\u0119pnych metod ochrony przed r\u00f3\u017cnymi podatno\u015bciami klasy Spectre w CPU. W Kconfig zaproponowano nowe opcje: MITIGATE_MDS (ochrona przed podatno\u015bci\u0105 Microarchitectural Data Sampling), MITIGATE_TAA (ochrona przed podatno\u015bci\u0105 TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (ochrona przed podatno\u015bci\u0105 MMIO Stale Data), MITIGATE_L1TF (ochrona przed podatno\u015bci\u0105 L1 Terminal Fault), MITIGATE_RETBLEED (ochrona przed podatno\u015bci\u0105 Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (ochrona przed podatno\u015bciami Spectre), MITIGATE_SRBDS (ochrona przed podatno\u015bci\u0105 Special Register Buffer Data Sampling), MITIGATE_SSB (ochrona przed podatno\u015bci\u0105 Speculative Store Bypass).\n<li class=\"l\"> Dodano parametr wiersza polece\u0144 proc_mem.force_override oraz zestaw ustawie\u0144 kompilacyjnych w Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE i PROC_MEM_FORCE_NEVER), kt\u00f3re pozwalaj\u0105 zakaza\u0107 modyfikacji pami\u0119ci przez \/proc\/pid\/mem.\n<li class=\"l\"> Podsystem LSM (Linux Security Module) przeszed\u0142 na u\u017cywanie statycznych wywo\u0142a\u0144, co pozwoli\u0142o wzmocni\u0107 bezpiecze\u0144stwo i zwi\u0119kszy\u0107 wydajno\u015b\u0107.\n<li class=\"l\"> Zapewniono mo\u017cliwo\u015b\u0107 korzystania z domy\u015blnych rdzeni dla architektury ARM64 w \u015brodowiskach go\u015bcinnych dzia\u0142aj\u0105cych na systemach Android z zmodyfikowanym hyperwizorem KVM (protected KVM).\n<li class=\"l\"> W module LSM Landlock, kt\u00f3ry pozwala ograniczy\u0107 interakcj\u0119 grupy proces\u00f3w z zewn\u0119trznym \u015brodowiskiem, wprowadzono koncepcj\u0119 &#171;IPC scoping&#187; dla selektywnego ograniczenia interakcji z \u015brodowiskami sandbox, u\u017cywaj\u0105c gniazd Unix i sygna\u0142\u00f3w. Na przyk\u0142ad, mo\u017cna zablokowa\u0107 nawi\u0105zywanie po\u0142\u0105cze\u0144 przy u\u017cyciu gniazd Unix z \u015brodowiska sandbox do proces\u00f3w, w kt\u00f3rych nie stosuje si\u0119 izolacji, ale zezwoli\u0107 na po\u0142\u0105czenia z procesami w tej samej zakresie.\n<li class=\"l\"> W hyperwizorze KVM w CPUID dla system\u00f3w go\u015bcinnych dodano flag\u0119, kt\u00f3ra sygnalizuje o wsparciu rozszerze\u0144 AVX10.1.            <\/ul>\n<li class=\"l\"> <b>Subsystem sieciowy<\/b>\n<ul>\n<li class=\"l\"> Dodano urz\u0105dzenie pami\u0119ci TCP, kt\u00f3re umo\u017cliwia korzystanie z gniazd sieciowych do bezpo\u015bredniego przesy\u0142ania zawarto\u015bci pami\u0119ci urz\u0105dze\u0144 peryferyjnych przez sie\u0107 (tryb zero-copy) oraz bezpo\u015brednie umieszczanie zawarto\u015bci pakiet\u00f3w sieciowych w obszarze pami\u0119ci urz\u0105dzenia po stronie odbiorcy. Przesy\u0142ane w pakietach dane s\u0105 przesy\u0142ane z karty sieciowej do pami\u0119ci urz\u0105dzenia peryferyjnego lub z pami\u0119ci urz\u0105dzenia do karty sieciowej bezpo\u015brednio, omijaj\u0105c CPU, a nag\u0142\u00f3wki pakiet\u00f3w trafiaj\u0105 do zwyk\u0142ych bufor\u00f3w j\u0105dra.\n<li class=\"l\"> Rozszerzone mo\u017cliwo\u015bci wielu sterownik\u00f3w Ethernet i bezprzewodowych. Na przyk\u0142ad, w sterowniku Intel iwlwifi dodano wsparcie dla przeniesienia operacji RLC\/SMPS na stron\u0119 oprogramowania sprz\u0119towego, w sterowniku RealTek rtw89 zwi\u0119kszono wydajno\u015b\u0107 i dodano wsparcie dla chip\u00f3w RTL8852BT\/8852BE-VT (WiFi 6), w sterowniku Ethernet microchip dodano wsparcie dla specyfikacji IEEE 802.3bw (100BASE-T1) i IEEE 802.3bp, ulepszono implementacje wirtualnych Ethernet Microsoft vNIC i IBM veth. Dodano nowe sterowniki dla chip\u00f3w Ethernet Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 oraz Microchip LAN8650\/1 10BASE-T1S MAC-PHY.\n<li class=\"l\"> W MPTCP (MultiPath TCP), rozszerzeniu protoko\u0142u TCP do organizowania dostarczania pakiet\u00f3w TCP jednocze\u015bnie przez wiele tras za po\u015brednictwem r\u00f3\u017cnych interfejs\u00f3w sieciowych, rozmiar u\u017cywanych przy routingu wag zosta\u0142 zwi\u0119kszony z 8 do 16 bit\u00f3w. Zrealizowano detekcj\u0119 znikaj\u0105cego (blackhole) ruchu oraz wstrzymanie na pewien czas pr\u00f3b ustanawiania po\u0142\u0105cze\u0144 z systemami, kt\u00f3re prowadz\u0105 do utraty ruchu.\n<li class=\"l\"> Dla IPv6 wdro\u017cono wsparcie dla flagi &#171;p&#187; w PIO (Prefix Information Option), stosowanej w og\u0142oszeniach RA (IPv6 Router Advertisements) do wyboru modelu wdra\u017cania klient\u00f3w przez DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) zamiast przypisywania oddzielnych adres\u00f3w na podstawie prefiks\u00f3w, u\u017cywaj\u0105c SLAAC (Stateless Address Autoconfiguration). W IPv6 IOAM6 dodano wsparcie dla nowego trybu enkapsulacji tunsrc, co pozwala osi\u0105gn\u0105\u0107 wy\u017csz\u0105 wydajno\u015b\u0107.\n<li class=\"l\"> Zwi\u0119kszona wydajno\u015b\u0107 przetwarzania pakiet\u00f3w kontrolnych IPsec.\n<li class=\"l\"> Zwi\u0119kszona wydajno\u015b\u0107 resetowania (flush) du\u017cych zestaw\u00f3w regu\u0142 nftables. W nfnetlink_queue ulepszono wsparcie dla protoko\u0142u SCTP.\n<li class=\"l\"> W API ethtool dodano wsparcie dla przypisania wielu kart sieciowych do jednego interfejsu sieciowego.                      <\/ul>\n<li class=\"l\"> <b>Sprz\u0119t<\/b>\n<ul>\n<li class=\"l\"> W sterowniku AMDGPU kontynuowano prace nad wsparciem GPU AMD RDNA4 (&#171;GFX12&#187;). Dodano mo\u017cliwo\u015b\u0107 resetowania pojedynczych kolejek zada\u0144 bez resetowania stanu ca\u0142ego GPU.\n<li class=\"l\"> Kontynuowano prace nad sterownikiem drm (Direct Rendering Manager) Xe dla GPU opartych na architekturze Intel Xe, kt\u00f3re s\u0105 u\u017cywane w kartach graficznych Intel serii Arc oraz w grafice zintegrowanej, zaczynaj\u0105c od procesor\u00f3w Tiger Lake. Nowa wersja obejmuje wsparcie dla GPU opartych na mikroarchitekturze Battlemage i Lunar Lake. Wprowadzono wsparcie dla modyfikator\u00f3w CCS (Color Control Surface) Xe2 do zarz\u0105dzania parametrami zintegrowanych i dedykowanych GPU.\n<li class=\"l\"> W sterowniku i915 wprowadzono mo\u017cliwo\u015b\u0107 wyprowadzania informacji o pr\u0119dko\u015bci obrotowej wentylatora przez interfejs HWMON lub sysfs (atrybut &#171;fan1_input&#187;). Parametr &#171;i915.modeset&#187; zosta\u0142 uznany za przestarza\u0142y, zamiast &#171;i915.modeset=0&#187; nale\u017cy u\u017cywa\u0107 parametru &#171;i915.nomodeset&#187;.\n<li class=\"l\"> W sterowniku DRM msm (GPU Qualcomm Adreno) dodano wsparcie dla GPU A615, A306 oraz A621.\n<li class=\"l\"> W sterowniku Nouveau przeprowadzono przeprojektowanie i porz\u0105dkowanie wewn\u0119trznych struktur.\n<li class=\"l\"> W sterowniku intel_pstate, zarz\u0105dzaj\u0105cym parametrami zu\u017cycia energii (P-state) na systemach z procesorami Intel, dodano wsparcie dla system\u00f3w hybrydowych z asymetrycznymi (r\u00f3\u017cni\u0105cymi si\u0119 w\u0142a\u015bciwo\u015bciami) CPU, a tak\u017ce wsparcie dla zarz\u0105dzania energi\u0105 procesor\u00f3w opartych na mikroarchitekturach Granite Rapids i Sierra Forest. W sterowniku intel_idle dodano wsparcie dla CPU Xeon Granite Rapids. W sterowniku intel_rapl zapewniono rozpoznawanie proces\u00f3w AMD serii 1Ah oraz procesor\u00f3w Intel ArrowLake-U.\n<li class=\"l\"> Kontynuowano wprowadzanie zmian dla wsparcia ARM SoC Snapdragon X Elite, w kt\u00f3rym zastosowano w\u0142asny 12-rdzeniowy CPU Qualcomm Oryon oraz GPU Qualcomm Adreno. Uk\u0142ad jest skierowany na rynek laptop\u00f3w i PC, przewy\u017cszaj\u0105c w wielu testach wydajno\u015bciowych uk\u0142ady Apple M3 oraz Intel Core Ultra 155H.\n<li class=\"l\"> Dodano wsparcie dla platform ARM, SoC oraz urz\u0105dze\u0144: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ\/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000\/A6010, Surface Laptop 7, Anbernic RG35XXSP, Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SG2002, Qualcomm IPQ5332, LG G4 (h815), Cool Pi CM5 GenBook, Anbernic RG35XXSP, GameForce Ace, IBM P11, Kontron i.MX93 OSM-S, NanoPC-T6.\n<li class=\"l\"> Dodano wsparcie dla paneli ekranowych Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4, Starry er88577.\n<li class=\"l\"> W systemie d\u017awi\u0119kowym dodano obs\u0142ug\u0119 chip\u00f3w i kodek\u00f3w RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Starsze sterowniki d\u017awi\u0119ku dla ASoC Intel zosta\u0142y uznane za przestarza\u0142e, zamiast nich zaleca si\u0119 stosowanie sterownik\u00f3w AVS. Wprowadzono wiele ulepsze\u0144 w sterowniku SoundWire.      <\/ul>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62243\">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 6.12. \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: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f Realtime-\u0440\u0435\u0436\u0438\u043c\u0430, sched_ext \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 CPU \u0447\u0435\u0440\u0435\u0437 eBPF, \u0432\u044b\u0432\u043e\u0434 QR-\u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Device Memory TCP, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 SCHED_DEADLINE server, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u0447 EEVDF, \u043c\u043e\u0434\u0443\u043b\u044c IPE \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u0438\u043d\u044f\u0442\u043e 14607 [&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-120593","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 6.12.\" \/>\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-6-12-s-podderzhkoj-realtime-rezhima\" \/>\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 6.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | 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 6.12.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima\" \/>\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=\"2024-11-18T11:09:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-11-18T11:09:07+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 6.12 z obs\u0142ug\u0105 trybu Realtime | ProHoster","description":"Po dw\u00f3ch miesi\u0105cach prac Linus Torvalds zaprezentowa\u0142 wydanie j\u0105dra Linux 6.12.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","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 6.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | 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 6.12.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","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":"2024-11-18T11:09:07+00:00","article:modified_time":"2024-11-18T11:09:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"120593","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":"2026-01-23 08:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 08:06:19","updated":"2026-01-23 08:06:19","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\/120593","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=120593"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/120593\/revisions"}],"predecessor-version":[{"id":173076,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/120593\/revisions\/173076"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=120593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=120593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=120593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}