linux的内核介绍.pptVIP

  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文档。上传文档
查看更多
linux的内核介绍

Linux内核介绍 Linux2.6内核移植与编译实验 Linux内核的版本号 2.6.24 其中,2是主版本号,6是次版本号,24是修订版本号。 如果次版本号是偶数,说明是稳定版本。 如果次版本号是奇数,则是开发版本。 Linux下的目录结构 Linux内核源代码目录结构 arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录。如arm、avr32、blackfin、mips等。 block 块设备驱动程序的IO调度。 crypto 常用的加密和离散算法,还有一些压缩和CRC校验算法 Documentation 内核的说明文档。 drivers 设备驱动程序,其下细分为不同种类的设备。如block、char、mtd、net、usb、video等等。 fs 内核支持的文件系统的实现,如ext2、ext3、cramfs、jffs2、nfs等。 Include 头文件。与系统相关的头文件放在include/linux下,与ARM体系结构相关的头文件放在include/asm-arm下。 Init 内核初始化代码。 Ipc 进程间通信代码。 kernel 内核的核心代码,包括进程调度、定时器等。和arm平台相关的核心代码在arch/arm/kernel目录下。 lib 库文件代码 mm 内存管理代码,和arm平台相关的内核管理代码在arch/arm/mm目录下。 net 网络相关的代码,实现了各种常见的网络协议。 scripts 包含用于配置内核的各种脚本文件。只在配置时是有意义的。 sound 音频设备驱动的通用代码和硬件驱动代码都在这个文件件下面。 Linux内核启动简析(汇编部分) 第一段代码位于arch/arm/boot/compressed/head.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/head.S 跳转到此处时处理器的状态: ●MMU关闭 ●D-cache关闭 ●I-cache是否

文档评论(0)

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

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

1亿VIP精品文档

相关文档