分析根文件系统中的etc/init.d/rcS文件

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

一、文件简介

(1)由博文分析根文件系统中的/etc/inittab文件可知,etc/inittab文件的第一行配置项一般是“::sysinit:/etc/init.d/rcS”,这说明控制台(或者说命令行)启动前会调用etc/init.d/rcS文件。

(2)rcS文件是linux运行时最重要的配置文件,其他的一些配置都是由这个文件引出来的。

(3)rcS文件可以很复杂也可以很简单,但嵌入式一般不用像ubuntu那么复杂。

 

二、文件内容

一个简单的rcS文件内容如下

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/binrunlevel=S
prevlevel=Numask 022export PATH runlevel prevlevelmount -a
#下面这两行代码与生成/dev/目录下的设备文件有关
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s/bin/hostname -F /etc/sysconfig/HOSTNAMEifconfig eth0 192.168.1.10

1、PATH=xxx

(1)从shell脚本的语法角度分析,该行定义了一个shell变量PATH,值等于后面的字符串。

(2)用export导出这个PATH变量,那么PATH变量就变成一个环境变量。PATH这个环境变量是linux系统内部定义的一个环境变量。操作系统执行程序时会默认到PATH指定的各个目录去寻找,如果找不到就认定这个程序不存在,如果找到了就去执行它。另外,将一个可执行程序的目录导出到PATH,可以不带路径地执行这个程序。

(3)rcS文件中为什么要导出PATH?因为我们希望进入命令行后,PATH环境变量中就有默认的/bin、/sbin、/usr/bin、/usr /sbin这几个常见的可执行程序的路径,从而可以直接使用ls、cd等命令。

(4)为什么还没添加rcS文件,系统启动就有PATH的值?因为busybox用代码硬编码导出了一些环境变量,其中就有PATH。


2、runlevel=

(1)runlevel也是一个shell变量,并且被导出为环境变量。

(2)runlevel这个环境变量的作用,类似于window中的启动模式识别,如安全模式、普通模式。

(3)runlevel=S表示将系统设置为单用户模式。

(4)busybox不支持runlevel这个特性。


3、umask=

(1)umask是linux的一个命令,作用是设置linux系统的umask值。

(2)umask值决定当前用户在创建文件时的默认权限。

(3)umask值和默认创建文件的权限值加起来是666。

umask是022的时候,默认touch创建一个文件的权限是644。

umask是044的时候,默认touch创建一个文件的权限是622。

umask是444的时候,默认touch创建一个文件的权限是222。


4、mount -a

(1)mount命令是用来挂载文件系统的,“mount -a”表示挂载所有应该被挂载的文件系统。

(2)在busybox中“mount -a”时,busybox会去查找一个文件/etc/fstab文件。该文件按照一定的格式列出来所有应该被挂载的文件系统(包括虚拟文件系统)。如果作为挂载点的目录不存在,应该手动创建,否则会提示挂载失败。

(3)一个简单的/etc/fstab文件内容如下。


5、mdev

(1)在rcS文件中没有mdev配置项时,启动后/dev目录是空的。在rcS文件中添加与mdev有关的2行配置项时,启动系统后/dev目录下有很多的设备驱动文件。

(2)mdev是udev的嵌入式简化版本,udev/mdev是一个应用层的软件,主要作用是配合linux驱动生成相应的/dev目录下的设备文件。


6、hostname

(1)hostname是linux中的一个shell命令。

(2)“hostname xxx”执行后可以用来设置当前系统的主机名为xxx,直接hostname不加参数可以显示当前系统的主机名。

(3)“/bin/hostname -F /etc/sysconfig/HOSTNAME”,表示指定/etc/sysconfig/HOSTNAME这个文件为主机名配置文件。因此在制作根文件系统时,要先创建这个配置文件,然后在里面输入主机名。


7、ifconfig

如果希望进入命令行后,ip地址就是一个指定的ip地址(比如192.168.1.30),需要在rcS文件中添加“ifconfig eth0 192.168.1.30”。如果没有添加,则完全启动后会没有ip地址,但可以在完全启动后用“ifconfig eth0 xxxxxxxxx”来设置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VirtualBox 扩展虚拟硬盘容量

为什么80%的码农都做不了架构师?>>> 扩展步骤:第一步:修改硬盘镜像文件 1、虚拟机关机. 2、确认虚拟机使用文件(后缀为.vdi的文件)路径不带中文字符. 3、Windows 下按:Windows R,调出命令行工具…

技术和赚钱真的冲突吗?

前几天在微信上看到篇文章,讲述的是大悲寺和少林寺的对比。原文的大意是大悲寺如何如何清苦,烧香不许客户投钱。而少林寺如何的肥头大耳,尤其是方丈释永信是多么多么的会“敛财“。(注意:我们这里抛去一些“确实是敛财…

构造和运行模块

作者:蔡伦辉写在前面作者一直支持GPL的精神。允许任何人自由使用、转载、复制和再分发,但必须保留作者署名,必须保证全文完整转载,包括完整的版权声明。由于作者水平有限,因此不能保证文章内容准确无误,请批…

从零开始构建根文件系统

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 参考博客 Uboot和系统移植(19)------- 根文件系统构建过程详解_big__C的博客-CSDN博客 一、总结 (1)本节在前面的理论分析的基础上,我们开始从零开…

BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会 树形DP

[Usaco2010 Mar]gather 奶牛大集会 Bessie正在计划一年一度的奶牛大集会&#xff0c;来自全国各地的奶牛将来参加这一次集会。当然&#xff0c;她会选择最方便的地点来举办这次集会。每个奶牛居住在 N(1<N<100,000) 个农场中的一个&#xff0c;这些农场由N-1条道路连接&a…

EF部署

2019独角兽企业重金招聘Python工程师标准>>> 部署 当应用程序使用EF后&#xff0c;可以通过Visual Studio来进行部署&#xff0c;即将数据库部署到真实环境中&#xff0c;可以作为正式上线使用环境。在进行部署前&#xff0c;我们也需要先做一些先前准备工作&#x…

uboot源码——根目录下的Makefile文件分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 uboot来源于uboot官网&#xff0c;或者SoC官方&#xff08;研发s5pv210这款芯片的公司推出的开发板叫SMDKV210&#xff09;&#xff0c;或者具体开发板的官方&#xff08;深圳市九鼎科技公司推出的…

springside 参考地址

2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/wind520/article/details/8917944 http://blog.chinaunix.net/uid-122937-id-3935052.html 转载于:https://my.oschina.net/china008/blog/330265

虚拟机下安装vmtool

Ubuntu 12.04下安装VMware Tools 安装前准备&#xff1a; 1、一定要先安装 build-essential 软件,否则不能够顺利安装 命令&#xff1a;sudo apt-get install build-essential 2、要安装linux-headers 包&#xff0c;这个包要在配置VMware-tools之前装&#xff0c;即可…

认识伪类元素:before和:after

起因于不理解下图点的写法&#xff0c;后来发现是个很基础的东西 运用了伪类元素:before&#xff0c;如下 注意&#xff0c;他的css写法也是非常简洁高效的。 查阅了些关于伪类before和after的知识帮助理解&#xff0c;以下摘自&#xff1a;http://www.hulufei.com/post/about-…

uboot源码——内核启动分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、uboot作用简介 uboot的主要作用是用来启动linux内核。 CPU不能直接从块设备中执行代码&#xff0c;因此需要把块设备中的程序复制到内存中&#xff0c;而复制之前还需要进行很多初始化工作&…

票据单号生产软件

有个老师要做excel表格&#xff0c;里面要罗列某票据还是什么单号的编号&#xff0c;格式如上图所示。一开始她说能不能写个excel函数&#xff0c;一拖就搞定~我觉得很难搞出来&#xff0c;就写个软件&#xff0c;生产单号保存在TXT文件&#xff0c;然后让她复制粘贴到excel表就…

uboot源码——C阶段的start_armboot函数

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、start_armboot函数简介 uboot第一阶段&#xff0c;start.S文件中进行一系列的SoC内部硬件的初始化&#xff0c;然后长跳转到start_armboot 函数中。 uboot第二阶段&#xff0c;start_armboot函数…

source insight的使用方法

1、下载与安装 下载与安装方法见链接。 “Insight3.exe”这个是汉化版&#xff0c;直接打开&#xff0c;不需要安装。 “Si35Setup.exe”这个是英文版&#xff0c;安装后需要自己找到应用图标并发送快捷方式到桌面。 2、快速新建工程 &#xff08;1&#xff09;点击 Project —…

TortoiseSVN检出链接(可用于与站点集成)

为什么80%的码农都做不了架构师&#xff1f;>>> TortoiseSVN&#xff08;简称TSVN&#xff09; 是一个 Windows 下的版本控制系统 Apache™ Subversion 的客户端工具。 如果你希望你的 Subversion 版本库对于别人可用&#xff0c;你可以在你的站点包含一个链接。 为…

foreman架构的引入2-安装前环境准备

零基础学习Puppet自动化配置管理系列文档Foreman官网提供了每个版本非常完善的安装步骤&#xff0c;无论是源码安装还是rpm包安装都变得非常方便。而且Foreman通过puppet模块对安装步骤进行了封装并提供了大量的安装参数可以传输&#xff0c;相当的方便。不过由于其体系过大&am…

软件集成策略故事连载----对项目的不利影响竟然这么大

2&#xff0e;对项目的不利影响竟然这么大 项目经理老刘跟晓川说&#xff0c;等这一轮集成做完&#xff0c;一起聊一聊。晓川听了有点紧张。不过想一想&#xff0c;自己已经很努力了&#xff0c;也没有什么可担心的。其实关键是程序员提交的质量。倒正好可以借这个机会跟领导沟…

uboot源码——汇编阶段的start.S文件

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、总结 1、关于阶段的定义 第一阶段&#xff0c;即在内部SRAM运行的阶段&#xff0c;简单地理解为汇编阶段。此阶段主要涉及start.S文件&#xff0c;在cpu/s5pc11x/目录下。第一阶段以ldr pc _sta…

机器学习算法之旅

在理解了我们需要解决的机器学习问题之后&#xff0c;我们可以思考一下我们需要收集什么数据以及我们可以用什么算法。本文我们会过一遍最流行的机器学习算法&#xff0c;大致了解哪些方法可用&#xff0c;很有帮助。 机器学习领域有很多算法&#xff0c;然后每种算法又有很多延…

Android Handler的使用方法

如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人&#xff0c;在不知道Handler的用法之前是怎么样写的程序,代码如下所示: package com.example.androidhandletest; import java.util.Timer;import java.util.TimerTask; import android.os.Bundle;import andro…