UNIX体系架构

unix体系架构

内核态(内核)
内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境

用户态(用户空间)
上层应用程序的活动空间,依托内核提供的资源,包括CPU资源、存储资源、I/O资源等
为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问的接口:即系统调用。

系统调用:是操作系统的最小功能单位

库函数:对系统调用的封装,将简单的业务逻辑接口呈现给用户,方便用户调用

Shell:通常充当着一种“胶水”的角色,来连接各个小功能程序

打个比方:系统调用比作“笔画”,库函数比作“偏旁”,上层应用比作“汉字”


特权
为了减少有限资源的访问和使用冲突,Unix/Linux的设计哲学之一就是:
对不同的操作赋予不同的执行等级,就是所谓特权的概念
Intel的X86架构的CPU提供了0到3四个特权级,Linux操作系统中主要采用了0和3两个特权级,分别对应的就是内核态和用户态

从用户态切换到内核态:
malloc(),调用的是sbrk()系统调用来分配内存,当malloc调用sbrk()的时候就涉及一次从用户态到内核态的切换,
printf(),调用的是wirte()系统调用来输出字符串

https://www.cnblogs.com/bakari/p/5520860.html

 

原文地址:https://www.cnblogs.com/stellar/p/8391332.html