April 21, 2019

New HOWTO: The Linux Kernel HOWTO - page 4

Table of Contents

  • April 2, 2001
  3.  Important questions and their answers

  3.1.  What does the kernel do, anyway?

  The Unix kernel acts as a mediator for your programs and your
  hardware.  First, it does (or arranges for) the memory management for
  all of the running programs (processes), and makes sure that they all
  get a fair (or unfair, if you please) share of the processor's cycles.
  In addition, it provides a nice, fairly portable interface for
  programs to talk to your hardware.

  There is certainly more to the kernel's operation than this, but these
  basic functions are the most important to know.

  3.2.  Why would I want to upgrade my kernel?

  Newer kernels generally offer the ability to talk to more types of
  hardware (that is, they have more device drivers), they can have
  better process management, they can run faster than the older
  versions, they could be more stable than the older versions, and they
  fix silly bugs in the older versions. Most people upgrade kernels
  because they want the device drivers and the bug fixes.

  3.3.  What kind of hardware do the newer kernels support?

  See the Hardware-HOWTO. Alternatively, you can look at the `config.in'
  file in the linux source, or just find out when you try `make config'.
  This shows you all hardware supported by the standard kernel
  distribution, but not everything that linux supports; many common
  device drivers (such as the PCMCIA drivers and some tape drivers) are
  loadable modules maintained and distributed separately.

  3.4.  What version of gcc and libc do I need?

  Linus recommends a version of gcc in the README file included with the
  linux source. If you don't have this version, the documentation in the
  recommended version of gcc should tell you if you need to upgrade your
  libc.  This is not a difficult procedure, but it is important to
  follow the instructions.

  3.5.  What's a loadable module?

  These are pieces of kernel code which are not linked (included)
  directly in the kernel. One compiles them separately, and can insert
  and remove them into the running kernel at almost any time. Due to its
  flexibility, this is now the preferred way to code certain kernel
  features. Many popular device drivers, such as the PCMCIA drivers and
  the QIC-80/40 tape driver, are loadable modules.

  3.6.  How much disk space do I need?

  It depends on your particular system configuration. First, the
  compressed linux source is nearly 14 megabytes large at version 2.2.9.
  Many sites keep this even after unpacking.  Uncompressed and built
  with a moderate configuration, it takes up another 67 MB.

  3.7.  How long does it take?

  With newer machines, the compilation takes dramatically less time than
  older ones; an AMD K6-2/300 with a fast disk can do a 2.2.x kernel in
  about four minutes. As for old Pentiums, 486s, and 386s, if you plan
  to compile one, be prepared to wait, possibly hours, days..

  If this troubles you, and you happen to have a faster machine around
  to compile on, you can build on the fast machines (assuming you give
  it the right parameters, that your ulilities are up-to-date, and so
  on), and then transfer the kernel image to the slower machine.

Most Popular LinuxPlanet Stories