心得:了解了应用程序的运行环境,简单了解了源代码和本地代码
知识点:
1.运行环境
* 应用的运行环境指的是操作系统和计算机本身(硬件)的种类。通常是用类似于Wundows(OS)和AI兼容成硬件这样的OS和硬件的种类来表示的。操作系统和硬件决定了程序的运行环境,同一类型的硬件可以选择安装多种操作系统。CPU只能解释其自身固有的机器语言,不同的CPU能解释的机器语言的种类也是不同的
2. 本地代码,即机器语言的程序
3. 源代码,即文本文件(排除文字编码的问题)在任何环境下,都能显示和编辑通过对源代码进行编译就可以得到本地代码
4. Windows克服了CPU以外的硬件差异
* 只要Windows可以正常运行,同样的应用(本地代码)在任何机型上都是可以运行的
* 在Windows 的应用软件中,键盘输入、显示器输出等并不是直接向硬件发送指令,而是通过向Windows发送指令来间接实现的。因此,程序员就不用注意内存和I/O地址的不同构成了。
* Windows本身则需要为不同的机型分别提供专用的版本。即便是Windows,也依然无法吸收CPU类型的差异。
* 应用软件 必须根据不同的操作系统类型来专门开发。 操作系统的类型不同,应用程序向操作系统传递指令的途径也是不同的。
应用程序向操作系统传递指令的途径称为 API ( Application Programming Interface )。 Windows 及 Unix 系列操作系统的 API ,提供了任何应用程序都可以利用的函数组合。
在同类型操作系统下,不管硬件如何, API 基本上没有差别。因而,针对某特定操作系统的 API 所编写的程序,在任何硬件上都可以运行。
5. 获得其他操作系统环境的方法
* 移植
Unix系列操作系统FreeBSD中,存在一种名为Ports的机制。它能够结合当前运行的硬件环境来编译应用的源代码,进而得到可以运行的本地代码系统。FreeBSD上应用的源代码大部分都是用C语言来记述的,C编译器可以结合FreeBSD的运行环境生成合适的本地代码,可以说Ports能够克服包含CPU在内的所有硬件系统的差异,而且这个术语表示的是porting(移植)的意思,根据不同的运行环境来重新调整程序,一般也称为“移植”
* 虚拟机
利用虚拟机软件也可以获得其他操作系统环境。虽然运行速度有点慢,但能正常运行
* Java
我们常说的JAVA有两层意思,一是作为编程语言的JAVA,另一个是作为程序运行环境的JAVA。JAVA也是将JAVA语法记述的源代码编译后运行。不过,编译后生成的是名为字节代码的程序。字节代码的运行环境就称为JAVA虚拟机。JAVA虚拟机是一边把JAVA字节代码逐一转换成本地代码一边运行的。Windows有专用的JAVA虚拟机,Macintosh也有专用的JAVA虚拟机。从操作系统方面来看,JAVA虚拟机是一个应用;从JAVA应用方面来看,JAVA虚拟机就是运行环境。问题:一是不同的JAVA虚拟机之间无法进行完整互换;二是运行速度慢
6. BIOS
* 程序的运行环境中,存在着名为BIOS的系统(Basic Input/Output System),它存储在ROM中,是预先内置在计算机主机内部的程序,包含键盘、磁盘、显卡等基本控制程序,还有启动“引导程序(是存储在启动驱动器(操作系统的启动驱动器一般是硬盘,有时也可以是CD-ROM或软盘)起始区域的小程序)”的功能
* BIOS这样小的程序(拔靴带),可以带动(启动)操作系统这样的大程序(靴子)
7. ······