[yocto] RFC: poky-tiny: init procedure

Darren Hart dvhart at linux.intel.com
Fri Jun 15 16:15:08 PDT 2012



On 06/15/2012 02:26 PM, Tomas Frydrych wrote:
> 
> On 15/06/12 20:49, Tim Bird wrote:
>> On 06/14/2012 11:31 PM, Tomas Frydrych wrote:
>> IMHO, the whole notion of starting with a big system and
>> subtracting what you don't want in order to create a minimal
>> system is the wrong approach.
> 
> At no point in this discussion was such an approach advocated by anyone.

Well, that is the logical alternative. If we suggest using sysvinit now
because it's the standard, then soon we'll say that for systemd, which
means I'll have to include cgroups in my kernel, etc etc. I dont think
Tim's comment was wrong there. Of course "big system" is subjective, to
me that's anything over 4 MB of storage and 8MB of RAM, for Tim, that's
1 MB of RAM. And for the purposes of poky-tiny, anything that adds
functionality, complexity, storage or memory size, or runtime needs to
be considered for the chopping block.

> 
> 
>> I realize you said that with a smiley, so I'm not trying to be
>> dismissive or harsh, but I do think that if you want the features
>> of some other init system, then the right answer is to use them,
>> and not complain about this one.
> 
> I am not complaining, I have asked what the specific, quantifiable,
> objective of creating the home grown init 'procedure' is, IMHO that is
> an entirely reasonable question to an RFC, the answer to which should
> inform the design.

Agreed, a very valid question and one I am still working through the
numbers for. We save ~3k in busybox size by using SETSID and CTTYHACK
rather than the busybox INIT. This is less than 1% of the busybox
binary, not a huge savings. I'll look at the rest, but it's more
difficult to quantify as it is dependent on the number of sysvinit
scripts used - and of course the more that are used, the more likely the
image should be using sysvinit anyway. So... I'll look into this some more.

> 
> If we are talking about targeting 1MB of RAM then it is unavoidable that
> the system has to be hand crafted to a fair degree. It is not what I'd
> consider the typical Poky use case, but within those constrains, I'd
> probably be looking at eliminating shell scripts altogether in my
> customization of whatever Poky offers.

poky-tiny is looking to define a new typical use-case that differs from
the poky use case (poky and poky-tiny the DISTROs of course). Perhaps
you just meant Poky the project, in which case, I think the same point
applies, we're trying to extend the typical use cases to include very
small systems.

Your point on eliminating shell scripts is a good one though. My
approach here has been to make it as minimal as is practical while still
having a somewhat usable system "out of the box". To me this means a
shell is available, networking is supported, etc etc (see the poky
distro definition for more specifics).

Your main point is of course still valid: What do I get by dropping init
and is it worth being different for that? I'm still looking.

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel





More information about the yocto mailing list