网上书店需求分析报告_第1页
网上书店需求分析报告_第2页
网上书店需求分析报告_第3页
网上书店需求分析报告_第4页
网上书店需求分析报告_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、网上书店系统需求说明书1 引言随着网络的普及,网络支付手段的逐步完善,越来越多的人习惯于网上购物,选择鼠标点击下订单,送货上门的快捷便利的购物方式。网络为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用Internet的技术和协议,建立各种企业内部网Intranet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约了交易成本,扩大了交易范围。而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:电子商务。 而传统书店的购书观念也正在被网上书店这一方便快捷的购书方式

2、所冲击。网上书店在国际互联网上可以实现的商务功能已经越来越多样化,从最开始的信息发布功能,到现在的在线图书展示功能、在线洽谈业务功能、在线交易功能、在线客户服务功能、在线管理功能等等,几乎传统书店所提供的功能都可以在互联网上进行电子化的高效运作,而借助网络的跨地域特点,更是将传统书店的地域限制加以突破,从而大大增加了客户的数量。2 任务概述及系统功能概述2.2 可行性分析可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的市场调查得出以下四点的可行性分

3、析:经济可行性:网上书店主要以书籍 杂志及音像制品等商品为主,网站可提供书籍音像制品的片段共读者浏览,使消费者了解其内容后再订购,避免过多的退货问题。与传统书店相比,网上购书的市场规模和经营模式没有限制,突破了地理位置,经营面积,营业时间的局限。是一直种全新的销售渠道。从营业面积地理位置方面节省大量的资金。服务器24小时提供网络服务则消费者随时都能登陆网站购物,大大增加书店的销售额度。无论从商家还是从消费者的角度看网络书店都具有良好的发展前景。技术可行性:ASP.NETSQL SERVER的技术已经较为成熟。运行可行性:该系统需要搭建VS.NET和IIS环境,在此环境下系统,并且在正确连接数据

4、库后可以正常运行。法律可行性:该平台是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。通过以上的可行性分析,我将采用ASP.NET技术,运用SQL SERVER数据库对网站进行建设。2.3 网上书店的系统特点(1)、简洁美观的操作界面美观又简单的操作界面对于一个网站能否吸引顾客的光顾,起着至关重要的作用。操作过于复杂或网站的设计过于沉闷都会使网上书店得不到客户的青睐。本系统通过工作人员的精心打造,配以精致的动画,使网上书店既时尚典雅,又动感十足,吸引广大顾客的光临。(2)、科学的书店管理模式系统采用店方推荐与客户检索相结合的方式,能轻松的找到客户所需要书籍信息

5、;通过客户意见反馈系统和缺书登记系统,书店可以随时把握客户的各种新的需求和及时与客户进行网上互动交流;通过完善的信息发布系统,客户可以及时得到书店最新动态和新闻,掌握行业动向;后台结构化管理模式,涵盖了栏目设置、图书资料编辑、用户管理、订单管理、基础信息管理等等,为书店的电子化管理提供了一套良好的管理模式。(3)、图书寄送提醒系统不能即购即得是网上书店不如传统实体书店的一个弊病。当顾客选定图书后必然要等候一段时间才能拿到喜爱的图书,而等候的时间是最让顾客厌烦的,如果等候的时间太长则有可能导致客户的流失。而图书寄送提醒系统就是为了解决这个问题而设计的,当客户下订单后,客户所定图书的状态显示为“已

6、下定单”,当书店已经将图书交给快递公司后,客户所定图书的状态显示为“已寄送”。这样客户就可以通过查询图书状态了解图书的寄送情况,当由于快递公司未能按时寄送图书导致客户等候时间过长的时候,客户不会盲目的迁怒于网上书店,从而保证书店的信誉,尽可能的减少客户流失。(4)、图书收藏系统图书收藏系统给客户提供一个可以收藏喜爱图书的收藏夹,客户可以在收藏夹里放入自己喜爱的图书,放入收藏夹里的图书一般是客户在浏览网上书店时看中而又不想马上下订单的图书,当客户方便下订单的时候,可以直接从收藏夹里找出之前看中的图书,直接下订单,这样就节省了客户再次查找的麻烦,也增加了客户浏览网上书店的频率,这样客户可以不必等到

7、要买书的时候才登录书店,可以随时登录,随时收藏喜爱的图书,为以后的下订单作好准备。(5)购物车系统 网上购物不可避免的需要涉及邮递,而邮递也需要客户付出一定的费用。购物车系统的开发,使买家可以像在超市购物一样,随意添加删除商品,选购完毕后,统一下单。避免多次付费、重复付费,为客户提供便利。2.4、系统功能说明2.4.1、书店前台 前台作为与用户直接交互的界面,在考虑功能的同时,也考虑了操作的简洁和方便性,目的是让大多数不在懂电脑操作的客户,也能轻松的享受电子商务给他们带来的便利。(1)、前台主要功能包括注册/登录、我的账户、新闻发布、书店介绍、联系方式、图书查询、新书快递、图书分类浏览、图书展

8、示、畅销书排行榜、打折专区、精品推荐、意见反馈、购物车、在线交流、自动友情链接功能等等。(2)、书店系统前台设计的特色(a)、我的账户 每个注册的用户,都拥有一个属于自己的账户管理界面,客户可以轻松的管理个人基本资料,送货信息资料,修改密码,管理订单,查看收藏架中的图书,查询订单汇总。本系统充分考虑到了本模块对于客户的重要性,所以界面尽量做的简捷,采用开放式结构,一目了然,方便客户轻松掌控自己的一切信息,从而提高对书店的信任度,进一步增加书店的销售额。实例图个人资料可在此修改或补充你的注册信息修改密码修改你的注册密码我的订单查询订单明晰、修改或确认订单我的收藏夹收藏喜爱的图书,方便以后购买收货

9、人信息增加或修改收货人信息统计信息你在本站的一些交易数据的信息图书状态查看图书的邮寄情况(b)、信息的实时发布网上书店新闻让客户对充分了解书店的动向,决策,行业新闻则可用来发布本行业或相关行业的动态,让客户及时了解行业变化,掌握最新的行业法律法规。24小时滚动播出的公告,反映的是网上书店的实时消息。(c)、购书的详细过程会员注册-选择图书-去下订单-书店发货-快递公司送货-客户收到图书核查无误后付款(d)、多种检索方式传统书店最困惑的就是购书时的盲目性,找一本书,需花费大量的时间和精力,网上书店这方向的困惑已经得到了彻底的解决,数据库的高效检索,让客户找书不再烦恼。本系统运用了先进的检索方式,

10、包括模糊查询,按出版社、按分类,按图书价格范围,按作者,按标题等多种查询方法,同时查询方法简单易懂。(e)、灵活多样的图书展示区网站前台图书显视栏目分为以下几种方式: (1)新书上架 (2)精品推荐 (3) 关注排行(4) 销售排行(5) 图书打折专区(6) 图书详细分类(f)、意见反馈系统这是一个书店与客户互动的关键系统,包括四个功能模块:(1)在线交流 (2)意见与建议 (3)合作意向 (4)投诉 在线交流:使得客户与店家即时沟通交流,无需等待。意见与建议:包含一个意见箱,客户能随时写下对书店的建议和意见,可匿名。投诉:当你的服务没有得到满足或对书店员工的做法不满的时候,通过这个系统你可以

11、把你的不满提交给书店的高层,进行投诉。合作意向:如果客户对公司或公司产品感兴趣,还可以提交合作的请求。此系统设定隐私权限,有针对性的把信息提交给相关人员,便于及时处理客户碰到的各种问题。这是一个多功能的系统,这个系统将是书店了解客户,提高服务质量的一个桥梁,这也是本系统比较有特色的模块。系统前台结构图系统前台系统前台会员登陆图书展示订购服务意见反馈会员注册会员个人主页新书上架精品推荐销售排行优惠专区详细分类立即购买加入购物车在线交流意见与建议合作意向投诉2.4.2书店后台本系统后台管理在考虑书店管理操作简便的同时,提供了强大的书店管理模式。大模块上分为用户资料管理,图书资料管理,订单管理,用户

12、反馈管理,物流管理以及广告管理与网站维护。系统后台结构图系统后台系统后台用户管理图书管理订单管理反馈管理物流管理广告管理及网站维护2.4.3.售后服务(1)、客户评价当用户购书成功后,可以在90天内对此图书的质量、内容等进行评价,若评价经管理员审理后,不含有触犯相关法律法规的内容,则此评价内容会显示在图书信息的下方。广开言路,为管理员和其他客户提供参考意见(2)确认付款后7天内若有质量问题,可与店方协商后换货。3 需求规定3.1 对功能的规定3.1.1 系统功能模块图网上书店管理系统的功能可以划分为如下几个部分(1)前台管理:主要是用户或会员进行察看图书、选书、购书等基本操作。(2)后台管理:

13、主要是管理员对会员的管理、整理购书单完成发送货、书库存的动态管理、对网站的维护和更改等操作。3.1.2 数据流程图 图1 顶层数据流程图 图2 购书系统细化分析数据流程图 图3 “订书处理”的细化 图4 “支付处理”的细化 图 5 “配送”的细化3.1.3 数据字典本系统的部分数据字典如下: (1).数据存储: 名字:用户表 别名:会员表 描述:记录会员的个人基本情况 定义:用户表=会员id+姓名+联系方式+家庭住址+登录密码 位置:网上书店数据库名字:管理员表别名:管理员表描述:记录会员的个人基本情况定义:管理员表=管理员id+职位+联系方式+姓名+登录密码位置:网上书店数据库名字:图书表别

14、名:图书表描述:记录所卖书的基本信息定义:图书表=图书id+名称+出处+作者+出版日期位置:网上书店数据库 (2)数据结构: 名字:会员id别名:会员号,编号定义:会员id=会员申请日期+会员个人编号 会员申请日期=8数字字符8会员个人编号=5数字字符5位置:用户表名字:管理员id别名:管理员号,管理员编号定义:管理员id=部门编号+职工个人编号 部门编号=2数字字符2职工个人编号=5数字字符5位置:管理员表名字:图书 id别名:图书号,图书编号定义:图书id=种类编号+编号 种类编号=2数字字符2编号=5数字字符5位置:图书表(3)数据元素名字:姓名别名:昵称定义:1字符8位置:用户表管理员

15、表网上书店数据库名字:联系方式别名:联系方式描述:手机联系方式或固定电话联系方式 定义:12数字字符12|8数字字符8位置:用户表管理员表网上书店数据库名字:职位别名:职位定义:1汉字4位置:管理员表网上书店数据库名字:密码别名:登陆密码定义:6字符6位置:管理员表 用户表网上书店数据库名字:出处别名:出版社定义:1汉字15位置:图书表网上书店数据库名字:作者别名:编辑者定义:1汉字4位置:图书表网上书店数据库3.1.4 E-R图 注释:会员id、管理员id、图书id由数据库系统自动添加 3.1.5 状态转换图3.2 对性能的规定3.2.1 精度本系统要求输入的会员年龄为整数,买书的数量为整数

16、,出生日期必须是合法的日期形式(如1990-08-01),身份证号码必须为数字。3.2.2 时间特性要求(1)系统的更新处理时间应该在可接受的范围内;(2)系统的数据查询时间应该在可接受的范围内;(3)系统的数据统计时间应该在可接受的范围内。3.2.3 灵活性(1)操作方式上应该能够满足鼠标和键盘任意切换的需要;(2)能够支持Windows95、Windows98、Windows2000、Windows Me和Windows XP的运行环境;(3)留有与其他系统的接口。3.3 输入输出要求对会员注册中“姓名”的输入要求不超过4个汉字或8个英文字符;会员的性别只能选择不能有键盘输入,出生日期必须

17、输入合法(如1990-08-01),输入身份证号必须合法,即必须为18为数字。对会员买完书后的购书单以表单形式输出,上面有会员的姓名,联系电话,买书的数量及单价和总价钱,购买日期,以及网上书店的地址和联系方式。总的账目输出,会统计每个会员的购物单,会有卖出的书名,书的编号,以及书的数量和数的总价钱。3.4 数据管理能力要求由于购书系统会对会员的资料进行保存,并且,书的库存会随着数的购买或购进新的书而改变,因此对数据的存储有一定的要求;要求提供数据的备份功能。3.5 故障处理要求在输入不对的符号定义格式的数据时,软件应出现提示信息,而不是死机或删除已经输入的信息,然后再弹出界面重新开始。在书的库

18、存小于会员购买的数量是必须提示库存不足,而不是还可以卖给会员。3.6 其他专门要求要求能够按会员姓名进行检索。4 运行环境规定4.1 设备运行本软件要的计算机。4.2 支持软件本系统操作系统包括:Windows XP、Win7等。本系统支持的数据库: SQL Server 2005本系统的开发工具:Visual Studio.NET 2008SQL SERVER2005。 4.3 接口本软件通过若干个中间表(在此省略其结构)实现与其他软件的通信。附录资料:不需要的可以自行删除 busybox详解制作根文件系统详解制作根文件系统 一、FHS(Filesystem Hierarchy Standa

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

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

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

22、.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库。我们选择动态链接C库。2)、Installation Options - Applet

23、s 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以支持命令行编辑;保留History size以支持记忆历史命令;选中Tab

24、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安装完成后,可以看到在/work/nfs_root/fs_mini3目录下生成了binsbi

25、nusr/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 - busyboxlrwxrwxrwx 1 dennis dennis 7

26、 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/nfs_root/fs_mini3$ ls -l /bin/ls-rwxr-

27、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个组成部分吗?交叉编译器、for ARM的C库和二进制工具。哈哈,for ARM的C

28、库是现成的,我们只需要拷贝过来就可以了。遗憾的是:整个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! 让我们来分析一下glibc库目录下内容的组成。该目录下的子目录和文件共分

29、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类文件和目录是不需要拷贝的。由于动态链接的应用程序本身并不含有它所调用的C库函数的代码,因此执行时需要动态链

30、接库加载器来为它加载相应的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-desktop:/work/nfs_root/fs_mini3$ arm-li

31、nux-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个库的库文件即可。但是每个库都有4个文件,4个文件都要拷贝吗?当然不是。 dennisdennis-des

32、ktop:/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 - libcrypt.so.1lrwxrwxrwx 1 dennis dennis 17

33、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.alrwxrwxrwx 1 dennis dennis 9 2008-12-22 15:38 l

34、ibm.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 2768280 2008-01-22 05:31 libc.a-rw-r-

35、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_VERSION,程序一旦链接了特定的链接库,将会参用该符号链接。程序启动时,加载

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

37、),表示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个主修订版本的符号链接和1个实际的共享链接库)以及动态链接库加载器(1个符号链

38、接和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/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$

39、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_mini3/libdennisdennis-desktop:/work/tools/

40、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 -l ld-* /work/nfs_root/fs_mini3/lib 四、手

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

42、如何控制这个子进程 sysinit:系统启动后最先执行,只执行一次,init进程等待它结束后才继续执行其它动作 wait:系统执行完sysinit条目后执行,只执行一次,init进程等待它结束后才继续执行其它动作 once:系统执行完wait条目后执行,只执行一次,init进程不等待它结束 respawn:启动完once进程后,init进程监测发现子进程退出时,重新启动它 askfirst:启动完respawn进程后,与respawn类似,不过init进程先输出” Please press Enter to activate this console“,等用户输入回车后才启动子进程 shutd

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

44、wn:/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的反应再说。 启动Linux操作系统,显示: VFS: Mounted roo

45、t (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 unlock_kernel();752 mark_rodata_ro();753 sy

46、stem_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_execute_command) 763 run_init_process(ra

47、mdisk_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 machine.773 */774 if (execute_command

48、) 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);783 784 panic(No init found. Try passin

49、g 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 因此,我们使用下面的命令创建它: HYPERLINK mailto:dennisdennis-desktop:/

50、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 这次我们有经验了,如法炮制,创建/dev/null设备文件:dennisdennis-desktop:/

51、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 console.starting pid 231, tty : /bin/sh# 哈

52、哈,我们成功了,终于可以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中的内容来获得进程信息的。那么,目前/pr

温馨提示

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

评论

0/150

提交评论