Linux内核入门


目录
  • Linux内核入门
    • 什么是Linux内核
      • 定义
      • 作用
      • 内核空间和用户空间
      • 内核态和用户态
      • 如何理解内核在操作系统中的位置
    • 如何查看当前系统中的内核信息

Linux内核入门

由于最近新买的无线网卡的驱动对Linux内核版本有要求,因此为了不白花这一笔钱,我不得不想办法给Linux内核进行降级,在这个过程中,对Linux的内核也有了一点入门的理解,在此稍作记录,以后希望能够更加深入地进行了解.

什么是Linux内核

定义

Linux内核是Linux操作系统的主要组件,也是计算机硬件与进程之间的核心接口,它负责两者之间的通信,还要尽可能高效地管理资源,它控制着硬件的所有主要功能.

作用

内核主要有四项工作:

  1. 内存管理: 追踪和记录内存存储了什么以及存储在哪里
  2. 进程管理: 确定哪些进程可以使用CPU,何时使用以及持续多长时间,也可以称为进程调度
  3. 设备驱动程序: 充当硬件和进程之间的解释程序
  4. 系统调用和安全防护: 为进程提供系统调用,使其可以使用一些硬件资源.

内核空间和用户空间

在一般情况下,内核对于用户是不可见的,如果用户可以轻易操作内核,很容易造成系统的崩溃.内核一般在自己的小世界(内核空间)中工作,并从中分配内存和跟踪其中所有内容的存储位置,用户所看到的内容(如web浏览器和文件)则被称为用户空间,这些应用通过系统调用接口(SCI)与内核进行交互,内核空间和用户空间是对于内存而言的一个抽象概念,是内核进程与用户进程在内存上的一种分隔.

内核态和用户态

系统执行的代码通过以下两种模式在CPU上运行:内核态和用户态,在内核态下运行的代码可以不受限制地访问硬件,而用户态的代码则会限制SCI对CPU和内存的访问,也就是说,内核态和用户态是在CPU层面上的一种分隔.

这两种分隔机制构成了一些复杂操作的基础,如安全防护,构建容器和虚拟机的权限分隔等

如何理解内核在操作系统中的位置

为了更具象地理解内核,不妨将Linux计算机想象成具有三层结构:

  1. 硬件:物理机是由RAM,CPU,I/O(例如存储,网络和图形)组成.其中CPU负责执行计算和内存的读写操作
  2. Linux内核: 处于操作系统的核心位置,驻留在内存中的软件,用于告诉CPU要执行哪些操作.
  3. 用户进程: 这些是内核所管理的运行程序,用户进程共同构成了用户空间,内核还允许这些进程和服务器彼此进行通信,称为进程间通信或IPC

此部分内容参阅:
https://www.redhat.com/zh/topics/linux/what-is-the-linux-kernel

如何查看当前系统中的内核信息

Linux中有许多查看内核信息的方法,在这里介绍三种:

  1. uname
    uname -r可以输出内核版本的简略信息, uname -a可以输出详细的的内核版本信息.
  2. 用/proc/version文件查找Linux内核
    通过 cat /proc/version可以查看当前Linux系统内核信息
  3. 使用dmesg命令查找Linux内核版本
    dmesg是用于编写内核消息的功能强大的命令,在获取系统信息时也非常有用,dmesg提供的信息很多,但由于我们只是需要查看Linux的内核版本,因此,对结果进行grepping来找到需要的输出.
    dmesg | grep Linux
    输出的结果只有几行,可以从中很轻松地找到内核的版本信息