首页>>科技 >>内容

什么是Linux内核,Linux内核体系结构

发布时间:2023-10-09 12:26:26编辑:温柔的背包来源:

很多朋友对什么是Linux内核,Linux内核体系结构不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

什么是Linux内核,Linux内核体系结构

前言本文主要讲解了什么是Linux内核,并通过很多图片展示了Linux内核的功能和作用,让读者快速了解什么是Linux内核,了解它。Linux内核拥有超过1300万行代码,是世界上最大的开源项目之一,但是内核是什么,它是用来做什么的?内核是什么?

内核是与计算机硬件接口的最低级的易于替换的软件。它负责将所有以“用户模式”运行的应用程序连接到物理硬件,并允许称为服务器的进程使用IPC从彼此获得信息。内核一定要分门别类吗?是的,没错。3.1微核

微内核只管理它必须管理的东西:CPU、内存和IPC。计算机中的几乎所有东西都可以被视为附件,可以在用户模式下处理。微内核的优势在于可移植性,因为只要操作系统仍然试图以同样的方式访问硬件,你就不用担心是否更换了显卡甚至操作系统。

微内核占用的内存和安装空间也非常少,而且它们往往更安全,因为只有特定的进程在用户模式下运行,用户模式没有管理员模式的高权限。

3.1.1优点可移植性,安装空间小,内存占用少安全性3.1.2缺点,硬件通过驱动更抽象,硬件可能反应慢,因为驱动处于用户态,进程必须排队等待才能获取信息,进程不等待无法访问其他进程3.2单片内核。

单片内核与微内核相反,因为它们不仅包含CPU、内存和IPC,还包含设备驱动、文件系统管理和系统服务器调用。Monolithic kernel更擅长访问硬件和多任务处理,因为如果一个程序需要从内存或其他正在运行的进程中获取信息,它有一条更直接的线来访问信息,而不需要在队列中等待完成任务。

但是,这可能会导致问题,因为在管理模式下运行的东西越多,如果行为异常,就会导致系统崩溃。

3.2.1 Pros更直接的访问程序的硬件进程,更容易相互交流。如果您的设备受支持,它应该能够在不额外安装的情况下更快地工作,因为没有等待处理器时间的队列。3.2.2 Cons安装量大,内存占用大,不安全,因为所有操作都是以管理模式运行04混合内核。

混合内核可以选择在用户模式下运行什么,在管理模式下运行什么。通常,设备驱动程序和文件系统I/O将在用户模式下运行,而IPC和服务器调用将保持在管理器模式下。这样两全其美,但是通常硬件厂商需要做更多的工作,因为所有的驱动都要负责。它也可能有一些微内核固有的延迟问题。4.1优点

开发人员可以选择在用户模式下运行什么,在管理模式下运行什么。安装空间比单芯片内核更小,比其他型号更灵活。4.2 Cons将遭受与微核相同的进程延迟。设备驱动需要用户管理(通常)。05Linux内核文件在哪里?

Ubuntu中的内核文件存储在/boot文件夹中,称为vmlinux -version。vmlinuz这个名字来自unix世界。早在20世纪60年代,他们就简单地把内核叫做“unix”,所以在90年代内核刚开发出来的时候,Linux就开始把内核叫做“Linux”。

在开发虚拟内存使多任务处理更容易的时候,在文件前面加上“vm”表示内核支持虚拟内存。曾经,Linux内核被称为vmlinux,但内核变得太大,无法装入可用的引导内存,因此内核映像被压缩,末尾的X被更改为Z,以表明它是用zlib压缩的。不总是使用相同的压缩,通常用LZMA或BZIP2代替。有的核心干脆就叫zImage。版本号将采用A.B.C格式。

b可能是2.6,C是你的版本,D代表你的补丁或者补丁。

/boot文件夹里还有其他非常重要的文件,叫做initrd.img-version,system.map-version,config-version。initrd文件被用作一个小的RAM磁盘来提取和执行实际的内核文件。这个系统。在内核完全加载之前,映射文件用于内存管理。配置文件告诉内核在编译内核映像时要加载哪些选项和模块。06Linux内核架构

因为Linux内核是单片的,所以与其他类型的内核相比,它占用的空间最大,复杂性也最高。这是一个设计特性,在Linux早期引起了相当大的争议,并且仍然存在一些与单片内核所固有的相同的设计缺陷。

为了解决这些缺陷,Linux内核开发人员做的一件事就是让内核模块能够在运行时加载和卸载,这意味着你可以动态地添加或删除内核特性。这不仅可以为内核添加硬件功能,还可以包括运行服务器进程的模块,如低级虚拟化,而且在某些情况下可以在不重启计算机的情况下替换整个内核。想象一下,如果您可以升级到Windows service pack而无需重新启动.07内核模块。

如果Windows已经安装了所有可用的驱动程序,而您只需要打开所需的驱动程序,该怎么办?这实质上就是内核模块为Linux所做的事情。内核模块,也称为可加载内核模块(LKM),是保持内核与所有硬件一起工作而不消耗所有可用内存的关键。

模块通常向基本内核添加设备、文件系统和系统调用。lkm的文件扩展名是。ko,它通常存储在/lib/modules目录中。由于模块的特性,您可以通过在启动时使用menuconfig命令将模块设置为加载或不加载,或者通过编辑/boot/config文件,或者使用modprobe命令动态加载和卸载模块,来轻松定制内核。

第三方和闭源模块在某些发行版中可用,如Ubuntu,默认情况下可能不会安装,因为这些模块的源代码不可用。这个软件的开发者(nVidia,ATI等。)不提供源代码,而是自己搭建模块,编译所需。用于分发的ko文件。

虽然这些模块像啤酒一样是免费的,但它们不像语音一样是免费的,所以它们没有包含在一些发行版中,因为维护者认为它通过提供非自由软件来“污染”内核。内核并不神奇,但对于任何正常的计算机来说都是必不可少的。Linux内核不同于OS X和Windows,因为它包含内核级驱动程序,并使许多东西“开箱即用”。

我希望你能更多地了解软件和硬件是如何协同工作的,以及启动电脑所需的文件。

黄飞

以上知识分享希望能够帮助到大家!