unix
文章平均质量分 79
sp00f
南无阿弥陀佛 南无阿弥陀佛 南无阿弥陀佛 南无本师释迦牟尼佛 南无本师释迦牟尼佛 南无本师释迦牟尼佛 南无大悲观世音菩萨 南无大悲观世音菩萨 南无大悲观世音菩萨 南无大愿地藏王菩萨 南无大愿地藏王菩萨 南无大愿地藏王菩萨 南无十方三世一切诸佛菩萨善神护法 菩提明镜里
展开
-
安卓之启动-初析(三)
代码解析首先引入依赖文件init.rc,这个是init执行依赖的文件。还有uevetd.rc,其他rc文件我就不在这里列举了。关于以rc为后缀的文件的说明请看,它里面介绍了The Android Init Language consists of four broad classes ofstatements,which are Actions, Commands, Services, a原创 2014-01-11 17:50:35 · 995 阅读 · 0 评论 -
IPC程序例子 一
这里只是简单的举例来说明ipc通讯机制相关函数用法:管道===============================================================================#include int pipe(int pipefides[]);举例:#include #include #include #i原创 2014-01-14 14:16:40 · 834 阅读 · 0 评论 -
ELF(七)可重定位目标,部分摘自深入理解操作系统,深入理解linx内核
可重定位目标 重定位是将EFL文件中的未定义符号关联到有效值的处理过程。在main.o中,这意味着对printf和puts的未定义的引用必须替换为该进程的虚拟地址空间中适当的机器代码所在的地址。在目标中用到的相关符号之处,都必须替换。 对用户空间程序符号的替换,内核并不涉及其中,因为所有的替换操作都是由外部工具完成的。对内核模块来说,情况有所不同,因为内核所原创 2014-01-12 20:11:19 · 9221 阅读 · 1 评论 -
ELF(六)符号解析,此大多摘自深入理解操作系统
符号解析 链接器解析符号引用的方法是将每个引用与它输入的可重定向目标文件的符号表中的一个确定的符号定义联系起来。对于那些和引用定义在相同模块中的本地符号的引用,符号解析是非常简单明了的。编译器只允许每个模块中每个本地符号只有一个定义。编译器还确保静态本地变量,它们也会有本地链接器符号,拥有唯一的名字。 不过对全局符号的解析就棘手多了。当编译器遇到一个不是在当原创 2014-01-12 20:02:33 · 1972 阅读 · 0 评论 -
ELF(三)程序头表
程序头表以32位为例;程序头表由几个项组成,其处理方式类似于数组项。数据结构/* Program segment header. */ typedef struct{ Elf32_Word p_type; /* Segment type */ 描述段的种类,其中段的种类如下: PT_原创 2014-01-11 18:07:37 · 8456 阅读 · 0 评论 -
readelf 程序头节
从图中可以看出该目标文件包含8个程序头节,当然在程序编写时,需要先从elf头中获取该程序头节的个数和大小,我以此为例,并且假设程序头节的个数为8,大致解析程序如下(稍有不同 但足矣):#include #include #include #include #include #include #define elf_file_path原创 2014-01-09 13:50:42 · 967 阅读 · 0 评论 -
安卓之启动-初析(四)
补充总结 有源代码的好处就是让我们能够通过读取源代码而了解一个可执行的最小单元的逻辑流程,但是大家都会经常犯一个错误,当然也包括我自己,那就是一旦我们自己拿起了代码,就深陷进了代码跳来跳去的泥潭了。一旦陷入了这个深渊,即使我们熟读代码,也很难和真正的“事实”(流程本身,逻辑本身等)联系起来。所以建议大家应该先对“事实”有个了解在去读代码,可是你要问我了,要是知道了这个“事实”还原创 2014-01-11 17:52:46 · 744 阅读 · 0 评论 -
ELF(五)符号表
符号表 符号是表示每个ELF文件的一个重要部分,因为它保存了程序实现或使用的所有(全局)变量和函数。如果程序引用了一个自身代码未定义的符号,则称之为未定义的符号(例如一般程序中printf函数,就定义在c标准函数中)。此类引用必须在静态链接期间用其他目标模块或者库解决,或在加载期间通过动态链接(使用ld-linux.so)解决。nm工具可以生成程序定义和使用的所有符合列表。原创 2014-01-11 18:14:06 · 9895 阅读 · 0 评论 -
ELF(四)节头表
节头表以32位为例,节头表通过数组实现,每个数组项包含一个节的信息。各个节构成了程序头表中定义的各段的内容。数据结构/* Section header. */ typedef struct{ Elf32_Word sh_name; /*Section name (string tbl index) */节的名称。其值不是字符串本原创 2014-01-11 18:10:54 · 4319 阅读 · 0 评论 -
ELF(二)ELF头
elf头以32位为例,64位与其区别只是在于数据类型的区别。数据结构typedefstruct{ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ Elf32_Half e_type; /* Object file原创 2014-01-11 18:04:52 · 1395 阅读 · 0 评论 -
ELF(一)介绍
ELF文件 其中引自,还包含,等,平时引用elf.h就可以了,如果做应用开发,而不是内核开发。数据类型 为了达到平台无关性,下面是内核定义的一些数据类型。/* Type for a 16-bit quantity. */typedef uint16_t Elf32_Half;typedef uint16_t Elf64_Half;原创 2014-01-11 18:00:46 · 1936 阅读 · 0 评论 -
IPC 程序例子二
共享内存#include #include 通过程序建立了一个共享内存# ipcs -m 建立并且存放了数据------ Shared Memory Segments --------key shmid owner perms bytes nattch status 0x740原创 2014-01-14 18:19:12 · 567 阅读 · 0 评论