今天是2014-05-27,今天遇到一个lib问题,再次记录一下。这是一个案例,更是一种解决该问题的方法过程。
当我们在使用sqlplus 登陆unix数据库的时候,有可能出现类似:xxxxxx bad ELF interpreter: No such file or directory的问题。该问题的原因也是lib的问题。正常情况如下:
[root@dg1 ~]# su - oracle
[...
分类:
数据库 时间:
2014-06-05 00:20:29
阅读次数:
371
1.vmlinux
vmlinux是一个包含linux kernel的静态链接的可执行文件,文件类型是linux接受的可执行文件格式之一(ELF、COFF或a.out)。
2.vmlinuz
vmlinuz是可引导的,压缩的linux内核,“vm”代表的“virtual memory”。vmlinuz是vmlinux经过gzip和objcopy(*)制作出来的压缩文件。vmlinuz不仅是一个压缩文件,而且在文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解...
分类:
系统相关 时间:
2014-05-21 03:06:50
阅读次数:
429
什么是堆,什么是栈,什么是数据段,什么是代码段...这些都是历史遗留问题,如今编程真的没有必要在意这些了!不要被/proc/xx/{maps,smaps}里面的内容所迷惑和萦绕,自己管理好自己的内存分配就好,如果程序不是自己写的,那么就找写它的人。本文将从一个链接动态库的可执行文件如何载入进程地址空间开始,谈一下我对进程地址空间布局的看法。我没有采用精确的方式描述ELF或PE文件如何载入的,而仅仅...
分类:
其他好文 时间:
2014-05-18 18:23:26
阅读次数:
378
CentOS安装软件出现错误:bash: /usr/local/bin/rar:
/lib/ld-linux.so.2: bad ELF interpreter: No such file or
directorygoogle了一把才发现是64位系统中安装了32位程序解决方法:yum install...
分类:
系统相关 时间:
2014-05-16 03:31:51
阅读次数:
621
--Linux操作系统位数查看----------------------2014/05/11查看linux是多少位的几位方法:查看linux机器是32位还是64位的方法:方法一:file
/sbin/init 或者 file /bin/ls结果如下:/sbin/init: ELF 64-bit L...
分类:
系统相关 时间:
2014-05-12 20:03:41
阅读次数:
504
今天完成了第七章,也就是《自己动手写操作系统》的全部章节,不过还存在一些小问题,比如在ring3下调用callgate实现向ring0的跳转,这个当初就没做成功。暂时先放着,要继续下面章节的学习了。
小结一下吧:
开发环境:操作系统是win7。虚拟机VMware,装ubuntu。我是再win7下完成的boot和loader的开发,然后内核是在虚拟机中的ubuntu中完成的。因为内核部分是elf...
分类:
其他好文 时间:
2014-05-08 17:26:27
阅读次数:
312
find . -xtype f -perm +111 -print0 | xargs -0
file | grep "ELF"
分类:
其他好文 时间:
2014-05-08 14:54:59
阅读次数:
254
8.2.2 操作ELF格式文件的方法
综合以上的描述,总结执行ELF格式文件的方法,步骤如下:
(1)从文件起始位置读取一个struct elf32_ehdr结构体,验证文件的正确性以及文件与操作系统是否匹配。
(2)找到该结构体中e_entry成员,从系统中获得这个值所指向的内存地址。
(3)读出struct elf32_ehdr结构体中的e_phoff、e_phextsize以及e_...
分类:
其他好文 时间:
2014-05-08 00:30:22
阅读次数:
845
LF指的是Executable and Linkable Format。最初是由UNIX系统实验室作为应用程序二进制接口开发和发行的,后来逐渐发展成为了可执行文件的格式标准,在很多操作系统和非操作系统环境中都有非常广泛的应用。完整的ELF格式标准涉及了三个方面的内容。在这里我们只需要关心一个方面,那就是一个ELF格式可执行程序的组成结构。
一个ELF可执行文件格式如图8-1所示。
像图8-1那...
分类:
其他好文 时间:
2014-05-08 00:16:58
阅读次数:
367
前面有篇文章分析了ELF格式,也只是让我们对目标文件有了一个大概的了解,并没有说明一个十分重要的问题:重定位,今天重新看了下重定位的资料,终于弄懂了重定位的过程,下面来做一个分析。
我们将使用下面两个源代码中的文件a.c和b.c展开分析:
//a.c
extern int shared;
int main()
{
int a=100;
swap(&a,&shared);
}
//b.c
i...
分类:
其他好文 时间:
2014-05-07 22:35:28
阅读次数:
328