电子在原子核周围旋转,构成了原子,原子构成了分子。
电子的定向移动形成电流, 各种电子元件一起组成基本的电路。
模拟电路, 数字电路, 各种逻辑门电路。
逻辑门电路组装成各种芯片。
继续组装可以构成集成电路, 超大规模集成电路, 于是有了各种各样的开关, 数以亿计的开关。
可以通过拨弄各种开关来控制cpu, 但是这样很麻烦, 于是在纸带上打孔, 表示0/1, 对应开关, 控制一次后, 轻松地同样控制第二次, 实现程序化操作, 简化了重复操作, 于是纸袋上的孔就有了程序的感觉, 这就是程序存储和控制的启蒙。
纸带打孔太麻烦,还是用可修改0/1标记的存储才更好, 所有的程序都在存储中, 这就是程序存储的发展。
通过程序直接操作硬件太麻烦, 还是让操作系统和驱动程序来做吧。 同理,二进制的机器语言太麻烦, 还就用汇编语言、高级语言吧。编译器和汇编器来转换, 放心。
在操作系统上, 用高级语言写程序, 貌似很好, 但写着写着, 也累, 每次都要写类似的通用程序, 于是框架出现了, 框架处理了一些通用的逻辑。当然, 还有一种特殊的操作, 即在操作系统上, 虚拟出一台硬件机器, 其实就是虚拟机, 虚拟机有cpu, 有内存, 有这有那, 在这台虚拟的硬件机器中再安装操作系统, 再搭建框架。
在框架中, 写程序, 实际上就是朝框架式大厦结构中插入砖、窗等, 相当于是业务插件开发。有时候,开发业务插件时,可能还会用到数据库、第三方库之类的东西,实际上就是别人提供API,然后你调用API的行为。
层层抽象后,越来越接近本质。
所谓的逻辑, 只是各种开关的组合, 而软件开发就是倒腾和控制各种开关, 仅此而已。