- 博客(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
2373
原创 CGI,FastCGI,WSGI浅析
我们将服务端程序分为了web服务器和应用程序服务器。web服务器是用于处理HTML文件,让客户可以通过浏览器进行访问。主流的有apache,IIS,nginx,lghttpd等。应用服务器处理业务逻辑,比如使用python的django,flask写成的程序通常来自客户端浏览器的请求被web服务器截获,如果是静态请求,则如nginx会自己做处理,如果是动态请求,则会抛给
2015-03-25 14:31:48
2865
转载 C 编译、链接、加载
一、概述C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可加载、可执行代码的过程。过程图解如下: 预处理器:将.c 文件转化成 .i文件,使用的gcc命令是:g
2015-02-05 13:59:05
644
原创 linux下编程动态库和静态库编译使用
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。linux下编程动态库文件为.so文件,静态库文件为.a文件本文主要通过举例来说明在Linux中
2015-02-04 17:49:35
919
原创 ceph源码分析之消息通信机制
在介绍ceph的读写流程时,我们流程的开始于OSD::_ms_dispatcher,这个函数的意义表示,osd拿到了消息,并要根据不同的表示对消息进行dispatcher,那么消息究竟是如何来的,这个之前没有进行任何介绍,本章主要就是对此进行梳理。本文引用参考了《解析ceph:网络层的处理》这篇文章。 现在大多的网络编程中,都会使用基于事件通知的异步网络IO方式来实现,比如Epoll和Kq
2015-01-20 10:33:19
4303
原创 ceph一些基础概念的简介
最近因为整理文档,发现一些很久以前写的关于ceph基础介绍的ppt,为了防止资料丢失,打算把搬到这里留作备份。现在线上环境是openstack+ceph的结构,ceph直接连接在openstack中块存储模块cinder的后端。什么是Ceph利用一个分布式集群来提供对象,块和文件存储的统一存储平台。是一个免费开源软件,Ceph的是一种基于软件的解决方案,并在商品硬件上运
2015-01-15 17:27:35
11228
原创 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
5167
原创 ceph源码分析之读写操作流程(2)
上一篇介绍了ceph存储在上两层的消息逻辑,这一篇主要介绍一下读写操作在底两层的流程。下图是上一篇消息流程的一个总结。在ceph中,读写操作由于分布式存储的原因,故走了不同流程。对于读操作而言:1.客户端直接计算出存储数据所属于的主osd,直接给主osd上发送消息。2.主osd收到消息后,可以调用Filestore直接读取处在底层文件系统中的主pg里面的内容然后
2015-01-13 18:14:42
6049
原创 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
9363
转载 Python装饰器学习(九步入门)
这是在Python学习小组上介绍的内容,现学现卖、多练习是好的学习方式。第一步:最简单的函数,准备附加额外功能12345678# -*- coding:gbk -*-'''示例1: 最简单的函数,表示调用了两次''' def myfunc():
2014-11-07 12:26:51
452
转载 openstack之nova-api服务流程分析
nova-api发布api服务没有用到一个些框架,基本都是从头写的。在不了解它时,以为它非常复杂,难以掌握。花了两三天的时间把它分析一遍后,发现它本身的结构比较简单,主要难点在于对它所使用的一些类库不了解,如paste.deploy/webob/routes。对于paste.deploy,结合它的官网文档把它的源码看了两遍。webob看的是源码。routes看的是文档。对于这些类库提供的函数,如果
2014-10-23 16:54:10
736
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人