之前的笔记搬运
一些基本概念
windows发展史
1980年后期 unix系统已经发展非常成熟 主要用于高端用户 实验室 工厂使用 当时windows 还比较落后 采用的是dos架构(windos3.1 windows 95 windows 98都是这种) 但是当时在中国普通百姓 谁知道电脑是啥玩意啊 所以 对系统要求很低 不需要玩游戏 也不需要什么word 软件 太复杂反而没人用 unix那么复杂的命令 谁会用?所以简单的dos命令迎合了市场 高端的unix一直瞧不起低端的windows 微软也知道dos架构的系统路不长必须改革 正好此时有一帮牛人从某个公司辞职 于是被微软拉过去 这帮牛人为现在内存虚拟管理系统做好了铺垫(vms 内存虚拟管理 就是每个进程4G虚拟地址 通过页表映射到指定的物理地址 不用的时候 需要换页到硬盘上 就是这个意思吧) 当时借鉴unix微内核思路 微软决定开发微内核 内核越小越好 很多内核功能交给了服务进程 结果发现效率太差 于是又增加了内核文件大小 甚至吧掌管视窗的win32k.sys也加入了内核 还加入了posix(当时为了方便unix的程序移植不同平台 电器工程师定义了一种类似API接口的东西 于是大家开发unix程序 都可以移植到不同的unix系统上)和os/2(os/2是微软和IBm合作开发的一个系统 后来放弃了)三种工作模式:
1) 保护模式, 为了保护硬件, 操作系统充当中间层, 代替软件访问硬件
软件 -> 系统 -> 硬件 (保护模式从80386开始)
2) 实模式下, 80386处理器相当于一个快速8086处理器, 实模式下只能执行16位汇编
3) 虚拟86模式, 在保护模式下也可以跑16位汇编
windows内核结构
- windows函数命名规则
1 | Ex开头是管理层 |
驱动分类
kernel driver 不操作硬件, 内核驱动
driver driver 操作硬件, 硬件驱动
WDK 7600 版本可以手工编译, 以上版本必须通过IDE
ntddk.h 是开发内核驱动的头文件