易截截图软件、单文件、免安装、纯绿色、仅160KB

浅谈Linux的可执行文件格式ELF

 现代Linux采用ELF做为其可连接和可执行文件的格式,因此ELF格式也向我们透出了一点Linux核内的情景,就像戏台维幕留下的一条未拉严的缝。PC世界32仍是主流,但64位的脚步却已如此的逼近。本文着重讲述32位ELF的同时附带了64位的信息,这两种格式如此雷同,以致于初次接触ELF的读者不必兼顾左右。如果你对Windows比较熟悉,本文还将时时把你带回到PE中,在它们的相似之处稍做比较。ELF文件以“ELF头”开始,后面可选择的跟随着程序头和节头。地理学用等高线与等温线分别展示同一地区的地势和气候,程序头和节头则分别从加载与连接角度来描述EFL文件的组织方式。下面我们进入正文。
一、ELF头
    ELF头也叫ELF文件头,它位于文件中最开始的地方。我用系统的是Fedora Core 2,它在elf.h文件中同时给出了ELF头在32位系统和64位系统下的结构,我们先来看一下:
typedef struct
{
unsigned char e_ident[EI_NIDENT];
Elf32_Half e_type;
Elf32_Half e_machine;
Elf32_Word e_version;
Elf32_Addr e_entry;
Elf32_Off e_phoff;
Elf32_Off e_shoff;
Elf32_Word e_flags;
Elf32_Half e_ehsize;
Elf32_Half e_phentsize;
Elf32_Half e_phnum;
Elf32_Half e_shentsize;
Elf32_Half e_shnum;
Elf32_Half e_shstrndx;
} Elf32_Ehdr;
typedef struct
{
unsigned char e_ident[EI_NIDENT];
Elf64_Half e_type;
Elf64_Half e_machine;
Elf64_Word e_version;
Elf64_Addr e_entry;
Elf64_Off e_phoff;
Elf64_Off e_shoff;
Elf64_Word e_flags;
Elf64_Half e_ehsize;
Elf64_Half e_phentsize;
Elf64_Half e_phnum;
Elf64_Half e_shentsize;
Elf64_Half e_shnum;
Elf64_Half e_shstrndx;
} Elf64_Ehdr;
    elf.h中关于ELF格式所有结构给出的定义,其成员字段的类型声名都是C语言基本类型的别名,不会再嵌套结构。可以看出32位系统和64位系统下ELF头的结构基本相同,不同的是两种结构中的某个成员字段占用字节个数有所变化。比如e_entry由32位下占4个字节的Elf32_Addr变为64位下占8个字节的Elf64_Addr,这是因为两种系统下CPU寻址能力不同造成的。同理文件偏移也从4字节的Elf32_Off变为8字节的Elf64_Off。有些成员字段虽然类型声名从Elf32_XXXX变成了Elf64_XXXX,该域所占的字节个数并未改变。如Elf32_Half和Elf64_Half都占两个字节,Elf32_Word、Elf3


相关文档:

linux学习命令

linux命令是在bash环境下运行,最常用的Shell和命令下面做下总结
1.ls 显示当前目录下的文件和目录
通常搭配参数L ,完整显示文件和目录,权限,时间、归属
搭配A,显示 “.” 的目录和文件
2. cat 查看文件内容
通常搭配重定向符号> ,> 是把一个文件的内容加载到另外一个文件内容里去 例: cat 1.tx ......

Linux中JDK1.6的安装和配置方法


一、安装
创建安装目录,在/usr/local/java下建立安装路径,并将文件考到该路径下: 
# mkdir /usr/local/java
1、jdk-6u11-linux-i586.bin
这个是自解压的文件,在linux上安装如下: 
# chmod 755 jdk-6u11-linux-i586.bin 
# ./jdk-6u11-linux-i586.bin
在按提示输入yes后,jdk被解压。
......

ZZ: When Linux Runs Out of Memory (OOM killer)


When Linux Runs Out of Memory
http://linuxdevcenter.com/pub/a/linux/2006/11/30/linux-out-of-memory.html?page=1
Perhaps you rarely face it, but once you do, you surely know what's
wrong: lack of free memory, or Out of Memory (OOM). The results are
typical: you can no longer allocate more memory ......

Linux 虚拟文件系统概观

Linux 虚拟文件系统概观
作者 Richard Gooch <rgooch@atnf.cs.iro.au>
翻译 albcamus <albcamus@gmail.com>
最后更新:2007 年 6 月 24 日
版权:1999, Richard Gooch
版权:2005, Pekka Enberg
本文件以 GPLv2 许可发放
[翻译说明:Richard Gooch 的这份 Overview of ......

Linux内核错误 修复

环境介绍:Centos5.2+2.6.18-8.el5内核,编译器是GCC4.1.2。
要编译的内核2.6.18-8.el3
仅仅修改了部分内核的配置信息,没有大的变化。
然后:make ;make modules;make modules_install;
编译没有出问题,生成了内核,mkinitrd生成了initrd,加到lilo.conf中,重启选择新内核,出现一下问题:
hub 3-0:1.0: USB hub fo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号