欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    和菜鸟一起学linux内核源码之基础准备篇(5页).doc

    • 资源ID:39794300       资源大小:139KB        全文页数:5页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    和菜鸟一起学linux内核源码之基础准备篇(5页).doc

    -和菜鸟一起学linux内核源码之基础准备篇-第 5 页 断断续续地看着内核源码,发现很多知识点都不是很明白,特别是对于操作系统的一些基础。虽然看到了块设备了,但是发现也总结不出什么了,这篇好像好久前更新的,一直没有发表。最近还是比较忙碌,同事走了好多人,也有考虑过别的公司。但是正式工作未满1年,也不能随随便便地就离开。虽然很忙,但是还是学了很多东西。渐渐地接触了linux应用层。发现应用和驱动还是有很多区别的,各种需求,各种接口,各种设计,各种实现。嗯,慢慢来总会学好的。对于内核,慢慢看,看一遍不懂,那就第二遍,第三遍。相信总会看懂的。Fighting。       初始化init下只有一个main函数。       首先利用setup.s程序取得的程序参数设置系统的根文件设备号以及一些内存全局变量。这些内存变量指明了主内存的开始地址、系统所拥有的内存变量和作为高速缓冲区内存的末端地址。如果还定义了虚拟盘(RAMDISK), 则主内存将适当减少。       然后,内核进行所有方面的硬件初始化工作。包括陷阱门、块设备、字符设备和tty包括人工创建第一个任务(task 0)。待所有初始化工作完成就设置中断允许标志,开启中断。       在整个内核完成初始化后,内核将执行权切换到了用户模块,也即CPU从0特权级切换到了第3特权级。然后系统第一次调用创建进程函数fork(),创建出一个用于运行init()的子进程。       在该进程中系统将运行控制台程序。如果控制台环境建立成功,则再生成一个子进程,用于运行shell程序/bin/sh。若该子进程退出,父进程返回,则父进程进入一个死循环内,继续生成子进程,并在此子进程中再次执行shell程序/bin/sh,而父进程则继续等待。       对于linux来说,所有任务都是在用户模式执行的,包括很多系统应用程序,如shell程序、网络子系统程序等关于linux内核体系结构       说到操作系统,我们都会知道windows操作系统,linux操作系统,苹果的操作系统,以前很火的塞班操作系统,还有最近消费类电子很火的操作系统。一个完整的操作系统分为4个部分。       可以把这个理解为我们用的手机。其中的硬件系统就是我们看到的整个手机了,cpu啊,内存啊,这些不拆开来看不到的,和触摸屏啊,按键之类看以看到的。操作系统内核就是我们说的android了,不过他包括了linux的内核了。操作系统服务就是android的一套结构了,给我们直观的就是那个有点炫的界面了。我们可以通过点击来实现我们想要的功能。用户应用就是我们常玩的QQ啊,导航啊,当然少不了各种好玩的游戏了,愤怒的小鸟,涂鸦跳,水果忍者,是不是又想玩一把?唉,还是好好学习吧,虽然手机就在旁边。对于linux内核的单内核模式的系统,有可以把他分为如下:       Linux内核又可分为5个大的模块。其关系和主要功能可以见下图:关于linux内存物理内存可以分为下图所示:内核占用内存开始部分;接下来是共硬盘,软盘使用的高速缓冲区部分,其中扣除显存和bios的640k到1m;然后是虚拟盘;最后一部分是为所有程序可以使用的主内存区。Linux内存管理中,段变换:将一个由段选择符和段内偏移构成的逻辑地址转换为一个线性地址。页变换:将线性地址转换为对应的物理地址。具体可见下图所示:虚拟地址:指的是由程序产生的由段选择符和段内偏移地址两个部分组成的地址。为什么叫它是虚拟的地址呢?因为这两部分组成的地址并没有直接访问物理内存,而是要通过分段地址的变换机构处理或映射后才会对应到相应的物理内存地址。       段描述符:向CPU提供了将逻辑地址映射为线性地址所必要的信息。描述符是由程序编译器、链接器、加载器或者操作系统创建的。       描述符表:保存描述符在描述符表中的,有两类1、 全局描述符表(Global descriptor table-GDT)2、 局部描述符表(Local descriptor table-LDT)描述符表是由8字节构成的描述符项的内存中的一个数组。处理器是通过使用GDT和LDTR寄存器来定位GDT表和当前的LDT表。最多可以含有8192(213)个描述符。选择符:逻辑地址的选择部分,用于指定一描述符的,它是通过指定一描述符表并且索引其中的一个描述符项完成的。段寄存器:处理器将描述符中的信息保存在段寄存器中,因而可以避免在每次访问内存时查询描述符表。线性地址:通过指定一个页表、页表中的某一页以及页中的偏移值,从而间接地指向对应的物理地址。页表:一个简单的32位页指示器的数组。页表本身也是一页内存,因此它含有4K字节的内存,可容纳1K个32位的项。Offset = 212=4K, table =210, directory = 210,所以线性地址空间为210*210*4k=4G。由于0.11内核把每个进程的最大可用的虚拟内存空间定义为64M,因此每个进程的逻辑地址可以用任务号*64M,就可以转换到线性空间的地址。关于linux进程       进程可以在内核态或者用户态运行,当资源可用就被唤醒,进入就绪态;当进程处于可中断睡眠状态,收到信号可被唤醒;当处于不可中断睡眠状态,只能被使用wakeup等的唤醒;当进程处于暂停状态,可发送信号使其进入就绪态;当僵死状态,当已经停止运行,父进程还没有调用wait查询状态,一旦父进程调用完wait取得子进程信息后,这个进程任务就会被释放掉。关于linux文件系统和源码目录关于linux内核makefileLinux makefile文件是编译辅助工具软件make的参数配置文件。Make工具软件的主要用途是通过识别哪些文件已经被修改过,从而自动地决定在一个含有多个源程序文件的程序系统中哪些文件需要被重新编译。       这里的makefile主要作用是指示make程序最终使用独立编译连接成的tools/目录中的build执行程序将所有内核编译代码连接和合并成一个可运行的内核映像文件image。具体是对boot/目录中的bootsect.s、setup.s使用8086汇编器进行编译,分别生成各自的执行模块。再对源代码中的其他所有程序使用GNU的编译器gcc/gas进行编译,并连接成模块system。再用build工具将这三块组合成一个内核映像文件image。

    注意事项

    本文(和菜鸟一起学linux内核源码之基础准备篇(5页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开