GNU/Linux下有多少是GNU的?
一个葡萄牙的学生写了一篇文章 《How much GNU is there in GNU/Linux?》 – GNU/Linux下有多少是GNU的。他的这篇文章主要分布了今年4月份的Ubuntu Natty的Linux分发包。其主要是用代码行来做的分析,其给了两个饼图。
第一个饼图如下,其指明了各种主流的开源项目组的分布情况。可见GNU只占了8%,当然,GNome也是GNU的,加起来也只有13%,只占整个分发包很少的比重。
第二个图,作者把GNU的部分拿了出来,再进行了分析:
在下面这个图中,我们可以看到主要是四大块——gcc, gdb, binutils 和 glibc,所以,作者说,这些东西都不是最终用户需要的,不是每一个用户都是需要搞开发的。所以,如果去除这些,再去除Gnome(这个桌面UI也不是很力),那么GNU的东西几乎没有了。
所以,作者以此来挑战Richard Stallman提到的 GNU/Linux的这个说法。好像更为好的说法应该叫——
GNU/KDE/java/xorg/Linux
我对这篇文章有下述一些感觉:
以代码行来衡量重要性,非常的不准 ...
telnet的一个Bug
下面这个链接是Linux分发包Ubuntu的关于Telnet命令的Man Page,
http://manpages.ubuntu.com/manpages/karmic/man1/telnet-ssl.1.html
打开这个Man Page,把页面拉到最后一行,你会看到下面这个BUG(“BUGS:源代码不易读!”)
The source code is not comprehensible.
Telnet的源代码在这里:http://packages.ubuntu.com/source/dapper/netkit-telnet,下载下来一看,还真是不易读,简单地看了一下代码,发现至少有这样一些问题:
空格和Tab键混用的缩进,导致很多代码在没有缩进。
大量的#if #else以及大量的各种预编译宏。以及一些怪异的宏。如:
#ifndef B19200
#define B19200 B9600
#endif
#ifndef B38400
#define B38400 B19200
#endif
什么叫在C中写C++,第一次见。 ...
装完Ubuntu 9.10后要干的事
Ubuntu 9.10刚刚release,就有人在网上发表了贴子告诉大家在装完这个操作系统后,还需要去安装的一些开源免费软件,相当丰富。不过,这个贴子的链接被GFW干掉了,所以,你需要使用Tor的支持,或是使用Google Reader才能查看源文(RSS链接)。而这个贴子非常长,所以我无法作全文翻译,不过这个贴子的内容具有很强的指导意义,所以我在这里为大家总结一下该文所提到的那些诸多的东西。(关于那些如何翻墙的事情怎么做我就不多说了,网上有很多相关的文章,你自己搜索一下就可以找到)
目录
基本工作
受限软件
界面相关
桌面相关
音频/视频编辑器
多媒体Playback
网页浏览器
游戏
图片和发行物
文件分享
时间管理
沟通软件
安全和隐私
系统工具
基本工作
1)第一件事自然是下载那些Ubuntu的镜像站点表,以及更新操作系统的一些补丁。“系统”->“管理”-> “更新管理器”。
2)第二件事是设置文件目录共享。就是在文件夹上点右键,在菜单 ...
Ksplice Uptrack — Ubuntu更新不用重启
Ksplice是马萨诸塞州坎布里奇的一家新兴厂商,它开发的软件可以帮助计算机用户保持其操作系统的安全性而且不需要经常麻烦的重新启动就可升级操作系统,Ksplice被评为麻省理工10万美元创业竞赛的6个入围项目之一。
Ksplice是Web/IT类冠军,它将与其他5个类别的入围者争夺总奖金。该公司是去年由四个麻省理工学院校友成立的,
Ksplice目前支持Linux内核的更新,但它声称其免重启更新技术工作在目标代码层,可以适用于任何操作系统或者用户空间应用。该公司说,其技术对安全更新来说特别有益,可以解决因不方便重启而使安全更新不能及时生效的问题。
昨日他们在剑桥发布了Ksplice解决方案,运用这种技术将实现无缝更新,从企业软件、系统补丁乃至Linux内核的更新都不需要重启就可以直接完成,改变了数十年来计算机运行最新代码需要重启的麻烦问题。
相关链接:
Ksplice Uptrack 主页在这里:http://www.ksplice.com/uptrack/
安装指南在这里:http://www.ksplice.com/uptrack/download
Ubuntu的并行启动
如果你在使用多核处理器,那么你可以配置Ubuntu的一个参数来使用Ubuntu的启动并行,以加快其启动速度。
这个参数在文件/etc/init.d/rc中,其参数名是CONCURRENCY默认值是none,你可以把这个参数改成如下所示。于是,你就开启了Ubuntu的并行启动的功能。
CONCURRENCY=shell
但是,这个参数会导致dbus, hal和gdm的产生“race condition”竞争条件,所以,这三个程序的启动顺序非常的关键。其必需保证这个顺序:dbus -> hal -> gdm。这个顺序在Ubuntu的Hardy,Intrepid 或Jaunty中是没有问题的。但是,我们不排除在别的版本中会有问题。
所以,在开启“并行启动”时,你需要去检查一下dbus,hal和gdm的启动顺序,其启动顺序你可以在/etc/rc2.d/目录下,查看一个这三个程序的S后面的编号顺序。如果你看到下面的这个顺序,那么你就需要做出调整了。
s12dbus
s13gdm
s24hal
调整也很简单,就是改一下S后面的数字就行了,如下所示:
mv s24hal s1 ...