导论在大型嵌入式应用系统中,为了使嵌入式开发更加方便、快捷,需要具备一种稳定、安全的软件模块集合,用以管理存储器分配、中断处理、任务间通信和定时器响应,以及提供多任务处理等,这就是嵌入式操作系统。Linux本身所具备的源码开放、内核可裁减等种种特性使其成为嵌入式开发的首选。在进入市场的前两年中,嵌入式Linux的设计通过广泛应用而获得了巨大成功。随着嵌入式Linux技术的成熟,定制需要的尺寸更加方便,同时支持更多的平台。嵌入式论坛主要内容Linux概述Linux文件系统嵌入式Linux操作系统概述嵌入式Linux开发流程嵌入式Linux应用程序开发流程6.1Linux概述6.1.1什么是Linux?Linux最初是专门为基于Intel处理器的个人计算机而设计的。Linux的前身指的是由LinusTorvald维护开发的开放源代码的类Unix操作系统的内核。目前大多数人用它来表示以Linux内核为基础的整个操作系统。从这种意义讲,Linux指的是源码开放,包含内核和系统工具、完整的开发环境和应用的类Unix操作系统。同时,Linux遵循GNU(GNU’sNotUnix)的通用公共许可证GPL(GeneralPublicLicense),是自由软件家族中的一员。自由软件最早由美国麻省理工学院MIT的RichardStallman提出。自1984年起,在MIT的支持下,Richard创建了自由软件基金会FSF(FreeSoftwareFoundation)。FSF的主要项目是GNU,它的目标是建立可自由发布和可移植的类Unix操作系统。同时,Richard创作了通用公共许可证GPL作为GNU的版权声明。GPL也叫Copyleft,这与我们平常所说的Copyright截然相反。任何人只要遵循GPL,就可以对Linux内核加以修改并发布给他人使用。什么是自由软件?Linux之所以受到广大计算机爱好者的喜爱主要原因:一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。什么是Linux?开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。6.1.2Linux的主要特点设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力提供了丰富的网络功能:完善的内置网络是Linux一大特点。可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。Linux的主要特点6.1.3LINUX的组成LINUX的内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。LINUXSHELL:Shell是系统的用户界面,它是一个命令解释器,它解释用户输入的命令,并且把它们送到内核。提供了用户与内核进行交互操作的一种接口。LINUX文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前许多的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。LINUX应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、XWindow、办公套件、Internet工具、数据库等。Linux内核采用双树结构。一棵树是稳定树,主要用于发行;另一棵树是非稳定树或开发树,用于产品开发、改进。源代码版本序号的形式为x.yy.zz,其中x为主版本号,代表较大改动;yy为次版本号,表示功能性的改动;zz为末版本号,表示BUG的改动。其中x介于0到9之间,yy和zz则介于0到99之间。对于稳定树来说,yy是偶数;对于开发树来说,yy是比相应稳定树大1的奇数。例2.4.20-8为稳定内核版本。6.1.4Linux的内核版本6.1.5Linux的发布版本虽然Linux只有一个标准化的版本,但有好多个不同的发布版本。Linux的发布版本就是将Linux核心与应用软件打包。红旗Linux冲浪Linux中软LinuxRedHatLinuxMandrakeLinuxDebainLinuxTurboLinuxRedHatLinux的优势RedHatLinux是最成熟也是目前最流行的一种Linux发布版本,无论在销售还是装机容量上都居榜首。RedHatLinux可运行在多种硬件平台上。市场上有大量的文章是针对RedHatLinux来介绍的,同时其站点包含有大量文档,如Users’Guide、FAQ等。RedHat9.0安装的步骤(1)语言选择:(2)键盘配置(3)鼠标配置(4)选择安装还是升级(5)安装类型(6)磁盘分区设置:(7)为系统分区一个交换分区(至少32MB):用来支持虚拟内存,也即当没有足够的内存来存储系统正在处理的数据时,这些数据就被写入交换区。容量至少等于内存容量,一般是内存容量的两倍。一个/boot分区(100MB):此分区包含操作系统的拟合,并允许系统引导RedHatLinux,以及其他几个在引导过程中使用的文件。一个根文件(1.7G-5.0GB)(7)为系统分区(8)添加分区(9)引导装载程序配置(10)网络配置(11)防火墙配置:(12)语言支持的选择:(13)时区配置(14)设置根口令(15)选择软件包组(16)准备安装应该看到一个安装RedHatLinux做准备的屏幕。当你重新引导系统后,一份完整的安装日志可在/root/install.log中找到,以备今后参考。要取消安装进程,按计算机的重新启动按钮,或者使用[Control]-[Alt]-[Delete]组合键来重启计算机。(17)安装软件包(18)创建引导盘(19)视频卡配置(20)配置显示器(21)定制配置(22)安装完成祝贺你!你的RedHatLinux9安装现已完成!安装程序会提示你做好重新引导系统的准备。如果安装介质(磁盘驱动器内的磁盘或光盘驱动器内的光盘)在重新引导时没有被自动弹出,请记住取出它们。RedHatLinux9.0的登录和关闭1.登录使用RedHatLinux系统的一个前提条件是登录。登录实际上是向系统做自我介绍,又称验证(authentication)。如果键入了错误的用户名或口令,就不会被允许进入系统。Linux系统有普通用户和超级用户之分。普通用户的用户名是任意的,而超级用户的用户名是root。Linux系统是严格区分大小写的,无论是用户名、文件名、设备名都是如此。即luying、LuYing、LUYING是三个不同的用户名或文件名。当口令输入完毕后,按回车键进入RedHatLinux9.0图形化界面。2.注销如果想切换用户登录,可采用注销当前图形化桌面会话。操作的方法是:(1)依次选择“主菜单→注销”命令。(2)打开如图1-13所示的确认对话框,选择“注销”选项,然后点击“确定”按钮。如果你想保存桌面的配置以及还在运行的程序,选中“保存当前设置”复选框。3.关机和重新启动关切和重新启动的方法如下:(1)依次选择“主菜单→注销”命令。(2)在打开的对话框,选择“关机”或“重新启动”选项,然后点击“确定”按钮,即可完成关机或重新启动操作。6.1.6使用RPM来管理软件包RPM软件包管理器(RPM)是开放打包系统,任何人都可以使用。它可以在RedHatLinux,以及其它Linux和UNIX系统上运行。对于终端用户来说,RPM简化了系统更新安装、删除安装、升级RPM软件包可以使用简短的命令就可完成。对于开发者来说,RPM允许把软件编码和程序打包,然后提供给终端用户。RPM的设计目标1.可升级性使用RPM,可以不必全盘重装就可以在系统上升级个别组件。当得到一个基于RPM的操作系统的新发行版本(如RedHatLinux),不必重新安装系统。2.强大的查询功能RPM被设计来提供强大的查询功能。可以在整个数据库中搜索软件包或某些特定文件。还可以轻易地了解到哪个文件属于哪个软件包,软件包来自哪里。RMP包的名称格式RPM包的名称有其特有的格式,如典型的RPM软件名称类似于:liubing-1.0-1.i386.rpm该文件名包括软件包名称“liubing”;软件的版本“1.0”,其中包括主版本号和次版本号;“i386”是软件所运行硬件平台;最后“rpm”做为文件的扩展名,当然代表文件的类型为RPM包。RPM的基本操作模式RPM有五种基本操作模式:安装删除安装、升级、查询和校验。请使用rpm--help命令。安装RPM包命令格式:rpm–iRPM包的全路径文件名如果想安装RPM包并显示安装进度信息可使用如下命令格式:rpm–ivhRPM包的全路径文件名在此命令的参数选项中:Øi:代表安装。Øv:代表verbose,设置在安装过程中将显示详细的信息。Øh:代表hash,设置在安装过程中将显示“#”来表示安装的进度。对于较大的RPM包,在安装时尤其需要使用“-ivh”选项,这样可以看到安装过程的相应信息,更可以了解安装的进度。删除RPM包命令格式:rpm-eRPM包名称rpm–e命令用于从当前系统中删除已安装的软件包,需要在信念中指定要删除的软件包的名称而不是安装命令中的软件包安装文件名。(1)首先在终端上将系统中自带的输入法删除。#rpm–eminiChinput(2)进入到下载fcitx的目录(假设是/input目录)#cd/input(3)然后使用RPM命令来安装fcitx#rpm–ivhfcitx-1.8.5-1.rpm(4)要让此输入法生效,还必须重新启动Linux系统。命令格式:rpm-URPM包的全路径文件名升级RPM包命令格式:rpm-q使用rpm-q命令来查询安装的软件包的数据库例如,rpm-qfcitx命令会显示安装的软件包fcitx的名称、版本、和发行号码。删除RPM包命令格式:rpm-a:查询所有已安装的软件包。rpm-ffile:会查询拥有file的软件包。当指定文件时,必须指定文件的完整路径(/usr/bin/ls)。rpm-ppackagefile:查询软件包packagefile。查询RPM包校验已安装的软件包命令格式:rpm-V校验软件包比较从某软件包安装的文件和原始软件包中的同一文件的信息。例如,校验的最简单用法是rpm-Vfcitx,它校验所有在fcitx软件包内的文件是否和最初安装时一样。6.2Linux文件系统6.2.1Linux文件系统概述文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文