{"id":104123,"date":"2022-05-23T15:36:40","date_gmt":"2022-05-23T13:36:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-5-18"},"modified":"2022-05-23T15:36:40","modified_gmt":"2022-05-23T13:36:40","slug":"reliz-yadra-linux-5-18","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-18","title":{"rendered":"Wydanie j\u0105dra Linux 5.18","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po dw\u00f3ch miesi\u0105cach prac Linus Torvalds zaprezentowa\u0142 wydanie j\u0105dra Linux 5.18. W\u015br\u00f3d najbardziej zauwa\u017calnych zmian: przeprowadzono du\u017c\u0105 modernizacj\u0119 przestarza\u0142ych funkcji, og\u0142oszono przestarza\u0142ym system plik\u00f3w Reiserfs, wdro\u017cono zdarzenia \u015bledzenia proces\u00f3w u\u017cytkownika, dodano wsparcie dla mechanizmu blokowania dzia\u0142ania exploit\u00f3w Intel IBT, w\u0142\u0105czono tryb wykrywania przepe\u0142nie\u0144 bufora podczas u\u017cywania funkcji memcpy(), dodano mechanizm \u015bledzenia wywo\u0142a\u0144 funkcji fprobe, poprawiono wydajno\u015b\u0107 harmonogramu zada\u0144 na CPU AMD Zen, w sk\u0142ad w\u0142\u0105czono sterownik do zarz\u0105dzania funkcjonalno\u015bci\u0105 CPU Intel (SDS), zintegrowano cz\u0119\u015b\u0107 poprawek do restrukturyzacji plik\u00f3w nag\u0142\u00f3wkowych, zatwierdzono zastosowanie standardu C11.      <\/p>\n<p>W nowej wersji wprowadzono 16206 poprawek od 2127 deweloper\u00f3w (w poprzednim wydaniu by\u0142o 14203 poprawki od 1995 deweloper\u00f3w), rozmiar \u0142atki wynosi 108 MB (zmiany dotyczy\u0142y 14235 plik\u00f3w, dodano 1340982 linijki kodu, usuni\u0119to 593836 linijek). Oko\u0142o 44% wszystkich przedstawionych zmian w 5.18 dotyczy sterownik\u00f3w urz\u0105dze\u0144, oko\u0142o 16% zmian odnosi si\u0119 do aktualizacji kodu specyficznego dla architektur sprz\u0119towych, 11% dotyczy stosu sieciowego, 3% \u2014 system\u00f3w plik\u00f3w i 3% \u2014 wewn\u0119trznych podsystem\u00f3w j\u0105dra.           <\/p>\n<p>G\u0142\u00f3wne nowo\u015bci w j\u0105drze 5.18:    <\/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\"> W systemie plik\u00f3w Btrfs dodano wsparcie dla przesy\u0142ania skompresowanych danych podczas wykonywania operacji send i receive. Wcze\u015bniej przy u\u017cyciu send\/receive strona wysy\u0142aj\u0105ca dekompresowa\u0142a dane przechowywane w skompresowanej formie, a strona odbieraj\u0105ca ponownie kompresowa\u0142a je przed zapisaniem. W j\u0105drze 5.18 aplikacjom w przestrzeni u\u017cytkownika, korzystaj\u0105cym z wywo\u0142a\u0144 send\/receive, dano mo\u017cliwo\u015b\u0107 przesy\u0142ania skompresowanych danych bez ponownego pakowania. Funkcjonalno\u015b\u0107 ta zosta\u0142a zrealizowana dzi\u0119ki nowym operacjom ioctl BTRFS_IOC_ENCODED_READ i BTRFS_IOC_ENCODED_WRITE, umo\u017cliwiaj\u0105cym bezpo\u015brednie czytanie i zapisywanie informacji w ekstencjach.\n<p>Dodatkowo w Btrfs zwi\u0119kszono wydajno\u015b\u0107 fsync. Dodano mo\u017cliwo\u015b\u0107 deduplikacji oraz realizacji reflink (klonowanie metadanych pliku z utworzeniem linku do ju\u017c istniej\u0105cych danych bez ich faktycznego kopiowania) dla ca\u0142ego magazynu, nie ograniczaj\u0105c si\u0119 do punkt\u00f3w montowania.         <\/p>\n<li class=\"l\"> W trybie bezpo\u015bredniego dost\u0119pu (Direct I\/O) mo\u017cliwe jest uzyskanie dost\u0119pu do zaszyfrowanych plik\u00f3w przy u\u017cyciu inline-szyfrowania w fscrypt, gdzie operacje szyfrowania i deszyfrowania s\u0105 realizowane przez kontroler dysku, a nie przez j\u0105dro. Przy standardowym szyfrowaniu realizowanym przez j\u0105dro dost\u0119p do zaszyfrowanych plik\u00f3w za pomoc\u0105 Direct I\/O wci\u0105\u017c jest niemo\u017cliwy, poniewa\u017c dost\u0119p do plik\u00f3w odbywa si\u0119 z pomini\u0119ciem mechanizmu buforowania w j\u0105drze.\n<li class=\"l\"> Na serwerze NFS domy\u015blnie w\u0142\u0105czona jest obs\u0142uga protoko\u0142u NFSv3, kt\u00f3ra nie wymaga osobnego w\u0142\u0105czania i jest dost\u0119pna przy og\u00f3lnym w\u0142\u0105czeniu NFS. NFSv3 uznawane jest za podstawow\u0105 i zawsze wspieran\u0105 wersj\u0119 NFS, a wsparcie dla NFSv2 mo\u017ce w przysz\u0142o\u015bci zosta\u0107 zako\u0144czone. Efektywno\u015b\u0107 odczytu zawarto\u015bci katalog\u00f3w zosta\u0142a znacz\u0105co zwi\u0119kszona.\n<li class=\"l\"> System plik\u00f3w ReiserFS zosta\u0142 uznany za przestarza\u0142y i oczekuje na usuni\u0119cie w 2025 roku. Klasyfikacja ReiserFS jako przestarza\u0142ego pozwoli na zmniejszenie nak\u0142ad\u00f3w pracy zwi\u0105zanych z utrzymywaniem wsp\u00f3lnych dla system\u00f3w plik\u00f3w zmian, zwi\u0105zanych z wsparciem nowego API do montowania, iomap i dokument\u00f3w.\n<li class=\"l\"> Dla systemu plik\u00f3w F2FS zrealizowano mo\u017cliwo\u015b\u0107 mapowania identyfikator\u00f3w u\u017cytkownik\u00f3w zamontowanych system\u00f3w plik\u00f3w, stosowan\u0105 do powi\u0105zania plik\u00f3w okre\u015blonego u\u017cytkownika na zamontowanej obcej partycji z innym u\u017cytkownikiem w bie\u017c\u0105cym systemie.\n<li class=\"l\"> Przerobiono kod do liczenia statystyk w handlerach Device-mapper, co pozwoli\u0142o znacz\u0105co zwi\u0119kszy\u0107 dok\u0142adno\u015b\u0107 rozliczania w takich handlerach, jak dm-crypt.\n<li class=\"l\"> Dla urz\u0105dze\u0144 NVMe wprowadzono wsparcie 64-bitowych sum kontrolnych do weryfikacji integralno\u015bci.\n<li class=\"l\"> Dla systemu plik\u00f3w exfat zaproponowano now\u0105 opcj\u0119 montowania \u201ekeep_last_dots\u201d, kt\u00f3ra zabrania usuwania kropek na ko\u0144cu nazwy pliku (w Windows kropki na ko\u0144cu nazwy s\u0105 domy\u015blnie usuwane).\n<li class=\"l\"> W EXT4 zwi\u0119kszono wydajno\u015b\u0107 trybu fast_commit oraz zwi\u0119kszono skalowalno\u015b\u0107. Opcja montowania \u201emb_optimize_scan\u201d, kt\u00f3ra pozwala zwi\u0119kszy\u0107 wydajno\u015b\u0107 w warunkach du\u017cej fragmentacji systemu plik\u00f3w, zosta\u0142a dostosowana do pracy z plikami z extentami.\n<li class=\"l\"> Wsparcie dla strumieni zapisu (write stream) w podsystemie obs\u0142uguj\u0105cym urz\u0105dzenia blokowe zosta\u0142o zako\u0144czone. Ta funkcjonalno\u015b\u0107 by\u0142a zaproponowana dla SSD, ale nie zyska\u0142a popularno\u015bci, a obecnie w obiegu brakuje urz\u0105dze\u0144 obs\u0142uguj\u0105cych ten tryb, co czyni ma\u0142o prawdopodobnym, \u017ce pojawi\u0105 si\u0119 w przysz\u0142o\u015bci.                      <\/ul>\n<li class=\"l\"> <b>Pami\u0119\u0107 i us\u0142ugi systemowe<\/b>\n<ul>\n<li class=\"l\"> Zosta\u0142a rozpocz\u0119ta integracja zestawu poprawek, kt\u00f3re znacz\u0105co skracaj\u0105 czas kompilacji j\u0105dra poprzez restrukturyzacj\u0119 hierarchii plik\u00f3w nag\u0142\u00f3wkowych i redukcj\u0119 liczby zale\u017cno\u015bci krzy\u017cowych. W sk\u0142ad j\u0105dra 5.18 w\u0142\u0105czono poprawki optymalizuj\u0105ce struktur\u0119 plik\u00f3w nag\u0142\u00f3wkowych planisty zada\u0144 (kernel\/sched). W por\u00f3wnaniu do poprzedniej wersji, zu\u017cycie czasu procesora podczas kompilacji kodu kernel\/sched zmniejszy\u0142o si\u0119 o 61%, a rzeczywisty czas spad\u0142 o 3,9% (z 2,95 do 2,84 sekundy).\n<li class=\"l\"> W kodzie j\u0105dra zezwolono na u\u017cycie standardu C11, opublikowanego w 2011 roku. Wcze\u015bniej dodawany w kodzie j\u0105dra kod musia\u0142 spe\u0142nia\u0107 specyfikacj\u0119 ANSI C (C89), stworzon\u0105 jeszcze w 1989 roku. W skryptach budowlanych j\u0105dra 5.18 opcja \u2018--std=gnu89\u2019 zosta\u0142a zast\u0105piona przez \u2018--std=gnu11 -Wno-shift-negative-value\u2019. Rozwa\u017cano mo\u017cliwo\u015b\u0107 wykorzystania standardu C17, ale w tym przypadku konieczne by\u0142oby podniesienie minimalnej obs\u0142ugiwanej wersji GCC, z kolei w\u0142\u0105czenie wsparcia dla C11 mie\u015bci si\u0119 w obecnych wymaganiach dotycz\u0105cych wersji GCC (5.1).\n<li class=\"l\"> Poprawiono wydajno\u015b\u0107 planowania zada\u0144 na procesorach AMD z mikroarchitektur\u0105 Zen, w kt\u00f3rych dla ka\u017cdego w\u0119z\u0142a z lokalnymi kana\u0142ami pami\u0119ci dost\u0119pnych jest kilka pami\u0119ci podr\u0119cznych ostatniego poziomu (LLC, Last Level Cache). W nowej wersji wyeliminowano nier\u00f3wnowag\u0119 LLC mi\u0119dzy w\u0119z\u0142ami NUMA, co w przypadku niekt\u00f3rych rodzaj\u00f3w obci\u0105\u017cenia doprowadzi\u0142o do znacznego wzrostu wydajno\u015bci.\n<li class=\"l\"> Rozszerzono narz\u0119dzia do \u015bledzenia aplikacji w przestrzeni u\u017cytkownika. W nowej wersji j\u0105dra dodano mo\u017cliwo\u015b\u0107 tworzenia przez procesy u\u017cytkownika zdarze\u0144 \u015bledzenia (User events) oraz zapisywania danych w buforze \u015bledzenia, kt\u00f3re mo\u017cna przegl\u0105da\u0107 za pomoc\u0105 typowych narz\u0119dzi do \u015bledzenia j\u0105dra, takich jak ftrace i perf. Zdarzenia \u015bledzenia z przestrzeni u\u017cytkownika s\u0105 izolowane od zdarze\u0144 \u015bledzenia j\u0105dra. Stan zdarze\u0144 mo\u017cna przegl\u0105da\u0107 za pomoc\u0105 pliku \/sys\/kernel\/debug\/tracing\/user_events_status, a rejestracja zdarzenia i zapisywanie danych odbywa si\u0119 za pomoc\u0105 pliku \/sys\/kernel\/debug\/tracing\/user_events_data.\n<li class=\"l\"> Dodano mechanizm \u015bledzenia (probe) wywo\u0142a\u0144 funkcji \u2014 fprobe. API fprobe opiera si\u0119 na ftrace, ale jest ograniczone tylko do mo\u017cliwo\u015bci do\u0142\u0105czania funkcji zwrotnych do punkt\u00f3w wej\u015bcia i zako\u0144czenia dzia\u0142ania funkcji. W przeciwie\u0144stwie do kprobes i kretprobes, nowy mechanizm pozwala na u\u017cycie jednego obs\u0142ugiwacza jednocze\u015bnie dla wielu funkcji.\n<li class=\"l\"> Wsparcie dla starych procesor\u00f3w ARM (ARMv4 i ARMv5) bez jednostki zarz\u0105dzania pami\u0119ci\u0105 (MMU) zosta\u0142o zako\u0144czone. Wsparcie dla system\u00f3w ARMv7-M bez MMU zosta\u0142o zachowane.\n<li class=\"l\"> Wsparcie dla architektury przypominaj\u0105cej RISC NDS32, wykorzystywanej w procesorach firmy Andes Technologies, zosta\u0142o zako\u0144czone. Kod zosta\u0142 usuni\u0119ty z powodu braku wsparcia oraz niskiego zapotrzebowania na obs\u0142ug\u0119 NDS32 w g\u0142\u00f3wnym j\u0105drze Linux (pozostali u\u017cytkownicy korzystaj\u0105 ze specjalistycznych wersji j\u0105dra od producent\u00f3w sprz\u0119tu).\n<li class=\"l\"> Domy\u015blnie wy\u0142\u0105czono kompilacj\u0119 j\u0105dra z obs\u0142ug\u0105 formatu plik\u00f3w wykonywalnych a.out dla architektur alpha i m68k, w kt\u00f3rych format ten jest nadal u\u017cywany. Prawdopodobnie wsparcie dla przestarza\u0142ego formatu a.out wkr\u00f3tce zostanie ca\u0142kowicie usuni\u0119te z j\u0105dra. Plany usuni\u0119cia formatu a.out s\u0105 dyskutowane od 2019 roku.\n<li class=\"l\"> Dla architektury PA-RISC zrealizowano minimalne wsparcie dla mechanizmu vDSO (virtual dynamic shared objects), kt\u00f3ry zapewnia ograniczony zestaw wywo\u0142a\u0144 systemowych, dost\u0119pnych w przestrzeni u\u017cytkownika bez prze\u0142\u0105czania kontekstu. Wsparcie vDSO umo\u017cliwi\u0142o uruchamianie z niewykonywalnym stosem.\n<li class=\"l\"> Dodano wsparcie dla mechanizmu Intel HFI (Hardware Feedback Interface), kt\u00f3ry pozwala sprz\u0119towi przekazywa\u0107 j\u0105dru informacje o aktualnej wydajno\u015bci i efektywno\u015bci energetycznej ka\u017cdego CPU.\n<li class=\"l\"> Dodano sterownik dla mechanizmu Intel SDSi (Software-Defined Silicon), kt\u00f3ry umo\u017cliwia zarz\u0105dzanie w\u0142\u0105czaniem dodatkowych funkcji w procesorze (na przyk\u0142ad, specjalizowane instrukcje i dodatkowa pami\u0119\u0107 cache). Idea polega na tym, \u017ce za ni\u017csz\u0105 cen\u0119 mog\u0105 by\u0107 dostarczane chipy z zablokowanymi rozszerzonymi funkcjami, kt\u00f3re nast\u0119pnie mo\u017cna \u201edokupi\u0107\u201d i aktywowa\u0107 dodatkowe mo\u017cliwo\u015bci bez wymiany sprz\u0119towej chipu.\n<li class=\"l\"> Dodano sterownik amd_hsmp do wsparcia interfejsu AMD HSMP (Host System Management Port), kt\u00f3ry umo\u017cliwia dost\u0119p do funkcji zarz\u0105dzania procesorem za pomoc\u0105 zestawu specjalnych rejestr\u00f3w dost\u0119pnych w procesorach serwerowych AMD EPYC od pokolenia Fam19h. Przyk\u0142adowo, przez HSMP mo\u017cna uzyska\u0107 dane o zu\u017cyciu energii i temperaturze, ustawi\u0107 ograniczenia na cz\u0119stotliwo\u015b\u0107, aktywowa\u0107 r\u00f3\u017cne tryby zwi\u0119kszania wydajno\u015bci oraz zarz\u0105dza\u0107 parametrami pracy pami\u0119ci.\n<li class=\"l\"> W interfejsie asynchronicznego wej\u015bcia\/wyj\u015bcia io_uring wprowadzono opcj\u0119 IORING_SETUP_SUBMIT_ALL do rejestrowania zestawu deskryptor\u00f3w plik\u00f3w w buforze cyklicznym, a tak\u017ce operacj\u0119 IORING_OP_MSG_RING, umo\u017cliwiaj\u0105c\u0105 wysy\u0142anie sygna\u0142\u00f3w z jednego bufora cyklicznego do drugiego.\n<li class=\"l\"> W mechanizmie DAMOS (Schematy Operacyjne Oparte na Monitorowaniu Dost\u0119pu do Danych), kt\u00f3ry umo\u017cliwia zwalnianie pami\u0119ci z uwzgl\u0119dnieniem cz\u0119stotliwo\u015bci dost\u0119pu do pami\u0119ci, rozszerzono mo\u017cliwo\u015bci kontroli operacji zwi\u0105zanych z pami\u0119ci\u0105 w przestrzeni u\u017cytkownika.\n<li class=\"l\"> Zintegrowano trzeci\u0105 seri\u0119 poprawek z realizacj\u0105 koncepcji zwoj\u00f3w pami\u0119ci (page folios), kt\u00f3re przypominaj\u0105 po\u0142\u0105czone strony pami\u0119ci (compound pages), ale r\u00f3\u017cni\u0105 si\u0119 lepsz\u0105 semantyk\u0105 i bardziej przejrzyst\u0105 organizacj\u0105 pracy. U\u017cycie zwoj\u00f3w przyspiesza zarz\u0105dzanie pami\u0119ci\u0105 w niekt\u00f3rych podsystemach j\u0105dra. W zaproponowanych poprawkach dokonano przekszta\u0142cenia wewn\u0119trznych funkcji zarz\u0105dzania pami\u0119ci\u0105 na zwoje, w tym rodzaj\u00f3w funkcji get_user_pages(). Zapewniono wsparcie dla tworzenia du\u017cych zwoj\u00f3w w kodzie wst\u0119pnego wczytywania danych.\n<li class=\"l\"> W systemie kompilacji wprowadzono wsparcie dla zmiennych \u015brodowiskowych USERCFLAGS i USERLDFLAGS, za pomoc\u0105 kt\u00f3rych mo\u017cna przekaza\u0107 dodatkowe flagi do kompilatora i linkera.\n<li class=\"l\"> W podsystemie eBPF w mechanizmie BTF (BPF Type Format), kt\u00f3ry dostarcza informacji do sprawdzania typ\u00f3w w pseudokodzie BPF, wprowadzono mo\u017cliwo\u015b\u0107 dodawania adnotacji do zmiennych odwo\u0142uj\u0105cych si\u0119 do obszar\u00f3w pami\u0119ci w przestrzeni u\u017cytkownika. Adnotacje pomagaj\u0105 systemowi weryfikacji kodu BPF lepiej identyfikowa\u0107 i weryfikowa\u0107 odniesienia do pami\u0119ci.\n<li class=\"l\"> Zaproponowano nowy procesor alokacji pami\u0119ci do przechowywania za\u0142adowanych program\u00f3w BPF, kt\u00f3ry pozwala na bardziej efektywne wykorzystanie pami\u0119ci w sytuacjach \u0142adowania du\u017cej liczby program\u00f3w BPF.\n<li class=\"l\"> Do systemowego wywo\u0142ania madvise() dodano flag\u0119 MADV_DONTNEED_LOCKED, kt\u00f3ra uzupe\u0142nia ju\u017c istniej\u0105c\u0105 flag\u0119 MADV_DONTNEED. Dzi\u0119ki temu j\u0105dro mo\u017ce wcze\u015bniej informowa\u0107 o planowanym zwolnieniu bloku pami\u0119ci, tzn. o tym, \u017ce ten blok jest ju\u017c niepotrzebny i mo\u017ce by\u0107 wykorzystywany przez j\u0105dro. W przeciwie\u0144stwie do MADV_DONTNEED, u\u017cycie flagi MADV_DONTNEED_LOCKED jest dozwolone dla zablokowanych w pami\u0119ci stron, kt\u00f3re przy wywo\u0142aniu madvise s\u0105 wypychane bez zmiany swojego zablokowanego statusu. W przypadku p\u00f3\u017aniejszych odwo\u0142a\u0144 do bloku i wygenerowania \u201epage fault\u201d s\u0105 one zwracane z zachowaniem powi\u0105zania. Dodatkowo dodano zmian\u0119, kt\u00f3ra umo\u017cliwia u\u017cywanie flagi MADV_DONTNEED z du\u017cymi stronami pami\u0119ci w HugeTLB.              <\/ul>\n<li class=\"l\"> <b>Wirtualizacja i bezpiecze\u0144stwo<\/b>\n<ul>\n<li class=\"l\"> Dla architektury x86 dodano wsparcie dla mechanizmu ochrony strumienia wykonywania instrukcji Intel IBT (Indirect Branch Tracking), kt\u00f3ry utrudnia stosowanie technik budowy exploit\u00f3w z wykorzystaniem metod programowania opartego na powrocie (ROP, Return-Oriented Programming), w kt\u00f3rych exploit jest tworzony w formie \u0142a\u0144cucha wywo\u0142a\u0144 ju\u017c istniej\u0105cych w pami\u0119ci fragment\u00f3w instrukcji maszynowych, ko\u0144cz\u0105cych si\u0119 instrukcj\u0105 zwrotu kontroli (zazwyczaj s\u0105 to zako\u0144czenia funkcji). Istota realizowanej metody ochrony polega na blokowaniu przej\u015b\u0107 po\u015brednich do cia\u0142a funkcji poprzez dodanie na pocz\u0105tku funkcji specjalnej instrukcji ENDBR oraz zezwolenie na wykonanie przez przej\u015bcie po\u015brednie tylko w przypadku przej\u015bcia do tej instrukcji (przej\u015bcie po\u015brednie przez JMP i CALL powinno zawsze trafia\u0107 na instrukcj\u0119 ENDBR, kt\u00f3ra umieszczona jest na samym pocz\u0105tku funkcji).\n<li class=\"l\"> W\u0142\u0105czono surowsz\u0105 kontrol\u0119 granic bufor\u00f3w w funkcjach memcpy(), memmove() i memset(), wykonywan\u0105 na etapie kompilacji przy w\u0142\u0105czeniu trybu CONFIG_FORTIFY_SOURCE. Dodana zmiana polega na sprawdzaniu przekroczenia granic element\u00f3w struktur, kt\u00f3rych rozmiar jest znany. Zauwa\u017cono, \u017ce zrealizowana mo\u017cliwo\u015b\u0107 umo\u017cliwi\u0142aby blokowanie wszystkich zwi\u0105zanych z memcpy() przepe\u0142nie\u0144 bufora w j\u0105drze, kt\u00f3re zosta\u0142y wykryte przynajmniej w ci\u0105gu ostatnich trzech lat.\n<li class=\"l\"> Dodano drugie wydanie kodu zaktualizowanej implementacji generatora liczb pseudolosowych RDRAND, kt\u00f3ry jest odpowiedzialny za dzia\u0142anie urz\u0105dze\u0144 \/dev\/random i \/dev\/urandom. Nowa implementacja charakteryzuje si\u0119 unifikacj\u0105 dzia\u0142ania \/dev\/random i \/dev\/urandom, dodaniem ochrony przed pojawianiem si\u0119 duplikat\u00f3w w strumieniu liczb losowych podczas uruchamiania. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/vps\/\"   title=\"maszyn wirtualnych\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2100\">maszyn wirtualnych<\/a> oraz przej\u015bciem na u\u017cycie funkcji skr\u00f3tu BLAKE2s zamiast SHA1 do operacji mieszania entropii. Zmiana ta poprawi\u0142a bezpiecze\u0144stwo generatora liczb pseudolosowych dzi\u0119ki eliminacji problematycznego algorytmu SHA1 oraz wykluczeniu nadpisywania wektora inicjalizacji RNG. Poniewa\u017c algorytm BLAKE2s przewy\u017csza SHA1 pod wzgl\u0119dem wydajno\u015bci, jego zastosowanie pozytywnie wp\u0142yn\u0119\u0142o r\u00f3wnie\u017c na wydajno\u015b\u0107.\n<li class=\"l\"> Dla architektury ARM64 dodano wsparcie dla nowego algorytmu autoryzacji wska\u017anik\u00f3w \u2014 \u201eQARMA3\u201d, kt\u00f3ry jest szybszy od algorytmu QARMA przy zachowaniu odpowiedniego poziomu ochrony. Technologia pozwala na u\u017cycie specjalizowanych instrukcji ARM64 do weryfikacji adres\u00f3w powrotu za pomoc\u0105 podpis\u00f3w cyfrowych, kt\u00f3re s\u0105 przechowywane w niewykorzystanych g\u00f3rnych bitach samego wska\u017anika.\n<li class=\"l\"> Dla architektury ARM64 zaimplementowano wsparcie dla budowy z w\u0142\u0105czeniem w GCC 12 trybu ochrony przed nadpisywaniem adresu powrotu z funkcji w przypadku przepe\u0142nienia bufora na stosie. Istota ochrony polega na zachowywaniu adresu powrotu po przekazaniu sterowania funkcji w oddzielnym \u201ecienkim\u201d stosie i wyci\u0105ganiu tego adresu przed wyj\u015bciem z funkcji.\n<li class=\"l\"> Dodano nowe repozytorium kluczy (keyring) \u2014 \u201emachine\u201d, kt\u00f3re zawiera klucze w\u0142a\u015bciciela systemu (MOK, Machine Owner Keys) obs\u0142ugiwane w bootloaderze shim. Podane klucze mog\u0105 by\u0107 u\u017cywane do podpisywania cyfrowego komponent\u00f3w j\u0105dra \u0142adowanych po pocz\u0105tkowym uruchomieniu (np. modu\u0142y j\u0105dra).\n<li class=\"l\"> Usuni\u0119to wsparcie dla asymetrycznych kluczy prywatnych dla TPM, kt\u00f3re by\u0142y proponowane w przestarza\u0142ej wersji TPM, maj\u0105 znane problemy z bezpiecze\u0144stwem i nie zyska\u0142y rozpowszechnienia w praktyce.\n<li class=\"l\"> Dodano ochron\u0119 danych typu size_t przed przepe\u0142nieniami liczbowymi. W kodzie wykorzystano funkcje size_mul(), size_add() i size_sub(), kt\u00f3re pozwalaj\u0105 bezpiecznie wykonywa\u0107 mno\u017cenie, dodawanie i odejmowanie rozmiar\u00f3w typu size_t.\n<li class=\"l\"> Podczas kompilacji j\u0105dra w\u0142\u0105czono flagi \u201e-Warray-bounds\u201d i \u201e-Wzero-length-bounds\u201d, kt\u00f3re generuj\u0105 ostrze\u017cenia przy wyj\u015bciu indeksu poza granice tablicy oraz przy u\u017cywaniu tablic o zerowej d\u0142ugo\u015bci.\n<li class=\"l\"> W urz\u0105dzeniu virtio-crypto dodano wsparcie dla szyfrowania z wykorzystaniem algorytmu RSA.                                 <\/ul>\n<li class=\"l\"> <b>Subsystem sieciowy<\/b>\n<ul>\n<li class=\"l\"> W realizacji most\u00f3w sieciowych dodano wsparcie trybu blokowania port\u00f3w (locked mode), w kt\u00f3rym u\u017cytkownik mo\u017ce przesy\u0142a\u0107 ruch przez port tylko z dozwolonego adresu MAC. Dodano r\u00f3wnie\u017c mo\u017cliwo\u015b\u0107 wykorzystania kilku struktur do oceny stanu protoko\u0142u STP (Spanning Tree Protocol). Wcze\u015bniej dla VLAN mo\u017cliwa by\u0142a tylko bezpo\u015brednia zwi\u0105zanie z STP (1:1), w kt\u00f3rym ka\u017cdy VLAN by\u0142 zarz\u0105dzany niezale\u017cnie. W nowej wersji dodano parametr mst_enable, kt\u00f3ry po w\u0142\u0105czeniu pozwala na kontrol\u0119 stanu VLAN przez modu\u0142 MST (Multiple Spanning Trees), a zwi\u0105zanie VLAN-\u00f3w mo\u017ce odpowiada\u0107 modelowi M:N.\n<li class=\"l\"> Kontynuowana jest praca nad integracj\u0105 w stosie sieciowym narz\u0119dzi do \u015bledzenia przyczyn odrzucenia pakiet\u00f3w (kody reason). Kod przyczyny jest przesy\u0142any podczas zwalniania pami\u0119ci zwi\u0105zanej z pakietem i pozwala na uwzgl\u0119dnienie takich sytuacji, jak odrzucenie pakietu z powodu b\u0142\u0119d\u00f3w wype\u0142nienia p\u00f3l nag\u0142\u00f3wka, wykrycie spoofingu przez filtr rp_filter, b\u0142\u0119dna suma kontrolna, niedob\u00f3r pami\u0119ci, wywo\u0142anie regu\u0142 IPSec XFRM, b\u0142\u0119dny numer sekwencji TCP itp.\n<li class=\"l\"> Umo\u017cliwiono przesy\u0142anie pakiet\u00f3w sieciowych z program\u00f3w BPF uruchamianych z przestrzeni u\u017cytkownika w trybie BPF_PROG_RUN, w kt\u00f3rym programy BPF s\u0105 wykonywane w j\u0105drze, ale zwracaj\u0105 wyniki do przestrzeni u\u017cytkownika. Pakiety s\u0105 przesy\u0142ane z wykorzystaniem podsystemu XDP (eXpress Data Path). Wsparcie posiada tryb na \u017cywo, w kt\u00f3rym obs\u0142uga XDP mo\u017ce na bie\u017c\u0105co przekierowywa\u0107 pakiety sieciowe do stosu sieciowego lub do innych urz\u0105dze\u0144. Mo\u017cliwe jest r\u00f3wnie\u017c tworzenie program\u00f3w generuj\u0105cych zewn\u0119trzny ruch lub wstawianie ramki sieciowe do stosu sieciowego.\n<li class=\"l\"> Dla program\u00f3w BPF, przymocowanych do cgroups sieciowych, zaproponowano funkcje pomocnicze do jawnego ustawienia warto\u015bci zwracanej przez wywo\u0142ania systemowe, co pozwala na przekazanie bardziej szczeg\u00f3\u0142owych informacji o przyczynach blokady wywo\u0142ania systemowego.\n<li class=\"l\"> Dodano wsparcie dla fragmentowanych pakiet\u00f3w w systemie XDP (eXpress Data Path), kt\u00f3re s\u0105 przechowywane w wielu buforach, co pozwala na przetwarzanie Jumbo-ramkach w XDP oraz stosowanie TSO\/GRO (TCP Segmentation Offload\/Generic Receive Offload) dla XDP_REDIRECT.\n<li class=\"l\"> Znacz\u0105co przyspieszono proces usuwania przestrzeni nazw sieciowych, co by\u0142o po\u017c\u0105dane w niekt\u00f3rych du\u017cych systemach z du\u017c\u0105 ilo\u015bci\u0105 ruchu.                      <\/ul>\n<li class=\"l\"> <b>Sprz\u0119t<\/b>\n<ul>\n<li class=\"l\"> W sterowniku amdgpu domy\u015blnie w\u0142\u0105czono technologi\u0119 adaptacyjnej synchronizacji FreeSync, kt\u00f3ra pozwala na dostosowywanie cz\u0119stotliwo\u015bci od\u015bwie\u017cania na ekranie, zapewniaj\u0105c p\u0142ynno\u015b\u0107 i brak rozrywania obrazu podczas gier i ogl\u0105dania film\u00f3w. Og\u0142oszono stabilne wsparcie dla GPU Aldebaran.\n<li class=\"l\"> W sterowniku i915 dodano wsparcie dla uk\u0142ad\u00f3w Intel Alder Lake N oraz dyskretnych kart graficznych Intel DG2-G12 (Arc Alchemist).\n<li class=\"l\"> W sterowniku nouveau zapewniono wsparcie dla wy\u017cszych bitrate'\u00f3w w interfejsach DP\/eDP oraz dla extender\u00f3w kablowych lttprs (Link-Training Tunable PHY Repeaters).\n<li class=\"l\"> W subsystemie drm (Direct Rendering Manager) w sterownikach armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen i vc4 dodano wsparcie dla parametru nomodeset, kt\u00f3ry pozwala na wy\u0142\u0105czenie prze\u0142\u0105czania tryb\u00f3w wideo na poziomie j\u0105dra oraz korzystania z narz\u0119dzi do sprz\u0119towego przyspieszania renderowania, pozostawiaj\u0105c tylko funkcjonalno\u015b\u0107 zwi\u0105zan\u0105 z systemowym ramk\u0105 bufora.\n<li class=\"l\"> Dodano wsparcie dla SoC ARM Qualcomm Snapdragon 625\/632 (u\u017cywanego w smartfonach LG Nexus 5X i Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (u\u017cywanego w Samsung Galaxy A8), Airoha (Mediatek\/EcoNet) EN7523, Mediatek mt6582 (tablet Prestigio PMT5008 3G), Microchip Lan966, Renesas RZ\/G2LC, RZ\/V2L, Tesla FSD, TI K3\/AM62 oraz i.MXRTxxxx.\n<li class=\"l\"> Dodano wsparcie dla urz\u0105dze\u0144 ARM i p\u0142yt Broadcom (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S, tablet Prestigio PMT5008 3G), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 i OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU\/Armada (Ctera C200 V1 i V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).\n<li class=\"l\"> Dodano wsparcie dla system\u00f3w d\u017awi\u0119kowych i kodek\u00f3w AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ\/V2L, Texas Instruments TAS585M. Dodano wst\u0119pn\u0105 implementacj\u0119 sterownika d\u017awi\u0119ku dla chipu DSP Intel AVS. Zaktualizowano wsparcie dla sterownik\u00f3w Intel ADL i Tegra234 oraz wprowadzono zmiany maj\u0105ce na celu popraw\u0119 jako\u015bci d\u017awi\u0119ku na urz\u0105dzeniach Dell, HP, Lenovo, ASUS, Samsung i Clevo.    <\/ul>\n<p>Jednocze\u015bnie latynoameryka\u0144ska Fundacja Wolnego Oprogramowania opracowa\u0142a ca\u0142kowicie woln\u0105 wersj\u0119 j\u0105dra 5.18 \u2014 Linux-libre 5.18-gnu, oczyszczon\u0105 z element\u00f3w firmware i sterownik\u00f3w zawieraj\u0105cych nieroz\u0142\u0105czne komponenty lub fragmenty kodu, kt\u00f3rych stosowanie jest ograniczone przez producenta. W nowym wydaniu przeprowadzono oczyszczenie sterownik\u00f3w dla paneli MIPI DBI, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) oraz Realtek 8852a\/8852c, chip\u00f3w d\u017awi\u0119kowych Intel AVS oraz Texas Instruments TAS5805M. Przeprowadzone zosta\u0142o tak\u017ce oczyszczanie plik\u00f3w DTS dla r\u00f3\u017cnych SoC Qualcomm z procesorami opartymi na architekturze AArch64. Zaktualizowano kod oczyszczania blob\u00f3w w sterownikach i podsystemach AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectru Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART.                         <\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57235\">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.18. \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: \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0438\u0441\u0442\u043a\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0424\u0421 Reiserfs, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u043a\u0441\u043f\u043b\u043e\u0438\u0442\u043e\u0432 Intel IBT, \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0440\u0435\u0436\u0438\u043c \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 memcpy(), \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 fprobe, \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 [&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-104123","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.18.\" \/>\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-18\" \/>\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.18 | 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.18.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-18\" \/>\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-05-23T13:36:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-05-23T13:36:40+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.18 | ProHoster","description":"Po dw\u00f3ch miesi\u0105cach prac Linus Torvalds zaprezentowa\u0142 wydanie j\u0105dra Linux 5.18.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-18","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.18 | 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.18.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-yadra-linux-5-18","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-05-23T13:36:40+00:00","article:modified_time":"2022-05-23T13:36:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"104123","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-02-09 18:15:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2022-05-23 13:37:44","updated":"2026-02-09 18:15: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\/104123","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=104123"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/104123\/revisions"}],"predecessor-version":[{"id":159344,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/104123\/revisions\/159344"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=104123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=104123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=104123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}