objcopy -o binary
1. 这里所谓的“二进制”,英文称为raw binary。这种程序只包含机器码。而ELF程序还包含有其它额外的信息,如段的加载地址,运行地址,重定位表,符号表。2. 执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行; FILE *fp = fopen("vmlinux.bin", "rb"); fread(VMLINUX_START, 1, VMLI
·
1. 这里所谓的“二进制”,英文称为raw binary。这种程序只包含机器码。而ELF程序还包含有其它额外的信息,如段的加载地址,运行地址,重定位表,符号表。
2. 执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行;
FILE *fp = fopen("vmlinux.bin", "rb");
fread(VMLINUX_START, 1, VMLINUX_SIZE, fp);
((void (*)(void))VMLINUX_START)();
但是执行ELF程序则需要一个ELF Loader。
Linux内核启动的时候往往是没有ELF Loader的,所以,只能采用raw binary格式。
2. 执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行;
FILE *fp = fopen("vmlinux.bin", "rb");
fread(VMLINUX_START, 1, VMLINUX_SIZE, fp);
((void (*)(void))VMLINUX_START)();
但是执行ELF程序则需要一个ELF Loader。
Linux内核启动的时候往往是没有ELF Loader的,所以,只能采用raw binary格式。
更多推荐
已为社区贡献1条内容
所有评论(0)