自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (17)
  • 收藏
  • 关注

原创 博客迁移

博客已迁移至 Unix对话录,以后本博客不再更新刺猬长大了 

2011-06-17 19:01:00 7624

原创 我看UNIX与Windows的本质区别

文化,我首先想到的是文化。Unix和Windows从诞生之初的文化差异本质上划分了两者的界限。直观看来,一个装逼文化,一个傻逼文化。

2010-10-13 22:38:00 40029 165

翻译 多重继承和虚继承的内存布局

 多重继承和虚继承的内存布局刺猬@http://blog.csdn.net/littlehedgehog        这篇文章主要讲解虚继承的C++对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。原文见这里(By Edsko de Vries, January 2006) 

2010-04-01 17:55:00 27612 10

原创 孤儿进程组

为什么有"孤儿进程组"刺猬@http://blog.csdn.net/littlehedgehog  学习最忌讳的是等把所有内容都自以为学到手后,才突然慌神地反问自己“学这个是干什么的?”“这个究竟有什么用”。如果学一门学问到最后都不知道有什么用那最好别忙学,先看看它究竟在实际中运用到那些地方。中国教育大部分时间都是在教学生如何解题,所以当高数学了一学年最后吭哧吭哧考了个优后,竟然

2009-04-23 20:55:00 8110

原创 异步信号安全和线程安全

异步信号安全和线程安全 刺猬@http://blog.csdn.net/littlehedgehog   问题源自于apue中stevens老先生有关线程安全函数的介绍,stevens有曰:如果一个函数对于多线程来说是重入的,则说这个函数是线程安全的,但这并不能说明对信号处理程序来说也是重入的。也就是说信号安全重入函数要求要比线程安全更加严格。但是,我想知道为什么,为什么线

2009-04-23 18:40:00 10722 4

原创 拥塞控制策略

拥塞控制策略 刺猬@http://blog.csdn.net/littlehedgehog   《TCP/IP v1》中TCP的超时和重传这章讲得实在凌乱无比,再加之我们亲爱的译者同志翻译的时候也按部就班地不幸地凑齐了字数,里面很多概念看起来特别的晦涩难懂。这里我参考了《TCP/IP簇》关于TCP的相关章节,稍稍总结了下,方便我后面回头看了。 讲拥塞控制前,我们起码

2009-04-02 11:28:00 7776 2

原创 给UDP增加可靠性

给UDP增加可靠性刺猬@http://blog.csdn.net/littlehedgehog   UNP里面的例子程序,把计算rtt的算法改了下,参考的TCP/IP详解里面介绍的一个稍微简单的算法,另外,不喜欢setjmp这种编程模式,感觉程序代码可读性较差,最后还是改成使用pselect+signal,这样代码会清晰些。   下面是主函数 #in

2009-02-17 10:58:00 9430

原创 IP_RECVDSTADDR undefined

IP_RECVDSTADDR undefined刺猬@http://blog.csdn.net/littlehedgehog今天写一个unp上面的例子程序,被IP_RECVDSTADDR undefined难倒了,gcc老是报错说该宏未定义,最后还是在老外的一个“开源苹果”网站查到原来linux修改了相关的函数定义,包括cmsghdr及setsockopt都采用了lin

2009-02-15 19:06:00 10570 1

原创 Linux 网卡设备驱动

Linux 网卡驱动刺猬@http://blog.csdn.net/littlehedgehog网上一位前辈写的,时至今日,代码很多编译通不过(主要是Linux 内核变化实在太快),我把代码移植到我的ubuntu 8.10下测试成功,里面也加上了我的注解。不过还有不少东西没有搞懂,手头上也没有相关的硬件资料,就一份Realtek 的datasheet。 TNND,后面要备考备荒,手头的事情只能

2008-12-24 21:45:00 10147

原创 Linux 文件隐藏 V0.2

Linux 看Adult Video 必备工具 V0.2刺猬@http://blog.csdn.net/littlehedgehog这么快推出升级版,并不是上个版本bug太多,主要是上次拦截sys_call 实在太过于原始了,这次下放到了VFS层,隐蔽性肯定更强了。源码下载地址 http://download.csdn.net/source/849855[新版本主要修改了拦截函数,采用了VFS

2008-12-07 22:07:00 5532 1

原创 FileSystem 操作系统课程设计

FileSystem   刺猬@http://blog.csdn.net/littlehedgehog本来不应该发布出来,发布出来害人啊。这个文件系统还是当初大二写HDU kernel时候遗留下来的,这次改了改,作为一个课程设计交了。注: 程序只能在linux环境下编译,要当作业交的哥们自己改下,哈哈,逼着大家去读代码下载地址:http://littlehedgehog.download.cs

2008-12-01 11:21:00 6080

转载 我对读计算机软件专业硕士的几点看法

我对读计算机软件专业硕士的几点看法特此声明: 此文系转载, 下面有些评论的朋友实在高看我了,抱歉就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。  如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计划上就没有把你往这方面带。当然能不能更上一层楼最终还是

2008-10-24 18:06:00 10900 13

原创 Clamav杀毒软件源码分析笔记[十]

Clamav杀毒软件源码分析笔记[十]刺猬@http://blog.csdn.net/littlehedgehog[客户端处理]服务端已经把主要的工作都已经处理的差不多了,剩下来也就是服务端等待客户端提出请求,然后根据客户端的请求做相应的工作. 所以客户端所做的事情就只是提交数据,然后坐享其成.服务端是在垂帘听政呢,还是做幕后英雄?话不多说了,下面进入正题.客户端(clamdscan)的主函数

2008-10-13 21:13:00 8389 1

原创 Clamav杀毒软件源码分析笔记[九]

Clamav杀毒软件源码分析笔记[九]刺猬@http://blog.csdn.net/littlehedgehog[数据流病毒扫描]数据流病毒扫描,听上去貌似很牛逼的称呼,其实就是一个传送数据流,接收数据流,扫描病毒而已. 貌似扫描病毒代码亦是很牛逼的代码,其实也不然,不过调用扫描病毒的引擎API函数尔. 调API调久了,自然想去看看这个API究竟怎么回事,于是乎就去看kernel代码了,想刚

2008-10-08 20:02:00 9558

原创 Clamav杀毒软件源码分析笔记[八]

Clamav杀毒软件源码分析笔记[八]刺猬@http://blog.csdn.net/littlehedgehog[command]上回说到主循环(accept_th),这是一个死循环,因为我们Clamd在没有什么特殊的情况下是一直阻塞地苦苦等待在等待有客户端发出请求,然后安排好线程派发(dispatch)工作,接着我们的注意力便专注于线程的运作,这里的command是我们的重点研究对象.说来

2008-10-08 18:57:00 9252

原创 Clamav杀毒软件源码分析笔记[七]

 Clamav杀毒软件源码分析笔记[七]刺猬@http://blog.csdn.net/littlehedgehog[accept循环处理]上次本来可以在文章五把Clamd的主要函数说完的,不过线程未了,火候未到. 这次火候到了,Clamd的尽头也就走到底了.    if ((thr_pool=thrmgr_new(max_threads, idletimeout, scanner_threa

2008-10-07 22:16:00 8829

原创 Clamav杀毒软件源码分析笔记[六]

  Clamav杀毒软件源码分析笔记[六]刺猬@http://blog.csdn.net/littlehedgehog[线程处理]我曾经说过Clamd强大的动力并不是来自于某些催情药的功用,而是内部提供的线程池功能功不可没.所谓线程池,我理解是暂时收容工作完成的线程,派发工作给无所事事的线程,这样可以让线程有暂时的不死之身,一直存在于内存之中.这样避免了频繁地创建线程,销毁线程.先来看看所谓线

2008-10-07 20:56:00 9937 1

原创 Clamav杀毒软件源码分析笔记[五]

  Clamav杀毒软件源码分析笔记[五]刺猬@http://blog.csdn.net/littlehedgehog[Socket通信]套间字socket常用于服务/客户模型的应用程序之间的通信和数据连接,需要重点关注的是这个所谓的服务端/客户端完全可以是一台计算机的两个应用程序。前面我们已经提到了,Clamd就是这个服务端,也就是说它是整个程序的顶梁柱,所有的关键逻辑处理都是它一人为之,不

2008-10-07 20:27:00 10117

原创 Clamav杀毒软件源码分析笔记[四]

  Clamav杀毒软件源码分析笔记[四]刺猬@http://blog.csdn.net/littlehedgehog[进程后台化]话说Clamd前期准备工作安排好以后,遂转入幕后运作,争取垂帘听政. 关于进程的后台化,《linux安全体系分析与编程》貌似说的条条是理,不过我这里还得重复一遍,当年辛辛苦苦找的资料可不能浪费了。   /* fork into background 如果配置文件中

2008-10-07 20:11:00 9204

原创 Clamav杀毒软件源码分析笔记[三]

  Clamav杀毒软件源码分析笔记[三]刺猬@http://blog.csdn.net/littlehedgehog[获取配置文件信息]说来比较打击积极性的是我们还得做一番比较麻烦的但是却又没多少挑战性的事业,因为如果clamd这个服务端全部都用命令行来指定信息的话,Clamav估计会没有市场,因为打字就会累死管理员。我们要设置比如像多久升级一次啊,升级服务器在哪里下载这些东西这些乱七八糟的

2008-10-07 19:28:00 8493

原创 Clamav杀毒软件源码分析笔记[二]

  Clamav杀毒软件源码分析笔记[二]刺猬@http://blog.csdn.net/littlehedgehog[读取命令行参数]开始正儿八经地分析源码了. 从哪里入手呢,当然还是按照书上的来,我们先来看看Clamd的程序如何从生到死,Clamd是杀毒软件的服务端,我们在客户端提交要查杀的信息,然后Clamd服务端进行按照我们指令办事,然后把结果返回给我们。这个貌似是unix程序的一个经

2008-10-07 18:38:00 5517

原创 clamav杀毒软件源码分析笔记[一]

 clamav杀毒软件源码分析笔记[一]刺猬@http://blog.csdn.net/littlehedgehog注: 《clamav杀毒软件源码分析笔记》只是我在阅读《linux安全体系分析与编程》中“clamav杀毒应用程序”有关章节的读书笔记而已。还望各位看官高抬贵手,不要当做学习资料来作为入门读物,这就贻笑大方了, Clamav我是选用的0.85版. 另外,限于我不是从事专门研究杀毒

2008-10-07 18:12:00 8504 2

原创 linux多线程扫描器

linux多线程扫描器刺猬@http://blog.csdn.net/littlehedgehog那个深入浅出驱动程序系列文章后面作者似乎有些心不在焉,文章草草了事,还是自己来看看相关的书吧。再来说说这个scanner,速度还是过得去的,在我测试的环境中,跟nmap速度不相上下,不过郁闷的是扫描主机比较慢。说来其实没多大实用价值,仅供学习参观之用。代码就在下面,有兴趣自己可以改改用。#incl

2008-09-27 15:01:00 1489

原创 深入浅出Linux设备驱动之阻塞与非阻塞

 深入浅出Linux设备驱动之阻塞与非阻塞刺猬@http://blog.csdn.net/littlehedgehog注:该系列文章转载自arm+linuxchinaunix博客圈圈主之博客——http://blog.chinaunix.net/u/22630/article_54997.html   为了适合我的编译环境,源代码有改动,但是相信我更改后的代码更加适合现在大多数读者的p

2008-09-20 21:25:00 1358

原创 深入浅出Linux设备驱动之并发控制

深入浅出Linux设备驱动之并发控制刺猬@http://blog.csdn.net/littlehedgehog注:该系列文章转载自arm+linuxchinaunix博客圈圈主之博客——http://blog.chinaunix.net/u/22630/article_54997.html   为了适合我的编译环境,源代码有改动,但是相信我更改后的代码更加适合现在大多数读者的pc环境

2008-09-20 20:43:00 1231

原创 深入浅出Linux设备驱动之字符设备驱动程序

深入浅出Linux设备驱动之字符设备驱动程序刺猬@http://blog.csdn.net/littlehedgehog注: 该系列文章转载自arm+linux chinaunix博客圈圈主之博客——http://blog.chinaunix.net/u/22630/article_54997.html   为了适合我的编译环境,源代码有改动,但是相信更加适合现在大多数读者的环境。Linux下

2008-09-20 19:15:00 1175

原创 深入浅出Linux设备驱动编程之内核模块

深入浅出Linux设备驱动编程之内核模块刺猬@http://blog.csdn.net/littlehedgehog 注: 该系列文章转载自arm+linux chinaunix博客圈圈主之博客——http://blog.chinaunix.net/u/22630/article_54997.htmlLinux设备驱动属于内核的一部分,Linux内核的一个模块可以以两种方式被编译和加载:(1)

2008-09-19 21:37:00 1863

原创 自己动手写basic解释器(七)

 自己动手写basic解释器刺猬@http://blog.csdn.net/littlehedgehog 注: 文章basic解释源码摘自梁肇新先生的《编程高手箴言》(据他所说这个代码也是网上摘录的),源码解读参考《java编程艺术》。《java编程艺术》里面自然是java版了(可能旭哥更加适合点儿),我这里还是解读的C版basic解释器代码。终于把这个basic解释器主干源码解述完了。其实说

2008-09-15 13:16:00 7365 6

原创 自己动手写basic解释器(六)

 自己动手写basic解释器刺猬@http://blog.csdn.net/littlehedgehog 注: 文章basic解释源码摘自梁肇新先生的《编程高手箴言》(据他所说这个代码也是网上摘录的),源码解读参考《java编程艺术》。《java编程艺术》里面自然是java版了(可能旭哥更加适合点儿),我这里还是解读的C版basic解释器代码。4、for接着看for,for循环这里借助了栈来实

2008-09-14 22:25:00 3163

原创 自己动手写basic解释器(五)

  自己动手写basic解释器刺猬@http://blog.csdn.net/littlehedgehog 注: 文章basic解释源码摘自梁肇新先生的《编程高手箴言》(据他所说这个代码也是网上摘录的),源码解读参考《java编程艺术》。《java编程艺术》里面自然是java版了(可能旭哥更加适合点儿),我这里还是解读的C版basic解释器代码。是所谓先来后到,我们还是按照主函数出现的顺序

2008-09-14 21:58:00 3344 2

原创 自己动手写basic解释器(四)

自己动手写basic解释器刺猬@http://blog.csdn.net/littlehedgehog 注: 文章basic解释源码摘自梁肇新先生的《编程高手箴言》(据他所说这个代码也是网上摘录的),源码解读参考《java编程艺术》。《java编程艺术》里面自然是java版了(可能旭哥更加适合点儿),我这里还是解读的C版basic解释器代码。表达式已求,下面可以进入程序逻辑处理了,这里的代码量

2008-09-14 20:38:00 3473

原创 自己动手写basic解释器(三)

自己动手写basic解释器刺猬@http://blog.csdn.net/littlehedgehog 注: 文章basic解释源码摘自梁肇新先生的《编程高手箴言》(据他所说这个代码也是网上摘录的),源码解读参考《java编程艺术》。《java编程艺术》里面自然是java版了(可能旭哥更加适合点儿),我这里还是解读的C版basic解释器代码。经过get_token,我们可以获取一个标识符,按理

2008-09-14 19:44:00 3837

原创 自己动手写basic解释器(二)

自己动手写basic解释器刺猬@http://blog.csdn.net/littlehedgehog 注: 文章basic解释源码摘自梁肇新先生的《编程高手箴言》(据他所说这个代码也是网上摘录的),源码解读参考《java编程艺术》。《java编程艺术》里面自然是java版了(可能旭哥更加适合点儿),我这里还是解读的C版basic解释器代码。上次我们把程序装载入内存,这里我们开始做词法分析了。

2008-09-14 17:12:00 5535 4

原创 自己动手写basic解释器(一)

自己动手写basic解释器刺猬@http://blog.csdn.net/littlehedgehog注: 文章basic解释源码摘自梁肇新先生的《编程高手箴言》(据他所说这个代码也是网上摘录的),源码解读参考《java编程艺术》。《java编程艺术》里面自然是java版了(可能旭哥更加适合点儿),我这里还是解读的C版basic解释器代码。那些客套话咱就不扯

2008-09-14 16:14:00 15057 1

原创 编写shell(二)

编写shell刺猬@http://blog.csdn.net/littlehedgehog接着来写shell,今天来加上我们的条件判断语句if。为了处理if的逻辑判断,我们这里把代码区域做个划分。如下举例所示:who   ls -al if  diff file1  file2   ---------------以上是中立区 netralthen ---------------want_the

2008-09-13 19:16:00 1674

原创 编写简单多线程web服务器

编写简单多线程web服务器 刺猬@http://blog.csdn.net/littlehedgehog下面的原理解释参照《一个多线程web服务器实例(C,Linux,详细的web服务器原理)》 一文:原理:在浏览器中输入一个网址,回车之后,浏览器会向相应主机的相应端口发送一段报文,如果是http协议的(如平常看到的网页的传输协议),就会发送HTTP请求报文。下面是一个报文的例子:GET /i

2008-09-12 15:05:00 2778

原创 hdu 内核0.01版

hdu kernel 0.01 version 刺猬@http://blog.csdn.net/littlehedgehog这个内核就当是我读完了linux0.11版的一个小作业吧,不过这个小作业也让我够忙活的了... 下面直接从学校论坛上粘贴过来的:我先介绍下我的想法:当初在研读Linux0.11版内核时,我就有了打算自己动手实现操作系统的想法,人家Linus大二一个学生就能写出一个基本的操

2008-09-11 14:57:00 1430

原创 sscanf 用法示例

sscanf刺猬@http://blog.csdn.net/littlehedgehog开始一直不理解sscanf的用法,在教室里看书,没有网可上,就一直来猜这个函数作用,不过也猜得八九不离十了。回头来网上看看,没想到sscanf的作用这么强大。而且它的兄弟sprintf 我一直在用,呵呵,咋就没想到他还有个弟弟呢?sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输

2008-09-09 19:04:00 1064

原创 编写shell (一)

编写shell刺猬@http://blog.csdn.net/littlehedgehog     编写shell的第一步: 让shell可以执行程序 只有两个要点需要注意,第一,unix/linux提供相应的执行函数exec,我们只需要将我们输入的命令行分解成字符串数组即可。比如: ls -al  那么我们只需要将这个字符串拆成argv[0]="ls",arg

2008-09-07 20:49:00 1740

原创 编写 find

编写find刺猬@http://blog.csdn.net/littlehedgehog去年做的一个小搜索是win32的,这次回头看看windows SDK的代码,不得不承认windows 在API的设计上封装的很复杂,unix上逻辑上很清晰的代码在windows上看得有些让人摸不着头脑。#include #include #include #include #include int chec

2008-09-06 17:38:00 861

linux 文件隐藏

新版本主要修改了拦截函数,采用了VFS拦截,隐蔽性更强;隐藏文件全部改用链表实现,理论上支持无限个文件隐藏(只要你内存也无限^ ^)。该版本可供其他linux发行版使用,不过我没有测试。

2008-12-08

文件系统(操作系统课程设计)

本来不想发布的,发布出来貌似其实会毒害青少年,不过这个是linux版本的,我想那些想交作业的人多半不会使用linux作为操作系统吧,哈哈

2008-12-01

linux h-tool

H-tool 是一款linux环境下内核驱动级的文件/目录隐藏小工具,当时本来打算做成一个rootkit,这学期时间不够了,还是等后面吧,这里就只是把文件隐藏提炼出来了。 仅供学习参考所用,使用前请仔细阅读readme

2008-11-29

Linux内核驱动模块编程指南

非常浅显易懂 人家源码都不要钱... 我还要分么?

2008-09-20

sourceinsight

Linux 0.11 内核调试环境第二部分

2008-06-30

Linux 内核调试环境

Linux 内核调试环境 这是其中第一部分

2008-06-30

Linux 0.11 代码 chm版

这个源码 我还要大家给分 到时见了马克思 不好和linus交代

2008-04-12

Linux 0.11源码

Linux 0.11 源码 这个源码还要收大家分的话 恐怕以后见马克思时 我不好跟linus交代~~~

2008-04-12

struts 入门

struts 入门 一般书上讲myeclipse配置struts的都少 建议先看看这个教程然后熟悉struts大概操作 再来学习struts 起个感性认识的作用

2007-11-05

More Effective C++(中文)

继 Effective C++ 之後,Scott Meyers 於 1996 推出这本「续集」。条款变得比较少,页数倒是多了一些,原因是这次选材比「第一集」更高阶,尤其是第五章。Meyers 将此章命名为技术(Techniques),并明白告诉你,其中都是一些 patterns,例如 virtual ctors、smart pointers、reference counting、proxy classes,double dispatching┅等等。这一章的每个条款篇幅都在 15~30 页之谱,实在让人有「山穷水尽疑无路,柳暗花明又一村」之叹。

2007-08-25

清华大学计算机教程之-数据结构

严蔚敏的经典版本,html 格式,不错

2007-08-15

ASP.NET应用教程

简单的入门级资料,内容精简,特别适合作为新手入门学习,比起入门就看厚厚的经典书少些头昏脑胀。现在暑假学校图书馆闭馆,手头急缺asp.net资料,就是看的它了,所以强烈推荐!!

2007-07-20

css速查

内容多,不适做入门学习资料,可供平时网页设计时的参考

2007-07-20

正则表达式入门经典

很简单的入门学习资料,特别适合新手,强烈推荐

2007-07-20

编程高手箴言

“我就是程序,程序就是我。” 梁肇新 《编程高手箴言》这本书就是梁肇新自己十余年来编程经验的集结。在名人出书成为热潮的这几年中,拥有丰富经历和感悟的梁肇新却没有跟风,这本《箴言》是他的第一本著作,可谓厚积薄发。全书通篇没有时髦的IT新名词或新思想,而是踏踏实实地对很多知识进行了深刻的剖析,这有助于为编程打下坚实的根基。只有这样,才能使开发者在飞速变化的软件领域里免于雾里看花,才能更快更深地认识许多新问题、新知识,也才能更从容地应对未来之挑战。相信这本书对广大程序员大有裨益,无论是从技术角度还是从职业生涯指导角度。

2007-06-10

windows program

解决Windows程式开发各种疑难杂症时的灵丹妙药。在第五版的《Windows程式开发设计指南》中,作者身违背受敬重的Windows Pioneer Award(Windows开路先锋奖)得主,依据最新版本Windows作业系统,以可靠的取材资料校定这一本经典之作一再一次深入探索了Win32程式设计介面的根本重心。

2007-06-06

The C programming Language

c的经典巨著 不错的内容

2007-06-06

空空如也

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

TA关注的人

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