程序是在什么环境下运行的

运行环境

定义:运行环境 = 操作系统 + 硬件
图:
在这里插入图片描述
本地代码:机器语言的程序称为本地代码

Q:各自机器的语言的不同
A:例如:MIPS vs Intel x86 ,CPU 的解释不同,而导致了同一个源文件,编译在各机器上的机器码也不同

Windows 如何克服了 CPU 以外的硬件差异

1、通过设定相应的 API
程序将指令给 操作系统, 操作系统统一汇总然后输入到各个的硬件当中

2、在 Windows 的应用软件中,键盘输入、显示器输出等并不是直接向硬件发送指令,而是通过向 Windows 发送指令来间接实现的。
程序员就不用注意内存和 I/O 地址的不同构成了。因为 Windows操作的是硬件而非应用软件

应 用 程 序 向 操 作 系 统 传 递 指 令 的 途 径 称 为 API(Application Programming Interface)B。

相应的兼容性措施

1、FreeBSD Port 帮你轻松使用源代码
该机制能够结合当前运行的硬件环境来编译应用的源代码,进而得到可以运行的本地代码系统

2、虚拟机的使用

3、Java 虚拟机的使用

BIOS 和引导

BIOS
(Basic Input/Output System)的系统, BIOS 存储在 ROM 中,是预先内置在计算机主机内部的程序

作用
BIOS 除了键盘、磁盘、显卡等基本控制程序外,还有启动“引导程序”的功能。引导程序是存储在启动驱动器起始区域的小程序。操作系统的启动驱动器一般是硬盘,不过有时也可以是 CD-ROM 或软盘

为什么需要 BIOS 程序?
BIOS 会确认硬件是否正常运行,没有问题的话就会启动引导程序。引导程序的功能是把在硬盘等记录的 OS 加载到内存中运行。虽然启动应用是 OS(Operating System) 的功能,但 OS 并不能自己启动自己,而是通过引导程序来启动。

图 :
在这里插入图片描述

.exe 文件是什么?

源代码:用某种编程语言编写的程序

源文件:保存源代码的文件

示例
通过对源文件进行编译,得到目标文件。例如,C 语言中,将Sample1.c 这个源文件编译后,就会得到 Sample1.obj 这个目标文件。目标文件的内容是本地代码

用记事本打开的的 .exe 文件
图:
在这里插入图片描述

DUMP(转储) 后的文件
Dump是指把文件的内容,每个字节用 2 位十六进制数来表示的方式
图:
在这里插入图片描述
库文件:把多个目标文件集成保存到一个文件中的形式

标准函数:sprintf() 等函数,不是通过源代码形式而是通过库文件形式和编译
器一起提供的

静态链接库:存储着目标文件的实体,并直接和 EXE 文件结合的库文件形式称为静态链接库

:是用来存储函数内部临时使用的变量(局部变量 A),以及函数调用时所用的参数的内存区域。

:是用来存储程序运行时的任意数据及对象的内存领域

一个 EXE 文件的形成过程
图:
在这里插入图片描述
Q :在EXE文件中,变量和函数的内存地址的值,是如何来表示的呢?

A :EXE文件中给变量及函数分配了虚拟的内存地址。在程序运行时,虚拟的内存地址会转换成实际的内存地址。链接器会在EXE文件的开头,追加转换内存地址所需的必要信息。这个信息称为 再配置信息。

Q :编译器 和 解释器 有什么不同?

A :编译器是在运行前对所有源代码进行解释处理的。而解释器则是在运行时对源代码的内容一行一行地进行解释处理的。

操作系统的由来及原型

(1)监控程序
背景:在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入
功能:仅具有加载和运行功能

(2)初期操作系统
背景:人们在利用监控程序编写程序的过程中,发现很多程序都有共通的部分。例如,通过键盘输入文字数据、往显示器输出文字数据等。这些处理,在任何程序下都是一样的。而如果每编写一个新的程序都要记述相同的处理的话,那真的是太浪费时间了
功能:监控程序 + 基本的输入输出程序

(3)现代操作系统
背景:随着需求的整合,而抽象出了整体的计算机
功能:操作系统是多个程序的集合体

图:
在这里插入图片描述

Windows操作系统的特征

(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)的机制。新的设备连接到计算机后,系统就会自动安装和设定用来控制该设备的 设备驱动程序。

例子:
例如鼠标,键盘等等

发布了239 篇原创文章 · 获赞 78 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_39966065/article/details/104208056