环境,这个词在计算机世界有独特的韵味。
研究一个词,总是乏味而且没有意义的。
但是用另外一种方式去体会它,就感觉能把握它的真谛。
举两个例子。
宿主式环境:
给你一台计算机,又给你搭好了操作系统,Windows或者Unix。
只要你对当前操作系统的开发方式足够了解,就可以完成各种开发任务。
这个是,后端开发(服务端开发)。
服务端,看似和我们很遥远,其实非常近。
游戏、网购、网页。虽然我们看到的是应用层,实际上,功能都是由服务器实现。
自由式环境:
给你一块开发板,有微处理器、ROM等各种电子元件,没有操作系统。
功能代码要自己写,驱动要自己写,接口要自己定义,内存要自己分配,程序要自己烧录。
这个是,嵌入式开发。
嵌入式开发,我可以直接举例子。
冰箱、空调、洗衣机、小型游戏机,所有拆开之后能找到开发板的电器。
有主板,就有程序。
程序早就深入生活。
我们每天使用,受益,却不知道,不了解,甚至无法摆脱!
这真是一个可怕的世界,细思极恐。
只有不断学习,才能削弱我的焦虑。
今天分享程序的执行过程。
程序的执行过程需要经历几个阶段。
首先,程序必须载入到内存中。
在宿主式环境中,这个任务由操作系统完成。全局变量将在这个时候初始化(静态存储区)。
在独立式环境中,程序的载入必须由手工安排,也可能是把代码烧录到ROM中。
然后,程序的执行便开始。
在宿主式环境中,通常一个小型的启动程序与程序链接在一起。它负责处理一系列日常事务,如收集命令行参数。接着,便调用main函数。
现在,便开始执行代码。
在绝大多数机器里,程序将使用一个运行时堆栈,它用于存储函数的局部变量和返回值。这个时候,程序也可以使用静态存储区,存储静态局部变量。
最后一个阶段是程序的终止。
它可以有多种不同的原因引起,可以正常返回,也可以异常终止。
学习新的知识,是一件非常有趣的事。
这是一个探索的过程。
不得不承认,时至今日,我们对计算机、对程序、对C语言的认识都太少。
冰山一角,还不足以帮助我们揭开面纱。
但是,这个过程充满乐趣和希望。
关于柚子编程
致力于零基础入阶编程世界,一周一更
每周日中午12:00准时更新
喜欢记得来一个
领取专属 10元无门槛券
私享最新 技术干货