节选-ReactOS官方论坛里的内容(中国分版里的)
reactos吧
全部回复
仅看楼主
level 8
acat1433 楼主
2009年08月20日 04点08分 1
level 8
acat1433 楼主
又被审核,只好请各位到我博客里看了。
地址在此:
http://hi.baidu.com/acat1433/blog/item/22ca8d56d72034163b29357b.html
节选日期:2009年08月20日
2009年08月20日 04点08分 2
level 8
acat1433 楼主
==========================
Lone_Rifle:18 Jul 2009 15:13 
最近从西巴雅的vicmarcal遇到一群人,他们对ReactOS开发有兴趣; vicmarcal近来指导这一团怎么编撰源码等等。他也跟他们讨论ReactOS,回答他们的问题。如果你们有兴趣参
加这个新的开发团,他们的QQ号码在下面。。
group name: iMTKoo官方-ReactOS群
group number: 49988942
==========================
plato: 20 Jul 2009 12:22 
最近刚刚研读boot部分代码,发现有几个疑点:
1. isobtrt.asm 这个文件的代码拿来干啥? 
我知道isoboot.asm 是引导光盘代码,fat32.asm 是硬盘引导区代码,dosmbr.asm 是mbr代码。但不知道isobtrt.asm他的作用。
2. isoboot.asm 的代码是否有冗余.
我发现,进行光盘引导时屏蔽下面的代码照样可以成功引导:
; Save and display the boot drive number
mov [DriveNo], dl
%ifdef DEBUG_MESSAGES
mov si, startup_msg
call writemsg
mov al, dl
call writehex2
call crlf
%endif
; Now figure out what we're actually doing
; Note: use passed-in DL value rather than 7Fh because
; at least some BIOSes will get the wrong value otherwise
mov ax, 4B01h ; Get disk emulation status
mov dl, [DriveNo]
mov si, spec_packet
int 13h
jc near spec_query_failed ; Shouldn't happen (BIOS bug)
mov dl, [DriveNo]
cmp [sp_drive], dl ; Should contain the drive number
jne near spec_query_failed
%ifdef DEBUG_MESSAGES
mov si, spec_ok_msg
call writemsg
mov al, byte [sp_drive]
call writehex2
call crlf
%endif
found_drive:
; Get drive information
mov ah, 48h
mov dl, [DriveNo]
mov si, drive_params
int 13h
jnc params_ok
我发先,call 中断13 (ah 为48,4b) 它取出来的值接下来的代码并没有用上,查文献资料对这两个中断交代不是很详。
我在bochs和QEMU上测试,屏蔽后能正常运行,但没有在正真的pc上run.
3. 光盘DriveNo是从哪里来的? 代码直接把dl值赋给DriveNo,(这个值我测试结果为e0 bochs, qemu)后面就开始用它了,难道机器重启后会给dl附上光盘DriveNo吗?
----------
hto: 21 Jul 2009 02:39 
isobtrt是用来做回归测试。 我们的BuildBot总是用空的硬盘经行测试,所以如果硬盘已有了MBR,我们已经办到设建, 因此用硬盘boot
我不太清楚你讲哪一个代码。。。 上面的代码是用来从光盘boot。。。 你可以从Ralf Brown's Interrupt List找到IBM/MS INT 13 Extensions 的原因
对了,当BIOS叫bootstrap的代码时,boot盘的号码已在dl

2009年08月20日 04点08分 3
level 8
acat1433 楼主
----------
return: 13 Jul 2009 14:29 
要学习操作系统开发你可以看看毛德操的以ReactOS源代码来分析的《windows内核情景分析上,下册》,全书1500多页。其分析之精辟功力之深厚让我爱不释手,推荐你看看。还
有一本中科院一高手翻译的《深入理解操作系统》,相信你读了以上资料会对你有帮助。不过很可惜内核分析一文没有E文版的,所以华人们有福了。另外楼上那位台湾省的朋友
说的大陆教育制度的问题,个人认为的确有很多不另人满意的问题,但是它的确造就了很多人才,而且他们现在研究的课题和项目甚至是除美国以外没有哪个国家有能力研究的,
包括软件大国印度(开发的再好核心技术也不是自己的)。
----------
Lone_Rifle: 13 Jul 2009 20:11 
由我来说,我们讲英语的人家有个比较更广泛的书本:
Windows Internals 5th Edition
ISBN-10: 0735625301
ISBN-13: 978-0735625303
其中的作者 - Alex Ionescu - 曾经是ReactOS的内刻开发者。
http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx
----------
caimouse: 15 Jul 2009 05:51 
我认为操作系统至少要有的基本功:
1. C和C++语言,非常熟。
2. 对WINDOWS框架比较了解。
3. 对INTEL的X86的熟悉。
4. 阅读ROS的代码。
5. 具备虚拟机调试能力。
==========================
Lone_Rifle: 06 Jan 2009 22:43 
我们其实已经有了两位替我们照顾关于网页的翻译。billyswong照顾繁体字,而DavidLeon是简体字的组织者。 如果你想要为我们做网页翻译, 你可以上IRC
http://www.reactos.org/?page=community_irc)跟我们商量。要不然的话,你可以从http://www.reactos.org/wiki/index.php/Translation_Introduction 查明怎样替我们
做出OS的翻译。
----------
Lone_Rifle: 22 Feb 2009 17:26 
嗨,欢迎。。。
关于网站翻译, 我们现在利用RosCMS做出翻译,网页在http://www.reactos.org/roscms/?page=data. 如果你需要指导, 你可以去
http://www.reactos.org/en/tutorial_roscms.html 读我们的教程. 
如果有空的话就上跟我们打个招呼吧.
Tutorials are also found in the second url given.
If you have time, please join us on IRC (irc://irc.freenode.net/#reactos) and say hi, we'll like to get to know you.
----------
thinkSJ: 04 May 2009 04:12 
这个工程的大部分都是用C写的,不过最好是懂C++,否则有些代码可能会难以理解
一开始学C++并不难.
----------
Lone_Rifle: 12 Jul 2009 12:24 
如果需要指导的话,请你上IRC跟我们有约。你可以在我们的Bugzilla寄你的patches, 但由于我们大部分的开发人员都讲英语,因此当你寄你的贡献时需要用英语。希望我们不久
会收到你的贡献!
==========================
caimouse: 14 Jul 2009 05:51 
我正在进行源码分析,请大家到我的BLOG里多指教。
http://blog.csdn.net/caimouse

2009年08月20日 04点08分 5
level 8
acat1433 楼主
----------
BSCH: 20 Jul 2006 04:44 
xp+vmware+gdb 
的调试环境没有搭建好 
按照上面的来, 在gdb远程调试的地方, 不晓得要用哪个...... 
不过, 另外找到个简易的调试环境 
vmware, 增加个serial port, 设置成 output file 
然后 
打开 
config.rbuild里面的 
DBG选项(0改为1) 
然后再代码里面增加 DPRINT1这个宏, 具体这个宏的用法, 偶也不晓得, 大致和printf的差不多, 偶基本是按照printf的玩法玩 
然后改freeldr.ini 
Options=/DEBUGPORT=COM1 /NOGUIBOOT 
然后, make, OK~~
==========================
billyswong: 02 Jul 2006 02:22 
这一段英文大意是说中文显示关乎字体问题,要解决只需把ROS的字体换成懂中文的字体就可以了。他们打算加入dejavu字体,可是cmd.exe却会因此出事,因为字粒太大...
----------
billyswong: 03 Jul 2006 15:53 
查啊查... 
http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_0/reactos/boot/bootdata/txtsetup.sif?revision=21881 
Code: Select all
[Directories]
6 = media\fonts
原来ReactOS把fonts搬到了media里面......
----------
Larryli: 04 Jul 2006 02:33 
安装字体不是简单的复制,需要在注册表里登记相关信息,特别是ttf字体是有字符集映射的,必须告诉系统这个字体可以显示哪些字符。这样才能使用字体。
----------
Larryli: 08 Jul 2006 10:02 
tools/unicode/c_936.c 是 GBK 和 Unicode 的转换表。 
系统使用是 system32/c_936.nls 需要在注册表里登记。 
字体安装和本地化资源显示都需要设置这个。
----------
Larryli: 11 Jul 2006 14:51 
呵呵,两个转码表前面当然顺序对照的。 
因为 GBK 兼容 ASCII,Unicode 也算是兼容 ASCII(从 8 位扩展到 16 位)。 
所以 GBK 和 Unicode 转码表的开始部分,也就是 ASCII 部分是按顺序一一对应。 
而汉字的转码就不是一一对应。对于 Unicode 转 GBK 直接查表即可,GBK 转 Unicode 则首先要对 GBK 两个字节进行顺序计算后再查表。 
前段时间看到一篇文档写的当年实际上有两套国际字符集处理方案,分别由 ISO 和 Unicode 组织主导,Unicode 基本是厂商联盟。中国人参与的方案是 ISO 主导的,也就是说
当年 ISO 的国际字符集和 GBK 有某种程度的兼容,也就是一一对应(我以前也似乎在某个报纸上看到过相关的报道)。而 Unicode 的参与有日韩政府和台湾,属于另一阵营。
最后 ISO 选择和 Unicode 融合,也就是直接采用了 Unicode 的方案。所以目前的 Unicode 和 JIS KSC BIG5 存在一定对应关系,和 GBK 基本是乱序。据说 GB18030 和当年中
国在 ISO 提出的方案有一定继承性。 
不管怎样,个人认为 Unicode 已经是事实上和现实上的标准。大多数操作系统都是在内部以 Unicode(或变种,如 UTF-8)实现,而在表现层面使用另一种字符集来处理。中间
采用转码。而 c_936.c 就是用来实现这个转换。 
ReactOS 也就是 Windows NT 内部是使用 Unicode 的。 
所以 ReactOS 本身并不存在中文显示和处理的问题。
----------
Larryli: 17 Jul 2006 07:50 
载入 TTF 字体文件大小被限制在 4096K 以内了,也就是说不能像我以前那次一样使用 win98 的 simsun.ttf 字体做试验。 
而现在符合版权需要的 fireflysung.ttf 比 simsun.ttf 还要大,有 15M。 
另外一个 wqy-bsong.ttf 只有 3M 但是文泉驿现在还只有 9,10,11,12pt 点阵字体,而且这个 ttf 的 Charset 设置有问题,在 ros 中显示为朝鲜语,而不是简体中文的 
GB2312。 
测试中文字体实际很简单,因为现在的 ros 已经可以自动遍历 media/fonts 目录,用 UltraISO 之类的编辑软件把字体放入 reactos/media/fonts 用虚拟机测试就可以。可以
使用 notepad 的字体设置对话框。 
怀疑是在 TTF 载入程序 subsystem\win32\win32k\objects\text.c 中的问题。 
里面多次出现了我经过多次测试出来的 0x4000 这个立即数(恰好有两个字体文件大小分别是 4047K 和 4131K)。 
找不到能用的中文 TTF 字体,始终不能完成中文显示的问题。。。
==========================
2009年08月20日 04点08分 7
1