Radio Controller Device这个显卡驱动卸载后会怎样会怎么样

support为了免得麻烦,编译到内核里媔好了不选M了,选Y耐心点,一般说来你都能找到自己用的网卡如果没有,你只好自己到厂商那里去要驱动了
如果有SLIP或PPP的传输协议,那么要把这一项打开因为一来它不会让您的linux核心增大。二来对某些应用程序来说,它可以让我们模拟出来的TCP/IP环境更像TCP/IP环境如果您没有SLIP或PPP 协议,就不用打开了#EQL(serial line load balancing) support------如果有两个MODEM,两条电话线而且用SLIP或PPP协议可以用这个Driver以便让您的MODEM有两倍的速度。当然在网络的另┅端也要有同样的设备。
点对点协议近年来,PPP协议已经慢慢的取代SLIP的规定了原因是PPP协议可以获取相同的IP地址,而SLIP则一直在改变IP地址茬许多的方面,PPP都胜过SLIP协议
这是MODEM族常用的一种通讯协议,必须通过一台Server(叫ISP)获取一个IP地址然后利用这个IP地址,可以模拟以太网络使用有关TCP/IP的程序。
如果您使用网络卡那么这个选项一定要选y,否则以下对网络卡的选择将不会出现或是您有网络卡,这时您同样的吔要选y之后,下面会列出许多网络卡让您选择像我们平常用的都是NE2000相容卡。
选择网络卡包括直接附在主机板上的那种。如果选择y則底下会列出其他的网络卡让您做选择,这些卡对于一般人来说很少会去用到所以大部分的人这项是选N的。
通常用在可携式的电脑上這类型的网络卡(口袋型的),由于体积很小在安装和取下方面很方便因此笔记本相关电脑上便常常采用这种网络卡。
Token Ring是 IBM电脑上的网络它叫令牌环网络,和以太网络是很类似的东西如果您希望使用的Token Ring网络卡以便连接到这种网络,那么选Y一般人都选N。
这也是一种网络鉲通常一般人用不到,所以选n如果您有这样的网络卡,请看Documentation/networking/arcnet.txt的说明

经验谈:这一般是新手难办的一个地方。


a. 我从来都没有在沒有网卡支持的情况下将linux内核编译成功过 因此,你应该打开这个选项 你还应该打开虚拟驱动(Dummy Driver),作为内核的一部分或者一个可加载模块 当没有物理网卡的时候,Linux需要一块虚拟网卡(Dummy Network)即使已经有了物理网卡,Linux仍然经常使用虚拟网卡 如果你没有打开它们,内核将會告诉你PPP模块(PPP Module)不存在——即使你已经编译了错误信息(Error Message)对于查找真正问题的所在几乎没有作用。你可以将它们都选上这样可以避免一些问题:如果内核需要它们,就会使用它们如果不需要,就不用
我的以太网卡是一块使用 3c509/3c529芯片的3COM百兆网卡。因为我并不需要与網络进行物理连接(我有网卡但是我并不通过modem来访问网络),因此我将这个趋同编译成一个可加载模块以便万一要需要网卡的时候可鉯使用。 你当然需要选择与你机器的情况相符的网络类型和网卡另外,你必须使用诸如SuSE linux下的"yast2"之类的配置程序配置网络链接
如果你希望使用业余广播支持,应该打开这个选项并且打开相应的驱动。 多数人不需要这个选项
如果你有无线设备,比如无线鼠标或无线键盘伱应该打开这个选项。 多数桌面机器不需要这个选项

ISDN,这通常需要电信局来做安装对于在家工作的人来说,ISDN可能是最舒适最便宜的一種方式因此有愈来愈多的人使用它。不过除非是公司,不然一般人很少会使用到ISDN的所以这部分的选项大都选N。如果您选择Y则下面會出现一些有关ISDN的问题。如果需要用到ISDN可以去看看杂志的介绍。只要是有关网络的杂志应该都会有介绍还需要启用Support


在486和386机器中,CDROM并不昰通过硬盘IDE(ATAPI)控制器连接的而是通过声卡或一块特殊的板卡。 使用这些老CDROM需要选择对应的驱动 这个选项在现在的系统中显得多余。
這个选项提供了2.4.x内核中最重要的特性之一的USB支持 Input core support是处于内核与一些USB设备之间的层(Layer)。如果你拥有其中一种USB设备你必须打开"input core support"选项。 现茬所有的主板都有USB接口所以,原则上你应该打开它

terminal")告诉内核将诸如模块错误、内核错误启动信息之类的警告信息发送到什么地方,茬XWindow下通常设置一个专门的窗口来接收内核信息,但是在字符界面下这些信息通常被发送到第一个虚拟终端(Virtual Terminal)(CTRL+ALT+F1)。 将这个选项打开 你还可以选择将信息发送到串口(Serial Port)设备,比如打印机或其他的终端(第四个选项) 如果将信息发送到打印机,你还必须使用选项三噭活串口同样,如果你使用串口鼠标(Serial Mouse)你也必须激活串口。 再说一遍选项三("standard/generic ( and compatible UARTs) serial support")通常是打开的。在我的系统中我将它编译为一個可加载模块。原因是在启动的时候SuSE老抱怨"serial support"丢失而如果确定模块的确存在,将其编译为可加载模块是避免上述抱怨的的好办法 配置字苻型设备是极为重要的工作。如果你的配置不正确你有可能得到一个根本不能工作的系统。
如果你想使用远程使用自己机器上的xterm比如通过telnet或者ssh,你必须打开"unix98 PTY support"选项 桌面系统看上去似乎不需要这个选项,但是许多后台进程需要使用这个选项因此,无论如何将它打开是個好主意,至少可以避免启动时显示错误信息(至少SuSE是这样) 所有拥有并口打印机的人当然需要"Parallel printer support"。 support"选项:这是视频处理卡所需要的但昰如果你发现你需要它,你通常可以在以后加入到内核中——只要你觉得内核运行得好如果你使用鼠标和游戏杆,你需要打开相应的支歭但是并不是所有鼠标都使用这个驱动。 现在的CD-R(W)使需要"QIC-02 Tape support"的磁带机(Tape Drives)大量闲置因此这个选项通常是关闭的。

如果你使用串口鼠标你根本不需要这个选项的任何项目,但是所有其他类型的鼠标则需要在这里进行参数配置 如果你使用最初的总线鼠标(ORIGINAL Bus Mouse)你需要打开朂上面的选项。 现在的许多计算机使用另外一种鼠标通常(而且是错误的)称作"busmouse"或者"PS/2鼠标"。这些鼠标通常连接到/dev/aux并且插在一个与键盘楿同的小接口中。 device driver"选项需要对连接到软驱控制器的磁带机的支持甚至即使你有一个那样的磁带机,这个选项都不是必须的至少不是首偠的。 其他选项需要3D显卡 如果你有一块连接到AGP总线(AGP Bus)的显卡,你需要打开AGP支持还需要相应的驱动(在/dev/agpgart(AGP支持))。注意你可以编譯一个不包含这些选项,但是能够正常工作的内核但那没必要! 如果没有这些选项,XWindow 4.0或者更高版本(被现在的多数发行版使用)将无法笁作 我的机器有一块AGP显卡,nVidia TNT2但是内核的相应模块并不支持这块显卡(nVidia拒绝透露开发驱动所必须的技术细节)。 很不幸打开AGP支持对于峩来说没有多大意义。虽然有这个问题我仍然可以在不需要内核驱动的情况下使用XWindow 4.0。 "Direct rendering support"是为XWindow 4.0提供的图形加速选项 要想使用这个选项,你嘚显卡必须能够被支持而且你必须使用XFree86 4.0及以上版本。 另外你还需要打开"AGP support"选项。 你可以编译一个不包含这些选项的内核它照样可以正瑺工作。

如果你有一块视频处理卡或者广播卡需要打开这个选项。 跟前面一样这个选项不是必需的。


选择"y"内核将提供对automounter的支持,使系统在启动时自动 mount远程文件系统
DOS FAT文件格式的支持,可以支持FAT16、FAT32这个选项是DOS的文件系统,如果您没有选y则下面的MSDOS,VFATumsdos将不会出现。
如果你想要在 linux 下使用你硬盘中的 MS-DOS 分割区或是想将用 MS-DOS 格式化的磁盘挂进来的话,回答y
windows95所支持的文件系统,是我们常说的vfat文件系统如果您嘚系统中装有windows95,那么选择这个文件系统将对以让您看到windows95的长文件名
如果把linux装进DOS的一个目录下那么您则要选择这一项。不建议这样做因為如此一来,就不能看到长文件名了而且效率上不是很好。
Quota可以限制每个用户可以使用的硬盘空间的上限在多用户共同使用一台主机嘚情况中十分有效。
这是最 slick 的文件系统之一它不是你硬盘分割区里的任何东西,不占用硬盘的空间而是核心与程序之间的文件系统介媔,它表示的只是内存里头的状况和各个程序执行的情形它也记录了您硬件上配备。许多程序工具(像″ps ″)都会用到它。如果已经將它安装好了有空不妨试试看″cat /proc/meminfo ″或者是″ cat /proc/devices ″。有些 shells
如果你在网络环境下而且想要分享档案回答 y 。如果希望挂上别的电脑的文件系统那么这个选项一定要选进去。它可以让您利用网络把别人的硬盘当成自己的来使用(把它变成一个目录)对于一般人来说,这个选项昰选y
这个文件系统让您可以挂上windows95或windowsNT的文件系统,也就是您也可以抓到在windows下网上邻居上的电脑。
分区类型该选项支持一些不太常用的汾区类型,用户如果需要在相应的选项上选择"y"即可。
在这里你可以指定linux能够访问的文件系统。或许你希望制作一个能够访问Windows分区和Windows软盤的内核但是你必须保证内核可以访问Linux自己的ext2文件系统,或者是更新的 ReiserFS文件系统如果你没有这样做,Linux会无法启动因为内核无法读取咜自己的启动盘。要想访问DOS/Windows软盘和分区你需要打开"DOS FAT support"选项:但是要想访问Windows NT/2000的分区,你需要另外一个只读(Read-only)驱动这将在后面进行选择。偠想读写DOS/Windows分区和软盘你需要打开"MSDOS fs support"选项(注意,"DOS FAT support"并不提供读写功能) 事实上,每个人都希望这样因此通常这个选项是开着的。 9660标准中使用长文件名多数人都希望能够读取现在的光盘,因此这些选项通常也是打开的 图详细讲述了一些附加选项,其中包括包括Linux的ext2文件系統

FS)你必须打开这个选项,并且编译进内核(不是作为可加载模块)!图32和33没有显示"ReiserFS"选项它也可以在这里打开:Ext2文件系统的继承者,ReiserFS能够更好的对付由于断电或者类似情况而带来的对文件系统的破坏 目前ReiserFS仍然处于开发阶段,因此被标志为试验代码即使是这样,多数發行版现在都已经支持ReiserFS但是,虽然ReiserFS被认为会在将来取代Ext2我现在并不推荐将它作为所有分区的文件系统。 如果你(在Windows下)使用一个叫"packetCD"的將光盘虚拟成低速磁盘的软件你需要打开"UDF file system support"选项 Types"选项是一个很高级但对于有效的使用Linux内核来说并不必要的选项。 最好是关闭它


选项在VGA模式下启动字符模式。 多数人都需要它因此这个玄学爱你跟通常是开着的。 只有一些386计算机没有VGA兼容显卡选择这个选项对于现在的多数計算机来说都没有问题。
使启动的时候能够使用字符模式的分辨率 如果你希望一行能够有更多的字的话,这通常会给你提供方便不过通常你不必打开它们。 下面两个选项是试验性质的我建议你关闭它们。
在这部分你可以配置声卡。 如果你的linux发行版使用ALSA的声卡驱动(仳如SuSE 6.3及以上版本)将"sound card support"作为可加载模块就足够了。 ALSA驱动将会在待会儿被编译并连接进来(见"SuSE和ALSA声卡驱动")如果你的发行版使用的是内核嘚标准声卡驱动,你必须正确选择你使用的声卡 事实上,这里列出了所有牌子的声卡因此,理论上选择声卡不成问题如果你的声卡茬你的发行版的标准内核下工作的很正常,你也可以使用配置程序(比如SuSE的"yast2")来找出你的声卡使用什么驱动请放心,声卡并不是十分关鍵的:如果某些地方出错你将会失去音效,但是内核仍然可以正常工作

前言之前言:谁是这篇文章的读鍺

  不习惯读英文资料的非LINUX高手

  声卡不响光驱不转连不上网等等,只要有问题就行

  开发嵌入式操作系统

  现在流行的ODL(only disk linux)中做內核部分那些文章不介绍此点内容。我正在做完工后整理资料。

  笔者耗时3月搜集并整理大量资料,在儿童节前连续工作18个小时後给小企鹅送了这份礼物。

  笔者自信是目前为止KERNEL编译方面最完备的中文资料(将不断翻译补充)这可是毕业论文哪!

  为什么偠放网上呢?首先找这方面资料太难了文章对各位LINUX爱好者会有所帮助。其次取之于网用之于网。

  欢迎使用这篇文章请随便引用,这才符合LINUX自由软件的精神嘛不过别忘了提提我的名字,就算为我的辛苦付了点稿酬

  介于内核方面资料较少,欢迎在这篇文章中添加和修改内容但不要过多删除,笔者列表要加入你的名字让我们为把它变成数百页的资料而努力。OK交个朋友吧, 我是玉玉安email :

  第一章 内核编译的基础

  第二章 内核编译的流程

  第二节配置内核 {核心内容}

  2..处理器类型和特色

  9.SCSI设备的支持

  10.I2O接口适配器

  11.网络设备支持

  12.配置业余无线广播

  15.旧型光驱类型(非IDE界面的光驱)

  附录:LILO分析

  第三章 内核编译的应用

  第一节嵌入式Linux技术

  第二节你的Linux有多大(及实践结果)

  近几年,linux大行其道令不满windows蓝屏的使用者跃跃欲试,结果发现linux安装不及windows方便界面不及windows友恏,配置不及windows容易软件不及windows丰富,以至浅尝辄止

  其实, Linux有windows无可比拟的两个优势:网络应用和嵌入式技术,这也正是未来最有前途的方向同时此课题是从理论上设计具有嵌入式Linux操作系统器件的重要组成部分。

  如要涉足这两个方面就必须对内核有深刻理解。当然您可以从源代码入手,但前提是您拥有程序设计和操作系统等多方面专业知识否则,就利用现成的Linux kernel从编译内核开始吧不幸的是,内核编译方面的资料匮乏以上两个原因使我写这篇论文成为必要。我可以自信得说这是目前最详尽的内核编译方面的中文资料。

  值嘚一提的是我在搜集翻译资料的过程中,获得了操作系统、程序设计、硬件设备、网络通信等各方各面的知识极大的拓宽了视野,真囸学有所获

  感谢所有为Linux发展作出贡献的人,感谢所有Linux中文网站为促进Linux在中国的发展作出的不懈努力他们是我搜集资料的来源。

  特别感谢我的指导老师——官伯然教授和高斌博士正是他们的辛勤指导让我顺利完成毕业设计。

  西电科大 :李玉元

  注意------上机實践结果

第一章 内核编译的基础

  内核是一个操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统决萣着系统的性能和稳定性。 就好比DOS下的IO.SYS和MSDOS.SYS一体我们可以把这两个文件叫做DOS的核心。Linux也有它的核心通常在根目录下,一个叫vmlinuz的文件我们用这个文件来控制我们的整台PC,包括周边设备和软硬磁盘机、CD-ROM、声卡等简单地说,核心就是操作系统本身没有了它,就像一個无人住的家没有人去维持这个家的动作。一个安定的家需要一个很用心已能当机立断的主人:一部电脑也需要很有效率已稳定的核心也就是操作系统。因此核心是整个系统维持下去的关键。

  Linux的一个重要的特点就是其源代码的公开性所有的内核源程序都可以在/usr/src/linux丅找到,大部分应用软件也都是遵循GPL而设计的你都可以获取相应的源程序代码。任何一个软件工程师都可以将自己认为优秀的代码加入箌其中由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表

  想象┅下,拥有了内核的源程序对你来说意味着什么首先,我们可以了解系统是如何工作的通过通读源代码,我们就可以了解系统的工作原理这在Windows下简直是天方夜谭。其次我们可以针对自己的情况,量体裁衣定制适合自己的系统,这样就需要重新编译内核在Windows下是什麼情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过再次,我们可以对内核进行修改以符合自己的需要。这意味着什么没错,楿当于自己开发了一个操作系统但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能在Windows下,除非你是微软的核心技术人员否则就不用痴心妄想了。

  先介绍一下编译核心的选项希望能对大家消除对内核的神秘感有所帮助。

  2..处理器类型囷特色

  9.SCSI设备的支持

  10.I2O接口适配器

  11.网络设备支持

  12.配置业余无线广播

  15.旧型的光驱类型(非IDE界面的光驱)

  由于Linux的源程序是完铨公开的任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应)为了确保这些無序的开发过程能够有序地进行,Linux采用了双树系统一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(development tree)一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树那么在开发树中经过测试以后,在稳定树中将进行楿同的改进一旦开发树经过了足够的发展,开发树就会成为新的稳定树开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:對于稳定树来说,y是偶数;对于开发树来说y比相应的稳定树大一(因此,是奇数)确定是以″ root ″的身份签入,然后cd 到 /usr/src uname -r 这个指令将会顯示版本。内核版本的更新可以访问

  Linux作为一个自由软件,在广大爱好者的支持下内核版本不断更新。新的内核修订了旧内核的bug並增加了许多新的特性。如果用户想要使用这些新特性或想根据自己的系统度身定制一个更高效,更稳定的内核就需要重新编译内核。

  通常更新的内核会支持更多的硬件,具备更好的进程管理能力运行速度更快、更稳定,并且一般会修复老版本中发现的许多漏洞等经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。

  为了正确的合理地设置内核编译配置选项从而只编译系统需要嘚功能的代码,一般主要有下面四个考虑:

  ---自己定制编译的内核运行更快(具有更少的代码)

  ---系统将拥有更多的内存(内核部分將不会被交换到虚拟内存中)

  ---不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞

  ---将某种功能编译为模块方式会比编譯到内核内的方式速度要慢一些

  以上是针对成熟的Linux套件如Redhat Linux而言,我的目的是为建造嵌入式Linux操作系统做准备也是必由之路。

第一部分 新蝂本内核的获取和更新

  Linux内核版本发布的官方网站是国内各大ftp上一般都可以找到某些版本的内核。新版本的内核的发布有两种形式┅种是完整的内核版本,另外一种是patch文件即补丁。完整的内核版本比较大比如linux-2.4.0-test8.tar.bz2就有18M之多。完整内核版本一般是.tar.gz(.tgz)文件或者是.bz2文件②者分别是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩patch文件则比较小,一般只有几十K到几百K极少的会超过1M。但是patch文件是针对于特定嘚版本的需要找到自己对应的版本才能使用。

  编译内核需要root权限把需要升级的内核拷贝到/usr/src/下(下文中以2.2.16的内核的linux-2.2.16tar.gz为例),命令为


  先查看当前/usr/src的内容注意到有一个linux的符号链接,它指向一个类似于linux-2.2.14(对应于现在使用的内核版本号)的目录首先删除这个链接:


  现在解压下载的源程序文件。如果所下载的是.tar.gz(.tgz)文件使用命令:



  现在再来看一下/usr/src下的内容,发现现在有了一个名为linux的目录里媔就是需要升级到的版本的内核的源程序。还记得那个名为linux的链接么之所以使用那个链接就是防止在升级内核的时候会不慎把原来版本內核的源程序给覆盖掉了。现在也需要同样处理:


第二部分 准备主机板和相关硬件的说明手册

  其实也不用太详细只要知道您的硬件昰属于哪一类型就行了。例如:有一张SCSI卡那就要知道这张卡的名字,有一台cd-rom,就要知道这台光驱是哪一种牌子的是否为标准的IDE/ATAPI界面,还昰另有专属接口卡呢或者,主机版是否有支持Triton芯片(通常586以上的电脑常有)这些信息能帮助我们,使得设定变得清楚且容易

  因此,不管您有什么使用手册准备好吧。即使现在不用将来还是会用到的(设X-window system时要显示卡的手册)。

第三部分 检查声卡的IRQ设定和其种類

  如果配有一张声卡除了要知道卡的种类外(例如 Sound Blaster)还需要知道这张卡的IRQ地址。一般来说卢卡的IRQ地址是5或7而IO地址则为220。DMA则l不过,有时不同的声卡可能会有不同的设定因为稍后的选项里,就会要填入这些数字

第四部分 编译核心的硬件需求

  在编译核心时,确萣您的RAM最好在8MB以上 否则可能会很慢而且问题会很多,记得查看swap有没有打开(用free指令)此外,最好不要超频不然很有可能会发生signal 11的错誤,使得编到一半的核心停了下来其实编译核心就好比编译程序一样,只是因为构成核心的程序太多了因此我们能小心尽量小心。

第②章 内核编译的流程

  发现并修理故障(仔细看我的文章应该没多少问题了)

  通常要运行的第一个命令是:


  该命令确保源代碼目录下没有不正确的目标.o文件以及文件的互相依赖。如使用刚下载的完整的源程序包进行编译本步可以省略。而如果多次使用了这些源程序编译内核那么最好要先运行一下这个命令。

  确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的它们分别链向源代码目錄下的真正的、该计算机体系结构(对于PC机来说,使用的体系结构是i386)所需要的真正的include子目录如:asm指向/usr/src/linux/include/asm-i386等。若没有这些链接就需要手笁创建,按照下面的步骤进行:


  这是配置非常重要的一部分删除掉/usr/include下的asm、linux和scsi链接后,再创建新的链接指向新内核源代码目录下的同洺的目录这些头文件目录包含着保证内核在系统上正确编译所需要的重要的头文件。也是上面又在/usr/src下"多余"地创建了个名为linux的链接的原因の一.

  一旦万事俱备转到/usr/src/linux。现在你也许想停下细读一下文档文件实际上如果你有些特别的硬件,或几种光驱驱动程需要自己动手设置他们通常这样做,当引导时这些驱动程序将给出警告这并不碍事他们照常工作少,阅读扩展名为.txt .h.c的文件通常我发现他们具有共性苴易于配置。如果你不想冒险你没必要做。记住你照样可以解开tar文件(或再次安装.rpm文件)恢复前的文件

第二节 配置内核 核心内容

  接下來的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关有必要了解一下选项的设置。

  配置内核可以根据需要与爱恏使用下面命令中的一个:

  #make config(基于文本的最为传统的配置界面不推荐使用)

  #make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)

  #make oldconfig(如果只想在原来内核配置的基础上修改一些小地方会省去不少麻烦)

  如果不能使用Xwindow,那么就使用make menuconfig好了界面虽然比上面一个差點,总比make config的要好多了

  选择相应的配置时,有三种选择它们分别代表的含义如下:

  Y--将该功能编译进内核

  N--不将该功能编譯进内核

  M--将该功能编译成可以在需要时动态插入到内核中的模块

  在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还囿一种圆括号 用空格键选择时可以发现,中括号里要么是空要么是"*",而尖括号里可以是空"*"和"M"。这表示前者对应的项要么不要要么編译到内核里;后者则多一样选择,可以编译成模块而圆括号的内容是要在所提供的几个选项中选择一项。

  在编译内核的过程中朂烦杂的事情就是这步配置工作了,不清楚到底该如何选取这些选项实际上在配置时,大部分选项可以使用其缺省值只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块有利于减小内核嘚长度,减小内核消耗的内存简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部汾功能代码直接编译到内核中。下面对选项分别加以介绍

在Linux的世界里每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进叺稳定的阶段但其作者很欢迎其他人去测试这些driver并提出一些bugs。这个问题是说有一些drive还在做测试中,问您是否要选择这些drive或支持的程序碼

  如果键入Y,往后将会出现一些还在测试中的东西给您做选择(像Java的程序码和PCI bridge),台则就键入N

,这样编译出来的核心也许会比較小但它的速度可能就会变慢了)所以,最好要知道您的CPU是哪一种不过,如果您的gCC编译器是2.7.0版以前的那么只能选择386或是486。

  #Math emulation------这项詢问是否需L1nux核心模拟数学浮点运算器如果有486Dx、AMD以及Pentium机器的话,这个选项就不必选了因为它们都有内建的浮点运算器。协处理器是在386时玳的宠儿现在早已不用了。不过对于有内建浮点运算器的人来说,选了这个选项并不会因此让内建的浮点运算器失效但它会增大核惢约45KB。

  首先了解一点关于模块的知识。模块就像你特意插入核心中的某些东西如果办公室有一个小网络并且有时想用一下(但并不經常),也许你想把网卡编译成一个模块使用这个模块,机器必运行和存取/libs下的模块意思是驱动程序(IDE,SCSI等但必须是NFS支持的网卡),文件系统(通常是ext2但也可以是nfs)和核心类型(最好是elf)必须编译在内核并且不能是模块模块只有核心引导时才起作用,驱动程序(来网络)的存取和文件系統安装。这些文件必须编译在核心内否则将能安装启动分区如果安装启动分区和网络,你需要网络系统文件和己经编译的网卡。为什麼要使用模块? 模块化使核心变的更简捷它减少核心释放大量的受保护的空间。模块的安装和卸载使用的空间是可重复分配利用的如果伱打开机器有90%以上的时间用到一个模块,编译它运用这类模块是浪费内存的,原因是一旦你编译了模块它们同样将占用大量的内存核惢需要一些代码来挂上模块。记住核心在保护空间运行,但模块并不是这么说,并不经常使用我的设备把它编译成只支持ext2,ide和elf。而一矗使用的网卡把其它的编译成模块:如a.out, vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它们许多只是在这或那用上那么几分钟严格的说,这样做会使核心增大许多而降低它的执荇速度。这时我们就可以把这些可能会用的驱动程序编译成一个—个的模块在需要用的时候才用insmod这个指令加入核心,不用的时候也能rmmod把咜从核心移除或是用lsmod察看目前所载入的模块。这里面有三项:

  #Set version information on all module symbols------通常我们更新核心版本之后,模块耍重新的编译这个选项使您不必更新编译模块而能使用以前的模块。可以不选它但如果您选y,则按照它的说明您必须有genksyms这个程序(可用whereis指令查看有无此程序)。

  这部分内容非常多一般使用缺省设置就可以了。下面介绍一下经常使用的一些选项:

N除了主机板没有办法处理16MB以上的内存,或者有超过16MB以上的内存但却常常发生一些很奇怪的问题这时,您可以试试这个选项有些主机板对超16MB内存的处理并不是很好,通常这些都是旧型的主机板还有,在说明文件中有提到如果内存超过64MB的话,用LILO加一些参数给Linux核心(例:mem=80M)并且把您主机板上的Cache加到512K。这样整体效率才能提升。

  PCI是586电脑的主要界面(一些486主机板上也有)这个界面能让您插入所谓的PCI显示卡,或是PCI的网络卡等这种界面是现在电脑嘚主要趋势,因此如果有PCI的插槽您就可以选Y。除了一些很旧很旧但有支持PCI的主机板外(这些有bugs的旧型主机板可能会因为这个选项而让核惢挂掉)

  #System V IPC 如果将来想编译dosemu(DOS模拟器),则这个选项一定要选它是一个让各个程序(process)同步且能彼此交换数据的函数库和一些系统嘚调用,没它很多的程序将会无法执行。

  #Sysctl support------除非你的内存少的可怜否则你应该启动这个功能,启用该选项后内核会大8K但能让你直接改变内核的参数而不必重新开机。

------a.out的执行文件是比较古老的可执行码用在比较早期的UNIX系统上。Linux最初也是使用这种码来执行程序一矗到ELF格式的可执行码出来后,有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码将来势必完全取代a.out格式的可执行码。但目前由于沿有许多的程序还没有取代过来所以只好选择Y,等将来有一天全部的程序都变成了ELF的天下时,那时再disable掉

  注意:编译模块成ELF和编譯支持ELF二进制。不编译适当的支持’’gotcha’’是明智的如果机器结构是Pentium或486你将得到高效的代码,但一个386的核心将运行在32-bit compatible clone;一个Pentium核心将不為大多机器制作一张紧急启动盘,最好在386下编译而386并不能运行在Pentium下编译的核心。

  #Kernel support for JAVA binaries ------ 这一项是正在做测试中的产品但是如果想写有关Java嘚程序,希望它能在Linux的机器上跑那么,可以选择把它编成一个模块或是直接把它编进核心里

  ##Advanced Power Management BIOS support------高级电源管理BIOS支持。这通常是用在笔記本电脑上的东西如果您有APM的BIOS,支持省电的设备的(有电池的那种)那么您可以选上这项,一般人这一项是选n以避免一些可能会发苼的问题。后有8个选项

  Linux对即插即用目前支持的不如Windows,好有些情况下会和其他设备产生冲突(I/ODMA,IRQ等)这个选项对PCI设备没有影响,洇为他们天生就是PNP设备。

  这个就得针对自己的设备情况来选了:

MB的硬盘不但如此,那时也只能支持二颗硬盘但现今的硬盘动不動就是1GB以上,今年主流是30~50G而且常常都会超过一二颗硬盘。如此一来新的主机板就开始支持加强型的IDE界而(Enhanced IDE),以支持到540MB以上的硬盘所以,如果您的IDE界面是Enhanced的请您选Y,底下就会出现八部分IDE界面的选项这些选项能加快您的IDE界面的速度和对某些芯片做一些最佳化。但如果您的硬盘或光盘全都是SCSI界面的那么选N以跳过下面选项。

  #use old disk-only driver on primary interface------通常是选择N因为我们有其他新的drivers可用。这个选项的意思是说如果您的IDE堺面是很旧很旧的那种的。那么就可以使用这个drives 驱动那个旧型的IDE界面(可装二台硬盘;或是一台硬盘,一台光盘)而现今流行的 Enhanced IDE则有兩个界面,共可以接四台硬盘我们稍后会有 driver支持它。

  #Include IDE/ATAPI CDROM support------如果希望核心支持IDE/ATAPI界而的光驱选择Y。如果有光驱但它附有一张接口卡,必须把排线接到那张专属接口卡上;或者是接到声卡上的则这个选项也需要选N,稍后我们会有非IDE的光驱厂牌让我们挑选现今的光驱通常是IDE/ATAPI界而的,所以这个选项通常是Y

  #Support removable IDE interfaces(PCMCIA)------这个选项对大部分的人全选n,除非您有PCMCIA的东西这通常是笔记本电脑上看得到的东西。 PCMCIA昰一个组织在以前是设计内存条的。但现在他们对于PC CARDS定了一个标排并很广泛的应用在1aptap的电脑上。不但有所谓的PCMCIA的硬盘甚至有网络卡、SCSI卡等,不过大部分的人并不需要这个选项。

  这个选项选完后以下则是Linux核心对几种芯片的IDE界面做修正或是加强它。??

SIS芯片的结合鈈过,这种芯片有它的缺点在许多的情形下,它会造成数据的流失和错误如果您选了这一项,则Linux核心会为您小心的寻找这些错误并修囸它而且,它会打开对二个IDE界面的支持不过,在它的说明文件中提到如果您的主机板没有PCI界面只有VESA总线界面却希望有这项功能的话,则您必须传一些参数给核心(ideo=cmd640_vlb)如果不确定上面所说的,选择Y

  #CMD640 enhanced support------一般来说,对于硬盘的存取速度来说有所谓的 PIO MODES值设定,现紟的 IDE界面及 BIOS应该都能侦测到正确的硬盘PIO MODE值了此值愈高表示硬盘的存取的速度愈快。可是有些主机板的B10S还是旧式的,不能抓到比较高的 PIO MODE徝如此一来,便不能发挥整台硬盘的效率这个设定告诉读者说:如果您的IDE界面是CMD640为基础的界面,但是您的BIOS并不能抓到正确的PIO MODE值那么,这个选项可以自动的找到硬盘正确的PIO MODE值

  #RZ1000 chipset bugfix/support------这个选项如同前面的CMD640一样。不过它的芯片是RZ1000的芯片,这种芯片是以Neptune芯片为主的一种芯爿而目、有很多的486和 586的主机板都在使用它。可以查查主机板的说明书或是 IDE接口卡的说明书做确定文件上提到,选择这个将会降低一些速度但是数据能百分之百的正确。

support------对于586的Pentium电脑来说有相当多的主机板都是用Intel的Triton芯片,使用这种芯片的最大好处是支持直接内存存取DMA洏节省您的CPU时间。在以往还没有DMA这个东西时读取硬盘需要耗用许多的CPU时间。如此一来CPU被占用,就不能充分的发挥它的功效后来,DMA出來后硬盘的读取便靠Triton或其他有支持DMA的IDE界面的芯片,直接与它们做沟通而节省了大量的 CPU时间,但这必须您的硬盘和主机板有同时支持 DMA的 IDE堺面的芯片直接与它们做沟通而节省了大量的 CPU时间。但这必须您的硬盘和主机板有同时支持DMA MODE才行


  上面这六种厂牌的芯片依硬件配備而使用,但它们有共同的特点就是必须传一些参数给核心如果找不到您的芯片,那么也没关系上这些选项只不过对这些芯片做最佳囮罢了。

  #Loopback device support------大部分的人这一个选项都选N因为没有必要。这个选项的意思是说可以将一个文件挂成一个文件系统。如果要烧光盘片的那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容是否符合您的需求。而且可以对这个文件系统加以保护。不过如果您 想做到这点的话,您必须有最新的mount程序版本是在2.5X版以上的。而且如果您希望对这个文件系统加上保护则您必須有des.1.tar.gz这个程序。注意:此处与网络无关

  #Multlnle devices driver support------这个选项可以让把整个硬盘分区变成一个单独的区块设备,您必须有md035.tgz这个程序而且在做這件事之前请将您的硬盘备份,因为它尚在测试阶段一般人对这个选项是选N。

  #RAM disk support------如果使用过DOS下的ramdrive程序应该能了解这个选项的意义。咜可以把内存当成硬盘来做存取就如同一般的硬盘一样可以format它,或是放一些文件在里头然后,当您关机这些数据也随着之而去了如果的RAM够大,可以考虑玩玩这选项但一般人都不需要。

  #XT hard disk support------支持XT的古董硬盘这是IBM电脑时代的东西,如果您还有这种很旧很旧的硬盘那麼,您可以把它编进核心或是编成一个模块大部分的人这个选项都是选择N的。

  这里配置的是网络协议 

  #Packet socket ------ 选择“Y”,一些应用程序将使用Packet协议直接同网络设备通讯而不通过内核中的其它中介协议。

  #Kernel/User Network link driver------这个是在测试中的程序码一般人不需要用。依它的说明它允许在核心、模块或程序间的某些部分间,彼此做双向的沟通如果想使用arpd,则这个程序码就要加进核心里

  #TCP/IP networking------选择“Y”,内核将支持TCP/IP协议这个选项无论如何请您选择Y,即使没有网络卡或是没有连到网络上的设备,在linux上仍有所谓的lookback设备而且有些程序需要这个选项在说明文件中提到,如果您没有打开这个设定则X-window system可能会有问题(回为它也需要 TCP/IP)。 

firewalls------选择“Y”内核将支持防火墙。Firewalls依英文看是防火墙在网络愈来愈发达的今天,网络安全的考虑也愈来愈重要了在局域网上找一台电脑来保护自己的考虑也愈来愈多了。可以在一局域网上找一台电脑来保护自己区域内的电脑这样的结果是,所有外部的电脑如果要连进内部的电脑就必须通过这台装有Firewalls电脑的同意所以,如果您希望这台电脑有着过滤网络的功能的话那么这个选项要选 Y。而且等一下有个IP firewalling的选项也要选y;但下面的forwarding/gatewaying要选n,如此才能讓它正常动作大部分的人这个选项选N。

Firewall相反这个选项是用来疏导网络的。一个gateway(也就是router)要帮忙疏导两个网络间的数据传送。这台機器必须要有两张网络卡连接两个个同的网络,做疏导网络的工作如果选择了这个选项,则表示想让这台负责做router那么,就必须有两張网络卡了另外有一种情形是,如果您有MODEM(通过串列界面以 SLIP和 PPP协议)和网络卡并用它们来连上Internet。这时您也一样可以执行IP-routing服务也需紦这个选项打开。

  #IP:multicasting------所谓的multicasting是群组广播它是用在视频会议上的协议,如果想送一个网络封包(网络的数据)同样的一份数据将送往十部机器上。您可以连续送十次给十台机器(点对点的传送)也可以同时送一次,然后让十台机器同时接收到当然后者比前者好,甴于视频会议要求是最好每个人都能同时收到同一份信息所以如果您有类似的需要,这个选项就要打开同时您还必须去找相关的软件。

  #IP: accounting------如果您打开这个选项您就可以在/proc/net下看到系统对于整个网络状况的纪录。所以一般的人这个选项都是选y而且,如果您设计紦这台Linux机器当router用那么读者可以因为这个选项而获得许多有关于网络lP控制的信息和它的输送情形。不过您必须在底下的选择中选择proc系统(其实proc文件系统一定要选,不选很多程序会不能用!)

  #IP:aliasing support------也许您只有一张网络卡但经由这个设定,您可以拥有数个IP地址假设您已經有一个lP地址了,您还想再加入其他的IP地址这时,您可以依下面的程序来做

  在 shell下键入:

  如此您就可以同时拥有两个IP地址了。當然如果想把这个IP地址去除,那么可以键人:

  这样您就可以把加入的IP地址去除不过在使用此选项前,前面的那一个aliasing Network选项也要选上詓

  #IP: PC/TCP compatibility mode------大部分人都选n。除非在使用DOS下的NCSA-TCP/IP软件连进Linux机器时遇到了困难或者有不相容的情形出现。这时您可以试着把这个选项咑开,看看是否能解决这个问题

  #IP Reverse ARP------如果您的Linux希望提供bootd的服务,就是让没有硬盘或软盘也能够开机并且上网络只要它们有网络卡有连接到网络的话。此时您必须执行一个指令叫rarp来设定哪些电脑的网络卡可以如此。不过一般人都没有这个需要所以答n。

MTU(Maximal Transfer Unit)叫做最大的傳输单位是说我们一次送往网络的信息大小。而Path MTUD iscovery的意思是当Linux发现一些机器的传输量比较小时,我们会分送网络信息给它如此可以增加网络的速度,所以我们大部分都选N也就是Enable。

  #Ip:Dorp source routed frames------通常我们一个网络的封包在丢出去后就不管它了不过,在TCP/IP协议里您可以设定讓那些帮您绕路的机器回送一个是否这个封包已经送达了的消息。不过这会导至网络安全上的问题,所以很少用一般来说我们选择Y。

  #IP:Allow large windows(not recommended if<16Mb of memory=)------如果有超过16MB以上的内存那么建议打开这个选项,可以增加传输的速度在一般长距离的网络传输下要预备传输的数据可鉯先储存在缓冲区,等到对方的回应时再一次会过去因此,您必须有内存来作为缓冲区

  #The IPX Protocol------IPX是一种传输协议,它是Novell的一种网络协议通常用在区域或是Windows的网络下。如果您希望Novell的机器资源共享(例如用他们的打印机或是硬盘)那么这个选项则要选y。至于存取文件的格式昰NCPFS的格式稍后把这个文件系统选上来,以便支援这个文件系统 如此一来,您就可以通过Novell的IPX通讯协议去存取它们的数据了或者,您希朢从dosemu(DOS的模拟器)里用IPX协议这时也要把它选进来。

  #Full internal IPX network------提供了一个完整的内部IPX网络预设选项是N,因为它可能会让一些应用的服务程序(RIP/SAP)当掉

  #Appletalk DDP------AppleTalk是存在于苹果机上的一种通讯协议,用来苹果电脑之间的网络通迅通过AppleTalk,彼此的电脑间可以打印和分享文件如果您需要连上这样的网络,可以把这个选项打开如此就能加入他们与这些电脑做沟通了,或者把这项编成一个模块亦可

  #Bridging(EXPERIMENTAL)------选这两个鈳以让Linux变成一个网络上的网桥,用来做不同网络间的沟通通常一般人不需要。

  #Qos and/or fair queueing(服务质量公平调度)也支持了还有kHTTPd,不过这些都還在实验阶段

  原来是Linux下可以支持电话卡,这样你就可以在IP上使用普通的电话提供语音服务了记住,电话卡可和modem没有任何关系

  如果有 SCSI 设备,就回答 Y 现在一般PC机不会有SCSI。接着会有提示要求更进一步的资讯像是你是否要支援光驱,硬盘还有你使用的是那一种 SCSI 堺面卡。这部份请参阅SCSI-HOWTO 有更详细的说明。如果你的启动分区是SCSI设备不要选择SCSI模块支持。在一般的SCSI后是SCSI低级设备驱动程序再次重申,模块仅仅是用在不在启动分区的设备

  #SCSI generic support------指其他有关SCSI的东西,也许您有一台SCSI的扫描器或是烧录机或是其他有关SCSI的配备,您就要选这一項而且,除此之外您还必须准备关于这些配备的软件。

  #Probe a11 LUNs on each SCSI device------通常这个选项大部分的人都不会选我们举个例子来说,如果您的SCSI光驱是那种多片装的就是一台光驱,但可以一次放好几片光盘片的那种这种我们叫做Lun。

  #Verbose SCSI error reporting(kernel size+=12K)------如果认为您的SCSI硬件配备有些问题想了解一丅它出现的错误信息。那么您可以把这个选项选yLinux核心会告诉您有关于您的SCSI配备的问题(如果有的话)。不过它会增加核心约 12KB左右。

  下面总共有接近30张的SCSI卡您可以依需求做选择SCSI卡牌子。


  这个也不清楚帮助里说是这个需要I2O接口适配器才能支持的,在智能Input/Output(I2O)体系接口中使用又是要硬件,不选了

support几大类。耐心点一般说来都能找到自己用的网卡。如果没有你只好自己到厂商那里去要驱动了。 如果这个选项没有打开的话那么以下的选项将不会出现。它是在选择网络卡或是网络的设备例如,PLIPPPP,SLIP还有各式各样的网络卡,所以这个选项通常是选y

  #Dummy net driver support------如果有SLIP或PPP的传输协议,那么要把这一项打开因为一来它不会让您的Linux核心增大。二来对某些应用程序来说,它可以让我们模拟出来的TCP/IP环境更像TCP/IP环境如果您没有SLIP或PPP协议,就不用打开了

  #PLIP(parallel port) support------依字面上看,它是一种利用打印机的接口(岼行接口)然后利用点对点来模拟TCP/IP的环境。它和 SLIP/PPP全都属于点对点通讯您可以把两台电脑利用打印机的连接接口串联起来,然后加入此通讯协议。如此一来这两部电脑就等于一个小小的网络了。不过如果电脑有提供打印服务的话,这个选项最好不要打开不然鈳能会有问题(因为都是用平行接口)。

  #PPP(point-to-point)support------点对点协议近年来,PPP协议已经慢慢的取代SLIP的规定了原因是PPP协议可以获取相同的IP哋址,而SLIP则一直在改变IP地址在许多的方面,PPP都胜过SLIP协议

  #SLIP(serial line) support------这是MODEM族常用的一种通讯协议,必须通过一台Server(叫ISP)获取一个IP地址然後利用这个IP地址,可以模拟以太网络使用有关TCP/IP的程序。

  如果您在学校接了校园网络并且使用网络卡那么这个选项一定要选y,否則以下对网络卡的选择将不会出现或是您有网络卡,这时您同样的也要选y之后,下面会列出许多网络卡让您选择像我们平常用的都昰NE2000相容卡。


选y以下才会列出有关ISA的网络卡。包括NE2000的兼容卡

  # EISA, VLB PCI and on board controllers ------选择网络卡,包括直接附在主机板上的那种如果选择y,则底下会列出其他的网络卡让您做选择这些卡对于一般人来说很少会去用到。所以大部分的人这项是选N的

  #Pocket and portable adaptors------通常用在可携式的电脑上,这类型的网络卡(口袋型的)由于体积很小在安装和取下方面很方便,因此笔记本相关电脑上便常常采用这种网络卡

  #Token Ring driver support------Token Ring是 IBM电脑上的网络。它叫令牌环网络和以太网络是很类似的东西。如果您希望使用的Token Ring网络卡以便连接到这种网络那么选Y,一般人都选N

  可以用来启動无线网络的基本支持,目前的无线网络可以通过公众频率传输数据如果你有此类设备就可以启用,具体请参考AX25和HAM HOWTO 文档

Network),它的中文洺称是综合数字服务网络是一个利用电话线,把声音影片信息以数字的方式传送的数字网络,它需要电话交换机设备有支持ISDN这通常需要电信局来做安装,对于在家工作的人来说ISDN可能是最舒适最便宜的一种方式,因此有愈来愈多的人使用它不过,除非是公司不然┅般人很少会使用到ISDN的,所以这部分的选项大都选N如果您选择Y,则下面会出现一些有关ISDN的问题如果需要用到ISDN,可以去看看杂志的介绍只要是有关网络的杂志应该都会有介绍。还需要启用Support

  以下是选择非 IDE/ATAPI和 SCSI界面的光驱这些光驱通常有自己专属的接口卡也是比较旧型的光驱类型。如果有这些光驱则这个选项要选y,否则选n如果您选择n,则会跳过以下光驱的选项


  所谓字符设备通常是指以字符為单位做处理的设备,例如终端机就是其中一项原则上,我们对于这些选项的选择也是以预设为主这个内容又太多了,先使用缺省设置需要的话自己就修改。把大类介绍一下吧:

  #Standard/generic (dumb) serial support-------选择“y”内核将支持串行口。标准序列接口的选定如果您是用serial的鼠标(大部分的囚都是用这个),或是MODEM的话则这一项一定要选。大部分的人这一项都选y

  #Mice鼠标。现在可以支持总线、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad------根据需要选择非串行的鼠标,支持象PS/2看一看你鼠标的键。许多双键鼠标是PS/2即使它们的连接看起来象串行的.。

  #Joysticks------手柄即使在Linux下把手柄驱动起来意义吔不是太大,游戏太少了

  #Watchdog Cards:虽然称为Cards,这个可以用纯软件来实现当然也有硬件的。如果你把这个选中那么就会在你的/dev下创建一個名为watchdog的文件,它可以记录你的系统的运行情况一直到系统重新启动的1分钟左右。有了这个文件你就可以恢复系统到重启前的状态了。

  #Parallel printer support------有打印机的或是使用到并行接口的人这一项一定要选除非是用serial的打印机。还有如果您有使用PLIP那么这项也请选上。

  #Mouse support------大部分的囚这一项并不用选y因为大部分的人是用serial的鼠标,除非有些人是用一种附有接口卡的鼠标这时这个选项才要选上,如果您选y则底下会列出您的BUS鼠标所用的接口卡。

  #Ftape(QIC-80/Travan)support------如果有磁带机而这个磁带机是接在软盘控制卡上,这个选项才要选y

  很多USB设备,比如鼠標、调制解调器、打印机、扫描仪等在Linux都可以得到支持,根据需要自行选择

  Linux上有支持约二十几种的文件系统,有支持某个文件系統的意思是可以存取某个文件系统的数据或是做拷贝动作。在这些文件系统中通常的选择方法是按照原来预设的方式,不过在其中,EXT2FS那个选项无论如何一定要选因为那是Linux系统所使用的文件系统。其他的则依需求做选择

  通常是ext2而让其余的使用模块。

  #Standard( minix )------新嘚套件不再建立 minix 文件系统而且很多人不使用它,但是把它配置在核心里仍然是个好主意某些″rescue-disk ″ 程序会用到它,而且仍然有许多磁片鈳能用 minix 文件系统因为 minix 文件系统对于处理磁片方面是最好的。当初Linus是因为对Minix这个小型的操作系统有很深的经验所以才写出Linux这个操作系统。Minix文件系统通常用在磁盘上有时会用到它。

  #Extended fs ------ 这是扩充文件系统的第一版现在已经不再使用。

  #Second extented fs------这是现在新发行的套件所广泛采鼡的文件系统你可能会有其中一种。这个是linux文件系统请务必选y,如果问我说选n会有什么后果我也不知道。除非您能把 Linux装在 DOS的目录下

  #xiafs filesystem-----这个文件系统曾经一度很普遍,但是在写这份文件时我已经不知道有任何人在使用它了。

  #msdos------DOS文件系统的格式如果你想要在 linux 下使用你硬盘中的 MS-DOS 分割区,或是想将用 MS-DOS 格式化的磁盘挂进来的话回答y 。

  #VFAT(Windows95) fs ------windows95所支持的文件系统是我们常说的vfat文件系统,如果您的系統中装有windows95那么选择这个文件系统将对以让您看到windows95的长文件名。

  #ums-dos------相当 slick 的文件系统它能使 MS-DOS 文件系统拥有更多的特性,像是长档名等等这对那些不使用 MS-DOS 的人(像我)并不是很有用。

  #/proc------这是最 slick 的文件系统之一它不是你硬盘分割区里的任何东西,不占用硬盘的空间而昰核心与程序之间的文件系统介面,它表示的只是内存里头的状况和各个程序执行的情形它也记录了您硬件上配备。许多程序工具(潒″ps ″)都会用到它。如果已经将它安装好了有空不妨试试看″cat /proc/meminfo ″或者是″ cat /proc/devices ″。有些 shells 像是 rc ,会用 proc/self/fd(在其它系统上为 /dev/fd )来处理输出入幾乎可以确定你在这里得要回答y ,有许多重要的 Linux 标准工具是靠它来运作的否则有些指令会出问题。

  #Root file system on NFS------一般不选除非您的电脑上没有硬盘,希望通过网络由别人的硬盘开机过Linux如此一来才有需要选这项同时对方也要执行rarp的服务。

  #Quota support ------Quota可以限制每个用户可以使用的硬盘空間的上限在多用户共同使用一台主机的情况中十分有效。

  #Mandatory lock support------有些很特殊的database应用软件会用到它一般人这个选项是选n。而且如果选y的話,必须有最新版的NFS软件最新版的samba软件等。

  # NFS------如果你在网络环境下而且想要分享档案回答 y 。如果希望挂上别的电脑的文件系统那麼这个选项一定要选进去。它可以让您利用网络把别人的硬盘当成自己的来使用(把它变成一个目录)对于一般人来说,这个选项是选y

  #NCP filesystem support------NCP是一种网络的通讯协议,用在跑IPX协议上它可以利用IPX协议让两台电脑之间的文件共享,并做沟通如果您想挂上有关Novell的Netware文件系统,那么这个选项就选上去吧

  ##Partition Types-----分区类型,该选项支持一些不太常用的分区类型用户如果需要,在相应的选项上选择“y”即可

  附:不知道需要那些文件系统怎末办?

  键入″ mount ″它看起来会像这样:


  仔细看看每一行;在” type ”后面的那个字就是文件系统的格式。在這个例子中我的 / 和 /usr 分割区是 second extended 格式,我使用 /proc 而且挂有一张以msdos (bleah) 为文件系统格式的磁片。如果你有使用 /proc 可以试试″cat /proc/filesystems ″。它会给你一份目前使用的核心所支援的文件系统列表

  如果你能在列表中找到声卡驱动那自然最好,否则就试试OSS了阅读帮助文件从列表中小心的选取。确信为你声卡真确的选择了I/O和IRQ声卡的MPU I/O是0选项。一般是330如果不对不必担心。模块的好处就是在核心编译以后你还能重新编译、安装模塊并挂上核心

  如果有声卡,请去了解一下声卡的 IRQ和 DMA等信息并了解是属于哪一种的。现在大部分的人使用的都是Sound Blaster或是它的相容卡囿关这类的信息请看各个声卡的说明书。当选Y时出现下面的画面。就依您的声卡来做选择吧!


  #/dev/dsp and/dev/audio support------ 这个选项通常是必要的因此大部分的人选y,如果没有这选项则很多的游戏将没有声音效果。

  通俗的说这是windows安全模式,找不到明确解释,就引用这个说法>這是从 Linus 的 README 里摘录的:

  ″kernel hacking ″配置的细节通常会产生一个更大或是更慢的核心(或者是又大又慢),而且可能因为将一些常式配置成很活躍地去尝试中断一些不良的程序码以便找出核心里的问题而使得核心变得比较不稳定。所以要产生一个核心″产品 ″的话你在这里应該回答n 。

  配置了这个即使在系统崩溃时,你也可以进行一定的工作了

  如果对Linux核心很熟,想了解这个操作系统上的很深的信息则这个选项才打开,将会在/proc下看到profile这个文件记录着相当多的信息。这些信息是供除错用的对一般人来说,这个选项是选n以免造荿系统不稳固,或是引起其他的问题

  总算配置完了,现在存盘退出当然你也可以把现在的配置文件保存起来,这样下次再配置的時候就省力气了存盘退出的文件是一个可以编辑的文本文件。你可以用你的文本编辑器如:Emacs,vi,CrispLite,joe,等等配置文件在/usr/src/linux目录名字是.config。前面的点使普通的.(ls)无法显示加上-a选项就能看见。编辑文件中在配置时遇到麻烦的数字然后,make dep 把你的配置信息从.config传送到特定的子目录完成安装朂后,make clean 准备最后的核心编译

  编译有关的命令有如下几个:


  第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置嘚依赖关系树从而决定哪些需要编译而那些不需要;

  第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;

  第三个命囹make zImage和第四个命令make bzImage实现完全编译内核二者生成的内核都是使用gzip压缩的,只要使用一个就够了它们的区别在于使用make bzImage可以生成小一点的内核,比如在编译2.2.16版本的内核时如果使用make zImage命令那么就会出现system too big的错误提示。建议使用make 记住是高密度的底密度的720k磁盘将不能启动核心。 zdisk 对于测試新核心很方便;如果它完全不行只要把磁盘拿掉再用旧的核心启动即可。如果你意外地删除了核心或是什么的它也是个方便的启动辦法。当你把一台硬盘的内容倾倒到另外一台去时你也可以用它来安装新的系统(除了这些之外还有更多用途)(我不清楚,请指教)所有近来的核心都是压缩过的,所以有个 z 在名字前面核心是压缩过的,当它执行的时候会自动将自己解压缩(一个节省磁盘空间的好方法)

  严格说来,第七个命令和编译过程并没有关系它是生成模块间的依赖关系,这样你启动新内核之后使用modprobe命令加载模块时僦能正确地定位模块.

  通常,核心安装叫做vmlinuz过去Unix使用者共同起了这名字。"z"表示压缩"v"和"m"意思是"virtual"(虚拟)和"sticky(粘性的)",各自属于内存和磁盘管理建议保留vmlinuz核心,直到知道它工作

  为了能够使用新版本的内核,还需要做一些改动:


  以上这两个文件是刚才编译时新苼成的下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内核的文件:


  注意:要保留vmlinuz核心以下列步骤进行


  label=linux2.2.16 则是由 lilo 用来告诉你现在要启动嘚是那个核心或作业系统,

  其中root=/dev/hda2一行要根据需要自行加以修改

  运行:#/sbin/lilo -v 保存执行命令:lilo你将看到核心标签,第一个是星号如果伱没有看到新核心的标签或LILO出现错误,你需要重新对/etc/lilo.conf工作(看下面的LILO分析)

  确认对/etc/lilo.conf的编辑无误,现在重新启动系统:

  不建议使鼡热启动或ctrl+Alt+del键在一些情况下,文件系统不完全卸栽会损坏打开的文件在LILO提示时,如果你需要启动旧的核心或使用一些参数启动如果伱没看见启动提示,你可以试用shift或ctrl键这样启动提示就出现了。一旦出现按tab看核心标签。输入标签和可选参数启动通常,在/etc/lilo.conf文件指定嘚时间后自动启动核心启动时,你可能看见一些出错信息就象SIOCADDR这常常显示模块(一般是网络模块)没有引导。处理这事很简单如果囿此一错,"VFScannotmount root",你就不要在核心中编译适当的磁盘或文件系统支持。

  在机器重启后出现LILO时按TAB键输入linux2.1.16,新内核发挥作用了

  附录:LILO汾析(技术性强,仅供参考)

  第一部分 LILO介绍

  LILO(Linux Loader)是Linux自带的一个优秀的引导管理器使用它可以很方便地引导一台机器上的多个操莋系统。与其他常用的引导加载程序相比LILO引导方式显得更具有艺术性,对其深入的理解将有助于我们方便地处理多操作系统、网络引導、大硬盘及大内存等诸多棘手的问题。

  LILO的引导机制------众所周知计算机的最初启动是由BIOS控制的,在对一些硬件(如:内存、键盘等)初始化之后它会试图加载硬盘的主引导记录(MBR)或软盘的引导扇区。MBR可通过两种方式运行其一是定位到活动分区并加载相应的引导扇區,然后由引导扇区完成该分区内操作系统的基本组件的加载;其二是直接从一指定分区中加载信息并通过它装入任一分区的操作系统,诸如LILO、OS/2 Magic等引导加载程序都可以配置成这种方式软盘的引导扇区相当于硬盘活动分区的引导扇区,它通常用于装入软盘上的操作系统甴此可见,只要把LILO安装在MBR、活动分区或者引导软盘上就能接管计算机的控制权,然后由LILO完成后继的引导过程LILO中建有一个引导表地址编碼,借此它的引导程序就能定位到Linux的内核文件这种地址编码既可以按照柱面/磁头/扇区(CHS)模式,又可以采用LBA的线性块号模式因此,即使对某些SCSI控制程序LILO也能运转良好

  当LILO定位到配置文件后,经过预引导过程就显示提示符: LILO boot:   

  此时,系统允许选择引导不同的操莋系统或者不同的内核配置按Tab键显示可选项列表,然后输入可选项或者直接回车选择缺省配置如果选择了引导Linux,还可以直接传递参数箌系统内核  

  和其他系统的引导加载程序相比,LILO具有更大的灵活性其引导方式也更丰富多彩。

  ●当LILO被安装在硬盘的MBR、活动汾区或引导软盘上时作为原引导程序的替身,它能引导任一硬盘任一分区上的Linux和其他操作系统;除了引导扇区它没有任何隐含文件,吔不需要使用特定的分区它的配置文件可以在任何分区、甚至是存放在与Linux毫不相干的DOS分区的某个子目录下;它能引导几个不同的内核配置,甚至是几个不同的内核; 它能引导同一机程序上的多个Linux版本;可达16个 

  ●它能从网络上引导Linux。

  ●LILO的灵活性使得其配置变嘚相当复杂当有多个系统共存时,建议先安装其他操作系统最后再装Linux,这样设置LILO对其他系统的引导会相对简单一些。 

  第二部汾 LILO参数

  通常我们谈到LILO会涉及到两个方面——LILO引导程序和LILO安装命令/sbin/lilo。

  为了不至于混淆这两个概念本文将用LILO表示LILO引导程序,而lilo表礻/sbin/lilo一般地,LILO使用一个文本文件/etc/lilo.conf作为其配置文件lilo读取lilo.conf,按照其中的参数将特定的LILO写入系统引导区任何时候,修改了/etc/lilo.conf都必须重新运行lilo命令,以保证LILO正常运lilo.conf使用的配置参数很多配置起来也相当复杂。下面以RedHat Linux为例作一些初步探讨RedHat的lilo程序包版本为0.20,别的Linux发行版本可能会有所出入但不会太大。

  lilo.conf文件中的配置参数分为两部分一部分是全局参数,另一部分是引导映像参数引导映像参数作用于每一个引導映像区。如果某一引导映像参数(例如:password与全局参数的定义相抵触则以该引导映像参数的定义为准,但仅限于该引导映像区LILO的引导參数有很多,在此只对一些比较重要的参数作一介绍与Linux系统其他的配置文件一样,“#”号后的一行文字表示注释

  1.“boot=”此参数指明包含引导扇区的设备名(如:/dev/had),若此项忽略则从当前的根分区中读取引导扇区。 

  2.“root=”此参数告诉内核启动时以哪个设备作为根攵件系统使用其设定值为构造内核时根文件系统的设备名,可用的设备名有:

  (5)/dev/nfs:由网络取得根文件系统的标志 

  3.“nfsroot=”若需通过NFS提供根文件系统来引导无盘工作站此参数为内核指定了网络根文件系统所在的机程序、目录及NFS,其格式为:nfsroot=(〈server_ip〉:)〈root_dir〉(,nfs_options))

  4.“nfsaddrs=”设定网络通讯所需的各种网络界面地址如无此参数,则内核会试图用反向地址解析协定(RARP)或启动协定(BOOTP)找出这些参数其格式为:nfsaddrs=〈客户端IP〉:〈服务端IP〉:〈网关IP〉:〈子网屏蔽〉:〈客户端名称〉:〈网络设备名 〉:〈auto〉 

  6.“delay=”设定引导第一个映像前的等待时间。 

  7.“disk=”此参数为某一特殊的硬盘定义非标准参数

  8.“append=”为内核传递一个可选的参数行,其典型的应用是为不能完全由系统自动识别的硬盘指萣参数如:append = "hd=64,32,202"   

  9.“label=”此参数为每个映像指定一个名字,以供引导时选择  

  10.“read-only”设定以只读方式挂入根文件系统,用于文件系统一致性检查(fsck)

  11.“install=”安装一个指定文件作为新的引导扇区,缺省为/boot/boot.b 

  12.“loader=”说明所使用的链加载程序(chain loader),缺省为/boot/chain.b如果不是從首硬盘或软盘启动,那么此选项必须说明。 

  13.“table=”说明包含分区表的设备名如果此参数忽略,引导加载程序将不能传递分区信息到已引导的操作系统当此参数指向的分区表被修改时,必须重新运行/sbin/lilo

  14.“init=”内核初始化时执行的程序,通常过程为init、getty、rc和sh版本1.3.43鉯来的Linux内核能够执行/sbin/init说明的命令行,若在引导过程中出现问题则可设置init=/bin/sh直接跳到Shell。

  15.“ramdisk_start=”由于内核不能放在压缩的内存文件系统映像內为使内核映像能够和压缩的内存映像放在一张软盘内,加入“ramdisk_start=〈offset〉”这样内核才能开始执行。

  16.“mem=”此参数的目的之一是为Linux指定使用的内存数量:如mem=96MB目的之二是指定mem=nopentium告诉内核不要使用4MB分页表。

  18.“linear” 产生用于替换硬盘sector/head/cylinder地址(硬盘几何参数)的linear扇区地址linear地址茬运行时产生并且不依赖于硬盘几何参数。某些SCSI硬盘和一些以LBA方式使用的IDE硬盘可能会需要使用这个参数注意:在将LILO安装到软盘上时不能使用“linear”参数。

给出“boot:”提示强制LILO等待用户的键盘输入,按下回车键则立即引导默认的操作系统而按下Tab键则打印可供选择的操作系统。当“prompt”被设置而“timeout”没有被设置时系统会一直处于等待状态而不引导任何操作系统。不设置该参数时LILO不给出“boot:”提示而直接引导默認操作系统,除非用户按下了Shift、Ctrl、Alt三键中的任何一个大多数情况下,如果你的硬盘上有多个操作系统建议使用参数,它留给用户一个選择的余地

  20.“timeout=” 设置等待键盘输入的时长,单位是0.1秒超过这段时间没有输入则为超时,系统将自动引导缺省的操作系统如果不設置本参数,缺省的超时时间长度为无穷大  

  22.alias=name 给当前操作系统起一别名。

  第三部分 LILO典型配置方法 

  通常情况下Linux的安装程序自身就可以完成LILO的安装配置,从而较好地解决多重系统的引导问题如果系统不能自动完成这种配置,则可以通过手工修改配置文件/etc/lilo.conf來实现不同条件下的引导  

  1.当系统能自动完成配置时

  对于这种情况只有一个建议:将LILO安装到Linux分区的根上,而不是MBR这个多事地帶假设当前hda1中装有DOS/Windows,hda2中安装了Linux则/etc/lilo.conf的内容大致如下: 


  2. 当系统无法自动完成配置时 

  系统无法自动完成配置的情况不外乎两种:

  (1) BIOS不能直接看到Linux的根分区;

  (2) BIOS只能读写标准IDE硬盘的前504MB。

  这时必须遵循一个最基本的原则:建立一个BIOS能存取的较小的Linux汾区,其中包含内核文件、映射文件及链加载程序等必要内容而根则可以是另外一个独立的分区。至于配置上的其他细节我们通过以丅实例来进行说明。

  有了这些基础知识我们可以很容易地按照自己的意图配置LILO。


#设置Linux核心引导映像  

  这个例子中LILO是作为主引導管理器来管理机器上所有操作系统的。LILO也可作为二级引导管理器这只要将“boot”参数改为根分区就可做到。例如:   boot=/dev/hda1 以这种方式使用LILO時Linux根分区必须用DOS或Linux的fdisk程序将其设置为活动分区,并且这种方式只对硬盘主分区(不是扩展或逻辑分区)有效

  对于大硬盘问题,很哆人只知道低于1024个柱面的限制而不知为什么标准的IDE硬盘只能认前504MB。其实BIOS的int13调用是采用三个位元组的CHS编码,10位为柱面号8位为磁头号,6位为扇区号可能的柱面号码是0~1023,可能的磁头号码是0~255而磁道上可能的扇区号码是1~63,以这24位最多可以定址个位元组(7.875GB)但不幸的是,標准的IDE介面容许256个扇区/磁道、65536个柱面及16个磁头它自己本身可以存取237= (128 GB),但是加上BIOS方面63个扇区与1024个柱面的限制后只剩4MB)可以定址得到


  例三.如果你有一块超过 8 G 的大硬盘, 并且需要把 Linux 安装在比较靠后的位置,可以在安装的时候, 选择 linear 模式, 并且给它加上硬盘参数.

  安装时候嘚硬盘参数可以这样写: hd?=CYLs, HEADs, SECs 其中的大写字母需要用实际的硬盘参数来替换, 这些参数可以从硬盘的标签上查到, 也可以看看 BIOS 设置里硬盘参数对应 LBA 模式的那一行. 问号是根据硬盘确定的, 实际使用时, 它可以是 a, b, c, d 四个字母中的一个. 比如: hda= 这是 IBM 15.2G

  当然进入了 Linux 以后, 可以通过编辑 /etc/lilo.conf 加上这个文件, 然后运荇一遍 lilo 达到同样的目的. 下面是本人未加参数前的 lilo.conf的内容:


  按照 linear 方式加入参数以后是如下格式:


 

  当再次起动 Linux系统的时候, LILO 就按照线性模式對系统进行引导.除了在硬盘上寻址定位的方式不同以外, 对其他方面没有什么影响.

  第三章内核编译的应用

  第一节嵌入式Linux技术

  第②节你的Linux有多大?(及实践结果)

  这可不是我写的只是用来参考制造small kernel,效果还可以。

  我使用的是 Mandrake 内核的 2.2.15我没有修改任何一行程序码,完全只靠修改组态档得到这些数据

  首先,使用 make xconfig 把所有可以拿掉的选项都拿得

  相信我,我己经把所有的选项都移除了這样做之后,我得到了一个 188K 的核心不过这个核心恐怕很难发挥 Linux 的功能,因此我决定把网络加回去把 General中的 network support 加回去,重新编译核心变成 189 K。10K 换个 TCP/IP stack似乎是很上算的生意。

  不过大家要注意那里的大小指的是核心档的大小。那和所需要的随取记忆体是二回事这个数字代表的意义是你需要多小的 ROM 来存放你的核心。

  Linux 所需的记忆体大约在 600~800 K 之间1MB 可能可以开机了,但可能不太有用因为可能连载入 C 程序库都囿困难。2MB 应该就可以做点事了但可能要到4MB 以上才可以执行一个比较完整的系统。

  看到这里是不是觉得 Linux 真的有点大。好吧! 那我们就來看看谁占用了这些空间下面这个列表是从 222K 这个核心做出来的。



  先说明一下这里的大小和最终的大小有点差别,但大致还是可以莋个参考这边显示 730K 实际上大约在 600K 左右。很显然的filesystem 相当的大。大约在 230K 左右占了 1/3 的体积。记忆体管理占了80K和核心其它部份的总合差不哆。TCP/IP stack 占了 65K驱动程序占了 120K。SysV IPC 占了 21K必要的话可以拿掉,核心档应该可以再小个 10K 左右 所以如果要减核心大小,应该动那里呢? 答案应该很明顯当然是档案系统。Linux 的 VFS 减化了档案系统的设计buffer cache, directory cache 增加了系统的效率。但这些对整个系统都在flash 上的 embedded 系统而言根本就用处不大如果可以把咜们对拿掉,核心可以马上缩小 20K 左右如果跳过整个 VFS,直接将档案系统写成一个 driver 的型式应该可以将 230K 缩减至 50K左右。整个核心缩到 100K 左右

  从上面的数据来看,ucLinux 所减小的 mm 部份反到省的不多主要是 mm 除了 virtual memory 之外,也要处理 memory allocation 的部份这部份是省不得的。如果二者齐做则 100K 以下的 Linux 核惢不是不可能的事。

  实践:成功编译196k的核心但不能用来启动redhat,它太庞大了280k可以启动,正在向更小努力

我要回帖

更多关于 显卡驱动卸载后会怎样 的文章

 

随机推荐