- 博客(43)
- 资源 (4)
- 收藏
- 关注
原创 本博客迁移至http://www.cnblogs.com/cobbliu/
本博客迁移至http://www.cnblogs.com/cobbliu/,欢迎同行交流技术~~~
2013-03-21 17:48:12
2520
转载 linux文件系统剖析
简介: 在文件系统方面,Linux® 可以算得上操作系统中的 “瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。基本的文件系
2012-01-07 22:15:49
935
转载 剖析ext4文件系统
简介: 第 4 个扩展文件系统,即 ext4,是下一代的日志文件系统,它与上一代文件系统 ext3 是向后兼容的。尽管 ext4 目前还不是标准文件系统,但它将成为大部分下一代 Linux® 发行版的默认文件系统。了解 ext4,以及它为什么将成为您最喜欢的新文件系统。 Linux 内核的每次发行都伴随一些惊喜,今年 12 月份发行的 2.6.28 也不例外。这
2012-01-07 22:07:08
2076
转载 用rpm打包软件(三)
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part3/
2012-01-06 14:40:31
826
转载 用rpm打包软件(二)
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part2/index.html
2012-01-06 14:40:09
866
转载 用rpm打包软件(一)
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/index.html
2012-01-06 14:39:09
736
转载 Bash编辑快捷键
生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。编辑命令Ctrl + a :移到命令行首Ctrl + e :移到命令行尾Ctrl + f :按字符前移(右向)Ctrl + b :按字符后移(左向)Alt + f :按单词前移(右向)Alt + b :按单词后移(左向)Ctrl + xx:在命令行首和光标之间移动Ctrl + u :从光标处删除至命令行首
2011-12-31 10:31:23
834
转载 git常用命令收藏
这个教程将介绍如何将一个新的项目导入到 git 之中,如何修改项目并如何将这些变更与其他开发者分享。如果你更感兴趣如何用 git 取出一个项目,比如,测试软件的最新版本,你可能更应该看看The Git User’s Manual的前两章。首先,记住你可以用 man 来获取 git 的文档,比如 "git diff" 的文档可以用如下命令察看:$ man git-diff在做任何改动
2011-11-30 10:45:29
1734
原创 Erlang NIF简析
在Erlang调用C代码时,NIF(Native Implemented Function)是比port driver更简单和有效的实现方式,尤其是编写同步程序中,NIF是非常适合Erlang 的。1, 基本原理 NIF可以使我们可以用C实现相同的程序逻辑,但速度比用纯Erlang的快,跟C的速度很相近。 C语言编译生成的动态库(*.so)在Erlang调用C模块
2011-11-24 18:41:07
6892
1
原创 Erlang的学习资源
Erlang语言绝对算得上是一种“小众”语言,但其未来的发展前景却是无法估量的,因为它可以解决传统语言很难解决的并行计算中的难题。Erlang是一种函数式(变量只能赋值一次)、强类型、动态类型(变量类型在运行时决定,代码需要编译后才能执行,与 Python,Ruby等不一样)、面向并发(Concurrency Oriented)的语言。最近实习的公司有个项目刚好要用Erlang来开发,对这个语言产
2011-11-24 15:02:21
1569
原创 zookeeper工作原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee
2011-11-21 13:53:30
1162
转载 基于ZooKeeper构建大规模配置系统II
上篇博文描述了基于ZooKeeper构建互联网大规模配置系统的基本概念,并对ZooKeeper做了简单的介绍。这里谈谈ZooKeeper的一些关键技术以及用ZooKeeper构建大规模配置系统的细节,最后讲述我们在构建系统过程中的遇到问题及其解决思路,仅作参考,希望对您有所帮助。 提到zookeeper,我们不得不提起Paoxs算法和LesileLamport。Paoxs算法是
2011-11-04 18:55:40
2247
2
转载 基于ZooKeeper大规模集群配置系统概述
基于ZooKeeper大规模集群配置系统概述 通常大型互联网公司都拥有较大规模、结构复杂的服务器集群。随着互联网迅速发展,用户访问量以及服务器规模的越来越大,Web应用项目需要部署在数目众多的服务集群上协同工作,才为用户提供更可靠、稳定、优质的互联网服务。 一般在互联网公司发展初期,服务器以及Web应用程序较少,项目的配置信息都会存放在文件中,比如把一些基本的数据库
2011-11-04 18:54:34
6474
2
转载 epoll
简介 使用epoll进行高性能网络编程epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它不会复用文件描述符集合来传递结果而迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO
2011-10-27 12:05:31
1142
转载 session简介
session在Web开发环境下是指一类用来在客户端与服务器端之间保持状态的解决方案。有时候Session也用来指这种解决方案的存储结构,比如说把某某信息存储在session中。1. session机制 session机制采用的是在服务器端保持 HTTP 状态信息
2011-10-14 11:06:48
2275
原创 反向代理服务器的工作原理
最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡。所以搜罗了一些关于反向代理服务器的内容,整理综合。 一 概述 反向代理(Reverse Proxy)方式是指以代理
2011-08-28 11:34:25
99950
2
原创 C语言中的static 详细分析
google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 C语言代码是以
2011-08-22 12:04:17
206695
97
原创 服务器进程为何通常fork()两次
前几天接到某互联网公司的电话面试,面试官问我两次fork()的作用,我一头雾水,说不知道。知识面还是太窄了。下面就总结下两次fork()的作用。 首先,要了解什么叫僵尸进程,什么叫孤儿进程,以及服务器进程运行所需要的一些条件。两次fork()就是为了解决这些相关的问题而出
2011-08-11 21:02:12
6823
1
转载 虚拟网卡 TUN/TAP 驱动程序设计原理
简介虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟
2011-07-08 16:57:58
2711
原创 Linux下svn的常用工作流程
上篇文章在ubuntu和redhat5.5上搭建好了svnserve环境,下面总结一下svn的具体使用流程。 服务器的搭建1)建立代码库。 #svnadmin create /srv/svn/repos/myproject2)修改配置文件svnserve.conf anon_access = none
2011-07-08 12:03:06
2171
原创 redhat5.5 上安装svnserve
前几天再ubuntu上安装了一个svnserve,可是服务器用的是redhat,又只能练习下在redhat上安装svnserve的过程了,很繁琐地说。。。这篇文章只介绍安装过程,且只介绍svn1.4版本的安装过程,不包括使用以及配置过程···· 前期工作: 务必保证你
2011-07-07 16:34:48
1079
转载 linux的mount命令详解
linux下挂载(mount)光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越广泛
2011-07-07 14:36:49
686
原创 redhat5.5 安装gcc编译器过程
redhat真是麻烦,装gcc的过程很煎熬,除了yum方式就是找到rpm文件再手动安装。下面简单说说redhat 5.5中安装gcc编译器的过程吧。ps:RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工
2011-07-07 14:14:12
3544
1
原创 linux mknod命令解析
个人觉得linux的软件设计思想异常强大,比如把所有的设备都当做文件来处理,大大简化了程序员的负担,向提出这个思想的大神s致敬!!先来看看linux系统中设备管理的基本知识: 我们的linux操作系统跟外部设备(如磁盘、光盘等)的通信都是通过设备文件
2011-07-05 14:07:33
10002
原创 ubuntu配置svnserve
蛮喜欢在linux上做开发的,最大的梦想就是什么时候能给像vim gcc 这些伟大的开源软件奉献几行自己的代码,为boost奉献几行也行。。。。与linux相关的开源世界里充满了乐趣,这里集中这世界上最优秀的程序员们Simple is Everything
2011-07-04 22:58:10
2312
原创 ubuntu中设置vim的默认选项
默认情况下vim的行号等都是不显示的,本人比较喜欢看有行号的代码,每次进入vim后都要手动输入:set nu ,默认设置vim的显示行号还是挺有必要的。~ / ect / vim下有一个vimrc的文件,这个文件是vim的配置文件打开这个文件,在里面添加想要的属性se
2011-07-04 21:23:14
1168
原创 C++输出流cout的顺序问题
今天去参加人人网笔试,遇到这样一个题目:问下面代码的输出是什么?#include using namespace std;int g = 0;templateint foo(){ int value = ++g; return value;}int main(){ cout () () () () << endl; return 0;} 乍一看,觉得这个
2011-06-17 00:44:00
3821
原创 C编译器的八个编译阶段
编译程序有八个步骤。这些步骤包括: 1. 从源代码文件中读取字符,如果有必要的话,将字符转换成源代码字符集的字符。如果源代码中的行尾字符和换行字符不一样,就进行替换。类似地,任何三字符组符号会被替换成赌赢的单一字符。 2. 不管什么时候,只要反斜线符号后面紧跟着换行字符,预处理器就会将两者(反斜线和换行字符)都删除。因为预处理器的指令结束的地方就是行的结束字符,所以这个处理步骤
2011-06-05 17:23:00
1285
原创 C/C++编译预处理指令
众所周知,你的程序编译前要做的事就是扫描源代码,对其做初步的转换,产生新的源代码提供给编译器,这个过程就叫编译预处理。这个处理过程由预处理器来完成,预处理器是在程序真正运行前由编译器调用的预处理程序。 常见的预处理有以下三种: 文件包含:#include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。 宏替换: #define,这是最
2011-06-04 17:35:00
5882
1
转载 计算机启动后的内幕
作为这个分类下的第一篇文章,说说计算机在开机按钮被按下后在黑色屏幕下干了些什么“勾当”。我想,这应该是每一位学习操作系统的人都应该了解的。 打开计算机机电源后到计算机准备接受你发出的命令之间计算机所运行的过程称为引导(Boot)过程。我们知道,当关闭电源后,RAM的数据将丢失,因此,计算机不是用RAM来保持计算机的基本工作指令,而是使用另外的方法将操作系统文件加载到RAM中,再由操作系统接
2011-05-27 22:29:00
840
原创 堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) —
2011-05-27 21:54:00
1104
原创 操作最后n个数据元素 类问题的解题思想
在Unix操作系统中有一条命令,该命令的功能是依次打印文本文件的最后n行。命令格式为: tail [-n] filename 其中,tail为命令名;参数filename为文本文件名;参数[-n]表示要打印的行数,该参数是可选的,缺省值为10。要求是写一个程序实现这个命令。
2010-12-17 00:43:00
1058
原创 c++ 程序员成长书单
我是一个初学者!现在列举一些以后要看的C++书籍,请多提意见:1,《C++primer》(第四版) 正在阅读,由于课业负担比较重,工作日花在这本书上的时间比较少,打算在考完试寒假回家之前读完这本书。2,《C++必知必会》(第二版) 有人说第二版的中文翻译的不怎么好,还
2010-12-06 15:15:00
1199
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人