科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件嵌入式Linux研究-对几种典型的系统的内核配置方案

嵌入式Linux研究-对几种典型的系统的内核配置方案

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要介绍了几种减裁Linux核心的方法,可以用于嵌入式系统、嵌入式服务器的核心配置。

作者:jitom 来源:CSDN 2008年3月27日

关键字: 研究 Linux 嵌入式 开源

  • 评论
  • 分享微博
  • 分享邮件

1.对于一般PC的普通内核配置

  对于一般的用户而言,对于Linux内核的效率和大小的要求都不高。因此一般不对内核重新配置,因为Linux安装程序会在安装时对大部分设置按照安装的需求和实际的硬件做缺省设置。这样的内核会比实际需要的繁冗,有很多模块加载后根本就没有用到,但是因为现在的PC的内存一般都是上百MB,而一个Linux内核再大也就是几百K,因此对于一般用户而言,无需再重新编译内核了。

  在一台P3-566Dell机器安装Red-Hat 7.2,内核版本为2.4.6

  
以下是一些该机的配置:

  Loadable module support :Y

  Networking support: Y

  PCI support:Y

  System V IPC 
Y因为可以做一些基于System V的程序

  Kernel support for a.out binaries:Y

  Kernel support for ELF binaries:Y

  Block devices 
:对此根据该机的硬件做了相应的配置,去除一些本机没有的硬件设备的支持模块。如:Loopback device support

  Networking options:

   Packet socket:Y

   TCP/IP networking:Y

   Network firewalls:Y

   The IPX protocol:Y

  Network device support:

   Network device support:Y

   Ethernet(10 or 100Mb/s):Y

  Character device

   Virtual terminal:Y


   Support for console on virtual terminal:Y

  Filesystems

   Second extended fs support:Y

   VFAT fs support :m 
笔者有时会用到该机上的VFAT分区 

   /proc filesystem support Y

   ISO9660 cdrom filesystem support:m

  Network File Systems

   NFS filesystem suppor
t:Y

   SMB filesystem support:m

  Console drivers

   VGA text console :Y

   Video mode selection support:Y

   VESA VGA graphics console :Y

  Kernel hacking

   Magic SysRq key:Y

  
还有一些缺省的设置笔者没有改。这样编译出来的版本有700K.经过笔者调试过没有出现什么问题。

2.PDA
的内核设置

  PDA(Personal Digital Assist)如:手机,快译通,文曲星等等。这类系统要求系统稳定,内核小而且效率高,常常需要一些特殊的硬件支持。对进程调度、文件系统要求单一,有些就是单进程系统。对网络的支持由根据需要确定。RedHat的内核无法直接用来设计一些特殊要求的PDA,一般还要加入对硬件的特定模块。

  可作如下设置:

  Networking support:Y :一般PDA都支持上网更新功能

  Kernel support for ELF binaries :Y

  Compile as 
ELF –if your GCC is ELF-GCC :Y
这两个设置使系统的执行文件都为ELF

  Advanced Power Manager Bios support:Y 

  Block devices :
应该加入对硬件特殊的支持模块

  Networking options

   Packet socket 

  FileSystem 

   Second extended fs support:Y

  
另外的一些功能为N,当然一些功能必须选择用来支持上述的模块。编译后为100KB---400KB

3.
小型嵌入式系统的内核配置

  一个小型的嵌入式Linux系统只需要下面三个基本元素:

  
引导工具  
Linux
微内核,由内存管理、进程管理和事务处理构成  
初始化进程
  
如果要让它能干点什么且继续保持小型化,还得加上:

  
硬件驱动程序  
提供所需功能的一个或更多应用程序。
  
再增加功能,或许需要这些: 一个文件系统(也许在ROMRAM)中 TCP/IP网络堆栈对该种系统,做了不同的设置:

  
不要 floppy;不要SMPMTRR;不要 NetworkingSCSI;把所有的 block device 移除,只留下 IDE device;把所有的 character device 移除;把所有的 filesystem 移除,只留下 minix;不要 sound 支援。这样己经把所有的选项都移除了。这样做之后,得到了一个 188K 的核心.

  
把下列两个档案中的 -O3,-O2  -Os 取代。

   ./Makefile
   ./arch/i386/kernel/
   Makefile

  
这样一来,整个核心变小了 9K,成为 179K

  不过这个核心恐怕很难发挥 Linux 的功能,因此把网络加回去。把General setup中的 network support 加回去,重新编译,核心变成 189 K10K就加上个 TCP/IP stack stack没有driver也是枉然,把 embedded board常用的RTL8139driver加回去,195K.

  
如果你需要 DOS 档案系统,那大小成为 213K。如果 minix  ext2 换代,则大小成长至 222K

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

  因为Linuxfilesystem 相当大,大约在 230K 左右,占了 1/3 的体积。内存管理占了80K,和核心其它部分的总和差不多。TCP/IP stack 占了65K,驱动程序占了120KSysV IPC占了 21K,必要的话可以拿掉,核心档应该可以再小个10K左右。

  如果要裁剪核心大小,应该动那里呢? 答案很明显,当然是文件系统。Linux  VFS简化了档案系统的设计,buffer cache, directory cache增加了系统的效率。但这些embedded系统根本就用处不大。如果可以把它们拿掉,核心可以马上缩小 20K 左右。如果跳过整个 VFS,直接将文件系统写成一个 driver 的型式,应该可以将 230K缩减至50K左右。整个核心缩到100K左右。

4.
工控机的内核配置

  对于工控机内核,对于内核的大小要求并不严格,关键的是正确性,健壮性和实时性(某些机子要求实时性较高).对文件系统要求单一,但保证正确性.网络按需设置。

  可作如下配置:

  Symmetric multi-processing support:Y

  Loadable module support:N 
工控机一般将可能用到的模块都全部装入内存.

  Networking support:Y

  System V IPC :Y

  Kernel supply for ELF binaries:Y

  Block devices:
根据具体硬件配置

  Networking options

   packet sock
et:Y

   
根据具体需要,一般工控机是通过LAN连接,与外界隔离故要IPX协议,另外Tcp/ip一般也需要.

   QoS and/or fair queueing:Y

   QoS(Quality Of Service ) and fair queueling 
是一种排定某种封包先送的网络线程表,可同时针对多个网络封包处理并依优先处理顺序来排序,称之为packet schedulers.此功能特别是针对实时系统时格外重要,当多个封包同时送到网络设备时,Kernel可以适当的决定出哪一个封包必须优先处理.因此Kernel提供数种packet scheduling algorithm.

  Filesystems

   Second Extended fs support:Y

  
其余配置和小型嵌入式系统差别不大.同一台机器上编译出来的内核大小为800KB

5.
服务器的内核配置:

    
  
服务器的内核对网络设置和进程调度都非常关键.做如下配置:

  Symmetric multi-processing support:Y

  Loadable module support:Y


  Networking support:Y

  Networking option

   Packet socket:Y


   TCP/IP networkeing:Y

   Network firewalls:
是否采用网络防火墙。如果计算机想当firewalls server 或者是处于TCP/IP 通信协议的网络的网路结构下,这一项要选[Y]

   Network aliasing[Y/m/n/?]:
一台网络上的计算机可以拥有多组IP地址。如果计算机想拥有多个IP地址,就选择[Y].

   IP:forwarding/gatewaying[Y/m/n/?]:
假如用户想当路由器的话,选择[Y],但先决条件是有两张网卡,一张对外部网络、一张对内部网络,并且使用的ISP那一端也必须设定routing,允许用户这台路由器才行。

   IP:multicasting:可以一次就完成传送一个packet到好几台计算机的操作。

   IP:syn_cookies:一种保护措施,将各种TCP/IP的通信协议加密,防止Attacker攻击用户的计算机,并且可以纪录企图攻击用户的计算机的IP地址。

   IP:firewalling:该台计算机是否是防火墙服务器。

   IP:firewall packet logging:是否由klogd记录防火墙服务器到底接收了哪些Packet

   IP: masquerading:可以将内部网络的计算机送出去的封包,通过防火墙服务器直接传递给远端的计算机,而远端的计算机看到的就是接收到的防火墙服务器送过来的封包,而不是从内部的计算机送过来的。这样如果内部只有一台计算机可以上网,其余的机器可以通过这台机子的防火墙服务器向外连线。选择这个选项必需先确定先前的Network Firewalls IP:forwarding/gatewaying  IPfirewalling 这三个选项选[Y]。以及下一个选项IPalways deframent 也要选[Y].

   IP:ICMP masquerading: 
一般masquerading 只提供处理TCP,UDP packets,若要让masqurerading 也能处理ICMP packets,这个选项要选[Y].

   IP:always defragment:
可将接收到的packet fragments重新组合回原来那个封包。

   IP:accounting:统计IP packet的流量,也就是网络的流通情况。

   IP:optimize as router not host:可以关闭copy&checksum技术,防止流量大的服务器的IP packets丢失。

   IP:tunneling:可在不同网域中使用linux,且都不用改IP就可以直接上网了。适合于笔记本型计算机用户。

   IP:Reverse ARP :主要是提供bootp的功能,让计算机从可以从网卡的Boot Ram启动。

   IP:Disable Path MTU Discovery:是否取消Path MTU Discovery.MTU 有助于处理拥挤的网络。

   The IPX protocol:IPXNetware 网络使用的通讯协议。

  其余根据需要设置。编译出的内核为800K

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倸鍊风欢锟犲矗鎼淬劌绐楅柡鍥╁亹閺嬪酣鏌曡箛瀣仾濠殿垰銈搁弻鏇$疀鐎n亖鍋撻弽顓ㄧ稏闁跨噦鎷�

    婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掆偓缂嶅﹪骞冨Ο璇茬窞闁归偊鍓涢悾娲⒑闂堟单鍫ュ疾濠婂嫭鍙忔繝濠傜墛閸嬨劍銇勯弽銊с€掗柟钘夊暣閺岀喖鎮滈埡鍌涚彋閻庤娲樺畝绋跨暦閸洖鐓涢柛灞剧矋濞堟悂姊绘担绛嬪殐闁搞劋鍗冲畷銏ゅ冀椤愩儱小闂佹寧绋戠€氼參宕伴崱妯镐簻闁靛牆鎳庢慨顒€鈹戦埥鍡椾簼婵犮垺锚铻炴俊銈呮噺閸嬪倹绻涢崱妯诲碍閻庢艾顦甸弻宥堫檨闁告挾鍠庨锝夘敆娓氬﹦鐭楁繛鎾村焹閸嬫捇鏌e☉娆愬磳闁哄本绋戦埞鎴﹀川椤曞懏鈻婄紓鍌欑劍椤ㄥ懘鎯岄崒鐐靛祦閹兼番鍔岄悞鍨亜閹烘垵顏╅悗姘槹閵囧嫰寮介妸褎鍣ョ紓浣筋嚙濡繈寮婚悢纰辨晣鐟滃秹鎮橀懠顒傜<閺夊牄鍔庣粻鐐烘煛鐏炶姤鍠橀柡浣瑰姍瀹曠喖顢橀悩铏钒闂備浇宕垫慨鎶芥⒔瀹ュ鍨傞柦妯猴級閿濆绀嬫い鏍ㄧ☉濞堟粓姊虹涵鍛【妞ゎ偅娲熼崺鈧い鎺嗗亾闁挎洩濡囧Σ鎰板籍閸繄顓洪梺缁樺姇瀵剙螖閸涱喚鍘搁梺鍓插亽閸嬪嫰鎮橀敃鍌涚厱閻庯綆鍋嗘晶顒傜磼閸屾稑绗ч柟鐟板閹煎湱鎲撮崟闈涙櫏闂傚倷绀侀幖顐も偓姘卞厴瀹曞綊鏌嗗鍛紱閻庡箍鍎遍ˇ浼村磿瀹ュ鐓曢柡鍥ュ妼婢ь垰霉閻樿秮顏堟箒闂佹寧绻傚Λ妤呭煝閺囥垺鐓冪憸婊堝礈濮樿泛钃熼柕濞у嫷鍋ㄩ梺缁樺姇椤曨參鍩㈤弴銏″€甸柨婵嗗€瑰▍鍥ㄣ亜韫囨稐鎲鹃柡灞炬礋瀹曢亶顢橀悢濂変紦

    重磅专题
    往期文章
    最新文章