Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.
Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.
Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.
V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.
VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.
V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).
Gemini CLI umožňuje používání AI Gemini přímo v terminálu. Vydána byla verze 0.10.0.
Konference OpenAlt 2025 proběhne již příští víkend 1. a 2. listopadu v Brně. Nabídne přibližně 80 přednášek a workshopů rozdělených do 7 tematických tracků. Program se může ještě mírně měnit až do samotné konference, a to s ohledem na opožděné úpravy abstraktů i případné podzimní virózy. Díky partnerům je vstup na konferenci zdarma. Registrace není nutná. Vyplnění formuláře však pomůže s lepším plánováním dalších ročníků konference.
Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.
Shrňme si poznatky z minulých kapitol. Systemd je
sysvinit – podporuje init skripty, LSB hlavičky a /dev/initctlcgroups a kontrolu prostředí spouštěných
služebLennart s prvním blogem nezveřejnil jenom koncept, který by měl někdo implementovat, ale první pracovní verzi svého kódu. Následující text se tedy podívá na systemd z praktické stránky.
Základním stavebním kamenem systemd jsou jednotky (units). Každá jednotka má
svůj název a typ a je obvykle uložena v souboru s názvem název.typ -
avahi.service je konfigurace jednotky avahi typu služba (.service).
Konfigurační formát je jednoduchý, podobný .desktop souborům či .ini
souborům z Microsoft Windows. Mimochodem v blogu se Lennart strefuje do System Management Facility, jinak mocného init systému pro Solaris, právě pro použití XML jako konfiguračního formátu. Štěstím je, že po děsivých zkušenostech s HAL a fontcofig není tento formát pro ukládání konfigurace příliš
oblíbený. Rozhodně v linuxové komunitě.
Typ jednotky potom značí, co vlastně daná jednotka ovládá. Podporovány jsou
služba (.service) – tento typ ovládá démony – jejich spuštění, zastavení,
restart a jiné. Pro zpětnou kompatibilitu se SysV systemd podporuje nejen
vlastní formát, ale i /etc/init.d skripty a to včetně parsování LSB hlaviček.
socket (.socket) – tento typ manipuluje se sockety AF_INET, AF_INET6,
nebo AF_UNIX sockety. Rovněž je podporována pojmenovaná roura. Každá
jednotka má komplementární službu, která je spuštěna v okamžiku, kdy přijde
první připojení na socket. Takže nscd.socket startuje službu nscd.service.
zařízení (.device) – konfigurační soubor pro zařízení, tak jak je dostupné
v /dev nebo /sysfs. Název souboru musí odpovídat danému zařízení, takže
dev-sda5.device obsahuje informace o /dev/sda5. Primárním zdrojem informací
a konfigurace je udev, vlastní systemd soubory jsou spíše výjimkou.
připojení (.mount) – tato jednotka reprezentuje přípojné body v souborovém
systému. systemd sleduje aktivitu přípojných bodů. Hlavním zdrojem
konfigurace je /etc/fstab
automatické připojení (.automount) – reprezentuje přípojné body
připojované až v okamžiku prvního pokusu o přístup.
cíl (.target) – logická skupina jednotek – umožňují snížit granularitu
nastavení. Například se můžeme odkázat na multi-user.target, což je ekvivalent
runlevelu 5 ze sysvinit nebo třeba bluetooth.target, který bude vyžadován po
zapojení bluetooth jednotky do systému a který spustí všechny služby jako
bluetoothd nebo obexd.
snímek (.snapshot) odkazuje na ostatní jednotky. Smyslem této jednotky je
mít možnost uložit aktuální stav všech ostatních jednotek. Například pokud
potřebujeme vyvolat nouzovou opravu, uložíme aktuálně běžící jednotky, vyvoláme
opravný nástroj a jednotky zase nahrajeme zpět. Spousta služeb totiž
nepodporuje uspávání. Systemd je v takovém případě raději vypne a po spuštění
obnoví.
odkládací paměť (.swap) je typ jednotek, které obsahují informace o
dostupných úložištích pro odkládací paměť. Stejně jako u typu připojení je zdroj informací /etc/fstab.
časovač (.timer) je pro typ jednotek spouštěných na základě časových
událostí pro periodicky se opakující se úlohy. Narozdíl od jednotek pro
připojení a odkládací paměť se tento typ nesnaží o zpětnou kompatibilitu se
systémem cron nebo at, i když je možné, že v budoucnu někdo takovou podporu
napíše.
Pro práci se systemd je nezbytné znát, kam vlastně ukládá svoje jednotky. Jsou to adresáře
/lib/systemd/system a /etc/systemd/system, respektive adresáře vrácené příkazy
pkg-config systemd --variable=systemdsystemunitdir pkg-config systemd --variable=systemdsystemconfdir
přičemž vyšší prioritu má adresář /etc/systemd.
Význam je jednoduchý – v /lib jsou ukládány konfigurační soubory distribuované přímo se systemd, případně jiným balíčkem, takže je nelze editovat (tedy lze je editovat, ale pak nesmíme updatovat). Pokud uživatel potřebuje změnit výchozí chování, zkopíruje jednotku do /etc, takže bude použita tato.
Pro zajímavost adresáře pro uživatelské relace jsou $ pkg-config systemd --variable=systemduserunitdir /usr/share/systemd/user $ pkg-config systemd --variable=systemduserconfdir /etc/systemd/user
Dalším adresářem je /etc/init.d/, kde jsou uloženy init skripty, které systemd spouští, pokud neexistuje odpovídající nativní jednotka. Stejně tak používá symbolické odkazy v /etc/rcXYZ (konkrétní umístění se mezi distribucemi mírně liší).
Pro hrátky se systemd je dobré jej mít nainstalován. Systemd již vyšel jako technology preview ve Fedora 14 a openSUSE 11.4, což je logické, protože Lennart (Fedora) i Kay Sievers na systemd od počátku spolupracovali. Očekává se, že Fedora 15 a openSUSE 12.1 budou obsahovat systemd jako výchozí možnost. Debian unstable bude rovněž rozumnou volbou. Distribuce jako Arch nebo Gentoo mají systemd v nějakém tom komunitním repositáři, čili nezdá se, že by se snažily konvertovat skripty na systemd, nicméně fungovat by mohl i tam. Vhodnou volbou naopak není Ubuntu, protože instalací systemd přijdete o možnost spouštět programy již konvertované na upstart.
Rozumnou možností, jak zjistit podporu systemd je podívat se do configure.ac na řádek AC_ARG_WITH(distro, kde najdete již podporované distribuční cíle. Ale jako v případě Slackware podpora v systemd neznamená, že najdete hotové balíčky nebo že se jej někdo snaží aktivně protlačovat.
Po absolvování instalační procedury, která bývá popsána na stránkách příslušné
distribuce se nabootuje obvykle po zadání init=/bin/systemd a kochat se novým
init systémem. Většina uživatelů je překvapena skutečností, že jejich systém
nastartoval jako kdykoli předtím.
Ovšem čas od času se stane, že se něco nepovede. Proto systemd nabízí řadu
parametrů, kterými lze říci, že potřebujeme více informací. Ony parametry
existují ve třech formách – parametr jaderného příkazového řádku, proměnná nebo
klasický --argument příkazu. Budu uvádět pouze jadernou variantu, zbytek je v
systemd(1).
systemd.crash_shell – může nabývat hodnot true, nebo false a používá se
pro případy, že démon spadne. Z bezpečnostních důvodů je zakázána, ale pokud
testujete vývojové verze, můžete se s pádem setkat.
systemd.crash_chvt – pozitivní hodnota určuje číslo virtuálního terminálu, na který se systemd v případě pádu přepne
systemd.confirm_spawn – opět může nabývat hodnot true, nebo false a
určuje, zda má systemd požadovat interaktivní potvrzení při spuštění každé
služby
systemd.log_level – označuje jak podrobný bude výstup systemd – mezi
podporované volby patří emerg, alert, crit, err, warning, notice,
info, debug, případně ekvivalentní číselné označení. Vhodné, pokud démon
dělá něco, co by dle vás vůbec neměl.
systemd.log_target – určuje, kam bude systemd zapisovat svoje zprávy -
možnosti jsou console, syslog, kmsg a syslog-or-kmsg. Jejich význam je
očividný, console znamená výstup na systémovou kozoli, volba syslog pošle
zprávy do /dev/log, kmsg je uloží do jaderného bufferu zpráv a poslední
volba zapisuje do /dev/log, pokud je k dispozici.
systemd.log_location – pro ty, kteří mají ambici opravovat přímo kód systemd
je tento argument. Hodnota true určuje, zda se do výstupu má zahrnout i název a
řádek ve zdrojovém kódu.
K ovládání démona systemd slouží příkaz systemctl. Ten má, mimo jiné, příkazy pro manipulaci s jednotkami, které nahrazují /etc/init.d/foo (status|start|stop|restart|...). Prostým napsáním příkazu systemctl získáme seznam právě běžících jednotek
$ systemctl | head dev-hugepages.automount loaded active running Huge Pages File System Aut dev-mqueue.automount loaded active running POSIX Message Queue File S proc-sys...misc.automount loaded active waiting Arbitrary Executable File sys-kern...ebug.automount loaded active waiting Debug File System Automoun sys-kern...rity.automount loaded active running Security File System Autom sys-devi...et-eth0.device loaded active plugged 82566DC Gigabit Network Co sys-devi...ock-sr0.device loaded active plugged HL-DT-STDVD-RAM_GSA-H50L sys-devi...da-sda1.device loaded active plugged ST3250410AS sys-devi...da-sda2.device loaded active plugged ST3250410AS sys-devi...da-sda3.device loaded active plugged ST3250410AS
Příkazem systemctl status JEDNOTKA|PID se dotazujeme na stav jednotky, nebo procesu
$ systemctl status dbus.service
dbus.service – D-Bus System Message Bus
Loaded: loaded (/lib/systemd/system/dbus.service)
Active: active (running) since Thu, 17 Feb 2011 16:12:34 +0100; 2 weeks and 5 days ago
Process: 762 ExecStartPre=/bin/rm -f /var/run/dbus/pid (code=exited, status=0/SUCCESS)
Process: 755 ExecStartPre=/bin/dbus-uuidgen --ensure (code=exited, status=0/SUCCESS)
Main PID: 764 (dbus-daemon)
CGroup: name=systemd:/system/dbus.service
├ 764 /bin/dbus-daemon --system --address=systemd: --nofork --systemd-activation
├ 1085 /usr/lib/polkit-1/polkitd
├ 3604 /usr/lib/upower/upowerd
├ 3640 /usr/lib/udisks/udisks-daemon
├ 3647 udisks-daemon: polling /dev/sr0
└ 3806 /usr/lib/rtkit/rtkit-daemon
K příkazu status existuje ještě ekvivalentní příkaz show, který je vhodnější pro používání ve skriptech, protože jeho výstup je součástí interface stability promise.
$ systemctl show dbus.service | head Id=dbus.service Names=dbus.service Requires=dbus.socket basic.target WantedBy=multi-user.target Conflicts=shutdown.target Before=earlyxdm.service xdm.service cups.service bluez-coldplug.service haldaemon.service shutdown.target multi-user.target pm-profiler.service single.service After=dbus.socket syslog.target basic.target Description=D-Bus System Message Bus LoadState=loaded ActiveState=active
A další možností, jak se dotazovat na stav jednotky (jednotek) je příkaz is-active, který vrací 0, pokud je jednotka (jednotky) aktivní a 1 v opačném případě. Bez přepínače --quiet rovněž vypisuje aktuální stav.
$ systemctl is-active sshd.service; echo $? active 0 $ systemctl is-active --quiet sshd.service; echo $? 0
Příkazy start|stop|restart|try-restart spouští|zastavují|restartují jednotky. Rozdíl mezi restart a try-retart je v tom, že druhý příkaz skončí chybou, pokud jednotka předtím neběží. Příkaz reload požádá démona o znovu nahrání konfigurace. Složitě znějící příkaz reload-or-restart (reload-or-try-restart) zkusí požádat příslušného démona o znovu nahrání konfigurace a pokud to nepodporuje, pak jej restartuje.
Koncept úrovní běhu (runlevel) je asi nejčastěji nahrazovanou částí sysvinit.
Z čehož mají pochopitelnou radost především uživatelé, kteří přecházejí ze
sysvinit. Dobrá zpráva je, že koncept úrovní běhu je zabudován i v
systemd a to prostřednictvím jednotek .target.
Existují jak kompatibilní názvy – runlevel5.target, tak i ty smysluplné, jako
multi-user.target, což je ekvivalent runlevel3.target, nebo
graphical.target, což je runlevel5.target. Pro změnu je možné použít
kompatibilní příkaz telinit, nicméně většina dnešních systémů umožňuje
paralelní instalaci sysvinit a systemd, tudíž je lepší si pamatovat nativní
příkaz systemctl isolate graphical.target
Příkaz isolate spustí zadané jednotky včetně jejich závislostí a ukončí
všechny ostatní. Výchozí úroveň je potom uložena v souboru
/etc/systemd/system/default.target, což je symbolický odkaz na jednotku, která
bude spuštěna při startu. Změnou tohoto odkazu ovlivníme výchozí úroveň pro
příští start.
Problém nastává v okamžiku, kdy potřebujeme zjistit úroveň běhu a to proto, že
typ .target je daleko obecnější, než úroveň běhu. Tak například je možné
vytvořit úrovně, které neodpovídají žádnému klasickému číslu, anebo může být v
jeden čas aktivních vícero jednotek.
systemctl list-units --type=target UNIT LOAD ACTIVE SUB JOB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Encrypted Volumes dbus.target loaded active active D-Bus getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs.target loaded active active Local File Systems multi-user.target loaded active active Multi-User network.target loaded active active Network remote-fs.target loaded active active Remote File Systems sockets.target loaded active active Sockets swap.target loaded active active Swap sysinit.target loaded active active System Initialization
dokáže zjistit, které tyto jednotky jsou aktuálně aktivní.
Jaderný parametr systemd.unit umožňuje spustit systém s jiným než výchozím
cílem. Vhodné pro emergency.target, i když uživatelé se smyslem pro napětí
mohou zadávat ctr-alt-del.target nebo halt.target. Nicméně nejčastěji budou
uživatelé zadávat
init=/bin/bashrunlevel1.target) – nastartuje minimální systém a otevře
konzoliV dnešním díle jsme zjistili, které typy jednotek systemd podporuje. Jakým
způsobem ovládat a zjišťovat stav jednotek. Jak funguje ekvivalent úrovní běhu
u systemd. Následující část bude věnována speciálním jednotkám systemd, takže
se dozvíte, co znamenají všechny ty rescue.target a podobně. Navíc se ponoříme
hlouběji do systému závislostí systemd.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Beta u Fedory znamená, že do repozitářů jdou jen aktualizace, které představují opravy zásadních problémů nebo implementace funkcí slíbených pro ostrou verzi, ale ještě nedokončených. Takže rychlostní překvápka ve stylu Mozilly, která ostré verze zryhluje vypnutým laděním, se ve Fedoře čekat nedají.
Pokud by někdo čekal úžasné zrychlení díky parelelnímu startu, tak: (1) na to nemusel čekat na systemd, upstart (nebo jiné systémy v jiných distribucích) jej také umí, a (2) teprve minulý týden byla schválená specifikace, jak psát init scripty pro systemd ve Fedoře, takže drtivá většina démonů se stejně startuje starým LSB skriptem a démoni nejsou upraveni na odložený start přes socket.
Takže suma sumárum si v F15 změříte režii samotného systemd. Což ale vůbec není špatná věc.
Díky za článek. systemd se zájmem sleduji skoro od začátku jeho existence, zatím jsem ale neměl odvahu jej vyzkoušet.
Chtěl bych se proto zeptat publika, především Gentooistů, jestli máte někdo zkušenosti s instalací systemd na Gentoo a jak to probíhalo - rozbilo se moc věcí nebo byl základní přechod víceméně bez problémů? Na co si dát pozor?
Díky všem, Dan.
[community], máte s tím někdo zkušenostě?