操作系统基础知识学习

操作系统基础知识

宏内核

简单来说,就是把很多东西都集成进内核,例如我们常用的linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议,CPU调度等等都在内核里面。

优点:由于用户服务和内核服务被实现在同一空间中,这样在执行速度上要比微内核快。

缺点:宏内核的劣势也是显而易见的,那就是当内核中的某个服务崩溃了,整个内核也会崩溃。
操作系统基础知识学习

微内核

在微内核中,大部分内核都作为单独的进程在特权状态下运行,他们通过消息传递进行通讯。微内核部分经常只但是是个消息转发站:当系统调用模块要给文档系统模块发送消息时,消息直接通过内核转发。这种方式有助于实现模块间的隔离。

优点:内核只是消息转发站,其他比如文件系统等出现问题不会影响内核。在需要的情况下部分可以是集群。

缺点:模块之间通过消息传递进行通讯。这样一来,微内核中的执行速度相对就比较慢了,这是微内核架构的一个缺点。

PS:华为在微内核领域比较突出,首先推出商用版。
操作系统基础知识学习

外核

由应用程序而不是操作系统管理硬件资源。这时进程间通信、虚拟内存管理等抽象概念都是单个应用实现的。

操作系统基础知识学习

VMM

Hypervisor——一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor )。一般已经太高的机器可能会采用。比如一台(128cpu*8核心+2T内存的计算机),单个操作系统已经无法发挥最大性能。

操作系统基础知识学习

操作系统怎么启动的?

操作系统基础知识学习

中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。软中断之有一个0x80,也叫80中断。

比如我们输入键盘,立刻就会有回应,这时系统就执行了中断来进行立即响应。

操作系统基础知识学习

内核态与用户态

内核态与用户态是操作系统的两种运行级别,intel cpu提供Ring0-Ring3三种级别的运行模式,Ring0级别最高,Ring3最低。Linux使用了Ring3级别运行用户态,Ring0作为内核态,没有使用Ring1和Ring2。操作系统访问在0的级别上。应用开发的在3的级别上。linux只用到了0和3。

PS:

  • 以前的dos操作系统允许程序直接操纵硬件。

  • 现在的操作系统不允许直接操纵硬件。只有操作系统可以直接访问硬件。
    操作系统基础知识学习

进程和线程的区别

进程是分配资源的单位,线程是执行资源的单位。

进程启动时,操作系统需要为进程分配内存空间。线程是进程申请开启的执行资源的单位,线程共用进程的操作资源。

操作系统访问在0的级别上。应用开发的在3的级别上。linux只用到了0和3。

什么是纤程?

一个线程里面模拟开通线程,并行执行的任务就是纤程也叫协程。

为什么要用纤程

在JVM里面启动一个线程,前后大概要1M左右。JVM本身自己不能启动线程,需要操作系统。

为什么和内核态打交道效率就低?

操作系统基础知识学习
PS:80中断。返回值放到eax寄存器里面。

如何模拟纤程

操作系统基础知识学习

计算机基本硬件单元

操作系统基础知识学习

程序的本质

程序的本质是一堆的指令。
操作系统基础知识学习