- 博客(143)
- 资源 (43)
- 收藏
- 关注
原创 你好,《01改变世界》
2022年10月,拙作《01改变世界》正式出版,分上下两册。上册《01改变世界:计算机发展史趣谈》纵向追溯史上各代计算工具及计算思维,下册《01改变世界:计算机原理趣谈》横向解剖现代计算机实现原理。书刚问世,从第一个字落笔算起,却已七年有余,前前后后投入了不少精力,算得上是件人生大事,趁此当口记录些碎碎念,聊作纪念。成书之路那是2015年的初夏,研二在读,学了近六年计算机的我翻彻干...
2022-11-12 21:40:07 486
原创 Rust 各版源码及工具链下载地址
版本源码工具链1.34.2gz / xz2019-05-14 / x861.35.0gz / xz2019-05-23 / x861.36.0gz / xz2019-07-04 / x861.37.0gz / xz2019-08-15 / x861.38.0gz / xz2019-09-26 / ...
2020-10-31 15:59:22 1051
原创 MCJIT 设计与实现
本文是对LLVM 7.0.1文档《MCJIT Design and Implementation》的选择性意译,并在关键处附上相应源码。引言本文档描述MCJIT执行引擎与RuntimeDyld组件的内部过程。这是一份层次比较高的概述,主要展示代码生成与动态链接的流程以及过程中对象之间的交互。引擎创建多数情况下,我们使用EngineBuilder来创建MCJIT执行引擎的实例。EngineB...
2020-10-23 16:36:58 714
原创 Cargo 私有仓库部署
Step 1:服务端创建Git仓库私有仓库的crates目录使用Git进行版本管理:$ mkdir mycrates-io$ cd mycrates-io$ git init$ cd ..$ git clone --bare mycrates-io mycrates-io.gitStep 2:服务端部署Alexandrie服务Alexandrie是Rust语言编写的私有仓库管理服务...
2020-09-15 10:03:27 1678
原创 Erlang/OTP 源码初调研
Erlang是一门适用于开发大规模可扩展实时软件系统的语言,主打并发和分布式编程,在电信、银行、电商、即时通信等领域均有应用案例。当前版本:OTP 23.0 [1]支持alpha、arm、powerpc、mips、aarch64、x86_64等主流架构。三方依赖GNU makegcc or clangPerl 5GNU m4(可在./configure时使用--disable-hi...
2020-08-27 16:50:54 397
原创 Rust 1.34.2 contig.toml 选项梳理
# Sample TOML configuration file for building Rust.## To configure rustbuild, copy this file to the directory from which you will be# running the build, and name it config.toml.## All options are...
2020-08-14 14:38:22 2334
原创 LLVM Compiler-RT
版本:LLVM 7.0.1LLVM中的Compiler-RT相当于GCC中的libgcc,为目标平台提供其硬件不支持的低级功能的优化实现。Compiler-RT(RT指运行时)项目用于为硬件不支持的低级功能提供特定于目标的支持。例如,32位目标通常缺少支持64位除法的指令。Compiler-RT通过提供特定于目标并经过优化的功能来解决这个问题,该功能在使用32位指令的同时实现了64位除法...
2020-07-17 14:43:08 2701
原创 飞速发展的电子计算时代
- 1 -电子时期,计算机的样子终于开始向我们熟悉的模样靠拢,它从图灵那儿取得灵魂,从冯·诺依曼手上拿到骨架,并在后继者的不断努力下变得血肉丰满。本章专注于电子计算机最核心的部分,但这一时期还爆发出太多太多令人目不暇接的相关技术,是它们逼出了计算机的全部潜能,探索着0和1的一切可能性。操作系统、编程语言和网络的出现,为各种类型的应用软件搭好舞台;软件对电信号的层层封装,给软件本身带来爆发式的成...
2020-07-03 12:36:50 318
原创 集成电路:芯片时代的到来
研制历程1952年,实用的晶体管问世不久,电子行业还盛行电子管之时,一家为石油行业提供地震勘探服务的公司以极其长远的眼光向贝尔实验室买下了专利许可,并斥资数百万美元押注晶体管市场,而它当时的年利润仅有90万,这无疑是一场没有后路的跨界豪赌。它就是如今的半导体巨头——德州仪器。就在人们还对晶体管抱有迟疑态度时,德州仪器早已建成强大的晶体管生产线。1954年10月,其首款晶体管收音机上市。当时美国...
2020-07-02 13:44:54 813
原创 Rust安装
版本:1.34.2源码编译安装环境准备官方要求具备的环境:g++ 5.1 or later or clang++ 3.5 or laterpython 2.7 (but not 3.x)GNU make 3.81 or latercmake 3.4.3 or latercurlgitssl which comes in libssl-dev or ...
2020-03-23 13:00:41 1435
原创 AntiHash 1.1.0:新增文件夹支持
AntiHash是一款可以秒改文件哈希值的Windows软件,用于突破网盘分享限制。欢迎订阅《逸之的程序小库》专题,软件的版本更新及各版的使用说明均收录其中。这是发布之后的第一次升级,主要增加了对文件夹的支持,如果你将某个文件夹拖入,里面的所有文件,包括子文件夹、孙文件夹、曾孙文件夹……中的所有文件都将一齐罗列出来,方便懒人批量操作。比如当我把C盘...
2020-02-12 22:59:12 795 2
原创 算盘知多少
本文刊载于《数学大王》2019年第9期算盘模型/S7在学习和生活中,我们时常会遇到复杂的数学问题,此时,借助电子计算器就可以很快得到答案。但在没有计算器的古代,我们的祖先该怎么办呢?不用担心,他们也有一款神器——算盘。构造算盘看起来「相貌平平」,长方形的木框里并排着一串串的木珠[1],像极了一盒冰糖葫芦。中间的横梁把每串珠子分成「上二下五」的两部分,下面的珠子...
2020-02-03 16:48:40 1363
原创 第一批冯·诺依曼计算机
SSEC:第一台具有存储程序特点的计算机第一台涉足存储程序的计算机是由IBM独立于ENIAC和EDVAC完成的。还记得那台让IBM与哈佛结下梁子的Harvard Mark I吗?就在建成它的同一年,没能如愿提高公司形象的IBM立马豪掷100万美元,启动了自己的独立项目SSEC——顺序可选电子计算器(Selective Sequence Electronic Calculator)...
2020-01-30 15:02:21 4835
原创 简粉下载 2.3.0:可以下载含LaTeX公式的文章了
简粉下载是一款可以将简书上的文章保存为HTML文件的Windows软件,图文排版与简书保持一致,为文章(包括插图)的离线收藏和备份提供一种选择。欢迎订阅《逸之的程序小库》专题,软件的版本更新及各版的使用说明均收录其中。前阵子有几位简友反映,简粉下载总是报「文章不存在」,我一试,还真是。简书又双叒叕调整页面结构了!拖了好几个月没有修复,让大家久...
2020-01-29 19:12:31 252
原创 冯·诺依曼结构:现代计算机的诞生
从存储程序到冯·诺依曼结构机电时期,人们使用穿孔卡片或穿孔带编制程序,由于计算机的运算速度受限于机械动作,输入模块有充分的时间读取穿孔介质上的指令信息。而到了电子时期,使用穿孔输入就远远跟不上电子运算的节奏了,因此,人们便利用旋钮、开关和接插线的不同位置来表示程序,虽然消除了控制与运算之间的速度差距,却使编程成为一件非常复杂的难事。在ENIAC上设置一个实用程序,往往需要几个星期...
2019-11-24 10:54:01 3026
原创 ENIAC:第一台通用电子计算机
研制背景计算,是现代化武器的灵魂。一颗看似做着简单的自由落体运动的炮弹,其实在出发前就被设定好了精确的飞行轨道。弹道的计算十分复杂,发射速度和角度的确定不仅要考虑炮弹本身的类型和炸药特性,还要考虑风向、风速、气压、气温、湿度和当地重力加速度等环境因素,作战时在瞬间完成这些因子的综合分析显然不是人力所能及的。因此,科学家会在使用前为炮手准备好一份弹道表,炮手对照表中参数操作火炮,...
2019-11-22 21:44:20 9176 1
原创 巨人机:第一台可编程电子计算机
ABC之后,历史仍未安排ENIAC出场。1943年,电子时期的第2个重要角色诞生在图灵所处的布莱切利。研制背景1941年6月,意识到谜机可能已被破解的德军启用了一种复杂度更高的加密系统,并且这一次英国没能拿到相应的机器,布莱切利的密码学们要和一个完全未知的强大敌人抗争。在听闻德国人用一种海鱼的名字称呼这套系统后,布莱切利也给它起了个绰号——“金枪鱼”。1941年8月,“金枪鱼...
2019-11-21 20:55:27 2441
原创 ABC:第一台电子计算机
研制背景大约是1934年的某一天,美国爱荷华州立大学数学和物理专业的一位助理教授正摩拳擦掌,誓要改造学校租用的一台IBM制表机,使它成为更强大的计算机器,并立刻动起手来。这一举动令IBM的售货员大为紧张,毕竟学校只是租赁,并没有把机器买下来,赶紧写信叫停了他的“鲁莽”行为,并要求把已经改动的地方恢复原样。这位助理教授名叫约翰·阿塔纳索夫(John Vincent Atanaso...
2019-11-20 19:35:35 3747
原创 电子管发展史
电子管的诞生19世纪下半叶,先后有几位科学家发现了通电的金属导体在加热后会出现电量损失的现象。1983年,正在改进灯泡的托马斯·阿尔瓦·爱迪生(Thomas Alva Edison)也发现了这一现象,为了减缓灯丝在高温下过快“蒸发”,他在灯泡中加入了不与灯丝接触的金属片,虽然并没有解决灯丝的“蒸发”问题,却意外地用电流表检测出了金属片中的微弱电流。这在当时是匪夷所思的,难不成电流...
2019-11-19 21:44:12 4540 7
原创 图灵机:计算机世界的理论基石
有个古老而经典的逻辑游戏:如果一个人说“我正在说谎”,那么他到底在不在说谎呢?如果他不在说谎,那么“我正在说谎”这句话就是真的;如果他在说谎,那么“我正在说谎”这句话就是假的。无论从哪个方向推演,得到的都是自相矛盾的结论,我们无从判定他在不在说谎。这就是公元前4世纪,由哲学家欧布里德(Eubulides)提出的著名的说谎者悖论。与之类似的,还有伯特兰·罗素(Bertrand R...
2019-11-18 21:33:15 1368
原创 蠢蠢欲动的机电计算时代
- 1 -机电时期是机械与电子之间一段狭小的过渡时期,时间虽短,却取得了质跃式的显著成就。这一时期的机器不再局限于单纯的数学运算,开始具备更丰富的功能。它们有着五花八门的构造,并在专用和通用之间来回游走,却都不约而同渐渐朝着现代计算机的模样靠拢。随着穿孔时代的开启,“新秀”二进制开始挑战十进制的“权威”,我们在祖思机、贝尔机和哈佛机上一步步领略过它的魅力。二进制在计算中的应用...
2019-11-17 15:03:22 252
原创 哈佛机:体验一把穿孔纸带上的编程
稍晚些时候,踏足机电计算领域的还有哈佛大学。当时,一名在校的物理学博士生——霍华德·艾肯(Howard Hathaway Aiken),和当年的祖思一样,被手头繁复的计算困扰着,一心想建台计算机,于是从1937年开始,抱着方案四处寻找愿意合作的公司,最终是IBM伸出了橄榄枝。霍华德·哈瑟维·艾肯(Howard Hathaway Aiken),1900-1973,美国物理...
2019-11-16 15:20:19 2189
原创 天才辈出的机械计算时代
- 1 -机械计算是在人类基础科学突进和资本主义扩张的历史背景下产生的,这一时期,人们面临着前所未有的计算挑战,主要体现在计算量的剧增、以及精度要求的提高,计算难度倒仍大体停留在(或可分解为)最简单的四则运算。人类首次意识到自动化计算的意义,哪怕只是能让机器分担最简单的那一部分。这一时期的产品多数功能简单,却很是笨重(后来出现的科塔除外),往往占据一个桌角甚或半张桌子后便很少挪...
2019-11-15 14:32:50 284
原创 蛮荒而漫长的手动计算时代
- 1 -本章所介绍的手动时期一系列典型的计算工具,其发展历程,正是人类文明演进的剖面——从利用自然,到改造自然,再到发明创造。手指是最易获取的“工具”,石子一类其次,这两种都是自然界现成的物品;从契刻开始,人们有了改进自然物的想法;结绳和算筹则已是批量化、统一化制造的产物;算盘、纳皮尔筹和对数尺更是目的性很强的发明创造。这不单是人类创造力不断放大的过程,更是对工具便携性和易...
2019-11-14 20:09:00 153
原创 贝尔机:带你领略编码的魅力
当祖思凭一己之力开启德国现代计算机的历史,大西洋彼岸的美国也毫不示弱地完成了本土的设备升级。和前者的孤军奋战不同,后者主体是上世纪叱咤风云的贝尔实验室。众所周知,贝尔实验室及其所属公司是做电话起家、以通信为主要业务的,虽然也做基础研究,但为什么会涉足计算机领域呢?其实跟他们的老本行不无关系——最早的电话系统是靠模拟量传输信号的,信号随距离衰减,长距离通话需要用到滤波器和放大器以保...
2019-11-13 21:08:28 295
原创 祖思机——第一台二进制可编程计算机
巴贝奇领先全人类一个世纪提出了可编程机械计算机的设想,但最终没能将其转换为现实——分析机的建造甚至迄今都没有人能完成。历史翘首期盼了百年,却在纳粹德国见证了第一台可编程计算机的诞生。它的发明者——康拉德·祖思(Konrad Zuse)虽不为人所熟知,却是名副其实的“现代计算机之父”。康拉德·祖思(Konrad Zuse),1910-1995,德国土木工程师、发明家。...
2019-11-11 17:50:05 4623 1
原创 制表机——穿孔时代的到来
从1790年开始,美国每十年进行一次人口普查。百年间,随着人口繁衍和移民的增多,从1790年的400万不到,到1880年的5000多万,人口总数呈爆炸式地增长。1790~1880年美国人口增长曲线不像现在这个的互联网时代,人一出生,各种信息就已经电子化、登记好了,甚至还能数据挖掘,你无法想象,在那个计算设备简陋得基本只能靠手摇进行四则运算的19世纪,千万级的人口统计...
2019-11-10 23:51:27 1615
原创 补码、反码,傻傻分不清?
补码补码的意义在于表达负数,进而将相对麻烦的减法运算转换为计算机擅长的加法。我们先来看看,如果单纯用「符号位+原码」的表示方法,会出现什么幺蛾子,比如符号位0表示正、1表示负:正数二进制原码负数二进制原码00 0000-01 000010 0001-11 000120 0010-21 001030 0011-31...
2019-11-09 11:04:07 541
原创 从二进制到逻辑门——哲学中诞生的计算理论
☞ 欢迎来到神奇的01世界 ☜二进制二进制来自哲学,自然万物两两相对,白天与黑夜、太阳和月亮、苍天与大地、男人和女人、寒冷与炎热、甘甜和苦涩……我国传统文化中的阴阳学说、太极八卦,都是在讲这些自然的本质。不光中国,在很久很久以前,世界各地的文明也都或多或少意识到了二进制的意义,只是除了参悟哲学道理,一直没有用到数学中去。直到17~18世纪,数学上的二进制才由莱布尼茨首次提出...
2019-11-08 18:37:01 1734
原创 电的引入——令计算机费解的罪魁祸首
☞ 欢迎来到神奇的01世界 ☜我们难以理解计算机,也许主要并不由于它复杂的机理,而是根本想不明白,为什么一通上电,这坨铁疙瘩就突然能飞速运转,它安安静静地到底在干些啥。经过前几篇的探索,我们已经了解机械计算机(准确地说,我们把它们称为机械式桌面计算器)的工作方式,本质上是通过旋钮或把手带动齿轮旋转,这一过程全靠手动,肉眼就能看得一清二楚,甚至用现在的乐高积木都能实现。麻烦就麻烦...
2019-11-07 20:12:59 227
原创 巴贝奇——现代计算机真正的鼻祖
☞ 欢迎来到神奇的01世界 ☜从最基本的加法器到真正的四则计算器,一代代世界顶级的发明家不断精进着机器的设计和工艺。从17世纪到20世纪,随着时代的演进,机器驱动也完成了从手摇到电动的革新。即使在电子计算器出现后的几十年里,部分已经停产的机械计算器仍在世界各地的办公桌上服役。可当我们回顾历史却发现,这个辉煌的、跨越了三百多年时光、汇聚了众多天才智慧的机械计算时代,却仅仅在和加、...
2019-11-06 19:21:10 4944
原创 百万富翁——真正的四则计算器
☞ 欢迎来到神奇的01世界 ☜在步进计算器诞生之后的两百多年中,机械计算之曲始终在莱布尼茨定好的基调上演奏。不难发现,两百年中的制造工艺在不断进步,机器的可靠性也不断提高,而计算原理却始终没有改进。尽管各路“莱系”计算器都宣称具备四则运算的能力,其实乘除法的实现靠的是重复加减,使用者总是需要旋转多圈手柄,以“伪造”乘除运算的过程。严格来讲,“莱系”计算器都不是真正的四则计算器,他...
2019-11-05 19:41:46 698
原创 按键式计算器——人机交互的变革
☞ 欢迎来到神奇的01世界 ☜机械计算的历史在齿轮的转动下推进了两个世纪。齿轮要工作,必须给它一个旋转的动力,无论是旋钮还是手柄,都逃不出这样的思维定式,靠手柄驱动的机械计算器也常被统称为手摇(式)计算器。我们都知道,后来人与计算器的交互形式是按键的,这比手摇方便、快捷得多。对于电子计算器,很容易通过按键操作实现电路的通断控制,但在机械计算器中,如何靠按键驱动齿轮运转呢?最早...
2019-11-04 19:01:46 776
原创 科塔——一颗另辟蹊径的「数学手雷」
☞ 欢迎来到神奇的01世界 ☜眼看着解决了百年难题的销轮计算器就要一统“莱系”架构的江湖,不料二战期间杀出了个程咬金——有人想到了更巧妙的方法,他没有改变阶梯轴的形状,而是彻底抛弃了莱布尼茨和托马斯定下的机器形态,只用1根阶梯轴就实现了同样的功能,他的机器小到可以握在手里、放进口袋。这位“不走寻常路”的发明者名叫科特·赫兹斯塔克(Curt Herzstark 1902-1988...
2019-11-03 19:09:49 390
原创 销轮计算器——走出阶梯轴的「笨拙」困境
☞ 欢迎来到神奇的01世界 ☜莱布尼茨的阶梯轴为机械式乘除运算提供了一种巧妙的实现途径,但其本身作为一个长长的圆柱体却显得十分笨重。托马斯的算术仪充分发挥了阶梯轴的实用价值,却绕不过它笨重的特质。20位的算术仪长约70cm,需占用大半个办公桌面,而托马斯为1855年巴黎世界博览会专门制作的30位算术仪足有一架钢琴那么大。莱布尼茨之后,世界各国的许多发明家都为缩小阶梯轴的体积绞尽...
2019-10-31 19:26:49 558
原创 手指计数——长在身上的计算机
☞ 欢迎来到神奇的01世界 ☜美国人阿西莫夫说过,人类最早的「计算机」是手指,英语单词「Digit」既表示「手指」又表示「整数数字」。——孙燕群《计算机史话》文明始于计数文明萌芽之前,人类的祖先还没有「数」的概念。在广袤的原始森林里,他们认识这棵树,也认识那棵树,唯独没有这是从哪到哪第几棵树的概念,更没有某一范围内总共有多少棵数的概念。等到祖先们渐渐有了计数的意识,起初也局限于很小的...
2019-10-27 14:34:57 1196
原创 托马斯算术仪——商人懂技术,谁也挡不住
☞ 欢迎来到神奇的01世界 ☜从契克卡德开始,机械计算像一株微弱的小火苗,时而明亮,时而暗淡,在一小群“极客”的守护下顽强地燃烧了两个世纪。星星之火还未燎原,与数字打着交道的人们,仍被手动计算的繁重和易错折磨得焦头烂额。直到19世纪初,莱布尼茨逝世百年之后,一个技术精湛又有商业头脑的法国人,在弥补了步进计算器的缺陷之后,将机械计算推广到了全世界。他叫查尔斯·泽维尔·托马斯(C...
2019-09-25 22:22:59 290
原创 莱布尼茨步进计算器——不想当发明家的数学家不是好的哲学家
☞ 欢迎来到神奇的01世界 ☜1672年的某一天,一位在德国政坛小有名气的年轻人受邀来访巴黎——一座大师荟萃的城市。身为文科生的他却误打误撞与几位大数学家成为了好友,从此闯进了理科的世界,没想到这一闯就掀起了历史的惊涛骇浪。钻研数学期间,他渐渐发现:「让一些杰出人才像奴隶般地把时间浪费在计算工作上,是不值得的。」于是,世界上第一台可以自动执行四则运算的机械式计算机诞生了。而这,...
2019-07-19 22:12:31 4494
原创 原来,我们是这样记数的
生活中,我们稀松平常地与数字打着交道,一个约定的时间、一件商品的价格、一个人的身高、一间屋子的平方……却很少有人细细想过,这些数字是如何表达出来的?为什么你理所当然地把1024理解为「一千零二十四」而不是别的含义?也许你从未想过,在这简单的记数中,沉淀着人类的大智慧。一进制记数法早在数字的概念产生之前,人类就学会了使用树枝、石子、贝壳等自然界随处可见的小物件表示猎物的、果实的...
2019-05-04 18:48:47 217
原创 云存储——别说你还没用过网盘
图片来自网络什么是云存储云存储(cloud storage)是从云计算中衍生而来的一个概念,严格来说是属于云计算的一部分,与云计算一样都十分抽象。什么是云存储?国内比较通行的定义为:云存储是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。是不是更晕...
2019-02-08 22:37:05 588
SSD5所有练习答案
2012-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人