2012级高级编程复习重点..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012级高级编程复习重点.

1、内核移植又名最小系统移植,移植后的内核具备网络,串口,根文件系统可用等基本条件。 2、将交叉编译工具arm-linux-gcc-4.3.2.tar.gz解压到/目录下的命令是:tar xvzf arm-linux-gcc-4.3.2.tar.gz –C / 3、嵌入式Linux系统由内核和根文件系统两部分构成,两者缺一不可。 4、配置arm平台内核的命令:make menuconfig 5、Linux引入虚拟文件系统VFS(Virtual File System)为各类文件系统提供一个统一的应用编程接口。 6、在嵌入式Linux应用中,主要的存储设备为RAM 和FLASH。Flash(闪存)作为嵌入式系统的主要存储媒介,主要有NOR和NAND两种技术。 Flash存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。因此,必须针对Flash的硬件特性设计符合应用要求的文件系统。 Jffs2主要用于NOR型flash,基于MTD驱动层,特点是:可读写、支持数据压缩的日志型文件系统,并提供了崩溃/掉电安全保护等。 yaffs/yaffs2 (Yet Another Flash FileSystem)是专为NAND型flash而设计的一种日志型文件系统。 Cramfs是Linux的创始人 Linus 参与开发的一种只读的压缩文件系统,它也基于MTD驱动程序。Cramfs文件系统以压缩方式存储,在运行时解压缩,所有的应用程序要求被拷到RAM里去运行。 8在嵌入式系统中,通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。 9、简述bootloader的定义.为什么需要进行bootloader移植? 简单地说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备。 不同的CPU体系结构都有不同的BootLoader。除了依赖于CPU的体系结构外,BootLoader 还依赖于具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,外设芯片的类型等。这也就是说,对于两块不同的开发板而言,即使它们是基于同一种CPU而构建的,但如果他们的硬件资源或配置不一致的话,要想在一块开发板上运行的BootLoader程序也能在另一块板子上运行,还是需要作修改。 10、BootLoader 大多采用两阶段,分别完成什么工作? BootLoader 的 stage1 通常包括以下步骤:·硬件设备初始化;·为加载 BootLoader 的 stage2 准备 RAM 空间·拷贝 BootLoader 的 stage2 到 RAM 空间中;·设置好堆栈(why??) ;·跳转到 stage2 的 C 入口点。 stage2 通常包括以下步骤:·初始化本阶段要使用到的硬件设备;·将内核映像和根文件系统映像从 flash 上读到 RAM 中;·调用内核。 11、 Linux由用户空间和内核空间两部分组成。内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。 SCI层为用户空间提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。 进程管理的重点是创建进程(fork、exec),停止进程(kill、exit),并控制它们之间的通信(signal 或者 POSIX 机制)。进程管理还包括控制活动进程如何共享CPU,即进程调度。 内存管理的主要作用是控制多个进程安全地共享内存区域。 VFS隐藏各种文件系统的具体细节,为文件操作提供统一的接口。 Linux 内核中有大量代码都在设备驱动程序中,它们控制特定的硬件设备。 12、关于内核配置,A.make config:基于文本模式的交互式配置。 make menuconfig:基于文本模式的菜单型配置。 make oldconfig:使用已有的配置文件(.config),但是会询问新增的配置选项。 make xconfig:图形化的配置(需安装图形化系统)。 13?.?关于内核模块 内核模块本身并被编译进内核文件(zImage或者bzImage) 模块加载函数通过module_init宏来指定. 模块卸载函数通过module_exit宏来指定, 加载模块的命令是insmod,卸载模块的命令是rmmod,显示模块的命令是lsmod。 14、内核模块有什么特点?它与应用程序相比有什么不同? 内核模块具有如下特点: 模块本身并不被编译进内核文件(zImage或者bzImage) 可以根据需求,在内核运行期间动态的安装或卸载。对比应用程序,内核模块具有以下不同:应用程序是从头(m

文档评论(0)

sa43sad5 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档