
linux
文章平均质量分 93
01Byte空间
做过开发,创过业,踩过坑。从Java后台开发,PL/SQL开发,Pro*C开发,到shell脚本,再到兼职开发的MySQL DBA。
为人友善诚恳,工作踏实,吃苦耐劳,富有朝气,激情,以及团队合作意识。
专注后端技术:Java、Shell、Socket、MySQL、Oracle、Linux、中间件、分布式、微服务。偶尔扯扯淡、分享技术干货。
https://github.com/zhouxx1055
https://zhouxx.blog.youkuaiyun.com/
展开
-
科普文:软件架构Nginx系列之【nginx日志分析:access_log和error_log提取攻击者IP】
error_log前面文章提到使用命令行工具如awk、grep、sort等来分析Nginx的访问日志access_log,提取高频IP。虽然access_log和error_log结构不同,但处理IP提取的方法有相似之处。access_log。原创 2025-03-12 12:09:43 · 1126 阅读 · 0 评论 -
科普文:软件架构Linux系列之【操作系统:进程/线程和进程调度算法--下 】
局部于管程的共享数据结构说明对该数据结构进行操作的一组过程对局部于管程的共享数据设置初始值的语句管程有一个名字。局部于管程的数据只能被局部于管程的过程所访问一个进程只有通过调用管程内的过程才能进入管程访问共享数据每次仅允许一个进程在管程内执行某个内部过程。原创 2024-12-03 20:57:14 · 730 阅读 · 0 评论 -
科普文:软件架构Linux系列之【操作系统:进程/线程和进程调度算法--上 】
程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。注意:PCB是进程存在的唯一标志。进程是程序的一次执行过程。进程是一个程序及其数据在处理机上顺序执行时所发生的活动。进行是具有独立功能的程序在数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单位。原创 2024-12-03 20:50:53 · 854 阅读 · 0 评论 -
科普文:软件架构Linux系列之【操作系统:I/O输入输出系统 】
I/O”就是“输入/输出”(Input/Output)I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。完成一次读/写的过程CPU干预频率每次I/O的数据传输单位数据流向优缺点程序直接控制方式CPU发出I/O命令后需要不断轮询极高字设备->CPU->内存内存->CPU->设备每一个阶段的优点都是解决了上一阶段的最大缺点。原创 2024-12-03 11:13:58 · 933 阅读 · 0 评论 -
科普文:软件架构Linux系列之【操作系统:文件管理与磁盘存储器管理 】
初识文件管理文件--就是一组有意义的信息/数据集合。文件的属性文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。类型:指明文件的类型。位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)大小:指明文件大小。创建时间、上次修改时间,文件所有者信息保护信息:对文件进行保护的访问控制信息原创 2024-12-02 20:35:38 · 923 阅读 · 0 评论 -
科普文:软件架构Linux系列之【操作系统:内存和内存管理】
基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存。虚拟内存的最大容量是由计算机的地址结构(CPU寻址范围)确定的虚拟内存的实际容量=min(内存和外存容量之和,CPU寻址范围)原创 2024-12-02 20:27:08 · 860 阅读 · 0 评论 -
科普文:软件架构Linux系列之【操作系统:进程同步与互斥、信号量、进程通信、进程调度】
在之前,我们已经谈到了很多实现进程互斥的方法,但是这些方法几乎都违背了”让权等待“的原则,于是人们想到通过信号量机制来解决这个问题 —— 其中,真正发挥作用的就是记录型信号量。除了实现进程互斥,信号量机制还能很好地实现进程同步、进程前驱关系,从而近乎完美地解决了异步所带来的问题。之后又补充了信号量集机制,主要用于多个进程请求多个资源的情况,核心是:(为了防止“死锁”)对若干个临界资源的分配采取原子操作方式,要么全部分配到进程,要么一个也不分配。原创 2024-12-02 19:15:42 · 894 阅读 · 0 评论 -
科普文:软件架构Linux系列之【操作系统:体系结构和运行机制】
继续操作系统知识梳理:大内核、微内核,进程、进程控制。之前的单道批处理系统,程序是串行执行的,内存中可能只需要记录单一程序的程度段和数据段即可;但是现在使用的是多道批处理系统,多个程序并发执行,内存中就可能存在多个程序自己的程序段和数据段,那么这时候就需要一个管理单元对这些东西加以区分、描述和管理,所以就额外多了一个。原创 2024-12-02 14:55:05 · 1024 阅读 · 0 评论 -
科普文:软件架构网络系列之【RDMA技术梳理】
有条件的装在两台服务器上,没条件的装在一台服务器上。RDMA 有一堆的管理工具和测试工具,慢慢都归集于linux-rdma/rdma-core[1]项目下,甚至这些工具都有 man 手册,比如ibv_devices[2],可以说非常友好了,你只需要知晓有哪些工具,大概是干什么的,具体使用的时候查询它的 man 手册就好了。所谓直接,指的是可以像访问本地内存一样,绕过传统以太网复杂的TCP/IP网络协议栈读写远端内存,而这个过程对端是不感知的,而且这个读写过程的大部分工作是由硬件而不是软件完成的。原创 2024-12-02 10:50:03 · 2367 阅读 · 0 评论 -
科普文:软件架构Linux系列之【CPU、内存、操作系统之间的联系】
前面我们整理了冯诺依曼体系的计算机,以及操作系统基本概念。那么今天我们从程序如何在计算机上运行入手,梳理磁盘、内存、cpu、操作系统之间的关系和协同机制。内存(Memory)是计算机中最重要的部件之一,它是程序与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存对计算机的影响非常大,内存又被称为主存,其作用是存放 CPU 中的运算数据,以及与硬盘等外部存储设备交换的数据。只要计算机在运行中,CPU 就会把需要运算的数据调到主存中进行运算,当运算完成后CPU再将结果传送出来,主存原创 2024-12-01 04:52:03 · 915 阅读 · 0 评论 -
科普文:软件架构之Linux系列【Linux进程调度:探索内核核心机制】
进程调度是操作系统最重要的内容之一,也是学习操作系统的重点和难点。关于进程调度,我们首先就会问出一些问题,什么是进程调度,为什么要进程调度,如何进行调度。下面我们用一幅图把这些问题关联起来:这张图把进程调度的所有问题和知识点都关联了起来,本文后面所有的内容都是对这张图的解释和扩展延伸,下面让我们来一一讲解。⑴什么是调度什么是调度?调度是CPU资源管理器。操作系统的作用之一就是系统资源管理器。CPU是计算机系统中最重要的资源,当然也要管理。所有进程的运行都需要CPU,对CPU该如何管理呢?原创 2024-11-30 10:52:36 · 1339 阅读 · 0 评论 -
科普文:软件架构之Linux系列【CPU调度策略】
操作系统调度是指操作系统根据一定的策略和算法,决定哪些进程可以获得CPU的使用权。由于CPU资源有限,而进程数量通常多于CPU数量,因此调度机制显得尤为重要。调度机制能够确保进程的合理分配,避免资源浪费,提高系统整体性能。CPU调度具体指的是操作系统如何从就绪队列中选择一个进程,并将其分配到CPU上运行。没有CPU调度,进程需要等待当前运行的进程结束才能开始执行,这会导致资源浪费和响应时间延长。通过合理的调度算法,可以显著提高CPU的利用率和系统的吞吐量。原创 2024-11-30 10:25:37 · 1172 阅读 · 0 评论 -
科普文:软件架构之Linux系列【操作系统:Schedule/Dispatcher调度算法】作者 | 小林coding
概叙科普文:软件架构之Linux系列【操作系统基本概念】-优快云博客科普文:软件架构之Linux系列【操作系统:处理机调度Schedule/Dispatcher】-优快云博客操作系统的三大调度机制,分别是「进程调度/页面置换/磁盘调度算法」原创 2024-11-30 09:28:27 · 1065 阅读 · 0 评论 -
科普文:软件架构之Linux系列【操作系统:处理机调度Schedule/Dispatcher】
计算机系统是由硬件和软件组成的整体,其中硬件包括处理器、内存、外存等物理设备,而软件则包括操作系统、应用软件等。scheduler强调:调度。scheduler是具有重业务逻辑的,也就是调度算法。例如,linux kernel从中断出来后,会切入到scheduler routine,因为这里面的逻辑很多(CFS,RR,FIFO等调度算法),所以叫做 调度。dispatcher强调:分发、派发。 dispatcher是轻业务逻辑或者没有业务逻辑,纯粹简单的转发、派发。例如,负载均衡的dispatche原创 2024-11-30 08:49:46 · 841 阅读 · 0 评论 -
科普文:软件架构之Linux系列【操作系统基本概念】
计算机系统自下而上可大致分为4部分:硬件、操作系统、应用程序和用户。而操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。在计算机系统的运行过程中,操作系统提供了正确使用这些资源的方法。综上所述,**操作系统(Operating System, OS):**是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织、调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境的软件集合;它是计算机系统中最基本的系统软件。原创 2024-11-30 05:50:24 · 786 阅读 · 0 评论 -
科普文:软件架构Linux系列之【AMD砍杀Intel的利器:Zen微架构CPU锐龙和霄龙】
前面提到并发问题的根源就是cpu太快,计算机其他模块远远跟不上cpu的速度。所以就有了cpu的三级缓存,这也导致了cpu和内存的数据一致性问题。为了让cpu缓存更多的指令和数据,AMD EPYC 霄龙处理器:引入3D缓存,直接将三级缓存容量扩展到1152MB!正好,我们来看看Zen微架构CPU锐龙和霄龙。原创 2024-11-29 22:51:36 · 976 阅读 · 0 评论 -
科普文:软件架构Nginx系列之【常用shell脚本分析nginx日志】
Nginx 的日志主要分为两种:错误日志和访问日志。Nginx日志分析脚本Nginx日志分析可以通过日志服务(Cloud Log Service,CLS)进行,主要目的是通过分析Nginx日志来诊断调优网站、监控网站稳定性以及进行运营数据统计等。Nginx日志分析的具体应用场景诊断调优:通过分析Nginx日志,可以识别访问延时大的页面,并进行优化以提升用户体验。例如,计算每5分钟请求的平均延时和最大延时,找出延时最大的页面并进行调优。监控网站稳定性:通过日志服务提供的仪表盘,可以快原创 2024-11-28 21:26:35 · 1022 阅读 · 0 评论 -
科普文:软件架构Linux系列之【Linux日志和日志分析工具】
日志文件是系统管理和故障排除的重要工具。日志文件是Linux系统中极为重要的一部分,它们记录了系统运行、应用程序活动、安全事件等关键信息。通过日志文件,系统管理员可以监控系统的运行状态、发现潜在的问题,并进行故障排除。日志的作用:帮助我们可以更快的排查和发现问题。原创 2024-11-28 20:40:08 · 734 阅读 · 0 评论 -
科普文:软件架构之Linux系列【linux内核数据结构:链表、队列、映射、二叉树】
①rbtree的根节点由数据结构rb_root描述,创建一个红黑树,要分配一个新的rb_root结构,并且需要初始化为特殊值RB_ROOT.树里其他节点由结构rb_node描述。rbtree的实现并没有提供搜索和插入例程,这些例程由rbtree的用户自己定义,可以使用rbtree提供的辅助函数,但要自己实现比较操作②搜索实例,实现了在页高速缓存中搜索一个文件区(由一个i节点和一个偏移量共同描述),每个i节点都有自己的rbtree,以关联在文件中的页便宜。原创 2024-11-22 22:30:55 · 769 阅读 · 0 评论 -
科普文:软件架构之Linux系列【linux内核:Oops调试方法】
oops_enter() ---> oops_exit() 为Oops 的处理流程,获取console 的log 级别,并通过 __die() 通过对Oops 感兴趣的模块进行callback,打印模块状态不为 MODULE_STATE_UNFORMED 的模块信息,打印PC、LR、SP、x0 等寄存器信息,打印调用栈信息,等等。当出现 oops,并且如果有源码,可以通过 arm 的 arch64-linux-gnu-objdump 工具看到出错的函数的汇编情况,也可以通过 GDB 工具分析。原创 2024-11-22 21:19:08 · 1155 阅读 · 0 评论 -
科普文:软件架构之Linux系列【linux内核数据结构汇总】
Linux 内核提供了许多复杂的数据结构,这些结构被广泛用于各种不同的目的,例如存储设备管理、内存管理、进程管理等。以下是一些常见的数据结构以及它们的简要描述:双向链表(list):实现链表的数据结构,每个节点都包含指向前一个和后一个节点的指针。红黑树(rbtree):二叉搜索树的变体,其节点之间的关系以红色或黑色关系确定,以保持 log(n) 的搜索时间。哈希表(hashtable):一种数据结构,用于存储键值对,可以通过键快速检索值。任务队列(task_struct):内核中表示单个原创 2024-11-22 19:04:23 · 694 阅读 · 0 评论 -
科普文:软件架构之Linux系列【linux内核:Linux Kernel Module(LKM) Init、Delete Code Principle、Kprobe Hooking Princip】
模块是一种向linux内核添加"设备驱动程序"、"文件系统"、"其他组件"的有效方法,而无须重新编译内核或重启系统,这消除了许多限制,同时带来了很多的优点1. 通过使用模块,内核程序员能够预先编译大量驱动程序,而不会致使内核映像的尺寸发生膨胀。在自动检测硬件或用户提示后,安装例程会选择适当的模块并将其添加到内核中2. 内核开发者可以将试验性的代码打包到模块中,模块可疑卸载,修改代码或重新打包后再重新加载,这使得可以快速测试新特性,无需每次都重启系统3. 模块(LKM)可疑无缝地插入到内核中,同时模块原创 2024-11-22 18:30:44 · 1022 阅读 · 0 评论 -
科普文:软件架构之Linux系列【linux内核调试技术汇总】
Kexec 是实现 kdump 机制的关键,它包括 2 个组成部分:一是内核空间的系统调用 kexec_load,负责在生产内核(production kernel 或 first kernel)启动时将捕获内核(capture kernel 或 sencond kernel)加载到指定地址。二是用户空间的工具 kexec-tools,他将捕获内核的地址传递给生产内核,从而在系统崩溃的时候能够找到捕获内核的地址并运行。没有 kexec 就没有 kdump。原创 2024-11-22 01:48:39 · 1362 阅读 · 0 评论 -
科普文:软件架构之Linux系列【Linux性能优化:CPU性能优化原理】
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数,与CPU使用率没有直接关系。可运行状态进程是指正在使用CPU或者正在等待CPU的进程,即处于R状态(Running 或 Runnable)的进程。不可中断状态进程是正处于内核态关键流程(不可中断)中的进程,如常见的等待硬件设备的I/O响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为Disk Sleep)的进程。原创 2024-11-19 21:25:36 · 691 阅读 · 0 评论 -
科普文:软件架构之Linux系列【Linux压力测试工具Stress】
Stress它可以有效地模拟CPU、内存、I/O以及磁盘空间等方面的压力负载。通过使用stress,我们可以轻松测试系统的健壮性和稳定性,尤其在硬件升级、系统优化或者环境迁移前,进行压力测试可以帮助我们更早地发现可能存在的问题。原创 2024-11-19 20:03:52 · 862 阅读 · 0 评论 -
科普文:软件架构Linux系列之【Linux性能分析:CPU、内存、磁盘和网络等四方面性能分析定位】
从事Linux后台开发的同学,总会遇到一些的问题,可以通过以下方法逐步定位,涉及CPU、内存、磁盘和网络四大方面。建议从CPU-->内存-->磁盘-->网络依次排查,如果可以明确是该方面问题,直接从该问题类型向下排查。1、CPU问题?使用 top 等命令查看 CPU 使用率和负载是否过高。(1)内核空间占了大多数 CPU?通过 top 命令查看内核占用 CPU 比例是否过大。(2)内核处理了很多中断吗?/proc/interrupts查看中断次数和频率,以及造成中断数量较高的设备。原创 2024-11-19 07:05:41 · 703 阅读 · 0 评论 -
科普文:软件架构Linux系列之【Linux内核:进程调度策略之多样选择与高效管理】
进程调度策略在操作系统中起着至关重要的作用,不同的调度策略各有其优缺点,需要根据实际情况进行选择和优化。先来先服务调度算法(FCFS)简单公平,但可能导致短作业等待时间过长,对 I/O 密集型进程不利。短作业优先调度算法(SJF)能最大程度减少平均等待时间,但实现困难且可能导致长作业饥饿。优先级调度算法灵活但可能出现饥饿现象。时间片轮转调度算法(RR)公平性高、响应时间快,但时间片长度选择不当会影响系统性能。最短剩余时间优先算法(SRTN)能减少平均等待时间和周转时间,但实现复杂。抢占式优先级调原创 2024-11-11 13:16:01 · 1131 阅读 · 0 评论 -
科普文:软件架构Linux系列之【Linux内核:进程调度机制原理】
Linux内核中,进程(Process)是最基本的执行实体,它代表了正在执行的程序的实例。进程调度在操作系统中处于核心地位,是操作系统实现多任务处理的关键机制。它就如同乐队的指挥,确保各个进程在有限的 CPU 资源下有序地执行。在现代计算机系统中,往往有多个进程同时竞争 CPU 资源。如果没有有效的进程调度,系统可能会陷入混乱,导致某些进程长时间占用 CPU,而其他进程无法得到执行机会。原创 2024-11-11 13:00:37 · 706 阅读 · 0 评论 -
科普文:软件架构Linux系列之【Linux内核5个子系统:进程调度控制系统】
内核代表特定的进程执行相当长的时间,而其他进程则无法运行。除了周期性调度外,在内核中的很多地方,如果要将 CPU 分配给另一个进程,都会直接调用主动调度器,比如在系统调用结束后,内核会检查当前进程是否设置了重新调度标志 TIF_NEED_RESCHED,前面介绍的周期性调度器可能就会设置该标志,举个例子:可能一个进程调用了一个花销较大的系统调用,在未开启内核抢占的情况下,其他进程无法抢占该系统调用,只会将该进程的 TIF_NEED_RESCHED 设置为 1,等其系统调用结束后,主动进行进程调度。原创 2024-11-11 12:42:25 · 768 阅读 · 0 评论 -
科普文:软件架构Linux系列之【Linux内核的IO调度算法及调度器scheduler】
在说完以上这些调度程序的内在原理,结合实际我们来看看我们线上的使用场景。IO调度器算法的选择,既取决于硬件特征,也取决于应用场景。数据归档业务 — 大量顺序请求,CFQ调度够用(程序不多的情况下Deadline无明显优势,可能会有劣势)云计算业务 — 大量进程同时读写单个控制器,适合Deadline调度跑在SSD上的业务 — 寻址不再是瓶颈,可以考虑NOOP调度,节省CPU对IO排序的消耗。原创 2024-11-11 12:02:25 · 785 阅读 · 0 评论 -
科普文:软件架构Linux系列之【搞懂计算机架构NUMA(Non-Uniform Memory Access)非一致性内存访问】
前面我们梳理过“3款CPU架构(SMP, NUMA, MPP)和2款共享存储架构(UMA和NUMA)梳理”;从系统架构来看,目前的商用服务器大体可以分为三类对称多处理器结构(SMP:Symmetric Multi-Processor)非一致存储访问结构(NUMA:Non-Uniform Memory Access)海量并行处理结构(MPP:Massive Parallel Processing)。共享存储型多处理机有两种模型。原创 2024-11-10 07:52:24 · 1538 阅读 · 0 评论 -
科普文:软件架构Linux系列之【linux内存回收 之 File page的 lru list算法原理】作者PilgrimTao
Lru(Least Recently Used)即最近最少使用算法。内核在管理用户内存页(user page)时便是应用了Lru算法。User page 包含匿名页(anonymous page)和文件页(file page)。进程私有页为匿名页,例如,Malloc函数申请的内存都为匿名页;进程间共享页为文件页,例如,read/write/mmap file时产生的内存消耗为文件页(又称page cache)。今天我们以管理文件页的lru链表为例子讲解lru在kernel内存管理方面的应用原创 2024-11-08 20:38:33 · 943 阅读 · 0 评论 -
科普文:软件架构Linux系列之【文件系统:文件读取过程】
在前面的文章中,,主要对存储文件的磁盘的一些基础知识进行了介绍。对于Linux系统来说,一切的数据都起源于磁盘中存储的文件。Linux文件系统的结构及其在磁盘中是如何存储的?操作系统是怎样找到这些文件进行读取的?原创 2024-11-07 22:36:52 · 1171 阅读 · 0 评论 -
科普文:软件架构Linux系列之【从硬件角度了解固态盘SSD】
固态硬盘(Solid State Drives),用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。原创 2024-11-07 13:14:17 · 684 阅读 · 0 评论 -
科普文:软件架构Linux系列之【从硬件角度了解机械盘HDD】
从冯诺依曼架构,磁盘是外存,用于大容量,长期保持数据,目前外存主要是HDD和SSD。前面我们了解了cpu、内存、磁盘阵列,今天我们继续看看外存中的HDD机械盘。机械硬盘(Hard Disk Drive,HDD),也叫机械磁盘,是一种利用磁性技术进行数据存储的设备。它由一个或多个碟片组成,每个碟片都有一个磁性表面,可存储数以千万计的数据。在这篇文章中,我们将详细介绍机械硬盘的原理、组成和工作原理。原创 2024-11-07 12:40:22 · 1009 阅读 · 0 评论 -
科普文:软件架构Linux系列之【读懂Linux内存管理:mmap(Memory-Mapped File)内存映射文件】
由上文讨论可知,mmap优点共有一下几点:1、对文件的读取操作跨过了页缓存,减少了数据的拷贝次数,用内存读写取代I/O读写,提高了文件读取效率。2、实现了用户空间和内核空间的高效交互方式。两空间的各自修改操作可以直接反映在映射的区域内,从而被对方空间及时捕捉。3、提供进程间共享内存及相互通信的方式。不管是父子进程还是无亲缘关系的进程,都可以将自身用户空间映射到同一个文件或匿名映射到同一片区域。从而通过各自对映射区域的改动,达到进程间通信和进程间共享的目的。原创 2024-11-06 22:30:04 · 1025 阅读 · 0 评论 -
科普文:软件架构Linux系列之【一文读懂Linux内存管理】作者|花儿
Linux内存管理总体架构Linux内存管理主要包括物理内存管理和虚拟内存管理两部分。物理内存管理涉及对物理地址的管理,而虚拟内存管理则涉及到进程的地址空间映射。Linux内存管理的总体架构可以概括为:物理内存被划分为不同的区域(zones),每个区域有不同的用途;虚拟地址空间被划分为用户空间和内核空间,用户空间由各个进程共享,内核空间由内核独占。原创 2024-11-06 22:07:34 · 740 阅读 · 0 评论 -
科普文:软件架构Linux系列之【图解Linux内存映射】
Linux内存管理主要包括物理内存管理和虚拟内存管理两部分。物理内存管理涉及对物理地址的管理,而虚拟内存管理则涉及到进程的地址空间映射。Linux内存管理的总体架构可以概括为:物理内存被划分为不同的区域(zones),每个区域有不同的用途;虚拟地址空间被划分为用户空间和内核空间,用户空间由各个进程共享,内核空间由内核独占。原创 2024-11-06 22:05:20 · 689 阅读 · 0 评论 -
科普文:软件架构Linux系列之【详解Linux内存管理】
内存管理是计算机系统中负责管理系统内存资源的一种机制,主要包括内存分配、内存释放、内存映射和虚拟内存管理等方面。它是计算机系统中非常重要的一个组成部分,能够有效地提高系统的资源利用率和应用程序的性能。Linux作为一种开源的操作系统,其内存管理机制具有较高的灵活性和可定制性,能够满足不同应用场景下的需求。因此,了解Linux内存管理机制对于系统管理员和开发人员来说是非常重要的。操作系统通过内存管理机制来完成对内存的分配和管理,包括虚拟内存的地址映射、内存分配与回收、进程的内存管理等。原创 2024-11-06 21:40:02 · 644 阅读 · 0 评论 -
科普文:软件架构Linux系列之【从硬件角度了解内存DRAM和DDR5】
内存(DRAM-Random Access Memory)作为当代数字系统最主要的核心部件之一,从各种终端设备到核心层数据处理 和存储设备,从各种消费类电子设备到社会各行业专用设备,是各种级别的 CPU 进行数据处理运算和缓存的不可或缺的周转“仓库”,一个强大的核心处理单元也必须配备一个高速运转的宽通路的数据访问和存储单元。存储芯片基本分类。存储器主要分为只读存储器 ROM 和随机存取存储器 RAM (random access memory) 两大类。-ROM:只读存储器。原创 2024-11-06 20:58:13 · 969 阅读 · 0 评论