
linux
zrlean
这个作者很懒,什么都没留下…
展开
-
Linux下的动态连接库及其实现机制
摘 要:本文介绍了动态连接库的优点,详细阐述了x86体系结构上Linux系统的编译器、连接器、加载器如何使用多种重定位方式来实现该功能 关键词:动态连接库;Linux;重定位 The Implementation Mechanism of DLL under Linux 【Abstract】In this paper, we discuss the advantage of using dy转载 2012-03-29 16:01:35 · 168 阅读 · 0 评论 -
spin_lock
*** include/linux/spinlock.h: spin_lock[283] static inline void spin_lock(spinlock_t *lock)原创 2014-09-23 23:01:20 · 324 阅读 · 0 评论 -
sparse 工具的介绍及简单应用
Sparse - a Semantic Parser for C sparse 是用于 C 语言的语法分析器,用以对 C 代码进行静态检查,它不但可以检查 ANSI C 而且还能检查具有 gcc 扩展的 C 。在 Linux 中,不但可以检查用户端代码,还可以检查内核代码。起初它由 linus 编写,后来交给其他人维护。 可以从下面的网址获得该工具: http://www.ker转载 2014-09-23 16:07:21 · 1090 阅读 · 0 评论 -
__context__ 属性
在分析自旋锁代码时,最终跟踪下来,会在 include/linux/compiler.h 中看到下面的代码: [C++] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 #ifdef __CHECKER__ ...转载 2014-09-23 16:05:27 · 944 阅读 · 0 评论 -
"period" in alsa
The “period” is a term that corresponds to a fragment in the OSS world. The period defines the size at which a PCM interrupt is generated. This size strongly depends on the hardware. Generally, the s转载 2014-09-09 16:56:17 · 248 阅读 · 0 评论 -
mtrace的使用示例
#include #include int main(void) { mtrace(); int * a; a = malloc(sizeof(int)); muntrace(); return 0; }原创 2014-09-18 17:17:02 · 751 阅读 · 0 评论 -
Linux static/dynamic lib
#include "hello.h" #include "hi.h" int main() { hello("zhangru"); hi("tom"); return 0; }原创 2014-06-03 10:22:23 · 133 阅读 · 0 评论 -
kernel startup
asmlinkage void __init start_kernel(void) // init/main.c +-- lockdep_init(); +-- smp_setup_processor_id(); +-- debug_objects_early_init(); +-- boot_init_stack_canary(); +-- cgroup_init_early(); +原创 2012-06-07 15:15:36 · 758 阅读 · 0 评论 -
图解ARM Linux的启动全过程
图解ARM-Linux的启动全过程:内核自解压阶段—>内核引导阶段—>内核初始化阶段—>BusyBox初始化阶段。 图片有点大,打开的时候比较慢。大家可以免费下载http://download.youkuaiyun.com/detail/ce123/4275919。 注意:本图在不断的修改中,本网页中的图是最新的。下载链接中的图不能替换,可能有些错误!转载 2012-05-05 12:27:26 · 115 阅读 · 0 评论 -
i386 Linux下Elf动态链接分析
Ian Lance Taylor正在写连载文章介绍linkers。 一直想了解dynamic linking的过程,于是正好就学习了一下。 program loader、program linker和dynamic linker的具体工作过程暂不在讨论范围。 首先,随便写个小程序然后用objdump看一下: $ objdump -d main.o 00000转载 2012-03-30 14:39:03 · 152 阅读 · 0 评论 -
linux下elf重定位理解
重定位:就是把符号的value进行重新定位,value可是地址也可是其他类型值.要重点理解 编译器、连接器和装载器各个职能,熟悉编译、连接和加载过程、符号(symbol)、段(section)等概念 符号:高级语言经编译处理后,在binary层面上,统一以符号表示各个变量、函数实体。是连接和重定位桥 梁。不同编译器有不同的地符号影射,比如c语言中,以前有的编译器固定变量前加下划线转载 2012-03-30 10:25:15 · 490 阅读 · 0 评论 -
GCC内嵌汇编语法
GCC Inline ASM GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCC Inline ASM——GCC内联汇编。这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码中,另外也允许我们直接写 C/C++代码中使用汇编编写简洁高效的代码。 1.基本内联汇编 GCC中基本的内联汇编非常易懂,我们先来看两个简单的例子: __a转载 2014-09-23 21:37:41 · 404 阅读 · 0 评论