Linux 下 ag 命令的使用 [toc] 一、概述1、功能在 Linux 系统中,ag 命令是用于文本搜索的高效工具。它具有快速、灵活的搜索功能,并支持正则表达式匹配。 2、下载在下面是各个系统安装 ag 的命令: 1sudo apt-get install silversearcher-ag MacOS: 1brew install the_silver_searcher Debian/Ubuntu: 1 2024-08-05 Linux > Linux 命令 #Linux #Linux 命令
Linux 下 objdump 命令的使用 [TOC] 一、概述objdump 工具是用来显示二进制文件的信息,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。该命令常用于 Linux下反汇编目标文件或者可执行文件。 什么是反汇编反汇编(disassembly)是指将已编译的机器码转换回可读的汇编代码的过程。在计算机系统中,程序的源代码经过编译器转换成机器码(二进制代码)后才能被计算机执行。反汇编就是将这些机器码再次转 2024-08-04 Linux > Linux 命令 #Linux #Linux 命令 #调试
Linux 进程调度(一)之初识进程 [TOC] 一、初识进程1、基本概念进程是任何多道程序设计的操作系统中的基本概念。通常把进程定义为程序执行的一个实例,因此,如果 16 个用户同时运行 vi,那么就有 16 个独立的进程(尽管它们共享同一个可执行代码)。在 Linux 源代码中,常把进程称为任务(task)或线程(thread)。 进程类似于人类:它们被产生,有或多或少有效的生命,可以产生一个或多个子进程最终都要死亡。一个微小的 2024-07-31 Linux > 进程调度 #Linux #进程调度
Linux 内存管理(八)之 slab 分配器 @TOC 前言在上一节 Linux 内存管理(七)之伙伴系统算法 中,我们学习了 Linux 内核如何使用伙伴系统算法以页为单位管理内存,进行内存分配。这一节,将要提到的 slab 算法也是一种内存分配算法。 一、为什么要引入 slab 算法Linux 内存以页为单位进行内存管理,伙伴系统算法以 $2^n$ 次方个页面来进行内存分配管理,最小为 $2^0$,也就是一页,最大为 $2^{11}$, 2024-07-29 Linux > 内存管理 #Linux #内存管理 #slab
Linux 内存管理(七)之伙伴系统算法 @TOC 前言伙伴系统算法是一种用来管理分配和释放内存的算法,它在 Linux 内核中被广泛使用。其设计目标是高效地管理内存碎片,并且具有快速的分配和释放速度。 接下来将详细探讨一下 Linux 中的伙伴系统算法。 一、伙伴系统的由来在 Linux 内存管理(三)之分页机制 一文中,我曾提到过内存碎片,频繁地请求和释放不同大小的一组连续页框,必然导致在已分配页框的块内分散了许多小块的空闲页框。由 2024-07-24 Linux > 内存管理 #Linux #内存管理 #伙伴系统算法
Linux 内存管理(六)之内存管理区 [TOC] 前言为了支持 NUMA 模型,也即 CPU 对不同内存单元的访问时间可能不同,此时系统的物理内存被划分为几个节点,一个节点对应一个内存簇 bank,即每个内存簇被认为是一个节点。接着各个节点又被划分为内存管理区域,接下来将对内存管理区域进行讨论。 非一致内存访问(Non-Uniform MemoryAccess,NUMA)模型,是一种内存架构模型,用于多处理器系统中的内存访问。在 2024-07-23 Linux > 内存管理 #Linux #内存管理
Linux 内存管理(五)之转换后援缓存器(TLB) @TOC 前言在传统的地址转换方式中,每次访问内存时,CPU 都需要通过页表来查找虚拟地址到物理地址的映射关系。这个过程需要多次内存访问,从而导致较大的延迟。为了减少这种延迟,引入了一种叫做 TLB 的缓存机制,将最近使用过的映射关系存储在高速缓存中。 一、高速缓存TLB 实际上就是一种高速缓存,所以讲解 TLB 之前我们先来看一下什么是高速缓存。 为了缩小 CPU 和 RAM 之间的速度不匹配 2024-07-22 Linux > 内存管理 #Linux #内存管理 #TLB
Linux 内存管理(四)之物理地址扩展(PAE) [TOC] 前言在 32 位操作系统中,使用 32 位的寻址空间,最多只能表示 $2^{32}$ 个不同的地址,即 4GB 的地址空间。这意味着无论实际物理内存有多大,操作系统最多只能寻址 4GB 的物理内存。 然而,在实际应用中,特别是在服务器和高性能计算领域,需要处理大型数据集和运行大规模应用程序的情况下,4GB 的内存往往不够用。因此,引入 PAE 机制可以扩展物理地址空间,使操作系统能够 2024-07-21 Linux > 内存管理 #Linux #内存管理 #PAE
Linux 内存管理(三)之分页机制 [TOC] 前言在早期的操作系统中,分段机制被广泛采用,但随着技术的发展,分页机制逐渐成为主流选择。接下来,我们将深入探讨分页机制的原理、工作方式以及与其他内存管理机制的比较。 分段机制部分的内容可以看:Linux 内存管理(一)之分段机制。 本文涉及到的 cr0、cr2、cr3、cr4 这四个控制寄存器可以参考:x86/x86_64 下的 CPU 控制寄存器 本文还提及了 2024-07-21 Linux > 内存管理 #Linux #内存管理 #分页机制
x86/x86_64 下的 CPU 控制寄存器 [TOC] 前言x86/x86_64 CPU 中提供了控制寄存器,来决定 CPU 的操作模式和当前执行任务的属性。这些寄存器在 32 位模式下是 32 bit,在 64 位模式中,控制寄存器扩展为 64 bit。 CPU 架构中共有 CR0、CR1、CR2、CR3、CR4、CR8 共 6 个控制寄存器。 一、CR0 寄存器CR0 寄存器是 x86 架构中的一种控制寄存器,用于控制和配置 2024-07-20 Linux #Linux #x86