(七)程序是在何种环境中运行的

1. 运行环境 = 操作系统 + 硬件

操作系统和硬件决定了程序的运行环境。

同一种类型的硬件可以选择安装多种操作系统。

从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数。

CPU只能解释其自身固有的机器语言。


机器语言的程序称为本地代码(native code)。

程序员用C语言等编写的程序,在编写阶段仅仅是文本文件。文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。我们称之为源代码。

通过对源代码进行编译,就可以得到本地代码。



2. 不通操作系统的API不同

应用程序向操作系统传递指令的途径称为API(Application Programmig Interface)。

在同类型操作系统下,不管硬件如何,API基本上没有差别。

因而,针对某特定操作系统的API所编写的程序,在任何硬件上都可以运行。

当然,由于CPU种类不同,机器语言也不相同,因此本地代码当然也是不同的。

这种情况下,就需要利用能够生成各CPU专用的本地代码的编译器,来对源代码进行重新编译了。



3. 提供相同运行环境的Java虚拟机

大家说的Java,有两个层面的意思。一个是作为编程语言的Java,另一个是作为程序运行环境的Java。

同其他编程语言相同,Java也是将Java语法记述的源代码编译后运行。

不过,编译后生成的并不是特定CPU使用的本地代码,而是名为字节代码的程序。

字节代码的运行环境就称为Java虚拟机(JavaVM, Java Vitual Machine)。

Java虚拟机是一边把Java字节代码逐一转换成本地代码边运行的。



4. BIOS和引导

程序的运行环境中,存在着名为BIOS(Basic Input Output System)的系统。

BIOS存储在ROM中,是预先内置在计算机主机内部的程序。

BIOS除了键盘、磁盘、显卡等基本控制程序外,还有启动“引导程序”的功能。

引导程序是存储在启动驱动器起始区域的小程序。

操作系统的启动驱动器一般是硬盘,不过有时也可以是CD-ROM或软盘。

开机后,BIOS会确认硬件是否正常运行,没有问题的话就会启动引导程序。

引导程序的功能是把在硬盘等记录的OS加载到内存中运行。

虽然启动应用是OS的功能,但OS井不能自己启动自己,而是通过引导程序来启动。





参考

《程序是怎样跑起来的》 —— 7. 程序是在何种环境中运行的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值