一张在75年前开启了复印机时代的纸

Summary: 1938年10月22曰，纽约市皇后区阿斯托里亚的一间公寓内，专利代理人卡尔逊（Chester Carlson）和无所事事的奥地利物理学家柯乃伊（Otto Kornei）利用周六的一个上午制作了世界上第一张干式复印件(卡尔逊经过3年研究， ...

# 一张在75年前开启了复印机时代的纸

1938年10月22曰，纽约市皇后区阿斯托里亚的一间公寓内，专利代理人卡尔逊（Chester Carlson）和无所事事的奥地利物理学家柯乃伊（Otto Kornei）利用周六的一个上午制作了世界上第一张干式复印件(卡尔逊经过3年研究，在1938年成功实现世界上第一个静电复印实验——译者注)，从此开创了计算机的新时代！这是一个改变世界的时刻，这是一个激动人心的时刻！然后他们就去吃午餐了:D

75年来，复印产业成了美国公司的中流砥柱。即使在平板电脑和PDF大行其道的今天，去年一年时间，“多功能打印机”销量为1900万台，交易额为309亿美元(来自Gartner公司的数据)。你也许忘了上次使用打印机是在什么时候了，但IDC分析师Angèle Boyd指出,去年全球打印了3万亿张纸，其中１万亿张来自美国。在一些公司里，一个员工每个月打印300到400张纸是再平常不过的事了。打印机生意保持令人吃惊的强大，其革命性已经远超当年卡尔逊刚发明模拟式静电复印机的时候了。

静电打印机提升了企业的生产力，增强了商务交流。Gartner 公司负责调查、绘图和打印业务的副总裁Ken Weilerstein指出，大部分白领的工作任务就是以各种各样的形式阅读和创建文档。Web原本是基于超文本，链接计算机上文档的一种方法，后来由Tim Burners-Lee在1991年将其引入到互联网。

Ken Weilerstein说：“打印机改变了人们处理文档的方式，在人类的办公史上，这可是一件大事。”

**施乐的崛起**
---------

施乐(Xerox)称得上是最有名的打印机公司，在打印机市场持很大的占有率。就像人们谈搜索时会说“上网google一下”，谈到打印时会说“我需要xerox（复印）这份文档”，施乐公司已经渗入人们的日常生活中了。在科技领域，20世纪70年代，施乐由于在帕罗奥多研究中心（PARC）发明的用户图形界面和鼠标而声名远扬，乔帮主当年参观PARC后将很多点子用到了他的苹果机上（其中一个就是PARC研发的图形用户界面——译者注）。另外，激光打印机也借鉴了卡尔逊的发明。

刚开始，施乐并不叫施乐。位于纽约市康涅狄格州罗切斯特市的哈洛伊德（Haloid）公司看中静电打印技术，收购了卡尔逊的这项发明，之后才更名为“施乐”(在这中间，哈洛伊德还曾更名为“哈洛伊德施乐”——译者注)。

我们继续卡尔逊的故事，这位发明家和专利代理人对手工复印法律文件感到无比厌烦，他认为世上肯定有一种复印方法能让他摆脱油墨复写纸，或者那种传统使用湿的感光纸和水的又乱又慢还昂贵的照相法。 施乐公司的历史档案管理员Ray Brewer说卡尔逊的这个涉及锌片锌粉（估计是作为感光材料——译者注）的发明即简单又容易复制。

（Weilerstein解释说，静电复印的处理过程就是这么个回事：一张纸放在光源底下，光源会扫描整张纸，记下复印原件的信息。光线通过一组透镜照到涂有光敏材料的静电成像硒鼓上，硒鼓被曝光部分会改变其静电荷，复印原件的信息被复制到硒鼓上。之后硒像旋转，静电荷所在的地方会吸引墨粉微粒，从而在硒鼓上画出原件图像。然后硒鼓将墨粉转移到一张纸上，并加压加热，就像熨斗一样。最后，硒鼓旋转，多余的墨粉被刮下来，下一页依此循环。）

或许这个过程太简单了点。当卡尔逊在庆祝他们的突破时，柯乃伊并没有看到这一点。当柯乃伊与卡尔逊的合同到期后，他们就失去了联系。“柯乃伊没看到卡尔逊发明的意义”，Brewer说道。柯乃伊将会终身后悔。**后来卡尔逊给了柯乃伊100股施乐的股票，而柯乃伊马上就把它们卖了，为此他少嫌了至少100万美元。**

多年来，卡尔逊向多家公司推销他的专利，包括IBM和柯达，但是没人理他。Brewer认为，这是因为卡尔逊只是一个研发人员，而不是一个销售人员：“卡尔逊推销他的专利的方式非常枯燥和专业，这种方式对于将他的专利推销到市场没有任何帮助，即使是技术工程师也被卡尔逊的表达搞得迷迷糊糊”。

卡尔逊的大突破发生在1946年，哈洛伊德公司研发主管John Dessauer读到了关于卡尔逊发明的文章。哈洛伊德本来是做照相纸的，“当时的照相领域发展非常迅速”，Brewer说。1948年，哈洛伊德为卡尔逊的发明找了一个比较容易记住的名字：静电复印技术（electrophotography）。公司打印部门定名为施乐（xerography），取希腊词根“xeros（干）”和“graphos（写）”组成的新词。

在20世纪50到60年代之间，施乐打印机成为办公必备用品。这项改革节省了时间和金钱。以前，复印文档的唯一方法就是使用影印机，那是相当杂乱和昂贵的操作，更糟糕的是，那种油墨纸一次最多只能复制两份。假如你想复印更多份，你必须重新打印一份出来，“并且秘书和领导希望所有的复印件都一模一样，”Brewer又出来讲话了。这就是施乐复印术的又一个好处：多份一模一样的复印件。在email和即时通信出来之前，这种复印术为部门间交流提供机会。施乐复印术催生了备忘录、办公简讯以及生日贺卡等新鲜玩意儿。

914型复印机是施乐公司最成功的产品。在60年代到70年代初，施乐共卖掉了超过20万台这个型号的复印机，《财富》杂志将它[评为](http://money.cnn.com/2010/01/21/technology/xerox_copiers.fortune/index.htm)“美国史上最成功的产品”。Weilerstein称施乐为“你后悔没买它的股票”的公司。

这是一部大概在1960年播出的广告：<http://www.youtube.com/embed/kNGdqC7QJYI>

**现代计算机时代**
-----------

直到80年代PC机开始代替打字机，施乐复印机的疯狂时代才告终结。人们依靠卡尔逊的发明创造了激光打印机，从此淘汰了功能单一的复印机。这个时候，已经没有人会把施乐的机器简单地称为复印机了，它们早已变成多功能打印机。

而这还不是施乐公司生意上所面临的唯一挑战。70年代曰本公司提供了与施乐复印机同性能但更便宜的产品。Weilerstein说：施乐失去了复印机领域的垄断地位，但凭借其在激光打印机产业的发展，施乐依然站在科技的前沿。到90年代，施乐开发Docutech系统，这种技术让你从打印机年代直接进入到印刷机年代。之后施乐又研发了iGen2000，这是种能彩印的激光打印机，能在1分钟内打印100页复印件。“然而在2000年之后的一段时间内，施乐公司再没有突出的作为，”Weilerstein说道，“并且他们还遭遇经济危机。”

施乐没有像它在罗彻斯特的邻居——伊士曼.柯达一样遭遇打击。其时的柯达[处于相当阴暗的时期](http://www.usatoday.com/story/money/business/2013/09/03/kodak-bankruptcy-ends/2759965/)。

部分原因是，与胶卷不同，文档打印依然是一个高利润的生意。还是有些部门，包括联邦政府，这些部门的员工每个月需要打印上千份文档。Weilerstein 承认随着时代发展，打印业务将继续下降：“打印业务也许是老一代的产品”，但是他又说，“但它还不会轻易消失。”

鉴于市场对多功能打印机的持续需求，慢慢强大起来的施乐终于有机会将自己转型成数字文档和服务的供应商。在过去的十年里，这家公司为打印管理服务(MPS)生意做了大量基础性工作。企业的所有有关打印的业务都可以外包给MPS来完成，减少了IT部门监控的任务。

然而随着纸打印业务长期的持续下滑，施乐试着预测市场的走向。“现在的问题是他们接下来会怎么做，”Weilerstein说，“他们会取消管理你的打印机的念头，转而为你提供另外一种服务：按你的意愿帮你处理数字形式的文档。”

“我认为IT部门实行无纸办公是一个非常大的需求”，来自IDC（国际数据公司）的Boyd说，“很多公司，包括施乐，都在积极为他们提供解决方案。”

Weilerstein的观点是当所有的交流都是依赖文档时，施乐有机会成为“内容管理服务（MCS）”生意的领导者。这种服务能让企业减少使用打印机。Weilerstein在白皮书上写到：“虽然纸质文档依旧是交流的有效载体，但是当员工将不同来源的信息打印成纸质文档，并想将它们用于不同目的时，太多的文档反而无法形成有效的交流。”

在广播信息都是靠传真接收的时代，MCS应该接受广告订单；或者提供一种方式，将化工厂员工随手记下的笔记传到可供查阅的数码产品中。

**卡尔逊的遗产**
----------

在推动无纸办公的过程中，施乐不应该只是将它的生意转型，还应该帮助企业内减少不必要的浪费。然而，施乐还面临大量的竞争对手，最大的对手就是Adobe公司，PDF文档格式的发明者。

Adobe过去是做桌面打印（即通过电脑等电子手段进行文档编辑——译者注）而非纸质打印的，似乎比施乐有天然的优势。然后是苹果公司，自己赖以生存的老技术被新技术取代后，能迅速变成新技术的领导者，这在历史上是很罕见的。

即使施乐最终失败了，卡尔逊在科技史上的贡献也是毋庸置疑的。卡尔逊的其他发明：带有流水沟的雨衣、洗鞋器等，但是他最重要的发明是一个证据，证明市场是如何回报人的坚持和开阔的视野。他的去世向我们阐明了我们对公众人物的内在生活了解是如此的少。

1968年，卡尔逊和柯乃伊在阿斯托里亚的公寓内辛辛苦苦地发明静电复印技术的30年之后，卡尔逊从罗彻斯特家里回到纽约，去参加一个商业会议。他发现离开会还有一些时间，于是他走进一家电影院观看《骑虎人（He Who Rides a Tiger）》，主演是Tom Bell和Judi Dench。当电影结束时，一个服务员看见了卡尔逊，看起来似乎正在位子上睡觉，事实并非如此。卡尔逊因心脏病去世——那是他那年第二次心脏病发作。

他死后，人们估计他拥有大约1.5亿美元的遗产，这笔钱使他成为1968年全美最有钱的富翁之一。然而他们发现错了，卡尔逊已将他的绝大部分财产都捐了出去。他曾对妻子说他对那种成为商业巨头的野心表示很不理解，他只想作为一个穷人死去。

图片来源：施乐公司

via: <http://mashable.com/2013/10/13/xerox-history-of-copying/>

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

译者：[chenjintao](https://github.com/chenjintao) 校对：[jasminepeng](https://github.com/jasminepeng)


Torvalds：苹果的免费OS对Linux根本不构成威胁

Summary:
Linux之父说他将一直奋战在OS第一线，直到某天他感到厌烦，或是医生诊断他无法再继续为止。
苹果最新发布的免费操作系统，OS X Mavericks，将不会对Linux操作系统造成任何影响。Linux的创造者Linus Torvalds如是说道 ...

# Torvalds：苹果的免费OS对Linux根本不构成威胁

**Linux之父说他将一直奋战在OS第一线，直到某天他感到厌烦，或是医生诊断他无法再继续为止。**

苹果最新发布的免费操作系统，OS X Mavericks，将不会对Linux操作系统造成任何影响。Linux的创造者Linus Torvalds如是说道。

<img src="content_image/album_201310_25_091300rpdvgoo21m8logrt.jpg" alt="" title="">

本周三，爱丁堡，欧洲LinuxCon大会，Torvalds在其中一次访谈中说，Linux作为操作系统已经走过了22个年头，而苹果在周二关于免费提供操作系统的决定和Linux的哲学相比，是完全不同的，事实上，Torvalds说自己使用开源产品而不是免费软件，其中一个原因就是，开源和免费有根本上的不同。

虽然苹果的Mavericks更新可能是免费的，但是它并不开源，人们如果想要使用该操作系统，仍然需要购买昂贵的硬件。他说：“事实上，苹果[推出的免费OS](http://www.infoworld.com/t/mac-os-x/apples-biggest-new-announcement-was-the-free-os-x-upgrade-229257)完全是一个和免费毫不相干的噱头，我认为它完全不会影响到Linux。”

当被问道什么情况下选择退休的时候，Torvalds说他一直以来从未考虑过退休，“关于这个，大伙儿还是省省心吧，等到时候再说。”但他表示，如果将来某一天，他觉得自己写不动代码，或是医生告诉他应该停止的时候，他就会退休。

最近这些天Torvalds仍旧不打算做太多编程方面的工作，他还在享受各种各样的会议和访谈，他说，“人们只是认识我而已，（其实他们并不了解我）”。据Torvalds讲，尽管有时他会形容开发者们拥有像“雨林低等微生物般的注意力时间”，但当内核开发者和运维人员找到他的时候，他还是会有求必应。除此以外，他还说自己所承担的另一部分职责是能够适时地否决，“No，我们不能这么干！”

Torvalds说，即使自己受到很多人的打击和质疑，但Linux仍将继续一往无前。20多年来有数千人参与到Linux的开发中，有的人从最开始一直坚持到了现在，“我们的开发团队拥有难以置信的人员储备深度”。

他说，“我是个公众人物，人们都认识我，知道我如何工作。这意味着，他们可能并不总是喜欢我的所作所为、所说所想，但是人们可以相信，我有自己独特的一套行为方式，这很重要。”当被问及为何有时会发怒上火，他补充道，“然而，还有些人确实很不礼貌，可以给这些人‘打打补丁’。”

Torvalds说他并没有若干年内终止Linux的计划。“我从没有过这样的计划，将来也不会有。这就像生物学中的进化论：进化不会终止。Linux的生存也是如此。”他说，Linux将会一直以同样的方式持续进化和改进。

“我不知道Linux最终将去往何方，但我并因此不担心，就让一切顺其自然吧……”

via: <http://www.infoworld.com/t/linux/torvalds-apples-free-os-no-threat-linux-229355>

译者：[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在Ubuntu 13.10或者13.04上安装Rhythmbox 3.0

Summary:
Rhythmbox 3.0已经发布了超过一个月了，这个版本改进了用户界面，使用Python 3来支持插件。很可惜，新版本并没有集成到13.10里面，但是你可以使用PPA来安装它（Ubuntu 13.04也支持）。

Rhythmox 3.0的新功能：

插  ...

# 在Ubuntu 13.10或者13.04上安装Rhythmbox 3.0

Rhythmbox 3.0已经发布了超过一个月了，这个版本改进了用户界面，使用Python 3来支持插件。很可惜，新版本并没有集成到13.10里面，但是你可以使用PPA来安装它（Ubuntu 13.04也支持）。

Rhythmox 3.0的新功能：

* 插件现在使用Python 3;
* 新的任务进度显示在曲目列表的下方（可以供很多东西使用包括包括轨道更换和导入作业等）；
* 支持作曲家标签；
* 重新制作了播放控制栏；
* 使用象征性的图片重新设计了源列表；
* 所有东西都更好的优化过；
* 通过不同的公开属性将CBR和VBR编码方式区分开；
* 播放列表设置内容（浏览方式等）保存到playlists.xml文件；
* 在适当情况下更好的使用了RTL图标；
* 修复了IM状态和ReplayGain插件；
* 修复了其他很多漏洞。

能在[这里](http://ftp.acc.umu.se/pub/GNOME/sources/rhythmbox/3.0/rhythmbox-3.0.news)找到完整的Rhythmbox 3.0更新日志。

**在Ubuntu 13.10或者13.04下安装Rhythmbox 3.0**

*Ubuntu 13.10 (Unity)下的Rhythmbox 3.0*

因为Rhythmbox 3.0的插件使用Python 3而不是Python 2， [**第三方插件 PPA**](http://www.webupd8.org/2012/08/rhythmbox-third-party-plugins-ubuntu-ppa.html)**里面的插件都不能在Rhythmbox里面使用了** 。你可以通过手动安装的方式来使用它们中的一些（包括Equalizer插件和超酷的[**CoverArt browser**](http://www.webupd8.org/2013/08/rhythmbox-coverart-browser-plugin-gets.html)）

* 更多信息请看[**这篇**](http://xpressubuntu.wordpress.com/2013/10/06/how-to-install-rhythmbox-3-0-in-saucy/)文章。

Rhythmbox 3.0现在可以在一个非官方PPA里面找到，它是由Jacob Zimmermann维护，为Ubuntu 13.10和13.04（及衍生系统）准备。**通过以下命令添加这个PPA然后安装/升级Rhythmbox 3.0**:

sudo add-apt-repository ppa:jacob/media

sudo apt-get update

sudo apt-get install rhythmbox

来自: <http://www.webupd8.org/2013/10/install-rhythmbox-30-in-ubuntu-1310-or.html>

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

译者：[SCUSJS](https://github.com/scusjs) 校对：[Caroline](https://github.com/carolinewuyan)


现在可以预订System 76的Ubuntu触摸笔记本了!!!

Summary:
Ubuntu PC 制造商 System 76 已经公布了一款搭载Ubuntu 13.10的触摸笔记本.
Darter Ultra Thin 14.1寸高清笔记本 搭载了Ubuntu多点触摸显示，0.9英寸的厚度，约重4.60磅（大约2公斤）。令人吃惊的是，虽然受到了Linu ...

# 现在可以预订System 76的Ubuntu触摸笔记本了!!!

**Ubuntu PC 制造商 System 76 已经公布了一款搭载Ubuntu 13.10的触摸笔记本.**

Darter Ultra Thin 14.1寸高清笔记本 **搭载了Ubuntu多点触摸显示**，0.9英寸的厚度，约重4.60磅（大约2公斤）。令人吃惊的是，虽然受到了Linux电池管理缺陷的影响，电池居然能支持5个小时。

除了触摸屏外，也提供了传统的输入设备，如多点触摸板和巧克力式的键盘。

普通版 **定价在899美元左右**，它带有：

* Inel i5-4200U @ 1.5Ghz (双核)
* 4GB DDR3 RAM
* Intel HD 4400 显卡
* 500 GB 5400 RPM HDD
* 集成WIFI和蓝牙
* 一百万像素的网络摄像头

对于所有System 76电脑来说，你可以通过提高规格和添加可选的额外设备来定制你的神机。Dater提供的可选项包括有:

* Inter 酷睿i5和i7 CPU
* 能扩展到16GB的DDR3 RAM
* 双储存,包括SSD + HDD的联合体.

提供所有必要的端口：

* HDMI 输出
* 以太网
* 2个USB3.0插口
* 分开的耳机和麦克风插孔
* SD 读卡器

更多关于Dater Thin的信息请访问System 76站点，到10月28号前，你都可以预订Dater Thin。

* [System76 Darter UltraThin 笔记本](https://www.system76.com/laptops/model/daru4)

via: <http://www.omgubuntu.co.uk/2013/10/system76-touchscreen-ubuntu-laptop-available-pre-order>

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[wxy](https://github.com/wxy)


Summary:
GNOME Control Center，是用来配置GNOME桌面环境中桌面功效的主用户窗口应用程序，现在的最新的版本是3.10.1。

Gnome Control Center允许用户使用大量的工具应用程序来对他们的系统进行各方面的配置修改。
GNOME Co ...

# GNOME Control Center 3.10.1版本推出，有多项性能的改进

**GNOME Control Center，是用来配置GNOME桌面环境中桌面功效的主用户窗口应用程序，现在的最新的版本是3.10.1。**

 <img src="content_image/album_201310_26_222320kurxy2zu43jd3ajf.png" alt="" title="">

Gnome Control Center允许用户使用大量的工具应用程序来对他们的系统进行各方面的配置修改。

**GNOME Control Center 3.10.1的功能亮点：**

* 修正了一些内存泄露问题；
* 创建目录时使用一致的权限;
* 鼠标移动速度设置不会再复位;
* 没有启用远程控制功能时屏幕共享可正常使用;
* 相同名字的文件夹不会再被选定为媒体共享文件夹;
* 当要启用DLNA，必须使MediaExport插件启用;
* 顶栏的按钮图标已经对齐。

有关变更、更新及Bug修复等情况的完整列表信息可以在官网[变更日志](http://ftp.acc.umu.se/pub/GNOME/sources/gnome-control-center/3.10/gnome-control-center-3.10.1.news)中查看。

* 下载 [GNOME Control Center 3.10.1 tar.xz](http://ftp.acc.umu.se/pub/GNOME/sources/gnome-control-center/3.10/gnome-control-center-3.10.1.tar.xz)[sources] [6.50 MB]

via: <http://news.softpedia.com/news/GNOME-Control-Center-3-10-1-Released-with-Multiple-Improvements-391831.shtml>

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

译者：[runningwater](https://github.com/runningwater) 校对：[Caroline](https://github.com/carolinewuyan)


Ubuntu 13.10 发布 - 值得升级吗 ？

Summary:
经过6个月紧锣密鼓地开发，Saucy Salamander 终于发布了。
拥有超过两千万的用户基础，Ubuntu的每次更新，无论最终变动的结果多么得琐碎、细小，都能引起关注。这次发布也不例外。
但是这次升级是否必不可少的呢？
  ...

# Ubuntu 13.10 发布 - 值得升级吗 ？

**经过6个月紧锣密鼓地开发，‘Saucy Salamander’ 终于发布了。**

拥有超过两千万的用户基础，Ubuntu的每次更新，无论最终变动的结果多么得琐碎、细小，都能引起关注。这次发布也不例外。

但是这次升级是否必不可少的呢？

阅读我们的观点，或者点击下面的链接获取镜像，自己寻求真相。

**下载 Ubuntu 13.10**:<http://releases.ubuntu.com/13.10/>

**“Ubuntu 13.10 令人厌烦的” - 来自互联网**
--------------------------------

我见过许多人，有科技记者、博主，还有评论家，用“令人讨厌的”字眼来形容Ubuntu 13.10。

诚然，Saucy Salamander比之先前的版本并没有为桌面用户添加多少新的特色，但是新的版本确实变化了，也改善了，只不过 **大多数** 变动相较而言很小。

强调一下这里的‘大多数’。

### **工具箱花样繁多**

*这些东西究竟有多大用处呢？*

Unity的新的*搜索建议*功能是新版本中大的亮点。你的每一次搜索，都会把大范围的在线资源的相关信息整合到一起，然后利用语义智能把筛选出来的东西放到Dash中。

*Amazon, eBay, Etsy, Wikipedia, Weather Channel, SoundCloud* - 信息来源超过50个网站

‘…莫名其妙，乱七八糟。’

字面上貌似这个功能挺有用的：按下tab键，，你就可以绕过浏览器找到任何你想搜寻的东西，随便一些东西，然后从桌面上就可以浏览结果。

事实上，帮助挺少，阻碍倒是不小。那么多的web服务都给一个搜索的关键字条目提供结果 - 无论看起来有多无碍 - 都导致工具箱充斥着莫名其妙、乱七八糟、不相关的东西。

‘以当前这种形式，该功能还超越不了浏览器体验’

也不是没有尝试过结束这种混乱，代之以秩序井然。给查找结果分门别类，比如，购物，音乐，视频。由结果过滤器来控制泛滥的信息。

但是，坦白说，以当前这种形式，该功能还超越不了浏览器体验。谷歌就比较聪明，知道自己要找什么，把结果以一种易于浏览，易于过滤的形式呈现出来。

Ubuntu开发者称 **搜索结果会变得越来越相关的**，因为该服务可以从用户那里自主学习。让我们拭目以待。

### **关闭搜索建议功能**

*每一个搜索范围都可以单独关闭*

关闭“搜索建议”功能很简单，听从我的建议，就可以单独关闭给你带来混乱结果的范围。这样你就能够继续使用该功能，同时又过滤掉不相干的东西。

**Ubuntu 13.10 桌面**
-------------------

### **键盘指示器**

无论你需要与否，新的‘键盘指示器’已经添加到Ubuntu中，该功能使得在多种语言之间的切换更容易。

可以在Text Entry Settings上面找到该功能入口，关闭它，然后取消紧挨着‘Show Current Input Source in Menu Bar’勾选框。

### **Ubuntu 登录**

登录、注册页面也加到了Ubuntu安装程序里头，安装后就不需要再配置账号了。

### **性能**

Unity 7的使用已经远超原先预定的时间（14.04 LTS默认情况下，在4月到期），其中一些急需改进了。

我自己并没有切身体验一下，但是那些体验过的人们都注意到该发行版性能有显著提升。

Unity工具箱响应灵敏，而Compiz占用资源较少。

### **应用程序**

Ubuntu软件中心提供所有你所需要的应用软件，而最新的版Firefox，Thunderbird，LibreOffice以及 Shotwell都已经预安装好了。

Ubuntu仓库也包含一些其他的流行的应用，比如[Geary mail client](http://www.omgubuntu.co.uk/2013/10/geary-0-4-released-with-new-look-new-features) 和比较受欢迎的图片编辑器 GIMP。

最后， [使用Ubuntu默认主题，GTK3 应用看起来好多了](http://www.omgubuntu.co.uk/2013/08/ubuntu-themes-fix-coming-to-saucy).

**总结**
------

一个健壮、可靠的发行版，与其说是崭新的开始，不如说是一个脚注。

Ubuntu 13.10是一个健壮、可靠的发行版， 巩固了其作为“走出去”的Linux发行版的地位，对新用户和丰富的专业人员均适用。

表面上，在Ubuntu的历史中，该发行版更像是一个脚注，而不算是新的篇章。包括永久的Unity桌面在内，许多的细小的、交互式的变动使更新看起来似乎是值得的 - 但是绝不是必不可少的，必须的。

via: <http://www.omgubuntu.co.uk/2013/10/ubuntu-13-10-review-available-for-download>

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

译者：[l3b2w1](https://github.com/l3b2w1) 校对：[wxy](https://github.com/wxy)


Linus Torvalds吐槽Fedora项目，连呼数个Stupid！

Summary:
Linus Torvalds 在Google+上发布了一个非常简单直接的关于Fedora的信息，紧接着就引发了一系列谴责和各式吐槽。

Linux之父发布的是一个非常简单的问题：Fedora开发者为何不更新发行版镜像，加入最新的内核与软件包  ...

# Linus Torvalds吐槽Fedora项目，连呼数个Stupid！

**Linus Torvalds 在Google+上发布了一个非常简单直接的关于Fedora的信息，紧接着就引发了一系列谴责和各式吐槽。**

 <img src="content_image/album_201310_27_2323213rlr5ll21llzag8v.jpg" alt="" title="">

Linux之父发布的是一个非常简单的问题：Fedora开发者为何不更新发行版镜像，加入最新的内核与软件包？

>
> Linus Torvalds说：“为什么你们从来不更新安装镜像呢？难道有什么难言之隐？现在Fedora19的安装镜像还在使用古董级的3.9版内核。这意味着虽然它们能安装在大多数机器上，但是却无法支持像新型笔记本上的无线ID等等这样的功能，所以迁就于通用性完全是不必要的痛苦”。
>
>
>

问题是这样的，如果你有一台新笔记本，却配了一个老内核，你可能无法完全发挥笔记本的功能，特别是当老内核无法识别无线模块的时候。

也许更新至新内核是个解决办法，但是为了获取新内核，你得访问互联网，但这是不可能的，因为刚不是说了你的老内核无法识别无线硬件模块吗？于是，如此反复，一个悲剧的怪圈诞生了。当然，如果刚好你的名字叫Linus Torvalds，这个问题就很好解决了，因为你知道如何不通过互联网而是靠自己来编译内核。

消息发布没多久，一些红帽开发者开始试图解释说，他们负担不起雇人测试的开销，因此无法发布有可能无法工作的镜像。

Torvalds说，“现在你们说‘我们没法测试镜像’，要我说你们这是[敷衍]，因为现有的旧镜像本来就有问题，所以号称新的镜像有可能出问题，完全是很愚蠢(stupid)的！难道不是吗？”

说完这些，Linus还不停嘴，他继续说道：“因此，你们所有的说辞都是愚蠢(stupid)的敷衍！你们要做的就是更新Fedora19到Fedora19.x，告知人们它将‘持续更新’，然后停止为本就有问题的镜像寻找愚蠢(stupid)的借口，因为你们压根就没打算测试新镜像是否有问题。”

争论双方仍在持续发布新的消息，看起来不远的将来我们就能够看到Fedora的镜像更新了。能翻墙的小伙伴们可以到Linus Torvalds的[Google+页面](https://plus.google.com/102150693225130002912/posts/GqUgcYcfQuV)去围观一下凑个热闹。

via: <http://news.softpedia.com/news/Linus-Torvalds-Smashes-the-Fedora-Project-Calls-Them-Stupid-393127.shtml>

译者：[Mr小眼儿](https://blog.csdn.net/tinyeyeser) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Ubuntu每日小技巧——保护你的Home文件夹

Summary: 几天之前，我们向大家展示了如何在Ubuntu中改变您的home文件夹，以便只有授权用户才能够看到您文件夹中的内容。我们说过，adduser命令创建的用户目录，目录里面内容是所有人可读的。这意味着：默认情况下，您的机器  ...

# Ubuntu每日小技巧——保护你的Home文件夹

几天之前，我们向大家展示了如何在Ubuntu中改变您的home文件夹，以便只有授权用户才能够看到您文件夹中的内容。我们说过，“adduser”命令创建的用户目录，目录里面内容是所有人可读的。这意味着：默认情况下，您的机器上所有有帐号的用户，都能够浏览您home文件夹里面的内容。

要想阅读之前的文章，[请点击这里](http://www.liberiangeek.net/2013/09/daily-ubuntu-tipsprevent-users-browsing-folders/).在那篇文章中，我们还介绍了如何设置权限，可以让您的home文件夹不被任何人浏览。

在这篇博客里，还可以看到如何通过加密文件目录的方式来获得同样的效果。当home文件夹被加密后，未经授权的用户将既不能看到也不能访问该目录。

加密home文件夹并不是在每个环境中对每个人都适用，所以在实际使用该功能之前，请确信自己真的需要它。

要使用加密home目录的功能，请登录到Ubuntu并运行以下命令。

sudo apt-get install ecryptfs-utils

你是无法在登录后加密当前home文件夹的，必须创建一个临时账户并登录进去。之后再运行下面这些命令，来加密你的home文件夹。

使用你当前的账户名代替下面的USERNAME。

sudo ecryptfs-migrate-home -u USERNAME

当以临时用户的身份登录后，为使你的帐号拥有root或admin权限，就需要以自己的身份运行 **su**+用户名的命令。系统会提示你输入密码。

su USERNAME

使用具有使用root或admin权限的帐号（译注：即拥有su权限的账号）代替USERNAME。

在这之后，运行 **ecryptfs-migrate-home –u USERNAME** 命令加密home文件夹。

使用被加密的账号第一次登录后，你将会看到如下截图的界面，包含更多关于加密home文件夹的信息。

 <img src="content_image/album_201310_27_230357kasscm4sjyams3c4.png" alt="" title="">

要创建带有加密home目录的用户，运行下面的命令：

adduser –encrypt-home USERNAME

试试看吧!

via: <http://www.liberiangeek.net/2013/09/daily-ubuntu-tips-protect-home-folders/>

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

译者：[rogetfan](https://github.com/rogetfan) 校对：[jasminepeng](https://github.com/jasminepeng)


各种 NoSQL 的比较

Summary: 即使关系型数据库依然是非常有用的工具，但它们持续几十年的垄断地位就要走到头了。现在已经存在无数能撼动关系型数据库地位的 NoSQL，当然，这些 NoSQL 还无法完全取代它们。（也就是说，关系型数据库还是处理关系  ...

# 各种 NoSQL 的比较

即使关系型数据库依然是非常有用的工具，但它们持续几十年的垄断地位就要走到头了。现在已经存在无数能撼动关系型数据库地位的 NoSQL，当然，这些 NoSQL 还无法完全取代它们。（也就是说，关系型数据库还是处理关系型事务的最佳方式。）

NoSQL 与 NoSQL 之间的区别，要远大于不同的 SQL 数据库之间的区别，所以软件架构师必须要在项目一开始就选好一款合适的 NoSQL。

考虑到这种情况，本文为大家介绍以下几种 NoSQL 之间的区别：[Cassandra](http://cassandra.apache.org/), [Mongodb](http://www.mongodb.org/), [CouchDB](http://couchdb.apache.org/), [Redis](http://redis.io/), [Riak](http://basho.com/riak/), [Couchbase (ex-Membase)](http://www.couchbase.org/membase), [Hypertable](http://hypertable.org/), [ElasticSearch](http://www.elasticsearch.org/), [Accumulo](http://accumulo.apache.org/), [VoltDB](http://voltdb.com/), [Kyoto Tycoon](http://fallabs.com/kyototycoon/), [Scalaris](https://code.google.com/p/scalaris/), [Neo4j](http://neo4j.org/)和[HBase](http://hbase.apache.org/)：

**最流行的 NoSQL**
--------------

### **MongoDB 2.2版**

**开发语言：** C++

**主要特性：** 保留 SQL 中一些用户友好的特性（查询、索引等）

**许可证：** AGPL （驱动: 采用Apache许可协议）

**数据传输格式：** 自定义，二进制（ BSON 文档格式）

* 主/从备份（支持自动故障切换功能）
* 自带数据分片功能
* 通过 javascript 表达式提供数据查询
* 服务器端完全支持 javascript 脚本
* 比 CouchDB 更好的升级功能
* 数据存储使用内存映射文件技术
* 功能丰富，性能不俗
* 最好开启日志功能（使用 --journal 参数）
* 在 32 位系统中，内存限制在 2.5GB
* 空数据库占用 192MB 空间
* 使用 GridFS（不是真正的文件系统）来保存大数据和元数据
* 支持对地理数据建立索引
* 可用于数据中心

**应用场景：**

* 动态查询
* 喜欢定义索引，而不是使用 map/reduce 功能
* 高性能的大数据访问
* 想使用 CouchDB 但数据变化频度太大

**使用案例：**

想布署 MySQL 或 PostgreSQL，但预先定义数据字典让你望而却步。这个时候，MongoDB 是你可以考虑的选项

### **Riak 1.2版**

**开发语言：** Erlang、C、以及一些 JavaScript

**主要特性：** 容错机制（当一份数据失效，服务会自动切换到备份数据，保证服务一直在线 —— 译者注）

**许可证：** Apache

**数据传输格式：** HTTP/REST 架构，或自定义二进制格式

* 可存储 BLOB（binary large object，二进制大对象，比如一张图片、一个声音文件 —— 译者注）
* 可在分布式存储和复制存储之间作协调
* 为了保证可验证性和安全性，Riak 在 JS 和 Erlaing 中提供提交前（pre-commit）和提交后（post-commit）钩子（hook）函数（你可以在提交数据前执行一个 hook，或者在提交数据后执行一个 hook —— 译者注）
* JS 和 Erlang 提供映射和简化（map/reduce）编程模型
* 使用 links 和 link walking ，用于图形化数据库（link 用于描述对象之间的关系，link walking 是一个用于查询对象关系的进程 —— 译者注）
* 次要标记（secondaty indeces，开发者在写数据时可用多个名称来标记一个对象 —— 译者注），一次只能用一个
* 支持大数据对象（Luwak）（Luwak 是 Riak 中的一个服务层，为大数据量对象提供简单的、面向文档的抽象，弥补了 Riak 的 Key/Value 存储格式在处理大数据对象方面的不足 —— 译者注）
* 提供“开源”和“企业”两个版本
* 基于Riak搜索的全文检索、建立索引和查询
* 正在将存储后端从“Bitcask”迁移到 Google 的“LevelDB”上
* 企业版本提供无主模式的多点复制（各点地位平等，非主从架构）和SNMP监控功能

**应用场景：**

* 假如你想要类似 Dynamo 的数据库，但不想要它的庞大和复杂
* 假如你需要良好的单点可扩展性、可用性和容错能力，但不想为多点备份买单。

**使用案例：**

销售点数据收集；工厂控制系统；必须实时在线的系统；需要易于升级的网站服务器

### **CouchDB 1.2版**

**开发语言：** Erlang

**主要特性：** 数据一致性；易于使用

**许可证：** Apache

**数据传输格式：** HTTP/REST

* 双向复制！（一种同步技术，每个备份点都有一份它们自己的拷贝，允许用户在存储点断线的情况下修改数据，当存储节点重新上线时，CouchDB 会对所有节点同步这些修改 —— 译者注）
* 支持持续同步或者点对点同步
* 支持冲突检测
* 支持主主互备！（多个数据库实时同步数据，起到备份和分摊用户并行访问量的作用 —— 译者注）
* 多版本并发控制（MVCC），写操作时不需要阻塞读操作（或者说不需要锁住数据库的读取操作）
* 向下兼容以前版本的数据
* 可靠的 crash-only 设计（所谓 crash-only，就是程序出错时，只需重启下程序，丢弃内存的所有数据，不需要执行复杂的数据恢复操作 —— 译者注）
* 需要实时压缩数据
* 视图（文档是 CouchDB 的核心概念，CouchDB 中的视图声明了如何从文档中提取数据，以及如何对提取出来的数据进行处理 —— 译者注）：内嵌映射和简化（map/reduce）编程模型
* 格式化的views字段：lists（包含把视图运行结果转换成非 JSON 格式的方法）和 shows（包含把文档转换成非 JSON 格式的方法）（在 CouchDB 中，一个 Web 应用是与一个设计文档相对应的。在设计文档中可以包含一些特殊的字段，views 字段包含永久的视图定义 —— 译者注）
* 能够进行服务器端文档验证
* 能够提供身份认证功能
* 通过 \_changes 函数实时更新数据！
* 链接处理（attachment：couchDB 的每份文档都可以有一个 attachment，就像一份 email 有它的网址 —— 译者注）
* 有个 [CouchApps](http://couchapp.org/)（第三方JS的应用）

**应用场景：**

* 用于随机数据量多、需要预定义查询的地方
* 用于版本控制比较重要的地方

**使用案例：**

可用于客户关系管理（CRM），内容管理系统（CMS）；可用于主主互备甚至多机互备

### **Redis 2.4版**

**开发语言：** C/C++

**主要特性：** 快到掉渣

**许可证：** BSD

**数据传输格式：** 类似 Telnet 式的交换

* Redis 是一个内存数据库（in-memory database，简称 IMDB，将数据放在内存进行读写，这才是“快到掉渣”的真正原因 —— 译者注），磁盘只是提供数据持久化（即将内存的数据写到磁盘）的功能（这类数据库被称为“disk backed”数据库）
* 当前不支持将磁盘作为 swap 分区，虚拟内存（VM）和 Diskstore 方式都没加到此版本（Redis 的数据持久化共有4种方式：定时快照、基于语句追加、虚拟内存、diskstore。其中 VM 方式由于性能不好以及不稳定的问题，已经被作者放弃，而 diskstore 方式还在实验阶段 —— 译者注）
* 主从备份
* 存储结构为简单的 key/value 或 hash 表
* 但是[操作比较复杂](http://redis.io/commands)，比如：ZREVRANGEBYSCORE
* 支持 INCR（INCR key 就是将key中存储的数值加一 —— 译者注）命令（对限速和统计有帮助）
* 支持sets数据类型（以及 union/diff/inter）
* 支持 lists （以及 queue/blocking pop）
* 支持 hash sets （多级对象）
* 支持 sorted sets（高效率的表，在范围查找方面有优势）
* 支持事务处理！
* 缓存中的数据可被标记为过期
* Pub/Sub 实现了消息订阅和推送！

**应用场景：**

* 适合布署快速多变的小规模数据（可以完全运行在存在中）

**使用案例：**

股价系统、分析系统、实时数据收集系统、实时通信系统、以及取代 memcached

**Google Bigtable 的衍生品**
------------------------

### **HBase 0.92.0 版**

**开发语言：** Java

**主要特性：** 支持几十亿行\*几百万列的大表

**许可证：** Apache

**数据传输格式：** HTTP/REST （也支持 Thrift 开发框架）

* 仿造 Google 的 BigTable
* 使用 Hadoop 的 HDFS 文件系统作为存储
* 使用 Hadoop 的映射和简化（map/reduce）编程模型
* 查询条件被推送到服务器端，由服务器端执行扫描和过滤
* 对实时查询进行优化
* 高性能的 Thrift gateway（访问 HBase 的接口之一，特点是利用 Thrift 序列化支持多种语言，可用于异构系统在线访问 HBase 表数据 —— 译者注）
* 使用 HTTP 通信协议，支持 XML、Protobuf 以及二进制格式
* 支持基于 Jruby（JIRB）的shell
* 当配置信息有更改时，支持 rolling restart（轮流重启数据节点）
* 随机读写性能与 MySQL 一样
* 一个集群可由不同类型的结点组成

**应用场景：**

* Hadoop 可能是在大数据上跑 Map/Reduce 业务的最佳选择
* 如果你已经搭建了 Hadoop/HDFS 架构，HBase 也是你最佳的选择。

**使用案例：**

搜索引擎；日志分析系统；扫描大型二维非关系型数据表。

### **Cassandra 1.2版**

**开发语言：** Java

**主要特性：** BigTable 和 Dynamo的完美结合（Cassandra 以 Amazon 专有的完全分布式的 Dynamo 为基础，结合了Google BigTable基于 Column Family 的数据模型 —— 译者注）

**许可证：** Apache

**数据传输格式：** Thrift 和自定义二进制 CQL3（即 Cassandra 查询语言第3版 —— 译者注）

* 可以灵活调整对数据的分布式或备份式存储（通过设置N，R，W之间的关系）（NRW是数据库布署模型中的概念，N是存储网络中复制数据的节点数，R是网络中读数据的节点数，W是网络中写数据的节点数。一个环境中N值是固定的，设置不同的WR值组合能在数据可用性和数据一致性之间取得不同的平衡，可参考 CAP 定理 —— 译者注）
* 按列查询，按keys值排序后存储（需要包含你想要搜索的任何信息）（Cassandra 的数据模型借鉴自 BigTable 的列式存储，列式存储可以理解成这样，将行ID、列簇号，列号以及时间戳一起，组成一个Key，然后将Value按Key的顺序进行存储 —— 译者注）
* 类似 BigTable 的特性：列、列簇
* 支持分布式 hash 表，使用“类 SQL” 语言 —— CQL（但没有 SQL 中的 JOIN 语句）
* 可以为数据设置一个过期时间（使用 INSERT 指令）
* 写性能远高于读性能（读性能的瓶颈是磁盘 IO）
* 可使用 Hadoop 的映射和简化（map/reduce）编程模型
* 所有节点都相似，这点与 Hadop/HBase 架构不同
* 可靠的跨数据中心备份解决方案

**应用场景：**

* 写操作多于读操作的环境（比如日志系统）
* 如果系统全部由 JAVA 组成（“没人会因为使用了 Apache 许可下的产品而被炒鱿鱼”（此句貌似是网上有人针对“Apache considered harmful”一文所作的回应 —— 译者注））

**使用案例：**

银行、金融机构；写性能强于读性能，所以 Cassandra 天生就是用来作数据分析的。

### **Hypertable 0.9.6.5版**

**开发语言：** C++

**主要特性：** HBase 的精简版，但比 HBase 更快

**许可证：** GPL 2.0

**数据传输格式：** Thrift，C++库，或者 HQL shell

* 采用与 Google BigTable 相似的设计
* 运行在 Hadoop HDFS 之上
* 使用自己的“类 SQL”语言 —— HQL
* 可以根据 key 值、单元（cell）进行查找，可以在列簇上查找
* 查询数据可以指定 key 或者列的范围
* 由百度公司赞助（百度早在2009年就成为这个项目的赞助商了 —— 好吧译者表示有点大惊小怪了:P）
* 能保留一个值的 N 个历史版本
* 表在命名空间内定义
* 使用 Hadoop 的 Map/reduce 模型

**应用场景：**

* 假如你需要一个更好的HBase，就用Hypertable吧

**使用案例：**

与HBase一样，就是搜索引擎被换了下；分析日志数据的系统；适用于浏览大规模二维非关系型数据表。

### **Accumulo 1.4版**

**开发语言：** Java 和 C++

**主要特性：** 一个有着单元级安全的 BigTable

**许可证：** Apache

**数据传输格式：** Thrift

* 另一个 BigTable 的复制品，也是跑在 Hadoop 的上层
* 单元级安全保证
* 允许使用比内存容量更大的数据列
* 通过 C++ 的 STL 可保持数据从 JAVA 环境的内存映射出来
* 使用 Hadoop 的 Map/reduce 模型
* 支持在服务器端编程

**应用场景：**

* HBase的替代品

**使用案例：**

与HBase一样，就是搜索引擎被换了下；分析日志数据的系统；适用于浏览大规模二维非关系型数据表。

**特殊用途**
--------

### **Neo4j V1.5M02 版**

**开发语言：** Java

**主要特性：** 图形化数据库

**许可证：** GPL，AGPL（商业用途）

**数据传输格式：** HTTP/REST（或内嵌在 Java 中）

* 可独立存在，或内嵌在 JAVA 的应用中
* 完全的 ACID 保证（包括正在处理的数据）
* 节点和节点的关系都可以拥有原数据
* 集成基于“模式匹配”的查询语言（Cypher）
* 支持“Gremlin”图形转化语言
* 可对节点与节点关系进行索引
* 良好的自包含网页管理技术
* 多个算法实现高级文件查找功能
* 可对 key 与 key 的关系进行索引
* 优化读性能
* 在 JAVA API 中实现事务处理
* 可运行脚本 Groovy 脚本
* 在商用版本中提供在线备份，高级监控和高可用性功能

**应用场景：**

* 适用于用图形显示复杂的交互型数据。

**使用案例：**

搜寻社交关系网、公共传输链、公路路线图、或网络拓扑结构

### **ElasticSearch 0.20.1 版**

**开发语言：** Java

**主要特性：** 高级搜索

**许可证：** Apache

**数据传输格式：** 通过 HTTP 使用 JSON 进行数据索引（插件：Thrift, memcached）

* 以 JSON 形式保存数据
* 提供版本升级功能
* 有父文档和子文档功能
* 文档有过期时间
* 提供复杂多样的查询指令，可使用脚本
* 支持写操作一致性的三个级别：ONE、QUORUM、ALL
* 支持通过分数排序
* 支持通过地理位置排序
* 支持模糊查询（通过近似数据查询等方式实现）
* 支持异步复制
* 自动升级，也可通过设置脚本升级
* 可以维持自动的“统计组”（对调试很有帮助）
* 只有一个开发者（kimchy）

**应用场景：**

* 当你有可伸缩性很强的项目并且想拥有“高级搜索”功能。

**使用案例：**

可布署一个约会服务，提供不同年龄、不同地理位置、不同品味的客户的交友需求。或者可以布署一个基于多项参数的排行榜。

**其他**
------

（不怎么有名，但值得在这里介绍一下）

### **Couchbase (ex-Membase) 2.0 版**

**开发语言：** Erlang 和 C

**主要特性：** 兼容 Memcache，但数据是持久化的，并且支持集群

**许可证：** Apache

**数据传输格式：** 缓存和扩展（memcached + extensions）

* 通过 key 访问数据非常快（20万以上IOPS）
* 数据保存在磁盘（不像 Memcache 保存在内存中 —— 译者注）
* 在主主互备中，所有节点数据是一致的
* 提供类似 Memcache 将数据保存在内存的功能
* 支持重复数据删除功能
* 友好的集群管理 Web 界面
* 支持池和多丛结构的代理（利用 Moxi 项目）
* 支持 Map/reduce 模式
* 支持跨数据中心备份

**应用场景：**

* 适用于低延迟数据访问系统，高并发和高可用系统。

**使用案例：**

低延迟可用于广告定投；高并发可用于在线游戏（如星佳公司）。

### **VoltDB 2.8.4.1版**

**开发语言：** Java

**主要特性：** 快速的事务处理和数据变更

**许可证：** GPL 3

**数据传输格式：** 专有方式

* 运行在内存的关系型数据库
* 可以将数据导入到 Hadoop
* 支持 ANSI SQL
* 在 JAVA 环境中保存操作过程
* 支持跨数据中心备份

**应用场景：**

* 适用于在大量传入数据中保证快速反应能力的场合。

**使用案例：**

销售点数据分析系统；工厂控制系统。

### **Scalaris 0.5版**

**开发语言：** Erlang

**主要特性：** 分布式 P2P 键值存储

**许可证：** Apache

**数据传输和存储的方式：** 自有方式和 基于JSON的远程过程调用协议

* 数据保存在内存中（使用 Tokyo Cabinet 作为后台时，数据可以持久化到磁盘中）
* 使用 YAWS 作为 Web 服务器
* Has transactions (an adapted Paxos commit)
* 支持事务处理（基于 Paxos 提交）（Paxos 是一种基于消息传递模型的一致性算法 —— 译者注）
* 支持分布式数据的一致性写操作
* 根据 CAP 定理，数据一致性要求高于数据可用性（前提是在一个比较大的网络分区环境下工作）（CAP 定理：数据一致性consistency、数据可用性availability、分隔容忍partition tolerance是分布式计算系统的三个属性，一个分布式计算系统不可能同时满足全部三项）

**应用场景：**

* 如果你喜欢 Erlang 并且想要使用 Mnesia 或 DETS 或 ETS，但你需要一个能使用多种语言（并且可扩展性强于 ETS 和 DETS）的技术，那就选它吧。

**使用案例：**

使用基于 Erlang 的系统，但是想通过 Python、Ruby 或 JAVA 访问数据库

### **Kyoto Tycoon 0.9.56版**

**开发语言：** C++

**主要特性：** 轻量级网络数据库管理系统

**许可证：** GPL

**数据传输和存储的方式：** HTTP (TSV-RPC or REST)

* 基于 Kyoto Cabinet, 是 Tokyo Cabinet 的成功案例
* 支持多种存储后端：Hash，树、目录等等（所有概念都是从 Kyoto Cabinet 那里来的）
* Kyoto Cabinet 可以达到每秒100万次插入/查询操作（但是 Tycoon 由于瓶颈问题，性能比 Cabinet 要差点）
* 服务器端支持 Lua 脚本语言
* 支持 C、JAVA、Python、Ruby、Perl、Lua 等语言
* 使用访问者模式开发（visitor patten：让开发者能在不修改类层次结构的前提下，定义该类层次结构的操作 —— 不明白就算了，译者也不明白）
* 支持热备、异步备份
* 支持内存数据库在后端执行快照
* 自动过期处理（可用来布署一个缓存服务器）

**应用场景：**

* 当你想要一个很精准的后端存储算法引擎，并且速度是刚需的时候，玩玩 Kyoto Tycoon 吧。

**使用案例：**

缓存服务器；股价查询系统；数据分析系统；实时数据控制系统；实时交互系统；memcached的替代品。

当然，上述系统的特点肯定不止列出来这么点。我只是列出了我认为很关键的信息。另外科技发展迅猛，技术改变得非常快。

附：现在下定论比较孰优孰劣还为时过早。上述数据库的版本号以及特性我会一个一个慢慢更新。相信我，这些数据库的特性不会变得很快。

via: <http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis>

译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Ubuntu每日小技巧 – 深入理解应用菜单和按钮

Summary: Ubuntu是一款很不错的操作系统。它基本上可以做到任何现代操作系统能做的事情，甚至有时候能做的更好。如果你是一个ubuntu新手，那么你现在还有很多不知道的事情。对于那些专家级用户来说十分普通的事情可能对你来说 ...

# Ubuntu每日小技巧 – 深入理解应用菜单和按钮

Ubuntu是一款很不错的操作系统。它基本上可以做到任何现代操作系统能做的事情，甚至有时候能做的更好。如果你是一个ubuntu新手，那么你现在还有很多不知道的事情。对于那些专家级用户来说十分普通的事情可能对你来说可能就不太普通了，因此这个“ubuntu每日小技巧”系列旨在帮助你和新用户轻松设置管理ubuntu。

Ubuntu有一个菜单栏。这个主菜单栏是在屏幕的顶端黑色条状栏，其包含了状态菜单或指示器和时间日期，音量键，应用的菜单和窗口管理按钮。

窗口管理按钮在主菜单（黑色条状栏）的左上角。当年你打开一个程序的时候，主菜单左上角的按钮包括关闭、最小化、最大化、和恢复大小按钮，这些按钮叫做窗口管理按钮。

应用的菜单位于窗口管理按钮的右侧。当应用打开时才显示应用菜单。

默认情况下，ubuntu隐藏了窗口应用菜单和管理按钮，只有当你把鼠标放在左侧角里的时候才能看到。如果你打开一个程序但是找不到菜单，只需要把你的鼠标移动到屏幕左上角就可以使它显示出来。

如果这让你很困惑，而且你想关闭（全局的）应用菜单而使每个程序都有自己的菜单的话，继续向下看。

运行以下命令以安装或删除应用菜单：

sudo apt-get autoremove indicator-appmenu

运行上面的命令将会删除应用菜单即全局菜单。现在，为了使改变生效，先退出然后再登录回来。

现在，当你打开一个ubuntu里面的程序的时候，每个程序就会用显示自己的菜单代替把它隐藏在全局菜单或主菜单里。

 <img src="content_image/album_201310_28_2025053zw1jkbiisqnpmib.png" alt="" title="">

就是这样! 想返回原来的状态的话,运行下面的命令：

sudo apt-get install indicator-appmenu

使用愉快!

via: <http://www.liberiangeek.net/2013/09/daily-ubuntu-tips-understanding-app-menus-buttons/>

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

译者：[crowner](https://github.com/crowner) 校对：[wxy](https://github.com/wxy)


Torvalds：SteamOS将“真正帮助”Linux桌面系统实现逆袭

Summary:
Linus Torvalds非常欢迎Valve公司的SteamOS系统入驻Linux平台，表示它将大力推动Linux桌面系统的发展。
Linux之父大力赞扬Valve的独到眼光，表示这一合作将迫使其他生产商开始认真重视Linux，特别是游戏开发商们将开 ...

# Torvalds：SteamOS将“真正帮助”Linux桌面系统实现逆袭

Linus Torvalds非常欢迎Valve公司的SteamOS系统入驻Linux平台，表示它将大力推动Linux桌面系统的发展。

Linux之父大力赞扬Valve的“独到眼光”，表示这一合作将迫使其他生产商开始认真重视Linux，特别是游戏开发商们将开始摒弃Windows。

他在上周三爱丁堡举行的LinuxCon大会上说道，“我爱Steam —— 我认为这是一个能真正帮助Linux桌面系统的大好机会！”

Valve上个月发布了关于SteamOS的声明，表示这将是一种把PC游戏带入起居室的新体验。用户可以在自己任意的PC电脑上安装SteamOS，而Valve将在另一端负责SteamOS匹配各个生产商的硬件系统。

>
> 我爱Steam —— 我认为这是一个能真正帮助Linux桌面系统的大好机会！
>
>
>

硬件生产商们也将大力扩展对Windows以外系统的驱动程序支持，而SteamOS将以此获得更多游戏玩家和开发商的青睐。

说到这一点，就涉及到了Torvalds的痛处。去年Nvidia宣布放弃支持开源系统图形芯片的驱动开发，他对此进行了[猛烈抨击](http://www.wired.com/wiredenterprise/2012/06/torvalds-nvidia-linux/)。如今SteamOS选择了Linux，Nvidia的大门重新对Linux社区敞开，Torvalds预言这预示着新的发展机会即将到来。

他说，“我并不是说它单单只是帮助我们吸引显卡厂商的注意，它还迫使Linux的各个发行版意识到Steam是一个发展趋势，他们必须抓住这个趋势，因为一旦落下被孤立，发行版们是负担不起的，他们都想让人们在自己的平台上运行这套系统玩游戏。”

“这就是‘标准化’的最佳例证，”他说，“我认为好的标准能使人们事半功倍、信心满满，足以推动整个市场的发展。”

### **漂亮的登录窗口**

Torvalds表示，Linux在桌面系统领域一直表现不佳的另一个原因是开发者们总是专注于毫无用处的用户体验特效（UX features）。

“Linux始终在各个领域表现都非常出色，但我还是对Linux桌面系统的现状多少有些失望，内耗、不干正事、一团糟。”

他还补充道，“我真心希望Linux的各个桌面系统能携起手来，更多专注于技术，而不是总想着如何让登陆窗口看起来更漂亮。”

Torvalds并没有提到某个具体的公司，但之前[他曾对Google的Chromebook Pixel大加赞赏](https://plus.google.com/+LinusTorvalds/posts/dk1aiW4JjHd)，认为跟基于Linux的Chrome OS比起来，其他PC就是一坨“crap”(译者注，这个单词读shi，第三声)。

via: <http://www.pcpro.co.uk/news/384934/torvalds-steamos-will-really-help-linux-on-desktop>

译者：[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Ubuntu 13.10安装后你要做的8件事

Summary:
Ubuntu 13.10 已经发布了，对于那些打算安装纯净版的用户，安装完系统后你可以考虑下面的8件事。

1. 安装一些绚丽的小零件

系统负载 是系统监控工具GNOME里的一个小应用。它能在面板上展示出CPU、内存、网络使用、 ...

# Ubuntu 13.10安装后你要做的8件事

Ubuntu 13.10 已经发布了，对于那些打算安装“纯净版”的用户，安装完系统后你可以考虑下面的8件事。

### **1. 安装一些绚丽的小零件**

**系统负载** 是系统监控工具GNOME里的一个小应用。它能在面板上展示出CPU、内存、网络使用、硬盘I/O等信息。点击下面的按钮从Ubuntu软件中心安装。

 [](apt://indicator-multiload)

或者通过命令行进行安装：

sudo apt-get install indicator-multiload

**CPU频率**是一款等效于“GNOME-CPU调频”的应用。你可以实时的调整CPU的频率。点击下面的按钮从Ubuntu软件中心安装。

[](apt://indicator-cpufreq)

或者通过命令行安装：

sudo apt-get install indicator-cpufreq

**我的天气**是一款显示当前天气的应用，它能显示5天内的预报并支持四大天气服务站点：OpenWeatherMap, Yahoo, Wunderground 和 World Weather Online。

通过命令行进行安装：

sudo add-apt-repository ppa:atareao/atareao

sudo apt-get update

sudo apt-get install my-weather-indicator

[**Variety**](http://www.webupd8.org/2013/06/variety-wallpaper-changer-0415-released.html)一款带有AppIndicator的应用，但是基本上你只需要配置一次就可以用指示器来使用此软件了。Variety是一款很酷的壁纸更换的应用，他能在设定的时间内自动下载并更换壁纸。用起来就有种高帅富的感觉。壁纸库每天都会有更新，你可以很快的切换到另外一个壁纸，收藏自己喜欢的壁纸，留着日后再用。

通过以下命令行安装：

sudo add-apt-repository ppa:peterlevi/ppa

sudo apt-get update

sudo apt-get install variety

你可能还需要一个剪切板管理器，试试**Diodon** 吧，这是款轻量型软件，支持文件、图像等。点击下面的按钮安装：

[](apt://diodon,diodon-plugins)

或者通过命令行安装：

sudo apt-get install diodon diodon-plugins

### **2. 设置 Unity**

**Unity Tweak Tool**让用户能改变一些Unity设置，比如：自动隐藏、窗口最大化、“触发角”、Dash、Unity启动器或平视显示器、改变GTK或图标主题、改变字体和大小，移动窗口控制器到右边等。

点击下面的按钮从软件中心安装

 [](apt://unity-tweak-tool)

或者通过命令行安装

sudo apt-get install unity-tweak-tool

### **3. 隐私设置**

你应该知道可以通过默认的Dash来查看最近访问的文件和其他的一些文件。系统设置可以通过设置**“安全和隐私”**来选择显示的文件类型。这样就不用看到那些软件、文件夹之类的了。你也可以清除最近的记录。

此外你在使用搜索框的时候，可以设定不显示网络搜索的结果。但是这会屏蔽掉所有的网络信息。所以当你仅仅是想**“屏蔽购物推荐”**的话，你可以输入下面的命令:

```
gsettings set com.canonical.Unity.Lenses disabled-scopes "['more_suggestions-amazon.scope', 'more_suggestions-u1ms.scope', 'more_suggestions-populartracks.scope', 'music-musicstore.scope', 'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope', 'more_suggestions-skimlinks.scope']"
```

更多插件屏蔽，点击[此处](http://www.webupd8.org/2013/10/how-to-disable-amazon-shopping.html)

另外一种在Ubuntu 13.10中设置隐私的方法是使用**隐私指示器**，这是一款让你快捷设置启用/屏蔽Zeitgeist 或者在线搜索结果的软件，并能清除Zeitgeist日志和最近文件（显示先边栏的“最近”里面）。

[**下载 Privacy Indicator**](http://www.florian-diesch.de/software/indicator-privacy/)（此网页中含有deb文件下载）

### **4. 使用独立显卡的混合图形功能**

Ubuntu的开发人员已经在Ubuntu 13.10 （和 12.04 LTS版 ）中实现了混合显卡技术，下面你会看到相关设置的说明。

**Nvidia Optimus**:不幸的是，Linux平台下Nvidia显卡驱动并不完全支持Optimus，[更多](http://www.webupd8.org/2013/08/using-nvidia-graphics-drivers-with.html)。

但是Ubuntu 13.10用了“nvidia-prime”包来过渡。这个包使默认支持Intel显卡芯片的Optimus平台也支持Nvidia显卡。通过下面指令你能Nvidia显卡一直处于工作状态，就是说没有办法让它停止工作来节能了。这样笔记本就会功耗更大和过热--——**对我而言，我是不会 用这个的，除非过热的问题解决了**，如果没有解决的话，你可以取消这个设置。

再次不幸的是，这不是唯一的问题。你会发现画面分割和热插拔并不工作。所以，如果你想用多个显示器的话。你需要手动的在xorg.conf进行设置。这样的好处就是，你可以玩那些不支持Intel显卡的游戏，用支持VDPAU的媒体播放器等。

即便如此，如果你还是想尝试一下的话，请确保你使用的是默认的显示管理器LightDM，并不是其他的，如GDN等。此外，如果你安装了Bumblebee，你需要卸载掉它：

sudo apt-get purge bumblebee\* bbswitch-dkms

然后安装最新的Nvidia驱动和“nvidia-prime”：

sudo apt-get install nvidia-319 nvidia-settings-319 nvidia-prime

最后重启电脑（重启X是不够）。

如果你想撤销这些改变，你可以输入通过下面的指令：

sudo apt-get remove nvidia-319 nvidia-settings-319 nvidia-prime

然后重启

**AMD 混合显卡**:我并没有测试过这个，因为我没有支持AMD显卡的系统，但是根据Ubuntu wiki上的[**HybridGraphics**](https://wiki.ubuntu.com/X/Config/HybridGraphics#Known_issues)包说明，应该是没有问题。（再次申明，我并不确定，因为我没试过）

要想在Ubuntu 13.10下获得合适的AMD显卡支持。你需要安装最新的 fglrx驱动和fglrx-pxpress：

sudo apt-get install fglrx fglrx-pxpress

并重启电脑。重启X是没有用的

### **5. 延长电池寿命**

有两个工具可以延长电池的寿命：laptop-mode-tools 和 TLP。这两个工具都是为了延长电池寿命，[**TLP**](http://www.webupd8.org/2013/04/improve-power-usage-battery-life-in.html) 似乎效果更好一点，但是TLP仅有PPA，如果你不想添加APPs时，就安装 laptop-mode-tools吧。

注意：**不要同时安装laptop-mode-tools和TLP**

点击下面的按钮安装laptop-mode-tools。

 [](apt://laptop-mode-tools)

或者通过命令行安装：

sudo apt-get install laptop-mode-tools

输入下面命令安装TLP:

sudo add-apt-repository ppa:linrunner/tlp

sudo apt-get update

sudo apt-get install tlp tlp-rdw

sudo tlp start

这两个工具都不需要额外的配置。

另外一种节约电池的方法是**Bumblebee**（是允许在独显运行软件或游戏的工具），Bumblebee是一款支持笔记本上双显卡智能切换的软件。能停止Nvidia显卡，当你不需要使用的时候。

**注意：如果你想在显卡自动切换技术的第4步采用混合显卡时，请不要安装Bumblebee**

点击下面的按钮进行安装：

 [](apt://bumblebee,bumblebee-nvidia)

或输入下面的命令行：

sudo apt-get install bumblebee bumblebee-nvidia

然后重启。

在Ubuntu中有个禁止"optirun"工作的[**bug**](http://www.webupd8.org/2013/10/fix-bumblebee-libturbojpegso-issue-in.html)。通过下面的命令解决这个问题。

* 32位系统
 sudo ln -s /usr/lib/i386-linux-gnu/libturbojpeg.so.0 /usr/lib/i386-linux-gnu/libturbojpeg.so
* 64位系统
 sudo ln -s /usr/lib/x86*64-linux-gnu/libturbojpeg.so.0 /usr/lib/x86*64-linux-gnu/libturbojpeg.so

当你想用Nvidia显卡时，运行：

optirun APP-EXECUTABLE

将"APP-EXECUTABLE"替换为你要运行的软件或者游戏的可执行文件。

### **6. 安装编解码器， Java 和 加密DVD播放**

如果需要播放更多类型的音频视频文件，那就安装 **Ubuntu Restricted Extras** 吧

 [](apt://ubuntu-restricted-extras)

或者输入下面的命令行：

sudo apt-get install ubuntu-restricted-extras

我建议再安装一下“libavformat 和 libavcodec的无限制版”，这样当你使用一些编辑器或者转换器的时候就不会出现丢失编码丢失的情况。点击下面的按钮进行安装：

[](apt://libavformat-extra-53,libavcodec-extra-53)

或者输入以下命令行：

sudo apt-get install libavformat-extra-53 libavcodec-extra-53

你可能需要Java，但是你得明确你到底需要的是什么，不少用户仅仅使用**OpenJRE**和java游览器插件，你可以点击下面的按钮安装：

 [](apt://icedtea-7-plugin,openjdk-7-jre)

或者输入下面的命令行：

sudo apt-get install icedtea-7-plugin openjdk-7-jre

如果用于开发，你可能需要**OpenJDK**，点击下面的按钮进行安装:

 [](apt://openjdk-7-jdk)

或者输入下面的命令行:

sudo apt-get install openjdk-7-jdk

如果你因为某些原因需要安装**Oracle Java**（包含JDK,JRE,游览器插件的包）时，你可以通过下面的命令进行安装[**Oracle Java 7**](http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html) ：

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java7-installer

**加密DVD播放**： 由于现在很多安装包都能在官方的库中找到，或者有更好的替代物，Medibuntu也渐渐的[**被废弃**](http://gauvain.pocentek.net/node/61)了。但是在播放加密视频时仍然需要livdvdcss包。

输入以下指令启动加密DVD播放功能:

sudo apt-get install libdvdread4

sudo /usr/share/doc/libdvdread4/install-css.sh

### **7. 安装最新的 Rhythmbox 和 VLC**

在Ubuntu13.10中，Rhythmbox 和 VLC并没有升级到最新的版本，如果你想安装最新的版本，你可以使用PPAs

请注意：升级Rhythmbox后，里面的[**第三方插件**](http://www.webupd8.org/2012/08/rhythmbox-third-party-plugins-ubuntu-ppa.html)将停止工作。Rhythmbox插件可以正常的运行。

**Rhythmbox**（Ubuntu 13.10下的版本：2.99.1，PPA中的版本：3.0.1）：

sudo add-apt-repository ppa:jacob/media

sudo apt-get update

sudo apt-get install rhythmbox

**VLC**（Ubuntu 13.10下的版本：2.0.8，PPA中的版本：2.1.0）：

sudo add-apt-repository ppa:videolan/stable-daily

sudo apt-get update

sudo apt-get install vlc

### **8. Tweak Nautilus: 打开被禁用的递归搜索和文件快速预览**

在Nautilus V3.6之后，提前键入查找功能就被去除掉了。之后版本的搜索就只是在当前文件夹和其子文件下进行搜索。这用起来就很不爽了，如果你为此感到烦恼的话就安装Nautilus的补丁来启用[**被禁用的递归搜索**](http://www.webupd8.org/2013/09/how-to-disable-recursive-search-in.html)（你可以很方便的启用它）。

**用下面的命令将Nautilus升级到可以禁用递归搜过的版本**

sudo add-apt-repository ppa:dr3mro/personal

sudo apt-get update

sudo apt-get upgrade

nautilus -q

**然后使用下面的命令禁用递归搜索**

gsettings set org.gnome.nautilus.preferences enable-recursive-search false

如果你还想恢复递归搜索的功能，使用下面的命令行：

gsettings set org.gnome.nautilus.preferences enable-recursive-search true

**GNOME Sushi**是一款快速预览的软件。点击下面的按钮安装。（会安装gnome-sushi 和 unoconv来实现预览）。

 [](apt://gnome-sushi,unoconv)

或者输入命令行：

sudo apt-get install gnome-sushi unoconv

要使用这个软件，需选择一个文件（图片、文本文档、音乐文件等）然后点击SPACE按钮来预览。再次点击SPACE按钮或者关闭窗口可以关闭预览。

**现在！看完我们的介绍之后，你会选择哪个作为第一个安装的呢？**

via: <http://www.webupd8.org/2013/10/8-things-to-do-after-installing-ubuntu.html>

译者：[Timeszoro](https://github.com/Timeszoro) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


di - 比 df 更有用的磁盘信息工具

Summary: 如果你是个Linux命令行用户，你肯定会使用df命令检查文件系统的磁盘使用情况。尽管df是一个受欢迎的命令，但仍然不能提供一些高级的功能，如一个用户实际的磁盘可用空间，以及各种有用的显示格式等。还有另一个命令  ...

# di - 比 df 更有用的磁盘信息工具

如果你是个Linux命令行用户，你肯定会使用df命令检查文件系统的磁盘使用情况。尽管df是一个受欢迎的命令，但仍然不能提供一些高级的功能，如一个用户实际的磁盘可用空间，以及各种有用的显示格式等。还有另一个命令行实用工具可用，不仅提供了这些高级功能也提供了df的所有特性。在本文中,我们将讨论磁盘信息工具 -- **di**

****

**注释** - 如果你想了解 df 更多信息, 查看 [df命令教程](http://www.expertslogin.com/linux-command/linux-df-command/).

**di - 磁盘信息工具**
---------------

从这个di帮助手册页很明显的发现 di 提供了一些很有价值的特性，值得一试。让我们看一些这个工具实际使用的例子。

### **测试环境**

* OS – Ubuntu 13.04
* Shell – Bash 4.2.45
* Application – di 4.30

**一个简短的教程**
-----------

下面是一些 di 工具的示例:

### **1. 默认的输出**

默认情况下di命令生成人们易读的输出格式

这里有个示例:

```
$ di
Filesystem         Mount               Size     Used    Avail %Used  fs Type
/dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4
udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs
tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs
```

所以你能发现用千兆字节(G)和兆字节(M)做磁盘使用情况的数据单位。这绝对是比 df 默认的输出产生的效果好。（译注：df也可以输出带类似单位的显示，只是需要额外加参数 -h）

### **2. 用 -A 选项打印类似挂载点、特殊设备名称等全部字段**

选项 -A可以用来极详细的打印挂载点，特殊设备名称等。

这里有个示例:

```
$ di -A
Mount fs Type  Filesystem
     Options
        Size     Used     Free %Used  %Free
        Size     Used    Avail %Used  %Free
        Size     Used    Avail %Used
       Inodes     Iused     Ifree %Iused
/     ext4     /dev/sda6
    rw,errors=remount-ro
       28.1G    20.2G     8.0G   72%    28%
       28.1G    21.6G     6.5G   77%    23%
       26.7G    20.2G     6.5G   75%
      1884160    389881   1494279   21%
/dev  devtmpfs udev
    rw,mode=0755
        1.5G     0.0G     1.5G    0%   100%
        1.5G     0.0G     1.5G    0%   100%
        1.5G     0.0G     1.5G    0%
       381805       571    381234    0%
/run  tmpfs    tmpfs
    rw,noexec,nosuid,size=10%,mode=0755
      300.2M     0.9M   299.3M    0%   100%
      300.2M     0.9M   299.3M    0%   100%
      300.2M     0.9M   299.3M    0%
       384191       549    383642    0%
```

所以你可以看到所有的字段，可以用于调试目的时打印输出。

### **3. 用 -a选项打印所有挂载设备**

这里是个示例:

```
$ di -a
Filesystem         Mount               Size     Used    Avail %Used  fs Type
/dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4
udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs
devpts             /dev/pts            0.0M     0.0M     0.0M    0%  devpts
proc               /proc               0.0M     0.0M     0.0M    0%  proc
binfmt_misc        /proc/sys/fs/bi     0.0M     0.0M     0.0M    0%  binfmt_misc
tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs
none               /run/lock           0.0M     0.0M     0.0M    0%  tmpfs
none               /run/shm            0.0M     0.0M     0.0M    0%  tmpfs
none               /run/user           0.0M     0.0M     0.0M    0%  tmpfs
gvfsd-fuse         /run/user/himan     0.0M     0.0M     0.0M    0%  fuse.gvfsd-fuse
sysfs              /sys                0.0M     0.0M     0.0M    0%  sysfs
none               /sys/fs/cgroup      0.0M     0.0M     0.0M    0%  tmpfs
none               /sys/fs/fuse/co     0.0M     0.0M     0.0M    0%  fusectl
none               /sys/kernel/deb     0.0M     0.0M     0.0M    0%  debugfs
none               /sys/kernel/sec     0.0M     0.0M     0.0M    0%  securityfs
```

所以你能看到与所有设备相关的所有信息，被打印出来了。

### **4. 用 -c 选项用逗号作为值的分隔符**

选项 -c 用命令分隔的值将附上双引号

这里是个示例:

```
$ di -c
s,m,b,u,v,p,T
/dev/sda6,/,28.1G,20.2G,6.5G,77%,ext4
udev,/dev,1.5G,0.0G,1.5G,0%,devtmpfs
tmpfs,/run,300.2M,0.9M,299.3M,0%,tmpfs
```

如上,你可以看到打印了用逗号分隔符输出的值。（译注：这种输出便于作为其他程序的输入解析）

### **5. 用 -g 选项通过千兆字节(G)打印大小**

下面是个示例:

```
$ di -g
Filesystem         Mount              Gibis     Used    Avail %Used  fs Type
/dev/sda6          /                   28.1     20.2      6.5   77%  ext4
udev               /dev                 1.5      0.0      1.5    0%  devtmpfs
tmpfs              /run                 0.3      0.0      0.3    0%  tmpfs
```

当然,你能看到所有与大小有关的值都用千兆字节(G)打印出来。

同样的你可以用 -k 和 -m 选项来分别的显示千字节(K)大小和兆字节(M)大小。

### **6. 通过 -I 选项显示特定的文件系统类型的相关信息**

假设你想显示只跟tmpfs文件系统相关的信息。下面将告诉你如何用 -I 选项完成任务。

```
$ di -I tmpfs
Filesystem         Mount               Size     Used    Avail %Used  fs Type
tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs
none               /run/lock           5.0M     0.0M     5.0M    0%  tmpfs
none               /run/shm            1.5G     0.0G     1.5G    0%  tmpfs
none               /run/user         100.0M     0.0M   100.0M    0%  tmpfs
none               /sys/fs/cgroup      0.0M     0.0M     0.0M    0%  tmpfs
```

Ok 你能看到只有tmpfs类型相关文件系统信息被输出并显示出来了。

### **7. 用 -n 选项跳过标题行的输出**

如果你正试图通过一个脚本(或程序)解析该命令的输出结果并希望 di 命令跳过显示的标题行，那么用 -n 选项是绝佳的方法。

下面是个示例:

```
$ di -n
/dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4
udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs
tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs
```

如上，你能发现输出中并没有显示标题行。

### **8. 通过 -t 选项在文件系统列表底下再打印一行总计行**

如果想要显示所有相关列的总数，用 -t 选项。

示例:

```
$ di -t
Filesystem         Mount               Size     Used    Avail %Used  fs Type
/dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4
udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs
tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs
                   Total              29.9G    20.2G     8.3G   72%
```

观察到最后一行的值为所有文件系统的统计数据。

### **9. 通过 -s 选项 排序输出**

-s选项可用于排序该命令的输出结果（译注：默认按照挂载点名称排序）

下面告诉你如何反向排序输出:

```
$ di -sr
Filesystem         Mount               Size     Used    Avail %Used  fs Type
tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs
udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs
/dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4
```

你也可以在-s后添加子选项'r'逆序排序输出。

类似的,你可以使用 -s 选项做一些其他类型的排序.以下是摘自man手册供您参考:

>
>  -s 排序方式
>
>
>  可以指定排序方式。默认排序方式的按照挂载点的名称进行排序。支持如下的排序方式：
>
>
>  m ：按照挂载点名称排序（默认）
>
>
>  n ：不排序（即按照在挂载表/etc/fstab中的顺序）
>
>
>  s ：按照特殊设备名称
>
>
>  t ：按照文件系统类型
>
>
>  r ：逆序排序
>
>
> 排序方式可以组合使用，如： di --stsrm ：按照类型、设备、挂载点逆序排序。di --strsrm ：按照类型、设备逆序、挂载点逆序排序。
>
>
>

### **10. 通过 -f 选项指定输出格式**

你可以通过结合-f选项和其子选项指定输出格式字符串。

例如，用 -fm，打印挂载点的名称。

示例:

```
$ di -fm
Mount
/
/dev
/run
```

如上你可以看到只有挂载点的名字被打印出来。

同样的，打印文件系统的类型，用 -ft

示例:

```
$ di -ft
fsType
ext4
devtmpf
tmpfs
```

如果你想快速查找,这里有个其他可用的格式选项截图.

更完整的选项,参考[di命令man文档](http://www.manpagez.com/man/1/di/)

### **下载/安装**

这里有一些关于di命令的重要链接:

* [主页](http://www.gentoo.com/di/)
* [下载链接](http://freecode.com/projects/diskinfo)

命令行工具 di 也能通过apt、yum等命令在命令行下载和安装。Ubuntu用户也可以从Ubuntu 软件中心下载这个命令。

### **优点**

* 提供了许多高级功能
* 跨平台

### **缺点**

* 在大多数的Linux发行版没有预装
* 大量选项需要学习

### **结论**

最后，di命令提供了一些非常有用的特性，比df命令更强大。如果你正在寻找一个类似df，但比df更强大的关于磁盘信息的命令行工具，那么di是最理想的选择。试试吧，包你满意!!!

**你试过di或任何其他类似df工具？请跟我们分享你的经验！**

via: <http://mylinuxbook.com/di-a-disk-information-utility/>

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：01 介绍

Summary:
译者按：
本文作者戴文.科利尔.约翰逊(Devyn Collier Johnson)今年才19岁，但是他在Linux内核、人工智能、编程语言方面拥有丰富的经验，本文是其在linux.org上连载的一系列关于内核的文章。文章写的深入浅出，本站不 ...

# 戴文的Linux内核专题：01 介绍

>
> 译者按：
>
>
> 本文作者戴文.科利尔.约翰逊(Devyn Collier Johnson)今年才19岁，但是他在Linux内核、人工智能、编程语言方面拥有丰富的经验，本文是其在[linux.org上连载的一系列关于内核的文章](http://www.linux.org/threads/%EF%BB%BFthe-linux-kernel-introduction.4203/)。文章写的深入浅出，本站不揣浅陋，由LCTT成员geekpi进行了系列翻译，以分享给广大Linux爱好者。
>
>
>

在1991年，一个叫林纳斯·本纳第克特·托瓦兹的芬兰学生制作了一个现在非常流行的操作系统的内核。他于1991年9月发布了Linux 0.01，并且于1992年以GPL许可证的方式授权了该内核。GNU通用许可证(GPL)允许人们使用、拥有、修改，以及合法和免费的分发源代码。这使得内核变得非常流行，因为任何人都可以免费地下载。现在任何人都可以生成他们自己的内核，这有助于人们学习如何获取、编辑、配置、编译并安装Linux内核。

内核是操作系统的核心。操作系统是一系列的管理硬件并允许用户在电脑上运行应用的程序。内核控制着硬件和应用。应用并不直接和硬件打交道，而是首先和内核交互。总之，软件运行在内核上，而内核操作着硬件。没有内核，电脑就是一个没用的物件。

用户制作他们自己的内核有各种各样的原因。许多用户也许想要一个只包含他们需要的代码的系统内核。比如说我的内核包含了火线设备驱动，但是我的电脑缺乏这些端口。当系统启动时，时间和内存就会浪费在那些我系统上并没有安装的设备上。如果我想要简化我的内核，我会制作自己不包含火线驱动的内核。至于另外一个理由，某个用户可能拥有一台有特殊硬件的设备，但是最新的Ubuntu版本中的内核缺乏所需的驱动。这个用户可以下载最新的内核(比当前Ununtu的Linux内核要新)，并制作他们自己的有相应驱动的内核。不管怎样，这两个原因是用户想要制作自己的Linux内核的普遍原因。

在下载内核前，我们应该讨论一些重要的术语和事实。Linux内核是一个宏内核，这意味着整个操作系统都运行在内核预留的内存里。说的更清楚一些，内核是放在内存里的。内核所使用的空间是内核预留的。只有内核可以使用预留的内核空间。内核拥有这些内存空间，直到系统关闭。与内核空间相对应的还是用户空间。用户空间是内存上用户程序拥有的空间。比如浏览器、电子游戏、文字处理器、媒体播放器、壁纸、主题等都是放在内存里的用户空间。当一个程序关闭的时候，任何程序都可以使用新释放的空间。在内核空间，一旦内存被占用，则没有任何其他程序可以使用这块空间。

Linux内核也是一个抢占式多任务内核。这意味该内核可以暂停一些任务来保证任何应用都有机会来使用CPU。举个例子，如果一个应用正在运行但是正在等待一些数据，内核会把这个应用暂停并允许其他的程序使用新释放的CPU资源，直到数据到来。否则的话，系统就会浪费资源给那些正在等待数据或者其他程序执行的的任务。内核将会强制程序去等待或者停止使用CPU。没有内核的允许，应用程序不能脱离暂停或者使用CPU。

Linux内核使得设备作为文件显示在/dev文件夹下。举个例子，USB端口位于/dev/bus/usb。硬盘分区则位于/dev/disk/分区。因为这个特性，许多人说：“在Linux上，一切皆文件”。（不过这些设备文件不能被直接使用，——译者补充）举个例子，如果一个用户想要访问在存储卡上的数据，他们是不能通过设备文件访问到这些数据的。（译注：此处原文是“If a user wanted to access data on their memory card, for example, they **cannot** access the data through these device files.”，但根据上下文，此处语境不对，所以做了相应补充。据“食梦-”的提示，原文也有人对此提出了质疑，作者做了如下解释：http://www.linux.org/threads/%EF%BB%BFthe-linux-kernel-introduction.4203/#post-12623）

Linux内核是可移植的。可移植性是Linux流行的一个最重要的原因。可移植性使得内核可以工作在各种处理器和系统上。一些内核支持的处理器的型号包括：Alpha、AMD、ARM、C6X、Intel、x86、Microblaze、MIPS、PowerPC、SPARC、UltraSPARC等，这还不是全部的列表。

在引导文件夹(/boot),用户会看到诸如“vmlinux”或者“vmlinuz”的文件。这两者都是已编译的Linux内核。以“z”结尾的是已压缩的。“vm”代表虚拟内存。在SPARC处理器的系统上，用户可以看见一个zImage文件。一小部分用户可以发现一个bzImage文件，这也是一个已压缩的Linux内核。无论用户有哪个文件，这些引导文件都是不能更改的，除非用户知道他们正在做什么。否则系统会变成无法引导，也就是说系统启动不了了。

内核源代码就是程序编码。有了源代码，程序员可以修改内核并能观察到内核是如何工作的。

### **下载内核:**

现在我们想更多地了解了内核，就要下载内核源代码了。进入kernel.org并点击那个巨大的下载按钮。下载完成后，解压下载的文件。

对于本文，我使用的源代码是Linux kernel 3.9.4.这个文章系列的所有指导对于所有的内核版本是相同的(或者非常相似的)

via: <http://www.linux.org/threads/%EF%BB%BFthe-linux-kernel-introduction.4203/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：02 源代码

Summary:
在下载并解压内核源代码后，用户可以看到许多文件夹和文件。尝试去找一个特定的文件或许是一个挑战。谢天谢地，源代码以一个特定的方式组织的。这使开发者能够轻松找到任何文件或者内核的一部分。
内核源代码的根目  ...

# 戴文的Linux内核专题：02 源代码

在下载并解压内核源代码后，用户可以看到许多文件夹和文件。尝试去找一个特定的文件或许是一个挑战。谢天谢地，源代码以一个特定的方式组织的。这使开发者能够轻松找到任何文件或者内核的一部分。

内核源代码的根目录下包含了以下文件夹

```
arch
block
crypto
Documentation
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt
```

还有一些文件在源代码的根目录下。它们会在下面列出。

**COPYING** -许可和授权信息。Linux内核在GPLv2许可证下授权。该许可证授予任何人有权免费去使用、修改、分发和共享源代码和编译代码。然而，没有人可以出售源代码。

**CREDITS** - 贡献者列表

**Kbuild** - 这是一个设置一些内核设定的脚本。打个比方，这个脚本设定一个ARCH变量，这是开发者想要生成的内核支持的处理器类型。

**Kconfig** - 这个脚本会在开发人员配置内核的时候用到，这会在以后的文章中讨论。

**MAINTAINERS** - 这是一个目前维护者列表，他们的电子邮件地址，主页，和他们负责开发和维护的内核的特定部分或文件。当一个开发者在内核中发现一个问题，并希望能够报告给能够处理这个问题的维护者时，这是是很有用的。

**Makefile** - This script is the main file that is used to compile the kernel. This file passes parameters to the compiler as well as the list of files to compile and any other necessary information. 这个脚本是编译内核的主要文件。这个文件将编译参数和编译所需的文件和必要的信息传给编译器。

**README** - 这个文档提供给开发者想要知道的如何编译内核的信息。

**REPORTING-BUGS** - 这个文档提供如何报告问题的信息。

内核的代码是以“.c”或“.h”为扩展名的文件。 “.c”的扩展名表明内核是用众多的编程语言之一的C语言写的， “h”的文件是头文件，而他们也是用C写成。头文件包含了许多“.c”文件需要使用的代码，因为他们可以引入已有的代码而不是重新编写代码，这节省了程序员的时间。否则，一组执行相同的动作的代码，将存在许多或全部都是“c”文件。这也会消耗和浪费硬盘空间。（译注：头文件不仅仅可节省重复编码，而且代码复用也会降低代码错误的几率）

所有上面列出的文件夹中的文件都组织得很好。文件夹名称至少可以帮助开发人员很好地猜测文件夹中的内容。下面提供了一个目录树和描述。

**arch** - 这个文件夹包含了一个Kconfig文件，它用于设置这个目录里的源代码编译所需的一系列设定。每个支持的处理器架构都在它相应的文件夹中。如，Alpha处理器的源代码在alpha文件夹中。请记住，随着时间的推移，一些新的处理器将被支持,有些会被放弃。对于Linux v3.9.4，arch下有以下文件夹：

```
alpha
arc
arm
arm64
avr32
blackfin
c6x
cris
frv
h8300
hexagon
ia64
m32r
m68k
metag
microblaze
mips
mn10300
openrisc
parisc
powerpc
s390
score
sh
sparc
tile
um
unicore32
x86
xtensa
```

**block** – 此文件夹包含块设备驱动程序的代码。块设备是以数据块方式接收和发送的数据的设备。数据块都是一块一块的数据而不是持续的数据流。

**crypto** - 这个文件夹包含许多加密算法的源代码。例如，“sha1\_generic.c”这个文件包含了SHA1加密算法的代码。

**Documentation** - 此文件夹包含了内核信息和其他许多文件信息的文本文档。如果开发者需要一些信息，他们也许能在这里找到所需要的信息。

**drivers** - 该目录包含了驱动代码。驱动是一个控制硬件的软件。例如，要让计算机知道键盘并使其可用，键盘驱动是必要的。这个文件夹中存在许多文件夹。每个文件夹都以硬件的种类或者型号命名。例如，'bluetooth'包含了蓝牙驱动程序的代码。还有其他很明显的驱动像SCSI、USB和火线等。有些驱动程序可能会比较难找到。例如，操纵杆驱动不在'joystick'文件夹中，它们却在./drivers/input/joystick。同样键盘和鼠标驱动也在这个input文件夹中。 'Macintosh'包含了苹果的硬件代码。 'Xen'包含了Xen hypervisor代码。（hypervisor是一种允许用户在一台计算机上运行多个操作系统的软件或硬件。这意味着在Xen允许用户在一台计算机上同时运行的两个或两个以上的Linux系统。用户还可以运行Windows，Solaris，FreeBSD或其他操作系统在Linux系统上。）driver文件夹下还有许多其他的文件夹，但他们在这篇文章中无法一一列举，他们将在以后的文章中提到。

**firmware** - fireware中包含了让计算机读取和理解从设备发来的信号的代码。举例来说，一个摄像头管理它自己的硬件，但计算机必须了解摄像头给计算机发送的信号。Linux系统会使用vicam固件（firmware）来理解摄像头的通讯。否则，没有了固件，Linux系统将不知道如何处理摄像头发来的信息。另外，固件同样有助于将Linux系统发送消息给该设备。这样Linux系统可以告诉摄像头重新调整或关闭摄像头。

**fs** - 这是文件系统的文件夹。理解和使用的文件系统所需要的所有的代码就在这里。在这个文件夹里，每种文件系统都有自己的文件夹。例如，ext4文件系统的代码在ext4文件夹内。 在fs文件夹内，开发者会看到一些不在文件夹中的文件。这些文件用来控制整个文件系统。例如，mount.h中会包含挂载文件系统的代码。文件系统是以结构化的方式来存储和管理的存储设备上的文件和目录。每个文件系统都有自己的优点和缺点。这是由文件系统的设计决定的。举例来说，NTFS文件系统支持的透明压缩（当启用时，会在用户不知道的情况下自动压缩存储文件）。大多数文件系统缺乏此功能，但如果在fs文件夹里编入相应的文件，它们也有这种能力。

**include** - include包含了内核所需的各种头文件.这个名字来自于C语言用"include"来在编译时导入头文件。

**init** - init文件夹包含了内核启动的处理代码(INITiation)。main.c是内核的核心文件，这是用来衔接所有的其他文件的源代码主文件。

**ipc** - IPC代表进程间通讯。此文件夹中的代码是作为内核与进程之间的通信层。内核控制着硬件，因此程序只能请求内核来执行任务。假设用户有一个打开DVD托盘的程序。程序不直接打开托盘，相反，该程序通知内核托盘应该被打开。然后，内核给硬件发送一个信号去打开托盘。这些代码同样管理kill信号。举例来说，当系统管理员打开进程管理器去关闭一个已经锁死的程序，这个关闭程序的信号被称为kill信号。内核接收到信号，然后内核会要求程序停止或直接把进程从内存和CPU中移除（取决于kill的类型）。命令行中的管道同样用于进程间通信。管道会告诉内核在某个内存页上写入输出数据。程序或者命令得到的数据是来自内存页上的某个给定的指针。

**kernel** - 这个文件夹中的代码控制内核本身。例如，如果一个调试器需要跟踪问题，内核将使用这个文件夹中代码来将内核指令通知调试器跟踪内核进行的所有动作。这里也有跟踪时间的代码。在内核文件夹下有个"power"文件夹，这里的代码可以使计算机重新启动、关机和挂起。

**lib** - 这个文件夹包含了内核需要引用的一系列内核库文件代码。

**mm** - mm文件夹中包含了内存管理代码。内存并不是任意存储在RAM芯片上的。相反，内核小心地将数据放在RAM芯片上。内核不会覆盖任何正在使用或保存重要数据的内存区域。

**net** - net文件夹中包含了网络协议代码。这包括IPv6、AppleTalk、以太网、WiFi、蓝牙等的代码，此外处理网桥和DNS解析的代码也在net目录。

**samples** - 此文件夹包含了程序示例和正在编写中的模块代码。假设一个新的模块引入了一个想要的有用功能，但没有程序员说它已经可以正常运行在内核上。那么，这些模块就会移到这里。这给了新内核程序员一个机会通过这个文件夹来获得帮助，或者选择一个他们想要协助开发的模块。

**scripts** - 这个文件夹有内核编译所需的脚本。最好不要改变这个文件夹内的任何东西。否则，您可能无法配置或编译内核。

**security** - 这个文件夹是有关内核安全的代码。它对计算机免于受到病毒和黑客的侵害很重要。否则，Linux系统可能会遭到损坏。关于内核的安全性，将在以后的文章中讨论。

**sound** - 这个文件夹中包含了声卡驱动。

**tools** - 这个文件夹中包含了和内核交互的工具。

**usr** - 还记得在以前的文章中提到vmlinuz和其他类似的文件么？这个文件夹中的代码在内核编译完成后创建这些文件。

**virt** - 此文件夹包含了虚拟化代码，它允许用户一次运行多个操作系统。这与先前提到的Xen是不同的。通过虚拟化，客户机操作系统就像任何其他运行在Linux主机的应用程序一样运行。通过Xen这样的hypervisor(注:虚拟机管理程序)，两个操作系统可以同时管理硬件。在虚拟化中，在客户机操作系统上运行在Linux内核上，而在hypervisor中，它没有客户系统并且所有的系统不互相依赖。

提示: 绝不在内核源代码内移动文件，除非你知道你在做什么。否则，编译会由于缺失文件失败。

Linux内核的文件夹结构保持相对稳定。内核开发者会做一些修改，但总体来说，这些设置对整个内核版本都是一样。驱动程序文件夹的布局也基本保持一样。

via: <http://www.linux.org/threads/the-linux-kernel-the-source-code.4204/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


【观点】离了Linux，我就活不了！

Summary:
本文是为那些想要尝试Linux的用户所写，不过如果你已经是一名Linuxer，这里也有一些你应该知道并为之自豪的事实。
讨厌长篇大论？直接跳到最后的部分 所有内容的整理。
为什么我离不开Linux？
我坚持这样认为有我自  ...

# 【观点】离了Linux，我就活不了！

本文是为那些想要尝试Linux的用户所写，不过如果你已经是一名Linuxer，这里也有一些你应该知道并为之自豪的事实。

讨厌长篇大论？直接跳到最后的部分 “**所有内容的整理**”。

**为什么我离不开Linux？**
-----------------

我坚持这样认为有我自己的原因。每隔几天或几个月，我重启机器的时候，Linux的启动过程都令我陶醉，而你也许会惊奇大多数操作系统并不是这样的。

### **先想象一些场景：**

1. 你的机器经常崩溃。
2. 它慢的令人发指。
3. 未经你允许，文件文件夹就自动建立/删除。
4. 机器莫名其妙的关闭。

什么状况？真相只有一个！你中病毒了！而在Linux上，这样的情况几乎不会发生，甚至可以说"根本没有"。:)

### **为什么/那又如何?**

再想象一下，此时此刻，有成百上千个人正在为Linux编写和检查代码，因此Linux一直在不断的发展壮大，而几乎全世界任何开发者都可以看到“代码写的是什么？”，甚至指出是否哪里有缺陷。

>
> **1994年3月14日，Linux 1.0.0发布，那时它只有176250行代码。**
>
>
> **到了2013年，Linux 3.10发布时，它已经拥有15803499行代码。**
>
>
>

另外一件事，是Linux的设计方式。不像其它一些操作系统，在Linux上，几乎所有的复杂任务都需要root权限。例如在windows上，你进入某些系统文件夹，删除了一些东西（为什么你会这么做呢？恩，也可能是病毒干的 —— 它们确实会这么干。另外，我见过有些人为了释放内存也会这么做）。虽然当时什么都没发生，但是在你下一次启动时...（这里我不敢再往下描述了）。而在Linux上，任何时候当你试图对系统干点什么，它都会提示你需要root密码。那如果我就是root用户，而我又把系统搞砸了，怎么办？这是最坏的情况，但是仍然会有很多人指导你如何修复它。

>
> **当你在街上摔倒的时候，一群热心的陌生人跑过来帮助你，你会有什么感觉？爱和支持是无价的，你会感受的到！**
>
>
>

 <img src="content_image/album_201310_31_111238n7ocihnklo7jnroc.jpg" alt="" title="">

### **稳定性**

Linux机器可以无休止地运行下去。而通过一个简单的“uptime”命令就可以让你知道机器已经运行了多久。你永远不需要关机，设备基本上都是热插拔的。当然其它有的操作系统也可以报告运行时间，但是正如之前所说，Linux机器很少崩溃、蓝屏、死机:D，除非你有意要搞砸它。

老话说得好, “**Linux是很坚强的，除非，面对的是熊孩子！**”

为了使机器远离病毒、木马，你需要做很多工作。一项研究表明，（在没有任何防护措施的情况下，）连接到网络之后，windows被入侵的平均时间是40分钟，而在Linux上 - 你就像老板一样什么都不用做，也就是说，在操作系统之外不需要安装任何东西（，黑客也无法入侵）。

### **安全性增强**

Iptables。这个命令行工具用来设置防火墙是极好的。同样，还有许多其它创新工具，比如\*端口试探(port knocking)，chroot监狱（译者注：chroot是在unix系统的一个操作，用于改变当前程序及其子进程真实的磁盘根目录。改变根目录后的程序无法访问或命名正常路径下的文件。这样的根目录就叫做"chroot监狱（chroot jail,chroot prison)"——来自维基百科 ）。

### **SELinux**

如果设置执行了SELinux，即使你赋予某个文件完全访问权限，其他人也无法访问。

其它操作系统的源代码仅仅是开发操作系统的人才可以看到，然而，对于Linux，每个人都可以访问源代码，这意味着发生错误的可能性很小。即使有一些错误发生，也可以及时修复。假如你受到了安全攻击，开发操作系统的公司可能会用一周甚至一个月时间发布一个补丁，这就意味着你的系统在这段时间仍然是脆弱的，但是Linux有不计其数的用户贡献以及积极参与，这是非常好的，不是更好，而是最好。

如果，假设操作系统公司不修复bug呢？之后会怎么样？恭喜，你只能与bug为伴了。然而在linux下，有许多人修复bug，或者如果你是一个很好的程序员，也许你应该自己修复它并且将其贡献到开源社区。 **予人玫瑰，手留余香！**

当有这样一个免费且开源的优秀操作系统（Linux），为什么你还要花钱买一个呢？当你决定投奔开源，学习的机会将会非常多。如果你是一个好的程序员，你应该拿到开源代码，用你自己的方式构建它、设计它，按你自己的想法去使用它。

>
> **全世界的开发人员用宝贵的时间和天才的头脑为你带来这一款“谁与争锋”的操作系统，它，就是Linux。**
>
>
>

### **没有crapware**

（译者注： 附赠软件，是一个贬义的俚语） - 操作系统是开源的，那其它工具呢？没错，有非常多的工具也是开源的，可以供用户使用。而在其它操作统统中，大部分软件可能会要求你订购服务、升级/购买。更糟糕的是，在用了几天之后，你可能会发现这个玩意儿竟然只是30天的试用版。在这方面，Linux永远不会让你经历这样的沮丧。

>
> **Linux还自带了预装应用程序，这样，简单几步安装之后就可以开始使用啦~**
>
>
>

在linux上，大部分驱动是内核自带的，因此当使用一些硬件组件时你不必到处去寻找驱动程序。

如果你仅仅是一个普通的桌面用户，没有多少事情要用命令行(CLI)来做 - Linux拥有各种桌面环境供你选择，比如Gnome、KDE，没错，你可以称呼它为 "**新一代桌面环境**"

你有没有体验过你的操作系统在运行一段时间后行动迟缓，而你只能通过重新安装系统解决这个问题。恩，试试Linux吧，你会感到惊喜的。它很多年一如既往运行飞快并且反应灵敏，这样，你就能专注于工作，而不用处理反应迟缓的操作系统。

### **没有后门(backdoor)**

当你不了解一个操作系统的源代码时，你怎么能确保它没有后门呢？如果制造商公司留了一个隐秘的后门，当你连接到网络的时候，这会让你的隐私无所遁形。而在Linux上，任何东西都是开放的，因此没有后门可以隐藏在操作系统里。

这里还要谈另一个有趣的事：大部分使用windows的用户可能会有一个沮丧的事，就是当升级一些软件或者操作系统的时候需要重启机器。Linux不需要这样的重启。Linux是一个稳定的、完美运行多年也不需要重启的系统。

### **让老机器品味重生**

Linux甚至可以在很老的硬件上完美运行。不像其它的操作系统，需要升级硬件才能使用。

**所有内容的整理..**
-------------

有免费的，为什么还要使用非法的（盗版）

* 赋予老机器第二春
* 开机很快
* 随时更新
* 没有垃圾软件
* 没有后门
* 没有病毒
* 稳定性
* 兼容性
* 安全性能增强
* 运行快，反应灵敏
* Linux不需要碎片整理
* 额，选择Linux确实对环境有影响. (Google it)
* 自由无限的支持 - 论坛、邮件列表、IRC频道
* 工作区特性 - 下一代桌面
* 没有大麻烦
* 报告bug并得到修复
* 你不会感到孤单
* 我贡献，我快乐，予人玫瑰，手留余香
* 其它操作系统归公司所有，微软拥有Windows，苹果拥有Mac-OS。Linux？我们拥有！

总之,不仅仅是阅读这篇文章，你一定要亲自试试看，品味这种感觉 - 自由无价。

对我来说， **linuxing 是沉思**。 你呢？ :)

>
> **如果同意我的观点，cheers！现在是该把Linux（这杯美酒）“倾入”你的杯中慢慢“品味”了。**
>
>
> **如果不同意我的观点，再一次cheers。你可以用各种方法来证明我是错的。**
>
>
>

Google 一下"linuxing urban dictionary”（译者注：urban dictionary是一个专供网友发表一些特殊单词或短语解释的平台，这上面有许多正常词典里面查不到的词条，即使是正常词典里面有的，在这里也会有新的精辟解释。网友们还可以对每一个词条进行投票)。

感谢阅读。来，笑一个 :D Cheers！

via: <http://www.unixmen.com/cant-live-without-linux/>

译者：[flsf](https://github.com/flsf) 校对：[Caroline](https://github.com/carolinewuyan)，[Mr小眼儿](http://blog.csdn.net/tinyeyeser)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Summary:
妙趣横生的名称评选已经结束：Ubuntu 14.04 LTS的吉祥物最终敲定  可靠的塔尔羊(Trusty Tahr)。

有人可能会问，塔尔羊是个什么羊？万能的Google说，它是一种类似山羊的哺乳动物，分布于阿曼、印度以及喜马拉雅山脉  ...

# Ubuntu 14.04 LTS命名为“可靠的塔尔羊（Trusty Tahr）”

**妙趣横生的名称评选已经结束：Ubuntu 14.04 LTS的吉祥物最终敲定 —— “可靠的塔尔羊”(Trusty Tahr)。**

<img src="content_image/album_201310_30_1652343wc8lw8vlxwxb3jl.jpg" alt="" title="">

有人可能会问，“*塔尔羊是个什么……羊？*”万能的Google说，它是一种类似山羊的哺乳动物，分布于阿曼、印度以及喜马拉雅山脉地区。

Ubuntu创始人[Shuttleworth说](http://www.markshuttleworth.com/archives/1295)：这样一种“脚踏实地”的动物恰恰反应出Ubuntu 14.04 LTS的目标，构筑稳健的桌面环境，正如Ubuntu一直以来专注的“*……性能、精益求精、易于维护以及技术至上。*”

Ubuntu 14.04 LTS服务器版和桌面版计划于2014年4月份发布。

via: <http://www.omgubuntu.co.uk/2013/10/ubuntu-14-04-lts-named-trusty-tahr>

译者：[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Summary:
Linus Torvalds 和 Dirk Hohndel 在 Edinburgh举行的 LinuxCon Europe 大会主席台上
Linux创始人 Linus Torvalds 坐在了在Edinburgh举办的LinuxCon Europe大会主席台上，陪同他的是来自Intel公司linux主管和开源技术 ...

# Linus Torvalds 十句精彩语录 — 来自 LinuxCon Europe 大会

*Linus Torvalds 和 Dirk Hohndel 在 Edinburgh举行的 LinuxCon Europe 大会主席台上*

Linux创始人 Linus Torvalds 坐在了在Edinburgh举办的[LinuxCon Europe](http://events.linuxfoundation.org/events/linuxcon-europe)大会主席台上，陪同他的是来自Intel公司linux主管和开源技术专家 Dirk Hohndel，二人一起探讨linux的现在和未来，并且回答了来自社区的问题。讨论的话题很广泛，包括即将发布的3.12版内核， 内核维护者的理想性格，还有能让 Linus 熬夜去解决的一些问题，linux桌面游戏等等。

以下是linus的十句精彩语录， 来自大会上的主旨演讲, 按大会上发言时的顺序排列。

1、Linus 很满意当前内核版本三个月时间的发布周期，因为这样的话，开发者可以充分利用该时间段构建新的特性。即使他们错过了合并的窗口期， 等到下一次机会的到来，三个月的等待时间也不算很长， 他们也就不必急于提交代码了。

**“不必着急写代码，要确保代码运行正常且精心设计，不要担心期限问题。”**

2、快速变更的步调还允许开发人员快速合并他们的代码， 然后继续下一步。

**“开发者在注意力持续时间问题上，有点类似于迟钝的林地动物。”**

3、**“对于一个维护者来说，最重要的不在于你是不是一个优秀的工程师， 而在于你得负责任， 别人可以指望你, 7天的每一个24小时， 一年52个星期都是如此”。**

年轻的开发者想成为一名维护人员是比较困难的。要经过数年时间的观察期，让社区信任你， 注意到你确实坚守在这里。那即是说，只要你能证明自己是可信赖的，想成为一名维护者还是容易的，毕竟这是一份棘手的工作，必须时刻保持关注。

4、Dirk:“是什么让你熬夜?”

代码中的Bug，还有其他一些技术问题并不会让Linux太担忧。

**“技术上的东西，可以这么说，即使你做了蠢事，但都是可以解决的。”**

5、真正让Linus熬夜的是与开发进度有关的社交性问题。

**“有时候情绪来了，可能好几天都比较有压力。 我也有脾气， 这对我来说没什么…… 但是其他人倾向于陷入到问题里边。结果浪费好几周时间，而且这些问题都挺让人纠结的。”**

6、当提到说服大公司继续贡献内核代码并且使用开源软件， linus持进化论观点。他们要么从开源获益，要么就得承受经济上的损失。

**“我从事开源，因为有乐趣而且开源行得通…… 跟内核社区合作的公司会花费更少的时间并且使工作更有成效。”**

7、**“如果你的公司认为内核的微小改动可以带来竞争优势，你恐怕将会面临经济问题。最好还是考虑一下生产廉价的高质量的硬件好了。”**

*Linux 创始人 Linux Torvalds 回答现场观众的提问，2013 LinuxCon Europe大会。*

8、有关linux桌面版的现状，linus有几点要谈。linux桌面仍然可以改善。但是各个发行版之间的内讧已然是个问题。

**“我开始设计 Linux 时候就是想看到它在桌面上运行。我希望大家能更好的合作，一起设计一个真正漂亮的登录界面。”**

9、Linus认为 Valve’s Steam有助于linux桌面版的开发，这是个极好的机会。他们打算为运行游戏的Linux发行版制定一个标准。。

**“这是标准化的最好的模式。标准不是说人们就坐在烟雾弥漫的房间里，写啊写。能够带来市场效益才称得上成功。”**

10、针对多样性， linus说他希望看到内核社区的发展壮大， 有来自不同地区的更多的女性和开发者参与到其中。

**“女性太少了。但是我并不担心。过去我们就讨论过来自日本的开发者太少的问题。这是可以解决，只是时间问题。”**

via: <http://www.linuxfoundation.org/news-media/blogs/browse/2013/10/10-best-quotes-linus-torvalds-keynote-linuxcon-europe>

译者：[l3b2w1](https://github.com/l3b2w1) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：03 驱动程序

Summary: 驱动程序是使内核能够沟通和操作硬件或协议（规则和标准）的小程序。没有驱动程序，内核不知道如何与硬件沟通或者处理协议（内核实际上先发送指令给BIOS，然后BIOS传给硬件）。 Linux的内核代码在驱动程序文件夹中以 ...

# 戴文的Linux内核专题：03 驱动程序

驱动程序是使内核能够沟通和操作硬件或协议（规则和标准）的小程序。没有驱动程序，内核不知道如何与硬件沟通或者处理协议（内核实际上先发送指令给BIOS，然后BIOS传给硬件）。 Linux的内核代码在驱动程序文件夹中以源代码的形式包含了许多驱动程序。驱动文件夹中的每个文件夹会在下面说明。在配置和 编译内核时，这样有助于你了解驱动程序。否则，用户可能会在编译时加入不必要的或者漏掉重要的驱动。驱动代码通常会包含一个单行注释来指出驱动的目的。 比如，tc的驱动代码，有一行的注释说是用于TURBOchannel总线。由于这些文档，用户应该看驱动前几行的注释来了解它们的用途。

有几个术语你应该已经知道，所以下面的信息应该是明白的。一个I/O设备指的是输入/输出设备。例如调制解调器和网卡，他们发送和接收数据。监视器是一个输出设备 - 只有信息出来。键盘、鼠标和游戏杆是数据输入系统。存储设备用于存储数据，例如SD卡、硬盘、光盘、存储卡等。CPU（处理器）是计算机的“大脑”或“心脏” ，如果没有它，电脑就无法运作。主板则是一块连接板上不同组件的印刷线路板。主板及各个组件是计算机的运行的基础。许多计算机用户说主板是电脑的心脏（主板上有CPU）。主板包含了用于连接外设的端口，外设包括输入、输出和存储设备。总线是主板的电路，它连接着外设。网络设备用于两台或多台计算机之间的连接。端口则是用户可以插入另外一台设备或一根电缆的设备，例如，用户可以将插入一根火线记忆棒插入一个火线端口；将以太网电缆插入一个以太网端口。光碟的读取是利用激光，从可以散射或反射的激光的反射面上读出数据，一个常见的 光盘是DVD。许多系统说自己是32位或者64位，这指的是寄存器、地址总线或数据总线的位数。例如，在一块64位的主板上，数据总线（组件之间的银线）有64根并排到目的的线。存储器地址以位(0和1)的形式在存储器中编址，因此，一个32位存储地址包含32个0和1来表示存储器上的某处地址。

<img src="content_image/album_201310_31_1415051ljx2nuhpvnulnvm.png" alt="" title="">

许多驱动程序是通用驱动程序，这意味着一个通用键盘驱动可以使内核可以处理几乎所有的键盘。然而，有些驱动是专用驱动，像苹果和Commodore就分别为苹果电脑和Amiga系统制造了专门的硬件。Linux内核中已经包含了许多诸如智能手机、苹果、Amiga系统、PS3、Android平板，和许多其他设备的驱动程序。

注意有些设备的驱动不在本目录中。比如，射频驱动在net和media文件夹下。

**accessibility** - 这些驱动提供支持一些辅助设备。在Linux 3.9.4中，这个文件夹中只有一个驱动就是盲文设备驱动。

**acpi** - 高级配置和电源接口（ACPI : Advanced Configuration and Power Interface）驱动用来管理电源使用。

**amba** - 高级微控制器总线架构（AMBA : Advanced Microcontroller Bus Architecture）是与片上系统（SoC）的管理和互连的协议。SoC是一块包含许多或所有必要的计算机组件的芯片。这里的AMBA驱动让内核能够运行在这上面。

**ata** - 该目录包含PATA和SATA设备的驱动程序。串行ATA（SATA）是一种连接主机总线适配器到像硬盘那样的存储器的计算机总线接口。并行ATA（PATA）用于连接存储设备，如硬盘驱动器，软盘驱动器，光盘驱动器的标准。PATA就是我们所说的IDE。

**atm** - 异步通信模式(ATM : Asynchronous Transfer Mode)是一种通信标准。这里有各种接到PCI桥的驱动(他们连接到PCI总线)和以太网控制器(控制以太网通信的集成电路芯片)。

**auxdisplay** - 这个文件夹提供了三个驱动。LCD 帧缓存（framebuffer）驱动、LCD控制器驱动和一个LCD驱动。这些驱动用于管理液晶显示器 —— 液晶显示器会在按压时显示波纹。注意:按压会损害屏幕,所以请不要用力戳LCD显示屏。

**base** - 这是个重要的目录包含了固件、系统总线、虚拟化能力等基本的驱动。

**bcma** - 这些驱动用于使用基于AMBA协议的总线。AMBA是由博通公司开发。

**block** - 这些驱动提供对块设备的支持，像软驱、SCSI磁带、TCP网络块设备等等。

**bluetooth** - 蓝牙是一种安全的无线个人区域网络标准(PANs)。蓝牙驱动就在这个文件夹，它允许系统使用各种蓝牙设备。例如，一个蓝牙鼠标不用电缆，并且计算机有一个电子狗(小型USB接收器)。Linux系统必须能够知道进入电子狗的信号，否则蓝牙设备无法工作。

**bus** - 这个目录包含了三个驱动。一个转换ocp接口协议到scp协议。一个是设备间的互联驱动，第三个是用于处理互联中的错误处理。

**cdrom** - 这个目录包含两个驱动。一个是cd-rom，包括DVD和CD的读写。第二个是gd-rom(只读GB光盘)，GD光盘是1.2GB容量的光盘，这像一个更大的CD或者更小的DVD。GD通常用于世嘉游戏机中。

**char** - 字符设备驱动就在这里。字符设备每次传输数据传输一个字符。这个文件夹里的驱动包括打印机、PS3闪存驱动、东芝SMM驱动和随机数发生器驱动等。

**clk** - 这些驱动用于系统时钟。

**clocksource** - 这些驱动用于作为定时器的时钟。

**connector** - 这些驱动使内核知道当进程fork并使用proc连接器更改UID(用户ID)、GID(组ID)和SID(会话ID)。内核需要知道什么时候进程fork(CPU中运行多个任务)并执行。否则,内核可能会低效管理资源。

**cpufreq** - 这些驱动改变CPU的电源能耗。

**cpuidle** - 这些驱动用来管理空闲的CPU。一些系统使用多个CPU，其中一个驱动可以让这些CPU负载相当。

**crypto** - 这些驱动提供加密功能。

**dca** - 直接缓存访问（DCA ： Direct Cache Access）驱动允许内核访问CPU缓存。CPU缓存就像CPU内置的RAM。CPU缓存的速度比RAM更快。然而,CPU缓存的容量比RAM小得多。CPU在这个缓存系统上存储了最重要的和执行的代码。

**devfreq** - 这个驱动程序提供了一个通用的动态电压和频率调整(DVFS ： Generic Dynamic Voltage and Frequency Scaling)框架，可以根据需要改变CPU频率来节约能源。这就是所谓的CPU节能。

**dio** - 数字输入/输出（DIO ：Digital Input/Output）总线驱动允许内核可以使用DIO总线。

**dma** - 直接内存访问(DMA)驱动允许设备无需CPU直接访问内存。这减少了CPU的负载。

**edac** - 错误检测和校正（ Error Detection And Correction）驱动帮助减少和纠正错误。

**eisa** - 扩展工业标准结构总线（Extended Industry Standard Architecture）驱动提供内核对EISA总线的支持。

**extcon** - 外部连接器（EXTernal CONnectors）驱动用于检测设备插入时的变化。例如，extcon会检测用户是否插入了USB驱动器。

**firewire** - 这些驱动用于控制苹果制造的类似于USB的火线设备。

**firmware** - 这些驱动用于和像BIOS(计算机的基本输入输出系统固件)这样的设备的固件通信。BIOS用于启动操作系统和控制硬件与设备的固件。一些BIOS允许用户超频CPU。超频是使CPU运行在一个更快的速度。CPU速度以MHz(百万赫兹)或GHz衡量。一个3.7 GHz的CPU的的速度明显快于一个700Mhz的处理器。

**gpio** - 通用输入/输出(GPIO ：General Purpose Input/Output)是可由用户控制行为的芯片的管脚。这里的驱动就是控制GPIO。

**gpu** - 这些驱动控制VGA、GPU和直接渲染管理(DRM ：Direct Rendering Manager )。VGA是640\*480的模拟计算机显示器或是简化的分辨率标准。GPU是图形处理器。DRM是一个Unix渲染系统。

**hid** - 这驱动用于对USB人机界面设备的支持。

**hsi** - 这个驱动用于内核访问像Nokia N900这样的蜂窝式调制解调器。

**hv** - 这个驱动用于提供Linux中的键值对(KVP ：Key Value Pair)功能。

**hwmon** - 硬件监控驱动用于内核读取硬件传感器上的信息。比如，CPU上有个温度传感器。那么内核就可以追踪温度的变化并相应地调节风扇的速度。

**hwspinlock** - 硬件转锁驱动允许系统同时使用两个或者更多的处理器，或使用一个处理器上的两个或更多的核心。

**i2c** - I2C驱动可以使计算机用I2C协议处理主板上的低速外设。系统管理总线(SMBus ：System Management Bus)驱动管理SMBus,这是一种用于轻量级通信的two-wire总线。

**ide** - 这些驱动用来处理像CDROM和硬盘这些PATA/IDE设备。

**idle** - 这个驱动用来管理Intel处理器的空闲功能。

**iio** - 工业I/O核心驱动程序用来处理数模转换器或模数转换器。

**infiniband** - Infiniband是在企业数据中心和一些超级计算机中使用的一种高性能的端口。这个目录中的驱动用来支持Infiniband硬件。

**input** - 这里包含了很多驱动，这些驱动都用于输入处理，包括游戏杆、鼠标、键盘、游戏端口（旧式的游戏杆接口）、遥控器、触控、耳麦按钮和许多其他的驱动。如今的操纵杆使用USB端口，但是在上世纪80、90年代，操纵杆是插在游戏端口的。

**iommu** - 输入/输出内存管理单元(IOMMU ：Input/Output Memory Management Unit)驱动用来管理内存管理单元中的IOMMU。IOMMU连接DMA IO总线到内存上。IOMMU是设备在没有CPU帮助下直接访问内存的桥梁。这有助于减少处理器的负载。

**ipack** - Ipack代表的是IndustryPack。 这个驱动是一个虚拟总线,允许在载体和夹板之间操作。

**irqchip** - 这些驱动程序允许硬件的中断请求(IRQ)发送到处理器，暂时挂起一个正在运行的程序而去运行一个特殊的程序（称为一个中断处理程序）。

**isdn** - 这些驱动用于支持综合业务数字网(ISDN)，这是用于同步数字传输语音、视频、数据和其他网络服务使用传统电话网络的电路的通信标准。

**leds** - 用于LED的驱动。

**lguest** - lguest用于管理客户机系统的中断。中断是CPU被重要任务打断的硬件或软件信号。CPU接着给硬件或软件一些处理资源。

**macintosh** - 苹果设备的驱动在这个文件夹里。

**mailbox** - 这个文件夹(pl320-pci)中的驱动用于管理邮箱系统的连接。

**md** - 多设备驱动用于支持磁盘阵列，一种多块硬盘间共享或复制数据的系统。

**media** - 媒体驱动提供了对收音机、调谐器、视频捕捉卡、DVB标准的数字电视等等的支持。驱动还提供了对不同通过USB或火线端口插入的多媒体设备的支持。

**memory** - 支持内存的重要驱动。

**memstick** - 这个驱动用于支持Sony记忆棒。

**message** - 这些驱动用于运行LSI Fusion MPT(一种消息传递技术)固件的LSI PCI芯片/适配器。LSI大规模集成，这代表每片芯片上集成了几万晶体管、

**mfd** - 多用途设备(MFD)驱动提供了对可以提供诸如电子邮件、传真、复印机、扫描仪、打印机功能的多用途设备的支持。这里的驱动还给MFD设备提供了一个通用多媒体通信端口(MCP)层。

**misc** - 这个目录包含了不适合在其他目录的各种驱动。就像光线传感器驱动。

**mmc** - MMC卡驱动用于处理用于MMC标准的闪存卡。

**mtd** - 内存技术设备(MTD ：Memory technology devices)驱动程序用于Linux和闪存的交互，这就就像一层闪存转换层。其他块设备和字符设备的驱动程序不会以闪存设备的操作方式来做映射。尽管USB记忆卡和SD卡是闪存设备，但它们不使用这个驱动，因为他们隐藏在系统的块设备接口后。这个驱动用于新型闪存设备的通用闪存驱动器驱动。

**net** - 网络驱动提供像AppleTalk、TCP和其他的网络协议。这些驱动也提供对调制解调器、USB 2.0的网络设备、和射频设备的支持。

**nfc** - 这个驱动是德州仪器的共享传输层之间的接口和NCI核心。

**ntb** - 不透明的桥接驱动提供了在PCIe系统的不透明桥接。PCIe是一种高速扩展总线标准。

**nubus** - NuBus是一种32位并行计算总线。用于支持苹果设备。

**of** - 此驱动程序提供设备树中创建、访问和解释程序的OF助手。设备树是一种数据结构，用于描述硬件。

**oprofile** - 这个驱动用于从驱动到用户空间进程(运行在用户态下的应用)评测整个系统。这帮助开发人员找到性能问题

**parisc** - 这些驱动用于HP生产的PA-RISC架构设备。PA-RISC是一种特殊指令集的处理器。

**parport** - 并口驱动提供了Linux下的并口支持。

**pci** - 这些驱动提供了PCI总线服务。

**pcmcia** - 这些是笔记本的pc卡驱动

**pinctrl** - 这些驱动用来处理引脚控制设备。引脚控制器可以禁用或启用I/O设备。

**platform** -这个文件夹包含了不同的计算机平台的驱动像Acer、Dell、Toshiba、IBM、Intel、Chrombooks等等。

**pnp** - 即插即用驱动允许用户在插入一个像USB的设备后可以立即使用而不必手动配置设备。

**power** - 电源驱动使内核可以测量电池电量，检测充电器和进行电源管理。

**pps** - Pulse-Per-Second驱动用来控制电流脉冲速率。这用于计时。

**ps3** - 这是Sony的游戏控制台驱动- PlayStation3。

**ptp** - 图片传输协议(PTP)驱动支持一种从数码相机中传输图片的协议。

**pwm** - 脉宽调制(PWM)驱动用于控制设备的电流脉冲。主要用于控制像CPU风扇。

**rapidio** - RapidIO驱动用于管理RapidIO架构，它是一种高性能分组交换，用于电路板上交互芯片的交互技术，也用于互相使用底板的电路板。

**regulator** - 校准驱动用于校准电流、温度、或其他可能系统存在的校准硬件。

**remoteproc** - 这些驱动用来管理远程处理器。

**rpmsg** - 这个驱动用来控制支持大量驱动的远程处理器通讯总线(rpmsg)。这些总线提供消息传递设施,促进客户端驱动程序编写自己的连接协议消息。

**rtc** - 实时时钟(RTC)驱动使内核可以读取时钟。

**s390** - 用于31/32位的大型机架构的驱动。

**sbus** - 用于管理基于SPARC的总线驱动。

**scsi** - 允许内核使用SCSI标准外围设备。例如,Linux将在与SCSI硬件传输数据时使用SCSI驱动。

**sfi** -简单固件接口(SFI)驱动允许固件发送信息表给操作系统。这些表的数据称为SFI表。

**sh** - 该驱动用于支持SuperHway总线。

**sn** - 该驱动用于支持IOC3串口。

**spi** - 这些驱动处理串行设备接口总线(SPI)，它是一个在在全双工下运行的同步串行数据链路标准,。全双工是指两个设备可以同一时间同时发送和接收信息。双工指的是双向通信。设备在主/从模式下通信(取决于设备配置)。

**ssb** - ssb(Sonics Silicon Backplane)驱动提供对在不同博通芯片和嵌入式设备上使用的迷你总线的支持。

**staging** - 该目录含有许多子目录。这里所有的驱动还需要在加入主内核前经过更多的开发工作。

**target** - SCSI设备驱动

**tc** - 这些驱动用于TURBOchannel，TURBOchannel是数字设备公司开发的32位开放总线。这主要用于DEC工作站。

**thermal** - thermal驱动使CPU保持较低温度。

**tty** - tty驱动用于管理物理终端连接。

**uio** - 该驱动允许用户编译运行在用户空间而不是内核空间的驱动。这使用户驱动不会导致内核崩溃。

**usb** - USB设备允许内核使用USB端口。闪存驱动和记忆卡已经包含了固件和控制器,所以这些驱动程序允许内核使用USB接口和与USB设备。

**uwb** - Ultra-WideBand驱动用来管理短距离，高带宽通信的超低功耗的射频设备

**vfio** - 允许设备访问用户空间的VFIO驱动。

**vhost** - 这是用于宿主内核中的virtio服务器驱动。用于虚拟化中。

**video** - 这是用来管理显卡和监视器的视频驱动。

**virt** - 这些驱动用来虚拟化。

**virtio** - 这个驱动用来在虚拟PCI设备上使用virtio设备。用于虚拟化中。

**vlynq** - 这个驱动控制着由德州仪器开发的专有接口。这些都是宽带产品，像WLAN和调制解调器，VOIP处理器，音频和数字媒体信号处理芯片。

**vme** - WMEbus最初是为摩托罗拉68000系列处理器开发的总线标准

**w1** - 这些驱动用来控制one-wire总线。

**watchdog** - 该驱动管理看门狗定时器，这是一个可以用来检测和恢复异常的定时器。

**xen** - 该驱动是Xen管理程序系统。这是个允许用户运行多个操作系统在一台计算机的软件或硬件。这意味着xen的代码将允许用户在同一时间的一台计算机上运行两个或更多的Linux系统。用户也可以在Linux上运行Windows、Solaris、FreeBSD、或其他操作系统。

**zorro** - 该驱动提供Zorro Amiga总线支持。

via: <http://www.linux.org/threads/the-linux-kernel-drivers.4205/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何在手机上安装Ubuntu Touch 13.10

Summary:
Ubuntu Touch 13.10是Canonical公司针对手机新推出的一款操作系统，但是相对于桌面而言，它安装到手机并不是那么容易。

Canonical提供了安装Ubuntu Touch 13.10所有必要的工具。这真是个好消息，因为手动安装操作系 ...

# 如何在手机上安装Ubuntu Touch 13.10

**Ubuntu Touch 13.10是Canonical公司针对手机新推出的一款操作系统，但是相对于桌面而言，它安装到手机并不是那么容易。**

 <img src="content_image/album_201311_01_21583585nka5zqnkjz8jjr.jpg" alt="" title="">

Canonical提供了安装Ubuntu Touch 13.10所有必要的工具。这真是个好消息，因为手动安装操作系统可是相当麻烦的。

首先提醒，此操作系统并非任何手机都能使用。因开发原因，Canonical限制其只能使用在Nexus 4设备上（代号金枪鱼和灰鲭鲨） ，而且手机必须已被解锁。

要安装工具，你将需要在终端输入几个简单的命令：

sudo add-apt-repository ppa:phablet-team/tools

sudo apt-get update

sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot

用户还必须确保他们的手机已被设置成开发使用。进入“设置项/关于手机”，点击“软件版本”7次。如果你操作正确，将会收到一条提示消息。

你必须从新菜单——“开发者选项”中启用USB调试，该菜单通过前面的方法已被解锁。在手机上勾选该选项时，会出现一条消息，通知用户正在配对。同意，那么你准备得差不多了。

在开始安装前的最后一步是备份你的Android系统。同样使用adb工具。只要打开终端，输入以下命令：

adb backup -apk -shared -all

如果你要重新安装原来的Android系统，打开一个终端，运行以下命令：

adb restore backup.ab

最后的命令至关重要，你应该使用sudo运行，以确保正确执行该命令。打开一个终端，输入以下命令：

sudo phablet-flash ubuntu-system --no-backup

运行过程中应该没有任何问题，设备将最终引导到Ubuntu Touch。不要停止终端也不要中断此过程。

以上就是你需要遵照的简单步骤，这样，在所支持的设备上运作应该没有任何问题了。

来源于: <http://news.softpedia.com/news/How-to-Install-Ubuntu-Touch-13-10-On-Your-Phone-392828.shtml>

译者：[coolpigs](https://github.com/coolpigs) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：04 安全

Summary: Linux内核是所有Linux系统的核心。如果有任何恶意代码控制或破害了内核的任何一部分，那么系统会严重受损，文件可能被删除或损坏，私人信息可能被盗等等。很明显，保持内核安全涉及到用户的最大利益。值得庆幸的是， ...

# 戴文的Linux内核专题：04 安全

Linux内核是所有Linux系统的核心。如果有任何恶意代码控制或破害了内核的任何一部分，那么系统会严重受损，文件可能被删除或损坏，私人信息可能被盗等等。很明显，保持内核安全涉及到用户的最大利益。值得庆幸的是，由于Linux内核极其安全，Linux是一个非常安全的系统。在用户比例上，Linux病毒比Windows病毒更少，并且Linux用户比Windows用户个人更少感染病毒。(这就是为什么许多公司使用Linux来管理他们的服务器的一个原因。) 然而，我们仍然没有借口去忽视内核的安全。Linux有几个安全特性和程序，但本文只讨论Linux安全模块(LSM)及其它的内核安全特性。

<img src="content_image/album_201311_01_2129441cozlhnrh18hyby1.jpg" alt="" title="">

AppArmor（应用盔甲）最初是由Immunix写的安全模块。自从2009年以来，Canonical维护着这些代码（Novell在Immunix之后，Canonical以前管理这些代码）。这个安全模块已经从2.6.36版本进入Linux主分支之中。AppArmor限制了程序的能力。AppArmor使用文件路径来跟踪程序限制。许多Linux管理员称AppArmor是最容易配置的安全模块。然而，而许多Linux用户觉得这个模块与其它的替代品相比很糟糕。

安全增强Linux(SELinux)是AppArmor的替代品，它最初由美国国家安全局开发（NSA）。SELinux自从2.6版本就进入内核主分支中。SELinux是限制修改内核和用户空间的工具。SELinux给可执行文件(主要是守护进程和服务端程序)最小特权去完成它们的任务。SELinux也可以用来控制用户权限。SELinux不像AppArmor那样使用文件路径，而SELinux在追踪权限时使用文件系统去标记可执行文件。因为SElinux本身使用文件系统管理可执行文件，所以SELinux不能像AppArmor那样对整个文件系统提供保护。

注意：守护进程是在后台运行的程序

注意：虽然在内核中有AppArmor、SELinux及其它安全模块，但只能有一个安全模块被激活。

Smack是安全模块的另一种选择。Smack从2.6.25起进入内核主分支。Smack应能比AppArmor更安全，但比SELinux更容易配置。

TOMOYO，是另外一个安全模块，在2.6.30进入内核主分支。TOMOYO可以提供安全防护，但是它的主要用途是分析系统安全缺陷。

AppArmor、SELinux、Smack和TOMYO组成了四个标准Linux安全模块。这些都通过使用强制访问控制(MAC ： mandatory access control)工作，这种访问控制是通过限制程序或者用户执行一些任务来实现的。安全模块还有某些形式的列表规定了它们可以做什么不可以做什么。

Yama在Linux内核中一个新安全模块。Yama还没有作为标准的安全模块，但是在将来他会成为第5个标准安全模块。Yama和其他安全模块一样使用相同的机制。

“grsecurity”是一系列Linux内核安全补丁的集合。多数补丁用于处理远程网络连接和缓冲区溢出的安全问题(以后讨论)。grsecurity中有一个叫PaX的有趣组件。PaX补丁允许内存里的代码使用最少的所需权限。例如，存储程序的内存段被标为不可写。想想看，为什么一个可执行的程序需要在内存中是可写的？通过这个补丁，恶意代码就不能修改目前正在执行的程序。缓冲区溢出是一种当程序由于bug或者恶意代码在内存上写入数据，并让它的内存边界超出到其他程序的内存页上的安全事件。当Pax被激活时，它会帮助阻止这些缓冲区溢出，因为程序没有写到其他内存页上的权限了。

Linux入侵检测系统(LIDS)是一个内核安全补丁，提供了强制访问控制(MAC)的特性。这个补丁就像扮演LSM模块的角色。

Systrace是一个减少和控制应用程序访问系统文件和系统调用的工具。系统调用是对内核的服务请求。比如，当一个文本编辑器写入一个文件到硬盘上时，程序将会发送一个系统请求让内核写入文件到硬盘中。

这些是在Linux安全系统中非常重要的组件。这些安全模块和补丁使内核免于受到恶意代码的攻击。没有这些特性，Linux系统将会变成一个不安全的操作系统。

via: <http://www.linux.org/threads/the-linux-kernel-security.4223/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


每日Ubuntu小技巧——怎样修改你的计算机名字

Summary:
本文又是一篇为Ubuntu新用户和新手准备的文章，将会指导你怎样在使用Ubuntu时轻松更改你的计算机名字，许多用户从来不会考虑在Ubuntu更改计算机名字或者主机名，那是他们最不用考虑担心的事情。
许多用户会使用安装U ...

# 每日Ubuntu小技巧——怎样修改你的计算机名字

本文又是一篇为Ubuntu新用户和新手准备的文章，将会指导你怎样在使用Ubuntu时轻松更改你的计算机名字，许多用户从来不会考虑在Ubuntu更改计算机名字或者主机名，那是他们最不用考虑担心的事情。

许多用户会使用安装Ubuntu过程中创建或设定的名字，但是对于想要知道怎么更改名字的新用户，可以继续接下来的学习。本文不是为Ubuntu专家所准备，是为那些刚刚开始使用Ubuntu的初学者用户。

那么，为什么你又想要更改你的计算机名字？如果除了想要学习怎样操作，你没有一个好的理由，那么就不要学了，反之，如果你有一个好的理由或者想要学习怎样操作，那么请继续。

按下 **Ctrl - Alt - T** 组合键，打开终端。 当终端打开，输入下列命令，使用gedit编辑hostname文件

sudo gedit /etc/hostname

接下来，无论旧的计算机名字是什么，换一个新的吧。例如，如果你想要你的计算机名字为“RDOMNU”，先删除文件内容，输入 **RDOMNU**，然后保存文件。

然后，再输入下列命令来打开hosts文件

sudo gedit /etc/hosts

更改第二行箭头标记位置的值，使它与你刚才输入的计算机名字相符，完成后保存文件。

<img src="content_image/album_201311_01_214427mqfjemuxqhxnuxue.png" alt="" title="">

就是这样！重启你的计算机，然后你的机器将会显示新的名字。这就是怎么改变Ubuntu机器的名字。

试一试吧！

via: <http://www.liberiangeek.net/2013/10/daily-ubuntu-tips-change-computer-name/>

译者：[Vic\_\_\_](https://blog.csdn.net/Vic___) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


可靠的塔尔羊(Trusty Tahr)daily builds版本现已提供下载

Summary:
前段时间，Canonical发布了功能强大、高质量的Ubuntu13.10，为广大用户、开发者和公司提供了快速、灵活、强劲的使用体验。
13.10的发布刚刚过去没多久，近日，Ubuntu社区开发者宣布，可靠的塔尔羊(Trusty Tahr)官方  ...

# 可靠的塔尔羊(Trusty Tahr)daily builds版本现已提供下载

前段时间，Canonical发布了功能强大、高质量的Ubuntu13.10，为广大用户、开发者和公司提供了快速、灵活、强劲的使用体验。

13.10的发布刚刚过去没多久，近日，Ubuntu社区开发者[宣布](http://iloveubuntu.net/trusty-tahr-open-development)，**可靠的塔尔羊(Trusty Tahr)**官方**开发已经开放**，同时开始的还有LTS软件包的开发。

除此以外，Trusty的daily builds版已经出现，可安装的镜像内封装了Ubuntu14.04 LTS新的开发重点。

 <img src="content_image/album_201311_01_220403rlflmrw41tl9l47j.jpg" alt="" title="">

尽管目前Trusty的daily builds版和Ubuntu13.10没有什么太大区别，但是从项目最开始，Trusty就表现出了格外的开发活性，而且Trusty是一个LTS（长期支持）版本，因此，根据传统，与标准版相比，官方提供的Trusty其实是一个更加稳定的Ubuntu版本。

可靠的塔尔羊(Trusty Tahr)daily builds版的下载地址：<http://cdimage.ubuntu.com/daily-live/current/>

via: <http://iloveubuntu.net/trusty-tahr-daily-builds-available-download>

译者：[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在Ubuntu 13.10 下安装支持SSL的Apache

Summary:
通过这个简短的教程，让我来指导你如何安装支持SSL的Apache。以下是我的试验机的详细说明:
系统信息
root@ubuntu-unixmen:~# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:b8:b4:87
inet addr:10.1.1.110 Bca ...

# 在Ubuntu 13.10 下安装支持SSL的Apache

通过这个简短的教程，让我来指导你如何安装支持SSL的Apache。以下是我的试验机的详细说明:

### **系统信息**

```
root@ubuntu-unixmen:~# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:b8:b4:87
inet addr:10.1.1.110 Bcast:10.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feb8:b487/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1738 errors:0 dropped:0 overruns:0 frame:0
TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:168845 (168.8 KB) TX bytes:9767 (9.7 KB)
```

-

```
root@ubuntu-unixmen:~# cat /etc/issue
Ubuntu 13.10 \n \l
```

### **安装apache**

运行如下命令：

```
$ sudo apt-get install apache2 apache2-doc apache2-utils
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
```

### **apache测试页面**

打开浏览器,转到http://你的测试机的IP地址/。你应该会看到类似以下的信息。

### **创建目录**

创建一个名为**ssl**的目录

```
$ sudo mkdir /etc/apache2/ssl
```

### **创建一个自签名凭证**

```
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Generating a 2048 bit RSA private key.......................................................................................+++....................................+++writing new private key to '/etc/apache2/ssl/apache.key'-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:
```

### **开启Apache SSL模块**

运行以下命令开启ssl模块

```
$ a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl
```

编辑 **/etc/apache2/sites-enabled/default-ssl.conf** 文件，

```
ServerAdmin webmaster@localhost
ServerName www.unixmen.com:443

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
```

### **启用Apache缺省的SSL虚拟主机:**

```
$ a2ensite default-ssl
Enabling site default-ssl.
To activate the new configuration, you need to run:
service apache2 reload
```

### **重启Apache:**

```
$ sudo service apache2 restart
```

### **测试SSL连接**

打开浏览器，转到**https://你的测试机IP**。

 <img src="content_image/album_201311_02_190707rmnzorkgktmonhoi.png" alt="" title="">

安装完成，尽情享用！

via: <http://www.unixmen.com/install-apache-ssl-ubuntu-13-10/>

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：05 配置内核 (1)

Summary: 现在我们已经了解了内核，现在我们可以进入主要工作：配置并编译内核代码。配置内核代码并不会花费太长时间。配置工具会询问许多问题并且允许开发者配置内核的每个方面。如果你有不确定的问题或者特性，你最好使用配 ...

# 戴文的Linux内核专题：05 配置内核 (1)

现在我们已经了解了内核，现在我们可以进入主要工作：配置并编译内核代码。配置内核代码并不会花费太长时间。配置工具会询问许多问题并且允许开发者配置内核的每个方面。如果你有不确定的问题或者特性，你最好使用配置工具提供的默认值。本系列教程会使读者逐步了解配置内核的整个过程。

<img src="content_image/album_201311_02_203448c2j220ej2htvre0x.jpg" alt="" title="">

配置代码前需要在源文件的文件夹内打开一个终端。当终端打开后，基于你喜好的配置界面，这里有几种不同的配置方法：

* make config - 纯文本界面 (最常用的选择)。
* make menuconfig - 基于文本彩色菜单和单选列表。这个选项可以加快开发者开发速度。需要安装ncurses(ncurses-devel)。
* make nconfig - 基于文本的彩色菜单。需要安装curses (libcdk5-dev)。
* make xconfig - QT/X-windows 界面。需要安装QT。
* make gconfig - Gtk/X-windows 界面。需要安装GTK。
* make oldconfig - 纯文本界面，但是其默认的问题是基于已有的本地配置文件。
* make silentoldconfig - 和oldconfig相似，但是不会显示配置文件中已有的问题的回答。
* make olddefconfig -和silentoldconfig相似，但有些问题已经以它们的默认值选择。
* make defconfig - 这个选项将会创建一份以当前系统架构为基础的默认设置文件。
* make ${PLATFORM}*defconfig - 创建一份使用arch/$ARCH/configs/${PLATFORM}*defconfig中的值的配置文件。
* make allyesconfig - 这个选项将会创建一份尽可能多的问题回答都为‘yes’的配置文件。
* make allmodconfig - 这个选项将会创建一份将尽可能多的内核部分配置为模块的配置文件。

>
> 注意：内核代码可以放进内核自身，也可以成为一个模块。例如，用户可以将蓝牙驱动作为一个模块加入(独立于内核)，或者直接放到内核栗，或者完全不加蓝牙驱动。当代码放到内核本身时，内核将会请求更多的内存并且启动会花费更长的时间。然而，内核会执行的更好。如果代码作为模块加入，代码将会一直存在于硬盘上直到被需要时加载。接着模块被加载到内存中。这可以减少内核的内存使用并减少启动的时间。然而，因为内核和模块在内存上相互独立所以会影响内核的性能。另一种选择是不添加一些代码。举例来说，内核开发人员假如知道系统永远都不会使用蓝牙设备，因此这个驱动就可以不加到内核中。这提升了内核的性能。然而，如果用户之后需要蓝牙设备，那么他么需要安装蓝牙模块或者升级内核才行。
>
>
>

* make allnoconfig - 这个选项只会生成内核所必要代码的配置文件。它对尽可能多的问题都回答no。这有时会导致内核无法工作在为编译该内核的硬件上。
* make randconfig - 这个选项会对内核选项随机选择（译注：这是做什么用途的？！）。
* make localmodconfig - 这个选项会根据当前已加载模块列表和系统配置来生成配置文件。
* make localyesconfig - 将所有可装载模块（LKM）都编译进内核(译者注：这里与原文 ‘This will set all module options to yes - most (or all) of the kernel will not be in modules’的意思不同，作者也作出了解释：[http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-1.4274/#post-13307)&#12290](http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-1.4274/#post-13307)&%2312290);

贴士：最好使用“make menuconfig”，因为用户可以保存进度。“make config”不会提供这样的便利，因为配置过程会耗费大量时间。

### **配置:**

大多数开发者选择使用“make menucongfig”或者其他图形菜单之一。当键入上述配置命令后，第一个问题，是受否将内核编译成64位。选项有“Y”、“n”和“?”。问号用来解释这个问题，“n”代表这个问题回答否(no),"Y"代表这个问题回答是(yes)。在这个教程里，我选择是。 这里我输入"Y"(这里是大小写敏感的)并输入回车。

注意：当内核在32位系统上编译时，编译工具会询问内核是否编译成32位。第一个问题在不同的处理器上不一样。

下一行显示的是"Cross-compiler tool prefix (CROSS\_COMPILE) []"（交叉编译器工具前缀）。如果你不是做交叉编译就直接按下回车。如果你正在交叉编译，对ARM系统输入像"arm-unknown-linux-gnu-"，对64位PC输入像"x86\_64-pc-linux-gnu-"的字样。对其他处理器而言还有许多其他可能的命令，但是这个表太大了。一旦一名开发者知道他们想要支持的处理器，很容易就可研究出处理器需要的命令。

注意：交叉编译是为别的处理器编译代码。比如，一台Intel系统正编译着不在Intel处理器上运行的程序，比如，这个系统可能正在编译着要在ARM或AMD处理器上运行的代码。

注意：每一项选择会改变接下来显示什么问题及何时显示。我会(在教程里)包含上我的选择让读者可以在他们自己的系统上跟上配置的进度。

接下来,用户会看到“Local version - append to kernel release (LOCALVERSION) []”（本地版本号，附加到内核版本号后面）。这使开发人员可以给定一个特殊版本号或命名他们自定义的内核。我将输入“LinuxDotOrg”，这样，内核版本会显示为“3.9.4-LinuxDotOrg”。接下来，配置工具会询问“Automatically append version information to the version string (LOCALVERSION\_AUTO) [N/y/?]”（是否自动添加版本信息到版本号后）。如果本地有一个git版本库，git的修订号会被添加到版本号后面。这个例子中我们没有使用git，所以我回答"no"。不然git修订号将会追加到版本号中。还记得vmlinuz和几个类似的文件么？好了，下一个问题就是问使用哪一种格式压缩内核。开发人员可以从五个选项中选择一个。它们是

> 1. Gzip (KERNEL\_GZIP)
> 2. Bzip2 (KERNEL\_BZIP2)
> 3. LZMA (KERNEL\_LZMA)
> 4. XZ (KERNEL\_XZ)
> 5. LZO (KERNEL\_LZO)
>

Gzip是默认值，所以我选择"1"并按回车。每种压缩格式和其他压缩格式相比都有更高或者更低的压缩比。更好的压缩比意味着更小的体积，但是与低压缩比文件相比，它解压时需要更多的时间。

现在这行显示“Default hostname (DEFAULT\_HOSTNAME) [(none)]”（默认主机名）。这里可以配置主机名。通常地，开发者这行留空(我这里留空)，以便以后Linux用户可以自己设置他们的主机名。

接下来开发者可以启用或者禁用交换分区。Linux使用一个叫做"swap space"的独立分区来使用虚拟内存。这相当于Windows中的页面文件。典型地，开发者在这行“Support for paging of anonymous memory (swap) (SWAP) [Y/n/?]”（是否支持匿名内存换页）回答“Y”。

接下来的一行（System V IPC (SYSVIPC) [Y/n/?]）询问内核是否支持IPC。进程间通信使进程间可以通信和同步。最好启用IPC不然许多程序将无法工作。这个问题回答“Y”会使配置工具接下来问“POSIX Message Queues (POSIX\_MQUEUE) [Y/n/?]”（是否使用POSIX消息队列），这个问题只会在IPC启用后看见。POSIX消息队列是一种给每条消息一个优先级的消息队列（一种进程间通信形式）。默认的选择是“Y”。按回车选择默认选择（以大写选择指示默认）。

下一个问题“open by fhandle syscalls (FHANDLE) [Y/n/?]”（是否使用文件句柄系统调用来打开文件）是问当有需要进行文件系统操作的时候，程序是否允许使用文件句柄而不是文件名进行。默认上，这个选择是“Y”。

有时，开发者在做了一些选择后，某些问题会自动回答。比如，下一个问题“Auditing support (AUDIT) [Y/?]”（是否支持审计）会在没有提示的情况下自动回答，因为先前的选项需要这个特性。审计支持会记录所有文件的访问和修改。下一个关于审计的问题“Enable system-call auditing support (AUDITSYSCALL) [Y/n/?]”（是否启用系统调用审计支持）。如果启用，所有的系统调用都会记录下来。如果开发者想要更好的性能，那么最好尽可能地禁用审计特性并且不把它加入内核。而另外一些开发者可能为了安全监控而启用审计。这个问题我选择“n”。下一个审计方面的问题“Make audit loginuid immutable (AUDIT*LOGINUID*IMMUTABLE) [N/y/?]”（是否要审计进程身份ID不可变）是询问进程是否可以改变它们的loginuid(LOGIN User ID)，如果启用，用户空间的进程将无法改变他们的loginuid。为了更好的性能，我们这里禁用这个特性。（译注：对于使用systemd这样的系统，其是通过中央进程来重启登录服务的，设置为“y”可以避免一些安全问题；而使用较旧的SysVinit和Upstart的系统，其需要管理员手工重启登录服务，应该设置为“N”）

注意：当通过“make config”配置时，这些通过配置工具回答的问题会显示出来但是用户无法改变答案。当通过"make menuconfig"配置时，无论用户按任何键都无法改变选项。开发者不需要去改变这些选项，因为之前的选择决定了另外一个问题的选择。

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-1.4274/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


禁用Ubuntu 13.10的Amazon及远程内容获取

Summary:
Ubuntu 13.10已经发布一段时间了，是时候坐下来配置一下系统来满足你的要求。Ubuntu 13.10配备了很多东西，当你安装或者升级时其实有些并不是你所需要的。
举个例子，当你安装或者升级到Ubuntu 13.10时，会自动启用A ...

# 禁用Ubuntu 13.10的Amazon及远程内容获取

Ubuntu 13.10已经发布一段时间了，是时候坐下来配置一下系统来满足你的要求。Ubuntu 13.10配备了很多东西，当你安装或者升级时其实有些并不是你所需要的。

举个例子，当你安装或者升级到Ubuntu 13.10时，会自动启用Amazon和一些其他商业购物网站的功能。当你打开Unity Dash时这些Lens就会显示。当你在Dash处执行搜索时，类似Amazon的远程数据源中符合你搜索内容的选项也会发送过来。

这些由Canonical公司提供的新增特性可能对某些人有用，但是对另一些用户，这些特性可能是他们不需要的。

因为从远程数据源获取内容需要带宽，这就可能会对你的上网账单有负面影响，特别是当你住在一个根据流量计费的地域。

对于另一些对安全和隐私有担忧的用户来说，本地自动搜索远程源可能不是一个好主意。还有一些用户只是不想当他们在本地搜索时会有商业公司展示他们的产品。

这篇简单的教程就是教你当使用Ubuntu 13.10时如何快速禁用Amazon和所有远程内容获取。

在你的键盘上按组合键 **Ctrl – Alt – T** 显示终端。当它打开后运行下面的命令去禁用该功能。

```
gsettings set com.canonical.Unity.Lenses remote-content-search 'none'
```

如果你想要重新启用它，运行以下命令。

```
gsettings set com.canonical.Unity.Lenses remote-content-search 'all'
```

你需要重新登陆或者重启你的电脑使更改生效。在完成这些操作后，当你使用Ubuntu搜索时就没有远程源会被使用。

Enjoy!

---

via: <http://www.liberiangeek.net/2013/10/disable-amazon-remote-content-fetching-ubuntu-13-10/>

译者：[whatever1992](https://github.com/whatever1992) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


云端服务管理工具 Juju GUI 0.11版发布

Summary: 坚如磐石的桌面、光鲜靓丽的手机、高端大气上档次的云管理工具，这三样东西一直是 Canonical 公司的立足之本，高速发展、大气的决策、热衷创新  这些来自市场的认可使得这家公司与戴尔、惠普以及 OpenStack 基金会等 ...

# 云端服务管理工具 Juju GUI 0.11版发布

坚如磐石的桌面、光鲜靓丽的手机、高端大气上档次的云管理工具，这三样东西一直是 Canonical 公司的立足之本，高速发展、大气的决策、热衷创新 —— 这些来自市场的认可使得这家公司与戴尔、惠普以及 OpenStack 基金会等组织成为高级合作伙伴，同时它在 IT 世界中扮演着传播新鲜事物和现代主义思想的角色。

[Juju](https://juju.ubuntu.com/) 是 Ubuntu 旗下的一款工具，可以对云端的服务进行快速可靠的布署，包括可以扩展云端业务，因此管理员可以很容易地布署 Wordpress 博客系统、MongoDB 大系统管理系统、Ceph 分布式文件系统等。

用户可以通过命令行和图形界面使用 Juju，图形界面被称为“Juju GUI”。

[Juju GUI](https://launchpad.net/juju-gui)界面基于网页，精美、对用户友好、直观，用户可以通过网页简单的操作完成复杂的功能。

Juju GUI 已经[升级到](http://jujugui.wordpress.com/2013/10/18/0-11-0-juju-gui-release/) **0.11版**，下面介绍一下新版本涉及的功能、修复、优化：

* 支持 charms 的升级、降级
* 可以显示两个节点的关联
* 大量减少 GUI 的大小，加快布署的进度
* 优化服务定位功能
* 增加红三角标记，用于标记 charms 和 bundles
* 删除有缺陷的操作（如添加己存在的单元）
* 为单元提供精确的链接地址
* 其他一些改进这里就不说了

<img src="content_image/album_201311_04_161128hpzgxy0cpyxcxccp.png" alt="" title="">

Juju GUI 长什么样？试试<https://jujucharms.com/sidebar/>

---

via: <http://iloveubuntu.net/cloud-tool-juju-gui-011-released-new-features-and-enhancements>

译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何在Ubuntu 13.04, 13.10上安装Sublime Text 3

Summary:
Sublime Text是一款很流行的源代码文本编辑器，托Webupd8团队的PPA仓库之福，我们现在能通过PPA安装Sublime Text 3，适用于ST的注册用户和未注册用户。

安装Sublime Text 3
打开终端(Ctrl + Alt +T), 键入并运行下  ...

# 如何在Ubuntu 13.04, 13.10上安装Sublime Text 3

[Sublime Text](http://www.sublimetext.com/)是一款很流行的源代码文本编辑器，托[Webupd8](https://launchpad.net/%7Ewebupd8team)团队的PPA仓库之福，我们现在能通过PPA安装Sublime Text 3，适用于ST的注册用户和未注册用户。

### 安装Sublime Text 3

打开终端(Ctrl + Alt +T), 键入并运行下列命令:

```
$ sudo add-apt-repository ppa:webupd8team/sublime-text-3 $ sudo apt-get update $ sudo apt-get install sublime-text-installer
```

玩的开心 ;-)

---

via: <http://www.unixmen.com/install-sublime-text-3-ubuntu-13-04-13-10/>

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux上首款太空剧场级游戏'The Mandate'发布预告片!!

Summary:
Perihelion Interactive已经宣告发布了一个在Kickstater倍受瞩目的太空类游戏 'The Mandate' 的首个游戏预告片。
根据开发者的简述，The Mandate是由六个玩家协作控制一辆载着数百人巨船的沙盒类科幻RPG游戏.
游戏会 ...

# Linux上首款太空剧场级游戏'The Mandate'发布预告片!!

Perihelion Interactive已经宣告发布了一个在Kickstater倍受瞩目的太空类游戏 'The Mandate' 的首个游戏预告片。

根据开发者的简述，The Mandate是由六个玩家协作控制一辆载着数百人巨船的沙盒类科幻RPG游戏.

游戏会根据不同的情境变化。在太空里，这类似于，但 The Mandate 提供了更完整的RPG体验.

举例来说，玩家能以第一视角登上他正在攻击的船只，而他的伙伴却再太空中另外的船上。当然，他们也需要同样保护他们自己的船只。

<img src="content_image/album_201311_04_231431gsr4mt66o7g7azw7.jpg" alt="" title="">

'游戏预告开头部分是中立的Zukov星际飞船遭到海盗的袭击后发出了遇难信号。信号被由效忠Mandate女王阿济莫夫指挥战斗中队的一个队员截获。队员与海盗交涉，给了他们投降和撤回的机会，但是战争却随之来到。'摘自官方[宣告](http://www.kickstarter.com/projects/1964463742/the-mandate/posts)

游戏由Unity 3D引擎开发!!!但是目前游戏仍处于开发初级阶段，与最终产品可能看起来很不同。

工作室内都是行业的资深人士，曾开发过佷多有影响力的游戏，像刺客信条I和II、黑手党II、孤岛惊魂2、科南时代:西伯莱人大冒险、使命召唤3和神秘世界等。更重要的是，他们都是痴迷CRPG的玩家，喜爱星际争霸、星际迷航、巴比伦5号和萤火虫。

来自Perihelion Interactive 公司的开发者已经成功募集三分之一的资金，他们还有34天的时间来达成募款目标。

游戏预计将在2015年3月发行，如果你对这个项目有兴趣，你可以看看Kickstarter官方网站。

---

via: <http://news.softpedia.com/news/Linux-s-First-Space-Opera-Game-quot-The-Mandate-quot-Gets-a-Fabulous-Trailer-394858.shtml>

译者：[Luoxcat](https://github.com/Luoxcat) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


戴文的Linux内核专题：06 内核配置(2)

Summary:
这一部分我们讲配置内核IRQ子系统。中断请求(IRQ)是硬件发给处理器的一个信号，它暂时停止一个正在运行的程序并允许一个特殊的程序占用CPU运行。
这个目录中的第一个问题属于内核特性(Expose hardware/virtual IRQ m ...

# 戴文的Linux内核专题：06 内核配置(2)

这一部分我们讲配置内核IRQ子系统。中断请求(IRQ)是硬件发给处理器的一个信号，它暂时停止一个正在运行的程序并允许一个特殊的程序占用CPU运行。

这个目录中的第一个问题属于内核特性(Expose hardware/virtual IRQ mapping via debugfs (IRQ\_DOMAIN\_DEBUG))（通过debugfs来显示硬件/虚拟的IRQ映射），它询问是否可以使用虚拟的调试文件系统来映射硬件及Linux上对应的IRQ中断号。这个用作调试目的，大多数用户不需要用到，所以我选择了"no"。

下一个标题显示"Timers subsystem"（计时器子系统）。第一个有关定时器子系统的问题是“Tickless System (Dynamic Ticks) (NO\_HZ)”（无滴答系统）。我选择了“yes”，这会启用一个无滴答系统。这意味着定时器中断将会按需使用，定时器中断允许任务以特定的时间间隔执行。下一个问题(High Resolution Timer Support (HIGH\_RES\_TIMERS))问是否支持高精度定时器。并不是所有的硬件支持这个，通常地说，如果硬件很慢或很旧，那么选择"no",否则像我一样选择"yes"。

下一个标题"CPU/Task time and stats accounting"（CPU/任务用时与状态统计），这个是关于进程的追踪。第一个问题看上去像这样：

Cputime accounting （CPU用时统计）

1. Simple tick based cputime accounting (TICK\_CPU\_ACCOUNTING) （简单基于滴答的用时统计）
2. Full dynticks CPU time accounting (VIRT\_CPU\_ACCOUNTING\_GEN) (NEW) （全动态滴答的用时统计）
3. Fine granularity task level IRQ time accounting (IRQ\_TIME\_ACCOUNTING) （细粒度的任务级IRQ用时统计）

TICK*CPU*ACCOUNTING会在每个CPU滴答中检测/proc/stat。这是默认的选项，这个记账方法非常简单。

注意：CPU滴答是抽象测量CPU时间的方式。每个处理器、操作系统和安装的系统都不同，比如说，一个更强大的处理器会比老的处理器拥有更多的CPU滴答。如果你安装了一个Linux系统，然后接着在同一块磁盘上重新安装了它，你可能会得到一个更快或更慢的CPU滴答时间(至少一些计算机技术书上这么说)。通常来讲，一个更快的时钟速度意味着更多的CPU滴答。

如果启用了VIRT\_CPU\_ACCOUNTING\_GEN，任务和CPU时间统计将由监视内核-用户边界实现。这个选择的代价是会增加额外的开销。

IRQ\_TIME\_ACCOUNTING记账方式则通过检测IRQ状态间的时间戳工作，这个性能开销很小。

我选择了"1"并被询问有关BSD记账"BSD Process Accounting (BSD\_PROCESS\_ACCT)"（BSD进程记账）的问题。这个内核特性会记录每个进程不同的关闭信息。为了得到一个更小和更快的内核，我选择了"no".

下一组问题看上去就像下面这样。

* Export task/process statistics through netlink (TASKSTATS) （通过netlink导出任务/进程统计数据）
* Enable per-task delay accounting (TASK\_DELAY\_ACCT) （启用针对每个任务的延迟统计）
* Enable extended accounting over taskstats (TASK\_XACCT) （启用taskstats的扩展统计）

TASKSTATS使内核可以通过网络套接字导出进程统计。网络套接字是内核和用户空间进程间IPC通信的一种形式。TASK*DELAY\*ACCT监视进程并注意资源访问的延迟。比如，TASK*DELAY*ACCT可以看到X进程正在为了CPU时间而等待，如果TASK\_DELAY\_ACCT观察到进程已经等待了太长时间，这个进程接着就会被给予一些CPU时间。TASK\_XACCT会收集额外的统计数据，为了更小的内核负载我会禁用这个。

现在接下来的目录就会显示RCU子系统：读取-复制-更新子系统是一种低负载的同步机制，它允许程序查看到正在被修改/更新的文件。配置工具已经回答了第一个问题。

RCU Implementation （RCU 实现方式）

> 1. Tree-based hierarchical RCU (TREE\_RCU) （树形分层结构的RCU）

choice[1]: 1

这里就选择“1”。除了TREE\_RCU，还有classic RCU(更老的实现)。下一个问题(Consider userspace as in RCU extended quiescent state (RCU\_USER\_QS) [N/y/?])（是否在用户空间记录扩展的quiescent状态）问RCU是否可以在CPU运行在用户空间时设置一个特殊的quiescent状态。这个选项通常被禁用，因为这会增加太多消耗。下面是另一个RCU问题(Tree-based hierarchical RCU fanout value (RCU\_FANOUT) [64])（树形分层结构的RCU端点数），问的是关于端点数。下一个问题(Tree-based hierarchical RCU leaf-level fanout value (RCU\_FANOUT\_LEAF) [16])（树形分层结构的RCU叶级端点数），是另外一个关于端点数的问题，但它只处理叶级。还有另外一个RCU问题(Disable tree-based hierarchical RCU auto-balancing (RCU\_FANOUT\_EXACT) [N/y/?])（是否禁用树形分层结构的RCU的自动平衡），询问是否禁用RCU自动平衡树，而采用上述的端点数。

接下来，配置脚本将会询问"Accelerate last non-dyntick-idle CPU's grace periods (RCU\_FAST\_NO\_HZ)"（加速最后的非dyntick-idle CPU的RCU宽限期）。在这之后会显示"Offload RCU callback processing from boot-selected CPUs (RCU\_NOCB\_CPU)"（从选择引导的CPU里面卸载RCU回调）。（译注：此处作者没做解释。前一个能够节省电力，但是降低了性能；后一个用于调试。）

下一个问题非常重要(Kernel .config support (IKCONFIG))（内核的.config支持）。开发人员可以选择保存由这个配置工具生成的设置到一个文件中。这个文件可以放在内核中，也可在一个模块中，或者完全不保存。这个文件可以被想要编译一个完全跟某人相同内核的开发者使用。这个文件还可以帮助开发人员使用一个更新的编译器重新编译一个内核。举例来说，开发人员配置并编译了一个内核，然而编译器有一些bug，但开发人员仍然需要一个使用这些设置的内核。而值得庆幸的是，开发人员可以升级他们的编译器，并使用设置文件来节省他们重新配置内核的时间。开发人员也可以在另一台计算机上保存源代码和配置文件并编译内核。至于另一个目的，开发人员可以加载该文件，并根据需要调整设置。我选择保存配置文件在一个模块中，这个问题 "Enable access to .config through /proc/config.gz (IKCONFIG\_PROC)"（启用通过/proc/config.gz来访问.config的功能）是询问这个文件是否是可以通过这次方式访问的，我选择了"yes"。

下一个问题是内核使用多大的log缓冲区(Kernel log buffer size (16 => 64KB, 17 => 128KB) (LOG\_BUF\_SHIFT) [17])（内核日志缓冲区大小）。小的缓冲区意味着它无法像更大的缓冲区那样保持日志更长的时间。这个选择取决于开发者想要日志保持的时间，我选择的是"12"。

接着，出现了另外一个问题。该问题询问关于是否启用NUMA(非一致性内存访问)的内存/任务的均衡(Automatically enable NUMA aware memory/task placement (NUMA\_BALANCING\_DEFAULT\_ENABLED))（自动启用NUMA的内存/任务均衡）。如果在NUMA的机器上设置了该选项，那么NUMA自动平衡就会启用。在NUMA下，处理器可以比非本地内存(内存分配给另外一个处理器或在处理器之间共享的内存)更快地访问它的本地内存。如果上面启用了(我启用了)，那么最好对这个问题"Memory placement aware NUMA scheduler (NUMA\_BALANCING)"（由NUMA调度器进行内存分配）回答"yes"，这是一个NUMA调度器。

在新的标题"Control Group support"（Cgroup支持）下，因为先前的选择，"Control Group support (CGROUPS)"（Cgroup支持）被自动地回答了"yes"。

以下设定(Example debug cgroup subsystem (CGROUP\_DEBUG))（导出Cgroup子系统的调试信息）是启用一个用于调试cgroup框架的一个简单cgroup子系统。下一个选项(Freezer cgroup subsystem (CGROUP\_FREEZER))（冻结Cgroup子系统）可以让程序员可以冻结或解冻cgroup内的任务。

注意：cgroup是一组进程。

下面我们要求回答"Device controller for cgroups (CGROUP\_DEVICE)"(Cgroup的设备控制器)。cgroup(控制组)是一种用来控制资源使用的特性。回答"yes"可以允许设备cgroup的白名单可以使用open和mknod系统调用(用来创建文件系统节点的系统调用)。

下一个问题(Cpuset support (CPUSETS))（CPU分组支持）询问的是内核是否可以创建和管理CPU分组。这允许管理员可以在一个系统上动态分配各组内存节点，并分配任务在这些内存上运行。这通常用于SMP和NUMA系统中。我这个问题回答的是"no"。

注意：请记住，如果我没有指定我选的是什么，那么我选的就是默认选项。

启用cgroup统计子系统(Simple CPU accounting cgroup subsystem (CGROUP\_CPUACCT))（Cgroup子系统的简单CPU统计）会生成一个资源控制器来监控在一个cgroup组内的独立任务的CPU使用情况。我选择了"no"。

资源计数器(Resource counters (RESOURCE\_COUNTERS))使控制器的独立资源统计功能能够统计cgroup。我选择了"no"。

下一个问题(Enable perf\_event per-cpu per-container group (cgroup) monitoring (CGROUP\_PERF))（启用每个CPU、每个容器组的pref\_event监控）允许开发者扩展每个CPU的模式，使它可以只监控运行在特定CPU上的一个特别的cgroup组的线程。

下一章节是"Group CPU Scheduler"（CPU分组调度器）。前两个已经回答的问题包括：

Group CPU scheduler (CGROUP*SCHED)（CPU分组调度器） Group scheduling for SCHED*OTHER (FAIR*GROUP\*SCHED)（SCHED\_OTHER分组调度）

第一个已回答的问题(CPU bandwidth provisioning for FAIR\_GROUP\_SCHED (CFS\_BANDWIDTH))（CPU带宽分配）询问的是内核是否允许用户设置在公平组调度器内执行的任务的CPU带宽限制。没有限制的组会被认为不受约束，并会没有限制地运行。

注意：并不是所有内核选项都在这里。我这里提到的组只是为了便于阅读，并挑出那些新的和大的部分。并不需要了解所有的分组。分组有助于使用图形工具配置内核，这样开发者可以在搜索特定的设置时，直接通过分组菜单找到。

开发者可以通过回答"Group scheduling for SCHED\_RR/FIFO (RT\_GROUP\_SCHED)"（SCHED\_RR/FIFO分组调度）这个问题为"yes"来让用户可以分配CPU带宽到任务组中。

下一个问题是"Block IO controller (BLK\_CGROUP)"（阻塞IO控制器）。任务组可以被识别，并且它们的磁盘带宽是由使用块IO控制器实现的CFQ IO调度器分配的。BIO在块级的限制逻辑使用块IO控制器来提供设备上的IO速率上限。

这里有一个调试问题(Enable Block IO controller debugging (DEBUG*BLK*CGROUP) [N/y/?])（启用阻塞IO控制器的调试）询问是否启用块IO控制器的调试。为了制作一个精简的内核，最好禁用这个特性。

为了启用内核中的检查点和还原特性。这个问题“Checkpoint/restore support (CHECKPOINT\_RESTORE)”（检查点及还原支持）可以选择“yes”，不过为了更低的负载这里我选择了“n”。启用这个特性会增加辅助的进程控制代码来设置进程的代码段、数据段和堆的大小，并增加了一些额外的程序入口。

下面我们就要配置命名空间的支持了。命名空间是一组标识符的容器。比如，/usr/lib/python3/dist-packages/re.py就是一个标识符，/usr/lib/python3/dist-packages/就是一个命名空间。而re.py是这个命名空间下的本地名称。

第一个命名空间问题(Namespaces support (NAMESPACES))询问的是是否启用命名空间。这允许可以使用相同的PID但在不同的命名空间内(译注：原文为" This will allow the same PIDs (Process ID) to be used but indifferent namespaces",这里indiffernt根据上下文应该是少了空格)，否则PID永远不会重复。

下一个问题(UTS namespace (UTS\_NS))询问是否可以让UTS命名空间内的任务可以在uname()系统调用中看到不同的信息。uname()系统调用提供查看机器和操作系统的信息。

启用IPC命名空间(IPC namespace (IPC\_NS))将允许在这个命名空间内的任务与其他命名空间内相对应IPC ID的对象协同工作。

PID命名空间(PID Namespaces (PID\_NS))就是进程ID命名空间。这可以使不同的进程在不同的PID命名空间使用相同的PID。这是一个容器的构建块。

接下来，启用网络命名空间(Network namespace (NET\_NS))可以使用户创建一个拥有多个实例的网络栈。

当启用后,自动进程分组调度(SCHED\_AUTOGROUP)会填充并创建任务组来优化桌面程序的调度。它将把占用大量资源的应用程序放在它们自己的任务组，这有助于性能提升。

这里是一个调试特性，除非你有特别的需求否则应该禁用它。这个问题(Enable deprecated sysfs features to support old userspace tools (SYSFS\_DEPRECATED))（启用不推荐的sysfs功能来支持旧式的用户空间工具）询问是否启用sysfs，这是调试内核时用的虚拟文件系统。

接下来，因为当前的配置需要它，所以"Kernel->user space relay support (formerly relayfs) (RELAY)"（内核->用户空间的中继支持，即relayfs）已经被设成"yes"了。最好启用initrd支持(Initial RAM filesystem and RAM disk (initramfs/initrd) support (BLK\_DEV\_INITRD))（初始化内存文件系统和内存盘(initramfs/initrd)）。

用户会被问及哪里放置initramfs源文件。如果没有需要，请留空。

接下来,开发人员会被询问关于初始虚拟磁盘(Linux的内核映像文件)所支持的压缩格式。你可以启用所有支持的压缩格式。

* Support initial ramdisks compressed using gzip (RD\_GZIP)
* Support initial ramdisks compressed using bzip2 (RD\_BZIP2)
* Support initial ramdisks compressed using LZMA (RD\_LZMA)
* Support initial ramdisks compressed using XZ (RD\_XZ)
* Support initial ramdisks compressed using LZO (RD\_LZO)

这里设置了内核的编译内核编译选项(Optimize for size (CC\_OPTIMIZE\_FOR\_SIZE))（优化大小）。开发者可以让编译器在编译时优化代码。我选择了"yes"。

用户想要配置更多的内核特性，那么下个问题就回答"yes"(Configure standard kernel features (expert users) (EXPERT))（配置标准内核特性（专家级用户））。

要启用过时的16位UID系统调用封装器，这个问题设成"yes"(Enable 16-bit UID system calls (UID16))。系统调用就会使用16位UID。

推荐启用"sysctl syscall"(Sysctl syscall support (SYSCTL\_SYSCALL))支持。这使/proc/sys成为二进制路径的接口。

接下来的两个问题已经被预先回答了"yes",它们是"Load all symbols for debugging/ksymoops (KALLSYMS)"（载入所以的调试符号）和"“Include all symbols in kallsyms (KALLSYMS\_ALL)"（包括所有的kallsyms符号）。这些都是启用调试标志。

下一步，开发者应该启用printk支持( (Enable support for printk (PRINTK)))，这会输出内核消息到内核日志中。这在内核出错时是很重要的。编译一个"哑巴"内核并不是一个好主意。然而，如果我们启用了这个支持，就会被一些开发者看到这些出错，要么就不要启用。

除非有必要，开发者可以禁用bug支持(BUG() support (BUG))。禁用这项将会不支持WARN信息和BUG信息。这会减小内核的体积。

---

via: <http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-2.4318/>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux Pmap 命令 - 查看进程用了多少内存

Summary: Pmap 提供了进程的内存映射，pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令，linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有 ...

# Linux Pmap 命令 - 查看进程用了多少内存

Pmap 提供了进程的内存映射，pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令，linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看[进程内存状态](http://www.linoxide.com/linux-shell-script/linux-memory-usage-program/)，我们可以通过/proc或者常规命令比如top或ps得到它。

<img src="content_image/album_201311_05_150328bah66ueepbqp8j6q.jpg" alt="" title="">

### 语法或用法

```
#pmap PID
```

或者

```
#pmap [options] PID
```

在输出中它显示全部的地址,kbytes,mode还有mapping。

### 选项

* -x extended显示扩展格式
* -d device显示设备格式
* -q quiet不显示header/footer行
* -V 显示版本信息

### 单一进程内存状态

```
[root@info ~]# pmap 1013

1013: /usr/sbin/sshd
00110000 1480K r-x- /usr/lib/libcrypto.so.1.0.0
00282000 80K rw-- /usr/lib/libcrypto.so.1.0.0
00296000 12K rw-- [ anon ]
00299000 36K r-x- /lib/libkrb5support.so.0.1
002a2000 4K rw-- /lib/libkrb5support.so.0.1
002a3000 16K r-x- /lib/libplc4.so
002a7000 4K rw-- /lib/libplc4.so
002ab000 88K r-x- /lib/libaudit.so.1.0.0
002c1000 4K r-- /lib/libaudit.so.1.0.0
002c2000 4K rw-- /lib/libaudit.so.1.0.0
002c3000 216K r-x- /lib/libgssapi_krb5.so.2.2
002f9000 4K rw-- /lib/libgssapi_krb5.so.2.2
002fa000 808K r-x- /lib/libkrb5.so.3.3
003c4000 24K rw-- /lib/libkrb5.so.3.3
003ca000 152K r-x- /lib/libk5crypto.so.3.1
003f0000 4K rw-- /lib/libk5crypto.so.3.1
003f1000 92K r-x- /usr/lib/libnssutil3.so
00738000 4K r--- /lib/libresolv-2.12.so
00739000 4K rw-- /lib/libresolv-2.12.so
0073a000 8K rw-- [ anon ]
00825000 120K r-x- /lib/ld-2.12.so
00843000 4K r--- /lib/ld-2.12.so
00844000 4K rw-- /lib/ld-2.12.so
0090d000 32K r-x- /lib/libwrap.so.0.7.6
00915000 4K rw-- /lib/libwrap.so.0.7.6
00948000 484K r-x- /usr/sbin/sshd
009c1000 8K rw-- /usr/sbin/sshd
009c3000 20K rw-- [ anon ]
009e0000 92K r-x- /lib/libpthread-2.12.so
009f7000 4K r--- /lib/libpthread-2.12.so

total 8232K
```

### 多进程内存状态

我们可以检查多进程内存通过插入多个PID。加入多个PID中间使用空格分隔。

```
pmap 1013 1217 1118
```

### 扩展进程内存

```
[root@info ~]# pmap -x 1013
1013: /usr/sbin/sshd
Address Kbytes RSS Dirty Mode Mapping
00110000 1480 92 0 r-x- libcrypto.so.1.0.0
00282000 80 80 80 rw-- libcrypto.so.1.0.0
00296000 12 8 4 rw-- [ anon ]
00299000 36 0 0 r-x- libkrb5support.so.0.1
002a2000 4 4 4 rw-- libkrb5support.so.0.1
002a3000 16 0 0 r-x- libplc4.so
002a7000 4 4 4 rw-- libplc4.so
002ab000 88 4 0 r-x- libaudit.so.1.0.0
002c1000 4 4 4 r--- libaudit.so.1.0.0
002c2000 4 4 4 rw-- libaudit.so.1.0.0
002c3000 216 4 0 r-x- libgssapi_krb5.so.2.2
002f9000 4 4 4 rw-- libgssapi_krb5.so.2.2
002fa000 808 4 0 r-x- libkrb5.so.3.3
003c4000 24 24 24 rw-- libkrb5.so.3.3
003ca000 152 4 0 r-x- libk5crypto.so.3.1
003f0000 4 4 4 rw-- libk5crypto.so.3.1
003f1000 92 0 0 r-x- libnssutil3.so
00408000 12 12 12 rw-- libnssutil3.so
0040b000 12 0 0 r-x- libplds4.so
0040e000 4 4 4 rw-- libplds4.so

--- --- --- --- ---
total kB 8232 - - -
```

这里的Address，Kbyte，Dirty，RSS，mode还有mapping的说明如下

### 扩展和设备格式区域

* Address: 内存开始地址
* Kbytes: 占用内存的字节数（KB）
* RSS: 保留内存的字节数（KB）
* Dirty: 脏页的字节数（包括共享和私有的）（KB）
* Mode: 内存的权限：read、write、execute、shared、private (写时复制)
* Mapping: 占用内存的文件、或[anon]（分配的内存）、或[stack]（堆栈）
* Offset: 文件偏移
* Device: 设备名 (major:minor)

---

via: <http://linoxide.com/linux-command/pmap-command/>

译者：[flsf](https://github.com/flsf) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


通过PPA在Ubuntu中安装qBittorrent 3.1.0

Summary: qBittorrent是一个由志愿者开发的自由开源的跨平台BT客户端软件，利用libtorrent-rasterbar库，由C++/Qt写成，是现在流行的BT客户端软件torrent的一个替代选择。最新的版本qBittorrent 3.1.0 已经在2013年10月份放出 ...

# 通过PPA在Ubuntu中安装qBittorrent 3.1.0

[qBittorrent](http://www.qbittorrent.org/index.php)是一个由志愿者开发的自由开源的跨平台BT客户端软件，利用libtorrent-rasterbar库，由C++/Qt写成，是现在流行的BT客户端软件[µtorrent](http://www.utorrent.com/)的一个替代选择。最新的版本qBittorrent 3.1.0 已经在2013年10月份放出。

qBittorrent轻巧快速，支持unicode编码，而且提供一个完美整合的搜索引擎。它也支持UPnP端口转发和NAT-PMP、加密（兼容Vuze）、FAST扩展和PeX支持(兼容utorrent)。

### qBittorrent v3.1.0 的特性

* 精心雕琢的类µTorrent界面（译注：至少我觉得LOGO就很精致）
* 完美整合的搜索引擎，并可扩展
* 在众多著名BT网站中进行并发搜索
* 对搜索请求进行预分类（例如，书籍，音乐，电影）
* 支持各种Bittorrent扩展
* 可通过web页面进行远程操作
* Web界面很接近桌面客户端，采用AJAX操作
* 可对trackers、peers 和 torrents进行高级控制
* 连接排队和优选
* Torrent内容筛选和优先级设置
* 支持UPnP / NAT-PMP端口转发
* 支持大约25中语言（支持Unicode）
* 种子创建工具
* 支持RSS过滤下载（例如正则表达式）
* IP过滤（兼容eMule和PeerGuardian）
* 兼容IPv6
* 顺序下载（也可以叫做按数字顺序下载）
* 支持各种平台： Linux，Mac OS X, Windows, OS/2, FreeBSD

### 安装qBittorrent

```
$ sudo add-apt-repository ppa:hydr0g3n/qbittorrent-stable
$ sudo apt-get update && sudo apt-get install qbittorrent
```

你也可以下载[qbittorrent的源代码](http://sourceforge.net/projects/qbittorrent/files/qbittorrent/qbittorrent-3.1.0/qbittorrent-3.1.0.tar.gz/download)，然后编译后安装。

---

via: <http://www.unixmen.com/install-qbittorrent-3-1-0-ubuntu-via-ppa/>

译者：[Linux-pdz](https://github.com/Linux-pdz) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出