公司动态

从你敲下代码,到CPU执行,中间到底发生了什么?

📅 2026/8/2 5:03:38
从你敲下代码,到CPU执行,中间到底发生了什么?
你写下一行代码printf(Hello World);点了一下运行。屏幕上蹦出来一行字。就这么简单不。这背后经历了一场“变形记”。一、CPU是个“文盲”你写的代码CPU一个字都看不懂。CPU只认得一种东西0和1。机器语言printf是什么不认识。它眼里只有010101。二、翻译官上场编译器就是那个翻译官。你写C语言CPU听机器语言。编译器把你这头的人话翻成那头CPU能听懂的二进制指令。代码 → 编译器 → 二进制机器指令翻完之后生成一个可执行文件里面全是CPU能看懂的东西了。三、操作系统把程序搬进内存你双击运行操作系统把这个文件从硬盘搬到内存里。然后告诉CPU“从这开始执行吧。”CPU收到开始干活。四、CPU像个流水线工人CPU干活就四步一直循环取指 → 译码 → 执行 → 写回一秒几十亿次。不思考只干活。五、但是事情没那么简单如果故事到这就结束操作系统这门课一节课就能讲完。问题是程序跑起来会出乱子——想偷内存、想霸占CPU、想关机。所以指令被分了等级非特权指令谁都能执行比如加法特权指令只有管理员能执行比如关机那问题来了CPU怎么知道当前这条指令到底有没有资格执行答案是CPU内部有硬件电路专门做这个检查。发现没资格会触发中断由操作系统来处理。具体怎么查、查完发生什么——下篇讲。今天你记住三件事1你写的代码CPU看不懂需要编译器翻译成0和12CPU执行就是一条接一条循环四步走3指令分等级CPU有硬件机制做检查严谨说明为了帮助读者建立清晰、无负担的认知框架本文做了刻意简化。本文每一处简化都是在“保证不误导”的前提下为“降低认知门槛”服务的。