先看图
图片来自《科学松鼠会》,很棒的探索新知的网站:)
生物信息学里把DNA序列看成生物体的操作系统,这张图左侧是大肠杆菌的控制网络,右侧是Linux系统的。
生物体系统本身是非常健壮的,这张图显示,在底层,大肠杆菌有很多层次的供调用资源,因此自恢复能力很强,而我们的计算机系统庞大的上层软件都依赖一个小小的CPU和之上的操作系统内核。
于是,操作系统,编译器中,稍微一个小bug都会导致上层出错,进而整个系统不再可靠。当我们还在抱怨CISC指令系统多么多么复杂,X86指令集和体系结构多么多么混乱,RISC多么多么简洁的时候,有没有想过,简单的系统设计往往意味着健壮性的缺失。我个人非常喜欢简单高效的实现,但我们必须接受一个健壮的系统需要臃肿和冗余的现实。
我们的多核CPU就是实现冗余的契机。又多了一个程序员必须学习并行编程的有利论据!当然也别想着我们的计算机系统能简单的让所有的核都能时刻在我们需要他的时候,对我们的请求快速反应。不需要它时,自觉的自我运行,优化我们计算机中的程序。难!
又或许,所谓的云集算才是真正的冗余保证,云计算系统内部的健壮性又如何保证呢?大量的测试?抑或是继续冗余的CPU和虚拟化技术,最后这些都要回归到那些010101010的bit流,哪里才是回归简洁的地方,就像DNA中的四个碱基一样。 未来太令人期待了!
我们必须要系统健壮起来,只有这样,才能让它更有效率更健壮的运转下去。可靠性设计将会越来越重要。多核,众核,云计算来吧!
PS:现在的多核的核数还远远不够,而且现在的半导体制造技术也很落后。其实8核的CPU在出厂时,至少是有9个以上的核的,因为有成品率问题,到了用户手里时,已经经过检测,只打开了8个核而已。以后咱不超频了,超核!


你对这张图的解读比原版的解读更好。原版干脆就说到生物学去了。
@donghao, 很高兴你能喜欢:)
不得不佩服国外的科学家考虑问题的思维方式
@樊文生, 他们有时间和精力去想这些。而我们要拉项目,搞工程,凑文章数,翻围墙查资料,还得和那些专家组搞好关系,最后还得去向官老爷们献媚。
唉。
@erlv, 说的也对。老外的也一样,不过中国现在可能是学得过头了。
Pingback: 《编译点滴》半年记 « 编译点滴
我也是喜欢这个图,其实健壮性和自发性的选择如果发生在编译/执行/按需判断的各个部分,那么人工所要做的事情就会变得很少了