构造嵌入式Linux.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
构造嵌入式Linux

构造嵌入式Linux 来源:internet 点击:2578 添加时间:2003-12-19?21:19:23?????? ????????? ?  Linux自身具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中的仿真工具(ICE)的障碍。内核的完全开放使人们可以自己设计和开发出真正的硬实时系统,软实时系统在Linux中也容易得到实现。强大的网络支持使得可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。?   Linux提供了完成嵌入功能的基本内核和所需要的所有用户界面,它是多面的。它能处理嵌入式任务和用户界面。?   一个小型的嵌入式Linux系统只需要下面三个基本元素:?   *?引导工具?   *?Linux微内核,由内存管理、进程管理和事务处理构成?   *?初始化进程?   如果要让它能干点什么且继续保持小型化,还得加上:?   *?硬件驱动程序?   *?提供所需功能的一个或更多应用程序。?   再增加功能,或许需要这些:?   *?一个文件系统(也许在ROM或RAM)中?   *?TCP/IP网络堆栈?   下面我们就从精简内核、系统启动、驱动程序将、X-Window换成MicroWindows四个步骤介绍嵌入式Linux的实际开发。?   精简内核?   构造内核的常用命令包括:make?config、dep、clean、mrproper、zImage、bzImage、modules、modules_install。命令说明略。?   现在举个例子说明一下:?   我使用的是?Mandrake内附的?2.2.15。我没有修改任何一行程序码,完全只靠修改组态档得到这些数据。?   首先,使用?make?config?把所有可以拿掉的选项都拿得。?   不要?floppy;不要SMP、MTRR;不要?Networking、SCSI;把所有的?block?device?移除,只留下?old?IDE?device;把所有的?character?device?移除;把所有的?filesystem?移除,只留下?minix;不要?sound?支援。相信我,我己经把所有的选项都移除了。这样做之后,我得到了一个?188K?的核心。?   还不够小吗??OK,再加上一招,请把下列两个档案中的?-O3,-O2?用?-Os?取代。?   ./Makefile?   ./arch/i386/kernel/?   Makefile?   这样一来,整个核心变小了?9K,成为?179K。?   不过这个核心恐怕很难发挥?Linux?的功能,因此我决定把网络加回去。把General中的?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左右。?   系统启动?   系统的启动顺序及相关文件仍在核心源码目录下,看以下几个文件:?   ./arch/$ARCH/boot/?   bootsect.s?   ./arch/$ARCH/boot/setup.s?   ./init/main.c?   boots

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档