和菜鸟一起学linux内核源码之基础准备篇.docxVIP

和菜鸟一起学linux内核源码之基础准备篇.docx

  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 内核源码之基础准备篇 断断续续地看着内核源码,发现很多知识点都不是很明白,特别是对于操作 系统的一些基础。虽然看到了块设备了,但是发现也总结不出什么了,这篇好 像好久前更新的,一直没有发表。最近还是比较忙碌,同事走了好多人,也有 考虑过别的公司。但是正式工作未满 1年,也不能随随便便地就离开。虽然很 忙,但是还是学了很多东西。渐渐地接触了 linux应用层。发现应用和驱动还是 有很多区别的,各种需求,各种接口,各种设计,各种实现。嗯,慢慢来总会 学好的。对于内核,慢慢看,看一遍不懂,那就第二遍,第三遍。相信总会看 懂的。Fighting。。。。。。。。 初始化init下只有一个 main函数。 首先利用程序取得的程序参数设置系统的根文件设备号以及一些内存全局变 景。这些内存变最指明了主内存的开始地址、系统所拥有的内存变景和作为高 速缓冲区内存的末端地址。如果还定义了虚拟盘( RAMDISN ,则主内存将适 当减少。 然后,内核进行所有方面的硬件初始化工作。包括陷阱门、块设备、字符设 备和tty包括人工创建第一个任务(task 0)。待所有初始化工作完成就设置中断允 许标志,开启中断。 在整个内核完成初始化后,内核将执行权切换到了用户模块,也即 CPU从0 特权级切换到了第3特权级。然后系统第一次调用创建进程函数 fork(),创建出 一个用于运行init()的子进程。 在该进程中系统将运行控制台程序。如果控制台环境建立成功,则再生成一 个子进程,用于运行shell程序/bin/sh。若该子进程退出,父进程返回,则父进 程进入一个死循环内,继续生成子进程,并在此子进程中再次执行 shell程序 /bin/sh ,而父进程则继续等待。 对于linux来说,所有任务都是在用户模式执行的,包括很多系统应用程 序,如shell程序、网络子系统程序等 关于linux内核体系结构 说到操作系统,我们都会知道 windows操作系统,linux操作系统,苹果的 iOS操作系统,以前很火的塞班操作系统,还有最近消费类电子很火的 Android 操作系统。一个完整的操作系统分为 4个部分。 用户应用程序 操作系统组 成部分操作系统服务操作系统内核 操作系统组 成部分 操作系统服务 操作系统内核 硬件系统 可以把这个理解为我们用的手机。其中的硬件系统就是我们看到的整个手机 了,cpu啊,内存啊,这些不拆开来看不到的,和触摸屏啊,按键之类看以看 到的。操作系统内核就是我们说的 android 了,不过他包括了 linux的内核了 QQ操作系统服务就是android的一套结构了,给我们直观的就是那个有点炫的界 面了。我们可以通过点击来实现我们想要的功能。用户应用就是我们常玩的 啊,导航啊,当然少不了各种好玩的游戏了,愤怒的小鸟,涂鸦跳,水果忍 者,是不是又想玩一把唉,还是好好学习吧,虽然手机就在旁边。 QQ 对于linux内核的单内核模式的系统,有可以把他分为如下: 调用座碓 程序 麻内核模式 可以分为执行系统服务 的系统服务 麻内核模式 可以分为 执行系统服务 的系统服务 支持系统调用 的底层函数 Linux内核又可分为5个大的模块。 其关系和主要功能可以见下图: 构成内核5大模块 支件系统川来支持时外 围设冬驱动利存储功 能。虚拟文件系统,向 所有外部设备提供 的文件接「 巷磺了不 同设 J细节 文件系统 确保所有进程安个共享主内存 区.支持扇拟内存管理方式 内存管理 控制进程对CPU资派的使川 调模策略是各个进七公平合 理的访问CPU.同时内核及 时执仃命令的彖作 I避程调度 提供名种网络迥信 标也的访问并支持[ 多村网络硬件 N H 网络接口 逻辑地址转换 虚拟地址:指的是由程序产生的由段选择符和段内偏移地址两个部分组成的地 址。为什么叫它是虚拟的地址呢因为这两部分组成的地址并没有直接访问物理 内存,而是要通过分段地址的变换机构处理或映射后才会对应到相应的物理内 存地址。 段描述符:向CPU提供了将逻辑地址映射为线性地址所必要的信息。描述 符是由程序编译器、链接器、加载器或者操作系统创建的。 描述符表:保存描述符在描述符表中的,有两类 1、 全局描述符表(Global descriptor table---GDT) 2、 局部描述符表(Local descriptor table---LDT) 线性地址:通过指定一个页表、页表中的某一页以及页中的偏移值,从而间接 地指向对应的物理地址。 页表:一个简单的32位页指示器的数组。页表本身也是一页内存,因此它含有 4K字节的内存,可容纳1K个32位的项。 关于linux进程 进程可以在内核态或者用户态运行,当资源可用就被唤醒,进入就绪态;当 进程处于可中断睡眠状态,收到信

文档评论(0)

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

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

1亿VIP精品文档

相关文档