- 博客(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
2955
原创 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
1133
原创 fedora 配置内核模块编程
以前就尝试过linux 的内核模块编程,但是一直没有成功,今天再次尝试终于成功了。我认为配置的两个关键问题是: 安装与系统内核相同的内核树编译时选择正确的内核对于第二个问题比较好解决,在写makefile时通过 uname -r便可以正确的选择内核,所以难点是正确的安装内核树,按理说,这个也不是什么难题,主要是因为有些发行版默认不安装内核树,或者安装内核树后对内核升
2013-06-21 17:03:48
1142
转载 解决TCP网络传输“粘包”问题
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的
2013-06-09 22:38:43
750
转载 GIT的使用
Git的使用说明一,Git代码状态转换图其中:未被Git跟踪的状态为unstage状态 已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态untrack files是指尚未被git所管理的文件;changed but not updated是指文件被git管理,并且发生了改变,但改动还没被git管理;这两种状态,都可以看成是改动还没被
2013-06-03 21:38:43
658
转载 linux diff 详解
diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入: $ diff diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。一、diff的三种格式由于历史原因,diff有三种格式: * 正常格式(normal dif
2013-05-24 11:28:00
482
原创 用%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
1861
原创 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
795
原创 call conventions
call conventions 是在调用函数时要遵守的一系列的约定,包括怎样传参数,怎样返回值,怎样管理栈及帧指针等。主流的约定有三种:stdcall,cdecl,fastcall。c++中的thiscall。1.cdeclc语言的默认调用约定参数用栈,以从右到左传递,返回值用eax来传递。调用者负责清理堆栈,这使得cdecl支持可变参数,同时也不会把参数的数目附加到函数名后面,汇编
2013-04-13 10:06:17
679
原创 fedora 17 xfce 安装libreoffice
//安装libreoffice办公套件yum groupinstall "Office/Productivity"//安装Libreoffice中文语言包上面的第二条命令安装中文语言包相当于汉化了LibreOffice,如果你需要其他语言的安装包,可以尝试下面的命令进行搜索yum list libreoffice*如果需要卸载LibreOffice可以尝试下面的命令:yum
2013-04-12 10:55:52
932
转载 详解磁盘分区表
人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而
2013-04-03 23:44:02
1292
转载 如何看懂man手册
1 什么是man手册首先,man是manual的简称,中文说法可以是手册。在Linux世界中,许多新手请教某条命令的用法时, 好多不耐心的老手通常会用一条命令来回答这位无助的新手,而这条命令通常就是man开头。无助的新手敲上这条命令一看究竟,在终端上顿时显示出来了一屏幕的英文,老手的意思是,自己看看手册吗,可是看手册也是有学问的,无助的新手甚至不知道怎么退出这条命令呢。下面
2013-04-03 23:20:57
1603
原创 挂载虚拟机的镜像文件
首先可以通过dd命令创建一个100M的文件来模拟一个磁盘镜像文件然后用fdisk创建两个分区,结果如下:用losetup工具将a.img和loop设备映射起来,首先用 -f 选项找出第一个可用的设备:在我们创建的镜像文件a.img中含有两个分区,所以我们不能简单的进行挂载,而是要将a.img中的每个分区映射出来在一个一个的进行挂载,kpartx就是这样的一个工具,
2013-04-01 20:33:18
1566
原创 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
678
转载 ACM进阶指南
ACM队不是为了一场比赛而存在的,为的是队员的整体提高。大学期间,ACM队队员必须要学好的课程有:l C/C++两种语言l 高等数学l 线性代数l 数据结构l 离散数学l 数据库原理l 操作系统原理l 计算机组成原理l 人工智能l 编译原理l 算法设计与分析除此之外,我希望你们能掌握一些其它的知识,因为知识都是相互联系,触类旁通的。以下学习计
2013-03-19 16:18:46
391
原创 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
6912
原创 一段经典的c代码
今天看了CoolShell的一篇“深入理解C语言”的博文,受益匪浅,简单的写下自己的理解。1 int main(){ int a= 42; printf("%d\n",a);}关于这代码,需注意以下几点:这段代码在C++下无法编译,因为C++需要明确声明函数这段代码在C的编译器下会编译通过,因为在编译期,编译器会生成一个printf的函数定义
2013-03-16 19:16:54
996
转载 内存对齐#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(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
674
转载 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
1456
转载 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
1021
转载 用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
1084
转载 保护模式寻址方式
段机制轻松体验[内存寻址]实模式下的内存寻址:让我们首先来回顾实模式下的寻址方式段首地址×16+偏移量 = 物理地址为什么要×16?因为在8086CPU中,地址线是20位,但寄存器是16位的,最高寻址64KB,它无法寻址到1M内存。于是,Intel设计了这种寻址方式,先缩小4位成16位放入到段寄存器,用到时候,再将其扩大到20位,这也造成了段的首地址必须是16的倍数的限制。
2013-01-15 11:50:01
937
转载 Bochs 调试指令
bochs调试FAQ:1. Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的,所以我们可以在启动bochs调试的命令行下输入 pb 0x7c00或者 vb 0:0x7c00就着输入 cbochs就会在0x7c00处停下
2013-01-12 23:11:35
426
转载 重装Windows后修复Ubuntu的grub引导
Ubuntu装好过后会自动扫描硬盘,给grub添加别的系统的引导,为神马Windows就不能呢~背景,昨晚上刷机的时候准备从Ubuntu启动到Windows,然后悲剧的发现它蓝屏,对于蓝屏我实在毫无战斗力,折腾到今天也没有搞定,决定重装Win7,显然,装完后grub没了我是使用的LiveCD(USB)的修复方法,用你的LiveCD(USB)启动到Ubuntu,打开终端输入以下命令1.不
2013-01-02 12:39:50
705
原创 make 自动产生依存关系
在学习linux 0.11内核时,对它的makefile中产生各文件的依存关系的那部分很是不理解,直到最近看了《Managing Projects with GNU Make》后才明白了。简单的记录一下。 下面是原文件中的那部分: 首先说一下这样做到必要性:当我们的项目文件比较小时,自己手动的添加文件的依存关系还是可以的,但是在实际的项目
2012-12-18 17:07:33
644
转载 linux内核符号表
Linux内核的符号表位于两个部分。首先是内核的静态部分,也就是内核文件映像vmlinuz部分的符号表。还有一部分则是Linux可配置模块部分的符号表。前者对应于/proc/ksyms和System.map这两个文件。 前者是一个"proc文件"并且是在内核启动时创建的。实际上 它不是一个真实的文件;它只是内核数据的简单表示形式。然而,System.map却是文件系统上的一个真实文件。可以用
2012-12-17 17:09:57
438
转载 解决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
23266
原创 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
410
转载 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
9547
转载 Linux 下虚拟机Bochs的使用
1.虚拟一个软盘 在安装好的Bochs组件中,有一个工具叫做bximage,它不但可以生成虚拟软盘,还可以生成虚拟硬盘,这里我们生成虚拟软盘,(这是因为后面我们的测试程序是给予软盘的)。具体步骤如下:至此就生成了一个1.44M的虚拟软盘。2.一个简单的测试程序我们打算从软盘启动虚拟机,这样的话我们就需要一个软盘的引导程序,来启动虚拟机,引导程序我们使用Orange's一个操
2012-12-13 21:36:20
1044
转载 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
373
转载 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
6338
1
原创 fedora 14 安装ati显卡驱动
自己用Linux 也有两年到时间了,最开始用到是ubuntu,现在用到也是ubuntu,期间也用过slackware,backtrack,redhat,fedora,freebsd,甚至自己编译过gentoo,但是这些在我到机器上都有一个问题:cpu到风扇总是狂转。这个现象在ubuntu或者windows上都没有,这是个曾经困扰我很长时间到问题,直到现在才找到了问题的症结所在:因为我到显卡是ATI
2012-12-09 22:56:54
822
转载 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
13164
转载 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
464
转载 制作的Fedora启动U盘无法引导系统的解决办法
最近发现手头的好几个U盘做成Fedora启动盘后,在引导系统时屏幕一直停留在左上角闪光标的状态,无法进live系统,而之前这些U盘都是能够作为Fedora启动盘正常引导的。 在网上查了挺久,终于发现是因为这几个U盘都用了UltraISO(或类似)的软件做成其他系统的启动盘,而且启动模式都选择了USB-HDD,而在这种模式下使用Fedora的启动盘制作工具做出来的启动盘是有问题的,所
2012-12-07 09:02:23
787
原创 一些牛人的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
576
转载 虚拟机:解释器,树遍历解释器,基于栈与基于寄存器,大杂烩
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩1、解析器与解释器 解析器是parser,而解释器是interpreter。两者不是同一样东西,不应该混用。 前者是编译器/解释器的重要组成部分,也可以用在IDE之类的地方;其主要作用是进行语法分析,提取出句子的结构。广义来说输入一般是程序的源码,输出一般是语法树(syntax tree,也叫pars
2012-12-04 22:45:15
1012
转载 灰常好的开源项目[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
860
转载 利用Oprofile对多核多线程进行性能分析
利用Oprofile对多核多线程进行性能分析 用程序不断调优的过程中,除了制定完备的测试基准(Benchmark)外,还需要一把直中要害的利器——性能分析工具。 根据工具的复杂度和所提供的功能,可以将性能工具分为两个层次: 基本的计时工具在普通生活中,秒表是最简单的计时工具。根据该思想,可以将计时函数放在代码的任意位置并多次调用,这样就可以测量出整个应用或者某一
2012-11-10 10:20:15
840
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人