最近因为一个项目需要,对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植物,可能就是因为二氧化碳密度越来越低,导致一些植物消亡,而一些新的植物进化产生吧。

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

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

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