当前位置: 首页 > 科技观察

Linux内核究竟是什么?2000多字精华讲解

时间:2023-03-17 09:59:37 科技观察

1.前言本文主要讲解什么是Linux内核,并通过多张图片展示Linux内核的功能和作用,让读者快速了解什么是Linux内核,能够了解Linux内核。Linux内核拥有超过1300万行代码,是世界上最大的开源项目之一,但内核是什么,它有什么用?一张图看懂Linux内核什么是Linux内核2.什么是内核内核是与计算机相关的硬件接口的最低级别的可互换软件。它负责将所有以“用户模式”运行的应用程序连接到物理硬件,并允许称为服务器的进程使用进程间通信(IPC)相互获取信息。3.是否有不同类型的内核?恩,那就对了。3.1微内核微内核只管理它必须管理的东西:CPU、内存和IPC。计算机中的几乎所有东西都可以被认为是附件,可以在用户模式下处理。微内核具有可移植性的优势,因为您不必担心是否更换视频卡,甚至操作系统,只要操作系统仍在尝试以相同的方式访问硬件即可。微内核在内存和安装空间上的占用空间也非常小,而且它们往往更安全,因为只有某些进程在用户模式下运行,没有管理员模式的高权限。微内核3.1.1优点可移植性小安装占用空间小内存占用小安全性3.1.2缺点硬件通过驱动程序更抽象硬件响应速度可能较慢,因为驱动程序处于用户模式??进程必须在队列中等待以获取信息进程无法访问其他进程waiting3.2单内核单内核与微内核相反,因为它们不仅包含CPU、内存和IPC,还包含设备驱动程序、文件系统管理和系统服务器调用等内容。单核更擅长访问硬件和多任务处理,因为如果程序需要从内存或其他正在运行的进程获取信息,它有更直接的线路来访问信息,而无需排队等待任务完成。但是,这可能会导致问题,因为您在管理员模式下运行的东西越多,您拥有的东西就越多,如果它行为不当可能会导致系统崩溃。单核3.2.1优点更直接地访问程序的硬件进程之间的通信更容易如果您的设备支持它,它应该不需要额外的安装即可工作进程响应更快,因为没有等待处理器时间的队列3.2.2缺点更大的安装尺寸更大的内存占用不安全,因为一切都在管理员模式下运行Kernelvs.monolithic_vs_microkernel4。MixedKernel混合内核可以选择什么在用户模式下运行,什么在管理员模式下运行。通常,设备驱动程序和文件系统I/O将在用户模式下运行,而IPC和服务器调用将保持在管理器模式下。这是两全其美的方法,但通常需要硬件制造商做更多的工作,因为所有驱动程序的责任都落在他们身上。它也可能有一些微内核固有的延迟问题。混合内核4.1优点开发人员可以选择在用户模式下运行什么和在管理员模式下运行比单一内核更小的安装占用空间比其他模型更灵活4.2缺点与微内核具有相同的进程延迟设备驱动程序程序需要由用户管理(通常)5.Linux内核文件在哪里Ubuntu中的内核文件存放在/boot文件夹中,名称为vmlinux-version。vmlinuz这个名字来自unix世界,回到60年代他们简单地称内核为“unix”,所以当内核在90年代首次开发时,Linux开始称内核为“Linux”。Linux内核文件在哪里在开发虚拟内存以便于多任务处理时,将“vm”放在文件的前面,以表明内核支持虚拟内存。有一段时间Linux内核被称为vmlinux,但内核变得太大而无法容纳可用的引导内存,因此内核映像被压缩并且末尾的x更改为z以表明它是用zlib压缩的。并不总是使用相同的压缩,通常由LZMA或BZIP2代替,一些内核简称为zImage。版本号将采用A.B.C.D格式。B可能是2.6,C是您的版本,D是您的补丁或补丁。linux版本号在/boot文件夹中还有其他非常重要的文件,分别是initrd.img-version、system.map-version、config-version。initrd文件用作小型RAM磁盘,用于提取和执行实际的内核文件。这个系统。映射文件用于内核完全加载前的内存管理,配置文件告诉内核在编译内核映像时加载哪些选项和模块。6.Linux内核体系结构由于Linux内核是整体式的,它占用的空间最大,比其他类型的内核也最复杂。这是一个在Linux早期引起了相当多争论的设计特性,并且仍然带有一些与单核固有的相同设计缺陷。Linux内核架构为了解决这些缺陷,Linux内核开发人员所做的其中一件事就是使内核模块在运行时可加载和可卸载,这意味着您可以动态地添加或删除内核的功能。这不仅可以为内核添加硬件功能,还可以添加运行服务器进程的模块,例如低级虚拟化,而且在某些情况下还可以替换整个内核而无需重新启动计算机。想象一下,如果您可以在不重新启动的情况下升级到Windows服务包...7.内核模块如果Windows已经安装了所有可用的驱动程序并且您只需打开所需的驱动程序会怎么样?这本质上就是内核模块为Linux所做的。内核模块,也称为可加载内核模块(LKM),对于保持内核与所有硬件一起工作而不消耗所有可用内存至关重要。内核模块模块通常向基本内核添加功能,例如设备、文件系统和系统调用。lkm的文件扩展名为.ko,通常存放在/lib/modules目录下。由于模块的性质,您可以通过使用menuconfig命令将模块设置为在启动时加载或不加载、编辑/boot/config文件或使用modprobe命令动态加载和卸载模块来轻松自定义内核。某些发行版(例如Ubuntu)中可用的第三方和闭源模块可能不会默认安装,因为这些模块的源代码不可用。该软件的开发商(即nVidia、ATI等)不提供源代码,而是构建自己的模块并编译所需的.ko文件以供分发。虽然这些模块像啤酒一样免费,但它们不像言论那样免费,因此没有包含在某些发行版中,因为维护者认为它通过提供非自由软件“污染”了内核。内核并不神奇,但对于任何正常运行的计算机来说都是必不可少的。Linux内核与OSX和Windows不同,因为它包含内核级驱动程序并使许多功能“开箱即用”。希望您已经了解更多有关软件和硬件如何协同工作以及启动计算机所需的文件的信息。8.小结通过本文,你应该通过一张或多张图片,对什么是Linux内核以及Linux内核的功能有了更深入的了解吧?