文档详情

Linux操作系统预备知识.ppt

发布:2018-03-02约7.89千字共65页下载文档
文本预览下载声明
Linux内核分析 The Analysis of the Linux Kernel 教材 Linux内核源代码情景分析 毛德操 胡希明著 浙江大学出版社 2001年9月第1版 参考书目 Linux Kernel中文版, David A Rusling著 Linux内核完全注释,赵炯著,,2003年1.2.2修正版 Linux内核2.4版源代码分析大全,李善平等著,机械工业出版社,2002年1月第1版 UNIX操作系统设计,M J Bach著,机械工业出版社,2001年 现代操作系统[英文],Andrew S.Tanenbaum著,机械工业出版社,2002年 动手写自己的操作系统,于渊编著,电子工业出版社,2005年8月 本课程需要的基础知识 具备操作系统的基础知识 具备C语言程序设计的基础知识 粗通汇编语言编程 熟悉UNIX用户界面, 略知微机系统结构,尤其是保护模式,分段、分页机制。 第一章 预备知识 本章主要内容 Linux内核的基础知识 为什么分析操作系统? 为个么选择Linux? Linux和Linux内核的关系 Linux的技术特点 Linux内核的组成结构及版本 Linux源代码的分析方法、工具 其他相关基础知识 Linux内核源代码中的C语言代码的特点 Linux内核源代码中的汇编语言代码的特点 x86的虚拟存储技术 为什么分析操作系统? 分析操作系统的目的 深入理解一个操作系统的内在机制及其实现机理 学习系统软件的设计方法和实现技巧 研究和分析制约操作系统性能的原因 不同于学习操作系统的使用 普通用户学习通过操作界面使用操作系统 程序设计者学习通过系统调用使用操作系统 操作系统的设计目的就是为上述两类用户提供统一的使用方式 为什么选择分析Linux? 从其发展历史看,它属于现在得到广泛应用的UNIX家族,并已被大量用户认可和接受 集中了全世界众多操作系统黑客的技术精华 在嵌入式和实时操作系统方面有大量的社会需求 源代码开放,容易获取并学习 Linux内核的组成 存储管理 进程管理 设备管理 文件系统 进程间通信 网络 Linux的内核结构图 Linux内核源代码目录结构(1) arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于X86平台就是x86。 include 这个目录包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。 init 此目录包含核心启动代码。 mm 此目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下,如对应于X86的就是arch/x86/mm/fault.c 。 drivers 系统中所有的设备驱动都位于此目录中。它又进一步划分成几类设备驱动,每一种也有对应的子目录,如声卡的驱动对应于drivers/sound。 ipc 此目录包含了核心的进程间通讯代码。 Linux内核源代码目录结构(2) modules 此目录包含已建好可动态加载的模块。 fs Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext2文件系统对应的就是ext2子目录。 kernel 主要核心代码。同时与处理器结构相关代码都放在arch/*/kernel目录下。 net 核心的网络部分代码。里面的每个子目录对应于网络的一个方面。 lib 此目录包含了核心的库代码。与处理器结构相关库代码被放在arch/*/lib/目录下。 scripts此目录包含用于配置核心的脚本文件。 Documentation 此目录是一些文档,起参考作用。 Linux内核源代码的获取方式 商业发行版本附带的发行版内核,通常不是最新的 官方网站: 中国自由软件库(最新版) 发行商网站 大学网站 /Linux/kernel N/OS/Linux/kernel Linux源代码的阅读方法和工具(1) Linux源代码的阅读方法 阅读顺序 纵向,就是顺着程序的执行顺序逐步进行 横向,就是分模块进行 划分不绝对的,而是经常结合在一起进行 Linux的启动的代码就可以顺着linux的启动顺序一步一步地读,大致流程如下(以X86平台为例): ./arch/x86/boot/bootSect.S ./arch/x86/boot/setup.S ./arch/x86/kernel/head.S ./init/main.c中的start_kernel() 对于内存管理等部分,可以单独拿出来按模块进行阅读分析。 Linux源代码的阅读方法和工具(2) windows环境下利用Source Insight阅读工具 可从/上边下载30天试用版本 linux环境下利用lxr(linux cross reference)或
显示全部
相似文档