《程序是怎样跑起来的》读后感——第七章 程序是在何种环境中运行的
在读完了本章后,我了解到本章的主要核心是解释程序的运行环境。 在本章开篇我就了解到,程序包含运行环境。而由书中图可知,在表示程序的运行环境时,列出了操作系统和计算机主机,由此可见,操作系统和硬件决定了程序的运行环境。从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数。它只能解释其自身固有的机器语言。而且不同的CPU 能解释的机器语言的种类也是不同的。机器语言的程序称为本地代码。程序员用C语言等编写的程序,在编写阶段仅仅是文本文件。文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。在市面上出售的用于Windows的应用软件包CD-ROM中,收录的就不是源代码,而是本地代码。Windows系统能够克服CPU以外的硬件差异。应用程序向操作系统传递指令的途径称为API ,Windows及Unix系列操作系统的API,提供了任何应用程序都可以利用的函数组合。 像键盘输入、鼠标输入、显示器输出、文件输入输出等同外围设备进行输入输出操作的功能,都是通过 API提供的。另外,针对某特定操作系统的API所编写的程序,在任何硬件上都可以运行。 由于CPU种类不同,机器语言也不相同,因此本地代码当然也是不同的。这种情况下,就需要利用能够生成各CPU专用的本地代码的编译器,来对源代码进行重新编译了。原代码的使用通常会复杂,但FreeBSD Port 会帮你轻松使用源代码。通过利用虚拟机,我们就可以在Macintosh的Mac操作系统上运行Windows应用 。除虚拟机的方法之外,Java也能够提供不依赖于特定硬件及操作系统的程序运行环境。大家说的Javu,有两个层面的意思。一个是作为编程语言的Java,另一个是作为程序运行环境的Java。同其他编程语言相同,Java也是将Java 语法记述的源代码编译后运行。不过,编译后生成的并不是特定CPU使用的本地代码,而是名为字节代码的程序。字节代码的运行环境就称为Java 虚拟机 。Juva 虚拟机是一边把Javu 字节代码逐一转换成本地代码一边运行的,这也导致此方法的运行速度慢。为此,业界也在着手改变这一问题。
浙公网安备 33010602011771号