操作系统内核开发实战-内核加载.pdfVIP

  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文档。上传文档
查看更多
操作系统内核开发实战-内核加载

操作系统内核开发实战(1) 内核加载 伯松,阿里集团 王智通,阿里云 引子 Ø  为什么要开这门课 l  技术人员需要持续内省和进步以适应业务发展 l  自己吃自己的狗粮 Ø  不仅仅是分享经验 l  保持好奇心 l  适应变化的平常心 Ø  程序员的人生价值实现 操作系统内核开发实战 - 课程大纲 课程设计的原则 Ø  内容为渐进的依赖关系 Ø  重在理解概念,而非细节实现 Ø  建立正确的概念,比了解实现细节更重要 课程目标 Ø  如果大家在每节课之后,能够了解设计某个内 核子系统的过程中哪些要素是必不可少的,就 基本达到课程预期的目标 Ø  不要拘泥于实现细节,有了正确的概念,实现 会有很多途径 操作系统内核开发实战 - 课程大纲 首先要明确的问题: Ø  什么是操作系统内核 Ø  操作系统内核在整个计算机系统中的角色 操作系统内核开发实战 - 课程大纲 Ø  内核加载 Ø  保护模式编程基础 Ø  系统调用 Ø  进程调度 Ø  物理内存管理 Ø  虚拟内存管理 必不可少、最基本的知识点 课程结束后,如果有兴趣,就可以自己动手了 第一课 内核加载 计算机系统启动 管理控制器上电 CPU上电 BIOS引导 加载操作系统内核 系统软/硬件初始化 启动用户态初始化进程 第一课 内核加载 为什么从内核加载开始? BIOS引导之前的工作几乎都固化在硬件中。 要自己写一个可以工作的OS,首先要做到: Ø  将内核加载到内存中 Ø  让内核可以运行 内核加载,是我们可以掌控软件过程的起点。 MLXOS运行截图 - 初始化 在bochs模拟器中运行时截图 MLXOS运行截图 - 程序运行 更多信息 Ø  源代码和可运行虚拟机镜像 /mlxos/download.html Ø  介绍论文 /docs/coly_tpigpdf Bootloader Ø  BIOS不会将操作系统内核加载到内存中 l  DOS时代的bootsect l  Windows NT时代的NTLOADER l  Linux初期的LILO l  现在Linux发行版流行的GRUB Ø  作用 l  由BIOS开始,先于内核加载到内存中运行 l  将操作系统内核文件加载到内存中 l  初始化基本的CPU和寄存器状态 l  跳转到内核,执行内核中的第一条指令 l  实质上也是一个小OS Bootloader (Cont.) Ø  本课程以GRUB 0.97为例 l  避免将精力花费在将内核文件加载到内存中的 琐碎细节 l  直接切入主要问题 l  只需要编写配置文件,GRUB会做加载的事情 Bootloader (Cont.) Ø  什么是我们要建立的概念? l  Multiboot spec l  Linux Boot Protocol l  内核链接格式 l  执行内核第一条指令时的寄存器和处理器状态 内核链接格式 Ø  比较繁琐的Linux内核文件格式 l  vmlinux vs vmlinuz Ø  MLXOS的链接 l  需要建立的概念 线性地址 vs 物理地址 l  需要建立的概念 代码段、数据段、BSS l  需要建立的概念 链接地址 vs 加载地址 l  通过GNU ld程序可以控制链接、加载地址 MLXOS内核链接格式 内嵌宏 ENTRY() AT() ALIGN() 符号 LOAD_OFFSET 符号 _pa_start32 _va_start32 符号

文档评论(0)

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

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

1亿VIP精品文档

相关文档