Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1753191
  • 博文数量: 199
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 6186
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-30 11:01
个人简介

Linuxer.

文章存档

2015年(4)

2014年(28)

2013年(167)

发布时间:2014-08-18 20:24:02

一、概述程序启动时,stack_canary将随机选择的小整数值保存在返回地址保存位置之前。大部分缓冲溢出攻击是从内存地址的低位向高位覆盖写内存,所以为了覆写返回地址,必须覆写canary值。因此可使用返回地址在返回前查看canary值,从而确认是否发生栈缓冲溢出攻击。//初始化栈canary值,can.........【阅读全文】

阅读(3160) | 评论(0) | 转发(2)

发布时间:2014-08-18 20:23:20

一、概述debug_objects_early_init()函数用于内核的对象调试。依赖配置CONFIG_DEBUG_OBJECTS。二、相关结构体struct debug_bucket {    struct hlist_head    list;    //挂载的是当前debug_ob.........【阅读全文】

阅读(3188) | 评论(0) | 转发(2)

发布时间:2014-08-18 20:22:46

一、概述如果仔细地阅读完初始化函数start_kernel,就会发现里面还有调用smp_processor_id()函数,这两个函数都是获取多处理器的ID,为什么会需要两个函数呢?其实这里有一个差别的,smp_setup_processor_id()函数可以不调用setup_arch()初始化函数就可以使用,而smp_processor_id()函数是一定要调用s.........【阅读全文】

阅读(5979) | 评论(0) | 转发(4)

发布时间:2014-08-18 20:22:09

一、概述在Linux系统里,假设有两处代码(比如不同线程的两个函数F1和F2)都要获取两个锁(分别为L1和L2),如果F1持有L1后再去获取L2,而此时恰好由F2持有L2且它也正在尝试获取L1,那么此时就是处于死锁的状态,这是一个最简单的死锁例子,也即所谓的AB-BA死锁。死锁导致的最终.........【阅读全文】

阅读(3793) | 评论(0) | 转发(2)

发布时间:2014-08-14 11:18:50

        使用scatterlist的原因就是系统在运行的时候内存会产生很多碎片,比如4k,100k的,1M的,有时候对应磁盘碎片,总之就是碎片。而在网络和磁盘操作中很多时候需要传送大块的数据,尤其是使用DMA的时候,因为DMA操作的物理地址必须是连续的。假设要1M内存,此时可以分配一个整.........【阅读全文】

阅读(2077) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册