选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……
先胡乱记一笔。
利用原子操作(CMPXCHG)来修改正扫描的栈帧上的返回地址,令其指向修正垃圾收集表的子程序。这样做的好处是避免了垃圾收集器在程序运行过程中为配合垃圾收集器运行而需要引入的额外开销(垃圾收集器通过扫描栈来了解应用程序目前知道的内存,并将其从准备释放的内存列表中删去,因此,垃圾收集器会希望在扫描栈的时候那个栈帧不发生变化,或者能够检测到这种变化,通常的做法是垃圾收集器提供一套机制来让正在运行的线程阻塞,而这种逐栈帧扫描并配合适当的返回指针修改的做法,则可以几乎完全不阻塞正在运行的线程,同时避免了在收集器不动作时的日常同步开销)。
Read more...最近一段时间在看的一个网站 Accounting Coach。之前在贷款的时候在这里了解的关于贷款现值、PMT等等概念;其他一些概念,如摊销等等,也很有用。
Read more...今天 -HEAD 被命名为 FreeBSD 9.0-CURRENT 了(对应的 __FreeBSDversion 是 900000)。从流程上说,这么做的意思是 -HEAD 终于准备解冻进入 slush 状态了(另外,8.0-BETA3应该很快会发布了),基本上之前的一些障碍也都扫清了,目前看来,8.0-RELEASE应该只推后两周左右。。
Read more...(1899年10月15日)
中国人不知有国民也,数千年来通行之语,只有以国家二字并称者,未闻有以国民二字并称者。国家者何?国民者何?国家者,以国为一家私产之称也。古者国之起原,必自家族。一族之长者,若其勇者,统率其族以与他族相角,久之而化家为国,其权无限,奴畜群族,鞭笞叱咤,一家失势,他家代之,以暴易暴,无有已时,是之谓国家。国民者,以国为人民公产之称也。国者积民而成,舍民之外,则无有国。
以一国之民,治一国之事,定一国之法,谋一国之利,捍一国之患,其民不可得而侮,其国不可得而亡,是之谓国民。
有国家之竞争,有国民之竞争。国家竞争者,国君糜烂其民以与他国争者也;国民竞争者,一国之人各自为其性命财产之关系而与他国争者也。孔子之无义战也,墨子之非攻也,孟子所谓率土地而食人肉,罪不容于死也,皆为国家竞争者言之也。近世欧洲大家之论曰:“竞争者,进化之母也;
战事者,文明之媒也。“为国民竞争者言之也。国家竞争其力薄,国民竞争其力强;国家竞争其时短,国民竞争其时长。
今夫秦始皇也,亚历山大也,成吉思汗也,拿破仑也,古今东西史乘所称武功最盛之人也,其战也,皆出自封豕长蛇之野心,席卷囊括之异志,眈眈逐逐,不复可制,遂不惜驱一国之人以殉之。其战也,一人之战,非一国之战也。惟一人之战,故其从战者皆迫于号令,不得已而赴之,苟可以规避者,则获免为幸,是以其军志易涣,其军气易馁,故曰其力弱;惟一人之战,故其人一旦而败也,一旦而死也,其战事遂烟消瓦解,不留其影响,故曰其时短。若国民竞争则反是。凡任国事者,遇国难之至,当视其敌国为国家之竞争乎?
为国民之竞争乎?然后可以语于御抵之法也。
Read more...关于Scalability这个词的中文译法,目前还没有一个非常确切的定论。一些文献中将其翻译为"可扩充性",而"扩充"指的主要是Scale up;而在一些实际的用法中,Scalability还包括Scale down,因此,“可伸缩性"也许是比较贴近原文意思的说法。
互联网应用的可扩充性体现在两个方面:其一,是能够对系统容量进行扩充,也就是说,这个系统各个组件能够提供的服务的量,能够在需要的时候予以扩充(特别是通过添加新的服务器等等)。其二,是这种扩充是有效率的扩充,即,增加硬件投入时,其投入与所产生的效果是接近甚至达到成比例增加的。通常说来,“可扩充"同时暗含的需求是用户的使用习惯尽可能保持不变。如果我们关注某一具体的计算节点,可扩充性还应体现于提高计算节点性能,例如增加其CPU数量或内存容量时,能够相应地改善系统的容量或响应时间,等等。
而另一方面,“可缩减性"主要指的则是说一套系统能够运行在尽可能少的软硬件环境之中。对于大型互联网公司而言,这一点可能并不重要,而对初创公司来说这一点则非常重要。
在设计互联网应用的时候,充分地考虑系统的可伸缩性,能够极大地减少日后的维护开销,并帮助决策者对于投资所能获得的回报进行更加精准的估计;另一方面,高可伸缩性的系统往往会具有更好的容灾能力,从而提供更好的用户体验。
与解决很多其他问题类似,改善可伸缩性最常用的方法就是分治法(Divide and Conquer)。分治属于大道理一类,在实践中,我们比较常用的分治策略包括:
今天基本上算是正式把在XO的机器搬空了,8个机架。过两天缓过点劲来再过去整理残留的杂物。累。
Read more...记一下备忘。其实跟单用户模式差不多……
首先用console确认一下是否真的不能登录。
断电,启动交换机,按住面板上的MODE键,SYS指示灯会闪烁,到绿时松手。在console上看,此时会给出switch:提示符。
加载交换机的Flash文件系统:flash_init(这步操作基本上相当于fsck然后mount)。
加载IOS引导加载器:load_helper。(这两步在交换机启动时会在Console上给出说明)。
将Flash上的config.text改名:rename flash:config.text flash:config.bad
引导IOS。由于已经将config.text改名,这一步之后IOS会初始化一个新的配置文件,并且已经将密码去掉:boot
不进入Configure dialog(回答n),enable,然后将配置覆盖回来:rename flash:config.old flash:config.text
设置密码:configure terminal, enable secret, enable password,line console 0,password(如果设置了vty密码,还需要进入对应的vty进行设置)。
最后,wr m将配置写入。show run看一下配置,如果没有问题,reload确认一下。
Read more...公司把IDC搬到了AT&T,最近几天一直都在加班。
这家机房的基础设施和服务都不错,唯一的问题是他们卖东西的时候和AT&T的接入服务一样—-有时候有意无意地去混淆一些概念。说到这里得提一句,导致我决定不使用AT&T的DSL服务的原因就是,他们居然把动态IP说成是一个feature,并强调这个feature能够提供更好的安全性,这样的"包装"真是让我觉得非常不舒服。
和在国内看过的那些机房比,AT&T的这家机房里面的用户不算多,客户的规模也不算是非常大。休息的时候在IDC里面转了一圈,看了看别家的机架情况,一些感想(IDC不让拍照片):
很多公司的业务和技术/经济实力从设备和布线就能看得出来了。
不过看看AT&T给一些公司代做的布线和我们自己的布线,虽然也还算比较整齐,不过我还是得说,我们这是工程,他们是工业……
Read more...下周一的8.0-BETA2会包含这个。CAM/AHCI是按照CAM框架重写的AHCI驱动(之前是ata(4)),提供了包括NCQ等硬件特性的支持,并改善了对SATA光驱的支持。与OpenBSD的实现不同,FreeBSD实现通过扩展CAM框架使其直接对ATA设备提供支持。
目前使用该驱动的办法是在引导過程中加载ahci.ko,或编译 device ahci 进内核。注意,CAM/AHCI驱动使用与ata(4)不同的命名规则。
Read more...