程序是在何种环境中运行的
1.CPU只能解释其自身固有的机器语言。不同的 CPU能解释的机器语言的种类也是不同的。 它们各自的机器语言是完全不同的。机器语言的程序称为本地代码(nativecode)。 程序员用C语言等编写的程序,在编写阶段仅仅是文本文件。 文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。 我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。 在市面上出售的用于Windows的应用软件包CD-ROM中,收录的就不是源代码, 而是本地代码
2.应用程序向操作系统传递指令的途径称为API ( ApplicationProgramming Interface )。Windows 及Unix 系列操作系统的API,提供了任何应用程序都可以利用的函数组合。 因为不同操作系统的API是有差异的,因此, 将同样的应用程序移植到其他操作系统时, 就必须要重写应用中利用到API的部分。像键盘输人、 鼠标输人、显示器输出、文件输入输出等同外围设备进行输入输出操作的功能,都是通过API提供的。在同类型操作系统下,不管硬件如何, API基本上没有差别。因而,针对某特定操作系统的 API所编写的程序,在任何硬件上都可以运行。当然,由于CPU种类不同, 机器语言也不相同,因此本地代码当然也是不同的。这种情况下, 就需要利用能够生成各CPU专用的本地代码的编译器,来对源代码进行重新编译了。程序(本地代码) 的运行环境是由操作系统和硬件来决定的。
在程序运行时, 将编译后的字节代码转换成本地代码, 这样的操作方法看上去有些迂回, 但由此可以实现同样的字节代码在不同的环境下运行。 如果能够结合各种类型的操作系统和硬件作成 Java虚拟机,那么, 同样字节代码的应用就可以在任何环境下运行了
3.程序的运行环境中,存在着名为BIOS(Basic Input/Output System)的系统。BIOS存储在ROM中, 是预先内置在计算机主机内部的程序。BIOS除了键盘、磁盘、 显卡等基本控制程序外,还有启动 “引导程序”的功能。引导程序是存储在启动驱动器起始区域的小程序。操作系统的启动驱动器一般是硬盘,不过有时也可以是 CD-ROM或软盘。