5 ms·
It is broken by design because it contradicts with some general principles, such as "single responsibility", "share nothing", which leads to "divide et impera"
by dschiptsov 13y ago
It is broken by design because it contradicts with some general principles, such as "single responsibility", "share nothing", which leads to "divide et impera" and other "nice things".
Unix philosophy, according to which a system is a set of lose-coupled tools, each of which, at least in theory, is supposed to do just one thing, but do it well, and to follow certain conventions, such as using text streams as input and output, which allows them to be hooked together into pipelines, is a really great one. To sacrifice it just for very contradictional arguments of people, who, perhaps, not fully understand it or its consequences for a complex system's design, is, at least, shortsighted decision. (look what a wonder is Plan9, at least from the system design perspective and "less is more" principle).
As for so-called "problems", BSD people would tell you that most of these "problems" are mere creations of distracted minds.)
Introducing various daemons and ctls merely adds unnecessary complexity compared with the uniformity of "just shell scripts" and a very simple set of conventions. At least everything works fine with FreeBSD and its huge ports collection.
- JulianMorrison 13y agoWe're dealing with irreducible complexity here. Unix philosophy keeps the complexity out of the components - fair enough. But that merely means that the complexity reappears in the glue code (sysvinit and friends). And glue code is harder to secure, being scattered, disparate, and executing in complicated VMs such as the shell-plus-kernel, and therefore hard to reason about.
- dschiptsov 13y agoFreeBSD, OpenBSD, Plan9, AIX (Solaris decision to use Java-based tool was plainly idiotic) for some reasons would think otherwise.
- gtirloni 13y agoWhich Java-based tools is Solaris using in this area? I don't think SMF is Java-based. SMF is pleasant to use and Linux should have copied it entirely, including syntax, but they didn't (NIH syndrome?). http://en.wikipedia.org/wiki/Service_Management_Facility http://en.wikipedia.org/wiki/Service_Management_Facility systemd is really a pain to use. I'm still amazed at how quick everybody was at adopting it. Perhaps people were really desperate to ditch the sysvinit stuff.
- SEJeff 13y agoSystemd is closed to a blatant launchd (OS X) clone
- deleted 13y ago[deleted]
- gtirloni 13y agoI'm no expert in init systems genealogy but a quick search shows launchd was released in March '05 while Solaris 10 with SMF was released in January '05. Surely they were not working in secret over such a basic OS infrastructure component, so it's possible both exchanged ideas. But more specifically, how do you think they are equal that SMF could be called a clone? I've had a Macbook for a few years but never bothered with launchd much. Care to elaborate?
- Sammi 13y agoBut which one is it that the broad industry finds more useful?
- unethical_ban 13y agoI must admit, breaking the Unix philosophy for ZFS to unify FS/volume/RAID management is a dream come true.
- Fasebook 13y agoWhat are these "general principles" of "unix philosophy"? Where can I read about them? edit: thanks, those both look like great books so far.
- dredmorbius 13y agoKernighan & Pike, The UNIX Programming Environment, 1984 http://www.powells.com/biblio/62-9780139376818-0 http://www.powells.com/biblio/62-9780139376818-0
- marcosdumay 13y agoMaybe "The Art of Unix Programming": http://www.faqs.org/docs/artu/ http://www.faqs.org/docs/artu/
- pmarin 13y agohttp://harmful.cat-v.org/cat-v/unix_prog_design.pdf http://harmful.cat-v.org/cat-v/unix_prog_design.pdf
- julie1 13y agoEverything is a file. Ted Nelson presentation on how it is quite broken by design http://www.youtube.com/watch?v=Qfai5reVrck http://www.youtube.com/watch?v=Qfai5reVrck
- Fasebook 13y agoThanks
- dredmorbius 13y agoNB: "loosely-coupled", not "lose-coupled". Which might be something entirely other than you'd intended.
- dschiptsov 13y agoYes, "loosely", of course. Thanks.)
- naner 13y agoThe "Unix philosophy" of one tool, one job doesn't really apply here. Linux isn't just a server OS anymore, which is where the Unix philosophy makes the most sense. The BSDs do this quite well since their command line utilities are developed together as a system that fits together. On Linux we have a mismash of tools developed with different philosophies and conventions. They fortunately work well enough for server/programming tasks, but this design approach does not hold up well for complicated desktop systems. Not that systemd is the answer. I think we need an init system that ignores severs completely and is designed with Laptops, mobile devices, and graphical management tools in mind.