<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>奔向远方 &#187; 内核编译</title>
	<atom:link href="http://www.tisswb.com/archives/tag/%e5%86%85%e6%a0%b8%e7%bc%96%e8%af%91/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tisswb.com</link>
	<description>结婚开始倒计时了，高兴~</description>
	<lastBuildDate>Tue, 19 Jul 2011 09:30:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>FreeBSD7.0 优化编译内核</title>
		<link>http://www.tisswb.com/archives/75.html</link>
		<comments>http://www.tisswb.com/archives/75.html#comments</comments>
		<pubDate>Tue, 24 Jun 2008 16:40:26 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[内核编译]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=75</guid>
		<description><![CDATA[第一步：编译内核
我是用的最小化安装，所以没有/usr/src/sys,要编译内核，需要先装上，按装办法
选行sysinstall 选择 [Configure] -&#62; [Distribution] -&#62; [src] -&#62; [sys]及[base]
第一步：
#cd /usr/src/sys/i386/conf
#cp GENGERIC DYITKERNEL
这里的DYITKERNEL是自己起的名子，因为我维护dyit这个域名，所以起了这个名子
上边这样子做有个坏处，就是可能因为硬盘空间不够，删除/usr/src目录,结果把DYITKERNEL也删除了，
所以常用的做法是把DYITKERNEL放到别的地方，然后在i386下建议一个符号链接
# mkdir /root/kernels
<span class="readmore"><a href="http://www.tisswb.com/archives/75.html" title="FreeBSD7.0 优化编译内核" target="_blank">阅读全文——共1977字</a></span>]]></description>
			<content:encoded><![CDATA[<p>第一步：编译内核</p>
<p>我是用的最小化安装，所以没有/usr/src/sys,要编译内核，需要先装上，按装办法<br />
选行sysinstall 选择 [Configure] -&gt; [Distribution] -&gt; [src] -&gt; [sys]及[base]<br />
第一步：<br />
#cd /usr/src/sys/i386/conf<br />
#cp GENGERIC DYITKERNEL<br />
这里的DYITKERNEL是自己起的名子，因为我维护dyit这个域名，所以起了这个名子<br />
上边这样子做有个坏处，就是可能因为硬盘空间不够，删除/usr/src目录,结果把DYITKERNEL也删除了，<br />
所以常用的做法是把DYITKERNEL放到别的地方，然后在i386下建议一个符号链接<br />
# mkdir /root/kernels<br />
# cp GENERIC /root/kernels/DYITKERNEL  <br />
# ln -s /root/kernels/DYITKERNEL<br />
把GENERIC放以/root/kernels下，然后在当前目录下建立一个符号链接</p>
<p>第二步：编辑内核配置文件<br />
#vi DYITKERNEL或#ee DYITKERNEL<br />
至于保留或注解掉哪些选择，一下根据自己的硬件，二是参见<br />
<a href="http://hi.baidu.com/ken_unc/blog/item/6ef56b22aa878cf6d6cae25c.html">http://hi.baidu.com/ken%5Func/blog/item/6ef56b22aa878cf6d6cae25c.html</a><br />
<a href="http://hi.baidu.com/my219/blog/item/792b9e117e64647ccb80c430.html">http://hi.baidu.com/my219/blog/item/792b9e117e64647ccb80c430.html</a></p>
<p>我这里主要做的是：</p>
<p>#cpu            I486_CPU<br />
#cpu            I586_CPU<br />
cpu             I686_CPU<br />
ident           DYITKERNEL<br />
//核心名称，自己随便起</p>
<p>#options SCHED_4BSD<br />
加上<br />
options SCHED_ULE<br />
其它的参考上边两个文章改了一些</p>
<p>第三步：编译<br />
# cd /usr/src<br />
编译内核<br />
# make buildkernel KERNCONF=DYITKERNEL<br />
编译过程中有时候会出错，复制下错误信息在google找下就解决了，一般就是就是有些device需要另一个device,你删除了<br />
安装新内核<br />
# make installkernel KERNCONF=DYITKERNEL<br />
#reboot<br />
注意: 使用这种方法联编内核时,需要安装完整的 FreeBSD 源代码<br />
那什么是安装完整的 FreeBSD 源代码呢，就是上边我们装的src/base src/sys,如果这两个没都装上，<br />
会编译失败.<br />
内核将会被复制到 /boot/kernel 目录中成为 /boot/kernel/kernel 而旧的则被移到 /boot/kernel.old/kernel。<br />
现在关闭系统， 然后用新的内核启动计算机,如果不能启动，参照<br />
<a href="http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/kernelconfig-trouble.html">http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/kernelconfig-trouble.html</a></p>
<p>第二：编译内核是我不会参考这里，只是区别，弄明白一些东西。<br />
如果要从freebsd6.2升级到7.0就要这样子做<br />
找freebsd编译内核的教程时经常会发现,需要make world或make buildworld什么的，这些是做什么的呢？<br />
我们知道，要编译最新的apache等应用软件的时候，先cvsup下ports树，然后编译。<br />
实际上freebsd的核心源代码，就是freebsd本身，也可以通过cvsup来更新的。更新后只是源码更新了。想以这些新源码编译内核<br />
和上边说的第一步就有区别了,就要用的make buildworld这些东西了<br />
freebsd手册中的相关部分:http://www.freebsd.org/doc/zh_CN/books/handbook/makeworld.html</p>
<p>具体的操作步骤：<br />
文章参考<a href="http://blog.chinaunix.net/u/26264/showart_409375.html">http://blog.chinaunix.net/u/26264/showart_409375.html</a><br />
2.1更新/usr/src下的源码<br />
#cd /usr/share/examples/cvsup/<br />
#cvsup -L 2 -h cvsup2.cn.freebsd.org standard-supfile<br />
#make buildworld<br />
2.2<br />
下边就同第一步一样了。<br />
#cd /usr/src<br />
#make buildkernel KERNCONF=DYITKERNEL<br />
#make installkernel KERNCONF=DYITKERNEL<br />
如果你懒的现在自己定义内核用<br />
#cd /usr/src<br />
#make buildkernel<br />
#make installkernel<br />
重新后进入单用户:<br />
进入单用户模式<br />
#mergemaster -p<br />
#make installworld<br />
#mergemaster<br />
#reboot</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/75.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux内核的主要配置文件的详细说明</title>
		<link>http://www.tisswb.com/archives/70.html</link>
		<comments>http://www.tisswb.com/archives/70.html#comments</comments>
		<pubDate>Sat, 21 Jun 2008 16:54:08 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[内核编译]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=70</guid>
		<description><![CDATA[1.Code maturity level options：代码成熟等级。
1.1.prompt for development and/or incomplete code/drivers.
在Linux的世界里，每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。很多参考书上说这是那些开发人员认为还不是很稳定的功能。但是我个人认为，这个是应该选的一个选项，系统默认是N，我建议还是选择Y，因为会使性能有所提高。
2.Loadable module support：对模块的支持。
2.1.Enable loadable module support.
启动动态载入额外模块的功能，系统默认为Y，建议选择该功能。
2.2.Set version information on all module symbols.
<span class="readmore"><a href="http://www.tisswb.com/archives/70.html" title="Linux内核的主要配置文件的详细说明" target="_blank">阅读全文——共8133字</a></span>]]></description>
			<content:encoded><![CDATA[<p><strong>1.Code maturity level options：代码成熟等级。</strong></p>
<p>1.1.prompt for development and/or incomplete code/drivers.<br />
在Linux的世界里，每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。很多参考书上说这是那些开发人员认为还不是很稳定的功能。但是我个人认为，这个是应该选的一个选项，系统默认是N，我建议还是选择Y，因为会使性能有所提高。</p>
<p><strong>2.Loadable module support：对模块的支持。</strong></p>
<p>2.1.Enable loadable module support.<br />
启动动态载入额外模块的功能，系统默认为Y，建议选择该功能。<br />
2.2.Set version information on all module symbols.<br />
通常，我们更新核心版本之后，模块要重新的编译。这个选项可以为某个版本的内核编译的模块在另一个内核下使用，但通常用不到，可以不选，系统默认为Y。<br />
2.3.Kernel module loader.<br />
让内核在启动时有自己装入必需模块的能力，建议选上。注意：在开机就会 mount 上来的partition 的 FS 、device driver 记得要 compiler 进 kernel，不能把它弄成 modules。请不要夸张到为了完全模组化而忘了把ext2fs和IDE dirver compiler 进 kernel 里。通常的建议是如果可能，将内核代码编译成可加载模块，因为这样可以使内核更小，而且更稳定。警告！千万不要将文件系统（File System）部分的代码编译为可加载模块，如果你犯了这个错误，将文件系统（File System）部分的代码编译为可加载模块，结果将是内核无法读取它自己的文件系统。 然后内核无法加载它自己的配置文件——一些很明显是在正常启动Linux时所必需的东西。我很少使用可加载模块：虽然会使内核文件变大，但我喜欢我的内核能够直接和硬件对话，这只是我自己的偏好。</p>
<p><strong>3.Processor type and features：处理器类型和特色</strong></p>
<p>3.1.Processor family.<br />
它会对每种CPU做最佳化，所以要选择正确的CPU否则会对该机的性能有一定的影响。不过，如果您的gCC编译器是2.7.0版以前的。那么只能选择386或是486。通常“/dev/cpu”选项更高级，多数用户并不需要选择它。需要注意的是不能选择比你的CPU类型还高级的CPU，否则可能不能正常工作。<br />
3.2.High Memory Support.<br />
只有当你的计算机有超过1GB内存时才是必须的。因此“High Memory Support”通常并不使用。<br />
3.3.Math emulation.<br />
这项询问是否需L1nux核心模拟数学浮点运算器。如果有486Dx、AMD以及Pentium机器的话，这个选项就不必选了，因为它们都有内建的浮点运算器。系统默认为N。<br />
3.4.MTTR （memory type range register）support.<br />
这项允许在PCI或者AGP总线众进行更快速的通讯。 由于现在所有系统都将它们的显卡接在PCI或AGP总线上，你通常需要选择“MTRR”：无论如何，打开这个选项通常都是安全的——即使你的机器没有使用PCI或AGP总线的显卡<br />
3.5.Symmetric multi-processing support.<br />
同步处理器支持该选项保证内核能够以最佳方式加载多处理器。假如被编译的计算机上有多个CPU。一般用户选择N。<br />
3.6.Mutiquad NUMA system.<br />
通常也需要多处理器，但它通常是关闭的。</p>
<p><strong>4.General setup：常规内核选项。</strong></p>
<p>4.1. Networking support.<br />
Linux网络支持，建议选上，否则可能导致内核无法编译。<br />
4.2. PCI support.<br />
现在的所有系统都使用PCI总线，系统默认为Y。<br />
4.3. PCI access mode.<br />
PCI存取模式。可供选择的有BIOS、Direct和Any，选Any吧。<br />
4.4. Support for hot-pluggabel devices.<br />
热插拔设备支持。支持的不是太好，可不选。<br />
4.5. PCMCIA/CardBus support&#8212;&#8212;&gt;PCMCIA/CardBus support.<br />
有PCMCIA就必选了。n4.6. System V IPC.<br />
如果将来想编译dosemu（DOS模拟器），它是一个让各个程序（process）同步且能彼此交换数据的函数库和一些系统的调用，建议选择Y。<br />
4.7. BSD Process Accounting.<br />
4.8. Sysctl support.<br />
除非你的内存少的可怜，否则你应该启动这个功能，启用该选项后内核会大8K，但能让你直接改变内核的参数而不必重新开机。以上三项是有关进程处理/IPC调用的，主要就是System V和BSD两种风格。如果你不是使用BSD，就按照缺省吧。<br />
4.9. Kernel core (/proc/kcore/) format.<br />
现在的Linux发行版以ELF格式作为它们的“内核核心格式”。<br />
4.10. Kernel support for A.OUT binaries.<br />
a．out的执行文件是比较古老的可执行码，用在比较早期的UNIX系统上。Linux最初也是使用这种码来执行程序，一直到ELF格式的可执行码出来后，有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码。将来势必完全取代a．out格式的可执行码。但目前由于沿有许多的程序还没有取代过来，所以只好选择Y，等将来有一天，全部的程序都变成了ELF的天下时，那时再disable掉。<br />
4.11. Power Management support.<br />
电源管理支持。<br />
4.12. Advanced Power Management BIOS support.<br />
高级电源管理BIOS支持。这通常是用在笔记本电脑上的东西，如果您有APM的BIOS，支持省电的设备的（有电池的那种），那么您可以选上这项，一般人这一项是选n，以避免一些可能会发生的问题。后有8个选项。ATX主板需要这两个选项来自动关闭计算机（turn off the computer，包括关闭电源）。</p>
<p><strong>5.Memory Technology Devices (MTD)：配置存储设备。</strong></p>
<p>5.1. Memory Technology Devices (MTD) support.<br />
你需要这个选项来使Linux可以读取闪存卡（Flash Card）之类的存储器。 闪存卡通常用于数码相机。 通过这个选项，Linux可以读取闪存卡（从特殊的设备中，比如读卡机），并且将图片保存为.jpg格式。除非你确定你需要它，否则不必打开它：如果你发现自己需要，你可以在以后加上。</p>
<p><strong>6.Parallel port support：配置并口。</strong></p>
<p>6.1. Parallel port support.<br />
如果不打算使用，就别选了。</p>
<p><strong>7.Plug and Play configuration：即插即用支持。</strong></p>
<p>7.1. Plug and Playsupport.<br />
几乎所有人都有即插即用设备，因此需要这个选项的支持。 打开这个选项使内核能够自动配置即插即用设备并且使它们在系统中能够使用。 有时需要在BIOS中打开“Plug &amp; PlayOS”，否则Linux（当然Windows也一样）无法配置即插即用设备。<br />
7.2. ISA Plug &amp; Play support.<br />
选项需要以即插即用模式运行的ISA卡（ISA Card）。 例如AWE64声卡。假如有这个设备的话可以选择Y。</p>
<p><strong>8.Block devices：块设备支持。</strong></p>
<p>8.1. Normal PC floppy disk support.<br />
普通PC软盘支持。大部分人都要使用软盘（floppy），所以这个选项要选择Y<br />
8.2. XT hard disk support.<br />
支持XT的古董硬盘，这是IBM电脑时代的东西，如果您还有这种很旧很旧的硬盘。那么，您可以把它编进核心或是编成一个模块。大部分的人这个选项都是选择N的。<br />
8.3. Loopback device support.<br />
这个选项的意思是说，可以将一个文件挂成一个文件系统。如果要烧光盘片的，那么您很有可能在把一个文件烧进去之前，看看这个文件是否符合IS09660的文件系统的内容，是否符合您的需求。而且，可以对这个文件系统加以保护。不过，如果您想做到这点的话，您必须有最新的mount程序，版本是在2.5X版以上的。而且如果您希望对这个文件系统加上保护，则您必须有des.1.tar.gz这个程序。</p>
<p><strong>9.Multiple devices driver support：多设备驱动支持。</strong></p>
<p>9.1. Multiple devices driver support.<br />
普通Linux用户通常不需要RAID（廉价冗余磁盘阵列）或者LVM支持。 普通用户选择Y。<br />
<strong>10.Networking options：网络选项。</strong></p>
<p>10.1. Packet Socket.<br />
选择“Y”，你需要这个选项来与网卡进行通信而不需要在内核中实现网络协议。 在这里我可以简捷一些：一般情况下，打开这个选项。 大多数选项是关闭的，除非你需要特殊的支持。<br />
10.2. TCP/IP networking.<br />
选择“Y”，内核将支持TCP/IP协议。建议用户选择Y。<br />
10.3. IP：multicasting.<br />
所谓的multicasting是群组广播，它是用在视频会议上的协议，如果想送一个网络封包（网络的数据），同样的一份数据将送往十部机器上。您可以连续送十次给十台机器（点对点的传送），也可以同时送一次，然后让十台机器同时接收到。当然后者比前者好，由于视频会议要求是最好每个人都能同时收到同一份信息，所以如果您有类似的需要，这个选项就要打开。同时您还必须去找相关的软件。</p>
<p><strong>11.Telephony Support：电话支持。</strong></p>
<p>11.1.Linux Telephony Support.<br />
这个选项只有当你在计算机中使用电话卡的时候才有用，比如在Internet上打电话。 大多数普通用户没有电话卡，因此不需要这个选项。</p>
<p><strong>12.ATA/IDE/MFM/RLL support：配置对ATA，IDE，MFM和RLL的支持。</strong></p>
<p>12.1. ATA/IDE/MFM/RLL support.<br />
几乎每个人都需要这些协议，除非你的机器只有SCSI硬盘而没有其他任何类型的硬盘。 因此，大多数用户都应该把它打开。 点击它下面的那一栏将会出现一个有更详细配置选项的菜单。仔细填写它们：它们极为重要！<br />
12.2.Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support.<br />
选项是每个使用IDE/ATAPI界面的人都需要的。 包括硬盘，磁带机，ZIP盘，光驱（CDROM）和刻录机（CD-R（W））。 基本上现在的所有计算机（译者注：这里指的是PC）都使用IDE/ATAPI界面，因此这个选项必须打开。<br />
12.3. Include IDE/ATA-2 DISK support.<br />
选项在支持硬盘的时候需要。 因此这个选项也必须打开，除非你的机器是一个纯粹的SCSI系统。<br />
其它的就使用缺省的选项吧，如果你使用了比较特殊的设备，比如PCMCIA等，就到里面找相应的选项吧。</p>
<p><strong>13.SCSI support：SCSI设备的支持。</strong></p>
<p>13.1. SCSI support.<br />
如果你有一块SCSI卡，你当然需要打开相关选项。这张截图只显示了当你为你的CD-R（W）选择“SCSI emulation support”<br />
13.2. SCSI disk support.<br />
指硬盘而言，如果有SCSI硬盘，那么就要选这个选项。<br />
13.3. SCSI tape support.<br />
指磁带机而言，如果您有SCSI的磁带机，那么就要选这个选项。<br />
13.4. SCSI CDROM support.<br />
指CDROM，如果您有SCSI光驱，这一项一定要选。<br />
13.5. SCSI generic support.<br />
指其他有关SCSI的东西，也许您有一台SCSI的扫描器或是烧录机，或是其他有关SCSI的配备，您就要选这一项。而且，除此之外，您还必须准备关于这些配备的软件。<br />
13.6. Probe a11 LUNs on each SCSI device.<br />
通常这个选项大部分的人都不会选。我们举个例子来说，如果您的SCSI光驱是那种多片装的，就是一台光驱，但可以一次放好几片光盘片的那种。这种我们叫做Lun。I2O Device Support：配置I2O设备支持。<br />
13.7. Verbose SCSI error reporting（kernel size+=12K）.<br />
如果认为您的SCSI硬件配备有些问题，想了解一下它出现的错误信息。那么您可以把这个选项选y，Linux核心会告诉您有关于您的SCSI配备的问题（如果有的话）。不过，它会增加核心约 12KB左右。<br />
13.8. SCSI low—level drivers.<br />
下面总共有接近30张的SCSI卡，您可以依需求做选择SCSI卡牌子。</p>
<p><strong>14.I2O Device Support：I20设备支持。</strong></p>
<p>14.1. I2O Device Support.<br />
如果你有I2O界面，你必须选择这个选项。大多数人没有，如果你也没有的话，可以直接将它关闭。</p>
<p><strong>15.Network Device Support：网络设备支持。</strong></p>
<p>15.1. Network Device Support.网络设备支持。<br />
上面选好协议了，现在该选设备了，可想而知，内容肯定多得很。还好还好，里面大概分类了，有ARCnet设备、Ethernet（10 or 100 Mbit）、Ethernet（1000Mbit）、Wireless LAN（non-hamradio）、Token Ring device、Wan interfaces、PCMCIA network device support几大类。我用的是10/100M的以太网，看来只需要选则这个了。还是10/100M的以太网设备熟悉，内容虽然多，一眼就可以看到我所用的RealTeck RTL-8139PCI Fast Ethernet Adapter support，为了免得麻烦，编译到内核里面好了，不选M了，选Y。耐心点，一般说来你都能找到自己用的网卡。如果没有，你只好自己到厂商那里去要驱动了。<br />
15.2. Dummy net driver support.<br />
如果有SLIP或PPP的传输协议，那么要把这一项打开。<br />
15.3. PPP（point－to－point）support.<br />
点对点协议。<br />
15.4. SLIP（serial line） support.<br />
这是MODEM族常用的一种通讯协议，必须通过一台Server（叫ISP）获取一个IP地址，然后利用这个IP地址，可以模拟以太网络，使用有关TCP／IP的程序。<br />
15.5.1. Ethernet（10 or 100Mbit）.<br />
如果您使用网络卡，那么这个选项一定要选y，否则以下对网络卡的选择将不会出现。或是您有网络卡，这时您同样的也要选y。像我们平常用的都是NE2000相容卡。<br />
15.5.2. EISA， VLB， PCI and on board controllers.<br />
选择网络卡，包括直接附在主机板上的那种。如果选择y，则底下会列出其他的网络卡让您做选择，这些卡对于一般人来说很少会去用到。所以大部分的人这项是选N的。<br />
15.5.3.Pocket and portable adaptors.<br />
通常用在可携式的电脑上，这类型的网络卡（口袋型的），由于体积很小在安装和取下方面很方便，因此笔记本相关电脑上便常常采用这种网络卡。<br />
15.5.4. Token Ring driver support.<br />
Token Ring是 IBM电脑上的网络。它叫令牌环网络，和以太网络是很类似的东西。如果您希望使用的Token Ring网络卡以便连接到这种网络，那么选Y，一般人都选N。<br />
15.5.5. ARCnet support.<br />
这也是一种网络卡，通常一般人用不到，所以选n。</p>
<p><strong>16.Amateur Radio support：配置业余广播支持。</strong></p>
<p>16.1. Amateur Radio support.<br />
如果你希望使用业余广播支持，应该打开这个选项，并且打开相应的驱动。 多数人不需要这个选项。</p>
<p><strong>17.IrDA（infrared）support：配置红外线（无线）通讯支持。</strong></p>
<p>17.1. IrDA（infrared）support.<br />
如果你有无线设备，比如无线鼠标或无线键盘，你应该打开这个选项。 多数桌面机器不需要这个选项。</p>
<p><strong>18.ISDN subsystem：配置ISDN。</strong></p>
<p>18.1. ISDN support.<br />
如果使用ISDN上网，这个就必不可少了。</p>
<p><strong>19.Old CD-ROM drivers（not SCSI、not IDE）：配置老CDROM。</strong></p>
<p>在486和386机器中，CDROM并不是通过硬盘IDE（ATAPI）控制器连接的，而是通过声卡或一块特殊的板卡。 使用这些老CDROM需要选择对应的驱动。这个选项在现在的系统中显得多余。</p>
<p><strong>20.Input Core Support：</strong></p>
<p>这个选项提供了2.4.x内核中最重要的特性之一的USB支持。 Input core support是处于内核与一些USB设备之间的层（Layer）。如果你拥有其中一种USB设备，你必须打开“inputcore support”选项。 现在所有的主板都有USB接口，所以，原则上你应该打开它。</p>
<p><strong>21.Character devices：字符设备。</strong></p>
<p>21.1. Virtual terminal.<br />
选择“y”，内核将支持虚拟终端。<br />
21.2. Support for console on virtual terminal.<br />
选择“y”，内核可将一个虚拟终端用作系统控制台。<br />
21.3. Standard/generic (dumb) serial support.<br />
选择“y”，内核将支持串行口。标准序列接口的选定。如果您是用serial的鼠标（大部分的人都是用这个），或是MODEM的话，则这一项一定要选。大部分的人这一项都选y。<br />
21.4. Support for console on serial port.<br />
选择“y”，内核可将一个串行口用作系统控制台。<br />
21.5. I2C support.<br />
I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For Linux，该项必选。<br />
21.6. Mice.<br />
鼠标。现在可以支持总线、串口、PS/2、C&amp;T 82C710 mouse port、PC110 digitizer pad&#8212;&#8212;根据需要选择。<br />
21.6.1. PS/2 mouse (aka &#8220;auxiliary device&#8221;) support.<br />
如果用户使用的是PS/2鼠标，则该选项应该选择“y”。<br />
21.7. Joysticks.<br />
手柄。即使在Linux下把手柄驱动起来意义也不是太大，游戏太少了。<br />
21.8. Watchdog Cards.<br />
虽然称为Cards，这个可以用纯软件来实现，当然也有硬件的。如果你把这个选中，那么就会在你的/dev下创建一个名为watchdog的文件，它可以记录你的系统的运行情况，一直到系统重新启动的1分钟左右。有了这个文件，你就可以恢复系统到重启前的状态了。</p>
<p><strong>24.Console drivers：配置控制台驱动。</strong></p>
<p>24.1. VGA text console.<br />
选项在VGA模式下启动字符模式。 多数人都需要它，因此这个玄学爱你跟通常是开着的。只有一些386计算机没有VGA兼容显卡，选择这个选项对于现在的多数计算机来说都没有问题。<br />
24.2. video mode selection support.<br />
使启动的时候能够使用字符模式的分辨率。 如果你希望一行能够有更多的字的话，这通常会给你提供方便，不过通常你不必打开它们。 下面两个选项是试验性质的，我建议你关闭它们。</p>
<p><strong>25.Sound sound：声卡驱动。<br />
</strong>在这部分，你可以配置声卡。如果你的发行版使用的是内核的标准声卡驱动，你必须正确选择你使用的声卡。</p>
<p><strong>26.USB support：配置USB支持。</strong></p>
<p><strong>27.kernel hacking：配置“kernel hacking”选项.这很简单：不要打开！</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/70.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux与windows的最大差异：Linux内核编译及详解</title>
		<link>http://www.tisswb.com/archives/69.html</link>
		<comments>http://www.tisswb.com/archives/69.html#comments</comments>
		<pubDate>Sat, 21 Jun 2008 16:38:42 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[windows相关]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[内核编译]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=69</guid>
		<description><![CDATA[windows系统优化有一个地方从来没有动过，那就是内核的优化，没有这个功能也就没有了很多的个性定制，这也许就是开源与不开源的巨大差异。下面说正题吧，
 一、内核简介
　　内核，是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统，决定着系统的性能和稳定性。
　　linux的一个重要的特点就是其源代码的公开性，所有的内核源程序都可以在 /usr/src/linux下找到，大部分应用软件也都是遵循GPL而设计的，你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中，由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。
　　想象一下，拥有了内核的源程序对你来说意味着什么？首先，我们可以了解系统是如何工作的。通过通读源代码，我们就可以了解系统的工作原理，这在Windows下简直是天方夜谭。其次，我们可以针对自己的情况，量体裁衣，定制适合自己的系统，这样就需要重新编译内核。在Windows下是什么情况呢？相信很多人都被越来越庞大的Windows整得莫名其妙过。再次，我们可以对内核进行修改，以符合自己的需要。这意味着什么？没错，相当于自己开发了一个操作系统，但是大部分的工作已经做好了，你所要做的就是要增加并实现自己需要的功能。在Windows下，除非你是微软的核心技术人员，否则就不用痴心妄想了。
<span class="readmore"><a href="http://www.tisswb.com/archives/69.html" title="Linux与windows的最大差异：Linux内核编译及详解" target="_blank">阅读全文——共9116字</a></span>]]></description>
			<content:encoded><![CDATA[<p>windows系统优化有一个地方从来没有动过，那就是内核的优化，没有这个功能也就没有了很多的个性定制，这也许就是开源与不开源的巨大差异。下面说正题吧，</p>
<p> 一、内核简介<br />
　　内核，是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统，决定着系统的性能和稳定性。<br />
　　linux的一个重要的特点就是其源代码的公开性，所有的内核源程序都可以在 /usr/src/linux下找到，大部分应用软件也都是遵循GPL而设计的，你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中，由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。<br />
　　想象一下，拥有了内核的源程序对你来说意味着什么？首先，我们可以了解系统是如何工作的。通过通读源代码，我们就可以了解系统的工作原理，这在Windows下简直是天方夜谭。其次，我们可以针对自己的情况，量体裁衣，定制适合自己的系统，这样就需要重新编译内核。在Windows下是什么情况呢？相信很多人都被越来越庞大的Windows整得莫名其妙过。再次，我们可以对内核进行修改，以符合自己的需要。这意味着什么？没错，相当于自己开发了一个操作系统，但是大部分的工作已经做好了，你所要做的就是要增加并实现自己需要的功能。在Windows下，除非你是微软的核心技术人员，否则就不用痴心妄想了。</p>
<p>二、内核版本号<br />
　　由于linux的源程序是完全公开的，任何人只要遵循GPL，就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型（bazaar，与cathedral&#8211;教堂模型&#8211;对应），为了确保这些无序的开发过程能够有序地进行，Linux采用了双树系统。一个树是稳定树（stable tree），另一个树是非稳定树（unstable tree）或者开发树（development tree）。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树，那么在开发树中经过测试以后，在稳定树中将进行相同的改进。一旦开发树经过了足够的发展，开发树就会成为新的稳定树。开发数就体现在源程序的版本号中；源程序版本号的形式为x.y.z：对于稳定树来说，y是偶数；对于开发树来说，y比相应的稳定树大一（因此，是奇数）。到目前为止，稳定树的最高版本是2.4.18；开发树的最新版本是2.5.10。下载内核版本请访问http://www.kernel.org。</p>
<p>三、为什么重新编译内核<br />
　　linux作为一个自由软件，在广大爱好者的支持下，内核版本不断更新。新的内核修订了旧内核的bug，并增加了许多新的特性。如果用户想要使用这些新特性，或想根据自己的系统度身定制一个更高效，更稳定的内核，就需要重新编译内核。<br />
　　通常，更新的内核会支持更多的硬件，具备更好的进程管理能力，运行速度更快、 更稳定，并且一般会修复老版本中发现的许多漏洞等，经常性地选择升级更新的系统内核是 linux使用者的必要操作内容。<br />
　　为了正确的合理地设置内核编译配置选项，从而只编译系统需要的功能的代码，一般主要有下面四个考虑：<br />
　　自己定制编译的内核运行更快（具有更少的代码）<br />
　　系统将拥有更多的内存（内核部分将不会被交换到虚拟内存中）<br />
　　不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞<br />
　　将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些</p>
<p>四、内核编译模式<br />
　　要增加对某部分功能的支持，比如网络之类，可以把相应部分编译到内核中（build-in），也可以把该部分编译成模块（module），动态调用。如果编译到内核中，在内核启动时就可以自动支持相应部分的功能，这样的优点是方便、速度快，机器一启动，你就可以使用这部分功能了；缺点是会使内核变得庞大起来，不管你是否需要这部分功能，它都会存在，这就是Windows惯用的招数，建议经常使用的部分直接编译到内核中，比如网卡。如果编译成模块，就会生成对应的.o文件，在使用的时候可以动态加载，优点是不会使内核过分庞大，缺点是你得自己来调用这些模块。</p>
<p>五、新版本内核的获取和更新<br />
　　linux内核版本发布的官方网站是http://www.kernel.org。新版本的内核分两种，一种是full Source版本，另外一种是patch文件，即补丁。完整的内核版本比较大，一般是 tar.gz或者是.bz2文件，二者分别是使用g***或者b***2进行压缩的文件，使用时需要解压缩。patch文件则比较小，一般只有几十K到几百K,但是patch文件是针对于特定的版本的，你需要找到自己对应的版本才能使用。<br />
　　编译内核需要root权限，以下操作都假定你是root用户。请把你需要升级的内核拷贝到/usr/src/下（下文中以2.4.18的内核的linux-2.4.18.tar.gz为例），命令为</p>
<p>#cp linux-2.4.18.tar.gz /usr/src</p>
<p>　　让我们先来查看一下当前/usr/src的内容，注意到有一个linux-2.4的符号链接，指向一个linux-2.4.7-10（以REDHAT7.2为例）的目录。这就是你所装linux的kernel源代码，删除这个链接。</p>
<p>　　现在解压我们下载的源程序文件。如果所下载的是.tar.gz（.tgz）文件，请使用下面的命令：</p>
<p>#tar -zxvf linux-2.4.18.tar.gz.tar.gz</p>
<p>　　如果你所下载的是.bz2文件，例如linux-2.4.0test8.tar.bz2，请使用下面的命令</p>
<p>#b***2 -d linux-2.4.18.tar.bz2<br />
#tar -xvf linux-2.4.18.tar</p>
<p>　　文件将解压到/usr/src/linux目录中,我们把它稍作修改：</p>
<p>#mv linux linux-2.4.18<br />
#ln -s linux-2.4.18 linux</p>
<p>　　如果下载的是patch文件，就可以进行patch操作（下面假设patch-2.4.18已经位于 /usr/src目录下了，否则你需要先把该文件拷贝到/usr/src下）：</p>
<p>#patch -p0 &lt; patch-2.4.18</p>
<p>　　<br />
六、内核编译<br />
　　通常要运行的第一个命令是：</p>
<p>＃cd /usr/src/linux<br />
＃make mrproper</p>
<p>　　该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖。由于我们使用刚下载的完整的源程序包进行编译，所以本步可以省略。而如果你多次使用了这些源程序编译内核，那么最好要先运行一下这个命令。<br />
　　确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的。它们分别链向源代码目录下的真正的、该计算机体系结构（对于PC机来说，使用的体系结构是i386）所需要的真正的include子目录。如：asm指向/usr/src/linux/include/asm-i386 等。若没有这些链接，就需要手工创建，按照下面的步骤进行：</p>
<p># cd /usr/include/<br />
# rm -r asm linux scsi<br />
# ln -s /usr/src/linux/include/asm-i386 asm<br />
# ln -s /usr/src/linux/include/linux linux<br />
# ln -s /usr/src/linux/include/scsi scsi</p>
<p>　　这是配置非常重要的一部分。删除掉/usr/include下的asm、linux和scsi链接后，再创建新的链接指向新内核源代码目录下的同名的目录。这些头文件目录包含着保证内核在系统上正确编译所需要的重要的头文件。现在你应该明白为什么我们上面又在/usr/src下 &#8220;多余&#8221;地创建了个名为linux的链接了吧？</p>
<p>　　接下来的内核配置过程比较烦琐，但是配置的适当与否与日后linux的运行直接相关，有必要了解一下一些主要的且经常用到的选项的设置。<br />
　　<br />
配置内核可以根据需要与爱好使用下面命令中的一个：</p>
<p>#make config（基于文本的最为传统的配置界面，不推荐使用）<br />
#make menuconfig（基于文本选单的配置界面，字符终端下推荐使用）<br />
#make xconfig（基于图形窗口模式的配置界面，Xwindow下推荐使用）<br />
#make oldconfig（如果只想在原来内核配置的基础上修改一些小地方，会省去不少麻烦）</p>
<p>　　这三个命令中，make xconfig的界面最为友好，如果你可以使用Xwindow，那么就推荐你使用这个命令，界面如下：</p>
<p>　　如果你不能使用Xwindow，那么就使用make menuconfig好了。界面虽然比上面一个差点，总比make config的要好多了，下图为make menuconfig的界面：<br />
　　选择相应的配置时，有三种选择，它们分别代表的含义如下：<br />
　　Y－-将该功能编译进内核<br />
　　N－-不将该功能编译进内核<br />
　　M－-将该功能编译成可以在需要时动态插入到内核中的模块<br />
　　如果使用的是make xconfig，使用鼠标就可以选择对应的选项。如果使用的是 make menuconfig，则需要使用空格键进行选取。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号，还有一种圆括号。用空格键选择时可以发现，中括号里要么是空，要么是&#8221;*&#8221;，而尖括号里可以是空，&#8221;*&#8221;和&#8221;M&#8221;。这表示前者对应的项要么不要，要么编译到内核里；后者则多一样选择，可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。<br />
　　在编译内核的过程中，最烦杂的事情就是这步配置工作了，很多新手都不清楚到底该如何选取这些选项。实际上在配置时，大部分选项可以使用其缺省值，只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块，有利于减小内核的长度，减小内核消耗的内存，简化该功能相应的环境改变时对内核的影响；不需要的功能就不要选；与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。</p>
<p>至于选项，因为比较复杂，只是简单做一介绍，编译时应视具体情况，参考帮助的内容再加以选择。</p>
<p>1. Code maturity level options<br />
　　代码成熟等级。此处只有一项：prompt for development and/or incomplete code/drivers，如果你要试验现在仍处于实验阶段的功能，比如khttpd、IPv6等，就必须把该项选择为Y了；否则可以把它选择为N。</p>
<p>2. Loadable module support<br />
　　对模块的支持。这里面有三项：</p>
<p>　　Enable loadable module support：除非你准备把所有需要的内容都编译到内核里面，否则该项应该是必选的。<br />
　　Set version inFORMation on all module symbols：可以不选它。<br />
　　Kernel module loader：让内核在启动时有自己装入必需模块的能力，建议选上。</p>
<p>3. Processor type and features<br />
　　CPU类型。内容蛮多的，不一一介绍了，有关的几个如下：</p>
<p>　　Processor family：根据你自己的情况选择CPU类型。<br />
　　High Memory Support：大容量内存的支持。可以支持到4G、64G，一般可以不选。<br />
　　Math emulation：协处理器仿真。协处理器是在386时代的宠儿，现在早已不用了。<br />
　　MTTR support：MTTR支持。可不选。<br />
　　Symmetric multi-processing support：对称多处理支持。除非你富到有多个CPU，否则就不用选了。</p>
<p>4. General setup<br />
　　这里是对最普通的一些属性进行设置。这部分内容非常多，一般使用缺省设置就可以了。下面介绍一下经常使用的一些选项：</p>
<p>　　Networking support：网络支持。必须，没有网卡也建议你选上。<br />
　　PCI support：PCI支持。如果使用了PCI的卡，当然必选。<br />
　　PCI access mode：PCI存取模式。可供选择的有BIOS、Direct和Any，选Any吧。<br />
　　Support for hot-pluggabel devices：热插拔设备支持。支持的不是太好，可不选。<br />
　　PCMCIA/CardBus support：PCMCIA/CardBus支持。有PCMCIA就必选了。<br />
　　System V IPC<br />
　　BSD Process Accounting<br />
　　Sysctl support：以上三项是有关进程处理/IPC调用的，主要就是System V和BSD两种风格。如果你不是使用BSD，就按照缺省吧。<br />
　　Power Management support：电源管理支持。<br />
　　Advanced Power Management BIOS support：高级电源管理BIOS支持。</p>
<p>5. Memory Technology Device（MTD）<br />
　　MTD设备支持。可不选。</p>
<p>6. Parallel port support<br />
　　并口支持。如果不打算使用串口，就别选了。</p>
<p>7. Plug and Play configuration<br />
　　即插即用支持。虽然linux对即插即用目前支持的不如Windows好，但是还是选上吧，这样你可以拔下鼠标之类的体验一下Linux下即插即用的感觉。</p>
<p>8. Block devices<br />
　　块设备支持。这个就得针对自己的情况来选了，简单说明一下吧：</p>
<p>　　Normal PC floppy disk support：普通PC软盘支持。这个应该必选。<br />
　　XT hard disk support：<br />
　　Compaq ***ART2 support：<br />
　　Mulex DAC960/DAC1100 PCI RAID Controller support：RAID镜像用的。<br />
　　Loopback device support：<br />
　　Network block device support：网络块设备支持。如果想访问网上邻居的东西，就选上。<br />
　　Logical volume manager（LVM）support：逻辑卷管理支持。<br />
　　Multiple devices driver support：多设备驱动支持。<br />
　　RAM disk support：RAM盘支持。</p>
<p>9. Networking options<br />
　　网络选项。这里配置的是网络协议。内容太多了，不一一介绍了，自己看吧，如果你对网络协议有所了解的话，应该可以看懂的。如果懒得看，使用缺省选项（肯定要选中TCP/IP networking哦）就可以了。让我们看看，TCP/IP、ATM、IPX、DECnet、Appletalk&#8230;&#8230;支持的协议好多哦，IPv6也支持了，Qos and/or fair queueing（服务质量公平调度）也支持了，还有kHTTPd，不过这些都还在实验阶段。</p>
<p>10. Telephony Support<br />
　　电话支持。linux下可以支持电话卡，这样你就可以在IP上使用普通的电话提供语音服务了。记住，电话卡可和modem没有任何关系哦。</p>
<p>11. ATA/IDE/MFM/RLL support<br />
　　这个是有关各种接口的硬盘/光驱/磁带/软盘支持的，内容太多了，使用缺省的选项吧，如果你使用了比较特殊的设备，比如PCMCIA等，就到里面自己找相应的选项吧。</p>
<p>12. SCSI support<br />
　　SCSI设备的支持。我没有SCSI的设备，所以根本就不用选，如果你用了SCSI的硬盘/光驱/磁带等设备，自己找好了。</p>
<p>13. Fusion MPT device support<br />
　　需要Fusion MPT兼容PCI适配器，不用选。</p>
<p>14. I2O device support<br />
　　需要I2O接口适配器支持，在智能Input/Output（I2O）体系接口中使用。</p>
<p>15. Network device support<br />
　　网络设备支持。上面选好协议了，现在该选设备了，可想而知，内容肯定多得很。还好还好，里面大概分类了，有ARCnet设备、Ethernet（10 or 100 Mbit）、Ethernet（1000Mbit）、Wireless LAN（non-hamradio）、Token Ring device、Wan interfaces、PCMCIA network device support几大类。我用的是10/100M的以太网，看来只需要选则这个了。还是10/100M的以太网设备熟悉，内容虽然多，一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support，为了免得麻烦，编译到内核里面好了，不选M了，选Y。耐心点，一般说来你都能找到自己用的网卡。如果没有，你只好自己到厂商那里去要驱动了。</p>
<p>16. Amateur Radio support<br />
　　配置业余无线广播。</p>
<p>17. IrDA（inf***ed）support<br />
　　红外线支持。</p>
<p>18. ISDN subsystem<br />
　　如果你使用ISDN上网，这个就必不可少了。</p>
<p>19. Old CD-ROM drivers（not SCSI、not IDE）<br />
　　做的可真周到，原来那些非SCSI/IDE口的光驱谁还在用啊，自己选吧，用IDE的CD-ROM不用选。</p>
<p>20. Character devices<br />
　　字符设备。这个内容又太多了，先使用缺省设置，需要的话自己就修改。把大类介绍一下吧：</p>
<p>　　I2C support：I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For linux，该项必选。<br />
　　Mice：鼠标。现在可以支持总线、串口、PS/2、C&amp;T 82C710 mouse port、PC110 digitizer pad，自己根据需要选择。<br />
　　Joysticks：手柄。即使在linux下把手柄驱动起来意义也不是太大，游戏太少了。<br />
　　Watchdog Cards：虽然称为Cards，这个可以用纯软件来实现，当然也有硬件的。如果你把这个选中，那么就会在你的/dev下创建一个名为watchdog的文件，它可以记录你的系统的运行情况，一直到系统重新启动的1分钟左右。有了这个文件，你就可以恢复系统到重启前的状态了。<br />
　　Video For linux：支持有关的音频/视频卡。<br />
　　Ftape, the floppy tape device driver：<br />
　　PCMCIA character device support：</p>
<p>21. File systems<br />
　　文件系统。内容又太多了，老法子，在缺省选项的基础上进行修改。介绍以下几项：</p>
<p>　　Quota support：Quota可以限制每个用户可以使用的硬盘空间的上限，在多用户共同使用一台主机的情况中十分有效。<br />
　　DOS FAT fs support：DOS FAT文件格式的支持，可以支持FAT16、FAT32。<br />
　　ISO 9660 CD-ROM file system support：光盘使用的就是ISO 9660的文件格式。<br />
　　NTFS file system support：ntfs是NT使用的文件格式。<br />
　　/proc file system support：/proc文件系统是linux提供给用户和系统进行交互的通道，建议选上，否则有些功能没法正确执行。</p>
<p>　　还有另外三个大类都归到这儿了：Network File Systems（网络文件系统）、Partition Types（分区类型）、Native Language Support（本地语言支持）。值得一提的是Network File Systems里面的两种：NFS和***B分别是linux和Windows相互以网络邻居的形式访问对方所使用的文件系统，根据需要加以选择。</p>
<p>22. Console drivers<br />
　　控制台驱动。一般使用VGA text console就可以了，标准的80*25的文本控制台。</p>
<p>23. Sound<br />
　　声卡驱动。如果你能在列表中找到声卡驱动那自然最好，否则就试试OSS了。</p>
<p>24. USB supprot<br />
　　USB支持。很多USB设备，比如鼠标、调制解调器、打印机、扫描仪等，在linux都可以得到支持，根据需要自行选择。</p>
<p>25. Kernel hacking<br />
　　配置了这个，即使在系统崩溃时，你也可以进行一定的工作了。普通用户是用不着这个功能的。</p>
<p>　　配置完后，存盘退出，当然你也可以把现在的配置文件保存起来，这样下次再配置的时候就省力气了。</p>
<p>接下来是编译，输入以下命令。</p>
<p>#make dep<br />
#make clean<br />
#make bzImage或make zImage<br />
#make modules<br />
#make modules_install<br />
#depmod -a</p>
<p>　　第一个命令make dep实际上读取配置过程生成的配置文件，来创建对应于配置的依赖关系树，从而决定哪些需要编译而那些不需要；第二命令make clean完成删除前面步骤留下的文件，以避免出现一些错误；make zImage和make bzImage则实现完全编译内核，二者生成的内核都是使用g***压缩的，只要使用一个就够了，它们的区别在于使用make bzImage可以生成大一点的内核。建议大家使用make bzImage命令。<br />
　　后面三个命令只有在你进行配置的过程中，在回答Enable loadable module support (CONFIG_MODULES)时选了&#8221;Yes&#8221;才是必要的，make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。<br />
　　严格说来，depmod -a命令和编译过程并没有关系，它是生成模块间的依赖关系，这样你启动新内核之后，使用modprobe命令加载模块时就能正确地定位模块。</p>
<p>更新</p>
<p>　　经过以上的步骤，我们终于得到了新版本的内核。为了能够使用新版本的内核，我们还需要做一些改动：</p>
<p>#cp /usr/src/linux/System.map /boot/System.map-2.4.18<br />
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.18</p>
<p>　　以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz，使其指向新内核的文件：</p>
<p>#cd /boot;rm -f System.map vmlinuz<br />
#ln -s vmlinuz-2.4.18 vmlinuz<br />
#ln -s System.map-2.4.18 System.map</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/69.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

