当前位置:操作系统 > 安卓/Android >>

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内核里获取引导系统给内核的引导参数,并保存到全局变量,以便使用

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,