文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>人人一试就会,Linux核心的编译一点都不神秘(3-1)

人人一试就会,Linux核心的编译一点都不神秘(3-1)

时间:2005-12-30  来源:supxmen

内容

1、重新编译核心的原因

Linux的核心有几个主要的特色,除了可以随时、随个人喜好而更改之外,其版本更动次数太频繁也是一个特点,所以,除非你有特殊要求,否则一次编译成功就好了,不要随时保持最新的核心版本,也没有必要(因为核心编译需要很长的时间)。此外需要重新编译核心的情况主要有以下:

1 )、新功能的需求:需要新的功能,而这个功能只有在新的核心里才有,为了获得这个功能,只好重新编译核心(例如:iptables防火墙机制只有在2.4.xx版本中才有,而新出产的AGP显卡,很多也需要推出新的核心之后才能正常有效地工作)。

2)、原来的核心太臃肿:如果你的系统稳定性要求很高,则需要重新编译核心,把不需要的许多莫名其妙的功能去掉。

3)、与硬件搭配的稳定性:原本Linux的核心主要是针对Intel的CPU做开发工作的,如果你的CPU是AMD等其他系统时,有可能让系统运行不太稳定,特别是在K6-2,K6-3 以上的Linux,通常需要重新编译核心才会解决问题。

4)、其他:在你有特殊的环境需求是,就得自行设计你的系统核心了。如一些商业的软件包系统,它们可能需要较为干净的操作系统,它们的核心需要更简洁有力。

但是需要注意的是,重新编译核心虽然可以针对你的硬件作最优化的处理,不过其对整体效能的影响可能还不到5%。因此如果为了增加效能而编译核心,基本上收益不大,但如果是针对系统的

稳定性,则是绝对必要的。

因此,可以这样说:重新编译核心的目的是为了系统的稳定性。

2、核心的编译

       由于编译核心的行为只有root才可以进行,所以要求以root身份操作。

2.1设置模块的必要性。

       每次新的硬件或软件的推出,就需要编译一次核心,这样做非常不方便,因为编译一次核心至少要30分钟左右(这与PC的配置有关)。目前的核心已经具有外挂模块的功能,因此,我们可以把可能用到的功能都编译成模块,那么要用的时候只需把它加载到核心就可以了。通过模块的设置,核心不会主动加载没有用到的功能,避免过多的系统资源消耗。比如在旧的计算机一般没有AGP插槽,也就不需要在核心里编译进AGP的支持了。

2.2安装原则

       在Linux中安装任何软件的铁则是:注意看套件解压缩之后的INSTALL或README文件。

所以在解压了核心文件之后,先进入/usr/src/linux中先瞧瞧README,接着,执行make mrproper指令,避免前面已经有人编译过该核心。

2.3操作指令:

a、下载核心文件

# wget http://www.kernel.org > kernel/v2.4/linux-2.4.28.tar.gz

(注意:http://www.kernel.org是核心的下载主站)

b、解压缩,并放置核心到/usr/src中!

# cd /usr/src   (kernel的默认source文件放置目录)

# mv linux linux.old       (将旧的核心编译的目录)

# tar –zxvf /root/linux-2.4.28.tar.gz      (将核心文件解压缩)

# ln –s linux-2.4.28 linux       (建立链接)

# cd linux              (进入工作目录)

2.4设定编译模式

       目前的Kernel允许多种编译模式,包括:

       1).make config:这种模式需要逐行输入需要设定的项,无法往前修改设定,所以很少使用这种方式来设定Kernel的选项。

       2)make xconfig:这种模式使用 X-Window为主要环境的设定模式,除非您在执行X-Window,否则没有办法使用这种模式。

       3)make menuconfig:这种模式有点象文字界面的菜单模式,较为简单,而且可以走纯文字界面下执行编辑动作,是目前最常用的模式。

 

输入指令#make menuconfig,会出现的界面如上图所示。

2.4.1开始设定

开始设定项回非常多,如果不确定选项的内容是什么,可以进入Help查看该项的设定值,如果还是不清楚就直接保留Kernel的默认值即可。我在下面的设定列出了比较重要的项。如果理解了下面的现,核心编译基本上没有很严重的困难。

#     make mrproper      去除.o的已编译文件

#     make menuconfig   以文字菜单模式进行编译

Code maturity level options --->    关于核心测试功能的code开启项

       [ ]Prompt for development and /or imcomplete code/drivers

                                                 因为我们不需要研发核心,所以不选

Loadable module support--->        这个就是我们所说的模块

       [*]Enable loadable module support

                                                 让核心可以加载模块项(必选)

       [ ]Set version information on all module symbols

                                                 除非你要使用旧版本的数据,这个通常不选

       [*]Kernel module loader        也是必选

Processor type and features--->    选择CPU的型号项

       (Pentium-MMX)Processor family

                                                 请依照你的实际情况选择你的CPU型号

       <>Toshiba Laptop support     底下这个用到(笔记本电脑)时才选择

       <>Dell laptop support

       /dev/cpu/microcode-Intel IA32 CPU microcode support

                                                 如果使用的是Intel,可以编译成模块

       /dev/cpu/*/msr-Model-specific register support

                                                 如果使用的是Intel,可以编译成模块

       /dev/cpu/*/cupid-CPU information support

                                                 如果使用的是Intel,可以编译成模块

       (off)High Memory Support    这个东西跟你的RAM有关,RAM小于1GB则使用off

       [ ]Math emulation                 是否需要数值模拟?当然不需要,我们的CPU够强了

       [ ]MTRR(Memory Type Range Register)support

                                                 P6(PII等级以上)并且要运行X-Window时才加上,与AGP有关

       [ ]Symmetric multi-processing support

                                                 如果是双CPU的主机板才选择,否则不选

       [*]Local APIC support on uniprocessors(NEW)

                                                 如果你的CPU支持APIC则选择,通常可以选择

       [*]IO-APIC support on uniprocessors

                                                 同上

General setup--->                               一般设定部分

       [*]Networking support                底下4个一定要选,跟基本的硬件设备有关

       [*]PCI support

       (Any)PCI access mode

       [*]PCI device name database

       [ ]EISA support                           底下这两个则与主机板上的插槽有关,除非笔记本电脑,否则不选

       [ ]MCA support

       [*]Support for hot-pluggable devices

                                                        有点类似即插即用,可以选择

PCI Hotplug Support--->

       [*]System V IPC                         下面这几个东西可以编译成模块,但是我就直接编译到核心

       <*>Kernel support for a.out binaries

       <*>Kernel support for ELF binaries

       <*>Kernel support for MISC binary

       [*]Power Management support

       < >Advanced Power Managerment BIOS support

                                                        如果你想让你的BIOS接管电源管理,可以选择,我没有选

Memory Technology Devices (MTD)-à

       < >Parallel port support                由于我的主机并没有接打印机,所以没选如果你有打印机,一定要选

Plug and Play configuration--->           底下两个即插即用,马上勾选

       < >ISA Plug and Play support             

Block devices--->                               一些比较冷门的存储机器,如果不确定,可以直接编译成模块

       <*>Normal PC floppy disk support

       < >XT hard disk support

       < >Compaq SMART2 support

       < >Compaq Smart Array 5xxx support

       < >Mylex DAC960/DAC1100 PCI RAID Controller support

       < >Loopback device support

       Network block device support 底下这两样可以选择编译成为模块,因为有可能会用到

       RAM disk support

       (4096)Default RAM disk size(NEW)

Multi-device support (RAID and LVM)-->

       [ ]Multiple devices drives support(RAID and LVM)

                                                        除非要玩RAID(磁盘阵列)与LVM,否则不用选

 

 

 

 

 

 

 

 

相关阅读 更多 +
排行榜 更多 +
我是班长去广告版下载

我是班长去广告版下载

模拟经营 下载
什么鸭小游戏安卓版下载

什么鸭小游戏安卓版下载

策略塔防 下载
极光影院官方最新版本2025下载

极光影院官方最新版本2025下载

趣味娱乐 下载