首页 > 系统相关 >认识linux内核(linux内核的作用)

认识linux内核(linux内核的作用)

时间:2024-05-07 22:45:54浏览次数:21  
标签:认识 linux 内存 Linux 进程 体系结构 内核

目录

认识linux内核

1.从技术层面讲,内核是硬件与软件之间的一个中间层。作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。

2.从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。在实际工作中内核抽象了相关细节。

3.内核是一个资源管理程序。负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。

4.内核就像一个库,提供了一组面向系统的命令。系统调用对于应用程序来说,就像调用普通函数一样。
( Linux内核的作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的)

Linux内核实现策略

1.微内核。最基本的功能由中央内核(微内核)实现。所有其他的功能都委托给一些独立进程,这些进程通过明确定义的通信接口与中心内核通信。

2.宏内核。内核的所有代码,包括子系统(如内存管理、文件管理、设备驱动程序)都打包到一个文件中。内核中的每一个函数都可以访问到内核中所有其他部分。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的

哪些地方用到了内核机制?

1.进程(在cpu的虚拟内存中分配地址空间,各个进程的地址空间完全独立;同时执行的进程数最多不超过cpu数目)之间进行通 信,需要使用特定的内核机制。

2.进程间切换(同时执行的进程数最多不超过cpu数目),也需要用到内核机制。

进程切换也需要像FreeRTOS任务切换一样保存状态,并将进程置于闲置状态/恢复状态。

3.进程的调度。确认哪个进程运行多长的时间。

Linux进程

1.采用层次结构,每个进程都依赖于一个父进程。内核启动init程序作为第一个进程。该进程负责进一步的系统初始化操作。init进程是进程树的根,所有的进程都直接或者间接起源于该进程。

2.通过pstree命令查询。实际上得系统第一个进程是systemd,而不是init(这也是疑问点)

3.系统中每一个进程都有一个唯一标识符(ID),用户(或其他进程)可以使用ID来访问进程。

Linux内核源代码的目录结构

  1. 内核核心代码,包括第3章所描述的各个子系统和子模块,以及其它的支撑子系统,例如电源管理、Linux初始化等
  2. 其它非核心代码,例如库文件(因为Linux内核是一个自包含的内核,即内核不依赖其它的任何软件,自己就可以编译通过)、固件集合、KVM(虚拟机技术)等
  3. 编译脚本、配置文件、帮助文档、版权说明等辅助性文件

Linux内核体系结构

Linux内核的主要组件有:系统调用接口、进程管理、内存管理、虚拟文件系统、网络堆栈、设备驱动程序、硬件架构的相关代码。

(1)系统调用接口

SCI 层提供了某些机制执行从用户空间到内核的函数调用。正如前面讨论的一样,这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。

(2)进程管理

进程管理的重点是进程的执行。在内核中,这些进程称为线程,代表了单独的处理器虚拟化(线程代码、数据、堆栈和 CPU 寄存器)。在用户空间,通常使用进程 这个术语,不过 Linux 实现并没有区分这两个概念(进程和线程)。内核通过 SCI 提供了一个应用程序编程接口(API)来创建一个新进程(fork、exec 或 Portable Operating System Interface [POSIX] 函数),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSIX 机制)。

进程管理还包括处理活动进程之间共享 CPU 的需求。内核实现了一种新型的调度算法,不管有多少个线程在竞争 CPU,这种算法都可以在固定时间内进行操作。这种算法就称为 O(1) 调度程序,这个名字就表示它调度多个线程所使用的时间和调度一个线程所使用的时间是相同的。O(1) 调度程序也可以支持多处理器(称为对称多处理器或 SMP)。您可以在 ./linux/kernel 中找到进程管理的源代码,在 ./linux/arch 中可以找到依赖于体系结构的源代码。

(3)内存管理

内核所管理的另外一个重要资源是内存。为了提高效率,如果由硬件管理虚拟内存,内存是按照所谓的内存页 方式进行管理的(对于大部分体系结构来说都是 4KB)。Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。不过内存管理要管理的可不止 4KB 缓冲区。Linux 提供了对 4KB 缓冲区的抽象,例如 slab 分配器。这种内存管理模式使用 4KB 缓冲区为基数,然后从中分配结构,并跟踪内存页使用情况,比如哪些内存页是满的,哪些页面没有完全使用,哪些页面为空。这样就允许该模式根据系统需要来动态调整内存使用。为了支持多个用户使用内存,有时会出现可用内存被消耗光的情况。由于这个原因,页面可以移出内存并放入磁盘中。这个过程称为交换,因为页面会被从内存交换到硬盘上。内存管理的源代码可以在 ./linux/mm 中找到。

(4)虚拟文件系统

虚拟文件系统(VFS)是 Linux 内核中非常有用的一个方面,因为它为文件系统提供了一个通用的接口抽象。VFS 在 SCI 和内核所支持的文件系统之间提供了一个交换层

Linux内核体系结构(就是Linux系统是怎么构成的)

Linux内核的主要组件有:系统调用接口、进程管理、内存管理、虚拟文件系统、网络堆栈、设备驱动程序、硬件架构的相关代码。

Linux体系结构和内核结构区别

(1)用户空间:用户空间中又包含了,用户的应用程序,C库

(2)内核空间:内核空间包括,系统调用,内核,以及与平台架构相关的代码
image

标签:认识,linux,内存,Linux,进程,体系结构,内核
From: https://www.cnblogs.com/wxp55/p/18178562

相关文章

  • linux学习第三天
    嵌入式linux学习第三天汇编语言点灯今天学习如何在linux板子上点灯。I.MX6UGPIO详解我们发现I.MX6UGPIO是分为两类的,:SNVS域的和通用的。在讨论i.MX6U或类似的复杂微处理器时,了解其GPIO(通用输入输出)引脚的不同分类是很重要的。i.MX6U的GPIO引脚被分为两大类:SNVS(SecureNon-V......
  • Linux 系统目录和文件夹的区别
    Linux系统目录和文件夹的区别概念1.系统目录:在Linux系统中,目录是文件系统的一种特殊类型,用于组织和存储文件和其他目录。每个目录都包含零个或多个文件和其他目录,以及一些与之相关的属性,如权限、所有者等。目录在文件系统中以目录项的形式存在,每个目录项包含了文件或子目录的......
  • Linux系统管理-系统概述
    一、系统概述3.系统安装1.系统安装1.选择第一项installcentos7,并且设置语言,推荐使用中文,简体中文2.字符界面安装选择最小或基本网页服务器即可,接下来就是进行磁盘分区,也可以自己分配或者系统自动分配3.手动分区里面也可以让系统自动创建,或者自己手动创建4.接受分区的修......
  • 在Linux上使用CAN
    1、相关背景知识CAN控制器局域网络(ControllerAreaNetwork),一种串行数据通信协议。CAN是一种异步通讯,只有CAN_high和CAN_low两条信号线(实际上还需要共地,GND),共同构成一组差分信号线,以差分信号的形式进行通讯。CAN通讯节点由一个CAN控制器及CAN收发器,CAN控制器用于实现实......
  • ###什么是Linux内核###什么是MMU
    什么是Linux内核Linux内核简介Linux®内核是Linux操作系统(OS)的主要组件,也是计算机硬件与其进程之间的核心接口。它负责两者之间的通信,还要尽可能高效地管理资源。之所以称为内核,是因为在操作系统中就像果实硬壳中的种子一样,控制着硬件(无论是电话、笔记本电脑、服务器,还是任......
  • Linux系统目录和文件夹的区别
    V1.02024年5月7日发布于博客园目录Linux系统目录和文件夹的区别?目录文件(DirectoryFile)文件夹(Folder)技术区别结论参考资料Linux系统目录和文件夹的区别?在Linux系统中,目录是指目录文件!Linux中的目录并不是一种容器,而仅仅是一个文件索引表。其内容是其他文件和目录的索引......
  • Linux内核的作用
    Linux内核是操作系统的核心组件,它负责管理计算机的硬件资源,并提供访问这些资源的接口,以便其他软件程序可以在计算机上运行。它的主要作用为:硬件抽象层:Linux内核提供了一个抽象层,将不同类型的硬件资源(如处理器、内存、存储设备、网络接口等)统一起来,使软件开发人员不需要直接与硬......
  • Linux系统内核的作用
      Linux系统内核在操作系统中扮演着至关重要的角色,其作用主要体现在以下几个方面:进程管理:内核负责创建和销毁进程,这是操作系统对计算机上正在运行的程序进行管理的核心部分。内核通过调度器对进程进行调度,确保每个进程都能得到合理的CPU时间片,实现多任务处理。内存管理:Linux......
  • FAT32和NTFS 、Linux内核、Linux系统目录和文件目录、MMU
    了解FAT32和NTFSFAT32文件系统用4个字节(32位)空间来表示每个扇区配置文件的情形,所以叫FAT32。兼容性较好,但对但缺点是对文件大小有限制,不支持超过4GB的文件。NTFS文件系统是windowsNT文件系统。NTFS系统比FAT32的可靠性更高,可以支持更大的分区和更大的文件,此外还有不少FAT32没......
  • 简述Linux系统内核的作用
    V1.02024年5月7日发布于博客园目录Linux内核的组成部分进程调度(SCHED)内存管理(MM)虚拟文件系统(VFS)网络接口(NET)进程间通信(IPC)Linux内核5个组成部分之间的依赖关系进程调度与内存管理之间的关系:进程间通信与内存管理的关系:虚拟文件系统与网络接口之间的关系:内存管理与虚拟文件系......