Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Revising path to kernel modules



Hi folks.

I propose that we change the way we name our kernels and modules.
This is based off previous discussions on various mailing lists
(including this one) over the last six or so months.

* For a given kernel "/netbsd-foo";
    - The kernel is /netbsd-foo/kernel
    - The modules are in /netbsd-foo/modules/
    - The set is netbsd-foo.tgz and contains the above

* The "path to kernel" that users boot would just be "/netbsd-foo".

* This scheme should allow for kernels in subdirtories
  (e.g, "/kernel/foo/bar/{kernel,modules}")

* The boot loader passes in the booted kernel path via an MD method.
  Most platforms should already have a method to do this; for those
  that don't we'll need to design and implement improvements to the
  mechanism that the first (or possibly second) stage boot loaders
  use to communicate this to the booted kernel.


Benefits:

* End users can extract one set.tgz to get a new kernel.

* Kernels and the modules they need to function are kept together,
  and easily manipulated.  For example (where these are directory paths):
    cd /
    mv netbsd netbsd.20090910
    tar zpxf netbsd-GENERIC.tgz
    mv netbsd-GENERIC netbsd
    reboot

    [boot prompt] boot /netbsd

* Avoiding N more threads initiated by users who update their kernel
  after a kernel version bump and have an unbootable system because
  they forgot to update the modules.
  Or in my case, I didn't start a thread -- I just punted on -current
  in frustration.


Costs:

* More disk space used by default when using multiple kernels of
  the same architecture and kernel version, for each extra copy
  of the arguably "shareable" modules in this case.
  For the general end-user case, even those following -current, I
  don't think this is a big issue.

* Kernel developers who like to share pre-built GENERIC modules
  on their heavily modified debug kernels won't get this by default.
  Nothing prevents replacing /my-debug-netbsd/modules/ with a symlink
  to /netbsd.GENERIC/modules/, thus retaining that benefit :-)


Changes required:

* Bootloader changes for all the platforms.

* Kernel build support (in the sys/arch directories) to do this.



(I'm sure I've missed some details)


thoughts?

Luke.

Attachment: pgpKpsCajtrJf.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index