软件与硬件是怎么结合的

Python017

软件与硬件是怎么结合的,第1张

Hardware 硬件

信息处理系统的所有或部分物理组件,如计算机或外部设备等

电脑里除了软件都是硬件

拿人体做比喻,人体就是硬件,思维是软件。大脑发出一个命令,你才能做相应的动作

简单的说,硬件就是实物(例如鼠标,键盘,显示,器主机等),看得见摸得着的东西!软件就是虚物(例如程序,系统等),看得见摸不着的东西!

电脑计算机系统:

软件:

应用软件:应用程序包,面向问题的程序设计语言等

系统软件:操作系统,语言编译解释系统服务性程序

硬件:

主机:中央处理装置(运算器,控制器),内存储器

外部设备:输入设备,输出设备,外存储器,模数转换器`数模转换器,数据终端等

计算机的硬件是计算机系统中各种设备的总称。计算机的硬件应包括5个基本部分,即运算器、控制器、存储器、输入设备、输出设备,上述各基本部件的功能各异。运算器应能进行加、减、乘、除等基本运算。存储器不仅能存放数据,而且也能存放指令,计算机应能区分是数据还是指令。控制器应能自动执行指令。操作人员可以通过输人、输出设备与主机进行通信。计算机内部采用二进制来表示指令和数据。操作人员将编好的程序和原始数据送人主存储器中,然后启动计算机工作,计算机应在不需干预的情况下启动完成逐条取出指令和执行指令的任务。

什么是软件?

电脑的外观、主机内的元件都是看得见的东西,一般称它们为电脑的「硬件」,那么电脑的「软件」是什么呢?即使打开主机,也看不到软件在哪里。既看不见也摸不到,听起来好像很抽象,但是,如果没有软件,就像植物人一样,空有躯体却无法行动。 当你启动电脑时,电脑会执行开机程序,并且启动系统」,然后你会启动「Word」程序,并且打开「文件」来编辑文件,或是使用「Excel」来制作报表,和使用「IE」来上网等等,以上所提到的操作系统、打开的程序和文件,都属于电脑的「软件」。

103回答者: 君特·格拉斯 - 九级 2005-10-22 13:21

我来评论>>

提问者对于答案的评价:具体,明了,谢谢!

软件

编辑本段名称诠释

1、软件[software](中国大陆及香港用语,台湾作软体)是一系列按照特定顺序组织的计算机数据和指令的集合。 2、软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。 3、泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。

编辑本段类型划分

一般来讲软件被划分为系统软件、应用软件,其中系统软件包括操作系统和支撑软件(微软近期又发布嵌入式系统,即硬件级的软件,是电脑及其它设备运算速度更快更节能) 软件的真正含义 程序设计的最终结果是软件。 软件界面

软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具有较高的总体效用,在设计计算机系统时,必须全局考虑软件与硬件的结合,以及用户的要求和软件的要求。 1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。 2.程序能够满意地处理信息的数据结构。 3.描述程序功能需求以及程序如何操作和使用所要求的文档。

系统软件

系统软件为计算机使用提供最基本的功能,可分为操作系统和支撑软件,其中操作系统是最基本的软件; 系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。 1.操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理 触摸屏查询软件

与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。★操作系统分为BSD 、DOS 、Linux 、Mac OS、OS/2 、QNX 、Unix、Windows等。 2.支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境(SDE)。它主要包括环境数据库、各种接口软件和工具组。著名的软件开发环境有IBM公司的Web Sphere,微软公司的等。★包括一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。

应用软件

但是系统软件并不针对某一特定应用领域。而应用软件则相反,不同的应用软件根据用户和所服务的领域提供不同的功能。 应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。 ★较常见的应用软件有: 行业管理软件 :如电脑行业管理软件开龙IT200 、商软ERP等; 文字处理软件 :如Office、 openoffice、 WPS、永中office等 ; 信息管理软件 :如Assces数据库、mysql数据库等; 辅助设计软件 :如AutoCAD、caxa、Photoshop 、SolidWorks、CATIA,pro/e、UG等; 媒体播放软件:如暴风影音、QQ影音、kmplayer、豪杰超级解霸、Windows Media Player、RealPlayer等; 系统优化软件:如windows优化大师、超级兔子魔法设置等; 实时控制软件 :如KingACT 教育与娱乐软件 :如考试宝典、游戏; 图形图像软件 :coreldraw ,painter,GIMP(linux下),3DS MAX,MAYA,softimage|xsi,lightwave,cineme 4d,Houdini ,ADOBE公司的:Photoshop、Illustrator、Acrobat、Reader、Golive、Indesign、Creative Suite、Pagemaker、After Effects、Premiere、Font Folio、Adobe Framemaker、Flex、InCopy、Audition、SoundBooth、Captivate、Dreamweaver、Flash、Fireworks、LiveCycle Enterprise Suite (ES); 数学软件:Mathematica,Maple,Matlab,MathCad; 统计软件:SAS,SPSS 后期合成软件 :after effects,combustion,digital fusion,shake,flame ; 杀毒软件 :如:国外品牌,诺顿 、卡巴斯基、Webroot Antivirus、G DATA AntiVirus、F-Secure Anti-Virus、麦克菲(McAfee®)、nod32、tiesaimenke、赛门铁克、大蜘蛛、Trend Micro AntiVirus、驱逐舰、Vipre Antivirus + Antispyware 、AVG Anti-Virus、ParetoLogic Anti-Virus PLUS、小红伞、比特梵德等; 国内品牌,金山毒霸,江民,瑞星,360、可牛、东方微点、安博士等; 通信协作软件:电子邮件软件,传真软件,群件软件,通信软件,远程控制软件; 管理效率软件:个人信息管理软件,财务软件,ocr软件,文档软件,项目管理软件。

手机软件

顾名思义,所谓手机软件就是可以在安装在手机上的软件,完善原始系统的不足与个性化。随着科技的发展,现在手机的功能也越来越多,越来越强大。不是像过去的那么简单死板,目前发展到了可以和掌电脑相媲美.手机软件与电脑一样,下载手机软件时还要考虑你购买这一款手机所安装的系统来决定要下相对应的软件.目前手机主流系统有以下:Symbian、Linux、Research in Motion、Windows Mobile.但是在2007年,苹果推出了运行自己软件的iPhone;Google宣布将在明年推出Android手机操作系统平台。二种新操作系统的进入改变了一些手机运营商的计划,为最终用户造成了一些麻烦,给应用软件开发人员带来了更大的挑战,表明了手机产业的一些基本变化。 常用手机软件:GPRS Helper、UCWEB、移动QQ、GGLIVE

编辑本段使用许可

不同的软件一般都有对应的软件授权,软件的用户必须在同意所使用软件的许可证的情况下才能够合法的使用软件。从另一方面来讲,特定软件的许可条款也不能够与法律相抵触。 依据许可方式的不同,大致可将软件区分为几类: 专属软件:此类授权通常不允许用户随意的复制、研究、修改或散布该软件。违反此类授权通常会有严重的法律责任。传统的商业软件公司会采用此类授权,例如微软的 Windows 和办公软件。专属软件的源码通常被公司视为私有财产而予以严密的保护。 自由软件:此类授权正好与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其它限制。以 Linux、Firefox 和 OpenOffice 可做为此类软件的代表。 共享软件:通常可免费的取得并使用其试用版,但在功能或使用期间上受到限制。开发者会鼓励用户付费以取得功能完整的商业版本。 免费软件:可免费取得和转载,但并不提供源码,也无法修改。 公共软件:原作者已放弃权利,著作权过期,或作者已经不可考究的软件。使用上无任何限制。

编辑本段软件开发

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件:具有一定功能的各种电脑程序,称为软件。

编辑本段主流的软件开发语言介绍

Java

作为跨平台的语言,可以运行在Windows和Unix/Linux下面,长期成为用户的首选。自JDK6.0以来,整体性能得到了极大的提高,市场使用率超过20%。感觉已经达到了其鼎盛时期了,不知道后面能维持多长时间。

C/C++

以上2个作为传统的语言,一直在效率第一的领域发挥着极大的影响力。像Java这类的语言,其核心都是用C/C++写的。在高并发和实时处理,工控等领域更是首选。

VB

微软的看家法宝,实在是太好用了。

php

同样是跨平台的脚本语言,在网站编程上成为了大家的首选,支持PHP的主机非常便宜,PHP+Linux+MySQL+Apache的组合简单有效。

Perl

脚本语言的先驱,其优秀的文本处理能力,特别是正则表达式,成为了以后许多基于网站开发语言(比如php,java,C#)的这方面的基础。

PyThon

是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。 这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。 目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

C#

是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了 Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角

Javascript

Javascript是一种由Netscape的 LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于 软件编程排行榜

网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能

Ruby

一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言,由日本人松本行弘(まつもとゆきひろ,英译:Yukihiro Matsumoto,外号matz)开发,遵守GPL协议和Ruby License。Ruby的作者认为Ruby >(Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的编程语言 数据来源于2008年7月的排行榜。

Fortran

在科学计算软件领域,Fortran曾经是最主要的编程语言。比较有代表性的有Fortran 77、Watcom Fortran、NDP Fortran等。

编辑本段软件工程师

一般指从事软件开发职业的人。软件工程师10余年来一直占据高薪职业排行榜的前列,作为高科技行业的代表,技术含量很高。职位的争夺也异常激烈。软件开发是一个系统的过程,需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序。软件开发工程师在整个过程中扮演着非常重要的角色,主要从事根据需求开发项目软件工作。

编辑本段法律保护

计算机软件作为一种知识产品,其要获得法律保护,必须具备以下条件: (一)原创性。即软件应该是开发者独立设计、独立编制的编码组合。 (二)可感知性。受保护的软件须固定在某种有形物体上,通过客观手段表达出来并为人们所知悉。 (三)可再现性。即把软件转载在有形物体上的可能性。

编辑本段著作权归属

根据《计算机软件保护条例》第10条的规定,计算机软件著作权归属软件开发者。因此,确定计算机著作权归属的一般原则是“谁开发谁享有著作权”。软件开发者指实际组织进行开发工作,提供工作条件完成软件开发,并对软件承担责任的法人或者非法人单位,以及依靠自己具有的条件完成软件开发,并对软件承担责任的公民。 我国法律除规定了上述一般原则外,《计算机软件保护条例》自第11条至第14条还规定了软件著作权归属的几种特殊情况: (一)合作开发。合作开发者对软件著作权的享有和行使以事前的局面协议为根据,如无书面协议,其著作权由各合作开发者共同享有。合作开发的软件可以分割使用的,开发者对各自开发的部分可以单独享有著作权,但行使著作权时不得扩展到合作开发的软件整体的著作权。 (二)委托开发。受他人委托开发的软件,其著作权的归属由委托者与受托者签订书面协议约定,如无书面协议或者在协议中未明确约定的,其著作权属于受委托者。 (三)指令开发。为完成上级单位或政府部门下达的任务而开发的软件,著作权的归属由项目任务书或者合同规定;如项目任务书或者合同中未作明确规定,软件著作权属于接受任务的单位。 (四)职务开发。公民在单位任职期间所开发的软件,如是执行本职工作的结果,即针对本职工作中明确指事实上的开发目标所开发的,或者是从事本职工作活动所预见的结果或者自然的结果则该软件的著作权属于该单位。 (五)非职务开发。公民所开发的软件如不是执行本职工作的结果,并与开发者在单位中从事的工作内容无直接联系,且又未使用单位的物质技术条件,则该软件的著作权属于开发者自己。

编辑本段软件载体

软件的载体是 光盘 VCD DVD U盘 软盘。 光盘是通过激光雕刻在VCD或者dvd上的。

编辑本段开发流程

软件开发流程即Software development process。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 1 相关系统分析员和用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。 3 系统分析员和用户再次确认需求。 4 系统分析员根据确认的需求文档所例用的界面和功能需求,用迭代的方式对每个界面或功能做系统的概要设计。 5 系统分析员把写好的概要设计文档给程序员,程序员根据所例出的功能一个一个的编写。 6 测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能,然后验收。

编辑本段研发困境

2008年以来美国金融危机席卷全球,逐步从虚拟经济向实体经济蔓延,对全球软件产业带来明显冲击,主要表现为: 一是市场需求大幅减弱。IDC、iSuppli、Gartner等市场咨询机构调查显示,2008年四季度全球IT支出增幅比原定下降2-3个百分点;美国40%以上的大公司下调了2009年的IT支出,其中金融领域IT支出降幅达30%以上。日本IT外包市场需求下降10%以上,2008年四季度本是我软件外包企业与日本客户续签合同的时间,但企业反映续约定单很少。 二是大公司业绩普遍下滑。甲骨文第二财季(截至2008年11月30日)软件收入和利润分别下降3%、1%,第三财季业绩将创新历史新低。SAP公司2008年二、三季度利润分别下滑9%、5%,全年下滑5%以上。思科2008年三季度营业收入为三年来最低水平,四季度将下降10%。微软尽管前三季度业绩较好,但分析师预计其将在新一财季发出营收预警。 三是对部分外向型国家影响明显。印度、爱尔兰等依赖软件外包出口的国家表现尤为突出。以印度为例,由于其软件外包60%来自美国市场,40%来自金融领域,遭受冲击十分明显。据印度软件与信息服务协会预计,2008年印度软件及服务业收入增速将下降30%以上,利润率将下滑5-6个百分点。Infosys公司预计至2009年3月31日的财年收入为47.5亿美元,比预期目标下降了5%;塔塔公司2008年利润增速为5%不到,远远低于近年来30%的平均水平。

编辑本段在线软件

在线软件即指软件供应商提供软件件在线服务(SaaS)。SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),theapplication service provider(ASP,应用服务提供商),hostedsoftware(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。在这种模式下,客户不再象传统模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务,享有软件使用权和不断升级,这是网络应用最具效益的营运模式。市场上目前比较成熟的在线软件网站包括金蝶友商网、用友伟库网、阿里软件。

本文在Windows7下测试成功。

安装和设置Git

下载Git for

Windows,采用默认安装,安装完成后就可以在本地使用Git了。

但要将内容放到Github上,必须先在Github网站上注册个账户,然后在本机使用Git创建SSH Key。操作如下:

在Git Bash上输入命令:

ssh-keygen -C "[email protected]" -t rsa

Note: “[email protected]”需要更换成你在Github上注册的Email地址或者是Username

这样会在用户目录(C:\Users\用户名)下产生一个.ssh文件夹,里面为对应的SSH

Keys,其中id_rsa.pub是Github需要的SSH公钥文件。

到c:\Users\用户名\.ssh\目录找到id_rsa.pub(可能位置不一定对,但是确认是以.pub结尾的文件),并用记事本打开复制全部内容。

Note:建议私钥公钥的名称最好写成"id_rsa",这样连接Github的时候会找这个文件,如果文件名已定,之后改名也行。

在github网站选择“Account Settings”>>“SSH Public Keys”>>“Add another

public key”,将刚才复制的内容粘贴到key文本框内。

这样就可以直接使用Git和GitHub了。

Note:建议在Git Bash中输入“ssh -v [email protected]”测试能够正常连接github

安装Ruby环境

下载RubyInstaller和DevKit。

因为Octopress需要的Ruby版本为1.9.2,所以选rubyinstaller-1.9.2-p290.exe,DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe。

先安装RubyInstaller,然后解压缩DevKit(路径中不能有中文)。

在“Start Command Prompt with Ruby”命令行中进入DevKit解压缩的目录,然后运行以下命令:

ruby dk.rb init

ruby dk.rb install

gem install rdiscount --platform=ruby

如果安装成功,就可以使用一些Ruby的工具了,也为后面搭建博客提供了基础环境。

安装Octopress

先通过Git从Github上克隆一份Octopress(在Git Bash上输入命令)

git clone git://github.com/imathis/octopress.git octopress

然后安装一些依赖的工具(后面都是在Start Command Prompt with Ruby中输入)

cd octopress

ruby --version # Should report Ruby 1.9.2

gem install bundler

bundle install

安装Octopress默认的Theme

rake install

配置Octopress

将octopress的文件夹下的_config.yml的编码改成UTF-8:

保存(或另存为)时选择编码格式为UTF-8

修改_config.yml,批改url、title、subtitle、author等等。

到Ruby的安装目次\lib\ruby\gems\1.9.1\gems\jekyll-0.11.2\lib\jekyll\找到convertible.rb这个文件,批改self.content

= File.read(File.join(base, name))为self.content = File.read(File.join(base,

name), :encoding =>"utf-8")。

写博文

最简单的方式:复制octopress\source\_posts下某个文件,例如2012-07-30-the-first-post.markdown,修改文件名和文件中的内容

或者,命令行中输入rake

new_post["title"],会创建一个新的Post,新文件在source/_post下,文件名如下面的格式:2012-07-31-title.markdown。该文件可以直接打开修改。

写文章时,可以使用Markdown和Octopress

Plugins等工具对内容进行格式排版。

预览效果

在修改设置或者写完文章后,想看看具体效果,可以通过如下命令来完成:

rake generate

rake preview

将博客部署到Github上

在预览的效果符合自己的预期后,就可以通过如下命令将内容部署到Github上了。

如果是第一次部署,需要在Github上创建一个username.github.com的repository

在github网站选择“Create a New Repo”,如图

填写对应的内容即可

note:Repository

name填写username.github.com,username一定要和github的username一致,建好的博客代表的是你这个github账户的主页即page

配置octopress与github的连接:

进入Octopress目录:

rake setup_github_pages

按照提示填入你的github项目网址,比如:

[email protected]:Username/yourname.github.com.git

note:可以按照上面的修改,也可以在github的项目页中找地址

分发到github上:

rake deploy

第一次运行时,会询问是否建立对github的授权,输入:yes。然后将站点更新的内容推送到github上。

补充一点:

最后的但并不是最重要的,我们需要将修改的日志同步到github上,因此下面的3个命令也是必须的。

git status

git add .

git commit -m 'your message'

git push origin source

大功告成!

PHP

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。

C

语言是一种面向过程的计算机程序设计语言,最初为unix而生。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。

Java

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

Ruby

Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java 平台)、IronRuby(.NET 平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。