Merge branch 'master' of github.com:LCTT/TranslateProject

This commit is contained in:
John 2014-07-07 11:12:57 +08:00
commit 762f09ee1b
185 changed files with 7784 additions and 2287 deletions

View File

@ -1,8 +1,7 @@
10款专为嵌入式系统打造的Linux平台
==========================================
Linux 有着广泛的用途。该平台被许多简单的家用电器所使用同时它也深受程序员和黑客们的青睐。此外Linux 还广泛地应用在嵌入式系统中有一系列专门适用于此类系统的发行版。我们将为大家推荐十个非常优秀的专为嵌入式系统发行的linux版本
Linux 有着广泛的用途。该平台用于很多家庭的简单使用同时它也深受程序员和黑客们的青睐。此外Linux 还广泛地应用在嵌入式系统中有一系列专门适用于此类系统的发行版。我们将为大家推荐十个非常优秀的专为嵌入式系统发行的linux版本
![] (http://www.efytimes.com/admin/useradmin/photo/UJVP24130PM532014.jpeg)
@ -10,61 +9,49 @@ Linux 有着广泛的用途。该平台被许多简单的家用电器所使用
### 1.[Ampro 嵌入式 Linux][1] ###
这是一个自由和开放源代码的从Ubuntu派生来的轻量级操作系统。
这是一个自由和开放源代码的从Ubuntu精简来的轻量级操作系统。
### 2. [BlueCat Linux from Lynx][2] ###
这个基于 Linux 的发行版是Lynx套件的一部分并为嵌入式系统打造。
这个基于 Linux 的发行版是Lynx套件的一部分并为嵌入式系统打造。
### 3. [CacheGuard OS][3] ###
CacheGuard OS 是一个从零开始建立的集成了安全解决方案的基于Linux的可自定义版本 ,专门为网络管理设计的。
CacheGuard OS 是一个从零开始建立的集成了安全解决方案的基于Linux的版本专门为网络管理设计的。
### 4. [Darma NAS OS][4] ###
这个发行版有一个基于 SSL 的加密客户端服务器和基于 Java 的图形用户界面。
这个发行版有一个基于 SSL 的加密客户端的服务器和基于 Java 的图形用户界面。
### 5. [DIET-PC][5] ###
这是开源的瘦客户端软件 kitset它允许用户建立网络设备。
这是开源的瘦客户端软件 kitset它允许用户建立网络应用。
### 6. [ELinOS][6] ###
这个发行版为在嵌入式系统上工作的用户提供大量的技术。它是一个相当受欢迎的嵌入式 Linux 平台。
### 7. [eLux][7] ###
这个发行版有一个非常简单和容易使用的界面,适用于用户和管理员都不具有任何有关 Linux 的知识的特殊情况下。
### 8. [eLux NG][8] ###
这一个发行版为支持 eLux 的列表中的处理器添加了新的模式。
这个发行版为支持 eLux 的处理器列表中添加了新的型号。
### 9. [Embedded Coyote Linux][9] ###
这种基于 Coyote Linux的防火墙和 VPN 服务器一直为很多人选择的平台。
这种基于 Coyote Linux的防火墙和 VPN 服务器 一直为很多人选择的平台。
# # # 10。[嵌入式 Debian 项目][10] # # #
### 10. [嵌入式 Debian 项目][10] ###
这个项目的目的是使 Debian GNU/Linux 成为嵌入式系统的第一选择。
--------------------------------------------------------------------------------
via: http://www.efytimes.com/e1/fullnews.asp?edid=137612
译者:[owen-carter](https://github.com/owen-carter) 校对:[校对者ID](https://github.com/校对者ID)
译者:[owen-carter](https://github.com/owen-carter) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,33 @@
为什么我们不应该接受低劣的Linux移植游戏
================================================================================
由于最近The Witcher 2的惨败我想写下些想法为什么我们不应该接受来自开发人员的品质低劣的移植游戏。
最近几年在我们的Linux游戏库里面有如此多游戏以至于你现在可以看到来自Linux玩家的评论“我们已经有很多游戏了”可能这些声音来自很多像你一样的人。感谢Valve 和 Steam之前我们从来没有得到过这么多的开发者的关注。
同样由于开发者的推进,我们看见了伴随而来的各种移植游戏,坦率地说,它们的质量十分的低劣,或者说对于大多数人们来说根本不值得去看一眼。
现在的问题就是如果我们继续接受这种低水平质量的移植Linux就会赢得一个游戏质量水平低的名声。请认真考虑一下这样的后果吧
再想象一下如果那些AAA级的开发者给Linux推送了大量游戏其中使用了The Witcher2 移植所用的“eON”技术。看起来就像我们有了大量开发者突然之间Linux有很多大牌游戏了。然后你可以看见大量的人尝试Linux却发现它们的游戏在同等硬件之下却有着糟糕的画面就会给他们一个印象Linux对游戏不友好。这对我们所有人都很糟糕。
我已经看见许多人说“这个工具包用于移植没关系?”。这在我的眼里看来是一个非常天真的想法。当然,这有关系, 它意味Linux的游戏里面的光线和白天的不同品质。这就直接追溯到我上面关于Linux游戏的观点上了。
你可以坚持说工具包没有关系,而且使用任何一个你想用的比较/类比的效果但如果工具包是导致问题的根源就像我们说的计算机占用了99%的处理能力的软件一样,是的,它当然有关系!
如今,我已经看见许多来自其他主流网站发表的评论,“我们应该接受它们并且作感谢状,我们毕竟拥有了它们”。那些都是鼠目寸光的人们说的胡话!
![](http://www.gamingonlinux.com/uploads/articles/article_images/1401025331gol2.jpg)
想想那些开发者和发行商看到那些低劣的Linux移植游戏也能被接受时他们的脑里只有钱。消费者对Linux游戏的感知就会进一步恶化就是因为这些低劣的移植品。
我可以接受这些来自开发者的移植,毕竟是我运营着这个网站( http://www.gamingonlinux.com/ 。但是如果我作为一个消费者不愿意为在windows运行挺好的游戏买单而却为在Linux慢得像蜗牛一样的游戏买单我会么你会么
最后附加的一点你绝不应该攻击一个试图在社区里面解决问题的开发者这样是不可以的。反馈是很好骂人却是很幼稚的这会使得Linux看起来更糟。
--------------------------------------------------------------------------------
via: http://www.gamingonlinux.com/articles/why-we-shouldnt-accept-bad-linux-ports.3765
译者:[Vic020](http://www.vicyu.net) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -2,14 +2,13 @@
================================================================================
**嗨,极客们!**
今天,我们介绍给大家一个新的系列节目,它叫命令行星期二。为什么叫命令行星期二?因为在该系列节目中,就像你们这样的忠实的计算机迷们每天将会试着走出图形用户界面GUI文化的藩篱GUI文化就是让事情变得简单而大众化
今天,我们介绍给大家一个新的系列节目,它叫命令行星期二。为什么叫命令行星期二?因为在该系列节目中,每天坐在计算机前的你们将会试着走出图形用户界面GUI文化的藩篱从今天开始“让事情变得简单而大众化”
当然如果你访问过任何与GNU/Linux相关的社区论坛的话你可能耳闻目睹了一次火热的辩论当然这是个假设话题是哪个实际上更易用。是让GUI掌控一切还是只是学习并享受命令行界CLI面带来的乐趣。
当然如果你访问过任何与GNU/Linux相关的社区论坛的话你可能已经看到了关于GUI和命令行哪个更好的讨论非常热烈。是让GUI掌控一切还是只是学习并享受命令行界CLI面带来的乐趣呢
![Terminal](http://sholva.org/assets/images/blog/2009/review-opensuse-11.2/opensuse-terminal.png)
终端
对于使用或抛弃GUI工具的争论有很多。正方最常提到的优点之一就是我们是在点击的计算模式下长大的所以它基本上就是我们和机器进行交互的一种语言或文化形式。我们日复一日重复着这样的模式,点击那个大按钮来让它干我们需要它干的事。
对于使用或抛弃GUI工具的争论有很多。正方最常提到的优点之一就是我们是在点击的计算模式下长大的所以它基本上就是我们和机器进行交互的一种语言者你可以说是一种文化。我们日复一日重复着这样的模式,点击那个大按钮来让它干我们需要它干的事。
而对于反方我读到的关于命令行的优点的最有趣的评论之一就是你可以通过命令行来更快更简单地做更多事情比GUI工具来得快。但你需要明白的是你需要学习命令。是的学习它们就像学一首诗一样。
@ -17,27 +16,28 @@
### 寓言 ###
我已经用了Linux超过3年了。27岁是个文学专业学生我对任何形式的技术都没有太大的兴趣。我直到中学才有了一台属于自己的计算机我想大概是17岁那年吧。对于我而言只用了10年的计算机。我只用过三个程序BS播放器Winamp和足球经理偶尔也用用MS Word。大约三年多以前我做临时工时的一位同事在我正和另外一位同僚谈话时告诉我说有个新版的东西它一下子就抓住了我的心它看起来确实与众不同。我现在想想它就是Ubuntu的敏捷的独角鲸。在和这位同事讨论这个新版本后他指出了一些常见的优点这些优点也是我们经常向新手宣传的不需要杀毒软件启动快捷安全性更高附带有软件中心等等之类。最突出的一点它背后的自由和开源FOSS哲学。他用他不带侵害性和没一点孩子气的方式把我带了进去。
我已经用了Linux超过3年了。27岁是个文学专业学生我对任何形式的技术都没有太大的兴趣。我直到中学才有了一台属于自己的计算机我想大概是17岁那年吧。对于我而言只用了10年的计算机。我只用过三个程序BS播放器Winamp和足球经理偶尔也用用MS Word。大约三年多以前我做临时工时的一位同事在我正和另外一位同僚谈话时告诉我说有个新版的东西它一下子就抓住了我的心它看起来确实与众不同。我现在想想它就是Ubuntu的敏捷的独角鲸。在和这位同事讨论这个新版本后他指出了一些常见的优点这些优点也是我们经常向新手宣传的不需要杀毒软件启动快捷安全性更高附带有软件中心等等之类。最突出的一点它背后的自由和开源FOSS哲学。他用他温和而优雅的方式把我带了进去。
我决定来一次尝试而从那以后便一发不可收拾。而至于我是怎么又从第一次对Ubuntu的浅尝辄止转而投向openSUSE 11.4的咋们下回再讲吧。而我发现它只是一个完美而甜蜜的小插曲那就完完全全另外一回事了。问题在于我最终进入了Linux领域。这很有趣感觉很不一样它让我的计算机跑得更好它也更稳定我也和它相处得很好似乎我是在不经意间买到了相当正统的硬件。Linux似乎也远不止是桌面所以我只是在不得不使用终端的时候也使用终端。但是这么说吧它是Linux中一个最为讨厌的最为可怕最令人不爽的工具之一。如果没有GUI来进行特别的操作,我马上会诚惶诚恐,十分不安了。因为当我从论坛复制/粘贴命令的时候,我都不知道我究竟在干些什么。
我决定来一次尝试而从那以后便一发不可收拾。而至于我是怎么又从第一次对Ubuntu的浅尝辄止转而投向openSUSE 11.4的,咋们下回再讲吧。而我发现它只是一个完美而甜蜜的小插曲那就完完全全另外一回事了。问题在于我最终进入了Linux领域。这很有趣感觉很不一样它让我的计算机跑得更好它也更稳定我也和它相处得很好似乎我是在不经意间买到了相当普通的硬件。似乎Linux并不是一个完全的桌面系统所以我有时不得不使用终端。但是这么说吧它是Linux中一个最为讨厌的最为可怕最令人不爽的工具之一。如果某些操作没有GUI可以做的话,我马上会诚惶诚恐,十分不安了。因为当我从论坛复制/粘贴命令的时候,我都不知道我究竟在干些什么。
随着时间流逝情况发生了变化。相对于其他以消费者为导向的系统发生在我身上的事可能有点与一般人相反。在那三年中我感觉不是我在玩系统而是系统在玩我。我学会了怎样寻找基本问题提交bug报告怎样正确地在论坛上提问。对于碰到的每个问题我学会了为那些更有能力帮我解决问题的人提供更有用的信息。
不久以前,我女朋友发泄,她简直不敢相信,我主要为了用计算机而用计算机,而不是用它来做一些别的事情。”你只用它来进行音乐收藏和做些Linux的乱七八糟的事情Nenad. Gaawd“它让我想啊使劲想。Linux特别是openSUSE发行版它成了我的爱好之一。我不是一个专家不管怎么说都说得通Linux不在我的专业知识范畴内。但我有足够的知识来搞定它搞定一些小问题修改一些配置文件等等。但是我终于认识到随着玩Linux日久对系统的调整日多我真的需要熟悉一下命令行CLI了。我也了解到我在对底层的东西一无所知的情况下对系统胡作非为。我要对着ETC大喊大叫了它究竟是个什么东西BIN又是个什么东西?为什么会有个.sh在后面问什么这个文件在这里那个文件又在那里为什么我得点击那一大堆的文件夹来找到正确的文件进行修改然后我读到‘你可以用一个命令来简单地列出某个地方的所有文件’时,它又变得很有趣了,我突然感到迫不及待要想试试了。
不久以前,我女朋友发泄,她简直不敢相信,我主要为了用计算机而用计算机,而不是用它来做一些别的事情。“你只用它来进行音乐收藏和做些Linux的乱七八糟的事情Nenad. Gaawd”它让我想啊使劲想。Linux特别是openSUSE发行版它成了我的爱好之一。我不是一个专家不管怎么看都是这样Linux不在我的专业知识范畴内。但我有足够的知识来搞定它搞定一些小问题修改一些配置文件等等。但是我终于认识到随着玩Linux日久对系统的调整日多我真的需要熟悉一下命令行CLI了。我也了解到我在对底层的东西一无所知的情况下对系统胡作非为。我要对着etc大喊大叫了它究竟是个什么东西bin又是个什么东西?为什么会有个.sh在后面问什么这个文件在这里那个文件又在那里为什么我得点击那一大堆的文件夹来找到正确的文件进行修改然后我读到“你可以用一个命令来简单地列出某个地方的所有文件”时,它又变得很有趣了,我突然感到迫不及待要想试试了。
### 好吧,让我们干吧! ###
我们来了……。作为一位新的openSUSE的新闻发布者我会试着以我所见最有成效的方式来发表我的看法这样的方式我想对社区中绝大多数人会奏效。该高举旗帜一起开始学习命令行了。如果是是什么吸引你到Linux和openSUSE中来这么个态度就想我引领你走了这么远,那么是时候走得更远一点了。
我们来了……。作为一位新的openSUSE的新闻发布者我会试着以我所见最有成效的方式来发表我的看法这样的方式我想对社区中绝大多数人会奏效。该高举旗帜一起开始学习命令行了。如果是哲学理念吸引你到Linux和openSUSE中来的就像我一样,那么是时候走得更远一点了。
![](http://beerepiphany.files.wordpress.com/2010/04/pinky_brain.jpg)
我就知道在那外头有一大堆像我这样的人。我知道你也许没有抓住90后极客们的要点黑屏-绿字-手指在键盘上乱飞-让一切都激情澎湃。但这在很多地方都很有用。我们将以一种有趣的,而又共有的方式来学习目录是用来干什么什么文件放在什么地方以及一些最常用的终端命令。在我们在控制台处理一些任务时这将让我们更轻松一些在碰到一些问题时获得更大的回报。它也会让bug处理者更轻松些如果他们从我们这头收到正确的信息的话。它也让我们的爱好变得乐趣无穷。
我就知道在那外头有一大堆像我这样的人。我知道你也许没有抓住90后极客们的要点黑屏-绿字-手指在键盘上乱飞-让一切都激情澎湃。但这在很多地方都很有用。我们将以一种有趣的,而又通用的方式来学习目录是用来干什么什么文件放在什么地方以及一些最常用的终端命令。在我们在控制台处理一些任务时这将让我们更轻松一些在碰到一些问题时获得更大的回报。它也会让bug处理者更轻松些如果他们从我们这头收到正确的信息的话。它也让我们的爱好变得乐趣无穷。
我是说我的天啊你已经过渡到连Dilber和xkcd都感到有趣的阶段了。是时候到终端下去了。
附录:
要用到的一些参考资料:威廉 · 肖茨—— 《Linux命令行》,以及克罗地亚黑客韦利米尔 ·巴克沙,别名鲁塞拉斯,《关于最常用命令的简短教程》。对于你们的要求:
要用到的一些参考资料:威廉·肖茨—— 《Linux命令行》,以及克罗地亚黑客韦利米尔·巴克沙,别名鲁塞拉斯,《关于最常用命令的简短教程》。对于你们的要求:
- 每周1到2小时的空闲时间
- 一品脱冰冻啤酒或者其它饮料
- 有人已经指出,使用[Gedit][1],或者手工记录本(你懂的,笔和纸,呵呵)可以让学习更简单一些。
@ -50,7 +50,7 @@
via: https://news.opensuse.org/2014/05/27/command-line-tuesdays-the-introductory/
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -2,39 +2,39 @@
================================================================================
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2014/05/linux-macbook-pro-retina-840x420.jpg?ec7b17)
MacBook Pros拥有非常强大的配置有些人想强上加强他们想用Linux系统。
MacBook Pros拥有非常强大的配置但是有些人想强上加强他们想用Linux系统。
不管您是想要更开放和个性化的操作系统又或者您只想要需要用某些在Linux特有的软件您都会想要把Linux装载您的MacBook上。 可惜的是MacBook Pros们可是一块块密不透风砖头让您想装其他系统又无从下手。尤其是Linux比在MacBooks上装Windows还难。 Boot Camp在此时对于Linux来说也是手无对策。 虽然如此,但并不代表您完全不能做到,装机走起!
不管您是想要更开放和个性化的操作系统又或者是您只想要使用某些在Linux特有的软件您都会想要在您的MacBook上安装Linux。 可惜的是MacBook Pro们可是一块块密不透风砖头让您想装其他系统又无从下手。尤其是Linux比在MacBook上装Windows还难。 Boot Camp对于Linux来说也没有什么用处。 虽然如此,但并不代表您完全不能做到,装机走起!
### 为什么要在MacBook Pro Retina上装Linux ###
买MacBook不就是为了OS X吗为何要装Linux 其实买MacBook的原因不必须只是因为它的系统, 其极致的性能,极其耐用的电池以及高大上的持久力都是购买它的原因。 这些这么好的硬件再加上一块能让您体验到HiDPI的清晰度Retina显示屏其不皆是买入的理由乎
买MacBook不就是为了OS X吗为何要装Linux 其实买MacBook的原因不仅仅只是因为它的操作系统, 其极致的硬件性能,超长的电池寿命,以及抗操抗造都是购买它的原因。 这些这么好的硬件再加上一块能让您体验到HiDPI的清晰度Retina显示屏其不皆是买入的理由乎
但是如果您对OS X无爱又或者您真心需要使用Linux为何不将这自由开源小巧个性化的Linux塞进您的高大上硬件呢?苹果可能有话要说了,可谁在乎呢~
但是如果您对OS X无爱又或者您真心想要使用Linux为何不将这自由、开源、小巧、个性化的Linux塞进您的高大上的硬件呢?苹果可能有话要说了,可谁在乎呢~
注:在本期教程我们将会使用[最流行的Linux发行版][1] - Ubuntu来作为我们这次安装的选择。您也可以用自己想用的的Linux发行版但相关的步骤会和本教程有出入。 如果您把自己的系统玩坏了,我们将不承担任何责任。 本教程将教您如何Linux 和 OS X 双系统启动另外只有在OS X 才能升级固件所以我们建议您不要将OS X 删除。
注:在本期教程我们将会使用[最流行的Linux发行版][1] - Ubuntu来作为我们这次安装的选择。您也可以用自己想用的的Linux发行版但相关的步骤会和本教程有出入。 如果您把自己的系统玩坏了,我们将不承担任何责任。 本教程将教您如何 Linux 和 OS X 双系统启动另外只有在OS X才能升级固件所以我们建议您不要将OS X 删除。
但在我们开始之前请您用您喜欢的方法比如Time Machine 或 CrashPlan将您的电脑彻底备份以防万一。
### 下载 Ubuntu ###
首先您需要下载一份[copy of the Ubuntu desktop ISO image][2] 。 该镜像在BIOS和EFI模式下都能启动而Mac版的只能在BIOS启动。 可是我们需要在EFI模式启动所以请确保您选择的是64-bit64位而不是Mac版的64-bit
首先您需要下载一份[Ubuntu桌面版安装镜像][2] 。 务必选择64位的桌面版虽然该镜像并不是为Mac提供的。该镜像在BIOS和EFI模式下都能启动而Mac的镜像却只能在BIOS启动。Mac是专门设计成这样的但是我们要使之以EFI模式下启动
### 存入U盘USB ###
### 写到U盘USB ###
其次第二步, 找个2GB以上的USB, 我们将会用该USB作为Ubuntu的安装启动盘。 你可以按照 [the official Ubuntu steps][3] 或者 [use the dedicated GUI tool for the job][4] 的步骤来准备安装盘.
其次 找个2GB以上的USB 我们将会用该USB作为Ubuntu的安装启动盘。 你可以按照 [Ubuntu官方指导的步骤][3] 或者 [使用专用的图形化工具][4] 来准备安装盘.
### 调整分区大小 ###
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2014/05/mac_linux_disk_utility.jpg?ec7b17)
当你这一步也完成的时候你的大Mac就做好安装的准备了。 打开Disk Utility磁盘工具 点击左边选择你的硬盘, 选择Partitions分区标签页。 把分区调整到你喜欢的大小 - 我们将会用新创建的空间来安装Ubuntu。
当你完成上一步后你的Mac Book Pro就做好安装的准备了。 打开Disk Utility磁盘工具 点击左边选择你的硬盘, 选择Partitions分区标签页。 把Mac分区缩小到你喜欢的大小 - 我们将会用新创建的可用空间来安装Ubuntu。
### 启动Ubuntu镜像 ###
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2014/05/mac_linux_boot.jpg?ec7b17)
当关机之后屏幕一黑时请按住Option键alt知道你看到不同的启动选项。选择EFI选项如果有两个的话选择左边的哪一个来从USB启动Ubuntu.
上述步骤完成后将U盘插入并重启Mac Book Pro。当关机之后屏幕一黑时请按住Option键alt直到你看到不同的启动选项。选择EFI选项如果有两个的话选择左边的哪一个来从USB启动Ubuntu.
当你看到“Try Ubuntu" 和 "Install Ubuntu" 两个选项的时候, 选择 "Try Ubuntu" 因为我们需要在安装完成之后重启之前弄一些其他的东西。
@ -44,11 +44,11 @@ MacBook Pros拥有非常强大的配置有些人想强上加强他们想
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2014/05/mac_linux_installer_partitions.jpg?ec7b17)
一路来到分区这个步骤之后, 选择 "Do Something else" 这个选项。 然后请确保那块大约128MB左右的分区已经设置成EFI启动分区你可以按他一下然后选择Option来确定一下 另外,那一块盘应该是 /dev/sda1. 下一步, 你要在新建的空间里创建一个 ext4分区用“/”路径来安装它。 如果你知道你自己在干嘛的话也可以创建几个不同的分区切记这不是Windows啊孩纸
到分区这个步骤之后, 选择 "Do Something else" 这个选项。 然后请确保那块大约128MB左右的分区已经被识别为EFI启动分区你可以点击它然后选择Option来确定一下 另外,那个分区应该是 /dev/sda1。下一步 你要在新建的空间里创建一个 ext4分区在其上挂载“/”路径。 如果你知道你自己在干嘛的话也可以创建几个不同的分区切记这不是Windows啊孩纸
在你开始下一步之前请确保你的安装引导程序boot loader是选择了 /dev/sda1GRUB也是装到该分区的。 然后按照平常一样该咋装咋装。
### EFI Boot Fix ###
### 修改 EFI 引导 ###
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2014/05/mac_linux_efibootmgr.jpg?ec7b17)
@ -60,9 +60,9 @@ MacBook Pros拥有非常强大的配置有些人想强上加强他们想
sudo efibootmgr
这个将会列印出当前的启动设置, 你应该看到的是 "ubuntu" 和 "Boot0000", 当前的EFI设置是把系统指向 Boot0080, 这样的话就会跳过GRUB然后直接跳入OS X所以我们要用一下指令来修复它:
这个将会显示出当前的启动设置, 你应该看到的是 "ubuntu" 和 "Boot0000*"当前的EFI设置是把系统指向 Boot0080*这样的话就会跳过GRUB然后直接跳入OS X所以我们要用以下指令来修复它:
sudo efibootmgr -o 0,80`
sudo efibootmgr -o 0,80
现在就可以重启了!
@ -70,21 +70,21 @@ MacBook Pros拥有非常强大的配置有些人想强上加强他们想
### 坑爹地调整设置 ###
首先你需要改一下GRUB的设置这样你的SSD盘才不会偶尔死机 输入:
首先你需要改一下GRUB的设置这样你的SSD盘才不会偶尔死机 在Terminal输入:
sudo nano /etc/default/grub
在Terminal找到 **GRUB_CMDLINE_LINUX** 把他改成 **GRUB_CMDLINE_LINUX="libata.force=noncq"** 。 按下CTRL + X保存然后按Y来确定保存。 接下来你要输入:
找到 **GRUB\_CMDLINE\_LINUX**那一行 把它改成 **GRUB\_CMDLINE\_LINUX="libata.force=noncq"** 。 按下CTRL + X保存然后按Y来确定保存。 接下来你要在Terminal输入:
sudo nano /etc/grub.d/40_custom
在Terminal会打开一个新的文件,请使用真丶精准手指准确地一字一字输入:
打开一个新的文件,请使用真丶精准手指准确地一字一字输入:
menuentry "Mac OS X" {
exit
}
这将会让你boot到你的Mac OS X安装程序GRUB的32-bit和64bit项不能用。然后CTRL+X 和 Y 保存退出,然后输入:
这将会让你boot到你安装好的Mac OS XGRUB的32-bit和64-bit项不能用。然后CTRL+X 和 Y 保存退出,然后输入:
sudo update-grub
@ -94,11 +94,11 @@ MacBook Pros拥有非常强大的配置有些人想强上加强他们想
在极其高清的Retina显示屏上神马都这么小坑爹啊啊 去Setting -> Display 里把 Scaling Factor弄大一点吧不然妈妈又要担心你的近视眼了。
你也可能觉得在边边改变窗口大小是一件极其困难的事情,坑爹啊啊? 去Terminal输入
你也可能觉得在边边改变窗口大小是一件极其困难的事情,坑爹啊啊? 去Terminal输入
sudo nano /usr/share/themes/Ambiance/metacity-1/metacity-theme-1.xml
然后在里面修改下面的参数:
然后在里面修改下面的参数:
<distance name="left_width" value="4"/>
<distance name="right_width" value="4"/>
@ -110,15 +110,14 @@ MacBook Pros拥有非常强大的配置有些人想强上加强他们想
/Library/ColorSync/Profiles/Displays/Color LCD-xxxxxx.icc
xxxxxx只是一串随机的字符不过这路径应该只有一个文件。把他搬到你Ubuntu的Home folder 然后到 System Settings > Color 选择 Add New Profile 并选择你那刚弄过来的icc文件
xxxxxx只是一串随机的字符不过这路径应该只有一个文件。把他搬到你Ubuntu的Home folder 然后到 System Settings > Color 选择 Add New Profile 并选择你那刚弄过来的icc文件
### 总结 ###
![](http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2014/05/mac_linux_final.jpg?ec7b17)
恭喜你啦, 现在终于有一台属于你的Linux MacBook Pro Retina啦如果你想把你的Ubuntu弄得更手熟请按 [make Ubuntu feel more like home][5] 尽情地修改配置吧! 该教程也弄用于其他的Mac系统当然每个release都不由不同的好处和坏处。 如果你用的是其他的电脑,请翻一翻[这篇为Ubuntu写的文档][6]
恭喜你啦, 现在终于有一台属于你的Linux MacBook Pro Retina啦如果你想把你的Ubuntu弄得更手熟请按 [让你的Ubuntu 像家一样舒服][5] 尽情地修改配置吧! 该教程也可用于其他的Mac系统当然每种Mac都有不同的好处和坏处。 如果你用的是其他的Mac,请翻一翻[这篇为Ubuntu写的文档][6]
Additionally, feel free to check out [other great Linux distros][7] that you can install to your Mac!
另外你还可以看一下其他可以在Mac安装的[Linux 发行包][7]哦!
Image Credits: [K?rlis Dambr?ns][8] Via Flickr
@ -127,7 +126,7 @@ Image Credits: [K?rlis Dambr?ns][8] Via Flickr
via: http://www.makeuseof.com/tag/install-linux-macbook-pro/
译者:[213edu](https://github.com/213edu) 校对:[校对者ID](https://github.com/校对者ID)
译者:[213edu](https://github.com/213edu) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -8,15 +8,15 @@ APP Grid:一个优秀的Ubuntu软件中心替代品
### App GridUbuntu软件中心替代品 ###
自从2011年的彻底改造后Ubuntu的旗舰应用商店的界面就没怎么变过。这并不是说它在此期间被完全忽略了12.04的开发周期中可以看到[在启动时间上的工作][1]已经做了一些
自从2011年的彻底改造后Ubuntu的旗舰应用商店的界面就没怎么变过。这并不是说它在此期间被完全忽略了在12.04的开发周期中可以看到已经做了一些[减少打开耗时的工作][1]
撇开那个不算,ol USC还是一如既往一篮子的潜力还没被开发。
撇开那个不算,Ubuntu软件中心还是一如既往还有许多潜在功能还没被开发。
App Grid的目标解决这些问题。从零开始,它要求更快的启动时间,更快的反应时间,而且“不感觉混乱,不让人失望”。
App Grid的目标解决这些问题。从零开始,它要求更快的启动时间,更快的反应时间,而且“不感觉混乱,不让人失望”。
在大部分这些方面App Grid取得了成功。它几乎可以立即打开而在界面上点击也确实反应迅速。“不感觉混乱”这一承诺或许有一点小小的争议。该应用有时候要你横向滚动而另外的时候又要你纵向滚动。也有人禁不住会想如果这个应用能把它的网格背景样式扔了可能看起来会显得更专业一些。
作为在Ubuntu上筛选应用程序的一个方式App Grid做出了极大的努力。它支持Ubuntu One上的订购、评级和评论作为Ubuntu默认应用商店的替代品它更好用。
作为在Ubuntu上筛选应用程序的一个方式App Grid做出了极大的努力。它支持Ubuntu One上的订购、评级和评论作为Ubuntu默认应用商店的替代品它更好用。
如果非要说点什么缺点的话,那就是它不是一个开源的应用程序,第一次运行时会显示以下免责声明:
@ -27,18 +27,19 @@ App Grid的目标时解决这些问题。从零开始它要求更快的启动
App Grid可运行在Ubuntu 12.04 LTS13.10以及14.04 LTS版本下。可以通过添加以下PPA软件源来安装
sudo add-apt-repository -y ppa:appgrid/stable
sudo apt-get update && sudo apt-get install app grid
sudo apt-get update && sudo apt-get install appgrid
或者,也可以[从项目网站][2]抓取一个.deb安装包来安装。
- [下载用于Ubuntu 14.04的App Grid安装包][3]
试试吧,试过后请到我们开的空间里来发表一下你的看法吧……
试试吧,试过后请发表一下你的看法吧……
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/05/appgrid-ubuntu-software-centre-alternative
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,370 @@
黑客内核编写属于你的第一个Linux内核模块
================================================================================
> 曾经多少次想要在内核游荡?曾经多少次茫然不知方向?你不要再对着它迷惘,让我们指引你走向前方……
内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中它八成就是了。Linux内核和它的用户空间是大不相同的抛开漫不经心你必须小心翼翼因为你编程中的一个bug就会影响到整个系统。浮点运算做起来可不容易堆栈固定而狭小而你写的代码总是异步的因此你需要想想并发会导致什么。而除了所有这一切之外Linux内核只是一个很大的、很复杂的C程序它对每个人开放任何人都去读它、学习它并改进它而你也可以是其中之一。
学习内核编程的最简单的方式也许就是写个内核模块一段可以动态加载进内核的代码。模块所能做的事是有限的——例如他们不能在类似进程描述符这样的公共数据结构中增减字段LCTT译注可能会破坏整个内核及系统的功能。但是在其它方面他们是成熟的内核级的代码可以在需要时随时编译进内核这样就可以摒弃所有的限制了。完全可以在Linux源代码树以外来开发并编译一个模块这并不奇怪它称为树外开发如果你只是想稍微玩玩而并不想提交修改以包含到主线内核中去这样的方式是很方便的。
在本教程中,我们将开发一个简单的内核模块用以创建一个**/dev/reverse**设备。写入该设备的字符串将以相反字序的方式读回“Hello World”读成“World Hello”。这是一个很受欢迎的程序员面试难题当你利用自己的能力在内核级别实现这个功能时可以使你得到一些加分。在开始前有一句忠告你的模块中的一个bug就会导致系统崩溃虽然可能性不大但还是有可能的和数据丢失。在开始前请确保你已经将重要数据备份或者采用一种更好的方式在虚拟机中进行试验。
### 尽可能不要用root身份 ###
> 默认情况下,**/dev/reverse**只有root可以使用因此你只能使用**sudo**来运行你的测试程序。要解决该限制,可以创建一个包含以下内容的**/lib/udev/rules.d/99-reverse.rules**文件:
>
> SUBSYSTEM=="misc", KERNEL=="reverse", MODE="0666"
>
> 别忘了重新插入模块。让非root用户访问设备节点往往不是一个好主意但是在开发其间却是十分有用的。这并不是说以root身份运行二进制测试文件也不是个好主意。
#### 模块的构造 ####
由于大多数的Linux内核模块是用C写的除了底层的特定于体系结构的部分所以推荐你将你的模块以单一文件形式保存例如reverse.c。我们已经把完整的源代码放在GitHub上——这里我们将看其中的一些片段。开始时我们先要包含一些常见的文件头并用预定义的宏来描述模块
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Valentine Sinitsyn <valentine.sinitsyn@gmail.com>");
MODULE_DESCRIPTION("In-kernel phrase reverser");
这里一切都直接明了,除了**MODULE\_LICENSE()**它不仅仅是一个标记。内核坚定地支持GPL兼容代码因此如果你把许可证设置为其它非GPL兼容的“Proprietary”[专利]),某些特定的内核功能将在你的模块中不可用。
### 什么时候不该写内核模块 ###
> 内核编程很有趣,但是在现实项目中写(尤其是调试)内核代码要求特定的技巧。通常来讲,在没有其它方式可以解决你的问题时,你才应该在内核级别解决它。以下情形中,可能你在用户空间中解决它更好:
> - 你要开发一个USB驱动 —— 请查看[libusb][1]。
> - 你要开发一个文件系统 —— 试试[FUSE][2]。
> - 你在扩展Netfilter —— 那么[libnetfilter\_queue][3]对你有所帮助。
> 通常,内核里面代码的性能会更好,但是对于许多项目而言,这点性能丢失并不严重。
由于内核编程总是异步的,没有一个**main()**函数来让Linux顺序执行你的模块。取而代之的是你要为各种事件提供回调函数像这个
static int __init reverse_init(void)
{
printk(KERN_INFO "reverse device has been registered\n");
return 0;
}
static void __exit reverse_exit(void)
{
printk(KERN_INFO "reverse device has been unregistered\n");
}
module_init(reverse_init);
module_exit(reverse_exit);
这里,我们定义的函数被称为模块的插入和删除。只有第一个的插入函数是必要的。目前,它们只是打印消息到内核环缓冲区(可以在用户空间通过**dmesg**命令访问);**KERN\_INFO**是日志级别(注意,没有逗号)。**\_\_init**和**\_\_exit**是属性 —— 联结到函数或者变量的元数据片。属性在用户空间的C代码中是很罕见的但是内核中却很普遍。所有标记为**\_\_init**的会在初始化后释放内存以供重用还记得那条过去内核的那条“Freeing unused kernel memory…[释放未使用的内核内存……]”信息吗?)。**\_\_exit**表明,当代码被静态构建进内核时,该函数可以安全地优化了,不需要清理收尾。最后,**module\_init()**和**module\_exit()**这两个宏将**reverse\_init()**和**reverse_exit()**函数设置成为我们模块的生命周期回调函数。实际的函数名称并不重要,你可以称它们为**init()**和**exit()**,或者**start()**和**stop()**,你想叫什么就叫什么吧。他们都是静态声明,你在外部模块是看不到的。事实上,内核中的任何函数都是不可见的,除非明确地被导出。然而,在内核程序员中,给你的函数加上模块名前缀是约定俗成的。
这些都是些基本概念 - 让我们来做更多有趣的事情吧。模块可以接收参数,就像这样:
# modprobe foo bar=1
**modinfo**命令显示了模块接受的所有参数,而这些也可以在**/sys/module//parameters**下作为文件使用。我们的模块需要一个缓冲区来存储参数 —— 让我们把这大小设置为用户可配置。在**MODULE_DESCRIPTION()**下添加如下三行:
static unsigned long buffer_size = 8192;
module_param(buffer_size, ulong, (S_IRUSR | S_IRGRP | S_IROTH));
MODULE_PARM_DESC(buffer_size, "Internal buffer size");
这儿我们定义了一个变量来存储该值封装成一个参数并通过sysfs来让所有人可读。这个参数的描述最后一行出现在modinfo的输出中。
由于用户可以直接设置**buffer\_size**,我们需要在**reverse\_init()**来清除无效取值。你总该检查来自内核之外的数据 —— 如果你不这么做,你就是将自己置身于内核异常或安全漏洞之中。
static int __init reverse_init()
{
if (!buffer_size)
return -1;
printk(KERN_INFO
"reverse device has been registered, buffer size is %lu bytes\n",
buffer_size);
return 0;
}
来自模块初始化函数的非0返回值意味着模块执行失败。
### 导航 ###
> 但你开发模块时Linux内核就是你所需一切的源头。然而它相当大你可能在查找你所要的内容时会有困难。幸运的是在庞大的代码库面前有许多工具使这个过程变得简单。首先是Cscope —— 在终端中运行的一个比较经典的工具。你所要做的,就是在内核源代码的顶级目录中运行**make cscope && cscope**。Cscope和Vim以及Emacs整合得很好因此你可以在你最喜爱的编辑器中使用它。
> 如果基于终端的工具不是你的最爱,那么就访问[http://lxr.free-electrons.com][4]吧。它是一个基于web的内核导航工具即使它的功能没有Cscope来得多例如你不能方便地找到函数的用法但它仍然提供了足够多的快速查询功能。
现在是时候来编译模块了。你需要你正在运行的内核版本头文件(**linux-headers**,或者等同的软件包)和**build-essential**或者类似的包。接下来该创建一个标准的Makefile模板
obj-m += reverse.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
现在,调用**make**来构建你的第一个模块。如果你输入的都正确在当前目录内会找到reverse.ko文件。使用**sudo insmod reverse.ko**插入内核模块,然后运行如下命令:
$ dmesg | tail -1
[ 5905.042081] reverse device has been registered, buffer size is 8192 bytes
恭喜了!然而,目前这一行还只是假象而已 —— 还没有设备节点呢。让我们来搞定它。
#### 混杂设备 ####
在Linux中有一种特殊的字符设备类型叫做“混杂设备”或者简称为“misc”。它是专为单一接入点的小型设备驱动而设计的而这正是我们所需要的。所有混杂设备共享同一个主设备号10因此一个驱动(**drivers/char/misc.c**)就可以查看它们所有设备了,而这些设备用次设备号来区分。从其他意义来说,它们只是普通字符设备。
要为该设备注册一个次设备号(以及一个接入点),你需要声明**struct misc\_device**,填上所有字段(注意语法),然后使用指向该结构的指针作为参数来调用**misc\_register()**。为此,你也需要包含**linux/miscdevice.h**头文件:
static struct miscdevice reverse_misc_device = {
.minor = MISC_DYNAMIC_MINOR,
.name = "reverse",
.fops = &reverse_fops
};
static int __init reverse_init()
{
...
misc_register(&reverse_misc_device);
printk(KERN_INFO ...
}
这儿我们为名为“reverse”的设备请求一个第一个可用的动态的次设备号省略号表明我们之前已经见过的省略的代码。别忘了在模块卸下后注销掉该设备。
static void __exit reverse_exit(void)
{
misc_deregister(&reverse_misc_device);
...
}
fops字段存储了一个指针指向一个**file\_operations**结构在Linux/fs.h中声明而这正是我们模块的接入点。**reverse\_fops**定义如下:
static struct file_operations reverse_fops = {
.owner = THIS_MODULE,
.open = reverse_open,
...
.llseek = noop_llseek
};
另外,**reverse\_fops**包含了一系列回调函数(也称之为方法),当用户空间代码打开一个设备,读写或者关闭文件描述符时,就会执行。如果你要忽略这些回调,可以指定一个明确的回调函数来替代。这就是为什么我们将**llseek**设置为**noop\_llseek()**,(顾名思义)它什么都不干。这个默认实现改变了一个文件指针,而且我们现在并不需要我们的设备可以寻址(这是今天留给你们的家庭作业)。
#### 关闭和打开 ####
让我们来实现该方法。我们将给每个打开的文件描述符分配一个新的缓冲区并在它关闭时释放。这实际上并不安全如果一个用户空间应用程序泄漏了描述符也许是故意的它就会霸占RAM并导致系统不可用。在现实世界中你总得考虑到这些可能性。但在本教程中这种方法不要紧。
我们需要一个结构函数来描述缓冲区。内核提供了许多常规的数据结构链接列表双联的哈希表树等等之类。不过缓冲区常常从头设计。我们将调用我们的“struct buffer”
struct buffer {
char *data, *end, *read_ptr;
unsigned long size;
};
**data**是该缓冲区存储的一个指向字符串的指针,而**end**指向字符串结尾后的第一个字节。**read_ptr**是**read()**开始读取数据的地方。缓冲区的size是为了保证完整性而存储的 —— 目前,我们还没有使用该区域。你不能假设使用你结构体的用户会正确地初始化所有这些东西,所以最好在函数中封装缓冲区的分配和收回。它们通常命名为**buffer\_alloc()**和**buffer\_free()**。
static struct buffer *buffer_alloc(unsigned long size)
{
struct buffer *buf;
buf = kzalloc(sizeof(*buf), GFP_KERNEL);
if (unlikely(!buf))
goto out;
...
out:
return buf;
}
内核内存使用**kmalloc()**来分配,并使用**kfree()**来释放;**kzalloc()**的风格是将内存设置为全零。不同于标准的**malloc()**,它的内核对应部分收到的标志指定了第二个参数中请求的内存类型。这里,**GFP_KERNEL**是说我们需要一个普通的内核内存不是在DMA或高内存区中以及如果需要的话函数可以睡眠重新调度进程。**sizeof(*buf)**是一种常见的方式,它用来获取可通过指针访问的结构体的大小。
你应该随时检查**kmalloc()**的返回值访问NULL指针将导致内核异常。同时也需要注意**unlikely()**宏的使用。它(及其相对宏**likely()**)被广泛用于内核中,用于表明条件几乎总是真的(或假的)。它不会影响到控制流程,但是能帮助现代处理器通过分支预测技术来提升性能。
最后,注意**goto**语句。它们常常为认为是邪恶的但是Linux内核以及一些其它系统软件采用它们来实施集中式的函数退出。这样的结果是减少嵌套深度使代码更具可读性而且非常像更高级语言中的**try-catch**区块。
有了**buffer\_alloc()**和**buffer\_free()****open**和**close**方法就变得很简单了。
static int reverse_open(struct inode *inode, struct file *file)
{
int err = 0;
file->private_data = buffer_alloc(buffer_size);
...
return err;
}
**struct file**是一个标准的内核数据结构,用以存储打开的文件的信息,如当前文件位置(**file->f\_pos**)、标志(**file->f\_flags**),或者打开模式(**file->f\_mode**)等。另外一个字段**file->privatedata**用于关联文件到一些专有数据它的类型是void *,而且它在文件拥有者以外,对内核不透明。我们将一个缓冲区存储在那里。
如果缓冲区分配失败,我们通过返回否定值(**-ENOMEM**来为调用的用户空间代码标明。一个C库中调用的**open(2)**系统调用(如 **glibc**)将会检测这个并适当地设置**errno** 。
#### 学习如何读和写 ####
“read”和“write”方法是真正完成工作的地方。当数据写入到缓冲区时我们放弃之前的内容和反向地存储该字段不需要任何临时存储。**read**方法仅仅是从内核缓冲区复制数据到用户空间。但是如果缓冲区还没有数据,**revers\_eread()**会做什么呢?在用户空间中,**read()**调用会在有可用数据前阻塞它。在内核中你就必须等待。幸运的是有一项机制用于处理这种情况就是wait queues
想法很简单。如果当前进程需要等待某个事件,它的描述符(**struct task_struct**存储current信息被放进非可运行睡眠中状态并添加到一个队列中。然后**schedule()**就被调用来选择另一个进程运行。生成事件的代码通过使用队列将等待进程放回**TASK\_RUNNING**状态来唤醒它们。调度程序将在以后在某个地方选择它们之一。Linux有多种非可运行状态最值得注意的是**TASK\_INTERRUPTIBLE**(一个可以通过信号中断的睡眠)和**TASK\_KILLABLE**(一个可被杀死的睡眠中的进程)。所有这些都应该正确处理,并等待队列为你做这些事。
一个用以存储读取等待队列头的天然场所就是结构缓冲区,所以从为它添加**wait\_queue\_head_t read\_queue**字段开始。你也应该包含**linux/sched.h**头文件。可以使用DECLARE\_WAITQUEUE()宏来静态声明一个等待队列。在我们的情况下,需要动态初始化,因此添加下面这行到**buffer\_alloc()**
init_waitqueue_head(&buf->read_queue);
我们等待可用数据;或者等待**read\_ptr != end**条件成立。我们也想要让等待操作可以被中断通过Ctrl+C。因此“read”方法应该像这样开始
static ssize_t reverse_read(struct file *file, char __user * out,
size_t size, loff_t * off)
{
struct buffer *buf = file->private_data;
ssize_t result;
while (buf->read_ptr == buf->end) {
if (file->f_flags & O_NONBLOCK) {
result = -EAGAIN;
goto out;
}
if (wait_event_interruptible
(buf->read_queue, buf->read_ptr != buf->end)) {
result = -ERESTARTSYS;
goto out;
}
}
...
我们让它循环,直到有可用数据,如果没有则使用**wait\_event\_interruptible()**(它是一个宏,不是函数,这就是为什么要通过值的方式给队列传递)来等待。好吧,如果**wait\_event\_interruptible()**被中断它返回一个非0值这个值代表**-ERESTARTSYS**。这段代码意味着系统调用应该重新启动。**file->f\_flags**检查以非阻塞模式打开的文件数:如果没有数据,返回**-EAGAIN**。
我们不能使用**if()**来替代**while()**,因为可能有许多进程正等待数据。当**write**方法唤醒它们时,调度程序以不可预知的方式选择一个来运行,因此,在这段代码有机会执行的时候,缓冲区可能再次空出。现在,我们需要将数据从**buf->data** 复制到用户空间。**copy\_to\_user()**内核函数就干了此事:
size = min(size, (size_t) (buf->end - buf->read_ptr));
if (copy_to_user(out, buf->read_ptr, size)) {
result = -EFAULT;
goto out;
}
如果用户空间指针错误,那么调用可能会失败;如果发生了此事,我们就返回**-EFAULT**。记住,不要相信任何来自内核外的事物!
buf->read_ptr += size;
result = size;
out:
return result;
}
为了使数据在任意块可读,需要进行简单运算。该方法返回读入的字节数,或者一个错误代码。
写方法更简短。首先,我们检查缓冲区是否有足够的空间,然后我们使用**copy\_from\_userspace()**函数来获取数据。再然后**read\_ptr**和结束指针会被重置,并且反转存储缓冲区内容:
buf->end = buf->data + size;
buf->read_ptr = buf->data;
if (buf->end > buf->data)
reverse_phrase(buf->data, buf->end - 1);
这里, **reverse\_phrase()**干了所有吃力的工作。它依赖于**reverse\_word()**函数,该函数相当简短并且标记为内联。这是另外一个常见的优化;但是,你不能过度使用。因为过多的内联会导致内核映像徒然增大。
最后,我们需要唤醒**read\_queue**中等待数据的进程,就跟先前讲过的那样。**wake\_up\_interruptible()**就是用来干此事的:
wake_up_interruptible(&buf->read_queue);
耶!你现在已经有了一个内核模块,它至少已经编译成功了。现在,是时候来测试了。
### 调试内核代码 ###
> 或许,内核中最常见的调试方法就是打印。如果你愿意,你可以使用普通的**printk()** (假定使用**KERN\_DEBUG**日志等级。然而那儿还有更好的办法。如果你正在写一个设备驱动这个设备驱动有它自己的“struct device”可以使用**pr\_debug()**或者**dev\_dbg()**:它们支持动态调试(**dyndbg**)特性,并可以根据需要启用或者禁用(请查阅**Documentation/dynamic-debug-howto.txt**)。对于单纯的开发消息,使用**pr\_devel()**除非设置了DEBUG否则什么都不会做。要为我们的模块启用DEBUG请添加以下行到Makefile中
> CFLAGS_reverse.o := -DDEBUG
>
> 完了之后,使用**dmesg**来查看**pr_debug()**或**pr_devel()**生成的调试信息。
> 或者,你可以直接发送调试信息到控制台。要想这么干,你可以设置**console_loglevel**内核变量为8或者更大的值**echo 8 /proc/sys/kernel/printk**),或者在高日志等级,如**KERN_ERR**,来临时打印要查询的调试信息。很自然,在发布代码前,你应该移除这样的调试声明。
> 注意内核消息出现在控制台不要在Xterm这样的终端模拟器窗口中去查看这也是在内核开发时建议你不在X环境下进行的原因。
### 惊喜,惊喜! ###
编译模块,然后加载进内核:
$ make
$ sudo insmod reverse.ko buffer_size=2048
$ lsmod
reverse 2419 0
$ ls -l /dev/reverse
crw-rw-rw- 1 root root 10, 58 Feb 22 15:53 /dev/reverse
一切似乎就位。现在,要测试模块是否正常工作,我们将写一段小程序来翻转它的第一个命令行参数。**main()**(再三检查错误)可能看上去像这样:
int fd = open("/dev/reverse", O_RDWR);
write(fd, argv[1], strlen(argv[1]));
read(fd, argv[1], strlen(argv[1]));
printf("Read: %s\n", argv[1]);
像这样运行:
$ ./test 'A quick brown fox jumped over the lazy dog'
Read: dog lazy the over jumped fox brown quick A
它工作正常!玩得更逗一点:试试传递单个单词或者单个字母的短语,空的字符串或者是非英语字符串(如果你有这样的键盘布局设置),以及其它任何东西。
现在,让我们让事情变得更好玩一点。我们将创建两个进程,它们共享一个文件描述符(及其内核缓冲区)。其中一个会持续写入字符串到设备,而另一个将读取这些字符串。在下例中,我们使用了**fork(2)**系统调用而pthreads也很好用。我也省略打开和关闭设备的代码并在此检查代码错误又来了
char *phrase = "A quick brown fox jumped over the lazy dog";
if (fork())
/* Parent is the writer */
while (1)
write(fd, phrase, len);
else
/* child is the reader */
while (1) {
read(fd, buf, len);
printf("Read: %s\n", buf);
}
你希望这个程序会输出什么呢?下面就是在我的笔记本上得到的东西:
Read: dog lazy the over jumped fox brown quick A
Read: A kcicq brown fox jumped over the lazy dog
Read: A kciuq nworb xor jumped fox brown quick A
Read: A kciuq nworb xor jumped fox brown quick A
...
这里发生了什么呢?就像举行了一场比赛。我们认为**read**和**write**是原子操作,或者从头到尾一次执行一个指令。然而,内核确实无序并发的,随便就重新调度了**reverse\_phrase()**函数内部某个地方运行着的写入操作的内核部分。如果在写入操作结束前就调度了**read()**操作呢就会产生数据不完整的状态。这样的bug非常难以找到。但是怎样来处理这个问题呢
基本上,我们需要确保在写方法返回前没有**read**方法能被执行。如果你曾经编写过一个多线程的应用程序你可能见过同步原语如互斥锁或者信号。Linux也有这些但有些细微的差别。内核代码可以运行进程上下文用户空间代码的“代表”工作就像我们使用的方法和终端上下文例如一个IRQ处理线程。如果你已经在进程上下文中和并且你已经得到了所需的锁你只需要简单地睡眠和重试直到成功为止。在中断上下文时你不能处于休眠状态因此代码会在一个循环中运行直到锁可用。关联原语被称为自旋锁但在我们的环境中一个简单的互斥锁 —— 在特定时间内只有唯一一个进程能“占有”的对象 —— 就足够了。处于性能方面的考虑,现实的代码可能也会使用读-写信号。
锁总是保护某些数据在我们的环境中是一个“struct buffer”实例而且也常常会把它们嵌入到它们所保护的结构体中。因此我们添加一个互斥锁struct mutex lock到“struct buffer”中。我们也必须用**mutex\_init()**来初始化互斥锁;**buffer\_alloc**是用来处理这件事的好地方。使用互斥锁的代码也必须包含**linux/mutex.h**。
互斥锁很像交通信号灯 —— 要是司机不看它和不听它的,它就没什么用。因此,在对缓冲区做操作并在操作完成时释放它之前,我们需要更新**reverse\_read()**和**reverse\_write()**来获取互斥锁。让我们来看看**read**方法 —— **write**的工作原理相同:
static ssize_t reverse_read(struct file *file, char __user * out,
size_t size, loff_t * off)
{
struct buffer *buf = file->private_data;
ssize_t result;
if (mutex_lock_interruptible(&buf->lock)) {
result = -ERESTARTSYS;
goto out;
}
我们在函数一开始就获取锁。**mutex\_lock\_interruptible()**要么得到互斥锁然后返回,要么让进程睡眠,直到有可用的互斥锁。就像前面一样,**\_interruptible**后缀意味着睡眠可以由信号来中断。
while (buf->read_ptr == buf->end) {
mutex_unlock(&buf->lock);
/* ... wait_event_interruptible() here ... */
if (mutex_lock_interruptible(&buf->lock)) {
result = -ERESTARTSYS;
goto out;
}
}
下面是我们的“等待数据”循环。当获取互斥锁时,或者发生称之为“死锁”的情境时,不应该让进程睡眠。因此,如果没有数据,我们释放互斥锁并调用**wait\_event\_interruptible()**。当它返回时,我们重新获取互斥锁并像往常一样继续:
if (copy_to_user(out, buf->read_ptr, size)) {
result = -EFAULT;
goto out_unlock;
}
...
out_unlock:
mutex_unlock(&buf->lock);
out:
return result;
最后,当函数结束,或者在互斥锁被获取过程中发生错误时,互斥锁被解锁。重新编译模块(别忘了重新加载),然后再次进行测试。现在你应该没发现毁坏的数据了。
### 接下来是什么? ###
现在你已经尝试了一次内核黑客。我们刚刚为你揭开了这个话题的外衣里面还有更多东西供你探索。我们的第一个模块有意识地写得简单一点在从中学到的概念在更复杂的环境中也一样。并发、方法表、注册回调函数、使进程睡眠以及唤醒进程这些都是内核黑客们耳熟能详的东西而现在你已经看过了它们的运作。或许某天你的内核代码也将被加入到主线Linux源代码树中 —— 如果真这样,请联系我们!
--------------------------------------------------------------------------------
via: http://www.linuxvoice.com/be-a-kernel-hacker/
译者:[GOLinux](https://github.com/GOLinux) [disylee](https://github.com/disylee) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.libusb.org/
[2]:http://fuse.sf.net/
[3]:http://www.linuxvoice.com/be-a-kernel-hacker/www.netfilter.org/projects/libnetfilter_queue
[4]:http://lxr.free-electrons.com/

View File

@ -0,0 +1,135 @@
在linux桌面上观看2014年巴西世界杯比赛
================================================================================
足球是世界上受众最广和观众最多的运动现代足球起源于英国。足球运动员平均每场比赛要跑6个多英里。上届南非世界杯有近10亿的电视观众而今年的的观赛数量预计还要增加。
2014年第20界世界杯在巴西举行时间安排为从6月12号开始持续到7月13号共有32个国家参加这项赛事。
爱足球的小伙子们我们将要介绍一款可以提供最新的赛况以及你喜欢的球队的进球数信息的应用程序它叫做“icup 2014 Brazil”。下面让我们介绍它的特点用法和安装等。
![iCup 2014 Brazil](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014.jpeg)
*iCup 2014 Brazil*
### 什么是“icup 2014 Brazil” ###
“icup 2014 Brazil”简单的说是一个应用程序在linux桌面为你提供2014年世界杯的最新比赛赛况。
### “icup 2014 Brazil”的特点###
- 自适应的用户界面,比如自动缩放
- 迅速查看战绩
- 支持Facebook、twitter和Google+社交分享功能
- 支持Retina显示输出
- 实时跟踪比赛结果
- 包括32个国家的国歌小工具配合露天广场效果很不错
- 内置日历和时区工具,实时的显示当天数据,图像化展示最新的战况和得分
- 支持代理
### 平台和框架支持 ###
这款软件可以运行在Mac、windows和linux上特别提醒在Linux上它是为x86的CPU设计的虽然它也可以在x64的平台上安装不过我们需要做一下设置。
#### 在不同平台的技术规范 ####
- 实时结果,日历,数据分组,第二阶段整合,社交网络连接和多语言支持,这些支持全平台
- Retina显示支持这个不支持windows和linux仅支持Mac OS
- 详细的统计-支持linux。在windows和Mac需要捐赠才行
- 声音小工具-支持MAC和linuxwindows不确定
**重要**: 上面的特点都支持一些具体的特性除了linux外都不是免费提供的这是为了支付服务器和带宽费用。对于linux用户来说任何细节不需要关心高兴的用去吧。
### Linux下安装“icup 2014 Brazil” ###
首先去[“icup 2014 Brazil”官方下载页面][1]下载你电脑平台的软件版本
#### 32位下的安装步骤 ####
# cd Downloads/
# tar xvf iCup_2014_FREE-Brazil_1.1_linux.tar.bz2
# cd iCup\ 2014\ FREE\ -\ Brazil\ 1.1/
# chmod 755 iCup\ 2014\ FREE\ -\ Brazil
如上文所说这个应用程序只为X86架构设计为了在64位架构下安装32位的软件我们需要在系统上安装一些软件包**GTK+2**和**libstdc++.so.6**。
不只是这款软件一大堆Linux下的软件不支持64位架构例如**Skype**,我们也需要这样调整我们的系统来安装这些软件。
#### 在64位系统下 ####
安装**GTK+2**和**libstdc++so.6**用如下apt或者yum命令
$ sudo apt-get install libgtk2.0-0 libstdc++6 [在基于Debian系统上执行这个命令]
如果有报错的话,运行下面的命令来解决
$ sudo apt-get -f install
----------
# yum install gtk2 libstdc++ [在基于Redhat系统上执行这个命令]
需要的软件包安装完后就可以在64位系统下安装32位的软件了进入你的下载目录找到“**icup 2014 Brazil**”安装包然后执行下面的命令
# cd Downloads/
# tar xvf iCup_2014_FREE-Brazil_1.1_linux.tar.bz2
# cd iCup\ 2014\ FREE\ -\ Brazil\ 1.1/
# chmod 755 iCup\ 2014\ FREE\ -\ Brazil
然后,进入软件所在目录,双击可执行文件启动软件。下面的截屏图中看不到所有的信息,**因为本文写作时2014年世界杯现在还没开始呢开始后我们就能看到结果了**。
![iCup Brazil 2014](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014-01-620x437.jpeg)
iCup Brazil 2014
无具体信息,世界杯尚未开始。
![Match Detailed Information](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014-02-620x439.jpeg)
Match Detailed Information
分组和队伍
![Groups and Teams](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014-03-620x439.jpeg)
Groups and Teams
第二阶段详细信息
![2nd stage Detailed Information](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014-04-620x438.jpeg)
2nd stage Detailed Information
比赛细节,尚未完整
![Match Summary](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014-05-620x440.jpeg)
Match Summary
集成语言切换和社交分享按钮
![Language Change](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014-06-620x440.jpeg)
Language Change
Linux上捐赠是可选的你可以贡献你的心意。
![Donation](http://www.tecmint.com/wp-content/uploads/2014/06/Football-World-Cup-2014-07-620x435.jpeg)
Donation
### 总结 ###
上面的这个软件有望成为足球粉丝的一大福利,赶快在线试用吧。
好了我马上又有一个有趣的文章了。请保持关注Tecmint.com。请在评论区对我们的工作给予反馈。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/view-fifa-world-cup-matche-results/
译者:[jiajia9linuxer](https://github.com/jiajia9linuxer) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.e-link.it/icup/brazil2014/icup-brazil-2014-desktop-app.php

View File

@ -1,26 +1,25 @@
如何使用ffmpeg从视频中提取图片(有些专业词汇不太懂可能翻译错了,各位校译幸苦了)
如何使用ffmpeg从视频中提取图片
================================================================================
unixmen的读者们
你曾想过从一个视频文件中提取图片吗在Linux中做这件事是有可能的,教程中我将使用ffmpeg来从视频中获取图片。
你曾想过从一个视频文件中提取图片吗在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片。
### 什么是ffmpegWhat is ffmpeg? ###
ffmpeg是一个非常有用的命令行程序它可以用来转码媒体文件。它是FFmpeg领先的多媒体框架的一部分,其有很多功能,比如解码、编码、转码、混流、分离、转化为流、过滤以及播放几乎所有的由人和机器创建的媒体文件。
ffmpeg是一个非常有用的命令行程序它可以用来转码媒体文件。它是领先的多媒体框架FFmpeg的一部分,其有很多功能,比如解码、编码、转码、混流、分离、转化为流、过滤以及播放几乎所有的由人和机器创建的媒体文件。
框架中包含有很多不同的工具,其中每一个都有特定的功能。例如ffserver能够将多媒体文件转化为用于实时广播的流ffprobe用于分析多媒体流ffplay可以当作一个简易的媒体播放器**ffmpeg**能够转换多媒体文件格式。
在这个框架中包含有各种工具,每一个用于完成特定的功能。例如ffserver能够将多媒体文件转化为用于实时广播的流ffprobe用于分析多媒体流ffplay可以当作一个简易的媒体播放器**ffmpeg**能够转换多媒体文件格式。
如果你感兴趣,以下是包括在FFmpeg框架中的开发者库
如果你感兴趣,以下列出的是FFmpeg框架中包含的开发者库:
- libavutil是一个包含简化编程功能的库其中包括随机数生成器数据结构数学代码核心多媒体工具等更多东西。
- libavcodec是一个包含音频/视频解码器和编码器的库。
- libavformat是一个包含了多媒体格式的解析器和产生器的库。
- libavdevice是一个包含输入输出设备的库用于捕捉和渲染很多公共多媒体输入/输出软件框架包括Video4LinuxVideo4Linux2VfW和ALSA。
- libavformat是一个包含了多媒体格式的分离器和混流器的库。
- libavdevice是一个包含输入输出设备的库用于捕捉和渲染很多来自常用的多媒体输入/输出软件框架的数据包括Video4LinuxVideo4Linux2VfW和ALSA。
- libavfilter是一个包含媒体过滤器的库。
- libswscale是一个用于执行高度优化的图像缩放和颜色空间/像素格式转换操作的库。
- libswresample是一个用于执行高度优化的音频重采样重新矩阵和样格式转换操作的库。
- libswresample是一个用于执行高度优化的音频重采样重新矩阵和样格式转换操作的库。
**注意**ffmpeg和FFmpeg并不一样。FFmpeg是一个框架而ffmpeg是一个FFmpeg中的一个功能。
**注意**ffmpeg和FFmpeg不是同一个东西。FFmpeg是框架而ffmpeg是一个其中的一个功能。
### 开始行动 ###
@ -57,9 +56,9 @@ Fedora用户可以从源中直接安装ffmpeg。
之后我使用以下命令从视频中提取图片。
ffmpeg -i "Тимати - Рентген ( Альбом '13')-C9Plztvv8ac.mp4" -r 1 -q:v 2 -f image2 image-3%d.jpeg
ffmpeg -i "你是我的小呀小苹果儿.mp4" -r 1 -q:v 2 -f image2 image-3%d.jpeg
**-i**选项用来获取输入文件,在这里是视频文件名**Тимати Рентген ( Альбом 13)-C9Plztvv8ac.mp4**-r选项设置每秒提取图片的帧数。我想要每秒提取一帧。
**-i**选项用来获取输入文件,在这里是视频文件名**你是我的小呀小苹果儿.mp4**-r选项设置每秒提取图片的帧数。我想要每秒提取一帧。
之后有一个重要的选项是-q:v应该留意这个选项并且我很喜欢用它它用来设置提取到的图片质量。我总是设置值为2来从视频中获取高质量图片。
@ -67,6 +66,6 @@ Fedora用户可以从源中直接安装ffmpeg。
via: http://www.unixmen.com/extract-images-videos-using-ffmpeg/
译者:[linuhap](https://github.com/linuhap) 校对:[校对者ID](https://github.com/校对者ID)
译者:[linuhap](https://github.com/linuhap) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,33 @@
在Linux上用iCup追世界杯
================================================================================
![](http://180016988.r.cdn77.net/wp-content/uploads/2014/06/icup2014-790x389.png)
Linux 极客们,
在本文简短的叙述中我将教您如何在Linux中安装一个非常棒的2014FIFA世界杯APP。这个应用叫iCup支持WindowsMac以及伟大的Linux。
我看足球比赛已经有很长的时间了所以我得在我的电脑上装个这样的应用来保持更新2014世界杯的最新情况。我可不想在我朋友们面前看起来像一无所知的笨货。iCup应用正好提供了每一场赛程、比分、球队教练组等信息。更有提供实时比赛更新给您提供 正在进行的比赛的最新数据。
### 支持以下功能: ###
- 30种语言支持完全本地化使用语言菜单选择
- 独家的灵活界面可随意调整窗口大小
- 可按日期或阶段检索比赛日历
- 可视化分组
- 支持自动转变比赛时间来适应本地时间和格式
- 一键化社交网络发表比赛评论支持FacebookGoogle+和Twitter
- 支持代理(支持基本认证和摘要认证方法)
我已经在Ubuntu12.04LTS上用过而且真的很好用!目前为止,这款软件还没有出错或者崩溃过。通过[官方网站][1]您可以下载到压缩包并且十分轻松地安装这个很棒的应用然后您可以解压到任何您喜欢的地方。解压完成后双击iCup 2014 FREE- Brazil运行。
iCup真心好用我希望您也能用其享受世界杯
--------------------------------------------------------------------------------
via: http://www.unixmen.com/install-icup-2014-linux/
译者:[Vic020](http://www.vicyu.net) 校对:[213edu](http://ryanhu.me/)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.e-link.it/icup/brazil2014/icup-brazil-2014-desktop-app.php

View File

@ -2,11 +2,12 @@ Linux使用bash删除目录中的特定文件
================================================================================
![](http://s0.cyberciti.org/images/category/old/terminal.png)
我是一个Linux新手用户。现在我需要清理一个下载目录中的文件其实我就是想删除/Download/文件夹下面除了以下格式的文件外所以其它文件:
*.iso - 所有的iso格式的文件。
*.zip - 所有zip格式的文件。
我是一名Linux新用户。现在我需要清理一个下载目录中的文件其实我就是想从/Download/文件夹删去除了以下格式的文件外所以其它文件:
我如何在一个基于LinuxOS X 或者Unix-like系统上的bash shell中删除特定的文件呢
- *.iso - 所有的iso格式的文件。
- *.zip - 所有zip格式的文件。
我如何在一个基于LinuxOS X 或者 Unix-like 系统上的bash shell中删除特定的文件呢
Bash shell 支持丰富的文件模式匹配符例如:
@ -18,13 +19,15 @@ Bash shell 支持丰富的文件模式匹配符例如:
这里你需要用系统内置的shopt命令来开启shell中的extglob选项然后你就可以使用扩展的模式符了这些模式匹配符如下
1. ?(pattern-list) 匹配零次或一次给定的模式。
1. *(pattern-list) -至少匹配零次给定的模式。
1. +(pattern-list) 至少匹配一次给定的模式。
1. @(pattern-list) 匹配一次给定的模式。
1. !(pattern-list) 匹配所有除给定模式以外的模式。
1. ?(模式列表) 匹配零次或一次给定的模式。
1. *(模式列表) 匹配零次或多次给定的模式。
1. +(模式列表) 至少匹配一次给定的模式。
1. @(模式列表) 匹配一次给定的模式。
1. !(模式列表) 不匹配给定模式。
一个模式列表就是一个或多个用 | 分开的模式文件名。首先打开extgolb选项
一个模式列表就是一个或多个用 | 分开的模式(文件名)。
首先要打开extgolb选项
shopt -s extglob
@ -47,20 +50,21 @@ rm 命令的语法格式为:
## 你也可以使用完整的目录 ##
rm /Users/vivek/!(*.zip|*.iso|*.mp3)
## 传递参数 ##
rm [options] !(*.zip|*.iso)
## 也可以传递参数 ##
rm [选项] !(*.zip|*.iso)
rm -v !(*.zip|*.iso)
rm -f !(*.zip|*.iso)
rm -v -i !(*.php)
最后,关闭 extglob 选项:
最后,关闭 extglob 选项方法如下
shopt -u extglob
### 策略 #2: 使用bash的 GLOBIGNORE 变量删除指定文件以外的所有文件 ###
摘自 [bash(1)][1] 手册页:
> 一个用冒号分开的模式列表定义了被路径扩展忽略的文件的集合。如果一个文件同时与路径扩展模式和GLOBIGNORE中的模式匹配那么它就从匹配列表中移除了。
> 这是一个用冒号分开的模式列表通过路径展开方式定义了要忽略的文件集合。如果一个匹配到路径展开模式的文件也匹配GLOBIGNORE中的模式那么它会从匹配列表中移除。
要删除所有文件只保留 zip 和 iso 文件,应如下设置 GLOBIGNORE
@ -75,16 +79,16 @@ rm 命令的语法格式为:
如果你正在使用 tcsh/csh/sh/ksh 或者其它shell你可以在Unixlike系统上试着用下面find命令的语法格式来删除文件
find /dir/ -type f -not -name 'PATTERN' -delete
find /dir/ -type f -not -name '匹配模式' -delete
或者
## 对于怪异的文件名可以使用 xargs ##
find /dir/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm {}
find /dir/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm [options] {}
find /dir/ -type f -not -name '匹配模式' -print0 | xargs -0 -I {} rm {}
find /dir/ -type f -not -name '匹配模式' -print0 | xargs -0 -I {} rm [选项] {}
为了删除 /source 目录下除 php 以外的文件,键入:
想要删除 /source 目录下除 php 以外的文件,键入:
find ~/sources/ -type f -not -name '*.php' -delete
@ -103,9 +107,9 @@ rm 命令的语法格式为:
via: http://www.cyberciti.biz/faq/linux-bash-delete-all-files-in-directory-except-few/
译者:[Linchenguang](https://github.com/Linchenguang) 校对:[校对者ID](https://github.com/校对者ID)
译者:[Linchenguang](https://github.com/Linchenguang) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.manpager.com/linux/man1/bash.1.html
[2]:http://www.manpager.com/linux/man1/find.1.html
[2]:http://www.manpager.com/linux/man1/find.1.html

View File

@ -1,28 +1,30 @@
Linux下的在线云音乐播放器 —— Nuvola Player 2.4.0发布
================================================================================
**Nuvola Player**是一个开源的播放器,在它自身的web界面中运行像Amazon云播放器BandcampDeezer8tracksGoogle Play音乐GroovesharkHyper Machine以及Pandora等等云音乐服务同时它也能整合到Linux桌面中。
**Nuvola Player**是一个开源的播放器,可以在其web界面中运行像Amazon云播放器BandcampDeezer8tracksGoogle Play音乐GroovesharkHyper Machine以及Pandora等等云音乐服务同时它也能整合到Linux桌面中。
该应用程序以插件的形式提供了大量的功能特性像桌面通知、系统托盘、多媒体键、媒体播放器小程序、停靠栏菜单、歌词、last.fm等等。
**2014年5月31日****Nuvola Player 2.4.0**的一个新版本发布了 —— 它带来了一些新的特性,包括两个新的服务罗技媒体服务器和这是我的果酱以及众多的bug修复。
**2014年5月31日****Nuvola Player 2.4.0**的一个新版本发布了 —— 它带来了一些新的特性,包括两个新的服务“Logitech Media Server”和“This is My Jam ”以及众多的bug修复。
### 这个发布中有什么新东西 ###
- 删除了破损的隐藏Google+按钮选项因为Google修改代码过于频繁。
- 删除了破损的隐藏Google+按钮选项因为Google修改代码过于频繁
- 加快了服务设置的启用速度,不需要再重新加载。
- 修复了暂停和播放/暂停动作开关。
- 为Chrome添加了兼容问题警告桌面通知。
- 提供了页面内导航按钮现在用户可以在Google Play标识旁边的顶部栏中找到它
- 添加了罗技媒体服务器和这是我的果酱服务。
- 添加了“Logitech Media Server”和“This is My Jam ”服务。
- 包含了对鼠标后退/前进按钮的支持。
- 修复了对GNOME锁屏通知的支持。
要查看完整的特性列表,请访问官方发行[声明页面][1]
### 在Debian, Ubuntu和Linux Mint中安装Nuvola Player ###
## 在Debian, Ubuntu和Linux Mint中安装Nuvola Player ##
官方的Nuvola Player仓库中包含了**Ubuntu 14.04, 13.10, 12.10, 12.04**以及**Linux Mint 17, 16, 15, 14.**可用的二进制包你可以通过添加Nuvola Player仓库到你的系统中来安装二进制包nuvolaplayer
#### 在Ubuntu和Linux Mint上 ####
### 在Ubuntu和Linux Mint上 ###
打开终端并运行以下一系列命令:
$ sudo add-apt-repository ppa:nuvola-player-builders/stable
@ -36,7 +38,8 @@ Linux下的在线云音乐播放器 —— Nuvola Player 2.4.0发布
$ sudo apt-get --no-install-recommends install nuvolaplayer
#### 在Debian上 ####
### 在Debian上 ###
对于**Debian Wheezy**和**Debian Sid**可以从官方仓库中获取稳定的Nuvola Player二进制包。你可以使用下面这一堆命令来安装最新的稳定版。
首先,打开终端并导入公钥,然后添加仓库到‘**sources.list**文件接着像下面这样进行一次系统更新来安装nuvolaplayer。
@ -97,7 +100,7 @@ Rdio音乐服务
via: http://www.tecmint.com/install-nuvola-player-in-linux/
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -12,7 +12,7 @@
### 1. 写一个shell脚本来得到当前的日期时间用户名和当前工作目录。 ###
> **Answer** : 将输出用户名当前日期和时间以及当前工作目录的命令就是lognamedatewho i am和pwd。
> **答案** : 输出用户名当前日期和时间以及当前工作目录的命令就是lognamedatewho i am和pwd。
现在,创建一个名为**`userstats.sh`**文件,将下面的代码添加到它。
@ -22,7 +22,7 @@
echo "User is `who i am`"
echo "Current directory `pwd`"
添加执行权限,并且执行他。
添加执行权限,并且执行他。
# chmod 755 userstats.sh
# ./userstats.sh
@ -34,10 +34,9 @@
User is avi pts/0 2014-06-07 11:59 (:0)
Current directory /home/avi/Desktop
### 2.写一个shell脚本进行两个数字的相加如果没有输入参数就输出错误信息和使用说明###
### 2.写一个shell脚本进行两个数字的相加如果没有输入参数就输出错误信息和一行使用说明###
> **Answer** :
下面是简单的shell脚本以及描述如果没有命令行参数它会抛出错误与如何使用脚本的说明。
> **答案** : 下面是简单的shell脚本以及描述如果没有命令行参数它会抛出错误与如何使用脚本的说明。
再创建一个名为**`twonumbers.sh`**文件和下面的内容添加到文件里。
@ -70,24 +69,24 @@
# chmod 755 two-numbers.sh
**Condition 1**: 未输入两个数字作为命令行参数运行脚本,你将得到下面的输出。
**情形一**: 未输入两个数字作为命令行参数运行脚本,你将得到下面的输出。
#### Sample Output ####
#### 样例输出 ####
# ./two-numbers.sh
Usage - ./two-numbers.sh x y
Where x and y are two nos for which I will print sum
**Condition 2**: 当数字存在时,你会得到如图所示的结果。
**情形二**: 当数字存在时,你会得到如图所示的结果。
$ ./two-numbers.sh 4 5
Sum of 4 and 5 is 9
因此上述shell脚本满足条件作为问题提出了建议
因此上述shell脚本满足了问题的要求
### 3.你需要打印一个给定的数字的反序如输入10572输出27501如果没有输入数据应该抛出错误和使用脚本说明。在此之前告诉我你需要在这里使用的算法。 ###
### 3.你需要打印一个给定的数字的反序如输入10572输出27501如果没有输入数据应该抛出错误和使用脚本说明。在此之前告诉我你需要在这里使用的算法。 ###
#### 算法 ####
@ -95,7 +94,7 @@
2. 赋值 rev=0, sd=0 (反向和单个数字设置为0)
3. n % 10, 将得到最左边的数字
4. 反向数字可以用这个方法生成 rev * 10 + sd
5. 对输入数字进行-1操作
5. 对输入数字进行右位移操作除以10
6. 如果n > 0, 进入第三步,否则进行第七步
7. 输出rev
@ -126,9 +125,9 @@
# chmod 755 numbers.h
**Condition 1**: 当输入不包含命令行参数,你将得到下面的输出。
**情形一**: 当输入不包含命令行参数,你将得到下面的输出。
#### Sample Output ####
#### 样例输出 ####
./numbers.sh
@ -136,7 +135,7 @@
I will find reverse of given number
For eg. ./2.sh 123, I will print 321
**Condition 2**: 正常输入
**情形二**: 正常输入
$ ./numbers.sh 10572
@ -146,9 +145,7 @@
### 4. 你应该直接用终端而不是依靠任何shell脚本来进行实数计算。你会怎么做比如实数7.56+2.453 ###
> **Answer** :
我们需要用如下所述的特殊方式使用bc命令。将7.56+2.453作为输入通过管道进入bc中。
> **答案** : 我们需要用如下所述的特殊方式使用bc命令。将7.56+2.453作为输入通过管道进入bc中。
$ echo 7.56 + 2.453 | bc
@ -156,13 +153,13 @@
### 5. 你需要给出圆周率的值精度为小数点后100位什么是最简单的方法。 ###
> **Answer** : 找圆周率的值最简单的方法,我们只是需要发出以下命令。
> **答案** : 找圆周率的值最简单的方法,我们只是需要发出以下命令。
# pi 100
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
很明显!安装我们必须有包**`pi`**。只一个**apt**或**yum**命令,就能获得所需的软件包,同时用最简单方法来实现这个需求。
很明显!安装我们必须有包**`pi`**。只一个**apt**或**yum**命令,就能获得所需的软件包,同时用最简单方法来实现这个需求。
就是这样。我会很快在Tecmint.com发表另一个有趣的文章。至此敬请关注。别忘了向我们提供您在的评论和反馈。
@ -170,7 +167,7 @@
via: http://www.tecmint.com/practical-interview-questions-on-linux-shell-scripting/
译者:[MikeCoder](https://github.com/MikeCoder) 校对:[校对者ID](https://github.com/校对者ID)
译者:[MikeCoder](https://github.com/MikeCoder) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,6 +1,7 @@
如何在Linux中知道你的系统是否有USB 3.0 端口[快速技巧]
[小白技巧]如何在Linux中知道你的系统是否有USB 3.0 端口
================================================================================
Most of the new computers come with USB 3.0 ports these days. But **how can you know if your computer has USB 3.0 port** or not? In this quick tip, we shall see how to find if your system has USB 3 or USB 2 in Linux.
近来的大多数的新计算机都有了USB 3.0接口了。但是**你怎么知道你的计算机有没有USB 3.0接口**这篇短文中我们会告诉如何在Linux下知道你的系统上有USB 3还是USB3接口。
### 在Linux终端中检测是否有USB 3.0 端口 ###
@ -16,7 +17,7 @@ Most of the new computers come with USB 3.0 ports these days. But **how can you
### 辨别哪个口是USB 3.0 ###
通常USB 3.0 口被标记为SS“Super Speed”的缩写。如果你的系统制造商没有标记SS或者USB 3,那么你可以检查端口的内部通常是色的。
通常USB 3.0 口被标记为SS“Super Speed”的缩写。如果你的系统制造商没有标记SS或者USB 3,那么你可以检查端口的内部通常是色的。
![find usb 3.0 port](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/06/usb3.0port.jpg)
@ -26,6 +27,6 @@ Most of the new computers come with USB 3.0 ports these days. But **how can you
via: http://itsfoss.com/find-usb-3-port-linux/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -22,7 +22,7 @@ LDAP轻量级目录访问协议是一个用于访问目录服务的应用
via: http://www.linuxlinks.com/article/20140607022012848/LDAPSolutions.html
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,118 @@
怎样使用linux的iptables工具进行网络共享
================================================================================
在本教程中我将解释多个设备怎样在linux下共享一个网络连接。目前无线路由器已经成为主流的消费品从而解决了本文这一问题。这里假设你家中并没有一台无线路由器不过你却有一台已经有"猫"和有线网卡的的linux主机。"猫"是以动态公有IP地址的模式连接到互联网主机的网卡连接到你的交换机或者集线器。其他设备如linux或者windows的PC或者笔记本以网桥的形式连接并且没有连接到互联网。为了共享linux主机的互联网你必须把主机转换成网关以便它能实现从其他设备中传送和接受信息。
### 术语字汇 ###
- **私有IP地址**路由不可达地址是一个被用于本地局域网的IP地址在互联网中不可见
- **公用IP地址**路由可达地址是一个在互联网中可见的IP地址。
- **IP伪装**是一项允许一系列机器通过MASQ网关连接互联网的功能。这些MASQ网关之外的机器在互联网中是不可见的。MASQ之后的机器中任何流入或流出的数据必须经过MASQ网关。
- **网络地址转换**NAT是一项通过IP伪装技术可以使私有IP地址访问互联网的功能。
### Hardware Requirements ###
硬件要求
- 一台有两个接口一个公有IP地址和其他的私有IP地址的linux主机这个主机将被用作网关。
- 一台或者多台拥有私有IP地址的linux/windows系统的PC或者笔记本。
- 交换机/集线器(可选)。
### 教程步骤 ###
接下来的过程需要在linux主机用于共享的网关上完成。
#### 1、激活IP转发 ####
为了设置网络共享你需要在linux主机上更改一个内核参数来使能IP转发功能。内核启动参数设定在/etc/sysctl.conf文件中。
打开这个文件,定位到含有"# net.ipv4.ip_forward = 0"的这一行,移除#号即取消注释然后将其值设置为1改好之后应该和下面的一致。
net.ipv4.ip_forward = 1
你还要使激活IP转发功能生效通过执行下面的命令
$ sudo sysctl -w net.ipv4.ip_forward=1
$ sudo sysctl -p
#### 2、NAT配置 ####
另一个网络共享的重要部分是NAT配置这可以通过使用iptables的命令iptables包含四个防火墙的规则表
- FILTER (默认表格)
- NAT
- MANGLE
- RAW
这个教程中我们将仅使用两个表格FILTER和NAT表格。
首先,刷新所有活跃的防火墙的规则。
$ sudo iptables -X
$ sudo iptables -F
$ sudo iptables -t nat -X
$ sudo iptables -t nat -F
在输入表格中你需要设置转发链FORWARD成可接受的ACCEPT目的地因此所有通过主机的数据包将会被正确的处理。
$ sudo iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
在NAT表中你必须为你的WAN口启用IP伪装功能我们假设WAN口协议是ppp0。为了在ppp0接口上使能IP伪造技术我们使用以下的命令
$ sudo iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
#### 3、配置私有IP地址 ####
在linux主机上的所有配置完成后你需要配置其他设备linux/windows的PC或笔记本的DNS服务器以及默认网关让它们的数据流可以指向linux主机。注意你不需要在linux主机上设置一个DNS服务器从其他设备发出的每一个DNS请求都会通过上游的ISP自动转发到linux主机上。
如果你的其他设备上用的系统是linux你可以通过以下命令来更改他们的默认网关和DNS服务器。假设你的网段是192.168.1.0/24的私有IP地址网段linux主机上绑定的IP地址是192.168.1.1。
$ sudo ip route del default
$ sudo ip route add default via 192.168.1.1
$ sudo sh -c "echo 'nameserver 192.168.1.1' > /etc/resolv.conf"
如果还有其他的linux设备那么你可以重复以上命令。
如果你有windows设备你可以通过控制面板的网络连接属性来更改默认网关和DNS服务器。
#### 4、完整的脚本 ####
这是一个在linux主机上设置网络连接共享的一个完整的脚本。WAN口ppp0协议需要根据你具体的网络接口协议来替换。
$ sudo vi /usr/local/bin/ishare
----------
#!/bin/bash
## Internet connection shating script
sysctl -w net.ipv4.ip_forward=1
sysctl -p
iptables -X
iptables -F
iptables -t nat -X
iptables -t nat -F
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
保存以上的脚本到/usr/local/bin/ishare然后添加可执行权限通过执行下面的命令。
$ sudo chmox +x /usr/local/bin/ishare
如果你需要这个脚本开机启动,你需要在/etc/rc.local文件中执行这个脚本并在该文件中的"exit 0"之前添加下面一行。
/usr/local/bin/ishare
--------------------------------------------------------------------------------
via: http://xmodulo.com/2014/06/internet-connection-sharing-iptables-linux.html
译者:[yujianxuechuan](https://github.com/yujianxuechuan) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,14 +1,14 @@
Linux 平台七大桌面环境
Linux 平台七大桌面环境通览
================================================================================
通常的 Linux 发行版都使用 KDE 或者 GNOME 作为默认的桌面环境。它们都给用户提供了一个原始的并且有吸引力的桌面,并且内置了各式各样的多媒体软件、系统程序、游戏、实用程序、网页开发工具、编程工具等等。这两个桌面致力于提供给用户一个拥有类似于 Windows 操作系统体验的尖端计算环境,而忽略了最小化它们所占用的系统资源。
通常的 Linux 发行版都使用 KDE 或者 GNOME 作为默认的桌面环境。它们都给用户提供了一个原始的并且有吸引力的桌面,并且内置了各式各样的多媒体软件、系统程序、游戏、实用程序、网页开发工具、编程工具等等。这两个桌面致力于提供给用户一个拥有类似于 Windows 操作系统体验的尖端计算环境,而不是如何更少的占用系统资源。
如果你正在使用 Ubuntu (或者其他Linux发行版) 并且厌倦始终使用 Unity 桌面,那么你应该看看这些可以替代 Unity 的选择。我收集了 7 种桌面环境。它们都很棒。在你读完这篇文章之后,请试着使用它们吧。
如果你正在使用 Ubuntu (或者其他Linux发行版) 并且厌倦始终使用 Unity 桌面,那么你应该看看这些可以替代 Unity 的选择。我收集了 7 种桌面环境。它们都很棒。在你读完这篇文章之后,请试着使用它们吧。
### [Mate][1] ###
![](http://i0.wp.com/pulpybucket.com/wp-content/uploads/2014/06/mate.png)
MATE 是 GNOME2 的一个分支。它提供了一个自然且吸引人的桌面环境。它是 Linux 和其它类 Unix 工作环境中的传统工作框架的代表。MATE 改善以使用新的技术来保留传统的桌面体验。
MATE 是 GNOME2 的一个分支。它提供了一个自然且吸引人的桌面环境。它是 Linux 和其它类 Unix 工作环境中的传统工作框架的代表。MATE 在保留传统的桌面体验的同时正在不断进步使用新的技术
在 Ubuntu 14.04 中,可以直接从 Ubuntu 软件中心获取 MATE 桌面。
@ -16,25 +16,25 @@ MATE 是 GNOME2 的一个分支。它提供了一个自然且吸引人的桌面
![](http://i2.wp.com/pulpybucket.com/wp-content/uploads/2014/06/Kubuntu-9.04-DesktopEffects.png)
KDE 是另一个类似于 GNOME 一样的重量级桌面环境。它在本文章所提及的7种桌面环境中被认为是最华丽最重量级的一个。它同样是一个类似于 Windows 的桌面,在这一点上没有什么特殊的变化。不过 KDE 非常有特点,但是随之而来的是大量的设置来提升你的桌面体验。同样的,有很多关于 KDE 的话题。所以真的可以从 KDE 的特点中获益,并且保持你所想的外观
KDE 是另一个类似于 GNOME 一样的重量级桌面环境。它在本文章所提及的7种桌面环境中被认为是最华丽最重量级的一个。它同样是一个类似于 Windows 的桌面,在这一点上没有什么特殊的变化。不过 KDE 非常有特点,但是随之而来的是可以通过大量的设置来提升你的桌面体验。同样的,有很多关于 KDE 的话题,所以你可以很舒服的使用 KDE并让它以你希望的方式工作
### [Cinnamon][3] ###
![](http://i1.wp.com/pulpybucket.com/wp-content/uploads/2014/06/WD9O-C08B-ESP5.jpg)
Cinnamon 是一个基于 Gtk+ 的环境。它最初作为 GNOME Shell 的一个用户界面分支,由 Linux Mint 创造。 Cinnamon 本质上是为了推行使用终端和定点装置。无论是使用鼠标,还是使用触摸屏都可以获得同样便捷的操作。不像 KDE Plasma 工作空间,只有一种 GUI。 当前版本—— Cinnamon 2.0 于2013年10月10日发布。
Cinnamon 是一个基于 Gtk+ 的环境。它最初作为 GNOME Shell 的一个用户界面分支,由 Linux Mint 为其创建的。 Cinnamon 的核心设计目标是让桌面终端和触屏设备都能完美操作。无论是使用鼠标,还是使用触摸屏都可以获得同样便捷的操作。不像 KDE Plasma 工作空间,只有一种图形用户体验。当前版本—— Cinnamon 2.0 于2013年10月10日发布。
### [Unity][4] ###
![](http://i1.wp.com/pulpybucket.com/wp-content/uploads/2014/06/Ubuntu_13.10_Desktop.png)
Unity 是 GNOME 桌面环境的一个界面,由 Canonical 公司创建,使用于 Ubuntu 系统中。Unity 最初现身于 Ubuntu 10.10 的上网本版本中。它起初打算充分利用上网本的屏幕空间,例如一个被称为启动器的垂直应用切换器a vertical app switcher called launcher和一个节省垂直空间的多功能顶部菜单栏。Unity 不像 GNOME、KDE、 Xfce 或者 LXDE 是许多软件的合集,它是作为使用实用功能而开发的。
Unity 是 GNOME 桌面环境的一个界面,由 Canonical 公司创建,用于 Ubuntu 系统中。Unity 最初现身于 Ubuntu 10.10 的上网本版本中。它起初打算充分利用上网本的屏幕空间,例如一个竖直的应用启动器和一个节省空间的多功能顶部菜单栏。Unity 不像 GNOME、KDE、 Xfce 或者 LXDE 是许多软件的合集,它是为了可用性而开发的。
### [GNOME Shell][5] ###
![](http://i0.wp.com/pulpybucket.com/wp-content/uploads/2014/06/GNOME_Shell_3.6.png)
GNOME 提供了桌面核心接口例如交换窗口,启动应用程序以及显示提示。它利用先进图形硬件来实现吸引人的,创新的界面思想提供了愉悦简单的用户体验。GNOME Shell 定义了 GNOME 3 的客户体验。
GNOME 提供了桌面核心接口例如交换窗口,启动应用程序以及显示提示。它利用先进的图形硬件来实现吸引人的、创新的界面思想提供了愉悦简单的用户体验。GNOME Shell 定义了 GNOME 3 的客户体验。
作为 GNOME 的一个重要组成部分, GNOME Shell 的稳定版本首次发布于2011年3月3日。
@ -48,7 +48,7 @@ Xfce 是一个轻量级的桌面环境,围绕 GTK 框架实现。它看起来
![](http://i2.wp.com/pulpybucket.com/wp-content/uploads/2014/06/LXDE_desktop_full.png)
LXDE 显然是桌面环境中最轻量级的选择,至少在传统的桌面标准中是这样。这个基于 GTK 的桌面环境使用了很多轻量级的选择替代了默认的应用(例如 Abiword, Gnumeric, 而不是 LibreOffice。它没有提供 flash 视觉冲击 总体感觉也不是特别的棒没有高级的设置。但是LXDE 仍然提供了漂亮的桌面和完整的功能。当你需要快速简洁时,它就是你的选择。
LXDE 显然是桌面环境中最轻量级的选择,至少在传统的桌面标准中是这样。这个基于 GTK 的桌面环境使用了很多轻量级的选择替代了默认的应用(例如 Abiword, Gnumeric, 而不是 LibreOffice。它没有提供炫目的视觉震撼 总体感觉也不是特别的棒没有高级的设置。但是LXDE 仍然提供了漂亮的桌面和完整的功能。当你需要快速简洁时,它就是你的选择。
--------------------------------------------------------------------------------

View File

@ -1,24 +1,24 @@
如何在Ubuntu 14.04中阻止其它用户访问你的家目录
[小白技巧]如何在Linux中阻止其它用户访问你的家目录
================================================================================
![](http://cdn.howtogeek.com/wp-content/uploads/2014/05/00_lead_image_home_directory.png)
如果你和其他人共享Ubuntu机器那么你可能要设置多个用户并考虑让其他用户登录到他们自己的帐号,而只能访问他们自己的家目录。但是,默认情况下,任何一个用户都可以访问任何一个家目录。
如果你和其他人共享Ubuntu机器那么你可能要设置多个用户希望其他用户登录到他们自己的帐号,并只能访问他们自己的家目录。但是,默认情况下,任何一个用户都可以访问任何一个家目录。
当你在Ubuntu中添加一个新用户时adduser工具为新的帐号添加了一个新的家目录。默认情况下该目录位于根下面的/home/目录下,并以该帐号的用户名命名。例如,/home/lori。Ubuntu中创建的用户家目录具有全局读/写权限,这就给系统中所有其他用户可以读因外一些用户的家目录中的内容的权利。具体请阅读我们的[文件权限在Linux中是如何工作的][1]一文。
当你在Ubuntu中添加一个新用户时adduser工具为新的帐号添加了一个新的家目录。默认情况下该目录位于根下面的/home/目录下,并以该帐号的用户名命名。例如,/home/lori。Ubuntu中创建的用户家目录具有其它人可读/执行权限,这就给系统中所有其他用户可以读另外外一些用户的家目录中的内容的权利。具体请阅读我们的[文件权限在Linux中是如何工作的][1]一文。
**注**:当我们在文中提到输入什么时,输入的文字内容是在引号中的,不要输入引,除非我们另外指定。
**注**:当我们在文中提到输入什么时,输入的文字内容是在引号中的,不要输入引,除非我们另外指定。
你可以很容易地修改你的家目录的权限来保护你的私人文件。要检查你家目录的权限输入Ctrl + Alt + T打开终端窗口并在提示符后输入以下行,然后按回车。使用你自己的用户名来替换“<username>”。
你可以很容易地修改你的家目录的权限来保护你的私人文件。要检查你家目录的权限输入Ctrl + Alt + T打开终端窗口并在提示符后输入以下命令,然后按回车。使用你自己的用户名来替换下面的“用户名”。
ls ld /home/lori
ls -ld /home/lori
**注**:该命令使用的是小写的L而不是数字1.
**注**:该命令仅包含小写的L而不是数字1。LCTT译注这是给完全小白的提示绝大部分人可以无视这个备注了
在该行的开头,列出了该文件的权限。就像我们在[文章][1]中关于Linux权限部分讲的那样。
> r表示“读”w表示“写”而x表示“执行”。目录权限以“d”开头而不是“-”。你也会注意到权限值占了10个位置。你可以忽略第一个后面是3个一组分为3组。第一组是属主权限,第二组是属组权限,最后一组是大众权限“
> r表示“读”w表示“写”而x表示“执行”。目录权限以“d”开头而不是“-”。你也会注意到权限值占了10个位置。你可以忽略第一个后面是3个一组分为3组。第一组是属主owner权限第二组是属组group权限最后一组是其它人other或world权限
因此,下面列出的家目录的属主具有读、写和执行权限,而属组和大众具有读和执行权限。
因此,下面列出的家目录的属主具有读、写和执行权限,而属组和其它人具有读和执行权限。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/05/01_permissions_for_home_folder.png)
@ -32,7 +32,7 @@
![](http://cdn.howtogeek.com/wp-content/uploads/2014/05/02_changing_permissions_for_home_folder.png)
按上箭头两次再次调用“ls -ld /home/<username>“命令来检查权限。注意,全局权限现在都是破折号(-),这就意味着大众将无法读、写或执行你家目录中的任何东西了。
按上箭头两次再次调用“ls -ld /home/用户名”命令来检查权限。注意,其它人权限现在都是破折号(-),这就意味着其它人将无法读、写或执行你家目录中的任何东西了。
然而和你同组的用户可以读和执行你家目录中的文件和文件夹。如果你不想除你之外的任何人访问你的家目录可以在chmod命令中输入“0700”。
@ -46,7 +46,7 @@
![](http://cdn.howtogeek.com/wp-content/uploads/2014/05/04_location_could_not_be_displayed.png)
你也可以在创建新用户时,甚至Ubuntu使用指定的权限。要完成此项任务你需要编辑adduser配置文件。要编辑该文件在提示符下输入以下命令并回车。
甚至你也可以在创建新用户时让Ubuntu使用指定的权限。要完成此项任务你需要编辑adduser配置文件。要编辑该文件在提示符下输入以下命令并回车。
gksudo gedit /etc/adduser.conf
@ -60,7 +60,7 @@
![](http://cdn.howtogeek.com/wp-content/uploads/2014/05/06_entering_password.png)
在adduser.conf文件中向下滚动到DIR_MODE命令处这里的默认值是“0755”。修改该值来反映你想要授权给各种用户类型用户大众的不同权限rwx如我们先前讨论过的“0750”或“0700“。点击保存Save
在adduser.conf文件中向下滚动到DIR_MODE命令处这里的默认值是“0755”。修改该值来反映你想要授权给各种用户类型属主属组其它人的不同权限rwx如我们先前讨论过的“0750”或“0700”。点击保存Save
![](http://cdn.howtogeek.com/wp-content/uploads/2014/05/07_changing_dir_mode.png)
@ -72,13 +72,13 @@
![](http://cdn.howtogeek.com/wp-content/uploads/2014/05/09_closing_terminal_window_with_x.png)
现在,你家目录中文件会保持私有。切记,如果有其他用户和你处于同一组中,你也要为你的家目录权限剔除组和大众权限。
现在,你家目录中文件会保持私有。切记,如果有其他用户和你处于同一组中,你也要为你的家目录权限剔除组和大众权限。
--------------------------------------------------------------------------------
via: http://www.howtogeek.com/190084/how-to-prevent-other-users-from-accessing-your-home-directory-in-ubuntu-14.04/
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,26 +1,26 @@
命令行星期二 — 第一篇
命令行星期二 — 第一篇
================================================================================
极客们,我们又回来了!真抱歉让你们久等了,但我保证,我们又回归正轨了。我们满怀热情与大家相约,让我们激情燃烧,寻找刺激吧:)
现在,整个的想法已经在两周前的开场白中告诉你们了所以现在让我们来干点正事吧。就像Shotts先生书里讲得那样我们需要来了解一下shell是个什么东西终端模拟器又是个什么东西因为我们要在这里头干活。
现在,整个的想法已经在之前的开场白中告诉你们了,所以现在让我们来干点正事吧。就像肖茨先生书里讲得那样我们需要来了解一下shell是个什么东西终端模拟器又是个什么东西因为我们要在这里头干活。
Shotts在他的书中写道shell实际上是当我们谈论命令行时所谈论的东西。shell基本上一个程序它将你敲击键盘的动作传递给计算机它也是某种形式的翻译器将你所讲的东西翻译给计算机听。在这世界上活着的shell真是五花八门但是活得最好的要数**bash**了它在GNU/Linux中随处可见。我们也叫它Bourne Again Shell这是一个精巧的双关语因为自从Bourne先生创造了它的祖先**sh**后Brian Fox又把它重写成为一个自由的sh替代品。啊哈GUN人和他们的幽默真的很精明。:)
肖茨在他的书中写道shell实际上是当我们谈论命令行时所谈论的东西。shell基本上一个程序它将你敲击键盘的动作传递给计算机它也是某种形式的翻译器将你所讲的东西翻译给计算机听。在这世界上活着的shell真是五花八门但是活得最好的要数**bash**了它在GNU/Linux中随处可见。我们也叫它Bourne Again Shell这是一个精巧的双关语因为自从Bourne先生创造了它的祖先**sh**后Brian Fox又把它重写成为一个自由的sh替代品。啊哈GUN人和他们的幽默真的很精明。:)
![](http://paste.opensuse.org/images/54535272.jpg)
接下来我所需要是一个让我们能和shell交互的东西它就是终端模拟器。每个Linux发行版都自带了一个至于长什么样就得看你使用的桌面环境了可能是KDE的**Konsole**也可能是Gnome的**Gnome terminal**等等。Shotts先生说了你可以开发出你所偏爱的一个,但是大部分时间我还是用桌面环境给我提供的那个吧。
接下来我所需要是一个让我们能和shell交互的东西它就是终端模拟器。每个Linux发行版都自带了一个至于长什么样就得看你使用的桌面环境了可能是KDE的**Konsole**也可能是Gnome的**Gnome terminal**等等。肖茨先生说了,你可以挖掘出你所偏爱的一个,但是大部分时间我还是用桌面环境给我提供的那个吧。
现在来发动你的终端。打开后你会见到一行字这行字告诉你用户名和机器的主机名它叫作shell提示符。它告诉你它准备好了你可以输入命令了。让我们来随便玩玩随便输入点什么东西进去然后敲回车看看。
呵呵,还记开篇我们讲过,我们需要像学诗歌一样来学习命令吗?记得就好,随意乱来可干不了啥事。
现在按那个上箭头你会发现命令又回来了。这是啥魔法你键盘上的上箭头用来取出历史命令。终端会保存总计500个你输入过的命令所以别一次又一次地重复敲它们了你可以用上/下箭头来查找它们。左右箭头用来在指定行中移动光标,这样你就可以在文本中编辑或者插入了。另外一个东西 — **ctrl+v**是用来粘贴不工作的文本的。你可以在某个地方将它设置成快捷键但是它常常不是那么回事。检查你的模拟器的快捷键在Konsole中它位于设置 > 配置快捷键)
现在按那个上箭头你会发现命令又回来了。这是啥魔法你键盘上的上箭头用来取出历史命令。终端会保存总计500个你输入过的命令所以别一次又一次地重复敲它们了你可以用上/下箭头来查找它们。左右箭头用来在指定行中移动光标,这样你就可以在文本中编辑或者插入了。另外注意,想用**ctrl+v**来粘贴文本是不行的。你可以在某个地方将它设置成快捷键但是它常常不是那么回事。检查你的模拟器的快捷键在Konsole中它位于设置 > 配置快捷键)
现在,为了我们不在挨‘命令找不到’这一巴掌,让我们试试一些简单的。敲个**date**来试试。(是的,我不知道有这么个命令,这真着实让我兴奋了一把):)
现在,为了我们不再被‘命令找不到’抽一巴掌,让我们试试一些简单的。敲个**date**来试试。(是的,我不知道有这么个命令,这真着实让我兴奋了一把):)
![](http://paste.opensuse.org/images/7123365.png)
你又来了。当你能打开终端并输入date命令来查看日期时为什么在时钟中看看内建日历会让你不胜其烦 :) 只是开个玩笑。就像Shotts书里写的那样它确实是个简单的命令更有用/困难的命令会在以后介绍。跟date相关的命令是cal - 它会显示当前月的日历。
你又来了。当你能打开终端并输入date命令来查看日期时为什么在时钟中看看内建日历会让你不胜其烦 :) 只是开个玩笑。就像肖茨书里写的那样,它确实是个简单的命令,更有用也更复杂的命令会在以后介绍。跟date相关的命令是cal - 它会显示当前月的日历。
你也可以试试**df**,它会列出你驱动器上的空闲空间。
@ -38,7 +38,7 @@ Shotts在他的书中写道shell实际上是当我们谈论命令行时所谈
- 我们需要用什么来和shell交流终端模拟器
- 使用光标按钮来驾驭终端命令以及退出终端
个简单的命令:
个简单的命令:
- **date** 显示当前日期
- **cal** 显示当前月份的日历
@ -47,7 +47,6 @@ Shotts在他的书中写道shell实际上是当我们谈论命令行时所谈
### 下周二我们将会做什么呢? ###
We learn navigation through the file system (what are all those bin etc etc. folders, what are they used for, how to navigate through them via the terminal). Until then…
我们会学习在文件系统中导航bin、etc等等这所有的文件夹都是些什么东西它们用来干什么怎样通过终端来浏览它们。到那时……
### 你就有得乐了! ###
@ -58,6 +57,6 @@ We learn navigation through the file system (what are all those bin etc etc. fol
via: https://news.opensuse.org/2014/06/10/command-line-tuesdays-part-one/
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -36,7 +36,7 @@ Numix图标主题张冠李戴Fedora 20劲爆酷爽
via: http://www.unixmen.com/install-numix-icon-theme-fedora-20/
译者:[GOLinux](https://github.com/GOLinux) 校对:[校对者ID](https://github.com/校对者ID)
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,82 @@
14个可以提升Linux桌面体验的应用程序
==============================
转战到Ubuntu或者是别的流行的Linux发行版不仅仅是操作系统的操作方式的改变更多的是你还需要一些能支持你完成工作的好的应用。
在这篇文章中,我将分享一些我精选出来不可或缺的应用程序,并谈谈在我的日常工作中如何有效地使用它们。
### 日常使用的应用程序 ###
一般当说到Linux桌面上的应用我总是将这些应用划分为两大类频繁使用的和一些别的应用。下边我为大家介绍的是一些自己日常使用的应用。
1 **Firefox** — 有时我也会使用用其他的浏览器,但最近[火狐浏览器][1]已经成为我可以长期信赖的朋友。可靠的、 安全的、 跨平台的,火狐浏览器完全满足了我的日常冲浪需求。
除了访问书签和网页,我还依靠火狐浏览器来处理我的各种部署在局域网服务器上的工作,如 [Plex][2], [Zoneminder][3], 路由器/WEB应用防火墙, 及我的文件服务器。所有这些均可以使用火狐浏览器进行访问。
2 **Parcelite**— 如果没有一个像样的剪贴板管理器我简直没法开始工作至少对我来说你无法找到在GNOME 下的[Parcelite][4]有什么不足。使用简单易于访问而且它提供了很多的有用的选项。Parcelite选项应有尽有包括了从热键设置到空格处理方式。尽管已经有很多的剪贴板管理器但它们却很难击败 Parcelite。
3 **Bittorrent Sync** — 我已经使用过了各种开源替代方案进行文件同步,但是他们在正式发布之前还需要进行进一步开发。应该说[Bittorrent Synchas][5]从来没有让我失望过。它运行和安装都很简单和方便这多亏了新的GUI的实现而且 Bittorrent Sync 允许我快速地从一台机器到另外一台机器传输巨大的视频文件,而无需浪费时间去将大量的文件同步到“云端”。
我还发现它是与别人分享大型文件的最佳方法,在分享的同时能一直保持 IP 地址和目录的隐蔽。尽管有许多的替代品我仍然坚定地成为了Bittorrent Sync的骨灰粉丝。
4 **System Monitor** — 因为TOP实在是滚动地太快了所以我个人更喜欢一个具有选项卡式的 GUI因为它能够让我的眼睛更轻松些。使用 GNOME 的系统监视器我可以很快地发现一个失控的进程并且轻松地kill掉它而不需吹灰之力。与[TOP][7]这样的终端程序不同的是,我可以实时的以图形化的方式去查看我的 CPU、 内存和磁盘的使用情况。作为一个拥有正常视觉的人,很难找到一个比用条形图来展示我还拥有多少的空间的更好方式。当然这也同样适用于其它的实时资源使用情况的监视。
5 **PulseAudioControl** — 每一天,我总是需要在多个声音设备之间来回穿梭。有时我需要将其中一个设为默认设备,然后却可能会从火狐浏览器音频完全切换到到另一个设备。因为我想控制我的尽可能多的音频,然后我就发现 [PulseAudioControl][8]是一个无价的工具。
### 一些别的软件 ###
在本节中,我将分享我使用,但可能并不一定是每天都使用的应用程序。许多这些应用程序都是开放源代码的,有一些不是,但是它们对我个人都非常具有价值。
6 **Skype** — 无论是拨入[Jupiter Broadcasting][9] 收听每周共同主持的播客,或者只是简单联系一个业务,[Skype][10] 见证了互联网视频会议的发展史。测试完成无数的替代品后我总是会发现自己还是终回到了Skype。即使有真的很棒的开源选择像[Ekiga][11] 和 [Jitsi][12]而在最后Skype总是与大家同在 —— 切换到Skype是一件很幸运的事。
7**Kdenlive** — 我使用两个不同的视频编辑器,当我要处理一个需要大量编辑的视频剪辑项目的时候,[Kdenlive][13]是我用于图片合成和编辑大型的复杂的视频的工具。我已经成功地在 Kdenlive 里边做过6个素材轨道的编辑但同样的负载量早已经让别的视频剪辑软件崩溃了。
8**OpenShot** — 大多数情况下,我会将[OpenShot][14]作为视频剪辑任务的首选神兵利器。快速的编辑和两个素材轨道工作区让你可以流畅而操作简单。我还发现它提供了很棒的无与伦比的特效。调制标题效果和超赞的的视频转场效果使OpenShot在我自己的视频项目上成为一款超棒的视频制作软件。
9**SpiderOak** — 在使用了无数云备份服务这么多年后, [SpiderOak][15] 已经成为了我的至爱。易于安装和使用我超喜欢它所提供的增量选项而且使用起来是如此的简单。只需一次设置不再操心之后SpiderOak将会挑起你的文件搬运大任。
10 **Dropbox** — 许多年来,我已经与[Dropbox][16] 爱恨交织。尽管它的跨平台特性这意味着我可以从任何位置访问文件,我慢慢地发现我自己越来越少依赖这个基于云计算的备份解决方案。尽管如此,它允许我从任何 web 浏览器中访问文件,即使是从我不经常使用的计算机,这使得抛弃 Dropbox 更是难上加难。
11 **Writer** — 自从我第一次在Windows的OpenOffice里面使用过它之后我一直都在使用[Writer][17]。今天我使用LibreOffice 所带的Writer来满足我的需求它可以做一切一个文字处理器可以做的事情。现在公正地说一些专有的办公套件可能会提供附加功能在Writer中是没有的但是99%的人需要的功能在Writer这里都有。就我个人而言我会永远是一个LibreOffice Writer粉。
12**SimpleScreenRecorder** — 多年来,我发现自己使用 [SimpleScreenRecorder][18]远超过其他同类软件,它能很好支持多监视器模式,再加上它甚至可以捕获基于 OpenGL 的应用程序的视频。易于使用和可靠的 SimpleScreenRecorder 让我的工作更加得心应手。我把它推荐给那些只是偶尔需要,懒得使用其它屏幕捕捉软件的同学们。
13**SimpleScan** — 当我需要扫描文档的时候,我一点都不想将大把大把的时间花费在配置的臃肿的程序上。 [Simple Scan][19] 可以在这方面做得很好。智能的SANE扫描数据库Simple Scan将与市面上的任何扫描仪或多功能一体打印机/扫描仪很好的进行协作。此外还有一点好处就是它会设置成的最佳分辨率,当然你还可以很方便手动调整任何你需要的设置。
14**Baobab**(磁盘使用分析器) — 我不断听到关于如何硬盘价格已回落。这或许没错,但现实却是我却囊中羞涩。这意味着我需要充分利用我能利用的所有硬盘空间,为了实现这个目的,我使用 [Baobab][20] 来观察我在我的硬盘上的可用空间,而且还可以直观地看到到底是哪一个目录正在蚕食我宝贵的硬盘空间。
### 真正的具有生产力的软件 ###
谈到我所依赖的这些软件我们真正关心的是他们能为我们完成什么样的任务而不是它们所拥有的光辉头衔和自身的许可证。linux不需要软件的传奇时代早已过去。多数的计算机上的工作除了有限的几个例外大都可以在linux桌面上轻松地如我所说的那样完成。
很明显有一些对于你来说是必不可少的软件,但是也许不是我必须用的。你所倚重的软件是什么?您可在下方进行评论并与我们的读者进行分享那些优秀的软件。
------
via: http://www.datamation.com/applications/14-apps-to-boost-ubuntu-1.html
译者:[owen-carter](https://github.com/owen-carter) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.mozilla.org/en-US/firefox/new/
[2]:https://plex.tv/
[3]:http://www.zoneminder.com/
[4]:http://parcellite.sourceforge.net/
[5]:http://www.bittorrent.com/sync
[6]:https://help.gnome.org/users/gnome-system-monitor/3.12/
[7]:http://linux.about.com/od/commands/l/blcmdl1_top.htm
[8]:http://freedesktop.org/software/pulseaudio/pavucontrol/
[9]:http://en.wikipedia.org/wiki/Jupiter_Broadcasting
[10]:http://www.skype.com/en/download-skype/skype-for-linux/
[11]:http://ekiga.org/
[12]:https://jitsi.org/
[13]:http://www.kdenlive.org/
[14]:http://www.openshot.org/
[15]:https://spideroak.com/
[16]:https://www.dropbox.com/
[17]:http://www.libreoffice.org/discover/writer/
[18]:http://www.maartenbaert.be/simplescreenrecorder/
[19]:https://launchpad.net/simple-scan
[20]:http://www.marzocca.net/linux/baobab/baobab-getting-started.html

View File

@ -1,16 +1,17 @@
用笔记本模式工具1.65来延长电池续航
用笔记本模式工具1.65来延长电池续航能力
================================================================================
![](http://i1-news.softpedia-static.com/images/news2/Improve-Battery-Life-with-Laptop-Mode-Tools-1-65-447397-2.jpg)
笔记本模式工具是一个Liunx电工具包它可以让用户以多种方式延长笔记本电池续航现在它已经升级到1.65。
笔记本模式工具是一个Liunx电源管理工具包,它可以让用户以多种方式延长笔记本电池续航能力现在它已经升级到1.65。
笔记本模式工具的版本曾经很少而且间隔很长,但开发者在最新的版本中做了一些很有意思的改变,虽然此次更新与以前不同。
笔记本模式工具的发布的版本曾经很少而且间隔很长,但开发者在最新的版本中做了一些很有意思的改变,虽然此次更新与以前不同。
根据更新日志grep找不到$device/uevent的错误已得到修复、 sysfs/enabled已被"ip link down"所取代、 添加了对iwlwifi的支持运行时电源管理框架现在更健壮并且usb-autosuspend模块已被去除。
此外,当笔记本电脑恢复时,笔记本模式工具将强制以初始化模式运行,最新版本已添加英特尔 PState 驱动程序的模块,并已实现挂起/休眠接口。
用户不须更改自动设置。更改自动设置可能会导致更多的问题但一般准期望他们总是要打开。此外,要注意到每个功能所做的因为你可能会搞出更多问题。
用户不须更改自动设置。更改自动设置可能会导致更多的问题,但通常看来他们总是会去动它。此外,要注意到每个功能究竟是做什么的,否则你可能会搞出更多问题。
看官方[公告][1]来了解更多细节。
@ -22,7 +23,7 @@
via: http://news.softpedia.com/news/Improve-Battery-Life-with-Laptop-Mode-Tools-1-65-447397.shtml
译者:[2q1w2007](https://github.com/2q1w2007) 校对:[校对者ID](https://github.com/校对者ID)
译者:[2q1w2007](https://github.com/2q1w2007) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,26 +1,27 @@
红帽携手eNovance共进OpenStack市场
================================================================================
![](http://farm4.static.flickr.com/3108/3191608123_67e1da2b79_o.jpg)
正在OpenStack峰会于亚特兰大举办的同时,红帽确认了数项与OpenStack相关的项目。其中一项是红帽正与开源云计算市场的领导者eNovance进行 [合作][1] 。双方将推动网络功能虚拟Network Functions Virtualization和电信功能融入OpenStack. 红帽 [宣布][2] 将以七千万欧元或九千五百万美金的现金和股票购买eNovance.
正在OpenStack峰会于亚特兰大举办的同时红帽确认了数项与OpenStack相关的项目。其中一项是红帽正与开源云计算市场的领导者eNovance进行[合作][1] 。双方将推动网络功能虚拟化Network Functions Virtualization及将电信功能融入OpenStack中。红帽[宣布][2]将以七千万欧元或九千五百万美金的现金和股票投资eNovance。
eNovance 是OpenStack市场上重要的角色 特别以其和电信公司的合作而为人所知。eNovance帮助服务提供商和大型私企搭建部署云基础架构快速且成本低廉。这也将为红帽开创新的产品线。
IDC 分析员 Laura DuBois and Ashish Nadkarni 在2014春季OpenStack 峰会上指出 “像eNovance这样的集成商将继续助力云服务提供商和企业建立OpenStack云。OpenStack的前景开起来十分光明。"
IDC 分析员 Laura DuBois Ashish Nadkarni 在2014春季OpenStack 峰会上指出 “像eNovance这样的集成商将继续助力云服务提供商和企业建立OpenStack云。OpenStack的前景开起来十分光明。"
eNovance 是OpenStack十大上游贡献者之一, 也是OpenStack 基金唯一的欧洲金牌合作商。 该公司在全球有超过150家客户包括 Alcatel-Lucent, AXA, Cisco, Cloudwatt, and Ericsson. 在巴黎、蒙特利尔、班加罗尔、印度,都设有办公室。
eNovance 是OpenStack十大上游贡献者之一, 也是OpenStack 基金唯一的欧洲金牌合作商。 该公司在全球有超过150家客户包括 Alcatel-Lucent、 AXA,、 Cisco、 Cloudwatt 和 Ericsson. 在巴黎、蒙特利尔、班加罗尔、印度,都设有办公室。
2013年红帽和 eNovance 第一次展开[合作][3] ,为其共同客户提供OpenStack 部署和集成服务。该服务基于Red Hat Enterprise Linux OpenStack 平台。 五月的OpenStack峰会上, 两家公司宣布了 [进一步的合作][4] ,推动网络功能虚拟(NFV) 和电信在OpenStack上的创新, 意在提供业界最完整、电信级的 通讯服务基于Linux, 基于内核的虚拟机 (KVM), 和 OpenStack.
2013年红帽和 eNovance 第一次展开[合作][3] 为其共同客户提供OpenStack 部署和集成服务。该服务基于Red Hat Enterprise Linux OpenStack 平台。 今年五月的OpenStack峰会上, 两家公司宣布了[进一步的合作][4] ,推动网络功能虚拟(NFV) 和电信在OpenStack上的创新,意在提供业界最完整、电信级的 通讯服务基于Linux、内核级虚拟机 (KVM)和 OpenStack。
eNovance的联合创始人、首席执行官Raphaël Ferreira, 在声明中说:
eNovance的联合创始人、首席执行官Raphaël Ferreira 在声明中说:
> “和红帽一样eNovance理解OpenStack改变企业市场的力量当其正确部署且集成时。 我们非常高兴能成为红帽的一部分。红帽不仅仅提供一流的OpenStack发行版本, 也和我们一样坚信: 最好以连续、无缝的方式部署、集成OpenStack."
> “和红帽一样eNovance也认为部署和集成OpenStack已成趋势这是企业市场上的变革力量。 我们非常高兴能成为红帽的一部分。红帽不仅仅提供一流的OpenStack发行版本,也和我们一样坚信: 最好以连续、无缝的方式部署、集成OpenStack。”
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/red-hat-to-acquire-enovance-focus-together-on-openstack
译者:[tengpeng](https://github.com/tengpeng) 校对:[校对者ID](https://github.com/校对者ID)
译者:[tengpeng](https://github.com/tengpeng) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,12 +1,14 @@
庆祝下X已经30岁了!
X 窗口系统已经30岁了
================================================================================
X.org基金会很自豪地宣布一个特别的日子30年前1984年六月19日Bob Scheifler发布了X窗口系统。
[https://en.wikipedia.org/wiki/X11#Introduction][1]
有关X窗口系统的介绍参见 [https://en.wikipedia.org/wiki/X11#Introduction][1]
在这30年中X作为UNIX桌面无处不在。通过使用桌面环境如GNOMEKDEXfceUnityEnlightenment在今天数以百万计的用户使用X作为底层技术。
在这30年中X作为UNIX桌面无处不在。在今天数以百万计的用户使用着桌面环境如GNOMEKDEXfceUnityEnlightenment等等而这些都使用X作为其底层技术。
X的开发者做出了巨大的突破把X从运行在VAX VS100 CPU的一个程序发展成为在今天的笔记本电脑上渲染3D界面的程序。事实上X的出现早于图形处理单元GPU概念的出现甚至是比推广这项技术公司——于1999上市的Nvidia更早。
X的开发者们做出了巨大的突破把X从原本为VAX VS100 CPU编写的一个程序发展成为在今天可在笔记本电脑上进行3D渲染的图形用户界面。事实上X的出现早于图形处理单元GPU概念的出现甚至是比推广这项技术公司——于1999上市的Nvidia更早。
![](http://static.cnbetacdn.com/newsimg/2014/0620/77_1403265316.png_600x600.png)
尽管X已经服务了很长时间但是X仍将做出改进并继续陪伴我们。
@ -14,18 +16,18 @@ X的开发者做出了巨大的突破把X从运行在VAX VS100 CPU的一个
- Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Microsoft Windows
- POSIX, C89, C99, C++, Java
- 万维
- 互联
- GPL 和 FSF
X是第一个主要的开源软件项目比Free Software 和 Open Source Software更早。和我们一起庆祝吧因为没有X桌面不会是今天这个样子。
X是第一个主要的开源软件项目比Free Software 和 Open Source Software更早。和我们一起庆祝吧因为没有X桌面不会是今天这个样子。
-The X.Org Board of Directors
- X.Org 品牌总监
--------------------------------------------------------------------------------
via: http://comments.gmane.org/gmane.comp.freedesktop.xorg.announce/2177
译者:[2q1w2007](https://github.com/2q1w2007) 校对:[校对者ID](https://github.com/校对者ID)
译者:[2q1w2007](https://github.com/2q1w2007) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,69 @@
使用DNSCrypt来加密您与OpenDNS之间的通信
================================================================================
**正如SSL能将HTTP通信变为加密过的HTTPS通信DNSCrypt, 物如其名, 是一款能加密您电脑与OpenDNS之间的通信的小神器。**
DNSCrypt刚问世的时候官方公布它只是一款Mac才能用的工具但根据最近一篇由OpenDNS发的[文章][1]表明虽然还没有用户界面但其实当Mac版DNSCrypt推出的时候源码已经放到了Github上了 Linux的用户也可以安装以及使用哦
### 为神马要使用 DNSCrypt? ###
**DNSCrypt可以加密您电脑与OpenDNS服务器的所有通信加密可以防止中间人攻击信息窥觑DNS劫持。更能防止网络供应商对某些网站的封锁。**
这是世界上第一款加密DNS通信的工具虽然TOR可以加密DNS的请求但毕竟它们只是在出口节点加密而已。
> 这款工具并不需要对域名或其工作方式做任何的改变它只是提供了个该工具的用户与机房里的DNS服务器之间的加密方式而已。
您可以在[GitHub][3]的[OpenSND DNSCrypt][2]页面阅读更多的相关信息。
### 如何在Linux使用DNSCrypt ###
首先下载安装[Download DNSCrypt][4] 然后在Terminal里输入这个命令:
sudo /usr/sbin/dnscrypt-proxy --daemonize
![](http://4.bp.blogspot.com/-WLefdXHIzwg/Tz45kGKAZdI/AAAAAAAAH0k/KLBnWJom6-g/s1600/edit-network.png)
然后把您的DNS服务器调成"127.0.0.1" - 在GNOME界面下的话只要到Network Connections网络连接选项然后选择"Edit"并在"DNS servers"输入"127.0.0.1"就好了。如果您用的是DHCP的话请选择Automatic (DHCP) addresses only" 这样的话才能输入DNS服务器。然后只要重连网络便可。
您可以访问这条[链接][5]来测试您连接到了OpenDNS了没。
如果您想设置开机启动DNSCrypt可以自建一个init的脚本如果您用的是Ubuntu可以参考下面的。
**Arch Linux的用户可以通过[AUR][6]来安装DNSCrypt-proxy** 内含rc.d脚本
### Ubuntu下的DNSCrypt ###
如果您想在Ubuntu设置开机启动您可以使用这个[Upstart脚本][7]。
注: 在Ubuntu 12.04版在127.0.0.1有个本地的DNS cache 服务器dnsmasq在跑所以已经把改脚本改成让DNSCrypt使用127.0.0.2了, 所以按照上面的教程应该把127.0.0.1换成127.0.0.2了。
要安装此脚本请使用以下的指令(要首先解压下下来的压缩文件):
sudo cp dnscrypt.conf /etc/init/
sudo ln -s /lib/init/upstart-job /etc/init.d/dnscrypt
然后用这个指令来启动:
sudo start dnscrypt
现在DNSCrypt就应该是开机自启了如果您想停止的话可以使用
sudo stop dnscrypt
[下载DNSCrypt][8] (.deb、 .rpm以及源码都可供下载哦)
--------------------------------------------------------------------------------
via: http://www.webupd8.org/2012/02/encrypt-dns-traffic-in-linux-with.html
译者:[213edu](https://github.com/213edu) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://blog.opendns.com/2012/02/16/tales-from-the-dnscrypt-linux-rising/
[2]:http://www.opendns.com/technology/dnscrypt/
[3]:https://github.com/opendns/dnscrypt-proxy
[4]:http://download.dnscrypt.org/dnscrypt-proxy/
[5]:http://www.opendns.com/welcome
[6]:http://aur.archlinux.org/packages.php?ID=54702
[7]:http://webupd8.googlecode.com/files/dnscrypt-0.2.tar.gz
[8]:https://github.com/opendns/dnscrypt-proxy/downloads

View File

@ -0,0 +1,159 @@
如何在Debian中启用测试版/不稳定版的软件库
================================================================================
为何要启用测试版/不稳定版?
测试版/不稳定版的Debian给开发者提供了一个比当前稳定版更新的环境以及软件。你们注意到了么其实这些稳定版啊不稳定版啊神马的都是别名比方说稳定版其实就是Debian的稳定发行版而测试版将会是下一个Debian的稳定发行版当然那是测试后的事了。截至发稿为止当前Debian的稳定发行版是Wheezy 7.x将会成为下一个稳定版的测试版则是Jessie。
当你需要一款应用的最新版本的时候,启用测试版/不稳定版将会是不二的选择。当初我因为工作需要要安装个Apache的 2.4.x到我的Debian Wheezy。测试版需要的是2.4.x的可是我的软件库里面只有2.2.x的。所以最好的解决方案当时是将测试版下下来啦。
通常来说当我们想尝试最新版本的应用时,都应该只在测试版软件库中搜索。
在这篇文章里我将教大家如何在不弄坏你系统的前提下设置好测试、不稳定版的Debain系统并在上面安装软件。
> Stable < Testing < Unstable 稳定 < 测试版 < 不稳定版
> Wheezy < Jessie < Sid
### 1. 设置测试版/不稳定版的apt源 ###
第一步是把测试版/不稳定版的源加到你的sources.list文件里。在Debian Wheezy系统上/etc/apt/sources.list理应长得像这样
$ cat /etc/apt/sources.list
----------
...
deb http://security.debian.org/ wheezy/updates main
deb http://http.us.debian.org/debian/ wheezy main
deb-src http://security.debian.org/ wheezy/updates main
...
把你repo服务器的链接记下来比如http://http.us.debian.org/debian/
这个repo服务器将会是离你最近的一个服务器 在不同的地理位置会有不同的url这个将会用于下一步。
如果想加测试/不稳定源则需要在sources.list文件加上这些东西
# Testing repository - main, contrib and non-free branches
deb http://http.us.debian.org/debian testing main non-free contrib
deb-src http://http.us.debian.org/debian testing main non-free contrib
# Testing security updates repository
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
# Unstable repo main, contrib and non-free branches, no security updates here
deb http://http.us.debian.org/debian unstable main non-free contrib
deb-src http://http.us.debian.org/debian unstable main non-free contrib
格式将会是
deb <respository server/mirror> <repository name> <sub branches of the repo>
(deb <上一步弄的服务器或镜像url> <repo的名字> <repo底下的分支>)
当然啦除了用testing或者unstable这么烂的词也能使用他们的发行版代号比如Jessie或者Sid
deb http://http.us.debian.org/debian jessie main non-free contrib
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://http.us.debian.org/debian sid main non-free contrib
### 2. 钉住 apt这非常重要 ###
> 在加了测试/不稳定的repo之后当你更新系统的时候所有安装过并且可用的软件就会立马更新而后你的系统就被你玩火自焚了。
所以需要设置一些规则,以便选定的软件包在正常的更新时不会被更新到一个不稳定的测试版本。
我们需要使用“钉住APT”的方式来告诉apt系统除了我们希望使用测试版或不稳定版的特定软件包之外其它的总是使用稳定版的软件包来更新。
可以通过如下两个文件之一来设置如何设置APT的优先级来“钉住”。
/etc/apt/preferences
/etc/apt/preferences.d/my_preferences
打开这两个文件之一(如果没有的话就创建一个),然后输入如下内容:
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
前面我们提到过稳定版指的是你当前的debian版本测试版是下一个而不稳定版则是更远的将来发行版。上面的设置中最主要的是优先级Pin-Priority。当前的稳定版应该有最高的优先级这就是说正常的apt-get操作只会从当前的稳定版的软件库现在是wheezy里面安装软件。
#### 更新包缓存 ####
在增加了新的软件库和指定了优先规则后,需要更新一下包缓存。
$ sudo apt-get update
#### 确认APT规则 ####
我们必须确认“钉住”的设置正确,优先级也没问题。使用 apt-cache 的 policy 参数来检查:
$ apt-cache policy apache2
apache2:
Installed: (none)
Candidate: 2.2.22-13
Version table:
2.4.7-1 0
600 http://http.us.debian.org/debian/ unstable/main amd64 Packages
2.4.6-3 0
650 http://http.us.debian.org/debian/ testing/main amd64 Packages
2.2.22-13 0
700 http://http.us.debian.org/debian/ wheezy/main amd64 Packages
如上的输出确认在wheezy 稳定版中, 2.2.22 版本的Apache是选定的版本它有最高的优先级。
### 3. 从测试版/不稳定版软件库中安装软件 ###
现在可以从测试版或不稳定版中选择一个特定的软件来安装它了。假如说我们要从测试版软件源中安装 apache2。
有两个不同的方法,并且其结果也有所不同。
#### 方式一 ####
# apt-get install apache2/testing
上述命令会从测试版软件库中安装 apache2并从稳定版软件库中安装其依赖包稳定版通过apt规则确定。这个命令在某些情况下会失败比如安装的软件包apache2所需的依赖包在稳定版软件库中没有更新到可以支持该软件时。
#### 方式二 ####
# apt-get -t testing install apache2
上述命令会从测试版软件库中安装apache2并从测试版软件库中安装其依赖包。这要比上面的命令工作的更好。
所以,要安装较新的软件包,直接从测试版/不稳定版的软件库中安装就行了。注意,优先级号码不只是一个数字而已,还有其特定意义。可以查看 apt_preferences的man页面了解更多
$ man 5 apt_preferences
### 总结 ###
使用“钉住”方式的测试版/不稳定版的软件库是一个获取较新版本软件包的一个好办法,不过其实并不推荐使用它们。如果弄错了,可能会从也许不兼容的分支上下载软件包,这会把你的系统搞乱。
一个更好的方式是,使用向后移植的软件库来安装更新的包。它从测试版和不稳定版的软件库中获取较新版本的软件包,但是为当前的稳定版软件库而编译。所以,对于 debian wheezy来说你可以使用wheezy-backports 软件库。访问http://backports.debian.org/ 了解更多。
### 资源 ###
- [https://wiki.debian.org/AptPreferences][1]
- [https://wiki.debian.org/DebianTesting][2]
- [https://www.debian.org/security/][3]
--------------------------------------------------------------------------------
via: http://www.binarytides.com/enable-testing-repo-debian/
译者:[213edu](https://github.com/213edu) [wxy](https://github.com/wxy) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://wiki.debian.org/AptPreferences
[2]:http://wiki.debian.org/DebianTesting
[3]:http://www.debian.org/security/

View File

@ -0,0 +1,42 @@
Ubuntu的Orange Box首次亮相
================================================================================
> Orange Box现已推出它是一个便携的服务器集群Canonical用它来演示和培训基于Ubuntu的OpenStack云。
![](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2014/06/grayscale_7.jpg)
Canonical刚刚发布的Orange Box是一个便携式服务器集群该公司用来展示[OpenStack][1][MAAS][2][Juju][3]和其它的基于Ubuntu Linux的云服务。
下面是它的介绍。
对于刚刚接触到它的人来说重要的是要了解Orange Box不是什么它不是一台Canonical用来盈利的硬件产品。到目前为止该公司并无表示计划大规模销售这些设备。如果你真的想[买一款][4]的话,大概价格为$12,900这个价格来自其合同制造商[TranquilPC Limited][5]。
从大的方面来说Orange Box是一个说服企业在基于Ubuntu的云计算投入资金的工具。Canonical的创始人马克·沙特尔沃思[上个月宣布了][6]Ubuntu OpenStack的战略这是该战略的一个关键组成部分更是该公司提供的称作[Jumpstart][7]的OpenStack的培训计划的一部分。
作为Jumpstart的一部分Canonical会将Orange Box借给合作伙伴以便他们的员工可以在Ubuntu集群上练习配置OpenStack和相关软件。Canonical的工作人员也将在培训期间提供咨询。
不过除开培训的目的不谈Orange Box[看起来真的很酷][8]。它装有10个[英特尔NUC][9]总计集成了160GB的RAM1200GB的存储空间和10个酷睿i5处理器这种设备在一个袖珍空间内提供了相当强大的计算能力。
![](http://www.intel.com/content/dam/www/public/us/en/images/product/wilson-canyon-nuc-front-angle-with-board.jpg)
更好的是Orange Box通过预装软件为启动基于Ubuntu的云技术打下了良好基础。
不过对于Canonical来说真正的考验是确保企业能够从Orange Box中获益。借出它们不只是为了让合作伙伴们体验一下不错的硬件设备而是为了通过一个真正令人信服的方式体验Ubuntu的云以吸引IT决策者选择Ubuntu所建立的下一代云基础设施。
--------------------------------------------------------------------------------
via: http://thevarguy.com/ubuntu/062314/canonical-debuts-orange-box-ubuntu-openstack-cloud-demos
译者:[乌龙茶](https://github.com/yechunxiao19) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://openstack.org/
[2]:https://maas.ubuntu.com/
[3]:http://juju.ubuntu.com/
[4]:http://www.tranquilpcshop.co.uk/ubuntu-orange-box/
[5]:http://www.tranquilpcshop.co.uk/
[6]:http://thevarguy.com/ubuntu/051614/shuttleworth-highlights-ubuntu-openstack-cloud-innovations
[7]:http://www.ubuntu.com/cloud/tools/jumpstart
[8]:http://arstechnica.com/information-technology/2014/06/hands-on-with-canonicals-orange-box-and-a-peek-into-cloud-nirvana/
[9]:http://www.intel.com/content/www/us/en/nuc/overview.html

View File

@ -1,27 +1,25 @@
CNprober 翻译完成.travelwithheart@yeah.net, 619913541
如何将Vim打造成一个成熟的IDE
================================================================================
如果你稍微写一点代码就能知道“集成开发环境”IDE是多么的便利。不管是Java、C还是Python当IDE会帮你检查语法、后台编译或者自动导入你需要的库时写代码就变得容易许多。另外如果你工作在Linux上你也会知道Vim在进行文本编辑的时候是多么的方便。所以你可能会想从Vim中也获取这些IDE特性。
如果你稍微写一点代码就能知道“集成开发环境”IDE是多么的便利。不管是Java、C还是Python当IDE会帮你检查语法、后台编译或者自动导入你需要的库时写代码就变得容易许多。另外如果你工作在Linux上你也会知道Vim在进行文本编辑的时候是多么的方便。所以你可能会想从Vim中也获取这些IDE特性。
事实上很少有方法可以帮你做到。有些人可能会想到试着把Vim打造成C语言IDE的 [c.vim][1] 或者把Vim集成到Eclipse里的 [Eclim][2] 。但是我想要告诉你的是一个更加通用的只用插件实现的方案。你肯定不想因为安装了太多的面板和特性而让你的编辑器变得臃肿不堪。只用插件实现的方案可以让你只选择那些你想要集成到Vim的特性。这样做的额外的一个好处是这个IDE不是专门针对某一种语言的可以让你写任何类型的代码。下面就来看一下我的 **把IDE特性带进Vim的前10款插件** 吧。
事实上很少有方法可以帮你做到。有些人可能会想到试着把Vim打造成C语言IDE的,比如[c.vim][1];也有把Vim集成到Eclipse里的 [Eclim][2] 。但是我想要告诉你的是一个更加通用的只用插件实现的方案。你肯定不想因为安装了太多的面板和特性而让你的编辑器变得臃肿不堪。只用插件实现的方案可以让你只选择那些你想要集成到Vim的特性。这样做的额外的一个好处是这个IDE不是专门针对某一种语言的可以让你写任何类型的代码。下面就来看一下我的 **把IDE特性带进Vim的前10款插件** 吧。
### 先来个福利: Pathogen ###
首先可能不是所有人都熟悉Vim的插件也不知道怎么安装这些插件。所以,我推荐的第一个插件就是[Pathogen][3]因为这个插件会让你更容易安装其他插件。如果你要安装另外的没有在这里列出来的插件用Pathogen会变得非常简单。[官方页面][3]文档写的非常好,去下载安装一个吧。接下来插件的安装也会变得容易很多。
首先可能不是所有人都熟悉Vim的插件并知道该怎么安装这些插件。所以,我推荐的第一个插件就是[Pathogen][3]因为这个插件会让你更容易安装其他插件。如果你要安装另外的没有在这里列出来的插件用Pathogen会变得非常简单。它的[官方页面][3]文档写的非常好,去下载安装一个吧。接下来插件的安装也会变得容易很多。
### 1. SuperTab ###
[![](https://farm6.staticflickr.com/5158/14332189422_34aeb086ed_z.jpg)][4]
![](https://c2.staticflickr.com/6/5158/14332189422_34aeb086ed_z.jpg)
我们习惯于IDE的第一件事就是它的自动补全功能。所以,我习惯这个非常方便的给了Tab键“超能力”的 [SuperTab][5] 插件。
我们习惯于IDE的第一个原因就是它的自动补全功能。所以,我喜欢这个非常方便的给了Tab键“超能力”的 [SuperTab][5] 插件。
### 2. Syntastic ###
![](https://farm4.staticflickr.com/3894/14354095583_ce9b112b97_z.jpg)
如果你需要使用超过一种语言进行编码,有时候是非常容易混淆不同语言之间的语法的。幸运的是,[syntastic][6] 会帮你检查,然后告诉你是否应该加上圆括号或者方括号,或者告诉你在某个地方,你忘了一个分号。
如果你需要使用一种以上的语言进行编程,有时候是非常容易混淆不同语言之间的语法的。幸运的是,[syntastic][6] 会帮你检查,然后告诉你是否应该加上圆括号或者方括号,或者告诉你在某个地方,你忘了一个分号。
### 3. Auto Pairs ###
@ -29,11 +27,11 @@ CNprober 翻译完成.travelwithheart@yeah.net, 619913541
### 4. NERD Commenter ###
如果你在找一个可以支持多种程序语言的注释代码的快捷键,你可以试试 [NERD Commenter][8]。即使你不是程序员我也非常非常推荐这款插件因为它会让你在注释bash 脚本或者其他任何东西的时候都会变得非常高效。
如果你在找一个可以支持多种程序语言的注释代码的快捷键,你可以试试 [NERD Commenter][8]。即使你不是程序员我也非常非常推荐这款插件因为它会让你在注释bash脚本或者其他任何东西的时候都会变得非常高效。
### 5. Snipmate ###
任何一个程序员都知道,好的coder写代码杰出的coder重用代码。[snipmate][9] 可以容易的插入代码片段到你的文件里面,大大的减少了你敲键盘的次数。它默认的很多各种语言的代码片段,你也可以非常容易的添加你自己。
任何一个程序员都知道,好的码农写代码,杰出的码神重用代码。[snipmate][9]可以容易的插入代码片段到你的文件里面,大大的减少了你敲键盘的次数。它默认的包含了很多各种语言的代码片段,你也可以非常容易的添加你自己
### 6. NERDTree ###
@ -46,19 +44,22 @@ CNprober 翻译完成.travelwithheart@yeah.net, 619913541
![](https://farm4.staticflickr.com/3904/14332189492_209a3ee2dc_z.jpg)
为了打造一个文件浏览器,支持同时打开多个文件,没有什么比一个好的缓冲区管理器更重要了。[MiniBufferExplorer][11] 就可以非常漂亮和高效地完成这个工作。它甚至为你的缓冲区设置了不同的颜色和切换快捷键。
### 8. Tag List ###
![](https://farm4.staticflickr.com/3889/14147244138_c04731826a_z.jpg)
当你同时有多个文件打开时,很容易忘了你都在这些文件里添加了什么。为了防止你忘记,[Tag List][12] 这个代码查看器将会用一种漂亮简洁的格式展示不同的变量和函数。
当你同时有多个文件打开时,很容易忘了你都在这些文件里添加了什么。为了防止你忘记,[Tag List][12] 这个代码查看器将会用一种漂亮简洁的格式展示其中的的变量和函数。
### 9. undotree ###
![](https://farm3.staticflickr.com/2913/14354095453_8bb87a3e31_z.jpg)
对于我们之中那些喜欢undoredo然后又undo某些更改然后依据这些来查看整个编辑完成过程的人来说 [undotree][13] 是一个不错插件可以以一棵树的形式看到你的undo和redo历史。这个功能跟代码完全没有关系所以这是我非常喜欢的一个插件。
### 10. gdbmgr ###
最后,但并非不重要的是每个人都在某时刻需要一个调试器。如果你喜欢gdb那么[gbdmgr][14]就是为你准备的因为它集成了那个著名的调试器到Vim中。
最后,但并非不重要,每个人都在某时刻需要一个调试器。如果你喜欢gdb那么[gbdmgr][14]就是为你准备的因为它集成了那个著名的调试器到Vim中。
总结一下不管你是不是一个疯狂的coder能有一些额外的Vim功能在手总是非常方便的。像我在简介里说到的如果你不需要你不用安装这里所有的这些插件。或者你想要安装另外的也行这些其实只是一个基础入门级的插件。
@ -68,7 +69,7 @@ CNprober 翻译完成.travelwithheart@yeah.net, 619913541
via: http://xmodulo.com/2014/06/turn-vim-full-fledged-ide.html
译者:[love_daisy_love](https://github.com/CNprober) 校对:[校对者ID](https://github.com/校对者ID)
译者:[love\_daisy\_love](https://github.com/CNprober) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -7,7 +7,7 @@
![](https://farm3.staticflickr.com/2936/14371977196_1a4522359b_z.jpg)
让我们直接从这两个“大咖”开始。当有人在一个聊天室里问关于Linux下的编辑器时会有一个人立马回答[Vim][2],然后会有另外一个说[Emacs][3]. 之所以会这样,理由很充分。这两个都是非常强大的编辑器,有很多的特性,很多插件,很强大的社区支持。如果你一点都不熟悉它们的话,要描述清楚它们强大的功能是有点困难。但是简单来讲,它们允许你在文本中快速移动,简单地做出大量的修改,记录宏以及你能想到基本上任何疯狂的编辑方式。这两个编辑器共同的缺点是,不可避免地花时间去学习。讲完这点之后,我不会陷入到哪一个更好的争论中去,但是我真的想建议每一个人至少学习这两者之一。
让我们直接从这两个“大咖”开始。当有人在一个聊天室里问关于Linux下的编辑器时会有一个人立马回答[Vim][2],然后会有另外一个说[Emacs][3]LCTT译注这就是V党和E党啊~之所以会这样,理由很充分。这两个都是非常强大的编辑器,有很多的特性,很多插件,很强大的社区支持。如果你一点都不熟悉它们的话,要描述清楚它们强大的功能是有点困难。但是简单来讲,它们允许你在文本中快速移动,简单地做出大量的修改,记录宏以及你能想到基本上任何疯狂的编辑方式。这两个编辑器共同的缺点是,不可避免地花时间去学习。讲完这点之后,我不会陷入到哪一个更好的争论中去,但是我真的想建议每一个人至少学习这两者之一。
![](https://farm4.staticflickr.com/3916/14393718612_a880b86a52_z.jpg)
@ -15,21 +15,21 @@
![](https://farm3.staticflickr.com/2917/14391734181_0f0ec76e4f_z.jpg)
一款叫做[Sublime Text][4]的文本编辑器在过去几年逐渐兴起.一些人可能会将它视为Vim或者Emacs的友好版专为编程而设计的。事实上它保持了一些与Vim和Emacs的相似特性。比如批量编辑和函数跳转都会让人或多或少想起Emacs或者[一个充满活力的Vim][5].然而,它保留了更多的可视性并且更加容易使用。同样,大量的插件吸引大家进行个性化定制。
一款叫做[Sublime Text][4]的文本编辑器在过去几年逐渐兴起一些人可能会将它视为Vim或者Emacs的友好版专为编程而设计的。事实上它保持了一些与Vim和Emacs的相似特性。比如批量编辑和函数跳转都会让人或多或少想起Emacs或者[一个充满活力的Vim][5]然而,它保留了更多的可视性并且更加容易使用。同样,大量的插件吸引大家进行个性化定制。LCTT译注实际上译者认为Sublime Text与其说是像Vim或Emacs不如说更像是Mac上的编辑器神器textmate。另外Sublime Text的发展最近已经陷入停滞了。
Sublime Text唯一的“污点”是它的许可证如果你只使用开源软件的话你可以放弃它了。为此最近出现了一个雄心勃勃的克隆版 [Lime][6] 。这个软件正处在繁重的开发当中但是它的理念是跟Sublime Text相似的用户体验但是带着开源的韵味。对于Lime除了满满的期待没有更多要说的了。
Sublime Text唯一的“污点”是它的许可证如果你只使用开源软件的话你可以放弃它了。LCTT译注但是Sublime Text可以全功能一直试用下去没有一点区别只是如果你觉得应该支持的话付费比较好虽然挺贵。为此,最近出现了一个雄心勃勃的克隆版 [Lime][6] 。这个软件正处在重度开发当中但是它的理念是跟Sublime Text相似的用户体验但是带着开源的韵味。对于Lime除了满满的期待没有更多要说的了。
距现在更近的GitHub以开源形式发布了[Atom][7]展开了与Sublime Text正式的竞争。Atom打包了所有你想要的文件跳转代码片段使用等特性提供一个完整特性的编辑器而不是简单的编辑框。使用HTMLCSS和集成Node.js环境可以轻易地定制文本处理过程这正是它的魅力所在。这其实已经要涉及到IDE的定义了我们的列表最多会覆盖到这里。
距现在更近的GitHub以开源形式发布了[Atom][7]展开了与Sublime Text正式的竞争。Atom打包了所有你想要的文件跳转代码片段使用等特性提供一个完整特性的编辑器而不是简单的编辑框。使用HTMLCSS和集成Node.js环境可以轻易地定制文本处理过程这正是它的魅力所在。这其实已经要涉及到IDE的定义了我们的列表最多会覆盖到这里。LCTT译注好吧我觉得从Sublime Text转移出来的最佳出口就是Atom。
![](https://www.flickr.com/photos/xmodulo/14395083745/)
![](https://farm4.staticflickr.com/3907/14395083745_469b7e49c9_z.jpg)
### 3. Gedit & Kate & Mousepad & Leafpad ###
![](https://farm3.staticflickr.com/2927/14371977076_c95a557233_z.jpg)
如果不谈这些超级厉害的编辑我们可以转向我认为的“桌面环境经典版”编辑器。这些编辑器感觉上更加的传统有些也可以用插件进行强化但是它们的重点是输入简单。如果你头脑里有一些想法想要在忘记之前赶快记下来我必须怪罪那些视频游戏让我的注意力变得短暂。你不需要学习Vim或者Sublime Text的快捷键。你只需要一些空白的地方进行输入。这类编辑器的好处是它们或多或少的和你的桌面环境集成在一起。在这一类编辑器中Gnome 下的 [Gedit][8] 和 KDE下的 [Kate][9] 都很好的集成在桌面系统中可以通过插件进行个性化定制。比如更容易的进行LaTeX排版。[Mousepad][10] 和 [Leafpad][11] 更适合于轻量级的桌面比如Xfce和LXDE。它们在某种程度上很像Windows的记事本。所以如果你需要的是灵活和便捷请选择它们。
如果不谈这些超级厉害的我们可以转向我认为的“桌面环境经典版”编辑器。这些编辑器感觉上更加的传统有些也可以用插件进行强化但是它们的重点是输入简单。如果你头脑里有一些想法想要在忘记之前赶快记下来我必须怪罪那些视频游戏让我的注意力变得短暂。你不需要学习Vim或者Sublime Text的快捷键。你只需要一些空白的地方进行输入。这类编辑器的好处是它们或多或少的和你的桌面环境集成在一起。在这一类编辑器中Gnome 下的 [Gedit][8] 和 KDE下的 [Kate][9] 都很好的集成在桌面系统中可以通过插件进行个性化定制。比如更容易的进行LaTeX排版。[Mousepad][10] 和 [Leafpad][11] 更适合于轻量级的桌面比如Xfce和LXDE。它们在某种程度上很像Windows的记事本。所以如果你需要的是灵活和便捷请选择它们。
[![](https://farm6.staticflickr.com/5522/14415259703_d3885b3952_z.jpg)][12]
![](https://c2.staticflickr.com/6/5522/14415259703_d3885b3952_z.jpg)
### 4. Nano & Qute ###
@ -37,9 +37,9 @@ Sublime Text唯一的“污点”是它的许可证如果你只使用开源
另外一个流行的文本编辑器“大家族”是“无打扰编辑器”。如果你喜欢在后台持续地开着Facebook或者Twitter或者每5分钟就收一次邮件你就会知道把注意力集中在那篇明天要交的散文或者这些还没编译通过的代码是多么困难的事。如果是这样你需要一个编辑器它可以占满整个屏幕空间并且屏蔽掉所有的其它事情。
也许这类编辑器里面最不受欢迎的是Nano。如果你想屏蔽所有分心的事关掉X server[译注关掉桌面只用文字终端界面Nano就是工作在这种模式下])。这是最简单和直接的方式。事实上,《权力游戏(Game of Thrones)》的作者Geogge R. R. Martin最近就在[一次采访][13]中说他使用一个类似DOS Word的文本处理程序写他的小说。
也许这类编辑器里面最不受欢迎的是Nano。如果你想屏蔽所有分心的事关掉X serverLCTT译注关掉桌面只用文字终端界面Nano就是工作在这种模式下。实际上这时nano就是接管了X Server的工作。)。这是最简单和直接的方式。事实上,《权力游戏(Game of Thrones)》的作者Geogge R. R. Martin最近就在[一次采访][13]中说他使用一个类似DOS Word的文本处理程序写他的小说。
如果你想要一款更顺眼一点的编辑器,你可以试试我的最爱:[Qute][14]. 没有酷炫的特性也许有一点LaTeX排版使它开起来更美观但是重点其实是在它的界面的。它提供了一个舒适的导航和编辑体验。如果你对终端感觉不太舒服Qute是个不错的选择。
如果你想要一款更顺眼一点的编辑器,你可以试试我的最爱:[Qute][14]没有酷炫的特性也许有一点LaTeX排版使它开起来更美观但是重点其实是在它的界面的。它提供了一个舒适的导航和编辑体验。如果你对终端感觉不太舒服Qute是个不错的选择。
![](https://farm3.staticflickr.com/2927/14395083485_7f8f0d6d59_z.jpg)
@ -48,7 +48,7 @@ Sublime Text唯一的“污点”是它的许可证如果你只使用开源
![](https://farm4.staticflickr.com/3845/14395083565_b07b33abf0_z.jpg)
最后办公套件也是文本编辑器。我不确定你能否轻松使用办公套件编程但是它确实更适合纯文本编辑也比LaTeX更容易学习。在这类编辑器中[LibreOffice][15] 和 [Calligra][16] 能避而不谈。这两个编辑器因为它们丰富的特性和响亮的名声成为这类编辑器中的巨兽。这两者我都喜欢但是很多人明确的偏向于前者。如果你怀念微软的Word处理软件你会有自己的选择。稍处下风的[Abiword][17]相对前面的两个是一个轻量级的选择。如果你的目的只是编辑一个文本文档不关心电子表格或者数据库Abiword的特性可以达到理想的效果。
最后办公套件也是文本编辑器。我不确定你能否轻松使用办公套件编程但是它确实更适合纯文本编辑也比LaTeX更容易学习。在这类编辑器中[LibreOffice][15] 和 [Calligra][16] 能避而不谈。这两个编辑器因为它们丰富的特性和响亮的名声成为这类编辑器中的巨兽。这两者我都喜欢但是很多人明确的偏向于前者。如果你怀念微软的Word处理软件你会有自己的选择。稍处下风的[Abiword][17]相对前面的两个是一个轻量级的选择。如果你的目的只是编辑一个文本文档不关心电子表格或者数据库Abiword的特性可以达到理想的效果。
![](https://farm3.staticflickr.com/2915/14371976966_4d252928ec_z.jpg)
@ -60,7 +60,7 @@ Sublime Text唯一的“污点”是它的许可证如果你只使用开源
via: http://xmodulo.com/2014/06/good-text-editor-linux.html
译者:[love_daisy_love](https://github.com/CNprober) 校对:[Caroline](https://github.com/carolinewuyan)
译者:[love\_daisy\_love](https://github.com/CNprober) 校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,58 @@
保护你的Linux系统的九个老生常谈
================================================================================
在现在这个世道中保障基于Linux的系统的安全是十分重要的。但是你得知道怎么干。一个简单反恶意程序软件是远远不够的你需要采取其它措施来协同工作。那么试试下面这些手段吧。
![](http://www.efytimes.com/admin/useradmin/photo/2Rak10143PM6172014.jpeg)
### 1. 使用SELinux ###
[SELinux][1]是用来对Linux进行安全加固的有了它用户和管理员们就可以对访问控制进行更多控制。SELinux为访问控制添加了更细的颗粒度控制。与仅可以指定谁可以读、写或执行一个文件的权限不同的是SELinux可以让你指定谁可以删除链接、只能追加、移动一个文件之类的更多控制。LCTT译注虽然NSA也给SELinux贡献过很多代码但是目前尚无证据证明SELinux有潜在后门
### 2. 订阅漏洞警报服务 ###
安全缺陷不一定是在你的操作系统上。事实上,漏洞多见于安装的应用程序之中。为了避免这个问题的发生,你必须保持你的应用程序更新到最新版本。此外,订阅漏洞警报服务,如[SecurityFocus][2]。
### 3. 禁用不用的服务和应用 ###
通常来讲用户大多数时候都用不到他们系统上的服务和应用的一半。然而这些服务和应用还是会运行这会招来攻击者。因而最好是把这些不用的服务停掉。LCTT译注或者干脆不安装那些用不到的服务这样根本就不用关注它们是否有安全漏洞和该升级了。
### 4. 检查系统日志 ###
你的系统日志告诉你在系统上发生了什么活动,包括攻击者是否成功进入或试着访问系统。时刻保持警惕,这是你第一条防线,而经常性地监控系统日志就是为了守好这道防线。
### 5. 考虑使用端口试探 ###
设置[端口试探Port knocking][4]是建立服务器安全连接的好方法。一般做法是发生特定的包给服务器,以触发服务器的回应/连接(打开防火墙)。端口敲门对于那些有开放端口的系统是一个很好的防护措施。
下面是来自 http://www.portknocking.org/ 的示意图:
![](http://www.portknocking.org/images/portknocking-explained-01.png)![](http://www.portknocking.org/images/portknocking-explained-02.png)![](http://www.portknocking.org/images/portknocking-explained-03.png)![](http://www.portknocking.org/images/portknocking-explained-04.png)
### 6. 使用Iptables ###
Iptables是什么这是一个应用框架它允许用户自己为系统建立一个强大的防火墙。因此要提升安全防护能力就要学习怎样一个好的防火墙以及怎样使用Iptables框架。
### 7. 默认拒绝所有 ###
防火墙有两种思路一个是允许每一点通信另一个是拒绝所有访问提示你是否许可。第二种更好一些。你应该只允许那些重要的通信进入。LCTT译注即默认许可策略和默认禁止策略前者你需要指定哪些应该禁止除此之外统统放行后者你需要指定哪些可以放行除此之外全部禁止。
### 8. 使用入侵检测系统 ###
入侵检测系统或者叫IDS允许你更好地管理系统上的通信和受到的攻击。[Snort][3]是目前公认的Linux上的最好的IDS。
### 9. 使用全盘加密 ###
加密的数据更难窃取,有时候根本不可能被窃取,这就是你应该对整个驱动器加密的原因。采用这种方式后,如果有某个人进入到你的系统,那么他看到这些加密的数据后,就有得头痛了。根据一些报告,大多数数据丢失源于机器被盗。
--------------------------------------------------------------------------------
via: http://www.efytimes.com/e1/fullnews.asp?edid=141368
译者:[GOLinux](https://github.com/GOLinux) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://selinuxproject.org/page/Main_Page
[2]:http://www.securityfocus.com/rss/vulnerabilities.xml
[3]:http://www.snort.org/
[4]:http://en.wikipedia.org/wiki/Port_knocking

View File

@ -1,39 +1,38 @@
如何在网络上在Windows,MAC和Linux之间共享文件
如何通过网络在Windows、MAC和Linux之间共享文件
================================================================================
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/windows-mac-and-linux-network.jpg)
家庭[文件共享][1]曾经是一个噩梦,即使在不同的Windows版本之间- 没有考虑Mac和Linux! 这些操作系统现在可以相互通信并且无需特殊软件就可共享文件。
家庭[文件共享][1]曾经是一个噩梦即使在不同的Windows版本之间—— 甚至不考虑Mac和Linux但现在这些操作系统可以相互通信并且无需特殊软件就可共享文件。
我们之前使用SMB协议来做到这点。Windows使用SMB来做文件共享同时Mac和Linux发行版都内置支持SMB。Microsoft甚至给开源Samba项目[提交补丁][2]来改进它!
我们之前使用SMB协议来做到这点。Windows使用SMB来做文件共享同时Mac和Linux发行版都内置支持SMB。Microsoft甚至给开源Samba项目[提交补丁][2]来改进它!
### 在Windows上共享一个文件夹 ###
### 在Windows上共享文件夹 ###
既然其他操作系统不能访问家庭组,您需要[启用Windows老式的文件共享][3]。要做到这点,打开控制面板进入网络和共享> 更改高级共享设置。启用“网络发现”和“文件与打印共享”。
既然其他操作系统不能访问家庭组您需要[启用Windows老式的文件共享][3]。要做到这点,打开控制面板进入网络和共享> 更改高级共享设置。启用“网络发现”和“文件与打印共享”。
如果你想要无需密码访问共享文件夹你还需要微调一下选项。
如果你想要无需密码访问共享文件夹你还需要微调一下其它选项。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/enable-file-and-printer-sharing-for-mac-and-linux-on-windows.png)
在Windows Explorer或者File Explorer中定位你想共享的文件夹,右键点击,选择属性。点击共享标签,并使用这里的选项来共享和配置文件夹的权限。
在Windows Explorer或者File Explorer中找到你想共享的文件夹,右键点击,选择属性。点击共享标签,并使用这里的选项来共享和配置文件夹的权限。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/share-windows-folders-with-mac-and-linux-on-local-network.png)
### 在Windows上访问共享文件夹 ###
在Windows Explorer或者File Explorer中访问窗格来浏览其他计算机共享给你的文件。你会看到正确配置后的Mac和Linux计算机在Windows PC机附近出现了。双击一台计算机来查看它的共享文件。
在Windows Explorer或者File Explorer中访问网络面板来浏览其他计算机共享给你的文件。你会看到正确配置后的Mac和Linux计算机在Windows PC机附近出现了。双击一台计算机来查看它的共享文件。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/access-ubuntu-linux-shared-folder-on-windows.png)
如果你知道计算机名或者IP地址你同样可以直接连接到这台计算机上只需要在Windows Explorer或者File Explorer中输入//计算名后按下回车就可以了 如果你希望直接通过IP地址连接只需要将计算机名换成IP地址就可以了
如果你知道计算机名或者IP地址你同样可以直接连接到这台计算机上只需要在Windows Explorer或者File Explorer中输入\\计算名后按下回车就可以了。如果你希望直接通过IP地址连接只需要将计算机名换成IP地址就可以了
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/directly-access-network-share-on-windows.png)
### 在Mac OS X 上共享文件夹 ###
你需要在你的Mac上启用网络文件共享来共享文件。双击苹果logo并选择系统偏好。点击共享图标并启用文件共享。点击选项按钮并确认“使用SMB共享文件和文件夹”已经启用。
你需要在你的Mac上启用网络文件共享来共享文件。点击桌面左上角的苹果logo并选择系统偏好。点击共享图标并启用文件共享。点击选项按钮并确认“使用SMB共享文件和文件夹”已经启用。
在共享文件夹那列中选择额外要共享的文件夹。使用用户列来选择哪些用户和组可以访问和写入它们
在共享文件夹那列中选择添加要共享的文件夹。使用用户列来选择哪些用户和组可以访问和写入它们
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/share-folder-with-windows-from-mac-os-x.png)
@ -43,19 +42,19 @@
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/directly-connect-to-windows-file-share-on-a-mac.png)
你会被提示你用相应的凭证来验证或者以访客方式登录。连接完成后在Finder的侧边栏的共享列中就会出现这台计算机
你会被提醒你应该用相应的凭证来验证或者以访客方式登录。连接完成后在Finder的侧边栏的共享列中就会出现这台计算机
要在你每次登录后自动链接到共享文件夹,打开系统偏好窗口并进入用户与组> 登录项。从finder中的共享列中的网络共享拖拽到登录项列表中
要在你每次登录后自动链接到共享文件夹,打开系统偏好窗口并进入用户与组 > 登录项。从finder中的共享列中的网络共享拖拽到登录项列表中
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/windows-shared-folder-on-mac.png)
### 在 Linux 中共享一个文件夹 ###
### 在 Linux 中共享文件夹 ###
在Linux上使用你桌面文件管理器来共享一个文件。这里我们在Ubuntu 14.04上使用Nautilus但是在其他文件管理器上的过程应该是相似的。
在Linux上使用你桌面文件管理器来共享文件夹。这里我们使用Ubuntu 14.04上的Nautilus不过其他文件管理器上的过程应该是相似的。
打开文件管理器,在想要共享的文件上右键,选择属性。剪辑本地网络共享标签并对这个文件启用共享。如果这是你第一次启用共享你会被提示要求安装Samba软件- 这在你提供密码的时候会自动显示。
打开文件管理器,在想要共享的文件上右键,选择属性。点击本地网络共享标签并对这个文件启用共享。如果这是你第一次启用共享你会被提示要求安装Samba软件——这在你提供密码的时候会自动显示。
在安装Samba软件后配置共享设置- 确认点击创建共享按钮来开始共享文件夹。
在安装Samba软件后配置共享设置- 确认点击创建共享按钮来开始共享文件夹。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/share-folder-from-ubuntu-linux-with-windows-pc-over-local-network.png)
@ -63,21 +62,21 @@
你的Linux桌面文件管理器可能包含了一个网络浏览器它可以用来定位并访问在本地网络的共享文件夹。
在文件管理器的侧边栏点击浏览网络选项。接着双击Windows网络选项双击你的工作组默认是WORKFROUP双击近的计算机来浏览它的共享文件。
在文件管理器的侧边栏点击浏览网络选项。接着双击Windows网络选项双击你的工作组默认是WORKFROUP双击近的计算机来浏览它的共享文件。
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/browse-windows-network-shares-on-ubuntu.png)
为了直接连接到一台计算机选中Nautilus中的连接到服务器选项并输入像这样的远程计算机smb://COMPUTERNAME
直接连接到一台计算机选中Nautilus中的连接到服务器选项,并输入像这样的远程计算机地址smb://COMPUTERNAME
![](http://cdn.howtogeek.com/wp-content/uploads/2014/06/directly-connect-to-windows-shared-folder-on-ubuntu.png)
然而在你连接时,你可能需要使用具有访问远程计算机权限的用户名和密码来验证。这依赖于你是否启用了访客访问以及你如何设置你的文件夹共享权限。
不过在你连接时,你可能需要使用具有访问远程计算机权限的用户名和密码来验证。这依赖于你是否启用了访客访问以及你如何设置你的文件夹共享权限。
--------------------------------------------------------------------------------
via: http://www.howtogeek.com/191116/how-to-share-files-between-windows-mac-and-linux-pcs-on-a-network/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,86 @@
到底开发者需要掌握多少门语言?
================================================================================
![](http://a2.files.readwrite.com/image/upload/c_fill,h_900,q_70,w_1600/MTIyNzYyNjIwNDU2Njk4NDcw.jpg)
> 诸如Apple、Facebook及Google这样的大公司正在开发他们自己的编程语言开发者们被迫只有适应。
前不久的世界开发者大会上Apple公布了它的新开发语言[Swift][1]。这是最近大型技术公司们开发的一大波新语言中的最新成员,这些新语言某种程度上都是专门应用于他们自己的平台。
对iOS开发者Apple有Swift而[Facebook 有 Hack][2] —— 一门用于后端开发的语言。与此同时Google已经拥有了它自己的Javascript替代者 Dart以及一门新的通用编程语言Go。
这一波又一波的新语言,给开发者们带来了许多问题。也许其中最严重的问题正如我一位同事[Adriana Lee][3]在Apple发布Swift后所说
> (开发者们到底还得学习多少门语言?)
> ——Adriana Lee (@adra_la) [June 2, 2014][4]
### 计算机语言的通天塔 ###
目前已经存在的[编程语言有数百种][5],同时还有更多的语言正在涌现。其中许多都是被设计用在相对较窄的应用程序范围内,大多数甚至从未走出过项目小组的范围。
与此类似,大技术公司开发的新语言其实也是伴随着公司一起成长的。[通用语言的鼻祖C语言][6]就源于上世纪70年代初的AT&T贝尔实验室。Java目前作为Android app开发的主要语言诞生于上世纪90年代[Sun公司的Microsystems系统][7]。
发展到现在,不同之处在于,公司们拥抱新语言、从而想要延伸的特定商业目标的范围不一样了 —— 这一过程同时建立了一个忠心耿耿的开发者基础他们被牢牢锁定在了某个公司的特定平台上。这类一石二鸟的战略最早可以追溯到Sun对Java的采用当时公司就将其作为了挑战微软PC桌面统治地位的一种手段。事情虽然没有像Sun计划的那样发展下去但在Google转向Android之前Java大体上也算是在企业中间件系统中找到了自己的一席之地。
这么看来Apple的Swift其目标也就很明确了。Swift应该不会辜负公司前期的大肆宣传通过磨平Objective-C那粗糙的毛边看起来它能够成功简化iOS app开发者的开发过程。但是同样还是这些开发者他们却需要学习一门新语言的输入和输出而这些功能很可能在其他地方都不会用到。
### 大公司们为什么要重复造轮子 ###
“不要重复造轮子”这一哲学在绝大多数开发者心中根深蒂固,大公司们对此却并不买账。那他们为何不只是修改下现有语言用于新的用途呢?
答案很简单公司们发明他们自己的语言是因为他们有这个能力。设计一门新语言可能很复杂但对资源要求却并不很高。困难之处也就在对其提供支持包括提供软件资源共享代码库、API、编译器、文档等以及赢得开发者的心意。大公司们在这两方面尤其擅长。
还有一个事实,现有语言通常很难硬塞进如今的复杂代码框架中。举个栗子,[Facebook决定发明的Hack][8]就是一个普遍适用于Web开发的[脚本语言PHP][9]的超集合superset
Facebook的Hack最近已经比较普遍其主要目标就是改进代码的稳定性针对这一目的它强制在程序运行之前对数据类型进行检测。这样的检测确保了一个程序比方说不会将一个整数解析为一个字符串这样的错误如果捕获不到很可能会导致不可预知的后果。在Hack中这些检测会预先执行以便程序员能够在程序上线前早早发现这样的错误。
据Facebook的Hack项目组核心成员Julien Verlaguet透露公司之前尝试过用一门现有语言实现更高效的编程。但是Facebook的大部分代码都是由PHP编写的公司实际上已经建立了一个支持PHP及其分支的软件架构。即使能够让PHP同其他语言编写的代码协同工作实现的难易程度和运行速度都无法满足要求。
“比如说我们尝试用Scala重写PHP代码库”Verlaguet说。“Scala是一门设计优秀的漂亮语言但是它与PHP完全不兼容。每次我需要从Scala的代码库部分调用PHP的时候都会损失性能。我们很愿意使用一门现有语言但是对于我们来说这条路行不通。”
于是Facebook发明了Hack它与PHP一样能够共用公司现有的架构。Verlaguet介绍说Facebook的代码库主体已经从PHP迁移到了Hack同时公司将Hack开源希望独立开发者们能够帮公司找到Facebook以外的用途。
“你仍然可以使用PHP”他说“但是我们希望你有使用Hack的欲望。”
### 谁说了算 ###
公司和开发者之间有一种微妙的平衡。公司可以按照自己的喜好发明语言。但是如果开发者都不愿使用这门语言,那就没人用了,公司以外的人也就没人愿意将自己的职业生涯托付给这家公司。
公司在开发过程中同时使用不同的语言这并不少见。例如你可能用Objective-C开发iOS app但却用Java开发Android app。对开发者来说这从来都不是症结所在因为Objective-C和Java都是通用面向对象语言。它们用途广泛适用于很多场合。
然而Hack、Dart、Go和Swift到目前为止仍然只适用于严格特定公司的编程解决方案往往和公司选择的编程环境相对应。诚然现在下结论可能还太早。比方说Hack就可以用在一些后端的实现中它只是太新了以至于Facebook还没有任何数据供人们如此使用。
不是开发者不能学习多门语言。事实上大多数人已经掌握了多门语言。这好比罗曼斯语由拉丁语演变而成的语言如果你会说西班牙语再去学法语就比那些不会西班牙语的人简单许多。与此类似如果你已经会Java再学Ruby或Perl就简单得多。如果你会PHP基本上就已经学会了Hack。
与此相反学习多门语言更多的是一个习惯问题。如果Java已经解决了你的问题你就不再有动机去学Ruby。如果你用Objective-C编写iOS app感觉很爽你就不会有强烈的意愿去学Swift。
另外对于一些开发者来说封闭生态系统的语言只会使每个人的生活变得更糟。例如自由设计师Jack Watson-Hamblin就告诉我说像Apple这样强势推出Swift其实是在冒险增加程序员的负担同时将开发者社区割裂开来
> 程序员掌握多门语言固然重要但是不断强迫他们紧跟新语言却是行不通的。如果我正在开发一个简单的跨平台app我可不想被迫掌握四门语言再来完成它。如果真的需要我也只想使用一门语言。
Watson-Hamblin就主张说当每家公司都为了自家需要发明自己的语言时程序员的注意力被分散开发的视野也局限于一种这只会拖慢整个开发进程。他说“如果拿公司负责一门语言与负责一个开源社区相比较这两者的区别就好比一家大企业与一个初创小公司的区别”。社区生来就更加灵活适应能力更强。
当然Apple有[许多非常好的理由推出Swift从零开始][10]就像当初Facebook发明Hack的时候一样。我并不是说大公司不会强迫开发者接受这种改变在这方面有些公司一直都很让人讨厌。
“新语言的发明伴随着霸权的支配”Verlaguet说“被迫不停追赶确实令人沮丧但另一方面你又多了一种解决问题的新语言。反过来想想要是全世界的程序员都用同样一门语言做所有事情即使啥都凑合着能干这门语言也一定干得不怎么样”。
题图来自于[Flickr user Ruiwen Chua][11]CC 2.0
--------------------------------------------------------------------------------
via: http://readwrite.com/2014/06/17/apple-swift-facebook-hack-google-dart
译者:[Mr小眼儿](http://blog.csdn.net/tinyeyeser) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://developer.apple.com/swift/
[2]:http://readwrite.com/2014/03/20/facebook-new-programming-language-hack
[3]:http://readwrite.com/author/adriana-lee#awesm=~oGfPbJlSrFBamJ
[4]:https://twitter.com/adra_la/statuses/473537386266112000
[5]:http://en.wikipedia.org/wiki/List_of_programming_languages
[6]:http://en.wikipedia.org/wiki/C_(programming_language)
[7]:http://en.wikipedia.org/wiki/Java_(programming_language)
[8]:http://readwrite.com/2014/03/20/facebook-new-programming-language-hack
[9]:http://en.wikipedia.org/wiki/PHP
[10]:http://blog.erratasec.com/2014/06/why-it-had-to-be-swift.html#.U58BJI1dXtA
[11]:https://www.flickr.com/photos/ruiwen/3260095534

View File

@ -0,0 +1,112 @@
安装体验开源车载系统Automotive Grade Linux
================================================================================
> Linux基金会和他的合作伙伴本周发布了Automotive Grade Linux的第一个版本这是一个在连网汽车内部使用的开源平台。
![](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2014/07/automotivelinux.jpg)
随着本周 [Automotive Grade Linux][1](AGL)的第一个版本的发布这个在物联网时代专为汽车定制的Linux发行版将转变为一个新的生态系统。
AGL是由Linux基金会发起的合作项目Linux基金会汇集了来自汽车行业通信计算硬件学术界和其他领域的合作伙伴。AGL的第一个版本于6月30号发布在网上并且在可[免费下载][5],这个开源操作系统基于[Tizen IVI][4]。Tizen IVI是一个基于Linux的平台它被用于为广泛的设备提供操作系统解决方案从智能手机到电视汽车笔记本电脑。
![](http://automotive.linuxfoundation.org/sites/automotive.linuxfoundation.org/files/features/agl-jlr_0.png)
在第一个版本中AGL提供了一系列的功能和为汽车或其他车辆部署定制的应用程序包括
- 主屏幕
- 仪表盘
- 谷歌地图
- 暖通空调
- 媒体回放
- 新闻阅读器
- 音响控制
- 蓝牙手机
- 智能设备连接集成
Linux基金会和他的参与AGL项目的合作伙伴希望这个解决方案将帮助确保未来“连网汽车”使用开源软件以提供下一代娱乐导航和其他车内使用的工具。“公开和合作是促进一个公共的标准的汽车平台发展的关键以便这个产业可以更快速地实现供连网汽车使用的愿望。”Linux基金会的汽车总经理Dan Cauchy这样说。
Cauchy补充道Linux基金会期望AGL是一个良好的开端其合作者希望在以后的版本中能加入“一些额外的功能和特点。”
## 下载和安装测试 ###
### 下载 ###
可以从此下载镜像http://content.linuxfoundation.org/auto/downloads/images/
支持在PC上测试也提供了Vmware镜像。
### 安装在X86上 ###
**创建一个USB启动盘**
1. 下载GPartd Live 镜像的压缩文件http://gparted.sourceforge.net/download.php 。
2. 使用FAT32文件系统格式化一个最少8GB的U盘。
3. 解压 GPartd Live镜像的压缩包并复制全部内容到U盘。保持完整的目录格式比如你可以确认GPL这个文件是不是在U盘的根目录。
4. 把U盘变成可启动的根据你使用的系统不同而不同
a) Linux: 执行U盘里 utils/linux 目录下的 makeboot.sh 。
b) Windows: 执行U盘里 utils\win32 目录下的 makeboot.bat 。
5. 按 脚本提示执行。
6. 复制 [AGL 演示镜像][6]到U盘。
**安装到机器上**
注意:这会破坏你的机器上的所有数据!所以请确保机器上的硬盘上的数据是无用的。
1. 使用刚刚制作好的 GPartd U盘启动系统。
2. 默认运行 GPartd (所有选项直接回车确认即可)
3. 打开一个终端,并复制镜像内容到机器的硬盘:
gunzip -c agl-demo_1-0.img.gz | dd of=/dev/sda bs=16M
4. 关闭终端。
5. 在 GPartd 窗口,刷新设备。
6. 将 /dev/sda3 的大小扩展到整个硬盘的可用空间。
7. 关机。
8. 拔下U盘。
9. 重启!
### 创建VMware虚拟机 ###
在 64位Windows 7和32位Windows XP上的 VMware Player 5 测试通过。
1. 下载 VMWare Player http://www.vmware.com/products/player
2. 解压缩 [AGL VMWare image][7]
3. 在 VMware 中增加新的虚拟机:
1. 选择“我将稍后安装操作系统”
2. 使用 'Linux' -> 'Fedora'
3. 给个名字,比如: tizen-ivi-2.0
4. 创建一个新的磁盘,不过这个磁盘我们稍后会删除并重建一个新的
(将\<image.vmdk\> 作为 IDE(0:0) 设备添加)
5. 创建好虚拟机之后,然后“编辑虚拟机设置”
6. 可选取消CD/DVD的“启动后连接”的选项除非你的宿主机上有这个设备
7. (可选)取消打印机的“启动后连接”的选项
8. 删除虚拟机当前的硬盘
9. 添加一个新的硬盘
10. 选择“使用已有的虚拟磁盘”,使用那个解压缩得到文件
11. 当第一次启动虚拟机时,如果询问你是否要升级当前格式时,选择“保持现在的格式”
4. 运行:
1. 启动虚拟机
2. 系统启动后显示一个黑屏,在桌面上任何地方右键点击并打开一个终端
3. 运行如下命令
./start_demo.sh
这会调整屏幕分辨率打开声音启动node.js引擎并最终显示界面。
### 更多的演示截图 ###
请参看我们之前的一篇文章http://linux.cn/article-3324-1.html
--------------------------------------------------------------------------------
via: http://thevarguy.com/open-source-application-software-companies/070114/automotive-grade-linux-released-open-source-cars
译者:[linuhap](https://github.com/linuhap) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://automotive.linuxfoundation.org/
[2]:http://linuxfoundation.org/
[3]:http://automotive.linuxfoundation.org/
[4]:https://www.tizen.org/
[5]:http://automotive.linuxfoundation.org/node/add/downloads
[6]:http://content.linuxfoundation.org/auto/downloads/images/agl-demo-x86-1.0.img.gz
[7]:http://content.linuxfoundation.org/auto/downloads/images/agl-demo-vmware-1.0.vmdk.bz2

View File

@ -1,24 +1,26 @@
给猫咪照片加密
================================================================================
事实上,我的硬盘上不存在那种不愿意被别人看到的东西,只存有一些猫咪的照片、一些记录着想写的书想法的文本文件或者是一些短篇故事的文本,也有一些写了一半的 NaNoWriMo 小说文件。简单的说,我的硬盘就没有加密的必要,因为没有什么可隐藏的。可问题是,我们错误的把“隐私的渴望”跟“要隐藏某东西”两概念混淆在一起。比如说我生活的美国,我们视隐私权利是理所当然的事,但不包括那些传统所认为的“某人隐藏色情或炸弹”。隐私考虑的是一些平常的事情。
事实上,我的硬盘上不存在那种不愿意被别人看到的东西,只存有一些猫咪的照片、一些记录着想写的书想法的文本文件或者是一些短篇故事的文本,也有一些写了一半的 NaNoWriMo 小说文件。简单的说,我的硬盘就没有加密的必要,因为没有什么可隐藏的。可问题是,我们错误的把“隐私的渴望”跟“要隐藏某东西”两概念混淆在一起。比如说我生活的美国,我们视隐私权利是理所当然的事,但不包括那些传统所认为的“某人隐藏色情或炸弹”。隐私考虑的是一些平常的事情。
我居住在密歇根州。这儿的冬天很冷,我趋向于把温度设置在 75 度左右。对您们来说这个温度可能高了,但在我的家里刚好合适。多亏我的家是属于私有的,我的邻居不可能知道我们保持了这么高的温度,否则一但他们看到冬天如此“浪费”能源的家庭,这些邻居心里会很不平衡的。事实上,本地条规中有一条明确指出任何超过 60 度的就算是生态浪费。我并不想与这种僵老的条例较真,所以我仅仅想保守我们舒适的房子的秘密。我们并不想隐藏任何事情,但也并不是任何事情都要让外人知道。
我居住在密歇根州。这儿的冬天很冷,我趋向于把温度设置在华氏 75 度左右。对您们来说这个温度可能高了,但在我的家里刚好合适。多亏我的家是属于私有的,我的邻居不可能知道我们保持了这么高的温度,否则一但他们看到冬天如此“浪费”能源的家庭,这些邻居心里会很不平衡的。事实上,本地条规中有一条明确指出任何超过华氏 60 度的就算是生态浪费。我并不想与这种僵老的条例较真,所以我仅仅想保守我们舒适的房子的秘密。我们并不想隐藏任何事情,但也并不是任何事情都要让外人知道。
很明显,我举的例子有点弱智,但我希望的是这能引起大家的思考。现代的 Linux 系统很容易的就可以对我们的数据进行加密,并且很可靠,所以为什么不好好利用利用呢?
### 加密原理? ###
我不会涉及太多关于加密原理的细节,但要明白最基本的原理,即使是最简单的实现,这是必须的。要加密和解密一个文件,需要两把“钥匙”。一把是私钥,正如名字所示,属于私有的。我宁愿把私钥看作是真实的钥匙-你想要多少就可造出多少,但这样做是不明智的。同样的私钥你造的越多,某些不怀好意的人得到其中一把的机率就越大,他们就会闯入你的公寓(额,我的意思文件)。
我不会涉及太多关于加密原理的细节,但要明白最基本的原理,即使是最简单的实现,这是必须的。要加密和解密一个文件,需要两把“钥匙”。一把是私钥,正如名字所示,属于私有的。我宁愿把私钥看作是真实的钥匙——你想要多少就可造出多少,但这样做是不明智的。同样的私钥你造的越多,某些不怀好意的人得到其中一把的机率就越大,他们就会闯入你的公寓(额,我的意思是指那些文件)。
公钥更像是锁的样子,只有你能打开(用你的私钥)此锁。这公钥任何人都可以得到,你可以将它张贴在网站上、把它放在你的 E-mail 中、甚至纹在你的背上。其它人想创建一个只有你能访问的文件,就可以使用此公钥来加密。
公钥更像是锁的样子,只有你能(用你的私钥)打开此锁。这公钥任何人都可以得到,你可以将它张贴在网站上、把它放在你的 E-mail 中、甚至纹在你的背上。其它人想创建一个只有你能访问的文件,就可以使用此公钥来加密。
这种一对多的情况也有个很酷的副作用。如果你用你的私钥来加密一些东西,任何人都可以用你提供的公钥来解密它们。这听起来很傻,但这种情景很有用。虽然加密的文件不能免于被窥视,但是它能保证此文件确实来自于你而没有被恶意改动过。用你的公钥能解密的文件仅仅只能是用你私钥加密过的。用这种方式,用私钥加密的文件即是数字“签名”文件。
这种一对多LCTT译注指别人可以加密多个文件而只有你的一个私钥才能解密的情况也有个很酷的副作用。如果你用你的私钥来加密一些东西任何人都可以用你提供的公钥来解密它们。这听起来很傻但这种情景很有用。虽然加密的文件不能免于被窥视但是它能保证此文件确实来自于你而没有被恶意改动过。用你的公钥能解密的文件仅仅只能是用你私钥加密过的。用这种方式用私钥加密的文件即是数字“签名”文件。LCTT译注既然是任何人都可以用公钥解密其实加密没有意义相反仅仅用你的私钥做一个签名指纹别人只需要用你的公钥来验证该签名是否一致即可判断是否来自你。
LCTT译注其实本文此处所述的加密解密、签名校验等原理不完全正确和实际的非对称加密情形有所差异不过比较容易理解和类比。
#### 通用加密步骤: ####
1. 你有一个文件想要发送给苏茜 ,所以你得使用苏茜的公钥来加密,这样就只有 苏茜才能打开这个文件,但苏茜没有办法知道是谁给她发送的文件。因为任何一个人都可以用她的公钥来加密文件。
2. 因此,你得把你的文件用苏茜的公钥和你的私钥都加密。苏茜将不得不解密两次,但她知道它是来自于你的文件。
3. 苏茜接收到此文件后会用能证明来自于你的公钥来解密第一层。
2. 因此,你得把你的文件用苏茜的公钥和你的私钥都加密。苏茜将不得不解密两次,但她知道它是来自于你的文件。LCTT译注实际上应该是用你的私钥要做签名生成一小段签名指纹而不是对已经加密的文件再次加密。
3. 苏茜接收到此文件后会用能证明来自于你的公钥来解密第一层。LCTT译注校验签名确认来自你的私钥的签名正确。
4. 然后用她的私钥来解密第二层的密码,这是唯一的能够将原始文件进行解密的钥匙了(因为你是用她的公钥来加密的)。
当然,这情景就是用来安全传输文件的加密手段。这也是加密你的文件(或者分区)相当常用及简单的方法。就让我们开始来对文件进行加密吧,因为大多数人都想加密他们的系统。
@ -27,45 +29,45 @@
在深入更复杂的各种加密设置操作前,我们先做简单的对文件加密例子。能处理加密的应用程序有很多很多,事实上,对文件和系统进行加密的各种可用软件选择,很容易就会让我们变得焦头烂额。现在,我们就使用一款很基本的(但非常强大)命令行工具来对文件加密。 GPG 英文名Gnu Privacy Guard是一款对商业软件 PGP英文名Pretty Good Protection的开源实现软件。它具有加密、签名及管理多个密钥等功能。用例子说明让我们简单的加密一个文件吧。
我们假设你有一个名叫 secret_manifesto.txt 的文件,它包含有关于生命、宇宙及一切事物的秘密。使用 GPG你只需要一个密码就可以加密此文件。使用密码远比使用公钥和私钥对简单因为它只是用你的密码加密。虽然这很容易就让你的文件遭受到破解(使用彩虹表或其他黑客工具),但像锡上的标签上所说的:这是相当不错的保护。要加密你的文件,可以这样做:
我们假设你有一个名叫 secret_manifesto.txt 的文件,它包含有关于生命、宇宙及一切事物的秘密。使用 GPG你只需要一个密码就可以加密此文件。使用密码远比使用公钥和私钥对简单因为它只是用你的密码加密。虽然这比较容易让你的文件遭受到破解(比如使用彩虹表或其他黑客工具暴力破解),但像它的名字中所宣称的:这是相当不错的保护。要加密你的文件,可以这样做:
# gpg -c secret_manifesto.txt
# Enter passphrase:
# Repeat passphrase:
Enter passphrase:
Repeat passphrase:
一但完成,在相同的目录下就会多出个新的文件,它默认的名字是 secret_manifesto.txt.gpg 。这是一个二进制文件,这意味着它非常非常小,但是要拷贝/粘贴进电子邮件e-mail或 即时消息IM 就不可能了。要使其可拷贝等操作,可以添加 -a 标志,这将创建一个只包含 ASCII 码文本的加密文件:
一但完成,在相同的目录下就会多出个新的文件,它默认的名字是 secret_manifesto.txt.gpg 。这是一个二进制文件,这意味着它真的比较小,但是要将其内容拷贝/粘贴到电子邮件e-mail或 即时消息IM 就不可能了LCTT译注当然你可以使用附件方式。。要使其便于拷贝等操作,可以添加 -a 标志,这将创建一个只包含 ASCII 码文本的加密文件:
# gpg -a -c secret_manifesto.txt
# Enter passphrase:
# Repeat passphrase:
Enter passphrase:
Repeat passphrase:
# ls -l
-rw-rw-r-- 1 spowers spowers 6 Nov 23 1:26 secret_manifesto.txt
-rw-rw-r-- 1 spowers spowers 174 Nov 23 1:27 secret_manifesto.txt.asc
-rw-rw-r-- 1 spowers spowers 55 Nov 23 1:26 secret_manifesto.txt.gpg
注意到现在多了一个以 .asc 为扩展名的文件。它是个纯文本文件,从上面的代码段示例可以看到它比二进制的加密文件还大,当然比原文本文件就大的更多了。一但你把文件加密了,也确实想要对些信息保密,最明智的就是把原文本文件删除掉。
注意到现在多了一个以 .asc 为扩展名的文件。它是个纯文本文件,从上面的代码段示例可以看到它比二进制的加密文件还大,当然比原文本文件就大的更多了。一但你把文件加密了,也确实想要对些信息保密,最明智的就是把原文本文件删除掉。LCTT译注千万记住密码啊否则谁也帮不了你了——你得自己破解自己的密码啦:>
要解密文件,你需要再一次使用 GPG 程序。不管是二进制的还是 ASCII 文件,使用相同的命令就可以解密。如下示:
要解密文件,你需要再一次使用 GPG 程序。不管是二进制的还是 ASCII 文件,使用相同的命令就可以解密。如下示:
# gpg secret_manifesto.txt.asc
# gpg: CAST5 encrypted data
# Enter passphrase:
# gpg: encrypted with 1 passphrase
# File `secret_manifesto.txt' exists. Overwrite? (y/N)
gpg: CAST5 encrypted data
Enter passphrase:
gpg: encrypted with 1 passphrase
File `secret_manifesto.txt' exists. Overwrite? (y/N)
注意到上面的例子中,我没有删除源文本文件,所以 GPG 给出了是否覆盖选项提示。一但操作完成,我的未加密的源文件又回来了。如果你仅仅只有一两个文件要保护,那基于命令行的 GPG 程序正是你所需的。但如果你想实现在系统上指定一个区域,任何保存到这区域的的文件都会自动加密的话,就有点复杂了。可这也并不是非常的困难,让我们用一个非常简单的示范例子来讲解吧。
### 加密 USB 驱动盘 ###
如我前面提到的,要加密有很多可选的方式方法。加密磁盘分区最通用的一种方法是 LUKSLinux Unified Key Setup 系统。一个使用 LUKS 格式化分区的 USB 驱动盘可以被大多数系统自动别到。实际上,如果你使用的是像 Ubuntu 桌面这样的桌面环境系统的话,加密 USB 驱动盘其实就是在格式化过程中简单的勾选上一个复选框而已。虽然这是加密 USB 盘最容易让人接受的方式,但我还是想演示如何在命令行下进行加密,因为这种方式可以让你明白在加密的后面具体发生了什么。
如我前面提到的,要加密有很多可选的方式方法。加密磁盘分区最通用的一种方法是 LUKSLinux Unified Key Setup 系统。一个使用 LUKS 格式化分区的 USB 驱动盘可以被大多数系统自动别到。实际上,如果你使用的是像 Ubuntu 桌面这样的桌面环境系统的话,加密 USB 驱动盘其实就是在格式化过程中简单的勾选上一个复选框而已。虽然这是加密 USB 盘最容易让人接受的方式,但我还是想演示如何在命令行下进行加密,因为这种方式可以让你明白在加密的后面具体发生了什么。
#### 步骤 1: 识别您的 USB 驱动盘。 ####
在您插入 USB 驱动盘后,如果输入 `dmesg` 命令,将会显示出所有的系统信息,包括刚插入的 USB 驱动盘的设备名字。 确保设备标识是正确的,因为后面要进行的操作会破坏驱动盘上的所有数据。您也不想一不小心就格式化掉正常的磁盘吧。(虽然不用提醒,但我还是要说,确保您的 USB 驱动盘已经没有你想保留的数据,因为这是一个破坏性的过程。)
在您插入 USB 驱动盘后,如果在终端输入 `dmesg` 命令,将会显示出所有的系统信息,包括刚插入的 USB 驱动盘的设备名字。 确保设备标识是正确的,因为后面要进行的操作会破坏驱动盘上的所有数据。您也不想一不小心就格式化掉正常的磁盘吧。(虽然不用提醒,但我还是要说,确保您的 USB 驱动盘已经没有你想保留的数据,因为这是一个破坏性的过程。)
#### 步骤 2: 对 USB 驱动盘进行分区。 ####
假设,在您的系统上 USB 驱动盘是 /dev/sdb 这个设备,您需要在这个驱动上创建一个单分区。我们使用 fdisk 命令。下面是 fdisk 必须的交互操作。一般地,用 o 命令来创建一个新的空分区,然后用 w 命令来保存设置。然后重新运行 fdisk 命令,并用 n 命令来创建一个新的主分区,接下来保持默认的以使用整个设备空间:
假设,在您的系统上 USB 驱动盘是 /dev/sdb 这个设备,您需要在这个驱动上创建一个单分区LCTT译注设备是sdb其上可以有多个分区分别叫sdb1、sdb2等等。我们使用 fdisk 命令。下面是 fdisk 必须的交互操作。一般地,用 o 命令来创建一个新的空分区,然后用 w 命令来保存设置。然后重新运行 fdisk 命令,并用 n 命令来创建一个新的主分区,接下来保持默认的以使用整个设备空间:
# sudo fdisk /dev/sdb
@ -93,7 +95,7 @@
Command (m for help): w
The partition table has been altered!
现在你的 USB 驱动盘有了一个单分区了(/dev/sdb1但还没有文件系统这正是我们所想要的因为 LUKS 系统需要在创建文件系统前在您的分区上创建一个加密层。因此,在创建文件系统之前,就让我们在分区上先创建一个 LUKS 层吧,可以使用 cryptsetup 程序。如果您还没有安装 cryptsetup 的话,可以搜索您系统发布版本的仓库源,里就有。下面就开始创建 LUKS 加密分区层:
现在你的 USB 驱动盘有了一个单分区了(/dev/sdb1但还没有文件系统这正是我们所想要的因为 LUKS 系统需要在创建文件系统前在您的分区上创建一个加密层。因此,在创建文件系统之前,就让我们在分区上先创建一个 LUKS 层吧,可以使用 cryptsetup 程序。如果您还没有安装 cryptsetup 的话,可以搜索您系统发布版本的仓库源,里就有。下面就开始创建 LUKS 加密分区层:
# cryptsetup luksFormat /dev/sdb1
@ -105,37 +107,37 @@
Enter LUKS passphrase:
Verify passphrase:
按照提示的操作,一定要确保记得您的密码!注意,这儿的“密码单词”不仅仅只表示一个单词。这只是一个习惯,因而得名,设置的越长,越难被破解。
按照提示的操作,一定要确保记得您的密码!注意,这儿的“密码单词”不仅仅只表示一个单词。这只是一个习惯,因而得名,设置的越长越复杂,越难被破解。
一但上面的操作完成,就创建好了一个加密的分区,但它还没有被挂载或格式化。要做的第一步就是挂载分区,可以再一次使用 cryptsetup 工具:
# cryptsetup luksOpen /dev/sdb1 my_crypto_disk
Enter passphrase for /dev/sdb1:
当输入完密码后,您输入名字的设备就会像虚拟硬盘一样被挂载上。通常,它挂载在 /dev/mapper/devicename 目录下,所以这个例子所示的分区就挂载到了 /dev/mapper/my_crypto_disk 目录。
当输入完密码后,您输入名字的设备就会像虚拟硬盘一样被挂载上。通常,它挂载在 /dev/mapper/设备名 的目录下,所以这个例子所示的分区就挂载到了 /dev/mapper/my_crypto_disk 目录。
现在这个设备就可当做未加密的卷来访问了。 只要它一被挂载,就跟其它未加密的卷是一样的了,这就意味着您想要使用它的话就需要先写入文件系统:
现在这个设备就可当做未加密的卷来访问了。 只要它一被挂载,就跟其它未加密的卷是一样的了,这就意味着您想要使用它的话就需要先建立文件系统:
# mkfs.vfat /dev/mapper/my_crypto_disk -n my_crypto_disk
mkfs.vfat 3.0.9 (31 Jan 2010)
现在驱动功能完备,可以像其它驱动盘一样正常挂载使用了。实际上,如果你使用的是现代的图形用户界面系统的话,只要你把 USB 驱动盘一插入计算机,将会提示您输入密码,然后就自动挂载上了。退出的时候跟普通盘一样,里面存储的数据会被加密,直到下次输入密码。在命令行里使用 cryptsetup 卸载以及重加密驱动盘也是很简单的:
现在磁盘的功能完备了,可以像其它磁盘一样正常挂载使用了。实际上,如果你使用的是现代的图形用户界面系统的话,只要你把 USB 驱动盘一插入计算机,将会提示您输入密码,然后就自动挂载上了。退出的时候跟普通盘一样,里面存储的数据会被加密,直到下次输入密码。在命令行里使用 cryptsetup 卸载以及重加密驱动盘也是很简单的:
# cryptsetup luksClose my_crypto_disk
这仅仅只是冰山一角
### 这仅仅只是冰山一角 ###
写这篇文章,我的目的是希望剥开加密后面的秘密。加密和解密单个文件很简单,要加密整个 USB 驱动盘也不是太困难(如果使用的是图形用户界面工具就更容易了)。对于大多数系统的发布版本来说,在安装过程中就可以对整个 home 目录进行加密。加密是对您的整个 home 目录起作用,然而有些问题就需要特别处理了。例如,您没登陆时就运行的任务在大多数情况下是不会访问您的 home 目录的,但如果您有调度任务需要访问 home 目录的话,应该进行修改,让其访问系统中其它目录的数据。我觉得安全和便利平衡的中庸之道还是加密 USB 驱动盘,然后在上面存储个人资料。
写这篇文章,我的目的是希望剥开加密后面的秘密。加密和解密单个文件很简单,要加密整个 USB 驱动盘也不是太困难(如果使用的是图形用户界面工具就更容易了)。对于大多数系统的发布版本来说,在安装过程中就可以对整个 home 目录进行加密。加密是对您的整个 home 目录起作用,然而有些问题就需要特别处理了。例如,您没登陆时就运行的任务在大多数情况下是不会访问您的 home 目录的,但如果您有调度任务需要访问 home 目录的话,应该进行修改,让其访问系统中其它目录的数据。我觉得安全和便利之中平衡的中庸之道还是加密 USB 驱动盘,然后在上面存储个人资料。
我必须警告您,一但您考虑安全的问题,就会想要把任何东西都加密起来。这不是什么坏的事情,但是像要对 home 目录加密这种情况,是会碰到一些问题的。如果您使用不系统的话,跨平台访问也是个大问题。像这种情况,我强烈建议您使用 [TrueCrypt][1]。在前期的文章片段里我提到过 TrueCrypt它是一款开源的跨平台的加密系统软件。可以对文件、文件夹、分区等等进行加密同时可以在任何系统中访问加密的数据。像 Windows、Mac 及 Linux 客户端都可以使用。社区也有大力的支持。
我必须警告您,一但您考虑安全的问题,就会想要把任何东西都加密起来。这不是什么坏的事情,但是像要对 home 目录加密这种情况,是会碰到一些问题的。如果您使用不系统的话,跨平台访问也是个大问题。像这种情况,我强烈建议您使用 [TrueCrypt][1]。在前期的文章片段里我提到过 TrueCrypt它是一款开源的跨平台的加密系统软件。可以对文件、文件夹、分区等等进行加密同时可以在任何系统中访问加密的数据。像 Windows、Mac 及 Linux 客户端都可以使用。社区也有大力的支持。LCTT译注悲惨的是棱镜门事件之后TrueCrypt的作者已经放弃了该产品并且强烈建议大家也不要使用具体可以参考本站的一些相关消息。所以痛失TrueCrypt之后我们还有哪些替代品
希望对文件进行加密的目的并不是为了隐藏某些东西。就像即使您有个好邻居,最好夜里也得锁门一样,对您的个人数据进行加密也是个很正常的举动。如果您想在网上与大家分享你的 Whiskerton 先生戴着可爱的小豆豆帽子的照片的话,这是您的权利。但其它的人,比如他们索检你硬盘的时候,就不需要让看到了。
希望对文件进行加密的目的并不是为了隐藏某些东西。就像即使您有个好邻居,最好夜里也得锁门一样,对您的个人数据进行加密也是个很正常的举动。如果您想在网上与大家分享你的 Whiskerton 先生戴着可爱的小豆豆帽子的照片的话,这是您的权利。但其它的人,比如他们索检你硬盘的时候,就不需要让他们看到了。
--------------------------------------------------------------------------------
via: http://www.linuxjournal.com/content/encrypting-your-cat-photos
译者:[runningwater](https://github.com/runningwater) 校对:[校对者ID](https://github.com/校对者ID)
译者:[runningwater](https://github.com/runningwater) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,20 +1,20 @@
戴文的Linux内核专题25 配置内核 (21)
================================================================================
![](http://www.linux.org/attachments/slide-jpg.689/)
![](http://www.linux.org/attachments/slide-jpg.689/.jpg)
大家好本篇我们将会配置Linux内核的网路文件系统支持。网络文件系统是一个通过网络远程访问计算机的远程文件系统。
大家好本篇我们将会配置Linux内核的网络文件系统支持。网络文件系统是一个可以通过网络远程访问计算机的远程文件系统。
首先,"NFS client support"驱动允许linux系统使用NFS网络文件系统。这里还有3个不同版本的NFS - (NFS client support for NFS version 2)、 (NFS client support for NFS version 3)、 (NFS client support for NFS version 4) 和 (NFS client support for NFSv4.1)。如果你有一个处理NFS的网络找出你正在使用NFS的版本或者启用所有的NFS驱动。
首先,"NFS client support"驱动允许linux系统使用NFS网络文件系统。这里还有3个不同版本的NFS - (NFS client support for NFS version 2)、 (NFS client support for NFS version 3)、 (NFS client support for NFS version 4) 和 (NFS client support for NFSv4.1)。如果你有一个使用NFS的网络找出你正在使用NFS的版本或者启用所有的NFS驱动。
交换空间并不需要在本地存储单元上。这个驱动允许Linux使用NFS作为远程交换空间(Provide swap over NFS support)。
交换空间并不需要在本地存储单元上。这个驱动允许Linux使用NFS作为远程交换空间(Provide swap over NFS support)。
NFS系统可以通过缓存系统加速 (Provide NFS client caching support)。这是一个本地缓存。
启用这个驱动允许DNS对NFS服务器使用主机名(Use the legacy NFS DNS resolver)。
启用这个驱动允许NFS服务器使用DNS解析器(Use the legacy NFS DNS resolver)。
"NFS server support"给予需要满足这个需求的服务器提供了NFS的特性。其他一些NFS驱动包括(NFS server support for NFS version 3) 和 (NFS server support for NFS version 4)。
"NFS server manual fault injection"驱动是一个调试驱动它允许开发者让NFS服务器认为在NFS上发生了一个错误。特别地用于测试服务器如何处理NFS错误。
"NFS server manual fault injection"驱动是一个调试驱动它允许开发者让NFS服务器认为在NFS上发生了一个错误。特别地这用于测试服务器如何处理NFS错误。
"Secure RPC: Kerberos V mechanism"被用于RPC安全调用。由于安全原因没有这个特性NFS无法被加入到内核中。
@ -26,8 +26,7 @@ CIFS是一个用于Samba和Windows服务器的虚拟文件系统(CIFS support (a
有两个特性被用于调试或监视CIFS驱动(CIFS statistics) 和 (Extended statistics)。
一个特殊的需要在有LANMAN安全的服务器上需要(Support legacy servers which use weaker LANMAN security)。LANMAN或者LM哈希是一种有一些弱点的特殊的密码哈希函数。
要在服务器上支持LANMAN安全需要一个特定的驱动(Support legacy servers which use weaker LANMAN security)。LANMAN或者LM哈希是一种较弱的特殊的密码哈希函数。
CIFS在被挂载到安全服务器上之前需要Kerberos票据(Kerberos/SPNEGO advanced session setup)。这个驱动提供了CIFS使用能够提供票据的用户空间工具的能力。
@ -37,7 +36,7 @@ CIFS在被挂载到安全服务器上之前需要Kerberos票据(Kerberos/SPNEGO
CIFS有两个其他的调试工具(Enable CIFS debugging routines) 和 (Enable additional CIFS debugging routines)。
CIFS有"DFS feature support",它允许共享在被移除后仍可以访问。DFS代表"Distributed FileSystem"(分布式文件系统)。
CIFS有"DFS feature support"它允许共享在被移除后仍可以访问。DFS代表"Distributed FileSystem"(分布式文件系统)。
SMB2是CIFS的一个提升替代品(SMB2 network file system support)。SMB2代表的是"Server Message Block version 2"(服务器消息块第2版)。
@ -85,7 +84,7 @@ Linux内核有一个实验性的驱动通过9P2000协议访问Plan 9资源(Pl
这个设定分会启用/禁用普遍不需要或者废除的符号 (Enable unused/obsolete exported symbols)。然而一些模块可能需要这些符号。启用这个会增加内核的大小。Linux用户很少会需要这些符号。通常上禁用这个特性除非你了解一个重要的模块需要这个符号。
如果启用这个shehi,内核会在用户内核头上执行健康检查(Run 'make headers_check' when building vmlinux)。
如果启用这个设施,内核会在用户内核头上执行健康检查(Run 'make headers_check' when building vmlinux)。
在编译期,这个特性会检查无效的引用(Enable full Section mismatch analysis)。
@ -115,6 +114,6 @@ Linux内核有一个实验性的驱动通过9P2000协议访问Plan 9资源(Pl
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-21.4988/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,6 +1,6 @@
戴文的Linux内核专题26 配置内核 (22)
================================================================================
![](http://www.linux.org/attachments/slide-jpg.703/)
![](http://www.linux.org/attachments/slide-jpg.703/.jpg)
你好!本篇我们将继续配置"kernel hacks",接着我们会配置整个安全系统。
@ -14,7 +14,7 @@ Alpha和s390处理器需要配置下一个特性(Force weak per-cpu definitions)
"Latency measuring infrastructure"驱动提供了延迟检测工具LatencyTop以找出用户空间中由于内核执行/任务而被阻碍/干扰的对象。
下面,我们有一个子菜单名为"Tracers",它包含了不同追踪器的列表。追踪器是一段监视不同内核函数的代码。每次某个特定的函数启动,追踪器将被调用来检测函数。
下面,我们有一个子菜单名为"Tracers"它包含了不同追踪器的列表。追踪器是一段监视不同内核函数的代码。每次某个特定的函数启动,追踪器将被调用来检测函数。
下面的模块用来测试红黑树库的性能(Red-Black tree test)。红黑树是一个排序和搜索算法。
@ -28,9 +28,9 @@ printk()函数可以用来打印不同的调试信息,如果这个特性启用
Atomic64自我测试检查系统是否支持原子操作(Perform an atomic64_t self-test at boot)。这是一个32位系统执行64位操作。
这个驱动提供了对于所有可能的RAID6恢复系统的自我测试(Self test for hardware accelerated raid6 recovery)。
这个驱动提供了对于所有可能的RAID6恢复系统的自(Self test for hardware accelerated raid6 recovery)。
注意:自我测试是底层测试并且在绝大多数系统硬件和软件开启和执行前侦查软件。自我测试搜索硬件,失败的设备等等。自我测试也可能被编成应用测试它本身。
注意:自检是底层测试并且在绝大多数系统硬件和软件开启和执行前侦查软件。自检搜索硬件,失败的设备等等。自检也可能被编成应用以测试它本身。
在"Kernel Hacking"菜单中(如果你是用的是像ncurses那样的菜单接口),有一个名为"Sample kernel code"的子菜单。在以后的文章中,我们会讨论如何实现自定义/自制内核模块。只要记住这里是启用你自己的模块。
@ -62,7 +62,7 @@ printk()打印不同的消息到dmsg的启动界面但是在串行和控制
下面的驱动提供了对"copy_from_user()"系统调用的基本测试Strict copy size checks)。copy_fcrom_user()从用户空间拷贝数据块到内核空间中。
这里还有一个自我测试它用于NNI(NMI Selftest)。
这里还有一个自它用于NMI(NMI Selftest)。
现在,我们会进入"Security Options"如果你使用像ncurses的基于菜单的接口时。第一个选项允许访问内核中存储的键和验证令牌(Enable access key retention support)。这有很多原因用到,像访问加密文件系统。
@ -114,6 +114,6 @@ Yama是另外一个LSM(Yama support)。如果启用这个特性Yama可以与另
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-22.5017/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,8 +1,8 @@
戴文的Linux内核专题27 配置内核 (23)
================================================================================
![](http://www.linux.org/attachments/slide-jpg.735/)
![](http://www.linux.org/attachments/slide-jpg.735/.jpg)
欢迎来到内核配置的下一章本篇中我们会配置密码API虚拟化和运行库。密码学指的是在需要的计算机之间加密和安全通信。用户可能加密数据以保证是收件人而不是黑客收到数据。
欢迎来到内核配置的下一章本篇中我们会配置密码API虚拟化和运行库。密码学指的是在需要的计算机之间加密和安全通信的科学。用户可能加密数据以保证是收件人而不是黑客收到数据。
Linux内核需要在内核中启用"Cryptographic algorithm manager"(密码算法管理器)。这个特性提供了操作内核的加密特性所需的软件。
@ -93,7 +93,7 @@ CORDIC algorithm - 双曲线和三角函数。
JEDEC DDR data - JEDEC双倍数据速率SD-RAM规范
你猜怎么了?我们已经完成便宜内核。在23篇之后我敢肯定这是你的感觉 -
你猜怎么了?我们已经完成配置内核。在23篇之后我敢肯定这是你的感觉 -
视频链接:[http://www.youtube.com/embed/barWV7RWkq0?wmode=opaque][1]
@ -107,7 +107,7 @@ JEDEC DDR data - JEDEC双倍数据速率SD-RAM规范
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-23.5112/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,32 +1,32 @@
戴文的Linux内核专题28 编译与安装
================================================================================
![](http://www.linux.org/attachments/slide-jpg.762/)
![](http://www.linux.org/attachments/slide-jpg.762/.jpg)
你好在花费了大量的时间在配置你需要的内核后你现在可以编译它了。源代码是纯文本形式的C代码。这对人来可读但是对机器不这样。编译会将代码转换成计算机可理解的一种称之为二进制码的形式(1是 [开],0 是 [关])。编译同样会将所有内核代码文件变成一个内核的文件。
你好在花费了大量的时间在配置你需要的内核后你现在可以编译它了。源代码是纯文本形式的C代码。这对人来可读但是对机器这样。编译会将代码转换成计算机可理解的一种称之为二进制码的形式(1是 [开]0 是 [关])。编译同样会将所有内核代码文件变成一个内核的文件。
为了编译内核,在内核源代码相同目录下,在终端内输入"make"。这会花费一些时间。一旦完成,模块必须通过"make modules"来编译。为了从一开始就简化编译过程,输入"make; make modules"。这会先编译接着是模块,而不用用户再回来输入"make modules"。
为了编译内核,在内核源代码相同目录下,在终端内输入"make"。这会花费一些时间。完成之后,必须通过"make modules"来编译模块。为了从一开始就简化编译过程,输入"make; make modules"。这会先编译接着是模块,而不用用户再回来输入"make modules"。
![](http://www.linux.org/attachments/compiling_01-png.763/)
![](http://www.linux.org/attachments/compiling_01-png.763/.jpg)
警告:在你安装一个内核时,备份所有的重要数据,确保有一份/boot目录备份在FAT32的存储卡上。这可以在如果安装失败后帮助修复系统。FAT32不会存储权限因此它更容易被用作live盘来还原数据。记住设置原始文件权限和可执行位。
一旦编译已经成功完成,我们可以安装内核到本地系统中(我会马上解释如何在其他系统上安装内核[交叉编译])。在相同的终端下,在编译完成后,输入"make install"。这会在/boot目录下存放一些文件。"vmlinuz"(或者其他相似的名字)是内核自身。"initrd"是基于内存的文件系统,它被置于内存中且在启动中使用。"System-map"包含了一张内核符号列表。这些全局变量和函数用于内核代码。"config" 是内核的配置文件。grub.cfg会自动更新。然而有些bootloder需要手动配置。内核安装器会自动配置GrubLILO和SysLinux bootloder。像BURG这类bootloder需要手动配置。模块的安装同样需要输入"make modules install"。
![](http://www.linux.org/attachments/compiling_04-png.764/)
![](http://www.linux.org/attachments/compiling_04-png.764/.jpg)
注:内核和模块的安装可以写在一行-“make install && make modules_install”。
![](http://www.linux.org/attachments/compiling_05-png.765/)
![](http://www.linux.org/attachments/compiling_05-png.765/.jpg)
一旦上面的过程完成了,用户可以通过重启系统并在开机后在终端内输入"uname -r"来确保内核已经安装。如果系统无法启动或者uname报告你预期外的版本号这个问题可能众多问题之一引起。或者是bootloader没有正确设置特性/配置冲突,编译失败,不正确的安装,或者其他原因。找出问题源头最好的方法是查看系统日志(如果系统已经启动到足以产生日志)。"dmsg"是一个在屏幕上打印内核日志的命令。查看错误、警告或者未预料的结果。如果系统没有启动或者没有足够启动完全来生成日志使用live linux盘来执行诊断和修复。如果所有的都失败了再次编译内核并确保你已经用root或者"sudo"安装了内核。
最好的修复系统的方式是使用live Linux发行版来移除新的/损坏的内核接着手动修复Grub文件(或者复制一个备份)。
一些Linux用户也喜欢安装文档但这并不是必要。对于那些想要安装文档的用户输入这行这里的version是你的内核版本号 "install -d /usr/share/doc/linux-VERSION && cp -r Documentation/* /usr/share/doc/linux-VERSION"(VERSION 是内核版本号)。很明显这需要root特权。
一些Linux用户也喜欢安装内核文档但这并不是必要。对于那些想要安装文档的用户输入这行这里的version是你的内核版本号 "install -d /usr/share/doc/linux-VERSION && cp -r Documentation/* /usr/share/doc/linux-VERSION"(VERSION 是内核版本号)。很明显这需要root特权。
为了编译一个如你目前内核一样特性的内核,输入这条命令"zcat /proc/config.gz > .config"。这个文件可能不存在,如果是这样,你可能需要询问你发行版/内核的开发者这个文件。"zcat"命令解压并写入数据到一个".config"文件中。记住在你希望的地方输入".config"。这个文件放置在Linux内核目录下并允许它替换当前的文件。接着,像往常一样编译安装你的内核。
要是想编译一个如你目前内核一样特性的内核,输入这条命令"zcat /proc/config.gz > .config"。这个文件可能不存在,如果是这样,你可能需要询问你发行版/内核的开发者这个文件。"zcat"命令解压并写入数据到一个".config"文件中。记住把".config"放到合适的位置。这个文件应该放置在Linux内核目录下并允许它替换当前的文件。接着,像往常一样编译安装你的内核即可
交叉编译稍微有点不同。为目标系统配置内核。确保内核配置完后,它在脑海中交叉配置过了。当交叉编译时,需要熟悉两条术语。"Host"是执行编译的系统,"Target"是接收新内核的系统。确保主机系统有合适的编译器。比如对于ARM系统的交叉编译用户需要在主机系统上有gcc-arm-linux-gnueabi。通常来说开发这可以在他们的包管理器上搜寻或者Googledao合适/最好的适合他们需要的交叉编译器。特定的用于ARM系统交叉编译的命令是"make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-"。"ARCH=arm"指的是目标处理器的类型,"CROSS_COMPILE"指明了交叉编译器。注意交叉编译器前面缺少了"gcc-"并以破折号结束。这是用户在使用交叉编译器作为参数使用时必须使用的格式。模块可以通过输入"make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules".交叉编译。为了在目标系统上安装内核,复制内核文件夹到目标系统上。一旦文件已在目标系统上并在该目录下打开了终端,输入"make install && make modules_install"。当然你必须是root或者使用"sudo"。
交叉编译稍微有点不同。为目标系统配置内核。确保内核配置完后,它是以交叉编译配置的。当交叉编译时,需要熟悉两条术语。"Host"是执行编译的系统,"Target"是接收新内核的系统。确保Host主机系统有合适的编译器。比如对于ARM系统的交叉编译用户需要在主机系统上有gcc-arm-linux-gnueabi。通常来说开发者可以在他们的包管理器上搜寻或者Google到合适/最好的适合他们需要的交叉编译器。比如用于ARM系统交叉编译的命令是"make ARCH=arm CROSS\_COMPILE=arm-linux-gnueabi-"。"ARCH=arm"指的是目标处理器的类型,"CROSS\_COMPILE"指明了交叉编译器。注意交叉编译器前面缺少了"gcc-"并以连字符结束。这是用户在使用交叉编译器作为参数使用时必须使用的格式。模块可以通过输入"make ARCH=arm CROSS\_COMPILE=arm-linux-gnueabi- modules"来交叉编译。为了在目标系统上安装内核,将内核文件夹复制到目标系统上。一旦文件已在目标系统上并在该目录下打开了终端,输入"make install && make modules_install"。当然你必须是root或者使用"sudo"。
信息Kernel.org放了一个支持的交叉编译器列表([https://www.kernel.org/pub/tools/crosstool/][1])。
@ -36,7 +36,7 @@
make && make modules && make install && make modules_install
#### 做一个更新的版本或者重你的内核: ####
#### 做一个更新的版本或者重你的内核: ####
zcat /proc/config.gz > .config && make && make modules && make install && make modules_install
@ -50,7 +50,7 @@
via: http://www.linux.org/threads/the-linux-kernel-compiling-and-installing.5208/
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,41 +0,0 @@
Red Hat Revenues Power Forward in 2015
================================================================================
Red Hat reported its first quarter fiscal 2015 revenues on June 18, showing continued demand and momentum for its Linux and open-source technologies. Red Hat has been particularly busy of late, acquiring a pair of companies and launching its Red Hat Enterprise Linux 7 (RHEL) flagship platform.
For the quarter, Red Hat reported revenue of $424 million, which is a 17 percent year-over-year gain.
![](http://www.serverwatch.com/imagesvr_ce/7990/icon-redhatlinux-r.jpg)
"The main driver of our total revenue growth was subscription revenue of $372 million," Red Hat CFO Charlie Peters said during his company's earnings call. "Subscription revenue was up 18 percent year-over-year and it's important to point out that this renewable revenue stream now constitutes 88 percent of total revenue."
Looking forward, Red Hat provided second quarter guidance for approximately $432 million to $436 million in revenue.
One of the key metrics for growth that Red Hat provides is its top 30 deals during a given quarter. Peters noted that for the first time, all of the top 30 deals were valued at over $1 million.
"We also had a Q1 record with four deals that were in excess of $5 million and one that was greater than $10 million," Peters said. "Cross-selling was strong with 65 percent of these deals including one or more components from our group of applications development and emerging technologies offerings."
At the core of Red Hat's product portfolio is the Red Hat Enterprise Linux platform, which hit a major milestone last week with the debut of RHEL 7.
"RHEL 7 is significant because it was designed to meet both modern data center and next generation IT requirements for cloud, Linux containers and Big Data," Red Hat CEO Jim Whitehurst said during the earnings call. "As the worlds of physical, virtual and cloud systems converge Red Hat Enterprise Linux 7 delivers a true foundation for open hybrid cloud that will serve as the backbone for future application architectures."
### Acquisitions and Cloud Provide Opportunities for Further Growth ###
Red Hat has also been busy acquiring a pair of companies that further expand the company's ability to grow. In April, Red Hat acquired Inktank, the lead commercial sponsor behind the Ceph open-source storage filesystem. And on June 18, Red Hat announced the acquisition of OpenStack services vendor eNovance.
"With eNovance as a part of the Red Hat consulting team, we can enhance our consulting resources to be able to reach more customers with world-class OpenStack technologies and implementation services," Whitehurst said.
While cloud remains a growth opportunity for Red Hat, Whitehurst sees growth also coming from continuing to take market share away from other server operating system platforms. In particular, Whitehurst noted that there is still a continued move from mainframe and Unix to Linux.
"I was just on the phone today with a massive European customer that is literally just ready to start on the journey right now," Whitehurst said. "We continue to believe we're taking share from Windows especially with net new workloads."
Another driver of growth for Red Hat is the maturity and expansion of its sales force.
"We definitely have more boots on the street because we have been hiring consistently," Whitehurst said. "But I think our sales guys are more experienced, they are better trained, their confidence level is high and their enthusiasm is high."
--------------------------------------------------------------------------------
via: http://www.serverwatch.com/server-news/red-hat-revenues-power-forward-in-2015.html
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -0,0 +1,51 @@
KDE Connect Adds Android File Sending, Touchpad Emulation
================================================================================
**A new version of KDE Connect for Android that adds a number of new features has been released.**
![KDE Connect can now share files between desktop and mobile](http://www.omgubuntu.co.uk/wp-content/uploads/2014/06/kde-connect-share-feature.jpg)
KDE Connect can now share files between desktop and mobile
KDE Connect for Android and the Plasma desktop now allow the touchscreen of a connected device to be used as a touchpad for your computer.
This additional wireless input device will act just like a basic mouse, though doesnt (yet) support multitouch features like two finger scrolling or right-clicking.
Androids share intent now supports KDE Connect, allowing you to send files from Android to your desktop and vice versa using a menu entry in the Dolphin file manager or by pushing files using a new command line option.
Similar features for [iOS 8 and OS X Yosemite][1] and [Android L and Chrome OS][2] are planned to debut this fall.
The updated version also fixes a number of bugs and includes numerous improvements, including support for FreeBSD systems.
Full Feature List:
- Share files to/from Android and KDE
- Touchpad emulation
- Receive notifications from Android 4.3+ on desktop
- Shared clipboard supports copy and paste between phone and PC
- Multimedia remote control for select desktop media players (MPRIS)
- Battery status
- Wi-Fi connection sharing
- RSA Encryption
### Download KDE Connect 0.7 ###
The KDE Connect Android application is free to download from the Google Play and F-Droid stores.
- [Download KDE Connect from Google Play][3]
To make use of the newest features you will also need to install the latest version of KDE Connect (version 0.7) for Plasma. As of writing this is not yet available as a .deb installer or through a PPA. It can, however, be installed from source on Kubuntu 14.04 LTS and above by following the instructions [provided here][4].
- [Download KDE Connect 0.7 Source][5]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/06/kde-connect-android-notifications-linux-desktop
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.omgubuntu.co.uk/2014/06/os-x-10-10-feature-ubuntu-already
[2]:http://www.omgchrome.com/android-apps-notifications-call-alerts-chromebook/
[3]:https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp
[4]:https://albertvaka.wordpress.com/2014/06/28/awesome-contributions-to-kde-connect/#comment-1175
[5]:http://download.kde.org/unstable/kdeconnect/0.7/src/kdeconnect-kde-0.7.tar.xz.mirrorlist

View File

@ -0,0 +1,33 @@
New Linux Podcast App Vocal Hits Beta, Ready for Testing
================================================================================
**Back in April we found ourselves enamoured by a promising new [podcast app for Ubuntu called Vocal][1]. Well, the app has since gone from being a stylish mockup to real working code — and you can help test it.**
The projects developer, Nathan Dyer, has made beta builds — still unstable and not feature complete — available for testing through a dedicated PPA for Ubuntu 14.04 LTS and 14.10.
The kicker to this (rather sweet) news is that the beta builds of the app **can only be installed if youre using the next-gen elementary desktop**. And since elementary do not provide official pre-beta development builds for users to test, that makes it a trite difficult.
Not quite as difficult as trying it out on Unity, GNOME or KDE desktops, mind. If youre an Ubuntu user wanting to kick the tires on Vocal you will first need to add an unstable elementary desktop PPA to your systems, something we strongly advise against doing.
Dyer suggests interested users wait until the first beta of the next elementary version is made available.
For now we can at least look at it:
![Vocal Beta running on Elementary (Image: Dyer)](http://www.omgubuntu.co.uk/wp-content/uploads/2014/06/vocal-beta.png)
Vocal Beta running on Elementary (Image: Dyer)
Since Vocal is open source theres nothing to stop it being ported over to mainstream Linux desktop environments such as Unity.
In the meantime to learn more visit [the developers blog][1], [check out the unstable PPA][2] or hit up [Vocal on Launchpad][3].
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/06/linux-podcast-app-vocal-hits-preview-kicker
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.omgubuntu.co.uk/2014/04/vocal-podcast-manager-linux
[2]:http://nathandyer.me/2014/06/28/vocal-beta-released-daily-ppa-available/
[3]:https://launchpad.net/~nathandyer/+archive/vocal-daily
[4]:https://launchpad.net/vocal

View File

@ -0,0 +1,34 @@
Red Hat Delivers Cloud Certification Plan, and Teams with HP
================================================================================
![](http://farm4.static.flickr.com/3108/3191608123_67e1da2b79_o.jpg)
When Red Hat [announced][1] very solid quarterly earnings a few days ago, CEO Jim Whitehurst was quick to attribute part of the strong performance to his company's new focus on cloud computing. In discussing the enterprises that pay Red Hat for subcription support and services, he said: "These are some of the most sophisticated IT organizations in the world, and many continue to increase their purchases from Red Hat to modernize their IT infrastructure with cloud enabling technologies."
[I've made the point before][2] that Red is pinning its future on cloud computing and OpenStack in particular. But for Red Hat to succeed with its OpenStack plans, it needs to be able to assure enterprise users that they are using tested and interoperable tools. With that in mind, the company has [announced][3] a new cloud management certification for Red Hat Enterprise Linux OpenStack Platform as part of the Red Hat OpenStack Cloud Infrastructure Partner Network.
Red Hat has been working closely with cloud and network management solution providers, including iBMC and HP. As members of the Red Hat OpenStack Cloud Infrastructure Partner Network, these vendors are supporting Red Hat's platform certification process.
Radhesh Balakrishnan, Red Hat's general manager of virtualization and OpenStack said, in a statement:
> “As OpenStack is becoming a core element of the enterprise cloud strategy for many customers, Red Hat Enterprise Linux OpenStack Platform is architected and backed by the broadest partner ecosystem to be the preferred platform. The growth and maturity of the ecosystem reflects the evolution of the product moving from addressing infrastructure-centric alignment to help with early deployments to now be well-managed, to be part of enterprise hybrid cloud implementations.”
Atul Garg, vice president and general manager of Cloud and Automation at HP added:
> “We are excited to work with Red Hat to certify HP Cloud Service Automation and its solutions with Red Hat Enterprise Linux OpenStack Platform, to help our mutual customers build and manage private and hybrid cloud services. Our joint efforts are aimed at enabling customers to have choice and flexibility as they deploy cloud environments which can easily flex and adapt to business needs while supporting heterogeneity and leveraging existing investments in the datacenter.”
As enterprises deploy OpenStack, they are increasingly concerned about being able to use existing infrastructure and management tools with their deployments. The expansion of Red Hats certification program to include cloud management solutions is intended to help enterprises who want to deploy Red Hat Enterprise Linux OpenStack Platform in a private cloud to feel confident in using their management solutions of choice.
One other notable thing about the new certification program is that it deepens Red Hat's partnership with HP, which is also focused on OpenStack. It will be worth watching what else comes from that partnership, and, without a doubt, [the cloud is the new battleground for winning enterprise users][4].
--------------------------------------------------------------------------------
via: http://ostatic.com/blog/red-hat-delivers-cloud-certification-plan-and-teams-with-hp
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.zdnet.com/red-hat-beats-q1-earnings-targets-as-revenue-climbs-17-percent-7000030685/
[2]:http://ostatic.com/blog/for-red-hat-the-cloud-beckons
[3]:http://www.marketwatch.com/story/red-hat-introduces-cloud-management-certification-for-red-hat-enterprise-linux-openstack-platform-2014-06-30
[4]:http://ostatic.com/blog/the-cloud-is-the-new-battleground-for-winning-enterprise-users

View File

@ -0,0 +1,50 @@
linuhap 翻译中
CoreOS Linux ending the upgrade cycle
================================================================================
> CoreOS launches commercially supported version of its Linux distribution and vows to do away with manual upgrading
IDG News Service - Hoping to simplify life for system administrators, CoreOS has launched a commercial Linux distribution that continually updates itself, eliminating the need to perform major upgrades.
CoreOS is offering its namesake Linux distribution as a commercial service, [starting][1] at $100 a month.
"Businesses today can begin to think of CoreOS as an extension of their OS team, and for enterprise Linux customers this is the last migration they will ever need," said Alex Polvi, founder and CEO of CoreOS, in a statement.
Commercial Linux subscriptions are nothing new: Both [Red Hat][2] and [Suse][3] offer commercial subscriptions for their respective distributions.
Because the applications and libraries these Linux-based companies use are open source and freely available, the cost of the subscriptions doesn't cover the software itself, but rather pays for the updates, bug fixes, integration and technical support for when issues occur.
CoreOS will be different from these distributions, the company asserted, in that there will be no major updates, which typically require updating all the packages in the distribution at once. Instead, updates and new features will be streamed automatically to the copy of the OS and applied as soon as they are ready.
The service offers a dashboard, called CoreUpdate, that provides controls for designating which software packages should get updated, should the administrator not want all the packages to be updated automatically.
CoreUpdate can manage multiple machines at once, and offers a roll-back capability should an update cause issues.
Launched last December, CoreOS was designed to [focus][4] on an emerging use of the open-source OS kernel -- that of powering lots of cloud-based virtual servers.
The average CoreOS instance was designed to consume only less than half of what other Linux distributions typically consume. All applications that run on the distribution run in Docker virtualized containers, so they can be started almost instantaneously.
The distribution can be updated more easily [due to its novel use of two partitions][5]. One can contain the current version of the OS while the OS is being updated in the other, smoothing the process of upgrading a package, or the entire distribution.
The CoreOS service can be run on-premises, or through Amazon, Google and Rackspace cloud services.
CoreOS also announced Monday that it received $8 million in backing from the Kleiner Perkins Caulfield and Byers venture capital firm. The company has previously gotten investment from Sequoia Capital and Fuel Capital.
----------
Joab Jackson covers enterprise software and general technology breaking news for The IDG News Service. Follow Joab on Twitter at [@Joab_Jackson][6]. Joab's e-mail address is [Joab_Jackson@idg.com][7]
--------------------------------------------------------------------------------
via: http://www.computerworld.com/s/article/9249460/CoreOS_Linux_ending_the_upgrade_cycle?taxonomyId=122
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:https://coreos.com/products/managed-linux/plans/
[2]:http://www.redhat.com/about/subscription/
[3]:https://www.suse.com/support/programs/subscriptions/
[4]:http://www.networkworld.com/article/2177120/cloud-computing/coreos-linux-distro-lands-on-the-google-cloud-platform.html
[5]:https://coreos.com/using-coreos/updates/
[6]:http://twitter.com/Joab_Jackson
[7]:Joab_Jackson@idg.com

View File

@ -0,0 +1,31 @@
KDE Improv, Tablet Projects Officially Axed
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2012/03/OR0Gbh.jpg)
**The team behind a highly publicised effort to release a KDE based Linux distribution on fully open hardware has announced the project has come to and end.**
Its news that few following the convoluted saga will find surprising, with both the KDE-based [Vivaldi Tablet][1] and Improv board projects having struggled to find their way to market despite numerous pre-orders, sales campaigns and marketing.
The former of these, once known as Spark, has existed in various stages of gestation since 2012, only being formally put on hold earlier this year.
Both devices sought to bring hardware running on entirely open source software and drivers to market at an affordable price. Perhaps a little too constrained by the rigidity of their ideal — to offer a modular board that could be used in multiple devices — the projects hit road bump after road bump, delay after delay.
Announcing the wrap up in an e-mail sent to backers of the Improv ARM-based development board the team suggests that the FOSS community is not ready to put its weight behind the pressing issue of hardware freedom, adding:
> “We greatly appreciate everyones support, whether it was purchases, donations or words of wisdom and encouragement. There was simply not enough support to make the project work, despite having fully functional, production ready devices and a strong commitment to succeed.”
Partial refunds are now being issued to those who pre-ordered a device, with the team hoping to provide full refunds at a later date.
But while one open-source tablet effort may retire others are continuing. Canonical has stated that the first Ubuntu tablets will launch alongside the first handsets [later this year][2], while Intel and Samsungs Linux-based Tizen OS is also [fast gathering pace][3].
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2014/07/kde-improv-tablet-projects-officially-axed
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[1]:http://www.omgubuntu.co.uk/2012/03/kde-tablet-vivaldi-gets-gutted
[2]:http://www.omgubuntu.co.uk/2014/03/ubuntu-tablets-coming-year
[3]:http://www.omgubuntu.co.uk/2014/06/samsung-first-tizen-phone-unveiled

View File

@ -1,4 +1,3 @@
Translated by Ramerzhang
Four Awesome Free Alternatives to Ubuntu One Cloud Storage
================================================================================
![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/04/ass.jpg)

View File

@ -1,4 +1,3 @@
zpl1025 translating
Raspberry Pi In Schools
================================================================================
> Teaching the world to code is a noble goal, but how is it going to work in practice?

Some files were not shown because too many files have changed in this diff Show More