Jsongrep je open-source nástroj, který efektivně prohledává JSON dokumenty (editovat je neumí). Kompiluje regulérní jazyk dotazu do podoby deterministického konečného automatu (DFA), díky čemuž prochází strom JSON dokumentu pouze jednou a je v tom tedy rychlejší než jiné nástroje jako jsou například jq, JMESPath nebo jql. Jsongrep je napsaný v programovacím jazyce Rust, zdrojový kód je dostupný na GitHubu.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2026. Na programu je celá řada zajímavých přednášek a workshopů. Vstup na konferenci je zcela zdarma, bez nutnosti registrace. Přednášky lze sledovat i online na YouTube.
Mozilla a společnost Mila oznámily strategické partnerství za účelem rozvoje open source a suverénní AI. Cílem je ukázat, že open source AI může konkurovat uzavřeným systémům. Obě organizace chtějí posílit technologickou suverenitu a snížit závislost na hrstce velkých technologických firem.
Adam Rice předvedl, že pomocí DNS lze distribuovat a spustit kompletní hru DOOM. Rozdělil WAD soubory a binárky do téměř 2000 DNS záznamů v Cloudflare zóně (jeden TXT záznam v DNS může nést okolo 2000 znaků textu). Ty pak stáhl PowerShellem, dekomprimoval a spustil přímo v paměti počítače bez nutnosti zápisu na disk, což prakticky dokazuje, že DNS může sloužit jako distribuované úložiště dat a možný kanál pro načítání kódu. Repozitář projektu je na GitHubu.
Dnes a zítra probíhají Arduino Days 2026. Na programu je řada zajímavých přednášek. Sledovat je lze od 17:00 na YouTube. Zúčastnit se lze i lokálních akcí. Dnes v Poličce v městské knihovně a zítra v Praze na Matfyzu.
Byla vydána beta verze Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.04 LTS mělo vyjít 23. dubna 2026.
Byla vydána aktualizována Příručka pro začínající wikipedisty a wikipedistky (pdf).
Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.
Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.
Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.
Tento článek by měl odpovědět na základní otázky:
Počítače a jiná zařízení, propojená v jedné společné síti, mají každý svou vlastní adresu. Ta je pro daný počítač jedinečná, nikde v internetu se neopakuje. Každá adresa je tedy jednoznačně určuje počítač, kterému byla přidělena. Pakety putující internetem s sebou nesou mj. cílovou adresu. Internet doručuje pakety správným směrem tak dlouho, až dorazí na adresou určený počítač. Každý paket též nese adresu odesílatele, takže komunikace může být obousměrná. Adresy, o kterých je zde řeč, jsou adresy protokolu IP (Internet Protocol), zkráceně IP adresy.
Každá IP adresa je 32 bitové číslo. Adresa 10.0.2.11 je též vyjádřitelná jako 0x0a00020b (0x znamená, že jde o hexadecimální číslo), nebo dvojkově 00001010 00000000 00000010 00001011. Zápis typu a.b.c.d se používá nejčastěji, a to pro přehlednost; každé z písmen a-d vyjadřuje desítkovým číslem 8 bitů adresy. Celkem tedy 8x4=32 bitů. Jednotlivé číslice a-d mohou nabývat hodnot 0 až 255. Limit 255 vyplývá z toho, že nejvyšší osmimístné dvojkové číslo (11111111) je právě 255 desítkově. Kombinací čtyř takových čísel získáme 256x256x256x256 = 4 294 967 296 (4 miliardy) možných IP adres. V počátcích Internetu (70. léta) se to zdálo být nepředstavitelné množství, ale dnes (po roce 2000) je masové nasazování privátních IP rozsahů důkazem jejich nedostatku. Odbočme lehce od tématu: tento problém řeší novější IP verze 6, která již v mnoha místech internetu funguje zároveň s obvyklým IP verze 4. Šířka adresy v IPv6 je 128 bitů, což dělá asi 1022 adres na 1 m2 povrchu zemského.
Vraťme se k věci. IP adres na světě tedy může být 2^32, nepočítaje nepovolené hodnoty jako samé nulové bity (0.0.0.0) a samé jedničkové bity (255.255.255.255), stejně jako speciální vyhrazené adresní rozsahy pro zvláštní účely. IP adresa je tedy v podstatě libovolná kombinace třiceti dvou nul a jedniček.
Maska je specifickým druhem IP adresy. Je to též kombinace nul a jedniček, ale zdaleka ne tak libovolná. Musí mít strukturu: Zleva jedničky, pak první nula a pak už jen nuly. Muze tedy obsahovat jen jediné místo, kde sousedí 1 a 0. Platné masky jsou například:
binárně a.b.c.d počet
jedniček (J)
11111111 11111111 11111111 11111100 255.255.255.252 30
11111111 11111111 11111111 11111000 255.255.255.248 29
11111111 11111111 11111111 11110000 255.255.255.240 28
11111111 11111111 11111111 11100000 255.255.255.224 27
11111111 11111111 11111111 11000000 255.255.255.192 26
11111111 11111111 11111111 10000000 255.255.255.128 25
11111111 11111111 11111111 00000000 255.255.255.0 24
11111111 11111111 11100000 00000000 255.255.224.0 19
11111111 11000000 00000000 00000000 255.192.0.0 10
a podobně.
|
Z uvedeného snadno nahlédneme, že maska, ač je to číslo 32bitové, nenese zdaleka tolik informace. Vlastně může být teoreticky jenom 33 různých masek od samých nul, přes "100...0", "111...1110" po samé jedničky. Proto dostačujícím údajem o masce je číslo mezi 0 a 32 udávající počet jedniček. Označme toto číslo proměnnou J pro pozdější použití. Proto se síťová maska 255.255.255.0 mnohdy uvádí též jako "/24". Lomítko je terminus technikus.
Ted už tedy víme, co je IP adresa a co maska. Jak spolu souvisí? Maska láme IP adresu na 2 části: adresu sítě a adresu stroje v rámci oné sítě. Kde se ty 2 části lomí, je určeno právě počtem jedničkových bitů v masce. Například maska "/24", to jest 255.255.255.0, lomí IP adresu na 24 bitů adresy sítě a 8 bitů adresy v té síti.
Další příklady (znak x ukazuje místo, kde se adresa dělí):
(A) x adresa 10.1.2.3 00001010 00000001 00000010 00000011 maska 255.255.255.0 11111111 11111111 11111111 00000000 (J=24), zkrácená specifikace této sítě: 10.1.2.0/24 (B) x adresa 10.1.2.3 00001010 00000001 00000010 00000011 maska 255.255.255.128 11111111 11111111 11111111 10000000 (J=25), zkrácená specifikace této sítě: 10.1.2.0/25 (C) x adresa 10.1.2.3 00001010 00000001 00000010 00000011 maska 255.255.240.0 11111111 11111111 11110000 00000000 (J=20), zkrácená specifikace této sítě: 10.1.0.0/20 |
'Adresa sítě' se vypočítá tak, že vezmeme jakoukoliv adresu stroje v této síti a jejích posledních (32-J) bitů vynulujeme. V každé síti je též stanovena adresa všesměrového vysílání 'broadcast', která je obvykle poslední (nejvyšší) adresou v síti, takže má na posledních (32-J) místech samé jedničky. Broadcastová adresa znamená, ze IP paket s takovouto cílovou adresou mají přijmout všechny počítače v dané síti. Ostatní adresy v síti jsou použitelné pro adresy jednotlivých zařízení: počítačů, ledniček a kávovarů. Ke stanovení počtu použitelných IP adres v síti postačí znát velikost síťové masky. Potom použijeme vzorec počet_adres = 2^(32-J) - 2. Dvojka se odečítá proto, že jsou právě 2 adresy se speciálním významem: Adresa sítě a adresa broadcastu.
V případě A, to je ten obvyklý, máme síť o 256 adresách. První adresa, to jest 00001010 00000001 00000010 00000000 (10.1.2.0) je adresou sítě. Poslední adresa v síti, 00001010 00000001 00000010 11111111 (10.1.2.255), je adresou broadcastu. Ostatní adresy, to jest od 00001010 00000001 00000010 00000001 (10.1.2.1) do 00001010 00000001 00000010 11111110 (10.1.2.254) jsou pro počítače (pračky, žehličky). Je-li v této síti jediný stroj, který je routerem (bránou) do ostatních sítí, dávám mu první možnou adresu, to jest 10.1.2.1 (to není nutné ani předepsané, je to jen dobrým zvykem). Jakákoliv adresa mezi 10.1.2.0 až 10.1.2.255 patří do této sítě.
V případě B máme podobnou síť, kde prvních 25 bitů adresy, to jest 00001010 00000001 00000010 0 určuje adresu sítě, zatímco pouze posledních 7 určuje adresy v této síti. V této síti může být dle dříve uvedeného vzorce 2^(32-25)-2 = 126 adres, a to...
od 00001010 00000001 00000010 00000000 (10.1.2.0 - adresa sítě) přes 00001010 00000001 00000010 00000001 (10.1.2.1) a 00001010 00000001 00000010 00000010 (10.1.2.2) a 00001010 00000001 00000010 01111110 (10.1.2.126) do 00001010 00000001 00000010 01111111 (10.1.2.127) - adresa broadcastu) |
Jakákoliv adresa mezi 10.1.2.0 až 10.1.2.127 patří do této sítě.
Případ C ukazuje velmi rozsáhlou síť o 4096 (resp. 4094) adresách počínaje
od 00001010 00000001 00000000 00000000 (10.1.0.0)
|
Vraťme se k případu B. Uvedli jsme síť s adresami 10.1.2.0 az 10.1.2.127. Sousední adresa, 10.1.2.128, již patří do jiné sítě! Když se na ni koukneme v binárním tvaru, uvidíme, že se liší v síťové části adresy (v prvních J=25 bitech):
00001010 00000001 00000010 10000000 (10.1.2.128)
|
Oproti případu A jsme zvětšením masky o 1 bit, tj z 255.255.255.0 na 255.255.255.128, vytvořili dvě sítě o 128 (resp. 126) adresách:
10.1.2.0/25 (10.1.2.0-10.1.2.127)
|
Došlo tedy k rozpůlení 256 adresové sítě na dvě 128 adresové. Zvětšením masky o další bit bychom každou z těchto sítí opět rozpůlili na dvě, takže už budeme mít 4 sítě po 64 (resp 62) adresách:
10.1.2.0/26 (10.1.2.0-10.1.2.63)
|
A tak dále. Masku můžeme zvětšovat až na J=30 (255.255.255.252), kdy vznikne síť s pouze 4 adresami, z toho 2 jsou použitelné. Příklad takovéto pidisítě z praxe: 80.250.2.80/30 (tj. maska je 255.255.255.252)...
80.250.2.80 je adresa sítě
|
a 80.250.2.84 by už spadlo do zcela jiné sítě, která může být fyzicky i velmi vzdálená.
Věřím, ze bystrý čtenář nyní sám dokáže generovat podobné příklady.
Jak to souvisí s routováním? Jsem IP vrstva operačního systému, moje IP adresa je 10.1.2.17 a maska 255.255.255.224 (J=27). Vím tedy, že adresy od 10.1.2.0 do 10.1.2.31 jsou v mojí vlastní síti. V routovací tabulce je nastaveno, že moje výchozí brána má adresu 10.1.2.11. Přenosovým médiem je obyčejný ethernet. Aplikace mi předala paket, který mám poslat na cílovou adresu DEST. Co teď?
a) DEST=10.1.2.15. Adresa je v mojí vlastní síti. Pomocí protokolu ARP tedy zjistím MAC adresu cíloveho stroje, např. 00:10:20:30:40:50 a s touto adresou vytroubím rámec do kabelu. Vlastně jediné co umím, je poslat paket na jednu z 32 adres v mé síti.
b) DEST=10.1.2.36. Adresa leží MIMO moji síť, takže vlastně nevím, kam ji poslat. Nastěstí to ví chytrý router. Ja zase vím jeho adresu: 10.1.2.11 a ta v mé síti je. Převedeme tedy problém na jiný problém, ktery již umíme řešit (problém a). Paket vytroubíme do kabelu stejně jako prve, ale s MAC adresou routeru. Takže paket s jakousi 'cizí' adresou 10.1.2.36 dorazí na router. Ten si s ním musí poradit.
c) DEST=62.37.8.99. Naprosto stejný postup jako v b).
Nyní doufám, že je zřejmé, že síť o 256 adresách (0-255) je možné rozdělit na poloviny (0-127, 128-255), čtvrtiny (0-63, 64-127, 128-191, 192-255) a podobně, ale rozhodně ne na jiné části, jako (0-50, 50-255). Zde je důležité, že maska rozhoduje o tom, která adresa patří do které sítě.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Aneb jak ze dvou 100 megabit síťovek udělat 200 megabit.