嵌入式Linux缩减问题
大家好,本人目前刚刚接触Linux。现在公司的项目需要缩减Linux的Kernel和APP部分的Code Size。目前我们使用的是Linux2.6.22.15版本,应用于ADSL Modem(家庭网关)。
1.我们产品应用是ADSL Gateway,Kernel部分裁剪工作已经差不多了,目前Kernel Flash Size大小为620KB左右,基于Linux 2.6.22.15.
2.目前我们使用的是Squash的只读的文件系统,从网络上了解的资料是目前压缩比最高的了。Rootfs压缩后的Flash Size为1.9MB左右
3.因为是Gateway,所以App有很多。像路由,DHCP,HTTP,SNMP,TR69,TR64,telnet,ftp等等。目前共有27个应用程序,压缩后的Flash
Size 840KB左右。
目前的任务就是从Kernel和Rootfs下手。把现在Kernel+rootfs=2.8M的体积要缩小到2M以内。功能部分不能减少,所以感觉难度很大。
App部分有一个想法,想参考BusyBox的做法,把所有的App都放到一个App中实现,然后用ln的方式导出每个App的链接,这样就可以缩掉好多link
symbol,库函数也可以用静态链接的方式去掉多余的库函数。请问一下这种方式来实现有没有可能?如果可以的话有没有什么缺陷?
目前系统各部分占用的Flash Size如下面所示:
项目 小类 Flash Size(KB) 达到目标Size(KB) 目前实验能够达到Size(KB)
Kernel Kernel(without ipv6) 800 500 &
相关问答:
#include "csapp.h"
#define MAX_ARG_NUM 10
#define MAXLINE 512
#define PEER_PORT 1719
struct Udp2SipMsg
{
int argc;
c ......
目标:当网络中有数据到达或者超时,程序进入下一次循环。
问题:select()函数不起作用,程序不会在select的地方阻塞一秒,并且当网络上有数据的时候,select的返回值仍然小于0
#include <s ......
请有经验坛友谈谈做C++开发与Linux的关系,就是开发是不是一般都在Linux下进行的之类的话题。
开发可以不再Linux下,但调试要做Linux下。
开发随便,只要是标准C++,Windows下都可以调试
两者都可以~~~
开 ......
192.168.0.201是Linux
192.168.0.35是另外一台装有WEB的服务器,
我想访问192.168.0.201的时候
让他nat到192.168.0.35的80上。
以下是我设置的,但是不行。应该怎么设置呀?
root@ubuntu:/h ......