LINK DOWNLOAD MIỄN PHÍ TÀI LIỆU "Tài liệu Linux Kernel in a Nutshell docx": http://123doc.vn/document/1044915-tai-lieu-linux-kernel-in-a-nutshell-docx.htm
KERNEL
IN A NUTSHELL
Greg Kroah-Hartman
Beijing • Cambridge • Farnham • Köln • Paris • Sebastopol • Taipei • Tokyo
www.it-ebooks.info
Linux Kernel in a Nutshell
by Greg Kroah-Hartman
Copyright © 2007 O’Reilly Media, Inc. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online
editions are also available for most titles (safari.oreilly.com). For more information, contact
our corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com.
Editor:
Andy Oram
Production Editor:
Adam Witwer
Copyeditor:
Mary Anne Weeks Mayo
Proofreader:
Adam Witwer
Indexer:
Ellen Troutman
Cover Designer:
Karen Montgomery
Interior Designer:
David Futato
Illustrators:
Robert Romano and
Jessamyn Read
Printing History:
December 2006: First Edition.
Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered
trademarks of O’Reilly Media, Inc. The In a Nutshell series designations, Linux Kernel in a
Nutshell, the image of cup coral, and related trade dress are trademarks of O’Reilly Media, Inc.
This work is licensed under the Creative Commons Attribution-ShareAlike 2.5 License. To
view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/ or send a letter
to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in this book, and O’Reilly Media,
Inc. was aware of a trademark claim, the designations have been printed in caps or initial
caps.
While every precaution has been taken in the preparation of this book, the publisher and
author assume no responsibility for errors or omissions, or for damages resulting from the use
of the information contained herein.
This book uses RepKover
™
, a durable and flexible lay-flat binding.
ISBN-10: 0-596-10079-5
ISBN-13: 978-0-596-10079-7
[M]
www.it-ebooks.info
v
Chapter 1
Table of Contents
Preface
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
Part I. Building the Kernel
1. Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Using This Book 4
2. Requirements for Building and Using the Kernel
. . . . . . . . . . . . . . . .
5
Tools to Build the Kernel 5
Tools to Use the Kernel 6
3. Retrieving the Kernel Source
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
What Tree to Use 12
Where to Find the Kernel Source 13
What to Do with the Source 15
4. Configuring and Building
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Creating a Configuration 17
Modifying the Configuration 18
Building the Kernel 23
Advanced Building Options 26
5. Installing and Booting from a Kernel
. . . . . . . . . . . . . . . . . . . . . . . . . .
29
Using a Distribution’s Installation Scripts 30
Installing by Hand 31
Modifying the Bootloader for the New Kernel 32
www.it-ebooks.info
vi
|
Table of Contents
6. Upgrading a Kernel
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Download the New Source 36
Applying the Patch 38
Reconfigure the Kernel 40
Can’t This Be Automated? 42
Part II. Major Customizations
7. Customizing a Kernel
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
Using a Distribution Kernel 45
Determining the Correct Module from Scratch 52
8. Kernel Configuration Recipes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
Disks 63
Devices 66
CPU 71
Networking 75
Filesystems 80
Security 82
Kernel Debugging 83
Part III. Kernel Reference
9. Kernel Boot Command-Line Parameter Reference
. . . . . . . . . . . . . .
87
Module-Specific Options 87
Console Options 88
Interrupt Options 91
Memory Options 92
Suspend Options 94
CPU Options 95
Scheduler Options 97
Ramdisk Options 98
Root Disk Options 99
Init Options 101
kexec Options 101
RCU Options 102
ACPI Options 103
SCSI Options 106
PCI Options 107
www.it-ebooks.info
Table of Contents | vii
Plug and Play BIOS Options 109
SELinux Options 110
Network Options 111
Network File System Options 111
Hardware-Specific Options 113
Timer-Specific Options 114
Miscellaneous Options 115
10. Kernel Build Command-Line Reference
. . . . . . . . . . . . . . . . . . . . . . .
117
Informational Targets 117
Cleaning Targets 118
Configuration Targets 118
Build Targets 119
Packaging Targets 120
Documentation Targets 121
Architecture-Specific Targets 121
Analysis Targets 121
11. Kernel Configuration Option Reference
. . . . . . . . . . . . . . . . . . . . . . .
122
Part IV. Additional Information
A. Helpful Utilities
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
161
Managing Your Patches with quilt 163
git 165
ketchup 166
B. Bibliography
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
168
Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
171
www.it-ebooks.info
www.it-ebooks.info
ix
Chapter 2
Preface
When the topic of this book was first presented to me, I dismissed it as some-
thing that was already covered by the plentiful documentation about the Linux
kernel. Surely someone had already written down all of the basics needed in order
to build, install, and customize the Linux kernel, because it seemed to be a very
simple task to me.
*
After digging through the different HOWTOs and the Linux kernel Documenta-
tion directory, I came to the conclusion that there was no one place where all of
this information could be found. It could be gleaned by referencing a few files
here, and a few outdated web sites there, but this was not acceptable for anyone
who did not know exactly what they were looking for in the first place.
So this book was created with the goal of consolidating all of the existing informa-
tion already scattered around the Internet about building the Linux kernel, as well
as adding a lot of new and useful information that was not written down
anywhere but had been learned by trial and error over my years of doing kernel
development.
My secret goal of this book is to bring more people into the Linux kernel develop-
ment fold. The act of building a customized kernel for your machine is one of the
basic tasks needed to become a Linux kernel developer. The more people that try
this out, and realize that there is not any real magic behind the whole Linux
kernel process, the more people will be willing to jump in and help out in making
the kernel the best that it can be.
* Disclaimer: I’m a Linux kernel developer by trade, so things that seem basic and simple to me at
times are completely incomprehensible by most people, as my family continues to remind me.
www.it-ebooks.info
x
|
Preface
Who This Book Is For
This book is intended to cover everything that is needed to know in order to prop-
erly build, customize, and install the Linux kernel. No programming experience is
needed to understand and use this book.
Some familiarity with how to use Linux, and some basic command-line usage is
expected of the reader.
This book is not intended to go into the programming aspects of the Linux kernel;
there are many other good books listed in the Bibliography that already cover this
topic.
How the Book Is Organized
This book is organized into four parts.
Part I, Building the Kernel, includes Chapters 1 through 6, which cover everything
you need to know about retrieving, building, installing, and upgrading the Linux
kernel, in more or less step-by-step fashion.
Chapter 1, Introduction
This chapter explains when and why you would want to build the kernel.
Chapter 2, Requirements for Building and Using the Kernel
This chapter covers the different programs and tools that are needed in order
to properly build the kernel. It also covers a number of different programs
that are tied very closely to the kernel, how to determine the needed version
of the programs, and where to find them.
Chapter 3, Retrieving the Kernel Source
This chapter discusses how the different Linux kernel versions relate to each
other, where to retrieve the Linux kernel source code, and how to download
it properly.
Chapter 4, Configuring and Building
This chapter explains how to configure and properly build the Linux kernel.
Chapter 5, Installing and Booting from a Kernel
This chapter shows how to install the kernel that has been built properly, and
then boot into that kernel version.
Chapter 6, Upgrading a Kernel
This chapter explains how to upgrade a kernel that was previously built to a
newer version without having to start over from nothing.
Part II, Major Customizations, consists of Chapters 7 and 8, which describe how
to properly configure the kernel based on the hardware present in the system, and
provides a number of different “recipes” for common configurations.
Chapter 7, Customizing a Kernel
This chapter discusses how to customize the kernel for the hardware that is
present on the system. It goes over a variety of different ways to determine
www.it-ebooks.info
Preface | xi
what options should be selected and provides some simple scripts to help
with the task.
Chapter 8, Kernel Configuration Recipes
This chapter explains how to configure the kernel for a variety of common
situations.
Part III, Kernel Reference, consists of Chapters 9 through 11. These chapters
provide a reference to the different kernel command line options, the kernel build
options, and a select few of the different kernel configuration options.
Chapter 9, Kernel Boot Command-Line Parameter Reference
This chapter details all of the different command-line options that can be
passed to the kernel, and what the different options do.
Chapter 10, Kernel Build Command-Line Reference
This chapter describes the different command line options that are available
when building the kernel and how to use them.
Chapter 11, Kernel Configuration Option Reference
This chapter focuses on a few of the more popular and important Linux
kernel configuration options.
Part IV, Additional Information
Appendix A, Helpful Utilities
This chapter introduces a number of very good and handy tools that everyone
who wishes to track the latest Linux kernel version should use.
Appendix B, Bibliography
This chapter offers a list of useful references that you can use to track down
more information on building your Linux kernel.
Online Version and License
This book is freely available under the Creative Commons “Attribution-
ShareAlike” license, Version 2.5. This license can be seen in its entirety at http://
creativecommons.org/licenses/by-sa/2.5/. The full book is also available online at
http://www.kroah.com/lkn.
Conventions Used in This Book
This book uses the following typographical conventions:
Italic
Indicates progams, tools, commands and command options, distribution
packages, files, directories, usernames, and hostnames. Also indicates
nomenclature that we’ve not previously used and emphasized words.
Constant Width
Indicates strings used for kernel configuration, as well as a few special terms
such as device names. Also used to show command output and the contents
of text and program files.
www.it-ebooks.info
xii
|
Preface
Constant Width Bold
Used in examples to indicate commands or other text that should be typed
literally by the user.
Constant Width Italic
Indicates text that you should replace with your own values; for example,
your own name or password. When this appears as part of text that you
should type in, it is shown as
Constant Width Italic Bold.
#, $
Used in some examples as the root shell prompt (#) and as the user prompt
(
$) under the Bourne or bash shell.
Indicates a tip, suggestion, or general note.
Indicates a warning or caution.
Using Shell Scripts
This book is here to help you get your job done. In general, you may use the shell
scripts in this book in your own scripts and documentation. You do not need to
contact us for permission. The major scripts can be downloaded from the book’s
web site on O’Reilly Media, http://www.oreilly.com/catalog/9780596100797.
We appreciate, but do not require, attribution. An attribution usually includes the
title, author, publisher, and ISBN. For example: “Linux Kernel in a Nutshell by
Greg Kroah-Hartman. Copyright 2007 O’Reilly Media, Inc., 978-0-596-10079-7.”
If you feel your use of code examples falls outside fair use or the permission given
above, feel free to contact us at permissions@oreilly.com.
Safari® Enabled
When you see a Safari® enabled icon on the cover of your favorite
technology book, that means the book is available online through
the O’Reilly Network Safari Bookshelf.
Safari offers a solution that’s better than e-books. It’s a virtual
library that lets you easily search thousands of top tech books, cut and paste code
samples, download chapters, and find quick answers when you need the most
accurate, current information. Try it free at http://safari.oreilly.com.
www.it-ebooks.info
Không có nhận xét nào:
Đăng nhận xét