《程序是怎样跑起来的》第七章

首先作者就告诉了我们操作系统和硬件决定了程序的运行环境。

CPU只能解释其自身固有的机器语言。不同的CPU能解释的机器语言的种类也是不同的。机器语言的程序称为本地代码。程序员用C语言等编写的程序,在编写阶段仅仅是文本文件。文本文件在任何环境下都能显示和编辑。我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。

Windows 克服了CPU以外的硬件差异,在Windows的应用软件中,键盘输入、显示器输出等并不是直接向硬件发送指令,而是通过向Windows发送指令来间接实现的。因此,程序员就不用注意内存和IO地址的不同构成了。

CPU的类型不同,所对应的机器语言也不同,同样的道理,操作系统的类型不同,应用程序向操作系统传递指令的途径也是不同的。应用程序向操作系统传递指令的途径称为API,Windows 及Unix系列操作系统的API,提供了任何应用程序都可以利用的函数组合。因为不同操作系统的API是有差异的,因此,将同样的应用程序移植到其他操作系统时,就必须要重写应用中利用到API的部分。

Java将Java语法记述的源代码编译后运行。不过,编译后生成的并不是特定CPU使用的本地代码,而是名为字节代码的程序。字节代码的运行环境就称为Java虚拟机。Java 虚拟机是一边把Java字节代码逐转换成本地代码一边运行的。因此运行速度较慢。

程序的运行环境中,存在着名为BIOS 的系统。BIOS 存储在ROM中,是预先内置在计算机主机内部的程序。它可以启动“引导程序”的功能。引导程序是存储在启动驱动器起始区域的小程序。它可以启动操作系统。

posted @ 2019-03-31 22:02  封爵古怪  阅读(320)  评论(0编辑  收藏  举报