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

Linux内核如何在引擎盖下工作的剖析

时间:2023-03-21 23:35:51 科技观察

Linux内核就像一座桥梁,可以实现应用程序和硬件之间的计算通信并管理系统资源。LinusTorvalds使用C和Assembly开发了Linux内核,因此,他设法创建了一个轻量级和可移植的内核,并将其作为开源发布给公众。在太空、计算机、智能手表、手机、机器人、健康等诸多不同领域都能看到Linux内核的身影。但是您有没有想过Linux内核在幕后是如何工作的?Linux下的硬件使用首先,Linux内核控制在您打开计算机时运行哪些硬件以及如何运行。此外,得益于编程接口,可以控制高端软件。作为这些控件的示例,您可以查看有关安装在主板插槽中的硬件的信息,并从此类详细信息中受益。此外,该编程接口提供了一个抽象层。例如,如果您想与朋友进行视频对话,您将需要一个网络摄像头。抽象层使您使用的软件可以使用此网络摄像头,而不管品牌和型号如何。这里的软件只能使用Linux存在的接口。Linux内核将此接口的函数调用翻译成网络摄像头所需的实际硬件命令。使用/proc和/sys虚拟文件系统,Linux内核可以导出有关它检测到的硬件的详细信息。下面您可以看到一些用于此目的的工具以及它们导出的设备和卡:lspci:用于PCI设备lsusb:用于USB设备lspcmcia:用于PCMCIA卡如您所见,上面屏幕截图中的Linux发行版在VMware上运行。但是,您可能会看到很多信息,例如VGA、USB控制器、桥接器和SATA控制器。您还可以使用-v参数来获取更详细的信息。在Linux内核中,应用程序通常通过/dev目录中的特殊文件访问设备。这些特殊文件代表磁盘驱动器和其他物理设备。/dev/hda、/dev/sdc、/dev/sdc3、/dev/input/mouse0和dev/snd/*等文件就是这些特殊文件的示例。Linux文件系统管理文件系统是Linux内核中最著名的组件之一。Linux的文件系统是其最大的优势之一。Linux系统上的所有文件都集中在一个分支中。因此,用户可以利用此层次结构到达他们想要的位置。此层次结构的起点是根目录(/)。其他子目录在根目录下。/下最常用的子目录是/home目录。该子目录包含其他子目录,每个子目录都有存储实际数据的文件。例如,您可以考虑在桌面上放置一个文本文件。如果您在桌面上创建一个名为helloworld.txt的文本文件,您可以将其命名为/home/linuxmi/Desktop/helloworld.txt。这里/linuxmi是我的用户名,你的会有所不同。因为这个子目录名取决于你当前的用户名。使用这个命名系统,Linux内核在存在于磁盘上的实际存储和物理存储之间进行转换。此外,Linux内核可以集成来自多个磁盘的数据。这是安装系统发挥作用的地方。它使用根系统中的一个磁盘并将其他磁盘安装到层次结构中的现有目录。然后将其他磁盘放在挂载点下。这允许用户将/home目录存储在另一个还包含其他子目录的硬盘驱动器上。当您将磁盘挂载到/home目录时,您可以从正常位置访问这些目录。因此,/home/linuxmi/Desktop/helloworld.txt等路径继续有效。您可以使用findmnt-A命令查看系统上文件之间的挂载点。对于许多文件系统格式,您可以将数据物理存储在磁盘上。Linux上最广为人知的是ext2、ext3和ext4文件系统格式。但是,还有许多其他文件系统格式。在任何情况下,您都必须在挂载之前格式化文件系统。为此,您可以使用类似mkfs.ext3的命令(mkfs代表制作文件系统,而ext3是文件系统)。这些命令接受要格式化的设备文件的路径作为参数。这是一种破坏性操作,如果您不想擦除或重置文件系统,应谨慎使用。此外,还有Linux内核使用的NFS等网络文件系统。NFS是一种网络文件系统,其中数据不存储在本地磁盘上。使用NFS,数据通过网络传输到存储数据的服务器。由于数据将在服务器上,用户不必经常处理它。他们还可以像往常一样使用传统的Linux分层文件系统。共享功能Linux系统中的所有软件都具有共同的功能。这就是为什么这些功能是Linux内核的核心。比如打开一个文件,只用文件名就可以打开,而不知道文件物理存放在什么地方,会用到什么函数和操作。所有这些功能都已经存在于内核中。您可以将文件存储在您的硬盘驱动器上,将它们分割到多个硬盘驱动器上,甚至可以将它们保存在远程服务器上。在这种情况下,共享文件通信功能很重要。无论数据如何移动,应用程序都会交换数据。共享通信功能使这些数据交换成为可能。此移动可以通过无线网络甚至固定电话线完成。Linux中的进程管理对内存中的数据或信息进行操作的程序的活动实例称为进程。Linux内核的工作是生成并跟踪这些内存区域。内核为运行的程序分配内存,并将可执行代码从文件系统加载到内存中。接下来,内核运行代码。Linux内核支持多任务处理。它能够同时运行多个进程。但是,在任何给定的时间范围内只有一笔交易。然而,Linux内核将时间分成小块,因此每个进程都是按顺序发生的。由于这些小时隙以毫秒为增量,因此它们仅在一定时间内处于活动状态,其余时间保持空闲状态。Linux内核的工作是通过一次运行多个进程来最大化性能。如果时间段太长,正在运行的应用程序可能无法像您希望的那样响应。如果时间范围太短,任务更改可能会出现问题。根据流程的优先级,此处所需的时间范围间隔会有所不同。您之前可能听说过高优先级进程和低优先级进程。这是Linux内核控制的功能之一。这种解释并不总是正确的。真正的限制是每个处理器内核一次只能有一个工作进程。多处理器系统允许多个进程并行运行。一个基本系统几乎总是有几十个进程在运行。Linux中的访问权限与其他操作系统相同,您可以在Linux系统上创建多个用户。在这种情况下,有一个支持个人用户和组的权限管理系统。这是文件和用户权限发挥作用的地方。Linux内核管理数据并检查每个进程的必要权限。例如,如果您尝试打开一个文件,内核必须根据访问权限检查进程ID。如果内核检查并发现您有权限,它将打开该文件。Linux内核控制一切如您所见,Linux内核监督从文件安全到创建用户和从网络下载文件的一切。一切都有一定的顺序。每个用户都有权限。Linux内核管理进程和时隙以获得最佳性能。另外,文件系统是Linux内核区别于其他操作系统的最大特点之一,非常重要。Linux不是一个隐藏的盒子。相反,所有文档和源代码都是可访问的。要更好地了解Linux内核的用途和强大功能,您可以研究Linux目录系统层次结构。