<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/aero_boy" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/aero_boy" type="application/rss+xml"></fs:self_link><lastBuildDate>Fri, 13 Mar 2009 14:45:00 GMT</lastBuildDate><title>欢迎来到牛棚</title><description>一个可以撒野的地方</description><link>http://blog.csdn.net/aero_boy/</link><item><title>QT的编译</title><link>http://blog.csdn.net/aero_boy/archive/2009/03/13/3987586.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3987586.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3987586.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3987586</trackback:ping><description>&lt;br /&gt;编译QT       QT的编译总的来说还是比较简单方便的,运行configure就能生成Makefile.下次说一下一些特殊的地方.Window下的编译:        QT默认是不定义wchar_t类型的, 在VC中编译时, 可修改mkspecs\win32-msvcXXXX目录下的编译配置文件qmake.conf.  为QMAKE_CFLAGS配置项添加或修改-Zc:wchar_t  ;否则会出现Qt4中采用了  wchar_t的函数不能够接受没有-Zc:wchar_t选项下的wchar_t类型,  程序连接时会有QString下的一些函数不能连接的问题.Mac OS X 下的QT发布        在发布应用程序时,可以选择是将QT库发布到系统目录(多个QT应用共享一个库,节约内存),还是应用程序目录(多个QT版本库并存):&lt;br /&gt;        Mac OS的应用程序发布(deployment-mac.html):               １) 使用otool查看程序依赖那些库；&lt;br /&gt;                    拷贝依赖的Framewor&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3987586.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 13 Mar 2009 22:45:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/03/13/3987586.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/03/13/3987586.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Meta-Object,信号和槽</title><link>http://blog.csdn.net/aero_boy/archive/2009/03/02/3950124.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3950124.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3950124.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3950124</trackback:ping><description>Meta-Object,信号和槽
         Qt成功能一个主要的方面就是对 C++的扩展, 使之能把彼此独立的软件模块连接起来，而不需要模块间
     的任何细节。这就是元对象模型(Meta-Objecct Model)系统, 它提供了两个关键的特性: 信号/槽和内省
     (introspection), 内省功能允许程序在运行时能得到QObject子类的元信息(meta-information), 其中包

     含了全部信号和槽列表, 类名字,属性, 内容相关的文本翻译支持, 它以是构成QSA的基础.&lt;br /&gt;
         这个机制的工作过程如下:&lt;br /&gt;
           ● Q_OBJECT声明了一些QObject子类必须实现的内省函数:metaObject(),TR(),qt_metacall()等

           ●  Qt的moc工具实现Q_OBJECT宏声明的函数和所有的信号.

           ●  QObject成员函数connect()和disconnect()使用这些内省函数实现信号和槽的连&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3950124.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Tue, 03 Mar 2009 00:35:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/03/02/3950124.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/03/02/3950124.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>QT4的新特性</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/27/3941915.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3941915.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3941915.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3941915</trackback:ping><description>年以前使用过QT3, 现在新项目需要使用QT, 又重新开始QT的学习, QT4相对3还是有很多变化的,特别是增加了很多工具库.  QT不愧为一套优秀的开发库, 现在的QT已不仅仅只是界面库, 非界面的底层功能QT以有很多的支持.&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3941915.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Fri, 27 Feb 2009 19:13:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/27/3941915.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/27/3941915.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Write Your Own Operating System Tutorial（中文版） -  Lesson 6: Boot Loader</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868285.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3868285.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3868285.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3868285</trackback:ping><description>&lt;br /&gt; Lesson 6: Boot Loader&lt;br /&gt;&lt;br /&gt;    到现在为止，我们所做的都被限制在引导扇区里面。如果我们的操作系统只能容纳在一个扇区里，那它绝对大不了。我们需要有个方法来拓展。我们将通过写一个程序来读取并且运行一个可执行文件，以达到这个目标。这个程序称为boot loader。我们希望读取的那个程序的大小可以随我们的希望而定，因为它不再受一个扇区大小的限制了。&lt;br /&gt;&lt;br /&gt;这将比我们已经完成的工作都要难。在FAT文件系统中指定一个参考点可能是个好主意（你有可能正使用其他文件系统，不过假定你使用FAT）。我将简单介绍一下启动加载过程。&lt;br /&gt;&lt;br /&gt;一张软盘依次包含下面的部分：DOS的引导记录（我们已经在上面忙活了半天的那第一个扇区），文件分配表（FAT），根目录，然后是磁盘上的文件。（硬盘的话更复杂一点，它包含一个主引导记录Master Boot Record和多个分区。）设想我们现在已经写好了操作系统，编译并且命名为LOADER.BIN，然后把它复制到磁盘上。boot loader将如下所示的加载它。&lt;br /&gt;&lt;br /&gt;DO&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3868285.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 08 Feb 2009 19:13:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868285.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/08/3868285.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Write Your Own Operating System Tutorial（中文版） -Lesson 5: 动起来！</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868283.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3868283.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3868283.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3868283</trackback:ping><description>&lt;br /&gt; Lesson 5: 动起来！&lt;br /&gt;&lt;br /&gt;在屏幕上打印点东西是够乐的，但是如果操作系统一点都不能互动的话，还远不够好。让我们试着让它从键盘读取输入。我们将再一次使用BIOS的函数，来读取键盘。&lt;br /&gt;&lt;br /&gt;我们将使用0x16号中断的0号函数。用下面两条指令就可以完成了。&lt;br /&gt;&lt;br /&gt;     xor  ah, ah    ; we want function zero&lt;br /&gt;&lt;br /&gt;     int  0x16 ; wait for a keypress&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这个函数将使计算机暂停，直到有键被按下时才返回。这可以用在“Press any key to continue”时，或者其他你想得到用户输入的时候。被按下德那个键的扫描值存储在AH寄存器中，而 ASCII码被保存在AL中。&lt;br /&gt;&lt;br /&gt;这节课的作业就是写一个简单的启动程序来做一些交互工作。可以是在用户按下什么键的时候打印一条消息，或者是让用户自由输入，并且在屏幕上显示输入了点什么。&lt;br /&gt;&lt;br /&gt;如果你遇到困难，这里是&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3868283.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 08 Feb 2009 19:12:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868283.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/08/3868283.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Write Your Own Operating System Tutorial（中文版）-  Lesson 4: Hello, World</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868281.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3868281.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3868281.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3868281</trackback:ping><description>&lt;br /&gt; Lesson 4: Hello, World&lt;br /&gt;&lt;br /&gt;     你等待已久的时刻终于来临。写我们“第一个”程序已经是时候了。每一本像样的程序设计书籍都会有一个“Hello, World”程序，现在我们了解的足够多，可以写一个“Hello, World”操作系统了。如果你做过一些尝试已经完成这一步了，你可以跳过这一课。我们将创建一个输出字符串的函数并且用它来显示我们的消息。&lt;br /&gt;&lt;br /&gt;每次在屏幕上打印一个字符实在够呛。所以我们要写一个函数来打印一个以零结尾的字符串。这将是一个循环，每次打印一个字符，直到结束。&lt;br /&gt;&lt;br /&gt;; ---------------------------------------------&lt;br /&gt;&lt;br /&gt;; Print a null-terminated string on the screen&lt;br /&gt;&lt;br /&gt;; ---------------------------------------------&lt;br /&gt;&lt;br /&gt;putstr:&lt;br /&gt;&lt;br /&gt;     lodsb       &lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3868281.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 08 Feb 2009 19:11:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868281.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/08/3868281.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Write Your Own Operating System Tutorial（中文版）-  Lesson 3: NASM</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868278.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3868278.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3868278.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3868278</trackback:ping><description>&lt;br /&gt; Lesson 3: NASM&lt;br /&gt;&lt;br /&gt;    这节课我们将学着用一个汇编语言编译器来写我们的程序。前几课里我们使用的是DEBUG。把玩过这些之后，你很快就会发现用DEBUG来编写哪怕是一小段指令都是非常痛苦的（改起来更难）。我们需要简单的方法。我们将从使用“Netwide Assembler”（NASM）开始。去它的官方网站http://www.octium.net/nasm/，你能得到一份编译器。&lt;br /&gt;&lt;br /&gt;    现在我们将借助这个编译器，来创建和我们在Lesson 2末尾一样的操作系统。下载启动程序h.asm并且仔细看一看。第一条指令应该还算熟悉。这是跳过引导记录数据的指令。在这里，它跳到标号begin处。在跳转指令后面是20字节的数据。这是我用DEBUG从我磁盘上读到的。这些值应该可以用。如果你愿意，你也可以用你磁盘上的数据来替换它们。它们中的大多数可能是一样的。&lt;br /&gt;&lt;br /&gt;（注意：在DEBUG中，一个字节以上的数据在显示时是颠倒的。因为在INTEL架构中，低字节存储在低地址，反之亦然。所以字节看上去是倒的。）&lt;br /&gt;&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3868278.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 08 Feb 2009 19:08:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868278.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/08/3868278.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Write Your Own Operating System Tutorial（中文版） - Lesson 2: 着手我们第一张启动盘</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868274.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3868274.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3868274.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3868274</trackback:ping><description>&lt;br /&gt; Lesson 2: 着手我们第一张启动盘&lt;br /&gt;&lt;br /&gt;这一课，我们将学习如何在软盘上做一个启动程序。我们将从修改Microsoft DOS Boot Record开始。&lt;br /&gt;&lt;br /&gt;对于我们来说，我们想做的是替换掉boot loader的代码而不改动启动扇区的其他数据。如果我们把那些数据修改成无效的东西，DOS和WINDOWS认不出这张盘了。WINDOWS会给出提示信息说这张软盘尚未格式化，于是你将不能访问盘上的文件。但是，我们可以把启动程序的代码改成我们想要的样子，只要我们不去碰其它数据，DOS和Windows仍将能够读写盘上的文件。&lt;br /&gt;&lt;br /&gt;我们将留下第一条指令（jmp 0x3E），因为我们需要跳过那些引导记录的数据。所以我们可以从0x3E开始我们的修改。运行DOS的DEBUG程序，把软盘上的第一个扇区加载到以0开始的内存，然后输入：&lt;br /&gt;&lt;br /&gt;-u 3E&lt;br /&gt;&lt;br /&gt;察看那里的指令。现在我们可以来修改了。输入命令：&lt;br /&gt;&lt;br /&gt;-a 3E&lt;br /&gt;&lt;br /&gt;来开始加入汇编代码。提示符从连接线变成了&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3868274.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 08 Feb 2009 19:05:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868274.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/08/3868274.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Write Your Own Operating System Tutorial（中文版） - Lesson 1: 引导扇区</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868271.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3868271.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3868271.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3868271</trackback:ping><description>&lt;br /&gt;Lesson 1: 引导扇区&lt;br /&gt;&lt;br /&gt;这一课我们将学习引导扇区的知识，这样我们就能写一个我们自己的引导程序了。&lt;br /&gt;&lt;br /&gt;当计算机从软盘引导时， BIOS (Basic Input/Output System)将磁盘的第一个扇区读入以0000:7C00开始的内存。这个扇区称为DOS Boot Record (DBR)。然后，BIOS跳转到0x7C00开始执行那里的指令。正是那些指令(即“boot loader”)将把OS加载到内存中，并且开始启动处理。&lt;br /&gt;&lt;br /&gt;我们要做的第一件事情是仔细看一看Boot Record。DOS的工具DEBUG非常有用，我们常常用它来查看内存或着是磁盘的内容。同样，我们将用DEBUG来看看软盘的Boot Record。&lt;br /&gt;&lt;br /&gt;在DOS (或者Windows)的命令行方式下输入debug。于是提示符变成了连接线。如果你输入命令‘d’加上一个回车，它将显示一块内存的内容。如果你输入一个问号，将显示在DEBUG中可用的命令。(请仔细使用DEBUG。它可以用来覆盖磁盘上的内容，这有可能导致数据的丢失&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3868271.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 08 Feb 2009 19:04:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868271.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/08/3868271.aspx</guid><dc:creator>老牛</dc:creator></item><item><title>Write Your Own Operating System Tutorial（中文版） -  简介</title><link>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868251.aspx</link><wfw:comment>http://blog.csdn.net/aero_boy/comments/3868251.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/aero_boy/comments/commentRss/3868251.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3868251</trackback:ping><description>&lt;br /&gt;操作系统实作入门&lt;br /&gt;&lt;br /&gt;首先说说我们用到的工具。&lt;br /&gt;     既然要写操作系统，必不可少的就是需要汇编语言的编译器。如果你一时找不到tasm，masm等年头已久的东西，你可以试试nasm(netwide assembler)，这是一个开源软件，你可以在http://sourceforge.net/projects/nasm下载到它。&lt;br /&gt;    另外，如果你不想一次又一次的重启来调试你的程序的话，你可能需要一个模拟器，来模拟x86的环境，在http://bochs.sourceforge.net/getcurrent.html，你可以下载到bochs。它能够模拟出一台计算机，包括cpu，内存，基本I/O设备等等。&lt;br /&gt;    下载并解压缩bochs后，你可以在它的目录中找到一个名为bximage.exe的程序，这个程序可以为我们创建磁盘镜像文件，我们可以在这些磁盘镜像文件上尝试我们的操作系统，而不必实际改动我们的硬盘或是软盘上的数据，毕竟，在没有实际把握之前，我们不愿意给我们的计算机带来什么不可恢复的伤害。&lt;br /&gt;    下面的表格显&lt;img src =&quot;http://blog.csdn.net/aero_boy/aggbug/3868251.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;</description><pubDate>Sun, 08 Feb 2009 18:50:00 +0800</pubDate><author>老牛</author><comments>http://blog.csdn.net/aero_boy/archive/2009/02/08/3868251.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/aero_boy/archive/2009/02/08/3868251.aspx</guid><dc:creator>老牛</dc:creator></item></channel></rss>