嵌入式开发和linux各概念.docx
- 文档编号:7474133
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:20
- 大小:371.67KB
嵌入式开发和linux各概念.docx
《嵌入式开发和linux各概念.docx》由会员分享,可在线阅读,更多相关《嵌入式开发和linux各概念.docx(20页珍藏版)》请在冰点文库上搜索。
嵌入式开发和linux各概念
1、嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由以下几部分组成:
⏹嵌入式微处理器
⏹外围硬件设备
⏹嵌入式操作系统
⏹特定的应用程序
2、嵌入式系统的特点
⏹应用的特定性和广泛性
⏹技术、知识、资金的密集性
⏹高效性
⏹较长的生命周期
⏹高可靠性
⏹软硬一体,软件为主
⏹无自举开发能力
3、嵌入式系统的历史
20世纪70年代:
单片机出现
20世纪80年代:
嵌入式操作系统出现
20世纪90年代:
实时多任务操作系统
4、嵌入式系统存储器类型:
⏹静态易失型存储器(RAM,SRAM);
⏹动态存储器(DRAM);
⏹非易失性存储器ROM(ROMEPROM,EEPROM,FLASH);
⏹硬盘、软盘、CD-ROM等
5、嵌入式操作系统是嵌入式应用软件的基础和开发平台.嵌入式系统的出现,解决了嵌入式软件开发标准化的难题.嵌入式系统具有操作系统的最基本的功能:
⏹进程调度
⏹内存管理
⏹设备管理
⏹文件管理
⏹操作系统接口(API调用)
嵌入式操作系统具有的特点:
⏹系统可裁减,可配置.
⏹系统具备网络支持功能
⏹系统具有一定的实时性
6、嵌入式操作系统的分类
嵌入式系统可分为实时嵌入式系统与非实时嵌入式系统
实时系统的定义:
能够对外部事件做出及时响应的系统。
响应时间要有保证。
实时操作系统:
VxWorks,WinCE,QNX,Nucleus
非实时操作系统:
嵌入式Linux
7、嵌入式系统软件的层次结构
具有操作系统的嵌入式软件层次:
驱动层程序实时操作系统(RTOS)操作系统的应用程序接口(API)应用程序
8、启动程序BootLoader介绍
BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。
通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。
对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启时都必须运行BootLoader,为系统运行准备好软硬件环境。
系统启动代码完成基本软硬件环境初始化后,对于有操作系统的情况下,启动操作系统、启动内存管理、任务调度、加载驱动程序等,最后执行应用程序或等待用户命令;对于没有操作系统的系统直接执行应用程序或等待用户命令
系统的启动通常有两种方式,一种是可以直接从Flash启动,另一种是可以将压缩的内存映像文件从Flash(为节省Flash资源、提高速度)中复制、解压到RAM,再从RAM启动。
当电源打开时,一般的系统会去执行ROM(应用较多的是Flash)里面的启动代码。
这些代码是用汇编语言编写的,其主要作用在于初始化CPU和板上的必备硬件如内存、中断控制器等。
有时候用户必须根据自己板子的硬件资源情况做适当的调整与修改
9、主流bootloader介绍
⏹U-boot
⏹PPCboot
⏹ARMboot
⏹Blob
⏹Redboot
10、嵌入式系统的开发方法
1.嵌入式系统的设计准则
2.嵌入式系统的设计流程
3.嵌入式系统的开发方法
4.嵌入式系统的开发模式
5.嵌入式系统的测试
1、嵌入式系统的设计准则
嵌入式系统设计不同于桌面系统,它非常受制于功能和具体的应用环境。
所以嵌入式系统的设计具有一些特殊的要求。
嵌入式系统的设计要求:
⏹并发处理,及时响应
⏹接口方便,操作容易
⏹稳定可靠,维护简便
⏹功耗管理,降低成本
⏹功能实用,便于升级
2、嵌入式系统的设计流程
嵌入式系统开发的最大特点就是需要软硬件综合开发。
其原因在于:
一方面,任何一个嵌入式产品都是软件和硬件的结合体;另一方面,一旦嵌入式产品研发完成,软件就固化在硬件环境中,嵌入式软件是针对相应的嵌入式硬件开发的,是专用的。
嵌入式系统的这一特点决定了嵌入式应用开发方法不同于传统的软件工程方法。
3、嵌入式系统的开发流程
嵌入式系统分层设计模型
嵌入式系统的开发模式
⏹嵌入式系统的软件使用交叉开发平台进行开发。
⏹系统软件和应用软件在主机开发平台上开发
⏹系统软件和应用软件在嵌入式硬件平台上运行。
⏹宿主机(Host)是用来开发嵌入式软件的系统。
⏹目标机(Target)是被开发的目的嵌入式系统。
⏹交叉编译器(Cross-compiler)是进行交叉平台开发的主要软件工具。
它是运行在一种处理器体系结构上,但是可以生成在另一种不同的处理器体系结构上运行的目标代码的编译器。
嵌入式系统的测试
⏹测试目的:
⏹找到软硬件设计中的错误
⏹减少风险
⏹节约成本
⏹提高性能
测试什么:
⏹功能调试(黑盒测试)
⏹压力测试边界测试异常测试
⏹错误测试随机测试性能测试
⏹覆盖测试(白盒测试)
⏹语句测试判定和分支测试条件覆盖
11、什么是Linux
Linux是一个网络操作系统(NetworkOperatingSystem,NOS)。
网络操作系统则在一般操作系统的功能上增加了网络功能,具体包括:
(1)实现网络中各计算机之间的通信和资源共享;
(2)提供多种网络服务软件;
(3)提供网络用户的应用程序接口。
Linux就是这样一个网络操作系统。
与其他商业化的网络操作系统不同,它是由以LinusTorvalds为首的一批Internet上的志愿者开发的,完全免费,并与另一著名的网络操作系统UNIX完全兼容,是一个具有很高性能价格比的网络操作系统。
12、Linux的历史
Linux最早是LinusTorvalds于1991年在芬兰赫尔辛基大学原创开发的,并在GNU的GPL(GeneralPublicLicense)原则下发行。
13、Linux的版本
Linux的版本号又分为两部分:
内核(Kernel)版本和发行(Distribution)版本。
内核版本的序号由3部分数字构成,其形式如下:
major.minor.patchlevel
如:
2.4.182.6.14
14、国外主要发行版本
1.RedHatLinux
2.SuSELinux
3.DebianLinux
4.MandrakeLinux
5.TurboLinux
15、国内主要发行版本
1.红旗Linux
2.中标普华Linux
3.共创桌面Linux
4.冲浪Linux
5.蓝点linux
16、Linux的功能
1.稳定的核心
2.丰富的应用软件
3.XWindow系统
4.多重启动
5.网络功能
6.软件开发工具
17、Linux的常用软件
基本命令和工具
办公软件
程序设计
网络软件
总之,Linux是对网络支持得最好的操作系统之一。
Linux常用的网络应用软件有以下几类。
(1)WWW服务器:
Apache、Caudium、CERNHTTPDServer、NetscapeFastTrackServer、ZeusServer;
(2)FTP服务器:
Wu-ftp、proftpd、vsftpd;
(3)FTP客户端:
gFTP、lftp
(4)Mail服务器:
Qmail、sendmail、XMail;
(5)E-Mail客户端:
pine、Kmail;
(6)浏览器:
Netscape、Mozilla、Phoenix、lynx;
(7)虚拟终端:
rxvt、xterm、gnome-terminal、mlterm;
(8)聊天工具:
gaim、Licq。
(9)网络共享服务:
samba。
(10)远程登陆:
telnet、ssh1、ssh2
18、Linux的内核体系结构
与UNIX系统相似,Linux系统大致可分为3层:
靠近硬件的底层是内核,即Linux操作系统的常驻内存部分;中间层是内核之外的Shell层,亦即操作系统的系统程序部分;最高层是应用层,即用户程序部分,包括各种文本处理程序、语言编译程序及游戏程序等。
Linux的系统结构如图2.1所示。
图2.1Linux系统结构
Linux系统的核心框图如图2.2所示。
19、Linux分区
RedHatLinux有自己的文件系统(Linux/ext3),要单独占用自己的分区。
硬盘分区有3种类型:
主分区(PrimaryPartition)、扩展分区(ExtendedPartition)和逻辑分区(LogicalPartition)。
RedHatLinux既可以安装在主分区上,也可以安装在逻辑分区上。
Linux使用字母和数字的组合来指代磁盘分区。
该命名方案是基于文件的,文件名的格式为:
/dev/xxyN
(1)/dev/
(2)xx
(3)y
(4)N
20、Linux使用基础
Linux系统可以在两种环境下操作:
一种是在XWindow的桌面环境下操作,它与MicrosoftWindows环境下的操作十分相似;另一种是在控制台的字符屏幕下操作,它通过键盘输入命令来实现对系统的操作。
21、Linux常用命令
shell是一种命令行解释程序(Command-LanguageInterpreter),负责用户和操作系统的沟通。
在终端方式的shell提示窗口如图4.1所示。
(1)进入与退出命令
1.进入系统
Linux是多用户操作系统,它允许多个用户同时使用一台计算机,这是它与MicrosoftWindows的最大区别之一,因此Linux有比MicrosoftWindows严格得多的用户管理。
在字符终端界面环境下,终端屏幕上出现如下登录提示行:
login:
在它的后面输入自己的登录名。
如果是新用户,那么要与系统管理员联系,取得一个合法的登录名。
输入登录名、并按【Enter】键后,在屏幕上出现
Password:
要求在其后输入口令。
输入的口令字符串并不在屏幕上显示,以利于保密。
输入完口令并按【Enter】键后,系统就对登录名和口令进行验证。
如果确认无误,则在屏幕上显示若干行信息,最后一行出现:
$_
$是一般用户的shell提示符,其后是闪烁的光标条(root用户的提示符是“#”)。
2.退出系统
当完成工作后,需要从系统中退出。
退出系统的过程很简单,在$提示符出现后,输入logout命令,然后按下【Enter】键或同时按下【Ctrl】和【D】键,屏幕上会再次出现
login:
表示已经从系统中退出。
如果想再次进入系统,必须重新登录。
3、系统询问命令
1.询问当前日期和时间的date命令
例如$date。
2.询问当前用户的who命令
who命令可列出当前每一个处在系统中的用户的登录名、终端名和登录进入时间。
3.显示当前目录路径名的pwd命令
22、文件操作命令
Linux命令行的一般格式为
命令名[选择项][参数]
1.文件及其分类
Linux的文件通常分为普通文件、目录文件、设备文件和链接文件3类。
为了对文件进行保护,Linux系统提供了文件存取控制方式。
把所有用户划分为3种身份,依次是文件主(user)、同组用户(group)、其他用户(other)。
每种用户对一个文件可拥有读(r)、写(w)和执行(x)的权利。
用字符形式表示上述文件方式,就是
rwxr-xr--
这9位的顺序是固定的(其中“-”表示对应用户不具备相应权限)。
2.文件显示命令
cat命令用来连接并显示文件。
它顺序阅读每一个文件,并将它们在标准输出上输出。
如果没有指定输入文件或者只是给定一个连字符(-),则从标准输入上读取。
其语法格式为
cat[-u][-s][-v][-t][-e]文件名…
例如,
$catml.c
则在屏幕上显示出文件ml.c的内容。
$catfile1file2>file3
3.文件内容比较命令
(1)comm命令
comm命令对两个已经排序的文件进行比较。
其语法格式为
comm[-123]file1file2
(2)diff命令
diff命令比较两个文本文件。
其语法格式为
diff[-br][-c|-Cn|-e|-f|-h]file1file2
3)cmp命令
cmp命令比较两个文件。
其语法格式为
cmp[-l][-s]file1file2
4.文件的复制、移动和删除命令
(1)cp命令
cp命令的功能是拷贝文件。
其语法格式为:
cp[-fip]source_filetarget_file
cp[-fip]source_file1source_file2…target
cp-R[-fip]source_file1source_file2…target
cp-r[-fip]source_file1source_file2…target
(2)mv命令
mv命令的功能是移动或者重新命名文件和目录。
其语法格式为
mv[-fi]source_filetarget_file
mv[-fi]source_file…target_directory
(3)rm命令
rm命令的功能的是删除文件或目录。
其语法格式为
rm[-firR]file…
5.确定文件类型的file命令
当用户拥有很多文件时,常以自己的登录名为根节点,为自己建立一棵文件子树。
其中,一些节点可能是目录文件,而另一些节点可能是信息文件。
若用户忘记了哪些名字是目录文件,哪些名字是信息文件,则可用file命令。
该命令带有一个参数表,用于给出想了解的某类型的文件名清单。
命令执行的结果是在屏幕上显示出各文件的类型。
23、目录操作命令
1.目录结构
Linux文件系统采用带链接的树形结构。
即只有一个根目录(通常用“/”表示),其中含有下级子目录或文件的信息;子目录中又可含有下级的子目录或者文件的信息,……这样一层一层地延伸下去,构成一棵倒置的树,如图4.2所示。
图4.2Linux目录结构
/bin:
显而易见,bin就是二进制(binary)英文缩写。
/boot:
在这个目录下存放的都是系统启动时要用到的程序。
在使用grub或lilo引导linux的时候,会用到这里的一些信息。
/dev:
dev是设备(device)的英文缩写。
这个目录对所有的用户都十分重要。
因为在这个目录中包含了所有linux系统中使用的外部设备。
但是这里并不是放的外部设备的驱动程序。
/etc:
etc这个目录是linux系统中最重要的目录之一。
在这个目录下存放了系统管理时要用到的各种配置文件和子目录。
我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
/sbin:
这个目录是用来存放系统管理员的系统管理程序。
/home:
如果建立一个用户,用户名是“jl”,那么在/home目录下就有一个对应的/home/jl路径,用来存放用户的主目录。
/lib:
lib是库(library)英文缩写。
这个目录是用来存放系统动态连接共享库的。
几乎所有的应用程序都会用到这个目录下的共享库。
/mnt:
这个目录在一般情况下也是空的。
可以临时将别的文件系统挂在这个目录下。
/proc:
可以在这个目录下获取系统信息。
这些信息是在内存中,由系统自己产生的。
/root:
如果用户是以超级用户的身份登录的,这个就是超级用户的主目录。
/tmp:
用来存放不同程序执行时产生的临时文件。
/usr:
这是linux系统中占用硬盘空间最大的目录。
文件和目录的路径名可用两种方式表示:
绝对路径名(又称全路径名)和相对路径名。
2.目录的创建和删除
(1)mkdir命令
mkdir命令的功能是建立目录。
其语法格式为
mkdir[-ep][-mmode]dirname…
(2)rmdir命令
rmdir命令的功能是删除目录。
其语法格式为
rmdir[-p][-s]dirname…
rmdir不能删除安装文件系统的根目录。
3.目录的显示和改变工作目录
(1)ls命令
ls命令可打印有关文件和目录的信息。
ls是“list”的简称。
(2)cd命令
cd命令的功能是改变工作目录。
其语法格式为
cd[directory]
4.显示当前目录
显示当前目录的命令是pwd命令,该命令使用的语法格式如下:
pwd
执行pwd命令形式如下:
#pwd
24、口令、权限命令
1.修改口令
passwd命令的功能是改变登录或modem(调制解调器)拨号shell口令。
其语法格式为
passwd[-m][-dluf][-nminimum][-xexpiration][-rretries][name]
passwd–s[-a][name]
2.改变存取权限
chmod命令的功能是改变文件或目录的存取权限。
其语法格式有以下两种。
①符号方式
chmod[-R][who][+|-|=][mode…]file…
②绝对方式
chmod[-R]modefile…
(3)使用八进制数设置权限
另外,文件和目录的权限还可用八进制数字模式来表示。
三个八进制数字分别代表ugo的权限。
执行权、写权和读权所对应的数值分别是1,2和4。
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
如:
chmod755mydir(myfile)
3.改变文件和目录的所有权
命令的格式如下:
chown [选项] 用户 文件和目录列表
命令中的参数说明如下:
Ø 命令中的选择说明如表2-8所示。
Ø 用户:
可能是用户号或文件/etc/passwd中出现的用户名。
文件和目录列表:
用于重新指定所有权的用空格分隔的文件和目录列表。
表2-8chown命令的常用选项
常用选项说 明
-c只有在文件的权限确实改变时才进行详细说明。
-f不打印权限不能改变的文件的错误信息。
-v详细说明权限的变化。
-R递归改变目录及其内容的权限。
25、文件压缩与联机帮助命令
1.gzip压缩文件
gzip命令是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
gzip命令的使用语法格式如下:
gzip[选项]压缩(解压缩)的文件名
gzip命令各选项的说明如表2-9所示。
表2-9gzip命令的常用选项
常用选项
说明
-c
将输出写到标准输出上,并保留原有文件。
-d
将压缩文件解压。
-l
对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息
-r
递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t
测试,检查压缩文件是否完整。
-v
对每一个压缩和解压的文件,显示文件名和压缩比。
2.文件打包tar
tar可以对文件和目录进行打包。
利用tar,用户可以对某一特定文件进行打包(一般用作备份文件),也可以在包中改变文件,或者向包中加入新的文件。
tar命令的使用语法格式如下:
tar[主选项+辅选项]文件或者目录
表2-10tar命令的主选项的常用选项
常用选项
说明
-c
创建新的档案文件。
如果用户想备份一个目录或是一些文件,就要选择这个选项。
-x
从档案文件中释放文件。
-r
把要存档的文件追加到档案文件的未尾。
例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t
列出档案文件的内容,查看已经备份了哪些文件。
-u
更新文件。
就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
表2-11tar命令的辅助选项的常用选项
常用选项说 明
f使用档案文件或设备,这个选项通常是必选的。
K保存已经存在的文件。
例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m在还原文件时,把所有文件的修改时间设定为现在。
M创建多卷的档案文件,以便在几个磁盘中存放。
v详细报告tar处理的文件信息。
如无此选项,tar不报告文件信息。
z用gzip来压缩/解压缩文件
26、联机帮助
1.显示帮助手册
通常使用者只要在命令man后,输入想要获取的命令的名称(例如ls),man就会列出一份完整的说明,其内容包括命令语法、各选项的意义以及相关命令等。
该命令的一般形式为:
man [选项] 命令名称
表2-13man命令的常用选项
常用选项说 明
-S根据章节显示,由于一个命令名称可能会有很多类别,其类别说明如表2-14所示。
-f只显示出命令的功能而不显示其中详细的说明文件
-w不显示手册页,只显示将被格式化和显示的文件所在位置。
-a显示所有的手册页,而不是只显示第一个。
-E在每行的末尾显示$符号
表2-13man命令的章节常用选项
章节说 明
1一般使用者的命令
2系统调用的命令
3C语言函数库的命令
4有关驱动程序和系统设备的解释
5配置文件的解释
6游戏程序的命令
7其它的软件或是程序的命令和有关系统维护的命令
27、Shell程序设计
Shell是Linux系统中的一个重要的层次,它是用户与系统交互作用的界面。
Shell除了作为命令解释程序以外,还是一种高级程序设计语言。
利用Shell程序设计语言可以编写出功能很强、但代码简单的程序
(1)Shell概述
1.Shell的特点和主要版本
在Linux系统中通常提供多种不同的Shell,常用的有Bourneshell(简称sh)、C-shell(简称csh)、Kornshell(简称ksh)和BourneAgainshell(简称bash)。
bash是Linux中一个默认的shell,本节主要介绍bash。
2.Shell程序示例
Shell程序也可存放在文件上,下面是两个shell程序示例。
【例4.1】由3条简单命令组成的shell程序(文件名为ex1)。
date
pwd
cd..
3.Shell过程的建立和执行
称作Shell文件或者Shell脚本(Shellscript)。
建立Shell过程的步骤同建立普通文本文件相同,利用编辑器(如vi或gedit)进行程序录入和编辑加工。
执行Shell过程的方式主要有以下3种。
(1)输入定向到Shell过程
(2)以过程名作为参数
(3)将Shell过程改为可执行文件
(2)Shell变量
Shell有两种变量:
环境变量和临时变量。
环境变量是永久性变量,其值不会随Shell过程执行结束而消失。
而临时变量是在Shell
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 开发 linux 概念
![提示](https://static.bingdoc.com/images/bang_tan.gif)