一.鼠标驱动
字符输入设备，与键盘类似，核心是编写鼠标中断处理程序。
1.鼠标中断入口程序的设置，编写鼠标中断处理函数，用宏完成IDT编写，set_trap_gate，位置与键盘中断初始化设置语句放在一起con_init() 控制台设备初始化函数。
2.中断函数实现，类似的创建一个汇编文件mouse.s，加文件修改Makefile
二.图形工作模式
1.启动图形模式
2.设置分辨率
3.像素点阵和显存的映射

1.启动图形模式
	BIOS（基本输入输出系统）检测显卡硬件，支持什么图形模式。setup.s中功能号0x0F中。。。可以读取显卡信息，返回AL寄存器存放当前显卡的显示模式。存放在0x90006中。
	控制台设备的初始化函数con_init（）用宏定义ORIG_VIDEO_MODE得到（从0x90006取出一个字节）。后得到VGA标准，读手册。得到：
	图形控制器（0x3CE），拼装器（0x3C4），CRT控制器（0x3D4）
	图形控制器把总线地址数据存放在显存上
	拼装器从四个64KB显存片取出还原（对应图形控制器）
	CRT控制器将信息扫描输出

2.设置分辨率
	320*200分辨率，靠CRT，水平垂直计数器
	0x3D4 0x3D5完成设置控制扫描线长度

3.像素点阵和显存的映射
	采取线性256色模式，一个字节一个像素点。

+至此做成显示器图形模式初始化系统调用sys_init_graphics（）进入Mode 0x13图形模式。

4.开始绘制屏幕
	起始位置设置屏幕最左上角像素从哪里取
三.消息驱动框架
	1.操作系统收集各种事件 2.放入系统消息队列中 3.用户进程不断查看并作出相应的动作。一个while循环。
	由消息触发，由于消息队列在操作系统中故对消息的获取是一个系统调用
	内核中的构造工作就是 1.定义队列 2.post 3.get（内核函数）4.新消息的创建（正确的转换操作）switch
	注意内核消息队列是一个多进程共享队列，用临界区机制保护，开关中断即可cli（），sti（）。

四.可视化应用程序的设计与实现
	1.定义对象
	2.定时器：定时重画
	3.无限循环
	4.get系统调用取出系统消息，是定时就判断 失败？ 对象位置，并重画，画面同步。是左键就更新位置。