- 博客(33)
- 资源 (6)
- 收藏
- 关注
原创 linux下的内核测试工具——perf使用简介
摘要:Perf是Linux kernel自带的系统性能优化工具。Perf的优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernel的new feature。pef可以用于查看热点函数,查看cashe miss的比率,从而帮助开发者来优化程序性能。
2013-08-26 17:25:44 30881
原创 git pull报错:Auto Merge Failed; Fix Conflicts and Then Commit the Result.
1.出错场景:协同开发时,我们从远程服务器上pull下代码的时候,出现以下提示信息:Auto Merge Failed; Fix Conflicts and Then Commit the Result.2.原因分析:利用git status,输出如下:root@hyk-virt:/etc# git status# On branch m
2013-08-20 11:32:17 53562 4
转载 gcc -fomit-frame-pointer 选项与软件优化与调试
优化你的软件时,发觉"-fomit-frame-pointer"这个选项还是蛮有用的。GCC手册上面这么说:Don't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame
2013-08-29 10:30:54 7417
转载 kallsyms的分析__内核调试与符号表原理
1.简介在v2.6.0的内核中,为了更好地调试内核,引入新的功能kallsyms.kallsyms把内核用到的所有函数地址和名称连接进内核文件,当内核启动后,同时加载到内存中.当发生oops,例如在内核中访问空地址时,内核就会解析eip位于哪个函数中,并打印出形如EIP is at cleanup_module+0xb/0x1d [client]的信息,调用栈也用可
2013-08-28 21:53:02 2736
转载 linux系统监视工具vmstat
vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。本文介绍了虚拟内存的运行原理,继而介绍了vmstat的用法和使用范例。vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。
2013-08-28 17:08:21 928
原创 一个more程序的实现
摘要:在linux系统中,我们经常用到more命令来显示文件内容,那么more命令是如何实现的呢?如何在终端反显一个字符串,比如“more”?如何在输入重定向的时候从键盘读入命令?本文通过more命令的实现来讲解相关知识。附录中是本文所使用的代码。
2013-08-28 10:20:27 982
原创 printf 输出格式设置\033[47\033[5m 与-8.8s
摘要:在使用linux终端命令的时候,我们可以看到像more命令,它的显示方式与一般的字符串不同,是用了反显。输出字符的时候,-8.8s是什么意思?同样,linux C下printf还有很多其他不常见的格式化输出形式。本文主要为你盘点这些形式。
2013-08-27 22:59:06 7830
转载 hexdump 命令
用途说明hexdump命令一般用来查看”二进制“文件的十六进制编码,但实际上它的用途不止如此,手册页上的说法是“ascii, decimal, hexadecimal, octal dump“,这也就是本文标题为什么要将”十六“给引起来的原因,而且它能查看任何文件,而不只限于二进制文件了。另外还有xxd和od也可以做类似的事情,但是我从未用过。在程序输出二进制格式的文件时,常用hexdum
2013-08-27 17:26:06 1987
转载 objdump - display information from object files
因为计算机大都是采用哈佛结构,数据和指令分开存储的的程序组织形式,因此当我门编译,汇编,连接,(符号解吸,段的重定位)。而为了能让程序更好的被执行,最终生成的目标文件包含了足够多了信息生怕自己被歧视而不被执行。所以面对2进制的目标文件来说,我门是很难发现或者看到什么有用的信息,因此objdump这个工具的实际意义是多么的令人喜爱,只有当你要探索一个目标文件的组织形式的时候就能体会了
2013-08-27 17:21:04 1196
转载 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中 objcopy
objcopy [选项]... 输入文件 [输出文件] [功能] 将目标文件的一部分或者全部内容拷贝到另外一个目标文件中,或者实现目标文件的格式转换。 [描述] objcopy工具使用BFD库读写目标文件,它可以将一个目标文件的内容拷贝到另外一个目标文件当中。objcopy通过它的选项来控制其不同的动作,它可以将目标文件拷贝成和原来的文件不一
2013-08-27 17:13:55 2908
原创 elf 文件格式探秘——程序运行背后的故事
摘要:本文主要讲解elf文件格式,通过readelf命令结合底层的相关数据结构,讲解相关内容,分析程序运行的基本原理。
2013-08-27 16:40:51 5977
原创 利用ftrace跟踪内核static tracepoint——实例writeback event
和很多linux内核子系统一样,static tracepoint有很多层次,其中某个层次都展示给不同层次的开发者来满足他们的不同需求。关于linux tracepoint的详细信息,我们可以在linux内核文档Documentation/trace/tracepoints.txt和 samples/tracepoints这两个地方找到。大致来说,对tracepoints本身的定义是第一个层次,一般只有内核开发者才会定义这些tracepoints;trace event是第二个层次,用于debug;第三个层
2013-08-23 15:05:58 9130
转载 linux下的find命令
·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参数;pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执行该参数所给出
2013-08-21 10:11:14 1086
转载 linux下的时间和日期命令——date
date命令 date命令的功能是显示和设置系统日期和时间。 该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式) date 设置时间格式 命令中各选项的含义分别为: -d datestr, --date datestr 显示由datestr描述的日期 -s datestr, --set datestr 设置date
2013-08-20 15:59:34 945
转载 linux 下的文本处理之字符串替换——tr命令
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串
2013-08-20 15:42:33 12159
转载 linux下的echo命令
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。该命令的一般格式为: echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。功能说明:显示文字。语 法:echo
2013-08-19 17:27:12 1193
转载 linux 下的文本处理之“行分割”——cut命令
linux之cut用法cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。(1)其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]使用说明cut 命令从文件的每一行剪切字节、字符和字段并将这些字节
2013-08-19 17:25:38 11862 2
转载 linux 开机自动运行
1. 开机启动时自动运行程序Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在/etc/rc或/etc/rc.d 或/etc/rc?.d目录下的脚本文件,可以使init自动启动其它程序。例如:编辑/etc/rc.d/rc.local 文件(该文件通常是系统最后启动
2013-08-19 17:15:18 978
原创 linux 下信号处理命令trap && linux下各种信号的意义
1.用途说明trap是一个shell内建命令,它用来在脚本中指定信号如何处理。比如,按Ctrl+C会使脚本终止执行,实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序。如果要在Ctrl+C不退出程序,那么就得使用trap命令来指定一下SIGINT的处理方式了。trap命令不仅仅处理Linux信号,还能对脚本退出(EXIT)、调试(DEBUG)、错
2013-08-19 15:17:00 2933
原创 LTP--linux稳定性测试,性能测试和压力测试
摘要: LTP套件是由 Linux Test Project 所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。本文主要讲解LTP的软件组织,应用,安装方法和使用介绍。
2013-08-19 11:03:55 6364
原创 shell 脚本阅读之一
摘要:本系列文章通过一些实际的shell脚本,练习shell脚本的基本功,达到熟练书写shell脚本的目的。DIRNAME=`dirname $0` #在终端执行shell命令,获得目录名称SCRIPTDIR=`cd "$DIRNAME" && pwd`# && 表示执行完毕第条指令以后,在此基础上执行第二条指令MEMTOTAL_BYTES=`free -b | grep Mem:
2013-08-16 14:33:53 1433
原创 /dev/loop与设备文件系统
摘要:在进行测试的时候,我们往往需要新建一些磁盘分区或者设备等,此时对硬盘进行重新划分往往不太方面。这种情况下,我们可以通过伪设备来实现循环挂载,从而达到目的。本文主要为你讲解什么是循环挂载,什么是虚拟设备,设备和文件系统有什么关系。1.循环挂载在类Unix系统中,/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))是一种伪设备,
2013-08-15 19:40:49 7432
原创 linux 命令之sar——监视系统状态
摘要:在进行系统或者内核测试的时候,我们经常需要观察cpu利用率,缓冲区使用情况,文件读写情况等等。在linux系统下,我们可以用sar命令来达到这个要求。sar 命令行的常用格式: sar [options] [-A] [-o file] t [n] 在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有 的参数,n为采样次数,是可选的,默认值是1,
2013-08-15 17:25:01 1507
原创 shell 重定向&>file 2>&1 1>file
1.三个标准操作系统约定,stdin stdout stderr分别对应0 ,1,2.在shell脚本中,经常会涉及输出重定向的问题:比如./myscript > outpufile,其中> file 等价于 1> file,就是吧输出重定向到文件中。对应的,2>&1 是吧标准错误重定向到标准输出而&>file是把标准输出和标准错误重定向到file2
2013-08-15 16:48:05 2615
转载 图解git使用
1.基本用法上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。git add files 把当前文件放入暂存区域。git commit 给暂存区域生成快照并提交。git reset -- files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。git checkout -- files 把文件从暂存区域复制到
2013-08-14 16:28:17 1718
原创 如何使用ftrace进行内核调试
1.内核配置编译内核的时候,将以下config写入选择为y,编入内核:CONFIG_FUNCTION_TRACER CONFIG_FUNCTION_GRAPH_TRACER CONFIG_CONTEXT_SWITCH_TRACER CONFIG_NOP_TRACER CONFIG_SCHED_TRACER 2.用户空间接口 ftrac
2013-08-08 16:43:47 4573
转载 linux free命令详解: cache和buff的区别
linux系统上,常用free命令查看内存的使用情况,本文主要为你介绍free命令的输出结果:解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516
2013-08-07 13:54:12 6231
原创 mmtests使用简介
1.简介mmtests是一个可配置的测试套件,可以被MM开发者用来进行一个常规测试。理想情况下,它可以与LTP,xfstests等测试工具结合起来实现自动化测试。2.软件组织run-mmtests.sh脚本用于运行测试,这个脚本会读取config文件,脚本接受一个参数,通常情况下,这个参数表明测试的名字,一般情况下它表明了内核的配置情况,例如$:./run-
2013-08-06 23:08:28 2457
原创 linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等。文本主要为你讲解如何实现这些操作
2013-08-06 21:00:38 3924
原创 linux网络配置完全解析
概述:熟悉了windows下面的网络配置,对linux下的网络配置缺未必了解透彻。熟练掌握linux下的网络配置原理,能帮助我们更容易掌握网络传输原理;同时具备一些网络连接不通对应问题的排查能力。文本主要为你讲解网络连接的基本原理,配置方法,常见错误的解决方法等。
2013-08-06 14:36:23 3141
原创 tmux使用简介——如何解决使用linux远程终端的掉线问题(保存远程服务器工作现场)
概述:在使用linux远程登录的时候,我们经常需要在远程使用ssh登录到服务器上进行工作,此时,经常会碰到这样的问题:我们需要运行一个需要较长时间的测试,然后我们本地机器休眠导致连接断开,此时我们无法判断刚才那个测试是否进行完毕。2)由于本地终端和远程主机的连接断开,我们又需要重新输入很长的命令到原来的工作目录下 那么有什么好的软件能够保存我们在远程服务器的工作限长呢?本文介绍一款这样的软件——tmux
2013-08-06 08:52:10 6223 1
原创 如何在ubuntu上基于自定义内核安装systemtap
摘要:在进行内核中相关测试的时候,往往要用到systemtap,而这个软件依赖于内核符号表/调试信息/内核头文件等等,如果我们想测试最新的内核特性,就需要安装带有debuginfo的内核和相关头文件。本文主要讲解了ubuntu上如果在自己编译的内核下安装使用systemtap。
2013-08-01 10:04:50 3010 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人