首页 > 程序开发 > 移动开发 > Android >

Android培训班(11)

2011-03-08

#033  #034      mount("tmpfs", "/dev", "tmpfs", 0, "mode=0755"); #035      mkdir("/dev/pts", 0755); #036      mkdir("/dev/socket", 0755)

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

相关文章
最新文章
热点推荐