PoEdu_Windows_Lesson01_Windows简介

1.操作系统

一开始,硬件各种各样,导致软件没法流通,由此抽象出一个软件,由这个软件操作硬件,这个软件就是系统。有了操作系统之后,硬件厂商也开始对系统进行支持,所以也就使得系统流传开来。

操作系统也是一个软件

操作系统将软件与硬件分离开来,软件也就开始专心的和系统做交互了,只要所写的软件符合操作系统的规范要求,就能够调用硬件,使软件正常运行起来

操作系统提供了一系列的API供软件进行调用

2.windows版本历史(引自维基百科)

发布时间版本代号正式名称
1985 年1.01Windows 1.01 ( 已停止支持 )
1986 年1.03Windows 1.03 ( 已停止支持 )
1987 年2.03Windows 2.03 ( 已停止支持 )
1988 年2.1Windows 2.1 ( 已停止支持 )
1988 年2.0Windows/286 2.0 ( 已停止支持 )
1988 年2.1Windows/386 2.1 ( 已停止支持 )
1990 年3.0Windows 3.0 ( 已停止支持 )
1992 年3.1Windows 3.1 ( 已停止支持 )
1992 年3.11Windows For Workgroups 3.1 ( 已停止支持 )
1994 年NT 3.1Windows NT 3.1
1994 年3.2Windows 3.2(简体中文版)( 已停止支持 )
1994 年NT 3.5Windows NT 3.5 ( 已停止支持 )
1995 年NT 3.51Windows NT 3.51 ( 已停止支持 )
1995 年4.0Windows 95 ( 已停止支持 )
1996 年NT 4.0Windows NT 4.0 ( 已停止支持 )
1996 年CE 1.01Windows CE 1.01 ( 已停止支持 )
1997 年CE 2.0Windows CE 2.0 ( 已停止支持 )
1997 年CE 2.01Windows CE 2.01 ( 已停止支持 )
1998 年CE 2.10Windows CE 2.10 ( 已停止支持 )
1998 年CE 2.11Windows CE 2.11 ( 已停止支持 )
1998 年4.1Windows 98 ( 已停止支持 )
1999 年CE 2.12Windows CE 2.12 ( 已停止支持 )
1999 年4.1Windows 98 Second Edition(98 SE)( 已停止支持 )
2000 年NT 5.0Windows 2000 ( 已停止支持 )
2000 年4.9Windows Millennium Edition (ME)( 已停止支持 )
2000 年CE 3.0Windows CE 3.0 ( 已停止支持 )
2001 年NT 5.1Windows XP ( 已停止支持 )
2002 年CE 4.1Windows CE 4.1(已停止支持)
2002 年NT 5.1Windows XP Media Center Edition ( 已停止支持 )
2002 年NT 5.1Windows XP TabletPC Edition ( 已停止支持 )
2003 年NT 5.2Windows Server 2003 ( 已停止支持 )
2003 年NT 5.2Windows XP 64-bit Edition ( 已停止支持 )
2004 年CE 5.0Windows CE 5.0 ( 已停止支持 )
2005 年NT 5.2Windows XP Professional x64 Edition ( 已停止支持 )
2005 年NT 5.2Windows Server 2003 x64 Editions ( 已停止支持 )
2006 年NT 5.1Windows Fundamentals for Legacy PCs ( 已停止支持 )
2006 年CE 6.0Windows Embedded CE 6.0 ( 已停止支持 )
2007 年NT 6.0Windows Vista ( 已停止支持 )
2007 年NT 6.0Windows Home Server ( 已停止支持 )
2008 年NT 6.0Windows Server 2008 ( 已停止支持 )
2009 年NT 6.1Windows 7 ( 至 2020 年停止支持 )
2009 年NT 6.1Windows Server 2008 R2 ( 已停止支持 )
2010 年CE 7.0Windows Phone 7 ( 已停止支持 )
2011 年CE 7.0Windows Embedded Compact 7 ( 已停止支持 )
2011 年NT 6.1Windows Home Server 2011 ( 已停止支持 )
2012 年NT 6.2Windows 8 ( 已停止支持 )
2012 年NT 6.2Windows RT ( 已停止支持 )
2012 年NT 6.2Windows Server 2012 ( 至 2023 年停止支持 )
2012 年NT 6.2Windows Phone 8 ( 至 2023 年停止支持 )
2013 年NT 6.3Windows 8.1 ( 至2023年停止支持 )
2013 年NT 6.3Windows RT 8.1 ( 至 2023 年停止支持 )
2013 年NT 6.3Windows Server 2012 R2 ( 至 2023 年停止支持 )
2014 年NT 6.3Windows Phone 8.1 ( 至 2023 年停止支持 )
2015 年NT 10.0Windows 10 (每个版本技术支持5年,扩展支持10年)
2016 年NT 10.0Windows 10 Mobile (每个版本技术支持5年,扩展支持10年)
2016 年NT 10.0Windows Server 2016 ( 至 2026 年停止支持 )

win10和windows Server 2016内核是一样的,都是NT10.0,两者的不同,可能是软件版本不同而已,这里的软件是系统软件

windows碰到的问题,去找MSDN,百度不一定准确,因为windows的版本太多了

windows系统的进化史

16位图形用户界面

非NT。不是一个操作系统

引自维基百科的描述:

早期版本的Windows通常被看作仅仅是运行于MS-DOS系统中的一个图形用户界面,不是操作系统。主要因为它们在MS-DOS上运行并且被用作文件系统服务。不过,即使最早的16位版本的Windows也已经具有了许多典型的操作系统的功能,包括拥有自己的可执行文件格式以及为应用程序提供自己的设备驱动程序(计时器、图形、打印机、鼠标、键盘以及声卡)。与MS-DOS不同,Windows通过协作式多任务允许用户在同一时刻执行多个图形应用程序。最后,Windows还实现了一个设计精良的、基于内存分段的软件虚拟内存方案,使其能够运行大于物理内存的应用程序。代码段和资源在内存不足的时候进行交换,并且当一个应用程序释放处理器控制时,特别是等待用户输入的时候,数据段会被移入内存。16位版本的Windows包括Windows 1.0(1985),Windows 2.0(1987)及其近亲Windows/286及最后版本Windows 3.X。

16位和32位混合操作系统

进入NT结构的时代

NT结构:微软写出来的一种架构

引自维基百科的描述

这个系列的16位的Windows的升级版本,仍然需要依赖16位的DOS基层程序才能运行,不算是真正意义上的32位操作系统,由于使用DOS代码,架构也与16位DOS一样,核心属于单核心,但也引入了部分32位操作系统的特性,具有一定的32位的处理能力。它可视为微软将MS-DOS操作系统和早期Windows图形用户界面集成出售,或本身也晋升为操作系统,因此用户就不用再单独购买MS-DOS以运行“Windows图形用户界面”了。

32位操作系统

引自维基百科

这个系列是Windows NT体系结构操作系统,是真正的纯32位操作系统。Windows NT架构操作系统是完整独立的操作系统,不同于依然需要DOS基层程序的混合16/32位的Windows 9x。这个操作系统是为更高性能需求的商业市场而编写的32位操作系统。这个系列都是Windows NT架构,核心采用混合式核心即改良式微核心。

它们包括 Windows NT 3.1(1992年)、 NT 3.5、 NT 3.51、 NT 4.0、 Windows 2000、 Windows XP、32位 Windows Vista和32位 Windows 7、 Windows 8、 Windows 8.1、 Windows 10(Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10同时有32位的x86版本与64位的x64版本)。

64位操作系统

64位Windows NT架构操作系统,分为支持于IA-64架构和x64架构的两种不同版本。

引自维基百科
在历史上微软曾对两种不同的64位架构提供支持,其一是Intel公司和HP联合开发具有革新化的Itanium家族架构,或称之为IA-64;和AMD公司开发的演进化的x86-64架构。由于两种架构的核心设计思想不同,因此两种架构的操作系统和应用软件不具有互通性,但都对传统的IA-32架构的软件一定程度上提供支持。微软在发布Windows Server 2012 R2前放弃了对Itanium架构的支持。因此现在微软的64位产品指的单单是x86-64架构,而在微软的词汇中称为x64

小结

16、32、64位是由CPU的计算位数决定的

NT结构:把操作系统一分为二:用户态、核心态

用户态中的各个子系统都是外包,具体执行是在NT执行体
这里写图片描述

虚拟内存:虚拟内存的存在,使得操作系统更加的稳定

直接操作物理内存,是一件风险很大的事情,有可能会改写到操作系统的数据。有了虚拟内存之后,如果指针访问了不该访问的地方,就会报错,不让你执行了,也就保护了操作系统

在平时写代码时,有时通过地址直接改写值,那么编译器也会报错,这就是因为访问了不该访问的东西

我们平时写的程序都是基于用户态,如果判定没问题,那么就转核心态,从用户态转为核心态的过程是由操作系统做的

Windows与编程语言

windows API

应用程序接口

Windows操作系统应用程序接口(Windows API),有非正式的简称法为WinAPI,是微软对于Windows操作系统中可用的核心应用程序编程接口的称法。它被设计为各种语言的程序调用,也是应用软件与Windows系统最直接的交互方式。大多数驱动程序需要对Windows系统更底层次访问接口,由所用版本的Windows的Native API来提供接口。

SDK、API、MFC

SDK

Microsoft Windows SDK(简称Windows SDK或者SDK)是由微软公司出品的一个软件开发包,向在微软的Windows操作系统和.NET框架上开发软件和网站的程序员提供头文件、库文件、示例代码、开发文档和开发工具

软件开发工具包,由产品的厂商提供给开发者使用的,比如QT就是一套SDK,包括编译器、文档、示例等

API

上面有具体介绍,我的理解:是一个函数、一个接口,可以由外部进行调用

MFC

微软基础类,微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,也可以说,MFC是Win API与C++的结合后的再一次封装,属于应用程序框架

windows API分类

1.基础服务:提供对Windows系统可用的基础资源的访问接口

提供对windows系统可用的基础资源的访问接口

文件系统

文件系统的API:对文件进行读、写、修改、删除等操作,比如C语言的fopen最终会调用windows里面的东西(文件系统),才能实现

外部设备

进程

是计算机中已运行程序的实体

打包了一块空间,扔到虚拟内存,执行的时候再扔进物理内存(进程代表了一块空间、正在运行的程序)

线程

代表当前运行的状态

虚拟内存可以保存内存空间与状态,虚拟内存的存在,使得可以进行多任务、伪实时,会有一块区域保存当前的内存空间和状态

注册表

是windows的一个配置表:用来控制操作系统的,API是用来做注册表的增删改查

错误处理机制

以上这些功能接口位于:16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系统文件中;以及32位Windows下的kernel32.dll和advapi32.dll中

2.图形设备接口(GDI)

提供功能为:输出图形内容到显示器、打印机以及其他外部输出设备。它位于16位Windows下的gdi.exe;以及32位Windows下的gdi32.dll。

现今较少使用GDI

3.图形化用户界面(GUI)

提供的功能有创建和管理屏幕和大多数基本控件(control),比如按钮和滚动条。接收鼠标和键盘输入,以及其他与GUI有关的功能

这些调用接口位于:16位Windows下的user.exe,以及32位Windows下的user32.dll。从Windows XP版本之后,基本控件和通用对话框控件(Common Control Library)的调用接口放在comctl32.dll中。

4.通用对话框链接库

为应用程序提供标准对话框

比如打开/保存文件对话框、颜色对画框和字体对话框等等。

这个链接库位于:16位Windows下的commdlg.dll中,以及32位Windows下comdlg32.dll中。它被归类为User Interface API之下。

5.通用控件链接库

为应用程序提供接口来访问操作系统提供的一些高级控件。

比如:状态栏(status bar)、进度条(progress bars)、工具栏(toolbar)和标签(tab)

这个链接库位于:16位Windows下的commctrl.dll中,以及32位Windows下comctl32.dll中。它被归类为User Interface API之下。

6.Windows外壳(Windows Shell)

作为Windows API的组成部分,不仅允许应用程序访问Windows外壳提供的功能,还对之有所改进和增强

它位于16位Windows下的shell.dll中,以及32位Windows下的shell32.dll中(Windows 95则在shlwapi.dll中)。它被归类为User Interface API之下。

无界面的操作

网络服务

为访问操作系统提供的多种网络功能提供接口。它包括NetBIOS、Winsock、NetDDE及RPC等。

多媒体相关API

自从Windows 95 OSR2以来,Microsoft把DirectX API作为Windows安装的一部分。DirectX提供一组松散相关的多媒体和游戏服务

程序通信API

Windows API的功能主要通过使操作系统和应用程序之间的交互来实现。为了实现不同Windows应用程序的通信,微软随着主要Windows API,推出一系列的技术。最初的DDE(Dynamic Data Exchange)升级为对象连接与嵌入(Object Linking and Embedding),再后来是组件对象模型(COM)。

封装库

微软利用许多更底层的Windows API函数,开发出许多封装库(wrapper),让应用程序以更抽象的方式与Windows API进行交互。

MFC(Microsoft Foundation Class Library)用C++ 类别来封装Windows API的功能,因而允许用更为面向对象的方式与API进行交互。ATL(Active Template Library)是对COM的面向模板(template oriented)的封装。WTL(Windows Template Library)作为ATL的增强,被用来作为MFC的轻型的替代物。

API数量及版本众多的原因

因为这个API是从1985年开始写的…所以API数量非常多,为了进行兼容,所以数量就非常多了,而每个人对系统的理解不一样,导致API有各种各样的版本(这么长的时间里,团队换了一拨又一拨)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值