出版时间:2010-1 出版社:电子工业 作者:陆松年 页数:485
Tag标签:无
前言
《操作系统教程》一书出版已经9年了,在这期间Linux和Windows操作系统都有了较大的发展,但UNIX类操作系统在商用服务器领域中的地位还没有根本动摇,经典的uNIx系统相对于Linux和Windows操作系统来说系统稳定性更好,也较适合于教学。 这次修订的第3版以操作系统的基本原理、概念和应用为框架,以传统的UNIX为主线进行讲解。第3版增加了部分操作系统的内容,删去了一些不常用的应用与命令,并反映了操作系统的最新发展。 Solaris是目前使用最为广泛、最成功的商业UNIX实现版本,也是一个最安全和最稳定的商用操作系统。自2005年Sun公司正式推出其开源项目OpenSolaris以来,到目前为止已经完全开放了Solaris最新的内核源代码,而且还开放了Solaris的库、包管理和安装程序等。Sun公司宣布,OpenSolaris的开放源代码在由开放源代码促进会批准的“通用开发和发布许可协议”下提供,Sun将与OpenSolaris相关的专利免费提供给用户,而且用户有权保护在OpenSolaris源代码基础上开发的白有技术。如此,极大地促进了OpenSolaris社团组织的发展与壮大。OpenSolaris开源项目必将大大促进操作系统的研究与发展。 为了适应操作系统开源项目的最新发展,本书第3版在存储管理、进程管理、进程通信、设备管理和文件系统各章分别对Solaris操作系统中最有特色的相关的原理进行了介绍。在第14章“uNIx系统与网络系统程序设计”中还给出了Solaris门和RPC程序设计示例。此外该章还增加了uDP套接口编程。因此本版对操作系统在通信方面的应用有所加强。 针对目前使用人数最多的Windows操作系统,本书第7章中对Windows 2000/XP进行了全面的分析和介绍,对其系统结构、存储系统、进程/线程及处理器管理、I/O系统、文件系统和网络系统等方面的核心技术进行了较为深入的分析,对Windows 2003服务器操作系统平台的特性做了介绍。之后,对微软最新的服务器操作系统产品Windows Server 2008和最新发布的下一代桌面操作系统Windows 7也分别进行了介绍,重点分析了其对以前Windows版本的功能更新部分。本章还对x86平台操作系统虚拟化技术的基本原理进行了介绍,并以开源的Xen虚拟化技术为例说明了虚拟化的基本原理。这部分内容可以和本书前面的操作系统基本原理部分进行对照学习。 目前嵌入式系统已被广泛地应用于工业控制系统、通信设备和消费电子等众多领域,而32位嵌入式操作系统则是嵌入式系统最核心的技术之一。因此,计算机、电子、通信和自动化控制专业的学生除了要掌握通用操作系统的原理和应用技术之外,还必须对嵌入式操作系统有一定的了解。先进、成熟的Linux系统作为嵌入式操作系统代表了当前嵌入式技术领域发展的潮流和方向。本书第16章全面地介绍了嵌入式Linux系统的基本内容,如系统裁剪、软件开发与调试及实时化等,可作为嵌入式操作系统学习的基础材料和应用参考资料。 随着全球计算机信息化的发展,用户对信息服务的安全性提出了越来越高的要求。计算机信息系统的安全性主要依赖于其软件系统的安全性。由于操作系统是计算机软件系统中具有基础性、战略性和唯一控制硬件的关键软件,其安全职能是其他软件安全的根基。
内容概要
本书详细阐述了操作系统的基本原理、概念和应用,全书以传统的UNIX为主线进行讲解,而且还对 Windows 2000/XP/2008、最新推出的Windows 7、嵌入式Linux系统和操作系统安全进行了分析和介绍。本书共分3篇:第1篇介绍操作系统的基本原理及较常用的操作系统实例,如UNIX、Linux、Solaris、Windows 2000/XP/2003/Vista/2008/7等;第2篇介绍在UNIX和嵌入式Linux系统下的系统程序设计、应用开发工具及开发技术;第3篇介绍了UNIX系统管理和系统网络管理技术。
书籍目录
第1部分 原理篇 第1章 操作系统概论 1.1 什么是操作系统 1.2 操作系统的发展历史 1.2.1 早期的计算机和人工操作方式 1.2.2 脱机输入/输出和批处理系统 1.2.3 缓冲、中断和DMA技术 1.2.4 SPOOLING 1.2.5 多道程序设计 1.3 现代操作系统类型 1.3.1 分时系统 1.3.2 实时操作系统 1.3.3 微机操作系统 1.3.4 多处理机、分布式和网络操作系统 1.3.5 嵌入式操作系统和智能卡操作系统 1.4 操作系统的概念、特征和功能 1.4.1 作业和进程 1.4.2 操作系统的特征 1.4.3 操作系统的功能 1.5 UNIX操作系统概述 1.5.1 UNIX系统历史 1.5.2 Solaris操作系统 1.5.3 UNIX系统特点 1.5.4 UNIX系统基本结构 习题1 第2章 存储管理 2.1 存储管理基础 2.1.1 虚拟地址与物理地址 2.1.2 地址定位方式 2.2 基本存储管理方法 2.2.1 单一连续区存储管理 2.2.2 固定分区存储管理 2.3 可变分区存储管理 2.3.1 空闲存储区表 2.3.2 首次适应法 2.3.3 循环首次适应法 2.3.4 最佳适应算法 2.3.5 最差适应法 2.3.6 多重分区 2.4 内存扩充技术 2.4.1 覆盖 2.4.2 交换技术 2.4.3 虚拟存储器 2.5 纯分页的存储管理 2.5.1 分页存储管理的基本思想 2.5.2 地址变换 2.5.3 联想存储器和快表 2.5.4 空闲内存页的管理 2.6 请求分页系统 2.6.1 请求分页的基本原理 2.6.2 页面淘汰 2.7 段式存储管理 2.8 段页式存储管理 2.9 Linux存储管理 2.9.1 Linux存储管理的思想及特点 2.9.2 Linux中的页表 2.9.3 页面的分配和回收 2.9.4 存储映射与请求分页 2.9.5 页交换进程与页面的换入换出 2.10 Solaris存储管理 2.10.1 Solaris存储管理的体系结构 2.10.2 Solaris存储管理的新特性 2.10.3 Solaris存储管理 2.10.4 页面淘汰算法 习题2 第3章 进程管理 3.1 进程概述 3.1.1 进程的概念 3.1.2 进程的组成 3.1.3 进程的状态及其变化 3.2 进程控制块 3.3 调度 3.3.1 调度概述 3.3.2 进程调度策略 3.3.3 进程调度算法 3.4 UNIX系统的进程调度 3.4.1 进程的切换调度算法 3.4.2 切换调度程序 3.4.3 进程的对换调度 3.5 进程的控制 3.5.1 进程的阻塞 3.5.2 UNIX系统中的进程睡眠和唤醒 3.5.3 进程的终止和等待终止 3.6 进程的创建和图像改换 3.6.1 进程的创建 3.6.2 进程图像的改换 3.7 线程 3.7.1 进程和线程 3.7.2 多线程 3.7.3 线程的状态与功能 3.7.4 用户级和核心级线程 3.8 Linux进程管理 3.8.1 Linux进程结构 3.8.2 进程调度 3.8.3 进程使用的虚拟内存 3.8.4 创建进程 3.8.5 Linux的线程 3.9 Solaris进程和进程管理 3.9.1 Solaris进程和线程 3.9.2 Solaris进程和线程模型的演变 3.9.3 进程数据结构 3.9.4 内核线程数据结构 3.9.5 Solaris的线程调度 3.9.6 Solaris的线程应用示例 习题3 第4章 进程通信 4.1 进程的同步与互斥 4.1.1 同步与互斥的概念 4.1.2 临界段问题 4.2 进程间互斥控制方法 4.2.1 锁的表示和操作 4.2.2 锁的安全控制 4.2.3 用纯软件实现进程的互斥 4.3 信号量和semWait、semSignal操作 4.4 信号量的应用 4.4.1 利用信号量实现互斥 4.4.2 阻塞∕唤醒协议 4.4.3 两个进程间的同步 4.4.4 生产者和消费者问题 4.4.5 读者∕写者问题 4.4.6 管程 4.5 进程间的数据通信 4.5.1 消息通信 4.5.2 共享存储区 4.5.3 管道通信 4.6 软中断和信号机构 4.6.1 信号的产生与类型 4.6.2 信号的处理方式及设置 4.6.3 信号的传送 4.7 死锁 4.7.1 产生死锁的原因 4.7.2 产生死锁的条件 4.7.3 死锁的预防 4.7.4 死锁的避免 4.7.5 死锁的检测 4.7.6 死锁的解除 4.8 Linux进程间通信 4.8.1 信号 4.8.2 管道 4.8.3 IPC机制 4.9 Solaris的进程通信机制 4.9.1 Solaris的进程通信机制概述 4.9.2 Solairs信号机制 4.9.3 Solairs信号量 4.9.4 Solairs门 习题4 第5章 设备管理 5.1 概述 5.1.1 设备的概念和分类 5.1.2 I/O设备控制与驱动 5.1.3 设备管理的设计要求和任务 5.2 操作系统与中断处理 5.2.1 中断的基本概念 5.2.2 中断的类型 5.2.3 中断的响应和实现过程 5.2.4 中断处理程序和驱动程序 5.2.5 中断的返回与恢复 5.3 操作系统与时钟系统 5.3.1 时钟的概念 5.3.2 UNIX系统中的时钟管理 5.4 操作系统对I/O操作的控制 5.4.1 I/O设备的资源分配 5.4.2 I/O通道技术 5.4.3 I/O缓冲技术 5.4.4 设备的驱动 5.5 设备管理的数据结构 5.5.1 设备控制表 5.5.2 设备开关表 5.6 磁盘调度 5.6.1 物理特性 5.6.2 磁盘调度算法 5.6.3 系统设计应考虑的几个问题 5.6.4 独立磁盘冗余阵列 5.7 UNIX系统V的设备管理 5.7.1 块设备管理的主要数据结构 5.7.2 缓冲区管理 5.7.3 块设备管理 5.7.4 字符设备管理 5.8 设备分配 5.8.1 设备分配方式 5.8.2 设备分配的原则 5.9 Linux的设备管理 5.9.1 概述 5.9.2 设备驱动器与内核的接口 5.9.3 网络设备的管理 5.10 Solaris的I/O子系统 5.10.1 I/O子系统与内核的关系 5.10.2 设备文件与设备文件系统 5.10.3 设备树 习题5 第6章 文件系统 6.1 概述 6.1.1 文件的术语 6.1.2 文件的操作 6.1.3 文件的组织和存取 6.1.4 文件系统结构 6.2 文件目录 6.2.1 目录的内容 6.2.2 目录的结构 6.2.3 存取权限 6.2.4 并发存取控制 6.3 文件存储资源分配 6.4 文件的系统调用 6.4.1 文件的创建、打开、关闭和取消 6.4.2 文件的读/写 6.4.3 调整文件读/写位置lseek 6.4.4 创建任何类型文件mknod 6.4.5 其他的文件系统调用 6.5 文件的标准子例程 6.5.1 标准I/O的概念 6.5.2 流文件的打开和关闭 6.5.3 流文件的读写 6.5.4 调整和获取流文件的读写位置 6.5.5 格式输入与输出 6.5.6 流的单字符I/O操作 6.5.7 行的输入与输出 6.5.8 存储区中的格式转化 6.5.9 程序的执行 6.6 UNIX文件系统的内部结构 6.6.1 索引节点 6.6.2 文件索引结构 6.6.3 目录结构 6.6.4 打开文件结构 6.6.5 文件系统存储资源管理 6.7 管道文件和管道通信 6.7.1 管道通信概念 6.7.2 管道文件 6.7.3 管道的读写和关闭 6.7.4 有名管道 6.8 Linux文件系统 6.8.1 虚拟文件系统 6.8.2 Ext2文件系统 6.8.3 Ext3文件系统 6.9 Solaris文件系统 6.9.1 Sun虚拟文件系统模型 6.9.2 文件系统可恢复性 6.9.3 文件系统安全性 6.9.4 Solaris文件系统框架 6.9.5 ZFS文件系统的特点 习题6 第7章 Windows操作系统 7.1 Windows操作系统发展历程 7.1.1 Windows的开发过程及历史 7.1.2 Windows主要版本的特点 7.2 Windows 2000/XP 7.2.1 系统体系结构 7.2.2 存储系统 7.2.3 进程、线程及处理器管理 7.2.4 I/O系统 7.2.5 文件系统 7.2.6 网络系统 7.3 Windows Server 2008 7.3.1 系统概述 7.3.2 系统功能更新 7.4 下一代操作系统产品Windows 7 7.4.1 系统概述 7.4.2 系统功能更新 7.5 操作系统虚拟化技术 7.5.1 虚拟化技术概述 7.5.2 Xen虚拟化技术 7.5.3 其他虚拟化产品 7.6 小结 习题7 第8章 分布式和网络操作系统 8.1 分布式操作系统概述 8.2 网络通信机制 8.3 网络同步 8.4 网络操作系统 习题8 第9章 操作系统安全 9.1 操作系统的安全性 9.1.1 操作系统的安全需求 9.1.2 系统安全的评估与标准 9.1.3 Linux操作系统安全 9.1.4 Windows 2000操作系统安全 9.2 操作系统安全机制 9.2.1 标识与鉴别 9.2.2 可信路径 9.2.3 最小特权管理 9.2.4 访问控制 9.2.5 隐蔽通道检测与控制 9.2.6 安全审计 9.3 安全操作系统设计与实现 9.3.1 操作系统安全设计原理 9.3.2 安全策略 9.3.3 安全模型 9.3.4 安全体系结构 9.3.5 典型安全操作系统 习题9 第2部分 应用和开发篇 第10章 UNIX使用基础 10.1 登录和退出系统 10.2 Shell基础 10.2.1 Shell的家族 10.2.2 简单命令和命令表 10.2.3 标准输入和标准输出 10.2.4 输入/输出转向 10.2.5 后台命令与后台进程 10.2.6 管道 10.2.7 特殊字符 10.3 文件系统基本知识 10.3.1 文件的类型 10.3.2 目录结构 10.3.3 文件存取控制模式 10.3.4 目录存取方式 10.4 UNIX文件系统结构 10.4.1 根文件系统结构 10.4.2 /usr文件系统 习题10 第11章 UNIX实用程序 11.1 目录操作命令 11.1.1 显示工作目录(pwd命令) 11.1.2 改变工作目录(cd命令) 11.1.3 列目录内容(ls命令) 11.1.4 创建新目录(mkdir命令) 11.1.5 删除目录项(rmdir命令) 11.2 文件操作命令 11.2.1 复制文件(cp命令) 11.2.2 移动或重新命名文件(mv命令) 11.2.3 删除文件(rm命令) 11.2.4 文件的链接(ln命令) 11.2.5 符号链接(ln –s命令) 11.2.6 报告两个文件的差别(diff命令) 11.2.7 推测文件的类型(file命令) 11.2.8 查找文件(find命令) 11.2.9 改变文件的属主(chown命令) 11.2.10 改变文件的存取权限(chmod命令) 11.2.11 设置文件创建方式屏蔽码(umask命令) 11.3 显示和打印命令 11.3.1 回应命令行上的参数(echo命令) 11.3.2 连接并显示文件(cat命令) 11.3.3 分页显示(more命令和pg命令) 11.3.4 显示文件的头部(head命令)和尾部(tail命令) 11.3.5 打印文件(lp命令) 11.3.6 查看打印作业状态(lpstat命令) 11.3.7 取消一个打印作业(cancel命令) 11.3.8 格式化打印文件(pr命令) 11.3.9 卸出文件(od命令) 11.4 过滤器 11.4.1 正则表达式 11.4.2 排序或合并文件(sort命令) 11.4.3 抽取指定模式的行(grep命令) 11.4.4 流编辑程序(sed命令) 11.4.5 模式扫描和处理语言(awk) 11.4.6 裁剪指定的列(cut命令) 11.4.7 组合数据列(paste命令) 11.4.8 建立“三通”(tee命令) 11.5 设备操作 11.5.1 显示或设置日期和时间(date命令) 11.5.2 显示磁盘空间(df命令) 11.5.3 显示磁盘使用情况(du命令) 11.5.4 显示或设置终端参数(stty命令) 11.5.5 磁带归档(tar命令) 11.6 用户信息与进程控制 11.6.1 获取用户信息 11.6.2 显示进程状态(ps命令) 11.6.3 挂起一段时间(sleep命令) 11.6.4 统计一个作业的执行时间(time命令) 11.6.5 等待进程完成(wait命令) 11.6.6 杀死一个进程(kill命令) 11.6.7 忽略挂起和退出方法执行(nohup命令) 11.6.8 设置命令的执行环境(env命令) 11.7 压缩和解压缩 11.7.1 compress 11.7.2 zip 11.7.3 gzip 11.7.4 pack 11.8 其 他 命 令 11.8.1 联机手册(man命令) 11.8.2 检查拼写错误(spell命令) 11.8.3 文件加密crypt命令和des命令 11.8.4 规范化C程序格式(cb命令) 习题11 第12章 软件开发工具 12.1 文本编辑器vi 12.1.1 vi概要 12.1.2 屏幕编辑命令 12.1.3 底行命令 12.1.4 在vi程序中执行Shell命令 12.2 C编译系统 12.2.1 C编译基本过程 12.2.2 预处理程序 12.2.3 编译程序 12.2.4 汇编程序 12.2.5 连接/装入程序 12.2.6 一个使用cc的综合例子 12.3 库的维护 12.3.1 库的概念 12.3.2 库的维护 12.3.3 动态库 12.4 维护程序的程序(Make) 12.4.1 Make使用初步 12.4.2 Make的内部规则 12.4.3 Make中的宏 12.4.4 用Make维护库 12.4.5 一个综合例子 12.4.6 Make命令选项和参数 12.5 调试程序 12.5.1 调用sdb 12.5.2 sdb的调试命令 12.5.3 删除调试信息strip 12.6 源代码控制系统(SCCS) 12.6.1 创建SCCS的初始版本 12.6.2 提取一个版本 12.6.3 建立一个新版本 12.6.4 显示SCCS文件的历史 12.6.5 SCCS的版本号结构 12.6.6 ID关键字 12.6.7 其他的SCCS的命令 12.7 其他的软件开发工具 12.7.1 C程序检查器Lint 12.7.2 词法分析器和语法分析器 习题12 第13章 UNIX通信与万维网WWW 13.1 检查计算机的连接情况 13.2 获取远程用户信息 13.2.1 显示谁在本地计算机登录(rwho) 13.2.2 显示远程用户的信息(finger) 13.3 用户间通话 13.3.1 给用户发信息(write) 13.3.2 广播式的消息传送工具(Wall) 13.3.3 远程用户对话(talk) 13.4 远程登录和执行 13.4.1 基于UNIX系统的远程登录(RLogin) 13.4.2 通用的远程登录(telnet) 13.4.3 远程Shell(RSH) 13.5 远程文件复制和传输 13.5.1 远程文件复制(RCP) 13.5.2 文件传输(FTP) 13.6 万维网WWW和浏览器 13.6.1 超文本和超媒体 13.6.2 超文本传输协议HTTP 13.6.3 统一资源定位器URL 13.6.4 超文本标记语言HTML 13.6.5 Form与CGI 13.6.6 网站设计语言 13.6.7 WWW的浏览程序 习题13 第14章 UNIX系统和网络程序设计 14.1 文件系统程序设计 14.1.1 获取文件的状态 14.1.2 搜索目录树 14.2 用文件的系统调用实现进程通信 14.2.1 利用文件的系统调用实现信号量 14.2.2 利用管道实现进程间通信 14.3 高级进程间通信 14.3.1 消息通信 14.3.2 共享内存 14.3.3 信号量 14.4 远程进程间通信Socket 14.4.1 Socket通信概述 14.4.2 Socket系统调用 14.4.3 TCP套接字编程 14.5 UDP套接字编程 14.5.1 UDP 套接字的基本概念 14.5.2 UDP套接字基本函数 14.5.3 UDP数据报的编程示例 14.6 Solaris门通信 14.6.1 Solaris门的应用编程接口 14.6.2 Solaris门的基本通信示例 14.7 远程过程调用RPC 14.7.1 RPC概述 14.7.2 RPC服务地址获取 14.7.3 rpcgen编程指南 14.7.4 客户端身份验证 14.8 一个系统程序综合设计的例子 习题14 第15章 Shell程序设计 15.1 Shell程序和参数 15.1.1 Shell程序 15.1.2 Shell程序的位置参数 15.2 Shell变量 15.2.1 用户定义变量 15.2.2 系统定义变量 15.2.3 Shell定义变量 15.2.4 参数替换 15.2.5 引号机制 15.3 测试和求值 15.3.1 测试 15.3.2 求值 15.4 控制结构 15.4.1 顺序控制结构 15.4.2 if语句 15.4.3 case语句 15.4.4 for语句 15.4.5 while和until语句 15.4.6 break、continue、exit和return语句 15.5 递归和Shell函数 15.5.1 递归 15.5.2 Shell函数 15.6 Shell内部命令 15.7 Shell环境 15.8 Linux的BASH Shell 15.8.1 命令编辑和历史 15.8.2 别名和特征变量 15.8.3 BASH Shell的环境文件 习题15 第16章 嵌入式Linux操作系统 16.1 Linux与嵌入式操作系统 16.1.1 嵌入式系统的定义 16.1.2 嵌入式操作系统的特点 16.1.3 嵌入式Linux发展与应用 16.1.4 嵌入式Linux操作系统实现方法 16.2 嵌入式Linux操作系统构建 16.2.1 Linux系统的软件层次 16.2.2 裁剪编译内核 16.2.3 准备Root文件系统 16.2.4 Root文件系统裁剪 16.2.5 制作root文件系统映像 16.3 嵌入式Linux操作系统安装 16.3.1 嵌入式系统的启动 16.3.2 安装嵌入式系统引导程序 16.3.3 x86系统上嵌入式Linux映像安装 16.4 嵌入式Linux软件开发与调试 16.4.1 开发系统与目标系统 16.4.2 交叉编译环境 16.4.3 嵌入式Linux软件调试方法 16.5 嵌入式Linux操作系统实时性 16.5.1 嵌入式操作系统的实时性要求 16.5.2 Linux内核与实时性 16.5.3 嵌入式Linux实时化 技术 习题16 第3部分 系统和网络管理篇 第17章 UNIX系统管理 17.1 系统的启动和关闭 17.1.1 系统自举 17.1.2 系统的运行级 17.1.3 初始化程序执行的脚本(inittab) 17.1.4 系统初始化过程 17.1.5 系统的关闭 17.2 用户管理 17.2.1 用户管理涉及的文件 17.2.2 加入新用户的过程 17.2.3 添加用户命令(useradd) 17.2.4 删除用户的注册(userdel) 17.3 誊清(更新)系统缓冲区 17.4 检查和修复文件系统 17.5 构造、安装和拆卸文件系统 17.5.1 建立特别文件(mknod) 17.5.2 构造文件系统(mkfs) 17.5.3 安装文件系统(mount) 17.5.4 拆卸一个文件系统(umount) 17.6 定时运行程序 17.6.1 在指定时刻运行Shell程序(at) 17.6.2 时钟精灵(cron) 习题17 第18章 UNIX系统网络管理 18.1 配置TCP/IP 18.1.1 网络软件的安装 18.1.2 设置TCP/IP文件 18.1.3 设置监听程序 18.2 网络服务监控进程 18.3 域名服务系统 18.3.1 域名服务 18.3.2 域名系统 18.3.3 域名解析 18.3.4 逆向域名解析 18.3.5 DNS数据库 18.3.6 域名服务器的配置 18.4 网络文件系统NFS 18.4.1 NFS的概念和原理 18.4.2 NFS服务器的设置 18.4.3 NFS客户机的设置 18.5 电子邮政系统 18.5.1 邮件信箱 18.5.2 电子邮政设置文件 18.5.3 sendmail的设置文件 18.5.4 sendmail命令的参数 18.6 WWW服务器的配置 18.6.1 WWW服务 18.6.2 虚拟主机服务 18.6.3 代理服务器 习题18 附录A:参考文献
章节摘录
计算机系统由硬件和软件两部分组成。硬件是指人所看得见、摸得着的各种计算机部件,包括存储器、处理器、输入/输出设备及电源、机箱等。软件是指存在于计算机系统中或外存储器中的程序及数据的集合。仅有硬件而没有配备软件的计算机就如同一堆废物,只有在配备了软件后,计算机才能“活”起来,为用户解决各种各样的控制、处理和计算问题。 计算机软件分为系统软件和应用软件。系统软件是计算机厂商为了便于用户使用计算机而驻存在计算机硬件(如硬盘和软盘)内的系统支持程序,一般是连同计算机硬件一起出售的。主要的系统软件有操作系统、编译和解释程序、汇编程序、连接装入程序、编辑程序和设备驱动程序等。应用软件是用户为了专门的应用目的,向计算机厂商或其他软件商购买的或自己开发的解决某一类问题的软件,典型的有数据库管理软件、图像处理软件及各种CAD、CAI、办公软件和杀毒软件等。 在所有的系统软件中,操作系统是一种首要的、最基本的、最重要的系统,也是最庞大、最复杂的系统软件。几十年来,软件界花费了大量的时间和金钱来研究、开发、扩展和完善计算机操作系统,使其获得了飞速的发展。 1.1什么是操作系统 尽管“操作系统”(Operating Systems,OS)这个名称诞生至今已有了几十年的时间,计算机使用人员一般都知道它,但要对其下一个精确的定义并非轻而易举。很多论述操作系统的书籍从不同的角度对操作系统下了不同的定义,综合起来,通常把操作系统定义为用以控制和管理计算机系统资源,方便用户使用的程序和数据结构的集合。 1.系统观点——计算机资源管理 在计算机系统中,CPU是计算机硬件的核心,是计算机系统的心脏;操作系统则是计算机软件的核心,是计算机系统的大脑,是整个系统的控制中心,是计算机或智能控制管理系统中首要的、最重要的、最复杂的系统软件。 计算机系统中的主要硬件有CPU、控制器、内存及磁盘、闪存、键盘、鼠标、显示器、打印机、USB和网络接口等形形色色的外部设备。在计算机系统内运行的各个程序为了各自的“利益”,无时无刻地争夺这些有限而较为昂贵的资源。操作系统的作用类似于城市交通的决策、指挥、控制和调度中心,它组织和管理整个计算机系统的硬件和软件资源,在用户和程序之间分配系统资源,使之协调一致地、高效地完成各种复杂的任务。 现代计算机硬件设备种类越来越多,功能越来越强,控制和操作起来也越来越复杂。如果一个程序员要直接与打印机、磁盘等I/O设备打交道,那么就要对每一种设备编制几千、几万条机器指令,这不仅是用户力所不及的,对系统存储的信息来说,也是极其不安全的。
编辑推荐
每章后面都给出了精心设计的习题,合读者温故知新。全面、详细介绍了UNIX Linux Windows的原理,心及应用和开发。面向教学,立足实用。
图书封面
图书标签Tags
无
评论、评分、阅读与下载