版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本讲内容(nirng) Linux操作系统内核(ni h)简介 linux内核(ni h)分析概论第1页/共34页第一页,共35页。第一节 Linux操作系统内核(ni h)简介 Linux操作系统简介( jin ji) Linux内核版本简介( jin ji)第2页/共34页第二页,共35页。第3页/共34页第三页,共35页。 POSIX POSIX表示可移植操作系统接口(ji ku)(Portable Operating System Interface ,缩写为 POSIX 是为了读音更像UNIX)。电气和电子工程师协会(Institute of Electrical and Elect
2、ronics Engineers,IEEE) 最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性。然而,POSIX 并不局限于 UNIX。 许多其它的操作系统,例如 WinNT,都支持 POSIX 标准。POSIX.1 已经被国际标准化组织(International Standards Organization,ISO)所接受,被命名为 ISO/IEC 9945-1:1990 标准。 SYSV和BSD扩展 可以理解为和SYSV和BSD源代码级的兼容。简单一点,就是Linux下的应用程序同时也能在这两个系统上运行。 GPL(General Public License)
3、 公用许可证。第4页/共34页第四页,共35页。Linux的来历(lil)第5页/共34页第五页,共35页。Linux的来历(lil)第6页/共34页第六页,共35页。Linux的来历(lil) 在1991的时候,主观上有了这样一个目标,当时linus又需要一个简单的终端仿真(fn zhn)程序来存取Usenet新闻组的内容,于是他就开始在上面两个草草编写的进程的基础上又写了一个程序。他是这样描述的:“一个进程是从键盘上阅读输入然后发送给调制解调器,另一个进程是从调制解调器上阅读发送过来的信息然后送到屏幕上供人阅读。”然而要实现这两个新的进程,他显然还需要一些别的东西,这就是驱动程序。他必须为
4、不同的显示器、键盘和调制解调器编写驱动程序。1991年的夏季,也就是他购买了第一台PC机之后6个月,Linus觉得他还需要从网上下载某些文件,为此他必须读写某个磁盘。于是他又不得不写一个磁盘驱动程序,然后是一个文件系统。而一旦你有了任务切换器、文件系统和设备驱动程序之后,你当然就拥有了一个操作系统,或者至少是它的一个内核。linux也就这样诞生了。第7页/共34页第七页,共35页。第8页/共34页第八页,共35页。 Linux的来历(lil)第9页/共34页第九页,共35页。linux名字(mng zi)由来开始,linux还没有专门的新闻组。linus只是在赫尔辛基技术(jsh)大学的一台F
5、TP服务器上发了一则消息,说可以下载linux的公开版本。Linux是linus的笔名,他担心如果用Linux来命名的话有人会说他狂妄而且不会认真对它。于是他用了一个很怪的名字Freak(free+freak+X)-free就是自由;freak愿意是怪胎的意思。表示这个系统还有很多不完善的地方。加上X是模仿UNIX和MINIX让人家一看就知道这是一个操作系统。后来,这台FTP的管理员不喜欢Freax这个名字,最后选择了Linux.。第10页/共34页第十页,共35页。自由软件自由软件 Richard Stallman在1971年加入MIT的人工智能实验室,他认为:知识应该与其它能从知识中受益的
6、人一起共享,重要的资源应该被利用。他想把自己开发的软件与其它人共享,按照法律,他是MIT的员工,他写的程序是属于MIT的。为了不冒犯法律,毅然辞职。大约(dyu)在一年以后,由于个别的公司控制了许多公共软件的开发项目。自1984年起MIT开始支持Richard Stallman的努力。这样就导致了自由软件基金会(Free Software Foundation,FSF)的建立。他认为:计算机系统因该开放,软件应该自由使用。第11页/共34页第十一页,共35页。GNU Richard Stallman打算组织开发一个完全基于自由软件的软件体系GNU(GNUs Not Unix,GNU这个单词含义
7、正好是产于南非州的一种大羚羊,所以我们经常可以看到有些linux书的封面是一只羚羊,就是这个道理。)。它的目标是:写一个完整的与UNIX兼容的软件系统。由于刚开始还没有很好的自由软件可供使用。所以他们先从系统的应用软件和工具着手(zhushu)。比如很有名的:emacs(编辑器) gcc(据说是世界上效率最高的编译器)等等。同时他们也开发GUN体系的操作系统内核:hurd。可是开发得很缓慢。到现在也没有全部完工。第12页/共34页第十二页,共35页。GPL 在其它人协作下, Stallman创作了通用软件许可证(General Public Licese,GPL)。这对推动自由软件的发展起了重
8、要作用。GPL主要的规定: 1) GPL保证任何人有共享和修改自由软件的自由。还可以把修改后的软件向公众发布。但是发布者要无条件开放其源代码。这样就保证自由软件的低价。 2) GPL规定自由软件的衍生(yn shn)作品必须以GPL为重新发布的许可证。这样就保证了自由软件的持续性。 3) GPL规定允许公司销售自由软件。这就为公司介入自由软件事业敞开大门。第13页/共34页第十三页,共35页。Linux和自由软件和自由软件 自从1991Linux发布以来,一直是完全自由扩散的。他要求所有的源码必须公开且任何人不准从中获利。这样它限制了Linux以磁盘或CDROM等媒介的发布形式(xngsh)。
9、从而阻碍了Linux得发展。因为没有哪家公司愿意使用没有厂商保证和没有良好技术支持的操作系统。linus想到了GPL。事实也证明,加入GPL之后,许多软件公司就介入其中,开发了多种Linux的发行版本。如:Redhat、Mandrake等等。他们增加了许多实用软件和易用的图形界面。linus本人也认为:“使Linux成为GPL的一员是我一生中作过最漂亮的一件事”。第14页/共34页第十四页,共35页。第15页/共34页第十五页,共35页。linux和UNIX的关系(gun x)在讲UNIX和linux两者关系之前,我们先了解一下Minix。Minix最初是由AndrewTanenbaum教授在
10、4.3BSD的基础上,但不通过修改4.3BSD的源代码而是白手起家几乎一个人完成了12000行C语言程序(chngx)的编写工作。它的特点功能简单、易懂可以在8086上运行(后来也能在80386上运行),当然我们称它为UNIX操作系统。但这个Minix的功能也非常的有限,几乎没什么实用价值,但它能很好地作为教学使用。后来网上很多人给Tanenbaum教授寄来了改进,可是Tanenbaum教授没有接受。他想保持Mnix小而简单的特性。从它的名字中不难看出,Minix是一个迷你型的操作系统。第16页/共34页第十六页,共35页。linux和UNIX的关系(gun x) linux最初是由Minix
11、发展而来,Minix是由4.3BSD UNIX发展而来,4.3BSD UNIX是由AT&T的所谓真正的UNIX发展而来。可以总结出:Minix是linux的父亲,而UNIX则是linux的祖父了。虽然UNIX和linux的源代码完全无关(wgun),可是linux中的许多特性和UNIX有很多相等之处。如: 1.Linux 采用了 SVR4 的进程间通信(IPC)机制:共享内存、消息队列、信号灯 2.Linux 支持 BSD Socket 网络编程接口 3.许多 Linux 发行版采用 SysV init 机制,支持运行级别 所以我们认为linux是UNIX操作系统。第17页/共34页第
12、十七页,共35页。Liux发展(fzhn)的5大支柱第18页/共34页第十八页,共35页。Linux的内核(ni h)版本 Linux的内核(ni h)版本 linux发行版本第19页/共34页第十九页,共35页。第20页/共34页第二十页,共35页。第21页/共34页第二十一页,共35页。不同(b tn)版本的核心源码的文件数第22页/共34页第二十二页,共35页。Linux的内核(ni h)版本 Linux内核由其创始人linus带领的小组维护。这个版本我们就认为是“官方版本”。内核版本号的格式是: 主版本号.次版本号.修正号 例如:Linux 2.4.10 ,主版本号是2,次版本号是4,
13、第10次修正. 内核版本号还有一个规则:次版本号为偶数的是稳定版本,为基数的是发展版本。所谓稳定版本是指内核的特性已经固定(gdng),代码运行稳定可靠,不再增加新的特性,要改进也只是修改代码中的错误。第23页/共34页第二十三页,共35页。linux发行(fhng)版本 光有内核还不能构成一个完整的操作系统,于是一些组织或公司将内核与一些应用程序包装起来(q li)就构成了一个完整的操作系统,这就是发行套件,不同的公司或组织的发行套件各不相同,版本号也不相同,尽管它们使用了同一版本号的内核。现在的发行公司很多,如:我们常听说的RedHat,中软,红旗。第24页/共34页第二十四页,共35页。
14、第二节 linux内核(ni h)分析概论 Linux内核分析需要的基础知识 Linux0.01内核简介 Linux内核分析的方法(fngf)、工具、参考书第25页/共34页第二十五页,共35页。Linux内核分析(fnx)需要的基础知识理论操作系统的基本知识LINUX基本操作8086硬件体系结构,接口编程知识语言(yyn)C语言(yyn)AT&T汇编和INTEL汇编,GCC内联汇编第26页/共34页第二十六页,共35页。参考资料 80386 Programmers Reference Manual 1986 GCC 手册(shuc)关于内联汇编 as86或者nasm手册(shuc)
15、Ld手册(shuc) K&r c 第27页/共34页第二十七页,共35页。第28页/共34页第二十八页,共35页。Linux0.01内核(ni h)简介比之2.4版500万行,0.01版共8000余行代码,可以完全阅读已经具备了现代操作系统的基本要素支持(zhch)的硬件平台Intel386以上的cpuVGA/EGA显示器标准IDE接口硬盘标准键盘第29页/共34页第二十九页,共35页。Linux0.01内核(ni h)代码目录目录目录描述描述boot核心引导代码fs文件系统include头文件InitMain.ckernel内核主要功能Lib系统调用接口Mm内存管理toolsBuli
16、d.c 用于将链接器生成的3个独立核心组成部分拼接成一个完成的可引导核心镜像文件第30页/共34页第三十页,共35页。Linux内核分析(fnx)的方法、工具、参考书 方法 按照目录(ml)逐一阅读注释 按照问题专门阅读流程图 工具 代码阅读工具 编程调试工具 NASM GCC BOCH第31页/共34页第三十一页,共35页。Linux内核阅读(yud)工具 source insight第32页/共34页第三十二页,共35页。参考书 linux内核完全注释| linux内核完全剖析 赵炯 操作系统(co zu x tn):设计与实现AS Tanenbaum pc接口技术内幕MyKe Predko unix操作系统(co zu x tn)设计 M,J,BACH第33页/共34页第三十三页,共35页。谢谢您
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商务局网络光缆敷设合同
- 化工原料钩机租赁合同
- 乡村太阳能路灯安装施工合同
- 医疗意外事故和解协议
- 畜牧业项目招投标代理服务模板
- 健身房商铺租赁合同个人须知
- 2024年征收补偿协议标准版
- 2024年两家企业间的合作研发新能源合同
- 地下供电打井工程合同
- 库存管理流程优化
- 天然气巡检记录表
- 甲苯磺酸瑞马唑仑临床应用
- 民法典讲座-继承篇
- 外包施工单位入厂安全培训(通用)
- 糖尿病健康知识宣教课件
- 客户接触点管理课件
- Python语言学习通超星课后章节答案期末考试题库2023年
- 医学-心脏骤停急救培训-心脏骤停急救教学课件
- 高中英语-Book 1 Unit 4 Click for a friend教学课件设计
- 年产30万吨碳酸钙粉建设项目可行性研究报告
- 主题班会如何对待厌学情绪(初二) 省赛获奖 省赛获奖
评论
0/150
提交评论