gnu
文章平均质量分 68
carltraveler
这个作者很懒,什么都没留下…
展开
-
VIM 快捷学习
一 关于ctags vim自带ctag插件 在工程当前目录shell 运行 $ctags -R 会在当前目录递归生成一个tags文件 在vim 中运行 :set tags=tags //表示指定当前目录tags文件为读取文件 在vim中运行原创 2011-07-08 12:58:05 · 453 阅读 · 0 评论 -
(zz)sed命令学习(2)
1.简介sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显转载 2012-11-16 15:38:43 · 497 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文)By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http转载 2011-09-02 14:29:43 · 598 阅读 · 0 评论 -
动态链接(二) 延时绑定PLT
基本问题:动态链接比静态链接慢的主要原因是动态链接下对于全局和静态和数据访问都要进行复杂的GOT定位,然后进行间接寻址。还有各种的动态重定位。 1>延时绑定的基本思想:函数在被第一次用到时才进行绑定(符号查找,重定位等),没有用到则不绑定。具体elf用plt实现。真正用到的函数_原创 2011-07-08 15:11:46 · 1063 阅读 · 0 评论 -
静态链接
1>.bss段在文件中不存在,即不占用文件空间,但是它装载时占用内存空间 2>分两步链接: 第一步,空间与地址分配:主要任务把所有的符号表收集起来,放到一个全局符号表中,注意:一个符号,一个段名都是由一个结构体来描述的,里面包含描述信息的各种属性。第二步,符号解析和重定位,重定位原创 2011-07-08 15:10:08 · 422 阅读 · 0 评论 -
一些有用的操作,关于gnome,kde等
在终端下按ctrl+shift+T可添加终端窗口在终端下按alt+num切换终端窗口同样可以vim格式对齐方法一:命令模式下:=:1,$方法二:gg(把关标定位到最上面),V(进入VISUAL模式),shift+g(选中整篇文本),然后=。方法三:gg=G crtl+i 和ctr原创 2011-07-08 15:07:11 · 506 阅读 · 0 评论 -
Xshell中文乱码
输入: locale输出 : LANG=zh_CN.UTF-8LC_CTYPE=”zh_CN.UTF-8″LC_NUMERIC=”zh_CN.UTF-8″LC_TIME=”zh_CN.UTF-8″LC_COLLATE=”zh_CN.UTF-8″LC_MONETAR原创 2011-07-08 15:06:19 · 473 阅读 · 0 评论 -
binutils简单使用
arar用于建立、修改、提取档案文件(archive)。archive是一个包含多个被包含文件的单一文件(也称之为库文件),其结构保证了可以从中检索并得到原始的被包含文件(称之为archive中的member)。member的原始文件内容、模式(权限)、时间戳、所有着和组等属性都原创 2011-07-08 14:30:22 · 680 阅读 · 0 评论 -
vim 多文本编辑
:edit otherfilename "编辑另一个文件,但需要事先保存原文件":hide edit otherfilename "编辑另一个文件,不需要事先保存原文件"vim one.c two.c three.c "启动时就指定要编辑的多个文件 n跳到下一个文件CTRL-^原创 2011-07-08 14:29:10 · 849 阅读 · 0 评论 -
vim 打开二进制文件获得信息
一 vim可以以16进制打开文件 编辑出来的hello.c $arm-linux-gcc hello.c -o hello $arm-linux-readelf -S hello 看到.rodata段第偏移地址是4d0原创 2011-07-08 12:56:15 · 3642 阅读 · 0 评论 -
动态链接(一) .got与fPIC
1>动态链接过程的关键:在需要的时候装入,如果其他程序同样需要这个模块,则用动态链接器链接即可,即地址重定位找到所需的函数入口 2>动态链接库的最终装载地址不是在编译时确定的 3>共享对象在建立时,不能假设自己在虚拟地址空间的具体位置,在装载时会进行基址重置 4>与此不同的时,可原创 2011-07-08 15:10:53 · 851 阅读 · 0 评论 -
(zz)使用gprof和oprofile工具分析系统性能
有些时候,我们特别关注程序的性能,特别是底层软件,比如驱动程序,OS等。为了更好的优化程序性能,我们必须找到性能瓶颈点,“好钢用在刀刃上”才能取 得好的效果,否则可能白做工作。为了找到关键路径,我们可以使用profilng技术,在linux平台上,我们可以使用gprof和opro转载 2011-07-08 16:47:39 · 1009 阅读 · 0 评论 -
linux2.6.32_complete(完成量)
/*1,完成量的核心是排他性的不可中断的等待队列节点。 由代码可知,它类似FIFO性质,complete唤醒的总是先wait的进程 从这里可以加深对kthread的细节理解*/#include //从这个头文件可看出,完成量是和等待队列有密切的联系#d原创 2011-07-08 15:14:48 · 651 阅读 · 0 评论 -
程序内存结构及返回
1>在linux下如果可执行文件依赖于其他共享库,那么系统就会从0x40000000开始分配到相应的空间,并将共享库装入到相应的空间 2>在i386中esp始终指向栈顶,而ebp固定指向函数活动记录的一个固定位置,Ebp所指向的数据是调用该函数前ebp中的值,这样可以保证安全返回原创 2011-07-08 15:14:03 · 485 阅读 · 0 评论 -
动态链接器(三) 动态链接的步骤和实现
大体步骤:动态链接器的自举(与.dynamic段有关)装载共享对象(涉及全局符号表,符号优先级等) 重定位与初始化1>gcc -Xlinker -rpath ./表示链接器在当前路径寻找共享对象 2>当共享库被装载到进程的地址空间,则同时它们中的符号都会被并入到全局符号表 3>完原创 2011-07-08 15:12:24 · 1453 阅读 · 0 评论 -
elf文件结构描述
1>段表: 在fileheader中 对应命令objdump -h readelf -S(更全) 它是以Elf32_shdr结构体为元素的数组,每个Elf32_shdr结构体对应一个段,所以Elf32_shdr被称为段描述符 2>局部变量用寄存器,局部变量或者局部数组不够用时,原创 2011-07-08 15:09:17 · 559 阅读 · 0 评论 -
git常用命令
git太强大了,记录所有的工作记录,帮助理清思维软件现在已经很多,但是优秀并不多,为什么刚入研究生的时候没用,每次一想到相关东西,就觉得本科浪费了太多的时间,也没办法,成长总是要花费代价的,这里都是临时学习的一些git命令,强行记住的,很多概念和逻辑都没有统一,自己总是有这种习惯不喜欢没有整体逻辑的东西,这总是导致我处理问题的时候要慢很多,也许我该改改1>获得帮助可以使用类似man g原创 2012-12-03 17:02:57 · 486 阅读 · 0 评论