读书笔记:7.1:一般来说,应用程序的运行环境是指操作系统的类型以及硬件(CPU、内存等)的类型和性能指标。.应用程序是为了在特定操作系统上运行而开发的。.PC上也可以安装Ubuntu、RHEL(Red Hat Enterprise Linux)等Linux发行版操作系统。.只要针对不同的环境准备专用的Java虚拟机,就可以让相同的字节码在各种环境中运行。.SaaS提供应用程序,PaaS提供操作系统,laaS提供硬件。
.计算机内部ROM中存储的BIOS程序负责启动引导装入程序,引导装入程序负责启动存储在硬盘等媒体中的操作系统。
程序的运行环境是通过操作系统和硬件(处理器、内存等)来表示的,也就是说,操作系统和硬件决定了程序的运行环境。
CPU只能解释特定种类的机器语言,不同类型的CPU能解释的机器语言也不同。除了x86,CPU的种类还包括MIPS、SPARC、PowerPC等,它们各自所使用的机器语言都是不同的。
机器语言的程序也称为本机代码(native code)。程序员使用C语言等编写的程序,在编写阶段都只是普通的文本文件。在任何环境下文本文件(不考虑字符编码问题的话)都可以显示和编辑,这样的文件被称为源代码(source code)。对源代码进行编译,可以得到本机代码。在大多数情况下,应用程序不是以源代码的形式分发的,而是以本机代码油的形式分发的。
7.2:计算机的硬件并不只有CPU,还有用来存储程序指令和数据的内存通过I/0连接的键盘、显示器、硬盘、打印机等外部设备。在不同的计算机中,这些外部设备的访问方式也有所不同。
7.3: 同一种机型的计算机也可以安装多种操作系统。以PC为例,除Windows之外,它也可以安装Ubuntu、RHEL等Linux发行版曲。当然,应用程序也要根据各种不同的操作系统来提供相应的版本。如果说CPU类型的差异代表机器语言的差异,那么操作系统的差异就代表应用程序向操作系统发出请求方式的差异。 API提供了键盘输入、鼠标输入、显示器输出、文件输入/输出等与外部设备之间输入/输出的功能。
7.4:Linux中安装新程序时,我们可以选择包含所有必要程序的软件包,也可以选择通过源代码来安装其中第二种方法就是将源代码在本机上编译后再使用。
7.5:不将源代码编译为本机代码,而是一种中间代码,就可以提供不依赖特定操作系统和硬件的运行环境了Java使用的就是这种方法。Java这个词有两个含义,一个是Java编程语言,另一个是Java程序运行环境。
和其他编程语言一样,用Java编写的源代码也需要经过编译才能运行,但是编译后生成的并不是针对特定CPU的本机代码,而是一种称为字节码(bytecode)的代码。字节码的运行环境称为Java虚拟机(JavaVirtual Machine, Java VM)。Java虚拟机会将Java字节码逐一转换为本机代码来执行。
7.6:通过互联网来使用硬件、操作系统、应用程序等计算机资源的技术称为云计算。根据其所提供的具体服务,云计算可分为SaaS、PaaS(Platform as aService,平台即服务)和laaS(Infrastructure as a Service, 基础设施即服务)国几种类型。简单来说,SaaS提供的是应用程序,PaaS提供的是操作系统,laaS提供的是硬件。
7.7:程序的运行环境还包括BI0S(Basic InputOutput System,基本输入输出系统)。BIOS存储在ROM中,是预先内置在计算机中的一段程序。BIOS除了提供键盘和磁盘设备的基本控制程序,还负责启动引导装入程序。引导装入程序是存储在启动磁盘开头的一段很短的程序。启动磁盘一般是硬盘,但光盘和USB驱动器也可以作为启动磁盘使用。