2005年05月28日

原创 搬家了~~

决定搬家了,大家仍然可以通过 http://blog.xieyubo.cn 访问,这将是我永远的blog的地址(也许以后我还会搬家,但地址不会换了) 或者通过邮件与我联系(xieyubo@gmail.com), 不过我不能保证回复每一封邮件:)阅读全文>

发表于 @ 2005年05月28日 08:30:00|评论(loading...)|编辑

2005年04月08日

原创 《纯C论坛·电子杂志》2005.3月号(总第四期)正式发布!

CSDN电子杂志社区成员之一《纯C论坛杂志》 2005年3月号(总第4期) 目录 ----------------------------------------------------------- 卷首语 我眼中的计算机科学 王宏志 1 计算机体系结构 听大牛们谈未来的体系结构研究方向(二) 王凯峰(译) 1 操作系统 《操作系统概念》第三章——操作系统结构 吕建鹏(译) 4 Pyos中软盘驱动、DMA及文件系统的实现(上) 谢煜波 31 算法分析 车辆牌照识别系统的预处理算法 刘鹏翔 59 数据库原理 MyBase®物理存储结构的设计 赵锴 67 系统设计 设计一个十分简单的16位CPU 黄海 72 Hello China的体系结构 Garry 92 技术资料 跟我一起写Makefile 陈皓 118 论坛视点 全新的操作系统概念 纯C论坛网友 168 编辑部通讯 投稿指南 编辑部 170 勘误表 编辑部 172 ----------------------------------------阅读全文>

发表于 @ 2005年04月08日 08:36:00|评论(loading...)|编辑

2005年03月19日

原创 对脚本语言编译器的猜测~~

今天看见一个网站上面声称它的产品可以将Javascript这样的脚本语言编译成可执行文件,我对上面这样的说法持怀疑态度,因为按我所知道的编译理论来说,像javascript这样的动态类型语言是无法编译的 动态类型语言不是弱类型语言,弱类型语言是可以编译的,比如汇编语言,但动态类型语言它的语法成份的类型是动态确定的,比如javascript中,A这个变量既可以表示一个字符串,也可以表示一个数组,甚至可以表示一个函数,那么我在调用A的时候,我怎么知道我是在访问一个字符串,或者是在调用一个函数呢?这是在编译期无法确定的,因此,这是无法编译的 但上面那个软件的确可以把一个javascript做成一个exe文件,并且可以执行,我认为要达到这样的目标不一定就必须编译,比如我完全可以做一个外壳,然后把这个要编译的脚本做为资源连入我的外壳,连成一个exe文件,到时候运行时,再把这个javascript的文件释放出来,然后调用脚夫本解释器进行解释执行,其实就如同一个打包并解包的过程 遗憾的是我无法找到证据证明它是这样做的,不知大家有何高见,呵呵~~~ 阅读全文>

发表于 @ 2005年03月19日 15:37:00|评论(loading...)|编辑

2005年03月13日

原创 看完《C++代码设计与重用》了~~

这本书已经买了很久了,今天花了一天的时间把它读完了,不过老实说对这本书稍稍感觉有些失望,也许是以前常常听到它的盛名,心中期望太高的缘故吧~~ 我看的这本书是翻译过来的,除了在某些地方感觉翻译上有些生硬,看着比较费劲外,总体上感觉翻译的质量还不错,而且作者还在不少难于理解的地方加了一些自己的译注,但还是太少了点,而且有些译注只是说“在什么什么上验证通过”之类,少了点理论性质的分析。只说明了现象,而没有说明原因,难免让人觉得有些许遗憾~~。 不过在文字方面我觉得编辑就不太认真了,很多地方有错,特别是很多代码的第一个字母大写了,这显然是不应当的。 从书中内容来说,感觉太老了一点,作者是95年写的,里面的一些讨论的问题在C++标准化这么多年以后感觉已经没有什么太大的实际价值,有些问题现在是碰不见了。 本书讨论的重用远比代码的设计为多,这可能也是书的封面上“重用”两个字比较大的原因吧,但很多说法总有一种耳熟能详的感觉,也可能是这十年来这方面的内容在很多其它渠道上已经被讨论得很广泛了吧,总得感觉上是缺乏很强的新意~~ 再者,书中很多地方只说明了“这样不行”,但没有说明阅读全文>

发表于 @ 2005年03月13日 09:33:00|评论(loading...)|编辑

2005年02月01日

原创 《CSDN社区电子杂志——纯C论坛杂志》暨《纯C论坛·电子杂志》2005.1期(总第三期)发布!

下载:http://purec.binghua.com/Soft/Class2/dl_hpcem/200502/91.html ----------------------------------------------------------------------------------------------------------- 《CSDN社区电子杂志——纯C论坛杂志》暨《纯C论坛·电子杂志》2005.1期(总第三期)发布!本期电子杂志加入了CSDN社区电子杂志计划,与CSDN网站同共发布! 详情请见:http://blog.csdn.net/ccemp/archive/2005/01/31/275318.aspx 关于本期杂志的反馈,您可以在线填写我们的反馈调查表! http://survey.csdn.net/inquiry/viewinquirystep.aspx?id=74 或在纯C论坛·读者俱乐部发表意见: http://purec.binghua.com/bbs/list.asp?boardid=12 您也可以前往纯C论阅读全文>

发表于 @ 2005年02月01日 10:06:00|评论(loading...)|编辑

2004年11月30日

原创 关于pow()在printf()中用%d输出的问题

今天收到一封信,里面提出了这样一个有意思的问题 #include #include int main() { printf( "%d\n" , pow( 4 , 2 ) ) ; } 输出是0, 但是 #include #include int main() { int a = pow( 4 , 2 ) ; printf( "%d\n , a ) ; } 输出正确. why? 这个问题很有意思,其实如果把第一个程序改一下,改成 printf( "%d\n" , ( int )pow( 4 , 2 ) ) ; 那么第一个问题的输出也是正确的. 比较一下两种写法,可以发现问题是出在一个转换下,先计算pow(4,2)的值,然后再把它转换成int型的值,最后再用%d输出就正确了,这主要是因为printf()在传递参数的时候不会进行类型转换,而pow()的返回值是一个double型的值! 我们计算一下pow( 4 , 2 ),它的结果是16,然后,我们把它用 doubl阅读全文>

发表于 @ 2004年11月30日 09:51:00|评论(loading...)|编辑

2004年11月28日

原创 《纯C论坛·电子杂志》2004.11(总第2期)

《纯C论坛·电子杂志》2004.11(总第2期)正式发行! 下载:http://purec.binghua.com/Soft/Class2/dl_hpcem/200411/83.html -------------------------------------------------------------------------------- 目 录 【 卷首语 】 我心目中的程序员 赵志刚 1-2 【 计算机体系结构 】 听大牛们谈未来的体系结构研究方向(一) 王凯峰 4-6 【 操作系统 】 Linux核心(The Linux Kernel)(英汉对译)(一) 毕昕(等) 7-17 Linux核心(The Linux Kernel)(英汉对译)(二) 毕昕(等) 阅读全文>

发表于 @ 2004年11月28日 12:08:00|评论(loading...)|编辑

2004年11月16日

原创 操作系统引导探究 (Version 0.02)

本篇文章并不旨在完整的讨论一个多引导系统程序怎样去引导不同的操作系统,而只打算从编写操作系统的角度出发,谈谈计算机怎样从加电开始,从无到有,将操作系统运行起来,在其中将尽量详尽的描述从实模式到保护模式的过渡,目的只在于能将所学与广大爱好者共享,为希望开发操作系统的朋友留下一点资料,也为自己留下一点心得。 本篇文章将以开发中的pyos系统引导程序为例,pyos是一个正在开发中的实验型操作系统,它并不打算以目前任何一种运行中的操作系统为模式,而只想通过自己编写一个从头到尾的操作系统来学习知识,积累技术,如果你有兴趣,非常欢迎你的加入! 本篇纯属学习过程中的一点心得体会,如果你发现其中有错误或不当之处,非常希望你来信指教。 阅读全文>

发表于 @ 2004年11月16日 08:33:00|评论(loading...)|编辑

2004年11月05日

原创 Pyos 支持的 FAT12 文件系统~~~~

Pyos 支持的 FAT12 文件系统 这两天写了一个 pyos 使用的 fat12 文件系统驱动, 同前一个版本一样, 原生的 gui 图形界面, 它有如下一些特点: 增加了一个启动界面: 此主题相关图片如下: 启动并登陆后, 可以打开 PicSee 这个文件浏览器, 它可以根据文件类型用不同的图标显示不同类型的文件, 并可用上下按钮进行滚动: 此主题相关图片如下: 这个浏览器, 可以打开文本文件, 打开方式同你在 windows 下使用的一样, 点击文件图标就行 此主题相关图片如下: 也可以打开图片文件, 同样提供了上下左右四个方向的滚动 此主题相关图片如下: 还可以与 windows 共享文件: 此主题相关图片如下: 下面是这一版本的启动映象, 可以在 vmware, bochs, virtual pc 这三种虚拟机上启动, 注意, 你需要将虚拟机的内存, 至少设置为 8M 点击浏览该文件 过两天, 整理完代码阅读全文>

发表于 @ 2004年11月05日 09:07:00|评论(loading...)|编辑

2004年10月28日

原创 纯C论坛·电子杂志·2004.10期(总第1期)正式发行!

纯C论坛·电子杂志·2004.10期(总第1期)正式发行! 开篇 孙志岗 (目 录) 【编译原理】 工欲善其事,必先利其器——lex和yacc工具介绍 高立琦 1-6 连接器和加载器(Linkers And Loaders) 刘彦博(译) 64-78 【算法理论】 ACM/ICPC 试题解析 熊蜀光 10-16 【病毒研究】 WinXP SP2对病毒和加密技术的影响 Killer 17-22 【C与C++】 剖析Intel IA32架构下C语言及CPU浮点数机制 谢煜波 23-37 【网络安全】 Linux 下SOCK_RAW的原理和应用 肖颖 58-63 【操作系统】 操作系统引导探究(Version 0.02) 阅读全文>

发表于 @ 2004年10月28日 10:39:00|评论(loading...)|编辑

2004年10月07日

原创 让你自己的操作系统支持鼠标——做一个支持图形界面的操作系统(下)

在上篇中,我们已经了解了怎样显示一个图形界面,包括怎样操作显卡,怎样显示图片,怎样显示中文汉字及英文字符。然而,作为一个完整的图形界面,不光需要显示信息,还需要接受用户输入,而在图形界面中,最重要的输入手段就是通过鼠标进行输入,在这一篇中我们将描述一下怎么样让你自己的操作系统支持鼠标。 阅读全文>

发表于 @ 2004年10月07日 15:42:00|评论(loading...)|编辑

2004年09月24日

原创 pyos 的 GUI 界面 第 2 版

上次完成了一个最基本的图形界面,但功能很简单,不少朋友甚至认为其不过是个单片机程序,这次花了点时间,做了一个稍微复杂一点的界面, 支持 PS/2 mouse,支持 vesa 2.0,接受哈工大紫丁香SwordLea的建议,开始支持符合Windows标准的16位bmp格式,图片可以直接在windows下生成修改,然后到pyos下使用 支持标准101键盘,支持中英点阵字库,800*600 16位色显示模式~~阅读全文>

发表于 @ 2004年09月24日 20:27:00|评论(loading...)|编辑

2004年09月18日

原创 做一个支持图形界面的操作系统(上)

图形界面(GUI)几乎被现在所有的主流操作系统及应用程序使用,这是因为它提供了极好的人机交互接口,微软大名鼎鼎的Windows就是一个非常成功而明显的例子,据说微软的理念有一条就是“让电脑变得越来越傻瓜,任何人都可以操作它”,很显然,要实现这个梦想,GUI界面是必须的。 如果有操作系统的支持,编写具有图形界面的程序是一件相对来说比较容易的事情,因为操作系统为你管理显卡,为你提供了各种各样诸如画点、画线、画矩形、填充等各种图形函数,你只需要将你所希望显示的东西,通过直接调用这样一些函数生成就行了,操作系统会为你完成余下的一切。 然而,如果你打算自己从头编写一个操作系统,而没办法使用已有的操作系统所提供的便利功能的时候,又应当怎样完成这样一个图形界面呢? 本文打算继续以pyos系统为例,简单描述一下怎样让你自己的操作系统支持图形界面。如果你想更好的理解本篇的内容,你需要对操作系统的引导过程有些许了解,这可以参考一下本文的参考文献1,另外,你还需要对汇编语言有所了解,这可以参考一下本文的参考文献2。本文的实验代码由汇编及C语言完成,如果你对C语言不太阅读全文>

发表于 @ 2004年09月18日 16:48:00|评论(loading...)|编辑

2004年09月09日

原创 剖析Intel IA32架构下C语言及CPU浮点数机制

前言 这两天翻看一本C语言书的时候,发现上面有一段这样写到 例:将同一实型数分别赋值给单精度实型和双精度实型,然后打印输出。 #include main() { float a; float b; double b; a = 123456.789e4; b = 123456.789e4; printf(“%f\n%f\n”,a,b); } 运行结果如下: 1234567936.000000 1234567890.000000 为什么同一个实型数据赋值给float型变量和double型变量之后,输出的结果会有所不同呢?这是因为将一个实型常量赋值给float型变量与赋值给double型变量,它们所接受的有效数字位是不同的。 这一段的说法是正确的,但实在是太模糊了!为什么一个输出的结果会比原来的大?为什么不是比原来的小?这之间到底有没有什么内存的根本性原因还是随机发生的?为什么会出现这样的情况?上面都没有对此进行解释。上面的解释是一种最普通的解释,甚至说它只是说出了现象,而并没有很深刻的解释原因,阅读全文>

发表于 @ 2004年09月09日 10:53:00|评论(loading...)|编辑

2004年08月17日

原创 更深入一点理解switch语句及c/c++对const的处理

前段时间在论坛上看见台湾李维在>一书中对windows编程模式中,消息处理部分有如下的一些分析: 他说,在消息处理循环中,一般的形式是这样的 MSG msg ; switch( msg ){ case WM_XXXXXXX : .... case WM_XXXXXXX : .... case WM_XXXXXXX : .... } ; 李维说,这种模式是很低效的,因应经过汇编后,这种C代码会产生如下的汇编代码 cmp .... ..... jnz .... ..... cmp .... ..... jnz .... ..... cmp .... ..... jnz .... ..... 如果你的 case 足够多,比如,你有一万条消息需要处理,而不幸的是你把一条最常用的消息 放在了最后一位,那么当这条消息要得到处阅读全文>

发表于 @ 2004年08月17日 10:39:00|评论(loading...)|编辑

Csdn Blog version 3.1a
Copyright © 潇寒