2012级高级编程复习重点

2012级高级编程复习重点

ID:41033002

大小:197.50 KB

页数:6页

时间:2019-08-14

2012级高级编程复习重点_第1页
2012级高级编程复习重点_第2页
2012级高级编程复习重点_第3页
2012级高级编程复习重点_第4页
2012级高级编程复习重点_第5页
资源描述:

《2012级高级编程复习重点》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1、内核移植又名最小系统移植,移植后的内核具备网络通信,串口通信,根文件系统可用等基本条件。2、将交叉编译工具arm-linux-gcc-4.3.2.tar.gz解压到/目录下的命令是:tarxvzfarm-linux-gcc-4.3.2.tar.gz–C/3、嵌入式Linux系统由内核和根文件系统两部分构成,两者缺一不可。4、配置arm平台内核的命令:makemenuconfig,编译内核的命令makebzImage?5、Linux引入虚拟文件系统VFS(VirtualFileSystem)为各类文件系统提供一个统

2、一的应用编程接口。6、在嵌入式Linux应用中,主要的存储设备为RAM和FLASH。Flash(闪存)作为嵌入式系统的主要存储媒介,主要有NOR和NAND两种技术。Flash:存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。因此,必须针对Flash的硬件特性设计符合应用要求的文件系统。Jffs2主要用于NOR型flash,基于MTD驱动层,特点是:可读写、支持数据压缩的日志型文件系统,并提供了崩溃/掉电安全保护等。yaffs/yaffs2(YetAnotherFlashFileSystem)是专为

3、NAND型flash而设计的一种日志型文件系统。Cramfs是Linux的创始人Linus参与开发的一种只读的压缩文件系统,它也基于MTD驱动程序。Cramfs文件系统以压缩方式存储,在运行时解压缩,所有的应用程序要求被拷到RAM里去运行。8 、在嵌入式系统中,通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。9、简述bootloader的定义.为什么需要进行bootloader移植?简单地说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可

4、以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备。不同的CPU体系结构都有不同的BootLoader。除了依赖于CPU的体系结构外,BootLoader还依赖于具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,外设芯片的类型等。这也就是说,对于两块不同的开发板而言,即使它们是基于同一种CPU而构建的,但如果他们的硬件资源或配置不一致的话,要想在一块开发板上运行的BootLoader程序也能在另一块板子上运行,还是需要作修改。10、BootLoader大多采用两阶段,分别完成

5、什么工作?BootLoader的stage1通常包括以下步骤:·硬件设备初始化;·为加载BootLoader的stage2准备RAM空间·拷贝BootLoader的stage2到RAM空间中;·设置好堆栈(why??);·跳转到stage2的C入口点。stage2通常包括以下步骤:·初始化本阶段要使用到的硬件设备;·将内核映像和根文件系统映像从flash上读到RAM中;·调用内核。11、Linux由用户空间和内核空间两部分组成。内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核

6、空间的转移。SCI层为用户空间提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。进程管理的重点是创建进程(fork、exec),停止进程(kill、exit),并控制它们之间的通信(signal或者POSIX机制)。进程管理还包括控制活动进程如何共享CPU,即进程调度。内存管理的主要作用是控制多个进程安全地共享内存区域。VFS隐藏各种文件系统的具体细节,为文件操作提供统一的接口。Linux内核中有大量代码都在设备驱动程序中,它们控制特定的硬件设备。12、关于内核配置,A.makecon

7、fig:基于文本模式的交互式配置。makemenuconfig:基于文本模式的菜单型配置。makeoldconfig:使用已有的配置文件(.config),但是会询问新增的配置选项。makexconfig:图形化的配置(需安装图形化系统)。13 . 关于内核模块内核模块本身并被编译进内核文件(zImage或者bzImage)模块加载函数通过module_init宏来指定.模块卸载函数通过module_exit宏来指定,加载模块的命令是insmod,卸载模块的命令是rmmod,显示模块的命令是lsmod。14、内核模块

8、有什么特点?它与应用程序相比有什么不同?内核模块具有如下特点:模块本身并不被编译进内核文件(zImage或者bzImage);可以根据需求,在内核运行期间动态的安装或卸载。对比应用程序,内核模块具有以下不同:应用程序是从头(main)到尾执行任务,执行结束后从内存中消失。内核模块则是先在内核中注册自己以便服务于将来的某个请求,然后它的初始化函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。