- 博客(10)
- 资源 (7)
- 收藏
- 关注
原创 linux 内存管理(17) - 理解堆栈
理解堆栈1.概念 一个由C/C++编译的程序占用的内存分为以下几个部分栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等。堆区:由程序员分配和释放,若程序员不释放,程序结束时可能由OS回收。全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量、未初始化的静态变量在相邻的另一块区域。文字常量区...
2020-03-30 22:20:43 2564
原创 如何创建基于arm 的Ubuntu rootfs
参考:https://blog.csdn.net/u010632165/article/details/78424000https://www.jianshu.com/p/7453d52f0324https://blog.csdn.net/sinat_37141443/article/details/80882219https://www.cnblogs.com/pengdonglin1...
2020-03-29 09:28:33 378
原创 linux 锁机制 - spinlock
了解linux spinlock1.spinlock 在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机制,但是现在中断上下文也参和进来,那些可以导致睡眠的lock就不能使用了,这时候,可以考虑使用spin lock。 spinlock又称自旋锁...
2020-03-22 13:33:38 727
原创 linux内存管理(16) - volatility
1.Linux Memory Extractor A Loadable Kernel Module (LKM) which allows for volatile memory acquisition from Linux and Linux-based devices, such as Android. This makes LiME unique as it is the first...
2020-03-15 20:05:18 680
原创 linux 内存管理(15) - mmap
了解mmap机制。1.概述 mmap 即地址的映射, 是一种内存映射文件的方法,将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。 Linu...
2020-03-11 17:47:10 633
原创 linxu 内核调试(3) - 内核loglevel
了解printk1.Description Specify the initial console log level. Any log messages with levels less than this (that is, of higher priority) will be printed to the console, whereas any messages with le...
2020-03-06 11:01:47 2350
原创 linux 内存管理(14) - paging_init
了解paging_init1.paging_init Linux物理内存初始化中,可知在paging_init调用之前,存放Kernel Image和DTB的两段物理内存区域可以访问了(相应的页表已经建立好)。尽管物理内存已经通过memblock_add添加进系统,但是这部分的物理内存到虚拟内存的映射还没有建立,可以通过memblock_alloc分配一段物理内存,但是还不能访问,一切还...
2020-03-05 22:28:43 429
原创 linux 内存管理 -- 调试方法
了解内存调试方法。1.free free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。默认情况下,即在没有选项的情况下,"free"命令显示内存的使用信息。默认按照k(b)的计数单位统计。total:表示 总计物理内存的大小。used:表示 已使用多少。free:表示 可用内存多少。Shared:表示多个进程共享的内存总额。Buffers...
2020-03-03 15:52:49 529
原创 linux 内存管理(13) - memblock
了解memblock机制。1.概述 在引导内核的过程中,需要使用内存, 而这个时候内核的内存管理并没有被创建, 因此也就需要一种精简的内存管理系统先接受这个工作, 而在初始化完成后, 再将旧的接口废弃, 转而使用强大的buddy系统来进行内存管理. 早期的Linux内核在引导阶段都是通过bootmem来完成初期的内存管理的, 但是后来的版本开始把bootmem弃用了,使用memblo...
2020-03-02 22:09:26 1400 1
原创 linux 内存管理(12) - 物理内存初始化
-了解linux物理内存初始化1.系统是怎么知道物理内存的? memory节点,以arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi为例: memory@80000000 { device_type = "memory"; reg = <0x00000000 0x80000000 0 0x80000000...
2020-03-01 19:58:19 993
Practical_Binary_Analysis
2019-02-15
Operating_Systems_From_0_to_1
2019-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人