分享
 
 
 

Linux内核配置及编译简介

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

1.为什么要编译Linux 内核

众所周知,Linux是开放源码的操作系统,开放源码软件带给我们这计算机水平相对落后的人群的最大好处,就是可以快速学习世界高水平的程序(体系结构及编程方法等等),从而快速提高自身水平。然而这本身,也使多数开放源码软件在编码易用性、针对性方面比不上Microsoft等专业软件公司的产品。使用开放源码软件,多多少少都一些不太舒服的感觉。这一点想必用过Linux较早期版本的朋友都有同感。有时候还不仅是不舒服,由于软件开发者或版本的不同,我们无法保证所有的软件都能够简单地在不同的机器间移植,对于某些大型软件(如:ORACLE 8.0.5)尤其如此。许多情况下,系统状态,尤其是内核状态,对程序的安装使用和性能有至关重要的影响和制约作用。从另外的角度来讲,我们也可以为自己的计算机量身定制内核,这样就不会出现Windows 98那样的大垃圾箱了。

2.了解Linux

要编译Linux的内核,首先要对它有个大概的印象。Linux是Unix的仿制品,它支持多任务、虚拟存储器,多终端,虚拟文件系统等特性。它最低可以运行在386/486的个人计算机上,其他一些体系结构的机器,如:SUN Sparc,M68000,DEC Alpha,PowerPC上也逐渐有了适用的Linux。

3.编译内核的准备工作

1)了解现有内核的版本号.

这主要是为了确定一些机器的基本信息,不一定非这么做不可。可以用如下的命令行:

$ uname -a

Linux lark 2.2.15 #2 TUE DEC 26 10:55:20 CST 2000 i686

2)下载最新版本的Linux内核.目前国内教育网的ftp站点这方面的内容(包括压缩的内核、补丁、编译器等)都比较丰富,更新也较快,如:http://ftp.xjtu.edu.cn/ftp/pub/linux/kernel/,ftp://166.111.136.3/pub/linux/kernel,2.2.x版本是比较稳定的,推荐使用。

3)把打包的内核解开

压缩的内核、补丁和解开的源代码总共要占70M左右的硬盘空间;用root登录,解开的源代码应该在/usr/src/linux2.2.15下面:

#tar zxvf linux-2.2.15.tar.gz

或者

#gzip t linux-2.2.15.tar.gz

#tar x linux-2.2.15.tar

如果嫌命令行太麻烦的话,也可以在某台windows的机器上用winzip之类的软件解开,再用ftp或mount等方式让linux可以访问。

4)在系统中安装gcc-2.7.2或更新的c编译包

5)如果没有把握,就把原来的内核(在/boot下)在别的地方重新备份一个。别忘了同时备份模块(/lib/modules/2.x.x)

4.内核编辑

为了使内核符合自己系统和应用程序的实际需要,一般都要对其进行某些编辑工作,主要是修改某些头文件中的若干参数。比方说,在安装Oracle 8.0.5时,为了使Oracle能够利用的内存空间与实际的物理内存容量相符,以提高性能,要修改/usr/src/linux/include/asm下的shmparam.h文件中的一些内存参数。

5.内核配置

内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig等等,它们的功能都是一样的,区别应该从名字上就能看出来,只有make oldconfig是指用系统当前的设置(./.config)作为缺省值。这里用的是make menuconfig。

需要牢记:不必要的驱动越多,内核就越大,不仅运行速度慢、占用内存多,在少数情况下、还会引发其他问题。具体步骤如下:

首先确定shell是bash。

然后

$make menuconfig

有一些默认的符号其含义如下:

y:加载

n:不加载

m:作为模块加载

可以配置的选项有以下一些:

1)code maturity level option 代码成熟度

prompt for development and/or incomplete code/drivers [N/y/?]

如果有兴趣测试一下内核中尚未最终完成的某些模块,就选y,否则选N,想知道更详细的信息选?会看到联机帮助(以下?的含义相同),N大写表示缺省值。

2)processor type and features 处理器类型及特性

Processor family(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC, PPro/6x86MX)[PPro/6x86MX]

[]内的是缺省值,我们可以根据前面介绍的uname 命令执行的结果选择。此项如果高于386,那么生成的内核在386机器上将不能启动。

Math emulation(CONFIG_MATH_EMULATION)[N/y/?]

需要进行协处理器模拟吗?一般的机器都回n。如果机器已经有硬件的协处理器,那么内核仍将使用硬件,而忽略软件的math-emulation,这将使内核变大变慢。

MTRR(Memory Type Range Register)support(CONFIG_MTRR)[N/y/?]

在Pentium、Pro/Pentium II类的系统中可以提高图像写入速度。

Symmetric multi-processing support(CONFIG_SMP)[Y/n/?]

如果您的机器有多个处理器,就选y。此时要选中下面的Enhanced Real Time Clock Support

3)loadable model support 可加载模块支持

Enable loadable module support(CONFIG_MODULES)[Y/n/?]

最好选y,不然许多仅供动态加载的模块就不能用了。

Set version information on all symbols for modules(CONFIG_MODVERSIONS)[N/y/?]

选N

Kernel module loader(CONFIG_KMOD)[N/y/?]

4)general setup 一般设置

Networking support(CONFIG_NET)[Y/n/?]

选y吧,现在还有几台计算机不用上网呢?

PCI support (CONFIG_PCI)[Y/n/?]

PCI 总线和设备总该有吧。

PCI access mode(BIOS,Direct,Any)[Any]

缺省值比较保险,但如果您对您的主板很有信心,就选BIOS。

PCI quirks (CONFIG_PCI_QUIRKS)[Y/n/?]

用于修补BIOS中对PCI有影响的BUG,同样,如果您对主板很有信心,就选n。

Backward-compatible /proc/pci〉(CONFIG_PCI_OLD_PROC)[Y/n/?]

以前的内核使用/proc/pci,新版内核使用/proc/bus/pci,要保持兼容性就选y。

MCA support(CONFIG_MCA)[N/y/?]

查看帮助吧。

SGI Visual Workstation support(CONFIG_VISWS)[N/y/?]

您的机器是SGI的吗?是就选y。

System V IPC(CONFIG_SYSVIPC)[Y/n/?]

进程间通信函数和系统调用。Linux内核的五大组成部分之一,一定要选。

BSD Process Accounting(CONFIG_BSD_PROCESS_ACCT)[N/y/?]

用于启动由内核将进程信息写入文件的用户级系统调用。就看您想不想用它了。

Sysctl support(CONFIG_SYSCTL)[Y/n/?]

在内核正在运行的时候修改内核。用8KB空间换取某种方便。别选吧,除非你真的想试试。

Kernel support for a.out binaries(CONFIG_BINFMT_AOUT)[Y/m/n/?]

为了能使用以前编译的程序,选y。

Kernel support for ELF binaries(CONFIG_BINFMT_ELF)[Y/m/n/?]

为了能使用现在编译的程序,选y。

Kernel support for MISC binaries(CONFIG_BINFMT_MISC)[Y/m/n/?]

一般选y,用于支持java等代码的自动执行。

Parallel port support(CONFIG_PARPORT)[N/y/m/?]

并口设备,如打印机。

5)plug and play support 即插即用设备支持

Plug and Play support (CONFIG_PNP)[N/y/?]

选y吧。

6)block devices 块设备

Normal PC floppy disk support(CONFIG_BLK_DEV_FD)[Y/m/n/?]

一般的软驱。选y。

Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support(CONFIG_BLK_DEV_IDE)[Y/m/n/?]

这几种接口的硬盘、光驱、磁带、软驱。选y。

Include IDE/ATAPI CDROM support(CONFIG_BLK_DEV_IDECD)[Y/m/n/?]

CDROM。选y。

7)networking options 网络选项

Packet socket (CONFIG_PACHET)[Y/m/n/?]

按照目前网络发展的状况,选y比较好。当然也可以选其它的。

Kernel/User netlink socke(CONFIG_NETLINK)[N/y/?]

内核与用户进程双向通信。选y。

Network firewalls(CONFIG_FIREWALL)[N/Y/?]

如果真的需要用防火墙,就选y。

UNIX domain sockets(confgi_unix)[Y/m/n/?]

socket 的用处太多了。选y。

TCP/IP networking(CONFIG_INET)[Y/n/?]

选y,理由如上一条。

The IPX protocol (CONFIG_IPX)[N/y/m/?]

其实并没有那么多人真的需要使用或者学习IPX,所以一般选N。

Appletalk DDP(CONFIG_ATALK)[N/y/m/?]

选N,理由同上。

8)SCSI support SCSI支持,SCSI low-level drives SCSI低级驱动

根据系统中SCSI设备的实际情况选择。

9)Networking device support 网络设备支持

如果用LAN上网,就选择网卡;

如果用MODEM拨号上网,就要看ISP提供那种服务了,一般都是PPP。

10)Amateur Radio support 业余收音机支持

这是什么我不太清楚,所以选N。

11)ISDN subsystem ISDN子系统

好像已经有支持ISDN的MODEM了,所以最好先看看自己的MODEM是不是这种,再做选择。

12)Old CD-ROM dfivers (not SCSI, not IDE) 老式光驱驱动

一般选N,因为这种设备实在很少见。

13)Character devices 字符设备

Virtual terminal(CONFIG_VT)[Y/n/?]

Linux上一般可以用Alt+F1/F2/F3/F4来切换不同的任务终端,即使在一台计算机上也可以充分使用Linux的多任务能力,一些需要以命令行方式安装合适用

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有