中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-14 22:57
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS开发编程 & 发展交流 (开发室) » [推荐] 我提议有人牵头建立 DOS 内核开发项目
可打印版本  87,003 / 82
第16楼 johnsonlam 发表于 2007-01-27 14:03
银牌会员 发帖 497 积分 1,410 来自 九龍,香港

Originally posted by 不点 at 2007-1-23 07:50 AM:
我自己有一个不成熟的见解,叙述如下。我对 DOS 并不熟悉,然而同时我又觉得 DOS 的体积不是特别吓人,所以,它有可能被我们肢解。


看 Wengier 說 才 知 道 你 是 GRUB for DOS 的 作 者 , 這 就 真 是 謙 虛 了 , 你 知 的 比 許 多 人 還 要 多 。


首先,我发现 DOS 的启动过程就很神秘。我觉得我们应该成立一个分支小组,研究 MS- DOS 的启动。就是说,逐条分析它的启动代码。然后剥离出真正属于内核的部分。


那 就 要 反 向 匯 編 囉 ...

其 實 也 可 參 考 FreeDOS 的 源 碼 , 瞭 解 "怎 樣 去 啟 動" 比 純 粹 複 製 更 有 意 義


LZ-DOS 我还是首次听说,谢谢,我觉得这很好。如果它能够支持 win.com 的运行,我们可以从它入手来研究。我们不抄袭它,但是,我认为,我们研究微软隐藏了的秘密,这不构成侵权。

wengier 已经把 200 多 KB 的 IO 减小了一半。我觉得这一半之中应该还有很多是累赘,比如说,纯粹是加密用的,故意不让人理解的。我们把它 “脱壳” 以后,就可以现出 真正的 DOS 内核的原型了。


其 實 要 完 全 不 侵 權 , 只 有 從 FreeDOS 入 手 , 因 為 反 向 匯 編 也 是 不 妥 當 的 , 但 是 單 從 學 習 而 不 去 複 製 , 卻 又 是 GNU 精 神

LZ-DOS 是 改 良 了 核 心 的 MS-DOS 7.10 ( Win98SE 啟 動 部 份 ) , 俄 國 人 只 拿 掉 了 他 們 認 為 沒 有 用 的 東 西 ( 可 能 是 Win98SE GUI 部 份 )


当然了,ralf brown 的 interrupt list 很好。我们可以检验 FreeDOS 是否完整实现了这个 list 中的功能,如果有什么缺失的,我们可以打补丁,完善它,这样也有可能让 FreeDOS 能够运行 win.com。


加 入 FreeDOS 是 不 可 行 的 , 因 為 那 兒 的 開 發 人 員 不 齊 心 , 借 用 文 件 內 的 知 識 就 可 以


总之,这个工程很庞大,需要大家一起做。每个人都可以从不同的角度入手,以不同的切入点开始做。然后,大家交流经验,互相取长补短,互相借鉴。

好了,我也就是这么一个想法而已,也算是我对这个提议的一个贡献。


很 好 , 但 還 是 要 有 個 領 導 , 要 組 織 開 發 和 測 試 班 子
第17楼 johnsonlam 发表于 2007-01-27 14:08
银牌会员 发帖 497 积分 1,410 来自 九龍,香港

Originally posted by 不点 at 2007-1-24 07:46 AM:
我希望有人出面来维护这个项目,但是,如果实在没人能够出面的话,其实,不用领头羊,一群羊也能前进。


恕 冒 犯 ...

"一 群 羊 各 就 各" 這 就 是 FreeDOS 的 過 程 , 整 整 10 年 兼 容 度 還 比 不 起 一 個 LZ-DOS ... 分 工 合 作 是 很 重 要 的 , 否 則 就 變 成 FreeDOS 膠 著 的 現 狀
第18楼 johnsonlam 发表于 2007-01-27 14:13
银牌会员 发帖 497 积分 1,410 来自 九龍,香港
Originally posted by 不点 at 2007-1-27 08:34 AM:
我下载了 LZ-DOS,它的 IO.SYS 很小,只有 74 KB。难道没有人用用吗?真是可惜了!



Lucho 的 單 軟 盤 版 就 有 LZ-DOS + E.DR-DOS 雙 內 核 ...
還 有 QCACHE, QHIMEM, QCDROM, AEFDISK, FM 等 工 具

http://johnson.tmfc.net/dos/lucho.html
第19楼 Wengier 发表于 2007-01-27 16:27
系统支持 发帖 10,521 积分 27,736
Originally posted by johnsonlam at 2007-1-27 01:03 AM:



LZ-DOS 是 改 良 了 核 心 的 MS-DOS 7.10 ( Win98SE 啟 動 部 份 ) , 俄 國 人 只 拿 掉 了 他 們 認 為 沒 有 用 的 東 西 ( 可 能 是 Win98SE GUI 部 份 )



关于这个LZ-DOS,其实我去年就曾研究过。当时经过研究确定,它的英文版/俄文版的IO.SYS文件分别是在英文版/俄文版的MS-DOS 7.1内核上经过简单修改并压缩而成的,而COMMAND.COM则是在DOS 6.x的基础上改成的。关于它的兼容性和压缩问题论坛中就曾有一些讨论,比如这儿:

http://www.cn-dos.net/forum/viewthread.php?tid=21627

当时经研究发现,那个俄国人并没有拿掉Win9x GUI支持部分,也没有删减任何重要功能。之所以体积比较小,主要是因为经过了压缩。它可以正常启动Win9x GUI(这个我当时就验证过了),但有两点要注意,那就是路径设置和默认语言代码页。因为它的英文版是在英文版的MS-DOS 7.1内核基础上修改和压缩而来的,所以它的默认语言代码页是437。而Win98启动有个要求,那就是MSDOS.SYS中的路径设置必须正确,而且DOS启动代码页必须与Win98代码页相同,否则会出现注册表错误的提示。对于前者,我曾在论坛中发过专帖进行详细介绍;对于后者,如果代码页不相同的话,可以在CONFIG.SYS中用COUNTRY命令修改。当时通过这些设置,我在LZ-DOS上成功启动过Win3.x到98SE之间的各种中英文版本的WIN。
第20楼 johnsonlam 发表于 2007-01-28 02:56
银牌会员 发帖 497 积分 1,410 来自 九龍,香港
Originally posted by Wengier at 2007-1-27 04:27 PM:
当时经研究发现,那个俄国人并没有拿掉Win9x GUI支持部分,也没有删减任何重要功能。之所以体积比较小,主要是因为经过了压缩。



謝 謝 , 我 是 看 漏 了 眼 。

俄 國 人 透 露 了 , 這 是 "內 部 、 特 別 、 軍 事 和 太 空" 用 途 !!

問 題 是 -- 我 們 欠 缺 軟 體 ...
第21楼 不点 发表于 2007-01-28 04:40
银牌会员 发帖 1,115 积分 2,491
johnsonlam:你的 Q 系列在很多工具软件中都有列入。相比之下,grub4dos 的了解度还很低。其实我也是前几天才知道你是 Q 的作者。而且正是因为这个,我才把帖子重发在开发室的。我以前从不来开发室的。

虽然我知道你适合于做这个项目的开发、管理人,但是,我也不好意思明说,毕竟你自己已经有项目在身了,考虑到额外给你增加一些压力并不好。

我又有一个提议,来这里的人最好都要说明自己能否担当维护人。如果不能担当,请说明不能担当的理由。考虑到有些人其实可以担当,但是又不太积极主动,所以我觉得有必要增加这个提议,来促成这件事情。

另外,我觉得不要太过于拘泥于 “侵权” 问题。如果严格按照 EULA,我们什么都不能做了。我认为那就是紧箍咒而已。我们可以反问软件公司,难道你隐藏技术秘密就是完全合理的吗?如果我们不反汇编,怎么能够知道你的产品里面有没有炸药?我们每个人对于“合理性” 的理解,可能是有偏差的。人是高级的动物,所以,想法就决定着他的行动。我们不要忘了,微软的所作所为,也不一定就是合理合法的(微软也曾被人控告并且败诉)。我认为,我们只要做到,让那些可能的控告者抓不到把柄就好了。还是那句话,不要过分自己束缚自己的手脚。

当然我绝不是说要去 "偷" 人家的代码。如果我们把它的技术秘密掌握了,我们也就根本不需要去 "偷" 了。而掌握技术秘密,你没有 debug 怎么行呢?以前看过《未公开的DOS核心技术》,像这样的作者,都是 debug 的熟练玩家。我认为 debug 是合法的,否则 DOS 为何要附带这个工具呢?我们的目的,是要找出微软的那些不该隐藏的秘密,这不构成对它的知识产权的侵犯。严格说来,它的那些秘密无非就是用来扼杀竞争对手的,属于不正当竞争的范畴。因此严格说来,我们有权要求微软公开那些秘密,至少在道义上,微软该这么做。所以说,不用担心,我们的做法完全是合理合法又合情的。

---------------

又,最新报告:把 scanreg.ini 中的 Backup 和 Optimize 清零,改成这样:

;Registry backup is skipped altogether if this is set to 0
Backup=0

;Registry automatic optimization is skipped if this is set to 0
Optimize=0

另外还要在 msconfig 中把 scanregw 禁用。这么一来,Windows 98SE 就可以启动了。

-----------------------

不过,既然这只是一个压缩的产物,那么也就没什么意义了。我准备研究一下 IO.SYS 的启动过程,把研究心得贴在这里。Wengier 和大家有什么建议和忠告,赶快说,以免我走弯路。
第22楼 johnsonlam 发表于 2007-01-28 07:59
银牌会员 发帖 497 积分 1,410 来自 九龍,香港

Originally posted by 不点 at 2007-1-28 04:40 AM:
johnsonlam:你的 Q 系列在很多工具软件中都有列入。相比之下,grub4dos 的了解度还很低。其实我也是前几天才知道你是 Q 的作者。而且正是因为这个,我才把帖子重发在开发室的。我以前从不来开发室的。


你 誤 會 了 , 我 是 管 網 頁 和 聯 系 的 , 作 者 是 Jack Ellis.


虽然我知道你适合于做这个项目的开发、管理人,但是,我也不好意思明说,毕竟你自己已经有项目在身了,考虑到额外给你增加一些压力并不好。


抱 歉 , Jack 暫 時 對 其 它 計 劃 不 想 參 與 , 只 想 做 好 手 頭 的 Q-系 驅 動


我又有一个提议,来这里的人最好都要说明自己能否担当维护人。如果不能担当,请说明不能担当的理由。考虑到有些人其实可以担当,但是又不太积极主动,所以我觉得有必要增加这个提议,来促成这件事情。


我 覺 得 要 承 擔 的 話 , 很 多 人 就 會 有 壓 力
我 不 懂 編 程 , 又 不 懂 看 匯 編 , 否 則 已 經 在 幫 忙 了


另外,我觉得不要太过于拘泥于 “侵权” 问题。如果严格按照 EULA,我们什么都不能做了。我认为那就是紧箍咒而已。我们可以反问软件公司,难道你隐藏技术秘密就是完全合理的吗?如果我们不反汇编,怎么能够知道你的产品里面有没有炸药?我们每个人对于“合理性” 的理解,可能是有偏差的。人是高级的动物,所以,想法就决定着他的行动。我们不要忘了,微软的所作所为,也不一定就是合理合法的(微软也曾被人控告并且败诉)。我认为,我们只要做到,让那些可能的控告者抓不到把柄就好了。还是那句话,不要过分自己束缚自己的手脚。


我 們 不 需 要 美 國 或 國 際 法 律 完 全 認 同 , 但 你 說 的 對 , 軟 件 公 司 的 私 心 , 使 人 類 落 後 太 多 , 我 們 不 必 完 全 遵 守 。

但 我 覺 得 要 有 道 德 底 線 , 不 能 抄 了 別 人 卻 認 是 自 己 的 , 禮 貌 道 德 上 要 立 於 不 敗 之 地 , 可 以 反 汇 编 但 不 能 抄 MS 的 源 碼 。我 同 意 不 要 过 分 自 己 束 缚 自 己 的 手 脚 。


当然我绝不是说要去 "偷" 人家的代码。如果我们把它的技术秘密掌握了,我们也就根本不需要去 "偷" 了。而掌握技术秘密,你没有 debug 怎么行呢?以前看过《未公开的DOS核心技术》,像这样的作者,都是 debug 的熟练玩家。我认为 debug 是合法的,否则 DOS 为何要附带这个工具呢?我们的目的,是要找出微软的那些不该隐藏的秘密,这不构成对它的知识产权的侵犯。严格说来,它的那些秘密无非就是用来扼杀竞争对手的,属于不正当竞争的范畴。因此严格说来,我们有权要求微软公开那些秘密,至少在道义上,微软该这么做。所以说,不用担心,我们的做法完全是合理合法又合情的。


完 全 同 意


不过,既然这只是一个压缩的产物,那么也就没什么意义了。我准备研究一下 IO.SYS 的启动过程,把研究心得贴在这里。Wengier 和大家有什么建议和忠告,赶快说,以免我走弯路。


聽 Jack 兄 談 多 了 驅 動 知 識 , 我 覺 得 可 能 還 有 改 良 的 餘 地 呢 。
第23楼 本是 发表于 2007-01-28 11:41
银牌会员 发帖 790 积分 2,227
关于IO.EXE/.SYS:
虽然我知道704--726是在解密205--704的代码并写入202--703,
我自己将解密代码写入并尝试修改文件头,最后用此新IO.SYS
更新启动映像,在QEMU中启动成功。

刚才查LZDOS的IO.SYS/EXE怎么找不着入口?
请WENGIER露点风给大家!!!

[ Last edited by 本是 on 2007-1-28 at 12:46 PM ]

附件
io.rar (73.62 KiB)
io_sys.gif (2.36 KiB)
第24楼 不点 发表于 2007-01-28 11:58
银牌会员 发帖 1,115 积分 2,491
johnsonlam: 怪我粗心大意了。谢谢你的澄清。另外我很能理解你和 Jack 的想法。那我们就等着看有没有人自告奋勇了。

本是:干得好!我很想得到你修改后的这个 IO.SYS。你能做个下载链结吗?
第25楼 Kinglion 发表于 2007-01-31 22:37
铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室
可以借鉴Micro$oft公司公开的DOS6.0的源码.

大概有20MB左右吧.
第26楼 不点 发表于 2007-02-01 23:22
银牌会员 发帖 1,115 积分 2,491
本是: 我下载了你的 IO.SYS,发现了又一个秘密.

1. 你的这个 IO.SYS 怎么和 LZ-DOS 的 IO.SYS 在长度上完全一样,都是 75885 字节?
如果 LZ 就是 "压缩" 的意思, 那我觉得它的意义就不大了,还不如 wengier 的 io.sys 来得实在. "压缩" 只能增加我们脱壳的困难, 所以是糟糕的做法. WinME 中的 IO.SYS 就是压缩的.

2. 直接用你的这个 IO.SYS 覆盖微软的 IO.SYS, 结果不能启动 DOS(要死机).

3. 保持微软的 IO.SYS 作为 C:\IO.SYS, 此时通过 GRUB 的 chainloader 来启动你的 IO.SYS (已经改名为 IO_1.SYS), 那么能够成功进入 DOS, 也能进入 Win98.

4. 用你的 IO.SYS 作为 C:\IO.SYS, 把微软的 IO.SYS 改名为 IO_MS.SYS. 此时即便通过 GRUB 的 chainloader 来启动 IO_MS.SYS, 都是失败的. 好像是死机了,但键盘上的 NumLock 键可以切换 NumLOCK 指示灯. 用 Ctrl+Alt+Del 也可以重启动机器.

这最后一个现象,说明 grub 的 chainloader 还没有掌握 IO.SYS 的深层秘密.
第27楼 本是 发表于 2007-02-02 01:31
银牌会员 发帖 790 积分 2,227
Originally posted by 不点 at 2007-2-1 23:22:
本是: 我下载了你的 IO.SYS,发现了又一个秘密.
...


1.我的这个 IO.SYS 本来就是 LZ-DOS 的 IO.SYS,只是解了一段密,并未改变文件长度。

2.关于死机问题,建议
debug io.sys
e 0002 ce 01 b3 01
w
q
改回原值。这样EXE文件头就与原LZ的一样了。应该没有当机问题了。

3.即使是加密的,解了以后一样可用。因为有秘密在其中嘛!也许他们加减乘除了什么……
第28楼 brglng 发表于 2007-02-13 03:21
银牌会员 发帖 466 积分 1,200 来自 上海
我觉得可以把对MSDOS 8.0的IO.SYS的研究也作为这个项目的一部分哦
第29楼 不点 发表于 2007-03-04 12:21
银牌会员 发帖 1,115 积分 2,491
FAT16 的引导扇区剖析
关键字:boot sector, boot record, asm, assembly, FAT16 file system, MS-DOS, 引导扇区,引导记录,FAT16 文件系统,汇编语言,反汇编

从这个引导过程的分析可以知道,IO.SYS 在接管控制后,进入点是第二扇区的开头。

IO.SYS 被 boot sector 装入了 4 个扇区,装入的地址是 0000:0700,控制转移的 CS:IP=0070:0200,也就是 IO.SYS 的第二扇区的开头。另外,BP,SP,SI,DI,SS,DS,ES 以及堆栈内容都是有意义的,在下面的注释中都作了详细说明。
第30楼 acen 发表于 2007-03-07 05:47
新手上路 发帖 2 积分 4
都是高手阿
上一页  1 2 3 4 56  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023