自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenglinhust的专栏

分布式系统 基础架构 中间件系统 安全领域 容器技术 人工智能

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux内核调试中的printk()函数详解

linux内核调试中的printk()函数详解我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况。对程序的调试起到了很重要的作用。(下文中的日志级别和控制台日志控制级别是一个意思)printk(日志级别 "消息文本");这里的日志级别通俗的说指的是对文本信息的一种输出范围上的指定。日志级别一共有8

2012-10-30 14:19:04 3086

原创 /dev/zero 简介

/dev/zero 简介dev/zero是Linux提供的一个特殊的字符设备,它的特点是可以永远读该文件,每次读取的结果都是二进制0。下面的命令可以生成一个100M的空镜像文件:dd if=/dev/zero of=100M.img bs=1M count=100100+0 records in100+0 records out1

2012-10-30 11:17:10 1178

原创 Relayfs介绍

Relayfs介绍relayfs介绍Relay 是一种从 Linux 内核到用户空间的高效数据传输技术。通过用户定义的 relay 信道,内核空间的程序能够高效、可靠、便捷地将数据传输到用户空间。通过灵活运用改造也可双向传输。Relay 特别适用于内核空间有大量数据需要传输到用户空间的情形。Relay 的前身是 RelayFS,即作为 Linux 的一个新型文件系统,即用虚拟文

2012-10-29 09:03:27 2326

原创 数据挖掘学习篇——数据挖掘的概念

数据挖掘学习篇——数据挖掘的概念    数据挖掘是从大量数据中挖掘有趣模式和知识的过程。数据源包括数据库,数据仓库,Web,其他信息存储库或动态地流入系统的数据。    数据库系统,也称为数据库管理系统(DBMS),由一组内部相关的数据(称做数据库)和一组管理和存储数据的软件程序组成。软件程序提供如下机制:定义数据库结构和数据存储,说明和管理并发,共享或分布式数据访问等。    数据仓

2012-10-25 09:23:00 1174

原创 POJ 1011的一道题(木棍组合)

POJ 1011的一道题(木棍组合)【题意】:乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。【随笔】:这道题很早之前就过了,这几天看回之前的代码,觉得以前的代码写得太烂了,而

2012-10-24 16:39:43 3318 1

原创 undefined reference to ceil 链接错误

undefined reference to ceil 链接错误原因今天编译一个C文件,输入下面的代码后GOP12.c文件代码大致为#include  #include  #include  int main(int argc,char *argv[])  {      //某个地方用到了数学函数  }   GCC编译该文件gcc  -o g

2012-10-23 08:58:56 6259 2

原创 va_list(),va_start(),va_arg(),va_end()

va_list(),va_start(),va_arg(),va_end()详解(一)写一个简单的可变参数的C函数下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的C函数要在程序中用到以下这些宏:void va_start( va_list arg_ptr, prev_param );type va_arg( va_list arg_ptr, type )

2012-10-19 15:57:34 1018

原创 快速排序之“采取“尾递归”和“三数取中”技术的快速排序”

快速排序之“采取“尾递归”和“三数取中”技术的快速排序”       下面针对快速排序进行一些优化。      QUICKSORT算法包含两个对其自身的递归调用,即调用PARTITION后,左边的子数组和右边的子数组分别被递归排序。QUICKSORT中的第二次递归调用并不是必须的,可以用迭代控制结构来代替它,这种技术叫做“尾递归”,大多数的编译器也使用了这项技术。最坏的情况下,就是划分不好

2012-10-18 11:24:49 2040

原创 什么是尾递归

什么是尾递归     递归大家都很熟悉,但是很多程序员有时候不是很清楚尾递归,那么什么是尾递归呢?     尾递归就是从最后开始计算, 每递归一次就算出相应的结果, 也就是说, 函数调用出现在调用者函数的尾部, 因为是尾部, 所以根本没有必要去保存任何局部变量. 直接让被调用的函数返回时越过调用者, 返回到调用者的调用者去.       以下是具体实例:线性递归:long Re

2012-10-18 11:13:48 1020

原创 递归和迭代的区别

递归和迭代的区别    经常遇到递归和迭代的算法编程,有时候不是很清楚递归和迭代的区别,下面就讲解下。    //以下以一个斐波那契数列的例子说明://----------------------------------//1.迭代方法:public class Fab_iterate {public static void main(String[]

2012-10-18 09:22:45 1251

原创 B 树、B+ 树、B* 树

B 树、B+ 树、B* 树B 树、B+ 树、B* 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.csdn.net/v_JULY_v 。 第一

2012-10-17 11:40:30 2436

原创 快照技术的发展

快照技术的发展下面这篇文章主要参考大牛的博客:http://blog.csdn.net/liuben/article/details/4494555一.引言       随着计算机技术和网络技术的不断发展,信息技术水平不断得到提高。人类进入称为信息社会的二十一世纪后,诸如数字通信、数字多媒体、电子商务、搜索引擎、数字图书馆、天气预报、地质勘探、科学研究等海量数据型应用的涌现,各种信息呈

2012-10-16 20:12:00 1569

原创 字符设备驱动程序

字符设备驱动程序   下面以一个简单的例子来讲解下字符设备驱动程序,首先需要有内核环境。    Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。在应用程序看来,硬件设备只 是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ()、close ()、read ()、wr

2012-10-16 16:57:18 924

原创 Linux驱动模型的编程模式

Linux驱动模型的编程模式1.总线类型逻辑    定义一个总线类型(struct bus_type)对象,在该对象中,需要指定总线类型的名字,还需要实现一些回调函数,例如match,probe等。    在子系统或模块加载时调用bus_register函数向Linux内核注册这个总线类型,在子系统或模块卸载时调用bus_unregister函数从Linux内核注销这个总线类型

2012-10-16 10:21:03 875

转载 HASHDB:一个简单的Key-value的存储系统原型

HASHDB:一个简单的Key-value的存储系统原型来源:http://blog.csdn.net/liuben/article/details/66708411、HashDB是什么?HashDB是一个简单的KeyValue存储系统原型,提供基本的二元组的数据存储与读取功能,亦即当前被广为推崇的NoSQL存储系统。最初想到设计这个小系统,完全是出于偶然。本人维护

2012-10-10 16:07:30 1376

原创 内核虚拟化KVM/QEMU——guest os,qemu,kvm的运行流程

内核虚拟化KVM/QEMU——guest os,qemu,kvm的运行流程这里主要介绍基于x86平台的Guest Os, Qemu, Kvm工作流程,如图,通过KVM APIs可以将qemu的command传递到kvm:1.创建VMsystem_fd = open("/dev/kvm", xxx);vm_fd = ioctl(system_fd, KVM

2012-10-08 10:56:23 2907

原创 makefile 自动处理头文件的依赖关系

makefile 自动处理头文件的依赖关系 现在我们的Makefile写成这样:all: mainmain: main.o stack.o maze.ogcc $^ -o $@main.o: main.h stack.h maze.hstack.o: stack.h main.hmaze.o: maze.h main.hclean:-rm m

2012-10-07 11:15:04 2429

原创 C/C++宏定义的可变参数

C/C++宏定义的可变参数编写代码的过程中,经常会输出一些调试信息到屏幕上,一般会调用printf这类的函数。但是当调试解决之后,我们需要手工将这些地方删除或者注释掉。最近在看《Linux C编程一站式学习》这本书,就想到一个方法:void myprintf(char* fmt, ...){}#ifdef DEBUG#define printf(fm

2012-10-02 10:47:07 4517

原创 内联函数inline和宏定义

内联函数inline和宏定义内联函数的优越性:一:inline定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换(像宏定义一样展开),没有了调用的开销,效率很高。二:类的内敛函数是一个真正的函数。三:使用内联函数inline可以完全取代表达式形式的宏定义。 例子:Class A{public:

2012-10-02 10:10:53 1784

走向分布式基础学习

是学习分布式的好资料,里面的内容讲解的非常详细,是一个台湾人下载的

2015-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除