自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我对当下公有云的一些粗浅认识

本来想写一下我对以前工作的回忆,写完回过头来看看,结果感觉写成了议论文。。。要搁高考,估计就是个跑题的零分作文了。索性我再改改,给成议论文好了。首先抛出我的结论:政企(中大型企业)上云,华为云会更适合一些。我已经将近两年不在华为云干了,所以这篇文章不是水文,是我的一些感受,就像刚说的,本来想写写回忆,结果写成了议论文。我以前在华为云干的时候,接触最多的是阿里,所以本文主要是和阿里做一些...

2020-03-03 20:46:32 1209

原创 回忆我当架构师的日子(三)

7、千万抬头看路“一顿操作猛如虎,仔细一看二百五”,这句话曾经在网络上十分流行,虽然有点粗俗,但我觉得的确可以给我们一些警示。项目往往要不断的校准,才能得到一个令人满意的结果。记得大学做金工实习的时候,我们是用锉刀把一段圆柱形的钢搓成小榔头。最后那几下要慢慢搓,然后拿尺子量,然后在搓再量,直到尺寸刚刚好。有一个哥们真的是一顿操作猛如虎,别的不说,就他那深蓝色的衬衫都湿透了,可见他多么猛如虎。结...

2019-02-22 14:36:08 575

原创 回忆我当架构师的日子(二)

5、平衡的艺术架构师是整个产品或者项目方向的把控者,必须要有全局的视野,不能只把精力放在某一个方面,这样很容易忽略其他。从某种意义上讲,架构工作有重要的一部分是平衡的艺术,或者说取舍,规划与现状的平衡,范围与人员投入的平衡,紧迫程度与交付时间的平衡。规划太过超前,短期内就很难产品化,所以要尽可能的分步交付。所谓船小好调头,前期交付发现的种种问题,对于后期技术有非常重要的参考价值,针对这些及...

2019-02-21 14:43:21 518

原创 回忆我当架构师的日子(一)

1      引子最近由于工作变动,一切从零开始,感觉像回到了刚工作的时候,什么都不懂,什么都等着我去学习。进入了一个全新的阶段,但上一个阶段现在回想起来却什么都没有留下。突然觉得应该写点什么,算是对上一个阶段的总结,也能算是在这个阶段留下点东西。       我基本上都是在搞技术项目、以及技术项目的落地。所以我的角色不是技术项目的开发或设计,就是产品的落地接口人。期间做过一次产品的解决方...

2019-02-19 11:50:47 729

原创 一个十年果粉转Android的呐喊。

    本来想把标题写成果粉转果黑,但是想想还没到这个地步,X现在还是我的备用机,就写成转阵营吧。但这也掩饰不了我一个十年果粉的失望。    我玩手机大概算下来有个15年了,做果粉的时间最长,大概十年,都快赶上我玩魔兽世界的时间了。。。从3GS开始,后面又买了4S、5C、SE、6 plus、7、一路买到X。但自打iPhone X出来以后,我就逐渐对苹果失去了兴趣,坦白说甚至开始有点厌恶这个厂商...

2019-02-02 11:56:40 376

原创 GPU云主机,到底谁有真功夫(二)专业设计领域对比

关键词:碾压  7倍差距    在上一篇文章里,我对比了一下华为云和阿里云主打深度学习场景的实例。大家可以看到,在基础能力方面华为云可以说具有压倒性的优势,P2P带宽整整是对手的2.5倍,能将虚拟化后的性能做到和物理性能几乎一致,技术能力的确深厚。    今天这篇文章我来对比一下GPU云服务器的另一个主流领域的能力,看看二者在专业设计领域的能力到底如何。非常幸运,在 专业设计领域有一个benchm...

2018-04-13 17:32:11 2035

原创 换个角度感受华为云的GPU云服务器

    昨天突发奇想,想看看GPU云服务打游戏的效果怎么样,于是就有了这篇文章。使用的过程中,真的被华为云GPU云服务器的能力惊到了,真的是被惊到了啊,被惊到了,重要的事情说三遍。    虽然在云上玩PC游戏没什么卵用,但可以反映GPU云服务器的综合能力,并且当下流行一些手游在云端渲染,这个就有一些参考意义了。过两天再看看专业设计领域的能力怎么样。    我是80后,最喜欢的游戏就是wow,所以就...

2018-04-09 11:17:42 14860

原创 GPU云主机,到底谁有真功夫(一)——基础能力对比

关键词:2.5倍 151%         现在在国内能提供P100云主机的厂商有三家,阿里云、天翼云、还有华为云。阿里云在去年7月30日左右抢先华为云一个月发布了P100实例,并且现在能够开放购买。华为云还在公测阶段,需要申请。到底谁才有真功夫,可以通过一系列的对比来一探究竟。        这是一个系列文章,我打算分三个部分,从三个方面来比比看。第一部分,先用NVIDIA提供的一些CUDA s...

2018-03-29 20:52:11 5200

原创 KVM存储实践(一)

KVM存储实践(一) 引用了网上的一些图片,感谢没查到名字的大神们  KVM的存储模式有很多种,threads,dataplane,vhost等,甚至还可以利用PCI直通技术做存储的直通。当然还有好几种cache模式,比如None,Writeback,Writethrough等。本文不会聚焦于这些技术的实现原理,仅从实践场景出发,总结一下这些模式的特点,和各自能够胜任的场景。以及在实践过程中,

2017-03-06 00:05:15 1120

转载 Facebook数据中心网络架构概览

Facebook的用户已经超过10多亿,而且还在迅速增长。为了能够给用户提供实时的体验,Facebook为数据中心设计了一个高可扩展,高性能的网络架构,称之为:data center fabric。虽然这个网络架构实际上在14年已经实施了,但是其中的一些设计理念在今天的一些数据中心里依然有很好的参考价值。

2017-02-09 00:02:44 9417

转载 Xen块协议的问题

早些时候,Xen Linux的维护者Konrad Rzeszutek Wilk提出了一些针对PV块协议的优化,可用于减少guest的虚拟磁盘开销。 以下内容主要参考、翻译自:a list of possible improvements to the Xen PV block protocol块协议里有一些明显的问题: 假设guest和host都是64位的。1、Segment最多有11个

2015-03-07 09:22:00 894

翻译 Xen PV disk间接描述符

早期的Xen利用“环”来做guest和driver domain之间的IO交换,由于设计限制,一次处理的最大IO为1408K,所以在处理大IO时,成为性能瓶颈。为了解决这个问题,Xen社区借鉴VirtIO的实现方式,提出了Indirect Descriptors这个概念。 以下内容参考和翻译自:Indirect descriptors for Xen PV disksXen PV disk协议

2015-03-07 09:05:50 1312

转载 Indirect descriptors for Xen PV disks

转自:Indirect descriptors for Xen PV disksIndirect descriptors for Xen PV disksSome time ago Konrad Rzeszutek Wilk (the Xen Linux maintainer) came up with a list of possible improvements to the Xen PV b

2015-03-05 21:21:45 910

转载 block protocol

There are outstanding issues we have now with the block protocol: Note: I am assuming 64-bit guest/host - as the size’s of the structures change on 32-bit.A) Segment size is limited to 11 pages. It me

2015-03-05 21:15:24 617

原创 利用虚拟机调试内核模块

利用虚拟机调试内核模块本文描述了在虚拟机中,利用KGDB双机联调NBD驱动的准备过程以及使用频率较高的调试命令。以此为例,介绍调试Linux内核以及内核模块的一种较常用的方法。在进行内核调试时,系统已经不会响应用户态程序,所以需要使用两台计算机利用串行端口或网络进行双机联调,本文介绍的是利用串行端口进行联调。下面详细介绍调试的准备工作和调试过程:1 准备工作新建虚拟机,并安装linux系统。本教程

2015-03-05 19:42:21 1075

原创 在虚拟机中利用KGDB调试Linux内核

在进行内核调试时,系统已经不会响应用户态程序,所以需要使用两台计算机利用串行端口或网络进行双机联调,本文介绍的是利用串行端口进行联调。1 准备工作新建虚拟机虚拟机,并安装linux系统。本教程使用的是3.9.4-200.fc18.x86_64。2 开启内核调试2.1 安装debug模式的内核 localhost:/ # yum install kernel-debug2.2 开启服务端(调

2015-03-05 19:40:59 805

转载 用getopt处理命令行参数

用getopt处理命令行参数Linux下很多程序甚至那些具有图形用户界面(graphical user interface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与用户进行交互的主要手段。具有可靠的复杂命令行参数处理机制,会使得您的应用程序更好、更有用。getopt()是一个专门设计来减轻命令行处理负担的库函数。1、命令行参数命令行程序设计的首要任务是解析命令行参数,GUI派的

2015-03-05 19:39:28 608

翻译 多队列块层

多队列块层简介多队列块层简介在早些时期,高性能的存储设备的IOPS只能跑到几百,而当今的高端设备动辄可以跑到几百万。所以内核块层的设计已经远远不能满足当今的IO处理需要。最近几年,社区已经意识到必须针对SSD这些高速的设备来重新设计一套新的机制。从2.6.10开始,通用块层的基本结构就没有太大的变化。Linux设备驱动模型为块驱动提供了两种接口:一个是”request”方式,在这个模式下,通用块层

2015-03-04 22:30:30 1831

原创 Linux SCSI子系统分析(二)发现target的过程

Linux SCSI子系统分析二发现target的过程发现过程函数调用过程Linux SCSI子系统分析(二)发现target的过程发现过程发现target的过程比较简单,从复杂的代码中总结出主要的流程如下图。这个流程和命令iscsiadm -m discovery -t st -p 192.168.8.1相对应:Created with Raphaël 2.1.2iscsiadmiscsia

2015-03-04 22:29:13 1346

原创 Linux SCSI子系统分析(一)Open iSCSI的结构

前言最近在 搞基 于SCSI的技术项目,所以要学习一下linux对于scsi的实现,以及一些iSCSI的知识。以前对一些技术的学习总是没有留下学习资料,没有传承。这次学习scsi子系统,还是要留下一些东西。对系统有了进一步的理解,并且能挤出时间的话,我就会来更新这个连载。本次研究的主要对象是Open iSCSI(2.0.873)/ Linux(3.11.4)/ Linux SCSI targe

2015-03-04 22:28:02 2064

转载 KVM简介

KVM 全称 Kernel-based Virtual Machine, 即基于 Linux 内核的虚拟化技术, 精确的说,就是 KVM VMM 的核心功能是通过一个 Linux 内核模块实现的。 “基于 Linux 内核”是 KVM 在软件实现上不同于其他 VMM 实现的最重要特点, 使得 KVM 在实现上能获得如下好处 : 利用 Linux 内核已有的功能和基础服务,减少不必要的重新开发。 如

2015-03-04 22:27:19 631

转载 automake工具使用简介

automake工具使用简介编译内核rpm 打包过程automake工具使用简介编译内核obj-m += hellomod.oCURRENT_PATH := $(shell pwd)LINUX_KERNEL := $(shell uname -r)LINUX_KERNEL_PATH := /usr/src/kernels/$(LINUX_KERNEL)all: make

2015-03-04 22:25:48 575

转载 gdb常用命令

gdb常用命令

2015-03-04 22:24:55 866

转载 git跟踪空目录的变通方法

git空目录

2015-03-04 22:23:07 531

原创 定制fedora安装iso

定制fedora安装isoKickstart

2015-03-04 22:20:46 1444

原创 利用devstack部署All in one OpenStack

前言:    作为码农,对技术学习的总结从来没有写过,以至于工作了这么多年没有留下来任何的东西,主要还是因为懒。今天回过头来回想一下,其实是太不应该了。学过的东西应该及时的做个总结,留个给以后查阅也是好事。回忆了一下,自己做过的东西很多,Windows的、Linux的、Web的、SCSI的、OpenStack的等等等等,但竟然一篇可以留下来的东西都没有,甚为惭愧。有很多做过的东西的技术细节

2015-01-20 23:44:03 1955

翻译 Windows Vista 的服务

Windows Vista 的服务2006-8-9本文档提供了一些Windows Vista服务的相关信息。对于想在这个版本的Windows上面开发服务程序的开发者们,本文档也提供了一些最优方法。这些信息应用在Windows操作系统上。微软可能会随时更改本文档内容,可在以下地址获取最新的英文版本。http://go.microsoft.com/fwlink/?LinkId=71

2014-12-03 00:23:03 1067

翻译 PE文件结构(PE文件头二)

①     Optional header Optional header从字面上看,这个文件头是可选的,但实际上它是PE文件中必不可少的。它在winnt.h中被定义称为:typedef struct _IMAGE_OPTIONAL_HEADER {    WORD    Magic;    BYTE    MajorLinkerVersion;    BYTE    Mi

2014-12-02 23:45:03 1055

翻译 PE文件结构(PE文件头一)

3、 PE文件结构①     MS-DOS头MS-DOS头在winnt.h中定义成为IMAGE_DOS_HEADER,这个结构中,最需要关心的是成员e_lfanew,它给出了PE Header在文件中的偏移量。比如,e_lfanew的值是0xE0,则PE Header在文件距离开头0xE0处。②     MS DOS 2.0 Stub Program这是一段DOS程序,如果把w

2014-12-02 23:43:47 1001

翻译 Windows PE文件结构简介

①     Optional header从字面上看,这个文件头是可选的,但实际上它是PE文件中必不可少的。它在winnt.h中被定义称为:typedef struct _IMAGE_OPTIONAL_HEADER {    WORD    Magic;    BYTE    MajorLinkerVersion;    BYTE    MinorLinkerVersion;

2014-12-02 23:37:28 733

翻译 Windows多线程编程(4)同步对象——Mutex对象

Mutex对象Mutex对象是一个同步对象,如果没有被任何线程占有,它的状态就会被设置为signaled,如果被线程占有,它的状态就是nonsignaled。在同一时刻,只能有一个线程占有一个mutex对象,这对于协调互斥地访问共享资源非常有用。举个例子,为了防止两个线程同时往共享内存中写入数据。在往内存中写入数据之前,都等待mutex对象的所有权。想共享内存中写完数据之后,线程释放这

2014-12-02 23:36:19 682

翻译 Windows多线程编程(3)同步对象——Event对象

Event对象    Event对象是一个同步对象,它的状态可以被SetEvent函数显式的设置成为signaled状态。下面是event对象的两种类型:对象描述手动重置eventEvent对象的状态会保持signaled状态,除非显式的调用ReseEvent函数将它重置为nonsignaled状态。一旦它的状态被设置成为sign

2014-12-02 23:35:47 697

翻译 Windows多线程编程(2)多线程同步

为了避免竞争条件和死锁,非常有必要做一些多线程存取共享资源的同步工作。对于确保几个相关的代码能够以正确的顺序执行,同步也非常重要。    下面的这些对象可以用于多线程同步:        Console input buffers         Events         Mutexes         Processes         Semaphores 

2014-12-02 23:35:11 585

翻译 Windows多线程编程(1)创建线程

CreateThread函数为进程创建一个线程。必须给创建的线程声明一个开始地址,使这个线程可以从这个地址开始执行。一般的,这个地址就是程序里定义的一个函数的名字。这个函数有一个参数,一个DWORD类型的返回值。进程可以拥有运行同一函数的多个线程。    下面的例子说明怎么样创建一个新线程,这个线程执行一个本地定义的函数:ThreadProc。被建立的线程利用一块动态开辟的缓存,给

2014-12-02 23:34:22 631

原创 使用远程桌面维护系统可能会失败

在windows 2003中,每一个已经登录到计算机的用户都对应一个session,这些session都是相对独立的。正因为有这个相对独立性,同时登陆到计算机上的用户的操作才互不干扰,所以跨session访问某些系统资源将会比较麻烦。(这一点在windows vista中体现的非常明显,运行在session0下的所有服务已经不能像在2003中那样自由显示用户界面。)系统启动完毕后,windows

2014-12-02 23:29:27 590

翻译 文件管理(四)共享文件和内存

文件映射可以用来在多个进程之间共享文件或者内存。要共享文件或内存,所有的进程都必须使用相同的文件映射的名称或句柄。    要共享一个文件,首先,第一个进程使用CreateFile函数创建或者打开一个文件。然后,使用CreateFileMapping函数创建一个文件映射对象,声明文件句柄和文件映射对象的名称。所有的内核对象(event,semaphore,mutex,waitable t

2014-12-02 23:27:28 570

翻译 文件管理(三)创建文件视图

要将文件中的数据映射到进程的虚拟内存中,你必须创建一个文件的视图。MapViewOfFile和MapViewOfFileEx函数使用CreateFileMapping返回的文件映射对象句柄来在进程的虚拟地址空间里建立文件的视图,或者文件的某个部分。如果这些函数指定的权限标志和CreateFileMapping中的权限标志不一致,则会执行失败。    MapViewOfFile函数返回一

2014-12-02 23:27:25 713

翻译 文件管理(二)创建文件映射对象

映射文件的第一步是调用CreateFile函数来打开这个文件。为了确保被映射的文件不能被其他的进程写入,你应该使用专门的权限打开这个文件。另外,文件句柄要一直打开,直到进程不再需要它。一个得到专门的权限的简单方法是,将CreateFile的fdwShareMode参数设置为零。CreateFileMapping函数使用CreateFile函数返回的句柄来创建一个文件映射对象。   

2014-12-02 23:26:42 1060

翻译 文件管理(一)创建并打开文件

这是好早前学习MSDN时留下的东西,现在把它放到新地方来   最近由于工作需要,一直在学习MSDN里面有关于服务编程的东西。整天看英文文档真是觉得无聊,所以我决定边看边翻译一下,也算是给学习留下一点成果吧。    CreateFile函数可以创建新的或者打开已存在的文件。你必须指定文件名,创建规则,以及一些别的属性。一旦创建一个新的文件,操作系统就把它放到指定的文件夹里去。  

2014-12-02 23:25:12 713

原创 位图初级(二)——相关数据结构

这是当时媳妇对我博客的评价,哈哈:小雨 2007-1-7 14:18顶~ 这个最最有用!! 真是好人啊好人[emot]5[/emot]BITMAPFILEHEADER    BITMAPFILEHEADER结构包含关于类型,大小,布局设备无关的位图信息。    typedef struct tagBITMAPFILEHEADER {       WORD  

2014-12-02 23:23:55 477

VC++技术内幕

VC++技术内幕 原版

2008-02-23

空空如也

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

TA关注的人

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