操作系统实战45讲-学习笔记1

本文详细介绍了程序从代码到运行的全过程,包括预处理、编译、汇编、链接等步骤,以及gcc命令在各阶段的作用。深入探讨了冯诺依曼体系结构中的五大基础组件,并指出现代计算机如何实现程序读取数据和控制流程。同时,文章通过"call"和"ret"指令解释了函数调用和返回的逻辑,强调了栈在其中的作用。最后,鼓励读者在学习操作系统的过程中保持热情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 程序的运行过程:从代码到机器运行

程序编译过程

它会根据编译流程分别调用预处理程序、编译程序、汇编程序、链接程序来完成具体工作。

原来简单的一行"helloworld" ,底层也有这么多道工序组成,长见识了。

gcc HelloWorld.c -E -o HelloWorld.i 预处理:加入头文件,替换宏。

gcc HelloWorld.c -S -c -o HelloWorld.s 编译:包含预处理,将 C 程序转换成汇编程序。

gcc HelloWorld.c -c -o HelloWorld.o 汇编:包含预处理和编译,将汇编程序转换成可链接的二进制程序。

gcc HelloWorld.c -o HelloWorld 链接:包含以上所有操作,将可链接的二进制程序和其它别的库链接在一起,形成可执行的程序文件。

程序装载执行

图灵机概念

抽象出卡带的概念,从头到尾读取指令,逐句执行,不过这个阶段仅仅停留在概念阶段

下一个阶段则到了我们熟知的冯诺依曼体系结构

到了这个阶段提出完整的计算机需要具备的五大基础

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pmghong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值