代码改变世界

《程序是怎样跑起来的》第七章

2019-03-26 13:42  薛肖肖  阅读(127)  评论(0编辑  收藏  举报

这一章主要讲述了程序的运行环境和怎样使文件在不同的运行环境下都能运行的方法。

运行环境是由操作系统和硬件决定的。操作系统就是指Windows、Linux等操作系统,而硬件就是指硬件设备了。

由于CPU只能解释其自身的机器语言,但是如果一个程序需要在几种不同类型的CPU上运行的话,那就要需要一些东西来辅助编译,或是怎样;那么这个负责编译的东西就需要有兼容几种不同类型CPU语言的能力了。

接下来我们就说说这些方法。

先说说Windows本身,它本身是就是可以克服CPU之外的硬件的差异的操作系统(也许这就是它广受欢迎的原因之一)。原因在于Windows本身操作的是硬件而不是应用软件,键盘输入、显示器输出等是通过向Windows发送指令之后才向硬件发送指令。

API:应用程序向操作系统传递指令的途径。它在Windows和Unix中是任何应用程序都可以利用到的函数组合;但是在同类型中API基本没差当,当API在针对某种特定操作系统编写的程序,在任何硬件上都可以使用。

下面就是源代码的问题了。Unix中FreeBSD中有一种Ports机制就是比较厉害了,它可以根据当前运行的硬件环境来编译应用的源代码,继而可以得到运行的本地代码系统;而且就算需要用的代码没有在硬件上面它会自动使用FTP连接相关站点来下载代码。这个站点就像是加油站,根据车型提供相应的油来使用。

接下来就是虚拟机的方法了,虚拟机就是为用户提供合适的操作环境。书上举出的时虚拟机和Java虚拟机。

作者举了自己的例子,在Mac上面运行Windows系统。作者就是想让我们明白虚拟机的功能,虚拟机能够提供一个适合的环境来使用操作系统。

Java虚拟机。这里的Java是将Java语法记述的源代码编译后运行,编译后的生成的字节代码的程序运行的环境就是Java虚拟机。Java虚拟机 能够把Java字节代码转换为本地代码,并且边转换边运行。Java虚拟机能够提适用于你的操作系统的“硬件”,就好似一个转换器。

最后说到BIOS和引导。BIOS系统在计算机开机后会确认硬件能否正常运行,BIOS还会启动“引导程序”。引导程序就是储存在驱动器其实区域的程序。作者还讲述了BIOS的来历,它虽然不能牵制整个计算机的生命,但是它的存在可以启动操作程序,它的存在给计算机和用户带来了很大的方便。

这一章更像是提供方法来解决环境造成运行的问题。