分享
 
 
 

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

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

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

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

在一台P3-566的Dell机器安装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

support: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系统只需要下面三个基本元素:

1.

引导工具

2.

Linux微内核,由内存管理、进程管理和事务处理构成

3.

初始化进程

如果要让它能干点什么且继续保持小型化,还得加上:

1.

硬件驱动程序

2.

提供所需功能的一个或更多应用程序。

再增加功能,或许需要这些:

一个文件系统(也许在ROM或RAM)中

TCP/IP网络堆栈对该种系统,做了不同的设置:

不要

floppy;不要SMP、MTRR;不要

Networking、SCSI;把所有的

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

K。10K就加上个

TCP/IP

stack。

有stack没有driver也是枉然,把

embedded

board常用的RTL8139的driver加回去,195K.

如果你需要

DOS

档案系统,那大小成为

213K。如果

minix

ext2

换代,则大小成长至

222K。

Linux所需的内存大约在600K~800K之间。1MB内存就可能可以开机了,但不太有用,因为连载入C程序库都有困难。2MB内存应该就可以做点事了,但要到

4MB以上才可以执行一个比较完整的系统。

因为Linux的filesystem

相当大,大约在

230K

左右,占了

1/3

的体积。内存管理占了80K,和核心其它部分的总和差不多。TCP/IP

stack

占了65K,驱动程序占了120K。SysV

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

socket: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

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

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

IP: firewalling

这三个选项选[Y]。以及下一个选项IP:always

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:IPX为Netware

网络使用的通讯协议。

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有