世界快看点丨linux kernel是什么

时间:2023-03-23 10:16:25       来源:PHP中文网

本教程操作环境:linux5.9.8系统、Dell G3电脑。


【资料图】

linux kernel是什么?

linux kernel 是linux内核的意思,主要起到完成IO驱动设备管理,TCP/IP,以及任务调度。

Linux kernel 译为linux 内核,其基础为linux平台,linux为C语言编写的内核,基于此内核又衍生出了具体的Red hat linux 、open suse linux等具体的操作系统,一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。

Linux 内核简介

Linux 内核是 Linux 操作系统(OS)的主要组件,也是计算机硬件与其进程之间的核心接口。它负责两者之间的通信,还要尽可能高效地管理资源。

之所以称为内核,是因为在操作系统中就像果实硬壳中的种子一样,控制着硬件(无论是电话、笔记本电脑、服务器,还是任何其他类型的计算机)的所有主要功能。

Linux 内核的作用

内容有以下四项作用:

内存管理:追踪记录有多少内存存储了什么以及存储在哪里

进程管理:确定哪些进程可以使用中央处理器(CPU)、何时使用以及持续多长时间

设备驱动程序:充当硬件与进程之间的调解程序/解释程序

系统调用和安全防护:从流程接受服务请求

在正确实施的情况下,内核对于用户是不可见的,它在自己的小世界(称为内核空间)中工作,并从中分配内存和跟踪所有内容的存储位置。用户所看到的内容(例如 Web 浏览器和文件)则被称为用户空间。这些应用通过系统调用接口(SCI)与内核进行交互。

可以这样理解:内核就像是一个为高管(硬件)服务的忙碌的个人助理。助理的工作就是将员工和公众(用户)的消息和请求(进程)转交给高管,记住存放的内容和位置(内存),并确定在任何特定的时间谁可以拜访高管、会面时间有多长。

对于linux kernel,先看它的目录结构,这里只挑几个重要的说明。

arch 包括所有和体系结构相关的核心代码。从里面我们能看到arm、alpha、i386、mips、ia64这些文件夹,每种处理器架构都有不一样的硬件模块,这里就是要针对不同的架构进行不同的初始化。

init包含内核的初始化代码(不是系统的引导代码),其中有一个main.c文件,用于执行内核所有的初始化工作(包括初始化内存、初始化所有硬件、创建第一个任务task0,设置中断允许标志位),然后移到用户模式调用fork()函数创建新进程,并在控制台运行shell。

kernel 包含内核管理的核心代码,瞅这名就知道,这货是个重量级目录,所有的处理任务的程序,包括fork、exit、调度程序(sched.c)以及一些系统调用(sys.c)、信号处理(signal.c)、时间函数(time.c),还有中断异常处理、电源管理等等一系列调用关系错综复杂的函数。

mm 包含所有的内存管理代码。其中包括实现进程的逻辑地址到实际物理地址的映射,实现分页、分段机制,实现内存页面异常中断处理程序等。

drivers包含系统中所有的设备驱动程序,比如什么cdrom啊bluetooth啊pci、i2c这些。

ipc 包含核心进程间的通信代码。

fs 存放Linux支持的文件系统代码,里面有ext2、ext3、ext4、fat、ntfs等等一堆目录。

net 内核的网络部分代码,其每个子目录对应于网络的一个方面,比如ieee80211、ipv4、ipv6这些目录。

lib 包含核心的库代码,什么strcpy、sprintf、sort这些函数都在里面。

相关推荐:《Linux视频教程》

以上就是linux kernel是什么的详细内容,更多请关注php中文网其它相关文章!

关键词: