Windows程序设计基础---Windows API很重要

1. Windows OS:

最早的PC(1981年秋天IBM推出);

MS-DOS,Windows(1985),Windows 2.0(1987), Windows 3.0(1990), Windows 3.1(1992).

Windows NT(1993)支持32位处理器的第一个Windows版本,有32位平面地址空间,使用32位的指令集。

Windows 95(1995),Windows 98(1998),Windows XP(2001)

<Windows NT之后,都是32位抢占式多任务几多线程图形操作系统,GUI用户图形界面使得用户与应用程序的

交互变得更加密切。从程序员角度,这些一致的用户界面都是由OS来处理的,而不是应用程序。>

2. API (动态链接库):

Windows本身基本上就是一个动态链接库集,操作系统包含的动态链接库即DLL实现,一般保存在

\windows\system32目录下,以.dll或.exe后缀结尾的;这些dll包含了各种函数调用的实现,即提供了丰富的

Windows API。

早期的主要的dll库包括3个主要部分:

Kernel (kernel32.dll) 处理所有的由OS内核处理的事务(比如内存管理,文件I/O和任务处理等);

User (user32.dll)用户界面,实现窗口逻辑;

GDI (GDI32.dll)图形设备接口,负责显示绘图

安装在Windows上的应用程序,一般情况下除了自己的dll之外,必须调用系统的dll库实现基本的功能:

编写Windows应用程序时通常需要在文件头部包含需要调用的系统函数,经过编译器编译为.obj文件,同时需

要配置编程环境专门提供的“导入库(import library)”这些导入库包含了该应用程序需要的动态链接库的名称及

所有Windows函数调用的引用信息,接着通过链接程序链接为可执行文件。

当该文件执行时,通常有一个“动态链接”进程与Windows相连接,该程序被加载到内存中,程序中的调用被指

向dll函数的入口,如果该dll不在内存中,系统将其加入内存中。

3。Windows应用程序设计:

C和API:开发出功能强大,快速,相对较小可执行文件的Windows应用程序,同时熟悉API可以更深入地了解

Windows。

Visual Basic和Delphi:快速,但在原始API之上的任何软件层都必定将开发者限制在全部功能的子集内;

MFC;

Java:针对不同OS平台的图形应用程序开发包,

awt/swing是sun公司发布的jdk里的
swt/jface是开发eclipse用的一系列框架,后来单独分离出来,不同之处在于它创建了基于本地OS的GUI控件。

4。Q&A:

<a. 双核>

双核:CPU所有的计算、接受/存储命令、处理数据都由核心执行,CPU核心都具有固定的逻辑结构如一级缓存

、二级缓存、执行单元、指令级单元和总线接口等,且都会有科学的布局。

双核处理器是指在一个处理器上集成两个运算核心,从而提高计算能力。处理器实际性能是处理器在每个时钟

周期内所能处理器指令数的总量,因此增加一个内核,处理器每个时钟周期内可执行的单元数将增加一倍。

双核与双芯(Dual Core Vs. Dual CPU):

AMD和Intel的双核技术在物理结构上也有很大不同之处。AMD将两个内核做在一个Die(晶元)上,通过直连架

构(也就是通过超传输技术让CPU内核直接跟外部I/O相连,不通过前端总线)和集成内存控制器技术,使得每

个内核都自己的高速缓存可资遣用,都有自己的专用车道直通I/O,没有资源争抢的问题,实现双核和多核更容

易。

Intel则是将放在不同Die(晶元)上的两个内核封装在一起,连接到同一个前端总线上,因此有人将Intel的方案

称为“双芯”,可以设想,这样的两个核心必然会产生总线争抢,影响性能。因此,AMD的方案才是真正的“双核

”。

AMD从一开始设计时就考虑到了对多核心的支持。所有组件都直接连接到CPU,消除系统架构方面的挑战和瓶

颈。两个处理器核心直接连接到同一个内核上,核心之间以芯片速度通信,进一步降低了处理器之间的延迟。

而Intel采用多个核心共享前端总线的方式,对于未来更多核心的集成埋下了隐患。

CPU的实际性能是指CPU在每个时钟周期内所能处理器指令数的总量。这里包含两个重要概念:操作数和指令

。“操作数”指的就是等待CPU处理的数据,同时也指这些等待处理的数据所在的内存地址。而指令,就是指CPU

通常所处理的指令。

<b. 64位>

CPU的工作频率是指CPU每秒钟的运算次数,如我们通常所说的P4 3.6GHZ,指每秒钟运算3.6*2^30,大约

36亿次。

而通常所说的8位,16位,32位或64位CPU,所指的情况比较复杂:CPU时钟周期内都要处理指令,需要从指

令集中调用指令,从寄存器中调用操作数来进行运算。32位并不是指指令长度是32位,而是操作数的长度是32

位,因此存放操作数的寄存器也就是32位。寄存器中的操作数是通过电信号来保存的,线路上有电信号则记为

1,否则为0,8位机有8条线路,每次操作有8个信号组成一个字节。同时,寄存器中的数据是由CPU通过内存

寻址取来的,因此32位机每次的可寻址32位的内存地址(2^32=4G的内存空间)。

因此所说的8位,32位等指的是:指令操作数的长度,寄存器的大小,可寻址内存空间的大小!

形象地比喻:CPU的性能好比高速公路的承运能力,工作频率越高可以比喻为该条路上可以通行的车辆的速度

越快,单位时间内通过的总量就越多;而32位升级为64位,则好比公路的宽度加宽一倍,每次可以通过的车辆

增加一倍。

同时注意,不同的操作数长度,寄存器大小,可寻址内存空间大小发生了变化,系统软件应用程序等势必也许

要修改适应。因此出现了64位OS,应用程序等。

你可能感兴趣的:(windows,OS,XP,电信,Delphi)