一、内核
作为应用和硬件设备之间的桥梁,负责应用程序只与内核交互,不用关心硬件的细节。
4 个基本能力:
- 管理进程、线程,决定哪个进程、线程使用 CPU,也就是进程调度的能力;
- 管理内存,决定内存的分配和回收,也就是内存管理的能力;
- 管理硬件设备,为进程与硬件设备之间提供通信能力,也就是硬件通信能力;
- 提供系统调用,如果应用程序要运行更高权限运行的服务,那么就需要有系统调用,它是用户程序与操作系统之间的接口。
内核如何工作?
内存分为内核空间、用户空间。
内核空间:只有内核程序可以访问;
用户空间:专门给应用程序使用。
应用程序如果需要进入内核空间,就需要通过系统调用,下面来看看系统调用的过程:
用户程序使用系统调用时,会发生中断,CPU会中断用户程序,转而跳到中断处理程序也就开始执行内核程序,内核程序处理完毕后主动触发中断,CPU继续执行用户程序。
二、LINUX系统与WINDOWS系统的区别
对于内核的架构一般有这三种类型:
- 宏内核,包含多个模块,整个内核像一个完整的程序;
- 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理;
- 混合内核,是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序;
Linux 的内核设计是采用了宏内核,Window 的内核设计则是采用了混合内核。
这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE。
标签:硬件,调用,操作系统,笔记,学习,内核,用户程序,应用程序 From: https://www.cnblogs.com/coooookie/p/17660560.html