„Vy jste tvrdil, že by něco muselo být duplicitní. Je na vás, abyste řekl, co.“
Konfigurace sysvinit nebo systemd. Dá se zkoušet udělat nějaká berlička v initu,
ale přijde mi jednodušší takové věci vůbec nedělat. Ale dobře.
„FreeBSD bootuje ze sítě bez potřeby initrd.“
initrd je jen obyčejný archiv s userspace. Nepředpokládám, že by mělo nějaký smysl bootovat kernel bez userspace. Jasně, dají se používat věci jako NFS, HTTPFS, ale v současné době je mnohem jednodušší prsknout tam ten jeden archiv.
Opravuju tedy své tvrzení, že by to bylo přes síťový filesystém komplikovanější než s archivem.
„Takže jsme pořád u toho samého: co bez initrd nejde?“
Až na nešikovnou formulaci se sítí jsem od začátku tvrdil, že se bez initrd obejít dá. Nevím tedy, proč bych měl dokazovat opak.
„Nebo aspoň jde výrazně komplikovaněji? V čem je teda ta opodstatněnost initrd?“
Zde se musím opakovat. Úplně původní význam je odlehčení generického jádra, aby nemuselo obsahovat všechny moduly potřebné k bootování z různých zařízení. Šlo tedy hlavně o úsporu paměti.
Dále initrd umožňuje před mountováním rootfs provést různé akce, které neimplementuje kernel. Připojení šifrovaného rootfs při zadání passphrase budiž konkrétním příkladem. Linuxové LVM rovněž není soběstačné (důvody neznám). Síťová konfigurace a další věci.
Umožňuje rovněž elegantně předat po síti userspace pro instalaci nebo rescue systém třeba po FTP nebo HTTP.
Obvykle se linux bez initrd používá jen s kernelem kompilovaným na míru dané HW sestavě, což je nepohodlné jak při instalci OS, tak při updatech, tak při výměně hardware a v enterprise sféře ještě chybí testování výsledné binárky.
„v tomhle případě musím použít úplně jiný způsob bootu, než ten tzv. "univerzální"“
Na embedded platformách tak jako tak ten klasický univerzální nebývá k dispozici a celý boot bývá nestandardní už jen tím, že se často používají zcela odlišné filesystémy na zcela odlišných úložištích.
Navíc tvá výtka byla směřována optimalizaci paměti, což je další důvod, proč se stejně musí specifický build kernelu udělat. Možnost použít initrd je stále, jen to není zvykem.
„nějaká věc se vyřeší berličkou a potom se musí řešit situace, kdy je berlička podražena...“
V podstatě se na to díváš správně. Ale ptal ses na důvody a účel. Já je celkem znám, proto se snažím ti odpovídat.
Další věc je, že mám pocit, že hodně vycházíš z dogmat FreeBSD. A FreeBSD není Linux a ty rozdíly jsou v mnoha případech zásadní. Už i samotný počet odlišných distribucí dělá svoje. Já jsem zase hodně navyklý na některé představy a dogmata kolem Linuxu a rád se dozvím něco, co současný linuxový svět přesahuje, ale musí to mít hlavu a patu.
„Dobře. Vyjádření "tohle bude ten třetí případ" a to těch dojmech a ne-realitě, nebudu brát jako invektivy.“
Díky a potvrzuju, že tak ani nebyly myšleny.