x86汇编总结

2015.03.27发布于笔记暂无评论#asm#总结#汇编

近来工作和学习的时候多少会遇到一些汇编代码,特在此总结一些简单的汇编语言知识点。以能看懂常见的汇编代码为目的,不做深入探究。

语法

x86汇编语言主要有两个语法分支: AT&T和Intel。我们平常接触到的GNU系的工具(包括GCC,OBJDUMP等)都是使用AT&T语法,若无特别说明,下面的汇编代码例子也是如此。

两种语法分支的主要区别[1][2]:

AT&T Intel 注释
寄存器前缀 %eax eax
立即数前缀 $5 5
指令后缀 movl mov 操作数长度[3]
参数次序 movl $5, %eax mov eax, 5 R[eax] = 5
取址1 var [var] 变量
取址2 0x8(%eax) [eax + 0x8] 偏移
取址3 arr(, %eax, 4) [eax * 4 + arr] 数组
继续阅读...

Shell编程速查手册

2015.01.31/2016.07.31发布于笔记暂无评论#bash#prog#shell#总结#未完成

总结一下日常Shell脚本里常用的知识,忘记时方便查阅。

常见的shell

常见的Linux发行版里,默认的shell一般是dash(sh)或bash,不同的shell对脚本的支持也各不相同。若无特殊说明,以下shell知识都是基于Ubuntu 14.04 x86_64系统上的bash 4.3

Shell编程书籍

只看过Advanced Bash-Scripting Guide,简称ABS。感觉这本电子书内容详尽,例子很多,作者维护地也很积极。

继续阅读...

如何禁用可疑的根证书

2015.01.27/2015.03.26发布于笔记暂无评论#电子证书#系统安全#系统管理
继续阅读...

重回Emacs

2014.11.19/2016.12.03发布于笔记暂无评论#emacs

念书的时候接触过Emacs,也自学了一段时间Elisp,工作之后就完全抛弃掉了。工作中单纯编辑文本文件直接用Vim,大一点的工程用过Visual Studio, Eclipse,目前主要在用Kdevelop,这几个都算是editor和IDE中的佼佼者了,不过用久了之后总觉得不够贴心。正好最近不怎么忙,所以就想重新再学一下Emacs。

特别声明,本文不是Emacs的推广软文,仅记录重拾Emacs后学到的若干知识而已。说实话,各种Editor和IDE都有自己的所长。Emacs也不是无所不能,至少在语法解析这方面,和专业的IDE还是差距较大,当然,也可能是我没有配置好 :(

我的Emacs配置

本配置以https://github.com/tuhdo/emacs-c-ide-demo为基础,并加入了我早年收集的若干配置而成。安装和使用的package主要有helm, projectile, cedet等,主要配置了C/C++,Golang和Python的开发环境,现已放在Github上。

安装

继续阅读...

使用搜狗词库制作mmseg自定义词典

2014.09.04/2015.10.01发布于笔记暂无评论#coreseek#分词#词库

总结使用搜狗词库制作mmseg词典的方法和步骤。另外,最近一直没写新博客,一方面是因为懒,另一方面是确实没什么可写的。

coreseek的介绍和安装説明可参考这里,不再赘述。以下是接下来需要注意的几点:

  • 下面的脚本需要Python2.7+,如果使用时遇到问题请先查看Python的版本(python -V)。
  • 下面假设libmmseg安装于/usr/local/mmseg3目录
  • 生成的mmseg词典文件必须为UTF-8编码。

提取搜狗字库

目前只支持搜狗词库,搜狗词库可以在这里这里下载。

继续阅读...

C++0x/C++11新特性总结

2014.06.04/2014.06.20发布于笔记暂无评论#c++#c++11#总结#未完成

C++11(或C++0x)是目前的C++语言标准,新的标准将取代之前的C++03标准,并在其基础上扩展核心语言和标准库,本文总结C++0x/C++11的部分新特性,如有错漏之处欢迎反馈指正。

本文中出现的代码均在如下环境编译通过,其中多数取自网络并稍加修改,代码放在这里

  • OS: Ubuntu 14.04 x86-64
  • 编译器: clang-3.5
  • 标准库实现: libc++

未完成,列提纲占坑先

关于C++的吐槽

继续阅读...

在Kubuntu 14.04上安装和配置Subversion 1.6

2014.04.23/2015.11.04发布于笔记暂无评论#subversion#ubuntu#安装

本来不想再写这种安装指南一类的文章,但是整个安装过程太虐,只好当作日志记录下来,以备日后查用。

公司的svn仓库是用subversion1.6创建的,一直没有升级。工作用的Kubuntu14.04仓库里的subversion是1.8.8的,两者完全不兼容,因此有了下文。

获取Subversion1.6源码

Subversion现在已经是Apache基金会下的软件了,在这里下载源码包,下载1.6.23的源码包(tar.bz2)。

安装依赖

继续阅读...

Sphinx/Coreseek搭建全文搜索引擎二三事

2014.04.10/2014.09.18发布于笔记暂无评论#coreseek#sphinx#全文检索#总结

最近忙着做一个coreseek全文检索的项目,都没时间更新博客了。目前项目已接近尾声,这里总结下coreseek的安装,配置和项目的设计考量等,以备将来查询。

开发环境

  • 操作系统: Ubuntu 12.04 x86-64
  • Coreseek: 4.1测试版(Sphinx-2.0.1)
  • Python: 2.7

Sphinx/Coreseek简介

Sphinx是一个高性能的全文检索引擎,使用C++语言开发,采用GPL协议发布,可购买商业授权,目前的稳定版本是2.1.7。

继续阅读...