UNIX分层设计是其哲学体系的集中体现,理解其指导思想有助于拓展其它复杂系统的设计思路。
我对UNIX整个设计层次理解如下:
=-------------------------------------------------------------
二进制:硬件(CPU、内存、外储、外设等)
=-------------------------------------------------------------
二进制:内核(驱动、调度、内存管理、文件系统等)
=-------------------------------------------------------------
二进制:守护进程(服务进程、机器交流接口等)
=-------------------------------------------------------------
二进制:基础运行层(运行时库、虚拟机等)
=-------------------------------------------------------------
文 本:Shell胶合层(开发套件、实用程序、人机界面等)
=-------------------------------------------------------------
文 本:应用层(环境设定、应用脚本、服务配置等)
=-------------------------------------------------------------
图 形:可视化层(图形人机界面)
=-------------------------------------------------------------
一)内核与守护进程强调高效、稳定、持久,故采用二进制设计实现。这二者构成最基础的机制层。
·内核实现以下功能:
1. 按任务分配和派生关系组织各个进程,监控进程之间(信号机制)、进程组与终端之间(终端登录机制)的通信;
2. 通过统一的文件系统架构,屏蔽掉设备差异并暴露出正交、紧凑的通信API,提供三个层次的引用句柄(inode、vnode、fd);
3. 在虚拟文件系统上加上引用机制(软硬链接)、访问权限机制。
·守护进程实现以下功能:
1. 设备监控管理;
2. 系统监控管理;
3. 特定服务(信息交换接口)。
二)基础运行层提供各种运行时支持,如函数库、虚拟机环境。为了保证高效率,这一层仍然使用二进制设计实现。
三)Shell胶合层提供基础人机交互界面、必要的程序粘合接口,以及扩展基础运行层的开发机制。这一层开始大量使用文本设计实现,注重可读性、可写性、可移植性,极力提升开发效率、维护效率,尊重变化、拥抱变化。内核层与守护进程层均提供实用工具供Shell操作员使用,以调优、监管系统。
四)应用层提供各种程序执行环境设定、用户操作环境设定、服务执行配置等,仍然强调文本化、高操作效率、高理解性。
五)可视化层属于可选部分,为终端用户提供自然、符合人类理解逻辑的人机交互界面,注重易操作性、美观、舒适。
纵观整套UNIX结构体系,会发现处处均有“机制/策略”的分层式设计。如提供“统一文件访问机制”与“不同文件系统实现策略”,“用户登录Shell机制”与“选择登录Shell策略”,“环境信息设定机制”与“环境信息设定策略”等等。
将机制与策略分开,固化基本恒定不变的机制部分,灵活实现可替换的、经常变化的策略部分,是UNIX分层设计的核心思想。
本文详细阐述了UNIX操作系统的分层设计理念,从硬件到应用层逐层剖析。内核负责进程管理、统一文件系统及设备驱动,守护进程处理系统监控和服务。基础运行层提供运行时库和虚拟机支持,Shell层作为人机交互接口,强调文本可读性和效率。应用层关注环境配置和服务设定,而可视化层则为人机交互提供图形界面。整个设计体现机制与策略分离的思想,确保系统稳定且易于扩展。
445

被折叠的 条评论
为什么被折叠?



