-
分类:编程开发 语言:简体中文 大小:未知 发布时间:13-08-20
向内核世界说一声:hello,我来了。如果你是一个初学者,并对这个世界充满好奇心,请从这一章开始,我们一起打招呼~第1章 hello world驱动 11.1 从hello world开始 21.1.1 hellodriver 41.1.2 代码解释 81.1.3 驱动程序的编译和安装 111.1.4 查看我们的驱动 141.2 虚拟环境 151.2.1 使用虚拟环境进行驱动开发 151.2.2 使用vmware虚拟机 151.2.3 目标机设置 161.2.4 virtual pc虚拟机 181.3 小结 19如何在规范的商业环境中,开发成功而有效的驱动软件?驱网站长马勇(znsoft)将向你娓娓道来。你会学到这些内容:建立一个简单而有效的开发、调试环境;64位环境下的内核编程技巧;如何发布你的驱动软件。第2章 商业驱动开发技术 202.1 建立开发调试环境 212.1.1 svn环境 212.1.2 创建工程,导入svn 232.1.3 建立符号服务器 252.1.4 用符号调试 27.2.2 64位驱动开发技术 342.2.1 64位驱动编写技术 352.2.2 32位应用程序与64位驱动混合模式 362.3 驱动程序的发布与测试 422.3.1 驱动程序签名 422.3.2 驱动程序测试 462.3.3 whql 492.4 小结 50wdf 是目前最新的驱动编程框架。当很多内核程序员还紧抱wdm的巨大佛脚时,千万要记住,wdf已是大势所趋。本章介绍了wdf最重要的几个概念,并进行了一 定程度的深度挖掘。对于wdf框架的三大核心模型:对象模型、事件模型、pnp/power模型,本章作了重点讲述。第3章 wdf概述 513.1 主要特点 523.2 框架视图 533.3 兼容性 553.4 对象模型 563.4.1 对象和句柄 593.4.2 引用计数 603.4.3 上下文空间 613.4.4 pme接口 673.4.5 ddi接口 693.4.6 父子关系 763.4.7 对象同步 773.5 驱动对象和设备对象 783.5.1 驱动对象 783.5.2 驱动入口driverentry 813.5.3 设备对象 843.5.4 创建设备对象 853.5.5 设备栈 863.6 io模型 883.6.1 io目标对象 883.6.2 io目标对象的细节 903.6.3 安全的缓冲区 933.6.4 内存对象(一) 963.6.5 内存对象(二) 983.6.6 框架和io请求 1023.6.7 更详细的处理流程 1033.6.8 io请求参数 1053.6.9 队列 1073.6.10 创建io请求 1103.7 pnp和电源模型 1123.8 小结 115使用wdf框架开发usb驱动,方便且简单。本章首先总体上从硬件和软件两个方面介绍usb相关知识点,包括设备的电气特性、总线结构、usb驱动类型以及类驱动。编程方面,从usb设备初始化、数据操作以及设备控制等几个方面来讲解,透彻并且翔实。第4章 wdf usb设备驱动开发 1164.1 usb设备硬件结构 1174.1.1 主从结构 1174.1.2 硬件拓扑 1184.1.3 usb中断 1194.2 usb软件结构 1204.2.1 总线驱动 1204.2.2 系统类驱动 1214.2.3 功能驱动 1224.2.4 父驱动与混合设备 1224.2.5 过滤驱动 1254.2.6 usb驱动栈、设备栈 1254.3 内核开发 1274.3.1 设备驱动 1274.3.2 入口函数 1284.3.3 usb描述符 1294.3.4 描述符介绍 1304.3.5 汇总举例 1334.3.6 读取描述符 1354.3.7 初始化 1374.3.8 设备初始化函数 1384.3.9 创建设备对象 1414.3.10 设备命名、符号链接 1434.3.11 启动设备 1474.3.12 创建队列 1564.3.13 停止设备/反初始化 1584.4 数据i/o操作 1604.4.1 usb控制命令 1604.4.2 构造并发送控制命令 1624.4.3 读usb中断端口 1634.4.4 连续读操作 1654.4.5 数据处理函数 1664.4.6 中断端口的效率 1674.4.7 读/写批量端口 1684.5 设备控制 1714.5.1 关于i/o target对象 1714.5.2 获取usb版本 1724.5.3 管道重置 1744.5.4 设备重置 1764.5.5 管道中止与终止 1774.6 用户程序 1794.6.1 内核读/写 1794.6.2 控制命令 1794.7 小结 1801394 俗称火线。大伙平时最多接触它的地方大概是内核调试时,借助1394卡进行双机互联。本章首先从硬件方面介绍了1394的知识,它的总线结构很特别,极具 可扩性,能非常方便地在各种类型的1394设备之间建立数据链路。内核编程方面,本章重点讲解了数据通信相关知识,分为异步通信和同步通信两种方式,颇为 复杂,相对难于掌握,但套路是现成的,变化的东西不多,可以熟能生巧。本章最后介绍了1394双机互联的原理,有兴趣的读者可参考之。第5章 wdf 1394驱动开发 1815.1 1394一席谈 1825.1.1 版本情况 1835.1.2 电源特性 1835.1.3 1394卡 1835.1.4 总线拓扑 1845.2 发送请求 1865.2.1 同步方式 1875.2.2 异步方式 1895.2.3 对wdm的回忆 1915.3 总线重置与计数 1935.3.1 总线重置 1935.3.2 设置重置回调 1935.3.3 计数更新 1945.4 pnp操作 1955.5 异步通信 1965.5.1 地址范围 1975.5.2 异步读 2005.5.3 异步写 2015.5.4 异步锁请求 2025.5.5 数据流 2035.6 等时通信 2045.6.1 申请带宽 2055.6.2 释放带宽 2065.6.3 等时通道 2065.6.4 资源句柄 2075.6.5 缓冲区挂载 2105.6.6 缓冲区解挂 2115.6.7 开始传输 2115.6.8 停止传输 2125.6.9 其他等时操作 2135.7 其他操作 2135.7.1 设备配置 2135.7.2 获取控制器信息 2145.7.3 速度信息 2155.7.4 厂商自定义命令 2165.8 安装与测试 2165.8.1 1394虚拟设备 2165.8.2 创建虚拟设备 2185.8.3 示例代码 2195.8.4 安装与测试 2215.9 小结 222内核天生适合于c语言编程,但越来越多的内核项目,规模达到10数万的规模。在这种情况下,人们不由地会将目光投向优雅的c++语言。总体上说,c和c++是至亲好友,内核中使用c++本不应有什么大问题,但有几个暗礁潜伏已久,不小心的程序员,你可千万不要触礁。第6章 内核驱动c++编程 2236.1 驱动中的类 2246.1.1 一个简单的例子 2246.1.2 new/delete 2256.1.3 extern "c" 2276.1.4 全局/静态变量 2286.1.5 栈的忧虑 2306.2 类封装的驱动程序 2336.2.1 寻找合适的存储所 2336.2.2 类方法与事件函数 2356.2.3 kmdf驱动实现 2366.2.4 wdm驱动实现 2376.3 多态 2386.3.1 基类、子类 2386.3.2 实现多态 2396.3.3 测试 2416.4 小结 241使用wdf框架编写的驱动程序,在测试和调试的时候,有特殊的工具。本章介绍了目前所知的三个,它们分别是:windbg扩展调试命令、wdftester测试工具、wdfverifier测试工具。本章将以示例方式,介绍这些工具的使用。第7章 wdf驱动测试 2427.1 wdf错误 2437.1.1 实例分析 2457.1.2 usb错误 2467.2 wdf扩展调试命令 2477.3 wdftester 2547.3.1 wdffitester 2547.3.2 使用 2567.3.3 wdfcalltracer 2607.4 wdfverifier 2637.4.1 识别kmdf驱动 2637.4.2 使用与介绍 2657.5 小结 266softice 渐行渐远之后,windbg成为内核调试的第一利器。使用windbg的最大难点是命令繁多,参数复杂。本章以总结归纳的形式,介绍了作者在工作中经常用 到的几大类调试命令,并以实例形式一一介绍。作者根据个人经验所作的分类,未能全备,但能够保证的是,所有实例翔实而可靠,可以作为可信的参考。第8章 调试命令详解 2678.1 概述 2688.1.1 寻求帮助 2698.1.2 dml语言 2708.1.3 基本信息 2718.1.4 基本设置 2728.1.5 格式化显示 2738.1.6 开始调试 2738.2 符号与源码 2768.2.1 模块列表 2778.2.2 模块信息 2798.2.3 符号路径 2808.2.4 符号加载 2838.2.5 符号搜索 2858.2.6 源码命令 2878.3 进程与线程 2898.3.1 进程命令 2898.3.2 线程命令 2928.3.3 异常与事件 2968.3.4 局部变量 3008.3.5 显示类型 3018.4 断点 3018.4.1 软件断点 3018.4.2 硬件断点 3038.4.3 其他操作 3038.5 内存命令 3048.5.1 查看内存 3048.5.2 内存信息 3078.5.3 其他命令 3118.6 小结 312相 信大多数人在学习内核开发的时候,都问过这样一个问题:内核驱动怎么向用户程序发送消息,或者如何调用win32函数。用户程序和内核同步,是一个基本而 重要的知识,本章介绍了三种主要的实现方式。至于内核是否可以调用win32函数,读一读本章开篇的话,你就有答案了。第9章 内核同步 3139.1 关于内核同步 3149.2 内核事件同步 3169.2.1 原理 3169.2.2 用户程序 3189.2.3 内核实现 3199.3 irp同步 3209.3.1 用户程序 3219.3.2 内核实现 3239.4 wmi同步 3259.5 数据缓冲区同步 3269.6 反向调用 3289.7 小结 330微 软最新的音视频编程框架即avstream框架,不管从什么方面来说,音视频编程都是一个很小众的领域。avstream框架极其复杂,个人看法是掌握的 难度超过了wdf。本章介绍了avstream框架的各种基本知识点,并以实例讲解一个内核音频过滤器在系统中是如何工作的。第10章 音频驱动开发 33110.1 简介 33210.1.1 音频模块架构 33210.1.2 系统中的音频设备 33410.2 avstream对象 33810.2.1 设备对象 33910.2.2 filter工厂和filter对象 34010.2.3 pin工厂和pin对象 34210.2.4 node对象与connection结构体 34310.3 avstream描述符 34610.3.1 描述符简介 34610.3.2 描述符示例 34710.3.3 分发函数表 34910.3.4 自控表 34910.3.5 自控表示例 35110.4 代码讲解 35510.4.1 入口函数 35510.4.2 设备分发函数 35710.4.3 filter与pin分发函数 35810.4.4 创建和删除 35910.4.5 数据处理 36010.4.6 数据格式 36210.5 自控表函数 36410.5.1 事件函数 36410.5.2 属性函数 36610.5.3 方法函数 36710.5.4 用户接口 36710.6 硬件操作 37010.6.1 数据dma 37010.6.2 avstream中的dma实现 37110.6.3 谈谈isr 37410.7 安装与测试 37610.7.1 安装 37610.7.2 测试工具 37610.8 小结 379asio音频驱动具有两个非常亮眼的优点:低延迟、多通道。低延迟能够达到几毫秒,使得最灵敏的耳朵也难也察觉;多通道则让通常的双声道、6.1声道等一齐歇菜,而可以很轻松地让多达十几、几十个声道同时工作,在进行高级音频编辑时,这非常重要。第11章 asio虚拟声卡 38011.1 引言 38111.2 关于asio 38311.3 asio用户驱动 38411.3.1 com接口 38411.3.2 安装与卸载 38611.3.3 iasio接口 38711.3.4 技术核心 39011.3.5 计算延迟 39211.4 内核驱动实现 39311.4.1 同步 39311.4.2 原理 39311.4.3 实现 39611.5 asio音频软件 39611.6 小结 397从本章开始的三章内容,讲的都是“驱动安装”这个话题。在本章中,介绍了系统中和驱动安装有关的各种系统模块。读者通过阅读本章后,至少能够掌握这两个基本知识:系统如何识别一个旧设备,并为它加载合适的驱动文件;系统如何发现一个新设备,并完成驱动安装。第12章 设备驱动安装入门 39912.1 基础知识预介 40012.1.1 设备类型 40012.1.2 设备实例id 40112.1.3 驱动加载和安装 40312.2 安装模块 40412.2.1 内核pnp管理器 40512.2.2 用户pnp管理器 40612.2.3 安装接口函数(setup api) 40812.2.4 配置管理器接口(cfgmgr api) 41012.2.5 类安装器(class installers) 41012.2.6 类协安装器(class co-installers) 41012.2.7 设备协安装器(device co-installers) 41112.2.8 驱动包(driver package) 41212.2.9 驱动仓库(driver store) 41312.2.10 设备管理器(device manager) 41412.2.11 安装程序 41512.2.12 新设备向导 41612.2.13 添加硬件向导 41612.2.14 驱动安装器(driver installer) 41612.3 重要问题 41712.3.1 寻找和选择 41712.3.2 32位与64位系统兼容 41812.3.3 系统重启 41912.4 安装模式 42012.4.1 示例1:客户端模式 42112.4.2 示例2:服务器模式 42312.5 安装器编程 42412.5.1 dif码 42412.5.2 处理流程 42712.5.3 工程示例 42912.5.4 注册 43012.6 小结 431inf文件即驱动程序的“安装文件”,它包含了各种与驱动安装有关的指令信息。通过inf文件,系统知道如何处理驱动包中的各个文件,并在系统注册表中做出准确记录。本章主要从指令和域,这两个方面进行讲解。第13章 深入解析inf文件 43213.1 概述 43313.1.1 域 43313.1.2 指令 43413.1.3 多系统 43513.2 注册表指令 43613.2.1 缩写根键 43613.2.2 软件键 43713.2.3 硬件键 43713.2.4 addreg 43813.2.5 delreg 44013.2.6 bitreg 44113.3 文件操作指令 44113.3.1 copyfiles 44113.3.2 delfiles 44313.3.3 renfiles 44313.4 服务指令 44413.4.1 addservice 44413.4.2 delservice 44513.5 基本域 44613.5.1 版本域 44613.5.2 文件域 44713.5.3 默认安装域 45113.5.4 控制域 45413.5.5 字符串域 45713.6 设备类安装域 45813.6.1 主域 45913.6.2 服务子域 46113.7 接口类安装域 46113.8 厂商/产品域 46213.8.1 厂商域 46313.8.2 产品域 46413.9 设备安装域 46413.9.1 硬件子域 46613.9.2 协安装器子域 46713.9.3 接口子域 46813.9.4 厂商默认配置子域 46913.9.5 逻辑优先配置子域 47013.10 chkinf介绍 47113.11 小结 472驱动安装程序让你的驱动软件显得更加专业,所以,放弃手动安装驱动的做法吧,你的驱动将显得更靓。本章的示例软件mydrvinst,可以作为读者设计更漂亮的安装软件的开始。第14章 设计驱动安装程序 47314.1 驱动包 47414.1.1 安装方式 47414.1.2 安装驱动包 47514.1.3 卸载驱动包 47614.2 驱动更新 47714.2.1 设备已连接 47714.2.2 设备未连接 47814.2.3 枚举系统设备 48114.3 分析inf文件 48414.3.1 函数介绍 48414.3.2 打印设备id 48614.4 mydrvinst介绍 48714.5 制作软件安装包 49014.5.1 视图介绍 49014.5.2 我们的工程 49214.5.3 编译执行 49314.6 小结 494附录a cy001 usb开发板 495附录b visualkd + vmware实现单机内核调试 501 内容简介:本书是作者根据多年的工作学习经验,总结的第一手驱动开发资料。本书更多的是经验之谈,一些实践中的小发现小意外,颇为书中内容添彩。本书的特色之一,是对wdf框架做了较多的切入。本书第一个主要内容是(第3~7章)围绕wdf而展开讨论,侧重点各有不同。第3章以框架为讨论的中心;第4、5两章以wdf框架开发usb和1394驱动;第6章讲述内核c++编程,也以wdf框架为蓝本;第7章讲述wdf驱动的测试和调试。第二个主要内容是关于音视频驱动开发(第10~11章)。音视频驱动包括avstream架构,本书做了较详细的阐述。第10章讲述使用avstream小端口架构,第11章讲述asio音频驱动开发。第三个主要内容是关于设备驱动安装(第12~14章)。第12章讲系统安装模块,从总体角度阐述系统和设备驱动如何配合完好地进行工作;第13章讲述inf安装文件的细节,包括各个域的作用,以及诸多安装指令的使用。第14章讲如何编写驱动安装软件。剩余的一些章节,分别是关于驱动入门(第1、2章)、windbg调试命令(第8章)、内核同步(第9章)等内容。本书适合一般入门级内核程序员,对wdf有兴趣,准备开发usb或1394设备驱动者,本书尤其有用。本书对于入行较久,经验丰富的程序员,也具有一定的参考价值。 内容截图: ...
-
分类:编程开发 语言:简体中文 大小:未知 发布时间:13-08-20
第1部分 逆向第1章 基础1.1 什么是逆向工程1.2 软件逆向工程:逆向1.3 逆向应用1.3.1 与安全相关的逆向1.3.2 软件开发中的逆向1.4 底层软件1.4.1 汇编语言1.4.2 编译器1.4.3 虚拟机和字节码1.4.4 操作系统1.5 逆向过程1.5.1 系统级逆向1.5.2 代码级逆向1.6 工具1.6.1 系统监控工具1.6.2 反汇编器1.6.3 调试器1.6.4 反编译器1.7 逆向合法吗?1.7.1 互操作性1.7.2 竞争1.7.3 版权法1.7.4 商业机密和专利权1.7.5 美国数字千禧版权法1.7.6 DMCA案例1.7.7 许可证协议1.8 代码范例与工具1.9 结论第2章 底层软件2.1 高阶视角2.1.1 程序结构2.1.2 数据管理2.1.3 控制流2.1.4 高级语言2.2 低阶视角2.2.1 底层数据管理2.2.2 控制流2.3 汇编语言2.3.1 寄存器2.3.2 标志位2.3.3 指令格式2.3.4 基本指令2.3.5 范例2.4 编译器和编译入门2.4.1 定义编译器2.4.2 编译器架构2.4.3 列表文件2.4.4 专用编译器2.5 执行环境2.5.1 软件执行环境(虚拟机)2.5.2 现代处理器的硬件执行环境2.6 结论第3章 Windows基础知识第4章 逆向工具第2部分 应用逆向第5章 未公开的技术第6章 破译文件格式第7章 审查程序的二进制码第8章 逆向恶意软件第3部分 破解第9章 盗版与拷贝保护第10章 反逆向技术第11章 突破保护第4部分 反汇编之外第12章 逆向.NET第13章 反编译附录A 揭密代码结构附录B 理解编译后的算术运算附录C 破译程序数据索引 内容简介:本书描述的是在逆向与反逆向之间展开的一场旷日持久的拉锯战。作者Eldad Eilam以一个解说人的身份为我们详尽地评述了双方使用的每一招每一式的优点与不足。书中包含的主要内容有:操作系统的逆向工程;.NET平台上的逆向工程;逆向未公开的文件格式和网络协议;逆向工程的合法性问题;拷贝保护和数字版权管理技术的逆向工程;防止别人对你的代码实施逆向工程的各种技术;恶意程序的逆向工程;反编译器的基本原理以及它对逆向过程的影响。本书适合软件逆向工程的从业人员以及软件开发者们阅读。内容截图: ...
-
分类:编程开发 语言:简体中文 大小:未知 发布时间:13-08-20
上篇第1章 马上动手写一个最小的“操作系统”1.1 准备工作1.2 十分钟完成的操作系统1.3 引导扇区1.4 代码解释1.5 水面下的冰山1.6 回顾第2章 搭建你的工作环境2.1 虚拟计算机bochs2.1.1 bochs初体验2.1.2 bochs的安装2.1.3 bochs的使用2.1.4 用bochs调试操作系统2.2 qemu2.3 平台之争:windows还是*nix2.4 gnu/linux下的开发环境2.5 windows下的开发环境2.6 总结.第3章 保护模式(protect mode)3.1 认识保护模式3.1.1 保护模式的运行环境3.1.2 gdt(global descriptor table)3.1.3 实模式到保护模式,不一般的jmp3.1.4 描述符属性3.2 保护模式进阶3.2.1 海阔凭鱼跃3.2.2 ldt(local descriptor table)3.2.3 特权级概述3.2.4 特权级转移3.2.5 关于“保护”二字的一点思考3.3 页式存储3.3.1 分页机制概述3.3.2 编写代码启动分页机制3.3.3 pde和pte3.3.4 cr33.3.5 回头看代码3.3.6 克勤克俭用内存3.3.7 进一步体会分页机制3.4 中断和异常3.4.1 中断和异常机制3.4.2 外部中断3.4.3 编程操作8259a3.4.4 建立idt3.4.5 实现一个中断3.4.6 时钟中断试验3.4.7 几点额外说明3.5 保护模式下的i/o3.5.1 iopl3.5.2 i/o许可位图(i/o permission bitmap)3.6 保护模式小结第4章 让操作系统走进保护模式4.1 突破512字节的限制4.1.1 fat124.1.2 dos可以识别的引导盘4.1.3 一个最简单的loader4.1.4 加载loader入内存4.1.5 向loader交出控制权4.1.6 整理boot.asm4.2 保护模式下的“操作系统”第5章 内核雏形5.1 在linux下用汇编写hello world5.2 再进一步,汇编和c同步使用5.3 elf(executable and linkable format)5.4 从loader到内核5.4.1 用loader加载elf5.4.2 跳入保护模式5.4.3 重新放置内核5.4.4 向内核交出控制权5.5 扩充内核5.5.1 切换堆栈和gdt5.5.2 整理我们的文件夹5.5.3 makefile5.5.4 添加中断处理5.5.5 两点说明5.6 小结第6章 进程6.1 迟到的进程6.2 概述6.2.1 进程介绍6.2.2 未雨绸缪——形成进程的必要考虑6.2.3 参考的代码6.3 最简单的进程6.3.1 简单进程的关键技术预测6.3.2 第一步——ring0→ring16.3.3 第二步——丰富中断处理程序6.4 多进程6.4.1 添加一个进程体6.4.2 相关的变量和宏6.4.3 进程表初始化代码扩充6.4.4 ldt6.4.5 修改中断处理程序6.4.6 添加一个任务的步骤总结6.4.7 号外:minix的中断处理6.4.8 代码回顾与整理6.5 系统调用6.5.1 实现一个简单的系统调用6.5.2 get_ticks的应用6.6 进程调度6.6.1 避免对称——进程的节奏感6.6.2 优先级调度总结第7章 输入/输出系统7.1 键盘7.1.1 从中断开始——键盘初体验7.1.2 at、ps/2键盘7.1.3 键盘敲击的过程7.1.4 用数组表示扫描码7.1.5 键盘输入缓冲区7.1.6 用新加的任务处理键盘操作7.1.7 解析扫描码7.2 显示器7.2.1 初识tty7.2.2 基本概念7.2.3 寄存器7.3 tty任务7.3.1 tty任务框架的搭建7.3.2 多控制台7.3.3 完善键盘处理7.3.4 tty任务总结7.4 区分任务和用户进程7.5 printf7.5.1 为进程指定tty7.5.2 printf()的实现7.5.3 系统调用write()7.5.4 使用printf()下篇第8章 进程间通信8.1 微内核还是宏内核8.1.1 linux的系统调用8.1.2 minix的系统调用8.1.3 我们的选择8.2 ipc8.3 实现ipc8.3.1 assert()和panic()8.3.2 msg_send()和msg_receive()8.3.3 增加消息机制之后的进程调度8.4 使用ipc来替换系统调用get_ticks8.5 总结第9章 文件系统9.1 硬盘简介9.2 硬盘操作的i/o 端口9.3 硬盘驱动程序9.4 文件系统9.5 硬盘分区表9.6 设备号9.7 用代码遍历所有分区9.8 完善硬盘驱动程序9.9 在硬盘上制作一个文件系统9.9.1 文件系统涉及的数据结构9.9.2 编码建立文件系统9.10 创建文件9.10.1 linux下的文件操作9.10.2 文件描述符(file descriptor)9.10.3 open()9.11 创建文件所涉及的其他函数9.11.1 strip_path()9.11.2 search_file()9.11.3 get_inode()和sync_inode()9.11.4 init_fs()9.11.5 read_super_block()和get_super_block()9.12 关闭文件9.13 查看已创建的文件9.14 打开文件9.15 读写文件9.16 测试文件读写9.17 文件系统调试9.18 删除文件9.19 插曲:奇怪的异常9.20 为文件系统添加系统调用的步骤9.21 将tty纳入文件系统9.22 内容简介:《Orange'S一个操作系统的实现》从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。读者可以根据路线图逐步完成各部分的功能,从而避免了一开始就面对整个操作系统数万行代码时的迷茫和挫败感。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。本书分上下两篇,共11章。其中每一章都以前一章的工作成果为基础,实现一项新的功能。而在章的内部,一项大的功能被分解成许多小的步骤,通过完成每个小的步骤,读者可以不断获得阶段性的成果,从而让整个开发过程变得轻松并且有趣。本书适合各类程序员、程序开发爱好者阅读,也可作为高等院校操作系统课程的实践参考书。内容截图: ...
-
分类:ç¼–ç¨‹å¼€å‘ 语言:简体中文 大小:未知 发布时间:13-08-20
第一部分ä¼ä¸šç³»ç»Ÿ 1第1ç« ä¼ä¸šå¼€å‘ 11.1ä¼ä¸šç³»ç»Ÿæ¦‚è¿° 11.2 J2EEä¼ä¸šç³»ç»Ÿæ–¹æ¡ˆæ¨¡åž‹ 41.3 J2EE体系结构 81.4 J2EEä¼ä¸šæ•°æ®æ”¯æŒ 101.5 J2EEä¼ä¸šé€šä¿¡æ”¯æŒ 111.6 J2EE公共ä¼ä¸šæœåŠ¡ 121.7 J2EEä¼ä¸šWebæ”¯æŒ 121.8 J2EEä¼ä¸šåº”ç”¨ç¨‹åºæ”¯æŒ 131.9å°ç»“ 13第二部分ä¼ä¸šæ•°æ®æ”¯æŒ 14第2ç« ä¼ä¸šæ•°æ® 142.1ä¼ä¸šæ•°æ®æ¦‚è¿° 142.2æ•°æ®è¡¨ç¤º 152.3æ•°æ®åº“基础 162.4关系型数æ®åº“ 182.5对象数æ®åº“ 212.6 Javaæ•°æ®è®¿é—®æŠ€æœ¯ 222.7å°ç»“ 24第3ç« XML 253.1XML概述 253.2 XML文档结构 263.3文档类型定义(DTD) 313.4XMLæ¨¡å¼ 363.5坿‰©å±•æ ·å¼å•è¯è¨€(XSL) 653.6 XML链接 683.7å°ç»“ 71第4ç« JAXP 724.1 SAX与XMLåˆ†æž 724.2æ ¸å¿ƒSAX抽象 734.3 SAX事件处ç†å™¨ 774.4 SAX分æžå™¨æŽ¥å£ 834.5 DOM与XMLåˆ†æž 874.6 DOM体系结构 884.7通用的DOM节点 894.8具体DOM节点类型 904.9 DOMåˆ†æž 954.10 XML转æ¢(XSLT) 984.1 1å°ç»“ 103第5ç« æ ¸å¿ƒJDBC 1045.1 JDBC体系结构 1045.2 JDBC驱动器åŠå…¶ç±»åž‹ 1065.3 JDBC驱动器é…ç½® 1095.4 JDBC连接 1115.5 JDBCè¯å¥ 1165.6准备è¯å¥ 1215.7结果集 1255.8 SQL与Javaæ˜ å°„ 1335.9å˜å‚¨è¿‡ç¨‹ 1345.10 JDBCå…ƒæ•°æ® 1395.11å°ç»“ 145第6ç« é«˜çº§JDBC 1466.1坿»šåŠ¨ç»“æžœé›† 1466.2åŸºæœ¬äº‹åŠ¡æŽ¥å£ 1546.3坿›´æ–°ç»“果集 1576.4æ‰¹å¤„ç†æ›´æ–° 1636.5高级数æ®ç±»åž‹ 1666.6行集 1806.7基于容器的JDBC 1816.8æ•°æ®æº 1826.9è¿žæŽ¥æ± 1856.10分布å¼äº‹åŠ¡ 1876.11å°ç»“ 188第三部分ä¼ä¸šé€šä¿¡æ”¯æŒ 189第7ç« ä¼ä¸šé€šä¿¡ 1897.1分布å¼ç³»ç»Ÿ 1897.2åˆ†å¸ƒå¼æœºåˆ¶ 1907.3网络客户机 1927.4网络æœåС噍 1937.5激活æœåŠ¡æ¦‚è¿° 1947.6 JavaBeans激活框架(JAF) 1957.7å°ç»“ 196第8ç« CORBA通信 1978.1 CORBA概述 1978.2å¯¹è±¡è¯·æ±‚ä»£ç† 1998.3 GIOP与IIOP 2018.4æœåŠ¡ã€åŠŸèƒ½ä¸Žä¸šåŠ¡å¯¹è±¡ 2038.5 IDL 2048.6 CORBAè®¾è®¡ä¸Žå¼€å‘ 2108.7 CORBA工具与JavaIDL 2128.8 CORBAæŽ¥å£ 2138.9 CORBAæœåŠ¡å™¨ä¸Žæ¡†æž¶ 2158.10 ORB基础结构 2218.1 1 CORBAå®¢æˆ·æœºä¸Žæ®‹æ ¹ 2278.12 CORBA命å 2308.13按值对象 2328.14å°ç»“ 237第9ç« RMI通信 2389.1 RMI基础 2389.2 JRMP 2419.3 RMI与HOP 2429.4 Java-to-IDLæ˜ å°„ 2429.5按值对象与RMI 2449.6 RMIæŽ¥å£ 2449.7 RMIæœåŠ¡å™¨ä¸Žæ¡†æž¶ 2469.8 RMI注册 2529.9 RMIå®¢æˆ·æœºã€æ®‹æ ¹ä¸ŽæŸ¥è¯¢ 2599.10 RMI对象激活 2649.11定制套接 2689.12å°ç»“ 270第10ç« Web Service通信 27110.1 WebæœåŠ¡ä¸ŽWS-I概述 27110.2SOAP 27210.3 SAAJ 27310.4 SOAPç¼–ç æ–¹å¼ 29210.5 WSDL与JWSDL 29410.6 SOAPRpC 30110.7 JAX-RPC 30110.8å°ç»“ 328第四部分常è§ä¼ä¸šæœåŠ¡ 329第11ç« å‘½åæœåŠ¡ä¸ŽJNDI 32911.1å‘½åæœåŠ¡æ¦‚è¿° 32911.2 JNDIå‘½åæœåŠ¡ 33111.3命忖‡ä»¶ 34911.4 CORBA命å 35011.5 RMI命å 35711.6 Windows注册表命å 36211.7å°ç»“ 363第12ç« ç›®å½•æœåŠ¡ä¸ŽJNDI 36412.1 目录与交易æœåŠ¡æ¦‚è¿° 36412.2 JNDI目录æœåŠ¡ 36512.3å·¥DAP 37112.4 DSML 38112.5 DNS 38712.6 NIS目录æœåŠ¡ 39112.7 NDS目录æœåŠ¡ 39112.8Microsoft活动目录æœåŠ¡ 39312.9 CORBA交易æœåŠ¡ 39312.10 Jini交易æœåŠ¡ 39912.1 1å°ç»“ 405第13ç« WebæœåŠ¡æŸ¥æ‰¾ä¸ŽJAXR 40613.1 WebæœåŠ¡æ³¨å†Œè¡¨æ¦‚è¿° 40613.2 JAXR概述 40713.3 JAXRä¿¡æ¯æ¨¡åž‹ 40813.4 JAXR连接 41613.5 JAXR注册表æœåŠ¡ 41913.6 JAXR查询管ç†å™¨ 42113.7 JAXR生命周期管ç†å™¨ 42413.8å°ç»“ 429第14ç« äº‹åŠ¡æœåŠ¡ä¸ŽJTAå’ŒJTS 43014.1事务 43014.2事务æœåŠ¡æ¦‚è¿° 43314.3对象事务æœåŠ¡ 43614.4Java事务API 43914.5 JTA事务管ç†å™¨æŽ¥å£ 44014.6 JTAåº”ç”¨ç¨‹åºæŽ¥å£ 44114.7 JTA与X/Open XA 44314.8Java事务æœåŠ¡ 44414.9 WebæœåŠ¡äº‹åŠ¡ 44414.10å°ç»“ 445第1 5ç« æ¶ˆæ¯æœåŠ¡ä¸ŽJMSå’ŒJAXM 44615.1 æ¶ˆæ¯æ¦‚è¿° 44615.2 MOM 44915.3Javaæ¶ˆæ¯æœåŠ¡æ¦‚è¿° 45115.4 JMSæ ¸å¿ƒä½“ç³»ç»“æž„ 45115.5 JMS点对点队列模型 46215.6 JMSå‘布ï¼è®¢é˜…模型 46915.7 JMS统一消æ¯åŸŸæ¨¡åž‹ 47715.8 JAXM 48015.9å°ç»“ 485第1 6ç« JavaMail 48616.1 电å邮件消æ¯ç³»ç»Ÿ 48616.2 JavaMail体系结构概述 48716.3通用的电åé‚®ä»¶éƒ¨åˆ†å’Œæ¶ˆæ¯ 48816.4 MIMEéƒ¨åˆ†ä¸Žæ¶ˆæ¯ 49116.5 JavaMail事件体系结构 49416.6å»ºç«‹é‚®ä»¶ä¼šè¯ 49516.7消æ¯åº“与文件夹 49616.8消æ¯ä¼ 输 50016.9 JavaMail例å 50116.10å°ç»“ 507第17ç« ä¿é™©ä¸Žå®‰å…¨æœåŠ¡ 50817.1ä¿é™©æœåŠ¡ 50817.2安全æœåŠ¡ 50917.3 Java安全模型与基础结构 51717.4 Java安全编程 52617.5 CORBA安全性 54917.6å°ç»“ 552第五部分ä¼ä¸šWebæ”¯æŒ 553第18ç« Webå¼€å‘与æœåŠ¡ 55318.1 Web客户机 55318.2 WebæœåС噍 55418.3 WebæœåŠ¡ 55618.4 Webå¼€å‘ 55718.5å°ç»“ 560第19ç« Java Servlet 56119.1 Servlet体系结构 56119.2 ServletæŽ¥å£ 56319.3 Servlet HTTPæŽ¥å£ 56819.4è¯·æ±‚å¤„ç† 57319.5生æˆå“应 57919.6会è¯ç®¡ç† 58419.7 Servlet请求与å“应过滤 58919.8 Java Servlet部署 59219.9 ServletæœåŠ¡ç®¡ç† 59719.10å°ç»“ 601第20ç« JavaæœåŠ¡å™¨é¡µé¢ 60220.1 JSP概述 60220.2 JSPè¯è¨€åŸºç¡€ 60520.3 JSP对象 60720.4è„šæœ¬å…ƒç´ 61020.5 JSP指令 61220.6 JSP例å 61420.7æ ‡å‡†æ“作 61720.8 JSPé…置与部署 62520.9å°ç»“ 626第21ç« JSPæ ‡å¿— 62721.1æ ‡å¿—æ‰©å±•ä½“ç³»ç»“æž„ 62721.2æ ‡å¿—ç”Ÿå‘½å‘¨æœŸ 62821.3å®šåˆ¶æ ‡å¿—å®žçŽ° 62921.4æ ‡å¿—å…ƒæ•°æ®ä¿¡æ¯æŠ½è±¡ 63321.5ç®€å•æ ‡å¿—与JSP段 63621.6æ ‡å¿—æ–‡ä»¶ 63821.7 JSPä¸Žæ ‡å¿—æ£€éªŒ 64121.8æ ‡å¿—åº“ 64321.9å°ç»“ 646第22ç« WebæœåŠ¡ä¸ŽWeb组件 64722.1 Web组件作为WebæœåŠ¡ 64722.2 WebæœåŠ¡Web组件实现 64822.3 Web组件部署é…ç½®(web.xml) 64922.4 WebæœåŠ¡Web组件部署é…ç½®(webservices.xml) 65022.5 WebæœåŠ¡ç±»åž‹æ˜ å°„éƒ¨ç½²é…ç½®(java-wsdl-mapping.xml) 65322.6 WebæœåŠ¡Web组件引用 65622.7 WebæœåŠ¡Web组件部署 65722.8å°ç»“ 658第å…部分ä¼ä¸šåº”ç”¨ç¨‹åºæ”¯æŒ 659第23ç« ä¼ä¸šåº”ç”¨ç¨‹åºæœåŠ¡ 65923.1ä¼ä¸šåº”用程åºå¹³å° 65923.2独立ä¼ä¸šåº”ç”¨ç¨‹åº 66723.3åŸºäºŽåº”ç”¨ç¨‹åºæœåŠ¡å™¨çš„ä¼ä¸šåº”ç”¨ç¨‹åº 66823.4åº”ç”¨ç¨‹åºæœåŠ¡å™¨ä½“ç³»ç»“æž„æä¾›è€…角色 66923.5åº”ç”¨ç¨‹åºæœåŠ¡å™¨ç»„ä»¶ 67123.6åº”ç”¨ç¨‹åºæœåŠ¡å™¨å®¢æˆ·æœºæŽ¥å£ 67123.7åº”ç”¨ç¨‹åºæœåŠ¡å™¨å®¢æˆ·æœºå®žçŽ° 67123.8ä¼ä¸šåº”用程åºé…置与部署 67223.9åº”ç”¨ç¨‹åºæœåŠ¡ç®¡ç† 67523.10å°ç»“ 676第24ç« EJB基础 67724.1 EJB简介 67724.2 EJB体系结构 67824.3 EJB定时器æœåŠ¡ 68224.4 EJB类型 68324.5 EJBå¼€å‘ 68424.6 EJBé…置与部署 68524.7å°ç»“ 687第25ç« ä¼šè¯EJB 68825.1æ— çŠ¶æ€ä¼šè¯Bean 68825.2有状æ€ä¼šè¯Bean 69225.3会è¯Beanè¿œç¨‹å®¢æˆ·æœºæŽ¥å£ 69825.4会è¯Beanæœ¬åœ°å®¢æˆ·æœºæŽ¥å£ 70425.5定时会è¯Bean对象 70825.6会è¯Beané…置与部署 71125.7å°ç»“ 712第26ç« å®žä½“EJB 71326.1 EJBæ•°æ®åº“连接 71326.2实体BeanæœåŠ¡å™¨ç»„ä»¶ 71426.3 BMP实本Bean 71526.4 CMP实体Bean 72326.5实体Beanè¿œç¨‹å®¢æˆ·æœºæŽ¥å£ 73126.6实体Beanæœ¬åœ°å®¢æˆ·æœºæŽ¥å£ 73726.7 EJB QL 74326.8实体Beané…置与部署 74826.9å°ç»“ 757第27ç« æ¶ˆæ¯é©±åЍEJB 75827.1消æ¯é©±åЍBean概述 75827.2消æ¯é©±åЍBean组件 75827.3消æ¯é©±åЍBeanå®¢æˆ·æœºæŽ¥å£ 76227.4定时消æ¯é©±åЍBean对象 76527.5消æ¯é©±åЍBeané…置与部署 76627.6å°ç»“ 769第28ç« EJBä¿é™©æœåŠ¡ 77028.1 EJB事务 77028.2 J2EE与EJBå¯ç”¨æ€§å’Œä¼¸ç¼©æ€§ 78028.3 EJB安全性 78428.4 J2EE与EJB安全和JAAS 79828.5å°ç»“ 812第29ç« EJB集æˆä¸Žç®¡ç† 81329.1ä¼ä¸šåº”用程åºé›†æˆä¸Žç®¡ç†æ¦‚念 81329.2 EJB Webå®¢æˆ·æœºé›†æˆ 81429.3 EJB CORBAå®¢æˆ·æœºé›†æˆ 81829A容器管ç†èµ„æº 81929.5 EJBä¼ä¸šé€šä¿¡é›†æˆ 82229.6 J2EE接头体系结构 82529.7 Java授æƒå®¹å™¨åè®® 83229.8 J2EE管ç†ä¸ŽJMX 83329.9 J2EE部署 83429.10å°ç»“ 834第30ç« WebæœåŠ¡ä¸ŽEJB 83530.1 EJB WebæœåŠ¡æ¦‚è¿° 83530.2 WebæœåŠ¡EJB实现 83530.3 EJB部署é…ç½®(ejb-jar.xml) 83930.4 WebæœåŠ¡EJB部署é…ç½®(webservices.xml与java-wsdl-mapping.xml) 84030.5 WebæœåŠ¡EJB引用 84230.6 WebæœåŠ¡EJB部署 84330.7å°ç»“ 844 内容简介:本书的主è¦å†…容·开å‘ä¼ä¸šç³»ç»Ÿæ—¶è¦è§£å†³çš„问题和范围·如何表示ã€åˆ†æžï¼Œæ“纵和检验ä¼ä¸šæ•°æ®Â·åŸºäºŽå¯¹è±¡çš„计算平å°å¦‚何在分布å¼çŽ¯å¢ƒä¸é€šä¿¡Â·ä¼ä¸šç³»ç»Ÿä¸é‡‡ç”¨çš„常è§ä¼ä¸šæœåŠ¡æ–¹æ³•Â·ä¼ä¸šç³»ç»Ÿä¸é‡‡ç”¨çš„ä¼ä¸šWebæ”¯æŒæ–¹æ³•·如何构建和部署大型ä¼ä¸šåº”用程åºã€€ J2EE为开å‘ä¼ä¸šçº§çš„多层应用程åºå’Œå¤æ‚çš„ä¼ä¸šç³»ç»Ÿå®šä¹‰äº†ä¸€å¥—API。针对å„ç§å„æ ·çš„ä¼ä¸šéœ€æ±‚,本书试图通过J2EE解决所有的ä¼ä¸šé—®é¢˜ã€‚全书共分å…大部分30ç« ï¼Œåˆ†åˆ«ä»Žä¼ä¸šé¢ä¸´çš„问题ã€ä¼ä¸šæ•°æ®çš„表示ã€ä¼ä¸šé€šä¿¡ã€å¸¸è§ä¼ä¸šæœåŠ¡ã€ä¼ä¸šWeb支æŒå’Œä¼ä¸šåº”ç”¨ç¨‹åºæ”¯æŒç‰å‡ 个方é¢é˜è¿°ä¼ä¸šé—®é¢˜çš„J2EE解决方案。本书é…套光盘ä¸çš„附录还分别介ç»äº†åˆ†å¸ƒå¼åº”用程åºå¼€å‘的一些基本概念,如数æ®åº“与SQLã€TCP/IP通信ã€HTPP通信ã€HTMLã€é¢å‘对象技术ç‰ï¼Œæ¤å¤–还包括在å„ç§å¹³å°ä¸‹è¿›è¡ŒJ2EE开呿‰€éœ€çš„工具和实用程åºã€‚本书内容丰富,是一本J2EE的系统性å‚考书。本书适åˆäºŽç”¨J2EEå¼€å‘ä¼ä¸šåº”用系统的ä¸é«˜çº§äººå‘˜ï¼Œä¹Ÿé€‚åˆä½œä¸ºç¼–程åˆå¦è€…的入门指å—。内容截图: ...
-
分类:编程开发 语言:简体中文 大小:未知 发布时间:13-08-20
介绍谁适合读这本书?我们知道你在想什么元认知让你的脑袋顺从你的方法读我技术审阅团队致谢1 伟大软件由此开始:良好应用程序的基石永远的摇滚乐!Rick的金光闪闪的新应用程序什么是你要改变的第一件事?伟大软件……伟大软件的简易三步骤先聚焦在功能性上测试驱动寻找问题分析运用基础的OO原则设计一次,设计两次改变你的应用程序有多简单?封装变化之物委托最后的伟大软件(就现在而言)OOA&D关系到编写伟大软件要点2 给客户所需之物:收集需求大显身手的机会来了测试驱动不正确的使用(有一点)那么,需求究竟是什么?创建需求列表为错误作规划替代路径(alternate path)处理系统的疑:(再次)介绍用例一个用例,三个部分按照用例检查需求你的系统必须在真实世界里运作认识快乐路径(Happy Path)OOA&D工具箱3 山可移,此情永不渝……现在,情况有变:需求变更你是英雄!牺牲品?软件分析与设计的不变真理可选路径?替换路径?谁能分得清?用例对你而言必须合理从开始到完成:单一场景替换路径的真心话完成需求列表重复程序代码,逊!最后的测试驱动写下你自己的设计原则OOA&D工具箱4 将你的软件带进现实世界:分析一只狗,两只狗,三只狗,四只狗……你的软件有其情境识别问题规划解法方案两位程序员的故事委托绕道低耦合应用程序的威力注意用例里的名词从好分析到好类……类图解析类图不是一切要点5 第一部分:诸行无常——良好的设计Rick的吉他事业蒸蒸日上抽象类类图解析(再一次)UML小抄设计问题的警告通往伟大软件的三步骤(重访)插曲:OO大灾难5 第二部分:给你的软件30分钟的伸展操——灵活的软件回到Rick的搜索工具仔细瞧瞧search()方法分析的好处类实际上关系到行为设计之死(决策)将坏的设计决策转变成好的Rick的软件中的“双封装”不要害怕犯错及改变瞧!Rick的具有灵活性的应用程序测试驱动Rick的设计良好的软件改变Rick的软件有多容易?变更容易性的大挑战具有内聚性的类善于处理好单一事情设计/内聚力生命周期伟大的软件通常就是“够好的软件”OOA&D工具箱6 “我的名字是Art Vandelay”:解决真正的大问题解决大问题关键在于你如何看待大问题需求与用例是个好起点……共同性与变化性整理功能功能与需求之间的“差别”用例不总是帮你看出整体轮廓用例图小小参与者参与者也是人(好吧,不全然)做一点领域分析吧化整为零,个个击破别忘了真正的客户是谁何谓设计模式?OO&D的威力(以及一些小常识)OOA&D工具箱7 为混乱带来次序:架构感觉有点头昏吗?我们需要架构从功能开始什么是架构的意义?架构三问减少风险场景有助于减少风险一次把焦点放在一个功能上架构是你的设计结构再访共同性共同性分析:通往灵活软件之路什么意思?问客户吧。减少风险有助于伟大软件自要点8 原创性被高估:设计原则设计原则大集合开关原则(OCP)OCP,一步一步来不自我重复原则(DRY)DRY完全关系到一个地方一个需求单一职责原则(SRP)找出多重职责从多重职责到单一职责Liskov替换原则(LSP)子类化的误用:误用继承的案例研究LSP揭露继承结构所隐藏的问题子类型必须能替换其基类型违反LSP造成令人困惑的程序代码将功能性委托给其他类使用组合将来自其他多个类的行为集合起来聚合:组合,但没有突然的结束组合VS.聚合继承只是选项之一要点OOA&D工具箱9 软件终究为客户服务:重复与测试你的工具箱满了伟大软件的编写是迭代进行的更深入地迭代:两种基本选择功能驱动开发用例驱动开发两种开发方式功能分析编写测试场景测试驱动开发再探共同性强调共同性强调封装比对你的测试与设计测试案例解析……向客户证明到目前为止,我们一直在按契约编程按契约编程关乎信任防御性编程将你的应用程序分解成较小的功能块要点OOA&D工具箱10 组合在一起:OOA&D生命周期开发软件,OOA&D风格对象村旅游对象村地铁线路图功能列表用例反映使用性,功能反映功能性现在开始迭代仔细看看地铁的表示使用或不使用Line类……那是个问题对象村地铁的关注要点(Subway类)保护你的类(还有客户的类)中场休息回归需求阶段……聚焦于程序代码,然后聚焦于客户迭代(iteration)让问题比较容易路线看起来像什么?让自己看看对象村!第三次迭代,有人要试试吗?旅程未结束……附录1:本书遗珠附录2:欢迎光临对象村 内容简介:你是否早已对市面上那些只有在成为专家以后读起来才有感觉的OOA&D书籍感到厌倦?你可能早就听说过OOA&D书籍能帮助你写出伟大的软件——让老板高兴、客户满意的软件。但如何办到呢?《深入浅出面向对象分析与设计》将告诉你如何分析、设计以及撰写真正面向对象的软件:容易重用、好维护、可扩展的软件;不再使你心碎的软件;让你增添新功能而不会破坏旧机制的软件。在本书中,你将学到:使用诸如封装(encapsulation)与委派(delegation)之类的OO原则建立灵活的应用程序;使用开闭原则(Open-Closed Principle)与单一职责原则(Single-Responsibilitv Principle)提升程序的重用性;学习如何将OO原则、设计模式及各种开发方法通通整合到OOA&D项目的生命周期里;运用UML、用例及用例图来确保所有利害关系人都能清楚地进行沟通,协助你交付正确的软件,达到每个人的要求。内容截图: ...
-
分类:C/C++ 语言:简体中文 大小:未知 发布时间:13-08-20
第1章 C-MEX函数介绍1.1 MATLAB外部接口概述1.2 maArray结构体1.3 MATLAB数据类型1.4 库函数介绍第2章 编写编译链接C-MEX函数的方法2.1 MEX指令2.2 建立MEX环境2.3 用MATLAB插件在MSVC环境中编写编译链接C-MEX函数第3章 C-MEX函数的编写方法3.1 C-MEX函数分析3.2 标量3.3 矢量3.4 矩阵3.5 三维数组3.6 字符串3.7 非双精度数据3.8 调用MATLAB函数3.9 Structures陈列3.10 Cell陈列3.11 Sparse陈列第4章 C-MEX函数应用举例4.1 复数的处理方法4.2 实现MATLAB中sum函数功能4.3 实现MATLAB中赋值功能4.4 实现MATLAB中z=sum(x.*y)功能4.5 实现MATLAB中z=alpha*x+y功能第5章 利用BLAS函数编写C-MEX函数5.1 BLAS函数介绍5.2 用BLAS实现MATLAB中sum函数功能5.3 用BLAS实现MATLAB中赋值功能5.4 用BLAS实现MATLAB中z=sum(x.*y)功能5.5 用BLAS实现MATLAB中z=alpha*x+y功能6 利用LAPACK函数编写C-MEX函数6.1 LAPACK函数介绍6.2 用LAPACK函数介绍6.3 用LAPACK实现MATLAB中LU分解6.4 用LAPACK实现MATLAB中SVD分解6.5 用LAPACK实现MATLAB中特征分解6.6 用用LAPACK实现MATLAB中del功能6.7 用LAPACK实现MATLAB中chol分解第7章 灵活编写C-MEX函数的方法7.1 复数complex结构7.2 用zdotu函数及复数结构指针7.3 用zaxpy函数及复数结构指针7.4 建立自己的函数库第8章 用INTEL MKL编写C-MEX函数8.1 Intel MKL介绍8.2 Intel MKL库函数的链接方法8.3 用Intel MKL及复数结构指针实现8.4 用Intel MKL及复数结构指针实现MATLAB中z=alpha*x+y功能 内容简介:本书以简洁的语言、丰富的实例系统地介绍了C语言与MATLAB接口函数(称之为:CMEX函数)的编程方法。用实例详细地介绍了MATLAB中所提供的数据类型在CMEX函数中的编程方法。这些数据类型主要包括:双精度(double)以及非双精度(single、uint8、uint16、uint32、uint64、int8、int16、int32、int64)的数值阵列(如:标量、矢量、矩阵及三维阵列)、字符串、structures阵列、cell阵列、sparse阵列等。同时,介绍了如何在CMEX函数中实现调用MATLAB函数;如何用MATLAB本身所提供的BLAS库函数、LAPACK库函数实现CMEX函数编程;以及如何用外接Intel MKL库函数实现CMEX函数编程。并给出用CMEX函数实现MATLAB中的svd、eig、lu、chol、inv、det等数学函数功能的实例,这些库函数的使用可以明显提高运算速度。同时,本书附录还介绍了在CMEX函数中的错误语法示例、MEX库函数及MX库函数。本书对CMEX函数的介绍全面,举例详尽。不仅能够成为MATLAB与MEX混合编程的工程人员的参考书,而且可以作为C语言编程者的参考书,同时也可以作为MATLAB培训的课程教材。 内容截图: ...
-
分类:编程开发 语言:简体中文 大小:未知 发布时间:13-08-20
第1章 概述 11.1 操作系统基础 21.1.1 计算机系统的硬件资源管理 21.1.2 为应用程序提供执行环境 51.2 学习操作系统之必备知识 71.3 windows操作系统发展历史 91.4 windows内核的版本 111.5 操作系统的研究与发展 131.6 本章总结 16第2章 windows系统总述 172.1 现代操作系统的基本结构 172.2 windows系统结构 182.2.1 windows内核结构 202.2.2 windows内核中的关键组件 222.2.3 windows子系统 292.2.4 系统线程和系统进程 322.3 关于windows研究内核 342.3.1 wrk包含了什么 352.3.2 wrk源代码说明 362.3.3 本书对wrk源代码的引用 38.2.4 windows内核的基本概念 392.4.1 处理器模式 402.4.2 内存管理 412.4.3 进程和线程管理 432.4.4 中断和异常 452.4.5 同步 482.5 windows内核中的公共管理设施 502.5.1 windows内核中的对象管理 502.5.2 注册表和配置管理器 582.5.3 事件追踪(etw) 692.5.4 安全性管理 722.6 windows引导过程 792.6.1 内核加载 792.6.2 内核初始化 862.6.3 建立用户登录会话 912.7 本章总结 97第3章 windows进程和线程 993.1 进程基本概念 993.1.1 多进程模型 993.1.2 进程和程序 1013.2 线程基本概念 1043.2.1 线程模型 1043.2.2 线程调度算法 1063.2.3 线程和进程的关系 1083.3 windows中进程和线程数据结构 1083.3.1 内核层的进程和线程对象 1083.3.2 执行体层的进程和线程对象 1203.4 windows的进程和线程管理 1313.4.1 windows进程中的句柄表 1313.4.2 获得当前线程和进程 1363.4.3 进程和线程的创建过程 1373.4.4 进程和线程的结束 1473.4.5 系统初始进程和线程 1493.5 windows中的线程调度 1513.5.1 线程优先级 1523.5.2 线程状态转移 1543.5.3 时限管理 1643.5.4 优先级调度和环境切换 1663.6 进程和线程状态监视工具 1723.6.1 procmon使用示例 1723.6.2 procmon实现原理 1743.7 本章总结 174第4章 windows内存管理 1754.1 内存管理概述 1764.1.1 页式内存管理 1774.1.2 段式内存管理 1814.1.3 内存管理算法介绍 1844.1.4 windows内存管理概述 1924.2 windows系统内存管理 1944.2.1 系统地址空间初始化 1944.2.2 系统地址空间内存管理 2094.2.3 系统pte区域的管理 2244.3 进程虚拟内存管理 2294.3.1 地址空间的创建和初始化 2294.3.2 地址空间切换 2344.3.3 虚拟地址空间的管理 2354.3.4 内存区对象 2414.4 内存页面交换 2494.4.1 x86中的pte 2504.4.2 软件pte:无效pte和原型pte 2534.4.3 页面错误处理 2574.4.4 windows的写时复制 2634.5 物理内存管理 2654.5.1 pfn数据库 2654.5.2 物理页面的状态变化 2704.5.3 物理页面链表的管理和操作 2744.5.4 修改页面写出器 2794.5.5 进程/栈交换器 2814.5.6 低内存通知和高内存通知 2844.6 工作集管理 2854.6.1 windows工作集管理器 2854.6.2 平衡集管理器 2914.7 内存监视工具mem_mon 2924.7.1 mem_mon使用介绍 2924.7.2 mem_mon实现原理 2934.8 本章总结 294第5章 windows中的并发和同步 2955.1 进程和线程同步基础 2955.1.1 并发性基础 2965.1.2 进程或线程之间的通讯 2995.1.3 经典的同步问题 3035.2 windows中断与异常 3085.2.1 硬件中断的发生和处理 3085.2.2 中断请求级别(irql) 3145.2.3 中断对象 3175.2.4 dpc(延迟过程调用) 3205.2.5 时钟中断和定时器管理 3245.2.6 apc(异步过程调用) 3285.2.7 异常分发 3335.3 不依赖于线程调度的同步机制 3405.3.1 提升irql实现数据同步 3405.3.2 互锁操作 3425.3.3 无锁的单链表实现 3435.3.4 自旋锁 3455.4 基于线程调度的同步机制 3515.4.1 线程进入等待 3515.4.2 分发器对象 3585.4.3 门等待 3655.4.4 执行体资源(executive resource) 3675.4.5 推锁(push lock) 3705.4.6 死锁 3755.5 使用工具dperflite 3765.5.1 dperflite使用示例 3765.5.2 dperflite实现原理 3785.6 本章总结 379第6章 windows i/o系统 3816.1 i/o概述 3826.1.1 现代计算机系统的i/o 3826.1.2 i/o软件技术 3866.1.3 windows的i/o系统结构 3886.2 i/o管理器 3906.2.1 驱动程序初始化 3906.2.2 驱动程序对象和设备对象 3976.2.3 文件对象 4016.2.4 对象生命周期管理 4056.3 即插即用管理器 4066.3.1 即插即用的基本要求 4076.3.2 windows中驱动程序的即插即用支持 4086.3.3 设备列举与设备树 4096.4 电源管理器 4116.4.1 电源管理概述 4126.4.2 windows中的电源管理 4156.5 设备驱动程序 4206.5.1 驱动程序分类 4206.5.2 例子驱动程序toaster 4236.5.3 驱动程序的代码结构 4256.5.4 toaster设备的设备栈 4306.5.5 过滤驱动程序的配置和加载 4316.5.6 非即插即用驱动程序 4356.6 i/o处理 4376.6.1 i/o请求包(irp) 4386.6.2 针对独立设备对象的i/o处理 4446.6.3 处理i/o请求过程中的事项 4496.6.4 针对设备栈的i/o处理 4596.6.5 i/o完成端口 4636.7 i/o监视工具irpmon 4666.7.1 irpmon使用介绍 4666.7.2 irpmon实现原理 4676.8 本章总结 468第7章 windows存储管理 4697.1 存储管理概述 4697.1.1 硬件存储体系(memory hierarchy) 4707.1.2 windows的存储管理结构 4727.2 windows缓存管理 4747.2.1 windows缓存空间的内存管理 4747.2.2 缓存管理器的数据访问路径 4817.2.3 直接使用缓存中的数据 4847.2.4 缓存管理器的预读处理 4917.2.5 缓存管理器的延迟写 4947.3 windows卷管理 4977.3.1 windows中存储栈结构 4977.3.2 卷的挂载 5017.3.3 卷与文件系统 5047.3.4 文件对象的i/o处理 5087.4 windows文件系统 5107.4.1 文件系统驱动程序结构 5117.4.2 raw文件系统和fsrtl 5167.4.3 文件系统的过滤 5207.4.4 fat文件系统 5277.4.5 ntfs文件系统 5327.5 本章总结 540第8章 windows系统服务 5418.1 windows系统服务原理 5418.1.1 intel x86的用户模式-内核模式切换 5418.1.2 windows的用户模式-内核模式切换 5468.1.3 windows中的系统服务分发 5508.1.4 增加系统服务表或表项 5578.2 lpc(本地过程调用)服务 5618.2.1 lpc结构模型 5618.2.2 lpc端口和lpc消息 5638.2.3 lpc通讯模型的实现 5658.2.4 lpc应用 5718.3 命名管道(named pipe)服务 5738.3.1 命名管道的名称解析 5738.3.2 命名管道的通讯模型 5758.3.3 命名管道的实现 5778.4 邮件槽(mailslot)服务 5808.4.1 邮件槽的名称解析 5808.4.2 邮件槽的通讯模型 5818.4.3 邮件槽的实现 5818.5 sdt显示工具sdtviewer 5838.5.1 sdtviewer使用介绍 5838.5.2 sdtviewer实现原理 5848.6 本章总结 585第9章 windows内核高级话题 5879.1 网络 5879.1.1 windows网络体系结构 5879.1.2 tdi(传输驱动程序接口) 5919.1.3 ndsi(网络驱动程序接口规范) 5949.1.4 windows vista以后的网络结构 5979.2 windows子系统 5999.2.1 windows子系统结构 5999.2.2 windows子系统初始化与gui线程 6029.2.3 窗口管理 6069.2.4 gdi(图形设备接口) 6169.2.5 windows vista以后的子系统变化 6229.3 内核日志 6259.3.1 wrk中的内核记录器 6259.3.2 利用etw信息诊断性能问题 6289.4 windows vista/server 2008/7的重要变化 6369.4.1 minwin工程 6369.4.2 ?? 639附录a 建立编译和调试wrk环境 641a.1 编译wrk 641a.2 启动wrk 645a.3 调试wrk 648附录b 内核代码插入工具kinjecttoolkit 657b.1 kinjecttoolkit功能介绍 658b.2 kinjecttoolkit的代码实现 659b.3 kinjecttoolkit的限制 663 内容简介:本书从操作系统原理的角度,详细解析了windows如何实现现代操作系统的各个关键部件,包括进程、线程、物理内存和虚拟内存的管理,windows中的同步和并发性支持,以及windows的i/o模型。在介绍这些关键部件时,本书直接以windows的源代码(wrk, windows research kernel)为参照,因而读者可以了解像windows这样的复杂操作系统是如何在x86处理器上运行的。在内容选取方面,本书侧重于windows内核中最基本的系统部件,同时也兼顾到作为一个操作系统的完整性,所以,本书也介绍了像存储体系、网络、windows环境子系统等,这些虽然并不位于内核模块但却支撑整个windows运行的重要部件。在本书最后,也介绍了windows server 2003以后的内核发展和变化。虽然书中有大量关于windows代码实现的描述,但是本书并没有罗列wrk中的代码,即使读者不对照wrk的源代码,也可以从这些章节的描述中理解windows的实现机理。在每一个技术专题的介绍中,本书几乎都提供了一个框架图,并且有关键细节的实现分析,这样做的意图是让读者既能够对一项技术有总体上的把握,也通晓关键的实现细节。windows操作系统已经有20年历史了,市面上有大量关于windows技术的文档和书籍,但是,真正从源代码来诠释windows底层机理的,本书还是第一次尝试。在本书覆盖的内容中,有相当一部分是第一次以文字形式披露出来的,期望这些内容能消除人们对于windows的神秘感。写作本书的目的是让对windows有好奇心的人真正了解到windows中的核心机理,让计算机专业的学生和老师,以及系统软件工程师可以快速地领略到windows中先进的系统技术,以及在windows上编写出更加高效的软件。本书也配备了一些小工具,通过这些小工具,读者可以查看内核中的静态或动态的信息,甚至观察系统的行为,可通过internet下载这些工具。内容截图: ...
-
分类:科普 语言:简体中文 大小:未知 发布时间:13-08-20
海洋奥秘海洋的起源大洋的形成海的变迁海洋的扩张颇有争议的大陆架海洋最深处——海沟海洋的脊梁——洋中脊复杂的海底地貌奇异的海底热泉海水温度变幻的海水颜色海水的盐度海洋纵览世界大洋广阔的太平洋世界第二大洋——大西洋世界第三大洋——印度洋世界最小的大洋——北冰洋宽广的世界海域神秘的加勒比海“洋中之海”——马尾藻海阿拉伯海渤海黄海东海南海孕育文明的地中海不断生长的海域——红海美丽璀璨的珊瑚海北冰洋的“暖池”巴伦支海北海海洋气候海洋气候带水循环潮汐海浪海洋暖流海洋寒流海雾海上飓风海上冰山大海的子民海洋生命海洋食物链低等海洋生物千姿百态的海洋植物头足类生物海洋腔肠动物海洋棘皮动物海洋甲壳动物海洋里的爬行动物凶猛的鲨鱼家族古怪的鳐鱼海底的怪兽——鲼鲸鱼海上霸主——鲸海洋里的智者——海豚长獠牙的海兽——海象海豹海鳗鱼人类与海洋人类的海洋文化古老的海上神话达·伽马的远航哥伦布穿越大西洋麦哲伦环球航行现代航海海上运输跨海大桥穿海隧道海上导航海洋能源海洋资源开采海洋旅游海洋调查 内容简介《全景科普新热点丛书:蔚蓝旖旎的海洋世界》是一部包罗万象的知识宝典,内容包括了工业、农业、海洋、航天、环境、信息、生命科学及科学未知等各个门类,知识丰富。分类合理,符合青少年的阅读特点。是促使他们健康成长、全面发展的有力保证。《全景科普新热点丛书》也是一条色彩瑰丽的艺术长廊,三千多幅精美清晰的图片,寓教于乐,既能辅助文字理解,又能带来美的享受,既丰富知识,又陶冶情操。本丛书知识全面、视角新颖、体例科学、编写权威。可激发青少年的好奇心,满足他们的求知欲。是他们探索世界的必备工具。一卷在手。终生受益。拥有这样一部百科全书。已成为青少年未来人生丰富多彩的保证和一架通向成功之路的桥梁。内容截图 ...
-
分类:交通运输 语言:简体中文 大小:未知 发布时间:13-08-20
绪论1 地下步行通道1.1 巴比伦古隧道1.2 古罗马大斗兽场隧道1.3 南美洲厄瓜多尔古隧道1.4 古代主要地下通道一览表1.5 泰晤士河隧道1.6 郭亮隧道1.7 自行车道2 地下步行系统2.1 土耳其古老的地下步行系统2.2 俄克拉荷马(Oklahoma)城地下步行系统2.3 蒙特利尔(Montreal)地下步行系统2.4 多伦多(Toronto)地下步行系统3 地下河道3.1 船的演进历史3.2 自然地下河3.3 地下运河4 铁路窿道4.1 火车的发明4.2 世界上第一条铁路4.3 铁路隧道5 地铁5.1 概述5.2 世界上第一条地铁5.3 伦敦地铁线网5.4 纽约地铁5.5 世界地铁总览6 地下机动车道6.1 机动车发展简史6.2 美国Lincoln隧道6.3 挪威洛达尔隧道6.4 中国终南山隧道6.5 城市地下快速路7 地下静态交通7.1 地下停车场7.2 船只地下停放7.3 地下停车系统展望本论坛资源信息均来自Internet,请下载完在 24小时内删除。如有因使用该书籍引发的各种法律纠纷及相关连带问题与本论坛无关,均由下载者自行承担。如果您喜欢,请购买正版书籍,谢谢。 内容介绍 《世界地下交通》内容简介:地下交通作为地上交通的补充和延伸,是随着人类技术和经济的发展而起步。《世界地下交通》在查阅大量国内外相关资料的基础上,对地下交通的发展历史进行总结。把地下交通分为地下动态交通和地下静态交通。地下动态交通是指人、车、物的地下流动,《世界地下交通》主要介绍:地下步行道(地下步行通道和地下步行系统)、地下河隧道、地下铁路隧道、地铁、地下机动车道。地下静态交通是指车辆的地下停放,包括因乘客上下或货物装卸的短时间停放,以及在停车场的长时间停放,《世界地下交通》主要介绍:地下停车场和地下停车系统。地下交通是一个物质流、能量流和信息流在地下相互作用的过程,在这个过程中,不断有废物、废气和废热排放到环境中去,从而对环境产生消极的影响,社会如果要可持续地发展下去,优良的环境是前提,这就要求未来的交通,包括地下交通要逐渐转向可持续的交通模式。 《世界地下交通》可供城市规划学、城市地理学、城市研究、交通与管理、景观生态等相关科研人员、高等院校师生阅读、参考。内容截图 ...
-
分类:数理化 语言:简体中文 大小:未知 发布时间:13-08-20
序 言第一篇 6世纪前的数学第1章 古代数学1.1 古代文明1.2 计数1.3 算术计算1.4 线性方程1.5 初等几何1.6 天文计算1.7 平方根、、、、、 图书简介:本书从Addison Wesley出版公司引进。全书共分四大部分:6世纪前的数学;中世纪的数学(500-1000);早期近代数学(1400-1700);近代数学(1700-2000)。本书主要特色如下: 1.灵活的编排:尽管本书主要是按年代顺序编排的,但每一时期则是围绕某一专题展开的。读者通过查阅详尽的标题,就能对该时期历史的全程进行跟踪。 内容截图: ...