Linux内核裁剪机制优化(make menuconfig)

简介: Linux内核裁剪机制优化(make menuconfig)

 

Linux内核裁剪机制优化(make menuconfig)


内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig等等,它们的功能都是一样的,区别应该从名字上就能看出来,只有make oldconfig是指用系统当前的设置(./.config)作为缺省值。这里用的是make menuconfig。 需要牢记:不必要的驱动越多,内核就越大,不仅运行速度慢、占用内存多,在少数情况下、还会引发其他问题。具体步骤如下:

               1、首先确定shell是bash。

               2、make menuconfig


一、重要符号含义

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

               1、y:加载

               2、n:不加载

               3、m:作为模块加载。


2、配置选项

2.1、code maturity level option 代码成熟度

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

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


2.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


2.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/?]


2.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/?]

       并口设备,如打印机。


2.5、plug and play support 即插即用设备支持

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

       选y吧。


2.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。


2.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,理由同上。


2.8、SCSI support SCSI支持,

       SCSI low-level drives SCSI低级驱动 根据系统中SCSI设备的实际情况选择。


2.9、etworking device support 网络设备支持

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


2.10、Amateur Radio support 业余收音机支持

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


2.11、ISDN subsystem ISDN子系统

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


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

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


2.13、Character devices 字符设备

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

       Linux上一般可以用Alt+F1/F2/F3/F4来切换不同的任务终端,即使在一台计算机上也可以充分使用Linux的多任务能力,一些需要以命令行方式安装合适用的软件如果有虚拟终端的支持就会更方便,因此选y。

       Support for console on virtual terminal(CONFIG_VT_CONSOLE)[Y/n/?]

       选y将支持一个虚拟终端作为控制台。一般为Alt+F1。

       Support for console on serial port(CONFIG_SERIAL)[Y/m/n/?]

       除非真的需要一个串口控制台,否则选n。

       Extended dumb serial driver options(CONFIG_SERIAL_EXTENDED)[N/y/?]

       如果希望使用"dumb"的非标准特性(如HUB6支持),选y,一般选N。

       Non-standard serial port support(CONFIG_SERIAL_NONSTANDARD)[N/y/?]

       非标准串口。一般选N。 UNIX98 PTY support(CONFIG_UNIX98_PTYS)[Y/n/?]

       PTY指伪终端,一般用户就选n。但如果想用telnet或者xterms作为终端访问主机,并且已经安装了glibc2.1,就可以选y。

       Maximum number of UNIX98 PTYs in use(0-2048)(CONFIG_UNIX98_PTY_COUNT)[256]

       缺省值就可以了。

       Mouse Support(not serial mice)(CONFIG_MOUSE)[Y/n/?]

       PS/2等非串口鼠标选y,否则选N。


2.14、Mice 鼠标

       根据自己的鼠标类型选择。


2.15、Video for Linux Linux视频

       根据系统中的音/视频捕捉设备选择。


2.16、Joystick support 操纵杆

       根据系统中的游戏杆设备选择


2.17、Ftape the floopy tape device driver Ftape设备驱动 Ftape (QIC-80/Travan)support(CONFIG_FTAPE)[N/y/m/?] 如果系统中有磁带机,选y。


2.18、Filesystems

       文件系统 文件系统的选择要比较仔细,因为其中的一些给某些系统功能提供支持。而且除了proc、ext2等文件系统之外,其它的文件系统(包括下面的网络文件系统)都可以选择为m方式,从而减小内核启动时的体积。

       Quota support(CONFIG_QUOTA)[N/y/?] 用于给用户划分定量的磁盘空间。如不用此功能就选N。 DOS FAT fs support(CONFIG_FAT_FS)[N/y/m/?]

       为内核提供FAT支持,多数用户有可能从Linux访问同一系统中的WINDOWS硬盘空间,因此最好选y。

       ISO 9660 CDROM filesystem support(CONFIG_ISO9660_FS)[Y/m/n/?] 有标准光驱的系统应该选Y。

       Minix fs support(CONFIG_MINIX_FS)[N/y/m/?] 用于创建启动盘的文件系统,多数应该选y或者m。 /proc filesystem support(CONFIG_PROC_FS)[Y/n/?] 虚拟文件系统,必须选Y。 Second extended fs support(CONFIG_EXT2_FS)[Y/m/n/?] Linux标准文件系统,都应该选Y。


2.19、Network file systems 网络文件系统

       Coda filesystem support (advanced network fs)(CONFIG_CODA_FS)[N/y/m/?]先看帮助再选。

       NFS filesystem support(CONFIG_NFS_FS)[Y/m/n/?] 选Y或n, 能够访问远程NFS文件系统。

       SMB filesystem support(to mount WfW shares etc.)(CONFIG_SMB_FS)[N/y/m/?]

       要访问WINDOWS系统中的共享资源选y。

       NCP filesystem support(to mout NetWare volumes)(CONFIG_NCP_FS)[N/y/m/?] 如果真的需要访问NetWare文件系统,就选y或者m。


2.20、Partion Types 分区类型

       一般用不上;要用请参看帮助。


2.21、Console drivers 控制台驱动

       VGA text console(CONFIG_VGA_CONSOLE)[Y/n/?]用VGA模式下用文本方式操作Linux,一般选y。

       Video mode selection support(CONFIG_VIDEO_SELECT)[N/y/?]

       大多数系统都不需要这项功能。


2.22、Sound 声音

       Sound card support(CONFIG_SOUND)[N/y/m/?]

       如果系统中安装了声卡,就选y(或者m),然后查看帮助。


2.23、Kernel hacking 内核监视

       kernel hacking往往会生成非常大或者非常慢(甚至又大又慢)的内核,甚至会引起内核工作不稳定。如果一定要选,那么也最好不要选其中的"development"、"experimental"、"debugging"项。

相关文章
|
4天前
|
算法 Linux 调度
深入理解Linux内核调度器:从基础到优化####
本文旨在通过剖析Linux操作系统的心脏——内核调度器,为读者揭开其高效管理CPU资源的神秘面纱。不同于传统的摘要概述,本文将直接以一段精简代码片段作为引子,展示一个简化版的任务调度逻辑,随后逐步深入,详细探讨Linux内核调度器的工作原理、关键数据结构、调度算法演变以及性能调优策略,旨在为开发者与系统管理员提供一份实用的技术指南。 ####
21 4
|
6天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
27 9
|
5天前
|
缓存 负载均衡 Linux
深入理解Linux内核调度器
本文探讨了Linux操作系统核心组件之一——内核调度器的工作原理和设计哲学。不同于常规的技术文章,本摘要旨在提供一种全新的视角来审视Linux内核的调度机制,通过分析其对系统性能的影响以及在多核处理器环境下的表现,揭示调度器如何平衡公平性和效率。文章进一步讨论了完全公平调度器(CFS)的设计细节,包括它如何处理不同优先级的任务、如何进行负载均衡以及它是如何适应现代多核架构的挑战。此外,本文还简要概述了Linux调度器的未来发展方向,包括对实时任务支持的改进和对异构计算环境的适应性。
23 6
|
6天前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
23 5
|
6天前
|
算法 Unix Linux
深入理解Linux内核调度器:原理与优化
本文探讨了Linux操作系统的心脏——内核调度器(Scheduler)的工作原理,以及如何通过参数调整和代码优化来提高系统性能。不同于常规摘要仅概述内容,本摘要旨在激发读者对Linux内核调度机制深层次运作的兴趣,并简要介绍文章将覆盖的关键话题,如调度算法、实时性增强及节能策略等。
|
6天前
|
缓存 运维 网络协议
深入Linux内核架构:操作系统的核心奥秘
深入Linux内核架构:操作系统的核心奥秘
22 2
|
4天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
21 3
|
4天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
17 2
|
12天前
|
缓存 监控 Linux