走进Linux内核 西安邮电学院 陈莉君
Linux是一匹自由而奔放的黑马 诞生于学生之手 成长于Internet 壮大于自由而开放的文化
Linux之父- Linus Torvalds 芬兰、赫尔辛基大学、1990 起始于写两个进程 然后写驱动程序、文件系统、任务切换程序,从而形成一个操作系统的邹形。 9
内核的入口-硬件平台 硬件基础-X86保护模式 硬件设计与操作系统之关系 20
硬件基础-X86保护模式 寻址方式的演变 硬件中的分段 硬件中的分页 参考书:保护模式下80386及其编程
操作系统设计的取舍 舍弃硬件提供的段机制 充分享用硬件提供的各种特权
Linux内核源代码 7
采用的语言 GNU 的C语言 http://www.faqs.org/docs/learnc/ AT&T的汇编 Linux Assemlby Programming: DOS vs. AT&T Syntax.
Linux操作系统的心脏-Kernel …… 模 块 硬件 文件系统 进程管理 进程间通信 内存管理 网络 内核 系统调用 应用软件 内核状态 用户状态 或 应用软件 ……
Linux内核体系结构
OS跳动的动力-中断 “ 中断-无处不在 时钟中断-整个操作系统活动的动力
父-子-孙共存的系统必然是一个并发的系统 内核的核心-进程 “ Fork()——新进程呱呱落地 , 但仅是父亲的一个克隆 Exec()-新进程脱胎换骨,离家独立, 开始了独立工作的职业生涯 父-子-孙共存的系统必然是一个并发的系统
解开PCB的面纱 “ PCB——一个数据结构而已 struct task_struct { … }
进程调度-有条不紊的使者 “ schedule()函数 调度算法 调度时机 进程切换
虚拟内存管理-最复杂的机制 “ 地址映射机制 请页机制 内存分配和回收机制 交换机制 缓存和刷新机制
虚拟文件系统-抽象的体现 用户空间 用户程序 内核空间 系统调用对应的内核函数sys_read() 等 虚拟文件系统VFS 用户空间 内核空间 系统调用对应的内核函数sys_read() 等 支撑VFS的具体文件系统 用户程序 文件系统的系统调用接口,包括read()、write()、open()、close()等 虚拟文件系统VFS Minix Ext2 … FAT … 设备文件
系统调用-内核的出口 POSIX API和系统调用 操作系统就是系统调用的集合 应用程序的可移植性
驱动程序-内核级程序开发的场所 驱动程序开发的一般步骤 字符设备与块设备 参考书:《Linux Device Driver》
模块-内核的插口 模块程序编写的一般步骤 注册模块和注销模块 参考书:《The Linux Module programming Guide》
如何组织学生阅读源代码 打基础 分模块 定期讨论 远期目标
为什么要阅读操作系统源代码 最基础 各种知识的综合应用 各种数据结构和算法的具体应用 培养读代码的基本功
嵌入式Linux的开发 Linux在中国
开源文件的蔓延 通过Internet Linux爱好者的参与 商业公司的加入 政府的支持
中文Linux网站 中国Linux论坛http://www.linuxforum.net http://www.linuxfans.org/nuke/index.php
开源项目 共创软件联盟的开发源码库http://cosoft.org.cn/ 丰富的源码库http://sourceforge.net/
政府支持如虎添翼 政府采购看准开放标准 政府软件采购招标中, Linux中标.
如火如荼的培训 Linux发布者 培训机构
Linux教学层次 Linux的使用 系统管理 应用程序的开发 内核级的开发
组织开源软件大赛 计算机学会 开源组织 出版行业
Linux应用现状 Linux主要应用于软件供应商、学术界及ASP、ISP公司,主要用于服务器平台,嵌入式系统,桌面环境欠缺。 开放源代码软件的使用符合国家和民族的利益,这样可以避免依赖某一个公司的产品。 软件产业正处于转型期,从PC时代靠销售软件产品的版权来赢利逐渐向Internet时代以软件服务为主。Linux是代表。
Linux应用现状 Linux在市场不断取得成功,IBM、Sun、Oracle、Intel、苹果等著名IT公司纷纷加入Linux的阵营 开放源码不断深入,微软受到挑战 开放源代码软件模式更有利于解决软件中存在的安全缺陷。
Linux发展方向 提供更多高性能的驱动程序,是Linux普及和广泛应用的关键。
我与Linux 著作 教材 译著 《Linxu操作系统原理与应用》清华大学出版社 《Linux操作系统内核分析》 内核2.0 -指定为中科院考博参考书 《深入分析Linux内核源代码》内核2.4 译著 《Understanding The Linunx Kernel》第一版(内核2.2),第二版(内核2.4) 《Linunx Kernel Development》第一、二版(内核2.6) 教材 《Linxu操作系统原理与应用》清华大学出版社
“内核之旅”网站 http://www.kerneltravel.net 电子杂志 1.搭建Linux试验系统实例:学生通过亲手构建系统的过程,消除对Linux的恐惧感 2. 构建一个简易操作系统(一个可启功的操作系统) 3. 编写Shell解释程序 4.编写自己的系统调用 5.编写一个内存映射 6.编写一个内核共享链表同步访问的程序 7.实现一个文件系统 写自己的Shell解释器
提问 基本命令的学习 字符和图形界面程序的开发 Linux内核源码学习 内核级编程 Email:cljun@xiyou.edu.cn 基本命令的学习 字符和图形界面程序的开发 Linux内核源码学习 内核级编程