2008年9月日志
wordcamp 2008 essay
由于回北京比较晚,zlpx已将wordcamp筹划的差不多了。本以为可以安心听下讲座,matt等中外人士的肯定带来了不少新鲜玩意。可是去了之后却发现又想当然了,抽个空子进去,也只听了个残只片语。
回来之后,发现了一个非有趣的事情,除了matt之外,貌似演讲嘉宾清一色的南方人,或许不对,至少藕在屋内的时候是这个样子。难道写博客也与地域风情有关?不好擅自推测。
正如flypig先生所讲,传统媒体人依旧在互联网上活跃。计算机是个工具,而网络是个场所;浮躁的网络很新鲜,而沉淀的文化很经典。
想起了一首诗,有文化的人都这样,遇到什么事情,就想起一首诗;
现摘如下:
斯卡布罗集市 Scarborough Fair
问尔所之,是否如适。Are you going to Scarborough Fair
蕙兰芫荽,郁郁香芷。Parsely sage rosemary and thyme
彼方淑女,凭君寄辞。Remember me to one who lives there
伊人曾在,与我相知。She once was a true love of mine
嘱彼佳人,备我衣缁。Tell her to make me a cambric shirt
蕙兰芫荽,郁郁香芷。Parsely sage rosemary and thyme
勿用针砧,无隙无疵。Without no seams nor needle work
伊人何在,慰我相思。Then she will be a true love of mine
伴唱:
彼山之阴,深林荒址。On the side of hill in the […]
LFS──Linux from Scratch总结
LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw code) 作成符合自己口味的菜肴──个性化的linux,不单单是个性的桌面。
LFS是一本书,讲述如何逐步编译软件,建立一个基于Linux内核的操作系统的过程。每一个版本的LFS包含软件的版本是特定的。所以,把这些软件搜集到一起是非常重要的,否则就要一个一个的去下载了。幸好LFS的live光碟提供了所有程序的源码,并且提供了一个LINUX的环境,以供编译使用,这个环境就是所谓的宿主系统。
在linux环境下,一个程序的运行,如vim,应该有glibc和ncurses这两个库来承担其运行时动态库,ncurses必须于glibc相适应,而glibc有要于相应的Linux内核匹配。当然还有如shell之类的很多程序在运行。然而,Linux内核并不像glibc那样是依靠动态链接库的方式被调用的,内核不是用动态库的方式被调用的,因此不需要先编译,只要提供对应的头文件即可。
使用LFS编译的系统,首先不能受到宿主系统的影响,否则就没有意义了。为了达到这个目的,LFS把工具链放到/tools目录下,这样做还可方便的从目标系统中剥离此工具链。
那么当目标系统还不完全,不能够完成某些编译的时候,就可以使用/tools里面的编译链了。
这里有一个鸡蛋和母鸡的问题:将要编译的glibc,要在工具链的编译工具产生之前,而工具链的编译工具又依赖于glibc,到底是谁生谁 呢。。。
当然了,不能用宿主系统的工具链进行直接编译,那样会产生所谓的“污染”。于是LFS使用了一个间接的方法:使用一个”纯净“的A编译环境来生成编译目标系统的B编译环境。
这种多此一举的做法,令人迷惑。其根本原因在于:用不同版本的gcc编译出来的程序可能不一样。所以为了避免杂种的产生,必须严格控制母鸡的血统。这事使用这个方法的原因。
所以,制作LFS的工具链必须使用相同版本的gcc和binutils等工具编译出来。
这时候该宿主系统出马了,它的作用就是编译出正确版本的工具链,确定整个系统的血统基础,在这个基础至上,就可以生成所谓“纯净”的LINUX了。
一个明显的问题是,一般宿主系统与编译出来的工具链,版本不一致。这样是否会影响后代的血统呢?
这里用到了一个叫bootstrap的东东。bootstrap is resampling with replacement.它是gcc的一个参数,作用是重复编译它几次。它用第一次编译生成的程序来第二次编译自己,然后又用第二次编译生成的程序来第三次编译自己,最后比较第二次和第三次编译的结果, 以确保编译器能毫无差错的编译自身,这通常表明编译是正确的。
看起来n多领域都有这个东东,以下是是出自统计学的Bootstrap方法:
Bootstrap analysis是一种统计学方法,计算的基本方法是:从待分析的数据中随机重新取样,代替原有的数据,从而重建一系列与原数据同样大小的‘鞋带’式取样数据,一般重复500或1000次。
本质上,bootstrap用于检验由样本得到的统计量的可信度。
如果一个来自正态总体的样本S,我们可以根据它计算出u和sigma,而用bootstrap可以估计出u和sigma的可信度。
很明显:gcc只是自举三次。。。就纯种了。
linux终端下的ctrl+*
在windows环境下ctrl+s是保存的快捷键,而换到linux终端下按一下,啊偶,整个终端死翘翘了咩~
查了一下才发现此快捷键在Linux环境下是冻结终端,再按一下ctrl+q就两指解冻料~
这个功能,用处可大了去了,在你临时离开键盘的时候,若是来个猴子,猩猩,吧自己的代码改掉,文件删掉,那可太不幸了~.~
顺便贴几个Linux下的快捷键:
Ctrl + c 中止当前正在执行的程序。
Ctrl + d 相当于exit命令,退出当前会话。
Ctrl + z 将当前运行的程序放到后台运行。与运行时加 & 类似。
Tab 键 自动补全命令。
补充一个洋链接
http://blog.i64.pl/PiosBlog/200610/29-linux-keyboard-shortcuts-you-should-know-about/
一个汉化链接
http://hi.baidu.com/rhca/blog/item/6ef8788dd073cc12b21bba65.html
