From 02cc2f18e27280c78c75aed60d8e9037bb64dac9 Mon Sep 17 00:00:00 2001 From: Alan Hicks Date: Fri, 23 Apr 2010 20:43:38 -0400 Subject: Approx. half complete. May add udev to this chapter. --- chapter_18.xml | 113 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 98 insertions(+), 15 deletions(-) (limited to 'chapter_18.xml') diff --git a/chapter_18.xml b/chapter_18.xml index b07b47e..8f7b8a8 100644 --- a/chapter_18.xml +++ b/chapter_18.xml @@ -9,11 +9,19 @@ What Does the Kernel Do? -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do -eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad -minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip -ex ea commodo consequat. Duis aute irure dolor in reprehenderit in -voluptate velit esse cillum dolore eu fugiat nulla pariatur. +You've probably heard people talking about compiling the kernel or +building a kernel, but what exactly is the kernel and what does it do? +The kernel is the center of your computer. It is the foundation for the +entire operating system. The kernel acts as a bridge between the +hardware and the applications. This means that the kernel is (usually) +the sole piece of software responsible for ordering around the hardware +components of your computer. It is the kernel that instructs the hard +drive to search for a certain data stream. It is the kernel that +instructs your network card to transmit rapid changes in voltage. The +kernel also listens to hardware as well. When the network card detects +a remote computer sending information, it forwards that information to +the kernel. This makes the kernel both the single most important piece +of software on your computer and the most complex. @@ -22,24 +30,99 @@ voluptate velit esse cillum dolore eu fugiat nulla pariatur. Working with Modules -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do -eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad -minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip -ex ea commodo consequat. Duis aute irure dolor in reprehenderit in -voluptate velit esse cillum dolore eu fugiat nulla pariatur. +The complexity of a modern linux kernel is staggering. The source code +for the kernel weighs in at nearly 400MB uncompressed. There are +thousands of developers, hundreds of options, and if everything were +built together, the kernel would soon pass 100MB in size itself. In +order to keep the size of the kernel down (as well as the amount of RAM +needed for the kernel), most of the kernel options are built as +modules. You can think of these modules as device drivers which can be +inserted or removed from a running kernel at will. In truth, many of +them aren't device drivers at all, but contain support for things such +as network protocols, security measures, and even filesystems. In +short, nearly any piece of the linux kernel can be built as a loadable +module. + +It's important to realize that Slackware will automatically handle +loading most modules for you. When your system boots, +udevd(8) is started and begins to probe your +system's hardware. For each device it finds, it loads the proper module +and created a device node in /dev. This usually +means that you will not need to load any modules in order to use your +computer, but occasionally this is necessary. + + + +So what modules are currently loaded on your computer and how do we +load and unload them? Fortunately we have a full suite of tools for +handling this. As you might have guessed, the tool for listing modules +is lsmod(8). + + +darkstar:~# lsmod +Module Size Used by +nls_utf8 1952 1 +cifs 240600 2 +i915 168584 2 +drm 168128 3 i915 +i2c_algo_bit 6468 1 i915 +tun 12740 1 +... many more lines ommitted ... + + + +In addition to showing you what modules are loaded, it displays the +size of each module and tells you what other modules are using it. + + + +There are two applications for loading modules: +insmod(8) and +modprobe(8). Both will load modules and +report any errors (such as loading a module for a device that isn't +present in your system), but modprobe is +preferred because it can load any module dependencies. Using either is +straight-forward. + + +darkstar:~# insmod ext3 +darkstar:~# modprobe ext4 +darkstar:~# lsmod | grep ext +ext4 239928 1 +jbd2 59088 1 ext4 +crc16 1984 1 ext4 +ext3 139408 0 +jbd 48520 1 ext3 +mbcache 8068 2 ext4,ext3 + + + +Removing modules can be a tricky process, and once again we have two +programs for removing them: rmmod(8) and +modprobe. In order to remove a module with +modprobe, you'll need to use the -r argument. + + +darkstar:~# rmmod ext3 +darkstar:~# modprobe -r ext4 +darkstar:~# lsmod | grep ext + +
Compiling A Kernel and Why to do So -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do -eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad -minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip -ex ea commodo consequat. Duis aute irure dolor in reprehenderit in -voluptate velit esse cillum dolore eu fugiat nulla pariatur. +Most Slackware users will never need to compile a kernel. The huge and +generic kernels contain virtually all the support you will need. +However, some users may need to compile a kernel. If your computer +contains bleeding edge hardware, a newer kernel may offer improved +support. Sometimes a kernel patch my be available that corrects a +problem you are experiencing. In these cases a kernel compile is +probably warranted.
-- cgit v1.2.3