来谈谈:周全剖析Linux内核的次要设置
如果你让他去用linux搭建一个web服务器,做一个linux网关,他就什么都不会了.他们把时间都浪费在了版本的转换上了.设置内核的命令是:
#makeconfig文本设置体例
#makemenuconfig菜单设置体例
#makexconfig图形界面设置体例
我们能够接纳任何一个命令设置内核,一样平常保举利用makemenuconfig来设置内核。
一.代码成熟度选项
Codematurityleveloptions--->
[*]Promptfordevelopmentand/orincompletecode/drivers
[*]Selectonlydriversexpectedtocompilecleanly
在内核中包括了一些不成熟的代码和功效,假如我们想利用这些功效,想翻开相干的设置选项,就必须翻开这一选项。
二.通用设置选项
Generalsetup--->()Localversion-appendtokernelrelease
[*]Automaticallyappendversioninformationtotheversionstring
[*]Supportforpagingofanonymousmemory(swap)
[*]SystemVIPC
[*]POSIXMessageQueues
[*]BSDProcessAccounting
[*]BSDProcessAccountingversion3fileformat
[*]Sysctlsupport[]Auditingsupport
[*]Supportforhot-pluggabledevices
[*]KernelUserspaceEvents
[*]Kernel.configsupport
[*]Enableaccessto.configthrough/proc/config.gz()Initramfssourcefile(s)
[*]Configurestandardkernelfeatures(forsmallsystems)--->---Configurestandardkernelfeatures(forsmallsystems)[]Loadallsymbolsfordebugging/kksymoops[]Doanextrakallsymspass[]Enablesupportforprinlk[]BUG()support[]Enablefull-sinzeddatastructuresforcore
[*]Enablefutexsupport
[*]Enableeventpollsupport
[*]Optimizeforsize
[*]Usefullshmemfilesystem(0)Functionalignment(0)Labelalignment(0)Loopalignment(0)Jumpalignment
Localversion-appendtokernelrelease:这里填进的是64字符之内的字符串,你在这里填上的字符口串能够用uname-a命令看到。
Supportforpagingofanonymousmemory(swap):这是利用互换分区大概互换文件来做为假造内存的,固然要选上了。
SystemVIPC:暗示体系5的InterProcessCommunication,它用于处置器在程序之间同步和互换信息,假如不选这项,良多程序运转不起来的。
POSIXMessageQueues:这是POSIX的动静行列,它一样是一种IPC。倡议你最好将它选上。
BSDProcessAccounting:这是充许用户历程会见内核将账户信息写进文件中的。这一般被以为是个好主张,倡议你最好将它选上。
Sysctlsupport:这个选项能不从头编译内核修正内核的某些参数和变量,假如你也选择了撑持/proc,将能从/proc/sys存取能够影响内核的参数或变量。倡议你最好将它选上。
Auditingsupport:审记撑持,用于和内核的某些子模块同时事情,比方SELinux。只要选择此项及它的子项,才干挪用有关审记的体系挪用。
Supportforhot-pluggabledevices:是不是撑持热插拔的选项,一定要选上。否则USB、PCMCIA等这些设备都用不了。
KernelUserspaceEvents:内核平分为体系区和用户区,这里体系区和用户区举行通信的一种体例,选上。
Kernel.configsupport:将.config设置信息保留在内核中,选上它及它的子项使得别的用户能从/proc中失掉内核的设置。
Configurestandardkernelfeatures(forsmallsystems):这是为了编译某些特别的内核利用的,一般你能够不选择这一选项,你也不必对它上面的子项费心了。
Loadallsymbolsfordebugging/kksymoops:是不是装载一切的调试标记表信息,假如你不必要对内核调试,不必要选择此项。
Enablefutexsupport:不选这个内核纷歧定能准确的运转利用glibc的程序,固然要选上。
Enableeventpollsupport:不选这个内核将不撑持事务轮循的体系挪用,最好选上。
Optimizeforsize:这个选项使gcc利用-Os的参数而不是-O2的参数来优化编译,以取得更小尺寸的内核,倡议选上。
Usefullshmemfilesystem:除非你在很少的内存且不利用互换内存时,才不要选择这项。
前面的这四项都是在编译时内存中的对齐体例,0暗示编译器的默许体例。利用内存对齐能进步程序的运转速率,可是会增添程序对内存的利用量。
三.可加载模块
Loadablemodulesupport--->
[*]Enableloadablemodulesupport
[*]Moduleunloading[]Forcedmoduleunloading
[*]Moduleversioningsupport(EXPERIMENTAL)[]Sourcechecksumforallmodules
[*]Automatickernelmoduleloading
Enableloadablemodulesupport,良多人喜好将全体功效、硬件撑持一股脑的编进内核,而不是利用模块的体例。如许做十分欠好(团体以为)。实在我也做过嵌进式的开辟,在针对特定硬件的平台下尽量将内核编小,将一直是撑持模块加载的。比方我们开辟的防火墙就是做为内核的模块被加载的。利用模块撑持,你的体系能具有更好的可扩大性。另有一个缘故原由就是本人编写的功效模块、设备驱动模块(假定编写的质量不高)以模块体例事情引发KernelPanic的机率要远远低于不撑持模块全体编进内核的体例。讲了这么多,终究能够义正词严的选上这一功效了
Moduleunloading,不选这个功效,加载的模块就不克不及卸载。没甚么必要多注释的,倡议最好选上。
Forcedmoduleunloading,这个选项能强行卸载模块,即便内核以为如许其实不平安,也就是说你能够把正在利用中的模快卸载失落。假如你不是内核开辟职员大概骨灰级的玩家,不要选择这个选项。
Moduleversioningsupport(EXPERIMENTAL),这个功效可让你利用别的版本的内核模块,因为我本人写一些模块,以是我会用到这个选项,由于内核更新太快了,我的头文件更新基本赶不上内核的更新。另有,固然我在Gentoo下开辟,但实践实在情况用的倒是从kernel.org下载的内核。固然我选择了这个选项,不外倡议你不要选择这个选项。
Sourcechecksumforallmodules,这个功效是为了避免变动了内核模块的代码但健忘变动版本号而形成版本抵触。我估量如今没有哪家公司在开辟中还没利用版本把持工具,以是不必要这项了。假如你不是本人写内核模块,那就更不必要这一选项了。
Automatickernelmoduleloading,这个选项能让内核主动的加载部分模块,倡议你最好选上。举个例子申明一下,如模块eth1394依附于模块ieee1394。假如选择了这个选项,能够间接加载模块eth1394;假如没有选择这个选项,必须先加载模块ieee1394,再加载模块eth1394,不然将堕落。
四.总线撑持设置
Bussupport--->PCCARD(PCMCIA/CardBus)support--->[]EnablePCCARDdebugging[]16-bitPCMCIAsupport(NEW)[]LoadCISupdatesfromuserspace(EXPERIMENTAL)(NEW)[]PCMCIAcontrolioctl(obsolete)(NEW)---PC-cardbridges
PCCard(PCMCIA/CardBus)support,你的盘算机是不是撑持PCMCIA卡
EnablePCCARDdebugging,一般不必要选择调试PCMCIA设备,除非你是设备驱动的开辟职员。
16-bitPCMCIAsupport,16位的PCMCIA总线撑持。
五.撑持的可实行文件格局
Userspacebinaryformats-à
[*]KernelsupportforELFbinaries
[*]Kernelsupportfora.outandECOFFbinaries
[*]KernelsupportforMISCbinaries
[*]RISCOSpersonality
KernelsupportforELFbinaries,ELF是开放平台下最经常使用的二进制文件,它撑持分歧的硬件平台。
Kernelsupportfora.outandECOFFbinaries,这是初期UNIX体系的可实行文件格局,今朝已被ELF格局代替。
KernelsupportforMISCbinaries,此选项同意拔出二进制的封装层到内核中,当利用Java、.NET、Python、Lisp等言语编写的程序时十分有效。
六,文件体系
Filesystems<*>Secondextendedfssupport
[*]Ext2extendedattributes
[*]Ext2POSIXAccessControlLists
[*]Ext2SecurityLabels<*>Ext3journallingfilesystemsupport
[*]Ext3extendedattributes
[*]Ext3POSIXAccessControlLists
[*]Ext3SecurityLabels[]JBD(ext3)debuggingsupport<*>Reiserfssupport[]Enablereiserfsdebugmode[]Statsin/proc/fs/reiserfs
[*]ReiserFSextendedattributes
[*]ReiserFSPOSIXAccessControlLists
[*]ReiserFSSecurityLabelsJFSfilesystemsupport
[*]JFSPOSIXAccessControlLists[]JFSdebugging[]JFSstatisticsXFSfilesystemsupport
[*]Realtimesupport(EXPERIMENTAL)
[*]Quotasupport
[*]SecurityLabelsupport
[*]POSIXACLsupportMinixfssupportROMfilesystemsupport
[*]QuotasupportOldquotaformatsupportQuotaformatv2support
[*]DnotifysupportKernelautomountersupportKernelautomounterversion4support(alsosupportsv3)CD-ROM/DVDFilesystems--->DOS/FAT/NTFilesystems--->Pseudofilesystems--->Miscellaneousfilesystems--->NetworkFileSystems--->PartitionTypes--->NativeLanguageSupport--->
Secondextendedfssupport,尺度的Linux文件体系,倡议将这类文件体系编译进内核。
Ext2extendedattributes,Ext2文件体系的结点称号、属性的扩大撑持。
Ext2POSIXAccessControlLists,POSIX体系的会见权限列表撑持。也就是Owner/Group/Others的Read/Write/Execute权限。请参考Unix尺度文件体系权限。
Ext2SecurityLabels,扩大的平安标签,比方SElinux之类的平安体系会利用到如许的扩大平安属性。
Ext3journallingfilesystemsupport,假如你熟习RedhatLinux,你必定会习气Ext3文件体系。
Ext3extendedattributes,Ext3文件体系的结点称号、属性的扩大撑持。
Ext3POSIXAccessControlLists,POSIX体系的会见权限列表撑持。
Ext3SecurityLabels,扩大的平安标签撑持。
JBD(ext3)debuggingsupport,Ext3的调试。除非你是文件体系的开辟者,不然不要选上这一项。
Reiserfssupport,假如你熟习SuseLinux,你必定会习气Reiserfs文件体系
Statsin/proc/fs/reiserfs,在/proc/fs/reiserfs文件中显现Reiserfs文件体系的形态。一样平常来讲不必要选择这一项。
ReiserFSextendedattributes,Reiserfs,文件体系的结点称号、属性的扩大撑持。
ReiserFSPOSIXAccessControlLists,PO
12下一页
给你装的系统里为ubuntu12.04,它已经封装的很臃肿了,但是考虑到你没有很多时间投入其中,所以给你装了它,但是怎么用它提高开发效率,需要你在学习的过程中不断总结; 我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。 虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。 对我们学习操作系统有很大的帮助,加深我们对OS的理解。? 说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。? 掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。 随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。 未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。
页:
[1]