📄 kernel-howto-3.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>Kernel HOWTO 中译版: 如何真正进行核心的配置?</TITLE>
<LINK HREF="Kernel-HOWTO-4.html" REL=next>
<LINK HREF="Kernel-HOWTO-2.html" REL=previous>
<LINK HREF="Kernel-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Kernel-HOWTO-4.html">Next</A>
<A HREF="Kernel-HOWTO-2.html">Previous</A>
<A HREF="Kernel-HOWTO.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3. 如何真正进行核心的配置?</A></H2>
<P>
<H2><A NAME="ss3.1">3.1 取得原始程式码</A>
</H2>
<P>你可以经由匿名 ftp 站从 <CODE>ftp.funet.fi</CODE> 的 <CODE>
<A HREF="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus">/pub/Linux/PEOPLE/Linus</A></CODE>,
或是其它 MIRROR 站取得.([<CODE>译注</CODE>] 台湾可从 <CODE>
<A HREF="ftp://ftp.edu.tw/OS/Linux/kernel">ftp.edu.tw</A></CODE> 取得.)
档案名称一般是以标记成 <CODE>linux-x.y.z.tar.gz</CODE> 为代表,其中的 <CODE>x.y.z</CODE> 是版本编号.
较新的(更好的?)版本以及修补档一般是放在类似 `<CODE>v1.1</CODE>' 以及 `<CODE>v1.2</CODE>' 这样的子目录下.
数字最大的是最新的版本,而且通常是``测试版'',也就是说如果你对 beta 或 alpha 版感到不安的话,你应该停留在主要的发行版本上.
<P><I>强烈</I>建议你去找 mirror 的 ftp 节点,而不要直接到 <CODE>ftp.funet.fi</CODE> 去!
底下是一些 mirrors 以及其他节点的简要列表:
<P>
<PRE>
USA: sunsite.unc.edu:/pub/Linux/kernel
USA: tsx-11.mit.edu:/pub/linux/sources/system
UK: sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernel
Austria: ftp.univie.ac.at:/systems/linux/sunsite/kernel
Germany: ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/Linus
Germany: sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/Linus
France: ftp.ibp.fr:/pub/linux/sources/system/patches
Australia: sunsite.anu.edu.au:/pub/linux/kernel
</PRE>
<P>一般来说,<CODE>sunsite.unc.edu</CODE> 的 mirror 站是很好找的.
档案 <CODE>/pub/Linux/MIRRORS</CODE> 包含了已知的 mirror 节点.
如果你没有办法上 ftp ,有个存放 linux 的 BBS 系统列表会定期刊登在 comp.os.linux.announce 上,试著到那边去找一下.
<P>如果你想寻找一般的 Linux 资讯与套件,去 <CODE>
<A HREF="http://www.linux.org/">http://www.linux.org/</A></CODE>.
<P>
<H2><A NAME="ss3.2">3.2 解开原始程式码的包装</A>
</H2>
<P>确定你是以`<CODE>root</CODE>'的身份签入,然後 <CODE>cd</CODE> 到 <CODE>/usr/src</CODE>.
如果你安装 Linux 时已经安装了核心原始程式码,在这个目录底下应该已经存在一个叫做 `<CODE>linux</CODE>' 的子目录.
这是旧版的 linux 原始程式码.如果你还有磁碟空间而且想要玩得安全一点,那麽你会想要保留这个子目录的.
有个好主意是根据你目前使用的核心版本来修改这个子目录的名称.
`<CODE>uname -r</CODE>' 这个指令将会告诉你目前的核心版本.
所以,如果 `<CODE>uname -r</CODE>' 显示 `<CODE>1.0.9</CODE>',你就可以把 `<CODE>linux</CODE>' 改名(用 `<CODE>mv</CODE>')为 `<CODE>linux-1.0.9</CODE>'.
如果你是个鲁莽型的人,那就直接把这个子目录清除掉.
无论是哪一种情况,反正只要确定在解开全部的原始程式码之前,<CODE>/usr/src</CODE> 目录下没有 `<CODE>linux</CODE>' 这个子目录就对了.
<P>
<P>在 <CODE>/usr/src</CODE> 目录下,用 `<CODE>tar zxpvf linux-x.y.z.tar.gz</CODE>' 来解开原始程式码的包装
(如果你拿到的是 <CODE>.tar</CODE> 的档案,後面没有加上 <CODE>.gz</CODE>,那就用 `<CODE>tar xpvf linux-x.y.z.tar</CODE>').
你将会看到原始程式的内容飞逝而过.当它完成以後,在 <CODE>/usr/src</CODE> 将会出现一个新的 `<CODE>linux</CODE>' 子目录.
<CODE>cd</CODE> 到 <CODE>linux</CODE> 目录下然後查看 <CODE>README</CODE> 档,
里面应该会有一段标题为 `<CODE>INSTALLING the kernel</CODE>' 或类似的文字.
如果适当的话,先依照说明里的指示 — 建立该有的符号链结,移除过时的 .o 档案等等等诸如此类的工作.
<P>
<H2><A NAME="ss3.3">3.3 配置核心</A>
</H2>
<P>注意:这部份内容有些是重覆 Linus 的 <CODE>README</CODE> 档案中的相应章节或加以修订.
<P>
<P>在 <CODE>/usr/src/linux</CODE> 下执行 `<CODE>make config</CODE>' 这个命令将会启始一个指令稿,
而这个指令稿会问你各种问题.它需要 bash ,所以要确定 bash 是 <CODE>/bin/bash</CODE>,<CODE>/bin/sh</CODE> 或 <CODE>$BASH</CODE>.
<P>
<P>还有其它种 `<CODE>make config</CODE>' 的方式你可能会觉得更容易使用.
对那些执行 X Window 的人你如果有装 Tk 的话可以试著用 `<CODE>make xconfig</CODE>'.
`<CODE>make menuconfig</CODE>' 是给那些有装 (n)curses 而且喜欢文字模式选单的人用的.
这些界面有个明显的好处: 如果在配置过程中你不小心犯了错,可以简单地回去修正.
<P>
<P>你现在该准备好回答这些问题,通常用 `<CODE>y</CODE>' 或 `<CODE>n</CODE>' 就可以了.
设备驱动程式通常会有一个 `<CODE>m</CODE>' 选项.
这表示``模组(module)'',表示说系统将会编译它,但不会直接放进核心里,而是做为一可载入模组.
一个有趣的说法是表示``maybe''.有一些很明显或是不重要的选项将不会在此加以说明.
请见``
<A HREF="Kernel-HOWTO-10.html#other-options">其它配置选项</A>''一节对其中的简短说明.
<P>
<P>在 2.0.x 或以後的版本中有一个 `?' 选项,提供了这个配置参数的简短描述.
这些资讯应该都是最新的.
<P>
<H3>Kernel math emulation (核心的数学运算模拟)</H3>
<P>如果你没有数学辅助运算处理机(你只有一台单纯的 386 或 486SX),那麽你在
这里要回答 `<CODE>y</CODE>'.如果你已经有数学辅助运算处理机却还回答 `<CODE>y</CODE>',
那也不必太担心 — linux 还是会去使用它而忽略掉核心的模拟程式.
唯一的影响是编译出来的核心变大了(用掉更多的记忆体).
我听说数学运简模拟很慢; 虽然和本节无太大关系,还是应该注意这对 X Window 系统的效率会有很大影响.
<P>
<H3>Normal (MFM/RLL) disk and IDE disk/cdrom support (标准硬碟支援)</H3>
<P>你在这里差不多都得回答 `<CODE>y</CODE>'.它代表的意思是核心将会支援标准的 PC 硬碟,
例如大多数人使用的 IDE 界面硬碟.这不包括 SCSI 设备的支援; 这将在後面设定.
<P>
<P>然後你会被问到关於 ``old disk-only'' 与 ``new IDE'' 驱动程式的事.
你应该两者选一; 主要的差别是旧的驱动程式只支援单一界面两部磁碟机,
而新的驱动程式支援第二界面及 IDE/ATAPI 光碟机.新的驱动程式比旧的大约多 4K,
而且应该是``改良的'',也就是说除了可能包含些许错误之外,它应该会改善你的磁碟效率,特别是如果你有较新的 EIDE 硬体的话.
<P>
<H3>Networking support (网路支援)</H3>
<P>原则上,如果你有连接网路,譬如说,你有 Internet 连线,或是你将使用 SLIP,PPP,term 或其它方式拨接到 Internet 上的话,回答 `<CODE>y</CODE>'.
然而,某些软体套件(例如 X Window 系统)需要网路支援,即使你的机器并不真正连接到网路上.这情形你也应该回答 `<CODE>y</CODE>'.
然後,你会被问到是否需要支援 TCP/IP 网路,如果你不十分确定,就回答 `<CODE>y</CODE>'.
<P>
<H3>Limit memory to low 16MB (制记忆体在 16 MB)</H3>
<P>可能会有一些不良的 386 DMA 控制器无法正确地定址到 16 MB 以上的记忆体位址;
如果你的机器刚好有这种(罕见)情况时,那麽你也就只好回答″ y ″了.
<P>
<H3>System V IPC </H3>
<P>一个 IPC (行程内通讯,Interprocess Communication) 的定义就在 Perl 书中的注解.
这并不大奇怪,一些 Perl 程式设计者用它来让行程之间互相沟通,就像许多其它套件(最著名如 DOOM)一样.
因此除非你完全了解你在做什麽,不然最好别回答 <CODE>n</CODE>.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -