感受200万行源程序
昨天有朋友提起reactos,问我怎么样调试它,幸好我还能记得起,也许是因为我对它的理解得太深了,到现在还没有忘记。在2004年那时,正跟着他们忙着去学习操作系统,并且找一个操作系统可以编译它,运行它,修改它。总之,那帮OS的朋友,总是梦想可以写自己的OS。他们也开发一个cnix出来了,还有显示中文的。而我又沉醉在OS里,后来发现reactos,而它的目的就是想让windows的程序可以运行在它上面,也就是说任何的windows程序,只要安装在它那里,就可以运行。这种操作系统,肯定是比linux更具有杀伤力。如果真有一天,可以完全跑起来的话,真是太成功的OS了。
开发现代的OS是一件很费力的事情,一般都有过百万行源程序,要想实现它,往往是耗费很多人力和物力。看一看reactos的源程序压缩包大小,就有28M这么大。源程序行数超过200万行,这么样的巨型软件,肯定是很复杂的。我在2.5G的赛扬机器里,编译它就需要30分钟,编译后总目录大小就占了2G的空间。
这么多的源程序,要想搞懂它,肯定要费很多时间和精力的。其实,也不需要全部看完它,就可以对它编程的。就看你对那部份感兴趣,就对它去了解它,然后修改和添加功能。 如果你也想编译它,就需要到http://www.reactos.org/ 网站上下载reactos0.3.0-RC1-src.zip源程序,然后再下载编译器ReactOS Build Environment 0.1-3.4.2.exe。把源程序解压C盘,然后安装编译器,就可以编译了。不像以前,没有做好的安装程序,需要解压和安装数个tar包才能编译它,现在这种方式太方便了,也降低参与人员的要求。如果解压和安装都很顺利,就可以在cmd.exe窗口里,进入源程序的顶层目录C:\reactos\SRC\0.3.0,然后运行mingw32-make.exe bootcd,就开始编译这个OS了。过30分钟后,希望你可以看到这个成功的信息。
[CDMAKE] bootcd
1: file output-i386\cd\autorun.inf
1: file output-i386\cd\icon.ico
1: file output-i386\cd\readme.txt
2: directory output-i386\cd\loader\
2: file output-i386\cd\loader\dosmbr.bin
2: file output-i386\cd\loader\ext2.bin
2: file output-i386\cd\loader\fat.bin
2: file output-i386\cd\loader\fat32.bin
2: file output-i386\cd\loader\freeldr.sys
2: file output-i386\cd\loader\isoboot.bin
2: file output-i386\cd\loader\setupldr.sys
2: directory output-i386\cd\reactos\
2: file output-i386\cd\reactos\atapi.sys
2: file output-i386\cd\reactos\blue.sys
2: file output-i386\cd\reactos\buslogic.sys
2: file output-i386\cd\reactos\cdfs.sys
2: file output-i386\cd\reactos\cdrom.sys
2: file output-i386\cd\reactos\class2.sys
2: file output-i386\cd\reactos\c_1252.nls
2: file output-i386\cd\reactos\c_437.nls
2: file output-i386\cd\reactos\disk.sys
2: file output-i386\cd\reactos\diskdump.sys
2: file output-i386\cd\reactos\floppy.sys
2: file output-i386\cd\reactos\green.sys
2: file output-i386\cd\reactos\hal.dll
2: file output-i386\cd\reactos\halmp.dll
2: file output-i386\cd\reactos\hivecls.inf
2: file output-i386\cd\reactos\hivedef.inf
2: file output-i386\cd\reactos\hivesft.inf
2: file output-i386\cd\reactos\hivesys.inf
2: file output-i386\cd\reactos\i8042prt.sys
2: file output-i386\cd\reactos\kbdclass.sys
2: file output-i386\cd\reactos\KDBinit
2: file output-i386\cd\reactos\l_intl.nls
2: file output-i386\cd\reactos\ntfs.sys
2: file output-i386\cd\reactos\ntoskrnl.exe
2: file output-i386\cd\reactos\reactos.cab
2: file output-i386\cd\reactos\reactos.exe
2: file output-i386\cd\reactos\scsiport.sys
2: file output-i386\cd\reactos\services
2: file output-i386\cd\reactos\txtsetup.sif
2: file output-i386\cd\reactos\vfatfs.sys
2: file output-i386\cd\reactos\welcome.exe
3: directory output-i386\cd\reactos\system32\
3: file output-i386\cd\reactos\system32\ntdll.dll
3: file output-i386\cd\reactos\system32\smss.exe
18,681,244 bytes in 43 files
21,092 unused bytes at ends of files
8,192 bytes in 4 directories
47,104 other bytes
-------------
18,757,632 total bytes
=============
Writing output-i386\cd\autorun.inf
Writing output-i386\cd\icon.ico
Writing output-i386\cd\readme.txt
Writing output-i386\cd\loader\dosmbr.bin
Writing output-i386\cd\loader\ext2.bin
Writing output-i386\cd\loader\fat.bin
Writing output-i386\cd\loader\fat32.bin
Writing output-i386\cd\loader\freeldr.sys
Writing output-i386\cd\loader\isoboot.bin
Writing output-i386\cd\loader\setupldr.sys
Writing output-i386\cd\reactos\atapi.sys
Writing output-i386\cd\reactos\blue.sys
Writing output-i386\cd\reactos\buslogic.sys
Writing output-i386\cd\reactos\cdfs.sys
Writing output-i386\cd\reactos\cdrom.sys
Writing output-i386\cd\reactos\class2.sys
Writing output-i386\cd\reactos\c_1252.nls
Writing output-i386\cd\reactos\c_437.nls
Writing output-i386\cd\reactos\disk.sys
Writing output-i386\cd\reactos\diskdump.sys
Writing output-i386\cd\reactos\floppy.sys
Writing output-i386\cd\reactos\green.sys
Writing output-i386\cd\reactos\hal.dll
Writing output-i386\cd\reactos\halmp.dll
Writing output-i386\cd\reactos\hivecls.inf
Writing output-i386\cd\reactos\hivedef.inf
Writing output-i386\cd\reactos\hivesft.inf
Writing output-i386\cd\reactos\hivesys.inf
Writing output-i386\cd\reactos\i8042prt.sys
Writing output-i386\cd\reactos\kbdclass.sys
Writing output-i386\cd\reactos\KDBinit
Writing output-i386\cd\reactos\l_intl.nls
Writing output-i386\cd\reactos\ntfs.sys
Writing output-i386\cd\reactos\ntoskrnl.exe
Writing output-i386\cd\reactos\reactos.cab
Writing output-i386\cd\reactos\reactos.exe
Writing output-i386\cd\reactos\scsiport.sys
Writing output-i386\cd\reactos\services
Writing output-i386\cd\reactos\txtsetup.sif
Writing output-i386\cd\reactos\vfatfs.sys
Writing output-i386\cd\reactos\welcome.exe
Writing output-i386\cd\reactos\system32\ntdll.dll
Writing output-i386\cd\reactos\system32\smss.exe
CD-ROM image made successfully
发表于 @ 2006年07月21日 19:50:00|评论(loading...)|编辑