当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > linux内核的编译

Unix/Linux
Linux系统如何让双网卡合“一”而用
Linux操作系统静态路由设置技巧介绍
Linux环境下如何去远程登录Windows
实战Linux拨号上网 KPPP常见疑问解答
介绍几个与Linux网络设置有关的文件
Linux下三种网络管理工具功能及使用
Squid实现反向代理并且具备内网代理
传统网络配置命令与IP高级路由命令
审计并跟踪Linux系统的异常活动详解
如何使用Linux系统脚本简化无线网络
linux下adsl拔号与共享上网
Linux代理服务器和防火墙配置详细解析
用VNC客户端图形界面管理远程Linux系统
透视你的网络 利用vnStat监测宽带流量
Linux下使用Iptraf进行网络流量的分析
Linux服务器启动过程详解
基于Linux操作系统实现的传真系统
在Linux下建立VPN服务器来做加密代理
有备无患 Linux服务器备份和恢复技巧
如何测试和调试Apache服务器

Unix/Linux 中的 linux内核的编译


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 108 ::
收藏到网摘: n/a

  1. 要怎麽进行核心的配置?
1.1. 取得原始程序码
你可以经由 ftp 从 ftp.funet.fi 或是 mirror in /pub/OS/Linux/PEOPLE/Linus 取
得原始程序码。也可以到这个节点的 mirror 或其他节点去拿。档案名称一般是以标记
成 linux-x.x.x.tar.gz 为代表,其中的 x.x.x 是版本编号。较新的(更好的?)版
本以及修补档一般是放在类似”v1.1 ”以及”v1.2”这样的子目录下。
强烈建议你去找 mirror 的 ftp 节点,而不要直接到 ftp.funet.fi 去!底下是一些
mirrors 以及其他节点的简要列表
( ftp.funet.fi 的 mirror 节点:)
Germany:        ftp.Germany.EU.net
UK:             doc.ic.ac.uk
Australia:      kirk.bu.oz.au
( 其它有摆放核心档案的节点:)
USA:            tsx-11.mit.edu
USA:            sunsite.unc.edu
Germany:        ftp.dfv.rwth-aachen.de
如果你没有办法上 ftp ,有个存放 linux 的 BBS 系统列表会定期刊登在
comp.os.linux.announce 上,试著到那边去找点帮助。
1.2. 解开原始程序码的包装
确定你是以″ root ″的身份签入,然後 cd 到 /usr/src 。如果你的 linux 是从其
它任何可能的地方取得的,在这个目录底下应该已经存在一个叫做” linux ”的子目
录。这是旧版的 linux 原始程序码。如果你还有磁碟空间而且想要玩得安全一点,那
麽你会想要保留这个子目录的。有个好主意是根据你目前使用的核心版本来修改这个子
目录的名称。″ uname -r ″这个指令将会告诉你新的版本。
所以,如果″ uname -r ″显示″ 1.1.47,″你就可以把″ linux ″改名为
″ Linux-1.1.47 。″如果你是个鲁莽型的人,那就直接把这个子目录清除掉。无论是
哪一种情况,反正只要确定在解开全部的原始程序码之前, /usr/src 目录下没有
”linux ”这个子目录就对了。
在 /usr/src 目录下,用″zcat linux.x.x.tar.gz | tar xvf- ″来解开原始程序码
的包装(你也可以用更简单的″ tar zxvf linux.x.x.x.tar.gz″;如果你拿到的是
..tar 的档案(後面没有加上  gz ),那就用” tar xvf linux.x.x.x.tar ”)。你
将会看到原始程序的内容飞逝而过。当它完成以後,将会出现一个新的″ linux ”子
目录。
″ cd ″到 linux 目录下然後查看 README 档,里面应该会有一段标题为
″INSTALLING the kernel″ 或类似的文字。如果适当的话,先执行说明里的指示 —
建立该有的符号链结,移除过时的 .o 档案等等等诸如此类的工作。
1.3. 配置核心
注意:这部份内容有些是重覆 Linus 的 README 档案中的相应章节或加以修订。
在 /usr/src/linux 下执行″ make config ″ 这个命令将会启始一个指令稿,而这个
指令稿会问你各种问题。它需要 bash ,所以要确定 bash 是 /bin/bash,/bin/sh 或
$BASH 。
你现在该准备好回答这些问题,通常用″ y ″或″ n ″就可以了。有一些很明显或是
不重要的选项将不会在此加以说明。
1.3.1. Kernel math emulation (核心的浮点运算模拟)
如果你没有数学辅助运算处理机(ie,你只有一台单纯的 386 或 486SX ),那麽你在
这里要回答″ y ″。如果你已经有数学辅助运算处理机却还回答″ y ″,那也不必太
担心 — linux 还是会去使用它而忽略掉核心的模拟程序。唯一的影响是编译出来的核
心变大了。
1.3.2. Normal harddisk support (标准硬碟支援)
你在这里差不多都得回答″ y ″。它代表的意思是核心将会支援标准的 PC 磁碟,例
如大多数人使用的 IDE 界面硬碟。这不包括 SCSI 设备的支援。
1.3.3. Networking support (网络支援)