分类: LINUX
2010-09-16 11:03:41
今日内容:
计算机体系结构:
MMU功能1:从虚拟内存到物理内存的映射。
2:管理内存的访问权限。
如果是32位处理器,则地址总线是32位的,与cpu执行单元相连,而经过MMU转换之后的外地址总线则不一定是32位的,也就是说虚拟空间和物理空间是独立的,32为处理器的虚拟地址是4G,而物理地址既可以大于也可以小于4G。MMU将VA映射到PA是以页尾单位的32位中通常是没页4kb
volatile int b; 变量会使变量b强制不放到缓存中。当此变量为外部I/O时要讲其声明为volatile。
2010-09-15
ELF的三种文件类型:
objdump -dS file.o > file.s 对程序进行反汇编(AT&T汇编)。
Readelf –h file 查看elf的文件头格式。
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00//文件elf校验
Class: ELF32// 文件格式
Data: 2's complement//补码, little endian//小端
Version: 1 (current)版本
OS/ABI: UNIX - System V
ABI Version: 0(应用程序二进制接口规范)
Type: EXEC (Executable file)//可执行文件
Machine: Intel 80386
Version: 0x1
Entry point address: 0x8048370//入口地址
Start of program headers: 52 (bytes into file)
Start of section headers: 3572 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 7
Size of section headers: 40 (bytes)
Number of section headers: 36
Section header string table index: 33
预处理->编译->汇编:file.c->file.i->file.s->file.o。
编译时查看预处理信息 gcc –E hello.c >hello.i,把源编译为汇编gcc –S hello.c –o hello.s
把汇编编译为目标文件 gcc –C hello.c –o hello.o
gcc –l库名 –L库的路径。
chinaunix网友2010-09-16 15:29:22
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com