-
不知不觉已经在北京呆了半年,今天就要离开北京去苏州读研去了。想起来时间也过得真快,仿佛第一次在北京面基的lisp聚会还是不久前发生的。
有一些朋友不明白为什么我要去读研,并且还是国内的研。趁这个机会解释下:我和很多IT公司一样对学历一点不在乎,我会毫不犹豫地告诉你,我是在一个国内渣渣二本读的大学,并且特色专业还不是计算机。不过也正因为如此,我自认为自学能力很强,而且现在接触国外的研究资料简直太容易了,所以我也不在乎读研的学校是国内还是国外,我要的只是一段空闲的时间把之前学的很肤浅的知识加深一点而已。在决定考研之前也犹豫了很久,因为看了偶像的一篇关于不要读研的博文,但是发现里面很多的理由...
-
解决的问题
先说为什么要有这两个东西。比如你开了个银行,里面有三个账户A,B和C。这时有两个人想转账,一个人想从A中转到B中,另一个人想从A中转到C中。但是A中的金额只够支持转一次,所以要不第一个人转账失败,要不第二个失败。
如何实现?非常简单,只部署一个服务器接收所有请求,第一个收到的请求成功,第二个失败即可,但是这会产生单节点失败——假设这个服务器挂了,那么银行的所有业务都会挂掉。这样我们可以起两个服务器(或者多个服务器),指定一个为主服务器,其他服务器在主服务器挂掉后成为主服务器,如果只有两个服务器那么另一个就成为主服务器,但是如果有多个服务器如何选择主服务器呢?并且在两个服务...
-
很久以前看《维基经济学》里说到IBM准备实行开源时做了研究:投资linux项目所花资金比IBM从linux项目中获得的收益少多了,所以IBM决定投资linux,并实行开放的开源政策。但是总觉得开源没那么简单。
现在在公司做cascading的项目,又由于对clojure感兴趣,所以搜了下cascalog。于是机缘巧合地搜到了cascalog创始人的博客,才发现他也是storm和ElephantDB的创始人,并且发现他的博客也写得非常好。而且发现了这篇文章,由于国内开源风气实在不行,所以把这篇文章翻译了下。希望大家能感受下。。。翻译得很烂,讲究看吧,如果英语好直接去看原版。
以下文章为...
-
最近挺忙,发现都有两个月没写博客了,当年花钱买个主机而不是建个免费博客就是为了逼自己每个月写一篇博客的,但是这两个月实在是太忙了。眼看这7月就要到了,GR也要推上断首台了。总要挤些东西出来,恩。
之前没上过班时觉得就算上班时间也应该挺充裕,能有自己的时间做东西。但是事实是,每天早上起来后马上就去上班,下完班吃完饭就已经7点了。而且由于盯了一天电脑了,回到家实在是不想再看电脑,顶多看下kindle或纸质书。而且在coursera上报了ML的课,每天下班看点视频,周末把编程作业做了,这样一来其他空闲时间就不多了,真心佩服那些报几个coursera课的人。而且这个月又是毕业季,上半个月总要花...
-
虚拟化是云计算催生的技术之一,它的目的就是让运行在其上的应用程序觉得自己独占所有的资源。与当年的虚拟内存的出现的原因一样:在出现虚拟内存之前,所有的进程都能知道本机上还有哪些其他的进程,需要注意不要踩到别的进程。但是出现虚拟内存之后所有进程都觉得自己独占了4G内存(32位机器)。而现在的虚拟化技术只是将这个虚拟范围扩展了而已(扩展到了文件系统,进程和设备领域)。
解释现在正在进行的虚拟化潮流的入门概念最清楚的就是这篇文章了,它将虚拟化的两种方案做了比较,并且指出现在正在进行的Container虚拟化的缘由。
虚拟化的目标
简单来说虚拟化的目标就是这两个:
资源控制和隔离
...
-
垃圾收集是高级编程语言最重要的一部分,不过垃圾收集是否值得也要看具体应用,我就很同意这个观点。最近写了个玩具lisp解释器,由于不想自己去管理所有内存,所以用了libgc库,也顺便了解了下GC的一些技术。
而对于垃圾收集有两种最基本的方式:reference count和tracing。更多的变种见此。
Reference Count
reference count是最简单垃圾收集的方法,内核的代码就是手工模拟该算法的,而一些有虚拟机的语言就直接使用了该算法,例如CPython。
如果使用引用计数方法,那么所有的在堆上的对象都会多一些空间用于记录对该对象的引用数,见上...
-
**注意,本文主要内容来自《Understanding the Linux Virtual Memory Manager》,基于2.4内核,和最新内核有所不同。并且本人是内核新手,请轻拍。**
伙伴系统的结构和水位
linux内核使用伙伴系统来分配内存页,分配内存的API是alloc_pages(),但是主函数是__alloc_pages(),这个函数分为三个部分:
看是否能在不达到zone->pages_low水位的情况下满足分配要求,如能则直接分配。
否则zone需要balance,唤醒kswapd,并看能否在不达到zone->pages_min水位的情况...
-
注意:本文所使用的系统为ubuntu12.04,使用i386体系,如果使用不同系统及体系很多地方需要修改,另外在安装新内核后请保持至少一个可用的旧内核,以防止新内核无法使用。
一直想直接给内核添加一些基本的东西作为内核开发的下手点,于是就想到了给内核添加一个新的系统调用。这样的添加非常简单而且可以直接通过应用程序看是否成功,前些天就着《Linux Kernel Development》给内核加了个系统调用,没想到一次就成功了。
系统调用
应用程序都是通过系统调用来取得操作系统提供的服务,但是除了汇编之外,这些系统调用在所有语言里都是对程序员不可见的,也就是说你不知道调用的是一个普通...
-
在上个月重新看了《SICP》第四章后觉得写个lisp解释器也不是很困难,甚至我发现只要理解了其中的原理整个解释器其实非常简单。我觉得书中理解原理的关键一段就在4.1节:
The metacircular evaluator is essentially a Scheme formulation of the environment model of evaluation described in section 3.2. Recall that the model has two basic parts:
To evaluate a combinat...
-
买info域名一年了,到了续费的时候了,不过续费时就ORZ了。续费竟然需要90大洋!com/org/net域名买和续费都才70,一个info域名为什么要这么贵?当年买info域名是就是因为便宜,才30大洋,而且也觉得应该这么便宜,所以根本没考虑续费的价格就买下了。结果是跳进了Godaddy挖的大坑啊,太坑爹了。奉劝读者不要买info域名。
另外这次转域名也学会很多东西啊,至少明白.htaccess文件是干什么的了。换的期间找到两篇文章(1,2)希望对以后想换的人有帮助,另外订阅了我的RSS的读者需要换下feed了。把xudifsd.info/blog/feed/改成xudifsd.or...