第1章 嵌入式Linux快速入门
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 Linux系统快速入门
嵌入式Linux 是以Linux 为基础的操作系统,只有熟练使用Linux 系统之后,才能在嵌入式Linux 开发领域得心应手。
本章主要讲述Linux基本概念、分区、文件系统、目录结构规范等。
1.1.嵌入式Linux基础
如图1-1所示,嵌入式Linux从UNIX发展而来,UNIX系统至今广泛应用在金融、电信、政府等对可靠性、安全性要求极高的领域,这些优点都被Linux 系统继承下来,并通过GNU(GNU is Not Unix)组织实施GPL(G eneral P ublic L icense)版权,成为开源自由软件,由任何组织、个人免费使用。
图1-1 Unix家族图
自由开源软件在嵌入式应用上受到青睐,Linux 日益成为主流的嵌入式操作系统之一。
随着摩托罗拉手机A760、IBM 智能型手表WatchPad、夏普PDA Zaurus 等一款款高性能“智能数码产品”的出现,以及Motolola、三星、MontaVista、飞利浦、Nokia、IBM、SUN 等众多国际顶级巨头的加入,嵌入式Linux 的队伍越来越庞大了。
目前,国外不少大学、研究机构和知名公司都加入了嵌入式Linux 的开发工作,成熟的嵌入式Linux 产品不断涌现。
很多高端网络设备采用嵌入式Linux,嵌入式Linux在数码产品中使用更加广泛,Nokia手机Symbian系统由Linux发展而来,Google Android采用了Linux2.6内核,成为一种通用性很强、用于高端手机的嵌入式操作系统。
1.1.1.嵌入式Linux市场和应用领域
如图1-2所示,嵌入式Linux应用领域包括:汽车电子、办公室自动化、医疗图像、仪器仪表、家庭数码、移动通信、IP网络、无线通信、中央办公室设备等。
图1-2 嵌入式Linux应用领域
1.1.
2.Linux作为嵌入式操作系统优点和应用优势
嵌入式Linux继承了桌面Linux系统的如下优点:
⏹多任务、多用户
⏹支持数十种文件系统格式
⏹开放源代码
⏹完全运行于保护模式
⏹采用先进的内存管理机制,更加有效地利用物理内存
⏹提供了先进的网络支持
⏹符合IEEE POSIX标准
在应用上具有如下优势:
(1)低成本开发系统
Linux 的源码开放性允许任何人获取并修改Linux 的源码。
这样一方面大大降低了开发的成本,另一方面又可以提高开发产品的效率。
并且还可以在Linux 社区中获得支持,用户只需向邮件列表发一封邮件,即可获得作者的支持
(2)可应用于多种硬件平台
Linux 可支持X86、PowerPC、ARM、Xscale、MIPS、SH、68K、Alpha、Sparc等多种体系结构,并且已经被移植到多种硬件平台。
这对于经费、时间受限制的研究与开发项目
是很有吸引力的。
Linux 采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。
(3)可定制的内核
Linux 具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入到内核中或者从内核中移走,并能根据嵌入式设备的个性需要量体裁衣。
经裁减的Linux 内核最小可达到150KB以下,尤其适合嵌入式领域中资源受限的实际情况。
当前的2.6 内核加入了许多嵌入式友好特性。
(4)性能优异
Linux 系统内核精简、高效并且稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。
在个人计算机上使用Linux,可以将它作为工作站。
它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。
(5)良好的网络支持
Linux 是首先实现TCP/IP协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括十兆位、百兆位及千兆位的以太网,还有无线网络,对现在依赖于网络的嵌入式设备来说无疑是很好的选择。
1.1.3.Linux发行版本
由于Linux 属于GNU系统,而这个系统采用GPL协议,并保证了源代码的公开,于是众多组织或公司在Linux 内核源代码的基础上进行了一些必要的修改加工,然后再开发一些配套的软件,并把它整合成一个自己的发布版Linux。
除去非商业组织Debian开发的Debian GNU/Linux 外,美国的Red Hat公司发行了Red Hat Linux,法国的Mandrake公司发行了Mandrake Linux,德国的SUSE 公司发行了SUSE Linux,国内众多公司也发行了中文版的Linux,如著名的红旗Linux。
Linux 目前已经有超过250 个发行版本。
1.1.4.Linux学习网站
/
/forum/
1.2. L inux 基础概念
1.文件系统、分区、目录结构和挂载
文件系统是指操作系统中与管理文件有关的软件和数据。
Linux 的文件系统和Windows 中的文件系统有很大的区别,Windows 文件系统是以驱动器的盘符为基础的,而且每一个目录指明其所在的分区,例如“E:\workplace ”是指此文件在E 盘这个分区下。
而Linux 的文件系统是一棵文件树,且它的所有文件和外部设备(如硬盘、光驱等)都是以文件的形式挂在这个文件树上,例如“/usr/local ”。
图1-3和图1-4分别为Windows 和Linux 分区和目录结构。
图1-3 Windows 目录结构 图1-4 Linux 目录结构
Linux 系统分区
引导分区
2.主分区、扩展分区和逻辑分区
硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。
其中主分区就是包含操作系统启动所必需的文件和数据的硬盘分区,数量为1~3 个。
图1-5为主分区、扩展分区、逻辑分区示意图,通常Windows需安装在主分区,但Linux可安装在主分区或逻辑分区。
(C:) (D:) (E:)
图1-5 主分区、扩展分区、逻辑分区示意图
图1-5分区结构中Windows下的盘符和Linux设备文件的对应关系如下:
⏹/dev/hda (硬盘)
⏹C盘—/dev/hda1(主分区)
⏹/dev/hda2 (主分区)
⏹/dev/hda4 (扩展分区)
⏹D盘—/dev/hda5(逻辑分区)
⏹E盘—/dev/hda6(逻辑分区)
3.SWAP交换分区
在系统内存容量有限的情况下,为了运行大型的程序,Linux 在硬盘上划出一个区域来当作临时的内存,而Windows 操作系统把这个区域叫做虚拟内存,Linux把它叫做交换分区swap。
4.分区格式(文件系统格式)
不同的操作系统选择了不同的格式,同一种操作系统也可能支持多种格式。
微软公司的Windows 就选择了FAT32、NTFS两种格式,但是Windows 不支持Linux 上常见的分区格式。
Linux 是一个开放的操作系统,它最初使用EXT2格式,后来使用EXT3格式,但是它同时支持非常多的分区格式,包括很多大型机上UNIX 使用的XFS格式,也包括微软公司的FAT以及NTFS格式。
5.GRUB
GRUB是一种引导装入器(功能与Windows下NT Loader相似),它负责装入内核并引导Linux系统,位于硬盘的起始部分。
由于GRUB多方面的优越性,如今的Linux一般都默认采用GRUB来引导Linux操作系统。
但事实上它还可以引导Windows 等多种操作系统。
6.root权限
Linux 也是一个多用户的系统,不同的用户和用户组会有不同的权限,其中把具有超级权限的用户称为root用户(相当于Windows下Administrator)。
root 的
默认主目录在“/root”下,而其他普通用户的目录则在“/home”下。
root的权限极高,它甚至可以修改Linux的内核。
1.3.L inux 文件及文件系统
1.3.1.文件类型及文件属性
1.文件类型
普通文件:包括编程和脚本文件(.c .cpp .h .o .pl .py .so .sh .tcl )、系统文件(.conf .lock .rpm)、文件格式
(.au .gif .html/.htm .jpg .pdf .png .ps .txt .wav .xpm)
、压缩以及归档文件:(.bz2 .gz .tar .tbz .tgz .zip )。
目录文件:目录中包含文件以及下级子目录,但目录也是文件。
这个文件中记录了包含在它中的文件和子目录的名称与它所处的地址。
目录文件
中记录文件的名字,文件本身的记录不包含文件名,对文件名进行
的更改,实际是修改目录文件中的一条文件记录
连接文件:连接是Linux中比较特殊而非常有用的一种文件,类似于Windows 中的快捷方式,它本身不包含任何内容,它指向别的文件或目录。
设备文件:Linux下所有的设备都是通过文件来表示的,所有的设备文件都存放在/dev目录下,设备文件的文件名就是设备名,它包括两种,一种
是块设备文件,另一种是字符设备文件。
2.文件属性
Linux 中的文件属性如图1.6 如示,Linux 中文件的拥有者可以把文件的访问属性设成3 种不同的访问权限:可读(r)、可写(w)和可执行(x)。
文件又有3个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。
图1-6 Linux文件属性
第一个字符显示文件的类型:
⏹ “-”表示普通文件。
⏹ “d”表示目录文件。
⏹ “l”表示链接文件。
⏹ “c”表示字符设备。
⏹ “b”表示块设备。
⏹ “p”表示命名管道,比如FIFO 文件(First In First Out,先进先出)。
⏹ “f”表示堆栈文件,比如LIFO 文件(Last In First Out,后进先出)。
⏹ “s”表示套接字。
思考与练习
1.请查找相关资料,查看GNU所规定的自由软件的具体协议是什么。
2.请问Linux 下的文件系统和Windows下的文件系统有什么区别?
3.试指出读者Linux 系统中的磁盘划分情况(如主分区、扩展分区的对应情况)。
4.Linux 中的文件有哪些类,这样分类有什么好处?
5.若有一个文件,其属性为“-rwxr--rw-”,说出这代表什么?
6.请说出下列目录中放置的是哪些文件。
/etc/ /etc/rc.d/init.d/ /usr/bin /bin /usr/sbin /sbin /var/log。