程序的运行环境=操作系统+具体硬件硬件核心考虑参数为CPU,不同的CPU指令集不同,能解释的机器语言种类也不同,其只能解释自身的机器语言,也就是常说的cpu指令集
常见的有:x86、MIPS、SPARC、PowerPC
本地代码:通过将源代码进行编译后生成的机器语言的程序成为本地代码(机器直接运行的代码)
源代码:通过文本编辑工具书写的各类语言代码(高级代码,人更容易理解编写)
windows应用程序的本地代码,通常是exe文件及dll文件等形式,CPU负责解析并运行从源代码编译而来的本地代码。
由于内存、IO等不同的硬件设备地址构成不同,因此在早期操作系统不够完善时,所开发的应用软件存在直接操作计算机硬件的部导致了不同硬件的计算机需要针对改硬件进行应用软件适配,造成了资源浪费。随着操作系统的晚上,这种情况得到改善,应用并不直接操作计算机硬件,而是通过操作系统提供的AP I接口进行实现相关功能,与计算机硬件的操作全部交予操作系统进行处理,在适配上针对不同的硬件,只需要进行操作系统的适配,只要操作系统能正常运行,同样的软件就可以运行,大大提高了利用效率。
由于应用软件都是使用特定的CPU的本地代码完成,因此操作系统当前还不能克服CPU的差异。
不同的操作系统API不同:
由于不同的操作系统所提供的API路径调用方式等不同,因此应用软件必须根据不同操作系统来做开发,将程序移植到其它操作系统时,需要重写应用中利用到API的部分
相同操作系统下API调用方式一致,因而针对某特定类型操作系统开发的应用,在任何安装改操作系统的硬件上都可以运行
通过源代码分发实现克服CPU差异:
通过结合当前运行的硬件环境来编译应用的源代码,生成本地代码,实现克服CPU差异
BIOS:基本输入输出系统,存储在ROM中,是预先内置在计算机主机内部的程序,可以控制键盘、磁盘显卡和启动引导程序的功能