一、Windows简介
一、Windows简介:
是微软公司推出的一系列的操作系统,问世于1985年。
现在最急需解决的是I/O上。
二、NT架构:
2.1、NT架构分成:用户态(Ring3)和核心态(Ring0)。
2.2、所有的程序都运行在内存当中:包含了OS,自己的软件,其他人的软件。
2.3、这种情况下自己的软件有可能使用了错误的地址,这个错误的地址正好更改了OS,就会导致崩溃。
2.4、所以直接操作物理内存是一件风险非常大的事情。
2.5、而从NT架构之后,我们就不能直接操作物理内存了。
2.6、而我们不能直接操作物理内存了,我们的程序也就不能运行了。
2.7、所以Windows又给我们提供了一个虚拟内存管理程序
2.8、所以在我们程序执行的时候程序会被正确的加载进物理内存中来。
2.9、若是本身程序有问题的话,虚拟内存管理程序就不会允许你的程序加载到物理内存中来运行。
2.10、所以就算自己的程序崩溃了,操作系统也不会崩溃。
2.11、综合上面的,我们的软件会先进入到用户态中,然后进入到核心态中(进行各种的检测),然后才会在内存中运行。
三、16位、32位、64位操作系统:
3.1、16位现在已经过时了。在16位的时候是非NT的。并不是操作系统。
3.2、16位和32位混合操作系统。
3.3、纯32位的操作系统:进入到了一个NT结构的时代。
3.4、64位操作系统。
3.5、现在我们所接触到的都是NT架构的操作系统。
3.6、所谓的16位、32位、64位:是以CPU中的计算位数来决定的、
而CPU的计算能力由计算位数来决定。
3.7、64位其实和32位操作系统是差不多的,只是在计算浮点数上面会是32位的n倍、还有寻址能力。
四、Windows和编程语言:
4.1、SDK&API&MFC:
API:应用程序接口(就是函数)。
SDK:软件开发工具组,是用来帮一个产品或平台开发应用程式的工具组,由产品的厂商提供给开发者使用的。
MFC:框架,对Windows API用C++进行了封装。
五、API的分类:
5.1、基础服务(Base Services)(所有的API都是以DLL的方式来提供)
5.1.1、文件系统(file system)
5.1.2、外部设备(device)
5.1.3、进程(process)(代表的是正在运行的一个程序)
进程是操作系统中的一个单位,操作系统将我们正在运行的程序打包成一个进程,
打包之后就是一整块的内存,然后将其加入到虚拟内存当中,而虚拟内存管理程序会把
打包好的程序加入到物理内存中进行运行。
5.1.4、线程(thread)(保存状态)
而光光是将程序进行打包是不够的,因为程序不仅仅是空间,还有状态(运行的状态),
而这些状态由线程来管理。
5.1.5、注册表(Windows registy)
配置系统当中的一项,主要用来修改操作系统当中的配置。而API是用来对注册表进行
增、删、改、查动作。
5.1.6、错误处理机制(error handing)
5.1.7、在32位Windows下的kernel32.dll(在64位中也是这个名字)和advapi32.dll中。(死记)
5.2、图形设备接口(GDI)
5.2.1、输出图形内容到显示器,打印机以及其他外部输出设备。
5.3、图形化用户界面(GUI)
5.3.1、创建和管理屏幕和大多数基本控件(Control),比如按钮和滚动条。
5.3.2、接收鼠标和键盘输入,以及其他与GUI有关的功能。
5.4、通用对话框链接库(Common Dialog Box Library)
5.4.1、打开/保存文件对话框,颜色对话框和字体对话框等等。
5.5、通用控件链接库(Common Control Library)
5.5.1、状态栏(status bar)
5.5.2、进度条(progress bars)
5.5.3、工具栏(tool bar)
5.5.4、标签(tab)
5.6、Windows外壳(Windows Shell)
5.6.1、作为Windows API的组成部分,不仅允许应用程序访问Windows外壳提供的功能,还对之有所改进和增强。
5.7、网络服务(Network Services)
5.7.1、为访问操作系统提供的多种网络功能提供接口,它包括NetBIOS、Winsock、NetDDE及RPC等
5.8、多媒体相关API(严格来说并不属于Windows API)
自从Windows95 OSR2以来,Microsoft把DirectX API作为Windows安装的一部分。DirectX提供一组松撒相关的多媒体和游戏服务。