zoukankan      html  css  js  c++  java
  • 嵌入式Linux启动配置文件及脚本分…

    使用Busybox制作根文件系统时,/etc目录非常重要,它包含了嵌入式Linux启动所需的配置文件及脚本.由于init进程,或者说linuxrc程序会解析inittab文件,因此就从/etc/inittab文件开始说起.
    (1)文件/etc/inittab
       该文件是init进程需要解析的文件,它的每个条目都是一个脚本或可执行程序,详见博客"inittab文件".

         ::sysinit:/etc/init.d/rcS
         ::respawn:-/bin/login
         ::ctrlaltdel:/bin/umount -a -r

    (2)文件/etc/init.d/rcS
       该文件的功能主要有两个,一个是将不同的文件系统挂载到根文件系统下的某个目录内;二是新建kernel所需的目录,这些目录都是kernel运行过程中所必须的.

            #! /bin/sh

            /bin/mount -n -t ramfs ramfs /var #在不同的目录内挂载不同的文件系统
            /bin/mount -n -t ramfs ramfs /tmp
            /bin/mount -n -t sysfs none /sys
            /bin/mount -n -t ramfs none /dev
                                              #在不同的目录内新建文件夹
            /bin/mkdir /var/tmp
            /bin/mkdir /var/modules
            /bin/mkdir /var/run
            /bin/mkdir /var/log
                                              #在不同的目录内递归新建文件夹
            /bin/mkdir -p /dev/pts 
            /bin/mkdir -p /dev/shm

            /sbin/mdev -s
            /bin/mount -                    #当执行命令"mount -a"时,系统会自动读取配置文件fstab.
            echo /sbin/mdev > /proc/sys/kernel/hotplug

    (3)文件/etc/fstab
       在文件/etc/init.d/rcS中执行mount –a时,就会按照文件/etc/fstab内容挂载相应的文件系统.

            proc        /proc       proc      defaults   0 0
            none        /dev/pts    devpts    mode=0622  0 0
            tmpfs       /dev/shm    tmpfs     defaults   0 0

    <1>fstab文件的格式:
       device Mount Point filesystem parameters dump fsck
        proc    /proc      proc    defaults      0
    <2>文件/etc/fstab就是使用mount将设备载入到系统的某个载入点所需执行的命令内容,将这些内容都写到/etc/fstab里,使得系统一启动就主动载入.
    <3>参数dump的值表示是否允许使用dump命令进行系统备份.dump命令会根据对/etc/fstab的设置值,去选择是否要将该分区进行备份.0表示不要dump备份,1或2表示要进行dump备份.
    <4>参数fsck的值表示是否允许以fsck检验分区内的文件系统是否完整.其中,根文件系统必须进行检验,其它文件系统可以不需要检验.0表示不要检验,1或2表示要进行检验.

    (4)文件/etc/passwd
       当用户以telnet或ssh登录主机时,系统会出现一login画面来输入账号,此时输入账号和密码后,Linux会执行以下动作:
    <1>先找/etc/passwd内是否有该账号,如果有,则将该账号与对应的UID(user ID)和GID(Group ID)读出,并将该账号的家目录与shell设置也一起读出.
    <2>核对密码表,此时Linux会进入/etc/shadow中查找对应的账号与UID,然后核对已输入的密码与里面的密码是否一致.
    <3>若一切相符,就进入shell控制阶段.
       下面就来分别简述这两个文件的含义.
    <1>/etc/passwd

    root:x:0:0:root:/root:/bin/sh

       该文件的构造如上所示,每一行都表示一个账号,有几行就表示系统中有几个账号.注意,里面的很多账号都是系统必须使用的,称作系统账号.在每个Linux系统中都会有第一行,就是root系统管理员行,每行有7个部分,用":"隔开.
       1、账号名称:root表示默认的系统管理员的账号名称.
       2、密码:x表示密码已经移动到shadow这个加密后的文件中了.
       3、UID:当UID=0时,表示root
       4、GID:与/etc/group有关,用于规范用户组.
       5、用户信息说明栏:用于解释该账号的意义.
       6、家目录:用户的家目录.root用户的家目录就是/root.
       7、Shell:默认使用/bin/bash来执行命令.
    <2>/etc/shadow

    root:$1$HNeU8jpc$RyzTN856sZiO.LCN2BZuZ0:14880:0:99999:7:::

       该文件属于加密文件,每个账号的密码均在该文件中,这里不再赘述.
     
    (5)/etc/profle

        echo
        echo -n "Processing /etc/profile... "
        # no-op
        echo "Done"
        echo
        PATH=/bin:/sbin:/usr/bin:/usr/sbin
        export LD_LIBRARY_PATH=/lib:/usr/lib

     

  • 相关阅读:
    const 与 readonly知多少
    js中得~~是什么意思/JS按位非(~)运算符与~~运算符的理解分析
    严格模式详解
    Javascript中的prototype和__proto__的联系区别
    提升页面渲染效率
    window.onload=function(){}和$(function(){})的区别
    gulp的安装和配置
    JS的组成部分、引入页面的方法以及命名规范
    js继承的三种实现
    前端模块化
  • 原文地址:https://www.cnblogs.com/songfeixiang/p/3733797.html
Copyright © 2011-2022 走看看