"...Výchozí konfiguraci systemd mohou změnit nainstalované programy umístěním konfiguračního souboru do /usr/lib/systemd/system.conf.d/..."
Tohle je jedna z tech pitomosti, co me na systemd opravdu se*e! Kterej pitomec prisel s tou geni(t)alni myslenkou, ze konfiguracni (!!!) soubor nacpe nekam do /usr/lib, a v /etc bude jenom link? Jo, ja vim: Poettering...
Problem je v tom, ze to jaksi odporuje FHS. A tu tvou "vyhodu" opravdu nechapu: to jako kdyz balicek neco nacpe do /lib, je to ok, jenze kdyz chce neco zapsat do /etc, je to spatne?
Mimochodem, zajmave, ze RedHat u RHEL deklaruje ze se drzi FHS:
"...Red Hat Enterprise Linux uses the Filesystem Hierarchy Standard (FHS) file system structure, which defines the names, locations, and permissions for many file types and directories..."
Vypada to tak, Poettering-squad jeste nestihl dostatecne infikovat "The Linux Foundation" aby prosadil upravu FHS dle jeho nazoru. To nic, na to taky dojde...
Jiste, ne pro vsechny, ovsem pro konfiguracni soubory ano (cit.):
"...The /etc hierarchy contains configuration files..."
Jo a kdyz uz cituju FHS, tak je tam taky neco zajimaveho o /usr:
".../usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and must not be written to..."
Tady mas jeden sakra dobrej duvod, proc by konfigurace nemela byt v /usr: protoze se pak neda /usr sdilet mezi jinymi hosty (ktere muzou vyzadovat rozdilnou konfiguraci pro systemd)!
V /etc nejsou linky konfigurace do /usr/lib, systemd čte oba adresáře (nějaké linky tam jsou, ale to slouží pro aliasy, třeba že sshd.service je totéž jako ssh.service). Pokud vytvoříš /etc/systemd/system.conf, tak místo /usr/lib/systemd/system.conf se bude používat to. Můžeš taky vytvořit /etc/systemd/system.conf.d/něco.conf a změnit jen některá nastavení, zbytek se pak bude tahat z /usr/lib/systemd/system.conf.
Taky bych to radši viděl třeba v (oživeném) /usr/etc. Ale jinak ta kolize s FHS je diskutabilní, protože /usr/lib není jen pro knihovny. Je to adresář pro platform specific data. A defaultní nastavení targetů a některé unity jsou závislé na platformě. Takže to tam asi opravdu patří.
Ono se na to dá totiž pohlížet i tím pohledem, že není rozdíl mezi defaultem v externím souboru a defaultem přímo zakompilovaným do knihovny/binárky. A ta už by tam patřila zcela určitě.
Druhý pohled je ten, že defaulty v /etc mají zásadní nevýhodu pro balíčkování a updaty. Balíčkovací systém nemůže jednoduše nahradit soubor v /etc novou verzí, protože existují nějaké lokální změny. Pak vznikají .rpmnew a podobně. V tomto ohledu je separádní default a separátní override soubor docela výhodný.
Se systemd v mnohém nesouhlasím, ale zrovna ta snaha o stateless systém (v /etc jen lokální změny s možností snadného resetu) nás vrací k read only /usr, což považuji za správné. A nahrazení fstab a passwd něčím ve stylu passwd.d bych třeba také neviděl tak černě, spousta balíků přidává uživatele a manipulace s passwd souborem v instalačních skriptech byla vždycky bolestivá.
Ano, spoustu projektů má defaultní konfiguraci u sebe v /usr/lib. Nicméně do /etc dávají soubory s popisem konfigurací a obvykle zakomentovanými defaulty, které je možné v /etc změnit. A pak některé umí ještě user-specific konfiguraci v HOME/.xxx, pokud je to relevantní.
S pouhým symlinkem z /etc do /usr/... jsem se ještě nesetkal...
Díky za zajímavý seriál. Přecházím na FreeBSD. Následující myšlenka je mnohem staršího data než systemd:
BSD is what you get when a bunch of UNIX hackers sit down to try to port a UNIX system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a UNIX system for the PC.
Linux je čím dál větší parodie na Unix. Pozoruji to už delší dobu, ale systemd tomu nasazuje korunu. Takže po 22 letech – adieu.
Počítám, že patříš k těm, kteří by nepochopili, co je na nosočistopleně nebo klapkobřinkostroji v češtině špatně, když v němčině se takto vystavěné tvary běžně používají. Netřeba odpovídat. Buď to chápeš a pak chápeš i co jsem myslel tím "unixem". Nebo to nechápeš a pak je to tak jako tak marné.
Je treba odpovidat, protoze UNIX se vyviji a ideal SVR5 uz nepouziva vubec nikdo, doporucuji se podivat, jak funguji vyse zminene UNIXy a jak se vyviji The Single UNIX Specifications a zmeny v UNIX V7.
Mimochodem System V x86 mi porad bezi ve virtualce, 7MB, nadhera. Ale zivot jde dal...
Už jsem asi příliš starý na to, abych bezmezně věřil autoritám, resp. těm, kdo se za ně považují/prohlašují, a abych věřil tomu, že pokrok jde vždy jen vpřed.
Do IT se za posledních 20 let nahrnulo příliš mnoho lidí, průměrný intelekt poklesl a tito lidé ve svém sebevědomí se pouštějí do věcí, na něž objektivně nemají mentální schopnosti a zkušenosti. Jako jsou například otázky koncepce. Zkrátka jsou jako ti někdejší brusiči – myslej to dobře, ale padají z nich jen samé hlubozníky a spěšnovodi. Tvrdím, že stejně jako u nich je to slepá ulička a omyl. Není důvod, proč bych po ní měl jít. Autority BSD mi momentálně připadají rozumnější než u Linuxu.
Netvrdím, že vývoj nemá být. Ale nejdřív je třeba pochopit stávající řešení, jeho výhody a nevýhody a charakteristické rysy. Bez toho to bude jako když Pejsek s Kočičkou vařili dort.
BSD se snazi drzet puvodniho konceptu *BSD, ale uz na FreeBSD je videt, ze to bez problemu nejde, pokud chteji drzet krok s ostatnimi. Urcite doporucuju si sehnat nahodit nejaky starsi UNIX (System V/*BSD) a porovnat s poslednimi verzemi AIX/Solaris/HP-UX, nebo i ten MAC OS X (je to certifikovany UNIX, jak uvedl nekdo nahore).
SystemD je rozhodne jako koncept OK, par veci delaji divne, ale to se vyresi - pokud ne, najde se neco jineho, svet nebyl jenom SysVinit pred prichodem SystemD.
Najde se něco jiného...
... to je právě to, co vypadá jako realistický scénář. SystemD se snaží nahradit fůru věcí. To je jako ta známá parafráze na standardy:
Máme 10 soupeřících standardů, vytvořme jeden, který je sjednotí.
... a po jeho vytvoření:
Máme 11 soupeřících standardů.
Systemd (omezíme-li se na init) řeší skutešný problém (SELinux kontexty a cgroup stromy). Mimochodem se docela inspirovalo u launchd z Mac OS X, což je (chvilka napětí) certifikovaný UNIX.
Asimilace dalších projektů pod systemd křídla mi nicméně vadí taky. Ale ten samotný init je celkem povedený (a bugy byly všude.. i v SysV skriptech).
Vždyť jsem to tu už psal. Používat SELinux a cgroups lze i s init.d skripty, ale musí se to nastavovat a udržovat v každém samostatně. A to je ten problém, místo toho, aby pro to byl jeden nástroj, je to na mnoha místech v různém stavu a (pokud jste autor distribuce) vyžaduje to dost práce to všechno udržovat.
Systemd samozřejmě není nějaký zázračný program, který by dělal věci, které nikdo jiný udělat nemůže. Celý vtip je jenom v tom, že řešení těch věcí podstatně zjednodušuje, takže je nakonec použije mnohem víc lidí.
Mozna to zjednodusuje z pohledu tvurce distribuci. Ja BUF nemuzu souhlasit. Uplne nove mi prestalo fungovat autofs (na webu najdes radu= zahodit autofs, pouzit automountovani od systemd, coz jsem nezvladl). Tak si to poustim ja sam v terminalu. Ono to nakonec pujde.
Rozdíl je v cestě stavovou mašinou kontextů mezi spuštěním služby initem (při bootu) a spuštěním služby adminem (service neco start).
SELinux totiž používý "jednoduché" pravidlo: aktuální kontext + kontext spuštěného souboru -> nový kontext. No a aktuální kontext init procesu je jiný, než aktuální kontext přihlášeného admina na konzoli a (teoreticky) než aktuální kontext admina přihlášeného přes ssh.
Vedlo to k situacím, kdy služba měla jiná práva po bootu a jiná po restartu adminem.
řeší skutešný problém – nosočistoplena taky řeší skutečný problém. Jenže v kontextu koncepce českého jazyka blbě. Stejně jako systemd v kontextu koncepce unixu.
což je (chvilka napětí) certifikovaný UNIX – a co jako? Čo vy si predstavujete pod takým pojmom „certifikovaný Unix”?
Certifikát postihuje něco jiného. Když řeknu „mějte hezký den”, je to česká věta poskládaná z českých slov, „certifikovaně” je to tedy česky, ale přesto tvrdím, že to česky vůbec není, Je to zjevný anglikanismus a v češtině to nemá co dělat, protože působí cizorodě. Takto se imperativ slovesa míti v češtině nepoužívá, místo toho se používá jeho reflexivní podoba a neexistuje rozumný důvod na tom cokoli měnit.
Unix byl vytvořen jako víceuživatelský, víceúlohový, textově orientovaný operační systém, založený na koncepci souborů. Jádro poskytuje API pro práci s těmito soubory a pro spravování procesů. Jednotlivé služby na uživatelské úrovni jsou zajištěny utilitami. Tyto utility mají být jednoduché a vybudované tak, aby na uživatelské úrovni byla možná jejich vzájemná kooperace na výše zmíněné textově-souborové úrovni. UI představuje shell.
To je prostě jako když se po staletí buduje rozsáhlá gotická katedrála. Gotika už je sice dávno out-of-date, ale jednou to tak holt bylo rozestavěno a nejlepšího efektu docílíte tím, že v tom budete pokračovat. Různé odchylky jsou samozřejmě možné, ale musíte si dobře uvědomovat, kam až a kam už ne. A čím větší odchylka, tím větší fachman a odborník na současné i minulé to musí realizovat, aby to šlo dohromady. A né že nýmand, co mu teče mlíko po bradě, vybourá kus tranceptu a nahradí ho skloocelovou konstrukcí a začne se s tím roztahovat dál, protože ta gotika vedle toho skla a oceli působí nepatřičně.
http://0pointer.de/blog/projects/the-biggest-myths.html
Tak to je dobře, že systemd píše Poettering, kdo má více než 10 let zkušeností s psaním služeb pro Linux a napsal více než 40 projektů pro něj, které jsou používané na stovkách milionů instalací, místo Kiwiho :-)
Za 10 let nedokázal nic pochopit? To je pak ještě horší než to mlíko na bradě. Ale nijak zvlášť mě to nepřekvapuje a ani už nezajímá. Linux je pro mě minulostí, udělejte si z toho klidně Lindows 2016 i s registrama, když máte pocit, že to je ta správná cesta. A nebál bych se jít v tom pokroku ještě dál. Co takhle přejít na FAT32 jakožto nativnímu FS? A úplně bych vyhodil shell a celé to postavil na grafických klikátkách. Pak se z Linuxu konečně stane moderní operační systém.
Bláznům se nemá odporovat.
@Sten
A co takhle zrovna prosadit specifikaci, třeba ISO 10->5 "Zákaz popírání přínosu systemd"?
Mimochodem "Posted on Sa 26 Januar 2013" a stejně je to plné reklamních keců akorát:
"Systemd je jednoduší protože nepoužívá objekty ale systemd units."
"Není monolitický, ale je to jedna repository a je to posíláno jako jeden balík"
"Je lepší než shell scripty protože má vlastní sady direktiv "
.....
Z Wikipedie:
The present owner of the trademark UNIX is The Open Group, an industry standards consortium. Only systems fully compliant with and certified to the Single UNIX Specification qualify as "UNIX" (others are called "Unix system-like" or "Unix-like").
Max OS X tedy splňuje Single UNIX Specification.
na mac os migruju, zejmena doma a proto, ze uz proste nemam nervy ani cas resit tu linuxovou rozesranost. Mac OS je na tom podobne se systemd - launchd, ale tam me to nezajima, nebot uz chci produkt co funguje tecka - teda, spis abych to doma nemusel supportovat :)
Jo, pracovne to je neco jineho... tam me systemd fakt stve...opravdu pokud na to clovek narazi v produkci, tak je to chutovka, chudaci admini, jeste ze uz to leta nedelam. Ale postupne uz zacinam linux z projetku jako architekt vyhazovat. Kdyz na to neni budget tak vmware+windows, kdyz budget je a je duraz na 24/7 provoz tak aix a linux max jako lpar pro specificke aplikace. Ale Linux jako on-metal OS, nebo nedej boze hypervizor ? vubec...
S linuxem si hraju od půlky poslední dekády minulýho století.
Potom jsem dvanáct let v korporáru (eurotel -> telecom -> telefonica) orodoval za RedHat. Resp. za rpm distribuce. A dařilo se. Korporát platil za licence. Když se v půlce toho období změnila licenční politika z dvouvrstvové, na kartézský součin sedmimístných vektorů, ještě jsem si říkal: OK je to za dobrou věc. I když mi ti druhořadí oraclelike manažeři lezli krkem.
Pak přišel systemd.
Dnes, v Akademii, stojím za SL 6x, a celý CERN se mnou. A až to dojede, bude to buď smrt nebo *BSD.
Vac out.
Asi nemate takovy vliv na deni v CERNu, jak tu prezentujete, protoze jak Cern CentOS 7 tak i Scientific Linux 7 byl vydan uz pred dvema lety. Samozrejme migrace rozsahlych cernskych aplikaci z 6 na 7 nejaky cas trva, ale stejne to bylo pri prechodu z 5 na 6 takze systemd v tom nehraje tu zasadni roli (znam experimenty, kteri na verzi 6 migrovali teprve loni). Mohu Vas uklidnit, ze zive experimenty se na podporu CC7 pripravuji a zadnou smrt neplanuji a napr. OSG middleware ma jiz pres rok podporu SL7.
Kdyz uz tu zminujete SL, tak by Vas mozna mohlo zajimat, ze jiz v lete 2014 probehla ve Fermilabu prezentace na tema systemd od lidi stojicich za SL a cely talk se nesl v duchu, jaky je to pokrok a predstaveni novych uzitecnych vlastnosti.
Takze pokud neplanujete smrt a chcete zustat v Akademii, tak investovat cas do zvladnuti systemd mozna bude rozumnejsi nez se snazit o nasazeni *BSDcka.
V CERNu se vždycky děly divné věci. F*king root (jinak se tam nástroji zvanému oficiálně "root" neřekne), přepis GEANTu do C++ (aneb když nerd slyšel, že je něco dobré a něco špatné, ale absolutně nepochopil důvody a kontext a nadřízený tomu ani trochu nerozumí), vytvoření HTML (na toto téma by měl být vytvořen katastrofický film, dokonce podle skutečné události, a ne na to, jak urychlovač vcucne Zemi)...
A nejzajímavější na tom všem je, že se tím ještě chluběj, "jakej je to pokrok". Takže systemd mě v tomto ohledu ani nepřekvapuje.
Třeba SMTP. Nebo lidská řeč. Nebo morseovka. Efektivní využití komunikačního kanálu není jediným kritériem pro hodnocení komunikačního protokolu.
To, že je HTTP textový protokol, pravděpodobně velmi přispělo k jeho rozšíření, protože programátoři a správci mohli snadno vidět, co se v komunikaci děje a protokolu porozumět - nepotřebovali k tomu žádné speciální nástroje, takže bylo snadné začít od nuly.
Proč morseovka? Na asynchronním kanále s on/off klíčováním a velmi mizerným lokálním časovačem (lidská ruka a lidské ucho) je to asi ten nejefektivnější komunikační protokol. Takže to byl zrovna dost nevhodně zvolený příklad.
Lidskou řeč nemohu posoudit, ale na první pohled bych řekl, že to taky nebude zlé - jak efektivněji by to šlo podle tebe řešit?
Naproti tomu HTTP je protokol vybudovaný nad vrstvami o známých obecných technických vlastnostech, které jeho autor naprosto ignoroval, a v tomto kontextu je to opravdu odstrašující příklad, jak komunikační protokol v žádném případě vypadat nemá. Myšlenka, že je přeci skvělé, že ho mohu v textové podobě snadno analyzovat, je naprosto zcestná a absurdní, když taková činnost představuje nula nula nic oproti frekvenci jeho strojového zpracování a přenosu.
Naproti tomu HTTP je protokol vybudovaný nad vrstvami o známých obecných technických vlastnostech, které jeho autor naprosto ignoroval
Například?
Myšlenka, že je přeci skvělé, že ho mohu v textové podobě snadno analyzovat, je naprosto zcestná a absurdní, když taková činnost představuje nula nula nic oproti frekvenci jeho strojového zpracování a přenosu.
V době implementace takového protokolu je to ovšem přesně naopak. Všichni, kdo se protokolem zabývají, ho programují nebo analyzují, zatímco reálný provoz je nulový. O tom, že se tím protokolem bude za čtvrt století přenášet teplota z teplotního čidla do hodin a vedle toho také online televizní přenos v ultra HD autoři pochopitelně neměli ani tušení. To, že byla specifikace nástupnického protokolu HTTP/2, která už je binární, vydána až po 26 letech, není chyba autora původního protokolu.
Mimochodem, těch přenosových protokolů bylo kdysi spousta. Kdyby HTTP nebyl textový, prosadil by se nejspíš jiný textový protokol - a vy byste na něj dnes nadával úplně stejně.
Jinak já s vámi naprosto souhlasím s tím, že v dnešní době je binární protokol daleko lepší a možnost snadné analýzy textu je okrajová marginálie (sic!). Ale před čtvrt stoletím byla jiná situace.
No například to, že bude zpracováván strojově a bude transportován komunikačními kanály s omezenou kapacitou nad vrstvami zaručujícími dostatečnou robustnost. To je argument, který byl platný tehdy jako dnes a jako i v budoucnu, dříve, v době modemů a pomalých linek dokonce ještě pádnější než dnes. To se zkrátka nedá omluvit nijak, navrhnout něco takového jako komunikační protokol je vizitka naprostého fachidiotismu.
Samozřejmě, že na jiný textový protokol bych nadával úplně stejně, stejně jako každý odborník na telekomunikace. Chápu tu historii, chápu i že autor asi nečekal, že se to tak rozšíří, chápu, že autor nikdy nebyl odborníkem na telekomunikace, ale nechápu, proč se tím v CERNu tak chluběj, když by se za tak zpackanou práci měli spíš stydět.
Celé jsem to zmínil jen kvůli tomu, aby si snad někdo nemyslel, že vše, co v CERNu činí, dobře činí -- v souvislosti s tou zmínkou o systemd, která tu ve spojitosti s CERNem padla.
Nevidím v HTTP žádné vlastní řešení robustnosti, to je plně přenecháno nižším vrstvám. S tou omezenou přenosovou kapacitou máte pravdu, nicméně na původním protokolu HTTP byste toho s binárním protokolem stejně moc neušetřil, protože jako požadavek se tam posílala jen adresa požadovaného dokumentu, jako odpověď samotný dokument. Takže byste mohl maximálně tak zazipovat tu adresu v požadavku.
O tom, že je čím se chlubit, myslím už rozhodla historie. Protože protokol HTTP přežil, na rozdíl od těch protokolů, které byly podle vašich měřítek mnohem lepší. Holt se asi svět rozhodoval podle jiných kritérií, než která uplatňujete vy.
Třeba SMTP. Nebo lidská řeč. Nebo morseovka.
U SMTP je to jedno. Tolik mailu, aby rychlost hrala roli, piso akorat spameri.
Morseovka vyuziva komunikacni kanal spise dost dobre. Co ho vyuziva spatne jsou manici, co sedi u klice, kteri nedokazi zvladnout vic, jak urcity pocet stisku za minutu nebo ti, co sedi na druhe strane, kteri to pak zase nedokazi chytat.
Lidska rec vyuziva komunikacni kanal spise dost dobre. Je to komunikacni kanal o uzkem frekvencnim pasmu na nizke frekvenci a od toho nelze cekat zazraky. Nevim, kolik byste do nekolika kHz ctel vmacknout vy.
Třeba slova "komunikační" nebo "frekvenční" ve vašem komentáři rozhodně nevyužívají komunikační kanál dobře, bylo by možné je nahradit podstatně kratší posloupností znaků nebo hlásek, která nemá v současné době přiřazen žádný význam. Naopak spoustu slov zabírají zbytečná synonyma. A také je ve sdělení obvykle spousta věcí redundantních. Což všechno má svůj význam, akorát holt od komunikace neočekáváme jenom to, že bude efektivně využívat přenosový kanál. Mimochodem, i kdybyste to bral čistě jenom jako přenos informací hlasem - ve stejném frekvenčním pásmu a na stejné frekvenci dokázaly komunikovat třeba modemy na analogových telefonních linkách. A 56 kbit/s je tedy podstatně víc, než co přenesete lidskou řečí.
Nebyl bych si tim tak jisty. Kombinaci zvuku lze vytvorit jen omezene mnozstvi, zkracovat lze jen do jiste miry. Jista redundance v reci, je zbytcna jen teoreticky, prakticky zajistuje srozumitelnost, abychom skrz dany komunikacni kanal nehadali, jestli mluvci mluvi o lokomotive nebo o klobouku, k cemuz by mohlo dojit, pokud by se slova od sebe lisila prilis malo. A synonyma urcite nejsou zbytecna, protoze Synonyma též slova souznačná, jsou slova nebo slovní spojení se vzájemně stejným nebo podobným významem, která lze za určitých okolností zaměňovat. Dodávají jazyku bohatství, umožňují jemné odstínění významů v závislosti na kontextovém a stylistickém zabarvení. Nejsou to slova ekvivalentni a pokud nechceme mluvit jako pralidi, kteri z pocatku potrebovali leda tak vyzvat nekoho, aby jim podal kost, synonyma potrebujeme. Ostatne v Africe zije narod, ktery mluvi mlaskavym, neartikulovanym jazykem. Komunikacni kanal vyuziji urcite lepe, nez my, ale slovni zasobu maji velmi omezenou. Staci prave tak na domluveni sdelenimi typu "podej mi kost".