一张图看懂Linux内核

1. 前言
本文主要讲解什么是linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么是Linux内核,能看懂Linux内核 。
拥有超过1300万行的代码,Linux内核是世界上最大的开源项目之一,但是内核是什么,它用于什么?

一张图看懂Linux内核

文章插图
一张图看懂Linux内核

一张图看懂Linux内核

文章插图
Linux内核是什么
【一张图看懂Linux内核】2. 什么是内核
内核是与计算机硬件接口的易替换软件的最低级别 。它负责将所有以“用户模式”运行的应用程序连接到物理硬件,并允许称为服务器的进程使用进程间通信(IPC)彼此获取信息 。
3. 内核还要分种类?
是的,没错 。
3.1 微内核
微内核只管理它必须管理的东西:CPU、内存和IPC 。计算机中几乎所有的东西都可以被看作是一个附件,并且可以在用户模式下处理 。微内核具有可移植性的优势,因为只要操作系统仍然试图以相同的方式访问硬件,就不必担心您是否更改了视频卡,甚至是操作系统 。微内核对内存和安装空间的占用也非常小,而且它们往往更安全,因为只有特定的进程在用户模式下运行,而用户模式不具有管理员模式的高权限 。
一张图看懂Linux内核

文章插图
微内核
3.1.1 Pros
  • 可移植性
  • 安装占用空间小
  • 小内存占用
  • 安全
3.1.2 Cons
  • 通过驱动程序,硬件更加抽象
  • 硬件可能反应较慢,因为驱动程序处于用户模式
  • 进程必须在队列中等待才能获得信息
  • 进程不能在不等待的情况下访问其他进程
3.2 单内核
单内核与微内核相反,因为它们不仅包含CPU、内存和IPC,而且还包含设备驱动程序、文件系统管理和系统服务器调用等内容 。单内核更擅长于访问硬件和多任务处理,因为如果一个程序需要从内存或运行中的其他进程中获取信息,那么它就有一条更直接的线路来访问信息,而不需要在队列中等待来完成任务 。但是,这可能会导致问题,因为在管理模式下运行的东西越多,如果行为不正常,就会有越多的东西导致系统崩溃 。
一张图看懂Linux内核

文章插图
单内核
3.2.1 Pros
  • 更直接地访问程序的硬件
  • 流程之间更容易通信
  • 如果支持您的设备,它应该不需要额外安装就可以工作
  • 进程反应更快,因为没有等待处理器时间的队列
3.2.2 Cons
  • 较大安装体积
  • 较大内存占用
  • 不太安全,因为所有操作都在管理模式下运行

一张图看懂Linux内核

文章插图
内核对比monolithic_vs_microkernel
4. 混合的内核
混合内核能够选择在用户模式下运行什么,以及在管理模式下运行什么 。通常情况下,设备驱动程序和文件系统I/O将在用户模式下运行,而IPC和服务器调用将保持在管理器模式下 。这是两全其美,但通常需要硬件制造商做更多的工作,因为所有驱动程序的责任都由他们来承担 。它还可能存在一些与微内核固有的延迟问题 。
一张图看懂Linux内核

文章插图
混合的内核
4.1 Pros
  • 开发人员可以选择什么在用户模式下运行,什么在管理模式下运行
  • 比单片内核更小的安装占用空间
  • 比其他型号更灵活
4.2 Cons
  • 会遭受与微内核相同的进程延迟
  • 设备驱动程序需要由用户管理(通常)
5. Linux内核文件在哪里
Ubuntu中的内核文件存储在/boot文件夹中,称为vmlinux -version 。vmlinuz这个名字来自于unix世界,早在60年代,他们就把内核简单地称为“unix”,所以当内核在90年代首次开发时,Linux就开始把内核称为“Linux” 。
一张图看懂Linux内核

文章插图
Linux内核文件在哪里
当开发虚拟内存以便更容易地进行多任务处理时,将“vm”放在文件的前面,以显示内核支持虚拟内存 。有一段时间,Linux内核被称为vmlinux,但是内核变得太大,无法装入可用的引导内存,因此压缩了内核映像,并将末尾的x更改为z,以显示它是用zlib压缩的 。并不总是使用相同的压缩,通常用LZMA或BZIP2替换,一些内核简单地称为zImage 。


推荐阅读