共 29 篇文章 |
|
就是在装载linux之前,bootloader可以把一个比较小的根文件系统的映象装载在内存的某个指定位置,姑且把这段内存称为initrd(这里是initrd所占的内存,不是ramdisk,注意区别),然后bootloader通过传递参数的方式告诉内核initrd的起始地址和大小(也可以把这些参数编译在内核中),在启动阶段就可以暂时的用initrd来mount根文件系统。 阅206 转3 评0 公众公开 13-04-07 10:11 |
The ramdisk run similar to other block devices, it means ramdisk uses Linux''s file caching mechanism similar to other block devices.[root@localhost /]# mkdir /tmp/ramdisk[root@localhost /]# mount /dev/ram0 /tmp/ramdisk[root@localhost /]# df -h | grep ramdisk/dev/ram0 62M 1.3M 61M 3% /tmp/ramdisk[root@localho... 阅194 转0 评0 公众公开 13-03-06 23:15 |
void __init mnt_init(void)从代码中可以看中,会依次执行指定的init文件,如果失败,就会执行/sbin/init, /etc/init,, /bin/init,/bin/sh.建立一个ROOT_RAM)的设备节点,并将/initrd/.image释放到这个节点中,/initrd.image的内容,就是我们之前分析的image-initrd。如果根文件设备号不是ROOT_RAM0( 用户指定的根文件系统不是/dev/ram0就会转... 阅57 转0 评0 公众公开 12-09-11 07:55 |
LINUX怎样安装和使用NFS服务(转)NFS服务器的配置文件保存“/etc/”目录中,文件名称是“exports”,该文件用于被指NFS服务器提供的目录共享。sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项。显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录。1、在配置NFS服务器之前用ping命令确保两个l... 阅3166 转12 评0 公众公开 12-07-28 20:04 |
Romfs文件系统字体 - 大 中 小。a.超级块: 0~7前八个字节是romfs文件系统标示,如” -rom1fs-”;8~11共4字节是romfs文件系统的大小,由此理解romfs文件系统最大是4GB。ld –r –b binary romfs.img –o romfs.o. romf.o引出符号_binary_romfs_img_start和_binary_romfs_img_end,这两个符号是字符数组类型,_binary_romfs_img_start是romfs... 阅1394 转2 评0 公众公开 12-07-03 22:11 |
程序的链接和装入及Linux下动态链接的实现程序的链接和装入及Linux下动态链接的实现。建立程序参数、环境变量等程序运行过程中所需的信息;举个简单的例子,假设我们开发了两个程序Prog1和Prog2,Prog1由main1.c、utilities.c以及errhdl1.c三部分组成,分别对应程序的主框架、一些公用的辅助函数(其作用相当于库)以及错误处理部分,这三部分... 阅100 转3 评0 公众公开 12-06-28 00:17 |
Code:/**<br> * got.c -- get the relative content of the got(global offset table) of an elf file<br> */<br><br>#include <stdio.h><br><br>#define GOT 0x8049614<br><br>int main(int argc, char *argv[])<br>{<br> long got2, got3;<br><br> ... 阅913 转7 评0 公众公开 12-06-27 23:57 |
在编译过程中,编译器使用符号表来记录源程序中各种名字的特性信息。符号表的组织方式也有多种多样,你可以将程序中出现的所有符号组织成一张表,也可以将不同种类的符号组织成不同的表(例如,所有变量名组织成一张表,所有函数名组织成一张表,所有临时变量组织成一张表,所有结构体定义组织成一张表等等);符号表里所有的符号都用一条链表... 阅398 转2 评0 公众公开 12-06-27 11:27 |
ELF动态解析符号过程(修订版)static inline Elf32_Addrelf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, Elf32_Addr value){/* Fixup a PLT entry to bounce directly to the function at VALUE. */static inline voidelf_machine_fixup_plt (struct link_map *map, const Elf32_Rel *reloc, ... 阅301 转3 评0 公众公开 12-06-27 05:43 |
共享库是目标文件的集合,但是这些目标文件是由编译程序按照特殊方式生成的。构造共享库最基本的一步是编译库中的对象模块。下面的gcc命令使用目标文件构造共享库hello.so:选项-o为输出文件命令,而后缀.so告诉GCC该目标文件是要连接到共享库的。下面试文件main.c中的程序,是主函数,它调用了共享库中的两个函数:程序hello已经可以运行了,... 阅2552 转7 评0 公众公开 12-01-18 20:47 |