自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

activesys的专栏

学习,成长,分享

  • 博客(21)
  • 收藏
  • 关注

转载 国外程序员整理的 C++ 资源大全

http://www.csdn.net/article/2014-10-24/2822269-c++

2014-10-27 13:44:02 399

原创 linux内核学习资料收集

linux-0.12http://blog.sina.com.cn/s/articlelist_1677600520_4_1.html

2014-05-04 23:21:32 465

原创 系统,软件,程序

缘由是读了一篇林仕鼎的文章:http://www.csdn.net/article/2013-05-09/2815212-LinShiDing_architecture对系统,软件和程序之间的区别和联系还不是很清楚,想进一步理清这些概念,同时要考虑一下各种技术要如何映射到各个层面。http://qing.blog.sina.com.cn/u/2244218960

2014-03-08 13:28:46 458

转载 程序员10大境界

作者简介:周伟明先生毕业于上海交通大学,1994年开始 从事专业软件开发,曾工作于美国加州硅谷的DASCOM Inc公司(现为IBM的全资子公司)和华为技术有限公司等企业。在网络安全软件、服务端软件、机器翻译软件、工具软件、嵌入式系统等领域都拥有丰富的专 业实践经验。近年来周伟明先生潜心研究多核编程技术,于2006年编著出版了国内第一本专门研究多任务情况下数据结构与算法的专著,获得业界的好评。此后

2014-03-08 12:40:49 1115

原创 8259A

8259A中断响应命令字例子参考

2013-12-23 21:28:26 7604 2

原创 Protection 6 ---- Page-Level Protection

页级别的保护类型#PF异常例子参考

2013-12-05 14:39:35 1209

原创 PAE Paging

PAE Paging与32-Bit Paging的区别PAE Paging与32-Bit Paging的不同点在于PAE Paging可将32-Bit的线性地址转换成最高52位的物理地址,不过受到线性地址宽度的限制,最高可访问的线性地址空间还是4G。还有就是PAE Paging使用4个PDPTE寄存器进行地址转换,CR3寄存器保存这4个PDPTE寄存器的物理地址。这样在地址转换时可以使用更多的

2013-11-20 21:53:45 2310

原创 做技术最常见的两种心态

今天读到小说《成交》的时候其中的一段话我觉得很受用,记录下来警示自己:    “我们做技术的,最常见的有两种心态:第一就是怀才不遇。我们聪明,智商也很高,有本事,也有能力,却无法清楚的表达自己,也不爱表达,我们更注重的是不停的吸收知识,却不懂输出自己的能力。时间一长,因为得不到别人的认可,最后一个个变成孤独的英雄。”    “第二种是追求完美。总是从自己的技术角度出发,事事追求完美,有着改

2013-11-20 13:11:35 1087

原创 32-Bit Paging

分页分页是将线性地址转换成物理地址的机制,当关闭分页的时候线性地址直接映射成物理地址,开启分页之后线性地址要经过一系列的转换才能获得物理地址。分页的好处很多,有了分页,OS可以对页面进行调度,这样OS可以实现虚拟内存以及多任务。将线性地址转换成物理地址的过程中主要关心下面这些方面:线性地址宽度。物理地址宽度。页大小。访问权限。被缓存的能力。Intel CPU支持很多种分

2013-11-11 14:57:20 1464

原创 多线程中的资源释放

代码中的问题最近在写多线程的代码,这段程序虽然不要求像服务器软件一样不间断的长期运行,但是运行的时间也可能达到数天。这段代码的功能大概是一个线程A负责分配一块内存,然后填充数据,交给另一个线程B进行处理,线程B处理之后将内存释放。功能很简单,但是问题出现了,测试的时候发现内存持续增长,没有下降的迹象(就好象内存从来没有被释放一样),使用valgrind这样的工具检查居然没有发现内存泄漏,真是奇

2013-11-08 16:19:39 2765

原创 Protection 5 ---- Priviliege Level Checking 2

CPU不仅仅在程序访问数据段和堆栈段的时候进行权限级别检查,当程序控制权转换的时候也会进行权限级别检查。程序控制权转换的情况很多,各种情况下检查的方式以及涉及到的检查项都是不同的。这篇文章主要描述了各种代码控制权转换过程中涉及到的各种检查并且配以相应的示例,示例代码是根据《Task》中的代码修改的,托管在https://github.com/activesys/learning_cpu/tree/

2013-08-29 16:31:33 858

原创 Protection 4 ---- Priviliege Level Checking 1

特权级为了提供保护,CPU识别4个特权级,0~3级,数字越小表示的特权级越高,数字越大表示的特权级越小。访问数据段时候的特权级检查示例加载SS寄存器时的特权级检查参考

2013-08-27 14:49:29 841

原创 Task

CPU通过任务管理的方式提供了基于硬件的多任务,为了实现多任务CPU提供了一下额外的数据结构和寄存器。这篇文章并不打算详细的介绍任务管理的结构和原理,因为Intel官方文档关于任务管理的章节描写的非常清楚,我只是想通过一个例子来理解整个任务管理的机制。任务管理结构多任务就是要实现多个任务之间的并行之行,就会涉及到任务之间的切换,既然要切换就要保证任务在切换回来之后还能够顺利的继续执

2013-08-25 20:53:02 1015

原创 Protection 3 ---- Type Checking

CPU的保护机制不仅仅表现在对于表限和段限的检查,还要进行各种各样的Type Cheking。类型检查的种类繁多,检查的时机以及涉及到的结构和寄存器也很多,这篇文章中仅仅介绍以前学习过的结构和寄存器的检查,像LDT,TSS这样的结构和寄存器的检查会在后面继续学习。CPU在不同的时机进行类型检查,这些时机主要有:将段选择子加载到段寄存器中指令通过段寄存器访问段运行一个带有段选择子的操

2013-08-20 18:39:36 765

原创 Protection 2 ---- Limit Checking

这篇文章中主要描述了CPU在运行过程中对于表限和段限的检查,这里描述检查机制都是在相同权限级别条件下进行的,这里的示例代码都运行在ring 0下。文章中并没有给出全部的代码,只是给出了关键的部分,这些代码都是根据上篇文章《Protection 1》中的代码修改的,同样这篇文章中涉及到的代码也都托管在github上,可以到https://github.com/activesys/learning_c

2013-08-19 21:48:34 878

原创 Learning CPU

这是Learning CPU系列文章的开篇,这些文章是为了学习Intel CPU的体系结构及编程,记录学习历程、遇到的问题、心得与体会等。文章中涉及到的代码全部开源,托管在github上https://github.com/activesys/learning_cpu/tree/master/x86。

2013-08-17 16:52:54 420

原创 Protection 1

保护模式下CPU会对其资源和运行的程序进行保护,当发现违规行为的时候产生异常,这篇文章的目的是为后续学习保护机制搭建一个代码的框架。CPU的保护机制很复杂,保护的内容也很多,我们通过研究每种保护机制来学习它,这篇文章中的代码提供了这样的一个代码框架,在后续的保护机制学习的时候可以修改相应的代码来验证不同的保护机制。中断和异常处理程序为了实现保护机制,CPU在执行的过程中会对各种指令

2013-08-17 16:23:37 957

原创 Switching to Protected-Mode

保护模式的作用实模式下CPU只提供了部分资源和功能供我们使用,但是在保护模式下CPU的全部资源和功能都可以供我们使用,同时CPU还提供了对于不同内存段的基于权限级别的保护方式,这样代码运行起来更安全,寻址方面,保护模式下可以寻址4G的地址空间。保护模式下的分段管理保护模式下也采用分段管理的方式将逻辑地址转换成线性地址,但是分段管理的基址是不同的,保护模式的分段管理更复杂,下面一

2013-08-13 23:23:09 1082

原创 Real-Address Mode

当Intel CPU启动或者RESET#引脚有效的时候就进入了实地址模式或者叫实模式(Real-Address Mode)。实模式是Intel 8086/8088的运行模式,所以这种模式下的使用的资源是受限的,例如使用20位的地址总线寻址1M的地址空间等等。实模式下的执行环境实模式下CPU提供的执行环境包括:支持1M的物理地址空间。8位或者16位的操作数。8个16位的通

2013-08-08 15:20:53 1198

原创 Learning MBR

PC启动过程BIOS中断BIOS内存布局BIOS中断大全openbiosgas/nasm对比gas和nasm语法比较gas和nasm语法比较中文版用dd命令写磁盘实例遇到的问题gas生成了带elf格式的输出,但是实际需要的无格式的二进制文件。as生成的.o文件是带有elf格式,要是用objcopy -O binary 提取

2013-07-19 00:20:06 883

原创 STL源码阅读 -- basic_string

概述平时使用stl的basic_string和string的时候都包含的是string这个文件,这个文件在/usr/include/c++/4.4.4/ 目录中,这个文件只是包含了实现basic_string和string时所需要的所有文件,basic_string和string 的代码主要在bits/basic_string.h和bits/basic_string.tcc两个文件中实现。

2013-06-14 15:29:01 1778

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除