2015linux2Linux-第二章.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文档。上传文档
查看更多
第2 讲 关于Linux – 内核结构 2.1 内核介绍 应用程序、内核与硬件的关系 支持动态加载内核模块 支持对称多处理机制(SMP) 内核可以抢占 内核不区分线程和其他进程 提供具有设备类的面向对象设备模型,热插拔事件以及用户空间的设备文件系统 从版本号为6(这是一个开发版内核) 2.2 内核源码-获取源码 在Linux内核官方网站: 随时获取当前Linux内核的源代码,可以是完整的压缩形式,也可以是增量补丁形式 首先需要将内核源码下载到/usr/src/目录下面。 内核压缩以GNU ZIP(GZIP)和BZIP2两种格式发布,下载后可以对其解压。若是BZIP2格式 2.2 内核源码-获取源码 2.3 内核源码-源码树 2.2 内核源码-编译安装内核 2.3 内核开发的主要特点 2.3.1 没有LIB C库 2.3.2 GNU C 2.3.2 GNU C(续) 2.3.2 GNU C(续) 2.3.3 没有内存保护机制 2.3.4 慎用浮点数 2.3.6 同步和并发 2.3.7 可移植性 本章小结 习题 * * 计算机科学与工程学院 * * 计算机科学与工程学院 内核结构总体介绍 内核源码 内核开发 操作系统是指在整个计算机系统中负责完成最基本功能和系统管理的部分,应包括: 内核 设备驱动程序 启动引导程序 命令行Shell或其他用户界面 基本的文件管理工具和系统工具 应用程序1 应用程序2 应用程序3 系统调用接口 内核子程序 设备驱动程序 内核空间 用户空间 硬件 处理器的运行状态 运行于用户空间, 执行用户进程 运行于内核空间, 处于进程上下文 (代表某个特定的进程执行) 运行于内核空间, 处于中断上下文, 与任何进程无关, (处理某个特定的中断) 处理器在任何 时间点上的活动可以大体总结为三种情况 Linux内核与传统Unix内核的比较- Linux的改进 Linux内核版本 主版本号为2 修订版本号为0 2.6.0 若是BZIP2格式,输入如下命令解压缩: $ tar xvjf linux-x.y.z.tar.bz2 若是GNU zip格式,运行如下命令解压缩: $ tar xvzf linux-x.y.z.tar.gz 参数说明: -c?:建立一个压缩文件的参数指令(create?的意思); -x 从档案文件中释放文件 -f 使用档案文件或设备,这个选项通常是必选的。 -v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息. -j 是否同时具有 bzip2 的属性,亦即是否需要用 bzip2压缩 -z?:是否同时具有?gzip?的属性?亦即是否需要用?gzip?压缩? 根目录及其描述 arch 特定体系结构的源码 crypto Crypto API(内核本身所用的加密 API ) documentation 内核源码文档 drivers 设备驱动文件 fs VFS和各种文件系统 include 内核头文件 init 内核引导和初始化 ipc 进程间通信代码 kernel 核心子系统(如调度程序) lib 通用内核函数 mm 内核管理子系统和VM net 网络子系统 scripts 编译内核所用的脚本 security Linux安全模块 sound 语音子系统 usr 早期用户空间代码 编译内核之前,需要进行配置和定制。可配置的各种选项以CONFIG的形式出现。选项可以二选一或三选一。 $ make config $ make menuconfig $ make xconfig $ make gconfig $ make defconfig $ make oldconfig $ make 配置 开始编译 %make modules_install 安装内核 内核编程时不能访问C库 必须使用GNU C 缺乏像用户空间编程那样的内存保护机制 很难使用浮点数 内核只有一个很小的定长堆栈 由于内核支持异步终端、抢占和SMP,因此必须时刻注意同步和并发 须考虑可移植性 标准C库太大,在内核中全部实现不现实 大部分常用的C库函数在内核中也已得到实现,但要通过包含linux/string.h头文件 Printf函数虽然没有实现,但可以调用Printk函数,两者功能和用户基本一致 Linux内核所用的C语言并不完全支持ANSI C,倒是覆盖了ISO C99标准和GNU C扩展特性。 1、支持内联函数(inline):即函数会在它被调用的位置上展开,这样消除函数调用和返回的开销。其缺点是需要更多空间,因为代码变长。 定义: 用static作为关键字,(

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档