《嵌入式系统设计与应用》——学习笔记03(第三章 嵌入式Linux操作系统)
第三章 嵌入式Linux操作系统
本章要点:
⑴Linux的基本概念。
⑵Linux的目录结构。
⑶Linux的常用命令。
⑷Linux的文本编辑器。
⑸Linux系统的启动过程。
3.1 Linux基本概念
从应用上讲,Linux一般有四个主要部分:内核、Shell、文件系统和实用工具。
1.Linux内核
Linux内核是整个Linux系统的灵魂,Linux系统的能力完全受内核能力的制约。Linux内核负责整个系统的内存管理、进程调度和文件管理。Linux内核容量并不大,一般不会超过1MB,而且大小可裁剪,这是其优点之一。
简单介绍Linux内核功能:
1)进程管理
进程管理功能是负责创建和撤销进程以及处理它们和外部世界的连接。主要包括处理不同进程之间的通信、控制进程如何共享CPU资源的调度程序。概括说就是内核的进程管理活动就是在单个或多个CPU上实现多进程的抽象。
2)内存管理
用来管理内存的策略是决定系统性能的一个关键因素。内核在有限的可用资源上为每个进程都创建了一个虚拟寻址空间。内核的不同部分在和内存管理子系统交互时使用一套相同的系统调度。
3)文件管理
Linux中每个对象几乎都可以被视为文件。一切皆文件。
4)设备控制
几乎每个系统操作最终都会被映射到物理设备上。除处理器、内存等几个有限实体外,所有设备控制操作都由与被控制设备相关的代码来完成,这段代码叫设备驱动程序。内核必须为系统中每个外设嵌入相应的驱动程序。
5)网络功能
因为大部分的网络操作都和具体的进程无关,因此也需要操作系统来管理。另外,所有的路由和地址解析问题都由内核进行处理。
2.Linux Shell
Shell是Linux系统下的命令解释器,也是使用Linux系统的主要环境,它提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它们送入到内核去执行,类似于Microsoft Windows的Command命令。
3.Linux文件系统
与Windows的文件系统不同,Linux整个文件系统是以一个树根"/"为起点的,所有文件和外部设备都以文件的形式挂载在这个文件树上,包括硬盘、软盘、光驱、调制解调器等。
下面简单介绍几个主要目录:
1) /bin 和 /sbin
通常存放Linux基本操作命令的执行文件,存放在这两个目录的内容是一样的,主要区别是:/sbin中的程序只能由root(系统管理员)来执行。
2)/dev
存放各种外部设备的镜像文件。
3)/lib
存放系统动态链接共享库。Linux系统内核内置的已经编译好的驱动程序存放在/lib/modules/kernel目录下,几乎所有应用程序都会用到这个目录下的共享库。
4)/user
存放用户应用程序和文件。Linux系统内核源代码存放在usr/src/kernels目录下。
5)/etc
存放系统的各种配置文件,系统启动过程中需要读取其参数进行相应的配置。其中:
a. /etc/rc.d目录存放启动或改变运行级别的脚本文件及目录。
b./etc/passwd为用户数据库。
c. /etc/profile文件为系统环境变量的配置文件
3.2 嵌入式Linux文件系统
为了对各类文件系统进行统一管理,嵌入式Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。嵌入式Linux下的文件系统结构如下图:
3.2.1 基于ARM的文件系统
1.ramdisk
ramdisk是将一部分固定大小的内存当作分区来使用,并非是一个世纪的文件系统,二是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。
2.ramfs/tmpfs
ramfs是一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。
ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据。
ramfs/tmpfs相对于传统的ramdisk的不同之处在于:不能格式化,文件系统大小可随所含文件内容大小变化。
tmpfs的一个缺点是当系统重新引导时会丢失所有数据。
3.3 Linux常用操作命令
3.3.1 文件目录相关命令
-
ls命令
1)作用:列出目录的内容。
2)格式:ls [- 选项] [目录或文件名]
3)命令选项:
-a 显示指定目录下所有子目录与文件名,包括隐藏文件。
-l 以长格式显示文件的详细信息。
2.cd命令
1)作用:改变工作目录
2)格式: cd [目录路径/]目录名
3)选项:
cd . .(返回上一层目录)
3. pwd命令
作用:显示当前目录的绝对路径(从根目录“/”开始)
4.makdir命令
1)作用:创建一个目录
2)格式:mkdir [目录路径/新目录名]
5.cp命令
1)作用:复制文件,可以使用通配符。
2)格式:
cp[选项][源文件路径]源文件名 目标路径[目标路径名]
6.rm和rmdir命令
1)作用:rm为删除指定文件;rmdir为删除指定的目录,其目录必须为空目录。
2)格式:rm[选项] 文件名
rmdir 目录路径/目录名
3)选项
rm的命令选项有:
-i 询问是否删除(y表示是,n表示否)。
-f 不询问是否删除。
-r 递归删除整个目录,同rmdir。
7.cat命令
1)作用:在屏幕上显示文本文件的内容。
2)格式: cat 文件名
3.3.2 磁盘及系统操作相关命令
-
fdisk命令
1)作用:用来给磁盘分区、查看磁盘情况等。
2)格式:fdisk [- 选项]
3)命令选项:
-l 显示系统的分区情况。
2.df命令
1)作用:检查硬盘所剩(所用)空间。
2)格式: cf [选项]
3)选项:
-h 以1024KB=1MB的方式显示磁盘使用情况。
-H 以1000KB=1MB的方式显示磁盘使用情况。
3. free命令
1)作用:查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存以及共享内存和被核心使用的缓冲区。
2)格式: free [选项]
3)选项:
-b 以字节为单位显示。
-k 以KB为单位显示。
-m 以MB为单位显示。
4.mount命令
1)作用:挂载某一设备使之成为某个目录名称。
2)格式:
mount[选项]<-t 类型>[-o 挂载选项]<设备><挂载点>
3)选项:
-t 该参数配合选项用于指定一个文件系统分区的类型。
-o 该参数配合选项用于指定一个或多个挂载选项。
3.3.3 打包压缩相关命令
-
gzip命令
1)作用:对单个文件进行压缩或对压缩文件进行解压缩,压缩文件名后缀为.gz。
2)格式:gzip 压缩或解压缩文件名
3)命令选项:
-d 对压缩文件进行解压缩
-r 用递归方式查找指定目录并压缩其中所有文件或解压缩。
-v 对每个压缩文件显示文件名和压缩比
2.tar命令
1)作用:对文件进行打包或解包,打包文件名后缀为.tar。可以把一大堆文件和目录全部打包成一个文件,对于备份文件或将几个文件组合成一个文件以便于网络传输是很有用的。注意:打包与压缩是两个不同的概念,打包不一定被压缩。
2)格式: tar [选项]目标文件名 源文件列表
3)选项:
-a或–catenate 新增文件到已存在的备份文件
-c或–create 建立新的备份文件
-f<备份文件>或–file=<备份文件> 指定备份文件
-r或–append 新增文件到已存在备份文件的结尾部分
-t或–list 列出备份文件的内容
-u或–update 仅置换较备份文件内的文件更新的文件
-v或–verbose 显示指令执行过程
-w或–interactive 遭遇问题时先询问用户
-x或–extract 或–get 从备份文件中还原文件
-z或–gzip或–ungzip 通过gzip指令处理备份文件
3.3.4 与网络相关的命令
-
ifconfig命令
1)作用:查看和配置网络接口的地址和参数,包括IP地址、网络掩码、广播地址,它的使用权限是超级用户。
2)格式:
查看网卡配置信息:ifconfig
设置网卡:ifconfig eth0 [主机IP地址]
eth0代表第一块网卡,eth1代表第二块网卡。
2.ping命令
1)作用:检测网络连接情况,判断主机联网是否正常。
2)格式: ping [IP地址]
3.4 Linux的文本编辑器
3.4.1 vi文本编辑器
1.vi的模式
一共有以下三种:
1)命令行模式
用户在用vi编辑文件时,最初进入的是一般模式。在该模式中可以通过移动光标进行“删除字符”或“整行删除”等操作,也可以进行“复制”、“粘贴”等操作,但无法编辑文件。
2)插入模式
只有在该模式下,用户才能进行文字编辑输入,按字母i可以进入这个模式,按esc可以退回到命令行模式。
3)底行模式
在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退出操作,与可以设置编辑环境,如寻找字符串。列出行号等。
2.vi的操作流程
1)进入vi,在命令行模式输入vi 文件名,进入命令行模式。
2)按字母i进入插入模式,此时可以编辑文字。
3)最后按esc键,转入到命令行模式,并在底行中输入“:wq”(存盘退出)进入底行模式。
这样就完成了一个简单的vi操作流程。
3.vi的各模式功能键
vi命令行模式功能键
vi底行模式功能键