11 2012 档案

linux硬链接与软链接 [转]
摘要:1. Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引 阅读全文

posted @ 2012-11-29 15:46 龙豆 阅读(305) 评论(0) 推荐(0) 编辑

Linux的inode的理解 [转]
摘要:一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比 阅读全文

posted @ 2012-11-29 15:45 龙豆 阅读(280) 评论(0) 推荐(0) 编辑

优先级反转 [转]
摘要:优先级反转1、什么是优先级反转? 优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源。高优先任务由于因资源缺乏而处于受阻状态,一直等到低优先级任务释放资源为止。而低优先级获得的CPU时间少,如果此时有优先级处于两者之间的任务,并且不需要那个共享资源,则该中优先级的任务反而超过这两个任务而获得CPU时间。如果高优先级等待资源时不是阻塞等待,而是忙循环,则可能永远无法获得资源,因为此时低优先级进程无法与高优先级进程争夺CPU时间,从而无法执行,进而无法释放资源,造成的后果就是高优先级任务无法获得资源而继续推进。2、解决方案:(1)设置优先级上限,给临界区一个高优先级,进入临界区 阅读全文

posted @ 2012-11-25 19:44 龙豆 阅读(270) 评论(0) 推荐(0) 编辑

栈溢出攻击 [转]
摘要:本文的实验来源于《Computer Systems A Programmer's Perspective》(深入理解计算机系统》一书中第三章的一个实验。 作者给出了一个含有缓冲区溢出的程序bufbomb.c,你需要做的,就是注入给缓冲区些特殊的数据,到底利用缓冲区的目的。 1 //bufbomb.c 2 /* Bomb program that is solved using a buffer overflow attack */ 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <ctype.h& 阅读全文

posted @ 2012-11-23 10:28 龙豆 阅读(620) 评论(0) 推荐(0) 编辑

GCC __attribute__ 详解 [转]
摘要:1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof(int)=2;sizeof(my)=3;(紧凑模式)在GCC下:struct my{ char ch; int a;} sizeof(int)=4;sizeof(my)=8;(非紧凑模式)在GCC下:struct 阅读全文

posted @ 2012-11-15 13:07 龙豆 阅读(13510) 评论(0) 推荐(0) 编辑

git checkout简介 [转]
摘要:http://web.mit.edu/~thefred/MacData/afs/sipb/project/git/git-doc/git-checkout.htmlgit checkout的主要功能就是迁出一个分支的特定版本。默认是迁出分支的HEAD版本示例:git checkout master //取出master版本的head。git checkout tag_name //在当前分支上 取出 tag_name 的版本git checkout master file_name //放弃当前对文件file_name的修改git checkout commit_id file_name... 阅读全文

posted @ 2012-11-14 17:57 龙豆 阅读(2033) 评论(0) 推荐(0) 编辑

git merge 合并分支 [转]
摘要:git merge 用来做分支合并,将其他分支中的内容合并到当前分支中。比如分支结构如下: master /C0 ---- C1 ---- C2 ---- C4 \ C3 ---- C5 \ issueFix当前分支是master$ git checkout master把issu... 阅读全文

posted @ 2012-11-14 17:54 龙豆 阅读(24112) 评论(0) 推荐(1) 编辑

VIM中空格和TAB的替换 [转]
摘要:在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4 (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:TAB替换为空格::set ts=4:set expandtab:%retab!空格替换为TAB::set ts=4:set noexpandtab:%retab!加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。[转]http://www.cnblogs.com/rangzee/archive/2010/07/06/1772000 阅读全文

posted @ 2012-11-10 11:59 龙豆 阅读(362) 评论(0) 推荐(0) 编辑

MySQL常用语句总结
摘要:1. LIKE比如我们要从很多文章的标题中找到所有包含"mysql"这个字眼的文章。这就应该在 where 子句中用到 "like",就是模糊查询。 首先交待一下sql语言中的统配符,统配符就是用一个字符统一匹配任何字符,sql中,一个字符"_"匹配单个的任何字符;一个字符"%"匹配任何零个到多个字符。举例来说,"a_" 可以匹配诸如 "aa"、"ab"、"a2"、"a$"……等等;而 "a%" 阅读全文

posted @ 2012-11-06 23:18 龙豆 阅读(264) 评论(0) 推荐(0) 编辑

经典PV操作问题 [转]
摘要:1. 睡眠理发师问题理发店里有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,则理发师便在理发椅上睡觉,如图2-20所示。当一个顾客到来时,他必须先叫醒理发师,如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,他们就坐下来等。如果没有空椅子,他就离开。这里的问题是为理发师和顾客各编写一段程序来描述他们的行为,要求不能带有竞争条件。我们的解法使用三个信号量:customers,用来记录等候理发的顾客数(不包括正在理发的顾客);barbers,记录正在等候顾客的理发师数,为0或1;mutex,用于互斥。我们还需要一个变量waiting,它也用于记录等候的顾客数,实际上是cu 阅读全文

posted @ 2012-11-05 14:03 龙豆 阅读(5125) 评论(0) 推荐(0) 编辑

Scheme的eq? equal? eqv? [转]
摘要:Scheme语言中可以用<,>,<=,>=,= 来判断数字类型值或表达式的关系,如判断变量x是否等于零,它的形式是这样的:(= x 0) ,如x的值为0则表达式的值为#t,否则为#f。还有下面的操作:(eqv? 34 34) => #t(= 34 34) => #t以上两个form功能相同,说明 eqv? 也可以用于数字的判断。在Scheme语言中有三种相等的定义,两个变量正好是同一个对象;两个对象具有相同的值;两个对象具有相同的结构并且结构中的内容相同。除了上面提到的符号判断过程和eqv?外,还有eq?和equal?也是判断是否相等的过程。eq?,eqv? 阅读全文

posted @ 2012-11-03 15:01 龙豆 阅读(2131) 评论(0) 推荐(0) 编辑

Ubuntu 下截图工具 [转]
摘要:个人觉的Ubuntu附件自带的抓图工具就很不错了,这个是它的主界面但每次截图都要进去打开它就麻烦了,可不可以设置快捷键呢,就像QQ的那种按下Ctrl+Alt+A就可以截图呢当然可以了(就下大致过程,要想加其它程序快捷键的也类似)首先要查看下这个抓图软件的命令参数,运行一个终端输入gnome-screenshot -h就可以了用法:gnome-screenshot [选项...] 抓取屏幕的图片帮助选项:-h, --help 显示帮助选项--help-all 显示全部帮助选项--help-gtk 显示 GTK+ 选项应用程序选项:-w, --window 抓取窗口,而不是整个屏幕-a, --ar 阅读全文

posted @ 2012-11-02 22:25 龙豆 阅读(196) 评论(0) 推荐(0) 编辑

中断门的DPL [转]
摘要:由硬件自动实现的中断响应和异常处理的步骤如下: 首先,判断中断向量号要索引的门描述符是否超出IDT的界限。若超出界限,就引起通用保护故障,出错码为中断向量号乘8再加2。 其次,从IDT中取得对应的门描述符,分解出选择子、偏移量和描述符属性类型,并进 行有关检查。描述符只能是任务门、286中断门、286陷阱门、386中断门或386陷阱门,否则就引起通用保护故障,出错码是中断向量号乘8再加2。如果是由INT n指令或INTO指令引起转移,还要检查中断门、陷阱门或任务门描述符中的DPL是否满足CPL<=DPL(对于其它的异常或中断,门中的DPL被 忽略)。这种检查可以避免应用程序执行INT . 阅读全文

posted @ 2012-11-01 23:21 龙豆 阅读(681) 评论(0) 推荐(0) 编辑

进程切换 TSS [转]
摘要:[转] http://www.eefocus.com/article/09-06/74895s.html Intel i386 体系结构包括了一个特殊的段类型,叫任务状态段(TSS),如图5.4所示。每个任务包含有它自己最小长度为104字节的TSS段,在/include/ i386/processor.h 中定义为tss_struct结构: struct tss_struct { unsigned short back_link,__blh; unsigned long esp0; unsigned short ss0,__... 阅读全文

posted @ 2012-11-01 21:35 龙豆 阅读(3654) 评论(0) 推荐(0) 编辑

任务门,调用门,中断门,陷阱门 [转]
摘要:每个任务有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时,要用到这些信息。为了控制任务内发生特权级变换的转移,为了控制任务切换,一般要通过控制门进行这些转移。本文将介绍任务状态段和控制门。<一>系统段描述符系统段是为了实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述符表LDT段。用于描述系统段的描述符称为系统段描述符。1.系统段描述符的格式系统段描述符的一般格式如下表所示。系统段描述符m+7m+6m+5m+4m+3m+2m+1m+0Base(31...24)AttributesSegment Base(23 阅读全文

posted @ 2012-11-01 16:48 龙豆 阅读(911) 评论(0) 推荐(0) 编辑

保护模式特权级别DPL,RPL,CPL 之间的联系和区别 [转]
摘要:版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://myjfm.blogbus.com/logs/57252310.html---------------------CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。 RPL说明的是进程对段访问的请求权限(Request Privilege Level),是对于段选择子而言的,每个段选择子有自己的RPL,它说明的是进程对段访问的请求权限,有点像函数参数。而且RPL对每个段来说不是固定 的,两次访问同一段时... 阅读全文

posted @ 2012-11-01 15:30 龙豆 阅读(1997) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示