应该讨论点有意义的东西。我觉得这样才是技术论坛——事实上,我看见那些讨论破解、注册机、算号类的帖子就很烦。好久没有发过长帖了,今天凑个热闹,谈谈我自己认为的无盘98的几大核心技术问题:
从大的方面看,关键点有两个:一是引导过程和A:盘启动DOS的过程的函接,二是WINDOWS实模式向保护模式的过渡。明智的网卡编号和识别机制是最优的吗?未必吧。工作站在BOOTP下应该可以得到自己的IP和网卡号,在系统转到A:上并启动后,这些传输启动包时的参数如何传递过来,这是个关键,是引导过程和启动过程的接口位置,也是我们应该重点讨论的第一个问题。对WIN98的优化应该是三方面:一是硬件优化;二是启动WIN.COM前——这应该是重点讨论的第二个问题;三是启动WIN.COM之后进桌面之前。我觉得功夫应该下在第三个方面上,这里面当然包括驱动程序的优化,但最关键的是研究WIN.COM加载各个模块的过程,简化和合并之,或用导入注册表的手段替代之,这样才能有效的解决WIN.COM之后那个讨厌的光标闪动时间过长的问题——这应该是重点讨论的第三个问题。
一。关于网卡编号和识别我发过一个帖子,可惜没有高手出面,于是沉下去了: http://netpc.ods.org/pn/modules.php?op= ... ic&t=39891
有网友说:直接从BOOTP,PXE的回答包里读取信息,即使用BPUTIL。COM PXUTIL。COM工具可以实现网卡编号和识别。但我不明白:请问他提到的BPUTIL.COM PXUTIL.COM是不是在bootp或PXE启动时可以得到卡号和用户名的东西?请高手发表看法详细解释一下好吗?
至于我以前写过的什么把NETNAMES.DB放到映像文件中,还有其他朋友提出的把用户名保存在工作站的CMOS中等处理用户名的方法,实质上都是没有彻底解决引导过程和启动过程的参数传递,不得已采取的浅层次的解决办法。基于相同的理由,我也认为,研究WIN98本身才是真正的关键所在,服务器使用RAMDISK也是治标不治本的办法。各位以为然否?
二。关于WIN.COM之前。改多次登陆为一次登陆,拷贝注册表到工作站的RAMDISK中而不是个人目录中,——或者用WIN95中的NETSETUP把各工作站注册表搞定省掉拷贝过程。总之,以减少网络传输量和减少服务器硬盘读写量为核心对WIN.COM前的过程进行优化。我测试的结果是从传输启动包到WIN.COM时间在4秒钟之内。
至于使用WIN95中的NETSETUP工具形成工作站注册表的问题,我是这样做的:
硬件条件: SERVER:PIII866/256M/40G7200/TPLINK-RTL8139/815E WORKS:C433/64M/TPLINK-RTL8139/810 双机直连(568A——568B) 软件条件: SERVER:WIN2K ADSERVER,WIN95的NETSETUP,WIN98SE
这里仅说明使用NETSETUP时与安装无盘95不同的地方,其他相同部分请参阅其他资料。
1。在样本工作站上使用NETSETUP.EXE时,设定样本工作站目录为上传的C:盘下的WINDOWS目录; 注意:运行一次NETSETUP.EXE不成功时,必须重新启动样本工作站才能再次运行 。
2。服务器上的WINDOWS共享目录(SBS)就是样本工作站的系统传到服务器上形成的那个WINDOWS目录,一般是\\SERVER\SHARE98\WINDOWS;
3。“已存在的样本工作站目录”是样本工作站在服务器上形成的机器目录,一般是\\SERVER\SHARE98\WST01;
4。关于样本工作站机器目录\\SERVER\SHARE98\WST01的形成: (1)按常规方法安装样本工作站并实现正常的无盘启动; (2)改启动包,把WST01的注册表指向自己的目录即:\\SERVER\SHARE98\WST01,启动样本工作站使自己的注册表文件形成在这个目录中; (3)调整好这个样本工作站,并注意确保调整的内容都写入了这个注册表。
5。若使用NETSETUP.EXE不能成功地建立一批工作站数据,则需要改为逐台添加——反正我没有成批添加成功过。^_*
6。剩下的事情就是修改启动包了!你可以发现你的启动过程中不用拷贝注册表了,还可以发现你的目录结构和无盘95的一样,系统已经分离了。
我还发现,我的启动过程只用了17秒,进入桌面时光标闪了4次,连漏斗都没有就完全进入桌面了——你说MS的NETSETUP.EXE怎么这么炫!
请各位研究这个NETSETUP.EXE到底都改了注册表的什么地方。
三。关于WIN.COM之后。
1。有人说把IPX/SPX协议上的网卡号改掉,即改000000为111111,可以把WIN.COM之后的光标闪动时间缩短,我测试的结果是这个办法有效。
2。另外,网卡PNP也是这个问题的一部分。
3。还有,有人贴出这样一段注册表,据说可以省掉系统加载常规设备的时间,不过我没有试验成功,我想这段注册表也不是常规导入的,可能也象网卡PNP那样需要手工动一些地方(纯属瞎猜),现贴出来请大家研究。
REGEDIT4
[HKEY_LOCAL_MACHINE\Enum\Root]
[HKEY_LOCAL_MACHINE\Enum\Root\Processor_Update]
[HKEY_LOCAL_MACHINE\Enum\Root\Processor_Update\0000] "HardwareID"="PROCESSOR_UPDATE" "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Class"="System" "Driver"="System\\0000" "Mfg"="(标准系统设备)" "DeviceDesc"="处理器支持" "ConfigFlags"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\SwEnum]
[HKEY_LOCAL_MACHINE\Enum\Root\SwEnum\0000] "HardwareID"="SWENUM" "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Class"="SYSTEM" "Driver"="SYSTEM\\0001" "ConfigFlags"=hex:00,40,00,00 "Mfg"="Microsoft" "DeviceDesc"="Plug and Play Software Device Enumerator" "Serial"=hex:00,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0A03]
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0A03\0000] "InfName"="MACHINE.INF" "DeviceDesc"="PCI bus" "Class"="System" "HardwareID"="*PNP0A03" "DetFunc"="*:DETECTBUS" "NoSetupUI"="1" "DetFlags"=hex:40,00,00,00 "VerifyKey"=hex:50,43,49,42 "PCIBIOSVer"=hex:10,02 "HWMechanism"=hex:11 "LastPCIBusNum"=hex:00 "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Driver"="System\\0002" "ConfigFlags"=hex:00,02,00,00 "Mfg"="(标准系统设备)"
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0000]
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0000\0000] "InfName"="MACHINE.INF" "DeviceDesc"="可编程的中断控制器" "Class"="System" "HardwareID"="*PNP0000" "DetFunc"="*:DETECTPIC" "NoSetupUI"="1" "DetFlags"=hex:00,00,00,00 "BootConfig"=hex:0a,04,00,00,00,00,00,00,14,00,00,00,02,00,00,00,00,00,0c,00,\ 20,00,21,00,00,00,00,ff,14,00,00,00,02,00,00,00,00,00,0c,00,a0,00,a1,00,00,\ 00,00,ff,10,00,00,00,04,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00 "VerifyKey"=hex:20,00,00,00 "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Driver"="System\\0010" "Mfg"="(标准系统设备)" "ConfigFlags"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0000\0000\LogConfig] "0"=hex:0a,04,00,00,00,e0,00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,\ 00,00,00,00,00,ff,ff,02,00,20,00,21,00,00,00,00,ff,20,00,00,00,02,00,00,00,\ 01,00,0c,00,00,00,00,00,00,00,00,00,ff,ff,02,00,a0,00,a1,00,00,00,00,ff,10,\ 00,00,00,04,00,00,00,00,00,00,00,04,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0200]
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0200\0000] "InfName"="MACHINE.INF" "DeviceDesc"="直接内存访问控制器" "Class"="System" "HardwareID"="*PNP0200" "DetFunc"="*:DETECTDMA" "NoSetupUI"="1" "DetFlags"=hex:00,00,00,00 "BootConfig"=hex:0a,04,00,00,00,00,00,00,14,00,00,00,02,00,00,00,00,00,0c,00,\ 00,00,0f,00,00,00,00,ff,14,00,00,00,02,00,00,00,00,00,0c,00,81,00,83,00,00,\ 00,00,ff,14,00,00,00,02,00,00,00,00,00,0c,00,87,00,87,00,00,00,00,ff,14,00,\ 00,00,02,00,00,00,00,00,0c,00,89,00,8b,00,00,00,00,ff,14,00,00,00,02,00,00,\ 00,00,00,0c,00,8f,00,8f,00,00,00,00,ff,14,00,00,00,02,00,00,00,00,00,0c,00,\ c0,00,df,00,00,00,00,ff,0c,00,00,00,03,00,00,00,00,04,00,00,00,00,00,00 "VerifyKey"=hex:00,00,00,00 "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Driver"="System\\0011" "Mfg"="(标准系统设备)" "ConfigFlags"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0200\0000\LogConfig] "0"=hex:0a,04,00,00,00,e0,00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,\ 00,00,00,00,00,ff,ff,10,00,00,00,0f,00,00,00,00,ff,20,00,00,00,02,00,00,00,\ 01,00,0c,00,00,00,00,00,00,00,00,00,ff,ff,03,00,81,00,83,00,00,00,00,ff,20,\ 00,00,00,02,00,00,00,01,00,0c,00,00,00,00,00,00,00,00,00,ff,ff,01,00,87,00,\ 87,00,00,00,00,ff,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,00,00,00,00,\ 00,ff,ff,03,00,89,00,8b,00,00,00,00,ff,20,00,00,00,02,00,00,00,01,00,0c,00,\ 00,00,00,00,00,00,00,00,ff,ff,01,00,8f,00,8f,00,00,00,00,ff,20,00,00,00,02,\ 00,00,00,01,00,0c,00,00,00,00,00,00,00,00,00,ff,ff,20,00,c0,00,df,00,00,00,\ 00,ff,0c,00,00,00,03,00,00,00,00,00,10,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0B00]
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0B00\0000] "InfName"="MACHINE.INF" "DeviceDesc"="系统 CMOS/实时钟" "Class"="System" "HardwareID"="*PNP0B00" "DetFunc"="*:DETECTCMOS" "NoSetupUI"="1" "DetFlags"=hex:00,00,00,00 "BootConfig"=hex:0a,04,00,00,00,00,00,00,14,00,00,00,02,00,00,00,00,00,0c,00,\ 70,00,71,00,00,00,00,ff,10,00,00,00,04,00,00,00,00,00,08,00,00,00,00,00,00,\ 00,00,00 "VerifyKey"=hex:70,00,00,00 "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Driver"="System\\0012" "Mfg"="(标准系统设备)" "ConfigFlags"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0B00\0000\LogConfig] "0"=hex:0a,04,00,00,00,e0,00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,\ 00,00,00,00,00,ff,ff,02,00,70,00,71,00,00,00,00,ff,10,00,00,00,04,00,00,00,\ 00,00,00,00,00,01,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0100]
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0100\0000] "InfName"="MACHINE.INF" "DeviceDesc"="系统计时器" "Class"="System" "HardwareID"="*PNP0100" "DetFunc"="*:DETECTTIMER" "NoSetupUI"="1" "DetFlags"=hex:00,00,00,00 "BootConfig"=hex:0a,04,00,00,00,00,00,00,14,00,00,00,02,00,00,00,00,00,0c,00,\ 40,00,43,00,00,00,00,ff,10,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00 "VerifyKey"=hex:40,00,00,00 "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Driver"="System\\0013" "Mfg"="(标准系统设备)" "ConfigFlags"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0100\0000\LogConfig] "0"=hex:0a,04,00,00,00,e0,00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,\ 00,00,00,00,00,ff,ff,04,00,40,00,43,00,00,00,00,ff,10,00,00,00,04,00,00,00,\ 00,00,00,00,01,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0800]
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0800\0000] "InfName"="MACHINE.INF" "DeviceDesc"="系统扬声器" "Class"="System" "HardwareID"="*PNP0800" "DetFunc"="*:DETECTSPEAKER" "NoSetupUI"="1" "DetFlags"=hex:00,00,00,00 "BootConfig"=hex:0a,04,00,00,00,00,00,00,14,00,00,00,02,00,00,00,00,00,0c,00,\ 61,00,61,00,00,00,00,ff,00,00,00,00 "VerifyKey"=hex:61,00,00,00 "Capabilities"=hex:14,00,00,00 "ClassGUID"="" "Driver"="System\\0014" "Mfg"="(标准系统设备)" "ConfigFlags"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\Root\*PNP0800\0000\LogConfig] "0"=hex:0a,04,00,00,00,e0,00,00,20,00,00,00,02,00,00,00,01,00,0c,00,00,00,00,\ 00,00,00,00,00,ff,ff,01,00,61,00,61,00,[1] [2] [3] 下一页 |