Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Poté, co jsem se dozvěděl o existenci této knihy, mě napadlo, že si nedovedu představit nikoho, kdo by si měl vytvářet vlastní distribuci, natožpak ještě číst o takovém počínání knihu. Na druhou stranu, zvědavost mi nedala, abych se nepodíval, jak se s tímto tématem, které dle mého názoru nejde zpracovat knižně, vypořádal autor. Zvláště pak proto, že mi je jeho odborná úroveň i schopnost psát dobře známa.
Kniha je rozdělena do dvou částí (a ne náhodou tato recenze kopíruje rozdělení knihy) a začíná přehledovou kapitolou, která stručně představuje tematické rozdělení obou částí. První je věnována spíše teorii a hlavní praktická část se odehrává ve druhé. Zbytek kapitoly potom řeší základní otázku – proč. Proč mít vlastní distribuci? Autor předkládá několik příkladů, kdy to může být potřebné. Navíc procesem tvorby vlastního systému získáme znalosti a zkušenosti (přesně podle pravidla, že nejvíce se o systému naučíme, když je rozbitý).
Druhá kapitola se snaží vymezit pojem linuxová distribuce. Autor tu stručně představuje hlavní komponenty systému od jádra přes zavaděč a základní knihovny až po X server a desktopová prostředí. Dojde na popis historie čtyř hlavních distribucí – Debian, Red Hat, Slackware a SUSE a i na nezbytnou poznámku Linux versus GNU/Linux. Jen letmo se autor zmíní o Linux From Scratch, Arch Linuxu, Gentoo a Puppy Linuxu.
Tato kapitola obsahuje pokus o rozdělení distribucí do druhů, což vzhledem k obrovské modularitě prakticky všech systémů, není zcela možné. Základní dělení je tedy na desktopové (příklad z praxe je openSUSE), serverové (CentOS), embedded (fresco) a distribuce pro zvláštní účely. Zajímavostí je popis nástroje ELinOS pro vytváření vlastní embedded distribuce založené na OpenEmbedded.
Druhé kritérium je rozdělení na distribuce s podporou (RHEL), a bez ní.
Čtvrtá kapitola se věnuje LSB. Autor rozebírá motivaci, která vedla a vede k vytvoření něčeho takového, což je snaha minimalizovat fragmentaci linuxových distribucí. Věnuje se rovněž příbuznému FHS. Dále podpůrným nástrojům, jako je LSB Software Development Kit, který si instaluje třeba vlastní překladač (lsbcc
), vlastní runtime (lsbrunner
) a podobně. Druhou možností je použít LSB Application Checker, což je aplikace napsaná v Perlu s webovým rozhraním, která dokáže zkontrolovat kompatibilitu aplikace pro různé distribuce.
V další části se autor vrací zpět od autorů programů k distributorům a stručně popisuje některé požadavky LSB (třeba na výchozí uživatele v systému) a poté se věnuje testovacímu nástroji LSB Distribution Testkit, který otestuje, zda daná distribuce odpovídá specifikaci, nebo ne.
Balíčkovací systémy jsou úhelným kamenem velké části distribucí a je jim věnována pátá kapitola. Autor nejprve ukazuje vlastnosti, které má daný systém mít, jako vyhodnocování závislostí, instalace z různých zdrojů a bezpečnost. A zároveň uvádí, které nejsou nezbytné, ale rozhodně užitečné, jako třeba rozdílové balíčky nebo poskytují možnost mít více verzí jedné komponenty.
Prvním pánem na holení je rpm
. Je popsán formát názvu balíčků. Je tedy vysvětleno, co z názvu foo-0.4.2.3bar3.s390x.rpm
je název programu, co číslo verze, vydání a tak dále. Také je podrobně popsán samotný formát, což je krátká binární hlavička a takzvaný PayLoad. To je komprimovaný cpio
archív s vlastním obsahem. Následují nástroje pro práci s těmito balíčky – rpm
, yum
, zypper
a apt-rpm
.
Další je potom logicky Debian. Jeho struktura balíčků je odlišná, protože jde o prostý ar
chív, který je tvořen soubory debian-binary
, control.tar.gz
a data.tar
. Rovněž je tu popsán formát názvu, který se od rpm liší především v používání podtržítek. Jediná pomlčka odděluje verzi programu od verze balíčku v Debianu. Stejně tak jsou popsány i nástroje dpkg
a apt
.
Z dalších systémů jsou ještě popsány archívy tag.gz pro Slackware, zdrojové archívy a zmíněny balíčkovací systémy PiSi distribuce Pardus Linux a Portage distribuce Gentoo.
Instalační program byl jednou ze základních skupin uvedených ve druhé kapitole. Autor tu ukazuje možnosti, kterými lze distribuci instalovat a ve většině z nich je instalační program nezbytný. Jedinou výjimkou je nakopírování obrazu disku přímo na cílový stroj. Poté následuje popis obvyklých programů jako anaconda
, DebianInstaller, Ubiquity a Yast.
Touto přehledovou kapitolou také končí první přehledová a teoretická část.
V první kapitole druhé části autor představuje tři modelové příklady, na kterých poté bude ilustrovat jednotlivé postupy. Jsou to:
Dojde i na otázku 32/64 bitů, kde autor zůstává u 32bitových platforem, nicméně většina příkladů není na architektuře nijak závislá.
Nejlepší prostředí pro tvorbu distribuce je – distribuce, v ideálním případě ta stejná. Nicméně není dobré si pro hry, pokusy nebo tvorbu balíčků likvidovat běžící systém. V této kapitole se tedy čtenář dozví, kterak svůj výtvor izolovat od svého pracovního systému. Přičemž možností je v současné době mnoho od chroot
u přes openvz
až po VirtualBox
.
V této kapitole jsou rozebrány jednotlivé požadavky a na jejich základě vybrány distribuce, z nichž budou jednotlivé příklady vytvořeny. Síťaři se mohou těšit na upravený Debian, firemní uživatelé na openSUSE a pro kamerový server byl vybrán Slackware.
První skutečně praktická kapitola je čtvrtá. Zabývá se tvorbou a úpravami balíčků a jejich publikováním prostřednictvím repozitáře. Nejprve je ukázán způsob práce v systému rpm
. Autor ukazuje strukturu adresářů nezbytných pro vytvoření takového balíčku, příklad definičního souboru – takzvaného spec souboru. Ukazuje jednotlivé fáze, kterými se při sestavování prochází, obsahuje popis programu rpmbuild
, který balíčky generuje, a taky základy práce s příkazem rpm
. Následuje popis dvou formátů rpm
repository – Yast formát používaný distribucí SUSE na médiích a yum
, respektive rpm-md
, formát používaný distribucemi používající yum
(RHEL, CentOS, Fedora, …) a rovněž podporovaný distribucí SUSE. Celou rpm část zakončil přehled programu zypper
.
Následuje popis tvorby balíčku pro systém Debian. Autor ukazuje proces „debianizace“ zdrojového archívu programem dh_make
, vysvětluje význam souborů v adresáři debian
, jako je control
, copyright
, changelog
a především rules
. Poté následuje návod na sestavení – dpkg-buildpackage
nebo debuild
. Následně ukazuje aktualizaci balíčku pomocí uupdate
a záznam změn v changelogu pomocí dch
. Stejně jako v případě rpm
je vysvětlen příkaz dpkg
, tvorba a struktura repozitáře a také příkaz apt-get
.
Pátá kapitola je věnována instalaci. Autor se tu vrací ke svým modelovým příkladům a ukazuje, jak pomocí simple-ccd
a mikrobalíčků Debianu systém maximálně uzpůsobit. V případě firemní distribuce se zaměřuje především na úpravu vzhledu a také na splnění podmínek Novellu, který nepovoluje dále šířit svou grafiku. Ukázán je starší příkaz rembrand
, který korporátní grafiku odstraňoval. V současné době je už všechna taková grafika uložena v souborech *-branding-openSUSE
, což jsou speciální „značkové“ balíčky, které obsahují příslušnou grafiku. Obvykle existují ve dvou variantách – openSUSE
a upstream
. Následuje popis programu makeSUSEdvd
, který, jak jeho název napovídá, umí vygenerovat finální DVD.
Poté je představen zrychlený způsob instalace pomocí kickstart
z programu anaconda
. Následuje podrobný popis projektu SUSE Studio a SUSE Studio OnSite a nakonec i dojde i na kamerovou distribuci, která ovšem instalátor nemá.
Tato kapitola se zaobírá zavaděčem a tím, jak vlastně funguje spuštění. Nejvíce prostoru dostal GRUB, bohužel pouze jeho starší verze, a svůj prostor dostalo i LILO.
Jádro je nejdůležitější součást systému a sedmá kapitola představuje několik způsobů, kterak si upéct jádro na míru. Pro síťovou distribuci autor ukazuje, jak upravit upravit zdrojový balíček s jádrem Debianu a zmíní se rovněž o make-pkg
pro tvorbu balíčku z libovolného zdroje. Pro firemní distribuci je použita openSUSE, tudíž v dalším kroce ukazuje nezbytnosti, které je třeba provést pro tuto distribuci. Nakonec následuje jádro pro kamerový server, kde je předveden postup překladu jádra z kernel.org.
Tématem osmé (z celkových šestnácti, tudíž jsme právě v polovině druhé části) kapitoly je program init
. Jsou tam vysvětleny jednotlivé úrovně běhu, vysvětlen formát souboru -etc-inittab
, jak se píší inicializažní skripty systému System V. Následuje vysvětlení pojmu počáteční ramdisk (initrd
) a popis nástrojů pro jeho vytvoření mkinitrd
a initramfs-tools
.
Devátá kapitola se věnuje základním součástem systému. Mezi ně patří soubory zařízení v /dev
, co to je, jejich major a minor čísla, důležité soubory (/dev/console
, /dev/null
, …) a rovněž jsou zmíněny způsoby, jak /dev
plnit – od statického adresáře přes udev
.
Poté se autor věnuje základní konfiguraci, tj. kde nastavit systémový čas (/etc/adjtime
a /etc/localtime
), kde jsou databáze systému GNU NSS
(/etc/nsswitch.conf
), která určuje zdroje informací o uživatelích, pro DNS a podobně. Autor ukazuje, které textové databáze tohoto systému musí být přítomny a jaký je jejich význam (/etc/passwd
obsahuje informace o uživatelích). Dále na řadu přijdou souborové systémy, tudíž soubory /etc/fstab
, /etc/mtab
a /proc/mounts
. A nakonec autor připomene ještě konfiguraci systému init
, kde se nastavuje uživatelské jméno a kde shell.
Další část je věnována základním systémovým knihovnám. Je nejprve vysvětlen koncept (dynamické sdílené) knihovny, poté autor rozdělí knihovny na tři druhy – aplikační, knihovny technologií a základní systémové. Právě poslednímu typu je věnován další text, který se věnuje adresáři /lib
a knihovnám v tomto adresáři, jako jsou ld-linux
, libpthread
, nebo také libdbus
.
Poslední témata jsou souborové systémy procfs
a sysfs
, vyjmenování základních systémových programů a také nástroj BusyBox.
Kapitola číslo deset je návod na tvorbu minimálního systému, který je schopen provozu. Ten je vytvářen v chroot
u vesměs kopírováním příslušných souborů a adresářů z bázové distribuce, kterou je Slackware, jelikož se jedná o příklad kamerového serveru. Autor upozorňuje, že pro čistší výsledek je lepší si systém zkompilovat, ale bootstraping systému není úplně triviální věc, takže odkazuje na příručku Linux From Scratch. Po instalaci základních knihoven autor předvede, jak otestovat funkčnost systému a jak pomocí ldd
či strace
najít případné chybějící knihovny a soubory.
Pro distribuce odvozené od Debianu je tu debootstrap
, který zvládne nainstalovat základní systém do určeného adresáře, tudíž odpadne otravné ruční kopírování. Konec kapitoly zabírá návod na nastavení zavaděče lilo
(instalace grub
u byla již předvedena) a finální test.
Jedenáctá kapitola se týká adresáře /dev
a jeho správy pomocí udev
a HAL
. Autor tu podrobně popisuje způsoby, pomocí nichž jádro předává informace o hardwaru. Může to provést zavoláním skriptu /sbin/hotplug
nebo pomocí netlink
socketu démonu udev
. Paradoxně nedávný pokrok v této oblasti způsobil, že informace o HAL
u jsou už zbytečné, protože je označen jako deprecated
a novější systémy jej již nevyžadují (právě rychlost s jakou došlo k odstranění HAL
u ze všemožných komponent dává tušit, že se nejednalo o nejpopulárnější technologii).
Dvanáctá knihovna se zabývá bezpečností na úrovní systému. Nejprve je vysvětlena techologie PAM, její možnosti, formát konfiguračních souborů, příklady různých modulů a představení vzorové konfigurace. Velká část rozebírá nastavení nejrůznějších limitů, které se děje rovněž v režii PAMu.
Další bezpečnostní technologie je povinná správa přístupu (Mandatory Access Control), což jsou SELinux a AppArmor. Autor nejprve ukáže princip Linux Security Modules a poté představuje způsoby konfigurace obou technologií a také vyjmenovává jejich rozdíly.
Poslední systémová bezpečnostní záležitost je šifrování disků. Zde se autor zaměřil na technologie dm-crypt
a TrueCrypt
.
Linux je především síťová záležitost. Kapitola začíná tím nejdůležitějším, to jest konfigurací připojení k síti programem ip
– starší, ale velmi často používaný ifconfig
je uveden pouze v poznámce. Autor vysvětluje, jak přiřadit rozhraní adresu, jak je zapnout, či jak nastavit routovací tabulku a jak nastavit systém DNS (ten v /etc/resolv.conf
). Následuje popis konfigurace DHCP klienta pro automatické nastavení sítě prostřednictvím stejnojmeného protokolu. A trochu nečekaně následuje popis programu NetworkManager.
Pak se autor věnuje problematice instalace síťových programů, což obvykle není problém, stačí použít distribuční. Ale na příkladu distribuce openSUSE autor ukazuje, jak připravit vlastní balíček s mod_tidy
. Dále se autor věnuje problematice spouštění služeb – přímo, nebo přes superserver a popisuje, jak nastavit inetd
a xinetd
. Nakonec ještě probere tématiku bezpečnosti, která je pro síťové programy velice důležitá. Základní doporučení je především pouštět služby pod jiným uživatelem, než je root
. Bezpečnosti je věnován zbytek kapitoly, která končí informacemi o firewallu iptables
.
V této kapitole autor probírá X Server a grafické aplikace, jako jsou správce oken, bežné X aplikace nebo desktopová prostředí. Ukazuje architekturu systému a překlad a konfiguraci X serveru (ovšem ne změny ve verzi 1.8). Dále následuje popis prostředí KDE a GNOME, včetně rad, jak změnit nastavení a jak je aplikovat jako výchozí v mém systému. Grafická kapitola končí trošku nečekaně výčtem všemožných linuxových zvukových technologií od systému ALSA přes PulseAudio až po GStreamer a Phonon.
Kapitola stručně nastiňuje způsoby, jak upravit již existující balíček pro náš systém – přeložením ze zdrojového balíčku, po konverzi nástrojem alien
. Konec kapitoly je věnován openSUSE BuildService. Poslední závěrečnou šestnáctou kapitolou druhá část knihy končí.
Konec knihy je věnován seznamům, ať jde o přehled linuxových distribucí, nebo různých balíčkovacích systémů. Zajímavý je rovněž přehled bezpečnostních rozšíření a nakonec stránka s literaturou, kde jsem trošku postrádal Jádro systému Linux – Kompletní průvodce programátora.
Jak už jsem uvedl na začátku recenze, měl jsem problém se samotným tématem vytváření vlastní distribuce. Po přečtení mě tento pocit nijak neopustil a navíc jsem dospěl k názoru, že kniha tak trochu klame názvem. Podle mého se nejedná ani tak o návod na tvorbu distribuce, na to by bývalo stačilo vydat překlad manuálu Linux From Scratch. A právě ty části, které se tvářily jako návod na tvorbu distribuce, mě osobně v knize spíše rušily, mnohem povedenější byly části distribučně nezávislé.
Kniha Vytváříme vlastní distribuci Linuxu je podle mého názoru především velice povedeným shrnutím naprostých základů a konceptů každého linuxového systému. Čtenář po jejím přečtení rychle získá nezbytné vědomosti o spoustě nízkoúrovňových aspektech, jako jsou jádro a jeho překlad, start systému, obsluha /dev
, bezpečnost a navrch získá základy tvorby balíčků pro nejrozšířenější distribuce, trochu teoretických znalostí, např. povědomí o LSB a podobně. Takže knihu vřele doporučuji v první řadě každému, kdo potřebuje získat přehled v nejrůznejších zákoutích linuxových systémů. A to bez ohledu na to, zda získané znalosti zúročí tvorbou vlastní distribuce, či nikoli.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Dojde i na otázku 32/64 bitů, kde autor zůstává u 32bitových platforem, nicméně většina příkladů není na architektuře nijak závislá.Tudíž se nabízí otázka proč...
protoze knihu nechci nastalo (chtel bych to jen povrchne preletnout) je mi tech 350 kc prilisJe k dispozici v knihovnách