《嵌入式系统软件开发》由会员分享,可在线阅读,更多相关《嵌入式系统软件开发(79页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统软 件开发Embedded System Developing3 嵌入式软件开发环境n嵌入式软件开发环境简介n操作系统基础 nLinux及常见命令n shell程序设计n makefile文件n Gcc、 ld、gdb等n Linux程序设计n vxworks环境及程序设计n wince环境及程序设计3-3Linux及常见命令nLinux概述nLinux命令3-3-1Linux概述nLinux起源与发展nlinux特点nLinux用户接口nLinux用户管理nLinux文件系统3-3-1-1Linux起源与发展nLinux起源Unix操作系统及版权费用问题Andrew S. Tane
2、nbaum与minixLinus Torvalds与linux内核 (1991 Linux 0.01 )nLinux内核版本内核版本号由3个数字组成:r.x.yr:内核主版本 x:内核次版本,偶数表示稳定版本;奇数表示 开发中版本 y:错误修补的次数 注:linux启动成功后,获取内核版本等系统信息的 命令为:unameuname -anLinux发展0.01 (1991.9) Linux 版在网上发布0.11 (1991.12.8)基本可以正常运行的内核版本0.12 (1992.1.15)主要加入对数学协处理器的软件模拟程序0.96 (1992.5.12)开始加入网络支持和虚拟文件系统VFS
3、 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:/www.kernel.org)nGNU 计划GNU 计划和自由软件基金会(the Free Software Foundation - FSF)是由Richard M. Stallman (自由软件的精神领袖,自由软件之父亲)于1984 年一手创办的。旨在开 发一个类似 Unix、并且是自由软件的完整操作系统:GNU(“GNUs Not Unix”)。到上世
4、纪90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名 的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些 软件为Linux 操作系统的开发创造了一个合适的环境。nGNU/LinuxLinux作为Hurd操作系统的替代nGPLGPL(General Public License:通用公共许可协议),其宗旨就是保证用户有无限复 制和修改的权利。GPL是自由软件著作人同意的、保证任何人有共享和修改自由软件 的许可协议。GPL条款中社会公众作为被许可人享有最主要的4项权利:(1)为了任何 目的运行该程序;(2)有自由获得源代码的权利
5、,并在此基础上研究程序是如何运行的 ,并可为了个人目的改变该程序;(3)有自由散发该复制件的权利;(4)有自由改进程 序,并要求将自己的改进向公众公布的权利。nLinux发行版本由不同厂商将Linux内核与不同应用程序相互组合而形成的不同的linux发行 套件。Slackware debian redhat Ubuntu Fedora 红旗,中软 中国Linux论坛http:/ 丰富的Linux文档资料http:/ 中国Linux公社: http:/www.linuxfans.org/nuke/index.php3-3-1-2linux特点n源代码开放n安全可靠n多用户、多任务、多平台n良好的
6、用户界面n与UNIX系统在源代码级兼容,符合IEEE POSIX标准 n支持多种文件系统JFS、 ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、 MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV 、PROC n丰富的网络功能 n3-3-1-3linux用户接口nGUIn字符nAPIGUInGNOME (GNU Network Object Model Environment)nKDE(K Desktop Environment) n Window SystemnKDE基于Troll Technologies公司的Qt库的开发而成
7、,Qt库是一个跨平台 的C+类库,但不遵从GPL或LGPL协议。nKDE特征是适用于 Linux 的一种功能强大的图形桌面环境。 提供了完整的桌面环境,包括一个窗口管理器和大量 X 实用程序将 K 窗口管理器 (KWM, K Windows Manager) 用作默认的窗口管 理器KDE与GNOMEnGNOMEGnome的产生原动力就起源于对KDE许可证问题的不满,Gnome使 用的工具包是GTK+,GTK+是一个遵守GPL协议的开发工具包。nGNOME特征是一种用户友好的桌面环境可在多种操作系统上运行是一种开放源代码的免费软件 可以和多种窗口管理器配合使用 n切换方式修改配置文件/etc/s
8、ysconfig/desktop DESKTOP=“KDE”/ “GNOME” 命令切换 switchdesk GNOME / KDE Gnome环境主菜单快捷工具按钮主桌面切换 工具菜单 任务栏 通知区域工作区切换器工作区切换器是桌面面板条上的一个 Applet 应用程序 1应用程序 2应用程序 3应用程序 4工作区 1应用程序 5文件夹 1文件夹 2工作区 2AltCtrlAltCtrlKDE桌面X windownX的由来 Window于1984年在麻省理工学院(MIT)电脑科 学研究室开始开发的,当时Bob Scheifler正在发展分 步式系统(distributed system),
9、同一时间 DEC公司 的 Jim Gettys 正在麻省理工学院做 Athena 计划的一 部分。两个计划都需要一个相同的东西一套在 UNIX机器上运行优良的视窗系统。因此合作关系开始 展开,他们从斯坦福(Stanford)大学得到了一套叫 做的实验性视窗系统。因为是根据视窗系统的基 础开始发展的,当发展到了足以和原先系统有明显区 别时,他们把这个新系统叫做。 nX window系统机制 X window系统 建于客户服务器联结基础上的图形子系统;独立于系统内核;三部分组成:X server ,X client,X protocol X服务器和客户端 X服务器是一个运行在本地计算机上的程序。它
10、响应来自X客户程序的请 求,在屏幕上画图或者读取键盘或鼠标的输入,并将它传给客户端。 X客户端是运用X协议的应用程序。它通过向负责管理自己的X服务器提出 对显示和输出资源的请求来使用其他计算机的这些资源。X protocolX协议定义了客户服务器中应用程序和它的显示的联系,通过 这个协议,应用与它的显示被分离开来。 Xlib库 Xlib库是一个C语言库,它为X协议里的信息交换提供了一个API 。 X工具包 将常用的素材(如按钮,菜单等)收集到一起就形成了所谓的X 工具包(X ToolKit) X窗口管理器X窗口管理器负责安排客户窗口在显示屏幕上的摆放位置,并完 成移动窗口和调整窗口尺寸等管理性
11、的工作。主机启动并进行硬件自检后(BIOS ),读取硬盘MBR中 的启动引导器程序(lilo, grub等等)并进行加载 启动引导器程序负责引导硬盘中的操作系统,直接加 载linux内核程序 Linux的内核程序负责操作系统启动的前期工作,并进 一步加载系统的INIT进程 INIT进程是linux系统中运行的第一个进程,该进程将 根据其配置文件执行相应的启动程序,并进入指定的 系统运行级别 在不同的运行级别中,根据系统的设置将启动相应的 服务程序 在启动的过程中,将运行控制台程序提示并允许用户 输入帐号和口令进行登录(/bin/login )登录之后 shell控制主机运行 Linux启动过程
12、n字符/文本界面/模式系统启动后直接进入字符界面 修改/etc/inittab文件行Id:5:initdefault:Id:3:initdefault:启动后系统提供六个虚拟控制平台,每个虚拟控制平台可以独立 使用,互不影响。Alt+F1Alt+F6进行界面切换startx 命令可启动图形界面,启动成功后可以使用 Ctrl+Alt+F1Ctrl+Alt+F6直接切换到字符虚拟终端,Ctrl+Alt+F7可 又切换到图形界面。也可使用Ctrl+Alt+Backspace进行切换。nINIT进程是由linux内核引导运行的,是系统中运行的第一个进程, PID为1。INIT进程运行后将按照其配置文件
13、,引导运行系统所需的其 他进程,INIT进程将做为这些进程的父进程 INIT的配置文件inittab /etc/inittab inittab文件文件中每行的纪录有id、runlevels、action和process四个 字段,各字段用“:”分隔,他们共同确定了某进程在那些运行级别以 何种方式运行。 1、id用于在inittab文件中惟一标示一个配置记录,可以有1-4个字符组成 。 2、runlevels用于指定该记录在哪些运行级别中运行,runlevels可以使单 个运行级别也可以是运行级别列表3、 action字段描述记录将执行那种类型的动作,详细设置如下:(1)initdefault:
14、用于标示系统启动后将进入哪个运行级别。(2)sysinit类进程将在系统启动时在任何boot或bootwait类进程 之前运行(3)wait类进程将在进入指定运行级别后运行一次,init进程将等待其结束(4)ctrlaltdel用于指定用户使用ctrl+alt+del组合键时系统所进行的操作,如重启进入单用户等。(5)powerfail和powerokwait用于指定当UPS断电信号时所运行的命令和指定当供电恢复时所运行的命令(6)respawn类进程在结束后重新启动运行(如控制台登录程getty) 4、process字段所设置的是启动进程所执行的命令n图形界面中字符界面主菜单system t
15、ools terminalLinux系统运行等级n0停止系统。n1单用户。n2多用户,但不支持NFS。n3全多用户模式,即系统正常的模式。n5进入X11(即窗口模式)。n6重启系统ninit n改变系统的运行等级3-3-1-4linux用户管理nLinux下的用户Linux下的用户可以分为三类:超级用户、系统用户和普通用户。 超级用户的用户名为root,它具有一切权限,只有进行系统维护(例如 :建立用户等)或其他必要情形下才用超级用户登录,以避免系统出 现安全问题。系统用户是Linux系统正常工作所必需的内建的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的,系统用 户不能用来登录,
16、例如:bin、daemon、adm、lp等用户。而普通用 户是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。每个用户都有一个数值,称为UID。超级用户的UID为0,系统用户 的UID一般为1499,普通用户的UID为50060 000之间的值。n组群概念p组群ID(GID)每一个用户都属于某一个组群(组群的GID类似于用户ID)。系统组群 、私人组群 、组群名 、组群ID(GID) 、组群口令等。p 用组群管理用户的优点设置组的属性及权限,组中的成员就享有该组同样的权限;有人员变动时只需改变组的成员即可;不必去为每个用户设置属性,节省了大量的重复劳动,方便管理用户。与组群相关的文件组群账号信息文件 /etc/group组群口令信息文件 /etc/gshadow网络用户几百个或几千个用户每个用