zoukankan      html  css  js  c++  java
  • 嵌入式: 根文件系统

    看完1, 知道根文件系统的结构和作用。

    看完2, 知道kernel挂载根文件系统的实际过程。

    1. 详解制作根文件系统  http://fangjian0518.blog.163.com/blog/static/5591965620112171420757/

    什么是根文件系统?Linux引导启动时,默认使用的文件系统是根文件系统。

    存放文件系统的设备就是文件系统设备。比如,对于一般使用的windows 2000操作系统,硬盘C盘就是文件系统设备,而硬盘上按一定规则存放的文件就组成文件系统,windows 2000有NTFS或FAT32等文件系统。

    当我们在linux下输入ls  / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。

    该标准规定了根目录下各个子目录的名称及其存放的内容:

    目录名 存放的内容
    /bin 必备的用户命令,例如ls、cp等
    /sbin 必备的系统管理员命令,例如ifconfig、reboot等
    /dev 设备文件,例如mtdblock0、tty1等
    /etc 系统配置文件,包括启动文件,例如inittab等
    /lib 必要的链接库,例如C链接库、内核模块
    /home 普通用户主目录
    /root root用户主目录
    /usr/bin 非必备的用户程序,例如find、du等
    /usr/sbin 非必备的管理员程序,例如chroot、inetd等
    /usr/lib 库文件
    /var 守护程序和工具程序所存放的可变,例如日志文件
    /proc 用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容
    /sys 用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容
    /mnt 文件系统挂接点,用于临时安装文件系统
    /tmp 临时性的文件,重启后将自动清除

    FHS(Filesystem Hierarchy Standard)标准

     

      

    2. Linux--根文件系统的挂载过程分析 http://blog.csdn.net/guopeixin/article/details/5962482

      简单的来说,根文件系统包括虚拟根文件系统和真实根文件系统。在Kernel启动的初始阶段,首先去创建虚拟的根文件系统,接下来再去调用do_mount来加载真正的文件系统,并将根文件系统切换到真正的文件系统,也即真实的文件系统。挂载好真实的根文件系统之后,再去执行文件系统中的初始化程序。

      run_init_process("/sbin/init");

      run_init_process("/etc/init");

      run_init_process("/bin/init");

      run_init_process("/bin/sh");

      ...

    3. 常识:

      ps的机制是通过查看/proc中的内容来获得进程信息的, 在/etc/init.d/rcS里面有mount -t proc none /proc 。

         

      linux/proc/devices和/dev区别 http://www.chinaitlab.com/embed/linux/876632.html

    问:linux环境下,/dev/目录下的内容与/proc/下文件devices中的内容有什么区别?我在目 标板上做实验时发现,当我向板子上加载驱动模块时,devices文件中有变化,而/dev下根本没有变化,/dev/下不也应该是设备接点吗,为什么为 模块建立设备接点时,/dev/下却没有变化呢?

    /proc/devices/中的设备是通过insmod加载到内核的,它可产生一个major供mknod作为 参数。

    /dev/*.* 是通过mknod加上去的,格式:mknod device1 c/b major minor 如:mknod dr1 c 254 0,用户通过此设备名来访问你的驱动。

    设备 文件 ,设备编号 #ll -a /dev 在每一行都可以看到设备文件、设备编号(主、次)

    对于每种硬件设备,系统内核有相应的设备驱动程序负责对它的处理。而在Unix 中,使用设备文件的方式来表示硬件设备,每种设备驱动程序都被抽象 为设备文件的形式,这样就给应用程序一个一致的文件界面,方便应用程序和操作系统之间的通信。

    习惯上,所有的设备文件 都放置在/dev 目录下。

     

  • 相关阅读:
    django中如果不是第一次迁移的时候就配置AUTH_USER_MODEL(用来告知django认证系统识别我们自定义的模型类),那么该如何解决才能让django的认证系统识别且不会报未知错误?
    django执行迁移文件报错struct.error: unpack requires a buffer of 4 bytes
    工作中django的应用路径配置
    djang中文件上传MEDIA路径配置
    前后端分离解决跨域cors问题
    通过paramiko模块操作服务器
    【Dataguard】DataGuard运维注意事项
    [DBA]断电异常后修复Oracle数据文件(ORA-00702: bootstrap verison)
    Troubleshooting High Redo Generation Issues (Doc ID 782935.1)
    Oracle Recycle bin 回收站详解
  • 原文地址:https://www.cnblogs.com/mylinux/p/5052457.html
Copyright © 2011-2022 走看看