嵌入式系统软件开发.ppt_第1页
嵌入式系统软件开发.ppt_第2页
嵌入式系统软件开发.ppt_第3页
嵌入式系统软件开发.ppt_第4页
嵌入式系统软件开发.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统软件开发,Embedded System Developing,3 嵌入式软件开发环境,嵌入式软件开发环境简介 操作系统基础 Linux及常见命令 shell程序设计 makefile文件 Gcc、 ld、gdb等 Linux程序设计 vxworks环境及程序设计 wince环境及程序设计,3-3Linux及常见命令,Linux概述 Linux命令,3-3-1Linux概述,Linux起源与发展 linux特点 Linux用户接口 Linux用户管理 Linux文件系统,3-3-1-1Linux起源与发展,Linux起源 Unix操作系统及版权费用问题 Andrew S. Tanen

2、baum与minix Linus Torvalds与linux内核 (1991 Linux 0.01 ),Linux内核版本 内核版本号由3个数字组成:r.x.y r:内核主版本 x:内核次版本,偶数表示稳定版本;奇数表示开发中版本 y:错误修补的次数 注:linux启动成功后,获取内核版本等系统信息的命令为:uname uname -a,Linux发展 0.01 (1991.9) Linux 版在网上发布 0.11 (1991.12.8)基本可以正常运行的内核版本 0.12 (1992.1.15)主要加入对数学协处理器的软件模拟程序 0.96 (1992.5.12)开始加入网络支持和虚拟文件

3、系统VFS 1.0 (1994.3.14) 1.20 (1995.3.7) 2.0 (1996.2.9) 2.20 (1999.1.26) 2.40 (2001.1.4) 2.60 (2003.12.17) 最新版本2.6.27 (内核官方网站ttp:/),GNU 计划 GNU 计划和自由软件基金会(the Free Software Foundation - FSF)是由Richard M. Stallman (自由软件的精神领袖,自由软件之父亲)于1984 年一手创办的。旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU(“GNUs Not Uni

4、x”)。到上世纪90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境。 GNU/Linux Linux作为Hurd操作系统的替代 GPL GPL(General Public License:通用公共许可协议),其宗旨就是保证用户有无限复制和修改的权利。GPL是自由软件著作人同意的、保证任何人有共享和修改自由软件的许可协议。GPL条款中社会公众作为被许可人享有最主要的4项权利:(1)为了任何目的运行该程序;(2)有自由获得源代

5、码的权利,并在此基础上研究程序是如何运行的,并可为了个人目的改变该程序;(3)有自由散发该复制件的权利;(4)有自由改进程序,并要求将自己的改进向公众公布的权利。,Linux发行版本 由不同厂商将Linux内核与不同应用程序相互组合而形成的不同的linux发行套件。 Slackware debian redhat Ubuntu Fedora 红旗,中软 ,中国Linux论坛 丰富的Linux文档资料 中国Linux公社: /nuke/index.php,3-3-1-2linux特点,源代码开放 安全可靠 多用户、多任务、多平台 良好的用户界面 与U

6、NIX系统在源代码级兼容,符合IEEE POSIX标准 支持多种文件系统 JFS、 ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC 丰富的网络功能 ,3-3-1-3linux用户接口,GUI 字符 API,GUI,GNOME (GNU Network Object Model Environment) KDE(K Desktop Environment) Window System,KDE 基于Troll Technologies公司的Qt库的开发而成,Qt库是一个跨平台

7、的C+类库,但不遵从GPL或LGPL协议。 KDE特征 是适用于 Linux 的一种功能强大的图形桌面环境。 提供了完整的桌面环境,包括一个窗口管理器和大量 X 实用程序 将 K 窗口管理器 (KWM, K Windows Manager) 用作默认的窗口管理器,KDE与GNOME,GNOME Gnome的产生原动力就起源于对KDE许可证问题的不满,Gnome使用的工具包是GTK+,GTK+是一个遵守GPL协议的开发工具包。 GNOME特征 是一种用户友好的桌面环境 可在多种操作系统上运行 是一种开放源代码的免费软件 可以和多种窗口管理器配合使用,切换方式 修改配置文件 /etc/syscon

8、fig/desktop DESKTOP=“KDE”/ “GNOME” 命令切换 switchdesk GNOME / KDE,Gnome环境,主菜单,快捷工具按钮,主桌面切换工具菜单,任务栏,通知区域,工作区切换器是桌面面板条上的一个 Applet,KDE桌面,X window,X的由来 Window于1984年在麻省理工学院(MIT)电脑科学研究室开始开发的,当时Bob Scheifler正在发展分步式系统(distributed system),同一时间 DEC公司的 Jim Gettys 正在麻省理工学院做 Athena 计划的一部分。两个计划都需要一个相同的东西一套在UNIX机器上运行

9、优良的视窗系统。因此合作关系开始展开,他们从斯坦福(Stanford)大学得到了一套叫做的实验性视窗系统。因为是根据视窗系统的基础开始发展的,当发展到了足以和原先系统有明显区别时,他们把这个新系统叫做。,X window系统机制 X window系统建于客户服务器联结基础上的图形子系统; 独立于系统内核; 三部分组成:X server ,X client,X protocol X服务器和客户端X服务器是一个运行在本地计算机上的程序。它响应来自X客户程序的请求,在屏幕上画图或者读取键盘或鼠标的输入,并将它传给客户端。X客户端是运用X协议的应用程序。它通过向负责管理自己的X服务器提出对显示和输出资

10、源的请求来使用其他计算机的这些资源。,X protocol X协议定义了客户服务器中应用程序和它的显示的联系,通过这个协议,应用与它的显示被分离开来。,Xlib库Xlib库是一个C语言库,它为X协议里的信息交换提供了一个API。 X工具包将常用的素材(如按钮,菜单等)收集到一起就形成了所谓的X工具包(X ToolKit) X窗口管理器 X窗口管理器负责安排客户窗口在显示屏幕上的摆放位置,并完成移动窗口和调整窗口尺寸等管理性的工作。,主机启动并进行硬件自检后(BIOS ),读取硬盘MBR中的启动引导器程序(lilo, grub等等)并进行加载 启动引导器程序负责引导硬盘中的操作系统,直接加载li

11、nux内核程序 Linux的内核程序负责操作系统启动的前期工作,并进一步加载系统的INIT进程 INIT进程是linux系统中运行的第一个进程,该进程将根据其配置文件执行相应的启动程序,并进入指定的系统运行级别 在不同的运行级别中,根据系统的设置将启动相应的服务程序 在启动的过程中,将运行控制台程序提示并允许用户输入帐号和口令进行登录(/bin/login ) 登录之后 shell控制主机运行,Linux启动过程,字符/文本界面/模式 系统启动后直接进入字符界面 修改/etc/inittab文件行,Id:5:initdefault:,Id:3:initdefault:,启动后系统提供六个虚拟控

12、制平台,每个虚拟控制平台可以独立使用,互不影响。 Alt+F1Alt+F6进行界面切换 startx 命令可启动图形界面,启动成功后可以使用Ctrl+Alt+F1Ctrl+Alt+F6直接切换到字符虚拟终端,Ctrl+Alt+F7可又切换到图形界面。也可使用Ctrl+Alt+Backspace进行切换。,INIT进程是由linux内核引导运行的,是系统中运行的第一个进程,PID为1。INIT进程运行后将按照其配置文件,引导运行系统所需的其他进程,INIT进程将做为这些进程的父进程 INIT的配置文件inittab /etc/inittab inittab文件文件中每行的纪录有id、runlev

13、els、action和process四个 字段,各字段用“:”分隔,他们共同确定了某进程在那些运行级别以 何种方式运行。 1、id用于在inittab文件中惟一标示一个配置记录,可以有1-4个字符组成。 2、runlevels用于指定该记录在哪些运行级别中运行,runlevels可以使单个运行级别也可以是运行级别列表,3、 action字段描述记录将执行那种类型的动作,详细设置如下: (1)initdefault:用于标示系统启动后将进入哪个运行级别。 (2)sysinit类进程将在系统启动时在任何boot或bootwait类进程 之前运行 (3)wait类进程将在进入指定运行级别后运行一次,

14、init进程将 等待其结束 (4)ctrlaltdel用于指定用户使用ctrl+alt+del组合键时系统所进 行的操作,如重启进入单用户等。 (5)powerfail和powerokwait用于指定当UPS断电信号时所运行 的命令和指定当供电恢复时所运行的命令 (6)respawn类进程在结束后重新启动运行(如控制台登录程 getty) 4、process字段所设置的是启动进程所执行的命令,图形界面中字符界面 主菜单system tools terminal,Linux系统运行等级,0停止系统。 1单用户。 2多用户,但不支持NFS。 3全多用户模式,即系统正常的模式。 5进入X11(即窗口

15、模式)。 6重启系统 init n改变系统的运行等级,3-3-1-4linux用户管理,Linux下的用户 Linux下的用户可以分为三类:超级用户、系统用户和普通用户。超级用户的用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。系统用户是Linux系统正常工作所必需的内建的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,系统用户不能用来登录,例如:bin、daemon、adm、lp等用户。而普通用户是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。 每个用户都有一个数值,称为U

16、ID。超级用户的UID为0,系统用户的UID一般为1499,普通用户的UID为50060 000之间的值。,组群概念 组群ID(GID) 每一个用户都属于某一个组群(组群的GID类似于用户ID)。 系统组群 、私人组群 、组群名 、组群ID(GID) 、组群口令等。 用组群管理用户的优点 设置组的属性及权限,组中的成员就享有该组同样的权限; 有人员变动时只需改变组的成员即可; 不必去为每个用户设置属性,节省了大量的重复劳动,方便管理用户。 与组群相关的文件 组群账号信息文件 /etc/group 组群口令信息文件 /etc/gshadow,网络用户,几百个或几千个用户,每个用户有资源需求,分类

17、归并成几大类用户,相同类型的组成“组群”,组 名,账号系统文件 Linux系统采用纯文本文件来保存账号的各种信息,其中最重要的文件有/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow。因此账号的管理实际上就是对这几个文件的内容进行添加、修改和删除记录行的操作。,/etc/passwd,账号名称:用户登录Linux系统时使用的名称。 密码:这里的密码是经过加密后的密码(一般是采用MD5加密方式),而不是真正的密码,若为“x”,说明密码经过了shadow的保护。 (注:pwconv/pwunconv命令用于设置或取消该项功能) 。 UID:用户的标识,是

18、一个数值,Linux系统内部使用它来区分不同的用户。 GID:用户所在基本组的标识,是一个数值,Linux系统内部使用它来区分不同的组,相同的组具有相同的GID。 个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等信息。 主目录:通常是/home/username,这里username是用户名,用户执行“cd”命令时当前目录会切换到个人主目录。 Shell:定义用户登录后激活的Shell,默认是Bash Shell,3-3-1-5linux文件系统,linux文件系统概论 EXT2文件系统 VFS虚拟文件系统,文件系统概论,文件系统特点 树型结构 文件类型 访问权限,特点 自行设计

19、开发的文件系统称为EXT2 支持/proc内存文件系统 Linux支持多种其它操作系统的文件系统: 如minix、ext2、hpfs、msdos、umsdos、iso、nfs、sysv、affs、ufs、efs等达二十几种。 虚拟文件系统VFS屏蔽了各种文件系统的差别,为处理各种不同文件系统提供了统一的接口。,树型结构 采用多级目录的树型层次结构管理文件。 系统在运行中通过使用命令或系统调用进入任何一层目录,这时系统所处的目录称为当前目录。,Linux用两种方法来表示文件或目录的位置:绝对路径和相对路径。 绝对路径 相对路径,文件类型 目录文件 普通文件 设备文件 管道文件 链接文件,目录文件

20、 Linux一个目录是一个驻留在磁盘上的文件,称为目录文件。系统对目录文件的处理方法与一般文件相同。 目录由若干目录项组成,每个目录项对应目录中的一个文件。 目录项由文件名和属性、位置、大小、建立或修改时间、访问权限等文件控制信息组成。,Linux继承了UINX,把文件名和文件控制信息分开管理。 i节点 i节点实质上是一个由系统管理的“目录项”,由文件控制信息单独组成的结构体。 每个文件对应一个i节点,有唯一编号,称为节点号。 Linux目录项只由两部分组成:文件名和节点号。,普通文件 计算机用户和操作系统用于存放数据、程序等信息的文件。 一般都长期地存放在外存储器(磁盘、磁带等)中 普通文件

21、一般又分为文本文件和二进制文件,设备文件 分为字符设备文件和块设备文件。 内核提供了对设备处理和对文件处理的统一接口,每种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器:/dev/fd0。,管道文件 主要用于在进程间传递数据 Linux对管道的操作与文件操作相同,把管道做为文件进行处理。 管道文件又称先进先出(FIFO)文件,链接文件 也称为符号链接文件,提供了共享文件的一种方法。 不是通过文件名实现文件共享,而是通过链接文件包含指向文件的指针来实现对文件访问。 普通用户可以建立链接文件,并通过其指针所指向的文件。,访问权限 目的 保证文件信

22、息的安全,即文件被访问时,系统首先检验访问者权限,只有与文件访问权限相符时才允许对文件进行访问。,EXT2文件系统 EXT2介绍 系统结构 inode结构,最初引进了Minix文件系统,Minix文件系统有较大局限性 1992年4月推出EXT(EXTended File system) 1993年推出了EXT2文件系统,EXT2已经成为Linux的标准文件系统,EXT2系统结构,系统结构 EXT2超级块 内存中超级块的映像 组描述符 块位图,系统结构 块设备 文件组织和管理是以物理块为单位。物理块是块设备上大小相同的存储区域,如磁盘的扇区。 一个文件系统一般使用块设备上一个独立的逻辑分区; 文

23、件逻辑分区中除了表示文件内容的逻辑块(称为数据块)外,还设置了若干包含管理和控制信息的逻辑块。 磁盘上可能有多个逻辑分区,每个分区使用不同的文件子系统。,EXT2文件系统由逻辑块序列组成的。 EXT2文件系统把逻辑分区划分成块组,并从0开始依次编号。 每个块组中包含若干数据块,数据块中就是目录或文件内容。 块组中包含着几个用于管理和控制的信息块:超级块、组描述符表、块位图、inode位图和inode表。,超级块 描述文件系统整体信息的数据结构,主要描述文件系统的目录和文件的静态分布情况,以及描述文件系统的各种组成结构的尺寸、数量等。,超级块位于每个块组的最前面,每个块组中包含的超级块内容是相同

24、的。 系统运行期间,把超级块复制到系统缓冲区内,只需把块组0的超级块读入内存,其它块组的超级块做为备份。 EXT2超级块ext2_super_block结构。,组描述符 Linux组描述符为32字节,每一个块组有一个组描述符。所有组描述符集中在一起依次存放,形成组描述符表。 描述符表中的组描述符顺序与块组在磁盘上的顺序对应。 一个组描述符可能占用多个物理块,具有相同内容的组描述符表放在每个块组中做为备份,,块位图 描述块的使用状况 每个块组都有一个块位图,位于组描述符表之后,用来描述本块组中数据块的使用状况。 块位图的每一位表示一个数据块的使用情况,为1表示对应数据块已占用,为0表示数据块空闲

25、。 各位的顺序与块组中数据块顺序一致 块位图一般占用一个逻辑块,inode结构 inode是EXT2基本构件,表示文件系统树型结构的节点。 EXT2文件系统中的每个文件由一个inode描述,且只能由一个inode描述。 EXT2文件系统的inode 定义为struct ext2_inode,该定义在/include/linux/ext2_fs.h中。,-rw-rw-r- 1 Lionheart Lionheart 134 Jun 21 00:18 DEADJ drwxr-xr-x 5 Lionheart Lionheart 1024 Jun 20 13:00 Desktop,ls 命令:显示文件名和目录的子目录 l 选项可用于显示文件和目录的详细

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论