自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进击的小学生

To be or not to be, this is a question.

  • 博客(19)
  • 资源 (10)
  • 论坛 (1)
  • 收藏
  • 关注

原创 0-linux 环境编程修炼指南——外功心法

学习交流群: Linux 环境编程 610441700说明:本系列文章并不能取代 《APUE》这本旷世之作,文章中难免有错误与不足之处,希望读者们遇到有疑问的地方可以加群互相交流,共同进步。写这一系列文章的目的有三个:一是为了提升自己对 Linux 的理解,二是锻炼自己能够把知识点讲清楚,三是希望能更好的帮助基础薄弱的同学能够在学习 APUE。建议学习时间:大于 3 个月...

2016-10-09 20:26:21 30393 16

转载 C++虚函数和虚继承浅析

来源:http://www.cnblogs.com/xien7/archive/2013/03/12/2954364.html本文针对C++里的虚函数,虚继承表现和原理进行一些简单分析,有不对的地方请指出。下面都是以VC2008编译器对这两种机制内部实现为例。1. 虚函数以下是百度百科对于虚函数的解释: 定义:在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数

2016-10-24 10:50:40 435

原创 29-TLB

基本上到了这里,保护模式已接近尾声。不过,仍然有一些边角和细节需要你去掌握和理解。前面的文章里,尚有一些遗留的问题,比如页属性,并未介绍完,什么是 G 位,什么是 PWT,什么是 PCD?在解释这些东西之前,TLB(Translation Lookaside Buffer) 这个东西不讲,对不起这个博客,对不起阅读保护模式的读者。TLB 由来中译名为快表。经过前面大量的学习和实践,你已对 10-10

2016-10-23 21:52:21 1156 2

原创 28-PAE分页下的PDT-PTT基址

实际上,一路走来你也知道,在保护模式下你想通过写代码访问到物理地址简直天方夜谭。在 CPU 的世界里,无论是 PDT 还是 PTT 都保存在物理页中,PDT 和 PTT 中保存的也全部是物理地址不是线性地址。你要想访问到 PDT,除非你知道这个PDT所在的线性地址,这就是先有鸡还是先有蛋的问题了。倘若你搞懂了 10-10-12 分页模式下的 PDT-PTT 基址的话,想必本篇你也不在话下。有关 PD

2016-10-22 17:39:44 1639 1

原创 27-PAE分页(实验)

在上一篇文末,我已经告诉了你如何把虚拟机中的 xp 系统配置成 PAE 分页模式。说不定,你已经自己完成了PAE的分页实验。可是为了照顾到有些做不出来的同学,我还是得把实验演示一遍。xp 系统改成 PAE 分页模式打开虚拟机中的 xp 系统,把 c:\boot.ini 文件打开,然后修改成图1的样子。注意只修改了一个地方,就是把以前的 /excute=option 改成了现在的 /noexecute

2016-10-20 10:32:04 1442

原创 26-PAE 分页

相信你已经对三段式分页掌握的非常熟练了。可是你有没有意识到,这种线性地址到物理地址的映射方式,存在着某种局限性?它能够映射的最大的物理地址,也只能是 0xffffffff. 原因在于,PTE 中的高20位保存的是页号,最大能保存的页号是 0xfffff,每个页占用 4KB,所以页号为 0xfffff 的物理页的物理偏移是 0xfffff000. 每次说保存的是页号,其实有点烦了。因为把 PDE

2016-10-19 10:18:11 2423 6

原创 11-ext2 文件系统实验

上一篇讲解了太多的概念,估计你也看烦了。不如,动手练一练?总览环境配置部分安装一个 64MB 的空白硬盘格化化成 ext2 文件系统在这个文件系统里放几个文件。实验中存了 hello.txt, happy.txt, 一个目录,目录下面还有一个 main.c 文件把这个硬盘数据全部 dump 出来数据分析部分分析超级块结构分析 inode 表的位置分析 inode 2 分析 hello

2016-10-09 18:40:59 3369 7

原创 10-ext2 文件系统

上一篇简单介绍了一下什么是文件系统,最后我们尝试自己在一张A4纸上构造了一个属于我们自己的文件系统——happyfs。可惜的是,我们这个 happyfs 并不为世人所知,它的闻名程度远不及大名鼎鼎的 ext2。ext2 是早期 linux 上使用的文件系统,堪称经典也不复杂。从它入手,比较简单,也方便以后我们学习更复杂的文件系统。ext2 如何划分它的A4纸 图1 ext2全貌 看来 ext

2016-10-09 11:00:59 2276

原创 9-文件系统初探

有不少初学者对文件系统这个概念比较茫然,不知道文件系统是干嘛的。什么 FAT, NTFS, ext2, ext3 等等搞的初学者晕头转向。而教材上讲解的文件系统又过于抽象和理论化,不利于初学者。文件系统为何物不妨先来看看百度百科给出的定义: 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。有些初学者恨不得一板砖拍到写这条定义的人脸上。当然这也不能

2016-10-08 17:08:02 2136 4

原创 25-PDT/PTT基址(实验与分析)

上一篇,我们分析了PDT的基址是 0xc0300000。这个地址拆分成三段式就是300-300-000. 用大白话说就是页目录表的第0x300号PDE指向的页表PTT768中的第0x300号PTE指向的物理页。 图1 PTT768 C0300000分析0xc0300000 拆成三段式300-300-000。所以我们可以在 WinDbg 中查找页目录表的第 0x300 号PDE指向的物理页到底

2016-10-04 17:53:09 2356

原创 24-PDT/PTT基址

概述在上一篇的总结中,我们有一个小小的愿望:把整个 4GB 线性地址的 U/S 位改成 1。我们要去 WinDbg 中手动一个一个的修改吗?显然不可能,给你一年时间你也未必改的完。既然如此,我们必然要能通过程序来修改 PDE 和 PTE 了。要知道,无论如何,程序中使用的都只能是线性地址。这可为难了,我们并不知道页目录基址。可别想着把 CR3 中保存的那个页目录基址拿来用,CR3 中保存的那可是物理

2016-10-04 16:55:36 2294

原创 23-不提权读取高2G内存

我知道,就算我不写这篇文章,你也知道怎么做。可是,不管怎样,我还是得让这篇博客刷刷访问量。测试代码int main(int argc, char* argv[]){ int *p = (int*)0x8003f00c; getchar(); printf("%08x\n", *p); return 0;}实验修改 PDE、PTE上面的测试代码在 VC6.0 中编译

2016-10-03 22:42:37 1370

原创 22-物理页属性-U/S-PS-A-D

上一篇介绍了物理页的 P 属性和 RW 属性。本篇介绍 U/S、PS、A、D。PDE、PTE 结构PDE 结构|<------ 31~12------>|<------ 11~0 --------->| 比特 |b a 9 8 7 6 5 4 3 2 1 0| |--------------------|-|-|-|-|-|-|-|-|-|-|-|-|

2016-10-03 21:59:42 1629 3

原创 21-物理页属性-P-RW

熟练掌握了线性地址到物理地址的转换后,我们也知道PDE和PTE的结构。当时只知道PDE和PTE中保存了物理页的属性。PDE、PTE结构PDE 结构|<------ 31~12------>|<------ 11~0 --------->| 比特 |b a 9 8 7 6 5 4 3 2 1 0| |--------------------|-|-|-|

2016-10-03 21:28:16 1505

原创 20-读写空指针

有不少人看到这个标题会说,博主疯了,走吧走吧,不看了。学过 C 语言的人都知道,0 地址是不可能被读写的。为了能够狡辩,我不得不提前把实验结果贴在下面。 图1 读写空指针 请原谅我,无论你在自己的 VC6.0 执行多少次,你都不会成功,但是我成功了。我确实做了手脚。难道你不想知道吗?聪明的你也许根本不需要继续往下读,就能完成这个功能(如果你真的搞定了前面的分页知识的话)。0 地址分析动手能力

2016-10-03 20:22:35 1591 3

原创 8-跨段提权与调用门

上一篇文章使用 jmp far 指令实现代码跨段,本质上就是改变 cs 段寄存器。但是我们发现,无论如何,jmp far 也无法更改 CPL。即使你的 RPL = 0,也是徒劳。有没有办法更改 cs 段寄存器,同时也更改 CPL?答案是肯定的。本篇提到了调用门只是其中的一种方法,还有其它方法,后文会陆续介绍。1. 在 3 环能读取高 2G 内存吗?回答这个问题最笨的方法就是做一个实...

2016-10-03 12:13:23 2424 5

原创 5-特权级

CPU分级处于保护模式下的 CPU,有4种运行级别。 图1 CPU不同运行级别 围绕在最中心的那个圆心,叫 Ring 0,中文叫 0 环,这里运行特权级最高的代码。我在这里避免说这个级别运行操作系统内核,这是因为这是给设计操作系统的人看的。就目前来看,我不还不要和操作系统拉上关系,因为知识还不够。中间的 1 环和 2 环很少使用。最外层的 3 环,是运行级别最低的。怎样查看程序处于哪个运行级

2016-10-03 11:07:04 1680 3

原创 1-保护模式

保护模式操作系统这门课在本科是一块高地,很少有人能学懂,主要原因是本科的操作系统重在理论而无实践。然而,在国外的教学中,操作系统恰恰是一门工程性最强的学科。如果没有很强的实践,这门课也学不好。保护模式,是 x86 CPU 的一种运行模式。当然,除此之外,x86 架构的 CPU 还有实模式的工作状态和虚拟 8086模式。CPU 的工作模式是什么意思?举个例子,平时你在学校学习,比较散漫,开启的是懒散模

2016-10-03 10:07:58 2585

原创 19-PDE-PTE

不知在第14篇《分页》文章里,你有没有搞懂什么是页,同时还延伸出了页表的概念。另外,还解释了逻辑地址、线性地址和物理地址之间的关系。我知道你脑子可能是一团浆糊,这只能怪我的语言表达能力还不够强。大段大段的文字让人读起来有时候很恼火,可是为了阐释问题,大段大段文字有时候又避免不了。所以,有时候不得不砍去细支末节,压缩篇幅。为了能够强化分页的知识,本篇扼要回顾前两篇内容,精简总结几个概念之间的关系。页、

2016-10-02 13:56:48 4872 2

EasyDraw 3.0(事故树绘制)

EasyDraw 事故树软件,3.0 版本,完全免费。排版更加精致,支持生成 svg 矢量图,png/jpeg 图形。

2018-11-02

梯度下降法VS2008_C++

梯度下降法完整的VS2008代码。博客地址:http://blog.csdn.net/q1007729991/article/details/40382071

2014-10-23

事故树绘制软件easydraw免费V2.19

免费版本的事故软件,实现所有计算功能,节点自动调整,建树判错等功能!支持导出图片。

2013-12-13

GCC 内联汇编

gcc 内联汇编 1 AT&T 与 INTEL 的汇编语言语法的区别 1.1 大小写 1.2 操作数赋值方向 1.3 前缀 1.4 间接寻址语法 1.5 后缀 1.6 指令 2 GCC 内嵌汇编 2.1 简介 2.2 内嵌汇编举例 2.3 语法 2.3.1 汇编语句模板 2.3.2 输出部分 2.3.3 输入部分 2.3.4 限制字符 2.3.5 破坏描述部分 2.4GCC 如何编译内嵌汇编代码

2018-10-28

版本控制之道-使用 Git

程序员修炼三部曲第一部,Travis Swicegood 著,董越、付昭伟等译

2018-10-28

事故树绘制分析软件

简单易用,功能其全的一个事故树绘制分析软件,用以计算最小割集,最小径集,顶上事件概率,概率重要度,结构重要度,临界重要度,计算方法可选。 计算的结果可以保存到本地txt文本文件,方便您复制到您需要的地方,给您的论文写作也会带来极大方便。概率计算提供一套精确算法,可以根据您所提供的数据计算出精确结果。当然您也可以选择近似算法,本软件提供首项近似法和平均近似法的计算结果,给您多种选则。软件非常简单易用,自己几分钟就可以学会,谢谢您的使用!

2012-12-17

增强版事故树绘制与分析程序

1.完善建立事故树的过程 2.事故树节点自动排列,免去手工排列节点的烦恼 3.编号自动生成,免去手工编号的繁琐 4.自动检测是否有闭环回路,防止用户建立逻辑上错误的事故树 5.自动检测用户是否在一个事件下重复添加 6.相同事件下建立节点,会进行同步复制,提高建树效率 7.相同事件下删除节点,会进行同步删除 8.手工拖动节点时自动对齐 9.修改节点信息,所有相同节点进行同步修改 10.画布大小自定义 11.画布颜色,事件框颜色,门颜色,文字颜色可以自定义 12.完美的一键保存bmp图片功能 13.编码树与文字树一键切换 14.列出事件清单,方便用户一次性输入事件概率 15.完善顶上事件概率计算,提供最小割集逼近法,无重复基本事件计算法,首项近似法,以及事件状态组合法。 16.优化最小割集、径集算法,提高计算速度 17.结构重要度删除不必要的状态组合法,仅提供公式三计算结果 18.提高了概率重要度、关键重要度的计算精度

2013-04-19

汇编_单片机_matlab_Multisim等

注意:此为TXT文档,里面都有下载地址,你所要下载的东东都在我的u115网盘里! 静态反汇编工具W32Dasm.rar 51单片机种子全.rar win7系统工具.rar matlab详细教程.rar Multisim教程.exe 中国象棋经典残局《适情雅趣》_0.1.exe UltraEdit-32_V16.20.0.1009_汉化版(30天免费使用).exe 精美PPT模板_2009.11.30.zip VC6.0简体中文企业版.rar

2010-11-24

MFC 音乐播放器

基本上实现了常用的播放功能,可以自动下一首,通过音量条控制音量,实现时间进度栏,实现将添加到列表的歌曲文件列表存储到本地,下次启动的时候依然还在,更多功能等待你的发觉,不要说分高,学习才是王道,尊重作者的劳动成果,花了两天时间写的。

2012-12-12

k近邻_kd-tree_kd树_vs2008_C++代码

vs2008写的Kd树泛型算法,支持k近邻查询。

2014-12-15

--Allen--的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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