linux操作系统结构.ppt_第1页
linux操作系统结构.ppt_第2页
linux操作系统结构.ppt_第3页
linux操作系统结构.ppt_第4页
linux操作系统结构.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux Kernel架构 黄松青 操作系统统(OS)的概念 v一个系统统管理程序,管理计计算机的资资源,给给 用户户一个使用这这些资资源的平台 v一个服务务程序,操作系统统都是为为用户应户应 用程 序服务务的,服务务的方式是通过过系统调统调 用 system call vLinux是一个多任务务,跨平台的现现代操作系统统 为为什么要有操作系统统 v 多任务务的要求 v 统统一的服务务接口,合理使用资资源,如内存 v 管理并发时对资发时对资 源使用冲突 v 减少开发发的难难度 v 安全性的要求 v 网络络(TCP/IP)的使用 v GUI的使用要求 v 应应用程序移植性的要求 v 用户户操作的方便性 操作系统统的组组成 v进进程管理模块块 v内存管理模块块 v文件系统统管理模块块 v设备设备 管理模块块 v异常和中断管理模块块 v网络协议络协议 模块块 v 进进程管理 v进进程(process)的概念 v系统统的第一个进进程Init v用户进户进 程如何运行和退出 v记录进记录进 程的信息,进进程控制块块 PCB v系统调统调 度,不同的系统统有不同的策略 v用户进户进 程进进入系统统的唯一途径, system call 内存管理 v内存是系统资统资 源的一种 v内存的分类类 SRAM, SDRAM, FB, Registers, 外设设片上内存 v物理内存的管理 v虚拟拟内存的管理,内核空间间与用户户空间间 v内核与用户户内存的分配 v内存碎片的产产生和避免 文件系统统管理 v永久性存储设备储设备 ,disk, flash, sd, cf v分区、格式化及文件 v一个简单简单 的文件系统统的例子 v系统统看存储储地址是线线性 v进进程看待文件的统统一化和抽象化 设备设备 管理 vHAL层层的概念, 开放性的理念 v设备设备 的驱动驱动 v系统统要记录记录 和管理设备设备 的存在 v安全使用设备设备 v设备设备 是一种特殊的文件 v进进程如何使用设备设备 ,open/close, read/write, ioctl Linux kernel历历史 v1991年由当时时的芬兰兰学生linus torvalds 编编写并以GNU GPL的方式发发布到Internet 上,称为为0.11版 v1994年,出1.0.0版本 v1996年,出2.0版本 v1999年,出2.2版本 v2001年,出2.4版本 v2003年,出2.6版本,至今都稳稳定在该该版本 Linux kernel的特点 v 类类Unix,遵循POSIX标标准 v 支持很多的体系结结构,如X86,Arm,Mips等等,有极强的平台可 伸缩缩性 v Open Source(GNU GPL) v 单单内核,开放可扩扩展 v 真正的多任务务多用户户 v 具有强大的网络络功能 ,尤其对对Tcp/ip支持 v 开发发功能强,开发环发环 境免费费 v 设备设备 独立性, 系统统把所有外部设备统设备统 一当作成文件来看待及操 作 v 可靠的系统统安全 v Linux系统软统软 件层层次结结构 Linux中处处理器的运行 vLinux Kernel初始化完毕毕后,程序运行在 以下的上下文空间间中: 1)运行于用户户空间间,执执行用户户程序 2)运行于内核空间间,处处于当前进进程的 上下文 3)运行于中断,处处于中断上下文,与进进程 无关,因为为中断的不可预预知 fread()文件的执执行举举例 v 用户进户进 程在用户户空间间,使用C库库fread()读读文件 v Fread()调调用read()系统调统调 用,进进入系统统空间间, 执执行系统统代码码 v 系统统根据文件对对存储设备进储设备进 行数据请请求,在数据没 准备备就绪绪是让让出CPU使其他进进程运行。 v 存储设备储设备 数据准备备就绪绪,向CPU发发出中断请请求, CPU响应进应进 入中断上下文,并唤唤醒该该文件的读进读进 程 v 在某时时刻,读读文件的进进程再次运行,取到数据,返回 用户户空间间 获获取Linux内核源代码码 v从官方网站获获取:,主要 是X86平台的版本 v以BSP包的方式获获取,主要在嵌入式的平台上 用的方式 v补补丁,从版本2.6.20升级级到2.6.21 #cd 到2.6.20 linux 目录录 #patch p1 退出-保存后产产 生.config 文件,文件中包含有各种选择选择 了的配置选项选项 ,以供 Makefile使用,Makefile在会根据.config的选项选项 来产产生 autoconf.h, autoconf.h是以C语语言的形式定义义的各编译选编译选 项项,供kernel的源文件include Linux 2.6内核配置与编译编译 v 选择选择 相应应的配置时时,有三种选择选择 ,它们们分别别代表的 含义义如下: Y-将该该功能编译进编译进 内核 N-不将该该功能编译进编译进 内核 M-将该该功能编译编译 成模块块,可以在需要时动态时动态 插入到内核 中 make xconfig,使用鼠标标就可以选择对应选择对应 的选项选项 。 make menuconfig,则则需要使用空格键进键进 行选选取。 v 如果有不明白的地方,按 shift+?的组组合键键来查查看说说明 Linux 2.6内核配置与编译编译 v配置的原则则 1)大部分选项选项 可以使用其缺省值值或者BSP选选用缺省 值值,只有小部分需要根据用户户不同的需要选择选择 。 2)将与内核其它部分关系较远较远 且不经经常使用的部分 功能代码编译码编译 成为为可加载载模块块。 有利于减小内核的长长度,减小内核消耗的内存; 3)不需要的功能就不要选选; 4)与内核关心紧紧密而且经经常使用的部分功能代码码直 接编译编译 到内核中。 Linux 2.6内核配置与编译编译 v 配置工作过过程: Makefile 分布在 Linux 内核源代码码中的 Makefile,定义义 Linux 内核的 编译规则编译规则 ; 顶层顶层 目录录的Makefile管理整个Linux内核的配置编译编译 。 配置工具 不同的内核配置方式,通过过不同的配置工具完成。script目录录 下提供了这这些配置工具。如menuconfig目标标使用mconf。 Kconfig文件 2.6内核引入的配置文件,是内核配置选项选项 的源文件。 arch/$(ARCH)/Kconfig文件是主Kconfig文件,主Kconfig文件 调调用其他目录录的Kconfig文件。 这这些Kconfig文件形成树树状关系树树状菜单单。 Linux 2.6内核配置与编译编译 v配置工作过过程: v 当用户执户执 行配置命令,Makefile调调用配置工具 mconf, mconf从arch/$(ARCH)/Kconfig开 始搜索各目录录中的Kconfig文件,并根据这这些文件形 成图图形化的配置界面,给给用户进户进 行配置 v Kconfig文件是产产生.config文件的输输入文件,也就 是说说.config中的选项选项 是由Kconfig决定的 v 这这是Linux2.6内核独有的配置系统统 v 用户户可以根据需要增加和修改其中的配置选项选项 Linux 2.6内核配置与编译编译 v配置的注意选项选项 Code maturity level options - 应该应该 选择选择 * Prompt for development and/or incomplete code/drivers 这这将会在设设置界面中显显示还还在开发发或者还还没有 完成的代码码与驱动驱动 . 因为为有许许多设备设备 可能必需 选择这选择这 个选项选项 才能进进行配置,实际实际 上它是安全 的。 Linux 2.6内核配置与编译编译 v配置的注意选项选项 2 General setup -大部分保持默认认 * Support for paging of anonymous memory (swap) 应该选择这应该选择这 个选项选项 将使你的内核支持虚拟拟内存。Pc上 应该选择应该选择 ,而嵌入式上一般不选选 * System V IPC 应该选择应该选择 为进为进 程提供通信机制。有些程序只有在选选Y的情况下才能 运行,这这里一定要选选。 * POSIX Message Queues POSIX的消息队队列,它同样样是一种IPC,应该选择应该选择 * Support for hot-pluggable devices 支持热热插拔的, 若是为为普通电脑电脑 配置内核,则则最好选择选择 Linux 2.6内核配置与编译编译 v配置的注意选项选项 3 Loadable module support - * Enable loadable module support 应该选择应该选择 这这个选项选项 可以让让你的内核支持模块块。一般一些不常用到 的驱动驱动 或特性可以编译为编译为 模块块以减少内核的体积积。 * Module unloading 应该选择应该选择 这这个选项选项 可以让让你卸载载不再使用的模块块,如果不选选的话话 你将不能卸载载任何模块块 * Forced module unloading 强行卸载载模块块,可以把正在使用中的模快卸载载掉。做内 核开发发或者驱动驱动 开发发的时时候,有一定的好处处。但一般用 户户不应该选择应该选择 。 Linux 2.6内核配置与编译编译 v配置的注意选项选项 4 Executable file formats - * Kernel support for ELF binaries 一定要选选 5 Device Drivers - Memory Technology Devices (MTD) - 存储设备层储设备层 ,大部分的flash芯片驱动驱动 都基于MTD。用 于嵌入式系統。 Block devices Loopback device support 可以将一个文件挂成一个文件系统统。mount iso文件 Linux 2.6内核配置与编译编译 v配置的注意选项选项 6 file systems - 必须须将根文件系统统直接编译编译 到内核中。并且在这这里 选择选择 系统统支持的文件系统统。 Linux 2.6内核配置与编译编译 vcd到ARM Linux 2.6的安装目录录中 v#make 在当前目录录中将产产生vmlinux即为为内核文件 v#make modules #make modules_install 将产产生在内核代码树码树 中以模块块方式编译编译 的模 块块 Linux内核启动动流程 v bootloader加载载kernel到内存 v arch/mips/kernel/head.S v init/main

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论