
- 个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。
- 个人爱好: 编程,打篮球,计算机知识
- 个人名言:海不辞水,故能成其大;山不辞石,故能成其高。
- 个人主页:小李会科技的主页
目录
前言:
本文章介绍中国计算机发展和软硬件
1956年,周总理亲自主持制定的《十二年科学技术发展规划》 中 ,就把计算机列为发展科学技术的重点之一,并在1957年筹建中国第一个计算技术研究所。中国计算机事业的起步比美国晚了13年,但是经过毛泽东时代老一辈科学家的艰苦努力,中国与美国的差距不是某些人所歪曲的"被拉大了",而是缩小了。2002年8月10日,我国成功制造出首枚高性能通用CPU--龙芯一号。此后龙芯二号问世,龙芯三号也正在紧张的研制中。龙芯的诞生,打破了国外的长期技术垄断,结束了中国近二十年无"芯"的历史。
1956年3月,由闵乃大教授、胡世华教授、徐献瑜教授、张效祥教授、吴几康副研究员和北大的党政人员组成的代表团,参加了在莫斯科主办的"计算技术发展道路"国际会议。这次参会可以说是到前苏联"取经",为我国制定12年规划的计算机部分作技术准备。随后在制定的12年规划中确定中国要研制计算机,并批准中国科学院成立计算技术、半导体、电子学及自动化四个研究所。当时的计算技术研究所筹备处由中国科学院、总参三部、国防五院(七机部)、二机部十局(四机部)四个单位联合成立,北京大学、清华大学也相应成立了计算数学专业和计算机专业。为了迅速培养计算机专业人才,这三个方面联合举办了第一届计算机和第一届计算数学训练班。计算数学训练班的学生有幸听到了刚刚归国的国际控制论权威钱学森教授以及在美国有3~4年编程经验的董铁宝教授(他当时是国内唯一真正直接接触过计算机多年的学者)的讲课。
在前苏联专家的帮助下,中国科学院计算技术研究所,由七机部张梓昌高级工程师领衔研制的中国第一台数字电子计算机103机(定点32二进制位,每秒2500次)在1958年交付使用,骨干有董占球、王行刚等年轻人。随后,由总参张效祥教授领衔研制的中国第一台大型数字电子计算机104机(浮点40二进制位,每秒1万次)在1959年也交付使用,骨干有金怡濂、苏东庄、刘锡刚、姚锡珊、周锡令等。其中,磁心存储器由计算所副研究员范新弼和七机部黄玉珩高级工程师领导完成。在104机上建立的,由钟萃豪、董蕴美领导的中国第一个自行设计的编译系统是在1961年试验成功。
(1958-1964年)
我国从1957年在中科院计算所开始研制通用数字电子计算机,1958年8月1日该机可以表演短程序运行,标志着我国第一台电子数字计算机诞生。机器在738厂开始少量生产,命名为103型计算机(即DJS-1型)。1958年5月我国开始了第一台大型通用电子数字计算机(104机)研制。在研制104机同时,夏培肃院士领导的科研小组首次自行设计并于1960年4月研制成功一台小型通用电子数字计算机107机。1964年我国第一台自行设计的大型通用数字电子管计算机119机研制成功。
(1965-1972年)
1965年中科院计算所研制成功了我国第一台大型晶体管计算机:109乙机;对109乙机加以改进,两年后又推出109丙机,在我国两弹试制中发挥了重要作用,被用户誉为"功勋机"。华北计算所先后研制成功108机、108乙机(DJS-6)、121机(DJS-21)和320机(DJS-8),并在738厂等五家工厂生产。1965~1975年,738厂共生产320机等第二代产品380余台。哈军工(国防科大前身)于1965年2月成功推出了441B晶体管计算机并小批量生产了40多台。
(1973-80年代初)
1973年,北京大学与北京有线电厂等单位合作研制成功运算速度每秒100万次的大型通用计算机,1974年清华大学等单位联合设计,研制成功DJS-130小型计算机,以后又推DJS-140小型机,形成了100系列产品。与此同时,以华北计算所为主要基地,组织全国57个单位联合进行DJS-200系列计算机设计,同时也设计开发DJS-180系列超级小型机。70年代后期,电子部32所和国防科大分别研制成功655机和151机,速度都在百万次级。进入80年代,我国高速计算机,特别是向量计算机有新的发展。
和国外一样 ,我国第四代计算机研制也是从微机开始的。1980年初我国不少单位也开始采用Z80,X86和6502芯片研制微机。1983年12电子部六所研制成功与IBM PC机兼容的DJS-0520微机。10多年来我国微机产业走过了一段不平凡道路,现在以联想微机为代表的国产微机已占领一大半国内市场。
提到中国计算机,就不能不提起华罗庚教授,他是我国计算技术的奠基人和最主要的开拓者之一。华罗庚和中国的计算机事业早在1947~1948年,华罗庚在美国普林斯顿高级研究院任访问研究员时,就和冯·诺依曼(J.Von Neumann)、哥尔德斯坦(H.H.Goldstion)等人交往甚密。华罗庚在数学上的造诣和成就深受冯·诺依曼等人的赞赏。当时,冯·诺依曼正在设计世界上第一台存储程序的通用电子数字计算机。冯让华罗庚参观实验室,并常和他讨论有关学术问题。这时,华罗庚的心里已经开始勾画中国电子计算机事业的蓝图。
华罗庚教授1950年回国,1952年在全国大学院系调整时,他从清华大学电机系物色了闵乃大、夏培肃和王传英三位科研人员在他任所长的中国科学院数学所内建立了中国第一个电子计算机科研小组。1956年筹建中科院计算技术研究所时,华罗庚教授担任筹备委员会主任。
计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。主要分为五个部分:控制器,运算器,存储器,输入设备,输出设备。
计算机组成的任务是在指令集系统结构确定分配给硬件系统的功能和概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令集的各种功能和特性。这种联系包括各功能部件的内部和相互作用。
计算机组成要解决的问题是在所希望达到的性能和价格下,怎样最佳,最合理地把各个设备和部件组成成计算机,已实现所确定的ISA。计算机组成设计要确定的方面应包括:
(2)专用部件的设置:是否设置乘除法、浮点运算、字符处理、地址运算等专用部件,设置的数量与机器要达到的速度、价格及专用部件的使用频度等有关。
(3)各种操作对部件的共享程度:分时共享使用程度高,虽限制了速度,但价格便宜。设置部件多降低共享程度,因操作并行度提高,可提高速度,但价格也会提高。
(4)功能部件的并行度:是用顺序串行,还是用重叠、流水或分布式控制和处理。
(5)控制机构的组成方式:用硬联还是微程序控制,是单机处理还是多机或功能分布处理。
(6)缓冲和排队技术:部件间如何设置及设置多大容量的缓冲器来协调它们的速度差;用随机、先进先出、先进后出、优先级,还是循环方式来安排事件处理的顺序。
(7)预估、预判技术:为优化性能用什么原则预测未来行为。
(8)可靠性技术:用什么冗余和容错技术来提高可靠性。
1. 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
2. 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
3. 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
4. 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。
5. 输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。
计算机软件(ComputerSoftware)是指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐述性资料。程序必须装入机器内部才能工作,文档一般是给人看的,不一定装入机器。软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具有较高的总体效用,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。
(1)运行时,能够提供所要求功能和性能的指令或计算机程序集合。
(2)程序能够满意地处理信息的数据结构。
(3)描述程序功能需求以及程序如何操作和使用所要求的文档。
(1)表现形式不同硬件有形,有色,有味,看得见,摸得着,闻得到。而软件无形,无色,无味,看不见,摸不着,闻不到。软件大多存在人们的脑袋里或纸面上,它的正确与否,是好是坏,一直要到程序在机器上运行才能知道。这就给设计、生产和管理带来许多困难。
(2)生产方式不同软件是开发,是人的智力的高度发挥,不是传统意义上的硬件制造。尽管软件开发与硬件制造之间有许多共同点,但这两种活动是根本不同的。
(3)要求不同硬件产品允许有误差,而软件产品却不允许有误差。
(4)维护不同硬件是要用旧用坏的,在理论上,软件是不会用旧用坏的,但在实际上,软件也会变旧变坏。因为在软件的整个生存期中,一直处于改变维护状态。
计算机软件分为系统软件和应用软件,如果把计算机比喻为一个人的话,那么硬件就表示人的身躯。而软件则表示人的思想、灵魂。一台没有安装任何软件的计算机我们把它称之为"裸机"。
系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。(如Windows、Linux、Dos、Unix等操作系统都属于系统软件。)
应用软件(application software)是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。应用软件包是利用计算机解决某类问题而设计的程序的集合,供多用户使用。计算机软件分为系统软件和应用软件两大类。应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。 它可以拓宽计算机系统的应用领域,放大硬件的功能。(如Word、Excel、QQ等都属于应用软件)
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at
Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包
目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进
如何计算两个字符串之间的字符交集?例如(假设我们有一个名为String.intersection的方法):"abc".intersection("ab")=2"hello".intersection("hallo")=4好的,男孩女孩们,感谢你们的大量反馈。更多示例:"aaa".intersection("a")=1"foo".intersection("bar")=0"abc".intersection("bc")=2"abc".intersection("ac")=2"abba".intersection("aa")=2一些补充说明:维基百科定义intersection如下:Int
给定一个包含各种语言字符的UTF-8文件,我如何计算它包含的唯一字符的数量,同时排除选定数量的符号(例如:“!”、“@”、"#",".")从这个算起? 最佳答案 这是一个bash解决方案。:)bash$perl-CSD-ne'BEGIN{$s{$_}++forsplit//,q(!@#.)}$s{$_}++||$c++forsplit//;END{print"$c\n"}'*.utf8 关于python-如何计算文件中唯一字符的数量?,我们在StackOverflow上找到一个类似的问题