3.漫谈兼容内核之三:关于kernel-win32的文件操作

合集下载

Linux设备驱动程序(中文版第三版)

Linux设备驱动程序(中文版第三版)

Linux 设备驱动 Edition 3ByJonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman由 quickwhale 翻译的简体中文版 V0.1.0 2006-6-2学习编程有几年了,感觉走了不少弯路,而不少的学弟学妹又在重蹈我当初的覆辙,不免有些痛心。

最近在网上也看了许多前辈们的经验建议,再结合自己的学习经历在这里谈谈基础的重要性,希望帮助大家少走些弯路。

什么是基础呢?就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理等课程学好,对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有深层次的掌握。

初学者可能体会不到这些基础的重要性,学习jsp,donet,mfc,vb的朋友甚至会对这些嗤之以鼻,但是一开始没学好基础就去学jsp或donet会产生很坏的影响,而且陷入其中不能自拔。

我上大二的时候还对编程没什么概念,就上了门C++也不知道能干什么,老师说MFC也不知道是什么东西,看别的同学在学就跟着学了,然后就了解到.net,j2ee,php是什么了,就觉得软件开发就是用这些了,而上的那些专业课又与我们学的sqlserver啊,css啊,ajax啊,毫无关系,就感慨啊,还不如回家自学去就为一个文凭吗?还不如去培训,浪费这么多钱.于是天天基本上没去上什么课,天天就在做网站,几个学期就做了三个网站。

感觉做这些网站就是学到些技巧,没什么进步,这些技巧就好比别人的名字,告诉你你就知道了,网上也都可以搜到。

那时候就觉得把.net学好就行了,搞j2ee的比较难,搞api编程就别想了,操作系统更是望尘莫及了。

后来随着学习的深入和看了网上许多前辈们的建议才对这些基础的重要性有所体会。

虽然.net或java的开发并不直接用到汇编,操作系统这些,但是不掌握这些基础是有很大问题的,因为你只知其然不知其所有然,在mfc和.net里面控件一拖什么都做好了,很方便,但是出了问题可能就解决不了,有些在网上搜都搜不到。

IMDS材料数据系统使用指南(10.0版本)

IMDS材料数据系统使用指南(10.0版本)
1.2 1.3
1.4 1.5 1.6 127 日 2013 年 4 月 23 日
2013 年 5 月 24 日 2013 年 6 月 27 日
2013 年 12 月 12 日 2014 年 3 月 17 日 2014 年 7 月 13 日 2015 年 2 月 27 日 2015 年 4 月 27 日 2015 年 6 月 10 日 2015 年 6 月 11 日 2015 年 7 月 10 日
第3页
目录
1 IMDS – 简介.............................................................................................................................................................................................................. 7 2 IMDS – 使用入门 ...................................................................................................................................................................................................... 8
IMDS 服务中心 欧洲 | 电话: +36 1778-9821 | 电子邮件: imds-helpdesk-english@ 中国 | 电话: + 86 27 8743-1668 | 电子邮件: imds-eds-helpdesk-china@

飞思卡尔MQX实时操作系统用户手册(中文)

飞思卡尔MQX实时操作系统用户手册(中文)
第二章 MQX 概述..........................................................................................5
2.1 MQX 的组织结构 ..................................................................................5 2.2 初始化....................................................................................................6 2.3 任务管理................................................................................................6 2.4 调度........................................................................................................7 2.5 存储管理................................................................................................7
2.10.1 格式化 I/O ................................................................................. 11 2.10.2 I/O 子系统 ................................................................................... 11 2.11 检测工具 ............................................................................................ 11 2.11.1 日志............................................................................................. 11 2.11.2 轻量级日志 ................................................................................. 11 2.11.3 内核日志.....................................................................................12 2.11.4 栈的运用.....................................................................................12 2.12 出错处理............................................................................................12 2.12.1 任务出错代码.............................................................................12 2.12.2 异常处理.....................................................................................12 2.12.3 实时测试.....................................................................................12 2.13 队列操纵............................................................................................13 2.14 命名组件............................................................................................13 2.15 嵌入式调试........................................................................................13

Rockchip BOX 以太网开发指南_v2.2

Rockchip BOX 以太网开发指南_v2.2

2. 修改 2.2.3 及 2.2.5 中对 RMII 时钟的配置
2015-0309 1. 增加 GMAC 问题排查部分
内部资料,不得扩散
Page 2 of 28
目录
福州瑞芯微电子有限公司
1 概述................................................................................................................................................................... 5 2 以太网 PHY 芯片.............................................................................................................................................6
2.1 接口............................................................................................................................................................6 2.2 KERNEL 配置...............................................................................................................................................7
2.1 接口

RK3128开发板Linux开发手册

RK3128开发板Linux开发手册

如何恢复正常启动 ......................................................................................................... 14 第三章 Ubuntu Server 使用 ............................................................................................... 15 3.1 网络 .................................................................................................................................. 15 3.1.1 以太网 ................................................................................................................... 15 3.1.2 静态 IP ................................................................................................................. 16 3.1.3 WiFi ...................................................................................................................... 17 3.2 安装服务器软件包 .......................................................................................................... 18 3.2.1 列出任务 ............................................................................................................... 18 3.2.2 列出需要安装的软件包 ....................................................................................... 19 3.2.3 安装服务器任务 ................................................................................................... 19 3.3 密码 .................................................................................................................................. 20 3.3.1 系统....................................................................................................................... 20 MySQL ........................................................................................................................... 20 3.4 测试 .................................................................................................................................. 20 第四章 双系统启动的设计和实现 ....................................................................................... 21 4.1 前言 .................................................................................................................................. 21 4.2 安卓系统的启动流程 ...................................................................................................... 21 4.3 双启动系统的设计 .......................................................................................................... 22 4.4 双启动系统的实现 .......................................................................................................... 23 4.4.1 分区....................................................................................................................... 23 4.1.2 misc 分区的格式 ................................................................................................ 27 4.4.3 保留安卓急救系统 ............................................................................................... 29

LTP使用说明

LTP使用说明

LTP工具说明1LTP测试套件 (3)1.1简介 (3)1.2源目录结构 (3)2LTP安装 (4)2.1下载 (4)2.2编译 (4)2.3安装说明 (5)3LTP测试套件结构说明 (6)3.1概述 (6)3.2目录介绍 (6)3.3LTP执行原理 (6)4LTP测试套件测试内容 (7)4.1LTP测试套件测试内容 (7)4.1.1commands (7)4.1.2kernel (7)4.1.3kdump (8)4.1.4network (8)4.1.5realtime (8)4.1.6open_posix_testsuite (8)4.1.7misc (8)4.2测试方法说明 (8)4.2.1commands模块内容描述及实现方法 (8)4.2.2kernel (10)4.2.3network (15)4.2.4open_posix_testsuite (17)4.2.5realtime (18)5LTP测试套件配置详细 (19)5.1networktests.sh脚本配置 (19)5.2networkstress.sh配置 (23)5.3open_posix_testsuite测试套件 (28)5.4realtime配置 (29)5.5mm脚本的配置 (30)5.6io脚本配置 (30)5.7filecaps的配置 (30)5.8tpm_tools的配置 (31)5.9tcore的配置 (31)5.10io_floppy的配置 (31)5.11io_cd 的配置 (32)5.12cpuhotplug的配置 (32)5.13adp.sh的配置 (33)5.14autofs1.sh和autofs4.sh的配置 (34)5.15exportfs.sh的配置 (34)5.16isofs.sh的配置 (34)5.17ltpdmmapper.sh的配置 (35)5.18ltpfslvm.sh的配置及要求 (36)5.19ltpfsnolvn.sh的配置及要求 (36)5.20ltp-scsi_debug.sh的配置及要求 (37)5.21sysfs.sh的配置及要求 (37)5.22rpctirpc的配置及要求 (37)5.23test_selinux.sh的配置及要求 (39)5.24smack的配置和要求 (40)5.25perfcounters的配置及要求 (41)5.26can的配置及要求 (41)5.27test_robind.sh的配置 (42)6LTP测试套件使用说明 (43)6.1概述 (43)6.2测试方法 (44)6.2.1初始测试 (44)6.2.2压力测试 (47)1LTP测试套件1.1简介LTP(Linux Test Project)是SGI、IBM、OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性、健壮性和稳定性。

Leadsec-ISM V1.1 白皮书

Leadsec-ISM V1.1 白皮书

内网安全管理系统产品白皮书Leadsec-ISM V1.1全面的终端运维管理终端主机可进行全面的安全保护、监控、审计和管理,功能不分模块销售。

实名制的管理与审计管理策略根据人员身份制定,做到策略到人,控制到人,审计到人,解决一机多人、一人多机的难题。

三级联防的准入控制体系系统采用端点控制、局域接入控制、边界网关控制三级接入控制体系,可最大程度上适应用户网络环境,提供方便的准入管理。

数据防泄漏数据信息及信息交换做到可加密、可控制、可审计。

文件保密设置简单,移动存储加密保护,可保证私人专用要求。

全面协同防护协同防火墙产品可实现终端的准入控制协同IDS/IPS产品可实现入侵行为的阻断协同SAG产品可实现远程用户的准入控制和身份的策略管理地址:北京海淀区中关村南大街6号中电信息大厦8层(100086) 公司电话:010-********服务热线:400-810-7766(7X24小时) 2目录一、内网安全管理系统背景 (5)1.1内网安全概述 (6)1.2内网安全管理的重要性 (8)1.2.1内网威胁 (8)1.2.2如何加强内网安全 (10)二、内网安全管理系统概述 (12)三、内网安全管理系统架构 (13)四、内网安全管理系统功能 (17)4.1产品九大功能 (17)4.1.1准入控制管理 (17)4.1.2数据防泄漏 (18)4.1.3实名制管理 (21)4.1.4终端维护管理 (22)4.1.5补丁分发管理 (25)4.1.6终端资产管理 (26)4.1.7上网行为管理 (27)4.1.8报警控制台 (28)4.1.9产品协同防护 (29)五、内网安全管理系统功效 (30)5.1整体功效 (30)5.2文件监控与审计 (30)5.2.1杜绝文件操作不留痕迹现象 (30)5.2.2杜绝信息拷贝的无管理状态 (31)5.3网络行政监管 (31)5.3.1屏幕监控 (31)地址:北京海淀区中关村南大街6号中电信息大厦8层(100086) 公司电话:010-********服务热线:400-810-7766(7X24小时) 35.3.2应用程序报告及应用程序日志 (31)5.3.3浏览网站报告及浏览网站日志 (32)5.3.4应用程序禁用 (32)5.4网络辅助管理 (32)5.4.1远程桌面管理 (32)5.4.2远程控制 (32)5.4.3远端计算机事件日志管理 (32)5.4.4远程计算机管理 (33)5.4.5信息化资产管理 (33)5.5网络客户机安全维护 (33)5.5.1补丁分发管理 (33)5.5.2网络漏洞扫描 (34)5.6安全接入管理 (34)5.6.1非法主机网络阻断 (34)5.6.2网络白名单策略管理 (35)5.6.3IP和MAC绑定管理 (35)5.7策略管理 (35)5.7.1基于策略优先级的用户行为管理功能 (35)5.7.2基于网络场景的管理策略 (35)5.7.3基于用户帐户的策略管理 (36)5.7.4基于在线、离线状态的策略管理 (36)5.7.5基于分组的策略管理 (37)六、内网安全管理系统特色 (38)6.1全网产品协同防护 (38)6.2定向访问控制 (38)6.3实名制管理 (38)6.4报警控制台 (39)6.5流量管理 (39)地址:北京海淀区中关村南大街6号中电信息大厦8层(100086) 公司电话:010-********服务热线:400-810-7766(7X24小时) 46.6ARP病毒免疫 (39)6.7可扩展的高端应用接口 (40)6.8补丁统一分发 (40)6.9管理策略强制执行 (40)6.10多元化的管理模式 (40)6.11虚拟安全域管理 (41)6.12策略的优先级管理 (41)七、实施部署 (42)7.1产品部署示意图 (42)7.1.1典型部署 (42)7.1.2多级部署 (43)7.2部署位置 (43)7.3部署方式 (44)地址:北京海淀区中关村南大街6号中电信息大厦8层(100086) 公司电话:010-********服务热线:400-810-7766(7X24小时) 5一、内网安全管理系统背景信息技术发展到今天,人们的工作和生活已经越来越依赖于计算机和网络;然而,自网络诞生的那一天起,它就存在着一个重大隐患——安全问题,人们在享受着网络所带来的便捷同时,不得不承受着网络安全问题带来的隐痛。

麒麟操作系统内核同其他操作系统内核的相似性分析

麒麟操作系统内核同其他操作系统内核的相似性分析

麒麟操作系统内核同其他操作系统内核的相似性分析Copyright (c) 2006 Dancefire (dancefire#gmail).Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".作者:Dancefire (dancefire # gmail dot com ) 2006/04/27( PDF格式及分析所用脚本程序下载连接:/file/kernel_similarity_analysis_1.0.zip )原始链接:/DanceFire/archive/2006/04/27/679782.aspx/article/Kernel_Similarity_Analysis.html一、引言麒麟操作系统是由国防科技大学、中软公司、联想公司、浪潮公司和民族恒星公司五家单位合作研制的服务器操作系统。

按照麒麟官方的说法:“Kylin服务器操作系统是国家863计划的重大研究成果,拥有完全自主版权的内核,与Linux 在应用上二进制兼容,并支持64位,是中国独立研发成功的、具有完全自主知识产权的服务器操作系统。

”[1]--- 来自麒麟官方网站/news.htm和863计划官方网站[2]/863_105/indust/indust_news/200409160008.html“银河麒麟操作系统是针对未来的主流网络服务和高性能计算服务的需求,参照国际主流标准,参考Darwin、FreeBSD、Linux和其它商用操作系统,借鉴UNIX操作系统和微内核操作系统的设计思想,设计并实现具有自主版权的、可支持多种CPU芯片和多种计算机体系结构的、具有高性能、高可用性与高安全性的、并与Linux应用和设备驱动二进制兼容的中文服务器操作系统,”摘自麒麟操作系统2.0.21内自带的帮助文档近日,有不少人对麒麟操作系统宣称的“完全自主版权”和“中国独立研发成功”这两个核心问题产生了质疑。

DIFF论文

DIFF论文

4.2 算法设计要求............................................................................. 15 4.3 基于位置的文本文件比较算法................................................. 16 4.3.1 算法描述........................................................................... 16 4.3.2 算法改进........................................................................... 16 4.3.3 算法优缺点....................................................................... 17 4.3.4 实例分析........................................................................... 17 4.4 文本比较中的 LCS 算法............................................................. 19 4.4.1 LCS 算法描述.................................................................... 19 4.4.2 代码实现........................................................................... 19 4.4.3 LCS-Length 和 LCS 算法效率分析..................................21 4.5 文本比较中的 GST 算法............................................................. 21 4.6 子算法的选择............................................................................. 22 4.7 QtCreator 界面设计.................................................................. 22 4.8 界面设计的主函数代码............................................................. 25 第五章 软件测试..................................................................................... 27 5.1 软件测试综述.............................................................................. 27 5.2 测试方案..................................................................................... 27 5.3 测试内容..................................................................................... 28 结束语........................................................................................................31 致 谢........................................................................................................32 参考文献................................................................................................... 33

grub配置详细过程

grub配置详细过程

GRUB对设备的命名
首先,GRUB对设备的命名必须包含在小括号()内;其次,GRUB 不区分IDE硬盘和SCSI硬盘,统一使用hdx,其中x指定BIOS中 硬盘的编号,并从0开始计数。 (hd0) 表示第一块磁盘 (hd0,1) 表示第1个硬盘的第2个分区 (hd0,0)/boot/vmlinuz 表示第1个硬盘的第一个分区下的boot/目 录下的vmlinuz文件。
按下C后:windows系统的写法 grub> rootnoverify (hd0,0) grub> chainloader +1 grub> boot
Grub rescue
比如先装linux然后装windows,重启后linux不知道跑哪去了。 windows自作聪明的把Grub覆盖了,而自己的引导程序并没有引导 启动linux的能力。 解决方法:重新安装Grub。当然前提是用户有一张相同版本的 Linux安装光盘。 成功从光盘启动后,在Linux命令行下依次输入下面这些命令。 grub find /boot/grub/stage1 (查找硬盘上的Linux系统将boot 目录存放在哪个硬盘分区中) root (hdx,y) setup (hd0) quit
Grub有几个重要的文件
stage1,stage2,有的时候需要stage1.5.这些文件一般都在 /boot/grub文件夹下面.如下图
Grub加载
1.装载基本的引导装载程序(stage1),stage1通常位于主引导扇区里 面,对于硬盘就是MBR了,stage1的主要功能就是装载第二引导程 序(stage2).这主要是归结于在主引导扇区中没有足够的空间用于 其他东西了。 装载第二引导装载程序(stage2),这第二引导装载程序实际上是引出 更高级的功能,以允许用户装载入一个特定的操作系统。在GRUB 中,这步是让用户显示一个菜单或是输入命令。由于stage2很大 ,所以它一般位于文件系统之中(通常是boot所在的根分区) stage1.5有时候基本引导装载程序(stage1)不能识别stage2所在的 文件系统分区,那么这时候就需要stage1.5来连接 stage1和 stage2了. 接着,stage2被加载并执行,由stage2借助stage1_5驱动文件系统 ,并查找grub.conf,显示启动菜单供用户选择,然后根据用户的 选择或默认配置加载操作系统内核,并将控制权交给操作系统内 核,由内核完成操作系统的启动。

长城 电脑 说明书

长城 电脑 说明书
机型识别
在您的笔记本后部有型号及流水号条形码标签。在您需要帮助或反映问题时, 请给出全部的型号名称或流水号,以便于我们很快知道您的机器的详细情况,更 好地为您服务。
使用环境要求
环境温度
--工作:10~35°C。 --存储运输:-40~55°C。
环境湿度
--工作:35~80%。 --存储运输:作环境
工作环境建议
对不同的人来说,工作时舒适的姿势各不相同。这里仅仅提供几条参考意见 帮助您找到合适的最佳位置。 ¾ 长期保持同一个姿势容易引起疲劳。一把好座椅的效果会有很大的不同。靠
背和座位应该可以分别调整并提供良好的支撑。座位应有缓解大腿压力的弯 曲边沿。座位高度应调至大腿与地板平行的位置,且双脚能平置于地板或脚 踏板。 ¾ 使用键盘时,要保持前臂与地板平行,腕部处于一种适中、舒适的位置。尽 量轻击键盘,放松手和手指。 ¾ 调节显示器使显示屏最高端位于或稍低于水平视线。将显示器置于舒适的视 线距离,通常为 50 至 70 厘米(19 至 24 英寸)。调至适中的位置使您直视 显示器时不需要扭转身体。其它一些您常用的设备如电话和鼠标应该放在方 便取用的位置上。
产品使用说明书
开机、关机 .................................................................................................17 安装操作系统 .............................................................................................17 笔记本驱动的安装和使用 .........................................................................28 开机 .............................................................................................................30 系统电源管理 .............................................................................................30 第五章 认识操作系统....................................................................................32

测评指导书(二级)

测评指导书(二级)

XXXXXX公司XXXXXX等级测评项目测评指导书XXXXXX信息安全测评技术中心2009年10月Document Control第 2 页共110 页目录第1章安全管理测评指导书 (5)1.1安全管理机构测评 (5)1.2安全管理制度测评 (8)1.3人员安全管理测评 (10)1.4系统建设管理测评 (12)1.5系统运维管理测评 (17)第2章物理安全测评指导书 (26)2.1物理安全测评 (26)第3章网络安全测评指导书 (34)3.1网络全局安全测评 (34)3.2路由器安全测评 (36)3.2.1思科路由器安全测评 (36)3.3交换机安全测评 (40)3.3.1华为交换机安全测评 (40)3.3.2思科交换机安全测评 (43)3.4防火墙安全测评 (46)3.4.1PIX防火墙安全测评 (46)3.4.2天融信防火墙安全测评 (48)3.4.3华为防火墙安全测评 (51)3.5远程拨号服务器安全测评 (53)3.6入侵检测/防御系统安全测评 (54)第4章操作系统安全测评指导书 (57)4.1W INDOWS操作系统安全测评 (57)4.2T RU64操作系统安全测评 (61)4.3L INUX操作系统安全测评 (69)4.4S OLARIS操作系统安全测评 (74)4.5A IX操作系统安全测评 (78)第 3 页共110 页第5章应用系统安全测评指导书 (82)5.1应用系统安全测评 (82)5.2IIS应用安全测评 (87)5.3A PACHE应用安全测评 (89)第6章数据库安全测评指导书 (93)6.1SQL S ERVER数据库安全测评 (93)6.2O RACLE数据库安全测评 (98)6.3S YBASE数据库安全测评 (103)第 4 页共110 页第1章安全管理测评指导书1.1安全管理机构测评第 5 页共110 页第 6 页共110 页第7 页共110 页1.2安全管理制度测评第8 页共110 页第9 页共110 页1.3人员安全管理测评第10 页共110 页第11 页共110 页1.4系统建设管理测评第12 页共110 页第13 页共110 页第14 页共110 页第15 页共110 页第16 页共110 页1.5系统运维管理测评第17 页共110 页第18 页共110 页第19 页共110 页第20 页共110 页第21 页共110 页第22 页共110 页第23 页共110 页第24 页共110 页第25 页共110 页第2章物理安全测评指导书2.1物理安全测评第26 页共110 页第27 页共110 页第28 页共110 页第29 页共110 页第30 页共110 页第31 页共110 页第32 页共110 页第33 页共110 页第3章网络安全测评指导书3.1网络全局安全测评第34 页共110 页第35 页共110 页3.2路由器安全测评3.2.1思科路由器安全测评第36 页共110 页第37 页共110 页第38 页共110 页第39 页共110 页3.3交换机安全测评3.3.1华为交换机安全测评第40 页共110 页第41 页共110 页第42 页共110 页3.3.2思科交换机安全测评第43 页共110 页第44 页共110 页第45 页共110 页3.4防火墙安全测评3.4.1PIX防火墙安全测评第46 页共110 页第47 页共110 页3.4.2天融信防火墙安全测评第48 页共110 页第49 页共110 页第50 页共110 页。

K7产品说明书

K7产品说明书

第一章 K7型GPS测量系统简介 (3)1.1 系统的特色、组成、性能指标及配置 (3)1.1.1 K7型GPS新特色 (3)1.1.2系统组成 (3)1.1.3 K7测量系统的主要技术参数 (3)1.1.4 测量系统的基本配置 (4)1.2 K7型GPS测量系统的硬件 (5)1.2.1 K7型GPS接收机 (5)1.2.2 电池及充电器 (6)1.3 K7型GPS测量系统软件组成 (7)1.4 K7型GPS接收机充电及电源装卸 (7)一、打开K7主机侧面的电池后盖(见图1-2); (7)二、将电池后盖打开后取出锂电池(见图1-3),然后用配套充电器充电。

(7)第二章 K7型GPS测量系统实测 (8)2.1 概述 (8)2.2系统作业模式 (9)2.2.1 静态相对定位模式 (9)一、作业方法: (9)二、定位精度: (9)三、作业要求: (9)四、适用范围: (9)五、作业范围: (9)2.2.2后差分动态相对定位模式 (9)一、作业方法: (9)二、技术指标: (9)三、应用范围: (10)2.3 GPS网的技术设计 (10)2.3.1 测量的精度标准 (10)2.3.2网的图形设计 (11)2. 环形网 (11)3. 星形网 (12)2.3.3基线长度 (13)2.3.4网的基准 (13)2.4 选点与埋石 (13)2.4.1选点 (13)2.4.2 埋石 (14)2.5 K7型GPS测量系统的野外作业 (14)2.5.1 制定观测计划 (14)一、确定工作量 (14)二、采用分区观测 (15)三、选择观测时段 (15)四、确定观测进程及调度 (15)2.5.2安置及启动仪器 (16)2.5.3如何量取天线高即仪器高 (16)2.5.4启动仪器 (17)2.6 K7型接收机使用注意事项 (17)GPS测量应遵循《国家标准GPS测量规范》布网、施测、检核、计算。

(17)第三章K7型GPS测量系统文件及操作 (17)3.1 K7型文件系统简介与文件界面 (18)3.1.1 初始界面 (18)3.1.2 系统界面 (19)3.2 K7型文件系统野外数据采集 (23)3.2.1智能模式采集 (23)一、数据的采集: (23)二、给记录的数据取一个文件名: (24)三、退出数据记录: (25)3.2.2人工模式采集 (25)一、数据的采集: (25)二、给记录的数据取一个文件名: (25)三、退出数据记录: (25)3.2.3节电模式采集 (26)一、数据的采集: (26)第四章 K7内业数据传输 (27)4.1数据传输软件简介和界面 (27)4.1.1 菜单项 (27)四、查看菜单 (29)4.1.2 工具栏 (30)4.1.2 状态栏 (31)4.1.3 程序视窗 (31)4.2如何进行数据传输 (32)四、数据传输 (33)五、断开连接 (33)4.3.2检测注册码 (34)4.3.3设置功能 (35)第五章常见问题及解决方法 (35)第六章 K7后处理差分系统实测 (36)6.1.1 初始界面 (36)6.1.2 后差分野外作业步骤 (37)第七章如何升级主机软件 (39)附录A 有关专业术语注释 (41)附录B 年积日计算表 (43)附录C 联系方式 (45)附录D 全国销售及服务网络列表 (46)第一章 K7型GPS测量系统简介1.1 系统的特色、组成、性能指标及配置1.1.1 K7型GPS新特色K7智能一体化GPS接收机现已问世。

嵌入式系统设计与应用[共5篇]

嵌入式系统设计与应用[共5篇]

嵌入式系统设计与应用[共5篇]第一篇:嵌入式系统设计与应用第一章:嵌入式系统定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。

(一切非PC计算机系统)嵌入式系统特点:“专用”计算机系统,运行环境差异很大,比通用PC系统资源少,功耗低,体积小,集成度高,成本低,具有完整的系统测试和可靠性评估体系,具有较长的生命周期,需要专用开发工具和方法进行设计,包含专用调试电路,多学科知识集成系统。

嵌入式系统应用范围:汽车,工业控制,通信设备,消费电子,商业终端,航空航天,军事需求。

嵌入式系统的基本开发流程:系统定义与需求分析阶段,方案设计阶段,详细设计阶段,软、硬件集成测试阶段,系统功能性测试及可靠性测试阶段。

系统定义与需求分析阶段:对系统需求进行分析,制定系统的设计依据。

方案设计阶段:确定系统初步设计方案并形成设计描述文档。

详细设计阶段:完善初步方案,对方案实施详细设计。

软硬件集成测试阶段:对系统软硬件进行综合测试,验证系统设计功能。

系统功能性能测试及可靠性测试测试:对系统功能,性能,可靠性进行综合测评。

对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含4个层面:板级支持包层,实时操作系统(RTOS)层,应用程序接口(API)层,应用程序层。

有些资料将应用程序接口API归属于OS层,按3层划分的应用程序控制系统的运作和行为;操作系统与硬件无关,不同的嵌入式操作系统其组成结构也不尽相同嵌入式操作系统种类繁多,大体分为两种:商用型和免费型商用型:VxWorks,Windows CE,pSoS,Palm OS,OS-9,LynxOS,QNX和LYNX 免费型:Linux和uC/OS—II uC/OS—II具有执行效率高,占用空间小,可移植性及扩展性强,实施性能优良,稳定性和可靠性良好等特点。

其内核采用微内核结构,将基本功能(如进程管理,存储管理,中断处理)放在内核中,留给用户一个标准API 函数,并根据各个任务的优先级分配CPU时间。

DLL的11种注入方法资料

DLL的11种注入方法资料

闲着没事整理了一下DLL的N种注入方法,对学习外挂的朋友,应该有用!第一种方法:利用CreateRemoteThread 远程建立线程的方式注入DLL.首先,我们要提升自己的权限,因为远程注入必不可免的要访问到目标进程的内存空间,如果没有足够的系统权限,将无法作任何事.下面是这个函数是用来提升我们想要的权限用的.function EnableDebugPriv : Boolean;varhToken : THANDLE;tp : TTokenPrivileges;rl : Cardinal;beginresult := false;//打开进程令牌环OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);//获得进程本地唯一IDif LookupPrivilegeValue(nil, 'SeDebugPrivilege',tp.Privileges[0].Luid) thenbegintp.PrivilegeCount := 1;tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;//调整权限result := AdjustTokenPrivileges(hToken, False, tp,sizeof(tp), nil, rl);end;end;关于OpenProcessToken() 和AdjustTokenPrivileges() 两个API的简单介绍:OpenProcessToken():获得进程访问令牌的句柄.function OpenProcessToken(ProcessHandle: THandle; //要修改访问权限的进程句柄DesiredAccess: DWORD; //指定你要进行的操作类型var TokenHandle: THandle): BOOL; //返回的访问令牌指针AdjustTokenPrivileges() :调整进程的权限.function AdjustTokenPrivileges(TokenHandle: THandle; // 访问令牌的句柄DisableAllPrivileges: BOOL; // 决定是进行权限修改还是除能(Disable)所有权限const NewState: TTokenPrivileges; // 指明要修改的权限,是一个指向TOKEN_PRIVILEGES结构的指针,该结构包含一个数组,数据组的每个项指明了权限的类型和要进行的操作;BufferLength: DWORD; //结构PreviousState的长度,如果PreviousState为空,该参数应为0var PreviousState: TTokenPrivileges; // 指向TOKEN_PRIVILEGES结构的指针,存放修改前的访问权限的信息var ReturnLength: DWORD //实际PreviousState结构返回的大小) : BOOL;远程注入DLL其实是通过CreateRemoteThread 建立一个远程线程调用LoadLibrary 函数来加载我们指定的DLL,可是如何能让远程线程知道我要加载DLL呢,要知道在Win32系统下,每个进程都拥有自己的4G虚拟地址空间,各个进程之间都是相互独立的。

vba调用kernel32案例

vba调用kernel32案例

vba调用kernel32案例VBA是一种用于Microsoft Office应用程序的编程语言,可以通过VBA调用Windows API函数来扩展其功能。

其中,kernel32.dll 是Windows操作系统中的一个重要的动态链接库文件,其中包含了许多与系统操作相关的函数。

使用VBA调用kernel32.dll中的函数,可以实现一些高级的操作,如获取系统信息、文件操作、内存管理等。

下面列举了10个使用VBA调用kernel32.dll函数的案例:1. 获取系统信息:使用VBA调用kernel32.dll中的GetSystemInfo函数,可以获取系统的基本信息,如处理器架构、页大小等。

2. 创建文件:使用VBA调用kernel32.dll中的CreateFile函数,可以创建一个新的文件,并指定其名称、访问权限、共享模式等参数。

3. 复制文件:使用VBA调用kernel32.dll中的CopyFile函数,可以实现文件的复制操作,将指定文件复制到目标路径中。

4. 删除文件:使用VBA调用kernel32.dll中的DeleteFile函数,可以删除指定的文件。

5. 获取文件大小:使用VBA调用kernel32.dll中的GetFileSize函数,可以获取指定文件的大小。

6. 获取文件属性:使用VBA调用kernel32.dll中的GetFileAttributes函数,可以获取指定文件的属性,如只读、隐藏、系统文件等。

7. 内存分配:使用VBA调用kernel32.dll中的VirtualAlloc函数,可以在进程的地址空间中分配一块内存,并指定其大小、保护模式等参数。

8. 内存释放:使用VBA调用kernel32.dll中的VirtualFree函数,可以释放先前通过VirtualAlloc函数分配的内存。

9. 创建线程:使用VBA调用kernel32.dll中的CreateThread函数,可以创建一个新的线程,并指定其入口函数、参数等。

‘红旗杯’linux大赛——基础知识

‘红旗杯’linux大赛——基础知识

‘红旗杯’linux大赛——基础知识------------------------------------------------------------‘红旗杯’linux大赛——基础知识1------------------------------------------------------------1. Internet管理结构最高层域划分中表示商业组织的是:*A. COM B. GOV C. MIL D. ORG2. 超级用户的口令必须:A. 至少4个字节,并且是大小写敏感的*B. 至少6个字节,并且是大小写敏感的C. 至少4个字节,并且是大小写不敏感的D. 至少6个字节,并且是大小写不敏感的3. 为代理服务器指定缺省域名的语句是:A. ServerName *B. ProxyDomainC. ProxyPassD. AccessFileName4. 指定域名服务器位置的文件是:A. etc/hostsB. /etc/networks *C. /etc/resolv.confD. /.profile5. 在路由器给某一数据包选定了最优路径后,它将继续下面的哪一项?A. 广播B. 在路由选择表中存储该数据包C. 选择一路由选择协议*D. 交换数据包6. 服务器端的E-Mail之间的信息传递是通过_________协议来完成的。

A. TCP/IPB. POP *C. SMTPD. POP31. /etc/hosts文件中至少包含一行,它是:A. 127.1.1.1 localhost *B. 127.0.0.1 localhostC. 127.0.0.155 hostnameD. 202.38.126.12 dns2. 取消不必要的服务,需要修改________文件,在不必要的服务前面加__________号A. /etc/.profile *B. /etc/inetd.conf * *C. /etc/inetd.conf #D. /etc/.confige #3. IEEE 802.3标准定义了:A. 适用于实时系统的局域网标准*B. 使用载波监听/冲突检测(CSMA/CD)协议的局域网规范C. 令牌环所遵循的标准D. 光纤分布数据接口4. PPP在什么情况下最会被本地工作站用于建立到Internet的连接?CA. 工作站直接连到局域网内B. 工作站直接接到路由器上*C. 工作站需要建立一个到Internet的拨号连接D. 永远不会被工作站使用5. 路由选择协议有:BA. IP协议*B. RIP协议C. UDP协议D. ARP协议6. 微分段的特征包括以下哪个?A. 发送和接收主机间的专用路径B. 交换机内多流量路径C. 网络段的所有流量立刻可见*D. A和B7. 当网络中的所有的路由器都使用同样的认识时,这个网络可以说是以下哪一种?*A. 收敛的B. 正式的C. 可重构的D. 都不是8. 子网号为16 bit的A类地址与子网号为8 bit的B类地址的子网掩码分别是:* A. 11111111.11111111.11111111.00000000 11111111.11111111.11111111.00000000B. 11111111.00000000.11111111.00000000 11111111.11111111.11111111.00000000C. 11111111.00000000.00000000.00000000 11111111.00000000.11111111.00000000D. 11111111.00000000.00000000.00000000 11111111.00000000.00000000.000000009. 一般来说,SMTP服务器会使用_____端口开展邮件服务。

1.漫谈兼容内核之一:ReactOS怎样实现系统调用

1.漫谈兼容内核之一:ReactOS怎样实现系统调用
当内核完成了具体系统调用的操作,CPU 返回到用户空间时,下一条指令是“pop ebp”, 即恢复上一层函数的堆栈框架指针。然后,指令“ret 9”使 CPU 返回到上一层函数,同时 调整堆栈指针,使其跳过堆栈上的 9 个调用参数。在“正宗”的 x86 汇编语言中,用在 ret 指令中的数值以字节为单位,所以应该是“ret 24h”,而这里却是以 4 字节长字为单位,这 显然是因为用了不同的汇编工具。
函数名前面的关键词 WINAPI 表示这是个定义于 Win32 API 的函数。 在 ReactOS 的代码中同样也有 winbase.h,这是在目录 reactos/w32api/include 中:
BOOL WINAPI ReadFile(HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED);
…… return(TRUE); }
我们在这里只关心 NtReadFile(),所以略去了别的代码。 如前所述,NtReadFile()是 Windows 的一个系统调用,内核中有个函数就叫 NtReadFile(), 它的实现在 ntoskrnl.exe 中(这是 Windows 内核的核心部分),这也可以用 depends.exe 打开 ntoskrnl.exe 察看。ReactOS 代码中对内核函数 NtReadFile()的定义在 reactos/include/ntos/zw.h 中,同样的定义也出现在 reactos/w32api/include/ddk/winddk.h 中:
__declspec(naked) __stdcall NtReadFile(int dummy0, int dummy1, int dummy2) {
__asm { push ebp mov ebp, esp mov eax,152 lea edx, 8[ebp] int 0x2E pபைடு நூலகம்p ebp ret 9

OD关于DLL调试之说明—Kernel32

OD关于DLL调试之说明—Kernel32

OD关于DLL调试之说明—Kernel32 CALL DWord Ptr [<&KERNEL32.WriteFile>] kernel32.WriteFile将数据写入一个文件,也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理CALL DWord Ptr [<&KERNEL32.WriteConsole>] kernel32.WriteConsole 在当前光标位置写入字符串到控制台屏幕缓冲区.CALL DWord Ptr [<&KERNEL32.WideCharToMultiByte>]kernel32.WideCharToMultiByte映射一个unicode字符串到一个多字节字符串。

CALL DWord Ptr [<&KERNEL32.WaitForSingleObject>]kernel32.WaitForSingleObject用来检测hHandle事件的信号状态CALL DWord Ptr [<&KERNEL32.VirtualQuery>] kernel32.VirtualQuery 以页为单位,遍历进程虚拟空间。

CALL DWord Ptr [<&KERNEL32.VirtualProtect>] kernel32.VirtualProtect 呼叫处理序的虚拟位址空间里,变更认可页面区域上的保护。

CALL DWord Ptr [<&KERNEL32.VirtualFree>] kernel32.VirtualFree取消或者释放调用进程的虚地址空间页的一个区域CALL DWord Ptr [<&KERNEL32.VirtualAlloc>] kernel32.VirtualAlloc 用进程的虚地址空间,预定或者提交一部分页CALL DWord Ptr [<&KERNEL32.UnhandledExceptionFilter>]kernel32.UnhandledExceptionFilter显示了一个对话框告诉你发生了一个错误CALL DWord Ptr [<&KERNEL32.TlsSetValue>] kernel32.TlsSetValue设置线程数组中的值CALL DWord Ptr [<&KERNEL32.TlsGetValue>] kernel32.TlsGetValue读取线程数组中的值CALL DWord Ptr [<&KERNEL32.TlsFree>] kernel32.TlsFree取消或者释放某个线程的TLS数组索引变量。

0.00.Cortex-M3内核结构(精简至21页)

0.00.Cortex-M3内核结构(精简至21页)

第3章Cortex-M3内核结构3.1 M3处理器内核结构概述Cortex-M3是一个32位处理器内核,简称M3。

内部的数据总线宽度是32位的,寄存器是32位的,存储器接口也是32位的。

M3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。

这样一来数据访问不再占用指令总线,从而提升了性能。

为实现这些特性,M3内部含有好几条总线接口,每条都经过优化,适合自己的应用场合,并且它们可以并行工作。

但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。

换句话说,不是因为有两条总线,可寻址空间就变成8GB了。

比较复杂的应用可能需要更多的存储系统功能,为此M3提供一个可选的MPU,而且在需要的情况下也可以使用外部的高速缓存(Cache)。

另外M3支持大、小端两种存储模式。

M3内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。

另外,为支持更高级的调试,还有其它可选组件,包括指令跟踪和多种类型的调试接口。

图3-1-1是以Cortex-M3为内核所设计的处理器芯片的一个简化视图。

图3-1-1 Cortex-M3处理器简化视图3.2 M3内核寄存器M3寄存器组包括通用寄存器和特殊功能寄存器两部分。

如图3-2-1所示,M3处理器拥有16个通用寄存器R0-R15和5个特殊功能寄存器,下面对其分类介绍。

进程堆栈寄存器s图3-2-1 Cortex-M3寄存器3.2.1 通用寄存器1)通用寄存器R0-R12。

R0--R12是完全通用32位寄存器,用于数据操作,而绝大多数16位Thumb 指令只能访问R0-R7,而32位Thumb-2指令可以访问所有寄存器。

2)堆栈指针R13/SP。

M3拥有两个堆栈指针SP分组,即MSP和PSP,是两个完全独立的物理寄存器空间,但在任一时刻只能使用2个分组中的一个。

堆栈指针寄存器使用的有关说明如下:♦主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程(包括中断服务例程);♦进程堆栈指针(PSP):由用户的应用程序代码使用;♦堆栈指针的最低两位永远是0,堆栈总是4字节对齐的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

漫谈兼容内核之三:Kernel-win32的文件操作毛德操上一篇漫谈中分析/介绍了Kernel-win32的对象管理机制。

在各种对象类型中,文件显然是最重要、最复杂(就其操作而言)的类型。

如果说像“信号量”之类的简单对象还有可能独立地加以实现,那么像文件这样的复杂对象这就不太现实,并且实际上也不合适了。

所以,本文的目的就是通过几个典型文件操作的实现介绍kernel-win32是怎样把Windows用于文件操作的系统调用“嫁接”到Linux内核中的有关成分上。

文件的创建如前文所述,所有的对象都有个Object数据结构,里面有个ObjectClass指针,它指向什么ObjectClass数据结构,这个对象就是什么类型。

“文件”就是一种对象类型,它的数据结构是file_objclass:struct ObjectClass file_objclass = {"FILE",oc_type:constructor: FileConstructor,FileReconstructor,reconstructor:destructor: FileDestructor,FilePoll,poll:describe:FileDescribe,oc_flags: OCF_DONT_NAME_ANON /* names shared from FCTRL class */};需要创建一个文件时、或者说需要创建一个类型为文件的对象时,函数_AllocObject()将调用这个结构所提供的函数FileConstructor(),以构造出代表着这个具体对象的数据结构,并且创建并/或打开具体的文件。

另一方面,Object数据结构中还有个指针o_private,指向由上述构造函数生成、代表着具体类别对象的数据结构。

对于文件类对象,这个数据结构是WineFile:/** process-access file object definition* - can't be shared, since they have to have separate attributes for the file* access*/struct WineFile {struct list_head wf_ctllist; /* file control list next */WineFileControl *wf_control; /* the file control object */struct file *wf_file; /* the Linux file */__u32 wf_access; /* file access mode */__u32 wf_sharing; /* sharing mode */__u32 wf_attrs; /* file open attributes */};这个数据结构代表着目标文件的一次“打开”。

也即一个文件访问上下文。

至于没有被打开的文件,则只是存在于磁盘上、或本来就是个外设,在内存中一般不存在相应的数据结构。

注意这里的指针wf_file,这是一个struct file指针。

我们知道,struct file就是Linux内核中代表着已打开文件的数据结构,存在于每个进程的“打开文件表”中的就是struct file 指针。

由于struct file数据结构所代表的是目标文件的一次打开,所以可以断定WineFile所代表的也是一次打开、即一个上下文(例如可以通过lseek()取得的当前读/写位置),而不是目标文件本身。

显然,对于已经打开的文件,除了代表着文件访问上下文的数据结构以外,还应该有代表着目标文件本身的数据结构。

这就是“文件控制类”的对象,其数据结构是WineFileControl:struct ObjectClass file_control_objclass = {"FCTRL",oc_type:constructor: FileControlConstructor,FileControlReconstructor,reconstructor:destructor: FileControlDestructor,FileControlPoll,poll:FileControlDescribedescribe:};文件控制类对象的o_private数据结构则是WineFileControl:/** file-control object definition* - links together WineFile objects that use the same file*/struct WineFileControl {struct list_head wfc_accessors; /* who's accessing this file */spinlock_t wfc_lock; /* govern access to list */Object *wfc_myself; /* my own object */};这里的wfc_myself指向其本身的Object数据结构。

队列头wfc_accessors用来维持一个“访问者”队列,这是一个WineFile数据结构的队列。

WineFile数据结构通过其队列头wf_ctllist挂入这个队列。

WineFileControl与WineFile之间是一对多的关系。

只要一个文件被打开,内存中就得有一个(并且只有一个)代表着这个文件的WineFileControl数据结构,而WineFile数据结构的数量则取决于对此文件同时共存的上下文个数。

在某种意义上,WineFile 是对(Linux的)struct file数据结构的包装和扩充,而WineFileControl是对struct dentry数据结构的的补充。

但是,应该在WineFileControl中加以补充的Windows文件所独有(有别于Linux文件属性)的属性有很多,而这里却什么也没有。

所以目前这个数据结构的定义只是提供了一个空的骨架,还有待充实。

还有值得一提的是,打开目标文件以后的struct file指针wf_file保存在WineFile数据结构中,而不是保存在Linux进程(线程)的打开文件表中。

这意味着设计者的意图是另起炉灶、完全由自己来管理Windows进程所打开的文件,而与Linux的有关机制分道扬镳。

可是这是有可能带来问题的。

举个例子来说明这一点:假定一个Windows进程在运行中发生了问题,或者被别的进程kill,从而执行了do_exit()。

在退出运行的过程中,do_exit()会扫描该进程的打开文件表,根据表中的struct file指针关闭所有已打开文件、并释放资源。

可是现在Windows进程的struct file指针不在打开文件表中,因而就享受不到这个待遇。

设计者显然意识到这一点,所以在有关的内核代码上打了补丁,让它调用一个外挂函数(见前一篇漫谈)。

然而,我们却看到有关的外挂函数尚未实现。

对于诸如此类的问题,是尽量利用Linux 内核原有的代码较好?还是另起炉灶较好?应该说是各有利弊,具体的情况需要具体分析,总之是值得推敲的。

介绍了这些背景以后,我们可以阅读kernel-win32所实现的代码了。

这里看三个系统调用的代码,分别是CreateFileA()、ReadFile()、和CloseHandle()。

了解了这三种操作,对于kernel-win32文件操作的实现就知道了个大概,再进一步阅读其它有关的代码也就不难了。

这三个系统调用的函数名与一般Windows文献中所见有所不同,但是这没有什么关系,因为这些函数是内核中不向外界开放(导出)的函数,叫什么都可以。

先看CreateFileA(),这个函数根据给定的路径名打开一个文件,如果这个文件尚不存在就加以创建、并且打开。

这跟Linux的sys_open()基本上是一致的,只是函数名sys_open()突出了“打开”而CreateFileA()突出了“创建”。

不过,除CreateFile()外,Windows另有一个系统调用OpenFile(),这很容易让人误以为前者是只创建不打开,而后者是只打开不创建。

还有,函数名CreateFileA()中的“A”表示ASCII,意思是所涉及的字符串(例如文件名)是8位ASCII码。

与之相对的是“W”,表示16位“宽”字符,或Unicode。

下面就来看代码。

/** open a file object, maybe creating if non-existent*/int CreateFileA(struct WineThread *thread, struct WiocCreateFileA *args){HANDLEhFile;*obj;Object/* must have a name... */(!args->lpFilename)if-EINV AL;return/* ...but create the object _without_ a name and attach one later* (need a separate file-access object for each CreateFileA*/obj= CreateObject(thread, &file_objclass, NULL, args, &hFile);(IS_ERR(obj))ifPTR_ERR(obj);returnktrace("*** [%d] CreateFileA(%p) = %p\n",current->pid,obj,hFile);objput(obj);hFile;return(int)} /* end CreateFileA() */Kernel-win32所实现的系统调用通过数据结构传递参数,这是与Windows不同、而带有Linux风格的做法;原因就是Kernel-win32通过Linux系统调用来“搭载”实现Windows 系统调用。

对于CreateFileA(),这个数据结构是struct WiocCreateFileA。

struct WiocCreateFileA {lpFilename;__pad__LPCSTRdwDesiredAccess;__pad__DWORDdwShareMode;__pad__DWORDLPSECURITY_ATTRIBUTES __pad__ lpSecurityAttributes;__pad__ dwCreationDisposition;DWORD__pad__ dwFlagsAndAttributes;DWORDHANDLE __pad__ hTemplateFile;};可见与open()的参数有相当大的不同,这里限于篇幅不作介绍了,读者可参阅有关的Windows文献和资料。

相关文档
最新文档