#022

#023 /* clear the umask */

#024 umask(0);

在上面这段代码里,调用函数umask来设置屏蔽位为0值。这样的意思是什么呢?是告诉系统做了那些工作呢?要了解这个,就得深入查看一下linux函数大全了,因为它的作用就一目了然了,它的解释如下:

linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限。文件的访问允许权限共有9种,分别是:r w x r w x r w x(它们分别代表:用户读 用户写 用户执行 组读 组写 组执行 其它读 其它写 其它执行)。

其实这个函数的作用,就是设置允许当前进程创建文件或者目录最大可操作的权限,比如这里设置为0,它的意思就是0取反再创建文件时权限相与,也就是:(~0) & mode 等于八进制的值0777 & mode了,这样就是给后面的代码调用函数mkdir给出最大的权限,避免了创建目录或文件的权限不确定性,指定明确的标志,可谓是开发人员对代码健壮性深刻的反映,高度明确性。

#025

#026 /* Get the basic filesystem setup we need put

#027 * together in the initramdisk on / and then we'll

#028 * let the rc file figure out the rest.

#029 */

#030 mkdir("/dev", 0755);

#031 mkdir("/proc", 0755);

#032 mkdir("/sys", 0755);

在上面这段代码里,主要就是在当前内存模拟磁盘里建立一个基本的文件系统,以便后面加载rc文件来做其它事情。其中就是创建设备目录dev,进程文件系统目录proc,系统目录sys

/devdevfs(设备文件系统)或者udev的挂在点所在。在使用devfs的内核里如果没有/dev,根本见不到Shell启动的信息,因为内核找不到/dev/console;在使用udev的系统里,也事先需要在/dev下建立consolenull这两个节点。关于devfsudev的区别,网上很多文章说。当然如果你的内核已经不支持devfs了(2.6.12以后),可以使用纯纯的静态节点。也就是用mknod人工生成。

/proc是用来挂载存放系统信息虚拟文件系统——“proc文件系统”,“proc文件系统”在内核里面可以选。如果没有“proc文件系统”,很多Shell自己的命令就没有办法运行,比如ifconfig。“proc文件系统”不像devfs可以自动挂载,它需要使用初始化脚本挂载。另外,udev也需要“proc文件系统”的支持。

/sys用于挂载“sysfs文件系统”,“sysfs文件系统”在内核里面可以选。

更多相关文章

  1. Android(安卓)ROM的制作与烧录
  2. Android(安卓)Framework内核之旅
  3. Android工程报错常见解决方法
  4. android 支持的资源类型及其存放的目录
  5. android 入门学习笔记 LayoutInflater的使用
  6. Android(安卓)Framework 目录分析
  7. Binary XML file line 2: Error inflating class
  8. Android基础知识点整理和总结(目录)
  9. android部分目录分析

随机推荐

  1. android属性
  2. Android经典三部曲:
  3. Android OpenGL开发目录
  4. Android(安卓)线性布局(LinearLayout)相关
  5. Android用户界面设计学习之旅-第六站
  6. Android 数据库之 SQLiteConnectionPool
  7. Android 对象序列化之 Parcelable 取代 S
  8. Android(安卓)Canvas绘图详解(图文)
  9. 去掉RecycleView或者ListView上下滑动阴
  10. 【原创】Proton在Android上的编译