- 博客(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
原创 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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人