首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

构造嵌入式Linux 02

构造嵌入式Linux 02

还不够小吗? OK,再加上一招,请把下列两个档案中的 -O3,-O2 用
  取代。
  这样一来,整个核心变小了 9K,成为 179K。
  不过这个核心恐怕很难发挥 Linux 的功能,因此我决定把网络加回去。
  把General中的 network support 加回去,重新编译,核心变成 189 K。
  就加上个 TCP/IP stack,似乎是很上算的生意。
  有stack没有driver也是枉然,所以我把 embedded board常用的
  的driver加回去,195K。
  如果你需要 DOS 档案系统,那大小成为 213K。如果 minix 用 ext2 换
  代,则大小成长至 222K。
  Linux所需的内存大约在600K~800K之间。1MB内存就可能可以开机了,
  但不太有用,因为连载入C程序库都有困难。2MB内存应该就可以做点事了,
  但要到 4MB以上才可以执行一个比较完整的系统。
  因为Linux 的filesystem 相当大,大约在 230K 左右,占了 1/3 的体
  积。内存管理占了80K,和核心其它部分的总和差不多。TCP/IP stack 占了
  ,驱动程序占了120K。SysV IPC占了 21K,必要的话可以拿掉,核心档应
  该可以再小个10K左右。
  如果要裁剪核心大小,应该动那里呢? 答案很明显,当然是文件系统。
  的 VFS简化了档案系统的设计,buffer cache, directory cache增加
  了系统的效率。但这些embedded系统根本就用处不大。如果可以把它们拿掉
  ,核心可以马上缩小 20K 左右。如果跳过整个 VFS,直接将文件系统写成一
  个 driver 的型式,应该可以将 230K缩减至50K左右。整个核心缩到100K左
  右。
  系统启动
  系统的启动顺序及相关文件仍在核心源码目录下,看以下几个文件:
  bootsect.S 及
  这个程序是Linux kernel的第一个程序,包括了Linux自己的
  程序,但是在说明这个程序前,必须先说明一般IBM PC开机时的动作(此处的
  开机是指“打开PC的电源”)。
  一般PC在电源一开时,是由内存中地址FFFF:0000开始执行(这个地址一
返回列表