自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (4)
  • 收藏
  • 关注

转载 BT、BTS、BTR、BTC: 位测试指令

BT、BTS、BTR、BTC: 位测试指令;BT(Bit Test):        位测试;BTS(Bit Test and Set):    位测试并置位;BTR(Bit Test and Reset):  位测试并复位;BTC(Bit Test and Complement): 位测试并取反;它们的结果影响 CF;它们的指令格式相同:B

2013-07-16 20:26:38 2779

原创 Linux 内核模块编程的第一个字符设备驱动

最近学习Linux 内核模块编程,看的是《Linux内核模块编程指南》这本书,在字符设备驱动这一节遇到了几个问题,简单的记录一下。1.  ret = unregister_chrdev (...)    在编译时,出错:  error: void value not ignored as it ought to be   在cleanup_module(...)中调用的这个

2013-06-24 19:28:22 1088

原创 fedora 配置内核模块编程

以前就尝试过linux 的内核模块编程,但是一直没有成功,今天再次尝试终于成功了。我认为配置的两个关键问题是: 安装与系统内核相同的内核树编译时选择正确的内核对于第二个问题比较好解决,在写makefile时通过 uname -r便可以正确的选择内核,所以难点是正确的安装内核树,按理说,这个也不是什么难题,主要是因为有些发行版默认不安装内核树,或者安装内核树后对内核升

2013-06-21 17:03:48 1078

转载 解决TCP网络传输“粘包”问题

当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的

2013-06-09 22:38:43 720

转载 GIT的使用

Git的使用说明一,Git代码状态转换图其中:未被Git跟踪的状态为unstage状态      已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态untrack files是指尚未被git所管理的文件;changed but not updated是指文件被git管理,并且发生了改变,但改动还没被git管理;这两种状态,都可以看成是改动还没被

2013-06-03 21:38:43 629

转载 linux diff 详解

diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:  $ diff diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。一、diff的三种格式由于历史原因,diff有三种格式:  * 正常格式(normal dif

2013-05-24 11:28:00 462

原创 用%1s读取字符的一种潜在的危险

今天在做OJ时遇到了一个奇怪的问题,就是用scanf(“%1s”,...)读取字符时,发现会改变其他地方的值,经调试发现了问题所在,首先看一下代码char c;int state[Len][Len];for(i = 0;i < Len;i++){    for(j = 0;j < Len;j++){        scanf("%1s",&c); if(c == '+'){

2013-05-18 10:44:38 1793

原创 scanf家族%*的妙用

最近写程序用到sscanf,发现自己以前对%*这个格式根本没有理解,可见只看书而不进行实际的操作是不能够对问题进行深入的理解。先看个例子,假设我们输入:the hour is 10,the minute is 30而我们只想读取两个数字,通常我们可以分多次读,但是这样比较费事,这时候%*便有用武之地了。scanf("%*[^0-9]%d%*[^0-9]%d",&h,&m);*表示跳过[

2013-04-13 11:02:24 732

原创 call conventions

call conventions 是在调用函数时要遵守的一系列的约定,包括怎样传参数,怎样返回值,怎样管理栈及帧指针等。主流的约定有三种:stdcall,cdecl,fastcall。c++中的thiscall。1.cdeclc语言的默认调用约定参数用栈,以从右到左传递,返回值用eax来传递。调用者负责清理堆栈,这使得cdecl支持可变参数,同时也不会把参数的数目附加到函数名后面,汇编

2013-04-13 10:06:17 634

原创 fedora 17 xfce 安装libreoffice

//安装libreoffice办公套件yum groupinstall "Office/Productivity"//安装Libreoffice中文语言包上面的第二条命令安装中文语言包相当于汉化了LibreOffice,如果你需要其他语言的安装包,可以尝试下面的命令进行搜索yum list libreoffice*如果需要卸载LibreOffice可以尝试下面的命令:yum

2013-04-12 10:55:52 885

转载 详解磁盘分区表

人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而

2013-04-03 23:44:02 1069

转载 如何看懂man手册

1 什么是man手册首先,man是manual的简称,中文说法可以是手册。在Linux世界中,许多新手请教某条命令的用法时, 好多不耐心的老手通常会用一条命令来回答这位无助的新手,而这条命令通常就是man开头。无助的新手敲上这条命令一看究竟,在终端上顿时显示出来了一屏幕的英文,老手的意思是,自己看看手册吗,可是看手册也是有学问的,无助的新手甚至不知道怎么退出这条命令呢。下面

2013-04-03 23:20:57 1494

原创 挂载虚拟机的镜像文件

首先可以通过dd命令创建一个100M的文件来模拟一个磁盘镜像文件然后用fdisk创建两个分区,结果如下:用losetup工具将a.img和loop设备映射起来,首先用  -f 选项找出第一个可用的设备:在我们创建的镜像文件a.img中含有两个分区,所以我们不能简单的进行挂载,而是要将a.img中的每个分区映射出来在一个一个的进行挂载,kpartx就是这样的一个工具,

2013-04-01 20:33:18 1473

原创 continue 遇到各种循环

以前一直以为contiue就是跳过continue后面的语句而直接到循环的开始处,但是今天在Linux 0.11 的fs/buffer.c发现struct buffer_head *getblk(...){ .... tmp = free_list; do{ if(tmp->b_count) continue

2013-03-21 22:05:18 644

转载 ACM进阶指南

ACM队不是为了一场比赛而存在的,为的是队员的整体提高。大学期间,ACM队队员必须要学好的课程有:l C/C++两种语言l 高等数学l 线性代数l 数据结构l 离散数学l 数据库原理l 操作系统原理l 计算机组成原理l 人工智能l 编译原理l 算法设计与分析除此之外,我希望你们能掌握一些其它的知识,因为知识都是相互联系,触类旁通的。以下学习计

2013-03-19 16:18:46 371

原创 C 语言中对浮点数取整

今天做poj3299(很简单的一道题)遇到了浮点数取整的问题,根据网上的资料整理了一下。假设输入的数据为double a = 3.146;要求保留两位小数。最通常的做法是:double b = (int)((a *100) + 0.5) /100.0;这样便能够得到3.15;但是这样有个问题,当对负数进行四舍五入时,如-3.146,精确到3位进行四舍五入,应该是-3.15,

2013-03-19 16:10:57 6646

原创 一段经典的c代码

今天看了CoolShell的一篇“深入理解C语言”的博文,受益匪浅,简单的写下自己的理解。1 int main(){ int a= 42; printf("%d\n",a);}关于这代码,需注意以下几点:这段代码在C++下无法编译,因为C++需要明确声明函数这段代码在C的编译器下会编译通过,因为在编译期,编译器会生成一个printf的函数定义

2013-03-16 19:16:54 964

转载 内存对齐#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&amp;~(sizeof(int) - 1) ) .

对于两个正整数 x, n 总存在整数 q, r 使得x = nq + r, 其中  0q, r 是唯一确定的。q = [x/n], r = x - n[x/n]. 这个是带余除法的一个简单形式。在 c 语言中, q, r 容易计算出来: q = x/n, r = x % n.所谓把 x 按 n 对齐指的是:若 r=0, 取 qn, 若 r>0, 取 (q+1)n. 这也

2013-03-16 14:49:54 653

转载 CentOS / Redhat Iptables Firewall Configuration Tutorial

讲iptables 比较明白的。How do I configure a host-based firewall called Netfilter (iptables) under CentOS / RHEL / Fedora / Redhat Enterprise Linux?Netfilter is a host-based firewall for Linux operating

2013-03-13 10:37:05 1409

转载 xen,xenserver,xcp的区别

xen,xenserver,xcp的区别said by Scott Alan Miller on community.spiceworkshttp://community.spiceworks.com/topic/131849-xen-vs-xenserver-vs-xcpXen: The open source, completely free granddaddy of t

2013-01-21 16:02:06 979

转载 用GCC输出带C源代码注释的汇编列表文件

我们都知道gcc的-S开关可以用来生成汇编代码,但有时候,单有汇编文件是不够的,我们希望的是将C语言程序的源代码和汇编语言文本交错在一起查看,这是LISTING功能,在gcc中并没有专门的FAQ说明,区区在网上查了很多资料才知道怎么实现,所以特此记下。      gcc -c -g -Wa,-adlhn ee.c >  ee.anno.s由此生成的ee.anno.s即是ee.c

2013-01-16 15:37:49 1004

转载 保护模式寻址方式

段机制轻松体验[内存寻址]实模式下的内存寻址:让我们首先来回顾实模式下的寻址方式段首地址×16+偏移量 = 物理地址为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻址64KB,它无法寻址到1M内存。于是,Intel设计了这种寻址方式,先缩小4位成16位放入到段寄存器,用到时候,再将其扩大到20位,这也造成了段的首地址必须是16的倍数的限制。

2013-01-15 11:50:01 874

转载 Bochs 调试指令

bochs调试FAQ:1.       Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的,所以我们可以在启动bochs调试的命令行下输入        pb 0x7c00或者 vb 0:0x7c00就着输入        cbochs就会在0x7c00处停下

2013-01-12 23:11:35 392

转载 重装Windows后修复Ubuntu的grub引导

Ubuntu装好过后会自动扫描硬盘,给grub添加别的系统的引导,为神马Windows就不能呢~背景,昨晚上刷机的时候准备从Ubuntu启动到Windows,然后悲剧的发现它蓝屏,对于蓝屏我实在毫无战斗力,折腾到今天也没有搞定,决定重装Win7,显然,装完后grub没了我是使用的LiveCD(USB)的修复方法,用你的LiveCD(USB)启动到Ubuntu,打开终端输入以下命令1.不

2013-01-02 12:39:50 662

原创 make 自动产生依存关系

在学习linux 0.11内核时,对它的makefile中产生各文件的依存关系的那部分很是不理解,直到最近看了《Managing  Projects with GNU Make》后才明白了。简单的记录一下。         下面是原文件中的那部分:                首先说一下这样做到必要性:当我们的项目文件比较小时,自己手动的添加文件的依存关系还是可以的,但是在实际的项目

2012-12-18 17:07:33 592

转载 linux内核符号表

Linux内核的符号表位于两个部分。首先是内核的静态部分,也就是内核文件映像vmlinuz部分的符号表。还有一部分则是Linux可配置模块部分的符号表。前者对应于/proc/ksyms和System.map这两个文件。  前者是一个"proc文件"并且是在内核启动时创建的。实际上 它不是一个真实的文件;它只是内核数据的简单表示形式。然而,System.map却是文件系统上的一个真实文件。可以用

2012-12-17 17:09:57 410

转载 解决gnome-mplayer中文字幕乱码

设置字体,解决乱码编辑~/.mplayer/config,添加以下2行:subcp=cp936   #支持中文字幕font=/home/xxb/.mplayer/wqy-zenhei.ttf #选择字体,可自由设置支持中文的字体下面贴出我的config:# Write your default config options here![gno

2012-12-16 20:33:36 22610

原创 make学习笔记1

规则    make的规则有具体规则(explicit rule),模式规则(pattern rule),隐含规则(implicit rule)。    1.具体规则    (1)  我们编写到规则大部分是具体规则。规则不必一次定义完全(all at once),同一个目标可以分多次:           path.o:path.c  make.h config.h

2012-12-15 21:10:49 380

转载 bochs中遇到到问题

1、错误:========================================================================Bochs x86 Emulator 2.4.6Build from CVS snapshot, on February 22, 2011Compiled at Nov 11 2011, 09:31:18=======

2012-12-13 22:36:19 9184

转载 Linux 下虚拟机Bochs的使用

1.虚拟一个软盘 在安装好的Bochs组件中,有一个工具叫做bximage,它不但可以生成虚拟软盘,还可以生成虚拟硬盘,这里我们生成虚拟软盘,(这是因为后面我们的测试程序是给予软盘的)。具体步骤如下:至此就生成了一个1.44M的虚拟软盘。2.一个简单的测试程序我们打算从软盘启动虚拟机,这样的话我们就需要一个软盘的引导程序,来启动虚拟机,引导程序我们使用Orange's一个操

2012-12-13 21:36:20 974

转载 Ubuntu下Firefox安装flashplayer

1:下载flashplayer11_b1_install_lin_32_071311.tar.gz文件。2:解压tar -xzvf flashplayer11_b1_install_lin_32_071311.tar.gz3:拷贝libflashplayer.so :sudo cp libflashplayer.so /usr/lib/mozilla/plugins     其中我在用

2012-12-13 19:31:50 355

转载 MD5校验失败:no properly formatted MD5 checksum lines found

场景:从某地址下载数据文件及其MD5校验文件,特殊的是这个原始的校验文件(filename.md5.tmp)不是正常的校验文件,需要颠倒校验和和文件名。 执行以下shell来颠倒MD5文件中的两部分:Shell代码  awk -vfname="filename" '{print $2"\t"fname}' "filename.md5.tmp" > "file

2012-12-10 22:27:31 5484 1

原创 fedora 14 安装ati显卡驱动

自己用Linux 也有两年到时间了,最开始用到是ubuntu,现在用到也是ubuntu,期间也用过slackware,backtrack,redhat,fedora,freebsd,甚至自己编译过gentoo,但是这些在我到机器上都有一个问题:cpu到风扇总是狂转。这个现象在ubuntu或者windows上都没有,这是个曾经困扰我很长时间到问题,直到现在才找到了问题的症结所在:因为我到显卡是ATI

2012-12-09 22:56:54 783

转载 fedora14 官方下载地址

fedora14 官方下载地址KDE:[url=http://download.fedoraproject.org/pub/fedora/linux/releases/14/Live/i686/Fedora-14-i686-Live-KDE.iso]http://download.fedoraproject.org/pub/fedora/linux/releases/14/Live/i686/

2012-12-09 10:27:42 12608

转载 ImportError: No module named setuptools 解决方案

Wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gztar zxvf setuptools-0.6c11.tar.gzcd setuptools-0.6c11python setup.py buildpython setup.py install

2012-12-08 17:34:21 437

转载 制作的Fedora启动U盘无法引导系统的解决办法

最近发现手头的好几个U盘做成Fedora启动盘后,在引导系统时屏幕一直停留在左上角闪光标的状态,无法进live系统,而之前这些U盘都是能够作为Fedora启动盘正常引导的。       在网上查了挺久,终于发现是因为这几个U盘都用了UltraISO(或类似)的软件做成其他系统的启动盘,而且启动模式都选择了USB-HDD,而在这种模式下使用Fedora的启动盘制作工具做出来的启动盘是有问题的,所

2012-12-07 09:02:23 725

原创 一些牛人的blog

wangcong:http://wangcong.orgYouxu:Yhttp://blog.youxu.info/酷壳:http://coolshell.cn/basiccoder:http://basiccoder.com/Matrix67:http://www.matrix67.com/blog/dong:http://dongxicheng.org/by

2012-12-04 23:07:39 539

转载 虚拟机:解释器,树遍历解释器,基于栈与基于寄存器,大杂烩

虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩1、解析器与解释器 解析器是parser,而解释器是interpreter。两者不是同一样东西,不应该混用。 前者是编译器/解释器的重要组成部分,也可以用在IDE之类的地方;其主要作用是进行语法分析,提取出句子的结构。广义来说输入一般是程序的源码,输出一般是语法树(syntax tree,也叫pars

2012-12-04 22:45:15 955

转载 灰常好的开源项目[c/c++]

灰常好的开源项目[c/c++]ClibPDF http://cosoft.net.cn http://www2s.biglobe.ne.jp/~Nori/ruby/dist/ClibPDF-ALPHA-20010519.tar.gz http://www2s.biglobe.ne.jp/~Nori/ruby/dist/ClibPDF-ALPHA-20010519.tar.g

2012-11-20 12:42:29 803

转载 利用Oprofile对多核多线程进行性能分析

利用Oprofile对多核多线程进行性能分析 用程序不断调优的过程中,除了制定完备的测试基准(Benchmark)外,还需要一把直中要害的利器——性能分析工具。 根据工具的复杂度和所提供的功能,可以将性能工具分为两个层次: 基本的计时工具在普通生活中,秒表是最简单的计时工具。根据该思想,可以将计时函数放在代码的任意位置并多次调用,这样就可以测量出整个应用或者某一

2012-11-10 10:20:15 799

vim高级技巧

vim的一些技巧,想精通vim,高效的利用vim必备资料

2013-04-02

TCP/IP卷一

学习tcp,ip 的必备书籍,用tcpdump来抓取数据包

2013-03-16

ANSI 标准详解

C 语言的最权威的参考,一些细节问题必须要参考的文档

2013-03-16

guide to the xen hypervisor

xen hypervisor的英文官方文档,学习xen虚拟机的必备资料。

2013-01-17

空空如也

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

TA关注的人

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