2、硬件和操作系统

什么是操作系统

电脑或者服务器启动起来以后,所有的事情都由它负责,它就是操作系统(OS)。
操作系统也算是一个软件,它是所有软件中的老大。一边管理硬件,一边提供软件方面的接口。

操作系统主要工作:

内核概念

操作系统分2层,最核心的那一块叫内核,内核最主要的作用是管理硬件,其他不重要的大多都是是外围的应用程序打交道的。

内核有2种模式:宏内核 和 微内核

  • 宏内核
    就是说所有相关的程序都装在了一块

  • 微内核(手机,比如鸿蒙系统)
    微内核只有一个功能就是 进程调度

二者区别
宏内核:
比如让操作系统去读取一个内容,内核就直接去读取硬盘上面的内容了。
微内核:
同样让操作系统去读取一个内容,内核不一定有,它要去另一个地方,比如文件系统里去找对应的任务,甚至通过网络,然后返回给内核,内核再给进程调度。
所以微内核的缺点就是速度稍慢,但如果是资源特别小,影响不是很大,如果是一个sin卡,只需要部署一个kernel,如果资源更大,那就叫再加上部署一个cpu调度,所以特别灵活,称为弹性部署。所以,万物互联。
针对于5G、手机、PC、平板、车辆、智能穿戴等等,都可以进行部署。这些都是基于一个基础概念:微内核。

外核概念

外核相对于内核来说,没有那么重要,目前市场上也很少有外核相关的,一般在大学里面搞科研的才有。外核是针对于内核的二次开发。
比如在内核基础上针对于办公的或者上网的,开发出来的外核,会让你上网感觉到非常爽。
如果拿JVM来举例子的话,比如GC回收垃圾的时候要通过GCRoots判断哪些对象要回收。但如果是每次通过不同的请求,在内存分配一块空间,请求结束,这块空间就直接清理,就不用去寻找哪些是垃圾对象了。(阿里的人应该都很了解这个吧~)

CPU指令级别

早期的windows系统是没有用户界面的,也是和linux系统一样,是通过dos窗口输入命令的,那个时候用户是可以随意的执行操作系统干任何事,所以是机器不安全的,太随意了。
所以后来给指令分配了级别,linux只采用了0和3,也就是内核态和用户态。
linux内核跑在ring 0级(也就对应这内核态), 用户程序跑在ring 3(也就是用户态),对于系统的关键访问,需要经过kernel的同意,也就是要切换成内核态,才可以执行某些操作,所以它可能会不停的切换,这样保证系统健壮性。

posted @ 2021-12-13 14:32  aBiu--  阅读(250)  评论(0编辑  收藏  举报