运行环境Windows 如何克服了 CPU 以外的硬件差异相应的兼容性措施BIOS 和引导.exe 文件是什么?操作系统的由来及原型Windows操作系统的特征
定义:运行环境=操作系统 + 硬件
图:
本地代码:机器语言的程序称为本地代码
Q:各自机器的语言的不同
A:例如:MIPS vs Intel x86 ,CPU 的解释不同,而导致了同一个源文件,编译在各机器上的机器码也不同
1、通过设定相应的 API
程序将指令给 操作系统, 操作系统统一汇总然后输入到各个的硬件当中
2、在 Windows 的应用软件中,键盘输入、显示器输出等并不是直接向硬件发送指令,而是通过向 Windows 发送指令来间接实现的。
程序员就不用注意内存和 I/O 地址的不同构成了。因为 Windows操作的是硬件而非应用软件
应 用 程 序 向 操 作 系 统 传 递 指 令 的 途 径 称 为 API(Application Programming Interface)B。
1、FreeBSD Port 帮你轻松使用源代码
该机制能够结合当前运行的硬件环境来编译应用的源代码,进而得到可以运行的本地代码系统
2、虚拟机的使用
3、Java 虚拟机的使用
BIOS :
(Basic Input/Output System)的系统, BIOS 存储在 ROM 中,是预先内置在计算机主机内部的程序
作用:
BIOS 除了键盘、磁盘、显卡等基本控制程序外,还有启动“引导程序”的功能。引导程序是存储在启动驱动器起始区域的小程序。操作系统的启动驱动器一般是硬盘,不过有时也可以是 CD-ROM 或软盘
为什么需要 BIOS 程序?
BIOS 会确认硬件是否正常运行,没有问题的话就会启动引导程序。引导程序的功能是把在硬盘等记录的 OS 加载到内存中运行。虽然启动应用是 OS(Operating System) 的功能,但 OS 并不能自己启动自己,而是通过引导程序来启动。
图 :
源代码:用某种编程语言编写的程序
源文件:保存源代码的文件
示例:百利房间系统
通过对源文件进行编译,得到目标文件。例如,C 语言中,将Sample1.c 这个源文件编译后,就会得到 Sample1.obj 这个目标文件。目标文件的内容是本地代码
用记事本打开的的 .exe 文件:
图:
DUMP(转储) 后的文件:
Dump是指把文件的内容,每个字节用 2 位十六进制数来表示的方式
图:
库文件:把多个目标文件集成保存到一个文件中的形式
标准函数:sprintf() 等函数,不是通过源代码形式而是通过库文件形式和编译
器一起提供的
静态链接库:存储着目标文件的实体,并直接和 EXE 文件结合的库文件形式称为静飞单机器人态链接库
栈:是用来存储函数内部临时使用的变量(局部变量 A),以及函数调用时所用的参数的内存区域。
堆:是用来存储程序运行时的任意数据及对象的内存领域
一个 EXE 文件的形成过程:
图:
Q :在EXE文件中,变量和函数的内存地址的值,是如何来表示的呢?
A :EXE文件中给变量及函数分配了虚拟的内存地址。在程序运行时,虚拟的内存地址会转换成实际的内存地址。链接器会在EXE文件的开头,追加转换内存地址所需的必要信息。这个信息称为?再配置信息。
Q :编译器 和 解释器 有什么不同?
A :编译器是在运行前对所有源代码进行解释处理的。而解释器则是在运行时对源代码的内容一行一行地进行解释处理的。
(1)监控程序
背景:在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入
功能:仅具有加载和运行功能
(2)初期操作系统
背景:人们在利用监控程序编写程序的过程中,发现很多程序都有共通的部分。例如,通过键盘输入文字数据、往显示器输出文字数据等。这些处理,在任何程序下都是一样的。而如果每编写一个新的程序都要记述相同的处理的话,那真的是太浪费时间了
功能:监控程序 + 基本的输入输出程序
(3)现代操作系统
背景:随着需求的整合,而抽象出了整体的计算机
功能:操作系统是多个程序的集合体
图:
(1)32 位操作系统(也有 64 位版本)
(2)通过 API 函数集来提供系统调用
(3)提供采用了图形用户界面的用户界面
(4)通过 WYSIWYGA实现打印输出
WYSIWYG 是 What You See Is What You Get 的略写。意思是,显示器上显示的文本及图形等(What You See),是(Is)可以原样输出到打印机上打印(What You Get)的。
(5)提供多任务功能
多任务指的是同时运行多个程序的功能。Windows 是通过?时钟分
割技术来实现多任务功能的。
(6)提供网络功能及数据库功能
中间件:并不是操作系统本身不可欠缺的功能,但它们和操作系统很接近,所以称为中间件 (网络功能,数据库功能等)
(7)通过即插即用实现设备驱动的自动设定
即插即用(Plug-and-Play)指的是新的设备连接(Plug)后立刻就可以使用(Play)的机制。新的设备连接到计算机后,系统就会自动安装和设定用来控制该设备的?设备驱动程序。
例子:
例如鼠标,键盘等等