自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

金俊小筑

品读技术,品读人生

  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

翻译 纯小白学机器学习系列:数学基础(day2)

Since machine learning is inherently data driven, data is at the core dataof machine learning. The goal of machine learning is to design general-purpose methodologies to extract valuable patterns fr...

2019-04-17 20:02:44 277

翻译 纯小白学机器学习系列:数学基础(day1)

Part I Mathematical Foundations1Introduction and MotivationMachine learning is about designing algorithms that automatically extractvaluable information from data. The emphasis here is on “autom...

2019-04-16 15:25:09 312

原创 生活密码学

人性的弱点:不要批评责怪别人献出你真实的赞赏以他人的立场会更有说服力,引发渴望影响力:先给予,再索取,人情心理三十六计版本1http://hi.baidu.com/hrmiracle/blog/index/2三十六计版本2http://hi.baidu.com/236447357/blog/item/e969842b0a598dffe6cd40b1.html

2011-05-30 00:34:00 924

转载 各领域入门书籍推荐

<br /><br /><br />摘自:网上读书园地 http://www.readfree.net/viewarticle.php?id=5030530<br /><br /><br />这些书来自科学松鼠会的一个活动——“先写下你的专业领域,再回答这个问题‘如果一个受过高中教育、但完全不了解你这个领域的人想学习之,你推荐哪本入门书籍?”。当然推荐的书有很多,这些经过了姬十三的筛选,个人认为有些书算不上入门了,不过还是强烈推荐。 <br /><br />1、《师从天才》。这本书关注的是现代科学中的师

2011-05-24 13:36:00 8102

转载 安装vnc的各种悲剧解决

系统环境VM+RHEL5.1[root@localhost .vnc]# uname -r2.6.18-53.el5xen本地XP系统安装VNCVIEW去控制VM中的RHEL5.1下面在LINUX上安装VNCSERVER1、去www.realvnc.com去下载免费版for x86 linux2、下载是一个tar.gz文件,解压后进入文件夹,里面有个README,请注意这块不要下载RPM包,依赖问题以及包头的安全签名会让你很郁闷的。3、解压缩,进入该文件夹,按照readme

2011-02-04 21:52:00 36921 1

原创 lex与yacc之lex符号表示例

在lex初探篇中,每次要定义新的单词,都需要重新编译,这是非常麻烦的。但是如果在词法分析程序运行时能够构建一个单词表,那么就可以在添加新的单词时不用修改和重新编译lex程序。symboltable.l用cygwin生成编译:flex symboltable.lgcc -o symboltable lex.yy.c执行$ ./symboltableverb is am are was were be being been doisis: verbasdasdasdasdasdasd: don't recogn

2011-01-01 20:22:00 2440

原创 lex与yacc之lex初探

这是个简单的单词识别程序,虽然小,但依然体现出lex的强大之处。lex自动生成实际的C程序代码,这些代码负责处理读输入文件,有时也负责写输出。verb.l文件第一部分为定义部分,介绍了将拷贝到最终程序中的原始C程序代码。如果后来文件中的代码必须包含的头文件,那么这部分尤其重要。用特殊的定界符"%{"和"%}"括起C代码。这个示例中,定义段中唯一的内容是C注释。%%标记这一部分结束。下一部分是规则段。每个规则段都有两部分组成:模式和动作,由空白分开。当lex生成的词法分析程序识别出某个模式时,将执行相应的动作

2011-01-01 16:11:00 847

转载 RDTSC指令

<br /> 在Intel Pentium以上级别的CPU中,有一个称为“时间戳(Time Stamp)”的部件,它以64位无符号整型数的格式,记录了自CPU上电以来所经过的时钟周期数。<br />  在Pentium以上的CPU中,提供了一条机器指令RDTSC(Read Time Stamp Counter)来读取这个时间戳的数字,并将其保存在EDX:EAX寄存器对中。由于EDX:EAX寄存器对恰好是Win32平台下C 语言保存函数返回值的寄存器,所以我们可以把这条指令看成是一个普通的函数调用。像这样:

2010-12-28 17:14:00 1488

转载 Ubuntu 源码编译安装bochs 2.4.5

<br />1. sudo apt-get install build-essential<br />2. sudo aptitude install xorg-dev<br />3. sudo aptitude install libgtk2.0-dev<br />4. tar vxzf bochs-2.4.5.tar.gz<br />5. cd bochs-2.4.5/<br />6. ./configure --enable-debugger --enable-disasm<br />7. m

2010-12-26 23:46:00 933

转载 vim 文件浏览器和窗口管理器 -- 插件: WinManager

下载地址http://www.vim.org/scripts/script.php?script_id=95版本2.x安装在 ~/.vim 目录下解压winmanager.zip手册:help winmanager<br /><br />在图1中大家可以看到在图标2标识的地方是一个文件浏览器, 里面列出了当前目录中的文件, 可以通过这个浏览器来浏览工程中的源文件, 是不是越来越像常见的IDE了, 当光标停在某个文件或文件夹的时候, 按下回车, 可以打开该文件或文件夹.<br />这个东东是怎么调出来的呢?

2010-12-13 10:35:00 22039 1

翻译 什么是Processor affinity

处理器关联(Processor affinity)是一个本地队列中央在对称多处理操作系统调度算法的改进。每个任务(无论是进程或线程)在队列中有一个标记,表明其首选/健处理器。在分配时,每个任务分配给其亲属优先于其他处理器。处理器关联注意到一个事实,即一个进程上一次运行的数据残留会保存在一个处理器内(尤其是在它的缓存),所以调度到同一处理器上运行会比调度到另一个处理器运行效率更高效。 实际调度算法实现非常复杂多变。在某些情况下将允许一些实现任务切换到另一个处理器。一个明显的例子涉及到两个处理器密集型任务(A和

2010-12-10 20:36:00 7989

转载 VIM设置代码折叠

<br /><br />1. 折叠方式 <br />可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。<br />有 6 种方法来选定折叠:<br />          manual           手工定义折叠<br />          indent             更多的缩进表示更高级别的折叠<br />          expr                用表达式来定义折叠<br />          syntax             用语法

2010-12-02 13:31:00 666

转载 VIM复制粘贴大全

<br /><br />如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。<br />vim帮助文档里与粘贴板有关的内容如下:vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;<br /> 要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,

2010-12-02 11:15:00 978

转载 页式存储(1)----理论篇

<br /> <br />什么叫做"页",所谓"页",就是一块内存,在80386中,页的大小是固定的4096字节。<br /> <br />在未打开分页机制时,线性地址等同于物理地址,于是可以认为,逻辑地址通过分段机制直接转换成物理地址。但当分页开启时,分段机制将逻辑地址转换成线性地址,线性地址再通过分页机制转换成物理地址。下图为地址转换的流程:<br /> <br /><br /> <br /> <br />分页机制就像一个函数:<br />物理地址=f(线性地址) <br />线性地址中任意一个页都能映

2010-11-28 19:24:00 1186

转载 远程控制利器TeamViewer使用教程(图)

本文来自中国安全网,这个网站内容确实杂,挺不错TeamViewer是什么?他是一款免费的可以穿透内网的远程控制软件,可以实现桌面共享,文件传送等功能,简单一点说就是和QQ远程协助一样,但是比QQ的远程协助功能更为强大。TeamViewer与木马有什么区别?说到远程控制软件,大家就会想到黑客常使用的木马软件,木马一般是在用户不知情的情况下在系统里偷偷运行着,而TeamViewer远程控制软件他是在用户知情的情况下运行的,而像TeamViewer这样的正规远程控制软件杀毒软件是不会查杀的,而木马的话,杀毒软件是

2010-11-27 02:14:00 1781

转载 Linux与Windows文本格式之间的转化

<br /><br />Windows 换行是/r/n,十六进制数值是:0D0A;Linux 换行是/n,十六进制数值是:0A。所以在Linux 保存的文件在Windows 上用记事本看的话会出现黑点,我们可以在Linux 下用命令把Linux 的文件格式转换成Windows 格式的。所以Linux下有了两个指令: unix2dos :把Linux 文件格式转换成Windows 文件格式。 dos2unix :把Windows 格式转换成Linux 文件格式。 bash脚本的话就需要转换了

2010-11-26 19:13:00 855

原创 调用门实战(4)----特权级转移实践

本次实践从ring0进入ring3然后又回到ring0

2010-11-21 15:25:00 910

转载 调用门实战(3)----理论补遗之TSS

<br />      1 什么是TSS<br /> <br />  TSS 全称task state segment,是指在操作系统进程管理的过程中,任务(进程)切换时的任务现场信息。<br /> <br />  2 TSS工作细节<br /> <br />  TSS在任务切换过程中起着重要作用,通过它实现任务的挂起和恢复。所谓任务切换是指,挂起当前正在执行的任务,恢复或启动另一任务的执行。在任务切换过程中,首先,处理器中各寄存器的当前值被自动保存到TR(任务寄存器)所指定的TSS中;然后,下一任务的TS

2010-11-20 19:39:00 944

原创 调用门实战(2)----调用门特权级转移理论篇

<br /> <br />假设我们想由代码段A转移到代码段B,运用一个调用门G,调用门G中的目标选择子指向代码B的段。这里有几个要素:CPL、RPL、代码B得DPL(DPL_B)、调用门G的DPL(DPL_G)。A访问调用门G是,要求CPL和RPL都小于等于DPL_G。即CPL和RPL需要在更高的特权级上。<br /> <br />除了上面一步符合要求之外,系统还将比较CPL和DPL_B。如果一致代码段的话,要求DPL_B<=CPL;如果非一致代码段的话,call指令和jmp指令有所不同。call指令要求D

2010-11-20 19:26:00 1190

原创 调用门实战(1)----调用门跳转

"门",英文原名Gate,门是一种描述符,该描述符的结构如下图:直观来看,一个门描述了由一个选择子和一个偏移所指定的线性地址,程序正是通过这个地址进行转移的。门描述符分为4种:调用门(Call gates)中断门(Interrupt gates)陷阱门(Trap gates)任务门(Task gates)这个例子中,我们用到调用门。简单起见,不涉及任何特权级转变。代码pm.inc添加了门描述符,如下:; usage: Descriptor Base, Limit, Attr ; Base

2010-11-18 00:27:00 1831 3

原创 Linux基础---静态库编写

<br />1.编写2个c文件,这2个文件作为库文件<br /> <br />  test_func1.c<br />#include<stdio.h>void test_func1(int arg){ printf("test func1 arg:%d/n",arg);} <br /> <br />test_func2.c<br />#include<stdio.h>void test_func2(char* arg){ printf("test func2 arg

2010-11-17 22:23:00 924

转载 操作系统的特权级(2) ---- 一致代码段和非一致代码段

<br />这是在网上看到的比较通俗易懂的解释,转载于:http://blog.csdn.net/feijj2002_/archive/2009/09/27/4597174.aspx<br /> <br /><br />之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉.<br />但是有时候用户程序也需要读取内核的某些数据,怎么办呢?<br />操作系统就引入了访问特权等级(0-3)的机制.<br />这些特权等级,通过三个符号来体现CPL/DPL/RPL.<b

2010-11-14 00:00:00 1160

原创 操作系统的特权级(1)----CPL、DPL和RPL

<br /> <br />IA32的分段机制中,特权级总共有4个特权级别,分别是0,1,2,3。数字越小表示特权级越大。DPL和RPL都是用来表示特权级别的。<br /> <br /> <br /><br /> <br />见上图 ,较为核心的代码和数据,被放在特权级较高的层级中。处理器将这样的机制来避免低特权级的任务在不被允许的情况下访问位于高特权级的段。如果处理器检测到一个访问请求不是合法的,将会产生常规保护错误(#GP)<br /> <br />处理器通过识别CPL、DPL、RPL这3中特权级别进行特

2010-11-13 23:28:00 1756

原创 关于gcc on windows的“拒绝访问”问题的解决方法

今天把cygwin下的bin目录添加到PATH后,直接运行g++, gcc, 显示“访问被拒绝” (access denied).竟然那么诡异,上网查资料,网上的解决方案说:检查g++.exe, gcc.exe是否只有1k大小,如果是,那么文件是符号链接,那么把文件重命名一下(备份)。然后把g++-3.exe(或者g++-4.exe)拷贝一份,重命名为g++.exe。 把gcc-3.exe拷贝一份,重命名为gcc.exe。试了一下,靠,根本不管用,这是哪门子方法,完全没逻辑性.初步认为访问被拒绝是没有权限,

2010-11-09 22:04:00 5102 3

原创 代码实现LDT的使用

什么是LDT?简单来说就是一种描述符号表,它的选择子T1位必须为1。使用时,必须先lldt指令加载ldtr,lldt的操作数是GDT中用来描述LDT的描述符。我在原来的代码基础上做了修改:原来代码的地址http://blog.csdn.net/kkk8000/archive/2010/10/31/5977656.aspx使用LDT的具体步骤如下:1、增加一个32位代码段,代码如下:;CodeA (LDT,32位代码段)[SECTION .la]ALIGN 32[BITS 32]LABEL

2010-11-07 18:04:00 1757

原创 一次堆破坏的调试经历

<br /><br />过程是这样的,在vc debug的过程中,突然弹出了一个assert窗口:<br /> <br />Windows has triggered a breakpoint in cs.exe.<br />This may be due to a corruption of the heap, which indicates a bug in cs.exe or any of the DLLs it has loaded.<br />This may also be due to the

2010-11-05 00:16:00 10178

转载 windows下vim和Doxygen自动生成代码文档

<br /><br />1.  下载DoxygenToolkit 下载地址:http://www.vim.org/scripts/script.php?script_id=987<br /> <br />2.  把DoxygenToolkit.vim放入../Vim/vim72/plugin<br /> <br />3.  修改_vimrc的配置,我的配置是<br />let g:DoxygenToolkit_paramTag_pre="@param " <br />let g:DoxygenToolkit

2010-11-02 21:40:00 2104

原创 一段汇编代码翻译成c语言的练习

题目是这样的:有一个函数原型为void decode1(int *xp,int *yp,int * zp);函数的编译成汇编代码后如下:1    movl 8(%ebp),%edi2    movl 12(%ebp),%ebx3    movl 16(%ebb),%esi4    movl  (%edi),%eax5    movl  (%ebx),%edx6    movl  (%esi),%ecx7    movl  %eax,(%ebx)8    movl  %edx,(%esi)9    movl

2010-11-01 00:03:00 4201 1

原创 从实模式跳转到保护模式再跳回实模式的程序

这是一段用nasm编写的程序,有2个文件组成,第一个头文件为pm.inc,第2个文件为pmtest.asm,编译成.com文件在DOS下运行。程序在保护模式打印一串字符串,然后返回实模式退回dos

2010-10-31 15:39:00 1775

原创 中国程序员的悲哀

<br />中国程序员有个很悲哀的地方,大多数程序都对微软崇拜有加,奉若神明;然而大多数人都用着盗版的微软操作系统,盗版的visual studio,然后还牛逼哄哄的出个什么微软vs使用心得。在他们眼里软件本身并不是商品,软件衍生出来的服务才能赚钱。<br /> <br />这就好比几个小偷偷了别人的手机,然后交流用什么方法销赃才能最赚钱,你会觉得小偷太无耻了。但是如果满大街都是小偷,那你就会习以为常了。这么一想,发觉中国的程序员是抛开道德观念的,一心研究技术的。<br /> <br />但是这不能怪程序员

2010-10-31 14:48:00 1128

转载 GDT详细介绍

<br /> <br /><br />这是一个国外的站点对GDT的描述,比国人描述的更清楚些。<br />转载地址:http://wiki.osdev.org/Global_Descriptor_Table<br />更详细的GDT参考教材:http://wiki.osdev.org/GDT_TutorialGlobal Descriptor TableFrom OSDev WikiStructure<br />The GDT is loaded using the LGDT assembly instru

2010-10-30 19:11:00 2420

原创 nasm下定义GDT结构

预备知识:NASM中的位移运算符:">"表示右移。注意这里的位移总是无符号数(非负数)。并且位置时,左侧总是用0填充,不会出现符号扩展。可以理解成汇编语言中的逻辑左移和逻辑右移。定义如下:; usage: Descriptor Base, Limit, Attr;        Base:  dd (32 bits 段基址);        Limit: dd (low 20 bits available,20 bits 段界限);        Attr:  dw (lower 4 bits of hig

2010-10-30 18:37:00 3006

转载 GDT详解

这篇文章在理论上解释了GDT,看了以后加深了印象.转载于:http://blog.csdn.net/zdwzzu2006/archive/2009/03/27/4030882.aspx在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。

2010-10-30 18:21:00 960 1

转载 在Vim中使用ctags

<br /><br /><br />本文转载于: http://www.vimer.cn<br />如何在Vim中使用ctags?之前在《把Vim打造成真正的IDE》系列里已经讲过大致的ctags在vim中的使用,这篇文章我们就详细的讲一下。<br />首先要明白,ctags是什么?<br />官方的解释是:产生标记文件以帮助在源文件中定位对象。<br />其生成的标记文件tags中包括这些对象的列表:用#define定义的宏<br />枚举型变量的值<br />函数的定义、原型和声明<br />名字空间(

2010-10-29 16:38:00 807

转载 用Gvim建立IDE编程环境 (Windows篇)

这是转载的,原作者地址:http://www.cppblog.com/tx7do/archive/2010/07/18/120743.html转载自:LeeMonCC说明:本文是作者在完全按照著名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。原作地址:http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx。0.准备软件及插件。(a)gvim72.exe 地址ftp://ftp.

2010-10-28 15:38:00 591

原创 为什么要写技术blog?

<br />个人认为做技术的有两种人:有天赋的和没天赋的。<br />没天赋的人比如像我这种,老是记不住,所以得写个blog记录记录,否则过不久就忘记了。<br />有天赋的人天天都在忙于捣鼓技术,根本不需要记录什么blog,因为有各种技术让他们忙得捣鼓。<br /> <br />其实写blog就是因为没有天赋,必须记下来。鉴于年纪大了脑子越来越不好使了,今天开始还是记一下blog吧。<br />突然发现下面还有个推荐功能,真有够无聊的。

2010-09-23 01:03:00 543

转载 在windows环境下使用emacs + cscope + ecb替代source insight(转)

 source insight是windows环境下用于代码开发和阅读的利器,功能强大,对于大规模代码的维护和开发几乎不可或缺(这里指它提供的功能,类似的商业工具还有很多)。使用emacs替代source insight原因有:a,si是商业软件,使用需要付费,虽然可以从网上找到破解版本;b,对于unix/linux爱好者或者需要同时工作于unix和windows环境下的开发人员,emacs是通用

2009-03-19 10:59:00 7175

原创 编写简单的Makefile文件

 Makefile包含了一组规则用以生成应用程序。注意,是一组哦。一条规则由三部分组成:target、target的prerequisites、commands,结构应该如下:Target::prereq1 prereq2        Commands 来个例子:fuck.o:fuck.c fuck.h     gcc –c fuck.c fuck.o就是

2009-03-02 20:33:00 625

c++编程惯用法——高级程序员常用方法和技巧

本书为pdf格式,大家下载吧

2007-12-17

VisualC++ 网络游戏建模与实现part2

介绍网络游戏服务器端开发的一本书,一共2个文件,合在一起解压 pdf格式 <br>

2007-12-16

VisualC++ 网络游戏建模与实现part1

介绍网络游戏服务器端开发的一本书,一共2个文件,合在一起解压 pdf格式

2007-12-16

Direct3D游戏开发入门教程(附源代码)

Direct3D游戏开发入门 PDF格式

2007-12-16

空空如也

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

TA关注的人

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