运行环境=操作系统+硬件
操作系统和硬件决定了程序的运行环境
同一类型的硬件可以选择安装多种操作系统。
从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数。CPU只能解释其自身固有的机器语言。不同的CPU能解释的机器语言的种类也是不同的。机器语言的程序称为本地代码native code。程序员用C语言等编写的程序,在编写阶段仅仅是文本文件,我们称之为源代码。文本文件在任何环境下都能显式和编辑。通过对源代码进行编译,就可以得到本地代码。
操作系统接管了硬件,并提供了硬件操作 如显示器、键盘等硬件的 API,应用程序在操作系统的管理下执行,因此应用程序只能调用 操作系统提供的 API 来操作硬件。当在同一类型的操作系统上,API 不变的情况下,程序也不需要什么变动,如果是从 Windows 换为 Linux 下执行,可能需要改变调用的 API。
应用程序由 CPU 运行,而 CPU 自身有它所支持的指令集,因此应用程序在编译时,需要编译成该 CPU 所支持的指令,才能在这个 CPU 上运行,如果编译的时候指定了某种指令集,而这种指令集也不是当前 CPU 所支持,那么该应用程序在运行时,会有非法指令的报错。
所以说:程序(可执行程序)的运行环境是由操作系统和硬件来决定的。