1、Linux操作系统内核分析湘潭大学信息工程学院开课目的培养综合运用所学知识的能力l编程语言:C语言和汇编语言l操作系统原理l计算机组成原理l数据结构提高阅读代码的水平学习曲线和方法上课时理解基本原理课后自己读Linux的源代码遇到问题:l善于在网上查资料l善于和老师交流l善于和同学交流时间兴趣讲课内容操作系统简介Linux简介Linux的历史与现状什么是操作系统计算机系统中负责支撑应用程序运行环境运行环境以及用户操作环境操作环境的系统软件l计算机系统资源的管理者l为用户提供了一个抽象概念上的计算机计算机系统的核心与基石操作系统的发展批处理操作系统l串行,非交互单任务单用户操作系统l串行,交互l
2、Dos多任务单用户操作系统l并行,交互lWindows 98多任务多用户操作系统l并行,交互,分时共享lUnix、Linux、Windows XP实时操作系统l并行,响应时间短,容错性强l嵌入式Linux分布式操作系统l基于网络,任务分担lMach广义操作系统操作系统内核系统库lANSI Cl窗口库系统应用l编辑器l编译器l浏览器系统应用系统库操作系统内核硬件用户应用API调用内核调用用户狭义操作系统计算机科学中所指的操作系统操作系统内核l进程管理l内存管理l设备管理l网络管理l文件系统系统应用系统库操作系统内核硬件用户应用API调用内核调用用户操作系统内核体系结构单内核内核包含文件系统、进程
3、管理、内存管理、设备管理等模块,并且这些模块作为一个整体一个整体运行在内核模式中应用程序与内核模块、内核模块间的通信是通过函数调用函数调用实现的应用程序虚拟文件系统进程管理、内存管理IPC、文件系统设备管理硬件内核模式内核模式用户模用户模式式操作系统内核体系结构微内核内核仅包含一些最基本功能,运行在基本功能,运行在内核模式下内核模式下其它操作系统功能其它操作系统功能以服务器的形式提供,运行在用户模运行在用户模式下式下通信是通过进程间进程间通信通信(IPC)实现的应用程序设备服务器 文件服务器IPC、进程管理、内存管理硬件内核模式内核模式用户模用户模式式单内核与微内核应用程序虚拟文件系统进程管理
4、、内存管理IPC、文件系统设备管理硬件内核模式内核模式用户模用户模式式应用程序设备服务器 文件服务器IPC、进程管理、内存管理硬件单内核与微内核单内核优点l开销小单内核缺点l内核复杂l可移值性差单内核例子lLinux微内核优点l内核简单l可移值性好微内核缺点l开销大微内核例子lNT讲课内容操作系统简介Linux简介Linux的历史与现状Linux之父Linus Torvalds(林纳斯托瓦兹,1969年12月28日生)毕业与芬兰赫尔辛基大学计算机科学系,大学二年级时编写Linux现供职于开放源代码开发实验室(OSDL:Open Source Development Labs)讲课内容操作系统简
5、介Linux简介lLinux与UnixlLinux与POSIXlLinux与MINIXlLinux与GNUlLinux与InternetLinux的历史与现状Unix 操作系统美国贝尔实验室的Ken.Thompson和Dennis Ritchie 于1969 年夏开发的一个分时操作系统 跨平台:使得Unix能够在多个硬件平台上运行内核:使得Unix在移植过程中不必要修改所有的代码 贝尔实验室的SVR4(System V Release 4)和伯克利大学开发的4.4 BSD DEC公司的Digital Unix,IBM公司的AIX,HP公司的HP-Unix,Sun公司的Solaris以及苹果公司
6、的Mac OS X Linux操作系统Linux指的是由Linus Torvalds维护的开放源代码UNIX类操作系统的内核。然而,目前大多数人用它来表示以Linux内核为基础的整个操作系统。从这种意义讲,Linux指的是开放源代码的,包含内核、系统工具、完整的开发环境和应用的UNIX类操作系统。Linux:开放的操作系统是一个UNIX操作系统的克隆,可以免费使用,遵循GPL声明,可以自由修改和传播。Linux包含了人们希望操作系统拥有的所有功能特性,这些功能包括真正的多任务、虚拟内存、世界上最快的TCP/IP驱动程序、共享库和多用户支持。现在是个人计算机和工作站上的UNIX类操作系统。它不仅
7、继承了UNIX的特征,而且在许多方面超过了UNIX。Linux具有Unix系统的一般特点是真正的多用户、多任务操作系统;是符合POSIX标准的系统;提供具有内置安全措施的分层的文件系统;提供shell命令解释程序和编程语言;提供强大的管理功能,包括远程管理功能;具有内核的编程接口;具有图形用户接口;具有大量有用的实用程序和通信、联网工具;具有面向屏幕的编缉软件。Linux独到之处它的源代码几乎全部都是开放的。它可以运行在许多硬件平台上。它不仅可以运行许多自由发布的应用软件,还可以运行许多商品化的应用软件。强大的网络功能。它能充分发挥硬件的功能,因而它比其他操作系统的运行效率更高。讲课内容操作系
8、统简介Linux简介lLinux与UnixlLinux与POSIXlLinux与MINIXlLinux与GNUlLinux与InternetLinux的历史与现状操作系统接口Unix多种版本在调用接口上的不一致,造成了应用程序的移植问题l对于创建进程服务,A版本提供的接口是fork,B版本提供的接口是fork1。那么,凡是在A版本上使用fork的应用要移植到B版本上都要进行修改。系统应用系统库操作系统内核硬件用户应用API调用内核调用POSIX标准1989年IEEE制定了一个调用接口标准,称为POSIX(Portable Operation System Interface based-on
9、Unix)标准定义了操作系统的调用接口,但没有限制内核的实现细节(接口与实现分离原则)讲课内容操作系统简介Linux简介lLinux与UnixlLinux与POSIXlLinux与MINIXlLinux与GNUlLinux与InternetLinux的历史与现状MINIX之父Andrew S.Tanenbaum,荷兰人,生于1944年,加州伯克利大学博士,现供职于荷兰Vrije大学。经典著作有:l操作系统:设计与实现l计算机网络l现代操作系统MINIX操作系统87年Andrew编写了第一个运行在IBM PC机上的开放源代码的Unix克隆版本MINIX(mini-Unix),是一个高度模块化、可
10、靠和安全的操作系统。主要用于学生学习操作系统原理。MINX基于微内核结构,大约只有4000行代码运行在内核模式中。现在称为MINIX 3,可在www.minix3.org下载讲课内容操作系统简介Linux简介lLinux与UnixlLinux与POSIXlLinux与MINIXlLinux与GNUlLinux与InternetLinux的历史与现状GNU计划在计算机工业发展的初期,软件只是硬件的附属品。但是,公司很快认识到软件的价值,对软件实施了版权控制,并限制源代码的发布。Richard M.Stallman 于1984 年一手创办GNU 计划和自由软件基金会,制定并颁布的通用公共许可证(G
11、PL)使得软件可以在此许可证的保护下被自由的传播和修改。通用公共许可证保证任何人都有发布自由软件的权利保证任何人都能得到源代码或在需要时得到源代码 保证任何人都能修改自由软件或把自由软件的一部分用于新的自由软件 保证任何人都能知道以上权利 禁止任何人不承认这些权利或要求其它人放弃这些权利 如果修改了自由软件或发布了自由软件的副本,这些规定就转化为修改者的责任 讲课内容操作系统简介Linux简介lLinux与UnixlLinux与POSIXlLinux与MINIXlLinux与GNUlLinux与InternetLinux的历史与现状Internet对Linux的影响Linux可以说完全是一个互
12、联网时代的产物,它是在互联网上产生、发展和不断壮大起来的。全世界的操作系统爱好者通过网络来共同开发和维护Linux。讲课内容操作系统简介Linux简介Linux的历史与现状Linux的历史Linus在自己的PC上,利用Andrew教授自行设计的MINIX为开发平台,开发了属于他自己的第一个程序。Linus说刚开始的时候他根本没有想到要编写一个操作系统内核。“于是我又不得不写一个磁盘驱动程序,然后是一个文件系统。而一旦当你有了任务切换器、文件系统和设备驱动程序之后,你当然就拥有了一个UNIX”或者至少是它的一个内核。Linux就以这样一种极其古怪但也极其自然的方式问世了。Linux的历史Linu
13、s并没有在 MINIX 新闻组中公布它。他只是在赫尔辛基技术大学的一台 FTP 服务器上发了一则消息,说用户可以下载Linux的公开版本。到1992年1月止,全世界大约只有100个左右的人在使用Linux。1993 年,Linus 的第一个“产品”版Linux 1.0问世的时候,是按完全自由发行版权进行发行的。Linux内核版本Linux操作系统内核的开发和规范一直是由Linux社区控制的,版本也是唯一的。目前内核版本已经达到了2.6l内核版本号一般由三位数组成,如2.4.3和2.3.5等。其中头两位数表示版本号,中间一位如果是偶数代表的是稳定版本,如果是奇数则代表的是开发版本,最后一位表示发
14、行号 内核源代码的发展和大小版本发布日期大小(MB)1.01994-03-035.91.2.131995-02-08112.0.392001-01-09352.2.222002-09-16932.4.222003-08-251812.6.222007-07-08261Linux发行版本在Linux内核日趋稳定的基础上,很多社区、公司整合了各种库和应用,开始建立软件包来简化新用户安装和使用Linux的方法,推出了多种Linux发行版本lSlackware:最早的发行版本 lDebian:真正非商业化的发行版本 lRedhat:最早的商业化的发行版本 lBlue Point Linux和红旗Linux:国产Linux内核源代码可以在Linux系统的/usr/src/linux目录下找到当前所用的内核的源代码可以在www.kernel.org下载各个版本阅读工具LXRlLinux超文本交叉代码检索工具(Linux Cross-Reference)l运行在Linux下l可以在自己的机器上下载并安装LXR工具,或直接访问http:/lxr.linux.noSource Insightl运行在Window下资源http:/