当前位置: 技术问答>linux和unix
关于linux裁减,大家给点意见,分数不是问题,回答有分,好的可以再加.
来源: 互联网 发布时间:2015-05-29
本文导语: 以前没有搞过linux,大家有没有搞过裁减的? 研究所要搞这个,我都不知道从哪里入手,请大家多给点意见 比如: 要从那里学起? 都需要学点什么? 如果做嵌到嵌入386系统,难度多大? 希望linux开发高手指点一下...
以前没有搞过linux,大家有没有搞过裁减的?
研究所要搞这个,我都不知道从哪里入手,请大家多给点意见
比如:
要从那里学起?
都需要学点什么?
如果做嵌到嵌入386系统,难度多大?
希望linux开发高手指点一下。
先谢谢了!
研究所要搞这个,我都不知道从哪里入手,请大家多给点意见
比如:
要从那里学起?
都需要学点什么?
如果做嵌到嵌入386系统,难度多大?
希望linux开发高手指点一下。
先谢谢了!
|
要做嵌入式是要把文件系统去掉,去掉了文件系统,linux就是实是控制系统
-----------------------------------------------------
好些时候,我们需要一个只要一张软盘就能启动Linux 的系统,比如说做路由器。但是我们该怎样做呢? 也就是说我们要把Kernel和FileSystem都做在一张3.5'的盘上。我们先把FileSystem 分解成如下几个部分吧。
1. /bin目录下的文件
bin目录通常是放置系统的一些基本命令文件的目录,要保证你的系统能够正常启动而且能够完成必要的功能,你需要在 /bin目录下放置如下文件:
ksh--->shell是不可少的。
more-->要知道Linux下可没有type命令哦。
dmesg->虽然你很熟悉你的系统硬件,但是有它还是方便多了。
ps---->检查系统进程是管理员的良好习惯。
login->总不至于不要人家登录吧,再说它也是底层系统的构成呀。
sync-->更新磁盘的Block,很有好处啊。
mount->除非你不要文件系统就不需要它。
umount->卸载文件系统的东东。
kill-->杀掉那些无用或停止响应的进程。
setterm->修改终端参数的。
hostname->显示当前机器名字。
telnet->远程登录,你的Linux不会不干点其他的事吧!
ping-->检查网络连接状态。
ftp--->虽然什么也放不下,但是留下它也有好处的。
tar--->备份很重要!即使你的系统只有一个软驱!
killall->shutdown时系统会用它哦。
chmod->修改文件属性的。
chown->修改文件的归属
cp--->拷贝文件,修复系统时可以用啊!
dd--->据说好多管理员常用啊,但是我还真没用过!因为我很少进行介质拷贝。
df--->查看磁盘使用情况。
du--->查看指定路径的占用空间。
ls--->你不会一次都没用过吧!
mkdir->建目录是常事,即使在只有一张盘的情况下!
mv--->移动文件的命令。
rm--->删除文件,万一有多的怎么办?靠它了!
ln--->链接文件,当然有用了!
dircolors-->设定目录的颜色,当你用的是彩显时。
cut-->将文件的一些行送到标准输出设备。
cat-->把标准输入送到文件或把文件送到标准输入
stty-->很重要的终端命令哦!
gzip-->打包和解包的程序
domainname-->查看域名。
还要把一些东西链接起来哦
date@ -> /sbin/clock
less@ -> more
sh@ -> ksh
gunzip@ -> gzip
zcat@ -> gzip
bash@ -> sh
tcsh@ -> sh
2./etc目录下的文件
etc目录是放置系统配置信息的文件目录,同时也放置了一些系统初始化文件。
mtab -->mounted table已经mount的FileSystem列表。
kernel -->系统内核。
issue -->login时的prompt信息 。
profile -->bash下的全域用户登陆时执行的批处理文件 。
psdevtab -->kernel映象的相关文件。
inittab -->初始化列表,系统启动时要用到的东东。
passwd -->用户的password数据库。
motd -->message of today 用户login时显示的信息。
fstab -->开机时要自动mount的FileSystem。
hosts -->domain name到IP的解析文件。
resolv.conf -->本机的IP地址和域名服务器地址配置文件。
termcap -->终端字符映射文件。
services -->系统启动时加载的服务项目。
rpc -->RPC资源解释文件。
protocols -->系统协议说明文件。
networks --> 定义本机IP和子网的配置文件。
mtools -->mtools的parameter文件。
hosts.deny --> 设置那些目的机不能Telnet到此主机。
hosts.allow -->和hosts.deny相反,设置可以Telnet到此机的目的机地址。
exports -->NFS的系统档案。
DIR_COLORS -->设置ansi-color终端的系统颜色。
HOSTNAME -->本机的domain name。
inetd.conf -->inetd进程的配置文件。
ld.so.cache -->系统lib的缓存信息。
shells -->系统可用的shell的记录。
host.conf -->本机的网络相关配置。
magic -->系统内档案格式的资料。
utmp -->当前login用户的记录。
group -->用户组参数记录。
ld.so.conf -->记录一些lib所在的目录。
fastboot -->shutdown命令产生的一个文件,系统重新启动时会检查该文件。
3. /sbin目录下的文件
这个目录下放置一些系统扩展命令:
swapoff@ -> swapon --> 把swapoff连接到swapon命令
telinit@ -> init --> 把telinit连接到init命令
reboot@ -> halt --> 把reboot连接到halt命令
addswap -->增加一个交换分区,需要自己编辑一个addswap脚本
chkhd -->检查硬盘
clock -->测定设置时间
swapon -->打开交换分区
update -->bdflush的守护
mkswap -->格式化交换分区
agetty -->终端守护
init -->系统初始化命令
shutdown -->关闭系统
halt -->系统停机
killall5 -->清出所有进程
ifconfig -->网络配置程序
route -->路由设置命令
bdflushd -->打开buffer回写到磁盘
4. /usr目录下的文件
用户目录,目录下放置了一些用户经常需要使用的程序和一些配置数据
spool@ -> ../var/adm -->连接到/var/adm
tmp@ -> ../var/adm -->连接到/var/adm
adm@ -> ../var/adm -->连接到/var/adm
/usr/bin目录,用户命令文件目录
who -->查询当前登陆用户
superformat -->高级格式化工具
loadkeys -->加载键盘影射表
joe -->一种十分好使的编辑器
uptime -->查看系统从启动到现在的运行时间
finger -->查询用户信息
mcheck -->检查dos系统软盘
tput -->初始化终端或者查询终端信息
traceroute -->检查路由路径
host ->检查当前主机配置信息
split -->分割文件
sleep -->延迟指定时间
setfont -->设置字体
grep -->行查询指令,常常配合管道使用
reset -->重置系统参数
usr/sbin目录下放置了用户需要使用的高级指令,但我们没有使用到,看看磁盘空间,能放些什么自己放吧。
/usr/local目录放置了一些应用程序的配置文件
usr/local/lib目录
lynx.cfg -->lynx浏览器的配置文件
usr/lib目录
es.map -->键盘映射文件
t.fnt -->字体文件
5. /lib目录下的文件
-----------------------------------------------------
好些时候,我们需要一个只要一张软盘就能启动Linux 的系统,比如说做路由器。但是我们该怎样做呢? 也就是说我们要把Kernel和FileSystem都做在一张3.5'的盘上。我们先把FileSystem 分解成如下几个部分吧。
1. /bin目录下的文件
bin目录通常是放置系统的一些基本命令文件的目录,要保证你的系统能够正常启动而且能够完成必要的功能,你需要在 /bin目录下放置如下文件:
ksh--->shell是不可少的。
more-->要知道Linux下可没有type命令哦。
dmesg->虽然你很熟悉你的系统硬件,但是有它还是方便多了。
ps---->检查系统进程是管理员的良好习惯。
login->总不至于不要人家登录吧,再说它也是底层系统的构成呀。
sync-->更新磁盘的Block,很有好处啊。
mount->除非你不要文件系统就不需要它。
umount->卸载文件系统的东东。
kill-->杀掉那些无用或停止响应的进程。
setterm->修改终端参数的。
hostname->显示当前机器名字。
telnet->远程登录,你的Linux不会不干点其他的事吧!
ping-->检查网络连接状态。
ftp--->虽然什么也放不下,但是留下它也有好处的。
tar--->备份很重要!即使你的系统只有一个软驱!
killall->shutdown时系统会用它哦。
chmod->修改文件属性的。
chown->修改文件的归属
cp--->拷贝文件,修复系统时可以用啊!
dd--->据说好多管理员常用啊,但是我还真没用过!因为我很少进行介质拷贝。
df--->查看磁盘使用情况。
du--->查看指定路径的占用空间。
ls--->你不会一次都没用过吧!
mkdir->建目录是常事,即使在只有一张盘的情况下!
mv--->移动文件的命令。
rm--->删除文件,万一有多的怎么办?靠它了!
ln--->链接文件,当然有用了!
dircolors-->设定目录的颜色,当你用的是彩显时。
cut-->将文件的一些行送到标准输出设备。
cat-->把标准输入送到文件或把文件送到标准输入
stty-->很重要的终端命令哦!
gzip-->打包和解包的程序
domainname-->查看域名。
还要把一些东西链接起来哦
date@ -> /sbin/clock
less@ -> more
sh@ -> ksh
gunzip@ -> gzip
zcat@ -> gzip
bash@ -> sh
tcsh@ -> sh
2./etc目录下的文件
etc目录是放置系统配置信息的文件目录,同时也放置了一些系统初始化文件。
mtab -->mounted table已经mount的FileSystem列表。
kernel -->系统内核。
issue -->login时的prompt信息 。
profile -->bash下的全域用户登陆时执行的批处理文件 。
psdevtab -->kernel映象的相关文件。
inittab -->初始化列表,系统启动时要用到的东东。
passwd -->用户的password数据库。
motd -->message of today 用户login时显示的信息。
fstab -->开机时要自动mount的FileSystem。
hosts -->domain name到IP的解析文件。
resolv.conf -->本机的IP地址和域名服务器地址配置文件。
termcap -->终端字符映射文件。
services -->系统启动时加载的服务项目。
rpc -->RPC资源解释文件。
protocols -->系统协议说明文件。
networks --> 定义本机IP和子网的配置文件。
mtools -->mtools的parameter文件。
hosts.deny --> 设置那些目的机不能Telnet到此主机。
hosts.allow -->和hosts.deny相反,设置可以Telnet到此机的目的机地址。
exports -->NFS的系统档案。
DIR_COLORS -->设置ansi-color终端的系统颜色。
HOSTNAME -->本机的domain name。
inetd.conf -->inetd进程的配置文件。
ld.so.cache -->系统lib的缓存信息。
shells -->系统可用的shell的记录。
host.conf -->本机的网络相关配置。
magic -->系统内档案格式的资料。
utmp -->当前login用户的记录。
group -->用户组参数记录。
ld.so.conf -->记录一些lib所在的目录。
fastboot -->shutdown命令产生的一个文件,系统重新启动时会检查该文件。
3. /sbin目录下的文件
这个目录下放置一些系统扩展命令:
swapoff@ -> swapon --> 把swapoff连接到swapon命令
telinit@ -> init --> 把telinit连接到init命令
reboot@ -> halt --> 把reboot连接到halt命令
addswap -->增加一个交换分区,需要自己编辑一个addswap脚本
chkhd -->检查硬盘
clock -->测定设置时间
swapon -->打开交换分区
update -->bdflush的守护
mkswap -->格式化交换分区
agetty -->终端守护
init -->系统初始化命令
shutdown -->关闭系统
halt -->系统停机
killall5 -->清出所有进程
ifconfig -->网络配置程序
route -->路由设置命令
bdflushd -->打开buffer回写到磁盘
4. /usr目录下的文件
用户目录,目录下放置了一些用户经常需要使用的程序和一些配置数据
spool@ -> ../var/adm -->连接到/var/adm
tmp@ -> ../var/adm -->连接到/var/adm
adm@ -> ../var/adm -->连接到/var/adm
/usr/bin目录,用户命令文件目录
who -->查询当前登陆用户
superformat -->高级格式化工具
loadkeys -->加载键盘影射表
joe -->一种十分好使的编辑器
uptime -->查看系统从启动到现在的运行时间
finger -->查询用户信息
mcheck -->检查dos系统软盘
tput -->初始化终端或者查询终端信息
traceroute -->检查路由路径
host ->检查当前主机配置信息
split -->分割文件
sleep -->延迟指定时间
setfont -->设置字体
grep -->行查询指令,常常配合管道使用
reset -->重置系统参数
usr/sbin目录下放置了用户需要使用的高级指令,但我们没有使用到,看看磁盘空间,能放些什么自己放吧。
/usr/local目录放置了一些应用程序的配置文件
usr/local/lib目录
lynx.cfg -->lynx浏览器的配置文件
usr/lib目录
es.map -->键盘映射文件
t.fnt -->字体文件
5. /lib目录下的文件
|
“要做嵌入式是要把文件系统去掉,去掉了文件系统,linux就是实是控制系统”。
去掉了文件系统,linux就是实是控制系统?
不会吧。如果不对进程调度部分进行修改,分时系统能够成为实时系统?
去掉了文件系统,linux就是实是控制系统?
不会吧。如果不对进程调度部分进行修改,分时系统能够成为实时系统?
|
开玩笑,ramdisk只是一种fs而已,现在用的最多的是jffs2,放在flash中,请1楼的同志不要误人子弟!!!
|
1、你可以找软盘linux操作系统,找那种dos下安装的,将其安装到软盘后,使用软盘启动系统。进行系统后你就可以看到一下相对简单但必须的文件系统与内核文件,从这入手相对简单一点。
2、熟悉系统启动与命令操作后,将其移植到磁盘。这样你可尝试进行参数修改与内核编译与安装。
3、进行驱动选择与安装。
4、找出嵌入式硬件平台有别于x86构架的部份
5、了解嵌入式设备特征,购买arm开发套件(一般都带了详细的文档以及程序demo),了解交叉调试与uclinux(如果你选择它的话)系统特征(如果实现内存管理等),比较uclinux与标准linux有何不同(libc库,进程实现)。
6、嵌入式系统裁减完后一般都需要能够运行程序,否则无实用意义,所以需要注意lib库文件的版本。
7、最重要的是你的嵌入式系统最终裁减目标是多大,如果小的话,将文件系统压缩,系统启动时自解压即可。文件系统的选择并不是关键,标准linux本身不是实时系统,其反应时间过长,而且每次运行的时间也不等,主要是考虑到程序调度优先权的问题。所以如果你要将它做为实时系统是需要做改善的,就像uclinux等。
2、熟悉系统启动与命令操作后,将其移植到磁盘。这样你可尝试进行参数修改与内核编译与安装。
3、进行驱动选择与安装。
4、找出嵌入式硬件平台有别于x86构架的部份
5、了解嵌入式设备特征,购买arm开发套件(一般都带了详细的文档以及程序demo),了解交叉调试与uclinux(如果你选择它的话)系统特征(如果实现内存管理等),比较uclinux与标准linux有何不同(libc库,进程实现)。
6、嵌入式系统裁减完后一般都需要能够运行程序,否则无实用意义,所以需要注意lib库文件的版本。
7、最重要的是你的嵌入式系统最终裁减目标是多大,如果小的话,将文件系统压缩,系统启动时自解压即可。文件系统的选择并不是关键,标准linux本身不是实时系统,其反应时间过长,而且每次运行的时间也不等,主要是考虑到程序调度优先权的问题。所以如果你要将它做为实时系统是需要做改善的,就像uclinux等。
|
不如用busybox将命令搞定~
自己只管加一个内核,写写配置文件,加一些必要的运行库就OK了~
另外~嵌入式不一定非要去掉文件系统吧,一楼的方法也是有文件系统的~
偶做的一个嵌入式LINUX是放在DOC上的。
而且实时也不是去掉文件系统就能实现的~
实时要求的不是反应够快,而是一个“确定性”(predictable)。
其实如果不自己修改内核源码以满足特殊要求(比如说将其真正实时化),
整个裁减过程是一个毫无技术含量的工作。。。无非是工匠式地堆砌工作。
自己只管加一个内核,写写配置文件,加一些必要的运行库就OK了~
另外~嵌入式不一定非要去掉文件系统吧,一楼的方法也是有文件系统的~
偶做的一个嵌入式LINUX是放在DOC上的。
而且实时也不是去掉文件系统就能实现的~
实时要求的不是反应够快,而是一个“确定性”(predictable)。
其实如果不自己修改内核源码以满足特殊要求(比如说将其真正实时化),
整个裁减过程是一个毫无技术含量的工作。。。无非是工匠式地堆砌工作。
|
不需要书,现在市面上嵌入式LINUX的书都是大杂烩,将内核编译,DOC,busybox....
等凑合在一起,真的不值得花钱去买~~
至于具体怎么做~要看你的需求而定。前面也有很多讲了大致步骤~
你也可以去google一下。。
还是那句话:如果不需要修改内核源码来满足特殊要求的话~
整个裁减移植工作就一简单堆砌。。
等凑合在一起,真的不值得花钱去买~~
至于具体怎么做~要看你的需求而定。前面也有很多讲了大致步骤~
你也可以去google一下。。
还是那句话:如果不需要修改内核源码来满足特殊要求的话~
整个裁减移植工作就一简单堆砌。。
|
好帖子!
|
qsyang(二拳映月) 说的对!网关运行的裁减的linux内核都是放在flash当中,8M就够了
但是我不清楚 那一块是用什么搞的!明年工作就搞这个 但是我还没有低!
有高手带我吗?
但是我不清楚 那一块是用什么搞的!明年工作就搞这个 但是我还没有低!
有高手带我吗?