Linuxer.
全部博文(199)
发布时间:2014-10-17 11:12:11
一、概述本文针对arm linux的启动过程。为了启动ARM Linux,你需要在内核之前运行一个引导程序(Boot loader).Boot loader的作用是初始化各种设备,调用Linux内核并给内核传递相关的消息。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通.........【阅读全文】
发布时间:2014-08-18 20:24:02
一、概述程序启动时,stack_canary将随机选择的小整数值保存在返回地址保存位置之前。大部分缓冲溢出攻击是从内存地址的低位向高位覆盖写内存,所以为了覆写返回地址,必须覆写canary值。因此可使用返回地址在返回前查看canary值,从而确认是否发生栈缓冲溢出攻击。//初始化栈canary值,can.........【阅读全文】
发布时间:2014-08-18 20:23:20
一、概述debug_objects_early_init()函数用于内核的对象调试。依赖配置CONFIG_DEBUG_OBJECTS。二、相关结构体struct debug_bucket { struct hlist_head list; //挂载的是当前debug_ob.........【阅读全文】
发布时间:2014-08-18 20:22:46
一、概述如果仔细地阅读完初始化函数start_kernel,就会发现里面还有调用smp_processor_id()函数,这两个函数都是获取多处理器的ID,为什么会需要两个函数呢?其实这里有一个差别的,smp_setup_processor_id()函数可以不调用setup_arch()初始化函数就可以使用,而smp_processor_id()函数是一定要调用s.........【阅读全文】