第1章 Linux概述.ppt

上传人:confusegate185 文档编号:388420 上传时间:2018-10-12 格式:PPT 页数:32 大小:115KB
下载 相关 举报
第1章 Linux概述.ppt_第1页
第1页 / 共32页
第1章 Linux概述.ppt_第2页
第2页 / 共32页
第1章 Linux概述.ppt_第3页
第3页 / 共32页
第1章 Linux概述.ppt_第4页
第4页 / 共32页
第1章 Linux概述.ppt_第5页
第5页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第1章 概述,本章主要介绍Linux的发展和特点, Linux的源代码结构和系统结构。1.1 什么是Linux 1.2 Linux内核的特征 1.3 Linux内核源代码 1.4 Linux内核的抽象结构 复习Next,UNIX操作系统诞生于1969年,由贝尔实验室的Ken Thompson和Dennis Ritchie首先开发出来。UNIX最初用汇编语言开发,后来, Ken和Dennis成功地用C语言重写了UNIX操作系统。UNIX操作系统中95%的代码是C语言代码,只有很小的一部分是汇编语言代码。目前,UNIX在政府、金融、税务、电信等领域被普遍采用,在保险、制造业等领域也有相当的份额,是

2、当代最著名的多用户、多任务的分时操作系统。,UNIX操作系统有两个主要版本: AT&T UNIX系统 Berkeley UNIX 其它的UNIX变种都是基于这两个版本的。AIX: IBM公司HP-UX: 惠普公司Solaris:Sun公司Unixware:Novell公司 Return,1.1 什么是Linux,Linux是由芬兰赫尔辛基大学的一名大学生Linus Benedic Torvalds于1991年首先开发。Linux是为基于Intel处理器的个人计算机而设计的,具有许多UNIX系统的特性并进行了许多增强,是在个人计算机上十分流行的UNIX版本。,现在Linux已经成为一个完整的类U

3、NIX操作系统,它的核心版本在不断地更新,不仅个人桌面版的用户极多,在服务器领域也得到越来越多的应用,例如Sun公司的Sparc工作站和DEC公司的Alpha工作站。此外,在嵌入式开发方面Linux更具有其他操作系统无可比拟的优势。Linux在我国的起步较晚,随着Linux在各个行业的广泛成功应用,企业对Linux人才的需求也将持续升温。,Linux可以运行于多种硬件平台。是多用户多任务操作系统。Linux是源代码公开,可以免费获得的自由软件。当今流行的软件按其提供的方式和是否赢利可以划分为三种模式:商业软件共享软件自由软件,Linux的许多系统软件和应用软件来自于GNU组织。GNU是由Ric

4、hard Stallman在1984年组织的一个完全基于自由软件的软件体系。在其他人的协作下,Richard Stallman创作了GPL (General Public License)。GPL 允许软件作者拥有软件版权,但授予其他任何人以合法复制、发行和修改软件的权利。 GPL 和软件是否免费无关,它主要目标是保证软件对所有的用户来说是自由的。,Linux 的开发使用了许多 GNU 工具。Linux 系统上用于实现 POSIX.2 标准的工具几乎都是 GNU 项目开发的,Linux 内核、GNU 工具以及其他一些自由软件组成了人们常说的 Linux。Linux符合POSIX标准,与UNIX

5、操作系统兼容,支持TCP/IP协议,具有强大的网络功能。,Linux具有丰富的系统软件和应用软件: 支持多种系统语言。 支持多种脚本语言。 支持X Window系统及其应用程序。 支持多种应用软件,包括字处理软件、图象处理软件等。 支持多种语言。 支持多种免费的数据库。 支持网络应用。 支持与其它操作系统共享。 Return,1.2 Linux内核的特征,结构简单,工作效率高。 模块式机构,易于扩充。 进程调度方式简单而有效。 多种形式的虚存管理技术。 提供一个统一的虚拟文件系统接口。 面向对象的网络设计,支持多种协议、网卡。 Return,1.3 Linux内核源代码,Linux内核源代码位

6、于/usr/src/linux-2.4.20-8目录下。 P2 所有体系结构相关的代码在/arch中。 重构核心的大多数include文件在 / include中。 核心启动代码在/init中。 内存管理的代码主要在/mm中。 主要通用核心代码/kernel中。 文件系统的代码在/fs中。,设备驱动程序的代码在/driver中。 核心的网络部分代码在/net中。 进程间通信代码在/ipc中。 核心的库代码在/lib中。 用于配置核心的脚本文件在/script中。Return,1.4 Linux内核的抽象结构,Linux内核由5个主要的子系统组成:P4进程管理子系统;内存管理子系统;虚拟文件子系

7、统;进程间通信子系统;网络接口子系统。 Return,1.5 进程管理子系统,操作系统借助于进程来管理计算机的软、硬件资源,支持多任务的并发。Linux的进程具有独立的权限与职责,如果系统中某个进程崩溃,它不会影响到其余的进程。每个进程运行在各自的虚拟地址空间中,进程之间发生联系只能通过核心控制下的可靠通信机制来完成。,进程在生命期内将使用系统中的资源,它利用系统中的CPU来执行指令,在物理内存中放置指令和数据,使用文件系统中的功能打开并使用文件,同时直接或者间接地使用物理设备。Linux必须跟踪系统中每个进程和资源,以便在进程间实现资源的公平分配。,进程调度就是进程调度程序按一定的策略,动态

8、地把CPU分配给处于就绪队列中的某一个进程,使之执行。进程调度的目的是使处理机资源得到最高效的利用,进程调度的策略要考虑“高效”、“公平”、“周转时间”、“吞吐量”、“响应时间”等原则,并且要在一定的调度时机,通过合适的调度算法完成进程的调度。,进程调度是Linux操作系统的心脏,它具有以下功能: 允许进程建立自己的新拷贝 决定哪一个进程将占用CPU,使得可运 行进程之间进行有效的转移。接受中断并把它们发送到合适的内核子 系统。 发送信号给用户进程。 管理定时器硬件。,当进程结束后,释放进程所占用的资源。 支持动态装入模块,这些模块代表着内 核启动以后所增加的内核功能,这种可 装入模块由虚拟文

9、件系统和网络接口使 用。进程调度提供两级接口: 提供用户进程可以调用的有限的系统调 用接口。 为内核的其他子系统提供丰富的接口。,Linux的进程信息保存在task_struct结构中,包括进程标识符、进程状态、调度信息、进程间通信信息、进程链接信息、时间和定时器、文件系统信息、和进程相关的上下文信息等。Return,1.6 内存管理子系统,只有在内存中的程序和数据才能被执行和访问。过去程序的大小要受到系统物理内存空间大小的限制,现在利用虚拟存储器为用户提供一个存储容量比实际内存容量大得多的存储空间。虚拟内存系统中的所有地址都是虚拟地址而不是物理地址。通过操作系统的地址映射机构实现由虚拟地址到

10、物理地址的转换。,Linux的内存管理提供的主要功能有: 扩大地址空间 进程保护 内存映射 公平的物理内存分配 共享虚拟内存内存管理提供两级接口: 用户进程使用的系统调用接口 其他内核子系统完成它们的任务所使用 的接口,Linux的内存管理使用的数据结构主要有: vm_area_struct:虚拟内存区域数据结构 mem_map:物理内存页的数据结构 free_area:空闲内存页信息数据结构Return,1.7 虚拟文件子系统,Linux系统的最大特点之一就是能支持多种不同的逻辑文件系统,每一种逻辑文件系统都有自己的组织结构和文件操作函数,相互之间差别很大。Linux对上述文件系统的支持是通

11、过虚拟文件系统实现的。虚拟文件系统给所有的逻辑文件系统提供统一的接口。,Linux通过文件系统支持很多不同的设备,设备驱动程序给所有的物理设备提供统一的接口。因为所有的设备驱动程序都支持文件操作接口,用户进程对每一个设备的存取如同对文件操作一样,即把每一个设备当做设备特殊文件,内核对设备的操作是通过文件接口的。,Linux文件系统具有下列功能: 支持多种硬件设备 支持多种逻辑文件系统 支持几种不同的可执行文件格式 为各种文件系统和所有的硬件设备提供 统一的接口。 对文件进行高速存取 不丢失数据或不破坏数据 文件保护,Linux文件系统提供两级接口: 用户进程可存取的系统调用接口 其他内核子系统

12、使用的内部接口Linux文件系统的几个主要数据结构: super_block:超级块数据结构用于描述文件系统整体信息。 inode:索引节点数据结构用于描述文件的有关信息 file_struct:已打开文件信息的数据结构Return,1.8 进程间通信子系统,Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的,主要有信号、管道、信号量、消息队列、共享内存、套接口等。Linux支持的IPC机制具有以下功能: 支持信号 支持等待队列,支持文件锁 支持管道和命名管道 支持System IPC机制 支持信号量 支持消息队列 支持共享内存 支持UNIX的套接口对于上述各种通信机制

13、,Linux都提供了相应的接口。,进程间通信子系统的主要数据结构有: wait_queue:等待队列的数据结构 file_lock:与文件锁相关的数据结构 pipe_inode_info:存储指定管道额外信息的数据结构 ipc_perm:存储system IPC对象的存取权限的数据结构 sem:描述信号量信息的数据结构 msquid_ds:消息队列的数据结构 shmid_ds:存储共享内存信息的数据结构Return,1.9 网络接口子系统,Linux网络系统支持两个机器间的网络连接和Sockets通信模型,在Linux中实现了两种类型的Sockets :BSD Sockets和 INET So

14、cketsBSD Sockets是用INET Sockets实现的。,其他的子系统和用户是通过Socket接口使用网络提供的服务的,Socket的建立和管理是通过Socket系统调用,数据的发送和接收是通过read()和write()系统调用。网络接口子系统的主要数据结构有: BSD套接字是socket类型的数据结构 INET套接字是sock类型的数据结构 sk_buff:套接字缓冲区的数据结构 device:定义网络设备的设备数据结构Return,复习,1 了解UNIX和Linux的发展及特点2. 了解Linux源代码的大致分布 3. 掌握Linux内核的组成 4. 了解Linux内核各子系统的功能、接口和主要数据结构。Return,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1