2018年(273)
分类: LINUX
2018-07-25 15:56:34
Unix/Linux的体系架构
如下图所示,从宏观上来看,Linux 操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。
系统调用是操作系统的最小功能单位,这些系统调用根据不同的应用场景可以进行扩展和裁剪,现在各种版本的 Unix 实现都提供了不同数量的系统调用,如 Linux 的不同版本提供了 240-260 个系统调用,FreeBSD 大约提供了 320 个(reference:UNIX 环境高级编程)。
我们可以把系统调用看成是一种不能再化简的操作(类似于原子操作,但是不同概念),有人把它比作一个汉字的一个“笔画”,而一个“汉字”就代表一个上层应用,我觉得这个比喻非常贴切。因此,有时候如果要实现一个完整的汉字(给某个变量分配内存空间),就必须调用很多的系统调用。如果从实现者(程序员)的角度来看,这势必会加重程序员的负担,良好的程序设计方法是:重视上层的业务逻辑操作,而尽可能避免底层复杂的实现细节。