Archive for August, 2014

编写简单的HelloWorld Kernel Module

August 28th, 2014

普通的用户态下的C编程,估计很多人都可以熟练编写掌握。但是跨入内核层之后,用户态的函数与头文件统统变了。
» Read more: 编写简单的HelloWorld Kernel Module

在塔式服务器中安装Debian 7.6

August 28th, 2014

今天负责给实验室的server安装debian 7.6遇到很多问题,特在此小记一下。

由于塔式服务器不同于普通的pc,主板结构不同于pc的主板。

这个主板的特殊之处在于主板有两个cpu插槽,cpu是Intel Xeon E5530 4核八线程,如果插上两个cpu的话,可以拓展成为8核16线程。

» Read more: 在塔式服务器中安装Debian 7.6

Git标准开发模型

August 17th, 2014

之前用了很长时间的git,最近才了解到git的正确用法。

正如Nicholas said:Using git is very easy but using git correctly is not easy!

git文件最好是以二进制的存在,这样比较容易对文件进行追踪。最好不要将binary文件add进来!doc?exe?No!

» Read more: Git标准开发模型

创建Git服务器

August 16th, 2014

之前一直都是使用git 客户端,非常的方便,可以通过分支并行开发,加快项目开发速度。

git的使用我就不赘述了,这里我记录一下如何创建git 服务端。

» Read more: 创建Git服务器

Memory Barriers 的一些思考

August 14th, 2014

之前由于各种原因blog停更了半个月,现在回到正常环境下。

我们都知道在多处理器环境下,我们会遇到Memory Barriers,其实说白了,就是数据的不一致性,说的更加精确点,就是cache的不一致性,因为各种architecture 不同,x86与ARM不同,在x86下,Intel与AMD又不同,所以我们要搞清cpu与cache的不同结构,之前我们知道cache分为N路组相联(N-way set associative)。在取值的时候,中间位负责区分是哪一路,在这篇文章中讲的很详细:http://www.lizhaozhong.info/archives/580

不过x86的mb。x86 CPU会自动处理store顺序,所以smp_wmb()原语什么也不做,但是load有可能乱序!

» Read more: Memory Barriers 的一些思考