用AI 之前,掌握点软件工程思维
小何学 AI,AI时代的软件工程思维 · 系列 01
你有没有想过,你每次点开微信、抖音、淘宝的时候,手机到底在干嘛?这一篇,我们就从最底层开始聊。
写在前面
我们都想成为 AI builder,却不知道怎么跟 AI 沟通——不知道自己的agent到底在干啥。
所以我决定,与其去记一堆名词,不如回去把软件工程的思维补一遍。我想要的不是"会一行一行写代码",而是"知道它在做什么、为什么这么做"。
为什么是"思维"而不是"技能"?因为我本科是通信工程,学过模电、数电、信号与系统、数字信号处理、通信原理等这一堆专业课。具体内容早就忘光了,但有一类东西留下来,受益至今:工程思维和系统框架。
比如模电里有个概念叫"反馈回路"——当时一直没听懂具体如何实现的。但越到后来越发现,这个概念能让我们受益终身:无论一个反馈结果是好还是坏,只要有反馈,就是最好的。 任何能被观察、被调整的回路,都比"埋头黑盒干活"强。信号与系统,当时老师说的最多的一句话就是给系统一个刺激,它就会有一个响应。其实就对应了我们现在经常说的【输入、系统处理、输出】,原来大道至简确实是真的。通信原理也一样。我当时还专门写过一篇公众号文章,叫像通信系统一样沟通
学软件工程,我打算也用这种思路。不是背名词,是去理解它背后的回路——硬件怎么托起软件,操作系统怎么协调所有程序,应用是怎么一步步被构建出来的。
前几天我打开电脑的任务管理器(Mac 叫"活动监视器"、Windows 叫"任务管理器"),屏幕上同时跑着几十个进程——于是就有了这一篇。
01 · 一台什么应用都没装的设备,本质上是什么
假设我们有一台刚买的手机,或者一台新电脑。
在它上面什么应用都没装的时候——微信、抖音、淘宝(后文我说的应用就是这些app)一个也没有——它本质上就是一堆物理硬件:屏幕、电池、摄像头、里面的芯片。
这些零件摸得到、看得见,但它们自己不会跑任何应用。
02 · 为什么这台裸机又能跑应用?因为装了操作系统
这就引出了一个问题:
为什么同一个硬件,能跑那么多不同的应用?
答案很简单:因为我们装了一个操作系统。
操作系统的作用,就是做一层抽象,让所有应用都能适配在这台硬件上跑。
如果没有操作系统,每一个应用都得自己去处理"屏幕怎么显示、声音怎么播放、文件怎么存"——每个应用都要重复造一遍轮子,根本没法合作。
装了操作系统之后,所有应用都通过统一的方式跟硬件打交道,开发者只需要专心做自己的功能,不用关心具体硬件型号的细节。
操作系统也分"生态"
我们日常接触的操作系统,其实分两大类:
苹果生态——苹果公司自己做的,从电脑到手机统一一套:
- macOS:装在 Mac 系列电脑上的
- iOS:装在 iPhone 和 iPad 上的
其他生态——多家公司在做,各有侧重:
- Windows:电脑上最常见的操作系统
- Android(安卓):手机上最常见的操作系统
- Linux:服务器和开发者圈子里最常见
- 鸿蒙:华为生态的操作系统
理解了这一点,你就明白为什么很多软件"苹果版"和"安卓版"长得不一样——不是开发者偷懒,是两边的操作系统不一样,应用要分别去适配。
03 · 那应用、程序、进程,又是什么
装好操作系统之后,我们才能装应用。
应用:你点开图标看到的那个东西。微信、抖音、淘宝、Obsidian,全是应用。应用是"给用户用的产品"。
但应用这个东西,不能光说"你看到的就是它"。它背后还要再拆一层:
程序:一份写好的"说明书",存在手机/电脑的存储里,但还没跑起来。它是"死的"。微信这个 APP 里,其实装着好几份程序(一份管聊天界面、一份管消息推送、一份管视频播放)。
进程:你打开应用之后,手机/电脑给这份说明书分配的"专属小房间"。它是"活的",正在小房间里干活。
所以它们的层次是:
应用(你看到的微信、抖音) ↓ 里面装着程序(一份份"说明书",存在手机里) ↓ 你打开之后进程(手机开的"小房间",正在干活)最重要的三道边界:
程序不是进程。微信 APP 是"程序",是你下载到手机/电脑里的那一份;你点开微信,手机给它开了一个"小房间",这才是"进程"。小房间可能有好几个(你可能同时开两个微信窗口),但 APP 只有一份。
应用不等于一个进程。一个微信 APP 看起来是一个东西,但它的背后可能有好几个"小房间"在同时干活:一个负责聊天界面,一个负责接收新消息,一个负责播放语音。所以你打开任务管理器,会看到"微信"下面挂着好几个进程。
处理器不等于进程。处理器(CPU)是手机里那块真正干活的芯片;进程是操作系统为了"组织一次任务"造出来的概念,可以理解为"一支小团队"。芯片是身体,团队是组织方式。
一句话总结:应用是你能用的产品;程序是产品的"菜谱";进程是"正在炒菜的厨师"。菜谱只有一份,但厨师可以有好几个。
04 · 你点开微信,背后发生了什么
想验证上面这套关系,最直接的办法就是去看任务管理器。
打开电脑的任务管理器,找到微信。你会看到至少三四个名字带"微信"的东西:
- 一个主进程(带微信图标)
- 几个辅助进程(一个管消息推送、一个管语音、一个管视频)
它们的代码都来自同一个 APP 包,但每个都有自己的"小房间"、都在独立占内存、都在排队等着被处理器处理。
这一下就把"程序"和"进程"的关系验证清楚了:
同一个 APP,可以装好几份程序,也可以同时开好几个小房间来干活。
05 · 为什么微信要把活拆给好几个"小房间"
既然多个"小房间"要花更多资源(每个都要占内存、都要排队、房间之间还要互相传话),为什么微信还要这么做?
收益:隔离。你正在语音聊天的时候,某个辅助的小房间突然卡了,主聊天界面还能用。如果所有功能都挤在一个房间里,一个地方出错,整个微信就崩了。
代价:资源。每个小房间都要单独占一块内存,都要在处理器上排队等调度,房间之间传话还要走额外的"传话机制",不是免费的。
一句话总结:多进程 = 用更多资源,换更小的爆炸半径。一个小房间出事了,其他房间还能继续干活。
06 · 我以前学的通信工程,对应的是哪一层
我自己本科是通信工程。当年学单片机、微机原理,主要在认识硬件:处理器怎么取指令、寄存器怎么存数据、总线怎么传信号。
那时候的我,还没有软件工程的思维,甚至不知道什么是操作系统。
但这次重新学,我才明白:硬件是身体,操作系统是协调中心,应用是你对外能看到的表情和动作。
更准确的关系是:
应用(你看到的微信、抖音、淘宝) ↓让程序能跑起来的"环境" ↓程序向操作系统提需求的方式 ↓操作系统内核(真正的大管家) ↓让管家能指挥具体硬件的"翻译官" ↓硬件(屏幕、电池、芯片)操作系统,是通用手机和电脑里"应用"和"硬件"之间最关键的桥梁。
但它不是唯一的一层:
- 智能手表的程序很精简,往往没有完整的操作系统;
- 一些小的智能设备里,程序直接驱动硬件,操作系统非常薄。
所以更准确的说法是:操作系统是"通用、多任务设备"里连接应用需求与硬件资源的核心桥梁,但不是所有设备都必须具备的一层。
写在最后
学完这一节,我最大的收获是:再也不要小看"打开应用"这件事。
你点一下微信图标,背后是操作系统在帮你做一整套安排:
找到手机里那份微信的代码 → 给它分配一块独立的小房间 → 在处理器上排队 → 把屏幕、麦克风、扬声器的权限开给它 → 出问题了再回收资源。
这整套动作,每一秒都在发生,只是你看不见。
下一节,我们继续往上走一层,看看一个应用是怎么被"架构"出来的——前端、后端、数据库怎么分工,谁拥有数据,状态归谁管。
这些不是程序员的专属知识,是每一个想真正用好 AI 的人,都该补上的第一张地图。
#软件工程基础 #AI学习 #操作系统 #非技术人学AI #小何学AI
夜雨聆风