<p><br>
On Jan 5, 2012 7:10 PM, &quot;Alan McKinnon&quot; &lt;<a href="mailto:alan.mckinnon@gmail.com">alan.mckinnon@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Thu, 05 Jan 2012 09:17:23 +0100<br>
&gt; pk &lt;<a href="mailto:peterk2@coolmail.se">peterk2@coolmail.se</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On 2012-01-05 08:43, Alan McKinnon wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; I fiddle around a lot with the hardware on those and udev deals with<br>
&gt; &gt; &gt; that nicely considering udev is designed to deal with that nicely.<br>
&gt; &gt;<br>
&gt; &gt; I confess to being quite ignorant when it comes to what magic udev<br>
&gt; &gt; does behind the scenes but what makes it different to any other device<br>
&gt; &gt; manager (well, I don&#39;t know any other than mdev but...)? I.e. what<br>
&gt; &gt; technical problem(s) does udev solve that no other device manager<br>
&gt; &gt; can&#39;t? What is the technical need for something else than a device<br>
&gt; &gt; file under /dev that can be used to communicate with the kernel?<br>
&gt; &gt;<br>
&gt; &gt; What I mean is: If you say &quot;... considering udev is designed to deal<br>
&gt; &gt; with that...&quot; you seem to indicate that you know what it does and why<br>
&gt; &gt; it does what it does... and henceforth the technical reason why the<br>
&gt; &gt; rearrangements of the file system hierarchy is necessary...<br>
&gt;<br>
&gt; I don&#39;t claim any special deep knowledge of these things, but a<br>
&gt; superficial glance over the packages tells you a lot. udev is designed<br>
&gt; to deal with any realistic device needs on modern systems - it&#39;s the<br>
&gt; kitchen sink.<br>
&gt;<br>
&gt; mdev has a much narrower scope where things are considerably more<br>
&gt; static.<br>
&gt;<br>
&gt; As for re-arranging the fs layout, I think it was Canek in the last<br>
&gt; thread that gave an excellent example of why this is needed. When<br>
&gt; devices hotplug, or need to become active early on in the boot process,<br>
&gt; they need to run code that can be located almost anywhere. It wouldn&#39;t<br>
&gt; be fun trying to get a wireless keyboard going when it&#39;s start-up<br>
&gt; script needs to get into /usr/lib/firmware and /usr isn&#39;t mounted yet.<br>
&gt;<br>
&gt; The example was something along the lines of a machine that has no<br>
&gt; physical keyboard or a port for one, it uses a bluetooth keyboard. But<br>
&gt; the main file systems are encrypted using a key that&#39;s on a smartcard.<br>
&gt; To decrypt and mount the filesystems, the drivers for keyboard,<br>
&gt; bluetooth and smart card, plus all firmware, needs to be loaded first.<br>
&gt; This is actually not all that far-fetched, and it&#39;s a classic bootstrap<br>
&gt; problem first solved in the 60s. It much more complex now than it was<br>
&gt; then but the principles behind the solution are much the same.<br>
&gt;<br>
&gt; I do agree with collapsing the executable code in /usr into /, or<br>
&gt; having /usr on the root partition. A separate /usr/{,s}bin is pretty<br>
&gt; pointless and was never done for safety or maintenance reasons. It was<br>
&gt; done way way way back when disks were small and a convenient hack was<br>
&gt; to keep the OS on the boot device and user apps somewhere else on<br>
&gt; bigger but slower storage (which often was remote).<br>
&gt;<br>
&gt; If /usr is local, what really is the point of having it separate<br>
&gt; from /? Have you ever found a Linux system in any condition that could<br>
&gt; not start just because the stuff in /usr was available? I haven&#39;t.<br>
&gt;<br>
&gt; Even the split between bin and sbin is arbitrary. It&#39;s only there so<br>
&gt; that users can take sbin out of PATH and not have the screen cluttered<br>
&gt; with endless junk when they tab-tab. It makes much more sense to me to<br>
&gt; just have one single bin and lib location and shove everything into it.<br>
&gt;<br>
&gt; What I do object to is any possible idea that an initramfs will be<br>
&gt; *required* regardless. I know this isn&#39;t on the table just yet, but<br>
&gt; it&#39;s a very small amount of creep before it is.<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt; Becoming rather lazy in my old age is getting to be a factor too<br>
&gt; &gt;<br>
&gt; &gt; Ho hum... so &quot;you lazy old fart&quot; is true then? ;-)<br>
&gt;<br>
&gt; Dunno about lazy old fart, but splog (snarky pedantic lazy old git)<br>
&gt; definitely is. I think we decided that Neil is the lazy old fart :-)<br>
&gt;</p>
<p>After some soul-searching (yes, I still have one despite learning from BOFH), I think I&#39;ll agree with Alan... with some caveats.</p>
<p>I have less resistance to requiring /usr to be part of /. The way I see it, I can still do some bind mount black magic to provide a minimal /usr for booting yet isolating the &#39;real&#39; /usr to prevent it messing up the rootfs. </p>

<p>As to udev, I still think it&#39;s an overkill for a static server environment. With virtualization, I can *guarantee* that the (virtual) hardware environment will never change. For these environments, I much prefer mdev to udev. </p>

<p>Finally, regarding initramfs, I wholly agree. Don&#39;t force me to use one. A server is already a complex system, and adding complexity won&#39;t end up pretty. </p>
<p>Rgds, <br>
</p>