BY《程序是怎样跑起来的》

1. 含义

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

2.Windows

【Note】运行环境
【Note】运行环境
即便是Windows,也仍无法吸收CPU类型的差异。因市面上销售的Windows应用软件,都是用特定CPU的本地代码完成的。

3.不同os,不同API;同型os,API无差

API(Application Programming Interface):应用程序向os传递指令的途径。

Windows及Unix系列os的API,提供了任何应用程序都可利用的函数组合。
但不同os的API有差异,故将同样的应用程序移植到其他os时,需重写应用中利用到API的部分。
如键盘输入、鼠标输入、显示器输出、文件输入输出等同外围设备进行输入输出操作的功能,由API提供。

同类型OS下,不管硬件如何,API基本无差。即针对某特定Os的API所编写的程序,在任何硬件上都可运行。

4.FreeBSD 的Port机制(UNIX)

(1)特点:结合当前运行的硬件环境来编译应用的源代码,进而得到可运行的本地代码系统。若目标应用的源代码没有在硬件上,Ports会自动使用FTP连接到相关站点来下载代码。
【Note】运行环境
(2)优点:克服包含cpu在内的所有硬件差异;可移植,根据不同的运行环境来重新调整程序。

5.虚拟机
6.JAVA虚拟机

缺点:不同JAVA虚拟机之间无法进行完整互换;运行速度慢,每次运行时都要把字节代码变换成本机代码。

7.BIOS

Basic Input/Output System,存储在ROM中,是预先内置在计算机主机内部的程序。
BIOS需对键盘、磁盘、显卡等基本控制程序,还需启动“引导程序”。

开机后,BIOS确认硬件是否正常运行,若是,启动引导程序。

8.引导程序(Bootstrap)

引导程序是存储在启动驱动器起始区域的小程序。os的启动驱动器一般是硬盘,有时是CD-ROM或软盘。
引导程序功能:把在硬盘等记录的os加载到内存中运行。

!!虽然启动应用是os的功能,但os并不能自己启动自己,而是通过引导程序启动。

9.问答

Q1:Macintosh用的操作系统(MACOS),在AT兼容机上能运行吗?
A1:NO.不同的硬件种类需不同的os。

Q2:Windows上的应用,在MACOS上能运行吗?
A2:NO。应用是为了在特定Os上运行而作成的。

Q3:FreeBSD提供的Ports,指的是什么?
A3:通过使用源代码来提供应用,并根据运行环境进行整合编译,从而得以在该环境下运行的机制。FreeBSD是一种Unix操作系统,通过在各个环境中编译ports中公开的代码,就可执行由此生成的本地代码了。

Q4:在Macintosh上可利用的Windows环境模拟器称为什么?
A4:Virtual PC for Mac。模拟器是指在Macintosh上提供虚拟的Windows环境。

Q5:JAVA虚拟机的功能是什么?
A5:运行JAVA应用的字节代码。只要分别为各个环境安装专用的JAVA虚拟机,同样的字节代码就能在各种环境下运行了。

10.小知识

(1)本地代码,native code,机器语言的程序。
(2)MIPS是美国MIPS科技公司开发的CPU。
(3)SPARC是美国SUN系统开发的CPU。
(4)PowerPC是美国苹果、IBM、摩托罗拉共同开发的CPU。不过现在的MAC采用的是INTEL的X86系列CPU。
(5)WINDOWS应用程序的本地代码,通常是EXE文件及DLL文件等形式。

相关文章: