您的位置:首页 > 运维架构 > Linux

LINUX操作系统学习--1操作系统概述

2015-05-12 11:19 363 查看
操作系统的特征

1并发性:在计算机系统中同时存在若干个运行着的程序。

从宏观上看,这些程序在同时向前推进,体现在具体两个方面:用户程序与用户程序之间并发执行;用户程序与操作系统程序之间并发执行。

从微观上看:

在单处理器环境下,这些同时运行着的程序是交替在CPU上运行的;

在多处理器系统的环境中,多个程序的并发特征,不仅在宏观上是并发的,在微观上,即在处理器一级上,程序也是并发执行的。

不管在哪一种计算机环境,并发都是在操作系统的统一指挥下并发。

2共享性:操作系统程序与多个用户程序共用系统中的各种资源。

3随机性:强调在进行操作系统的设计与实现时要充分考虑各种各样的可能性。

功能:

1进程管理:实际是对CPU管理,又称为处理器管理。

主要包括进程控制、进程同步、进程间通信和进程调度等几方面。进程控制主要处理进程的创建、状态转换、进程撤销以及相关的进程资源的分配与回收等事项;进程同步主要处理进程之间的关系,包括进程的同步和互斥;进程间通信主要处理相互协作进程之间信息交换问题;进程调度则是按照一定的算法从就绪队列中挑选一个进程在处理器中真正执行它。

互斥指多个进程对临界资源访问时采用互斥的形式。同步则是在相互协作共同完成任务的进程之间,用同步机制协调他们之间的执行顺序。最简单的实现互斥的方法就是给资源加锁,并提供操纵锁变量的原语。包括加锁和解锁原语。所谓原语是指具有某种功能、运行时有”原子性“的小段程序。原子性保证这一小段程序要么全部执行,要么全部不起作用,即这一操作不能被进一步分割或打断。

进程间通信主要发生在相互协作的进程之间。

2存储管理

内存的分配与回收、存储保护(越界)、内存扩充(虚拟存储)

虚拟存储技术中,操作系统通常将空间划分为4KB大小的页面,并且以页面为单位进行存储空间的分配与回收。进程所需要的总页面数所对应的空间可以超出实际物理空间。但操作系统只把正在使用的页面保持在内存中,或把即将使用的页面调入内存中,而将不用的页面调换到外存上,用户感受不到实际内存对使用空间的限制。

系统必须提供请求页面调入功能和页面置换的功能。

3文件管理

1)文件存储空间的管理:文件系统一个很重要的功能就是为每个文件分配一定的外存空间,并尽可能提高外存空间的利用率和文件的访问效能。存储空间分配通常采用离散分配形式,以512B或几千字节大小的块为基本单位进行分配来提高空间利用率。

2)目录管理

给出组织文件的方法。为用户提供方便的按名存取。

3)文件操作和目录操作

4)文件系统的安全性

防止越权与不正确方式访问文件。

4设备管理

计算机系统中除了CPU和内存以外的所有输入、输出设备的管理。

为了提高设备的使用效率和整个系统运行速度,操作系统需要采用一系列的技术,包括中断技术、通道技术、虚拟设备技术和缓冲技术等来发挥设备和主机的并行工作的能力。除此之外,操作系统还需具有中断处理、错误处理等功能。

LINUX特性:
1多用户 资源可以被不同用户各自拥有并使用,互不影响。

2多任务 计算机同时执行多个程序,而且各个程序的运行互相独立。是现代操作系统的基本特点。

3多平台 LINUX所支持平台种类是操作系统历史上最多的。LINUX内核高度移植性得益于LINUX大部分代码是用C语言写的。

4良好的用户界面 LINUX向用户提供两种界面:用户界面和系统调用。LINUX的传统的用户界面是基于文本的命令行界面,即SHELL,它既可以联机使用,又可存在文件上脱机使用。可编程shell是指将多条命令组合在一起,形成一个shell程序,这个程序可以单独运行,也可以与其他程序同时运行。LINUX也传承了UNIX强大的图形用户界面X-WINDOW,是支持图形化应用程序正常工作的框架,与GUI应用进行通信,并在X服务器进程(管理用户的屏幕、鼠标、键盘的进程)上进行显示。

5设备独立性

操作系统把所有外部设备统一当做文件来看待,只要安装他们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不需知道它们的具体存在形式。

6强大的通信和联网功能

1)支持INTERNET 免费提供大量支持INTERNET的软件。

2)文件传输:可以通过一些命令完成内部信息或文件的传输;

3)远程访问。

7可靠的系统安全 包括对读写进行权限控制、带保护的子系统、审计跟踪和核心授权等。

8开放性 遵循开放系统互联OSI国际标准

9应用程序支持 与POSIX标准及几个不同的应用程序接口API兼容。绝大多数GNU软件都可以运行在LINUX下。

LINUX内核版本分为两种:稳定版和开发版。其内核版本命名规则是:主版本号.次版本号.修订版本号。如果次版本号是偶数,是稳定版本;否则是开发版本。如2.6.*是稳定版本。

1.6内核系统体系结构
LINUX内核主要由5个子系统组成:进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)。

Linux内存管理支持虚拟内存,从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进行的映射和逻辑内存的对换;硬件相关部分为内存管理硬件提供了虚拟接口。

网络接口可以分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通信,每一种可能的硬件设备都有相应的设备驱动程序。

每个子系统都需要挂起或恢复进程。创建进行的第一件事情就是将程序和数据装入内存。

内存管理利用虚拟文件系统支持交换,交换进程(SWAPD)定期由调度程序调度,这是内存管理依赖于进程调度的唯一原因

LINUX内核源码组织结构
LINUX内核源代码组织采用目录树的结构,通常每个有源码文件的目录下都有makefile和kconfig两个文件,用于组织内核的配置和编译。顶层目录下的makefile是整个内核配置和编译的总体控制文件,负责启动配置工具、组织子目录编译。另外还可设置目标CPU的体系结构和交叉编译命令等。
主要子目录存放的内容
arch 包含与硬件体系结构相关的代码,每种平台占一个相应的目录。ARM平台相关的代码存放在arm目录下。在每个平台目录下还有一些子目录。包括kernel(内核核心部分)、mm(内存管理)、lib(硬件相关工具函数)和boot(引导程序)等。
drivers 设备驱动程序,每个不同的驱动占用一个子目录。
include 内核头文件。include/asm-*/中是体系结构相关的头文件(*表示体系结构的名称),如include/asm-arm。include/linux是内核基本的头文件。
kernel 内核最核心部分, 包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel下。
Lib 各种库文件代码。
scripts
用于配置内核文件的脚本文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: