计算机从何而来?计算技术将向何处发展?
计算机的前生:机械计算工具的演进
![]()
算盘是计算机的起点,它其实是一台“机械式半自动化运算器”。打算盘的“口诀”其实就是它的编程语言,算盘珠就是它的存储器。
第二阶段是可以做四则运算的加法器、乘法器。1642年,法国数学家帕斯卡为了帮税务官父亲计税,发明了一个机械式的加法器;1673年,德国数学家莱布尼茨则发明了可做乘除法的乘法器。
计算机进阶到第三阶段,是可编程织布机。织布机跟计算有什么关系?织布工人在纸上画出图形,机器能读懂、绣到布上,这个过程就叫作编程。在这一进程中,1801年,杰卡德发明了首个可编程织布机——通过穿孔卡对织布机进行编程。今天织布的印花还是这个原理。
第四阶段是差分机。西方进入大航海时代,人们航行中在编制航海、天文用表时,需要大量的人工劳动。直到1837年,巴贝奇设计了差分机与分析机,虽然在工程上没有彻底实现,但已经可以完成非常复杂的计算,比如通过多项式逼近对数、指数和三角函数。
到了第五阶段,人类历史上第一次有了计算程序。1843年,世界上第一位程序员爱达——一位女性——设计了一个算法,用来计算伯努利数列的值。这是历史上第一个利用计算机进行运算的算法程序。
第六阶段,机械计算工具到了顶峰。二战期间,阿兰·图灵为了破译密码设计出“图灵甜点”解码机。这个解码机的特点是,有非常好的计算能力和适应性,因为德国设计的恩格玛密码机的密码一直在变。
现代计算机的诞生与应用
![]()
经过这六个阶段,至此机械式计算工具达到了工程技术积累的巅峰。但是,那时还没有出现“电子计算机”。即便是“图灵甜点”解码机,也只是一类专用的计算机,每一个功能都要专门制造。
直到出现了三位伟大学者——阿兰·图灵、冯·诺依曼、威廉姆·肖克利,他们的发明奠定了现代通用计算机工程科学的三大基石,才最终诞生了通用电子计算机。
除了发明了“图灵甜点”,图灵后来又提出了“图灵机”的设想,提出了能够自动执行程序的通用计算装置的科学原理,为现代计算机的发展奠定了基础。
图灵是个奇人。他曾在美国普林斯顿大学读博士,二战时期破译恩格玛密码,后来他还跟爱因斯坦是同事。他还是一位世界级的长跑运动员,参加过马拉松比赛。有一部电影名为《模仿游戏》,讲述了他的传奇人生。
1936年,图灵为了解决“数学可判定”问题,发明了图灵机——模拟人用纸笔计算的机器。根据图灵提出的图灵机模型,它主要由一条无限长的纸带、一个读写头和一些内部状态组成。纸带被分成一个个小方格,每个方格可以包含一种符号(如0或1)。读写头可以在纸带上移动,读取和写入符号,并根据当前状态和读取的符号来改变自己的内部状态和移动方向。图灵机可以模拟任何算法的过程,是一个理论上的计算模型,为现代计算机的发展奠定了基础。
冯·诺依曼首先提出了“存储程序”的概念和二进制原理,并为图灵机的实现提供了一个通用的体系结构——将计算机分为输入设备、存储器、运算器、输出设备4个部分。有了冯·诺依曼的结构,图灵机就从一个抽象的数学模型变成了工程师可以实现的一种结构,解决了现代计算机如何实现的问题。
1946年2月14日,人类历史上真正意义的第一台电子计算机——ENIAC在美国宾夕法尼亚大学诞生了。它使用电子真空管来执行数字和逻辑运算,使用穿孔卡片来输入数据和指令。ENIAC的出现标志着现代计算机的诞生,对人类社会的科技、经济和发展产生了深远的影响。
光有电子计算机还不行,人们还希望它的运算速度能够不停地变快。
肖克利被誉为“晶体管之父”,他与两位同事一起发明了晶体管。晶体管是能够实现计算机的数学基础布尔代数的开关器件,也是我们建造现代计算机之塔的“砖块”。它的发明为现代计算机的发展提供了更小、更快、更可靠的电子元件,取代了之前使用的真空管,使得计算机的体积和功耗大大降低,性能和可靠性大大提高。
在肖克利之后,杰克·基尔比又发明了集成电路。1958年,基尔比成功地创造出世界上第一个采用单一材料制成的集成电路,标志着微电子时代的开始,对全球电子工业的发展产生了深远的影响。现在我们最大的一颗芯片上,可以集成超过1000亿个晶体管,这就是微电子集成电路的功劳,让我们的计算机能够运行得越来越快。2000年,基尔比因集成电路的发明被授予诺贝尔物理学奖。
有了计算机,接下来就是应用的繁荣。全世界使用计算机的人们是依靠什么互联互通的?互联网。互联网让全世界任何一个人可以通过网络跟世界通信。互联网的发明离不开TCP/IP协议。TCP/IP协议是由罗伯特·卡恩和文森特·瑟夫共同发明的。其中,TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是该协议族中最核心的两个协议。他们的这项发明对互联网的发展产生了深远的影响,并最终成为了大部分因特网共同遵守的一种网络规则。
虽然可以基础通信,但英国计算机科学家蒂姆·伯纳斯-李在欧洲核子研究中心工作时,意识到科学家们之间共享信息的方式非常不便,因此开始着手设计一种新的信息管理系统,这就是万维网的前身。
伯纳斯-李设计的万维网系统包括三个核心组成部分:超文本标记语言(HTML)、超文本传输协议(HTTP)和统一资源定位符(URL)。HTML用于创建和格式化网页内容,HTTP用于在Web服务器和浏览器之间传输数据,而URL则为互联网上的每个资源提供了一个唯一的地址。
1990年,伯纳斯-李成功开发出第一个Web浏览器和Web服务器,使得用户能够在万维网上查看和发布信息。这一发明为互联网的普及和发展奠定了坚实的基础。从此,人类进入了数字文明的新时代。
中国计算科学家的历史贡献
![]()
在计算机领域,有三位中国科学家贡献很大。
第一位是我们中国计算机学科的创始人、被誉为“中国计算机之母”的夏培肃先生。她是我国第一台自行设计的通用电子计算机的发明人,还培养了一大批人从事计算事业。BBC专门撰写了一篇文章,纪念夏培肃先生。
第二位是中国工程院院士金怡濂先生。作为我国巨型计算机事业的开拓者之一,他在半个世纪的时间里,先后提出多种类型、各个时期居国内领先或国际先进水平的大型、巨型计算机系统的设计思想和技术方案,并组织科技人员共同刻苦攻关、予以实现。他是“神威”超级计算机系统的总设计师,使我国高性能计算机峰值运算速度从每秒10亿次跨越到每秒3000亿次以上。
第三位是我国两院院士、国家最高科学技术奖获得者王选先生。他是计算机汉字激光照排技术的创始人,被称为“汉字激光照排系统之父”。他主持研制成功的汉字信息处理与激光照排系统、方正彩色出版系统得到大规模应用,实现了我国出版印刷行业“告别铅与火,迈入光和电”的技术革命。
再提一下中国工程院院士李国杰先生。
曾经,有一座罩住我们的“玻璃房子”。20世纪80年代,我们国家在计算机超算方面还很落后,我们好不容易从美国买来一部超级计算机,美国人还用玻璃房子把机器罩在里面,并实施 24 小时全方位监控,而且连进出门的钥匙和启动密码也由美方掌控,中国人不允许进入玻璃房子。
这对中国的科学家而言是一个耻辱。李国杰院士回国后带领研发团队,研制了“曙光”机群系统,并逐步实现了高性能计算机的产业化。现在,我们无论是大学、研究所还是企业,都有最快的高性能计算机使用,就在于我们走通了高性能计算机产业化创新道路。
今天,我们有了自己的“玻璃房子”——在四川成都天府新区鹿溪智谷核心区有一个网红打卡地,那就是如科幻大片般的曙光“硅立方”的景观玻璃房。这里边装的高性能计算机,就是电影《流浪地球2》中依靠液冷散热的550W的原型。
未来计算技术的两个方向
![]()
计算技术的未来,有两个方向是人们比较关注的。
一是,到2035年,我们能不能造出Z级计算机?
Z级计算机中的Z,代表计算机运算速度达到每秒10的21次方次浮点运算。我们现在能达到E级计算,即10的18次方次。
高性能计算机提速的背后,有几个要解决的重大问题,比如“能耗墙”。怎么样降下来能耗,是世界级难题。现在,我们主要通过器件结构或工艺来提升能效,包括高密度的集成封装,当然,如果高温超导技术能够实现,超导技术的应用也会降低能耗。另外,还有“光子计算”,也有望降低能耗。
第二个方向,量子计算机。许多人看过电影《流浪地球2》后都在问,类似于550W或者“MOSS”能不能被制造出来?量子计算机主要是并行计算,所以它的速度、性能充满想象空间。
我认为要实现量子计算机,至少也需要6个步骤,但是现在我们的科学家们只知道前三个步骤该怎么做,后面三个步骤还没有头绪。第一步,人们已经做出来了“量子算盘”——用量子计算的原理对某一特定问题进行加速,比如谷歌公司做出来的量子计算机、中国科学技术大学研究团队做出来的“九章”,已经可以在量子采样算法上显示了“量子优越性”。至于第二步,“量子运算器”,就是要对一类科学问题能够进行求解。现在在这一步还存在技术挑战,比如量子存储要克服量子体系量子态可存储时间极短的问题,量子随机访存尚无实验实现的情况等等。
量子计算的第三步,领域专用的量子计算机,需要实用的量子算法、量子编程框架、量子编译优化、量子指令集、量子微体系结构、量子纠错码、底层物理芯片……我们希望在2050年前能完成这一步,构成一个完整的量子计算机的技术体系。当然,即便到了这一步,距离电影中的550C都还非常遥远,这需要更多的年轻人投身到这个领域来共同努力。今天,人类已经进入到了人—机—物三元融合的世界,未来的信息世界,也要靠大家一起来创造。
相关文章:
计算机从何而来?计算技术将向何处发展?
计算机的前生:机械计算工具的演进 算盘是计算机的起点,它其实是一台“机械式半自动化运算器”。打算盘的“口诀”其实就是它的编程语言,算盘珠就是它的存储器。 第二阶段是可以做四则运算的加法器、乘法器。1642年,法国数学家帕斯…...
浏览器的通信能力
浏览器的通信能力 用户代理 浏览器可以代替用户完成http请求,代替用户解析响应结果,所以我们称之为: 用户代理 user agent 在网络层面,对于前端开发者,必须要知道浏览器拥有的两大核心能力: 自动发出请…...
11. 9 构建生产级聊天对话记忆系统:从架构设计到性能优化的全链路指南
构建生产级聊天对话记忆系统:从架构设计到性能优化的全链路指南 关键词: 聊天对话记忆系统、多用户会话管理、LangChain生产部署、Redis记忆存储、高并发对话系统 一、服务级聊天记忆系统核心需求 多用户隔离:支持同时处理数千个独立对话持久化存储:对话历史不因服务重启丢…...
25.02.04 《CLR via C#》 笔记14
第二十一章 托管堆和垃圾回收 内存分配过程 CLR维护一个“下一次分配指针”(NextObjPtr),指向当前托管堆中第一个可用的内存地址 计算类型所需的字节数,加上对象开销(类型对象指针、同步块索引)所需字节数…...
半导体器件与物理篇5 mosfet及相关器件
认识mos二极管 MOS二极管是研究半导体表面特性最有用的器件之一。MOS二极管可作为存储电容器,并且是电荷耦合器件(CCD)的基本结构单元。 MOS二极管结构的重要参数包括:氧化层厚度d;施加于金属平板上的电压V(正偏压时V为正&#x…...
Hugging Face GGUF 模型可视化
Hugging Face GGUF 模型可视化 1. Finding GGUF files (检索 GGUF 模型)2. Viewer for metadata & tensors info (可视化 GGUF 模型)References 无知小儿,仙家雄霸天下,依附强者才是唯一的出路。否则天地虽大,也让你们无路可走࿰…...
PVE纵览-掌握 PVE USB 直通:让虚拟机与物理设备无缝连接
PVE纵览-掌握 PVE USB 直通:让虚拟机与物理设备无缝连接 文章目录 PVE纵览-掌握 PVE USB 直通:让虚拟机与物理设备无缝连接摘要前提条件步骤一:识别 USB 设备步骤二:编辑虚拟机配置步骤三:重启虚拟机注意事项其他配置选…...
关于系统重构实践的一些思考与总结
文章目录 一、前言二、系统重构的范式1.明确目标和背景2.兼容屏蔽对上层的影响3.设计灰度迁移方案3.1 灰度策略3.2 灰度过程设计3.2.1 case1 业务逻辑变更3.2.2 case2 底层数据变更(数据平滑迁移)3.2.3 case3 在途新旧流程兼容3.2.4 case4 接口变更3.2.5…...
DeepSeek:智能时代的AI利器及其应用前景
1.DeepSeek是什么? DeepSeek是一款基于人工智能技术的工具,旨在帮助用户高效处理和分析数据、生成内容、优化工作流程等。无论是数据分析、自然语言处理,还是自动化任务,DeepSeek都能提供强大的支持。其核心技术涵盖了机器学习、深…...
超详细UE4(虚幻4)第一人称射击(FPS)游戏制作教程
超详细UE4(虚幻4)第一人称射击(FPS)游戏制作教程 引言 在游戏开发领域,第一人称射击(FPS)游戏一直是最受欢迎的类型之一。从经典的《反恐精英》(CS)到现代的《使命召唤》(Call of Duty),FPS游戏凭借其紧张刺激的游戏体验和高度沉浸感,吸引了无数玩家。如果你是一…...
电商项目高级篇09-检索服务
电商项目高级篇09-检索服务 1、环境搭建1.1、前端静态文件准备1.2、search服务引入模版引擎1.3、index.html页面复制到templates文件夹下1.4、模仿product项目,引入名称空间1.5、动静分离,静态资源路径位置替换1.6、将1.1的静态资源放到nginx目录下1.7、…...
【网络协议大花园】应用层 http协议的使用小技巧,用好了都不用加班,效率翻两倍(下篇)
本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…...
5 前端系统开发:Vue2、Vue3框架(中):Vue前端工程化组件式开发
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言五、前端工程化(使用Vue创建一个完整的企业级前端项目)1 Vue脚手架(Vue-cli)环境准备(1)…...
【Leetcode刷题记录】1456. 定长子串中元音的最大数目---定长滑动窗口即解题思路总结
1456. 定长子串中元音的最大数目 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 这道题的暴力求解的思路是通过遍历字符串 s 的每一个长度为 k 的子串…...
Rust中使用ORM框架diesel报错问题
1 起初环境没有问题:在Rust开发的时候起初使用的是mingw64平台加stable-x86_64-pc-windows-gnu编译链,当使用到diesel时会报错,如下: x86_64-w64-mingw32/bin/ld.exe: cannot find -lmysql具体信息很长这是主要信息是rust找不到链…...
Java 数据库连接池:HikariCP 与 Druid 的对比
Java 数据库连接池:HikariCP 与 Druid 的对比 数据库连接池:HikariCP 1. 卓越的性能表现 HikariCP 在数据库连接池领域以其卓越的性能脱颖而出。 其字节码经过精心优化,减少了不必要的开销,使得连接获取和释放的速度极快。 在…...
04树 + 堆 + 优先队列 + 图(D1_树(D7_B+树(B+)))
目录 一、基本介绍 二、重要概念 非叶节点 叶节点 三、阶数 四、基本操作 等值查询(query) 范围查询(rangeQuery) 更新(update) 插入(insert) 删除(remove) 五、知识小结 一、基本介绍 B树是一种树数据结构,通常用于数据库和操作系统的文件系统中。 B树…...
MATLAB实现单层竞争神经网络数据分类
一.单层竞争神经网络介绍 单层竞争神经网络(Single-Layer Competitive Neural Network)是一种基于竞争学习的神经网络模型,主要用于数据分类和模式识别。其核心思想是通过神经元之间的竞争机制,使得网络能够自动学习输入数据的特…...
AITables首发:基于AI全自动推理设计数据库,国内首创,跑5分钟相当于架构师设计一周!
AITables仅运行5分钟,整个系统的表都设计好了! 随着AI大模型技术的开源普及和平民化,现如今任何一个人都有可能成为超级个体。但随着企业级业务的膨胀和业务挑战增多,我们势必要跟上AI发展的节奏,让AI帮我们设计软件。…...
Go语言中结构体字面量
结构体字面量(Struct Literal)是在 Go 语言中用于创建和初始化结构体实例的一种语法。它允许你在声明结构体变量的同时,直接为其字段赋值。结构体字面量提供了一种简洁、直观的方式来创建结构体对象。 结构体字面量有两种主要形式࿱…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...
react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...
Netty自定义协议解析
目录 自定义协议设计 实现消息解码器 实现消息编码器 自定义消息对象 配置ChannelPipeline Netty提供了强大的编解码器抽象基类,这些基类能够帮助开发者快速实现自定义协议的解析。 自定义协议设计 在实现自定义协议解析之前,需要明确协议的具体格式。例如,一个简单的…...
