版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1嵌入式系统AnIntroductiontoEmbeddedSystem浙江大学计算机学院2012年4月第4课嵌入式Linux开发基础Linux准备知识Linux的文件系统常用的Linux命令及使用Linux下的ShellLinux下的编译器GCC认识Makefile嵌入式Linux简介许多Linux改良品种迎合了嵌入式市场,它们包括:虽然大多数Linux系统运行在PC平台上,但Linux也可以作为嵌入式系统的操作系统。嵌入式Linux标准吸引了“Linux标准库”以及
UNIX组织中有益的元素在嵌入式系统上运行Linux的一个缺点是Linux
体系提供实时性能需要添加实时软件模块Linux嵌入式开发领域稳步发展RTLinuxuCLinuxMontavistaLinuxARM-Linux其他Linux系统Linux下的文件类型普通文件目录文件连接文件设备文件普通文件系统文件.conf:配置文件,也用.cfg.lock:锁文件,用来判定程序或设备是否正在被使用.rpm:RedHat用来安装软件的软件包管理器文件编程和脚本文件.c.cpp.h.o.pl(Perl脚本).py(Python脚本).so(库文件).sh(shell脚本).tcl(TCL脚本)普通文件文件格式.au(音频文件).gif.html/.htm.jpg.pdf.png(PNG(PortableNetworkGraphic,可移植网络图形)文件).ps(PostScript文件).txt.wav.xpm(图像文件)压缩以及归档文件.bz2(使用bzip2压缩的文件).gz(使用gzip压缩的文件).tar(使用tar归档的文件).tbz(使用tar和bzip压缩的文件).tgz(使用tar和gzip压缩的文件).zip(使用ZIP压缩的文件)察看一个没有扩展名的文件的类型,可以使用file命令,filefilename目录文件(directory)目录中包含文件以及下级子目录,但目录也是文件。这个文件中记录了包含在它中的文件和子目录的名称与它所处的地址。一个文件本身的记录不包含文件名,对文件名进行的更改,实际是修改它上一层的目录文件中的一条文件记录连接文件(link)连接是Linux中比较特殊而非常有用的一种文件,类似于Windows中的快捷方式,它本身不包含任何内容,它指向别的文件或目录设备文件Linux下所有的设备都是通过文件来表示的,所有的设备文件都存放在/dev目录下,设备文件的文件名就是设备名$cd/dev$ls设备文件的种类块设备文件:/dev/hda1,这些设备以块为最小单位。块的大小随设备不同而不同,一般将一块定义为1kB字符设备:/dev/ttyS0,字符设备按顺序一个一个传递字符网络接口:/dev/eth0,由内核中的网络系统驱动,负责发送和接收数据包文件名通常是尾部带有设备编号数字的缩写名称。-rw-r--r--1rootroot152282003-01-25a2ps.cfg-rw-r--r--1rootroot25622003-01-25a2ps-site.cfg-rw-r--r--1rootroot4712月2623:39adjtimedrwxr-xr-x2rootroot40962005-05-16aep-rw-r--r--1rootroot6882003-02-04aep.conf文件类型文件权限链接个数文件属主名用户分组名文件长度文件上次被修改的时间和日期文件名Linux下的文件详细信息Linux下的目录结构linux采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树型结构,但是在DOS和windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。//usr/bin/tmp/home/dev/etc/var/lib/mnt/root/proc/local
/bin/src/lib/bin/etc/man/usr1
/usr2
/usr3/up-armmp3/up-netarm2410/sbinLinux下的目录结构/bin二进制可执行命令
/dev设备文件
/etc系统管理和配置文件
/etc/rc.d启动的配置文件和脚本
/home用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp公用的临时文件存储点
/root系统管理员的主目录
/mnt让用户临时挂载(mount)其他的文件系统。
/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下的.chk)放在这里
/proc虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var某些大文件的溢出区,比方说各种服务的日志文件
Linux下的目录结构/usr是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/X11R6存放Xwindow的目录
/usr/bin众多的应用程序
/usr/sbin超级用户的一些管理程序
/usr/doclinux文档
/usr/includelinux下开发和编译应用程序所需要的头文件
/usr/lib常用的动态链接库和软件包的配置文件
/usr/man帮助文档
/usr/src源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin本地增加的命令
/usr/local/lib本地增加的库Linux源代码的目录内容/Documentation/arch/drivers/fs/include/init/ipc/kernel/lib/mm/net/scripts它包含了用来配置内核的脚本包含了Linux应用的网络协议代码包含了体系结构无关的内存管理代码这个目录包含两部分的内容包含了实现平台独立的基本功能这个目录下的文件实现了进程间通讯这个目录下面只有两个文件包含了Linux源程序树中大部分的.h文件文件系统在该目录下面都有对应的子目录包括显卡、网卡、SCSI适配器等所有子目录中都是体系结构相关的代码这个目录下面只有内核文档Shell简介Shell是一种具备特殊功能的程序,它是介于使用者和UNIX/Linux操作系统核心程序(kernel)之间的一个接口。在系统起动的时候,核心程序会被加载内存,负责管理系统的工作,直到系统关闭为止。它建立并控制着处理程序,管理内存、档案系统、通讯等等。而其它的程序,包括shell程序,都存放在磁盘中。核心程序将它们加载内存,执行它们,并且在它们中止后清理系统。一个shell命令档很像是DOS下的批次档(如Autoexec.bat):它把一连串的UNIX命令存入一个文档,然后执行该文档。使用者ShellUNIX/Linux操作系统Shell的发展历史Cshell是柏克莱大学所开发的,且加入了一些新特性:命令列历程别名内建算术档名完成工作控制Cshell提示符号的默认值是%Bourneshell是标准的UNIXshell以前常被用来做为管理系统之用大部份的系统管理命令文件,rcstart、stop与shutdown都是
Bourneshell的命令档在单一使用者模式下以root签入时它常被系统管理者使用Kornshell是Bourneshell的超集,由AT&T的DavidKorn所开发。它增加了一些特色,比Cshell更为先进。
Kornshell的特色包括了可编辑的历程、别名、函式、正规表达式、万用字符、内建算术、工作控制、共作处理和特殊的除错功能。Shell的使用Shell主要功用解译指令主要功用提供环境Shell语法分析命令行,把它分解成以空白区分开的符号,在此空白包括:Tab键空白换行Shell也能当解译性的程序语言,Shell程序,通常叫做命令文件,它由列在档案内的命令所构成Shell的另一个重要功用是提供个人化的使用者环境,这通常在
shell的初始化档案中完成Shell的功能为了确保任何提示符号下输入的命令都能够适当地执行。shell担任的工作包括有:
读取输入和语法分析命令列;对特殊字符求值;设立管线、转向、和幕后处理;处理讯号;设立程序来执行。包括Shell常用的Linux命令及使用lschownpasswdpwdchmodtouchmvmkdircpclearcalwritecatcdtarshutdownechormmesg查看系统Linux的系统管理主要在控制终端下进行,通过使用命令行的方式进行管理。Linux的文件命令可以完成各种复杂的工作:对目录进行复制目录移动目录链接搜索和查找文件搜索和查找目录阅读文件内容显示文件内容打印文件内容帮助如何获取帮助信息使用man命令查看手册权限:所有用户使用方法:man[查找内容]说明:打印出需要查找帮助内容的手册页信息使用“--help”或“-help”参数权限:所有用户使用方法:[命令]--help说明:打印出需要查找帮助命令的帮助信息,根据命令不同可能采用不同的参数“--help”或“-help”基本命令date权限:所有用户使用方法:date说明:显示系统时间应用示例: $dateexit权限:所有用户使用方法:exit说明:图形模式下exit为关闭一个终端窗口应用示例: $exit基本命令(二)who权限:所有用户使用方法:who说明:确定系统上的用户应用示例: $whops(process)权限:所有用户使用方法:ps说明:列出所有的进程应用示例: $ps基本命令(三)passwd权限:当前用户使用方法:passwd说明:更改密码应用示例: $passwdfile权限:所有用户使用方法:file[文件名]说明:判断文件类型应用示例: $filexx.c基本命令(四)reboot权限:所有用户使用方法:reboot说明:重启系统应用示例: $reboothalt权限:所有用户使用方法:halt说明:关闭系统应用示例: $halt基本命令(五)su(super-user)权限:所有用户使用方法:su[用户]说明:以替代用户身份执行命令应用示例: $subcstartx(startXWindow)权限:所有用户使用方法:startx说明:文本方式下启动图形界面应用示例: $startx基本命令(六)which权限:所有用户使用方法:which[程序名]说明:寻找实用程序所在位置应用示例: $whichwhoecho权限:所有用户使用方法:echo[显示内容]说明:将一行字显示到标准输出应用示例: $echothisisaechotest浏览目录常用命令pwd命令(printworkingdirectory)权限:所有用户使用方法:pwd说明:显示用户当前工作子目录的完整路径应用示例: $pwd浏览目录常用命令
ls命令(list)权限:所有用户使用方法:ls[选项]...[文件]...说明:列出当前工作子目录(默认)中的文件及子目录清单常用参数:-a显示所有文件及目录(包括隐藏文件)(all)-l显示文件的详细信息(long)
-h以容易理解的方式打印文件大小(1k32M2G)-t将文件按建立的先后次序列出(time)-F在列出的文件名称后加一个符号(可执行文件“*”,目录“/”)应用示例: $
ls-lh浏览目录常用命令
cd命令(changedirectory)权限:所有用户使用方法:cd[目标路径]说明:变换工作目录到目标路径,其中目标路径可以是绝对路径也可以是相对路径。目标路径名可以缺省,若缺省则变换至使用者的homedirectory(用户登录子目录)。常用参数:~:homedirectory.:当前目录..:当前目录的上一层目录-
:返回切换目录后的前一个目录应用示例:
$cd/home/bc/$cd../../阅读常用命令cat命令(concatenate)权限:所有用户使用方法:cat[参数][文件名]说明:把文件串连接后输出到基本输出(或另一个文件)常用参数:-n或--number:由1开始对所有输出行数编号-b或--number-nonblank:与-n类似,只是不对空白行编号应用示例:$cat–ntextfile1>textfile2(将textfile1的内容加上行数编号,写入textfile2中。如果textfile2已存在,则覆盖原有内容。
$cattext1text2>>text3(将text1与text2的内容串行放在一起,再附在text3文件的最后(不覆盖text3的原有内容。))阅读常用命令more命令权限:所有用户使用方法:more[参数][文件名]说明:类似cat,但它可以分页显示,适合显示长文件清单或文本内容,最基本的指令就是按空格换页,按回车下一行,按b键返回上一页。常用参数:-num:一次显示的行数-d:在屏幕最下方显示提示信息+num:从第num行开始显示应用示例应用示例:$moretextfile目录操作常用命令mkdir命令(makedirectory)权限:所有用户使用方法:mkdir[子目录或子目录完整路径]说明:建立一个新的子目录,使用子目录的路径作为参数应用示例:
$mkdir/home/bc/temprmdir命令(removedirectory)权限:当前目录有适当权限的所有者使用方法:rmdir[参数][子目录或子目录完整路径]说明:删除空的目录(当目录非空时,返回错误)应用示例:$rmdir/home/bc/temp文件操作常用命令wc命令(wordcount)权限:当前文件有适当权限的所有者使用方法:wc[参数][文件名]说明:统计文件中的单词数常用参数: -c:显示文件内的字符数(character)
-w:显示文件内以空格符分隔的字数(word)
-l:显示文件内的行数(line)应用示例:$wc–clusers(显示当前目录下的文件users的字符数和行数)
文件操作常用命令rm命令(remove)权限:当前文件有适当权限的所有者使用方法:rm[参数][文件名或目录]说明:删除文件以及目录常用参数: -i:删除前逐一询问确定(inform)
-f:即时原文件为只读也强制删除,并不询问确定(force)
-r:同时删除该目录层下的所有目录和文件(recursive)应用示例:$rmtextfile(删除当前目录下的textfile文件)$rm–rf/home/bc/temp(删除/home/bc/temp目录以及其下的所有目录和文件)文件操作常用命令mv命令(move)权限:当前文件有适当权限的所有者使用方法:mv[参数][原文件或目录][目标文件或目录]说明:将一个文件移至另一个文件,或将多个文件移动至另一个目录,也可以将一个目录移动至另一个目录常用参数: -i:若目的位置已有同名文件,则询问是否覆盖旧文件应用示例:$mvtext1text2(将当前目录下的文件text1的内容复制到text2中并删除text1。如果text2已存在,则覆盖其中的原有内容)
$mv–i*.c/home/bc/temp(将当前目录下的所有以.c为后缀的文件移至/home/bc/temp目录下)文件操作常用命令cp命令(copy)权限:所有用户使用方法:cp[参数][原文件或目录][目标文件或目录]说明:将一个文件复制到另一个文件,或将数个文件复制到另一个目录中,也可以将一个目录复制到另一个目录常用参数: -a:尽可能将文件的状态、权限等信息全部复制(all)-f:若目的地址有同名文件,则将已有的文件删除再进行复制(force)
-r:若原目录中包含子目录,则原目录中的文件及子目录也依次复制到目的地址中(recursive)应用示例:$cptext1text2(将文件text1的内容复制到text2中。如果text2已存在,则覆盖其中的原有内容)
$cp–arfup-tech//temp(将当前目录下的up-tech/目录中的所有内容复制到/temp目录下)文件操作常用命令sort命令权限:所有用户使用方法:sort[参数][文件名]说明:将文本文件数据排序常用参数: -u:输出结果中去掉重复的行(unique)-r:以相反顺序排序(reverse)
-o:将排序后的结果写入文件(>)(output)
-n:把行中的第一个字段当作数值,数据按算术方法排序(numeric)应用示例:
$sort–rndata(将data文件每行以相反算术顺序排序,并显示在当前的用户终端上(不改动原文件))文件操作常用命令chmod命令(changemode)权限:所有用户使用方法:chmod[+|-模式][文件]说明:改变文件模式常用参数: +-r:修改读模式(增加(+)或去除(-)可读(read)权限)+-w:修改写模式(增加(+)或去除(-)可写(write)权限)
+-x:修改执行模式(增加(+)或去除(-)可执行(execute)权限)应用示例:$chmod+xusers(将users文件或目录增加可执行权限)
文件操作常用命令chown命令(changeowner)权限:根用户使用方法:chown[参数][所有者]:[组][文件或目录]说明:改变文件的所有者常用参数: -R:以递归方式处理目录下所有文件(recursive)应用示例:
$chownjessie:usersfile1.txt(将档案file1.txt的拥有者设为users组的用户jessie)压缩及解压缩命令tar命令权限:所有用户使用方法:tar[参数][归档文件名][原文件或目录]说明:将文件及目录复制到归档文件中,常用参数: -c:创建文档(create)-f:表示存档到文件而非磁盘(file)
-v:显示每个复制文件的名称(verbose)
-x:解压缩
-z:使用gzip或ungzip-j:使用bz2应用示例:$tarcvjftemp.tar.bz2temp/(将当前目录下的temp/目录包含的所有内容归档并用bz2压缩到temp.tar.bz2文件中)
$tarxvjftemp.tar.bz2(将当前目录下的temp.tar.bz2文件解压缩)挂载文件系统命令mount命令权限:所有用户使用方法:mount[参数][设备][挂载目录(挂载点)]说明:在命令行中使用mount命令挂载文件系统常用参数: -t:指定挂载文件系统类型应用示例:
adfs,affs,autofs,coda,coherent,cramfs,devpts,efs,ext,ext2,ext3,hfs,hpfs,iso9660,jfs,minix,msdos,ncpfs,nfs,ntfs,proc,qnx4,ramfs,reiserfs,romfs,smbfs,sysv,tmpfs,udf,ufs,umsdos,vfat,xenix,xfs,xiafs.#mount-tnfs192.168.0.43:/home/wj/mnt/nfs/(将IP地址为192.168.0.43的计算机上的/home/wj目录以NFS的文件系统类型挂载为/mnt/nfs/卸载mounted文件系统命令umount命令权限:所有用户使用方法:umount[参数][设备][挂载目录(挂载点)]说明:将指定的文件系统从系统文件结构中卸载常用参数: -V:显示umount程序版本信息(Version)
-v:输出详细信息(verbose)
-tvfstype:指定文件系统类型,只卸载该指定文件系统类型的文件系统应用示例:#umountmnt/nfs(卸载/mnt/nfs/。该命令执行后,mnt/nfs不再是一个有效路径)网络常用命令ifconfig命令权限:所有用户使用方法:ifconfig[接口]接口是可选项,如果不加此项,则显示系统中所有网卡的信息。如果添加此选项则显示所指定的网卡信息说明:用来配置网络接口应用示例:#ifconfigeth0192.168.0.102(配置网卡eth0的IP地址)#ifconfigeth0down(将网卡eth0禁用)#ifconfigeth0up(将网卡eth0启用)NFS服务NFS(NetworkFileSystem)是由Sun公司开发的一套协议通过RPC(RemoteProcedureCall)技术,使我们可以达到文件的共享,能够在多台计算机上透明的访问彼此间的目录。它们使用分布式文件系统方案来实现,在UNIX工作站和Linux系统下比较常见。NFS使用mount命令来将远程的文件系统挂载到本机上的文件系统上,用户在使用时不会感觉到两者有任何差异。Linux下的编辑器vi插入模式编辑模式工作模式vivi命令模式退出命令行号与文件字符串搜索正文替换删除正文恢复文件选项设置shell切换vim和gvim的高级特色Linux下的编译器GCC在使用GCC编译程序时,编译过程可以被细分为四个阶段:预处理(Pre-Processing);编译(Compiling);汇编(Assembling);链接(Linking)。Linux程序员可以根据自己的需要让GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息GCC提供了30多条警告信息和三个警告级别,使用它们有助于增强程序的稳定性和可移植性。预处理编译汇编链接认识Makefile---Makefile概述make命令对于构建具有多个源文件的程序有很大的帮助只有make命令还是不够的,还必须用makefile告诉它要做什么以及怎么做才行make命令和Makefile配合使用,能给我们的项目管理带来极大的便利一个makefile由依赖关系和规则两部分内容组成依赖关系由一个目标和一组该目标所依赖的源文件组成规则用来说明怎样使用所依赖的文件来建立目标文件依赖关系规则Makefile+=认识Makefile---makefile中的依赖关系
make程序自动生成和维护通常是可执行模块或应用程序的目标,目标的状态取决于它所依赖的那些模块的状态。Make的思想是为每一块模块都设置一个时间标记,然后根据时间标记和依赖关系来决定哪一些文件需要更新。一旦依赖模块的状态改变了,make就会根据时间标记的新旧执行预先定义的一组命令来生成新的目标。依赖关系规定了最终得到的应用程序跟生成它的各个源文件之间的关系认识Makefile---makefile中的规则makefile规定相应的规则来描述如何生成目标,或者说使用哪些命令来根据依赖模块产生目标。makefile是以相关行为基本单位的,相关行用来描述目标、模块及规则三者之间的关系。一个相关行格式通常为:冒号左边是目标名;冒号右边是目标所依赖的模块名;紧跟着的规则是由依赖模块产生目标所使用的命令。相关行的格式为:习惯上写成多行形式目标:[依赖模块][;命令]目标:[依赖模块]命令命令
嵌入式Linux开发嵌入式Linux开发模型嵌入式Linux简介嵌入式Linux开发流程Bootloader、内核、文件系统Linux驱动开发Linux的设备驱动程序概述设备驱动的结构Linux设备驱动程序的分类嵌入式Linux开发流程建立开发环境配置开发主机建立引导装载程序bootloader建立根文件系统建立应用程序的Flash
磁盘分区开发应用程序烧写内核根文件系统应用程序发布产品下载Linux操作系统
Bootloader、内核、文件系统Bootloader内核文件系统Bootloader就是在引导操作系统内核或用户应用程序之前运行的一段程序,其主要功能是完成处理器和周边电路正常运行所需要的初始化工作,建立内存空间的映射内核是Linux的心脏,它是在引导时装入的程序,用来提供用户层程序和硬件之间的接口,执行发生在多任务系统中的实际任务转换,处理读写磁盘的需求,处理网络接口等功能文件系统是Linux操作系统的重要组成部分,Linux文件具有强大的功功能文件系统中的文件是数据的集合,文件系统不仅包含着
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025技术开发转让合同认定范围及规则
- 2025建筑建材购销合同
- 2025年公司停车场车辆停放服务及免责条款协议3篇
- 2025年度变压器出口业务代理与市场开拓合同3篇
- 二零二五年度现代农业土地承包权流转及项目实施合同3篇
- 二零二五年度农机租赁与农业生态旅游合作框架协议2篇
- 二零二五年度全新店面转让定金及市场推广协议3篇
- 二零二五年度停车场设施设备检测与维修合同3篇
- 二零二五年度环保产业合作协议样本3篇
- 二零二五年度农业耕地租赁与农业资源保护合同3篇
- 浙江省杭州市钱塘区2023-2024学年四年级上学期数学期末试卷
- 2024年考研(英语一)真题及参考答案
- 山东省济南市(2024年-2025年小学四年级语文)人教版期末考试((上下)学期)试卷及答案
- 《简·爱》-2022年中考一轮复习之必读名著对比阅读训练
- 交通灯课程设计交通灯控制器
- 肿瘤科常见急重症
- 03SG715-1蒸压轻质加气混凝土板(NACL)构造详图
- 尽职调查工作底稿1_公司业务调查
- 集装箱码头堆场项目可行性研究报告写作范文
- 医保药店一体化信息管理系统操作手册
- 小学六年级数学上期家长会精品课件
评论
0/150
提交评论