首先,我们从日常生活中的一个小例子来了解接口的概念.....
图中的插座就是一个接口,插座的里面连接着线路,插座的外面连接着我们所使用的电器的插头。
有了插座以后,我们只需要把电器的插头 *** 插座,而不需要关注插座后面的复杂连接,便可以使用我们的电器了。
因此,我们很直观地认识到接口的含义:连接两个东西(插座建立了里面的线路和外面的插头的连接),屏蔽细节(插座里面连接的复杂线路用户不需要知道),方便用户使用(插上插座就能用)。
参考上述例子....
同理,操作系统接口也具有连接两个东西、屏蔽细节、方便用户使用的特点。它连接上层应用软件和底层硬件,屏蔽细节,用户直接通过程序(应用软件)使用计算机,方便用户使用。
如,我们只需要通过在键盘上敲一个hello的命令(程序代码),该命令通过操作系统的内部处理,处理后在显示屏上显示hello字样。操作系统就相当于一个黑盒子,我们无需关注内部实现,对外面的用户屏蔽其内部细节。
因此,我们普通用户是通过程序(应用软件)去使用计算机的,操作系统接口连接了硬件和应用软件。其实操作系统提供的接口也就是一行行的C语言程序,我们使用的软件去调用这些操作系统函数,完成对底层硬件的控制。
上端黑色表示是用户程序区,下端红色表示操作系统内核,操作系统内核有一个打印操作系统当前用户名的函数 print_user() ,用户程序通过调用该print_user() 函数,实现该用户程序在屏幕上打印出操作系统当前使用者名字的功能。其中,print_user()就是操作系统的接口,上层的用户程序通过调用该接口,该接口完成内部完成打印功能。
因此,这就是操作系统的接口了,它表现为函数调用,又由于它由操作系统提供,所以称为系统调用。
----因为操作系统内核存放着有关于操作系统、计算机软硬件等各种重要的数据,比如操作系统root用户的密码,如果我们直接访问系统内核,就可以随便看到root用户的密码,还可以去修改它,又比如通过内核里面的显存信息能看到别人word里内容,这样就不安全了,所以操作系统封装一些功能接口,然后让用户去调用这些接口而禁止用户直接访问内核中的数据。如果能直接访问就能去修改一些数据,就能随便查看一些敏感的数据,这样对用户不安全。
所以我们把内存分为了操作系统内核段和用户程序用户段,把在内核段执行的代码和数据称为处于内核态,把在用户段执行的代码和数据称为处于用户态,将内核程序和用户程序隔离!!!使得内核态可以访问任何数据,用户态不能访问内核段数据而只能访问用户段数据。
还是以上面那幅图来讲
上图为内存模型。
上端黑 *** 域为用户段,执行普通用户程序;下端红 *** 域为内核段,执行操作系统内核代码。
如果此时CPU在处理上端黑 *** 域的 main() 函数,那此时处于用户态,如果此时CPU在执行下端红 *** 域的 print_user() 函数,那此时处于内核态。
1)处于内核态可以访问用户段和内核段的数据。
2)处于用户态只能访问用户段的数据而不能访问内核段的数据。
那么如何区分内核态和用户态呢?
计算机采取了一种处理器的"硬件设计"去区分。完成这功能的要用到两个寄存器,分别是CPL寄存器和DPL寄存器。
CPL寄存器表示当前程序执行在什么态,0表示内核态,3表示用户态;
DPL寄存器表示即将访问的数据在什么段,同样0表示内核段,3表示用户段。
每次访问数据的时候检查两个寄存器的大小关系,若DPL≥CPL,则可以访问,反之,则不能访问。
一、例如当前程序运行在用户态,那么此时的CPL为3,若即将访问的数据在用户段(DPL为3),此时满足DPL≥CPL,可以访问(即用户态访问用户段数据),若即将访问的数据在内核段(DPL为0),则此时DPL
二、同理,假如当前程序运行在内核态,那么此时的CPL为0,因此无论即将访问的数据是处于内核段(DPL为0)还是用户段(DPL为3),都满足DPL≥CPL,因此处于内核态的程序可以访问任何数据。
好了,有关操作系统接口的内容到此为止讲述完毕,如果您觉得有什么问题的话欢迎在留言区留言,我们一起探讨交流吧!
相信大家对于YUN OS的消息听得很多了吧,到处都在讨论,有人说它只是一个UI,有人说他就像MIUI一样,还是安卓系统,小编今天就深度给大家解析这个问题。 阿里云OS属于操作系统,它不是基于...
操作系统有哪些(电脑操作系统都有哪些?有什么特点?) 电脑操作系统都有哪些?说到操作系统,很多小白用户只知道 windows 和苹果系统,少有人知道 linux 系统吧,那么电脑操作系统到了今...
自美国将华为列入管制“实体清单”之后,国内一众企业对于自主研发的重视程度便与日俱增,在这种背景下,国人自己的操作系统也应运而生。不论是定位商业使用的国产统一操作系统UOS,亦或是专注自研的深度操作系统...
12个简单步骤让你成为黑客 黑客是在这十年最热门的职业之一,但不要把它作为一件容易的事。您必须拥有计算机系统,编程语言,操作系统深刻的认识。有些人认为,黑客永远是一个违法的事情...
什么是操作系统(操作系统入门)操作系统环境 程序中包含着运行环境这一内容,可以说 运行环境 = 操作系统 + 硬件 ,操作系统又可以被称为软件,它是由一系列的指令组成的。我们不介绍操作系统,我们主要...
网络操作系统都有哪些,网络操作系统的主要功能是什么。 网络操作系统可以处理海量并发通信,使节点拥有上千的通信并发度,同一时间内通信接口需要处理数千个通信请求。同时网络带宽快速增长...