Android培训班(11)
#033
#034 mount("tmpfs", "/dev", "tmpfs", 0, "mode=0755");
#035 mkdir("/dev/pts", 0755);
#036 mkdir("/dev/socket", 0755);
#037 mount("devpts", "/dev/pts", "devpts", 0, NULL);
#038 mount("proc", "/proc", "proc", 0, NULL);
#039 mount("sysfs", "/sys", "sysfs", 0, NULL);
在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)。使用 mount 命令将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。因此,这里就是把tmpfs文件系统加到目录/dev下面,文件系统的名称是tmpfs。tmpfs是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs。Tmpfs可以使用物理内存,也可以使用交换分区。在Linux内核中,虚拟内存资源由物理内存(RAM)和交换分区组成,这些资源是由内核中的虚拟内存子系统来负责分配和管理。Tmpfs向虚拟内存子系统请求页来存储文件,它同Linux的其它请求页的部分一样,不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样,其大小也不是固定的,而是随着所需要的空间而动态的增减。接着创建pts和socket目录,在/dev/pts挂装devpts虚拟文件系统,在目录/proc挂装proc文件系统,在目录/sys挂装sysfs文件系统。
#040
#041 /* We must have some place other than / to create the
#042 * device nodes for kmsg and null, otherwise we wont
#043 * be able to remount / read-only later on.
#044 * Now that tmpfs is mounted on /dev, we can actually
#045 * talk to the outside world.
#046 */
#047 open_devnull_stdio();
这段代码是创建空的设备节点(/dev/null)。
#048 log_init();
这段代码是创建kmsg(/dev/kmsg)节点,主要用来输出LOG信息。比如把LOG信息输出到开发板的串口上,再在电脑上打印出来,方便跟踪和调试系统的功能。
#049
#050 //caijs add test. 2010-07-13
#051 ERROR("Init::main() %s ", "caijunsheng 2010-07-13");
这里是我测试系统引导输出的一行LOG代码。
#052
#053 INFO("reading config file ");
#054 parse_config_file("/init.rc");
这段代码是分析根目录下面的init.rc配置文件,并且把里面的参数组成链表的方式,以便后面使用,后面再来仔细地分析init.rc文件的格式和内容。
#055
#056 /* pull the kernel commandline and ramdisk properties file in */
#057 qemu_init();
这里初始化qemu模拟器运行计数,这里是指模拟ARM指令的虚拟系统。
#058 import_kernel_cmdline(0);
这段代码是从linux内核里获取引导系统给内核的引导参数,并保存到全局变量,以便使用
相关新闻>>
- 发表评论
-
- 最新评论 更多>>