应用的运行环境:操作系统和计算机本身(硬件)的种类
Macintosh用的操作系统(MacOS)在AT兼容机上无法运行
Windows上的应用在MacOS上无法运行
在Macintosh上可以利用的windows环境模拟器称为Virtual PC for Mac
FreeBSD提供的Ports指通过源代码提供应用,并根据运行环境整合编译,从而在该环境运行的机制
Java虚拟机运行Java应用的字节代码。
运行环境不同,程序无法运行。
运行环境=操作系统+硬件 即操作系统和硬件决定了程序的运行环境
同一类型的硬件可以选择安装多种操作系统
例如·:同样的AT兼容机,既可以安装windows,也可以安装Linux等操作系统
从程序的运行环境这一角度考量硬件时,CPU的种类是特别重要的参数。
CPU只能解释自身固有的机器语言,不同的CPU解释的机器语言也是不同的
机器语言的程序称为本地代码。
程序员用C语言等编写的程序,在编写阶段称为文本文件,文本文件在任何环境下都能显示和编辑。这便叫做源代码通过对源代码进行编译就得到本地代码
Windows操作系统对克服这些硬件构成的差异做出了很大供献
在windows的应用软件中,键盘输入、显示器输出等不是直接相应件发出指令,而是通过向windows发送指令间接实现的
Windows应用基本上都是windows完成对硬件的控制
然而即便是windows,也无法吸收CPU类型的差异,因为windows应用软件都是用特定的CPU的本地代码完成的
不同操作系统的API不同
CPU不同,对应的机器语言也不同; 操作系统不同,应用程序向操作系统传递指令的途径也不同
应用程序向操作系统传递指令的途径称为API, windows1及Unix系列操作系统的API,提供了任何应用程序都可以利用的函数组合。 不同操作系统的API有差异,将同样的应用程序移植到其他操作系统,就要重写应用中利用到API的部分·
同外围设备进行输入输出操作的功能都通过API提供。
FreeBSD Port轻松使用源代码
CPU类型不同会导致同样的本地代码无法重复利用
FreeBSD中,存在Ports机制,该机制可以结合当前运行的硬件环境编译应用的源代码,进而得到可以运行的本地代码系统。目标应用的源代码不在硬件上的话,Ports就自动使用FTP连接到相关站点下载代码 porting(移植)
利用虚拟机也可以获得其他操作系统环境
Virtual PC for MAC该虚拟机可以再Macintosh的Mac操作系统运行windows应用
同其他编程语言一样,java也是将java语法记述的源代码编译后运行,但是编译后生成的不是特定的CPU本地代码,而是名为字节代码的程序 字节代码运行的环境就是java虚拟机。 Java虚拟机一边吧java字节代码逐一转化成本地代码一边运行。
结合各类操作系统和硬件作成java虚拟机,同样的字节代码的应用就可以在任何环境运行了。
Java虚拟机缺点:不同的java虚拟机不能进行完整互换。运行速度慢。
程序的运行环境,有BIOS的系统。BIOS存储在ROM中,BIOS有基本控制对于键盘、显卡、磁盘等。还有启动“引导程序”的功能
引导程序是存储在启动驱动器的小程序