Přímý přenos (YouTube) z konference LinuxDays 2026, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
Byla vydána nová verze 0.17.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 206 vývojářů. Přehled novinek v poznámkách k vydání.
Open-source projekt OpenDLSS-NR je 'bitově přesná reimplementace' neuronové rendrovací sítě DLSS 5 od společnosti NVIDIA, jenže pro grafické API Vulkan (DLSS slouží k vylepšování klasickým způsobem vyrendrovaných snímků pomocí lokálních modelů umělé inteligence, a to v reálném čase). Projekt není nijak spojen se společností NVIDIA, je pouze pro OS Windows a natrénované váhy modelu si uživatelé musí obstarat sami. Zdrojový kód je k dispozici na GitHubu, pod licencí MIT s výjimkou pro komponenty třetích stran.
Společnost Cloudflare představila Clef a Clef-Flash, open-source rozhodovací modely určené pro rychlou a konzistentní klasifikaci vstupů. Na rozdíl od klasických LLM vracejí tyto modely deterministické striktně typované strukturované odpovědi s exaktními pravděpodobnostmi, tedy odpovědi ve stylu přelomového modelu Jev.
… více »Byla vydána beta verze Ubuntu 26.10 s kódovým názvem Stonking Stingray. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.10 mělo vyjít 15. října 2026.
Byla vydána verze 1.99.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Od 13. do 15. října proběhne v Praze OpenSSL Conference 2026. Na YouTube lze zhlédnout videozáznamy přednášek z loňského roku.
Eben Upton oznámil další zdražení jednodeskových počítačů Raspberry Pi. Tentokrát 2 GB varianty o 12,50 dolarů. Nově 2 GB Raspberry Pi 4 stojí 67,50 dolarů a 2 GB Raspberry Pi 5 stojí 77,50 dolarů.
OpenMandriva ROME, tj. průběžně aktualizovaná (rolling) edice linuxové distribuce OpenMandriva, byla vydána ve verzi 26.09. Vedle Flatpaku také s podporou Snapu.
Edison Design Group po více než 30 letech zveřejnil zdrojový kód svého EDG C/C++ front-endu. Ten proslul širokou podporou standardů C++ a kompatibilitou s dialekty kompilátorů od Microsoftu, GNU, Clangu, Sunu a dokonce i s prehistorickým cfrontem. EDG byl použit například v kompilátoru Intel C++ Classic, kompilátoru NVCC od firmy NVIDIA pro platformu CUDA nebo v našeptávači kódu IntelliSense v produktech společnosti Microsoft. Projekt nyní spravuje organizace The C++ Alliance a kód je dostupný pod licencí Apache 2.0, doplněnou o výjimky projektu LLVM.
split pro rozdělování souborů na části a dd pro nízkoúrovňové kopírování souborů.split je program sloužící k rozdělení většího souboru na několik menších. Název split znamená anglicky „rozdělit“. Program se poprvé objevil v systému AT&T UNIX v3.
Základní použití vypadá následovně:
split velky_textovy_soubor.txt
Tento příkaz rozdělí daný soubor po 1000 řádcích do několika menších. Počet řádků lze ovlivnit přepínačem -l, kterému se předá požadovaný počet řádků. Základ názvu výstupních souborů, jelikož jsme žádný nezadali jako druhý argument, se použije výchozí, a tp je „x“. Použije se i výchozí délka přípony, což obnáší dva znaky („aa“, „ab“, atd.) a lze ovlivnit přepínačem -a následovaným celočíselnou hodnotou. Výstupní soubory se tedy budou jmenovat „xaa“, „xab“, „xac“ a tak dále.
split -a 3 -l 2000 velky_textovy_soubor.txt casti_velkeho_textoveho_souboru.
Tento příkaz rozdělí daný soubor po 2000 řádcích a výstupní soubory budou mít názvy „casti_velkeho_textoveho_souboru.aaa“, „casti_velkeho_textoveho_souboru.aab“, atd.
Rozdělování na základě daného počtu řádků se může hodit u textových souborů, ale u ostatních typů je vhodnější zadat požadovanou velikost jednotlivých částí souboru. To se dělá pomocí přepínače -b, kterému můžete zadat celočíselnou hodnotu (počet bytů), případně za ni doplnit znak „k“, když chcete zadat počet kilobytů, nebo „m“ pro práci s megabyty.
# rozdělí soubor po 100 MB (2^20 B) na „iso.a“, „iso.b“, „iso.c“, atd. split -a 1 -b 100m velky_binarni_soubor.iso iso.
Tolik tedy ke standardní verzi. GNU verze, jak bývá zvykem, přináší pár rozšíření. Přepínač -b rozeznává více přípon. K, M, G, T, P, E, Z, Y jsou mocniny dvojky (běžně používané v informace), přičemž KB, MB, GB, TB, PB, EB, ZB a YB jsou mocniny deseti podle SI.
# rozdělí „soubor“ po 2 GB (2*2^30 B) na „xaa“, „xab“, atd. split -b 2G soubor
Přepínač -C (--line-bytes) se hodí pro použití s textovými soubory. Zadáte mu počet bytů (podporuje i přípony jako -b) a split potom rozdělí vstupní soubor tak, že se do každého výstupního souboru zapíše tolik řádků, kolik je možné, aniž by byla daná velikost překročena. Obsahuje-li soubor řádek delší, než je zadaná velikost, daný řádek bude rozdělen do více souborů.
# rozdělí „soubor.txt“ tak, aby v každé části byl co největší počet # kompletních řádků, který se vejde do 2 MB split -C 2M soubor.txt
A nakonec můj oblíbený přepínač -d (--numeric-suffixes), který zajistí, aby se v příponě místo znaků používaly číslice.
# rozdělí „soubor.mp3“ po 1 GB na „soubor.mp3.001“, „soubor.mp3.002“, atd. split -a 3 -d -b 1G soubor.mp3 soubor.mp3.
Rozdělené soubory lze pak velice snadno spojit pomocí příkazu cat.
cat „soubor.mp3.001“ „soubor.mp3.002“ „soubor.mp3.003“ > „soubor.mp3“ # zkrácená verze téhož cat soubor.mp3.* > soubor.mp3
dd je program, jehož hlavním účelem je nízkoúrovňové kopírování a konverze surových dat. Původ tohoto nástroje je zvláštní. Název dd je „zkratkou“ convert and copy, přičemž někde se lze dočíst, že to není „cc“ (jak by se dalo očekávat) právě proto, že takto se jmenuje kompilátor. Říká se, že netradiční syntaxe tohoto programu (ve stylu parametr=hodnota) je parodie na IBM JCL.
Lidé si z dd občas utahují a říkají, že je zkratkou „data destroyer“ (ničitel dat) nebo „delete data“ (smazat data), jelikož stačí omylem prohodit parametry a můžete tak snadno přijít o data. Vlastně klidně o celý oddíl. Opatrnost se tedy vyplatí.
Hlavní parametry jsou if a of, přičemž pomocí if se zadává vstupní soubor (input file) a pomocí of tedy výstupní soubor (output file). Další důležité parametry jsou bs (určuje velikost vstupních i výstupních bloků, výchozí je 512 bytů) a conv (přes ten se zadává, jak chceme soubor zkonvertovat). Ukážeme si, jak pomocí dd zkopírovat obraz ISO z CD-ROM:
dd if=/dev/cdrom of=CD.iso bs=2048 conv=sync,notrunc
Tento příkaz čte ze zařízení /dev/cdrom po 2 kB a zapisuje přečtená data do souboru CD.iso v aktuálním adresáři. Argument sync parametru conv zajistí doplnění každého vstupního bloku na velikost vstupního bufferu (zadaného v tomto případě přes parametr bs). Argument notrunc téhož parametru zabraňuje zkrácení případného existujícího výstupního souboru CD.iso (tj. pokud CD.iso již existuje, bude se obsah nahrazovat postupně od začátku přepisováním souboru).
Parametr count umožňuje zadat počet vstupních bloků, které se mají zkopírovat. Implicitně se kopírují všechny.
# vytvoří 10 MB velký soubor plný nul dd if=/dev/zero of=nuly.txt bs=1024k count=10
Dále si představíme parametry skip a seek. Parametr skip přeskočí daný počet vstupních bloků, než začne kopírovat vstupní soubor. Parametr seek přeskočí daný počet výstupních bloků ve výstupním souboru a teprve potom začne zapisovat. Umožňuje tak vytvářet tzv. řídké soubory (sparse files):
# vytvoří 1 GB soubor, který ve skutečnosti nezabírá žádné místo, # protože je prázdný (řídký) dd if=/dev/zero of=sparse_file bs=1 count=0 seek=1G # zkopíruje druhých 512 bytů (tj. byty 513 až 1024) dd if=/dev/sda of=file bs=512 skip=1 count=1
Velikost vstupních a výstupních bloků lze nastavit najednou pomocí bs, jak jsme si již řekli, ale v případě potřeby lze nastavit obě hodnoty zvlášť pomocí ibs (vstup) a obs (výstup).
Parametr conv podporuje více možností převodu dat, než jsme si zatím ukázali. Například argument ucase převede malá písmena na velká (a lcase naopak velká na malá), swap prohodí každý pár vstupních bytů. Argument noerror zajistí pokračování i v případě chyb, přičemž v kombinaci se sync se chybné byty nahradí nulovými (jinak jsou vynechány). Argument ascii převede (standardní) EBCDIC na ASCII, přičemž ebcdic udělá opak. Argument ibm slouží k převodu ASCII do IBM EBCDIC.
# převede ve vstupním souboru malá písmena na velká dd if=soubor1 of=soubor2 conv=ucase
GNU dd podporuje výpis statistik přenosu za běhu programu. Lze toho docílit posláním signálu SIGUSR1. Když počítáte dopředu s tím, že byste toho chtěli využít, je dobré pustit dd na pozadí a rovnou si uložit PID procesu do proměnné.
# zkopíruje oddíl (sda1) na jiný (sdb1) dd if=/dev/sda1 of=/dev/sdb1 bs=4096 conv=notrunc,noerror & # uloží PID naposledy spuštěného procesu na pozadí do proměnné „PID“ PID=$! # každých 10 sekund vypíše statistiku while kill -USR1 $PID 2> /dev/null; do sleep 10 done
Existují zvláštní verze dd, které jsou specializované na
zachraňování dat z poškozených disků, atp. Jde například o GNU ddrescue nebo
dd_rescue. Port na Windows je k dispozici též.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
watch killall -USR1 dd
výhoda je, že se to snadněji pamatuje a je možné to pustit jednou a bude to fungovat pro všechny dd, dokud se to nevypne.
Pro pokročilejší bych doplnil, že bez zadání if a/nebo of se použije standardní vstup/výstup. To sice degraduje dd na úroveň cat, ale třeba při práci s blokovými zařízeními je cat trochu problematický
Například:
ssh root@nekde 'dd if=/dev/sda bs=1M' | dd of=/dev/sda bs=1M
Každopádně před každým použitím dd doporučuju pořádně zkontrolovat argumenty, přesně podle starého japonského přísloví z dynastie Ming "dvakrát měř, jednou dd".
while true ; do sleep 2 ; prikaz ; done ;, ale jinak je to opravdu užitečný prográmek. Mé oblíbené je watch cat /proc/mdstat
You can watch for your administrator to install the latest kernel with
watch uname -r
Vynulovat nepoužité části NTFS disku se jinak dá i z již nainstalovaných Windows, je na to program 'sdelete.exe' (dříve sysinternals, dnes Microsoft).Nebo opět to dd -
dd if=/dev/zero of=/mnt/ntfs/bigfile
.
Opak je ale pravdou, je to můj velmi oblíbený příkaz. Jen jsem chtěl upozornit, že na zálohu NTFS jsou lepší nástroje.
Obsahuje-li soubor řádek delší, než je zadaná velikost, daný řádek bude rozdělen do více souborů.a tohle:
# rozdělí „soubor.txt“ tak, aby v každé části byl co největší početsi protireci.
# kompletních řádků, který se vejde do 2 MB
dd if=input bs=X |dd of=output bs=Xbude vyrazne rychlejsi oproti jedno-procesovemu
dd if=input of=output bs=X