Unix和Windows NT体系结构的比较
Unix 和 Windows NT 体系结构的比较 1.Linux 系统结构与 Unix 系统相似Linux 系统大致可分为三层靠近硬件的底层是内核即 Linux 操作系统常驻内存部分中间层是内核之外的Shell 层亦即操作系统的系统程序部分最高层是应用层即用户程序部分包括各种正文处理程序、语言编译程序以及游戏程序等。如图 1 所示。图 1 Linux 系统结构内核是 Linux 操作系统的主要部分它实现进程管理、内存管理、文件系统、设备驱动和网络系统等功能从而为核外的所有程序提供运行环境。从结构上看Linux 操作系统是采用单块结构的操作系统。就是说所有的内核系统功能都包含在一个大型的内核软件之中。当然Linux 系统也支持可动态装载和卸载的模块。利用这些模块可以方便地在内核中添加新的组件或卸载不再需要的内核组件。Linux 内核结构的框图如图 2 所示。图 2 Linux系统核心框图图 2 展示出三个层次用户层、核心层和硬件层。一般说来可以将操作系统划分为内核和系统程序两部分。系统程序及其它所有的程序都在内核之上运行它们和内核之间的接口由操作系统提供的一组"抽象指令"定义这些抽象指令称为"系统调用"。 系统调用看起来像 C 程序中的普通函数调用。所有运行在内核之上的程序可分为系统程序和用户程序两大类但它们统统运行在"用户模式"之下。内核之外的所有程序必须通过系统调用才能进入操作系统的内核。内核程序在系统启动时被加载然后它会初始化计算机硬件资源并开始 Linux 的启动过程。进程是程序的一次执行过程。进程控制系统用于进程管理、进程同步、进程通信、进程调度和内存管理等。程序以文件(源文件、可执行文件等)形式存放unix系统结构。可执行文件装入内存准备执行时进程控制系统与文件系统相互作用用可执行文件更换子进程的映像。进程是系统中的动态实体。控制进程的系统调用包括进程的创建、终止、执行、等待、空间扩充及信号传送等。进程调度模块为进程(线程)分配 CPU。Linux 系统的进程调度算法采用抢占式优先级法将进程划分为实时进程和非实时进程实时进程的优先级高于非实时进程。Linux 系统支持多种进程通信机制其中最常用的是信号、管道及 Unix 系统支持的 System VIPC 机制等。内存管理控制内存分配与回收。系统采用两种策略管理内存交换和请求分页。根据系统中物理内存空间的使用情况进程映像在内存和辅存(磁盘)之间换入/换出利用请求分页技术提供虚拟存储器。 文件系统来管理文件、分配文件空间、管理空闲空间、控制对文件的访问并为用户检索数据。进程通过一组特定的系统调用(如 open、close、read、write、chmod 等)与文件系统交互作用。Linux 系统中使用了虚拟文件系统 VFS从而允许 Linux 支持多种不同的文件系统每个文件系统都要提供给 VFS 一个相同的接口。文件系统利用缓冲机制访问文件数据。缓冲机制与块设备驱动程序相互作用以启动从核心向块设备写数据或者从块设备向核心传送(读)数据。Linux 系统支持三种类型的硬件设备字符设备、块设备和网络设备。Linux 系统和设备驱动程序之间使用标准的交互接口。这样内核可以用同样的方法来使用完全不同的各种设备。核心底层的硬件控制负责处理中断及与机器通信。外部设备(如磁盘或终端等)在完成某个工作或遇到某种事件时会中断CPU 执行由中断处理系统进行相应分析、处理。处理之后将恢复被中断进程的执行。2.Unix 系统结构由于 Linux 是 Unix 发展的一个分支所以二者的体系结构有很多相似之处。为便于读者了解相关情况下面给出 Unix System V 内核的结构框图见图 3。 图 3 Unix System V 系统核心框图从图 3 中看出Unix 核心可视为左、右两大部分左边是文件系统部分右边是进程控制系统部分。文件系统部分涉及操作系统中各种信息的保存通常都是以文件形式存放的它相当于核心的"静态"部分。进程控制系统部分涉及操作系统中各种活动的调度和管理通常以进程形式展现其生命活力相当于核心的"动态"部分。"静态"和"动态"两部分存在密切联系。图 3 展示出了 Unix 的用户层、核心层和硬件层三个层次。库函数和系统调用的接口代表用户程序和核心之间的界线。库函数通过系统调用才能进入操作系统。3.Windows NT 体系结构 Windows NT的体系结构是分层的模块系统如图 4 所示。主要的层次有硬件抽象层 HAL、内核、执行体和大量的子系统集合。前面三个都运行在保护模式下而各子系统都在用户模式下运行。子系统又可分为环境子系统和保护子系统两类其中环境子系统仿真不同的操作系统保护子系统提供安全功能。图 4 Windows NT结构框图上面列出了 Linux、Unix 和 Windows 的体系结构。从图中可以看出Linux 与 Unix 的体系结构基本相同。 这也不奇怪因为 Linux 本来就是 Unix大家族的一个新成员。这种层次结构使得核心执行的效率高结构关系清晰易于移植、开发和维护在设计实现上也带来方便。Windows NT 采用客户/服务器模型在核心中应用微内核技术采用对象管理方式统一处理内部所有事务这些是新一代操作系统的设计技术。然而商业化运作的特性使得新技术的普及应用受到影响代码的保密、安全漏洞的不断出现也影响了 Windows NT 在政府的采购和重要部门的应用。 (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |