Windows Server 2003源代码编译详细步骤与工具
需积分: 5 171 浏览量
更新于2024-12-28
收藏 777KB 7Z 举报
资源摘要信息:"NTDEV 编译 Windows Server 2003 源代码用到的补丁"
1. Windows Server 2003源代码编译背景知识
Windows Server 2003是微软在2003年推出的服务器操作系统,是Windows NT系列操作系统的一部分。Windows Server 2003源代码的公开,允许开发者深入操作系统内部,进行定制和改进。
2. 编译环境设置
编译源代码通常需要特定的开发环境和工具链。文档中提到设置时间到2003-01-08,这意味着需要将系统的日期和时间设置为特定的时间点,这通常是因为某些代码或工具与特定日期的时间戳进行关联,确保编译过程中依赖库和工具的兼容性。
3. 解压源代码
源代码需要解压到指定目录,这里是D:\srv03rtm。这是编译过程中的一个步骤,将源代码置于一个干净且独立的目录中,以防止与其他程序的冲突。
4. 源代码属性修改
去掉文件夹中所有文件和文件夹的只读属性,通常是因为编译过程可能需要修改这些文件。
5. 应用源代码补丁
文档中提到的补丁如exinit.c、exp.h、systime.c、winlogon、directui.lib、oscdimg.cmd等是针对源代码的修改。补丁的作用通常是修复已知问题、提供新功能或适配特定的环境。在本例中,这些补丁可能是用来解决编译问题或确保源代码能在现代硬件上编译成功。
6. 证书安装
在编译Windows Server 2003源代码之前,需要安装特定的证书,以确保代码签名的安全性和验证过程。这一过程是必要的,因为微软代码签名证书可以保证源代码是从合法授权的开发者那里来的。
7. 启动命令行工具
在D:\srv03rtm目录下启动CMD(命令提示符),意味着将命令行工作目录切换到源代码的根目录,为运行编译脚本做准备。
8. 运行编译脚本
通过运行tools\razzle.cmd free offline来启动编译过程。razzle.cmd是一个批处理脚本,其中包含编译指令和参数。此步骤会根据脚本的指示调用相应的编译器和工具链来处理源代码。
9. 环境变量设置
设置环境变量PATH,将工具目录添加到系统的路径中,这样在命令行中可以直接调用工具。
10. 检查证书安装
通过运行tools\checktestroot.cmd和tools\checktestpca.cmd,可以检查之前安装的证书是否正确,以确保代码签名过程的顺利进行。
11. 编译过程
使用perl工具timebuild.pl来执行编译,加上参数-NOCLEANBUILD、-NOSYNC和-NOSCORCH来控制编译过程。这些参数的含义通常分别是:
-NOCLEANBUILD:不清理之前编译生成的文件,可能用于增量编译。
-NOSYNC:不进行源代码同步,可能用于保持当前状态。
-NOSCORCH:不启用SCORCH,SCORCH(Server Component Orchard)是Windows组件安装的框架。
12. 源代码修改后的重新编译
当需要修改源代码并重新编译时,可以使用build命令并加上/ZP和-M参数。/ZP参数可能用于优化内存使用,而-M参数后跟数字指定了编译时使用的处理器核心数,这里为4,意味着使用4个核心并行编译。
13. 创建ISO目录结构
在编译完成后,需要创建ISO目录结构以便打包成可安装的ISO文件。使用timebuild.pl工具并添加-RESUME参数,可能是用来在特定点恢复之前的编译状态或ISO创建过程。
总结来说,该文档详细描述了如何设置编译环境,应用必要的补丁,安装证书,以及执行源代码编译到创建ISO文件的整个过程。这些步骤为开发者提供了一套完整的指南,用以编译Windows Server 2003源代码,并最终创建一个可安装的Windows Server 2003操作系统ISO文件。
889 浏览量
601 浏览量
4148 浏览量
1022 浏览量
2215 浏览量
474 浏览量
1042 浏览量
2008-06-10 上传
剑舞梦
- 粉丝: 250
- 资源: 47
最新资源
- 行业分类-设备装置-一种接收机板卡和导航接收机.zip
- todolist2
- 《梯度增强决策树影响估计方法的适应与评价》论文及实验代码
- TypingTag:一个令人讨厌的Discord机器人
- 小型项目:最新演示可在此处找到;)
- 利用Python实现的BP神经网络进行人脸识别.zip
- 行业分类-设备装置-一种抗水防破抗氧化防蛀书画纸.zip
- 学生管理系统gui的简单实现---基于java.awt
- ansible-collectd:安装 CollectD 的 Ansible 角色
- arrows_car
- is-retry-allowed:根据error.code检查是否可以重试请求
- 行业分类-设备装置-一种报警方法、管理平台和报警系统.zip
- github-actions-sandbox:对您没有用。 对我来说,这只是一个沙箱GitHub回购,可以尝试一些东西并开发GitHub Actions
- flagser:计算有向标志复合体的同源性(基于https
- openwrt串口程序.rar
- MATLAB下的数字调制样式识别-其它文档类资源