得益于长征5号的研发成功,我国航天最近能够把大重量的东西送上太空,所以最近看到了一系列的突破。比如登陆火星,比如空间站,比如月球挖土。
当然这些只是在重复做美国人曾经完成过的事情,我们既然现在有技术有资源为什么不尝试一下前所未有的探索呢?
这是我的一个理想,那就是在月球上建造一个可以住人的基地,甚至建立一座微型的城镇村庄。这并不是科幻,离我们一点都不遥远,只要利用现有的技术是完全可以实现的,可以说只是一个工程问题。
首先我们看现有的空间站,其实已经很大了,至少有几辆大巴车那么大小,是可以住好几个人的,我们在月球上建立基地,第1步也可以把类似的东西发射到月球上,一个一个组装起来,就像现在空间站上用的技术是一样的。
这里最重要的问题要解决的就是能源和材料这样的问题,包括物质。比如说建造,我们想大规模的建造一个类似于购物商场那么大小的基地的话,那么完全从地球上发射是不太现实的,但是我们可以利用月球上已有的物质,看看能把一些什么机械设施发射上去,在月球上就可以采矿,并且制成铁各种各样的金属。进一步可以用来构造基地自身。这样子只需要发射一部分工具,然后利用这些工具开采加工月球上的物质,这一切可以通过几个航天员远程操控的无人机械进行。
先看看现在最需要解决的能源问题,我们可以用几个太阳能板来产生一定的电量,现在空间站就是这样工作的。它的问题也很大,因为能量输出实在是太小了,只是简单的提供一些生命支持,如果进行大规模的工业活动肯定是不够的。
那么我们能不能发射一个核反应堆到月球上呢?这是一个很值得考虑的问题,至少在看来是可以解决的,我们可以把反应堆做得很小,至少目前我们已经在核潜艇上用一些小型的反应堆了,它只有几十吨,而且大小也不是特别大,可能直径只有八九米的样子。而且他这些大小大部分都是外面的屏蔽壳来屏蔽辐射,用来屏蔽辐射的真正核心部分,反应堆的核心并没有多大,而且我们还可以拆分开来,反应堆,燃料以及其他一些组件单独发射,然后到月球上再进行组装。
事实上在月球上的核辐射并不是一个什么问题,因为月球没有大气层,而且受到太阳风等各种各样宇宙粒子射线的影响,月球每天都接受大量的辐射,所以说核反应堆完全不用太考虑保护怎么把这些辐射给屏蔽掉,月球不是地球,宇航员出门都是要穿防辐射的航天服,我们的空间站本身也要是防辐射的。

近几年很多企业以及科研院所都在研发小型核反应堆。比如劳斯莱斯,最近报道说他们在研发一个小型核反应堆,目的就是到月球上去采矿。他们一直做飞机发动机以及核潜艇反应堆好多年了,所以在这方面应该有很多经验。核反应堆的微型化是一个很重要的趋势,毕竟如果能把它塞进汽车集装箱,而且能提供大量足够的电力的话,无论是在军事还是民用救灾等方面,都有很大的用处。当然前提是保证核燃料的安全性。

如果有一定担心的话,在月球上我们可以给核反应堆打造一个适合的地形。比如挖一个大坑专门放置它,这样可以挡住它水平方向的辐射,朝着太空的辐射,我们是可以不用管的。这个核反应堆可以放在我们月球基地几公里之外,通过线缆把电力输送到基地就可以了。考虑到冗余备份,可以多建几个类似的反应堆电站,即使一个不工作也不影响基地的正常运行。
一个潜艇的核反应堆大致有几百兆瓦的功率,我们其实可以把这个功率做得更小一些,只要有几十兆瓦甚至几兆瓦的功率就够了。前期可以建设一个几十人的基地,这已经不少了,现在的国际空间站最多也就容纳七个人而已。

我们可以先发射一些类似挖掘机等机械装备到月球上。有别于传统的挖掘机,我们把它做成电动的。因为月球表面是崎岖不平的,我们可以采用坦克那样的履带以及其他一些技术使他拥有全地形通过能力。现在电动汽车上面的电池,比如说像特斯拉的电池大致有将近一吨的重量,能提供四百多公里的行驶里程。直接把这些电池模块移植到这些挖掘机上,能够给提供几个小时的工作时间就够了。当然我们可以把电池做得更大一些也行,这样子的话没有必要,这都是权衡取舍了,到时候可以做成模块化的设计。
如果能在这些挖掘机上做一个驾驶室,就像航天服一样封闭的且含有氧气,工作人员可以直接坐在里面操控挖掘,那就是最好了。但如果这些需要的空间太大或者说重量太大以至于不划算的话,也可以做成远程遥控的,可以让工作人员在一个专门的通行车辆上,在它几十米上百米远的地方进行遥控操作也可以。
可以利用这些机械在基地周围往外修建道路,这里所谓的道路是指削峰填谷,把路铺平可以通过履带式的机械即可,没必要像地球上的路那样规整。
月球上有丰富的稀土元素,以及我们未探索的各种各样的矿产,这些矿产有可能包括铁矿啊以及各种各样的稀有金属。对我们来说,前期最重要的我们可以找到一些小型的铁矿或者什么之类的。开采这些铁矿,并且把他们提炼成钢铁。这些钢铁可以用来建造我们的月球基地,这样子的话我们可以把月球基地建得很大很大,比如说达到一个购物商场的大小,或者构造很多类似的建筑单元通过管道把他们连接起来,把这些各种各样的单一的建筑体组成一个小型的村镇。
在月球上建立一个炼钢厂是一个挑战,毕竟没有大气不同于地球的环境,而且我们可以使用的能量只有电能,同样月球上的铁矿石的化学成分跟地球上的可能有些区别,所以钢厂的结构和原理会有很大的不同。不过,在理论上是可行的吧,有时间可以仔细研究一下。

有了钢铁,我们就并且能把月球建设的很大,利用钢铁焊接起来的密闭房屋,里面充入合适的大气,人类就可以居住了。如果空间够大,可以在里面通过灯光建立室内农场,种植一些蔬菜。我们只要给基地送上去几十年的粮食,就足够维持运转了。更进一步,可以种植一些粮食作物,小麦水稻当然好,但是需要的空间大产量低,最好的选择是种植红薯和土豆,如果规划得当可以给基地提供自给自足的食物供应。在电影火星救援里面,主角就是依靠在火星上种土豆进行生存的。

以目前长征五号的运载能力,还不足以实现登月。现在正在研发中的长征九号就是专门为登月研发的一颗火箭,它的研制成功才能实现我们载人登月。所以还要等好几年。不过据报道,长征九号的研发现在加快了速度,改为多个成熟发动机捆绑的形式而不是当初的单一大推力发动机,这类似于spacex的玩法。时间方面应该比重新研发一个新型发动机要快不少,毕竟稳定性测试需要花大量时间。

空间站是个很好的东西,当年前苏联就得出论断,认为登上月球没有太大实际意义,而地球近地空间站可以进行各种各样的观测和科研,还有一个失重的环境可以进行各种各样的实验,他们给出的综合结论就是发展空间站是更划算更经济的一种方式。

但是月球基地不同于简单的登月,同样也有它的优势。首先没有大气层有利于科研观测,而且月球上有各种各样的矿产资源可以进行开采,如果有足够的矿产燃料各种各样的东西开采出来的话,甚至我们都可以在月球上直接建一个发射基地,火箭之类的大部分都可以直接用月球上开采的元素来进行建造。比如说去火星的话,从月球进行发射,它的成本比地球要小很多很多,因为月球的重力很小。

月球上有重力,而且这个重力不大是地球的1/6,这很重要,因为我们普通人类可以在上面背负更多的重要的东西,比如说航天服可以做的很重,可以装上去更多的能量和氧气燃料,这样子的话就可以走很远,而且人类在上面可以跑得很快很远,这是一个优势。有重力的话就不用考虑各种各样失重情况下需要担心的比如说航天服离开了空间站飞走了就回不来了等问题。月球基类似与地球的环境,只不过重力减小而已,可以慢慢到处走。

从我们现有的技术来看,没有任何科幻的元素,都是已有的已实现的,我们可进行工程化的东西。建造一个类似于一个村镇的大小的聚集单位,比如说容纳几百人上千人都是可能的。我们可以在月球上建立真正的人类永久驻扎的基地。
如果月球上能够实现粮食自给自足,那就更好了,一旦真正自给自足的闭环能力可以得以形成,月球基地就可以脱离地球的补给而单独存活,甚至发展成为人类的一个月球分支。当然前提是月球月上有足够的核燃料,以提供核反应堆的持续运行,而且月球上的人需要学习大量的知识,把他们维护起来。

1970年左右,美国国力处于巅峰时代,他们进行了登月,而且实现了一系列的成果,今天人类虽然在机械和能量燃料方面没有什么推进,理论上也没有大的突破,但是很多应用技术已经有了飞跃。主要代表是集成电路芯片的发展带来的一些微型控制器和通信技术。
比如说控制器,当时的芯片跟现在的芯片数字化控制技术简直是天壤之别,当时飞船上的阿波罗计算机只有2k的内存,72k rom,使用汇编编写控制代码,现在随便拿个stm32都能秒杀它。
甚至现在都可以看到国际空间站里的一些模电时代的仪表盘,而中国的空间站里全部都进行了数字化,提升还是很大的。
另一方面的大量进展是在通信技术上,举个例子,得益于数字基站,我们空间站的宇航服就是通过CDMA跟空间站来通讯的,可以直接传递音视频和控制指令。比当初的短波模拟信号通信强大很多。
不得不佩服当年的登月,原始的计算机加上一行行汇编代码,都实现了这样的壮举。
另一个则是这些年电池技术的发展,不讲成本的话其实已经可以实现各种各样的电动机械了,加上其他一些化工和材料方面的进展,其实现在实现登月的条件要比1970年左右好太多了,这也使得月球基地的建设成为可能。

今天,中国的国力已经超过当年登月时的美国了,而且还在持续增长当中。加上人类技术进展的加持,可以实现的远比当年多得多。按照我们目前的航天规划,是有在月球南极上建立一个基地的打算的。我个人觉得,除了简单的科研基地以外,可以分阶段分步骤,把目标和计划制定的更宏大,更长远一些。

简单重复的实现登月只是在重复美国人伟大的成就而已,如果我们真正能够建设成月球基地并且进行采矿等一系列操作的话,这将是人类史无前例的壮举,才是真正引领人类科技探索的未来。

有生之年,我们很可能看到这一切都成为现实。

这几天郑州暴雨,各种画面视频令人触目惊心。

洪水在河南自古就是不断重复的灾难,这一点在各种史书里都可以找到记录。

不过,在我的记忆里,小时候雨下的最大的时候,也就是把沟道河流填满,没有那种所有地方都淹没很深的大水。也许是概率吧,攒了多年,终于暴发了一次。

今天随便写点,不讨论自然灾害,就简单的记录下我的一些思考。

这次破纪录的一小时降水超过200毫米,超过所有中国陆地降水量的极值。

为什么郑州会下这么大的雨?为什么降水更多的沿海城市比如深圳上海没有这么大的雨呢?那些沿海城市因为台风导致的暴雨难道不应该更大吗?

这是我心里的疑惑,也一直在思考答案。下面写的,都是个人的一些想法观点,并没有花大量时间精力去做科学的研究论证,看看就好,没必要较真。也许将来有大把的空闲时间了可以再去做更细致的研究,今天写下来只是记录一下自己的想法思考,方便将来翻阅备忘。


先看一下年平均降水量,郑州大致在600多毫升左右。作为对比,我们拿深圳来举例子,深圳的年平均降水量大约是1900多,大致有三倍的样子。

这样看来,深圳确实降水比较多。

然而,下的多并不意味着短时间内下的大。就像跑步,跑得远并不意味着短时间内跑得快。

可为什么深圳瞬时雨量不够大呢?

我们先看看降水是如何形成的。

通过蒸发,大量的水蒸气进入空气当中,这些含有水汽的空气形成所谓的云,当他们与冷空气相遇的时候,水汽凝结,就形成了雨滴。

先给出一个简单的规律:

空气中储存的水汽多少跟温度有关,温度越高,能储存的水汽量越大。

这个比较容易理解,比如冬天嘴唇容易干就是因为温度低空气里的水分较少。

再比如夏天,我们从冰箱里拿出一瓶啤酒,过一会啤酒瓶上就会布满了水珠。这是因为夏天空气温度高,含水汽量高,而刚拿出的啤酒温度低,它会导致周边的空气温度降低,低温空气储存不了那么多的水汽,就凝结析出了。

降雨的过程跟这个也差不多,南方从海洋上吹来的风饱含水汽温度高的空气,突然遇到从北方吹来的寒冷空气,形成对流并向上抬升,迅速凝结,就形成了降水。

当然降雨除了这种,还有一种是被山坡抬升导致的。抬升过程中,海拔越来越高,空气温度开始降低,而且大气压大气密度也在降低,导致储水量更低,于是水汽凝结降雨。

降雨的大小取决于什么呢?当然跟空气中的水汽储量有关系。同时,也跟对流空气的温度差有关系,就像我们从冰箱里拿出的啤酒,温度越低凝结的水滴也就越多。

其实理解了这个原理,很多问题就比较容易推出结论了:

  • 瞬时降雨的大小取决于空气中水汽的储量密度以及对流温差强度
  • 空气中的最大水汽储量密度取决于温度。

所以,瞬时降雨的大小取决于当地最高温度,因为这决定了空气中水汽储量的上限。

我们看一下各地的最高气温,这都有气象数据可以查到。深圳夏天大致在30多左右,其实并不算热,主要是潮湿。因为靠海的缘故,热量大部分用来加热海水蒸发。

河南这种内陆平原就不一样了,阳光照射大地全部用来加热,温度甚至都能到40度以上。夏天三十七八度很正常。

忘了在哪看的说每升高一度水汽储量增加7%,我没有去仔细查证,但是感觉增长曲线不一定是线性的。

可以认为,郑州的温度甚至可以比深圳高10度左右,这带来的水汽储量差别是巨大的,这也导致郑州暴雨的上限要远比深圳高。

同时,北方过来的冷空气到河南的时候温度要比到深圳的时候更低。因为横跨中国大陆的过程中它们可能慢慢被传递热量升温。这样看来河南这边的对流温差强度大的概率更高。

水汽含量高,加上对流强度更高,所以,北方内陆出现瞬时大暴雨的可能性其实远比沿海城市要高。

在北方,暴雨的危害主要来自于猛涨的水位无法快速流走。雨过之后,洪水往往快速消退。并不会形成长时间的内涝,地面很快就恢复了干燥。

来自海洋的水汽进入内陆平原,如何不停的积聚,以及受到冷空气对冲、山坡的阻拦等产生各种运动和交互的细节,可以看作一个随时间变化的气流运动。要去模拟这些空气的气流是十分复杂的,它是三维变化的,通过数值模拟计算的话要牵涉到大量的微分方程,各种各样的参数,且很容易被一些细小的因素参数影响。所以天气预报往往需要超级计算机去模拟计算,也很难做到精准。不过鉴于天气预报都搞了这么久了,气象学应该有一个简单可以用的模型吧。等将来有大量空余时间了再去仔细搜索研究下。

需要指出,并不是温度高了,空气中的含水量就高,只是说明储存的能力变多了,需要水汽不停的蒸发或运输进来才相应的增多。西北沙漠地区就是个例子。

我们把空气中的水汽含量的百分比称为相对湿度,数值范围在0%到100%,分别对应完全没有以及水汽饱和。这个数值可以代表我们人体对潮湿的一种感觉,太干太湿都会觉得不舒适,看天气的时候可以注意一下这个数值。

记住,相对湿度在不同温度下真实含水量的绝对值是不一样的,它代表的只是水汽饱和度百分比。所以,冬天的80%可能比夏天的40%含水量更少。

好了,大致就这些,概括一下,可以认为全文只有一句话:温度上限决定暴雨大小的上限。

最近因为一个项目需要,对wordpress进行了简单的二次开发。
说实话,wp的代码写的很烂,可读性很低。一个简单的博客系统,数据库总共就几张表,代码居然有几十万行。基本是一堆函数套函数,没有class之类的封装。应该是搞的比较早,那时候php的oop还不完善吧。
对数据库的支持也不是很完善,目前官方只有mysql,其实作为一个简单的个人博客,直接用sqlite足够了,完全不存在性能上的瓶颈,而且wp的大部分用户都是小白,对他们来说安装配置mysql也是个门槛。
好吧,不能光批评,也说说好的一方面。
wp最大的优势是有一个庞大的社区,大量的主题和插件,甚至可以说形成了一个完整的生态。很多问题搜一下都有现成的解决方案,不用自己写代码。对于一些简单的场合用一下还是能节省不少时间的。
如果有一个简单轻量的类似wp的系统,应该能有一定的市场。搜了下,还真找到了几个,有一个叫typecho的,也是我朝码农搞的,用起来还不错。估计作者也跟我一样对wp的庞大臃肿感到不满吧。然而最近已经不怎么更新了,应该是用户群体很难形成规模效应。
有时间的话可以把这个博客迁移过去。
好了,牢骚发的差不多了,进入正题。
花了一天时间,搞了个wp的主题,就是现在使用这个。主要是为了练手先熟悉下好方便后面的开发。
我不喜欢很多花哨的东西,一个简单的主题,排版看起来顺眼就行。typecho的默认主题看起来还不错,顺着他的排版直接抄了不少。
暂时取名叫Diogenes吧,本来想叫simple什么之类的,不过太通用一定很多重名的,找个稍微生僻点的名字比较有独立性。
申明一点,我对犬儒主义没有任何兴趣,Diogenes这个名字也是很早之前通过那个亚历山大的故事知道的。这个名字刚好符合简单,生僻,看起来好像也很牛等几个条件,在我需要取名字的时候一顿检索恰好出现在脑海中,仅此而已。
最后,给出这个主题的下载链接,如果你觉得主题不错,欢迎在自己的网站使用

点这里下载Diogenes主题

疫情这段时间一直呆在老家,前几天洗衣机突然不转了,于是拆开了仔细研究了一番,折腾了几天,算是修好了。也许直接找人修更简单一些吧,我主要还是想拆开看看玩玩。

其实洗衣机这东西的原理是很简单的。核心就是一个电动机,加上一些进水排水的控制开关,还有一个用来感应水位的传感器。中间的滚筒,再加上外壳,基本上就是这些东西了。

原理就是,通过不同程度的控制滚筒的旋转,以及进水排水的开关,来达到洗衣的目的,简单说就是一个电机控制程序,输入是水位等传感器信息,输出是进水排水的开关控制,滚筒的正转反转和速度大小

我们看现在的全自动洗衣机好像很复杂的样子,可以选择各种不同类型的衣物,还有不同的洗衣模式。其实核心很简单,就是各种各样的程序,只是我们通过来控制不同的旋转时间,速度还有力度大小来控制这个洗衣的过程,它的机械部分很简单,核心主要还是用程序控制的算法来组成。

当然其中一些旋转的力度和速度的大小,这些都是经验,时间点的把握,正反旋转,等等通过不同的时间不同的输出参数来获得最好的洗涤效果,这些经验性的东西,通过大量的数据和实践都可以获得。

而它的本质核心控制程序是很简单的,要是真写的话,一点都不复杂,估计也就是,几百行,顶多也就是几千行的程序。

洗衣机拆开之后,他的里边有三块主要的电路板。很容易分辨出来各个电路板的功能和类型,其中一个是电源,如果你对电路有点熟悉的话,一眼就能看出来,它其实就是一个开关电源。第二个是控制板,这是整个电路的核心部分,上面包括用来输入的按键,显示屏幕,上面最核心的就是一块CPU了,其实就是一个单片机,看了一下上面的编号,是瑞萨电子的一个16位的控制器。如果你想仔细研究一下,它的具体型号是R5F212A7SNFA,洗衣机的型号是海尔XQS85-BZ1318

最后一块电路板是用来驱动无刷电机的。如果你玩过无人机的话就会知道,每一个无刷电机都需要一个电调来控制。因为无刷电机线圈并不旋转,旋转的是外边的磁体,我们需要在线圈之间不停的变换电流。比如说三个线圈,我们在这些线圈之间不停的变换电流产生交替的磁场,使得电机的外边的永磁体到达当前线圈的时候刚好它的磁场是向着一个方向旋转的力,这样就会持续旋转下去。

当然还有一些老式的洗衣机用的是普通的直流电动机,就没有那么复杂的控制电路了。为什么要用无刷电机呢,因为无刷电机方便调速,不用使用那些麻烦的机械传动和调速装置,所以结构简单,故障率低。旋转的时候可以逐渐提速,震动和噪音也比较小。可以精确控制,正转反转,洗涤效果也要好一些,也能节省一部分电。同时也方便自动化控制,一个桶能洗能脱,所以都号称全自动。

如果你对无刷电机不太了解,那你对它的一些市场营销术语可能是会有一些耳闻的。不管是洗衣机还是空调,都可以看到广告上天天忽悠的变频技术。他们所谓的变频技术,其实核心用的就是无刷电机。通过不同的开关频率来调节无刷电机的旋转速度,所以叫做变频。

还有一个比较重要的部件就是水位传感器,在整个洗衣控制程序中,监测当前水位的高低是很重要的一个输入参数。水位传感器大部分的实现是用空气的压力变化,来估算按水位的高低。桶下边有一个气室,水位改变时这个气室的压力会产生变化,通过一个塑料管道连到上面,上面有一个薄片,在不同压力下会上下移动,通过在磁场中的移动产生不同电流来获取压力大小。

前面说了一大堆基本原理吧,那么,这个洗衣机到底是哪里出问题了呢?他的表现是,各个程序输入输出都是正常的,唯独到了洗涤的时候,下边的电机转不动。很容易就能猜出来,下边无刷电机的驱动电路出了问题。拆开看了一下,可能出问题的地方有很多,最大的可能应该是里边的几个大功率三极管出了问题,就是带着散热片的那几个。这几个晶体管估计是用来控制无刷电机线圈的开关,当然也有可能是旁边的大电容出了问题。

整个板都是被胶给封住的,上面的器件如果坏了,去买的话也比较麻烦。手上工具也不多,不好检测。然而一顿搜索之后发现,淘宝上居然有人直接卖里边的电路板,不管是电源板还是下边的驱动板都有,中国人果然赚钱思维很强啊。

好吧,花了90块钱买了块驱动板换上洗衣机就好了,不能算是我修好的,花钱换了个模块吧,哈哈,说出来有点丢人。

简单估算一下一台洗衣机的成本吧,里边这些电路其实成本很低的。电子相关的部分加起来顶多一两百。电机和滚筒加上外边的外壳,这些估计也就几百块钱,里面的器件的具体型号,在网上搜索的话,都可以找到大致的价格,要是批量买的话,肯定会更便宜。它的核心控制程序,如果你是一个程序员的话,写起来比平时做的大部分软件都要简单得多,主要还是要有耐心的调各种参数。根据不同的经验和反馈来调整控制程序的每一个细节。

所以这样算下来,成本可以做到几百块的洗衣机,如果卖的话可以卖到几千块。这利润其实是很高的,比雷布斯做手机的利润要高得多。所以何苦辛辛苦苦的做那些手机呢,天天搞电路搞软件不停的修bug,几百人上千人的研发团队天天累的要死。最重要的是利润很低,而这边做洗衣机的,那么简单的一个电路成本那么低,而且利润那么高。

所以这个世界,并不是我们想象中的那个样子,看起来比较高大上比较光鲜的那些东西,很牛的那些技术,其实有时候并不怎么赚钱,而那些看着不起眼的很土的东西,却天天在闷声发大财。

所以技术人员一定要多研究一下这个市场,最重要的是,一个产品一项服务如何解决用户的需求,怎么样把东西给销售出去。赚钱跟技术含量,并不是对等的。而且什么是技术呢?这个世界上能做出来的东西没有所谓的核心技术的高低,只要肯花时间慢慢搞,大部分东西都能搞出来的。

好吧,还忽略了一点,就是原理和工程化之间有一个巨大的差距要填满,看起来简单的东西,能够做成一个可以售卖的产品并不简单。任正非老板说过,“其实原子弹的核反应链式方程,初中生都学过,但是做成原子弹可不那么容易。基础科学看起来道理很简单,实施起来非常难。所以,在国外某项东西可能看起来是很小的发明,但是发明中套发明,再套发明,是数千项专利、上万项专利支撑了一个小小的零件。”

随着工艺的进步,现在手机芯片是越来越强大了,我们可以看到,苹果最新的soc里的晶体管数,已经将近100亿,这已经比台式机里英特尔的CPU的晶体管数要多了,如果看它的性能的话,用一些测试性能的软件,像geekbench,那么它的分数已经比很多中低端的PC性能要高了。而这仅仅是现在苹果在使用台积电的7纳米的工艺制造的soc,台积电的5纳米的技术已经比较成熟了,今年也就是2020年我们就可以看到5纳米的芯片,5nm提供了更高的晶体管密度,更低的功耗,性能还有进一步的提升空间。

这几年intel的工艺似乎是停滞了,这是导致桌面PC性能一直原地踏步的一个原因吧。我们都说intel是牙膏厂,出个新cpu性能甚至只有1%的提升,这也不能仅仅只怪罪于intel的设计部门。提升CPU每个时钟周期性能也就是ipc已经很难了。现在的大部分架构,指令都已经能做到在一个时钟周期内完成,甚至加上一些超标量的技术,在一些循环内部,甚至IPC会小于一,如果继续压榨,仅仅靠架构来提升每个单独cpu的ipc,不会有多大的进展了。可能我们增加缓存或者一些其他方式能够提升一些性能,然而这只是通过降低内存IO的延迟来获得的,并不能说CPU本身的性能提升。所以简单的指责intel挤牙膏是不对的。造成intel原地踏步的主要原因是他的制程工艺这几年一直没有什么突破,从性能提升的角度看,工艺的进步远比架构上提升要来得快得多。

下面是不同厂商的制程工艺的晶体管密度

制程节点 大致晶体管密度 Transistor Density (MTr/mm² 百万每平方毫米)
TSMC’s 5nm EUV 171.3
TSMC’s 7nm+ EUV 115.8
Intel’s 10nm 100.8*
TSMC’s 7nm (Mobile) 96.5
Samsung’s 7nm EUV 95.3
TSMC’s 7nm (HPC) 66.7
Samsung’s 8nm 61.2
TSMC’s 10nm 60.3
Samsung’s 10nm 51.8
Intel’s 14nm 43.5
GlobalFoundries 12nm 36.7
TSMC’s 12nm 33.8
Samsung / GlobalFoundries 14nm 32.5
TSMC’s 16nm 28.2

台积电在10纳米工艺的时候已经跟intel差不多了,intel的10nm一直没有大规模量产,甚至性能还不及14nm,所以上面intel的10nm工艺后面有一个*号的意思就是说是估计,不能作为大规模量产的工艺来看待。如果10nm只能算并驾齐驱的话,那么在7纳米的时候台积电已经是毫无疑问的领先了,特别是n7p和n7+,晶体管密度甚至比intel的未量产的10nm都高。如果今年5纳米工艺能够大规模使用的话,英特尔基本上是被甩开了。未来几年之内,按照现在英特尔整个公司的状态,实在是很难看到他能够有大的新工艺突破的可能。

所以,从未来上看,包括桌面的PC,使用arm芯片作为CPU是一个趋势。如果AMD能够能够很争气的话,也许在桌面上还能让x86架构在苟延残喘一段时间,英特尔已经没指望了。其实amd现在也是台积电代工的,他的晶圆厂GlobalFoundries也就是格罗方德早就跟不上技术进步了。正是靠tsmc的代工使它现在开始逆袭,这也说明了工艺进步对cpu性能提升的重要性,当然我们也不能忽略amd这几年在架构上的优化,他们的每瓦功耗性能已经开始比intel高了。

这几年手机芯片性能提升的速度还是很快的,我们只是下意识的认为,它跟PC的性能差距还是很大,实际上这个差距已经很小了,随着新工艺的提升以及intel工艺的固步不前,很快我们就会看到比桌面更快的手机芯片出现。

在桌面上使用arm芯片,其实已经开始几年了,高通之前就把好几款移动soc发布为pc版,在一些低端上网本上采用。最近这几个月,微软刚发布的Surface Pro X上已经采用了高通的芯片。win 10也支持了在arm上运行,虽然说只是通过jit的即时编译,实时把x86的指令集转化为arm指令,并不是原生的exe就是arm代码。可以理解为模拟执行吧,性能损失肯定是有的。但是要注意到,Surface Pro X上的这颗高通的soc里面的显卡部分,计算能力可以达到2000 gflops,这已经是桌面中端显卡的级别了,比macbook pro上的intel的显卡快了两三倍。

至少目前看来,arm取代PC的趋势势不可挡,虽然说这需要时间。过去,从2010年到2020年花了差不多10年,arm在手机上站稳了脚跟,并且一步一步提升性能,现在已经没有人抱怨手机发热了,这10年的时间智能手机开始崛起和普及的时间。而且arm的性能已经一步步的提升到了接近PC的程度,在未来的十年,也就是2020年到2030年,这10年之间,可能的趋势是arm逐渐逐渐渗透到桌面里,当然这个10年里边可能会是两种芯片并存的状态,如果再往前看10年就是从2030年往后,我们很有可能看到arm占统治地位。

因为arm有一个特点,它是开放的。arm这家公司是直接把芯片ip直接授权给各种厂商,基于他们的指令集授权来生产自己的CPU和SOC,它是一个开放的平台结构。英特尔的x86架构恰恰相反,它是一个封闭的指令架构,只有英特尔一家公司采用这个指令集,而且它是有专利的。加上他授权过的AMD,基本上就是两家。私有的就意味着如果英特尔自己出了问题,他不能再引领技术的发展,x86几乎不可避免的会没落下去。即便是AMD可以顶上来,但是他所发挥的作用顶多只是延缓一下x86的寿命而已。

而且同等功耗下arm的性能更出色,arm之所以在移动设备上被广泛采用,就是因为他的功耗控制要好得多。这也意味着更好的能效比,intel的cpu有很大的历史包袱,这导致他们的cpu花大量的精力在维护对之前的兼容性上面。比如,英特尔的指令集是可变长度的,而arm是固定长度的,虽然可变长度有更好的代码密度,但在今天的巨大内存和硬盘空间上来看这基本可以忽略,有一个数据,intel的atom CPU,在指令的解码上,就要多消耗20%的能耗,而arm完全没有这部分电路。

现在arm在PC上使用的主要原因还是,它的性能不够好,然而现在intel这么不争气,工艺上再没有突破的话,arm很快就会在性能上领先英特尔。甚至现在苹果的最新芯片,如果只是从geekbench的跑分上来看的话,已经比很多intel的cpu要快了,要是给他再加一个风扇,设置更高的时钟频率,相信一定比这些桌面cpu更出色。

据说明年苹果就会推出一款基于arm的MacBook,应该不是因为苹果非要跟英特尔对着干,而是CPU这几年根本没有太大的性能提升。而且,英特尔的CPU集成的显卡,性能上一直都是MacBook的软肋,如果能用自己的arm芯片,不只是CPU性能上的提升,显卡的速度也会有很大的提升,再加上功耗的降低,实在是没有理由怀疑苹果会用arm作为他们的选择,恐怕苹果也是对英特尔失望透了。加上arm再手机soc上的积累,比桌面拥有更高的集成度,更少的芯片,更低的功耗,以及未来的更高的性能。虽然目前下定论还早,但是等明年,苹果的新MacBook出来之后,我们就可以看看出一些对比了。

其实还有一个趋势,那就是,新的芯片不一定非要用在PC上,手机同样可以运行PC的操作系统,因为手机的CPU性能越来越强大,手机的图形处理器速度也越来越快,现在已经接近了入门级PC的水平,如果我们可以在手机上装一个桌面操作系统,在工作的时候可以直接连到手机上来进行,下班可以带回家接着工作,会很方便,因为你的一些各种各样的软件,以及偏好设置,包括一些资料东西,都放在一个地方,在家和工作环境来回切换的话,很多东西不需要来回麻烦的去找。既然手机的性能如此强大了,为什么不用它来作为桌面工作PC来用呢?如果我们不是用它来打游戏,不是用它来做一些特别很耗性能的工作,简单的办公应用,入门级的PC足够了,我们10年前用的电脑都够,更何况现在更快的处理器呢。

如何在手机上装一个桌面的操作系统?我们希望它是什么样子?这个系统除了支持手机上自己运行的小屏幕的系统,我们把它连接在外接显示器的时候,就可以直接运行桌面系统。就像是同一个系统带一个桌面端和一个手机端。

比如说我们手机的安卓系统,当他接到外接设备的时候我们可以让它运行一个桌面端,手机上显示的还是手机端的桌面,而在电脑上显示的是另外一个桌面端,它是在同时运行的,就是说你在桌面端上打开一些办公应用的时候,是不影响手机的接电话发短信等功能。这是很可行的,我们可以把桌面端当成一个应用程序,运行在安卓上的一个应用程序,只是说,安卓需要在系统层做一个支持,加一个模式。只是不知道这些厂商什么时候才会加进去,Google应该还没有支持安卓这样的计划。

那能不能自己动手呢?也许这是个机会。我仔细思考了一下,有好几种方式来实现,我们可以做一个类似于虚拟机的东西,通过一个APP来实现,这是在我们在windows和MAC上经常用的技术,装一个虚拟机,然后在虚拟机上装各种各样的系统。甚至不用模拟x86的指令,很多linux发行版直接都支持arm的。只需要虚拟出来一个环境。

不要忘了,安卓是运行在Linux内核上的,如果我们可以把Linux的一些权限开放出来,直接远程ssh上去,那么同样也可以在上面装各种各样的软件,用adb调试的时候有一个adb shell的命令就可以提供ssh访问,虽然adb的权限也不是root,但是已经可以执行大部分代码了,能不能在安卓上开放ssh呢?

我google了一下,很快就找到了解决方案,已经有人做了,而且还做得更好。比如Samsung DeX,Debian Noroot,Ubuntu Touch等。

我比较喜欢的是一个叫termux的app。它的大致的思路是,做一个安卓APP,这个APP实现一个简单的shell,或者说一个terminal。

简单的看了它的下代码,实现很简单,大部分都是一些Java层的UI,用来实现一个终端窗口输入和显示等交互,这没有什么好说的。他的c++实现很简单,只有一两百行,核心就是create process。先建一个伪终端,然后fork一下自己,然后exec调用命令行,把结果返回过去。这是很标准的一个,教科书般的,实现shell的方法。

你可能觉得这么简单的一个terminal并没有什么用,但是不要忘了安卓的内核是基于Linux的。基于这个terminal我们有了可以执行本地代码的能力,因为安卓下边本身就支持c++实现本地代码,我们只是没有root权限,事实上我们根本用不到root权限,只要能运行二进制代码,我们虚拟一个linux的运行环境就够了,而且这个环境的性能并不会降低,因为它运行的是原生代码,并没有模拟层的存在,你可以认为这个APP就是它的沙盒,可以运行本地代码。而且安卓可以使用ndk来编译c++程序。我们只要在本地把相应的基本运行时库编译了,并按照linux的目录结构摆放,设置一些变量把他们指到正确的位置,就可以编译和执行各种各样的程序了。这些工具甚至不需要大的改动,只需要重新编译一下。现在termux下面已经有各种各样的编译好的pkg了,比如clang,这是一个C/C++编译器,有了编译器我们可以编译各种程序。大部分的包都可以在下面找到,比如python,php,nginx等一些常用的工具在下面都有。有人已经把x11这些图形库给打包了,你甚至可以在上面装ubuntu或者debian等一些Linux发行版。

这些Linux的发行版,本身并不是一个操作系统,他们只是基于Linux内核,把一些常用的软件打包一下,做一些包管理器等等,仅此而已。实际上基于安卓,我们完全可以做一个新的Linux发行版本,我们可以把各种各样的软件打包进去,甚至是图形化的桌面,这一切都在安卓上的一个APP的沙盒环境里运行,其实也是在安卓上运行,他拥有CPU执行的一切,没有的仅仅是无法直接读取手机的其他功能,调用安卓的一些API,可以优化一下,这就是一个完美的环境。

随着手机的发展,存储也越来越大,我们现在看128g都是起步的配置,手机内存也到了主流的8g,这些都已经算是台式机的配置了,只要储存空间够大,我们就可以塞进去更多的东西,在安卓上再运行一个桌面环境,可以通过安卓的USB接口,连接外部设备,MacBook其实也就一个USB type-c接口,就可以连接所有的外设,安卓手机其实也是一样的。在未来我们只要兜里装一个手机,那么我们到处都可以连上显示器和键盘作为一个办公环境,当然如果觉得插线麻烦的话,通过ssh和vnc连接也是一样的。

等未来这一切都更清晰明朗一些的话,无论是谷歌还是苹果都是会看到这些趋势的,安卓和iOS都可能会加一个桌面版的模式,可以直接在系统级别实现,也有可能是基于一个APP上来运行,跟其他功能互不干涉,我觉得后者的可能性更大一些。

甚至可能会出现,直接安装在手机上的桌面操作系统,如果你的旧手机不用了,换新手机了,那么旧手机就可以刷上一个桌面系统,这样就不用再买单独的电脑。

其实PC的小型化也是一个趋势,除非你追求性能,更快的游戏速度。像手机大小的PC,没有噪音,速度又不是很慢的话,足够写程序,其实也就够了。甚至随着一些接口的速度提升,比如USB 4.0标准都出来了,接口速度甚至能达到40Gbps,这么快的速度足够将显卡外接了,就像移动硬盘一样,把显卡作为外接设备,这样打游戏也不会存在性能不够的问题了。

简单总结一下,arm将逐渐取代x86,PC的小型化,微型化,甚至可以在手机上运行的桌面环境。

这些只是我对过去的观察思考,以及对未来的预测,它不一定会发生,然而,总结过去和预测将来,尝试抓住一些机会是重要的。就像那位戴眼镜的长者说过的,人的一生,不止要靠自己努力,也要考虑历史行程的影响。

当然写在这里的东西都是一些空泛的思考了,真正觉得有价值可执行去做的事情,是不会公开的。

以前埋头苦干太多,现在则需要多思考,大部分时间战略比战术重要。

过年回老家休息几天。荒芜的院子里到处都是树叶树枝。花了半天打扫了一下。然后点了一把火把这些东西都烧掉。

真是好久没有点过火了,望着熊熊火苗,我开始陷入了沉思。

有很多过于熟悉的东西,我们往往忽略了它的存在,不去问为什么。燃烧的火焰就是其中一个。

火为什么会燃烧会发光发热呢?显然它是一种化学反应,这是我们在课本上学到的。

干枯的树叶和树枝,大部分都是由植物纤维构成。这些纤维是什么呢?是单糖形成的长链。本质上是碳氧氢这些元素组成的巨大的有机化合物。当燃烧发生时它们和空气中的氧气,生成二氧化碳和水。这是燃烧这个过程背后发生的基础的化学反应。

然而我们现在把这些基本的反应放在一边,而把目光仅仅聚焦于燃烧这个过程本身。

基于持续的观察,现在有几个有趣的事实,可以深入研究一下。

首先,烟是往上冒的。你可能会说这是废话,我们当然都知道烟是往上冒的了。然而你还记得刚开始我们说的那句话吗?对于过于熟悉的东西,我们往往会忽略它的存在,而不去思考为什么。

烟的本质是什么?在植物纤维和氧气的剧烈反应当中,肯定会导致整个链条破碎,然后有一些短链或者分子团,会随着剧烈的反应提供的动能而被甩到空气中,这些短链的断开会导致整个物体的破碎,形成各种各样的小颗粒。如果这些小颗粒来不及与氧气彻底的反应,那么就会飘到空气中去。这些微小颗粒以及部分水分混合在一起就组成了烟雾。

如此看来,组成烟雾成分的分子量应该比空气的平均分子量要大得多。那为什么它会往上冒而不是往下沉呢?答案就是温度。

pv=nkt,压强体积不变的话,T升高就意味着n减小。更少的分子个数就意味着更低的密度。用我们的俗话说就是温度升高,气体膨胀,密度减小。

密度减小就很显然了,我们的大气,就像水一样是有浮力的,这些热空气就会往上飘,往上浮,所以说烟是往上冒的,热气球跟它的道理也是一样的。

水的浮力是什么呢?只不过是上下表面之间的水的压力差罢了,空气的浮力也是一样。造成这种现象的核心还是地球的重力,因为重力导致上下表面的压力差。

如果我们在太空无重力环境下点燃一支火柴或者一个蜡烛会是什么情况?应该不会产生像我们看到的那样尖尖的火焰,因为整个燃烧表面压力都是均匀的,产生的火焰应该是球状的。

怀着这样的想法搜索了一下,果然是如我所猜测的那样,甚至可以看到拍的图片。

烟是往上冒的这一点,我们在很多地方都可以利用,比如说烟囱。如果我们有一个很大的可乐罐,两端各开一个口,我们在后面开口用一个很长的导管把它导到一个很高处,然后在前面开口的地方在里边放一些木柴在里面点燃,这个时候,烟一定是顺着后面开口往上冒的,而我们塞木材那个小口,就会只是空气往里面进。这是因为,膨胀的空气会往上浮,而他就会顺着那个导管往上走,往上走产生的吸力会使得空气从我们塞木材那个口里面流入。

而我们广大拥有智慧的劳动人民,在历史的长河中,早就发现了这一点,每个民族造的房子里面都有高耸的烟囱,这样在厨房的屋子里面点火的时候,屋里是没有烟气的,只会顺着烟囱往外冒。

利用这一点,我们也可以构造一些很有趣的取暖装置,可惜在城市的房间里我们无法直接点燃火焰,即使你愿意点,也没有木材可以烧。

如果我们在野外点燃一个火堆会是什么样的情况?假如没有风的情况下,那么火也是往上冒的。周围的空气贴着地面,流向火焰的本身,这个流动的形状就像火字的下半部一样,所以点燃火堆的形状,就跟我们伟大的先人创造了火字一样。

第2个有趣的观察就是火焰是一个缓慢的化学反应过程,它与氧气的反应,有一个速度,缓慢的把这些热量释放出来,不是很快,但也不是很慢。恰巧是达到我们观察到火焰的那种程度。

这个恰到好处的反应速率,意味着我们可以用火焰来烹饪食物,利用火焰来锻造等等。所以我们不该忽略这个反应速率在我们人类文明的诞生和发展中起到的重要作用。

如果这个反应速率过快,能量在一瞬间就被释放出来,那就变成了我们熟悉的爆炸。实际上爆炸也是化学反应,甚至那些炸药的能量密度并不一定比得上其他物质,但是它的反应速率是足够的快,以至于很快很短的时间内就把所有的能量释放出来,这些能量瞬间形成了强大的冲击力。

如果反应速率过慢,我们就会感觉它像铁生锈或者说一些物体腐烂一样,并不会产生明显的火焰。正是能量的速度释放得恰到好处,足够产生光和热,才生出了火焰。一系列的有机碳分子和空气分子的混合物,在一个我们可以见到的火焰的区域内部,发生反应,放出热量,产生我们可以看到的光。

所以如果你仔细的思考这些背后发生的过程,当你看着火焰的时候,看着火苗不停的上穿下穿,意识到背后那些分子剧烈运动碰撞达到更低能量的结构并放出光和热形成的一个区域,就会觉得这是一个很有趣很有意思的一个过程。

第3个有趣的事情是大气中的氧气密度以及二氧化碳的密度,和植物以及燃烧之间的关系的平衡。

如果我们放任植物不停的进行光合作用,那么大气中的二氧化碳会逐渐的被他耗尽。然而我们现实世界中的二氧化碳却是维持在一个稳定的百分比上。

这个原因也可以归结于植物的叶绿素进行光合作用的效率,可能在很久以前大气中的二氧化碳密度很高,但是植物的叶绿素不停的合成,直到达到我们今天空气中二氧化碳的密度,基本上稳定下来。这个速度对植物来说很吃力,如果密度太低的话,植物就无法进行下一步的光合作用。

所以动物的消耗以及各种各样的燃烧,各种各样的产生二氧化碳的活动,也许对整个生物圈的存在运行是不可或缺的一环。这些不断生成二氧化碳的速率,和植物现在光合作用的速率逐渐达到了一个动态的平衡点,也就是我们目前大气中二氧化碳的密度。

我们可以从植物进化中看到一些端倪,我们现在有一些碳三植物和碳4植物。碳4植物的光合效率没有碳3植物高。碳4植物花费更大的能量精力,为的是可以在更低的二氧化碳密度下进行光合作用。之所以会进化出来碳4植物,可能就是因为二氧化碳密度越来越低,导致一些植物消亡,而一些新的植物进化产生吧。

然而人类不断的燃烧排放,产生的二氧化碳的速率已经超过了之前动物们的速率,但是想必植物也会加快它们的光合作用的速率,很多人觉得温室气体的排放是一个问题,其实我觉得未必,可能植物会不断的把这个问题解决掉。

最后这个二氧化碳和氧气浓度的问题,我已经思考了很久,改天有时间的话单独再写一篇吧,现在只是随便突然想起了。

这篇文章是在火边用手机和语音写下的,现在火差不多结束了,所以文章也应该差不多结束了。有句话一直想装逼引用下,今天总算逮到机会了:“火萎了,我也准备走了”。好吧,如果你读过这首诗的话,应该知道其实用在这里是很不吉利的,然而我实在忍不住放弃这么好的装逼机会。