作者:empty 页数:371 出版社:empty |
本书De ipa 1内植(RTL) 代码进日分新, 紫入了Doi pui内(RTD创原现及其。全B从Nio B codi的名最小化内秘示Mmb Exe始讲题, 于Mi iEe分析De pn在编一的w木内,谭者一Del的心。团作者基于这个P移展地代码、apu的各种功具体实想一,满9关代进行承分析的W。全国分析各操作用行机在代中国8,内,阐战精, 人, 要仪回Deph iK评Wnd owk.Do ph KI.和户代码2变:Dlo a a KTL(码的实:号Dap内相关的操作品机制:初(入)代,,内存、,、常机制是本不可多的海技术图, 图中、高松Deph i开发人房。¥1900-2000年为AV95的三个核心开发人员之一,利完成了心最代编写。2000-2002年完成秘光网络教据仓库中心,桌决河电省高新换木产品二等姿2001年美国Bul nd公型座予“BorlndDeiph产品家”称号,四的予论医特别贡献奖”,为性一时两个英功入员,2000年日1月, 婴参I a or an it公司成20周年举办的“H or und首届开发者大会”, 发为“利用Dcl phi实现在Macrs of.NeT
本书通过对Delphi内核(RTL) 源代码进行分析, 深入闸述了Delphi内核(RTL) 的原理及其实现。个书从Nico Bend in编写的著名最小化内核小例程序MinD Exe讲起, 址Mini D Exe分析Dei phi在编译器级的技术内幕,带读者现Delphi的核心、随后作者基于这个内核逐层地包装代码, 将Delphi的各种功能的!体实现展现,通过列出关键代码月进行系统竹分析的方式、个面分析对象结构、VCL和COM等在源代码中的实现全书内容评实, 阐述精、深入, 要议题包括:Delphi的编译器在Windows、Delphi RTL和用户代码之间的交:Delphi RTL内核代码的完整实现:与Delphi内核相关的操作系统机制:始(入[1)代码、模块、内存、线程、资源、异常处理机制等,本是本不可多得的高端技术图书.适合中、高级Delphi升发人员砌读木经许可,不得以仟何力式复制或抄袭本书之部分或全部内容
序
前言.
第一部分
第1章
Delphi内核深入剖析(I)
最小化Delphi内核-
Mini D Exe如何实现内核最小化…
I.1.1Mini D Exe中的System.pas单元…
1.1.2Mini D Exe中的Sys In it.pas单元…
1.1.3Mini D Exe中的项目文件Mini D Exe.dpr-
一些其他的内核优化…
为什么要研究最小化内核.
基本数据类型的实现
基本数据类型.
变量与常量
2.2.1全局变量与局部变置
数据结构的实现…
数据结构相关的例程.
4.3.1单元初始化与结束化的内部例程
第2章
第3章
动态分配的内存…
换一个方式来理解…
常量
简单类型…
字符串.
构造类型.
指针类型.
过程类型.
标准Pax cal的内置例程.
字符串操作例程.
变量的类型检测与强制转换
引用-计数~写复制与类型信息
2.6.1引用计数与增加引用…
2.6.2“增加引用”何时发生
第4章
Delphi源代码分析
Delphi源代码分析
增加引用的操作是依赖类型信息来实现的-
写复制与值参数的备份.
B ASM(Borland汇编语高) 精要
B ASM概念简要…
表达式的类别与类型·
数据定义和数据类型强制转换
例程入参数及调用约定-
例程和API的调用与流程控制-
完全汇编例程与内嵌汇编例程…
汇编例程中的返回值约定…
其他.
初始化与结束化过程
变置的初始化与结束化…
4.1.1初始化的必要性…
4.1.2如何初始化…
4.1.3如何结束化…
4.2例程的初始化与结束化·
4.3单元初始化与结束化.
4.3.2其他初始化例程…
4.4模块初始化与结束化.
模块入代码…
编译器决定的程序执行流程…
DII Proc与DII Main(的不同…
包的卸载例程Unload Package() …
包的基本输出例程…
第5章
面向Windows开发的基本实现.
Win 32应用程序:EXE.
5.1.1适应Win 32应用程序的最简化内核
5.1.2初始化例程_In it Exe() -
5.1.3内部模块表管理例程…
5.1.4.EXE启动例程_Start Exe() …
5.1.5应用程序的结束化控制…
32位的DOS:控制台应用程序.
5.2.1控制台应用程序的模块入代码.
5.2.2控制台应用程序的最小化实现…
5.2.3控制台应用程序的Delphi实现…
5.2.4文件操作例程与控制台应用程序
5.2.5控制台的开启与关闭…
5.2.6CRT单元与Input、Output的重载…
动态链接库:DLL.
5.3.1丢失的Dl Main() …
5.3.2_In it Lib 0例程…
5.3.3Start Lib() 例程…
5.3.4.DLL的结束化过程…
5.3.6动态链接库的内核最小化…
Delphi的动态链接库:包…
5.4.1包的主要规则…
5.4.2Delphi中的包与普通DLL的区别…
5.4.3包的DIl Main O…
5.4.4包的载入例程Load Package() …
5.4.5真正的初始化例程In ii alize Package 0-
6.1.1文件头·
6.1.2节表…
6.1.3节…
6.1.4PE文件与内存映射…
6.1.5有关相对虚地址的计算…
6.3.1线程局部存储(tls和.r data) …
6.3.2资源节(.rsrc) …
6.3.3导入、导出表(.i data和.e data) .
6.3.4数据节与代码节(DATA、BSS和CODE) …
6.3.5重定位节(.reloc) -
6.4.1Delphi的PE文件头部…
6.4.2Delphi的PE文件的节及其默认对齐
6.4.3还可能更小吗…
6.4.43.5K代码的内存映射…
6.5.1磁盘文件上的入代码(RAW Address) …
6.5.2反编译器使用相对基地址定位的入代码(RV A) …
6.5.3载入到内存之后(运行期)的入代码(VA)…
第6章
内部例程_Package Load() 与_Package Unload() …
包的内核最小化…
其他.
5.5.1初始化上下文中Outer Context域的使用-
5.5.2入代码中的堆栈使用深入分析(内存现场)
5.5.3再论入代码…
Delphi的积木艺术(PE.
6.1PE文件结构概要…
6.2Delphi的PE文件头中一些重要的域-
6.3Delphi的PE文件中一些重要的节.
6.43.5K的秘密.
6.5入点…
第二部分Delphi内核深入剖析(I)
第7章Delphi的内存管理器
7.1Delphi的内存管理器实现框架.
Delphi源代码分析
Delphi源代码分析
Memory Manager及相关例程…
Get Mem.inc中的重要例程.
7.5.1堆块及其管理例程…
遍历全部内存块.
7.7共享内存管理器
7.8第三方内存管理器.
7.9小结.
第8章
虚地址空间(Address space) 管理…
异常触发(Raise) …
多层(嵌套)的异常处理…
异常度开(Unwind) .
异常响应(Notify) …
顶层异常处理…
已提交的内存空间(Committed space) 管理…
用户调用例程(actually calls) 的实现…
初始化、结束化与其他辅助例程…
错误和异常.
错误.
断言·
Windows与Delphi中的异常处理机制概要
编译器对异常处理机制的实现.
8.4.1最小化内核的启示.
8.4.2从操作系统的角度来理解编译器行为…
8.4.3try.finally/except.end语法关键字与内部例程…
8.5基本(except型) 异常处理.
8.6使用面向对象技术的异常类
·6·目录
第9章
异常列表、Rais c Frame与Exception Record…
未知异常映射:Except Obj Proc
不使用SysUtils.pas单元的应用程序…
线程局部存储(TLS) 的实质·
编译器的准备工作.
静态TLS:EXE模块中的TLS…
动态TLS:DLL模块中的TLS.
线程执行体(Execute) .
线程与主线程的同步(Synchronize) …
Delphi源代码分析
_Rais c Excepto、_Raise Again(与_Done Except 0例程…
异常对象…
异常类型检测的依赖性问题…
多线程的实现及调度
操作系统的进程与线程.
9.1.1线程的启动过程…
9.1.2主线程与用户线程启动过程的比较
9.1.3线程有哪些独立元素…
9.2操作系统的线程调度概要.
9.3基本的多线程应用.
9.4线程变量(线程局部存储).
9.5再论FS段…
9.6线程类(T Thread) .
9.7线程同步对象…
9.8多线程环境下的内存管理器.
第10章
Delphi源代码分析
控制台应用的多线程同步