软件测试报告模板分析_第1页
软件测试报告模板分析_第2页
软件测试报告模板分析_第3页
软件测试报告模板分析_第4页
软件测试报告模板分析_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、(OA号:OA号/无)XXX产品名称XX版本(提测日期:YYYY.MM.dd)(OA号:OA号/无)XXX产品名称XX版本(提测日期:YYYY.MM.dd)第XX轮功能/性能/稳定性/兼容性测试报告 编号JLNXDZ-001文件状态 草稿 正式发布 正在修改当前版本V1.01拟 制报告编写人名字日期YYYY.MM.dd审 核组长名字日期YYYY.MM.dd批 准部门经理名字日期YYYY.MM.dd修订历史记录A - 增加 M - 修订 D - 删除变更版本号版本日期变更类型修改者修订记录1.012017-3-10MXXX修改软硬件配置说明以及增加bug数据的统计、测试过程版本打包次数统计、用例

2、覆盖率统计1.1.12017-3-13MXXX修改测试结果列表,增加功能、性能、稳定性等测试结果 TOC o 1-3 h z u HYPERLINK l _Toc462327393 1.概述 PAGEREF _Toc462327393 h 4 HYPERLINK l _Toc462327394 1.1 测试目的 PAGEREF _Toc462327394 h 4 HYPERLINK l _Toc462327395 1.2 测试背景 PAGEREF _Toc462327395 h 4 HYPERLINK l _Toc462327396 1.3 测试资源投入 PAGEREF _Toc4623273

3、96 h 4 HYPERLINK l _Toc462327397 1.4 测试功能 PAGEREF _Toc462327397 h 4 HYPERLINK l _Toc462327398 1.5 术语和缩略词 PAGEREF _Toc462327398 h 5 HYPERLINK l _Toc462327399 1.6 测试范围 PAGEREF _Toc462327399 h 5 HYPERLINK l _Toc462327400 2.测试环境 PAGEREF _Toc462327400 h 6 HYPERLINK l _Toc462327401 2.1 测试软件环境 PAGEREF _Toc

4、462327401 h 6 HYPERLINK l _Toc462327402 2.2 测试硬件资源 PAGEREF _Toc462327402 h 6 HYPERLINK l _Toc462327403 2.3 测试组网图 PAGEREF _Toc462327403 h 6 HYPERLINK l _Toc462327404 3.测试用例执行情况 PAGEREF _Toc462327404 h 6 HYPERLINK l _Toc462327405 4.测试结果分析(大项目) PAGEREF _Toc462327405 h 7 HYPERLINK l _Toc462327406 4.1 Bu

5、g趋势图 PAGEREF _Toc462327406 h 7 HYPERLINK l _Toc462327407 4.2 Bug严重程度 PAGEREF _Toc462327407 h 7 HYPERLINK l _Toc462327408 4.3 Bug模块分布 PAGEREF _Toc462327408 h 7 HYPERLINK l _Toc462327409 4.4 Bug来源 PAGEREF _Toc462327409 h 7 HYPERLINK l _Toc462327410 5.测试结果与建议 PAGEREF _Toc462327410 h 7 HYPERLINK l _Toc4

6、62327411 5.1 测试结果 PAGEREF _Toc462327411 h 7 HYPERLINK l _Toc462327412 5.2 建议 PAGEREF _Toc462327412 h 8 HYPERLINK l _Toc462327413 5.3 测试差异分析 PAGEREF _Toc462327413 h 8 HYPERLINK l _Toc462327414 6.测试缺陷分析 PAGEREF _Toc462327414 h 8 HYPERLINK l _Toc462327415 7.未实现需求列表 PAGEREF _Toc462327415 h 9 HYPERLINK l

7、 _Toc462327416 8.测试风险 PAGEREF _Toc462327416 h 9 HYPERLINK l _Toc462327417 9.缺陷列表 PAGEREF _Toc462327417 h 9概述1.1 测试目的本报告编写目的,指出预期读者范围。1.2 测试背景对项目目标和目的进行简要说明,必要时包括该项目历史做一些简介。1.3 测试资源投入测试项测试人力测试时间安装&卸载&升级测试1人 2日 = 2人日2012-02-242012-02-26, 两个工作日功能性测试2人 2.5日 + 2人2日 + 21.5日= 12人日2012-02-272012-02-29, 两个工作

8、日接口测试稳定性测试1人 7日 =7人日2/283/2,目前处于第一个阶段的稳定性测试,共,3个工作日原计划:2/283/28开始稳定性测试(分3个阶段执行测试:3*24H、7*24H、30*24H)/针对本轮测试的一个分析/测试项:功能测试、性能测试、稳定性测试等/测试时间投入:用了多少天/测试人力投入:需要多少人投入/如果是稳定性测试的话,需要说明整个周期多长,当前属于第几个阶段,如上所示1.4 测试功能1,测试功能、内容/测试概要介绍,包括测试的一些声明、测试范围、测试目的等等,主要是介绍测试情况。(其他测试经理和质量人员关注部分)。/测试哪些功能,测试功能、测试步骤描述。/测试内容大纲

9、。2,版本功能对比与上一个版本功能对比,增加功能、修改功能、删除功能增加了哪些定制功能差异化功能特别介绍借调设备投入:需要借调主要设备1.5 术语和缩略词列出本系统/项目的专用术语和缩写语。对于技术的相关名词和与多义词注明清楚,以便查阅时产生歧义。编号专业术语描述备注1231.6 测试过程版本打包次数打包次数原因搭建环境过程0测试过程0测试环境2.1 测试组网图设备连接示意图。2.2 测试软件环境操作系统数量类型配置网络环境安装软件/程序Windows server 2012 64bit1台后台服务处理器:Intel(R)CPU E5-2603 V21.8GHz内存:8G硬盘/磁盘大小:1T固

10、态硬盘大小:32G4M插件:1、 VC2008sp12、 vc2010sp1数据库:Mysql5.6服务:1、身份认证服务(V1.1.2)2、视频主控服务(V1.1.2)Windows 7旗舰版 64bitN台客户端处理器:Intel(R)CPU E5-2603 V21.8GHz内存:4G硬盘/磁盘大小:1T固态硬盘大小:32G插件:1、TTS语音(可选)2、.NET Framework4.03、.NET Framework4.5IE:1、IE11或谷歌程序:1、客户端(V2.3.1)2、搜索工具2.3 测试硬件资源本次测试过程中,使用到的硬件使用资源包括:设备型号/软件版本/固件版本/硬件版

11、本:设备名称实测数量设备型号/防伪编码软件版本固件版本硬件版本NVR交换机摄像枪测试用例执行情况3.1用例覆盖率数量(条)比例(%)备注通过数实际通过的用例数(通过数/用例总数)*100不通过数实际不通过的用例数(不通过数/用例总数)*100未测试数未测试的用例数(未测试数/用例总数)*100本轮新增用例数在本轮测试中,新增用例数(新增用例数/用例总数)*100用例总数用例总数3.2用例测试结果插入测试用例测试结果的附件表。每条测试用例需要包括:测试结果(通过/不通过/未测试/需求未实现),测试人员等。不通过:需要标记出对应的bug编号,以及实际的测试结果未测试:需要备注未测试的原因需求未实现

12、:要备注需求未实现缺陷分析4.1 bug类别统计BUG类别新增-旧BUG引起新增-漏测新增-新功能原有BUG重新激活总计汇总179917115说明:1) 新增-漏测(上次版本未测到的BUG)2) 新增-新功能(本次版本新增功能的BUG)3) 新增-旧BUG引起(开发解BUG产生的新BUG)4) 重新激活(本次版本开发已解决,但回归发现仍然存在问题的)5) 原有BUG(本次版本开发未解决的) 4.2未关闭的bug统计严重程度不予解决外部原因无法解决无法重现延期处理遗留问题已解决长期跟踪重复Bug转为需求激活1(致命)2(严重)3(一般)4(建议/优化)总计4.3 Bug收敛趋势图/此bug收敛趋

13、势图:是统计每一轮的bug提交数和关闭数,需要线性体现趋势,如上图所示(具体可参考如下附件的统计)-4.4 Bug严重程度(大项目)/从缺陷工具截取,测试视图-报表-选择“Bug严重程度统计”点击生成报表,截图/是针对没有解决的BUG的一个分析4.5 Bug模块分布(大项目)/从缺陷工具截取,测试视图-报表-选择“模块Bug数量”点击生成报表,截图/是针对没有解决的BUG的一个分析测试结果与建议5.1 测试结果编号模块测试负责人测试结果主要问题描述1视频预览XX不通过配置正确,无法正常预览2日志统计XX通过统计及日志记录功能正常,但是仍存在需要优化的问题,例如:表单样式、搜索校验等(已提bug

14、)3456/测试结果:针对该表格,如果是功能测试,则列出功能测试相关的统计;如果是稳定性测试,则列出稳定性相关的统计;其他项测试,以此类推。/模块:如果主模块下有多个子模块, 主模块所在行用黑体字表示,下面是其子模块。用非黑子体表示/该模块的测试执行人员/结果:通过、不通过、未测试(备注清楚未测试原因)/主要问题描述:如果结果是不通过的,简述致命或是严重类问题功能性测试结果:性能测试结果:可靠性测试结果:稳定性测试结果:兼容性测试结果:容错性测试结果:EMC测试结果(硬):安规测试结果(硬):环境试验结果(硬):热传测试结果(硬):总体结论:当前版本大部分的需求已经实现,具体见需求跟踪表,日志

15、统计基本功能正常,存在部分需要优化的地方。常用的预览模块,无法正常预览。故测试角度认为不通过。/给出总体结论,每一项后面写清楚本轮是否测试,如果没有测试请注明原因,及计划什么时候测试。如果已经测试写清楚结果是“通过” 还是 “不通过”。/如果是外购内产品测试的话,各项功能测试结果则可去掉,可以输出一段总结性的结论。插入定制功能验收表/外购选型类测试数据/插入定制功能验收表:如果是仿真测试或是定制类项目,则需要插入该表/插入外购选型类测试数据:如果是外购选型,则需要插入该表5.2 建议1, 测试执行是否充分2, 测试目标是否完成3, 对系统存在问题的说明,描述当前测试所揭露的缺陷和不足,以及带来

16、的影响4, 对缺陷修改和产品设计的建议5.3 测试差异分析1,测试环境和测试方案是否一致2,测试用例执行是否有偏差测试缺陷分析缺陷发现效率:BUG总数/天数 = 个/天缺陷密度:BUG总数/模块 = 个/模块系统测试缺陷发现密度:系统测试发现的缺陷数/测试用例数*100% %未实现需求列表需求编号需求名称需求描述测试风险编号风险项名称风险描述风险影响影响等级/风险影响:说明该风险对该项目的影响/影响等级:分高、中、低三级缺陷列表插入buglist的附件表(保留关键列即可,如下)/从缺陷管理工具导出,以附件的形式/测试视图-搜索-搜索出自己要导出的BUG, 点击【导出】/保留关键字段列(Bug编

17、号、所属模块、Bug标题、严重程度、优先级、重现步骤、Bug状态、激活次数、由谁创建、创建日期、指派给、解决方案、关闭日期、bug类别、bug来源), 保存成EXCEL各式。Bug类别分为几项:1) 新增-漏测(上次版本未测到的BUG)2) 新增-新功能(本次版本新增功能的BUG)3) 新增-旧BUG引起(开发解BUG产生的新BUG)4) 重新激活(本次版本开发已解决,但回归发现仍然存在问题的)5) 原有BUG(本次版本开发未解决的)bug来源:分为稳定性bug、功能性bug/灰色字体都是试用说明,实际使用的时候请去掉。附录资料:不需要的可以自行删除 busybox详解制作根文件系统详解制作根

18、文件系统 一、FHS(Filesystem Hierarchy Standard)标准介绍当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。该标准规定了根目录下各个子目录的名称及其存放的内容:目录名存放的内容/bin必备的用户命令,例如ls、cp等/sbin必备的系统管理员命令,例如ifconfig、reboot等/dev设备文件,例如mtdblock0、tty1等/etc系统配置文件,包括启动文件,例如inittab等/lib必要的链接库,例如C链接库、内核模块/home普通用

19、户主目录/rootroot用户主目录/usr/bin非必备的用户程序,例如find、du等/usr/sbin非必备的管理员程序,例如chroot、inetd等/usr/lib库文件/var守护程序和工具程序所存放的可变,例如日志文件/proc用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容/sys用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容/mnt文件系统挂接点,用于临时安装文件系统/tmp临时性的文件,重启后将自动清除制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:编译安装busybox,生成/bin、/sbin、/usr/b

20、in、/usr/sbin目录 利用交叉编译工具链,构建/lib目录 手工构建/etc目录 手工构建最简化的/dev目录 创建其它空目录 配置系统自动生成/proc目录 利用udev构建完整的/dev目录 制作根文件系统的jffs2映像文件 下面就来详细介绍这个过程。二、编译安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god, 这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀busybox,事情就简单很多。1、从 HYPERLINK / / 下载busyb

21、ox-1.7.0.tar.bz22、tar xjvf busybox-1.7.0.tar.bz2解包3、修改Makefile文件175 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busyboxbusybox配置主要分两部分。第一部分是Busybox Settings,主要编译和安装busybox的一些选项。这里主要需要配置:1)、Build Options - Build BusyBox as a static binary (no shared libs),表示编译busybox时,是否静态链接C库。我们选择动

22、态链接C库。2)、Installation Options - Applets links (as soft-links) - (X) as soft-links,表示安装busybox时,将各个命令安装为指向busybox的软链接还是硬链接。我们选择软链接。3)、Installation Options - (/work/nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安装位置。我们选择/work/nfs_root/fs_mini34)Busybox Library Tuning。保留Command line editing以

23、支持命令行编辑;保留History size以支持记忆历史命令;选中Tab completion和Username completion以支持命令自动补全 第二部分是Applets,他将busybox的支持的几百个命令分门别类。我们只要在各个门类下选择想要的命令即可。这里我们基本保持默认设置。1)选中Networking Utilities - httpd下的Enable -u option,以启用http服务器的功能allows the server to run as a specific user5、编译busyboxmake6、安装busyboxmake install安装完成后,可以

24、看到在/work/nfs_root/fs_mini3目录下生成了binsbinusr/binusr/sbin目录,其下包含了我们常用的命令,这些命令都是指向bin/busybox的软链接,而busybox本身的大小不到800K:dennisdennis-desktop:/work/nfs_root/fs_mini3$ lsbin linuxrc sbin usrdennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l bintotal 740lrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 addgroup

25、 - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 adduser - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 ash - busybox-rwxr-xr-x 1 dennis dennis 749632 2010-04-03 23:57 busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 cat busybox 而普通PC机上的ls命令就有差不多80K的大小: dennisdennis-desktop:/work/

26、nfs_root/fs_mini3$ ls -l /bin/ls-rwxr-xr-x 1 root root 78004 2007-09-29 20:51 /bin/ls busybox以它娇小的身躯容纳了数以百计的命令代码,实在是让人佩服不已,其不愧嵌入式系统瑞士军刀之美誉。据说,busybox的作者身患绝症,这更让人钦佩GNU开源软件的作者们。 三、利用交叉编译工具链,构建/lib目录 光有应用程序(命令)是不够的,因为应用程序本身需要使用C库的库函数,因此还必需制作for ARM的C库,并将其放置于/lib目录。my god,要自己写C库的源代码吗?不用!还记得交叉编译工具链的3个组成部

27、分吗?交叉编译器、for ARM的C库和二进制工具。哈哈,for ARM的C库是现成的,我们只需要拷贝过来就可以了。遗憾的是:整个C库目录下的文件总大小有26M。而我们根文件系统所在分区不过区区16M而已,根本放不下。怎么办呢? dennisdennis-desktop:/work/nfs_root/fs_mini3$ du -s -si /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib26M /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 需要C库目录下所有的文件吗?no,absolutely no

28、! 让我们来分析一下glibc库目录下内容的组成。该目录下的子目录和文件共分8类: 目标文件,如crtn.o,用于gcc链接可执行文件 libtool库文件(.la),在链接库文件时这些文件会被用到,比如他们列出了当前库文件所依赖的其它库文件,程序运行时无需这些文件 gconv目录,里面是各种链接脚本,在编译应用程序时,他们用于指定程序的运行地址,各段的位置等 静态库文件(.a),例如libm.a,libc.a 动态库文件 (.so、.so.0-9*) 动态链接库加载器ld-2.3.6.so、ld-linux.so.2 其它目录及文件很显然,第1、2、3、4、7类文件和目录是不需要拷贝的。由于

29、动态链接的应用程序本身并不含有它所调用的C库函数的代码,因此执行时需要动态链接库加载器来为它加载相应的C库文件,所以第6类文件是需要拷贝的。除此之外,第5类文件当然要拷贝。但第5类文件的大小也相当大。dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ du -c -si *.so* 7.2M total 需要全部拷贝吗?非也,非也!其实,需要哪些库完全取决于要运行的应用程序使用了哪些库函数。如果我们只制作最简单的系统,那么我们只需要运行busybox这一个应用程序即可。通过执行 dennisdennis-d

30、esktop:/work/nfs_root/fs_mini3$ arm-linux-readelf -a bin/busybox | grep Shared0 x00000001 (NEEDED) Shared library: libcrypt.so.10 x00000001 (NEEDED) Shared library: libm.so.60 x00000001 (NEEDED) Shared library: libc.so.6 可知:busybox只用到了3个库:通用C库(libc)、数学库(libm)、加密库(libcrypt),因此我们只需要拷贝这3个库的库文件即可。但是每个库都

31、有4个文件,4个文件都要拷贝吗?当然不是。 dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libcrypt.-*-rwxr-xr-x 1 dennis dennis 30700 2008-01-22 05:32 libcrypt-2.3.6.so-rw-r-r- 1 dennis dennis 23118 2008-01-22 05:32 libcrypt.alrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libcrypt.so - libcr

32、ypt.so.1lrwxrwxrwx 1 dennis dennis 17 2008-12-22 15:38 libcrypt.so.1 - libcrypt-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libm.-*-rwxr-xr-x 1 dennis dennis 779096 2008-01-22 05:31 libm-2.3.6.so-rw-r-r- 1 dennis dennis 1134282 2008-01-22 05:32 libm.alrwxrwxrw

33、x 1 dennis dennis 9 2008-12-22 15:38 libm.so - libm.so.6lrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libm.so.6 - libm-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libc.-*-rwxr-xr-x 1 dennis dennis 1435660 2008-01-22 05:48 libc-2.3.6.so-rw-r-r- 1 dennis dennis

34、 2768280 2008-01-22 05:31 libc.a-rw-r-r- 1 dennis dennis 195 2008-01-22 05:34 libc.solrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libc.so.6 - libc-2.3.6.so 4个文件中的.a文件是静态库文件,是不需要拷贝的。另外3个文件是: 实际的共享链接库:libLIBRARY_NAME-GLIBC_VERSION.so。当然需要拷贝。 主修订版本的符号链接,指向实际的共享链接库:libLIBRARY_NAME.so.MAJOR_REVISION_VE

35、RSION,程序一旦链接了特定的链接库,将会参用该符号链接。程序启动时,加载器在加载程序前,会检索该文件。所以需要拷贝。 与版本无关的符号链接,指向主修订版本的符号连接(libc.so是唯一的例外,他是一个链接命令行:libLIBRARY_NAME.so,是为编译程序时提供一个通用条目)。这些文件在程序被编译时会被用到,但在程序运行时不会被用到,所以不必拷贝它。关于共享库的2个符号链接的作用的特别说明:当我们使用gcc hello.c -o hello -lm编译程序时,gcc会根据-lm的指示,加头(lib)添尾(.so)得到libm.so,从而沿着与版本无关的符号链接(libm.so -

36、libm.so.6)找到libm.so.6并记录在案(hello的ELF头中),表示hello需要使用libm.so.6这个库文件所代表的数学库中的库函数。而当hello被执行的时候,动态链接库加载器会从hello的ELF头中找到libm.so.6这个记录,然后沿着主修订版本的符号链接(libm.so.6 - libm-2.3.6.so)找到实际的共享链接库libm-2.3.6.so,从而将其与hello作动态链接。可见,与版本无关的符号链接是供编译器使用的,主修订版本的符号链接是供动态链接库加载器使用的,而实际的共享链接库则是供应用程序使用的。通过以上分析,我们只需要拷贝3个库(每个库各1个

37、主修订版本的符号链接和1个实际的共享链接库)以及动态链接库加载器(1个符号链接和1个实体文件)。步骤如下:dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ mkdir /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libcrypt-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools

38、/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libcrypt.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libm-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libm.so.* /work/nfs_root/fs_mini

39、3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libc-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libc.so.* /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -

40、l ld-* /work/nfs_root/fs_mini3/lib 四、手工构建/etc目录 /etc目录存放的是系统程序的主配置文件,因此需要哪些配置文件取决于要运行哪些系统程序。即使最小的系统也一定会运行1号用户进程init,所以我们至少要手工编写init的主配置文件inittab。busybox的inittab文件的语法、语义与传统的SYSV的inittab有所不同。 inittab文件中每个条目用来定义一个需要init启动的子进程,并确定它的启动方式,格式为:。例如:ttySAC0:askfirst:-/bin/sh 表示子进程要使用的控制台,若省略则使用与init进程一样的控制台

41、表示运行级别,busybox init程序这个字段没有意义 表示init进程如何控制这个子进程 sysinit:系统启动后最先执行,只执行一次,init进程等待它结束后才继续执行其它动作 wait:系统执行完sysinit条目后执行,只执行一次,init进程等待它结束后才继续执行其它动作 once:系统执行完wait条目后执行,只执行一次,init进程不等待它结束 respawn:启动完once进程后,init进程监测发现子进程退出时,重新启动它 askfirst:启动完respawn进程后,与respawn类似,不过init进程先输出” Please press Enter to activ

42、ate this console“,等用户输入回车后才启动子进程 shutdown:当系统关机时 restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init进程接收到SIGUP信号时执行,先重新读取、解析/etc/inittab文件,再执行restart程序 ctrlaltdel:按下ctrl+alt+del键时执行,不过在串口控制台中无法输入它 表示进程对应的二进制文件。如果前面有-号,表示该程序是“可以与用户进行交互的”我们制作最简单的/etc/inittab文件,其内容如下::sysinit:/etc/init.d/rcS:askfirst:-

43、/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a r 制作最简单的脚本程序文件/etc/init.d/rcS,其内容如下: #!/bin/shifconfig eth0 7修改shell脚本文件/etc/init.d/rcS的权限,以使其可被执行:# chmod a+x /etc/init.d/rcS五、手工构建最简化的/dev目录 在linux机器上,执行ls /dev可看到几百个设备文件,我需要手工创建它们吗?maybe,我只需要手工创建几个设备文件!我怎么知道我应该创建哪几个设备文件呢?管它呢,先看看开发板上可爱的linux的

44、反应再说。 启动Linux操作系统,显示: VFS: Mounted root (nfs filesystem).Freeing init memory: 112KWarning: unable to open an initial console. 这说明,内核已经成功挂载根文件系统,但却未能成功启动第1个用户进程init。通过错误消息“unable to open an initial console”搜索内核源代码,找到init/main.c文件。748 static int noinline init_post(void)749 750 free_initmem();751 unloc

45、k_kernel();752 mark_rodata_ro();753 system_state = SYSTEM_RUNNING;754 numa_default_policy();755 756 if (sys_open(const char _user *) /dev/console, O_RDWR, 0) 0)757 printk(KERN_WARNING Warning: unable to open an initial console.n);758 759 (void) sys_dup(0);760 (void) sys_dup(0);761 762 if (ramdisk_ex

46、ecute_command) 763 run_init_process(ramdisk_execute_command);764 printk(KERN_WARNING Failed to execute %sn,765 ramdisk_execute_command);766 767 768 /*769 * We try each of these until one succeeds.770 *771 * The Bourne shell can be used instead of init if we are772 * trying to recover a really broken

47、 machine.773 */774 if (execute_command) 775 run_init_process(execute_command);776 printk(KERN_WARNING Failed to execute %s. Attempting 777 defaults.n, execute_command);778 779 run_init_process(/sbin/init);780 run_init_process(/etc/init);781 run_init_process(/bin/init);782 run_init_process(/bin/sh);7

48、83 784 panic(No init found. Try passing init= option to kernel.);785 显然,内核错误是由175行不能打开/dev/console所致。通过查看已经安装好的linux机器的/dev/console设备文件,可知其是字符设备文件,主设备号为5,次设备号为1: dennisdennis-desktop:/work/nfs_root/fs_mini3/etc$ ls -l /dev/consolecrw 1 root root 5, 1 2010-04-08 08:40 /dev/console 因此,我们使用下面的命令创建它: HY

49、PERLINK mailto:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod console c 5 1 还需要创建其它设备文件吗?只有天知道!再看看linux的反应。 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit: cant open /dev/null: No such file or directory 这次我们有经验了,如法炮制,创

50、建/dev/null设备文件:dennisdennis-desktop:/work/nfs_root/fs_mini3/dev$ sudo mknod null c 1 3 再次重启开发板上的linux,显示 VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press Enter to activate this conso

51、le.starting pid 231, tty : /bin/sh# 哈哈,我们成功了,终于可以K歌去了。六、创建其它空目录K完歌回来,继续战斗。dennisdennis-desktop:/work/nfs_root/fs_mini3$ mkdir home root proc sys tmp mnt var再次重启动开发板上的linux。咦,似乎有些问题。VFS: Mounted root (nfs filesystem).Freeing init memory: 112Kinit started: BusyBox v1.7.0 (2010-04-03 23:53:55 CST)starting pid 229, tty : /etc/init.d/rcS Please press Enter to activate this console.starting pid 231, tty : /bin/sh# ps PID Uid VSZ Stat Command# ps竟然看不到任何进程的存在!让我想想。对了,ps的机制是通过查看/proc中的内容来获得进程信息的。那么,目前/proc里有哪些内容呢?# ls /proc# 竟然空空

温馨提示

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

最新文档

评论

0/150

提交评论