自定义博客皮肤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)
  • 资源 (6)
  • 收藏
  • 关注

转载 tar 与 cpio

tartar 是在 AT&T UNIX Version 6 (约 1975)中出现的。 tar可以直接对文件系统操作。它直接将文件和目录写到 磁带上, tar 不支持像 cpio 那样多的选项,但 tar 不需要用像用 cpio那样奇怪的 命令行管道。许多版本的 tar 不支持通过网络备份,而 GNU 版的 tar (FreeBSD 用的就是 GNU 版的)提供与 rdum

2009-09-28 23:18:00 313

原创 kernel boot tracer

Boot tracerThe purpose of this tracer is to helpsdevelopers to optimize boot times: it records the timings of theinitcalls. Its aim is to be parsed by the scripts/bootgraph.pl tool toproduce

2009-09-19 10:10:00 329

原创 文件系统性能比较的几篇文章

  Lies, Damn Lies and File System BenchmarksMetadata Performance of Four Linux File SystemsMetadata Performance Exploration Part 2: XFS, JFS, ReiserFS, ext2, and Reiser4 

2009-09-09 23:58:00 291

原创 硬盘性能测试工具

iometerhttp://blog.pconline.com.cn/article/204710.html hd_speediozone

2009-09-09 15:30:00 287

原创 dmesg 显示不完全解决方案

dmesg 是从内核的一个ring buf 的内容。当内容增长的时候,dmesg前面的内容会被冲掉。解决的方法:调整printk log的最大值。在内核编译配置选项中, Kernel hacking ---> Kernel buffer size默认大小是16k  可以调整到数值到16,17 代表64kb 128kb

2009-09-07 19:36:00 1655

转载 CPU电源状态(C-States)

CPU电源状态(C-States)一般用户很少注意到这个状态,通常只会在使用CPU-Z来监控时钟频率和电压时才会留意到它。移动处理器的C状态比台式机的多。例如,Core 2 Duo处理器(Meron)会支持C0-C4状态,然后桌面型Core 2 Duo处理(Conroe)仅支持C1-C0状态。 

2009-08-21 15:16:00 5548 1

转载 常用的python库

Tkinter———— Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对TkAPI的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由JohnOusterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,目的是为了简化用户接口的设计过程。

2009-08-19 09:57:00 875

转载 可变参数函数示例

演示如何使用参数个数可变的函数,采用ANSI标准形式 #include ; #include ; #include ; /* 函数原型声明,至少需要一个确定的参数, 注意括号内的省略号 */ int demo( char *, ... ); void main( void ) { demo("DEMO", "This", "is", "a", "de

2009-08-12 18:50:00 210

原创 System.map和kallsys

Linux 符号表使用到2个文件: /proc/ksyms   System.map  /proc/ksyms是一个“proc file”,在内核引导时创建。实际上,它并不真正的是一个文件,它只不过是内核数据的表示,却给人们是一个磁盘文件的假象,这从它的文件大小是0可以看出来。然而,System.map是存在于你的文件系统上的实际文件。 当你编译一个新内核时,各个符号名

2009-08-11 18:52:00 384

原创 关于printk消息显示

/proc/sys/kernel/printk该文件有四个数字值,它们根据日志记录消息的重要性,定义将其发送到何处。该文件的四个值为:控制台日志级别:优先级高于该值的消息将被打印至控制台缺省的消息日志级别:将用该优先级来打印没有优先级的消息最低的控制台日志级别:控制台日志级别可被设置的最小值(最高优先级)缺省的控制台日志级别:控制台日志级别的缺省值缺省设置:6 4

2009-08-11 18:49:00 644

翻译 Block I/O

  The storage media contains files residing in a filesystem, such as EXT3 or Reiserfs. User applications invoke I/O system calls to access these files. The resulting filesystem operations pass thr

2009-08-10 18:19:00 621

原创 SATA AHCI相关知识

SATA 相关知识 SATA的全称是Serial Advanced Technology Attachment.SATA的优势:支持热插拔 ,传输速度快,执行效率高.串口硬盘是一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而知名。Serial ATA以连续串行的方式传送数据,一次只会传送1位数据。这样能减少SATA接口的针脚数目,使连接电缆数目变少,效率会更高。实际上,S

2009-08-10 17:36:00 1106

转载 热设计功耗 热量能耗简介

TDP是反应一颗处理器热量释放的指标。TDP的英文全称是“Thermal DesignPower”,中文直译是“热量设计功耗”。TDP功耗是处理器的基本物理指标。它的含义是当处理器达到负荷最大的时候,释放出的热量,单位未W。单颗处理器的TDP值是固定的,而散热器必须保证在处理器TDP最大的时候,处理器的温度仍然在设计范围之内。 处理器的功耗:是处理器最基本的电气性能指标。根据电路的

2009-08-05 16:44:00 708

原创 修复误删分区

不小心把系统中的Linux工作分区给删了,幸亏有TestDisk工具修复,成功找回了分区。 TestDisk  

2009-07-27 19:29:00 363

原创 vim格式化代码

从别的编辑器里粘贴到vim里的代码经常由于不正常的缩进变得格式混乱。 格式化全文: gg=G自动缩进当前行: == 格式化当前光标接下来的10行: 10=格式化选定的行: v   (向上下选择)=  官方解释:http://vimdoc.sourceforge.net/cgi-bin/vimfaq2html3.pl#14.614.6. How do

2009-07-23 13:07:00 7752

原创 gdb调试 main 函数参数设置

例子:#include int main(int argc,char *argv[]){    int i = argc;    printf("argc:%d/n",i);        for(i = 0;i         printf("argv[%d]:%s/n",i,argv[i]);        return 1;} 输出:[ro

2009-07-20 13:07:00 4633

转载 GDB 使用 (八)在不同语言中使用GDB

在不同语言中使用GDB    GDB 支持下列语言:C, C++, Fortran, PASCAL, Java, Chill,assembly, 和 Modula-2。一般说来,GDB会根据你所调试的程序来确定当然的调试语言,比如:发现文件名后缀为“.c”的,GDB会认为是C程序。文件名后缀为 “.C, .cc, .cp, .cpp, .cxx, .c++”的,GDB会认为是C++程序。而后缀

2009-07-19 18:15:00 820

转载 GDB 使用 (七)改变程序的执行

 改变程序的执行 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改变量值 修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如:(gdb)

2009-07-19 18:07:00 546

转载 GDB 使用 (六)查看运行时数据

 查看运行时数据     在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print /  是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x。  一

2009-07-19 17:44:00 1779

转载 GDB 使用 (五)查看源程序

 一、显示源代码GDB 可以打印出所调试程序的源代码,当然,在程序编译时一定要加上-g的参数,把源程序信息编译到执行文件中。不然就看不到源程序了。当程序停下来以后, GDB会报告程序停在了那个文件的第几行上。你可以用list命令来打印程序的源代码。还是来看一看查看源代码的GDB命令吧。list     显示程序第linenum行的周围的源程序。list     显示函数名为fu

2009-07-19 17:34:00 1279

转载 GDB 使用 (四)查看栈信息

查看栈信息当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。 下面是一些查看函数调用栈信息的GDB命令:backtracebt   打印当前的函数调用栈的所有信息。如:(gdb) bt#0 func (n=250)

2009-07-19 17:32:00 1330

转载 GDB 使用 (三)暂停 / 恢复程序运行

 暂停 / 恢复程序运行调试程序中,暂停程序运行是必须的,GDB可以方便地暂停程序的运行。你可以设置程序的在哪行停住,在什么条件下停住,在收到什么信号时停往等等。以便于你查看运行时的变量,以及运行时的流程。当进程被gdb停住时,你可以使用info program 来查看程序的是否在运行,进程号,被暂停的原因。在gdb中,我们可以有以下几种暂停方式:断点(BreakPoint)、观察点(Wa

2009-07-19 17:24:00 2928

转载 GDB 使用 (二)

 使用GDB 一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(c/gcc/g++)的 -g 参数可以做到这一点。 如:> cc -g hello.c -o hello> g++ -g hello.cpp -o hello如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时

2009-07-19 17:13:00 560

转载 GDB 使用 (一)

原文标题:用GDB调试程序 作者:haoel (QQ是:753640,MSN是: haoel@hotmail.com)GDB概述      GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功

2009-07-19 16:09:00 375

原创 访问Xen dom0的串口配置

修改grub:添加如下serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1terminal --timeout=10 serial console title   Xen        root (hd0,0)        kernel /boot/xen.gz com1=115200,8n1 con

2009-07-13 16:35:00 463

原创 常见的几个宏定义

#指示该参数被双引号替代@指示该参数被单引号替代##指示粘结(其实就是连接) 可变宏 ...和_ _VA_ARGS_ _实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,以表示省略号代表什么。比如:#define PR(...) printf(_ _VA_ARGS_ _)PR("

2009-07-09 15:47:00 261

原创 一些定义

typedef char exam[16];exam A;变量A是一个16字符的数组,可以使用[]访问数组元素,例如A[15]访问最后一个元素。#define unlikely(x)  __builtin_expect((x),0)  表示 x 的值为假的可能性更大;#define likely(x)  __builtin_expect((x),1)    表示 x 的

2009-07-07 16:57:00 153

原创 查看机器是否连接有网线?

方法一:ifconfig 方法二:ethtoolmii-tool

2009-06-29 23:51:00 488

原创 VirtualBox 构建内部局域网

当没有外部链接时,如何让guestOS和hostOS通信? 1,guestOS配置是的网络选择桥接模式。2,給guestOS在guestOS右击本地连接的属性,赋给一个固定的IP 如192.128.1.2003,在hostOS右击网桥,赋给一个固定的IP 如192.168.1.100,(网桥是由guestOS的虚拟网卡和hostOS的本地连接桥接生成的)

2009-06-24 17:46:00 1590

原创 有点诡异的指针运算

#include struct A{ int a; int b; char c;};struct B{ int a; int b; void *c;};struct C{ int a; void *c;};void main(){ struct A m = { 1,2,c}; int y = 0; int

2009-06-16 10:39:00 275

原创 快速启动

   快速启动一个可用的系统,让计算机开机几秒内就可以访问互联网。Windows 系统在后台启动,或者选择不启动,达到省电的目的。根据这一条思路,已经开发不少的优秀的产品。   HyperSpace          Presto              Splashtop     它们大多数是采用Linux做成快速启动的系统,基于Linux开源的好处,可以自由修改,

2009-05-26 19:12:00 183

原创 分析系统boot时间方法

 分析Linux系统boot时间的方法,列举如下两种:方法一:系统成功运行后,执行命令dmesg -s 131072 > boottime然后利用一个脚本“show_delta”(位于Linux源码的scripts文件夹下)将上述输出的文件转换为时间增量显示格式:/usr/src/linux-x.xx.xx/scripts/show_delta ktime > dtime得到了一份关于Linu

2009-05-21 18:23:00 464

原创 忘记root密码?

 1,忘记Linux系统密码怎么办?如果grub没有加密的话,在系统进入grub时,修改grub启动参数,如下:kernel /vmlinuz-xxxx.  ro root=LABEL=/ rhgb quiet 后面添加1或者single。即:kernel /vmlinuz-xxxx.  ro root=LABEL=/ rhgb quiet  1或者kernel /vm

2009-05-18 17:46:00 225

转载 cp显示拷贝进度

一段比较好的显示拷贝进度的shell代码#!/bin/bashPARAM_LIST=$*PARAM_NUM=$#TOTAL_SIZE=0for((i = 0; i do        [ ! -r $1 ] && echo "Cannot read $1." && exit 1        SIZE=`du -s $1 | awk {print $1

2009-05-18 16:31:00 1018

转载 Linux 操作系统启动流程以及trouble shooting思路

分析的很详细,值得学习下! Linux系统启动的基本过程和步骤:Linux系统启动过程大致按照如下步骤进行(这是一个简述):第一阶段:BIOS启动引导阶段;                      在该过程中实现硬件的初始化以及查找启动介质;                      从MBR中装载启动引导管理器(GRUB)并运

2009-05-14 14:22:00 547

原创 简单的shell循环

for (( i=0 ; i do    echo $i ;    echo $((i+1))    sleep 1done有空得看看shell脚本,这玩意搞了近一个小时!!

2009-05-13 17:36:00 299

转载 Git 必知必会

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class

2009-04-03 16:27:00 2505

原创 container_of实例

#include #define offsetof(type,member) ((size_t)&((type *)0)->member)#define container_of(ptr,type,member) ({ / const typeof(((type *)0)->member)*__mptr = (ptr);/ (type *)((char *)__mpt

2009-04-02 18:03:00 277

转载 container_of详解

如何通过结构中的某个变量获取结构本身的指针#define container_of(ptr, type, member)     /const typeof( ((type *)0)->member ) *__mptr = (ptr); /(type *)( (char *)__mptr - offsetof(type,member) );typeof是gcc的一个扩展,用于确定一个变量的类型,有

2009-03-27 19:33:00 329

转载 打印进程信息的简单内核模块

打印进程信息的简单内核模块(procsview.c)    #include #include #include int init_module( void ){  /* Set up the anchor point */  struct task_struct *task = &init_task;  /* Walk through the task list, until we hit th

2009-03-25 17:51:00 439

Python in a Nutshell

Python in a Nutshell

2008-10-24

Running Xen

学习xen的极好资料,从入门到精通一本全

2008-10-24

PHP网络编程典型模块与实例精讲3

《PHP网络编程典型模块与实例精讲》书本源码第三部分

2008-03-21

PHP网络编程典型模块与实例精讲

《PHP网络编程典型模块与实例精讲》书本源码第二部分

2008-03-21

PHP网络编程典型模块与实例精讲

《PHP网络编程典型模块与实例精讲》书的源码的第一部分

2008-03-21

空空如也

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

TA关注的人

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