第2章 嵌入式Linux内核文件系统与存储(模板).pptVIP

第2章 嵌入式Linux内核文件系统与存储(模板).ppt

  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文档。上传文档
查看更多
第2章 嵌入式Linux内核文件系统与存储(模板)

- 操作系统包括五个方面的管理功能:进程与处理机管理、存储管理、设备管理、文件管理与用户管理。 操作系统具有四个共同特征:并发性(concurrence)、共享性(sharing)、虚拟性(virtual)和不确定性(asynchronism)。 -- 并发是指两个或者多个事件在同一时间间隔之内发生; -- 共享指系统中的资源能够供多个用户(用户程序)共同使用; -- 虚拟指通过某种技术把一个物理上的实体映射为若干个逻辑上的对应; -- 不确定性指内存中的多个进程均按照各自独立的方式执行,其执行速度由于受到操作系统的自动控制,因此是无法预知的。 本章主要介绍了三个部分,分别是嵌入式linux内核、引导系统介绍和文件系统等相关内容。在内核部分详细介绍了Linux操作系统内核定制、裁剪和添加;引导部分则介绍了嵌入式BootLoader技术;最后的文件系统部分详细介绍了文件系统的构建。章节的最后部分将构建Floppylinux作为一个综合应用实验,试图让读者更加深入理解上述3块内容。 1. 请简述操作系统的结构。 2. 请简述操作系统的特点并举例说明。 3. 请列举出Linux内核源码的所有文件夹,并且说明每个文件夹的意义。 4. 请列举出Linux有关内核镜像的三种编译方法,并陈述每个方法的特点。 5. 请简述Linux引导系统过的两种操作模式并分别说明。 6. 请列举出根文件系统的所有目录,并且分别说明每个文件夹的含义。 7. 请阐述Linux内核编译的选项和BusyBox编译选项之间的区别。 8. 请完成本章的综合实验FloppyLinux。 9. 请尝试完成基于U盘的Linux系统。 Linux内核启动简析(汇编部分) 第一段代码位于 arch/arm/boot/compressed/start.S: start: …………………………………… 1: mov r7, r1 @保存machine id mov r8, r2 @保存参数地址 …………………………………… mrs r2, cpsr @确定不是在USER模式下 tst r2, #3 bne not_angel …………………………………… not_angel: mrs r2, cpsr @强制转换到SVC模式 orr r2, r2, #0xc0 msr cpsr_c, r2 Linux内核启动简析(汇编部分) Bss段清零: not_relocated: mov r0, #0 1: str r0, [r2], #4 @R2,BSS开始 str r0, [r2], #4 str r0, [r2], #4 str r0, [r2], #4 cmp r2, r3 @R3,BSS结束 blo 1b Linux内核启动简析(汇编部分) 跳转到C语言实现的解压内核代码: . mov r5, r2 246 mov r0, r5 mov r3, r7 bl decompress_kernel 实现代码在arch/arm/boot/compressed/misc.c中 Linux内核启动简析(汇编部分) 解压代码: ulg decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p, int arch_id) { output_data = (uch *)output_start; free_mem_ptr = free_mem_ptr_p; free_mem_ptr_end = free_mem_ptr_end_p; __machine_arch_type = arch_id; arch_decomp_setup(); makecrc(); putstr(Uncompressing Linux...); gunzip(); putstr( done, booting the kernel.\n); return output_ptr; } Linux内核启动简析(汇编部分) call_kernel: bl cache_clean_flush @清除cache bl cache_off @关闭cache mov r0, #0 mov r1, r7 @machine ID mov r2, r8 @参数地址 mov pc, r4 跳转到arch/arm/kernel/head.S中 Linux内核启动简析(汇编部分) arch/arm/kernel/h

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档