自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux-kernel-map,linux-memory-management,Linux-storage-stack三幅很好的图

最近收集了 三张图,分别是关于linux内核模块,linux内存管理和linux存储栈的图,特地保留下来,慢慢品味。1.linux-kernel-map2.linux-memory-management3.Linux-storage-stack

2015-03-27 16:47:28 2263

原创 CGI,FastCGI,WSGI浅析

我们将服务端程序分为了web服务器和应用程序服务器。web服务器是用于处理HTML文件,让客户可以通过浏览器进行访问。主流的有apache,IIS,nginx,lghttpd等。应用服务器处理业务逻辑,比如使用python的django,flask写成的程序通常来自客户端浏览器的请求被web服务器截获,如果是静态请求,则如nginx会自己做处理,如果是动态请求,则会抛给

2015-03-25 14:31:48 2763

转载 C 编译、链接、加载

一、概述C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可加载、可执行代码的过程。过程图解如下: 预处理器:将.c 文件转化成 .i文件,使用的gcc命令是:g

2015-02-05 13:59:05 591

原创 linux下编程动态库和静态库编译使用

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。linux下编程动态库文件为.so文件,静态库文件为.a文件本文主要通过举例来说明在Linux中

2015-02-04 17:49:35 861

原创 ceph源码分析之消息通信机制

在介绍ceph的读写流程时,我们流程的开始于OSD::_ms_dispatcher,这个函数的意义表示,osd拿到了消息,并要根据不同的表示对消息进行dispatcher,那么消息究竟是如何来的,这个之前没有进行任何介绍,本章主要就是对此进行梳理。本文引用参考了《解析ceph:网络层的处理》这篇文章。 现在大多的网络编程中,都会使用基于事件通知的异步网络IO方式来实现,比如Epoll和Kq

2015-01-20 10:33:19 4213

原创 ceph一些基础概念的简介

最近因为整理文档,发现一些很久以前写的关于ceph基础介绍的ppt,为了防止资料丢失,打算把搬到这里留作备份。现在线上环境是openstack+ceph的结构,ceph直接连接在openstack中块存储模块cinder的后端。什么是Ceph利用一个分布式集群来提供对象,块和文件存储的统一存储平台。是一个免费开源软件,Ceph的是一种基于软件的解决方案,并在商品硬件上运

2015-01-15 17:27:35 11155

原创 ceph源码分析之线程介绍

Ceph是一款优秀的分布式存储软件,通过学习它的源码,我们可以学到很多编程技巧,ceph中关于多线程的编程,是一个很好的学习对象。Ceph中线程的在src/common/Thread.h中定义class Thread { private: pthread_t thread_id; public: Thread(const Thread& other); const Th

2015-01-15 15:51:39 5035 1

原创 ceph源码分析之读写操作流程(2)

上一篇介绍了ceph存储在上两层的消息逻辑,这一篇主要介绍一下读写操作在底两层的流程。下图是上一篇消息流程的一个总结。在ceph中,读写操作由于分布式存储的原因,故走了不同流程。对于读操作而言:1.客户端直接计算出存储数据所属于的主osd,直接给主osd上发送消息。2.主osd收到消息后,可以调用Filestore直接读取处在底层文件系统中的主pg里面的内容然后

2015-01-13 18:14:42 5830 1

原创 ceph源码分析之读写操作流程(1)

ceph是一个存储集群,它拥有ceph-mon,ceph-mds和ceph-osd三种进程,本文主要从源码层面分析ceph-osd中的数据读写操作流程。ceph-osd数据层级是这样的:最上层:OSD,OSDServer第二层:PG(具体实现类是ReplicatedPG)第三层:ObjectStore(具体实现类是FileStore类,该类中有成员变量FileJourn

2015-01-13 14:40:15 9192 1

转载 Python装饰器学习(九步入门)

这是在Python学习小组上介绍的内容,现学现卖、多练习是好的学习方式。第一步:最简单的函数,准备附加额外功能12345678# -*- coding:gbk -*-'''示例1: 最简单的函数,表示调用了两次''' def myfunc():

2014-11-07 12:26:51 424

转载 openstack之nova-api服务流程分析

nova-api发布api服务没有用到一个些框架,基本都是从头写的。在不了解它时,以为它非常复杂,难以掌握。花了两三天的时间把它分析一遍后,发现它本身的结构比较简单,主要难点在于对它所使用的一些类库不了解,如paste.deploy/webob/routes。对于paste.deploy,结合它的官网文档把它的源码看了两遍。webob看的是源码。routes看的是文档。对于这些类库提供的函数,如果

2014-10-23 16:54:10 682

基于opencv的MFC程序

一个基于OPENcv的mfc应用程序,在其中用到了一些常用的图像处理函数

2011-05-28

空空如也

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

TA关注的人

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