Linux Kernel核心中文手册
Append B (附录 B ) The Alpha AXP Processor
Alpha AXP 体系结构是一个为了速度而设计的 64 位的加载 / 存储( load/store
) RISC 体系结构。所有的寄存器都是 64 位长的: 32 个整数寄存器和 32 个浮点寄存器。第 31 个整数寄存器和第
31 个浮点寄存器用于 null 操作:读取它们得到 0 ,写向它们没有任何结果。所有的指令和内存操作(不管是读或写)都是 32
位。只要具体的实现遵循这种体系结构,允许不同的实现方式。
没有直接在内存中操作数值的指令:所有的数据操作都是在寄存器之间进行。所以,如果你希望增加内存中一个计数器,你必须首先把它读到一个积存其中,修改之后再写回去。只有通过一个指令写向一个寄存器或内存位置,而另一个读取这个寄存器或内存位置,指令之间才能过相互作用。
Alpha AXP 的一个有趣的特点是它有可以产生标志位的指令,比如测试两个整数是否相等,这个结构不是存放到处理器的一个状态寄存器,而是存放到第三个寄存器。初看上去比较奇怪,但是不依赖于状态寄存器意味着可以更容易地让这个
CPU 每一个循环执行多个指令。执行过程中使用无关的寄存器的指令不需要互相等待,如果只有一个状态寄存器则必须等待。没有对于内存的直接操作以及数目众多的寄存器对于同时多条指令也有帮助。
Alpha AXP 体系结构使用一系列子例程,叫做体系结构的授权库代码( privileged
architecture library code PALcode )。 PALcode 和操作系统、 Alpha AXP 体系的
CPU 具体实现和系统硬件相关。这些子例程向操作系统提供上下文切换、中断、异常和内存管理的基本支持。这些子例程可以被硬件调用或通过
CALL_PAL 指令调用。 PALcode 用标准的 Alpha AXP 汇编程序编写,带有一些特殊扩展的实现,用于提供直接访问低级硬件的功能,例如内部处理器的寄存器。
PALcode 在 PAL 模式运行,这是一个特权的模式,会停止一些系统事件的发上,并允许 PALcode 完全控制系统的物理硬件。
Appendix C (附录 C )
Useful Web and FTP Sites (有用的 web 和 ftp 站点)
http://www.azstarnet.com/~axplinux This is David
Mosberger-Tang's Alpha
AXP Linux web site and it is the place to go for
all of the Alpha AXP HOW-
TOs. It also has a large number of pointers to Linux
and Alpha AXP specific
information such as CPU data sheets.
http://www.redhat.com/ Red Hat's web site. This has
a lot of useful pointers.
ftp://sunsite.unc.edu This is the major site for
a lot of free software. The Linux
specfic software is held in pub/Linux.
http://www.intel.com Intel's web site and a good
place to look for Intel chip
information.
http://www.ssc.com/lj/index.html The Linux Journal
is a very good Linux
magazine and well worth the yearly subscription for
its excellent articles.
http://www.blackdown.org/java-linux.html This is
the primary site for infor-
mation on Java on Linux.
ftp://tsx-11.mit.edu/ ~ftp/pub/linux MIT's Linux
ftp site.
ftp://ftp.cs.helsinki.fi/pub/Software/Linux/Kernel
Linus's kernel sources.
http://www.linux.org.uk The UK Linux User Group.
http://sunsite.unc.edu/mdw/linux.html Home page for
the Linux Documen-
tation Project,
http://www.digital.com Digital Equipment Corporation's
main web page.
http://altavista.digital.com DIGITAL's Altavista
search engine. A very good
place to search for information within the web and
news groups.
http://www.linuxhq.com The Linux HQ web site holds
up to date offical and
unoffical patches as well as advice and web pointers
that help you get the best
set of kernel sources possible for your system.
http://www.amd.com The AMD web site.
http://www.cyrix.com Cyrix's web site.
Appendix D( 附录 D)
The GNU General Public
License
Printed below is the GNU General Public License (the
GPL or copyleft), under
which Linux is licensed. It is reproduced here to
clear up some of the confusion
about Linux's copyright status|Linux is not shareware,
and it is not in the public
domain. The bulk of the Linux kernel is copyright
c 1993 by Linus Torvalds, and
other software and parts of the kernel are copyrighted
by their authors. Thus, Linux
is copyrighted, however, you may redistribute it
under the terms of the GPL printed
below.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation,
Inc. 675 Mass Ave, Cambridge,
MA 02139, USA Everyone is permitted to copy and distribute
verbatim copies of
this license document, but changing it is not allowed.
D.1 Preamble
The licenses for most software are designed to take
away your freedom to share and
change it. By contrast, the GNU General Public License
is intended to guarantee
your freedom to share and change free software{to
make sure the software is free
for all its users. This General Public License applies
to most of the Free Software
Foundation's software and to any other program whose
authors commit to using
it. (Some other Free Software Foundation software
is covered by the GNU Library
General Public License instead.) You can apply it
to your programs, too.
When we speak of free software, we are referring
to freedom, not price. Our General
Public Licenses are designed to make sure that you
have the freedom to distribute
copies of free software (and charge for this service
if you wish), that you receive
source code or can get it if you want it, that you
can change the software or use
pieces of it in new free programs; and that you know
you can do these things.
To protect your rights, we need to make restrictions
that forbid anyone to deny
you these rights or to ask you to surrender the rights.
These restrictions translate
to certain responsibilities for you if you distribute
copies of the software, or if you
modify it.
For example, if you distribute copies of such a program,
whether gratis or for a fee,
you must give the recipients all the rights that
you have. You must make sure that
they, too, receive or can get the source code. And
you must show them these terms
so they know their rights.
We protect your rights with two steps: (1) copyright
the software, and (2) offer you
this license which gives you legal permission to
copy, distribute and/or modify the
software.
Also, for each author's protection and ours, we want
to make certain that everyone
understands that there is no warranty for this free
software. If the software is modified
by someone else and passed on, we want its recipients
to know that what they have
is not the original, so that any problems introduced
by others will not re ect on the
original authors' reputations.
Finally, any free program is threatened constantly
by software patents. We wish to
avoid the danger that redistributors of a free program
will individually obtain patent
licenses, in e
ect making the program proprietary. To prevent this, we have made
it
clear that any patent must be licensed for everyone's
free use or not licensed at all.
The precise terms and conditions for copying, distribution
and modification follow.
D.2 Terms and Conditions for Copying, Distribu-
tion, and Modification 0. This License applies to
any program or other work which contains a notice
placed by the copyright holder saying it may be distributed
under the terms of
this General Public License. The \Program", below,
refers to any such program
or work, and a \work based on the Program" means
either the Program or
any derivative work under copyright law: that is
to say, a work containing
the Program or a portion of it, either verbatim or
with modifications and/or
translated into another language. (Hereinafter, translation
is included without
limitation in the term \modification".) Each licensee
is addressed as \you".
Activities other than copying, distribution and modification
are not covered
by this License; they are outside its scope. The
act of running the Program is
not restricted, and the output from the Program is
covered only if its contents
constitute a work based on the Program (independent
ofhaving been made by
running the Program). Whether that is true depends
on what the Program
does.
1. You may copy and distribute verbatim copies of
the Program's source code
as you receive it, in any medium, provided that you
conspicuously and appro-
priately publish on each copy an appropriate copyright
notice and disclaimer
of warranty; keep intact all the notices that refer
to this License and to the
absence of any warranty; and give any other recipients
of the Program a copy
of this License along with the Program.
You may charge a fee for the physical act of transferring
a copy, and you may
at your option offer warranty protection in exchange
for a fee.
2. You may modify your copy or copies of the Program
or any portion of it,
thus forming a work based on the Program, and copy
and distribute such
modifications or work under the terms of Section
1 above, provided that you
also meet all of these conditions:
a. You must cause the modified files to carry prominent
notices stating that
you changed the files and the date of any change.
b. You must cause any work that you distribute or
publish, that in whole or
in part contains or is derived from the Program or
any part thereof, to
be licensed as a whole at no charge to all third
parties under the terms of
this License.
c. If the modified program normally reads commands
interactively when run,
you must cause it, when started running for such
interactive use in the
most ordinary way, to print or display an announcement
including an
appropriate copyright notice and a notice that there
is no warranty (or
else, saying that you provide a warranty) and that
users may redistribute
the program under these conditions, and telling the
user how to view a
copy of this License. (Exception: if the Program
itself is interactive but
does not normally print such an announcement, your
work based on the
Program is not required to print an announcement.)
These requirements apply to the modified work as
a whole. If identifiable
sections of that work are not derived from the Program,
and can be reasonably
considered independent and separate works in themselves,
then this License,
and its terms, do not apply to those sections when
you distribute them as
separate works. But when you distribute the same
sections as part of a whole
which is a work based on the Program, the distribution
of the whole must be
on the terms of this License, whose permissions for
other licensees extend to
the entire whole, and thus to each and every part
regardless of who wrote it.
Thus, it is not the intent of this section to claim
rights or contest your rights
to work written entirely by you; rather, the intent
is to exercise the right to
control the distribution of derivative or collective
works based on the Program.
In addition, mere aggregation of another work not
based on the Program with
the Program (or with a work based on the Program)
on a volume of a storage
or distribution medium does not bring the other work
under the scope of this
License.
3. You may copy and distribute the Program (or a
work based on it, under Section
2) in object code or executable form under the terms
of Sections 1 and 2 above
provided that you also do one of the following:
a. Accompany it with the complete corresponding machine-readable
source
code, which must be distributed under the terms of
Sections 1 and 2 above
on a medium customarily used for software interchange;
or,
b. Accompany it with a written offer, valid for at
least three years, to give any
third party, for a charge no more than your cost
of physically performing
source distribution, a complete machine-readable
copy of the correspond-
ing source code, to be distributed under the terms
of Sections 1 and 2
above on a medium customarily used for software interchange;
or,
c. Accompany it with the information you received
as to the offer to dis-
tribute corresponding source code. (This alternative
isallowed only for
noncommercial distribution and only if you received
the program in object
code or executable form with such an offer, in accord
with Subsection b above.)
The source code for a work means the preferred form
of the work for making
modifications to it. For an executable work, complete
source code means all
the source code for all modules it contains, plus
any associated interface defi-
nition files, plus the scripts used to control compilation
and installation of the
executable. However, as a special exception, the
source code distributed need
not include anything that is normally distributed
(in either source or binary
form) with the major components (compiler, kernel,
and so on) of the operating
system on which the executable runs, unless that
component itself accompanies
the executable.
If distribution of executable or object code is made
by offering access to copy
from a designated place, then offering equivalent
access to copy the source code
from the same place counts as distribution of the
source code, even though third
parties are not compelled to copy the source along
with the object code.
4. You may not copy, modify, sublicense, or distribute
the Program except as
expressly provided under this License. Any attempt
otherwise to copy, modify,
sublicense or distribute the Program is void, and
will automatically terminate
your rights under this License. However, parties
who have received copies, or
rights, from you under this License will not have
their licenses terminated so
long as such parties remain in full compliance.
5. You are not required to accept this License, since
you have not signed it. How-
ever, nothing else grants you permission to modify
or distribute the Program
or its derivative works. These actions are prohibited
by law ifyou do not ac-
cept this License. Therefore, by modifying or distributing
the Program (or any
work based on the Program), you indicate your acceptance
of this License to
do so, and all its terms and conditions for copying,
distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any
work based on the Program),
the recipient automatically receives a license from
the original licensor to copy,
distribute or modify the Program subject to these
terms and conditions. You
may not impose any further restrictions on the recipients'
exercise of the rights
granted herein. You are not responsible for enforcing
compliance by third
parties to this License.
7. If, as a consequence of a court judgment or allegation
of patent infringement
or for any other reason (not limited to patent issues),
conditions are imposed
on you (whether by court order, agreement or otherwise)
that contradict the
conditions of this License, they do not excuse you
from the conditions of this
License. If you cannot distribute so as to satisfy
simultaneously your obligations
under this License and any other pertinent obligations,
then as a consequence
you may not distribute the Program at all. For example,
if a patent license
would not permit royalty-free redistribution of the
Program by all those who
receive copies directly or indirectly through you,
then the only way you could
satisfy both it and this License would be to refrain
entirely from distribution
of the Program.
If any portion of this section is held invalid or
unenforceable under any par-
ticular circumstance, the balance of the section
is intended to apply and the
section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you
to infringe any patents or
other property right claims or to contest validity
ofany such claims; this section
has the sole purpose of protecting the integrity
of the free software distribution
system, which isimplemented by public license practices.
Many people have
made generous contributions to the wide range of
software distributed through
that system in reliance on consistent application
of that system; it is up to the
author/donor to decide if he or she is willing to
distribute software through
any other system and a licensee cannot impose that
choice.
This section is intended to make thoroughly clear
what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program
is restricted in certain countries
either by patents or by copyrighted interfaces, the
original copyright holder
who places the Program under this License may add
an explicit geographical
distribution limitation excluding those countries,
so that distribution is permit-
ted only in or among countries not thus excluded.
In such case, this License
incorporates the limitation as if written in the
body of this License.
9. The Free Software Foundation may publish revised
and/or new versions of the
General Public License from time to time. Such new
versions will be similar in
spirit to the present version, but may differ in
detail to address new problems
or concerns.
Each version is given a distinguishing version number.
If the Program specifies
a version number of this License which applies to
it and \any later version", you
have the option of following the terms and conditions
either of that version or
of any later version published by the Free Software
Foundation. If the Program
does not specify a version number of this License,
you may choose any version
ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program
into other free programs whose
distribution conditions are different, write to the
author to ask for permission.
For software which is copyrighted by the Free Software
Foundation, write to the
Free Software Foundation; we sometimes make exceptions
for this. Our decision
will be guided by the two goals of preserving the
free status of all derivatives of
our free software and of promoting the sharing and
reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
THERE
IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMIT-
TED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM \AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
NOT LIM-
ITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK
AS TO
THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORREC-
TION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAWOR
AGREED
TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER
PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM
AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
IN-
CLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUEN-
TIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
TO USE
THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED
BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
TO
OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY
OF
SUCH DAMAGES.
END OF TERMS AND CONDITIONS
D.3 Appendix: How to Apply These Terms to Your
New Programs
If you develop a new program, and you want it to
be of the greatest possible use to
the public, the best way toachieve this is to make
itfree software which everyone
can redistribute and change under these terms.
To do so, attach the following notices to the program.
It is safest to attach them
to the start of each source file to most effectively
convey the exclusion of warranty;
and each file should have at least the \copyright"
line and a pointer to where the full
notice is found.
hone line to give the program's name and a brief
idea of what it does.i
Copyright c 19yy hname of authori
This program is free software; you can redistribute
it and/or modify it
under the terms of the GNU General Public License
as published by the
Free Software Foundation; either version 2 of the
License, or (at your
option) any later version.
This program is distributed in the hope that it will
be useful, but WITH-
OUT ANY WARRANTY; without even the implied warranty
of MER-
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See
the GNU General Public License for more details.
You should have received a copy of the GNU General
Public License along
with this program; if not, write to the Free Software
Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic
and paper mail.
If the program is interactive, make it output a short
notice like this when it starts
in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of
author Gnomovision
comes with ABSOLUTELY NO WARRANTY; for details type
`show w'. This
is free software, and you are welcome to redistribute
it under certain
conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should
show the appropriate
parts of the General Public License. Of course, the
commands you use may be called
something other than `show w' and `show c'; they
could even be mouse-clicks or
menu items{whatever suits your program.
You should also get your employer (if you work as
a programmer) or your school, if
any, to sign a \copyright disclaimer" for the program,
if necessary. Here is a sample;
alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest
in the program
`Gnomovision' (which makes passes at compilers) written
by James Hacker.
hsignature of Ty Cooni, 1 April 1989 Ty Coon, President
of Vice
This General Public License does not permit incorporating
your program into pro-
prietary programs. If your program is a subroutine
library, you may consider it more
useful to permit linking proprietary applications
with the library. If this is what you
want to do, use the GNU Library General Public License
instead of this License.
Glossary (名词表)
Argument Functions and routines are passed arguments
to process.
ARP Address Resolution Protocol. Used to translate
IP addresses into physical
hardware addresses.
Ascii American Standard Code for Information Interchange.
Each letter of the
alphabet is represented by an 8 bit code. Ascii is
most often used to store
written characters.
Bit A single bit of data that represents either 1
or 0 (on or off).
Bottom Half Handler Handlers for work queued within
the kernel.
Byte 8 bits of data,
C A high level programming language. Most of the
Linux kernel is written in C.
CPU Central Processing Unit. The main engine of the
computer, see also micro-
processor and processor.
Data Structure This is a set of data in memory comprised
of fields,
Device Driver The software controlling a particular
device, for example the NCR
810 device driver controls the NCR 810 SCSI device.
DMA Direct Memory Access.
ELF Executable and Linkable Format. This object file
format designed by the Unix
System Laboratories is now firmly established as
the most commonly used
format in Linux.
EIDE Extended IDE.
Executable image A structured file containing machine
instructions and data.
This file can be loaded into a process's virtual
memory and executed. See
also program.
Function A piece of software that performs an action.
For example, returning the
bigger of two numbers.
IDE Integrated Disk Electronics.
Image See executable image.
IP Internet Protocol.
IPC Interprocess Communiction.
Interface A standard way of calling routines and
passing data structures. For
example, the interface between two layers of code
might be expressed in terms
of routines that pass and return a particular data
structure. Linux's VFS is a
good example of an interface.
IRQ Interrupt Request Queue.
ISA Industry Standard Architecture. This is a standard,
although now rather dated,
data bus interface for system components such as
oppy disk drivers.
Kernel Module A dynamically loaded kernel function
such as a filesystem or a
device driver.
Kilobyte A thousand bytes of data, often written
as Kbyte,
Megabyte A million bytes of data, often written as
Mbyte,
Microprocessor A very integrated CPU. Most modern
CPUs are Microprocessors.
Module A file containing CPU instructions in the
form of either assembly language
instructions or a high level language like C.
Object file A fille containing machine code and data
that has not yet been linked
with other object files or libraries to become an
executable image.
Page Physical memory is divided up into equal sized
pages.
Pointer A location in memory that contains the address
of another location in
memory,
Process This is an entity which can execute programs.
A process could be thought
of as a program in action.
Processor Short for Microprocessor, equivalent toCPU.
PCI Peripheral Component Interconnect. A standard
describing how the peripheral
components of a computer system may be connected
together.
Peripheral An intelligent processor that does work
on behalf of the system's CPU.
For example, an IDE controller chip,
Program A coherent set of CPU instructions that performs
a task, such as printing
\hello world". See also executable image.
Protocol A protocol is a networking language used
to transfer application data
between two cooperating processes or network layers.
Register A location within a chip, used to store
information or instructions.
Routine Similar to a function except that, strictly
speaking, routines do not return
values.
SCSI Small Computer Systems Interface.
Shell This is a program which acts as an interface
between the operating system
and a human user. Also called a command shell, the
most commonly used shell
in Linux is the bash shell.
SMP Symmetrical multiprocessing. Systems with more
than one processor which
fairly share the work amongst those processors.
Socket A socket represents one end of a network connection,
Linux supports the
BSD Socket interface.
Software CPU instructions (both assembler and high
level languages like C) and
data. Mostly interchangable with Program.
System V A variant ofUnix
TM
produced in 1983, which included, amongst other
things, System V IPC mechanisms.
TCP Transmission Control Protocol.
Task Queue A mechanism for deferring work in the
Linux kernel.
UDP User Datagram Protocol.
Virtual memory A hardware and software mechanism
for making the physical
memory in a system appear larger than it actually
is.
Bibliography (参考书目)
[1] Richard L. Sites. Alpha Architecture Reference
Manual Digital Press
[2] Matt Welsh and Lar Kaufman. Running Linux O'Reilly
& Associates, Inc, ISBN
1-56592-100-3
[3] PCI Special Interest Group PCI Local Bus Specification
[4] PCI Special Interest Group PCI BIOS ROM Specification
[5] PCI Special Interest Group PCI to PCI Bridge
Architecture Specification
[6] Intel Peripheral Components Intel 296467, ISBN
1-55512-207-8
[7] Brian W. Kernighan and Dennis M. Richie The C
Programming Language Pren-
tice Hall, ISBN 0-13-110362-8
[8] Steven Levy Hackers Penguin, ISBN 0-14-023269-9
[9] Intel Intel486 Processor Family: Programmer's
Reference Manual Intel
[10] Comer D. E. Interworking with TCP/IP, Volume
1 - Principles, Protocols and
Architecture Prentice Hall International Inc
[11] David Jagger ARM Architectural Reference Manual
Prentice Hall, ISBN 0-13-
736299-4