Byla vydána nová verze 1.26 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
CrossOver, komerční produkt založený na Wine, byl vydán ve verzi 26. Přehled novinek v ChangeLogu. CrossOver 26 vychází z Wine 11.0, D3DMetal 3.0, DXMT 0.72, Wine Mono 10.4.1 a vkd3d 1.18. Do 17. února lze koupit CrossOver+ se slevou 26 %.
KiCad je nově k dispozici také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit [Mastodon, 𝕏].
Šenčenská firma Seeed Studio představila projekt levného robotického ramena reBot Arm B601, primárně coby pomůcky pro studenty a výzkumníky. Paže má 6 stupňů volnosti, dosah 650 mm a nosnost 1,5 kilogramu, podporované platformy mají být ROS1, ROS2, LeRobot, Pinocchio a Isaac Sim, krom toho bude k dispozici vlastní SDK napsané v Pythonu. Kompletní seznam součástek, videonávody a nejspíš i cena budou zveřejněny až koncem tohoto měsíce.
… více »Byla vydána nová verze 36.0, tj. první stabilní verze nové řady 36, svobodného multimediálního centra MythTV (Wikipedie). Přehled novinek a vylepšení v poznámkách k vydání.
Byl vydán LineageOS 23.2 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu.
Od března budou mít uživatelé Discordu bez ověření věku pouze minimální práva vhodná pro teenagery.
Evropská komise (EK) předběžně shledala čínskou sociální síť pro sdílení krátkých videí TikTok návykovým designem v rozporu s unijním nařízením o digitálních službách (DSA). Komise, která je exekutivním orgánem Evropské unie a má rozsáhlé pravomoci, o tom informovala v tiskovém sdělení. TikTok v reakci uvedl, že EK o platformě vykreslila podle něj zcela nepravdivý obraz, a proto se bude bránit.… více »
Offpunk byl vydán ve verzi 3.0. Jedná se o webový prohlížeč běžící v terminálu a podporující také protokoly Gemini, Gopher a RSS. Přibyl nástroj xkcdpunk pro zobrazení XKCD v terminálu.
Promethee je projekt, který implementuje UEFI (Unified Extensible Firmware Interface) bindingy pro JavaScript. Z bootovacího média načítá a spouští soubor 'script.js', který může používat UEFI služby. Cílem je vytvořit zavaděč, který lze přizpůsobit pomocí HTML/CSS/JS. Repozitář se zdrojovými kódy je na Codebergu.
První LiveCD trpěly tím, že na ně nebylo možné zapisovat. Kvůli
technickým omezením to není možné dodnes, ale existují způsoby, jak systém
přinutit, aby se tvářil, že to možné je. Princip je velmi jednoduchý;
adresář, do něhož chceme zapisovat, je přípojným bodem pro dva jiné, které
nazvěme ro a rw. Zatímco ro je, jak
název napovídá, jen pro čtení, a tudíž se vyskytuje na disku CD-ROM,
adresář rw je pouze v operační paměti a obsahuje změny oproti
adresáři ro. Potom je nutný speciální souborový systém, který
dokáže oba adresáže spojit do jednoho.
Prvním řešením byl takzvaný překryvný (overlay) souborový systém ovlfs. Vzhledem k tomu, že je dostupný pouze ve formě patchů pro jádra 2.4, uvádím ho zde především z historických důvodů. Ostatně i nápis Last Updated: June 10, 2003 na stránce projektu hovoří za vše.
Tento systém dokáže do jednoho přípojného místa připojit dva různé
adresáře (souborové systémy). Primární, který je na LiveCD read-only, a
sekundární, který bývá v operační paměti. Všechny změny jsou zapisovány na
sekundární. Modul squashfs si udržuje v paměti jádra vlastní
tabulku inodů, odkazů na konkrétní soubory a adresáře. Při požadavku na
nový/změněný soubor vrátí odkaz na sekundární adresář. Tento systém se sice
vyznačoval některými problémy (zamykání souborů a rychlost), ale vaz mu
srazila spíše skutečnost, že nebyl portován na jádra 2.6.
COW neznačí jenom samici tura domácího, ale i označení technologie
copy on write. Starší implementací bylo COW-Links, které není příliš dobré a také už nežije.
Poslední patch je pro jádro 2.6.11. Z něj vychází projekt cowloop:
copy-on-write loop driver. Uvádím je spíše pro zajímavost a rozšíření
obzorů, protože ani jeden z nich není bez hacků vhodný pro tvorbu LiveCD.
Více vysvětluje FAQ
projektu cowloop.
Unionfs znamená stackable unification file system (což by se dalo
přeložit jako stohovatelný/vrstvitelný unifikující souborový systém). Mimo
jeho funkčnosti je na něm velmi zajímavé to, že je součástí projektu FiST (Stackable File
System Language and Templates). Ten používá vysokoúrovňový jazyk
specializovaný na tyto souborové systémy. Překladačem fistgen
je potom proveden překlad na spustitelný modul jádra. Podporovány jsou
jádra systémů Linux, FreeBSD a Solaris. Vychází to z unixové tradice tvorby
specializovaných jazyků, o kterých se zmiňuje Eric S. Raymond v kapitole
Minijazyky, ve své knize The Art of Unix Programming.
UnionFS vytváří jeden logický souborový systém, který je tvořen spojením obsahu mnoha různých adresářů (větví), přičemž jejich fyzické umístění je oddělené. Je možné například spojit oddělené programové adresáře do jednoho a vytvořit systém podobný GoboLinuxu, ale bez starostí se symbolickými odkazy. Pro LiveCD je velmi podstatné, že dovoluje kombinovat větve jen pro čtení s těmi určenými pro zápis. Díky funkci copy-on-write je možné vytvořit iluzi zapisovatelného souborového systému s tím, že změny se transparentně přenáší do adresáře určeného pro zápis.
První LiveCD, které tento systém používalo na jádře 2.6, bylo DeadCD, alespoň se tak píše na stránkách projektu.
Nejprve si zkontrolujte, zda nemáte balíček s unionfs přímo ve své distribuci. Pokud ne, možná vám přijde vhod malý návod. Díky svému původu se modul přeloží a nainstaluje sám.
$ wget ftp://ftp.fsl.cs.sunysb.edu/pub/unionfs/unionfs-1.0.14.tar.gz $ tar -xzf unionfs-1.0.14.tar.gz
Doporučuji si přečíst dokumentaci (soubor README) a instalační instrukce
(soubor INSTALL). UnionFS má ve výchozím nastavení zapnutý ladící mód, což
velmi nepříjemně zvětší velikost modulu (83kB versus přibližně 5MB).
Pochopitelně musíte mít hlavičkové soubory jádra v
/lib/modules/`uname -r`/build/include. Když chcete instalovat
modul pro jiné, než aktuálně běžící jádro, vytvořte soubor
fistdev.mk a napište do něj
TOPINC=-I/cesta/k/jádru/linux-2.6.xx/include. Dále je
požadováno mít hlavičkové soubory e2fsprogs a program
ctags.
$ # vypnuti debug flagu $ cat fistdev.mk EXTRACFLAGS=-DUNIONFS_NDEBUG UNIONFS_DEBUG_CFLAG= $ make # make install # depmod -a
Tím máme v systému jaderný modul unionfs.ko (pro jádra 2.4
unionfs.o), unionctl pro přidávání a odebírání
větví a manuálové stránky.
K připojení se používá klasický příkaz mount, ale je nutné
pomocí volby -o specifikovat další parametry.
# modprobe unionfs # mount -w -t unionfs -o dirs=/tmp/foo/=ro:/tmp/bar/=ro unionfs /tmp/union/
Spojí adresáře /tmp/foo a /tmp/bar do jednoho
adresáře /tmp/union. V případě konfliktů má první adresář
největší prioritu.
Připojené souborové systémy zjistíme příkazem
# mount | grep unionfs unionfs on /tmp/union type unionfs (rw,dirs=/tmp/foo/=ro:/tmp/bar/=ro)
Nebo lépe, příkazem unionctl, kterým můžete dynamicky
přidávat, nebo odebírat nové přípojné body.
# unionctl /tmp/union --list /tmp/foo (r-) /tmp/bar (r-) # unionctl /tmp/union --add --after /tmp/bar --mode ro /tmp/ham # unionctl /tmp/union --list /tmp/foo (r-) /tmp/bar (r-) /tmp/ham (r-) # unionctl /tmp/union --remove /tmp/bar # unionctl /tmp/union --list /tmp/foo (r-) /tmp/ham (r-)
Pokud změníte obsah větví, můžete obnovit obsah přípojného bodu příkazem
# uniondbg -g /tmp/union/ New generation 3
Spojování adresářů jen pro čtení nám v LiveCD nepřinese žádný užitek.
Důvodem, proč unionfs používáme, je podpora "zápisu" na
read-only médium. Pojďme tedy něco zapsat na disk CD-ROM.
# mount /mnt/ro/ # ls -l /mnt/ro/ total 76 -rw-r--r-- 1 root root 18259 Sep 27 21:28 COPYING -r--r--r-- 1 root root 339 Sep 27 21:28 LICENSE -rw-r--r-- 1 root root 1406 Sep 27 21:27 abc.ico ... -rw-r--r-- 1 root root 2546 Sep 27 21:28 requirements.txt drwxr-xr-x 2 root root 2048 Sep 27 21:27 rootcopy -rw-r--r-- 1 root root 3926 Sep 27 21:28 start.html drwxr-xr-x 3 root root 2048 Sep 27 21:28 tools # ls /mnt/ro/new-file.txt ls: /mnt/ro/new-file.txt: No such file or directory # touch /mnt/ro/new-file.txt touch: cannot touch `/mnt/ro/new-file.txt': Read-only file system
V adresáři /mnt/ro (read-only) máme připojené CD s
distribucí ABC Linux 2005. V adresáři nemáme žádný soubor
new-file.txt a nejde ani vytvořit.
# mount -t unionfs -o dirs=/mnt/ro/=ro unionfs /mnt/cdrom/ # diff -r /mnt/ro/ /mnt/cdrom/
Tímto příkazem jsme vytvořili přípojný bod /mnt/cdrom/,
který je zcela totožný s adresářem /mnt/ro/. Ale ani do
jednoho z nich nemůžeme zapisovat. Je potřeba ještě určit adresář, kam se
budou ukládat změny:
# unionctl /mnt/cdrom --add --before /mnt/ro/ --mode rw /mnt/rw/ # unionctl --list /mnt/cdrom/ /mnt/rw (rw) /mnt/ro (r-)
A voilà, adresář /mnt/cdrom/ s právem zápisu je k
dispozici! Samozřejmě s tím, že se veškeré změny ukládají do adresáře
/mnt/rw.
# echo "burned on CD-ROM" > /mnt/cdrom/new-file.txt # cat /mnt/cdrom/new-file.txt burned on CD-ROM
# cat /mnt/rw/new-file.txt burned on CD-ROM
# cat /mnt/ro/new-file.txt cat: /mnt/ro/new-file.txt: No such file or directory # cmp /mnt/cdrom/new-file.txt /mnt/rw/new-file.txt #
V části instalace bylo nezbytné odstranit ladící flagy z modulů unionfs, protože přes vysoké číslo verze trpí unionfs některými potížemi a není vhodný pro ostré, produkční nasazení. Občasné kernel oops (nebo kernel panic ve starších verzích) se při použití tohoto souborového systému stávají. Zvláště pokud použijete složitý systém všemožných připojení.
V tomto díle jsme se seznámili s různými možnostmi, jak zařídit, aby se dalo na CD zapisovat. Přestože jich je celá řada, nejpoužívanější bude asi právě unionfs, se kterým jsme se naučili "zapsat" data na CD-ROM. Pokud vás tato problematika zaujala více, zkuste navštívit stránku unionfs.org, kde jsou příklady použití UnionFS v distribuci SLAX.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
, řeknu někomu ať to opraví.
A co teprve packet writing primo na CD-RW v mechanice? To bude teprve legrace, az budou LiveCD skoro stejne pouzitelna jako flashe. Samozrejme je tady problem s opotrebenim, ale staci jednou do mesice prepalit na nove RW... :]