linux内核
文章平均质量分 76
zhanxiaoqi
这个作者很懒,什么都没留下…
展开
-
linux高端内存
高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么? 因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。 实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。 因此,Linux 规定“内核直接映射空转载 2017-03-21 15:20:19 · 470 阅读 · 0 评论 -
linux内核kmalloc与vmalloc的区别.
一.kmalloc():用于申请较小的、连续的物理内存.1. 以字节为单位进行分配,在中2. void *kmalloc(size_t size, int flags):分配的内存物理地址上连续,虚拟地址上自然连续3. void kfree(const void *ptr):释放由kmalloc()分配出来的内存块二.vmalloc():用于申请较大的内存空间,虚拟原创 2017-03-21 11:49:12 · 3436 阅读 · 1 评论 -
linux内核中直接读写文件
我们在调试linux内核驱动程序时或者某些特殊场景下,需要直接读写文件,但是我们不适合直接使用系统调用sys_open(),sys_read(),sys_write()等.我们可以利用其它内核函数来实现,filp_open() ,filp_close(), vfs_read()vfs_write()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声明。1.原创 2017-03-20 15:37:28 · 6511 阅读 · 0 评论 -
linux下内存的统计和内存泄露类问题的定位
在产品的开发中,通过对当前系统消耗内存总量的统计,可以对产品所需内存总量进行精确的评估,从而选择合适的内存芯片与大小,降低产品的成本。在遇到内存泄露类问题时,经常会对此束手无策,本文通过对proc下进程相关的文件进行分析,精确评估系统消耗内存的大小,还可以对内存泄露类问题的解决提供一种定位手段。 Linux在内存使用上的原则是:如果内存充足,不用白不用,尽量使用内存来缓存一些文转载 2016-11-03 17:21:03 · 320 阅读 · 0 评论 -
linux内核符号表
System.map是内核符号表文件,是由“nm vmlinux”命令产生的,位于源码根目录。所谓“符号”就是函数名,全局变量名等东东,这个表就记录的这些“符号”在内核中的运行地址。(这个地址是Effective Address,虚地址)下面是文件的一个片段:c032ee18 t genl_initc032ef18 T netfilter_initc032efc转载 2016-11-03 15:44:26 · 896 阅读 · 0 评论 -
linux如何使用kprobes查看内核内部信息
使用printk打印变量等方法,是调试内核的有效方法之一,但是这种方法必须重新构建并用新内核启动,调试效率比较低。以内核模块的方式使用kprobes、jprobes,就可以在任意地址插入侦测器,执行包括printk在内的各种调试工作,而无须重新构建内核,也无须重启。一、首先内核必须支持kprobes、jprobes:#make menuconfigGeneral s转载 2016-11-03 14:29:48 · 1500 阅读 · 0 评论