grub linux rootfs,rootfs文件系统(笔记)(草稿)

文件系统简介

文件系统就是个软件,帮用户来管理一些二进制的信息,管理外存上存储的这些二进制

各种文件在内存中都是以二进制的形式来存在的,如果没有文件系统,用户就需要自己去决定这些二进制的东西是什么,需要自己去和硬件打交道,有了文件系统,就省去了用户和硬件直接打交道的过程。

linux和windows以及嵌入式linux文件系统的区别?

在pc机上的linux的boot和根文件系统是一起的,不在一起,是挂载看到的,虽然是在根文件系统是能看到boot的,但是物理上是分开的。因为这个的boot是有文件系统的

而在嵌入式linux中,boot和根文件系统是分开的,在根文件下是看不到内核grub等东西的,1.是因为根文件系统没有去把boot做进来,2.因为嵌入式linux的boot中是没有文件系统用的。在嵌入式linux中是没有swap

优盘上的文件系统

挂载机制

基于内存的文件系统

可以把内存中的一块当成文件系统中的一部分

文件系统就分为:根文件系统和普通的文件系统。比如优盘就有自己的普通的文件系统,是fat32的文件系统

而根文件系统则不一定是fat32的。

还有一种nfs的网络文件系统

根文件系统为这些文件系统提供了一种框架

VFS

不基于硬件,作用是去识别各个设备上的文件系统,只存在于内存中的

执行的linux.rc这个可执行程序,进程号是1的程序就是这个。

pc机上的内核会通过bootpImage来识别硬盘上的文件系统

101208120444.jpg

用ext3的read读出来数据,在用ext2的write写进去,中间就是用VFS这个借口来,调用不同的文件系统的函数来去实现一个cp的命令。

常见的根文件系统有基于flash的jffs2、yaffs、yaffs2、cramfs、基于网络的nfs等

nfs比较特别

用df来查看自己的根文件系统挂载

看到的就是这样子

/dev/mapper/VolGroup00-LogVol00

14093368   9200464   4165456  69% /

/dev/sda1               101086     15783     80084  17% /boot

tmpfs                   257800         0    257800   0% /dev/shm

.host:/              122873120  51227228  71645892  42% /mnt/hgfs

sda1中挂载的就是boot

tmpfs就内存中的根文件系统

69%本来应该是sda1

显示的是挂载过来的

Linux根文件系统目录结构

/bin /sbin /dev /etc /lib /usr /var

/proc /tmp /home /root /mnt /sys

/bin /sbin

放的是命令,bin下是常用的

sbin是系统常用的命令

usr/bin 下是用户的命令

/dev 下是一些设备文件

比如 tty0 touchscreen sound usb 等

一般挂载devfs或udev

这些名字可以自己改,是在内核中去修改的,修改的自己认识就可以的,这些东西都是内核启动完成后放进去的,做文件系统的只是起个文件夹得名字就可以了,具体放什么,是在内核启动中去放的

/etc 系统启动中需要的各种配置文件

比如启动时自动挂载的文件系统,自动运行的脚本,包括root一般的初始密码为什么是6个1,boa服务器配置脚本等东西,这是linux做根文件系统特别重要的文件,一般启动不起来,都是以为这个文件夹中的东西没有配置好

/lib

存放应从程序所需要的共享库

如 ls,cp ifconfig等系统明亮以及自己交叉编译器所用的

/usr/bin

比如qt需要的库就会放到这里

/usr

一般存放用户需要的东西,比如用户自己安装的东西,总的来说就是不是根文件系统需要的东西会放在这里

/var

存放系统启动过程会自动保存的一些东西,这里放的一些,日志之类的东西,都是掉电丢失的

一般挂载ramfs

ramfs就是把内存中的一块拿出来当做文件系统

tmpfs也是用来基于ramfs的文件系统

/tmp

一般是些临时文件的程序需要的目录

上面的这两个都是占的内存的

/proc

dev 是用来放设备节点

而这里是用来放 存放记录了当前存在多少模块,还有中断的使用情况,使用次数,包括当前系统的字符设备

里面存放的那些数字表示的是进程,里面就存放了这些进程所需要的一些东西,实际去做的时候做成空的,去挂载,一般都是需要去写脚本自动挂载,若不挂载一般系统会出各种奇怪的错误

/root

root的家

/home

其他用户的家目录

/mnt

临时文件系统挂载的目录

/sys

和proc类似,每加载一个驱动,就会记录这个驱动申请了哪些硬件资源等等,dev中只是存放了设备的名字,而这里面则是具体的东西

/rc(pc 机上的linux没,在开发板上才有)

是启动起来的第一个进程

(重要 :根文件系统的构建)

需要了解嵌入linux的启动过程

"noinitrd  root=/dev/mtdblock/1  init=/linuxrc  console=ttyS0";

root:   指定了根文件系统在FLASH分区中的位置

console:指定了内核启动后首选的控制台

init:   指定了linux内核启动完毕后调用的第一个用户态程序,即进程号为1的进程。

root=/dev/mtdblock/1  表示从这里去找根文件系统 ,看内核中去怎么写,内核中是2就是2

init=/linuxrc 启动以后的第一个用户态的进程

console=ttyS0 启动信息打印到那里去 ,这个是串口

linuxrc那里来的?linuxrc就是init进程,内核只启动这一个程序,其他的根文件系统都是由这个进程来启动的,内核是工作在内核态的,只要启动用户态的这个linuxrc这个进程,就表示内核启动的工作的结束(有系统调用的时候内核还是会工作的)。

其他的用户进程都是属于这个进程子进程,因为都是这个进程的子进程

会读取inittab的配置文件,来按照这个脚本来执行

linuxrc的执行过程

(结合ppt来看)

(后续补充……)

inittab是在etc文件下的

inittab文件的格式

(补图)

第一个id是表示使用的控制台,啥也不写,表示和内核是一样的,可以和内核不一样,一般是默认不写

第二个runlevels是 对嵌入式是没有意义,对于pc机的linux有意思,从0到5,5代表图形界面,表示开机的时候是进图形界面,3是表示字符界面 ,0是启动不起来了,1是单用户模式,类似于安全模式,2是多用户

可以在/etc/inittab 中看到

第三action个是 表示程序是怎么去执行的(补图)

respawn 启动的进程是不允许退出的 在嵌入式linux中的bash就是不允许退出的 会不断的重启

第四个process是要执行的程序的名字(需要路径)

init进程只能控制这8个进程

console c 5 1  (c是字符 5 是主设备号 1是从设备号)

比如 5 表示是串口,1就是具体com1或者别的com口

什么是设备节点?

就是dev下的一个名字

字符设备

最多可以有0到254,共255个(类)设备,是空的就可以去申请

块设备

网络设备

所有的驱动都是工作在内核态的

内核启动linuxrc就把工作权利交给根文件系统了

在profile中写

alies vi = ‘vim’ 这样以后vi就相当于vim了

嵌入式领域中的命令基本上都是从busybox连接过来的

可以在bin下执行ll -h来看

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

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

相关文章

linux 如何查看属性,linux 下查看系统属性

linux 下查看系统属性(2009-06-28 19:01:34)标签:linux杂谈分类:OSlinux下查看系统属性1、查看cpu信息查看所有cpu信息:cat /proc/cpuinfo查看cpu类型: grep "model name" /proc/cpuinfo2、查看内存信息:查看…

幼儿学数数的c语言程序,【资源学习】c语言程序代码,登录幼儿园200个小朋友的数据...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼编写程序,登录幼儿园200个小朋友的数据:姓名、性别、年龄、身高、体重、出生日期,分别按年龄排序后输出。要求:(1)登录数据用函数input()(2)按身高排序用函数sort()(3)输出排序结果用…

c语言传入参数不正确,请高手看看一下程序怎么回事啊?老是提示传参数错误...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#includevoid main(){ void average(float, int);void search(float,int);static float score[][4]{{65,67,70,60},{80,87,90,81},{99,90,100,98}};average(score,12);search(score,2);}void average(float *p,int n){float *p_end…

vs用c语言写贪吃蛇,熬书几个月,终于编出简易的贪吃蛇了,VS2013

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#include#include#define X 30#define Y 15void guozi(int *x, int *y);int main(void){char map[X][Y];int x;int y;//横纵坐标int i;int j;//标记蛇头int p, q;//标记蛇尾int t, d;//寻找蛇尾int n 4;//蛇的长度…

中国电信学院c语言题库,电脑题库试题精编版.doc

1【单选题】以下关于图灵机的说法,正确的是( ?)。A、图灵机是一种计算机理论模型B、图灵机是用于图灵测试的计算机C、图灵机是第一台机械式计算机D、图灵机是冯诺依曼体系结构计算机正确答案: A?2【单选题】关于中文信息编码,以下正确的叙述…

统计c语言中英文字幕,C语言日记——递归

C语言日记——递归首先,允许我从《c primer plus》中摘一句话:C允许函数调用它自己,这种调用称为递归。有一段时间一直搞不清楚递归的实质,直到看到如下代码:#includeint up_and_down(int n);int main() {up_and_down(…

gnu linux中 使用,在Linux上使用GNU sed的方法

grep 命令grep 在文件(或命令输出)中搜索指定正则表达式,并且在标准输出中输出匹配的行。样例显示文件 /etc/passwd 中用户 gacanepa 的信息,忽略大小写。#grep-i gacanepa /etc/passwd显示 /etc 文件夹下所有 rc 开头并跟随任意数字的内容。#ls-l /etc …

android开机自动开启zram,低内存配置  |  Android 开源项目  |  Android Open Source Project...

Android 支持内存为 512 MB 的设备。本文档旨在帮助 OEM 优化和配置 Android 内核 4.4,使其能够在低内存设备上运行。在下文所述的优化措施中,有几项非常通用,甚至也可应用于以前的版本。Android 内核 4.4 平台优化改善了内存管理采用了经验证…

android 自动 键盘,关于Android中的软键盘

InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间&#xff0c…

Android渠道包自动发布市场,Android Gradle实现打包指定渠道后自动上传到fir

fir分三个主要步骤1.获取fir上传凭证2.上传APKAPP logo图标3.获取最新的下载地址供别人下载注:python使用的是requests网络请求库1.获取fir上传凭证image.png代码如下:# 第一步:获取fir上传凭证print("get fir upload certificate"…

android studio vfs,Android Studio:尝试呈现XML布局的InvalidVirtualFileAccessException

我正在尝试在我的应用中预览xml布局(任何xml布局).我正在使用Android Studio 1.5 Preview 2.我一遍又一遍地收到此错误:InvalidVirtualFileAccessException:访问无效的虚拟文件:file:// D:/Scott/Android/Studio/MyApp/app/build/intermediates/classes/debug/com/scott/myapp/…

android 基类fragment,Android DialogFragment 基类的定制

鸿洋博客介绍:DialogFragment的基本使用好处:1:使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的生命周期2.DialogFragment也允许开发者把Dialog作为内嵌…

升级鸿蒙系统无法选择应用,申请鸿蒙系统有一个应用选择怎么选择呢

[分享交流]申请鸿蒙系统有一个应用选择怎么选择呢34364电梯直达huafen774590890新学乍练发表于 2020-12-18 22:19:17来自:HUAWEI Mate 30 Pro 5G最新回复 2020-12-19 09:31:55要怎么选择大家知道吗?想着你的狼自成一派发表于 2020-12-18 22:22:29来自&am…

html5 网页游戏论文,JavaScript编写的网页小游戏,很给力

以下为游戏代码:var timerID null;var INT 40;var loadFLG 0;var gameFLG 0;var missFLG 0;var tim 0;var blcol new Array(5); // block colorvar blsta new Array(40); // block statusvar blNO new Array(40); // block Novar blclr 0; // clear block…

c 插件读取有属性的html6,廖雪峰的JS教程6-jQuery

jQueryjQuery是JavaScript世界中使用最广泛的一个库。jQuery这么流行,肯定是因为它解决了一些很重要的问题。实际上,jQuery能帮我们干这些事情:消除浏览器差异:你不需要自己写冗长的代码来针对不同的浏览器来绑定事件,…

html5中的css特性,浅谈HTML5 CSS3的新交互特性

本文标题的这副图片,是用phosotshop制作的。但是,在搜索引擎中你却无法搜索到它,搜索引擎还没有强大到能够识别图片里面的文字。并且由于图片的体积不算太小,可能网速慢的网友在浏览的时候不得不耐心的等待图片的刷新。那么&#…

html表格通过邮件发送,通过html表格发电子邮件

[email protected]>Create this tableThe field "what" is for different categoriesCREATE TABLE email_notify (ID int(11) DEFAULT ‘0‘ NOT NULL,What varchar(60) DEFAULT ‘0‘ NOT NULL,Name varchar(60) DEFAULT ‘0‘ NOT NULL,Email varchar(60) DEFAU…

计算机专业知识多选题证监会,2019年国家公务员考试中国证监会(计算机类)专业科目考试大纲...

2019年国家公务员考试中国证监会(计算机类)专业科目考试大纲由国家公务员考试网公告解读栏目由提供,更多关于2019国家公务员考试大纲,计算机类国考考试大纲,证监会国考考试大,国家公务员考试公告解读的内容,请关注国家公务员考试网/广东公务员考试网&…

计算机和网络老是断开,电脑插上网线还是显示断开连接怎么办

在网络故障处理中遇到过千奇百怪的问题,这里就说一个比较怪异的问题。一个网线插口,有的电脑插上网线可以正常上网,而有的电脑插上就显示断开连接。试了好多办法,换了网线,换了插口,换了路由器,…

计量经济学第六版计算机答案,伍德里奇计量经济学导论计算机习题第六章第13题c_6.13...

伍德里奇计量经济学导论计算机习题第六章第13题,答案和MATLAB代码clear,clc;% c6.13 by% 打开文字文件和数据文件importdata(meap00_01.des);dataxlsread(meap00_01);% 检验所用数据是否为非空Isnanisnan(data(:,[3,5,8,9]));asum(Isnan);bfind(a0);data1data(b,:);% 变量命名m…