本文由是阅读该文章做下的笔记。
CPU分内核与用户模式。
三言蔽之
内核模式下,应用可以直接存取内存,能够执行任何CPU指令。一般来说驱动运行在该模式下。
内核模式的应用一旦崩溃,整个操作系统都会崩溃。(所以驱动必须要非常稳定,否则蓝屏常在你身边)
用户模式就是我们一般应用所在的模式。用户模式下,应用想要存取硬件或者内存,必须通过系统API。由于与底层被隔离开来,所以用户模式下的应用崩溃通常不会影响到系统正常运行。
硬件决定
< 大专栏 CPU内核、用户模式p>内核模式和用户模式不是我们定义出来的在软件层面的一个概念,而是由CPU架构所决定的。通常CPU分为0~3总共四个层。其中我们一般用的是0层内核模式以及3层用户模式。1和2一般少用。
其中,又有人提出-1层,这就是我们平常说的x86硬件下的CPU虚拟化(手机模拟器一般都要开这个)。
驱动
驱动一般会运行在内核模式以及用户模式下。
以下为猜测:
在OpenGL渲染过程中,会在用户模式下维护一个命令队列,切换到内核模式后再一次性发送到驱动,由驱动发送给显卡。
切换代价
在用户模式和内核模式之间切换,是有代价的,而且代价十分大。