Todo

Dennis W. Tokarski [email protected]
Wed, 11 Oct 2000 11:23:02 -0400


Adi Linden wrote:
> 
> Hi,
> 
> The kernel is certainly a thorn in my side so to speak. The idea of an
> embedded kernel is to have it as small as possible. Yet, every platform
> has different requirements and demands different kernel modules, etc.

That's certainly a problem, and one which grows out of the kernel's
monolithic architecture. The best you can do is make everything that
might be optional a module, as you suggest below.

> 
> One option would be to allow one to build a custom kernel by giving an
> option in pwlconfig that extracts kernel sources, and drops into a kernel
> configuration screen that allows for building a custom kernel. Now this is
> the Cadillac that might not be feasable.

Nor even desirable, necessarily. 

> 
> Another option would be to reduce the number of special purpose kernels
> and insead build a highly modularized kernel with virtually all options.
> Very similar to the stock RedHat kernel.

An embedded systems designer would have the same advantages that Red Hat
has, too: by putting a selection of modules, not all of which are always
needed, on a compressed initrd the final kernel RAM footprint might be
a bit smaller.

>                                          It would be up to the individual
> user to deselect unneeded modules to conserve space. I tend to lean
> towards this solution. Realizing that there are a number of people using
> PWL already I don't want to make drastic changes to the kernel between
> releases. So depending on my time availability I plan on either adding a
> full blown all options 2.214 kernel or skip any changes to 2.2.14 and go
> right to the latest 2.4 beta kernel.

Eeks! Anyone writing drivers, especially file system modules, could have
some heartburn over this. The kernel guys make radical changes to the
VFS
layer more often than some people change socks, and of course don't 
document them. Going from 2.2 to 2.4 is reportedly not so traumatic as
2.0 to 2.2, but still...defer the pain if you can.

> 
> Comments would be quite welcome here :)
> 
> Another feature still in the works is a dependency checking routine in
> pwlconfig. I had one figured out and added it to one of the pwl_target
> (rd_functions) but never completed it. I used to have depended libs as
> part of the packages but that changed when rpm came in. So now we need a
> routine that checks the installed system for missing or unneeded libs...
> 
-
That reminds me of a feature that one of commercial embedded distros
has.
Embeddix, I think. They have a utility which can look at an executable
--or maybe a set of executables--which you propose to put in your target
system, then construct a custom library containing only the stuff you
really need. I think that's how it works. For good reason they call it
'lipo'. I've been trying to figure out how they do that. 'ldd' can tell
you which libs an executable needs, but not which routines in the libs
it links to.

You guys have a nice piece of work here in pwl. I wish the time demands
of
my current project had let me lend a hand. Good show!

  --Dennis
---------------------------------------------------
See the list archives at http://adis.on.ca/archives/
See the PWL homepage at  http://peeweelinux.com
---------------------------------------------------