牢骚中体验Ubuntu
春节过后,项目一直比较忙, 我的Ubuntu自从上周日安装到系统中后就一直没有怎么用过,好不容易盼到周末了,这回可有时间体验一下’热得烫手’的Ubuntu了。 ...
春节过后,项目一直比较忙, 我的Ubuntu自从上周日安装到系统中后就一直没有怎么用过,好不容易盼到周末了,这回可有时间体验一下’热得烫手’的Ubuntu了。 ...
花了大半天时间备份数据,重装Windows后,终于可以安装Ubuntu了。Ubuntu 7.10的光盘在我的抽屉里都躺了多个月了,今天终于有了用武之地了。因为有了移动硬盘,我将笔记本硬盘的一个分区腾了出来,用来安装Ubuntu,分区大约20G,分出10个G来挂载/,1个G做SWAP分区,剩下一个FAT32分区存用户数据。 ...
清晨,部门新来的一位小兄弟打来求助电话,说是系统启动的时候出现类似:“ld.so.1: testmain: 致命的: 重定位错误: 文件./libtestshared.so: 符号static_add: 参照的符号没有找到"的错误。这个系统是05年开发的一个复用度很高的自研产品,后续项目只需在其基础上做少量二次开发工作即可满足新功能的要求。为了做到一定的通用性,我们使用了类似插件的框架,这样系统在启动的时候会根据配置加载一些’共享库’(.so文件),而这个小同事反映的问题就出在这。 ...
SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信号。内存问题一直是最令我们头疼的事情,弄清楚两个信号的发生缘由对我们很好的理解程序的运行是大有裨益的。 我们来看两段程序: //testsigsegv.c int main() { char *pc = (char*)0×00001111; *pc = 17; } ...
这个Bug源于昨天凌晨的一次版本升级失败。睡了一大觉后,下午回到公司,重现了这个问题并找到了原因,发现这的确是一个’很有意思的Bug’。 ...
我们在编译自己开发的程序或者一些开源软件的时候,常常遇到类似如下的编译器错误信息: 未定义 文件中的 符号 在文件中 i /var/tmp//ccU4sj6I.o func /var/tmp//ccU4sj6I.o ld: 致命的: 符号参照错误. 没有输出被写入a.out collect2: ld returned 1 exit status ...
我不是计算机科班出身。记得大学的时候旁听计算机系的网络课,当时计算机系使用教材是"计算机网络–自顶向下方法与Internet特色“的影印版,这本教材与众不同的一个地方就是作者JAMES F.KUROSE和KEITH W.ROSS采用了’自顶向下’的编排思路,先从应用层开始,最后讲到物理层。而且这本书在语言上形象生动,通俗易懂。只怪我当初没有一心一意听讲,到现在存在我的脑子中的基本概念居多,深刻理解甚少。以致于工作后遇到此类的问题,只能恶补。这不,在12月1日凌晨全国统一短信类服务接入代码的调整工作中,我就遇到了此类问题,不得不再次抱起W.Richard Stevens的’TCP详解卷一‘啃了啃,回顾一下TCP协议那些事儿。 ...
在网上搜索"万能"二字的英文翻译,结果却无意中看到有人提到了如何设计"万能栈"。栈(stack)是比较基础(fundamental)的数据结构,实现起来一般都比较容易。但一般的栈(stack)的实现都是局限于某种特定类型的,比如一个存储32-bit整型的栈。如果对于同一份栈实现,要求可以存储多种数据类型的话,那就需要仔细想想了。而这样的栈实现也就被戏称"万能"栈。 ...
Mark Shuttleworth,Ubuntu的创始人,给了Ubuntu爱好者一个免费获取Ubuntu光盘的机会,自从去年年初收到一次Ubuntu 5.10的光盘后,昨天我又拿到了最新的Ubuntu 7.10的光盘。 去年的光盘数目很多,估计当时的Canonical是为了扩大自己的linux distribution的影响,在"shipit“页面上鼓励你多多索取光盘。也正如Canonical所期望的,我将大部分光盘都分给了周围的同事和朋友了,也算帮Ubuntu进行了一次"推广"工作了:) 而这次我申请光盘时,其网站上提供的标准选择就是一张PC CD和一张64-bit PC CD了。当然你也可以选择索取更多,但是页面上会提醒你索取非标准选项的光盘数目,邮递周期会长达6-10 weeks。我选择了标准选项。从提交订单到拿到光盘,好像只用了3 weeks的时间。 ...
俗话说:“工欲善其事,必先利其器”。在Unix/Linux上做开发,这里的’器’也同样包括Unix Shell Script,遗憾亚,虽然自己在Unix上开发已经快2年了,但是对Unix Shell Script可以说是’Script盲’一个,很多稍微复杂些的Script自己根本都看不懂。其实这也是自己栽下的’苦果’,因为以前我一直’歧视’Script language,认为那不是真正程序员该精通的,所以也就没有认真钻研过。目前认识到了解一定的Script技术,可以很大程度提高自己的工作效率,有些小工具用Script实现方便极了。这里’扫盲’一是给自己’扫盲’,二是把这些基础的Script技术和那些对和我一样对Script不熟悉的人一起分享。这篇中的所涉及的Shell语法均为符合POSIX标准的语法,可能很多Shell不能与该语法完全相吻合。自己感觉Bash与POSIX Shell语法最为接近。 ...