Linux
文章平均质量分 91
攻城狮百里
学无止境
展开
-
【Linux 内核源码分析】内存管理——伙伴分配器
在Linux操作系统中,内存分配通常由内核中的内存管理模块完成。:这是内核中最基本的分配器,用于分配物理内存。伙伴系统将内存块组织成不同大小的伙伴,以便有效地分配和回收内存。它适用于分配较大的内存块。:slab分配器是一个对象缓存,用于高效地分配和回收小块内存。它将内存组织成缓存,每个缓存包含相同大小的对象。slab分配器特别适合为内核对象分配内存,如进程描述符、文件描述符等。:vmalloc是一个用于虚拟内存分配的分配器。它主要用于分配大块内存,并且不要求物理连续性,而是提供虚拟连续的内存区域。原创 2024-02-23 19:52:41 · 989 阅读 · 0 评论 -
【Linux 内核源码分析】内存管理——Slab 分配器
Slab 分配器在Linux内核中,伙伴分配器是一种内存管理方式,以页为单位进行内存的管理和分配。但是在内核中,经常会面临结构体内存分配问题,而这些结构体的大小通常是小于一页的。如果使用伙伴分配器来分配这些小内存,将造成很大的内存浪费。因此,为了解决这个问题,Sun公司的Jeff Bonwick在Solaris 2.4中设计并实现了一种新的内存分配器——slab分配器。与伙伴分配器不同的是,slab 分配器以字节为单位来分配内存,并基于伙伴分配器的大内存进一步细分成小内存进行分配。也就是说,slab 分原创 2024-02-21 22:18:32 · 1051 阅读 · 0 评论 -
【Linux 内核源码分析】物理内存组织结构
多处理器系统两种体系结构:非一致内存访问(Non-Uniform Memory Access,NUMA):这种体系结构下,内存被划分成多个内存节点,每个节点由不同的处理器访问。访问一个内存节点所需的时间取决于处理器和内存节点之间的距离,因此处理器与内存节点之间的距离会影响内存访问速度。原创 2024-02-20 16:54:39 · 887 阅读 · 0 评论 -
【Linux 内核源码分析】内存映射(mmap)机制原理
内存映射(mmap)是 Linux 内核的一个重要机制,它为程序提供了一种将文件内容直接映射到进程虚拟地址空间的方式。同时内存映射也是虚拟内存管理和文件 IO 的重要组成部分。在 Linux 中,虚拟内存管理是基于内存映射来实现的。在调用 mmap 函数时,会创建一个结构体,该结构体代表了一段连续的虚拟地址空间,它们会相应地映射到一个后备文件或者一个匿名文件的虚拟页。一个结构体映射到一组连续的页表项,这些页表项指向物理内存中的一页。这样就把一个文件和物理内存页相映射起来。当进程试图访问映射到。原创 2024-02-19 17:57:20 · 1159 阅读 · 0 评论 -
【Linux 内核源码分析】虚拟内存地址空间
在现代操作系统中,每个进程被分配了独享的虚拟内存地址空间。这个地址空间可以视为一维线性空间,由多个连续的内存页组成。初始时,操作系统会将整个虚拟地址空间分成几个不同的区域,每个区域用于特定的目的。在32位模式下,虚拟地址空间通常被限制在4GB范围内。而在64位模式下,则能够支持更大的地址空间范围。原创 2024-02-19 14:15:00 · 1034 阅读 · 0 评论 -
【Linux 内核源码分析】多核调度分析
SMP(Symmetric Multiprocessing,对称多处理)是一种常见的多核处理器架构。它将多个处理器集成到一个计算机系统中,并通过共享系统总线和内存子系统来实现处理器之间的通信。首先,SMP架构将一组处理器集中在同一个计算机上。这些处理器可以是物理上独立的芯片,也可以是在同一芯片上集成的多个核心。无论是物理上独立的处理器还是集成在同一芯片上的核心,它们都可以同时工作,处理不同的任务。在SMP架构中,各处理器是对等的,也就是说它们具有相同的权限和地位。原创 2024-01-27 17:50:37 · 1336 阅读 · 0 评论 -
【Linux 内核源码分析】堆内存管理
与静态分配的栈不同,堆的内存分配不是自动的,需要显式地通过内存分配函数(如malloc、new等)来申请内存空间,并在不使用时通过释放函数(如free、delete等)来释放已分配的内存。在 glibc 中,堆是由多个内存块组成的链表,每个内存块都有一个 heap_info 结构体来描述它所在的堆。堆内存是连续的内存区域:在大多数操作系统中,包括 Linux,堆内存是通过动态内存分配来管理的。堆内存的生长方向是自下而上:在传统的内存布局中,堆内存的生长方向是从低地址向高地址增长。其中一个常用的系统调用是。原创 2024-01-20 22:09:02 · 1184 阅读 · 1 评论 -
【Linux 内核源码分析】内存屏障
smp_store_mb()和smp_load_acquire()分别是带屏障的存储和加载函数,用于确保存储和加载操作的顺序和一致性。内存屏障的作用是强制对内存的访问顺序进行排序,保证多线程或多核处理器下的内存访问的一致性和可见性。在这种模型下,程序无法依赖于全局的、确定性的操作执行顺序。这些序列关系的正确性和顺序一致性是通过硬件层面的内存屏障指令、缓存一致性协议和处理器乱序执行的机制来实现的。Linux内核提供了多种内存屏障,包括通用的内存屏障、数据依赖屏障、写屏障、读屏障、释放操作和获取操作等。原创 2024-01-19 21:38:16 · 1179 阅读 · 0 评论 -
【Linux 内核源码分析】RCU机制
RCU的核心思想是在更新操作时,不立即删除旧版本的数据,而是等待所有正在使用旧版本数据的读者完成后再删除。当一个线程或进程进入临界区时,它会尝试获取互斥锁,如果锁是可用的,则表示资源未被占用,线程或进程可以获取锁并进入临界区;宽限期的长度通常是预先确定的,并与系统的需求和特性相关。此外,为了保证有序的更新,编写者必须使用某种同步机制,如锁定,来确保在进行写操作时其他写操作不会干扰更新的顺序。这是因为在RCU中,读操作是无锁的,但写操作需要确保数据结构的一致性和正确性,因此需要使用同步机制来避免竞争条件。原创 2024-01-15 20:00:57 · 1330 阅读 · 0 评论 -
【Linux 内核源码分析】进程调度 -CFS 调度器
在CFS(Completely Fair Scheduler)调度器中,任务的权重值由其nice值决定,通过对比不同任务的权重值,CFS会分配合理的CPU时间片给每个任务。这种方式实现了一种类似于多态的效果,即不同的任务可以使用不同的调度算法,而调度器的函数指针则根据具体的调度器类型来指向对应的函数。通过这种方式,Linux 内核可以根据任务的调度器类型来调用相应的调度函数,实现了灵活的调度策略,并且能够方便地扩展和切换不同的调度器。高优先级的任务会获得更多的虚拟运行时间,在排序和选择调度时更容易被选中。原创 2024-01-13 20:08:54 · 1082 阅读 · 0 评论 -
【Linux 内核源码分析笔记】系统调用
在Linux内核中,系统调用是用户空间程序与内核之间的接口,它允许用户空间程序请求内核执行特权操作或访问受保护的内核资源。系统调用提供了一种安全可控的方式,使用户程序能够利用内核功能而不直接访问底层硬件。原创 2024-01-10 16:15:12 · 1049 阅读 · 0 评论 -
【Linux 内核源码分析】关于Linux内核源码目录结构
需要注意的是,Linux 内核的初始化代码不仅限于 init 目录,还分布在其他各个目录中。在 Linux 内核源码中,由于主要关注于内核本身的开发,usr 目录下的工具和库文件可能相对有限,不同的 Linux 发行版或用户空间环境可能会有自己独特的目录结构和文件组织方式。在 Linux 内核源码中,tools 目录是一个非常重要的目录,它包含了许多用于开发、调试和分析内核的工具。在 Linux 内核源码中,include 目录包含了大量的头文件,这些头文件定义了内核中使用的结构体、函数原型、常量等。原创 2024-01-05 15:41:55 · 1405 阅读 · 0 评论 -
【Linux 内核源码分析】GPIO子系统软件框架
Linux内核的GPIO子系统是用于管理和控制通用输入输出(GPIO)引脚的软件框架。它提供了一套统一的接口和机制,使开发者能够方便地对GPIO进行配置、读写和中断处理。主要组件:GPIO框架:提供了一套API和数据结构,用于在驱动程序中注册和操作GPIO引脚。这包括GPIO的请求、释放、配置以及读写等功能。GPIO控制器驱动:每个具体的硬件平台都需要编写相应的GPIO控制器驱动程序,负责与硬件进行交互,并向上层提供统一的接口。它们通过设备树描述文件来与硬件平台进行绑定。原创 2024-01-02 22:05:57 · 892 阅读 · 0 评论 -
【Linux 内核源码分析】Linux内核通知链机制
Linux内核通知链(notifier chain)是一种机制,用于实现内核中的事件通知和处理。它提供了一种灵活的方式,让不同的模块可以注册自己感兴趣的事件,并在事件发生时接收到通知。通知链由一个或多个注册在其中的回调函数组成,每个回调函数都有一个优先级。当事件发生时,内核会按照优先级顺序调用相应的回调函数进行处理。开发者可以使用notifier_chain_register()函数向通知链中注册回调函数,使用notifier_call_chain()函数触发对通知链中所有回调函数的调用。原创 2024-01-02 21:54:54 · 1015 阅读 · 0 评论 -
【Linux 内核源码分析】I2C子系统分析 整体框架介绍
内核版本:v4.14。转载 2023-12-15 22:04:20 · 151 阅读 · 0 评论 -
(Linux内核源码分析)Linux 内核无线子系统
一般 WiFi 驱动包含如下三个部分:配置、发送回调、接收回调。再以 USB WiFi 适配器为例,当内核探测到设备被插入时,会调用 probe 函数。这可能发生在注册配置好的 ieee80211_ops 时。首先, ieee80211_alloc_hw 分配一个 ieee80211_hw 结构体,代表着相应 WiFi 设备。另外,如下的数据结构也会被分配:wiphy 结构:主要用来描述 WiFi 硬件参数(如, MAC 地址、接口模式与组合、支持的波特率以及其他一些硬件功能)。转载 2023-12-12 22:34:49 · 219 阅读 · 0 评论 -
Linux 内存碎片防治
Linux kernel组织管理物理内存的方式是buddy system(伙伴系统),而物理内存碎片正式buddy system的弱点之一,为了预防以及解决碎片问题,kernel采取了一些实用技术,这里将对这些技术进行总结归纳。转载 2023-11-28 22:11:35 · 83 阅读 · 0 评论 -
Linux内核阻塞IO(wait_queue)和非阻塞IO(轮询poll)
等待队列头就是一个等待队列的头部,每个访问设备的进程都是一个队列项,当设备不可用的时候就要将这些进程对应的等待队列项添加到等待队列里面。0x01该宏用于定义并初始化一个名为name的等待队列。name 就是等待队列项的名字,tsk 表示这个等待队列项属于哪个任务(进程),一般设置为current,在 Linux内核中current相当于一个全局变量 , 表当前进程。因此宏DECLARE_WAITQUEUE 就是给当前正在运行的进程创建并初始化了一个等待队列项。NULLNULL。原创 2023-11-24 21:43:49 · 114 阅读 · 0 评论 -
Linux 阻塞机制及等待队列
原文地址: http://www.cnblogs.com/gdk-0078/p/5172941.html阻塞与非阻塞是设备访问的两种方式。驱动程序需要提供阻塞(等待队列,中断)和非阻塞方式(轮询,异步通知)访问设备。在写阻塞与非阻塞的驱动程序时,经常用到等待队列。原创 2023-11-18 14:23:17 · 80 阅读 · 0 评论 -
linux 性能与内存分析工具
包含了一系列性能分析工具和调试工具,用于监视和分析 Linux 系统的性能、内核活动以及其他性能相关信息。具体包含的工具可能因不同的 Linux 发行版和版本而有所不同。以下是一些常见的工具,可能包含在perfperfperf statoprofiletrace-cmdsysstatsariostatmpstatstraceltracehtoptoppowertopblktracestraceiostatnumactlaptyumdnf然后,使用相应的命令来安装你需要的工具包。原创 2023-11-04 17:38:43 · 328 阅读 · 0 评论 -
Linux内核程序调试工具Crash的安装
在linux中的程序主要分为用户空间程序和内核空间程序两种,他们使用不同的工具生成的不同的dump文件,并用不同软件分析dump文件。对于用户空间下的程序,所产生的dump文件,如:core.3296 和core-hellotest.2816.xm.1593867625 ,用gdb工具分析即可。对于内核空间下的程序,所产生的dump文件,如/var/crash/202007092214/dump.202007092214,常用crash分析。本文将介绍如何安装crash工具和对crash工具的简单使用!原创 2023-11-03 16:09:58 · 239 阅读 · 0 评论 -
Linux内核源码分析课程
根据工作中,常用的内核底层技术点定制课程体系五大技术专题、20个实战操作模块、2w+代码3-5个月帮助学员掌握内核底层必备技术5个专题全面提升内核在工作中的常用技术点:进程管理专题、内存管理专题、网络协议栈专题、设备驱动管理专题、文件系统及内核组件专题一、进程管理专栏。原创 2023-10-11 15:51:16 · 80 阅读 · 0 评论 -
linux MMU内存管理单元
然而这种想法又遇到了另外一个问题,当ARM处理器响应异常事件时,程序指针将要跳转到一个确定的位置,假设发生了IRQ中断,PC将指向0x18(如果为高端启动,则相应指向0vxffff_0018处),而此时0x18处仍为非易失性存储器所占据的位置,则程序的执行还是有一部分要在FLASH或者ROM中来执行的。答案是肯定的,这就引入了MMU,利用MMU,可把SDRAM的地址完全映射到0x0起始的一片连续地址空间,而把原来占据这片空间的FLASH或者ROM映射到其它不相冲突的存储空间位置。为何要实现这种映射?原创 2023-06-06 22:19:22 · 223 阅读 · 0 评论 -
Linux ARP协议与邻居子系统剖析
在局域网中(同一个路由器内),主机与主机之间需要通过 MAC 地址进行通讯。但由于 MAC 地址过于复杂,不容易被人类记忆。所以,人们更倾向于使用更容易记忆的 IP 地址。但局域网只能使用 MAC 地址通讯,那有什么办法可以通过主机的 IP 地址来获取到主机的 MAC 地址呢?ARP协议 就应运而生。ARP(Address Resolution Protocol) 即地址解析协议, 用于实现从 IP 地址到 MAC地址的映射,即询问目标IP对应的MAC地址。转载 2023-06-03 21:57:35 · 252 阅读 · 0 评论 -
linux内核学习---内核编译
原本打算使用低版本的Linux内核进行实验,但是编译完成了几个3.X版本以后发现总是出现CPU死机或者无法开机情况,所以这里还是先用与原系统内核的版本相近的进行编译(占了近20G空间)。(好像是gcc编译器?linux c/c++后端开发 面试题、学习资料、教学视频,免费分享有需要的可以自行添加学习交流群739729163 领取。安装内核以后,会默认将新的内核信息更新到grub中,但是我们需要修改grub文件,使得我们可以进行开机选择进入的内核。设置线程数,可以提高编译速度!所以我们下面直接重启即可!转载 2023-05-11 15:24:57 · 124 阅读 · 0 评论 -
crash怎么分析kdump core文件
kdump是Linux内核的一种机制,可以在出现系统崩溃时自动生成一个内存转储文件(core file),也称为crash dump。这个core文件包含了系统当时的内存状态和各个进程的调用栈信息,可以帮助分析和定位崩溃的原因。其中/path/to/core是kdump core文件的路径。要分析kdump core文件,需要先安装crash工具,这是一个专门用于分析Linux内核转储文件的工具。使用以上命令可以帮助定位崩溃的原因。如果需要退出crash工具,可以使用quit命令。原创 2023-04-28 16:52:09 · 1126 阅读 · 0 评论 -
linux tee命令用法
此命令将command命令的标准输出重定向到/dev/null,只输出标准错误输出并将其保存到file.txt文件中,并将其显示在终端上。Linux中的tee命令它可以同时在终端和文件中输出命令的结果。此命令将command命令的标准输出和标准错误输出都保存到file.txt文件中,并将其显示在终端上。此命令将file.txt文件的内容追加到file2.txt文件中,并将其显示在终端上。此命令将ls -l命令的输出保存到file.txt文件中,并将其显示在终端上。原创 2023-04-28 16:48:32 · 556 阅读 · 0 评论 -
epoll 原理详解
Linux epoll 网络编程转载 2022-09-02 20:57:44 · 1351 阅读 · 0 评论 -
Linux I/O 多路复用,select / poll / epoll 详解
文件描述符(file descriptor)是一个非负整数,从 0 开始。进程使用文件描述符来标识一个打开的文件。系统为每一个进程维护了一个文件描述符表,表示该进程打开文件的记录表,而文件描述符实际上就是这张表的索引。当进程打开(open)或者新建(create)文件时,内核会在该进程的文件列表中新增一个表项,同时返回一个文件描述符 —— 也就是新增表项的下标。一般来说,每个进程最多可以打开 64 个文件,fd ∈ 0~63。...转载 2022-08-16 20:47:59 · 2752 阅读 · 0 评论 -
Linux防火墙-firewalld与ICMP控制 【Linux服务器】
我们上一篇通过一个网络拓扑展示了rich规则配置的技术细节,并且我们用rich规则也配置了如何简单地阻止不可信的网络对防火墙的骚扰。我们本篇会深入讨论firewalld对icmp的配置C/C++Linux服务器开发/后台架构师https://ke.qq.com/course/417774?flowToken=1031343ICMP协议简介互联网控制消息协议(ICMP)是各种网络设备用来发送错误消息和操作信息的支持协议,所述错误消息和操作信息指示连接问题,例如,所请求的服务不可用。ICMP不同于TCP和原创 2021-06-30 22:29:46 · 2725 阅读 · 0 评论 -
linux内存源码分析 - 内存碎片整理(同步关系) 【转】
转载注明:http://www.cnblogs.com/tolimit/概述最近在看内存回收,内存回收在进行同步的一些情况非常复杂,然后就想,不会内存碎片整理的页面迁移过程中的同步关系也那么复杂吧,带着好奇心就把页面迁移的源码都大致看了一遍,还好,不复杂,也容易理解,这里我们就说说在页面迁移过程中是如何进行同步的。不过首先可能没看过的朋友需要先看看linux内存源码分析 - 内存碎片整理(一),因为会涉及里面的一些知识。其实一句话可以概括页面迁移时是如何进行同步的,就是:我要开始对这个页进行页面迁移处原创 2021-06-07 17:06:50 · 373 阅读 · 0 评论 -
何为 Linux 内核开发,怎么学好 Linux 内核?
此文包含 Linux 系统的学习路径和书籍推荐。我觉得学习 Linux 系统,内核驱动时,最开始只需要 ‘Know what, not know how ’。 不用去探究细节,只需要知道整体的框架,知道有哪些需要我们重视的内容即可。何为 Linux 内核开发?首先,初步认识下 Linux kernelLinux 内核的框架如上图。设备子系统负责和硬件打交道。大部分工作集中在设备子系统部分。内核开发是什么?广义上讲,新增或修改上图中内核部分的所有子系统。非 Linux 源码贡献者.原创 2021-06-04 16:47:55 · 3993 阅读 · 0 评论 -
Linux内核处理器缓存方案
一、什么是CPU缓存1. CPU缓存的来历众所周知,CPU是计算机的大脑,它负责执行程序的指令,而内存负责存数据, 包括程序自身的数据。在很多年前,CPU的频率与内存总线的频率在同一层面上。内存的访问速度仅比寄存器慢一些。但是,这一局面在上世纪90年代被打破了。CPU的频率大大提升,但内存总线的频率与内存芯片的性能却没有得到成比例的提升。并不是因为造不出更快的内存,只是因为太贵了。内存如果要达到目前CPU那样的速度,那么它的造价恐怕要贵上好几个数量级。所以,CPU的运算速度要比内存读写速度快很多,这样会原创 2021-05-31 21:37:56 · 251 阅读 · 1 评论 -
Linux的5种IO模型进化详解
IO在计算机世界中地位举足轻重,IO效率一直是码农们孜孜不倦最求的目标。本文我们一起来研究下Linux的IO的工作方式是如何一步步进化到今天的。我们说的IO主要是指应用程序在工作过程中用到的IO类型,包括两种IO:文件IO和网络IO,本文主要研究的是网络IO。应用进程和内核之间的数据交互方式一直在演进,下面我们对各种形态的交互方式进行介绍。在这之前,我们先明确几个概念:内核空间和用户空间、同步和异步、阻塞和非阻塞。内核空间操作系统单独拥有的内存空间为内核空间,这块内存空间独立于其他的应用内存空间,除转载 2021-05-20 15:30:09 · 271 阅读 · 0 评论 -
Linux服务端开发——Linux中stat函数和stat命令使用详解
这篇文章主要介绍了Linux中stat函数和stat命令使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧stat函数和stat命令linux文件里的【inode = index node】解释:要理解inode必须了解磁盘和【目录项】,inode实际是连接【目录项】和磁盘的中间物质。图里的大圈代表硬件的磁盘,里面的小圈代表某个文件存储在磁盘上了。【inode = index node】的node(承载node信息的结构体是原创 2021-05-15 17:39:16 · 2001 阅读 · 0 评论 -
20个Linux服务器性能调优技巧
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程,响应时间并不是那么重要,相反,能够长时间处理高负载才是最关键的。Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级。Linux服务器有各种用途,如Web服转载 2021-05-14 14:50:13 · 216 阅读 · 0 评论 -
Linux C++网络编程
要想找一份Linux c++ 方面的好工作,在面试过程中游刃有余,那么这篇文章就是为你定制的。因为作为一个校招的学生,我在学习和面试过程中的经历总这个体系的文章,希望可以帮助到你。因为内容太多,本文先从学习资料入手。谈到 Linux c++ 网络编程,一时之间不知从何入手,那么大问题不好解决,就拆解成小问题逐个击破。一、Linux起初对 Linux 的认识就是黑框、高大上。但是在慢慢接触的过程中你会逐渐爱上她,因为你会省去双手从键盘移动到鼠标的时间,同时他一切皆文件 的思想,让你管理任何东西都可以像转载 2021-04-28 16:17:18 · 973 阅读 · 0 评论 -
linux高性能服务器编程--高性能服务器程序框架
主要介绍服务器的三个主要模块: I/O处理单元、逻辑单元、存储单元。另外服务器的模型有:C/S模型和P2P模型。虽然服务器模型比较多,但是其核心框架都一样,只是在于逻辑处理方面。如下图简单的介绍一台服务器或服务器机群模型的基本框架:1、I/O模型I/O处理单元:I/O处理单元是服务器管理客户连接的模块。主要是等待并受理新的客户连接接收客户数据,将服务器响应数据返回给客户端。逻辑单元:就是一个个进程或者线程。用于处理客户数据,将结果传递给I/O处理单元或者直接发送给客户端。服务器中通常由多个逻辑单元,以转载 2021-04-26 20:23:54 · 395 阅读 · 0 评论 -
扩展Linux网络栈
简介本文的描述了Linux网络栈中的一组补充技术,用于增加多处理器系统的并行性和提高性能。描述的结束为:RSS: Receive Side ScalingRPS: Receive Packet SteeringRFS: Receive Flow SteeringAccelerated Receive Flow SteeringXPS: Transmit Packet SteeringRSS: Receive Side Scaling现代NICs支持多个接收和传输描述符队列(多队列)。在转载 2021-04-10 21:41:39 · 572 阅读 · 0 评论 -
服务器开发---Linux内存管理
本文讨论技术内容前提,操作系统环境都是 x86架构的 32 位 Linux系统。虚拟地址即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道了。为了充分利用和管理系统内存资源,Linux采用虚拟内存管理技术,利用虚拟内存技术让每个进程都有4GB 互不干涉的虚拟地址空间。进程初始化分配和操作的都是基于这个「虚拟地址」,只有当进程需要实际访问内存资源的时候才会建立虚拟地址和物理地址的映射,调入物理内存页。打个不是很恰当的比方,这个原理其实和现在的某某网盘原创 2021-04-09 18:56:55 · 187 阅读 · 0 评论