第1章Linux内核简介课件

PPT
  • 阅读 47 次
  • 下载 0 次
  • 页数 50 页
  • 大小 298.688 KB
  • 2022-11-26 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第1章Linux内核简介课件
可在后台配置第一页与第二页中间广告代码
第1章Linux内核简介课件
可在后台配置第二页与第三页中间广告代码
第1章Linux内核简介课件
可在后台配置第三页与第四页中间广告代码
第1章Linux内核简介课件
第1章Linux内核简介课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 50
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】第1章Linux内核简介课件.ppt,共(50)页,298.688 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-55017.html

以下为本文档部分文字说明:

第1章Linux内核基础本章主要内容Linux简介Linux内核和Unix内核的比较Linux内核版本获取、阅读内核源代码编译内核1.1Linux简介Linux的起源:UNIXLinux的产生为什么使用LinuxLinux的现状Linux与

发展我国自主的操作系统Linux的起源:UNIX70年代——Unix的初始发展阶段1969年,在AT&T贝尔实验室,KenThompson、DennisRitchie和其他的研究人员开发了一个操作系统,这个新的操作系统称为UNIX。19

71年UNIX移植到PDP-11上,第一次得到实用。此时的系统全部用汇编语言写成;1973年用C语言重写UNIX核心,系统变得极为便于理解、修改和移植;1976年的V6是第一个在Bell实验室以外可以使用的版本。1977年UN

IX成为产品;同期开始被移植到各种类型的机器上,并产生了许多变种版本。如移植到VAX机上形成32位的UNIXV7。Linux的起源:UNIX80年代——Unix的丰富发展时期1981年Bell实验室推出UNIXSYSTEMIII。一个重

要的分支是BSD版(BerkeleyUNIX)。由加利福尼亚大学伯利克分校开发。它在UNIX中增加了很多显著的特征,如TCP/TP网络、UFS文件系统,并改进了内存管理代码,采用页。90年代——Unix的完善阶段Bell实验室推出UNIXSystemVRelease4。伯克利的4.3BSD已

经形成了当前Unix的两大流派Linux的出现UNIX的重要分支SUN公司的SunOS与SolarisSUN公司在4.2BSDUNIX基础上加进系统V形成SunOS,后来由SunSoft继续开发,形成SYSTEMV基础上的Solaris。硬件平台:SunSparc、IntelPC工

作站和服务器SCO公司的SCOUNIXSCOUnix使用Intel的平台,较早进入中国市场。它的历史追溯到MicroSoft开发的Xienx,Xienx是运行在Intel平台上的一种基于UnixV6的系统。Xienx开发部门独立出来成立了SCO公司,并基于AT&TSystemVR3.2

开发了SCOUnix,其最新的版本为增强了图形接口的SCOOpenServer5.0.4。AT&T将Unix系统实验室卖给了Novell公司,它们的Unix被更名为UnixWare。但是Novell正逢经营问题,不得不将UnixWa

re再次卖给SCO。硬件平台:IntelPC工作站和服务器UNIX的重要分支IBM公司的IBMAIX硬件平台:IBMRS/6000和其它使用IBMPower和PowerPC系列处理器的系统,IntelAI-64版。HP公司的Hewlett-Pac

kardHP-UX硬件平台:HP9000服务器Linux的产生RichardStallman于1984年独立开发出一个类UNIX的操作系统。Stallman的理想就是“开发出一个质量高而自由的操作系统”。

为此他创立了自由软件基金会,资助GNU(GNUisNotUnix的缩写)软件开发。之后GNU开发了gcc、Emacs等大量的程序。芬兰学生LinusTorvalds于1991年为基于Intel80386的IB

M兼容机开发了Linux操作系统。Linux的产生Linux在加入自由软件组织GNU后,经过Internet上全体开发者的共同努力,已成为能够支持各种体系结构(包括Alpha、SPARC、PowerPC、MC680x0、IBMSys

tem/390等)的具有很大影响力的操作系统。注:Pentium,PentiumII等等均属于i386系列体系结构)。本课程将主要针对i386CPU。为什么要用Linux免费或少花费用减少在硬件升级上的开支根据您的需求灵活定制从许可证的限制中解脱稳定性性能标准兼容性众

多的硬件支持特性强大因特网支持能与现有存在的操作系统共存Linux的现状Linux的用户个人用户:是潜在用户。专业用户:学习内核功能,从中找到有用的思想;从源代码中获得编程技巧。商业用户:看重Linux的安全性、

可靠性和低廉的费用。Linux的功能提供WWW服务打印服务数据库服务网络服务典型应用Linux的欠缺字处理软件、表格处理软件等没有Word、Excel等功能强操作易用性、安装易用性、配置易用性在可靠性

方面,没有一个成熟的双机热备份系统Linux与发展我国自主的操作系统发展我国自主的操作系统,这里的“自主”,不是有“自己的知识产权”,因为在自主的技术中可以包含公有技术和其他不收使用费(版权费)的技术。如果采用Linu

x作为自主操作系统的核心,它是自由软件,属于不收版权费的技术,它的知识产权属于Linux群体。采用Linux作为OS核心可以达到自主,即得到源码,自主发布版本,可以根据用户的需求进行定制,可以修改、发展等等,当然,同时也

要遵守它的公用许可证(GPL)条款。发展在OS上的支撑软件、应用软件,发展PC以外的嵌入式OS。操作系统自主的意义自主OS依赖别家的OS掌握源代码,可以自主开发不掌握源代码,依赖厂商发展不需要版权费需要版权费可根据需求自行定制依赖厂商有偿定制使用不受限制使用受限制安全性

可以估量和增强安全性难以估量和增强可以自主发布版本依赖厂商更新版本可以发挥人才优势英雄无用武之地为什么要发展自主操作系统保障网络及信息安全Windows存在问题不提供源代码,像一个“黑盒子”改变软件产业游戏规则Windows的垄断,世界市场占>95%,中国市场占>95%Windows与

其他应用软件捆绑,使民族产业受到威胁未来OS是Windows和Linux之争Linux与Windows的争夺Linux作为Internet服务器的理由Windows平台(98/NT/2000/XP)Linux平台依赖微软自主发展巨额版权费节省版权费与微软的不平等竞争与其他公司的

平等竞争安全有隐患安全可改进助长垄断摆脱垄断机遇OS/2的教训曾经辉煌到能与Windows平起平坐,但现在已退出操作系统舞台Linux的机遇开放源码的前景我国的具体情况自主操作系统的内容1.采用Linux作为自主OS的核心,并免费取得源码。当然,按照

GPL的规定,对Linux核心的任何改进,源码也必须开放。2.在Linux核心的基础上,我们可以按照特定的环境和需求定制成OS的各个“发行版本”,操作系统的发行版本可以包含与其捆绑在一起的支撑软件和应用软件。自主操作系统

的内容3.围绕Linux进行开发、增值、集成工作,这包括对OS核心的改进,增加驱动程序和设备支持,简化安装、配置,开发对用户友好的界面,开发运行于Linux平台的中间件和应用软件等等。4.加强对Linux的技术支持、服务,要看到服务业的重要性。5.发展Linux的培训工作。如果能将L

inux的培训与计算机OS的教学、计算机资格考试等等结合起来,将对它的推广产生深远的影响。红旗Linux北京中科红旗软件技术有限公司(简称红旗软件)是由中国科学院软件研究所和上海联创投资管理有限公司在2000年6月份共同组建的。红旗软件致力红旗Linux操作系统及应用软件的开发和推广;提供包

括桌面、服务器、高性能运算系统、安全操作系统到嵌入式系统的全线产品,以及全方位应用解决方案和技术服务。红旗Linux红旗嵌入式Linux秉承了开放的Linux的诸多优秀性能,并经过红旗的精心优化和裁减,从而更加适用于嵌入式设备。

现在,您可以在移动计算平台(PDA、SmartPhone、E-book)、信息家电(机顶盒)、工业(智能工控设备)、商业(POS/ATM)等众多的嵌入式设备中看到红旗嵌入式Linux的身影。POSIX—可移植操作系统接口POSIX(可移植UNIX操作系统接口)是由业界众多公司开发并正在进一

步开发的标准。最早的标准在1988年被采用,在很大程度上基于SystemV接口。已采用的POSIX标准包括:POSIX.1-用于C程序的基础系统接口。1988年采用,1990年修订。POSIX.2-Sh

ell和公用程序,包括交互式公用程序和几个C接口。1992年采用。POSIX.3-用于衡量POSIX遵从性的测试方法。1991年采用。POSIX.3.1-用于衡量POSIX.1遵从性的测试方法。1993年采用。P

OSIX.4-POSIX.1的实时扩展。1993年采用。POSIX.5-绑定到POSIX.1的Ada语言。描述与POSIX.1相同的功能,可通过Ada程序访问。1992年采用。POSIX.9-绑定到POSIX.1的FORTRAN77语言。描述与POSIX.1相同的功

能,可通过FORTRAN77程序访问。1992年采用。GNUGPL–(GNU通用公共许可证)其宗旨是保证用户有无限复制和修改的权利。——copyleft它要求用户在发布源码时不收费、不附加其他条款,并必须附带GPL的条款。这样,无论任何人是否作了修改,在重新发布软件时,都必须连带传

递复制和修改该软件的自由度。版权所有(C)1989,1991FreeSoftwareFoundation,Inc.Linux遵从GNU的GPL第二版。你可以自由获取Linux内核源代码并任意修改它来使用,但如果你要

发布你修改过的内核,则必须保证你的内核源码可以被任何人使用和修改。因为可以获取Linux内核源代码,所以你能够自行配制你的内核成为你想要的样子。自由软件基金会(FSF)自由软件基金会(FreeSoftwareFoundati

on,Inc.)致力于消除对计算机程序在复制、分发、理解和修改方面的限制。通过在所有计算领域中开发和使用自由软件——尤其是通过帮助开发GNU操作系统的方式来实现这一目标。自由软件基金会致力于开发新的自由软件,以及将这些软件构造成为一个协调一致的系统。除了开发GNU之外,FSF还分发GNU

软件的拷贝和手册,只收取分发费用,它还接受免税的馈赠以支持GNU的开发。FSF的大多数资金来自它的软件分发服务。1.2Linux内核和Unix内核的比较单内核与微内核单内核:把内核从整体上作为一个单

独的大过程来实现,并同时运行在一个单独的地址空间。所有内核服务都在这样的一个大内核空间中运行。大多数Unix系统都设计为单内核。微内核:它的功能被划分为独立的过程,每个过程叫做一个服务。所有的服务都保持独立并运行在各自的地址空间。Wi

ndows是典型的微内核结构。Linux是一个单内核,也即,Linux内核运行在单独的内核地址空间。但Linux也汲取了微内核的精华,如:模块化设计、抢占式内核、支持内核线程、动态装载内核模块。Linux内核与Unix内核的比较Linux支持动态加载内核模块Linux支持SMP(S

ymmetricalMultiProcessor,对称多处理)Linux内核可以抢占Linux内核并不区分线程和一般进程Linux提供具有设备类的面向对象的设备模型、热插拔事件,以及用户空间的设备文件系统Linux忽略了一些设计拙劣的Un

ix特性Linux是免费的1.3Linux内核版本Linux内核版本号命名规则:主版本号.次版本号.修订版本号当次版本号为偶数,内核为稳定版;奇数,内核为开发版。如:2.4.33,2.6.17均为稳定版。2006年8月23日发布了2.6.17.11版内核。本课程分析的内核版本

与教材相配合,本课程采用2.6.10版的内核作为实例进行分析。1.4获取、阅读内核源代码官方网站:http://www.kernel.org新版本的内核的发布有两种形式:完整的内核版本:比较大,一般是.tar.b

z2或者.tar.gz文件patch文件,即补丁:比较小,一般只有几十K到几百K,但是patch文件是针对于特定的版本的,你需要找到自己对应的版本才能使用源代码阅读工具Windows平台下的阅读工具:Source

Insight。SourceInsight的使用简单介绍如下:先选择Project菜单下的new,新建一个工程,输入工程名,接着要求你把欲读的源代码加入(可以整个目录加)后,该软件就分析你所加的源代码。分析完后,就可以进行阅读了。对于打开的阅读文件,如果想看某一变量的定义,先把光

标定位于该变量,然后点击工具条上的相应选项,该变量的定义就显示出来。对于函数的定义与实现也可以同样操作。阅读源代码阅读Linux内核源代码的基本要求:操作系统的基本知识;对C语言比较熟悉,最好了解汇编语言的知识和GNUC对标准C的

扩展的知识。另外在阅读之前,还应该知道Linux内核源代码的整体分布情况。现代操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。看一下Linux内源代码就可看出,各个目录大致对应了这些方面。Linux内核源代码的组成见第9页表2-1。内核源码树2.4.33内核源码树2.6.

17.8内核源代码树(1)内核源代码的顶层是/usr/src/linux,此目录下有:(1)arch:与体系结构相关的代码alpha:DECAlphaCPU工作站arm:ARM系列CPU,如Corel的NetWinder和AcornRiscPCi386:Intel公司的80386

CPUm68k:Motorola公司的680X0CPU,如Apple公司Macintosh计算机mips:MIPSCPU,最著名的是SiliconGraphics(SGI)工作站ppc:Motorola/IBM的Powe

rPC系列CPU,IBM的RS/6000计算机sparc:UltraSPARCCPU,SUN公司产品内核源代码树(2)(2)crypto:cryptoAPI(3)Document:有关Linux内核的文档(4)drivers:设备驱动程序(5)fs:Linux支持的文件系统,每个子目录分别对应

一个特定的文件系统(6)include:包含了所有的.h文件,在include中也是为各种CPU都专设一个子目录,而通用的子目录asm则根据系统的配置而符号链接到具体CPU的专用子目录,如asm-i386等。除此之外,还有通用的子目录linux、net等内核源代码树(3

)(7)init:内核引导和初始化过程,包括main.c,version.c等文件(8)ipc:进程间通信(9)kernel:进程管理和调度(10)lib:通用的工具性子程序,如对出错信息的处理等(11)mm:内存管理子系统和VM(

12)net:网络子系统(13)scripts:编译内核所用的脚本内核源代码树(4)(14)security:Linux安全模块(15)sound:语音子系统(16)usr:早期用户空间代码(17)CPOYING:有关GPL的具体说明(18)README:Linux内核安装和使用的简要

说明(19)Makefile:重构Linux内核可执行代码的make文件1.5编译内核为什么要重新编译内核?Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效、更

稳定的内核,就需要重新编译内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。设置内核编译配置选项为了正确的合理地设置内核编译配置选项,从而只编译

系统需要的功能的代码,一般主要有下面四个考虑:自己定制编译的内核运行更快(具有更少的代码)系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)不需要的功能编译进入内核可能会增加被系统攻击者利用的漏

洞将某种功能编译为模块方式会比编译到内核中的方式速度要慢一些内核编译模式要增加对某部分功能(比如网络)的支持,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module),动态调用。如果编译到内核

中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,你就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在,这就是Windows惯用的招数,建议经常使用的部分直接编译到内核中,比如网卡。如果编

译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。安装内核源代码编译内核需要root权限,以下操作都假定你是root用户。把新版本的内核(以linux-2.4.33.tar.bz2为例)拷贝到/usr/src/下,并解压,命

令为:tar-xjvflinux-2.4.33.tar.bz2或:tar-xzvflinux-2.4.33.tar.gz解压后的源代码位于/usr/src/linux-2.4.33目录下准备编译内核为/usr/src/li

nux-2.4.33目录创建符号链接:#cd/usr/src#ln–slinux-2.4.33linux配置内核内核提供了各种不同的工具来简化内核配置:#makeconfig(基于文本的最为传统的配置界面,不推荐使用)#makemenuconfig(基于文本

菜单的配置界面,字符终端下推荐使用)#makexconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)#makeoldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)检查代码之间的依赖关系#makedep读取配置过程生成

的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而哪些不需要。#makeclean删除前面步骤留下的临时文件,以避免出现一些错误。编译内核#makebzImage或makezImage该命令完成内核的编译。二者生成的内核都是使用gzip压缩的,其

区别在于使用makebzImage可以生成大一点的内核。建议使用makebzImage命令。#makemodules编译模块#makemodules_install安装模块,即把模块拷贝到需要的目录中安装内核#makeinstall把内核安装到正确的

位置如果使用GRUB启动管理器,编辑/boot/grub/grub.conf文件如果使用LILO启动管理器,编辑/etc/lilo.conf,并运行/sbin/lilo–v命令重启机器,使用新的内核

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?