cat userlist
1.Linux文件系统的三层抽象是什么?
一:什么是嵌入式系统:
一般指非PC系统,有计算机功能但又不称之为计算机的设备和器材。它是以应用为中心,软硬件可裁剪的,适用应用系统对功能,可靠性,成本,体积,功耗等综合性严格要求的专用计算机系统。
定义:嵌入到对象系统中的专用计算机系统。对象系统是指所嵌入的宿主系统;
嵌入性,专用性和计算机系统是计算机系统的三个基本要素;
它们分别指:(1)嵌入性:是指嵌入到对象系统中,满足对象系统的环境要求,如物理环境(小型),电气环境(可靠),成本低廉等要求; (2)专用性:嵌入式系统的软硬件可裁剪,可满足对象系统要去的最小软、硬件配置; (3)计算机系统:嵌入式系统必须满足对象系统控制要求的计算机系统,这样的计算机系统必须配置有与对象系统相适应的接口电路。
二:嵌入式Linux系统结构
由图可知:嵌入式Linux系统分三层:应用层,内核层,硬件层。
1:应用层是一些应用程序和库,是面向用户的,如命令,QQ等应用程序;
2:内核层的主要功能是设备驱动,进程管理,内存管理,文件系统和网络通信;
其中,内核与应用程序之间是系统调用接口(函数),它为用户提供内核的功能,同时也保护了内核。but,问题来了,为什么内核要向用户提供这些接口(函数)呢?
其主要原因有:(1):内核要为应用程序服务,应用程序如果没有内核服务,则功能非常单一;
(2) 内核是一个稳定的代码,同时也要为多个用户空间的程序服务,为了防止用户空间的某些程序使内核代码崩溃或产生其它问题,而不能为其他用户服务,所以内核向用户空间提供接口(函数),并在这些接口函数中加上了一些保护,这样将向符合接口函数的应用程序提供服务,同时也保护了内核。(在学习函数接口时,我们主要关注接口的功能、参数、返回值)。
内核层与硬件层之间的接口是驱动程序,驱动程序负责硬件操作,内核提供了驱动程序的添加机制,便于开发人员将驱动代码添加到内核中。
3:硬件层是以信号为对象,完成各种信号之间的相互转换,通常信号变换前后其承载的信息保持不变,因此,无论如何变换,信号之间总是存在某种函数关系。
嵌入式系统硬件电路是由微处理器,存储器,输入输出设备,通信与扩展接口构成。
微处理器:处理器将所有可操作的硬件资源全部以地址空间的形式组织在一起,上层系统(软件)只看到统一的地址空间。可见处理器的第一任务就是将所有的硬件资源组织在一起,供软件操作,这项工作即寻址。
处理器的另一项任务就是对数据进行转移,各种算术逻辑运算,决定这些操作的就是程序,或称指令。
存储器:用于保护系统的程序指令和运行过程中所需的寄存空间。
输入输出设备/通信与扩展接口:实现系统与外界环境之间的信息交换。
2.写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意
*cat命令:Linux下的一个文本输出命令,通常用于观看某个文件的内容
man cat
(1)一次显示整个文件
cat filename
(2)从键盘创建一个文件,只能创建新文件,不能编辑已有文件
cat fliename
(3)将几个文件合并为一个
文件
cat file1 file2 > file
-
cat具体命令格式为:cat [-AbeEnstTuv] [--help] [--version] fileName
*参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting -
以root身份登录Linux后,执行“ls -al”(ls:list,显示文件的文件名与相关属性;-al:表示列出所有的文件详细的权限与属性(包含隐藏文件))
-
-
第一列:文件的类型与权限
第一个字母代表文件类型:d目录
-文件
l链接文件
b设备文件里的可供存储的接口设备
c表示设备文件里的串行端口设备,如键盘鼠标等一次性读取设备·
接下来三个一组,第一组为文件所有者(User)权限,第二组为同用户组(group)的权限,第三组为其他非本用户组(Others)的权限 -
第二列:有多少文件名连接到此节点(i-node)
每个文件都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node,这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码 -
第三列:所有者账号
-
第四列:文件所属用户组
-
第五列:容量大小,默认单位B
-
第六列:创建或最近修改日期
查看完整时间 ls -l --full-time (乱码可以使用"LANG = en_US"来修改语言) (修改系统配置文件“/etc/sysconfig/i 18n”,利用nano来修改该文件内容, “LANG = en_US”使系统默认语言为英文)
-
第七列:文件名
-