传统的计算机软件架构

计算机的最大用途是媒介,最大优势是有迹可循,难以说谎,高效。是商业社会发展到比较蓬勃后的产物。

如果把计算机的所有计算资源加电力比作从雪山源源不断流下的河流(原始数据),程序员写代码就是在治水,比如修河道,修分支,修大坝,清理从而控制水源,比如形成喷泉、浇灌农田、去污为居民饮用。本质上是人输入的数据通过了代码的物理结构,引起了代码预先定义好的变动,再发挥了流水的潜力,让流水造福人类的生活。

水源每经过一层,就会发生物理化学变化,水的大小、强弱、性质都不再相同,是从雪山水到河水到自来水,自来水可以成为饮用水、浇灌水、清洁水,饮用水可以成为可乐、茶。接下来,从底层到顶层逐步分析程序员如何将计算资源和电力转化为各种有用的应用。

当然,计算机同样会对水源进行采集,采集过的水源会根据特点,或加工被存储在对应的蓄水池。数据总会与预制的代码相互作用,互相形成预定的改变。水源和河道是化学反应式左边的组成,一个巴掌拍不响。

逐层分析每个层次的软件和硬件基础:

  1. 硬件层(雪山源头)

基础:

  • 硬件:晶体管、电容器、电阻器等电子元件
  • 软件:直接的机器码(虽然通常不被视为"软件")

实现:

  • 通过逻辑门(如AND、OR、NOT)组合这些基本元件
  • 利用半导体物理原理控制电子流动
  1. 处理器层(上游河道)

基础:

  • 硬件:中央处理单元(CPU)、寄存器、缓存
  • 软件:微码、汇编语言

实现:

  • 利用算术逻辑单元(ALU)执行基本运算
  • 通过指令集架构(ISA)定义基本操作
  • 使用微架构设计(如流水线、分支预测)提高效率
  1. 内存和存储层(中游河道)

基础:

  • 硬件:RAM、ROM、硬盘、SSD
  • 软件:内存管理单元(MMU)、文件系统驱动程序

实现:

  • 利用各种存储技术(如SRAM、DRAM、NAND闪存)
  • 通过内存控制器和存储控制器管理数据传输
  • 实现虚拟内存和分页机制
  1. 操作系统层(下游河道)

基础:

  • 硬件:依赖底层硬件,但主要在软件层面实现
  • 软件:操作系统内核、设备驱动程序

实现:

  • 进程管理:调度算法、上下文切换
  • 内存管理:虚拟内存系统、内存分配算法
  • 文件系统:目录结构、文件操作API
  • 设备管理:设备驱动程序接口
  1. 应用层(自来水厂)

基础:

  • 硬件:主要依赖底层硬件,但可能有特定硬件加速(如GPU)
  • 软件:应用程序代码、库、框架、编程语言运行时

实现:

  • 高级编程语言(如C++、Java、Python)
  • 应用程序编程接口(API)
  • 特定领域框架(如机器学习框架、图形处理库)
  1. 用户界面层(家庭用水)

基础:

  • 硬件:显示器、触摸屏、键盘、鼠标等输入输出设备
  • 软件:图形用户界面(GUI)库、渲染引擎

实现:

  • 窗口管理系统
  • 事件处理机制
  • 图形渲染技术(如OpenGL、DirectX)
  • 用户交互设计原则

通过这个层层递进的过程,程序员将基本的计算资源和电力转化为复杂的应用生态系统。每一层都建立在前一层的基础之上,通过抽象和封装,使得上层开发者能够专注于更高级的功能实现,而不必过多关注底层细节。

这个过程体现了软件工程的一个核心原则:分层抽象。通过这种方式,程序员能够协作构建出极其复杂的系统,最终创造出改变我们生活方式的各种应用。

对准确度要求不高的场景,都会迅速走向强数据编程。游戏之所以一开始就强数据编程,因为数据都是虚拟的,可mock。而真实场景下的编程,受限于数据获取,只能从弱数据编程开始,但随着优质真实数据的积累,会不断向将人类从程序中解放出来的目标前进。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值