E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux内存
linux内存
管理(一)源码解析之内核虚拟内存布局
本文kernel代码分析基于以下1.linux-4.14.1592.64bit代码处理逻辑
linux内存
管理非常复杂及庞大,这节我们看下内核虚拟内存布局,理解内核内存布局对认识内存管理至关重要,我们从源码来进行解析
jkzzxQQQ
·
2023-06-14 07:26
linux内核源码研究
linux
内核
内存管理
源码
深度剖析 Linux 伙伴系统的设计与实现
在上篇文章《深入理解Linux物理内存分配全链路实现》中,笔者为大家详细介绍了
Linux内存
分配在内核中的整个链路实现:但是当内核执行到get_page_from_freelist函数,准备进入伙伴系统执行具体内存分配动作的相关逻辑
·
2023-06-13 12:52
Linux内存
page,Linux虚拟内存管理 - Page Table的作用
虚拟内存的作用:1.扩展实际有限的物理内存,当然这种扩展是虚拟的,比如物理内存512M,对于一个需要1G空间的进程来说,照样可以运行。这增加了操作系统是应用范围。2.使得进程中的数据空间增大,增大到多少与硬件有关,对于一个32位的芯片,进程中的数据空间可以为4G[2^32],对于64位的芯片则支持2^64大小的空间。这一点使得进程自身可操作的空间大大增加。通俗来讲,虚拟内存的管理的核心是解决如何在
weixin_39549110
·
2023-06-13 06:40
Linux内存page
Linux内存
管理中对PAGE_OFFSET的理解
Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为"用户空间")。因为每个进程可以通过系统调用进入内核,
艾特号
·
2023-06-13 06:06
#
Linux
内存与存储
linux
内存结构
内核
内核解读之内存管理(4)内存管理三级架构之page
我们前面介绍了
linux内存
管理的三级架构,node->zone->page。本节就来介绍page。
奇妙之二进制
·
2023-06-13 06:32
架构
linux
运维
一文讲透
Linux内存
管理
一、
Linux内存
管理概述
Linux内存
管理是指对系统内存的分配、释放、映射、管理、交换、压缩等一系列操作的管理。
LinkSLA
·
2023-06-13 02:45
linux
java
服务器
为什么echo 0 > /proc/sys/vm/drop_caches会报错
由于
Linux内存
经常会被cached占很多(Linux优化速度的机制,理所当然的占用),有时系统需要很大的真实free,导致程序报错。
忆无时
·
2023-06-11 15:36
linux
centos
服务器
运维
Linux内存
子系统——分配物理页面(alloc_pages)
Linux内存
子系统——分配物理页面(alloc_pages)分配页面 内核中常用的分配物理内存页面的接口函数是alloc_pages(),用于分配一个或多个连续的物理页面,分配的页面个数只能是2的整数次幂
绍兴小贵宁
·
2023-06-10 13:40
Linux
#
内存
内存管理
内存结构
linux
CTF-PWN笔记(一)-- 栈溢出 之 基础ROP
文章目录栈
linux内存
布局原理文件保护机制CanaryNX(DEP)PIE(ASLR)RELROROPret2txtret2shellcoderet2syscallret2libc栈栈是一种典型的后进先出
Chiaki_0ff
·
2023-06-09 05:47
网络安全
python
网络安全
Linux内存
管理7——深入理解 slab cache 内存分配全链路实现
1.slabcache如何分配内存当我们使用fork()系统调用创建进程的时候,内核需要为进程创建task_struct结构,structtask_struct是内核中的核心数据结构,当然也会有专属的slabcache来进行管理,task_struct专属的slabcache为task_struct_cachep。下面笔者就以内核从task_struct_cachep中申请task_struct对
小吴伴学者
·
2023-06-08 06:00
Linux内存管理篇
linux
运维
服务器
Linux内存
初始化-启动阶段的内存初始化
本文代码基于ARM64平台,Linuxkernel5.15在加载kernel之前,kernel对于系统是有一定要求的,明确规定了boot阶段必须要把MMU关闭:arch/arm64/kernel/head.S/**Kernelstartupentrypoint.*---------------------------**Therequirementsare:*MMU=off,D-cache=off
简说Linux内核
·
2023-06-07 07:34
linux
运维
服务器
Linux内核
驱动开发
《嵌入式
Linux内存
与性能详解》笔记4——性能优化
一、前言前面讲了关于内存方面的优化,那么接下来的文章我们主要聚焦于性能的优化,那么主要体现在优化程序速度上。程序的速度很大程度上会影响用户体验或者程序的实际效用,所以优化性能速度也是程序员需要关注的一个方面,从本文起接下来的几篇文章将讲述如何对程序性能进行优化。二、优化思想在讲解优化之前,我们先看一下优化的思想,它可以保证我们在学习或者优化的过程中保持对问题的关注,让我们知道是在学习什么跟如何优化
wipping的技术小栈
·
2023-04-21 08:01
Linux内存
机制(swap)
本文介绍
linux内存
机制、虚拟内存swap释放等原理及实操。一、什么是linux的内存机制?二、linux什么时候开始使用虚拟内存(swap)?三、怎么释放内存?四、怎么释放swap?
张都尉
·
2023-04-21 02:20
溯源取证-
Linux内存
取证 中难度篇
原谅我这么晚才出来文章,因为最近忙着录课,至于为啥没有基础篇,是因为靶场里没看见,哈哈这个也是研究了好几个晚上才出来的东西,此处场景为linux环境下的rootkit病毒,我们通过这篇文章可以通过内存取证发现rootkit病毒相关的知识,我个人觉得还是挺实用的,比较linux的rootkit病毒在不借助工具的前提下是不太好发现的使用工具:volatility_2.6_lin64_standalon
vlan911
·
2023-04-20 21:48
溯源取证
linux
bash
运维
溯源取证
安全
安卓进阶系列-系统基础
我喜欢我喜欢花我喜欢绿色树叶上面的被雨打过留下的露珠我喜欢暖风我喜欢干净我喜欢咸咸的海风喜欢喜欢的感觉愿我此感觉常驻同样祝福你文章目录计算机结构冯·诺依曼结构哈弗结构冯·诺依曼结构与哈弗结构对比安卓采用的架构安卓操作系统进程间通讯(IPC)内存共享
linux
陈德山
·
2023-04-20 05:27
Android进阶
android
java
操作系统
REDIS集群安装运维调优及常见问题处理
一、集群调优1.1
Linux内存
内核参数优化:Vm.overcommit_memory参数说明:文件指定了内核针对内存分配的策略,其值可以是0、1、2。
IT巅峰技术
·
2023-04-19 20:14
Cgroup - 内存子系统 Memory Resource Controller
自序本文译自kernel文档《MemoryResourceController》虽然是官方文档,但是有用的信息真的不多,推荐阅读此博客,我深入研究后,将写有关
linux内存
管理的系列文章,争取将号称linux
蟹蟹宁
·
2023-04-19 02:32
linux内存
管理 (二) 1 硬件总览 ARMv6 存储系统 Memory and System Architectures
存储相关硬件及机制存储相关硬件及机制需要关注的硬件CACHE/BUFFER/TCM根据[
linux内存
管理(一)
Linux内存
管理发展历史及进程地址空间抽象](https://blog.csdn.net
__pop_
·
2023-04-18 16:29
Linux内存管理
linux内存
管理 (三) 8 内核启动从start到start_kernel过程中的相关符号的注解
u-boot相关的地址请参考
linux内存
管理(三)6u-boot引导内核相关地址zImage启动过程中的符号//linux-3.0.1/arch/arm/boot/compressed/head.S131
__pop_
·
2023-04-18 16:29
Linux内存管理
linux
运维
服务器
linux内存
管理 (二) 2.3 硬件 MMU及其运行过程 关键过程二 translation table walk
前言===========================================虚拟地址和物理地址的转换关键过程2TableWalkUnit从主存中的转换表(页表)中获取pa1.转换表地址(CP15的c2寄存器中,存放的是页表基址的物理地址)//Translationtablebase(TTB)register2.转换表条目转换表通过将虚拟地址空间划分为相等大小的块,将物理地址空间划分为
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.5 硬件 MMU及其运行过程 关键过程四 DDR
===========================================虚拟地址和物理地址的转换关键过程4根据物理地址pa从主存中其他部分中获取value操作总线,根据ddr时序读取主存,时序在总线(时钟/控制/数据/地址)上展现.具体参考[嵌入式linux开发(九)RAM(3)s3c2440外扩sdram](https://blog.csdn.net/u011011827/arti
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.6 硬件 MMU的操作手册
引言为什么linux会发展成这个样子,这当然是程序员对程序的要求决定的,为了满足这些要求,提出了进程地址空间抽象(1),其中硬件上增加了新的模块MMU(2),软件上根据MMU的使用手册(3)更新了系统另外在进程地址空间抽象的基础上,软件上更新了很多新的内存特性(4).这里主要讲MMU的使用手册(3)回顾MMU是做什么的?翻译翻译过程中用到了哪些硬件cpummummu中的TLBsmmu中的Table
__pop_
·
2023-04-18 16:59
Linux内存管理
linux
运维
服务器
linux内存
管理 (二) 3.1 硬件 CP15系统控制协处理器
引言为什么linux会发展成这个样子,这当然是程序员对程序的要求决定的,为了满足这些要求,提出了进程地址空间抽象(1),其中硬件上增加了新的模块MMU(2),软件上根据MMU的使用手册(3)更新了系统另外在进程地址空间抽象的基础上,软件上更新了很多新的内存特性(4).这当中并没有提到硬件做的其他工作.例如为了管理MMU,ARM核心上还增加了CP15我们可以通到代码来通过控制CP15,从而来控制MM
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.1 硬件 MMU及其运行过程 总览
引言为什么linux会发展成这个样子,这当然是程序员对程序的要求决定的,为了满足这些要求,提出了进程地址空间抽象(1),其中硬件上增加了新的模块MMU(2),软件上根据MMU的使用手册(3)更新了系统另外在进程地址空间抽象的基础上,软件上更新了很多新的内存特性(4).这里主要讲新的模块MMU(2),且我们这里只看arm的mmuARM-MMU文档科普文档MMU是soc芯片里面的一个硬件单元去arm官
__pop_
·
2023-04-18 16:59
Linux内存管理
linux内存
管理 (二) 2.4 硬件 MMU及其运行过程 关键过程三 cache
===========================================虚拟地址和物理地址的转换关键过程3根据物理地址pa从cache中获取value缓存中的基本存储单元是缓存线。缓存线包含缓存数据或指令时称为有效,不包含缓存数据或指令时称为无效。重置时,缓存中的所有缓存线都将失效。当数据或指令从内存加载到缓存线时,缓存线将变为有效。当缓存线有效时,它包含连续主存位置块的最新值。缓存
__pop_
·
2023-04-18 16:29
Linux内存管理
linux内存
管理 (一)
Linux内存
管理发展历史及进程地址空间抽象
引言嵌入式linux开发(三十五)内存管理3.0(1)
linux内存
管理之用户空间相当于
Linux内存
管理的引言上面这篇文章介绍了linuxOS提供给应用程序的(虚拟)地址空间应用程序的地址空间分6段(
__pop_
·
2023-04-18 16:28
Linux内存管理
linux内存
管理 (二) 2.2 硬件 MMU及其运行过程 关键过程一 TLB
===========================================虚拟地址和物理地址的转换关键过程1从TLBs获取pa当处理器要访问一个虚拟地址时,首先会在TLB中查询。如果TLB表项中没有相应的表项,称为TLBMiss,那么就需要1.访问页表(translationtablewalk)来计算出相应的物理地址。2.并在TLB中放置映射如果TLB表项中有相应的表项,那么直接从TL
__pop_
·
2023-04-18 16:28
Linux内存管理
Linux内存
泄漏
内存泄漏:内存泄漏一般指的是堆内存的泄漏。堆内存是指程序从堆中分配的、大小任意的(内存块的大小可以在程序运行期决定)、使用完后必须显示的释放的内存。应用程序一般使用malloc、realloc、new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块。否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。如何知道是否内存泄漏?有些简单的内存泄漏问题可以
TX564
·
2023-04-18 15:54
数据结构
c语言
linux
Linux内存
映射基础概念
什么是内存映射内存映射(MemoryMapping)是Linux操作系统中一种重要的内存管理技术。它允许程序将一个文件或者其他对象映射到进程的虚拟地址空间中,从而使得程序可以像访问内存一样直接访问文件。这种技术的优势在于提高了文件访问的效率,减少了内核和用户空间之间的数据拷贝。在Linux中,内存映射主要涉及以下几个方面:虚拟内存:Linux操作系统使用虚拟内存(VirtualMemory)管理物
阿宋同学
·
2023-04-17 20:57
Linux
Linux
内存映射
进程间通信
如何检查 Linux 内存使用量是否耗尽?这5个命令堪称绝了!
因此,了解如何检查
Linux内存
使用量是否耗尽是非常重要的。下面是一些常用的方法,可以帮助您检查
Linux内存
使用量是否耗尽。1.使用free命令free命令是一个用于查看系统内存使用情况的工具。
wljslmz
·
2023-04-17 10:53
Linux技术
Linux
Linux内存
控制器(一)
1.memory_cgrp_subsys//cftype:用于定义和描述控制组的控制文件//cftype->private:描述资源类型和资源属性//dfl_cftypes和legacy_cftypes都是cftype的成员structcgroup_subsysmemory_cgrp_subsys={.css_alloc=mem_cgroup_css_alloc,.css_online=mem_c
bubbleben
·
2023-04-17 04:00
Linux内存管理
linux
linux内存
管理
一、内存管理简述在Linux内核中,RAM会将其中一部分永远分配给内核,用来存放Linux内核源码以及一些静态的数据结构。而剩余部分则被称之为动态内存,是进程和内核本身所需的宝贵资源。事实上,整个系统的性能就取决于如何能高效地管理动态内存。因此,现在所有多任务操作系统都在优化对动态内存的使用,通俗讲就是,尽可能的做到当需要时分配,不需要时释放。二、物理内存和虚拟内存操作系统中存在虚拟内存和物理内存
wwwlyj123321
·
2023-04-16 05:31
linux内存管理
linux
运维
服务器
Linux内存
管理基础
系统启动之
Linux内存
管理基础Keywords非一致内存访问(NUMA)模型、节点(node)、内存管理区(Zone)、一致内存访问(UMA)模型、内核页表、内存管理区分配器(伙伴系统BuddySystem
unclerunning
·
2023-04-16 05:01
操作系统
内存管理
linux
启动
idle
init
Linux内存
管理 (3)内核内存的布局图
专题:
Linux内存
管理专题关键词:内核内存布局图、lowmem线性映射区、kernelimage、ZONE_NORMAL、ZONE_HIGHMEM、swapper_pg_dir、fixmap、vector
weixin_33775582
·
2023-04-16 05:01
内存管理
嵌入式
linux arm的高端内存映射详解,
Linux内存
管理之高端内存映射(转贴)
转载请注明出处:http://ericxiao.cublog.cn/------------------------------------------一:引子我们在前面分析过,在
linux内存
管理中,
weixin_39807352
·
2023-04-16 05:01
linux
arm的高端内存映射详解
Linux内存
分配相关函数详解
Linux内存
分配相关函数详解kmalloc()、kzalloc()、vmalloc().动态申请内存MMU操作系统中的内存管理虚拟内存机制页式内存管理内核虚拟内存布局kmalloc()与kfree()
大大棋
·
2023-04-16 05:30
Linux杂项
linux
内核
Linux内存
管理(七):fixmap详解
源码基于:Linux5.4约定:芯片架构:ARM64CONFIG_ARM64_VA_BITS:39CONFIG_ARM64_PAGE_SHIFT:120.前言内核启动首先会进入汇编阶段,mmu已经启动(也就是说,当前SOC只能使用虚拟地址访问RAM),paging_init还没有完成调用,在内核启动过程需要访问某些特定的内核模块(例如dtb)时,就需要将虚拟地址和物理地址进行映射。这就是fixma
私房菜
·
2023-04-16 05:27
Linux
内存管理
linux
fixmap
early_fixmap_
__pgd_populate
深度剖析 Linux 伙伴系统的设计与实现
在上篇文章《深入理解Linux物理内存分配全链路实现》中,笔者为大家详细介绍了
Linux内存
分配在内核中的整个链路实现:但是当内核执行到get_page_from_freelist函数,准备进入伙伴系统执行具体内存分配动作的相关逻辑
bin的技术小屋
·
2023-04-15 13:43
聊聊
Linux
内核
linux
云计算
细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现
1.前文回顾在之前的几篇内存管理系列文章中,笔者带大家从宏观角度完整地梳理了一遍
Linux内存
分配的整个链路,本文的主题依然是内存分配,这一次我们会从微观的角度来探秘一下Linux内核中用于零散小内存块分配的内存池
bin的技术小屋
·
2023-04-15 13:43
聊聊
Linux
内核
linux
linux内存
模型
转自:
Linux内存
管理(五)内存模型-知乎本文基于以下软硬件假定:架构:AARCH64内核版本:5.14.0-rc51平坦内存模型linux内核采用页式内存管理,这种方式将整个物理地址空间划分成一系列以页帧为单位
wmzjzwlzs
·
2023-04-14 21:40
linux
driver
linux
Linux 内存地址分布
文章目录一、背景1.1深入浅出了解(.text、.data、.bss、堆空间、栈空间)的含义二、转载:
linux内存
空间(三)内存地址范围和例子三、其他资料一、背景对程序内存理解只停留在栈内存、堆内存阶段
mayue_csdn
·
2023-04-14 10:15
linux编程
linux
服务器
运维
理解内存中的Buffer和Cache
上一节,我们梳理了
Linux内存
管理的基本原理,并学会了用free和top等工具,来查看系统和进程的内存使用情况。
tracy_668
·
2023-04-12 14:02
linux内存
泄露检查工具
文章目录内存泄漏检查工具Valgrindmtrace内存泄漏检查工具测试代码(包含mtrace部分):$cattest.c#include#include#includeintmain(){mtrace();int*n=(int*)malloc(sizeof(int)*4);muntrace();return0;}编译:#必须添加-g参数,不然无法确认是在哪个文件的第几行出现问题$gcc-g-ot
edycm
·
2023-04-10 03:55
linux
linux
运维
服务器
char和wchar_t的关系以及wprintf的应用
算法Linux
linux内存
里的wchar_t和char字符串存储是转换成对应的编码按16进制字节存储可以通过查看内存中存储的字节了解字符串对应的编码#include#include#include#include
_Ataraxia
·
2023-04-09 11:31
Linux
Linux0.11内核的进程管理机制
前言:上一篇讲到
Linux内存
管理机制,内存管理机制的存在使得cpu和进程可以使用比物理内存大的多的内存空间,这是现代计算机高吞吐量和高可靠性的保障。
guhong1995
·
2023-04-07 15:55
linux
运维
服务器
Linux内存
分配器(页面/slab/per-CPU)API
一、pglist_data(物理内存节点)、zone_type(物理内存区域)和page(物理内存页)1)pglist_data二种物理内存模型如下所示,其中UMA模型中所有内存空间对系统中的处理器而言具有相同的访问特性,也即系统中所有处理器对这些内存的访问具有相同的速度;而在NUMA中处理器与处理器之间通过总线连接起来以支持对其他处理器本地内存的访问,处理器访问本地内存的速度要快于其他处理器本地
shuaifeng.zhang
·
2023-04-07 03:56
Linux
Kernel
linux
内存保护linux指令,
Linux内存
管理之MMU的过程
之前写过一篇《CPU是如何访问内存的?》的文章,简单介绍了cpu访问内存的过程。有了之前的感性认识,这篇站在arm的角度再深度讲解一下,看完你会发现不理解arm原理就直接撸内核代码简直是耍流氓。ARMv8中的访问内存流程我喜欢用图的方式来说明问题,简单直接:蓝色部分是cpu,灰色部分是内存,白色部分就是cpu访问内存的过程,也是地址转换的过程。在解释地址转换的本质前我们先理解下几个概念:TLB:M
麻一
·
2023-04-06 07:01
内存保护linux指令
Java开发社招面试经验:java常量定义表头
前言今天来带大家研究一下
Linux内存
管理。
Java德克士
·
2023-04-05 21:28
程序员
java
后端
面试
Linux内存
管理架构之三(虚拟内存区块划分)
目录1.虚拟内存空间布局2.内核映射区2.1线性映射区2.2低端内存2.2.1线性映射区大小确定2.3高端内存2.3.1什么是highmemory,为什么要有highmemory2.3.2一些结论:2.4pkmap区(在64位上慢慢被舍弃)2.5fixmap区(3M)编辑2.6modules区(很鸡肋,未来内核可能考虑去掉)3.用户进程3.1用户页表3.2fork函数3.3缺页异常3.3.1什么是
水乡夜航
·
2023-04-04 20:23
Linux内核结构学习
数据库
linux
c语言
学习
linux堆内存管理映射图,
Linux内存
管理之mmap详解:mmap进行内存映射的原理
#include/*ThisstructdefinesamemoryVMMmemoryarea.*/structvm_area_struct{structmm_struct*vm_mm;/*VMareaparameters*/unsignedlongvm_start;unsignedlongvm_end;/*linkedlistofVMareaspertask,sortedbyaddress*/s
陆小凤的妹妹
·
2023-04-04 20:51
linux堆内存管理映射图
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他