- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 OpenStack Swift发展历程
Swift也是一个提供RESTful HTTP接口的对象存储系统,最初起源于Rackspace的Cloud Files,目的是为了提供一个和AWS S3竞争的服务。Swift于2010年开源,是OpenStack最初的两个项目之一。早在2010年,Swift就迎来了第一个Rackspace之外的商用案例——韩国电信,大家很熟悉的维基百科、ebay等也是Swift的用户。Swift在一些
2017-04-13 01:31:36 952
原创 对象存储Amazon S3的诞生
2006年亚马逊推出S3(Simple Storage Service)服务,其具有划时代的意义,奠定了未来存储的发展方向。S3定义了对象存储,是对象存储事实上的标准,从某种意义上说,S3就是对象存储,对象存储就是S3。亚马逊S3服务是对象存储市场的霸主,后续其他公司的对象存储都是对S3的模仿。
2017-04-13 01:24:17 3477
原创 对象存储定义
什么是对象存储?对象存储定义如下:对象存储是采用扁平数据组织形式并通过基于http协议的RESTful接口访问的分布式存储系统对象存储不支持随机读写操作,只能全读全写,其面向的是一次写入,多次读取的非结构化数据存储的需求场景对象存储支持海量用户并发访问,并对外提供高扩展(Scalability)、高持久(Durability)和高可用(Availab
2017-04-13 01:19:13 3187
原创 linux中shell如何实现毫秒级别的sleep
有两种方法:假设目标为 10ms:方法1. sleep 0.01方法2.usleep 10000 (usleep为十的负六次方秒,详细见man usleep)
2014-07-07 17:43:11 20652
转载 别的程序员是怎么读你的简历的
人事部门是这样阅读简历的(+15分)如果简历中说到了和工作职位相符的技能超过5次以上。 (+8分)如果简历中说到了和工作职位相符的技能3次到5次。 (+4分)如果简历中说到了和工作职位相符的技能1次到2次。 (+4分)Cover Letter(“求职信”或“自荐信”)提到了招聘人员。 (+2分)简历中有Cover Letter(求职信)。 (-10分)没有提到和职位描述相关
2014-07-07 17:42:00 687
原创 在vim中如何强制输入tab键
今天新写的makefile编译的时候一直报makefile:29: *** missing separator错误。。最后定位到是语法错了。。 命令:tab键 内容 输入的tab键被编辑器自动替换成4个空格了,导致一直报错,呵呵vim下可以这样写入tab键:ctr+v+i,会写入一个tab键
2014-07-07 17:40:26 17949
原创 目标文件和库文件的链接顺序
在Unix类型的系统中,编译器和链接器有个传统的行为方式:当命令行指定了多个目标文件,连接时按照自左向右的顺序搜索外部函数的定义。也就是说,当所有调用这个函数的目标文件名列出后,再出现包含这个函数定义的目标文件或库文件。(否则就会出现找不到函数的错误,链接时必须将库文件放在引用它的所有的目标文件之后链接??)当前的大多数编译器和连接器会自动搜索所有的目标文件,不考虑它们的顺序,但是
2014-07-07 17:28:59 1191 1
原创 多线程编程注意事项
在多线程编程中,在一个线程里面若有while或者for之类的循环,则线程会不断的占用CPU运行,这种情况下一般要调用sleep来使线程休眠一段时间,以让出CPU,这样其他线程才有机会占用CPU运行。
2014-04-25 21:04:07 580
转载 C++ 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。
2013-09-24 04:08:53 558
原创 Linux用户态切换内核态介绍
在Linux系统中,所有中断服务程序都属于内核代码。如果一个中断产生时任务正在用户代码中执行,那么该中断就会引起CPU特权级从3级到0级的变化,此时CPU就会进行用户态堆栈到内核态堆栈的切换操作。CPU会从当前任务的任务状态段TSS中取得新堆栈的段选择符和偏移值。因为中断服务程序在内核中,属于0级特权级代码,所以48位的内核态堆栈指针会从TSS的ss0和esp0字段中获得。在定位了新堆栈(内核态堆
2013-09-21 03:07:49 896
原创 从用户态向内核态切换的三种情况
从用户态向内核态切换可以分为3种情况:1、发生系统调用时 这是处于用户态的进程主动请求切换到内核态的一种方式。用户态的进程通过系统调用申请使用操作系统提供的系统调用服务例程来处理任务。而系统调用的机制,其核心仍是使用了操作系统为用户特别开发的一个中断机制来实现的,即软中断。2、产生异常时 当CPU执行运行在用户态下的程序时,发生了某些事先不可知的
2013-09-21 03:05:50 3560
原创 esp寄存器与ebp寄存器介绍
espESP(Extended stack pointer)是指针寄存器的一种(另一种为EBP)。用于堆栈指针。ESP为栈指针,用于指向栈的栈顶(下一个压入栈的活动记录的顶部),而EBP为帧指针,指向当前活动记录的顶部。栈指针与帧指针标识出了当前活动记录的位置。当函数被调用的时候,执行如下操作:⒈将帧指针压入栈中:push ebp⒉用ebp保存当前栈指针:mov ebp
2013-09-21 03:04:15 2397
原创 在从用户态到内核态的切换过程中,Linux主要做的事情
在进程从用户态到内核态切换过程中,Linux主要做的事: 1:读取tr寄存器,访问TSS段 2:从TSS段中的sp0获取进程内核栈的栈顶指针 3: 由控制单元在内核栈中保存当前eflags,cs,ss,eip,esp寄存器的值。 4:由SAVE_ALL保存其寄存器的值到内核栈 5:把内核代码选择符写入CS寄存器,内核栈指针写入ESP寄存器,把内核入口点的线性地址写入
2013-09-21 02:59:39 1998
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人