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

一、运行环境
1、运行环境是什么:运行环境=操作系统+硬件。操作系统和硬件决定了程序的运行环境。
示例:2007 Microsoft Office sytem的运行环境(这里省略了部分内容)

同一类型的硬件可以选择安装多种操作系统。同样的AT兼容机”中,既可以安装Windows,也可以安装Linux等操作系统。不过,Windows及Linux操作系统也存在多种版本。根据应用的具体情况,有时只有在特定版本的操作系统上才能运行。
①AT兼容机是指,可以和IBM开发的PC/AT在硬件上相互兼容的计算机的总称。称为“PC/AT兼容机”和“DOS/V机”。现在市面上销售的大部分计算机都是AT兼容机。另外,IBM现在已经把计算机事业部卖给了联想。
②Linux是1991年赫尔辛基大学的Linus Torvalds开发的Unix系操作系统。发布后得到了很多有志者的协助,为其追加了大量的功能。在服务端操作系统中占有比较高的比率。
③美国Intel的微处理器,是按照8086、80286、80386、80486、Pentium……
这样的顺序不断升级的。因为这些型号的后面都带有86,所以总称为x86。32位处理器也称为“IA-32”。
示例:操作系统和硬件共同决定应用的运行环境

2、机器语言:CPU只能解释其自身固有的机器语言。不同的CPU(CPU有x86、MIPS、SPARC、PowerPC等类型,MIPS是美国MIPS科技公司开发的CPU。曾出现过面向MIPS工作站的Windows,不过现在市面上已经不再出售了。SPARC是美国SUN系统开发的CPU。很多工作站都采用了该CPU。PowerPC是美国苹果、IBM、摩托罗拉共同开发的CPU。苹果的Power Mac及IBM的工作站都采用了该CPU。不过现在的Mac采用的是Intel的x86系列CPU。)能解释的机器语言的种类也是不同的。机器语言的程序称为本地代码(native code)。程序员用C语言等编写的程序,在编写阶段仅仅是文本文件。文本文件(排除文字编码的问题)在任何环境下都能显示和编辑。我们称之为源代码。通过对源代码进行编译,就可以得到本地代码。
示例:CPU负责解析并运行从源代码编译而来的本地代码

二、操作系统
1、计算机的硬件并不仅仅是由CPU构成的,还包括用于存储程序指令和数据的内存,以及通过I/O连接的键盘、显示器、硬盘、打印机等外围设备。Windows操作系统对克服这些硬件构成的差异做出了很大贡献。Windows的前身操作系统MS-DOS(MS-DOS(Microsoft Disk Operating System)是20世纪80年代普遍使用的计算机操作系统。)。
2、Windows与MS-DOS
MS-DOS中,不同机型的应用是不同的,而Windows则可以使用同一个应用。

MS-DOS应用大多都是不经过操作系统而直接控制硬件的,而Windows应用则基本上都由Windows来完成对硬件的控制。

三、不同操作系统的API不同
1、操作系统:同样机型的计算机,可安装的操作系统类型也会有多种选择。除Windows之外,还可以采用Unix系列的Linux及FreeBSD等多个操作系统。
2、API含义:应用程序向操作系统传递指令的途径称为API(ApplicationProgramming Interface)。Windows及Unix系列操作系统的API,提供了任何应用程序都可以利用的函数组合。因为不同操作系统的API是有差异的,因此,将同样的应用程序移植到其他操作系统时,就必须要重写应用中利用到API的部分。
3、API作用:像键盘输入、鼠标输入、显示器输出、文件输入输出等同外围设备进行输入输出操作的功能,都是通过API提供的。
在同类型操作系统下,不管硬件如何,API基本上没有差别。
四、FreeBSD Port
1、介绍:①FreeBSD是1993年加州大学伯克利分校的Computer Systems ResearchGroup在4.4BSD-Lite的基础上开发的Unix系列操作系统。
②API也称为“系统调用”,是应用调用操作系统功能的手段。
2、FreeBSD的Ports机制

五、虚拟机与环境
1、虚拟机与操作系统环境:操作系统的运行不仅仅使用移植也可以利用虚拟机软件。
2、Java虚拟机:除虚拟机的方法之外,还有一种方法能够提供不依赖于特定硬件及操作系统的程序运行环境,那就是Java。字节代码的运行环境就称为Java虚拟机(JavaVM,Java Virtual Machine)。
示例:Java应用在Java虚拟机上运行

posted @ 2024-02-21 19:05  加克  阅读(68)  评论(0编辑  收藏  举报