#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下面,文件系统的名称是tmpfstmpfs是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的RamfsTmpfs可以使用物理内存,也可以使用交换分区。在Linux内核中,虚拟内存资源由物理内存(RAM)和交换分区组成,这些资源是由内核中的虚拟内存子系统来负责分配和管理。Tmpfs向虚拟内存子系统请求页来存储文件,它同Linux的其它请求页的部分一样,不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样,其大小也不是固定的,而是随着所需要的空间而动态的增减。接着创建ptssocket目录,在/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 won't

#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'/n", "caijunsheng 2010-07-13");

这里是我测试系统引导输出的一行LOG代码。

#052

#053 INFO("reading config file/n");

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

更多相关文章

  1. 如何在eclipse中查看Android各版本源代码
  2. Android 一键清理内存,缓存,文件代码
  3. Android纯代码写布局
  4. 第一行代码-9.6 服务的最佳实践--后台执行的定时任务
  5. Android中图像变换Matrix的原理、代码验证和应用(三)
  6. Android代码混淆及项目发布方法记录
  7. android代码示例讲解--专题视频课程

随机推荐

  1. 细说 javascript 中变量声明 var、let、c
  2. 使用Composition API在Vue3中创建防抖搜
  3. JavaScript从作为函数实参的对象中提取数
  4. 浅谈JavaScript常见的循环方式
  5. 面试必备知识点:悲观锁和乐观锁的那些事儿
  6. 编写优雅Javascript代码的最佳实践
  7. JavaScript数组扁平化的黑科技
  8. 远程办公,也许并没有你想象的那么轻松
  9. 红帽认证RHCE顺利通过,学习笔记多图预警!
  10. 阿里P7岗位面试,面试官问我:为什么HashMap