自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

转载 typedef用法

第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针

2016-08-22 22:28:51 4232

转载 IO协议栈前沿技术研究动态

先上一道开胃小菜,大家知道这是什么东西吗?我估计可能没有人见过,我也没有见过。这个东西是一圈一圈的铁丝,说白是铁丝,当然不是一般的铁丝,是经过设计的。这是半个世纪前的一种存储装置,是怎么存的呢?跟我在这个房间里面讲话有回声,我说出一句话,声波反射到我耳朵里面,我听到

2016-04-08 09:33:41 2183

原创 c/c++库函数整理1

1、getopt()头文件 #include 定义函数:int getopt(int argc, char * const argv[], const char * optstring);函数说明:getopt()用来分析命令行参数。1、参数argc 和argv 是由main()传递的参数个数和内容。2、参数optstring 则代表欲处理的选项字符串。

2016-04-08 09:31:21 564

转载 linux下用 fdisk把新硬盘 分区、格式化、挂载!

fdisk -l   #查看硬盘挂在情况Disk /dev/xvda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 b

2016-04-08 09:30:14 39947

转载 ceph源码解析--osd篇

Ceph分布式文件系统的代码分析的文章网上是比较少的,本团队成员对ceph做过详细的代码阅读,包括mds、osd、client等模块,但是缺少条理清晰的文档总结。暂且先放上OSD的代码分析,等后续整理陆续放上其它模块的。1 OSD的基本结构主要的类,涉及的线程,工作的方式1.1 类OSD该类主要用以处理网络消息,与mds客户端等之间的网络连接的维护。当收到客户端或者mds对

2016-04-08 09:28:33 6540

转载 关于Ceph现状与未来的一些思考

Ceph从2004年提交了第一行代码,至今为止已经10年了。这个起源于Sage博士论文,最早致力于开发下一代高性能分布式文件系统的项目,现在也成为了开源社区众人皆知的明星项目。特别是随着云计算的发展,Ceph乘上了OpenStack的春风,受到各大厂商的待见,Intel、DreamHost、SanDisk、CISCO、Yahoo等公司都或多或少的参与其中。RedHat更是一掷千金,直接砸了1.75

2016-04-08 09:23:46 3090

转载 开源项目学习方法

开源项目学习方法学习各种开源项目,已经成为很多朋友不可回避的工作内容了。笔者本人也是如此。在接触并学习了若干个开源项目之后,笔者试图对自己工作过程中的若干体会加以总结,以期对一些希望借鉴的朋友有所裨益。需要说明的是,笔者本人接触的开源项目大多属于计算机系统领域,例如Linux kernel,KVM,QEMU,OpenStack等。因此,此处介绍的经验必定也有些局限。请读者们自行分辨

2016-04-02 15:50:34 1247

转载 iostate命令详解

iostatiostat用于输出CPU和磁盘I/O相关的统计信息. 命令格式:iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]1)iostat的 简单使用

2016-03-16 11:22:45 3805

转载 ceph架构

1. 介绍云硬盘是IaaS云平台的重要组成部分,云硬盘给虚拟机提供了持久的块存储设备。目前的AWS 的EBS(Elastic Block store)给Amazon的EC2实例提供了高可用高可靠的块级存储卷,EBS适合于一些需要访问块设备的应用,比如数据库、文件系统等。 在OpenStack中,可以使用Ceph、Sheepdog、GlusterFS作为云硬盘的开源解决方案,下面我们来了解C

2016-03-11 13:10:13 958

转载 详细介绍Ubuntu网络配置方法

文章主要介绍Ubuntu网络配置,希望能让Linux新手学习参考。更好使用Ubuntu。更有效的学习Ubuntu的基础知识。Ubuntu网络配置例如:(1) 配置eth0的IP地址, 同时激活该设备。 #ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2) 配置eth0别名设备eth0:1的IP地址,并添加路由。 #ifco

2016-02-25 18:18:02 711

转载 BlueStore 介绍

ceph 目前是开源社区比较流行的分布式块存储系统,其以良好的架构,稳定性和完善的数据服务功能,获得的了广泛的部署和应用。目前ceph 最大的问题是其性能相对较差,特别是无法发挥SSD等高速设备的硬件的性能。 Ceph 开源社区一直在优化ceph的性能问题。 目前的结果就是引入了新的object store,这就是最进合并入ceph master的BlueStore.Bluesto

2016-02-25 14:07:50 5318

转载 SPDK,软件定义存储的催化剂

去年第四季度开始,XSKY团队[1]开始研究英特尔向社区开源的SPDK。借XSky支持Ceph使用 SPDK之际,福叔在学习之中发现,就像软件定义网络(SDN)和网络功能虚拟化(NFV)中的性能利器DPDK,SPDK也极有机会给SDS领域带来革命性的影响。如果朋友们不知道DPDK是干什么的,没有关系,我将在以后抽时间给大家分享下DPDK的学习心得,以及我们把它用在存储领域的一些想法,今天先看看SP

2016-02-25 13:54:33 1483

转载 IDE、SATA、SCSI、SAS、FC、SSD硬盘类型介绍

目前所能见到的硬盘接口类型主要有IDE、SATA、SCSI、SAS、FC等等。 IDE是俗称的并口,SATA是俗称的串口,这两种硬盘是个人电脑和低端服务器常见的硬盘。SCSI是"小型计算机系统专用接口"的简称,SCSI硬盘就是采用这种接口的硬盘。SAS就是串口的SCSI接口。一般服务器硬盘采用这两类接口,其性能比上述两种硬盘要高,稳定性更强,但是价格高,容量小,噪音大。FC是光纤通道,和SCIS接

2016-02-25 13:53:36 845

转载 linux查看系统硬件命令大全

linux查看设备命令系统# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv

2016-02-23 18:48:39 1757

转载 git命令

一、 Git 命令初识在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识示例:从Git 版本库的初始化,通常有两种方式:1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份例如:git  clone  git://github.com/someone/some_p

2016-01-27 15:37:51 473

转载 nvme体验

前阵子听闻微星已经更新BIOS,让9系列主板支持NVMe设备,为了给大家展示NVMe设备性能的优越性,我特别从微星那边借来一张NVMe SSD Intel DC P3700 400GB来测试。 为什么固态硬盘要采用PCIe?  NVMe的另一个重大改良是支持多队列和更高的队列深度。多队列让CPU的多核心性能得到更好释放,IOPS再也不会受到单核心影响了。所以说NVM

2016-01-27 14:28:31 2639

转载 NVMe

作为NVMe标准的主要发起者,英特尔已经推出了多款NVMe闪存卡和SSD盘,业界也有不少友商开始大行NVMe之道,初步来看,似乎NVMe已经主导了许多闪存厂商。但是,NVMe真的就如大家所说的那么美好吗?大家快速转型到NVMe方向,到底会遭遇哪些问题?我们该如何理性认识NVMe的趋势呢?NVM Express(简称NVMe)是一个针对PCIe 接口的SSD的主机控制芯片协议标准,虽然其与控

2016-01-27 14:27:13 6826 2

转载 虚函数实现

1、c++实现多态的方法其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public:    virtual void f();    virtual void g();private

2015-11-20 10:49:15 413

转载 C++虚函数实现原理与代价

一 引言C++面向对象语言的一大特性就是抽象,在程序设计上的体现就是鼓励面向接口编程,而不要面向具体实现编程。这里所说的抽象和接口与C++的多态性密切相关。C++的多态分为静态多态(编译时多态)和动态多态(运行时多态)两大类。静态多态通过重载、模板来实现;动态多态就是通过本文的主角虚函数来体现的。虚函数是C++语言一个非常重要的特性,不同编译器对此特性的实现机制也略有差别,虽然具体实现细节

2015-11-20 10:47:16 1405

转载 c++虚函数实现机制及内存模型

前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处!既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言

2015-11-19 15:35:43 6033 2

转载 海量数据处理:十道面试题与十个海量数据处理方法总结

时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。      首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到

2015-11-03 10:27:00 547

转载 Thread 1: EXC_BAD_ACCESS

IOS 開發中,如果提前釋放一個指針的內存,在以後還繼續使用這個指針,那麼程序會立刻 crash 掉,而且很難有報錯信息,我以前都是靠猜測去判斷錯誤的原因,我們應該利用工具去找到錯誤的地方,然後快速准確的定位到錯誤地方,及其錯誤原因,最後進行改進。    其實 iOS 控制台提供這種機制,如果你選擇 debug 模式(必須在這個模式下),在程序 crash 之後,在控制台輸入 bt,就

2015-08-31 14:35:35 1301

转载 sizeof用法

sizeof()功能:计算数据空间的字节数1.与strlen()比较      strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。      而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。2.指针与静态数组的sizeof操作      指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为

2015-08-11 20:09:18 388

转载 vs2005 调试基础

通过前面两篇,相信大家已经基本了解了我们的研究思路。既然是研究,那么必须的研究工具就得熟练掌握了。这里我所指的研究工具就是VC,我所使用的VC版本是2005。本文也将根据VC2005进行探讨。可能很多朋友或者初学者还是使用的VC6.0。在这里本人不推荐使用VC6.0。原因很简单,VC6.0已经过时了,后面的版本比VC6.0更强大方便。可能也是因为众多经典的程序设计书籍使用的都是VC6.0。有的朋友

2015-08-05 13:25:54 931

转载 vs2005快捷键

快捷键                                    功能CTRL + SHIFT + B                生成解决方案CTRL + F7                            生成编译CTRL + O                             打开文件CTRL + SHIFT + O              

2015-08-04 14:41:22 461

转载 PowerDesigner使用教程

文章转置http://www.cnblogs.com/yxonline/archive/2007/04/09/705631.htmlPowerDesigner教程系列(一)目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念。一、概念数据模型概述数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:1)能

2015-06-14 15:03:09 1052

转载 linux中断源码分析 - 初始化(二)

本篇文章主要讲述源码中是如何对中断进行一系列的初始化的。 回顾  在上一篇概述中,介绍了几个对于中断来说非常重要的数据结构,分别是:中断描述符表,中断描述符数组,中断描述符,中断控制器描述符,中断服务例程。可以说这几个结构组成了整个内核中断框架主体,所以内核对整个中断的初始化工作大多集中在了这几个结构上。   在系统中,当一个中断产生时,首先CPU会从中断描述符表中

2015-05-21 10:54:39 730

原创 linux课程总结

linux世界很大,我想去学学。       从第一周到现在,每周的博客分享对我的帮助很大。不仅将自己学到的东西写下来加深了印象,同时也方便自己和别人日后查阅。虽然只是入门讲解,但是希望能对像笔者一样的菜鸟有帮助。一、每周bolg汇总       下面是对每周blog的一个导航和概述。       第一周:浅谈计算机是如何工作的       通过这个简单的c程序

2015-05-06 21:01:50 1975 1

原创 浅谈linux进程调度

Linux是一种分时操作系统,也就是实现进程到进程的快速切换,让用户感到好像同时进行了多个线程。类似于操作系统中说到的时间片轮转调度算法。       进程调度的时机有哪些呢?一般来说有三种情况。       • 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule();

2015-04-26 11:01:33 1021

原创 浅析linux可执行文件

程序是以可执行文件的形式存放在磁盘上的,可执行文件既包括目标代码也包括数据。我们一般所使用的库函数可以被静态的拷贝到可执行文件中,也可以运行时动态链接。 可执行文件是一个普通文件,它描述了如何初始化一个新的执行上下文,也就是如何开始一个新的计算。当进程开始执行一个新程序时,它的执行上下文变化很大,这是因为在进程前一个计算执行期间所获得的大部分资源会被抛弃。本文通过调用exec*库函数加载一个可执行文件来简单的分析可执行文件的处理过程。        用re

2015-04-19 17:04:13 1268

原创 fork()是如何创建新进程的

进程,我们一般都把它看做是程序执行的一个实例,是进程实体的运行过程,是系统进行资源分配和调度的一个独立的单位。有产生、有消亡。当一个进程创建时,子进程可以继承父进程所有资源,撤销时,也要归还所有资源。一、进程描述符       我们一般所说的进程控制块PCB对应到linux内核里面是一个task_struct的类型结构,它的字段包含了与一个进程相关的所有信息。下图即是一个linux

2015-04-12 15:03:09 6139

原创 linux中system_call中断处理过程

上次我们分析了系统调用大致过程,现在我们把这两个系统调用的代码放到MenuOS中,并用gdb跟踪调试来看看从system_call开始到iret结束之间的整个过程。       边看实验过程边分析:

2015-04-05 19:40:00 882

翻译 The Atlas Supervisor

本文主要是对The Atlas Supervisor一文的简要翻译(对不关注的地方简略翻译),而对系统研究放在下个博客讨论。       一、Atlas Supervisor简介       Atlas Supervisor是一个能把Manchester University的Atlas计算机资源交由管理程序来控制的系统。依此来实现计算机的多任务及用户程序的并发执行。     

2015-03-29 21:49:12 661

原创 浅谈Linux系统调用

一、系统调用       什么是系统调用呢?所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能,系统调用可以被看作特殊的公共子程序。它把用户从底层的硬件编程中解放出来,极大的提高了系统的安全性,同时也使用户程序移植性变为可能。       说道系统调用就不得不说我们程序员熟悉的API(application program interface)。API只是一个函数定义,而系统调用通

2015-03-29 13:25:17 735

转载 linux下的系统调用函数到内核函数的追踪

使用的 glibc : glibc-2.17使用的 linux kernel :linux-3.2.07 系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数)。用户程序通过系统调用从用户态(user mode)切换到核心态(kernel mode ),从而可以访问相应的资源。这样做的好处是:为用户空间提供了一种硬件的抽象接口

2015-03-28 21:16:45 757

原创 追随Linux内核启动的脚步

卢鹏 原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000了解了

2015-03-16 16:47:14 879

原创 从一个简单的内核看操作系统的工作

卢鹏 原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000操作系统的工作过程很复杂,涉及到很多东西。本文并不是一点一滴的介绍其整个工作原理,而是通过一个简单的内核小程序,大致解析os工作过程。一、计算机的三大法宝之前介绍过计算机的三大法宝中的前两个:存

2015-03-12 16:24:33 1225

空空如也

空空如也

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

TA关注的人

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