Kedysi som zachytil diskusiu o optimalizacii stranok jednej nemenovanej institucie, kde sa riesilo, ze stranky je potrebne kompletne prekopat lebo v nicom inom nez v IE prakticky nefunguju. Nacoz sa ozval jeden z prisediacich, ze je to zbytocne, lebo z inych browsrov na stranky prakticky nikto nechodi :D :D :D
Diktatuře... Přijde mi, že většina lidí, kteří žehrají nad tím, že distribuce neumožňují volbu init systému, si neuvědomuje, že jakákoliv možnost výběru má své náklady. Není to žádné lidské právo, naopak všechny softwarové projekty si pravidelně kladou otázky, jestli v tom či onom dát uživatelům na výběr i za cenu zvýšených nákladů na údržbu, které to má.
Převáží výhody volby initu v Debianu nad náklady, které to s sebou nese? Těžko říct. Debian se vždy vyžíval v tom podporovat, co se dá (jiné kernely, obskurní architektury), možná by to pro něj z tohoto pohledu dávalo smysl. Já jakožto správce několika balíčků ve Fedoře jsem rád, že my volbu initu nemáme. I kdyby byla, tak výchozí volbu bude používat stejně minimálně 90 % uživatelů, protože toto je pod jejich rozlišovací schopnosti, implementační detail. A popravdě raději budu ten vzácný volný čas, který můžu údržbě balíčků věnovat, trávit tím, že to budu vylepšovat pro těch 90+% než řešit problémy s něčím, co používají jednotky procent uživatelů.
Tu by som sa asi zamyslel nad tym, preco ludia zehraju. Sysvinit bol po dobre desatrocie (alebo aj dve) defakto monopolom v Linuxe. Ano, existovali rozne ine viac ci menej kompatibilne systemy, ale povacsinou mali nejaku vrstvu kompatibility so sysvinit, aby jeho init skripty slo do distra integrovat a maloktory balik riesil, ze ako si svoj init skript spusti trebars na Slacku, ktory sysvinit skripty nikdy neintegroval. A vsetci boli ticho. To sa ale bavime o dobe, ked ludi, co naozaj tusili, co to init system je a ze ho v pocitaci maju, bolo percentualne viac, nez dnes.
Preco to tak bolo? Pretoze ludia okolo sysvinit bohorovne netvrdili, ze niekoho workflow, ktory tak nejako fungoval je blbost a preto ho nebudu podporovat, nesnazili sa prevzat kontrolu nad systemom, neobmedzovali jeho flexibilitu, atd.
Systemd proste fungovat pre 100% ludi nebude, pretoze nepodporuje spravne napr. extremny embedded a extremny embedded len pre existenciu systemd nezmizne.
[ventYI]
"A vsetci boli ticho."
Prave ze nebyli. Nadavalo se taky a zhusta. Dost takovych diskuzi (aspon tady v Cesku) se da najit treba na abicku. Jednem vadilo, ze Sysvinit sluzby startoval seriove, druhym vadily obtize pri startovani sluzeb a reseni zavislosti (co spustit driv), dalsim nevonelo pro kazdou sluzbvu psat skript, atd... Podobne vitky (ale nevim jestli v takove mire) zaznivaly vsak i jinde.
Jedine co me prijde rozdilne (ale mozna se pletu) ze se tehdy objevilo nekolik alespon pokusu bud opravit sysvinit samotny (napr zavedeni "konkurency modu", ktery umoznoval startovat sluzby paralelne), nebo i nejake konkurencni projekty, ktere se vsak moc neujaly. Az se nakonec objevil systemd. Ten rozdil spociva v tom (aspon me se to tak jevi) ze se JEN nadava. Bud na projekt samotny, nebo rovnou na autora...
13. 11. 2019, 02:00 editováno autorem komentáře
v *buntu byl upstart, startoval paralelne, resil zavisloti, sel zjistit stav sluzby, system startoval z ssd za 6s do plochy najete... a nedelal s0ze sebe druhej operacni syatem, nepohlcoval/nenahrazoval vse okolo, nekoncil boot v emergency kdyz nenasel datovej pro system nepotrebnej disk, atd...
myslim ze malo z tech co popisujes chteli misto init operacni system na ktetem bude zaviset pulka desktopu...
Problemom Upstartu pri rieseni zavislosti bolo, ze na to isiel z opacneho konca.
Situaciu "X zavisi na Y" riesil ako "nastartuj X po nastartovani Y" a "zastav X ked sa zastavi Y". Co nemusi byt celkom pravda, pretoze mozem chcet nastartovat Y, ale nie X. Systemd na to presne takto ide, ked nastartujem Y, tak startuje len Y, a len ked nastartujem X, tak zabezpeci aby bezal aj Y.
Plus Upstart to neriesil na urovni servisov alebo unitov, ale na urovni eventov a akcii, co prinasalo tiez svoje problemy. Vela uspechov pri debugovani...
[k3dAR]
Ja to nerozporuji, jen tvrdim, ze driv se lide krom nadavani snazily take neco v tom smeru podnikat. Dneska se houfne nadava, a vetsinou to vypada, ze kazdy nadavajici ceka, ze to nekdo vyresi za nej. Proste support a developer na pisknuti gratis. To asi moc fungovat nebude.
Na druhou stranu si tedy neni na co stezovat, nekdo to vysresil systemd a nekdo jiny jej nechal prorus systemem. V podstate se da rict, ze dostali o co jsme si koledovali. Jenomze to asi neni to, co jsme mozna chteli.
Ono je taky otazkou, jestli neni na nove napady v tomto smeru uz moc pozde.
Vždycky k tomu vývojář SW musí mít nějakou motivaci a jen zřídkakdy je to altruismus, kdy se slituje nad uživateli nějakého minoritního systému a začne svůj SW na ten systém portovat a podporovat. U komerčního softwaru to může být čistě byznys. Linux má sice pár procent trhu, ale pořád to může být dostatečný příjem, aby to vývojáři stálo za podporu. U open-source projektu je pak často motivátorem aktivní komunita kolem Linuxu. Často dokáže vygenerovat víc lidí, kteří přispívají nebo aktivně hlásí chyby, než Windows. Často ta komunita ten port sama udělá.
U aplikací, které jsou primárně pro Linux, je pak motivací portovat na Windows uživatelská základna. Třeba přispěvatelé do LibreOffice jsou z drtivé většiny na Linuxu, ale u uživatelské základy a finančních příspěvků je to přesně naopak. Podobně to má GIMP. Vždy ale platí, že to nebude nikdo dělat "pro vaše krásné modré oči".
Lidé mají tendenci mezi diktaturou a možností volby hledat hranici. Ale ona tam vlastně žádná jasná hranice není. Volba jednoho člověka často znamená diktát člověku jinému.
Vezměme si to takhle: já porovnávám, zda výhody volby převáží nad náklady. Fajn, jenže jaké výhody, jaké náklady a pro koho? To, co jeden vnímá jako volbu a jiný jako diktát, je často jen úhel pohledu. Takže platí obě tyhle věty:
1. Výhody, které mi X přinese, převažují nad náklady, které mě to bude stát.
2. Výhody, které X přinese někomu jinému, jsou mnohem menší než náklady, které s tím bude ten někdo jiný mít.
Jedna a ta samá věc, jen pro jednoho je to volba, pro druhého diktát. A dáváte příklad: pro vás jako pro správce několika balíčků představuje "jen systemd a nic jiného" výhodu, aniž by vám to vlastně přinášelo jakékoliv náklady. Jenže ty náklady s tím možná bude mít někdo jiný, pro koho "jen systemd a nic jiného" nebude vůbec výhodné.
Co se systemd týká, tak dnes to ještě není katastrofa. Pořád je možné portovat projekty z Linuxu na BSD apod. Jenže se to každým rokem zhoršuje. Ne kvůli systemd jako takovému, ale kvůli jeho součástem, které řada projektů začíná používat. Multiplatformní vývoj se tak po letech zjednodušování začal naopak zase komplikovat. A to přesně podle vzorce "vývojář si díky přechodu na logind ušetřil nemalou část stresu a nákladů" + "člověk udržující daný balíček pro BSD se na to vybodl, protože tohle mu už vážně nestojí za to". Což je právě ten důvod, proč mnoha lidem leze systemd krkem - kvůli tomu, že toho dělá čím dál tím víc, prorůstá všude a vnucuje závislosti, se kterými si pak už člověk poradit nedokáže. A to se prosím nebavíme o systémových věcech, ale o userspace, o kterém jsme si před 15 lety mysleli, že touhle dobou už bude natolik jednotný, že bude jedno jaký OS kdo používá. Systemd "ekosystém" do toho hodil vidle.
Ano, žádná objektivní hranice neexistuje, proto jsem nabídl ten pohled někoho, kdo do linuxové distribuce přispívá. Ve výsledku jsou to tito lidi, kteří rozhodují, protože open-source projekty jsou v drtivé většině případů meritokracie ve stylu "kdo přispívá, rozhoduje".
Stejně tak, co vy vidíte jako komplikaci multiplatformního vývoje, to je pro hromadu vývojářů vysvobození, protože jestli jsme jako tvůrci distribuce něco pořád dokola poslouchali, tak to byly nářky vývojářů aplikací, že Linux je hrozně nejednotná platforma. A systemd jim v tomto hodně pomohl, protože userspace dost sjednotil napříč distribucemi.
Většina open-source projektů podporu pro BSD nebo ne-systemd distribuce nezavrhuje, ale obecně platí, že pokud se má něco podporovat, musí se najít někdo, kdo to udělá a bude udržovat. A takovou motivaci mají většinou ti, kteří to sami používají. Problém je v tom, že počet uživatelů těchto alternativ je tak malý, že je i malý počet lidí ochotných to dělat. Vidím to na GNOME, patche pro podporu BSD byly vždycky vítané, ale v open source obecně platí "každý si škrábe své vlastní záda". Dobrovolník, který používá jen Linux a zajímavá ho jen Linux, toto dlouhodobě dělat nebude.
@Jiří Eischmann
Tak to mohli vyvojaři přejít na Windows a bylo by sjednoceno úplně ;-) Cele tyto debaty se roky toci proste kolem toho, ze systemd neni jednoduše nahraditelny - resp. uz se mu natolik prizpusobilo okolí ze to působí problemy. A to je to proč je to otazka opouštění podpory - kdyby byl lehce zamenitelny tak to distribuce nemusi resit a tyto debaty, proste by to byla komponenta - ted uz ne, ted uz je to bud spolu nebo proti nam a jedina moznost zmeny je maximajne vytvorit to samé - no mozna lip nebo hur, to uz je jedno - postupne se z toho stava cele jedno nove distro se svym zavislym ekosystemem, zatim jeste obsahujici nejaka stará distra ...
Pro vyvojare aplikaci asi fajn, ale moc bych se necertil ze to spouste lidi smrdi ...
13. 11. 2019, 19:02 editováno autorem komentáře
"Tak to mohli vyvojaři přejít na Windows a bylo by sjednoceno úplně ;-)"
To si spíš myslím, že se to jednou sjednotí tak, že Windows přejdou na linuxové jádro.
"kdyby byl lehce zamenitelny tak to distribuce nemusi resit a tyto debaty, proste by to byla komponenta - ted uz ne, ted uz je to bud spolu nebo proti nam a jedina moznost zmeny je maximajne vytvorit to samé"
Je zajímavé, že se stejným způsobem nenadává Linusovi, že si před třemi dekádami dovolil vytvořit kernel, který začali všichni používat, hromada softwaru jej vyloženě vyžaduje a všichni kašlou na Hurd a další alternativní jádra. Tady si jen někdo dovolil posunout ten sjednocení o úroveň výš. Někomu se to líbí, někomu ne, realita je taková, že pro většinu lidí, kteří vytváří software pro Linux a pracují na linuxových distribucích to dává smysl, proto se systemd tak rozšířil.
Mimochodem už před 10 lety vytvořil Adam Jackson tuto stránku: http://www.islinuxaboutchoice.com/
Myslím, že i k tomuto tématu to má ledacos říct.
@Jiří Eischmann
"To si spíš myslím, že se to jednou sjednotí tak, že Windows přejdou na linuxové jádro."
Můj původní výrok byl o podstatě nastíněného principu, tohle je pouze věštěním ... ale zábavné ... no kdoví
Prosím, když chcete něco srovnavat, nestačí pouze shoda v jednom ohledu, je potreba aby se to shodovalo i v jinych ohledech - Linus přece nikam svuj kernel hlasovanim neprotlacil s tim ze ostatni nebudou casem kompatibilni s hlavnim hracem RH ... to bylo prece tehdy velke tema. On prece nevzal komponentu v nejakem ekosystemu a nezmenil ji tak ze buď s nim nebo nazdar ...
Dává smysl ... nevím, se servery uz delsi dobu nedělám, na desktopu me systemd potrapil jenom jednou tak jsem tu sluzbu dal pres `service start` a kaslu ma to, ale zda se ze i pres retoriku "ostatni jsou odpůrci pokroku" se to stale nekomu nelibi. Ani, spousta z nich o tom vi kulove, ale to jistě taky z tech priznivcu ...
Jinak nevim, davat na roveň vyber kernelu a initu se mi nezdá šťastné. Resp. ok, pak si ale priznejme ze princip moznosti vyberu jde do kytek a jdeme cestou zavislosti a unifikace, jak jsem psal výše. Ja nehodnotim jestli je to dobre nebo spatne, ale proste je to tak ... pokud to tak vsichni chteji, good luck with that ...
14. 11. 2019, 13:32 editováno autorem komentáře
"Linus přece nikam svuj kernel hlasovanim neprotlacil s tim ze ostatni nebudou casem kompatibilni s hlavnim hracem RH"
Linus přišel s novým projektem a dostal na svoji stranu řadu vývojářů, kteří se tenkrát motali kolem GNU a Unixů. Pak se na tom začaly formovat distribuce, které už byly čiště o Linuxu, takže to bylo buď s námi (Linuxem) nebo nazdar. Zásadní rozdíl byl v tom, že tenkrát ještě nebyly žádné distribuce etablované, Lennart už musel přesvědčovat zavedené distribuce.
Jinak ty konspirační teorie o protlačování a ovládnutí linuxového ekosystému Red Hatem skrze systemd mě baví, když vím, jak to reálně bylo. Lennartovi tenkrát v RH dokonce nedovolili na systemd pracovat. Tak si vzal měsíc dovolenou, během kterého udělal základ. Pak přesvědčil komunitu Fedory, aby to zkusila, pak se toho živelně chytly další progresivní distribuce jako Arch a už to mělo momentum. Na radar product managementu v RH (tedy těch, kdo mají ultimátní slovo, jak budou naše produkty vypadat) se to dostalo až před dalším vydáním RHELu. V RH se o to vedly stejně živelné diskuse jako kdekoliv jinde. Že se to nakonec do RHELu dostalo, tomu asi dalo určitou kredibilitu, ale RH rozhodně nebyl tou hnací silou. Hnací silou byl vždycky Lennart a lidi kolem něj. On vytrvale komunikoval s lidmi z distribucí, jezdil na jejich konference atd. To samé ale dělali vývojáři Upstartu. Lennartův styl mohl někomu přijít jako víc než asertivní, ale takto velkou věc napříč celým ekosystémem asi jinak prosadit nejde.
"ale priznejme ze princip moznosti vyberu jde do kytek a jdeme cestou zavislosti a unifikace"
Ten trend tu je. Já nijak nezastírám, že není. Není to zdaleka případ jen systemd, na něm to je asi jen nejvíc vidět. Ale v linuxovém stacku je takových komponent, které jsou teoreticky zaměnitelné, ale prakticky nejsou, docela dost. Navíc systemd není o 100% unifikaci. Není to monolit. Ano, init a pár dalších služeb jako journal jsou vyžadované, ale většina komponent systemd jsou nahraditelné a ani nemají ambici nahradit zavedené komponenty (networkd vs NetworkManager).
@Jiří Eischmann
S konspiracemi na mě nechoďte, to na mě neplati. Ja nic takového nenapsal. To že se argumentovalo kompatibilitou s hlavnimi hraci, prispevateli, což byl i a hlavně RH je pravda a to kam to povede je zřejmé, ostatně uz v tom stavu jsme - buď a nebo nic
O procesech v RH vim kulové, ale to ze to dělal ve svém volnu ještě nic neznamená - skoro denně argumentujeme s kolegy, parkrat jsem proste udelal neco navíc protože to bylo potřeba a firma z toho těží nejak dodnes a nedelal jsem to protože bych byl čistá duše - lepší pro mě, pro firmu a třeba i body na víc. No a co, proč ne, jsme lidi a aniž bych chtěl tady pánovi cokoliv předhazovat, na svateho proroka Lennarta nevěřím ;-) proste byznys no .... to je v pořádku, jenom těžko čekat že centralizace vede jinam než k centralizaci. A že je systemd lehce nahraditelny? Proto se řeší toto téma v debianu? Aha ...
14. 11. 2019, 19:17 editováno autorem komentáře
@Jiří Eischmann
Mimochodem ten příklad s tím autem se mi nezdá příliš vhodný, protože co auto (distro:verze) je jiný motor (kernel) ...
V příkladu s autem by to bylo tak, jako by distro (výrobce:typ) měl v každé verzi novější motor (kernel) a všechny aplikace v autě byly schopné komunikovat pouze s jedním typem řídící jednotky (systemd) nehledě na (výrobce:typ) auta tedy distro ... a po změně řídící jednotky (systemd) by se muselo překopat kus auta a většina aplikací by ani nefungovala a každý kdo namítne že to není dobré je proti pokroku a mýlí se ... já myslím že tyto situace známe z trhu a byznysu velmi dobře ... přestože řekněme že ona řídící jednotka (systemd) je nejpokročilejší, nejnovější řekněme ...
Proto ten příklad s autem není nejvhodnější, většinou jsou řídící jednotky potřeba zaměnitelné jenom u výrobce mezi typy, ale pak by ten můj příklad seděl téměř dokonale ... takže pouze jako by si RH nechal systemd jenom pro RH a Centos a ostatním dal pouze možnost jestli si to implementují. Jenomže zde byl ten tlak na aplikace v autě které hrozí nekompatibilitou pokud ... a to všichni už známe ... nesoudím, jenom když už srovnání, tak přesné
14. 11. 2019, 13:52 editováno autorem komentáře
Sami uživatelé tak vlastně ukazují, že o alternativní init systém zájem nemají.
To je ale nesmyslný závěr. Silou se jim natlačí systemd, udělají se jim nemalé překážky k jiným init systémům a pak se vyhodnotí, že o to nemají zájem, protože to používá jen 1% (těch nejzdatnějších, co to umí změnit a vědí proč to potřebují udělat, nezahrnuje ty zdatné, co zvolili ač neradi systemd, protože se s tím hodlají prát).
Jsem jeden z 99% co pouziva systemd z donuceni. Uz od 1.hlasovani chci prejit na Deuvan, ale kdyz doslo na reinstall tak sem potreboval pocitac rychle zprovoznit a tak zase
zvitezil systemd, ktery Linux posouva bliz k Win. Dobry priklad je automount. S initem staci jedna radka v fstab a v systemd jsou potreba 2 soubory s x radky pro kazdej adresar. A tak je to se vsim. Jakakoliv jednoducha konfigurace initu se v systemd stava slozita se zapisem do nekolika souboru. Pokud uzivatel nic neladi tak systemd funguje krasne, ale pokud si ho chce uzivatel priohnout ke svym potrebam, tak je to velmi slozite.
Pristi reinstall uz snad provedu na Deuvan. (U Raspbianu systemd nechapu uz vubec).
chces rict ze Devuan nejde nainstalovat rychle?
btw: i se systemd pouzivam klasicnej zaznam v /etc/fstab, "pouze" pridavam volby:
nofail,x-systemd.device-timeout=1
aby systemd nestopnul start systemu do emergency rezimu jen proto ze nevidi datovej (= pro system nepotrebnej) disk a nenahodi ani SSH aby to slo poresit vzdalene...
Ano, nevím, co předřečník dělá (já si teda pod pojmem automount vždycky představoval připojení flashky aktuálnímu uživateli), záznamy ve fstabu vypadají furt stejně…
…až na to, že mount už není mount(2), ale něco, co spouští vygenerované mountovací unity a po změně fstabu se to musí reloadnout (!) a navíc nejde ručně mountnout jiné zařízení do adresáře co už ve fstabu je! (pozn. tohle se dělo na Debianu 9, v aktuální verzi jsem ještě neměl příležitost s tím zápasit, protože jsem nedávno změnil job z admina na vývojáře)
> Pro mne byla naopak vyhoda, ze neslo ovlivnovat obsah toho adresare, do ktereho mel byt pripojen jiny svazek.
Jenže on ovlivňovat jde - můžeš do něj cokoli zapisovat, jen do něj nelze připojit nic jiného. A ještě hůř: pokud jsem měl třeba ve fstabu "/dev/md0 /mnt/foo" a zadal jsem "mount /dev/md1 /mnt/foo", tak to bez jakékoli hlášky o chybě připojilo md0! Takže jsem pak spustil "rsync --delete ..." na špatné pole!
Vlastně si teď stoprocentně nejsem jistý, jestli se to stalo tak, jak jsem popsal, nebo takto:
## ve fstabu je /dev/md0 /mnt/foo # umount /mnt/foo ## upravím fstab na /dev/md1 /mnt/foo, ale nereloadnu systemd # mount /mnt/foo ## v /mnt/foo je opět připojeno /dev/md0 # rsync -a --delete něco někam
Každopádně i v tomto případě je to špatně. Pokud například změním unitu na disku, tak mi to alespoň řekne „soubor se změnil, musíte udělat daemon-reload“.
Zkusil jsem to zreprodukovat na aktuálním Debianu Unstable, a vypadá to, že to už opravili.
13. 11. 2019, 13:28 editováno autorem komentáře
Blbe jsem to specifikoval. Automount nfs svazku pri startupu. Teoreticky by melo fungovat do fstabu pridat parametr _netdev, ale me to nefungovalo. Nakonec jsem musel nadefinovat pro kazdej sitovej adresar systemd mount unit. To co v fstabu trvalo zadefinovat asi tak 5 minut v systemd trvalo hodinu (nekolik preklepu, ktery jsou kazdej v jinym souboru). Zrovna automount flashek funguje defaultne v systemd lip nez s initem.
Nějakého klasického initu (OpenRC? Už nevím) jsem ve svém Gentoo držel docela dlouho. Každou chvíli mi při nějaké aktualizaci v GNOME a později v Xfce přestalo fungovat připojování externích disků, či optických mechanik, během bootu obligátní zelené [OK] zmizelo a já řešil, co se zase rozbilo. Jednou jsem to nevydržel při kompilaci GNOME, které na tom Systemd docela dost lpělo a zkusil jsem změnu. Vše fungovalo na první dobrou a od té doby si nevzpomínám na jediný problém.
Chybí mi ta jednoduchost a transparentnost init scriptů, taky Systemd spíš nemusím, ale funguje to, takže jsem si nějak zvykl na příkaz systemctl a dál to neřeším. Nectím potřebu provozovat nějaké sebemrskačství u klasického initu, který už požívá tak málo lidí, že to není pořádně odladěné. Mi to 1% připadá jako jasnější výsledek, než nějaké hlasování.
Pro diskuzi o (ne)podpoře jiných init systémů mi přijde významnější spíš to, že v distribuci, kde je systemd protežovaný, automaticky zvolený při instalaci a existuje fork bez systemd, 11,5 % uživatelů nepoužívá systemd: https://qa.debian.org/popcon.php?package=systemd
Jestli necháváte def na serveru, tak nevidím důvod dál něco rozvádět. Jak píšete, že co nascriptujete na initu tak je, to ovšem platí i pro systemd, kdy co nastavíte máte. A hlavně systemd je stabilní tehdy, když ho nastavíte. (nemyslím tu první nasazení, kdy bylo žalostné nasazení) Jestliže umíte nastavit init, umíte i systemd.. .Jen lenost to nechá tak jak to tam dá.
Systemd je rychlejší celý nastavit, protože jedete podle jedné šablony, takže urychlíte posun nastavení a hlavně nemusíte případně se hrabat po nějakém kok**** ve scriptech.