<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[activesys的专栏]]></title><description><![CDATA[学习，成长，分享]]></description><link>https://blog.youkuaiyun.com/activesys</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; activesys]]></copyright><item><title><![CDATA[国外程序员整理的 C++ 资源大全]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/40506489</link><guid>https://blog.youkuaiyun.com/activesys/article/details/40506489</guid><author>activesys</author><pubDate>Mon, 27 Oct 2014 13:44:02 +0800</pubDate><description><![CDATA[http://www.youkuaiyun.com/article/2014-10-24/2822269-c++]]></description><category></category></item><item><title><![CDATA[linux内核学习资料收集]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/25008441</link><guid>https://blog.youkuaiyun.com/activesys/article/details/25008441</guid><author>activesys</author><pubDate>Sun, 04 May 2014 23:21:32 +0800</pubDate><description><![CDATA[linux-0.12

http://blog.sina.com.cn/s/articlelist_1677600520_4_1.html]]></description><category></category></item><item><title><![CDATA[系统，软件，程序]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/20774781</link><guid>https://blog.youkuaiyun.com/activesys/article/details/20774781</guid><author>activesys</author><pubDate>Sat, 08 Mar 2014 13:28:46 +0800</pubDate><description><![CDATA[缘由是读了一篇林仕鼎的文章：
http://www.youkuaiyun.com/article/2013-05-09/2815212-LinShiDing_architecture
对系统，软件和程序之间的区别和联系还不是很清楚，想进一步理清这些概念，同时要考虑一下各种技术要如何映射到各个层面。
http://qing.blog.sina.com.cn/u/2244218960]]></description><category></category></item><item><title><![CDATA[程序员10大境界]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/20773615</link><guid>https://blog.youkuaiyun.com/activesys/article/details/20773615</guid><author>activesys</author><pubDate>Sat, 08 Mar 2014 12:40:49 +0800</pubDate><description><![CDATA[作者简介：周伟明先生毕业于上海交通大学，1994年开始 从事专业软件开发，曾工作于美国加州硅谷的DASCOM Inc公司（现为IBM的全资子公司）和华为技术有限公司等企业。在网络安全软件、服务端软件、机器翻译软件、工具软件、嵌入式系统等领域都拥有丰富的专 业实践经验。近年来周伟明先生潜心研究多核编程技术，于2006年编著出版了国内第一本专门研究多任务情况下数据结构与算法的专著，获得业界的好评。此后]]></description><category></category></item><item><title><![CDATA[8259A]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/17426609</link><guid>https://blog.youkuaiyun.com/activesys/article/details/17426609</guid><author>activesys</author><pubDate>Mon, 23 Dec 2013 21:28:26 +0800</pubDate><description><![CDATA[8259A






中断响应






命令字






例子






参考]]></description><category></category></item><item><title><![CDATA[Protection 6 ---- Page-Level Protection]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/17101453</link><guid>https://blog.youkuaiyun.com/activesys/article/details/17101453</guid><author>activesys</author><pubDate>Thu, 05 Dec 2013 14:39:35 +0800</pubDate><description><![CDATA[页级别的保护类型




#PF异常




例子






参考]]></description><category></category></item><item><title><![CDATA[PAE Paging]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/16830501</link><guid>https://blog.youkuaiyun.com/activesys/article/details/16830501</guid><author>activesys</author><pubDate>Wed, 20 Nov 2013 21:53:45 +0800</pubDate><description><![CDATA[PAE Paging与32-Bit Paging的区别
PAE Paging与32-Bit Paging的不同点在于PAE Paging可将32-Bit的线性地址转换成最高52位的物理地址，不过受到线性地址宽度的限制，最高可访问的线性地址空间还是4G。还有就是PAE Paging使用4个PDPTE寄存器进行地址转换，CR3寄存器保存这4个PDPTE寄存器的物理地址。这样在地址转换时可以使用更多的]]></description><category></category></item><item><title><![CDATA[做技术最常见的两种心态]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/16842631</link><guid>https://blog.youkuaiyun.com/activesys/article/details/16842631</guid><author>activesys</author><pubDate>Wed, 20 Nov 2013 13:11:35 +0800</pubDate><description><![CDATA[今天读到小说《成交》的时候其中的一段话我觉得很受用，记录下来警示自己：
    “我们做技术的，最常见的有两种心态：第一就是怀才不遇。我们聪明，智商也很高，有本事，也有能力，却无法清楚的表达自己，也不爱表达，我们更注重的是不停的吸收知识，却不懂输出自己的能力。时间一长，因为得不到别人的认可，最后一个个变成孤独的英雄。”
    “第二种是追求完美。总是从自己的技术角度出发，事事追求完美，有着改]]></description><category></category></item><item><title><![CDATA[32-Bit Paging]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/15334429</link><guid>https://blog.youkuaiyun.com/activesys/article/details/15334429</guid><author>activesys</author><pubDate>Mon, 11 Nov 2013 14:57:20 +0800</pubDate><description><![CDATA[分页
分页是将线性地址转换成物理地址的机制，当关闭分页的时候线性地址直接映射成物理地址，开启分页之后线性地址要经过一系列的转换才能获得物理地址。分页的好处很多，有了分页，OS可以对页面进行调度，这样OS可以实现虚拟内存以及多任务。
将线性地址转换成物理地址的过程中主要关心下面这些方面：


线性地址宽度。物理地址宽度。页大小。访问权限。被缓存的能力。

Intel CPU支持很多种分]]></description><category></category></item><item><title><![CDATA[多线程中的资源释放]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/14522277</link><guid>https://blog.youkuaiyun.com/activesys/article/details/14522277</guid><author>activesys</author><pubDate>Fri, 08 Nov 2013 16:19:39 +0800</pubDate><description><![CDATA[代码中的问题
最近在写多线程的代码，这段程序虽然不要求像服务器软件一样不间断的长期运行，但是运行的时间也可能达到数天。这段代码的功能大概是一个线程A负责分配一块内存，然后填充数据，交给另一个线程B进行处理，线程B处理之后将内存释放。功能很简单，但是问题出现了，测试的时候发现内存持续增长，没有下降的迹象(就好象内存从来没有被释放一样)，使用valgrind这样的工具检查居然没有发现内存泄漏，真是奇]]></description><category></category></item><item><title><![CDATA[Protection 5 ---- Priviliege Level Checking 2]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/10490371</link><guid>https://blog.youkuaiyun.com/activesys/article/details/10490371</guid><author>activesys</author><pubDate>Thu, 29 Aug 2013 16:31:33 +0800</pubDate><description><![CDATA[CPU不仅仅在程序访问数据段和堆栈段的时候进行权限级别检查，当程序控制权转换的时候也会进行权限级别检查。程序控制权转换的情况很多，各种情况下检查的方式以及涉及到的检查项都是不同的。这篇文章主要描述了各种代码控制权转换过程中涉及到的各种检查并且配以相应的示例，示例代码是根据《Task》中的代码修改的，托管在https://github.com/activesys/learning_cpu/tree/]]></description><category></category></item><item><title><![CDATA[Protection 4 ---- Priviliege Level Checking 1]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/10361203</link><guid>https://blog.youkuaiyun.com/activesys/article/details/10361203</guid><author>activesys</author><pubDate>Tue, 27 Aug 2013 14:49:29 +0800</pubDate><description><![CDATA[特权级
为了提供保护，CPU识别4个特权级，0~3级，数字越小表示的特权级越高，数字越大表示的特权级越小。


访问数据段时候的特权级检查




示例




加载SS寄存器时的特权级检查




参考]]></description><category></category></item><item><title><![CDATA[Task]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/10285181</link><guid>https://blog.youkuaiyun.com/activesys/article/details/10285181</guid><author>activesys</author><pubDate>Sun, 25 Aug 2013 20:53:02 +0800</pubDate><description><![CDATA[CPU通过任务管理的方式提供了基于硬件的多任务，为了实现多任务CPU提供了一下额外的数据结构和寄存器。这篇文章并不打算详细的介绍任务管理的结构和原理，因为Intel官方文档关于任务管理的章节描写的非常清楚，我只是想通过一个例子来理解整个任务管理的机制。


任务管理结构
多任务就是要实现多个任务之间的并行之行，就会涉及到任务之间的切换，既然要切换就要保证任务在切换回来之后还能够顺利的继续执]]></description><category></category></item><item><title><![CDATA[Protection 3 ---- Type Checking]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/10105187</link><guid>https://blog.youkuaiyun.com/activesys/article/details/10105187</guid><author>activesys</author><pubDate>Tue, 20 Aug 2013 18:39:36 +0800</pubDate><description><![CDATA[CPU的保护机制不仅仅表现在对于表限和段限的检查，还要进行各种各样的Type Cheking。类型检查的种类繁多，检查的时机以及涉及到的结构和寄存器也很多，这篇文章中仅仅介绍以前学习过的结构和寄存器的检查，像LDT，TSS这样的结构和寄存器的检查会在后面继续学习。
CPU在不同的时机进行类型检查，这些时机主要有：


将段选择子加载到段寄存器中指令通过段寄存器访问段运行一个带有段选择子的操]]></description><category></category></item><item><title><![CDATA[Protection 2 ---- Limit Checking]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/10062697</link><guid>https://blog.youkuaiyun.com/activesys/article/details/10062697</guid><author>activesys</author><pubDate>Mon, 19 Aug 2013 21:48:34 +0800</pubDate><description><![CDATA[这篇文章中主要描述了CPU在运行过程中对于表限和段限的检查，这里描述检查机制都是在相同权限级别条件下进行的，这里的示例代码都运行在ring 0下。文章中并没有给出全部的代码，只是给出了关键的部分，这些代码都是根据上篇文章《Protection 1》中的代码修改的，同样这篇文章中涉及到的代码也都托管在github上，可以到https://github.com/activesys/learning_c]]></description><category></category></item><item><title><![CDATA[Learning CPU]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/10028903</link><guid>https://blog.youkuaiyun.com/activesys/article/details/10028903</guid><author>activesys</author><pubDate>Sat, 17 Aug 2013 16:52:54 +0800</pubDate><description><![CDATA[这是Learning CPU系列文章的开篇，这些文章是为了学习Intel CPU的体系结构及编程，记录学习历程、遇到的问题、心得与体会等。文章中涉及到的代码全部开源，托管在github上https://github.com/activesys/learning_cpu/tree/master/x86。]]></description><category></category></item><item><title><![CDATA[Protection 1]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/10023171</link><guid>https://blog.youkuaiyun.com/activesys/article/details/10023171</guid><author>activesys</author><pubDate>Sat, 17 Aug 2013 16:23:37 +0800</pubDate><description><![CDATA[保护模式下CPU会对其资源和运行的程序进行保护，当发现违规行为的时候产生异常，这篇文章的目的是为后续学习保护机制搭建一个代码的框架。CPU的保护机制很复杂，保护的内容也很多，我们通过研究每种保护机制来学习它，这篇文章中的代码提供了这样的一个代码框架，在后续的保护机制学习的时候可以修改相应的代码来验证不同的保护机制。


中断和异常处理程序
为了实现保护机制，CPU在执行的过程中会对各种指令]]></description><category></category></item><item><title><![CDATA[Switching to Protected-Mode]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/9952309</link><guid>https://blog.youkuaiyun.com/activesys/article/details/9952309</guid><author>activesys</author><pubDate>Tue, 13 Aug 2013 23:23:09 +0800</pubDate><description><![CDATA[保护模式的作用
实模式下CPU只提供了部分资源和功能供我们使用，但是在保护模式下CPU的全部资源和功能都可以供我们使用，同时CPU还提供了对于不同内存段的基于权限级别的保护方式，这样代码运行起来更安全，寻址方面，保护模式下可以寻址4G的地址空间。


保护模式下的分段管理
保护模式下也采用分段管理的方式将逻辑地址转换成线性地址，但是分段管理的基址是不同的，保护模式的分段管理更复杂，下面一]]></description><category></category></item><item><title><![CDATA[Real-Address Mode]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/9831449</link><guid>https://blog.youkuaiyun.com/activesys/article/details/9831449</guid><author>activesys</author><pubDate>Thu, 08 Aug 2013 15:20:53 +0800</pubDate><description><![CDATA[当Intel CPU启动或者RESET#引脚有效的时候就进入了实地址模式或者叫实模式(Real-Address Mode)。实模式是Intel 8086/8088的运行模式，所以这种模式下的使用的资源是受限的，例如使用20位的地址总线寻址1M的地址空间等等。


实模式下的执行环境
实模式下CPU提供的执行环境包括：


支持1M的物理地址空间。8位或者16位的操作数。8个16位的通]]></description><category></category></item><item><title><![CDATA[Learning MBR]]></title><link>https://blog.youkuaiyun.com/activesys/article/details/9354841</link><guid>https://blog.youkuaiyun.com/activesys/article/details/9354841</guid><author>activesys</author><pubDate>Fri, 19 Jul 2013 00:20:06 +0800</pubDate><description><![CDATA[PC启动过程
BIOS中断
BIOS内存布局

BIOS中断大全

openbios

gas/nasm对比
gas和nasm语法比较

gas和nasm语法比较中文版

用dd命令写磁盘
实例


遇到的问题
gas生成了带elf格式的输出，但是实际需要的无格式的二进制文件。
as生成的.o文件是带有elf格式，要是用objcopy -O binary 提取]]></description><category></category></item></channel></rss>