程序中包含着很多内容:运行环境=操作系统+硬件,应用的运行环境通常是用类似于Windows(OS)和AT兼容机(硬件)这样的OS和硬件的种类来表示的。
同一类型的硬件可以选择安装多种操作系统。例如,同样的AT兼容机中,既可以安装Windows,也可以安装Linux等操作系统。不过,Windows及Linux操作系统也存在多种版本。根据应用的具体情况,有时只有在特定版本的操作系统上才能运行。CPU只能解释其自身固有的机器语言。不同的CPU能解释的机器语言的种类也是不同的。例如,CPU有x86、MIPS、SPARC、PowerPC”等几种类型,它们各自的机器语言是完全不同的。机器语言的程序称为本地代码(native code)。程序员用C语言等编写的程序,在编写阶段仅仅是文本文件。文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。
计算机的硬件并不仅仅是由CPU构成的,还包括用于存储程序指令和数据的内存,以及通过I/O连接的键盘、显示器、硬盘、打印机等外围设备。
应用软件则必须根据不同的操作系统类型来专门开发。CPU的类型不同,所对应的机器语言也不同,同样的道理,操作系统的类型不同,应用程序向操作系统传递指令的途径也是不同的。应用程序向操作系统传递指令的途径称为API(ApplicationProgramming Interface)“。Windows及Unix系列操作系统的API,提供了任何应用程序都可以利用的函数组合。因为不同操作系统的API是有差异的,因此,将同样的应用程序移植到其他操作系统时,就必须要重写应用中利用到API的部分。像键盘输入、鼠标输入、显示器输出、文件输入输出等同外围设备进行输入输出操作的功能,都是通过API提供的。在同类型操作系统下,不管硬件如何,API基本上没有差别。因而,针对某特定操作系统的API所编写的程序,在任何硬件上都可以运行。
利用虚拟机获得其他OS环境:Virtual PC for MAC可以使Macintosh 这一硬件变得同AT兼容机一样,从而能在该硬件上安装Windows。这样一来,Windows 下的所有应用就都可以正常运行了。Windows应用利用的是Windows操作系统的API。虽然表面上是Windows将硬件处理为了AT兼容机,但由于Virtual PC for MAC的作用,实际上运行的是Macintosh这一硬件。
Java 也是将Java语法记述的源代码编译后运行。不过,编译后生成的并不是特定CPU使用的本地代码,而是名为字节代码的程序。字节代码的运行环境就称为Java虚拟机(JavaVM,Java Virtual Machine)。Java虚拟机是一边把Java字节代码逐一转换成本地代码一边运行的。
BIOS(Basic Input/Output System)的系统。BIOS存储在ROM中,是预先内置在计算机主机内部的程序。BIOS除了键盘、磁盘、显卡等基本控制程序外,还有启动“引导程序”的功能。引导程序是存储在启动驱动器起始区域的小程序。操作系统的启动驱动器一般是硬盘,不过有时也可以是CD-ROM或软盘。
标签:硬件,Java,操作系统,Windows,程序,何种,API,第七章 From: https://www.cnblogs.com/locojo/p/17145533.html