linux unix编程思想,[心得] UNIX分层设计

本文详细阐述了UNIX操作系统的分层设计理念,从硬件到应用层逐层剖析。内核负责进程管理、统一文件系统及设备驱动,守护进程处理系统监控和服务。基础运行层提供运行时库和虚拟机支持,Shell层作为人机交互接口,强调文本可读性和效率。应用层关注环境配置和服务设定,而可视化层则为人机交互提供图形界面。整个设计体现机制与策略分离的思想,确保系统稳定且易于扩展。

UNIX分层设计是其哲学体系的集中体现,理解其指导思想有助于拓展其它复杂系统的设计思路。

我对UNIX整个设计层次理解如下:

=-------------------------------------------------------------

二进制:硬件(CPU、内存、外储、外设等)

=-------------------------------------------------------------

二进制:内核(驱动、调度、内存管理、文件系统等)

=-------------------------------------------------------------

二进制:守护进程(服务进程、机器交流接口等)

=-------------------------------------------------------------

二进制:基础运行层(运行时库、虚拟机等)

=-------------------------------------------------------------

文 本:Shell胶合层(开发套件、实用程序、人机界面等)

=-------------------------------------------------------------

文 本:应用层(环境设定、应用脚本、服务配置等)

=-------------------------------------------------------------

图 形:可视化层(图形人机界面)

=-------------------------------------------------------------

一)内核与守护进程强调高效、稳定、持久,故采用二进制设计实现。这二者构成最基础的机制层。

·内核实现以下功能:

1. 按任务分配和派生关系组织各个进程,监控进程之间(信号机制)、进程组与终端之间(终端登录机制)的通信;

2. 通过统一的文件系统架构,屏蔽掉设备差异并暴露出正交、紧凑的通信API,提供三个层次的引用句柄(inode、vnode、fd);

3. 在虚拟文件系统上加上引用机制(软硬链接)、访问权限机制。

·守护进程实现以下功能:

1. 设备监控管理;

2. 系统监控管理;

3. 特定服务(信息交换接口)。

二)基础运行层提供各种运行时支持,如函数库、虚拟机环境。为了保证高效率,这一层仍然使用二进制设计实现。

三)Shell胶合层提供基础人机交互界面、必要的程序粘合接口,以及扩展基础运行层的开发机制。这一层开始大量使用文本设计实现,注重可读性、可写性、可移植性,极力提升开发效率、维护效率,尊重变化、拥抱变化。内核层与守护进程层均提供实用工具供Shell操作员使用,以调优、监管系统。

四)应用层提供各种程序执行环境设定、用户操作环境设定、服务执行配置等,仍然强调文本化、高操作效率、高理解性。

五)可视化层属于可选部分,为终端用户提供自然、符合人类理解逻辑的人机交互界面,注重易操作性、美观、舒适。

纵观整套UNIX结构体系,会发现处处均有“机制/策略”的分层式设计。如提供“统一文件访问机制”与“不同文件系统实现策略”,“用户登录Shell机制”与“选择登录Shell策略”,“环境信息设定机制”与“环境信息设定策略”等等。

将机制与策略分开,固化基本恒定不变的机制部分,灵活实现可替换的、经常变化的策略部分,是UNIX分层设计的核心思想。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值