From 533734cae7c595f020760737ea5f8b389432831c Mon Sep 17 00:00:00 2001 From: wwy Date: Mon, 25 Jan 2016 23:56:10 +0800 Subject: [PATCH 001/582] starting to translate --- translated/talk/20151201 Cinnamon 2.8 Review.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 translated/talk/20151201 Cinnamon 2.8 Review.md diff --git a/translated/talk/20151201 Cinnamon 2.8 Review.md b/translated/talk/20151201 Cinnamon 2.8 Review.md new file mode 100644 index 0000000000..e539136ce1 --- /dev/null +++ b/translated/talk/20151201 Cinnamon 2.8 Review.md @@ -0,0 +1,10 @@ +Cinnamon 2.8 评论 +================================================================================ +![](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2-8-featured.jpg) + +除了Gnome和KDE外,Cinnamon是另一个很多人使用的桌面环境。它是由创作Linux Mint的团队制作的,并且可以被安装在许多其他发行版上。该桌面环境的最新版本 - Cinnamon 2.8 - 于本月早些时间发布,此版本修复了许多的Bug、做了许多改进并添加了一些新功能。 + +我将仔细介绍该发行版本的主要改进,以及如何更新到Cinnamon 2.8或者第一次安装它。 + +### 对Applets的改进 ### + From e8c02dc6f62d813c526359cbf9fbf2c5f65a8b2e Mon Sep 17 00:00:00 2001 From: Ping Date: Tue, 26 Jan 2016 09:33:00 +0800 Subject: [PATCH 002/582] Add new source article --- ...ernative Python version on Debian Linux.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md diff --git a/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md b/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md new file mode 100644 index 0000000000..c498ea0763 --- /dev/null +++ b/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md @@ -0,0 +1,91 @@ +How to change from default to alternative Python version on Debian Linux +==================================================== + +Your Debian Linux installation may include multiple python versions and thus also include multiple python binary executables. You can run the following `ls` command to find out what python binary executables are available on your system: + +``` +$ ls /usr/bin/python* +/usr/bin/python /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.4 /usr/bin/python3.4m /usr/bin/python3m +``` + +To check what is your default python version execute: + +``` +$ python --version +Python 2.7.8 +``` + +1、Change python version on per user basis +To change a python version on per user basis you simply create an `alias` within user's home directory. Open `~/.bashrc` file and add new alias to change your default python executable: + +``` +alias python='/usr/bin/python3.4' +``` + +Once you make the above change, re-login or source your `.bashrc` file: + + +``` +$ . ~/.bashrc +``` + +Check your default python version: + +``` +$ python --version +Python 3.4.2 +``` + +2、 Change python version system-wide +To change python version system-wide we can use `update-alternatives` command. Logged in as a root user, first list all available python alternatives: + +``` +# update-alternatives --list python +update-alternatives: error: no alternatives for python +``` + +The above error message means that no python alternatives has been recognized by `update-alternatives` command. For this reason we need to update our alternatives table and include both `python2.7` and `python3.4`: + +``` +# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 +update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode +# update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2 +update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode +``` + +The `--install` option take multiple arguments from which it will be able to create a symbolic link. The last argument specified it priority means, if no manual alternative selection is made the alternative with the highest priority number will be set. In our case we have set a priority 2 for `/usr/bin/python3.4` and as a result the `/usr/bin/python3.4` was set as default python version automatically by `update-alternatives` command. + +``` +# python --version +Python 3.4.2 +``` + +Next, we can again list all python alternatives: + +``` +# update-alternatives --list python +/usr/bin/python2.7 +/usr/bin/python3.4 +``` + +From now on, we can anytime switch between the above listed python alternative versions using below command and entering a selection number: + +``` +# update-alternatives --config python +``` + +![](http://linuxconfig.org/images/change-python-alternative-version-debian-linux.png) + +``` +# python --version +Python 2.7.8 +``` + +3、 Appendix +In case we no longer have the alternative python version installed on our system we can remove its `update-alternatives` listing. For example let's remove python2.7 version: + +``` +# update-alternatives --remove python /usr/bin/python2.7 +update-alternatives: removing manually selected alternative - switching python to auto mode +update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode +``` From 47816aa16d78d56ea813233c74b143f335358ba2 Mon Sep 17 00:00:00 2001 From: Ping Date: Tue, 26 Jan 2016 09:34:58 +0800 Subject: [PATCH 003/582] Translating by Ping --- ...rom default to alternative Python version on Debian Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md b/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md index c498ea0763..4dafe1b604 100644 --- a/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md +++ b/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md @@ -1,3 +1,5 @@ +Translating by Ping + How to change from default to alternative Python version on Debian Linux ==================================================== From 7ecec2e32745b6139851681b47fd0c5234e6ea6d Mon Sep 17 00:00:00 2001 From: Ping Date: Tue, 26 Jan 2016 10:07:07 +0800 Subject: [PATCH 004/582] Add copyright on the tail --- ...lt to alternative Python version on Debian Linux.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md b/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md index 4dafe1b604..e5b26e3c13 100644 --- a/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md +++ b/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md @@ -91,3 +91,13 @@ In case we no longer have the alternative python version installed on our system update-alternatives: removing manually selected alternative - switching python to auto mode update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode ``` + +-------------------------------------------------------------------------------- + +via: http://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux + +作者:[作者][] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 904f3fb4cd3da52bcee28319670564d9a02e6ae4 Mon Sep 17 00:00:00 2001 From: sailing Date: Tue, 26 Jan 2016 11:37:42 +0800 Subject: [PATCH 005/582] claim an article --- ...20150709 Interviews--Linus Torvalds Answers Your Question.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md b/sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md index bb04ddf0c8..c27e90fd7d 100644 --- a/sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md +++ b/sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md @@ -1,3 +1,5 @@ +[translating by ray] + Interviews: Linus Torvalds Answers Your Question ================================================================================ Last Thursday you had a chance to [ask Linus Torvalds][1] about programming, hardware, and all things Linux. You can read his answers to those questions below. If you'd like to see what he had to say the last time we sat down with him, [you can do so here][2]. From ca77778c20319ef06304cb4fdd432f8ea23e5029 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 27 Jan 2016 11:32:24 +0800 Subject: [PATCH 006/582] PUB:20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep @runningwater --- ...l series 2--Regular Expressions In grep.md | 240 +++++++++++++++ ...l series 2--Regular Expressions In grep.md | 288 ------------------ 2 files changed, 240 insertions(+), 288 deletions(-) create mode 100755 published/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md delete mode 100755 translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md b/published/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md new file mode 100755 index 0000000000..11e656c666 --- /dev/null +++ b/published/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md @@ -0,0 +1,240 @@ +grep 命令系列:grep 中的正则表达式 +================================================================================ + +在 Linux 、类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? + +Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式(extended regular expressions),而且 GNU grep 在所有的 Linux 系统中都是默认有的。Grep 命令被用于搜索定位存储在您服务器或工作站上的任何信息。 + +### 正则表达式 ### + +正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列。下面是范例: + + ^w1 + w1|w2 + [^ ] + +#### grep 正则表达式示例 #### + +在 /etc/passswd 目录中搜索 'vivek' + + grep vivek /etc/passwd + +输出例子: + + vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash + vivekgite:x:1001:1001::/home/vivekgite:/bin/sh + gitevivek:x:1002:1002::/home/gitevivek:/bin/sh + +搜索大小写任意的 vivek(即不区分大小写的搜索) + + grep -i -w vivek /etc/passwd + +搜索大小写任意的 vivek 或 raj + + grep -E -i -w 'vivek|raj' /etc/passwd + +上面最后的例子显示的,就是一个扩展的正则表达式的模式。 + +### 锚点 ### + +你可以分别使用 ^ 和 $ 符号来正则匹配输入行的开始或结尾。下面的例子搜索显示仅仅以 vivek 开始的输入行: + + grep ^vivek /etc/passwd + +输出例子: + + vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash + vivekgite:x:1001:1001::/home/vivekgite:/bin/sh + +你可以仅仅只搜索出以单词 vivek 开始的行,即不显示 vivekgit、vivekg 等(LCTT 译注:即该单词后面是空格、符号等英文的单词分隔符。) + + grep -w ^vivek /etc/passwd + +找出以单词 word 结尾的行: + + grep 'foo$' 文件名 + +匹配仅仅只包含 foo 的行: + + grep '^foo$' 文件名 + +如下所示的例子可以搜索空行: + + grep '^$' 文件名 + +### 字符类 ### + +匹配 Vivek 或 vivek: + + grep '[vV]ivek' 文件名 + +或者 + + grep '[vV][iI][Vv][Ee][kK]' 文件名 + +也可以匹配数字 (即匹配 vivek1 或 Vivek2 等等): + + grep -w '[vV]ivek[0-9]' 文件名 + +可以匹配两个数字字符(即 foo11、foo12 等): + + grep 'foo[0-9][0-9]' 文件名 + +不仅仅局限于数字,也能匹配至少一个字母的: + + grep '[A-Za-z]' 文件名 + +显示含有 "w" 或 "n" 字符的所有行: + + grep [wn] 文件名 + +放在括号内的表达式,即包在 "[:" 和 ":]" 之间的字符类的名字,它表示的是属于此类的所有字符列表。标准的字符类名称如下: + +- [:alnum:] - 字母数字字符 +- [:alpha:] - 字母字符 +- [:blank:] - 空字符: 空格键符 和 制表符 +- [:digit:] - 数字: '0 1 2 3 4 5 6 7 8 9' +- [:lower:] - 小写字母: 'a b c d e f g h i j k l m n o p q r s t u v w x y z' +- [:space:] - 空格字符: 制表符、换行符、垂直制表符、换页符、回车符和空格键符 +- [:upper:] - 大写字母: 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z' + +在这个例子所示的是匹配所有大写字母: + + grep '[:upper:]' 文件名 + +### 通配符 ### + +你可以使用 "." 来匹配单个字符。例子中匹配以 "b" 开头以 "t" 结尾的3个字符的单词: + + grep '\' 文件名 + +在这儿, + +- `\<` 匹配单词前面的空字符串 +- `\>` 匹配单词后面的空字符串 + +打印出只有两个字符的所有行: + + grep '^..$' 文件名 + +显示以一个点和一个数字开头的行: + + grep '^\.[0-9]' 文件名 + +#### 点字符转义 #### + +下面要匹配到 IP 地址为 192.168.1.254 的正则式是不正确的:(LCTT 译注:可以匹配到该 IP 地址,但是也有可能匹配到间隔符号不是点的类似格式) + + grep '192.168.1.254' /etc/hosts + +三个点字符都需要转义: + + grep '192\.168\.1\.254' /etc/hosts + +下面的例子只能匹配出 IP 地址:(LCTT 译注:实际上由于 IP 地址中数字的取值范围,该正则表达式并不精确) + + egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' 文件名 + +### 怎么样搜索以 - 符号开头的匹配模式? ### + +要使用 -e 选项来搜索匹配 '--test--' 字符串,如果不使用 -e 选项,grep 命令会试图把 '--test--' 当作自己的选项参数来解析: + + grep -e '--test--' 文件名 + +### 怎么使用 grep 的“或”匹配? ### + +使用如下的语法: + + grep -E 'word1|word2' 文件名 + 或 + egrep 'word1|word2' 文件名 + +或者是 + + grep 'word1\|word2' 文件名 + +### 怎么使用 grep 的“和”匹配? ### + +使用下面的语法来显示既包含 'word1' 又包含 'word2' 的所有行 + + grep 'word1' 文件名 | grep 'word2' + +### 怎么样使用序列检测? ### + +使用如下的语法,您可以检测一个字符在序列中重复出现次数: + + {N} + {N,} + {min,max} + +要匹配字符 “v" 出现两次: + + egrep "v{2}" 文件名 + +下面的命令能匹配到 "col" 和 "cool" : + + egrep 'co{1,2}l' 文件名 + +下面的命令将会匹配出至少有三个 'c' 字符的所有行。 + + egrep 'c{3,}' 文件名 + +下面的例子会匹配 91-1234567890(即二个数字-十个数字) 这种格式的手机号。 + + grep "[[:digit:]]\{2\}[ -]\?[[:digit:]]\{10\}" 文件名 + +### 怎么样使 grep 命令高亮显示?### + +使用如下的语法: + + grep --color 正则表达式 文件名 + +### 怎么样仅仅只显示匹配出的字符,而不是匹配出的行? ### + +使用如下语法: + + grep -o 正则表达式 文件名 + +### 正则表达式限定符### + +| 限定符 | 描述| +|------|----| +|`.`|匹配任意的一个字符。| +|`?`|匹配前面的子表达式,最多一次。| +|`*`|匹配前面的子表达式零次或多次。| +|`+`|匹配前面的子表达式一次或多次。| +|`{N}`|匹配前面的子表达式 N 次。| +|`{N,}`|匹配前面的子表达式 N 次到多次。| +|`{N,M}`|匹配前面的子表达式 N 到 M 次,至少 N 次至多 M 次。| +|`-`|只要不是在序列开始、结尾或者序列的结束点上,表示序列范围。| +|`^`|匹配一行开始的空字符串;也表示字符不在要匹配的列表中。| +|`$`|匹配一行末尾的空字符串。| +|`\b`|匹配一个单词前后的空字符串。| +|`\B`|匹配一个单词中间的空字符串。| +|`\<`|匹配单词前面的空字符串。| +|`\>`|匹配单词后面的空字符串。| + +#### grep 和 egrep #### + +egrep 等同于 **grep -E** 。它会以扩展的正则表达式的模式来解释模式。下面来自 grep 的帮助页: + + 基本的正则表达式元字符 ?、+、 {、 |、 ( 和 ) 已经失去了它们原来的意义,要使用的话用反斜线的版本 \?、\+、\{、\|、\( 和 \) 来代替。 + 传统的 egrep 并不支持 { 元字符,一些 egrep 的实现是以 \{ 替代的,所以一个可移植的脚本应该避免在 grep -E 使用 { 符号,要匹配字面的 { 应该使用 [}]。 + GNU grep -E 试图支持传统的用法,如果 { 出在在无效的间隔规范字符串这前,它就会假定 { 不是特殊字符。 + 例如,grep -E '{1' 命令搜索包含 {1 两个字符的串,而不会报出正则表达式语法错误。 + POSIX.2 标准允许这种操作的扩展,但在可移植脚本文件里应该避免这样使用。 + +参考: + +- grep 和 regex 帮助手册页(7) +- grep 的 info 页 + +-------------------------------------------------------------------------------- + +via: http://www.cyberciti.biz/faq/grep-regular-expressions/ + +作者:Vivek Gite +译者:[runningwater](https://github.com/runningwater) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 \ No newline at end of file diff --git a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md b/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md deleted file mode 100755 index 8389f4c339..0000000000 --- a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md +++ /dev/null @@ -1,288 +0,0 @@ -## grep 中的正则表达式 -================================================================================ -在 Linux 、类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? - -Linux 附带有 GNU grep 命令工具,它支持正则表达式,而且 GNU grep 在所有的 Linux 系统中都是默认有的。Grep 命令被用于搜索定位存储在您服务器或工作站的信息。 - -### 正则表达式 ### - -正则表达式仅仅是对每个输入行的匹配的一种模式,即对字符序列的匹配模式。下面是范例: - - ^w1 - w1|w2 - [^ ] - -#### grep 正则表达式示例 #### - -在 /etc/passswd 目录中搜索 'vivek' - - grep vivek /etc/passwd - -输出例子: - - vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash - vivekgite:x:1001:1001::/home/vivekgite:/bin/sh - gitevivek:x:1002:1002::/home/gitevivek:/bin/sh - -摸索任何情况下的 vivek(即不区分大小写的搜索) - - grep -i -w vivek /etc/passwd - -摸索任何情况下的 vivek 或 raj - - grep -E -i -w 'vivek|raj' /etc/passwd - -上面最后的例子显示的,就是一个正则表达式扩展的模式。 - -### 锚 ### - -你可以分别使用 ^ 和 $ 符号来正则匹配输入行的开始或结尾。下面的例子搜索显示仅仅以 vivek 开始的输入行: - - grep ^vivek /etc/passwd - -输出例子: - - vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bash - vivekgite:x:1001:1001::/home/vivekgite:/bin/sh - -你可以仅仅只搜索出以单词 vivek 开始的行,即不显示 vivekgit、vivekg 等 - - grep -w ^vivek /etc/passwd - -找出以单词 word 结尾的行: - - grep 'foo$' 文件名 - -匹配仅仅只包含 foo 的行: - - grep '^foo$' 文件名 - -如下所示的例子可以搜索空行: - - grep '^$' 文件名 - -### 字符类 ### - -匹配 Vivek 或 vivek: - - grep '[vV]ivek' 文件名 - -或者 - - grep '[vV][iI][Vv][Ee][kK]' 文件名 - -也可以匹配数字 (即匹配 vivek1 或 Vivek2 等等): - - grep -w '[vV]ivek[0-9]' 文件名 - -可以匹配两个数字字符(即 foo11、foo12 等): - - grep 'foo[0-9][0-9]' 文件名 - -不仅仅局限于数字,也能匹配至少一个字母的: - - grep '[A-Za-z]' 文件名 - -显示含有"w" 或 "n" 字符的所有行: - - grep [wn] 文件名 - -在括号内的表达式,即包在"[:" 和 ":]" 之间的字符类的名字,它表示的是属于此类的所有字符列表。标准的字符类名称如下: - -- [:alnum:] - 字母数字字符. -- [:alpha:] - 字母字符 -- [:blank:] - 空字符: 空格键符 和 制表符. -- [:digit:] - 数字: '0 1 2 3 4 5 6 7 8 9'. -- [:lower:] - 小写字母: 'a b c d e f g h i j k l m n o p q r s t u v w x y z'. -- [:space:] - 空格字符: 制表符、换行符、垂直制表符、换页符、回车符和空格键符. -- [:upper:] - 大写字母: 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'. - -例子所示的是匹配所有大写字母: - - grep '[:upper:]' 文件名 - -### 通配符 ### - -你可以使用 "." 来匹配单个字符。例子中匹配以"b"开头以"t"结尾的3个字符的单词: - - grep '\' 文件名 - -在这儿, - -- \< 匹配单词前面的空字符串 -- \> 匹配单词后面的空字符串 - -打印出只有两个字符的所有行: - - grep '^..$' 文件名 - -显示以一个点和一个数字开头的行: - - grep '^\.[0-9]' 文件名 - -#### 点号转义 #### - -下面要匹配到 IP 地址为 192.168.1.254 的正则式是不会工作的: - - egrep '192.168.1.254' /etc/hosts - -三个点符号都需要转义: - - grep '192\.168\.1\.254' /etc/hosts - -下面的例子仅仅匹配出 IP 地址: - - egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' 文件名 - -下面的例子会匹配任意大小写的 Linux 或 UNIX 这两个单词: - - egrep -i '^(linux|unix)' 文件名 - -### 怎么样搜索以 - 符号开头的匹配模式? ### - -要使用 -e 选项来搜索匹配 '--test--' 字符串,如果不使用 -e 选项,grep 命令会试图把 '--test--' 当作自己的选项参数来解析: - - grep -e '--test--' 文件名 - -### 怎么使用 grep 的 OR 匹配? ### - -使用如下的语法: - - grep 'word1|word2' 文件名 - -或者是 - - grep 'word1\|word2' 文件名 - -### 怎么使用 grep 的 AND 匹配? ### - -使用下面的语法来显示既包含 'word1' 又包含 'word2' 的所有行 - - grep 'word1' 文件名 | grep 'word2' - -### 怎么样使用序列检测? ### - -使用如下的语法,您可以检测一个字符在序列中重复出现次数: - - {N} - {N,} - {min,max} - -要匹配字符 “v" 出现两次: - - egrep "v{2}" 文件名 - -下面的命令能匹配到 "col" 和 "cool" : - - egrep 'co{1,2}l' 文件名 - -下面的命令将会匹配出至少有三个 'c' 字符的所有行。 - - egrep 'c{3,}' 文件名 - -下面的例子会匹配 91-1234567890(即二个数字-十个数字) 这种格式的手机号。 - - grep "[[:digit:]]\{2\}[ -]\?[[:digit:]]\{10\}" 文件名 - -### 怎么样使 grep 命令突出显示?### - -使用如下的语法: - - grep --color regex 文件名 - -### 怎么样仅仅只显示匹配出的字符,而不是匹配出的行? ### - -使用如下语法: - - grep -o regex 文件名 - -### 正则表达式限定符### - -注:表格 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
限定符描述
.匹配任意的一个字符.
?匹配前面的子表达式,最多一次。
*匹配前面的子表达式零次或多次。
+匹配前面的子表达式一次或多次。
{N}匹配前面的子表达式 N 次。
{N,}匹配前面的子表达式 N 次到多次。
{N,M}匹配前面的子表达式 N 到 M 次,至少 N 次至多 M 次。
-只要不是在序列开始、结尾或者序列的结束点上,表示序列范围
^匹配一行开始的空字符串;也表示字符不在要匹配的列表中。
$匹配一行末尾的空字符串。
\b匹配一个单词前后的空字符串。
\B匹配一个单词中间的空字符串
\<匹配单词前面的空字符串。
\> 匹配单词后面的空字符串。
- -#### grep 和 egrep #### - -egrep 跟 **grep -E** 是一样的。他会以正则表达式的模式来解释。下面是 grep 的帮助页(man): - - 基本的正则表达式元字符 ?、+、 {、 |、 ( 和 ) 已经失去了他们特殊的意义,要使用的话用反斜线的版本 \?、\+、\{、\|、\( 和 \) 来代替。 - 传统的 egrep 不支持 { 元字符,一些 egrep 的实现是以 \{ 替代的,所以有 grep -E 的通用脚本应该避免使用 { 符号,要匹配字面的 { 应该使用 [}]。 - GNU grep -E 试图支持传统的用法,如果 { 出在在无效的间隔规范字符串这前,它就会假定 { 不是特殊字符。 - 例如,grep -E '{1' 命令搜索包含 {1 两个字符的串,而不会报出正则表达式语法错误。 - POSIX.2 标准允许对这种操作的扩展,但在可移植脚本文件里应该避免这样使用。 - -引用: - -- grep 和 regex 帮助手册页(7) -- grep 的 info 页` - --------------------------------------------------------------------------------- - -via: http://www.cyberciti.biz/faq/grep-regular-expressions/ - -作者:Vivek Gite -译者:[runningwater](https://github.com/runningwater) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 \ No newline at end of file From 8cca4d5f4f90e8cd352afff25df2fdf3791adb82 Mon Sep 17 00:00:00 2001 From: wwy Date: Wed, 27 Jan 2016 16:06:14 +0800 Subject: [PATCH 007/582] another translation --- .../talk/20151201 Cinnamon 2.8 Review.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/translated/talk/20151201 Cinnamon 2.8 Review.md b/translated/talk/20151201 Cinnamon 2.8 Review.md index e539136ce1..e06ba31a93 100644 --- a/translated/talk/20151201 Cinnamon 2.8 Review.md +++ b/translated/talk/20151201 Cinnamon 2.8 Review.md @@ -8,3 +8,43 @@ Cinnamon 2.8 评论 ### 对Applets的改进 ### +在此版本中,对已经在面板中存在的Applets做了若干的改进。 + +#### 声音 Applet #### + +![cinnamon-28-sound-applet](https://www.maketecheasier.com/assets/uploads/2015/11/rsz_cinnamon-28-sound-applet.jpg) + +声音Applet经过修订,目前可以显示音轨信息并且可以在音频文件的艺术家封面上面进行媒体控制。对于支持拖动的音乐播放器来说(例如Banshee),会有一个进度条在同样的位置,您可以用它来改变音轨位置。在applet的面板上右击将显示对输入和输出静音的选项。 + +#### 电源 Applet #### + +电源applet则会使用制造商的数据而不是通用名称显示每一个连接的电池和设备。 + +#### 窗口缩略图 #### + +![cinnamon-2.8-window-thumbnails](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2.8-window-thumbnails.png) + +Cinnamon 2.8带来了可以在鼠标悬停于面板里窗口列表中的窗口时展示窗口缩略图的选项。如果您不喜欢该功能,您还可以关闭它。 + +#### 工作区切换 Applet #### + +![cinnamon-2.8-workspace-switcher](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2.8-workspace-switcher.png) + +添加工作区切换applet到您的面板将为您显示一个代表工作区的可视化的图像,一些矩形嵌套在其中,代表您的窗口的位置。 + +#### 系统托盘 #### + +Cinnamon 2.8带来了对系统托盘中的应用程序指示器的支持。您可以容易地在设置中禁用它,这将强制应用程序回滚以使用 + + + + + + + + + + + + + From 1d242fa4c4cfff054326f52f223f36a348cdd3a0 Mon Sep 17 00:00:00 2001 From: wwy Date: Wed, 27 Jan 2016 17:02:04 +0800 Subject: [PATCH 008/582] finish translation --- .../talk/20151201 Cinnamon 2.8 Review.md | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/translated/talk/20151201 Cinnamon 2.8 Review.md b/translated/talk/20151201 Cinnamon 2.8 Review.md index e06ba31a93..209ee05cd6 100644 --- a/translated/talk/20151201 Cinnamon 2.8 Review.md +++ b/translated/talk/20151201 Cinnamon 2.8 Review.md @@ -34,17 +34,54 @@ Cinnamon 2.8带来了可以在鼠标悬停于面板里窗口列表中的窗口 #### 系统托盘 #### -Cinnamon 2.8带来了对系统托盘中的应用程序指示器的支持。您可以容易地在设置中禁用它,这将强制应用程序回滚以使用 +Cinnamon 2.8带来了对系统托盘中的应用程序指示器的支持。您可以很容易地在设置中禁用它,这将强制应用程序回滚以使用状态图标作为替代。 +### 视觉改进 ### +Cinnamon 2.8还做了很多视觉上的改进。经典的切换器和Alt + Tab预览切换器都被细细打磨,有了显著的改进,同时修复了Alt + F2对话框的bug,并赋予了它更好的命令自动补全功能。 +而且,在于最小化窗口时的存在的传统的动画效果中的问题现已被解决并可用于多个面板。 +### Nemo 的改进 ### +![cinnamon-2.8-nemo](https://www.maketecheasier.com/assets/uploads/2015/11/rsz_cinnamon-28-nemo.jpg) +Cinnamon默认的文件管理器也修复了一些bug,并有了新的“快速重命名”的功能,用于重命名文件和文件夹。可以通过两次点击文件或文件夹并在两次点击之前进行简短的停顿以重命名文件。 +Nemo也会自动地检测缩略图存在的问题,并提示您快速地修复它们。 +### 其他值得注意的改进 ### +- Applets如今会在它们被更新的时候自动地重新加载一次。 +- 对于多个监视器的支持有了显著的提高。 +- 对话框窗口有了提高,并且会附加到它的父窗口上。 +- HiDPI检测有了改进。 +- QT5应用程序现在看起来更加原生并使用了默认的GTK主题。 +- 窗口管理和渲染性能有了提升。 +- 修复了许多bug。 +### 如何获得 Cinnamon 2.8 ### +如果您在运行Linux Mint,您会在更新Linux Mint 17.3 “Rosa”Cinnamon版本的时候获得Cinnamon 2.8的更新。BETA版本现在已经放出,因此,如果您想立刻尝试新的软件,您可以试试。 +对于Arch的用户来说,Cinnamon 2.8已经在Arch的官方仓库了,您可以通过更新软件包和系统级的更新获得Cinnamon的最新版本。 +最后,对于Ubuntu用户来说,您可以通过下面的命令安装或更新Cinnamon 2.8: + + sudo add-apt-repository -y ppa:moorkai/cinnamon + sudo apt-get update + sudo apt-get install cinnamon + +您已经尝试了Cinnamon 2.8了么?感觉如何呢? + +-------------------------------------------------------------------------------- + +via: https://www.maketecheasier.com/cinnamon-2-8-review/ + +作者:[Ayo Isaiah][a] +译者:[wwy-hust](https://github.com/wwy-hust) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.maketecheasier.com/author/ayoisaiah/ From c3168e64e88f5d362c8f80bd1908d3615f20a72d Mon Sep 17 00:00:00 2001 From: wwy Date: Wed, 27 Jan 2016 17:03:14 +0800 Subject: [PATCH 009/582] remove source --- sources/talk/20151201 Cinnamon 2.8 Review.md | 89 -------------------- 1 file changed, 89 deletions(-) delete mode 100644 sources/talk/20151201 Cinnamon 2.8 Review.md diff --git a/sources/talk/20151201 Cinnamon 2.8 Review.md b/sources/talk/20151201 Cinnamon 2.8 Review.md deleted file mode 100644 index 0529cf80ec..0000000000 --- a/sources/talk/20151201 Cinnamon 2.8 Review.md +++ /dev/null @@ -1,89 +0,0 @@ -translating by wwy-hust - -Cinnamon 2.8 Review -================================================================================ -![](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2-8-featured.jpg) - -Other than Gnome and KDE, Cinnamon is another desktop environment that is used by many people. It is made by the same team that produces Linux Mint (and ships with Linux Mint) and can also be installed on several other distributions. The latest version of this DE – Cinnamon 2.8 – was released earlier this month, and it brings a host of bug fixes and improvements as well as some new features. - -I’m going to go over the major improvements made in this release as well as how to update to Cinnamon 2.8 or install it for the first time. - -### Improvements to Applets ### - -There are several improvements to already existing applets for the panel. - -#### Sound Applet #### - -![cinnamon-28-sound-applet](https://www.maketecheasier.com/assets/uploads/2015/11/rsz_cinnamon-28-sound-applet.jpg) - -The Sound applet was revamped and now displays track information as well as the media controls on top of the cover art of the audio file. For music players with seeking support (such as Banshee), a progress bar will be displayed in the same region which you can use to change the position of the audio track. Right-clicking on the applet in the panel will display the options to mute input and output devices. - -#### Power Applet #### - -The Power applet now displays the status of each of the connected batteries and devices using the manufacturer’s data instead of generic names. - -#### Window Thumbnails #### - -![cinnamon-2.8-window-thumbnails](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2.8-window-thumbnails.png) - -Cinnamon 2.8 brings the option to show window thumbnails when hovering over the window list in the panel. You can turn it off if you don’t like it, though. - -#### Workspace Switcher Applet #### - -![cinnamon-2.8-workspace-switcher](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2.8-workspace-switcher.png) - -Adding the Workspace switcher applet to your panel will show you a visual representation of your workspaces with little rectangles embedded inside to show the position of your windows. - -#### System Tray #### - -Cinnamon 2.8 brings support for app indicators in the system tray. You can easily disable this in the settings which will force affected apps to fall back to using status icons instead. - -### Visual Improvements ### - -A host of visual improvements were made in Cinnamon 2.8. The classic and preview Alt + Tab switchers were polished with noticeable improvements, while the Alt + F2 dialog received bug fixes and better auto completion for commands. - -Also, the issue with the traditional animation effect for minimizing windows is now sorted and works with multiple panels. - -### Nemo Improvements ### - -![cinnamon-2.8-nemo](https://www.maketecheasier.com/assets/uploads/2015/11/rsz_cinnamon-28-nemo.jpg) - -The default file manager for Cinnamon also received several bug fixes and has a new “Quick-rename” feature for renaming files and directories. This works by clicking the file or directory twice with a short pause in between to rename the files. - -Nemo also detects issues with thumbnails automatically and prompts you to quickly fix them. - -### Other Notable improvements ### - -- Applets now reload themselves automatically once they are updated. -- Support for multiple monitors was improved significantly. -- Dialog windows have been improved and now attach themselves to their parent windows. -- HiDPI dectection has been improved. -- QT5 applications now look more native and use the default GTK theme. -- Window management and rendering performance has been improved. -- There are various bugfixes. - -### How to Get Cinnamon 2.8 ### - -If you’re running Linux Mint you will get Cinnamon 2.8 as part of the upgrade to Linux Mint 17.3 “Rosa” Cinnamon Edition. The BETA release is already out, so you can grab that if you’d like to get your hands on the new software immediately. - -For Arch users, Cinnamon 2.8 is already in the official Arch repositories, so you can just update your packages and do a system-wide upgrade to get the latest version. - -Finally, for Ubuntu users, you can install or upgrade to Cinnamon 2.8 by running in turn the following commands: - - sudo add-apt-repository -y ppa:moorkai/cinnamon - sudo apt-get update - sudo apt-get install cinnamon - -Have you tried Cinnamon 2.8? What do you think of it? - --------------------------------------------------------------------------------- - -via: https://www.maketecheasier.com/cinnamon-2-8-review/ - -作者:[Ayo Isaiah][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://www.maketecheasier.com/author/ayoisaiah/ From 6df20a2e20a3909187912b001f95235bb28e25f6 Mon Sep 17 00:00:00 2001 From: Ping Date: Thu, 28 Jan 2016 14:38:36 +0800 Subject: [PATCH 010/582] [Translated] 20160126 How to change from default to alternative Python version on Debian Linux --- ...ernative Python version on Debian Linux.md | 103 ------------------ ...ernative Python version on Debian Linux.md | 102 +++++++++++++++++ 2 files changed, 102 insertions(+), 103 deletions(-) delete mode 100644 sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md create mode 100644 translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md diff --git a/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md b/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md deleted file mode 100644 index e5b26e3c13..0000000000 --- a/sources/tech/20160126 How to change from default to alternative Python version on Debian Linux.md +++ /dev/null @@ -1,103 +0,0 @@ -Translating by Ping - -How to change from default to alternative Python version on Debian Linux -==================================================== - -Your Debian Linux installation may include multiple python versions and thus also include multiple python binary executables. You can run the following `ls` command to find out what python binary executables are available on your system: - -``` -$ ls /usr/bin/python* -/usr/bin/python /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.4 /usr/bin/python3.4m /usr/bin/python3m -``` - -To check what is your default python version execute: - -``` -$ python --version -Python 2.7.8 -``` - -1、Change python version on per user basis -To change a python version on per user basis you simply create an `alias` within user's home directory. Open `~/.bashrc` file and add new alias to change your default python executable: - -``` -alias python='/usr/bin/python3.4' -``` - -Once you make the above change, re-login or source your `.bashrc` file: - - -``` -$ . ~/.bashrc -``` - -Check your default python version: - -``` -$ python --version -Python 3.4.2 -``` - -2、 Change python version system-wide -To change python version system-wide we can use `update-alternatives` command. Logged in as a root user, first list all available python alternatives: - -``` -# update-alternatives --list python -update-alternatives: error: no alternatives for python -``` - -The above error message means that no python alternatives has been recognized by `update-alternatives` command. For this reason we need to update our alternatives table and include both `python2.7` and `python3.4`: - -``` -# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 -update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode -# update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2 -update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode -``` - -The `--install` option take multiple arguments from which it will be able to create a symbolic link. The last argument specified it priority means, if no manual alternative selection is made the alternative with the highest priority number will be set. In our case we have set a priority 2 for `/usr/bin/python3.4` and as a result the `/usr/bin/python3.4` was set as default python version automatically by `update-alternatives` command. - -``` -# python --version -Python 3.4.2 -``` - -Next, we can again list all python alternatives: - -``` -# update-alternatives --list python -/usr/bin/python2.7 -/usr/bin/python3.4 -``` - -From now on, we can anytime switch between the above listed python alternative versions using below command and entering a selection number: - -``` -# update-alternatives --config python -``` - -![](http://linuxconfig.org/images/change-python-alternative-version-debian-linux.png) - -``` -# python --version -Python 2.7.8 -``` - -3、 Appendix -In case we no longer have the alternative python version installed on our system we can remove its `update-alternatives` listing. For example let's remove python2.7 version: - -``` -# update-alternatives --remove python /usr/bin/python2.7 -update-alternatives: removing manually selected alternative - switching python to auto mode -update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode -``` - --------------------------------------------------------------------------------- - -via: http://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux - -作者:[作者][] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md b/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md new file mode 100644 index 0000000000..0438614ddb --- /dev/null +++ b/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md @@ -0,0 +1,102 @@ +如何将 Debian Linux 系统中默认的 Python 替代为其他版本 +==================================================== + +当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件。你可以按照以下方法使用 `ls` 命令来查看你的系统中都有那些 Python 的二进制文件可供使用。 + +``` +$ ls /usr/bin/python* +/usr/bin/python /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.4 /usr/bin/python3.4m /usr/bin/python3m +``` + +执行如下命令查看默认的 Python 版本信息: + +``` +$ python --version +Python 2.7.8 +``` + +1、基于用户修改 Python 版本: +想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 `alias(别名)` 即可。打开 `~/.bashrc` 文件,添加新的别名信息来修改默认使用的 Python 版本。 + +``` +alias python='/usr/bin/python3.4' +``` + +一旦完成以上操作,重新登录或者重新加载 `.bashrc` 文件,使操作生效。 + +``` +$ . ~/.bashrc +``` + +检查当前的 Python 版本。 + +``` +$ python --version +Python 3.4.2 +``` + +2、 基于系统级别修改 Python 版本 +我们可以使用 `update-alternatives` 来为整个系统更改 Python 版本。以 root 身份登录,首先罗列出所有可用的 python 替代版本信息: + +``` +# update-alternatives --list python +update-alternatives: error: no alternatives for python +``` + +如果出现以上所示的错误信息,则表示 Python 的替代版本尚未被 `update-alternatives` 命令识别。想解决这个问题,我们需要更新一下替代表,将 `python2.7` 和 `python3.4` 放入其中。 + +``` +# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 +update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode +# update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2 +update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode +``` + +`--install` 选项使用了多个参数用于创建符号链接。最后一个参数指定了此选项的优先级,如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中。这个例子中,我们为 `/usr/bin/python3.4` 设置的优先级为2,所以 `update-alternatives` 命令会自动将它设置为默认 Python 版本。 + +``` +# python --version +Python 3.4.2 +``` + +接下来,我们继续列出可用的 Python 替代版本。 + +``` +# update-alternatives --list python +/usr/bin/python2.7 +/usr/bin/python3.4 +``` + +现在开始,我们就可以使用下方的命令随时在列出的 Python 替代版本中任意切换了。 + +``` +# update-alternatives --config python +``` + +![](http://linuxconfig.org/images/change-python-alternative-version-debian-linux.png) + +``` +# python --version +Python 2.7.8 +``` + +3、附录 + +一旦我们的系统中不再存在某个 Python 的替代版本时,我们可以将其从 `update-alternatives` 列表中删除掉。例如,我们可以将列表中的 python2.7 版本移除掉。 + +``` +# update-alternatives --remove python /usr/bin/python2.7 +update-alternatives: removing manually selected alternative - switching python to auto mode +update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode +``` + +-------------------------------------------------------------------------------- + +via: http://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux + +作者:[作者][] +译者:[mr-ping](https://github.com/mr-ping) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + From ec187dbd52544c934bca8c88f5556e84524dc0c5 Mon Sep 17 00:00:00 2001 From: Ping Date: Thu, 28 Jan 2016 14:45:54 +0800 Subject: [PATCH 011/582] Reformat somewhere --- ...rom default to alternative Python version on Debian Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md b/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md index 0438614ddb..5ff89d7944 100644 --- a/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md +++ b/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md @@ -16,6 +16,7 @@ Python 2.7.8 ``` 1、基于用户修改 Python 版本: + 想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 `alias(别名)` 即可。打开 `~/.bashrc` 文件,添加新的别名信息来修改默认使用的 Python 版本。 ``` @@ -36,6 +37,7 @@ Python 3.4.2 ``` 2、 基于系统级别修改 Python 版本 + 我们可以使用 `update-alternatives` 来为整个系统更改 Python 版本。以 root 身份登录,首先罗列出所有可用的 python 替代版本信息: ``` From 9f36a2ebdfc07804a99e3fa41c8bec867e47105d Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 29 Jan 2016 07:00:55 +0800 Subject: [PATCH 012/582] PUB:20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command @runningwater --- ...iple Words or String Pattern Using grep Command.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) rename {translated/tech/Linux or UNIX grep Command Tutorial series => published}/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md (81%) diff --git a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md b/published/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md similarity index 81% rename from translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md rename to published/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md index 9af1afa163..ed44522d70 100644 --- a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md +++ b/published/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md @@ -1,5 +1,6 @@ -使用 grep 命令来搜索多个单词/字符串模式 +grep 命令系列:使用 grep 命令来搜索多个单词 ================================================================================ + 要使用 grep 命令来搜索多个字符串或单词,我们该怎么做?例如我想要查找 /path/to/file 文件中的 word1、word2、word3 等单词,我怎么样命令 grep 查找这些单词呢? [grep 命令支持正则表达式][1]匹配模式。要使用多单词搜索,请使用如下语法: @@ -10,7 +11,7 @@ $ grep 'warning\|error\|critical' /var/log/messages -仅仅只是要匹配单词的话,可以加上 -w 选项参数: +仅仅只是要匹配单词(即该词两侧是单词分界符,针对西方以空格分隔的语言而言)的话,可以加上 -w 选项参数: $ grep -w 'warning\|error\|critical' /var/log/messages @@ -26,7 +27,7 @@ egrep 命令可以跳过上面的语法格式,其使用的语法格式如下 ![Fig.01: Linux / Unix egrep Command Search Multiple Words Demo Output](http://s0.cyberciti.org/uploads/faq/2008/04/egrep-words-output.png) -Fig.01: Linux / Unix egrep 命令查找多个单词输出例子 +图一: Linux / Unix egrep 命令查找多个单词输出例子 -------------------------------------------------------------------------------- @@ -34,8 +35,8 @@ via: http://www.cyberciti.biz/faq/searching-multiple-words-string-using-grep/ 作者:Vivek Gite 译者:[runningwater](https://github.com/runningwater) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 -[1]:http://www.cyberciti.biz/faq/grep-regular-expressions/ \ No newline at end of file +[1]:https://linux.cn/article-6941-1.html \ No newline at end of file From 2343b8358acc60ce0667e33ff6b9fdedabec5692 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 29 Jan 2016 07:05:18 +0800 Subject: [PATCH 013/582] PUB:20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches @runningwater --- ...ries 4--Grep Count Lines If a String or Word Matches.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) rename {translated/tech/Linux or UNIX grep Command Tutorial series => published}/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md (88%) diff --git a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md b/published/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md similarity index 88% rename from translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md rename to published/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md index 63cb1aa189..081ecdb9b6 100644 --- a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md +++ b/published/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md @@ -1,8 +1,9 @@ -Grep 命令统计匹配的字符串/单词行数 +grep 命令系列:用 grep 命令统计匹配字符串的行数 ================================================================================ + 在 Linux 或 UNIX 操作系统下,对于给定的单词或字符串,我们应该怎么统计它们在每个输入文件中存在的行数呢? -您需要通过添加 -c 或者 --count 选项参数来抑制正常的输出。它将会显示对输入文件单词匹配的行数,如下示: +您需要通过添加 -c 或者 --count 选项参数来抑制正常的输出。它将会显示对输入文件单词匹配的行数,如下所示: $ grep -c vivek /etc/passwd @@ -28,6 +29,6 @@ via: http://www.cyberciti.biz/faq/grep-count-lines-if-a-string-word-matches/ 作者:Vivek Gite 译者:[runningwater](https://github.com/runningwater) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 \ No newline at end of file From acc6502c8766f86eef2433bdecf7c96119149517 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 29 Jan 2016 08:09:57 +0800 Subject: [PATCH 014/582] PUB:20101020 19 Years of KDE History--Step by Step @jerryling315 --- ...0 19 Years of KDE History--Step by Step.md | 232 ++++++++++++++++++ ...0 19 Years of KDE History--Step by Step.md | 209 ---------------- 2 files changed, 232 insertions(+), 209 deletions(-) create mode 100644 published/20101020 19 Years of KDE History--Step by Step.md delete mode 100644 translated/talk/20101020 19 Years of KDE History--Step by Step.md diff --git a/published/20101020 19 Years of KDE History--Step by Step.md b/published/20101020 19 Years of KDE History--Step by Step.md new file mode 100644 index 0000000000..50cfff73fb --- /dev/null +++ b/published/20101020 19 Years of KDE History--Step by Step.md @@ -0,0 +1,232 @@ +KDE 的19年进化历程 +================ + +注:youtube 视频 + + +## 概述 + +KDE – 史上功能最强大的桌面环境之一;开源且可自由使用。19年前,1996年10月14日,德国程序员 Matthias Ettrich 开始了这个美观的桌面环境的开发。KDE 提供了用户界面以及其他很多日常使用的程序。今日,KDE 被成千上万人在 Unix 和 Windows 上使用。19年,一个对软件项目而言极为漫长的年岁。现在是时候让我们回到最初,看看这一切肇始于何处。 + +K Desktop Environment(KDE)有很多创新之处:新设计,美观,一致的体验,易于使用,对普通用户和专业用户都足够强大的应用库。“KDE”这个名字是对单词“通用桌面环境”(Common Desktop Environment)玩的一个简单谐音游戏,“K”即“Cool”。 第一代 KDE 在双许可证授权下使用了 Trolltech 公司专利的 Qt framework(现 Qt 的前身),这两个许可证分别是开源的 QPL(Q public license)和商业专利许可证(proprietary commercial license)。在2000年 Trolltech 公司让一部分 Qt 软件库开始发布在 GPL 证书下; Qt 4.5 发布在了 LGPL 2.1 许可证下。自2009起 KDE 桌面环境由三部分构成:Plasma Workspaces(用做交互界面),KDE Applications,作为 KDE Software 编译的 KDE Platform。 + +## 各发布版本 + +### 预发布版本 – 1996年10月14日 + +![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/0b3.png) + +当时名称为 Kool Desktop Environment;“Kool”这个单词在很快就被弃用了。最初,所有 KDE 的组件都是被单独发布在开发社区里的,它们并没有被一个大的项目所贯穿起来。开发组邮件列表中的首选通信是发往kde@fiwi02.wiwi.uni-Tubingen.de 邮件列表。 + +### KDE 1.0 – 1998年7月12日 + +![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/10.png) + +这个版本受到了颇有争议的反馈。很多人反对使用 Qt 框架,因为当时的 FreeQt 许可证和自由软件许可证并不兼容,他们建议开发组使用 Motif 或者 LessTif 替代。尽管有着这些反对声,KDE 仍然被很多用户所青睐,并且成功作为第一个 Linux 发行版的环境被集成了进去。 + +![28 January 1999](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/11.png) + +*1999年1月28日* + +有一次升级,**K Desktop Environment 1.1**,更快,更稳定的同时加入了很多小的改进。这个版本同时也加入了很多新的图标,背景和材质纹理。和这些全面翻新同时出现的还有 Torsten Rahn 绘制的全新 KDE 图标----一个放在齿轮前的字母 K ;这个图标的修改版也一直沿用至今。 + +### KDE 2.0 – 2000年10月23日 + +![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/20.png) + +重大更新: + +- DCOP (Desktop COmmunication Protocol),一个端到端的通信协议 +- KIO,一个应用程序 I/O 库 +- KParts,组件对象模型 +- KHTML,一个符合 HTML 4.0 标准的渲染绘制引擎。 + +![26 February 2001](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/21.png) + +*2001年2月26日* + +**K Desktop Environment 2.1** 首次发布了媒体播放器 noatun,它使用了模组化、插件设计。为了便利开发者,K Desktop Environment 2.1 打包了 KDevelop。 + +![15 August 2001](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/22.png) + +*2001年8月15日* + +**KDE 2.2**版本在 GNU/Linux 上加快了50%的应用启动速度,同时提高了 HTML 渲染、JavaScript 稳定性和性能,同时还增加了一些 KMail 的功能。 + +### KDE 3.0 – 2002年4月3日 + +![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/30.png) + +K Desktop Environment 3.0 加入了更好的限制使用功能,这个功能在电话亭、网咖,企业公用电脑上被广泛需求,它可以禁止用户完全使用软件的某些能力。 + +![28 January 2003](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/31.png) + +*2003年1月28日* + +**K Desktop Environment 3.1** 加入了新的默认窗口(Keramik)和图标样式(Crystal)和其他一些改进。 + +![3 February 2004](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/32.png) + +*2004年2月3日* + +**K Desktop Environment 3.2** 加入了诸如在网页表格、书写邮件中拼写检查的新功能;增强了邮件和日历功能。完善了 Konqueror 中的标签机制和对 Microsoft Windows 桌面共享协议(RDP)的支持。 + +![19 August 2004](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/33.png) + +*2004年8月19日* + +**K Desktop Environment 3.3** 侧重于组合不同的桌面组件。Kontact 被放进了群件应用 Kolab 并与 Kpilot 结合。Konqueror 的加入让 KDE 有了更好的 IM 交流功能,比如支持发送文件,以及其他 IM 协议(如IRC)的支持。 + +![16 March 2005](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/34.png) + +*2005年3月16日* + +**K Desktop Environment 3.4** 侧重于提高易用性。这次更新为 Konqueror、Kate、KPDF 加入了文字-语音转换功能;也在桌面系统中加入了独立的 KSayIt 文字-语音转换软件。 + +![29 November 2005](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/35.png) + +*2005年11月29日* + +**The K Desktop Environment 3.5** 发布加入了 SuperKaramba,为桌面环境提供了易于安装的插件(widgets)机制。 Konqueror 加入了广告屏蔽功能并成为了有史以来第二个通过 Acid2 CSS 测试的浏览器。 + +### KDE SC 4.0 – 2008年1月11日 + +![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/400.png) + +大部分的开发投身于把最新的技术和开发框架整合进 KDE 4 当中。Plasma 和 Oxygen 是两次最大的用户界面风格变更。同时,Dolphin 替代 Konqueror 成为默认文件管理器,Okular 成为了默认文档浏览器。 + +![29 July 2008](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/401.png) + +*2008年7月29日* + +**KDE 4.1** 引入了一个在 PIM 和 Kopete 中共享使用的表情主题系统;引入了可以让用户便利地从互联网上一键下载数据的 DXS。同时引入了 GStreamer、QuickTime 和 DirectShow 9 Phonon 后端。加入了新应用如: + +- Dragon Player +- Kontact +- Skanlite — 扫描仪软件 +- Step —— 物理模拟软件 +- 新游戏: Kdiamond、Kollision、KBreakout 和更多...... + +![27 January 2009](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/402.png) + +*2009年1月27日* + +**KDE 4.2** 被认为是在已经极佳的 KDE 4.1 基础上的又一次全面超越,同时也成为了大多数用户替换旧 3.5 版本的完美选择。 + +![4 August 2009](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/403.png) + +*2009年8月4日* + +**KDE 4.3** 修复了超过10000个 bug,同时加入了让近2000个用户要求的功能。整合一些新的技术例如:PolicyKit、NetworkManage & Geolocation services 等也是这个版本的一大重点。 + +![9 February 2010](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/404.png) + +*2010年2月9日* + +**KDE SC 4.4** 基于 Qt 4 toolkit 的 4.6 版本,加入新的应用 KAddressBook。 + +![10 August 2010](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/405.png) + +*2010年8月10日* + +**KDE SC 4.5** 增加了一些新特性:整合了开源的浏览器引擎 WebKit 库,其现在也在 Apple Safari 和 Google Chrome 中广泛使用。KPackageKit 替换了 Kpackage。 + +![26 January 2011](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/406.png) + +*2011年1月26日* + +**KDE SC 4.6** 加强了 OpenGl 的性能,同时照常更新了无数bug和小改进。 + +![27 July 2011](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/407.png) + +*2011年7月27日* + +**KDE SC 4.7** 升级 KWin 以兼容 OpenGL ES 2.0 ,更新了 Qt Quick,Plasma Desktop 带来许多增强和在应用里的大量新特性, 修复了1.2万个 bug。 + +![25 January 2012](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/408.png) + +*2012年1月25日* + +**KDE SC 4.8**: 更好的 KWin 性能与 Wayland 支持,更崭新的 Doplhin 的外观设计。 + +![1 August 2012](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/409.png) + +*2012年8月1日* + +**KDE SC 4.9**: 向 Dolphin 文件管理器增加了一些更新,比如重新加入了实时文件重命名,鼠标辅助按钮支持,更好的位置面板和更多文件分类管理功能。 + +![6 February 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/410.png) + +*2013年2月6日* + +**KDE SC 4.10**: 很多 Plasma 插件使用 QML 重写; Nepomuk、Kontact 和 Okular 得到了很大程度的性能和功能提升。 + +![14 August 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/411.png) + +*2013年8月14日* + +**KDE SC 4.11**: Kontact 和 Nepomuk 有了很多优化。 第一代 Plasma Workspaces 进入了单纯维护阶段。 + +![18 December 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/412.png) + +*2013年12月18日* + +**KDE SC 4.12**: Kontact 得到了极大的提升,包括许多小的改进。 + +![16 April 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/413.png) + +*2014年4月16日* + +**KDE SC 4.13**: Nepomuk 语义搜索功能替代了桌面上的原有的 Baloo 搜索。 KDE SC 4.13 以53个语言版本发布。 + +![20 August 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/414.png) + +*2014年8月20日* + +**KDE SC 4.14**: 这个发布版本侧重于稳定性提升:大量的 bug 修复和增加了一些小的功能。这是最后一个 KDE SC 4 发布版本。 + +### KDE Plasma 5.0 – 2014年7月15日 + +![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/500.png) + +KDE Plasma 5 – 第五代 KDE。大幅改进了设计和系统,新的默认主题 Breeze 完全迁移到了 QML,更好的 OpenGL 性能,更完美的 HiDPI (高分辨率)显示支持。 + +![11 November 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/501.png) + +*2014年11月11日* + +**KDE Plasma 5.1**:迁移了从 Plasma 4 里丢失的功能。 + +![27 January 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/502.png) + +*2015年1月27日* + +**KDE Plasma 5.2**:新组件:BlueDevil、KSSHAskPass、Muon、SDDM 主题设置、KScreen、GTK+ 样式设置和 KDecoration。 + +![28 April 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/503.png) + +*2015年4月28日* + +**KDE Plasma 5.3**:Plasma Media Center 技术预览。新的蓝牙和触摸板小程序;改良了电源管理。 + +![25 August 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/504.png) + +*2015年8月25日* + +**KDE Plasma 5.4**:Wayland 登场,新的基于 QML 的音频管理程序,一个全屏的程序启动器替代品。 + +万分感谢 [KDE][1] 开发者及社区,并感谢 Wikipedia 为书写 [概述][2] 带来的帮助,同时,感谢所有读者。让我们保持自由精神(be free)并继续支持如同 KDE 一样的开源的自由软件发展。 + +-------------------------------------------------------------------------------- + +via: [https://tlhp.cf/kde-history/](https://tlhp.cf/kde-history/) + +作者:[Pavlo Rudyi][a] +译者:[jerryling315](https://github.com/jerryling315) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]: https://www.kde.org/ +[2]: https://en.wikipedia.org/wiki/KDE_Plasma_5 +[a]: https://tlhp.cf/author/paul/ diff --git a/translated/talk/20101020 19 Years of KDE History--Step by Step.md b/translated/talk/20101020 19 Years of KDE History--Step by Step.md deleted file mode 100644 index ef90acd91f..0000000000 --- a/translated/talk/20101020 19 Years of KDE History--Step by Step.md +++ /dev/null @@ -1,209 +0,0 @@ -# 19年KDE进化历程 -注:youtube 视频 - - -## 概述 -KDE – 史上功能最强大的桌面环境之一; 开源且免费。19年前,1996年10月14日,德国程序员 Matthias Ettrich 开始了编写这个美观的桌面环境。KDE提供了诸如shell以及其他很多日常使用的程序。今日,KDE被成千上万人在 Unix 和 Windows 上使用。19年----一个对软件项目而言极为漫长的年岁。现在是时候让我们回到最初,看看这一切从哪里开始了。 - -K Desktop Environment(KDE)有很多创新之处:新设计,美观,连贯性,易于使用,对普通用户和专业用户都足够强大的应用库。"KDE"这个名字是对单词"通用桌面环境"(Common Desktop Environment)玩的一个简单谐音游戏,"K"----"Cool"。 第一代KDE在双证书授权下使用了有专利的 Trolltech's Qt 框架 (现Qt的前身),这两个许可证分别是 open source QPL(Q public license) 和 商业专利许可证(proprietary commercial license)。在2000年 Trolltech 让一部分 Qt 软件库开始发布在 GPL 证书下; Qt 4.5 发布在了 LGPL 2.1 许可证下。自2009起 KDE 桌面环境由三部分构成:Plasma Workspaces (作Shell),KDE 应用,作为 KDE Software 编译的 KDE Platform. - -## 各发布版本 -### Pre-Release – 1996年10月14日 -![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/0b3.png) - -当时名称为 Kool Desktop Environment;"Kool"这个单词在很快就被弃用了。最初,所有KDE的组件都是被单独发布在开发社区里的,他们之间没有任何环绕大项目的组装配合。开发组邮件列表中的第一封通信是发往kde@fiwi02.wiwi.uni-Tubingen.de 的邮件。 - -### KDE 1.0 – 1998年7月12日 -![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/10.png) - -这个版本受到了颇有争议的反馈。很多人反对使用Qt框架----当时的 FreeQt 许可证和自由软件许可证并不兼容----并建议开发组使用 Motif 或者 LessTif 替代。尽管有着这些反对声,KDE 仍然被很多用户所青睐,并且成功作为第一个Linux发行版的环境被集成了进去。(made its way into the first Linux distributions) - -![28 January 1999](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/11.png) - -1999年1月28日 - -一次升级,**K Desktop Environment 1.1**,更快,更稳定的同时加入了很多小升级。这个版本同时也加入了很多新的图标,背景,外观文理。和这些全面翻新同时出现的还有 Torsten Rahn 绘制的全新KDE图标----齿轮前的3个K字母;这个图标的修改版也一直沿用至今。 - -### KDE 2.0 – 2000年10月23日 -![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/20.png) - -重大更新:_ DCOP (Desktop COmmunication Protocol),一个端到端的通信协议 _ KIO,一个应用程序I/O库 _ KParts,组件对象模板 _ KHTML,一个符合 HTML 4.0 标准的图像绘制引擎。 - -![26 February 2001](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/21.png) - -2001年2月26日 - -**K Desktop Environment 2.1** 首次发布了媒体播放器 noatun,noatun使用了先进的模组-插件设计。为了便利开发者,K Desktop Environment 2.1 打包了 KDevelop - -![15 August 2001](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/22.png) - -2001年8月15日 - -**KDE 2.2**版本在GNU/Linux上加快了50%的应用启动速度,同时提高了稳定性和 HTML、JavaScript的解析性能,同时还增加了一些 KMail 的功能。 - -### KDE 3.0 – 2002年4月3日 -![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/30.png) - -K Desktop Environment 3.0 加入了更好的限制使用功能,这个功能在网咖,企业公用电脑上被广泛需求。 - -![28 January 2003](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/31.png) - -2003年1月28日 - -**K Desktop Environment 3.1** 加入了新的默认窗口(Keramik)和图标样式(Crystal)和其他一些改进。 - -![3 February 2004](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/32.png) - -2004年2月3日 - -**K Desktop Environment 3.2** 加入了诸如网页表格,书写邮件中拼写检查的新功能;补强了邮件和日历功能。完善了Konqueror 中的标签机制和对 Microsoft Windows 桌面共享协议的支持。 - -![19 August 2004](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/33.png) - -2004年8月19日 - -**K Desktop Environment 3.3** 侧重于组合不同的桌面组件。Kontact 被放进了群件应用Kolab 并与 Kpilot 结合。Konqueror 的加入让KDE有了更好的 IM 交流功能,比如支持发送文件,以及其他 IM 协议(如IRC)的支持。 - -![16 March 2005](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/34.png) - -2005年3月16日 - -**K Desktop Environment 3.4** 侧重于提高易用性。这次更新为Konqueror,Kate,KPDF加入了文字-语音转换功能;也在桌面系统中加入了独立的 KSayIt 文字-语音转换软件。 - -![29 November 2005](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/35.png) - -2005年11月29日 - -**The K Desktop Environment 3.5** 发布加入了 SuperKaramba,为桌面环境提供了易于安装的插件机制。 desktop. Konqueror 加入了广告屏蔽功能并成为了有史以来第二个通过Acid2 CSS 测试的浏览器。 - -### KDE SC 4.0 – 2008年1月11日 -![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/400.png) - -大部分开组投身于把最新的技术和开发框架整合进 KDE 4 当中。Plasma 和 Oxygen 是两次最大的用户界面风格变更。同时,Dolphin 替代 Konqueror 成为默认文件管理器,Okular 成为了默认文档浏览器。 - -![29 July 2008](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/401.png) - -2008年7月29日 - -**KDE 4.1** 引入了一个在 PIM 和 Kopete 中使用的表情主题系统;引入了可以让用户便利地从互联网上一键下载数据的DXS。同时引入了 GStreamer,QuickTime,和 DirectShow 9 Phonon 后台。加入了新应用如:_ Dragon Player _ Kontact _ Skanlite – 扫描仪软件,_ Step – 物理模拟软件 * 新游戏: Kdiamond,Kollision,KBreakout 和更多...... - -![27 January 2009](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/402.png) - -2009年1月27日 - -**KDE 4.2** 被认为是在已经极佳的 KDE 4.1 基础上的又一次全面超越,同时也成为了大多数用户替换旧 3.5 版本的完美选择。 - -![4 August 2009](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/403.png) - -2009年8月4日 - -**KDE 4.3** 修复了超过10,000个 bugs,同时加入了让近2,000个被用户需求的功能。整合一些新的技术例如:PolicyKit,NetworkManage & Geolocation services 等也是这个版本的一大重点。 - -![9 February 2010](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/404.png) - -2010年2月9日 - -**KDE SC 4.4** 基础 Qt 4 开框架的 4.6 版本,新的应用 KAddressBook 被加入,同时也是is based on version 4.6 of the Qt 4 toolkit. New application – KAddressBook,Kopete首次发布。 - -![10 August 2010](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/405.png) - -2010年8月10日 - -**KDE SC 4.5** 增加了一些新特性:整合了 WebKit 库----一个开源的浏览器引擎库,现在也被在 Apple Safari 和 Google Chrome 中广泛使用。KPackageKit 替换了 Kpackage。 - -![26 January 2011](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/406.png) - -2011年1月26日 - -**KDE SC 4.6** 加强了 OpenGl 的性能,同时照常更新了无数bug和小改进。 - -![27 July 2011](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/407.png) - -2011年7月27日 - -**KDE SC 4.7** 升级 KWin 以兼容 OpenGL ES 2.0 ,更新了 Qt Quick,Plasma Desktop 中在应用里普遍使用的新特性 1.2万个bug被修复。 - -![25 January 2012](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/408.png) - -2012年1月25日 - -**KDE SC 4.8**: 更好的 KWin 性能与 Wayland 支持,更新了 Doplhin 的外观设计。 - -![1 August 2012](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/409.png) - -2012年8月1日 - -**KDE SC 4.9**: 向 Dolphin 文件管理器增加了一些更新,比如加入了实时文件重命名,鼠标辅助按钮支持,更好的位置标签和更多文件分类管理功能。 - -![6 February 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/410.png) - -2013年2月6日 - -**KDE SC 4.10**: 很多 Plasma 插件使用 QML 重写; Nepomuk,Kontact 和 Okular 得到了很大程度的性能和功能提升。 - -![14 August 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/411.png) - -2013年8月14日 - -**KDE SC 4.11**: Kontact 和 Nepomuk 有了很大的优化。 第一代 Plasma Workspaces 进入了仅有维护而没有新生开发的软件周期。 - -![18 December 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/412.png) - -2013年12月18日 - -**KDE SC 4.12**: Kontact 得到了极大的提升。 - -![16 April 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/413.png) - -2014年4月16日 - -**KDE SC 4.13**: Nepomuk 语义搜索功能替代了桌面上的原有的Baloo搜索。 KDE SC 4.13 发布了53个语言版本。 - -![20 August 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/414.png) - -2014年8月20日 - -**KDE SC 4.14**: 这个发布版本侧重于稳定性提升:大量的bug修复和小更新。这是最后一个 KDE SC 4 发布版本。 - -### KDE Plasma 5.0 – 2014年7月15日 -![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/500.png) - -KDE Plasma 5 – 第五代 KDE。大幅改进了设计和系统,新的默认主题 ---- Breeze,完全迁移到了 QML,更好的 OpenGL 性能,更完美的 HiDPI (高分辨率)显示支持。 - -![11 November 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/501.png) - -2014年11月11日 - -**KDE Plasma 5.1**:加入了Plasma 4里原先没有补完的功能。 - -![27 January 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/502.png) - -2015年1月27日 - -**KDE Plasma 5.2**:新组件:BlueDevil,KSSHAskPass,Muon,SDDM 主题设置,KScreen,GTK+ 样式设置 和 KDecoration. - -![28 April 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/503.png) - -2015年4月28日 - -**KDE Plasma 5.3**:Plasma Media Center 技术预览。新的蓝牙和触摸板小程序;改良了电源管理。 - -![25 August 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/504.png) - -2015年8月25日 - -**KDE Plasma 5.4**:Wayland 登场,新的基于 QML 的音频管理程序,交替式全屏程序显示。 - -万分感谢 [KDE][1] 开发者和社区及Wikipedia 为书写 [概述][2] 带来的帮助,同时,感谢所有读者。希望大家保持自由精神(be free)并继续支持如同 KDE 一样的开源的自由软件发展。 - --------------------------------------------------------------------------------- - -via: [https://tlhp.cf/kde-history/](https://tlhp.cf/kde-history/) - -作者:[Pavlo RudyiCategories][a] 译者:[jerryling315](https://github.com/jerryling315) 校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[1]: https://www.kde.org/ -[2]: https://en.wikipedia.org/wiki/KDE_Plasma_5 -[a]: https://tlhp.cf/author/paul/ From 0cde68a7de1a3d2bb34a8b961fb25ae9bc7519ce Mon Sep 17 00:00:00 2001 From: "Fuliang.Li" Date: Fri, 29 Jan 2016 19:19:37 +0800 Subject: [PATCH 015/582] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=AE=A4=E9=A2=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 2015--The best open source application development tools.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md b/sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md index c135ae0832..b99752ea7b 100644 --- a/sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md +++ b/sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md @@ -1,5 +1,3 @@ -GHLandy Translating - Bossie Awards 2015: The best open source application development tools ================================================================================ InfoWorld's top picks among platforms, frameworks, databases, and all the other tools that programmers use From 696e8481b55224e5919ce4257881d63d4d462b62 Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 30 Jan 2016 14:16:30 +0800 Subject: [PATCH 016/582] PUB:20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @runningwater 这篇你给忘记了吧~~ --- ...ep From Files and Display the File Name.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) rename {sources/tech/Linux or UNIX grep Command Tutorial series => published}/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md (71%) diff --git a/sources/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md b/published/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md similarity index 71% rename from sources/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md rename to published/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md index 3b683746eb..4953cae431 100644 --- a/sources/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md +++ b/published/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md @@ -1,14 +1,14 @@ -(translating by runningwater) -Grep From Files and Display the File Name +grep 命令系列:从文件中搜索并显示文件名 ================================================================================ -How do I grep from a number of files and display the file name only? -When there is more than one file to search it will display file name by default: +我怎样从几个文件中搜索(grep),并只显示匹配到的文件的文件名? - grep "word" filename +当你从不止一个的文件中搜索时,默认它将显示文件名: + + grep "word" 文件名 grep root /etc/* -Sample outputs: +示例输出: /etc/bash.bashrc: See "man sudo_root" for details. /etc/crontab:17 * * * * root cd / && run-parts --report /etc/cron.hourly @@ -20,12 +20,12 @@ Sample outputs: /etc/logrotate.conf: create 0664 root utmp /etc/logrotate.conf: create 0660 root utmp -The first name is file name (e.g., /etc/crontab, /etc/group). The -l option will only print filename if th +每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用 -l 选项可以只显示文件名: grep -l "string" filename grep -l root /etc/* -Sample outputs: +示例输出: /etc/aliases /etc/arpwatch.conf @@ -36,12 +36,12 @@ Sample outputs: /etc/crontab /etc/group -You can suppress normal output; instead print the name of each input file from **which no output would normally have been** printed: +你也可以逆转输出;使用 -L 选项来输出**那些不匹配的文件的文件名**: grep -L "word" filename grep -L root /etc/* -Sample outputs: +示例输出: /etc/apm /etc/apparmor @@ -62,7 +62,7 @@ Sample outputs: via: http://www.cyberciti.biz/faq/grep-from-files-and-display-the-file-name/ 作者:Vivek Gite -译者:[runningwater](https://github.com/runningwater) -校对:[校对者ID](https://github.com/校对者ID) +译者:[wxy](https://github.com/wxy) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 \ No newline at end of file From a8951fce7de9fd81e8a4a6ccb0a1cc769632027d Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 30 Jan 2016 14:27:02 +0800 Subject: [PATCH 017/582] PUB:20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX @ictlyh --- ...How To Find Files by Content Under UNIX.md | 31 +++++-------------- 1 file changed, 8 insertions(+), 23 deletions(-) rename {translated/tech/Linux or UNIX grep Command Tutorial series => published}/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md (56%) diff --git a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md b/published/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md similarity index 56% rename from translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md rename to published/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md index 9bf698136a..5616548d54 100644 --- a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md +++ b/published/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md @@ -1,21 +1,17 @@ -如何在 UNIX 中根据文件内容查找文件 -How To Find Files by Content Under UNIX +grep 命令系列:如何在 UNIX 中根据文件内容查找文件 ================================================================================ -为了完成课程作业,我写了很多 C 语言代码并把它们保存为 /home/user/c/*.c and *.h。那么在 UNIX shell 窗口中我如何能通过字符串或者单词(例如函数名 main())文件内容来查找文件呢? -I had written lots of code in C for my school work and saved it as source code under /home/user/c/*.c and *.h. How do I find files by content such as string or words (function name such as main() under UNIX shell prompt? + +为了完成课程作业,我写了很多 C 语言代码并把它们保存为 /home/user/c/*.c 和 *.h。那么在 UNIX shell 窗口中我如何能通过字符串或者单词(例如函数名 main())文件内容来查找文件呢? 你需要用到以下工具: -You need to use the following tools: [a] **grep 命令** : 输出匹配模式的行。 [b] **find 命令**: 在目录层次中查找文件。 ### [使用 grep 命令根据内容查找文件][1] -### [grep Command To Find Files By][1] Content ### 输入以下命令: -Type the command as follows: grep 'string' *.txt grep 'main(' *.c @@ -25,48 +21,37 @@ Type the command as follows: grep -iR 'ultra' *.conf 其中 -Where -- **-i** : 忽视模式(匹配字符串 valid、 VALID、 ValID )和输入文件(匹配 file.c FILE.c FILE.C)的大小写。 +- **-i** : 忽略模式(匹配字符串 valid、 VALID、 ValID )和输入文件(匹配 file.c FILE.c FILE.C)的大小写。 - **-R** : 递归读取每个目录下的所有文件。 -- **-i** : Ignore case distinctions in both the PATTERN (match valid, VALID, ValID string) and the input files (math file.c FILE.c FILE.C filename). -- **-R** : Read all files under each directory, recursively + ### 高亮匹配到的模式 ### -### Highlighting searched patterns ### 在搜索大量文件的时候你可以轻松地高亮模式: -You can highlight patterns easily while searching large number of files: $ grep --color=auto -iR 'getChar();' *.c ### 为查找到的模式显示文件名和行号 ### -### Displaying file names and line number for searched patterns ### 你也许需要显示文件名和行号: -You may also need to display filenames and numbers: $ grep --color=auto -iRnH 'getChar();' *.c 其中, -Where, -- **-n** : 在输出的每行前面添加文件中以 1 开始的行号。 +- **-n** : 在输出的每行前面添加以 1 开始的行号。 - **-H** : 为每个匹配打印文件名。要搜索多个文件时这是默认选项。 -- **-n** : Prefix each line of output with the 1-based line number within its input file. -- **-H** Print the file name for each match. This is the default when there is more than one file to search. $grep --color=auto -nH 'DIR' * 输出样例: -Sample output: ![Fig.01: grep 命令显示搜索到的模式](http://www.cyberciti.biz/faq/wp-content/uploads/2008/09/grep-command.png) -Fig.01: grep 命令显示搜索到的模式 +*Fig.01: grep 命令显示搜索到的模式* 你也可以使用 find 命令: -You can also use find command: $ find . -name "*.c" -print | xargs grep "main(" @@ -76,7 +61,7 @@ via: http://www.cyberciti.biz/faq/unix-linux-finding-files-by-content/ 作者:Vivek Gite 译者:[ictlyh](http://mutouxiaogui.cn/blog/) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 13dade0c1325cf49108f8e61b43b4d7fab4527db Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 30 Jan 2016 14:35:17 +0800 Subject: [PATCH 018/582] PUB:20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File @sonofelice --- ...ives Uncommented Lines of a Config File.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) rename {translated/tech/Linux or UNIX grep Command Tutorial series => published}/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md (83%) diff --git a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md b/published/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md similarity index 83% rename from translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md rename to published/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md index 9de5e1d64d..28ae0b5122 100644 --- a/translated/tech/Linux or UNIX grep Command Tutorial series/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md +++ b/published/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md @@ -1,10 +1,9 @@ -Linux / UNIX 下只查看配置文件的有效配置行(配置文件中未被注释的命令行) +grep 命令系列:如何只查看配置文件中未被注释的有效配置行 ========================================================= 大多数的Linux和类Unix系统的配置文件中都有许多的注释行,但是有时候我只想看其中的有效配置行。那我怎么才能只看到quid.conf或httpd.conf这样的配置文件中的非注释命令行呢?怎么去掉这些注释或者空行呢? -我们可以使用UNIX / BSD / OS X / Linux 这些操作系统自身提供的grep,sed,awk,perl或者其他文本处理工具来查看配置文件中的有效配置命令行。 - +我们可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其他文本处理工具来查看配置文件中的有效配置命令行。 ### grep 命令示例——去掉注释 ### @@ -100,7 +99,7 @@ Linux / UNIX 下只查看配置文件的有效配置行(配置文件中未被 Include /etc/apache2/sites-enabled/ -想要跳过空行,可以使用 [egrep 命令][1], 示例: +想要跳过其中的空行,可以使用 [egrep 命令][1], 示例: egrep -v "^#|^$" /etc/apache2/apache2.conf ## or pass it to the page such as more or less ## @@ -119,23 +118,24 @@ Linux / UNIX 下只查看配置文件的有效配置行(配置文件中未被 ![Fig.01: Unix/Linux Egrep Strip Out Comments Blank Lines](http://s0.cyberciti.org/uploads/faq/2008/05/grep-strip-out-comments-blank-lines.jpg) -Fig.01: Unix/Linux Egrep 除去注释行和空行 +*图 01: Unix/Linux Egrep 除去注释行和空行* ### 理解 grep/egrep 命令行选项 ### --v 选项,选择出不匹配的命令行。该选项适用于所有基于posix的系统。正则表达式 ^$ 匹配出所有的非空行, ^#匹配出所有的不以“#”开头的非注释行。 +-v 选项,选择出不匹配的命令行。该选项适用于所有基于posix的系统。正则表达式 `^$` 匹配出所有的非空行, `^#` 匹配出所有的不以“#”开头的非注释行。 ### sed 命令示例 ### -可以按照如下示例使用 GNU / sed 命令: +可以按照如下示例使用 GNU 上的 sed 命令: $ sed '/ *#/d; /^ *$/d' /path/to/file $ sed '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf -GNU or BSD sed 也可以修改配置文件。下面的语法是编辑文件,修改扩展名(比如 .bak)进行文件备份: + +GNU 或 BSD 上的 sed 也可以修改配置文件。下面的命令的作用是原地编辑文件,并以特定(比如 .bak)备份文件: sed -i'.bak.2015.12.27' '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf -更多信息见参考手册 - [grep(1)][2], [sed(1)][3] +更多信息见参考手册 - [grep(1)][2], [sed(1)][3]。 -------------------------------------------------------------------------------- @@ -143,7 +143,7 @@ via: http://www.cyberciti.biz/faq/shell-display-uncommented-lines-only/ 作者:Vivek Gite 译者:[sonofelice](https://github.com/sonofelice) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b9f9aa3c58b98c8ed92acdb93307ae46456b6578 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Feb 2016 07:48:36 +0800 Subject: [PATCH 019/582] PUB:20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal @soooogreen --- ...esktop Fun--Christmas Tree For Your Terminal.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) rename {translated/tech => published}/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md (88%) diff --git a/translated/tech/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md b/published/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md similarity index 88% rename from translated/tech/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md rename to published/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md index dbbab5ef8c..48b6d23f18 100644 --- a/translated/tech/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md +++ b/published/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md @@ -1,16 +1,16 @@ -Linux / Unix桌面之趣:终端上的圣诞树 +Linux/Unix 桌面趣事:终端上的圣诞树 ================================================================================ -给你的Linux或Unix控制台创造一棵圣诞树玩玩吧。在此之前,需要先安装一个Perl模块,命名为Acme::POE::Tree。这是一棵很喜庆的圣诞树,我已经在Linux、OSX和类Unix系统上验证过了。 +给你的Linux或Unix控制台创造一棵圣诞树玩玩吧。在此之前,需要先安装一个Perl模块,命名为Acme::POE::Tree。这是一棵很喜庆的圣诞树,我已经在Linux、OSX和类Unix系统上验证过了。 ### 安装 Acme::POE::Tree ### -安装perl模块最简单的办法就是使用cpan(Perl综合典藏网)。打开终端,把下面的指令敲进去便可安装Acme::POE::Tree。 +安装perl模块最简单的办法就是使用CPAN(Perl综合典藏网(Comprehensive Perl Archive Network))。打开终端,把下面的指令敲进去便可安装Acme::POE::Tree。 ## 以root身份运行 ## perl -MCPAN -e 'install Acme::POE::Tree' -**案例输出:** +**示例输出:** Installing /home/vivek/perl5/man/man3/POE::NFA.3pm Installing /home/vivek/perl5/man/man3/POE::Kernel.3pm @@ -49,7 +49,7 @@ Linux / Unix桌面之趣:终端上的圣诞树 perl -MAcme::POE::Tree -e 'Acme::POE::Tree->new()->run()' -**案例输出** +**示例输出** ![Gif 01: An animated christmas tree in Perl](http://s0.cyberciti.org/uploads/cms/2015/12/perl-tree.gif) @@ -71,7 +71,7 @@ Gif 01: 一棵用Perl写的喜庆圣诞树 ); $tree->run(); -这样就可以通过修改star_delay、run_for和light_delay参数的值来自定义你的树了。一棵提供消遣的终端圣诞树就此诞生。 +这样就可以通过修改star_delay、run_for和light_delay参数的值来自定义你的树了。一棵好玩的终端圣诞树就此诞生。 -------------------------------------------------------------------------------- @@ -79,6 +79,6 @@ via: http://www.cyberciti.biz/open-source/command-line-hacks/linux-unix-desktop- 作者:Vivek Gite 译者:[soooogreen](https://github.com/soooogreen) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b6b13ea3c377dc969bb1df0fdac58181427b4762 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Feb 2016 07:50:52 +0800 Subject: [PATCH 020/582] PUB:20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman @martin2011qi --- ...dation--Best Quotes of Richard Stallman.md | 241 ++++++++++++++++++ ...dation--Best Quotes of Richard Stallman.md | 171 ------------- 2 files changed, 241 insertions(+), 171 deletions(-) create mode 100644 published/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md delete mode 100644 translated/talk/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md diff --git a/published/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md b/published/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md new file mode 100644 index 0000000000..40a0607bef --- /dev/null +++ b/published/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md @@ -0,0 +1,241 @@ +理查德·斯托曼经典语录集锦 +================================================================================ +注:youtube 视频 + + +**理查德·马修·斯托曼(Richard Matthew Stallman)** (RMS) – 神级程序员之一。他是一名程序员,是 GCC、GDB、Emacs 的构建者,软件自由的传教士,[GNU Project][1] 和 [FSF][2] 的创办人。 + +**GNU** 是 “GNU’s Not Unix!”的递归缩写。GNU 是一系列用于基于 Unix 的操作系统的自由软件集合。它能用于 GNU/Hurd 和 Linux 内核。于1983年9月27日公诸于众。常用组件有: + +- GNU Compiler Collection (GCC) +- GNU C library (glibc) +- GNU Core Utilities (coreutils) +- GNU Debugger (GDB) +- GNU Binary Utilities (binutils) +- GNU Bash shell +- GNOME desktop environment + +注:视频 + + +**自由软件基金会(Free Software Foundation)** (FSF) – 一个自由软件的非营利组织,致力于推进计算机用户的自由和捍卫他们的权力。于 1985年10月4日成立。阅读[更多][3]。 + +许多人不理解开源代码(open source code)和自由软件(free software)的区别。每个程序都应该是自由软件: + +- 与目的无关,随心运行程序的自由(自由0)。 +- 学习程序如何运作,并改变它为你所用的自由(自由1)。可以访问源码是这一条的前提。 +- 重新发布副本的自由,如此你便可以帮助你周围的人(自由 2)。 +- 发布自己修改版本给他人的自由(自由 3)。这样能让整个社区有机会从你的改变中受益。可以访问源码是这条的前提。 + +以上为自由软件的四项自由原则。 + +以下为理查德·斯托曼关于自由、软件、社交、哲学等方面的名言摘引。 + +**关于 Facebook:** + +> Facebook is not your friend, it is a surveillance engine. + +Facebook 不是你的朋友,是监控引擎。 + +**关于 Android:** + +> Android is very different from the GNU/Linux operating system because it contains very little of GNU. Indeed, just about the only component in common between Android and GNU/Linux is Linux, the kernel. + +Android 和 GNU/Linux 有很大的区别,因为其中几乎没有 GNU。的确,Android 和 GNU/Linux 之间仅有一个共同组件,那就是内核 - Linux。 + +**关于计算机行业:** + +> The computer industry is the only industry that is more fashion-driven than women's fashion. + +计算机行业是唯一一个比女性时尚业更容易受潮流影响的行业了。 + +**关于云计算:** + +> The interesting thing about cloud computing is that we've redefined cloud computing to include everything that we already do. + +关于云计算,有趣的是我们已经重新定义了云计算来包含我们曾干过的所有事。 + +**关于伦理:** + +> Whether gods exist or not, there is no way to get absolute certainty about ethics. Without absolute certainty, what do we do? We do the best we can. + +无论神存在与否,都没有绝对的伦理道德。没有这份理所当然,我们该如何?也唯有尽善吧。 + +**关于自由:** + +> Free software is software that respects your freedom and the social solidarity of your community. So it's free as in freedom. + +自由软件是尊重个人自由和社会团结的软件。所以才能如自由般自由自在。 + +**关于目标和理想:** + +> If you want to accomplish something in the world, idealism is not enough - you need to choose a method that works to achieve the goal. + +如果你想为这世界做些什么,仅有理想是不够的,你需要找条通往目标的道路并走完。 + +**关于分享:** + +> Sharing is good, and with digital technology, sharing is easy. + +分享很棒,而且数字化技术也使分享变得容易。 + +**关于 facebook(进阶版):** + +> Facebook mistreats its users. Facebook is not your friend; it is a surveillance engine. For instance, if you browse the Web and you see a 'like' button in some page or some other site that has been displayed from Facebook. Therefore, Facebook knows that your machine visited that page. + +Facebook 蹂躏它们的用户。它不是你们的朋友;它就是个监控引擎。举个例子,你是否曾在一些网页或网站上看到 Facebook 的 “like” 按键。对,Facebook 知道你的电脑曾访问过那些网页。 + +**关于 web 应用:** + +> One reason you should not use web applications to do your computing is that you lose control. + +给你个为什么不应该使用 web 应用的理由,因为你失去了计算机的控制权。 + +> If you use a proprietary program or somebody else's web server, you're defenceless. You're putty in the hands of whoever developed that software. + +如果你使用私有程序或他人的 web 服务器,那么你只能任人鱼肉。被软件的开发者轻易操纵。 + +**关于书:** + +> With paper printed books, you have certain freedoms. You can acquire the book anonymously by paying cash, which is the way I always buy books. I never use a credit card. I don't identify to any database when I buy books. Amazon takes away that freedom. + +印刷出来的书,当然是自由的。你可以付现金匿名买书,这也是我一直买书的方式。我绝不会使用信用卡,我买书时不会被任何数据库记下。是亚马逊把自由夺走了。 + +**关于 MPAA:** + +> Officially, MPAA stands for Motion Picture Association of America, but I suggest that MPAA stands for Malicious Power Attacking All. + +MPAA 其实是美国电影协会(Motion Picture Association of America),但我认为叫做攻击万物的邪恶力量(Malicious Power Attacking All)更为合适。 + +**关于金钱与职业:** + +> I could have made money this way, and perhaps amused myself writing code. But I knew that at the end of my career, I would look back on years of building walls to divide people, and feel I had spent my life making the world a worse place. + +我可以找份工作赚钱,并沉浸在编码的快乐中。但在职业生涯结束后,回首目睹自己筑就的高墙将人与人分隔开,我会觉得我耗尽毕生精力只换来了一个更糟糕的世界。 + +**关于私有软件:** + +> Proprietary software keeps users divided and helpless. Divided because each user is forbidden to redistribute it to others, and helpless because the users can't change it since they don't have the source code. They can't study what it really does. So the proprietary program is a system of unjust power. + +私有软件使用户孤立、无助。因为禁止将软件给他人使用所以孤立,因为无法改变源码所以无助。他们不能学习其中真正的工作方式,所以整个私有软件体系就是一种不公的力量。 + +**关于智能手机:** + +> A smartphone is a computer - it's not built using a computer - the job it does is the job of being a computer. So, everything we say about computers, that the software you run should be free - you should insist on that - applies to smart phones just the same. And likewise to those tablets. + +智能手机就是电脑 —— 虽然做的和常用的电脑不同 —— 但是却能干电脑能干的活。所以我们所说的一切有关于电脑上的软件应该能自由运行 —— 必须坚持这一点 —— 在智能手机上也是这样,当然也包括平板。 + +**关于 CD 和数字内容:** + +> CD stores have the disadvantage of an expensive inventory, but digital bookshops would need no such thing: they could write copies at the time of sale on to memory sticks, and sell you one if you forgot your own. + +CD 商店有一个弱势就是需要昂贵的库存,但是电子商店就没有这方面的需求:他们只需要将售卖的副本写入记忆棒,并在你忘带自己的记忆棒时卖你一个就是了。 + +**关于竞争范式(paradigm of competition):** + +> The paradigm of competition is a race: by rewarding the winner, we encourage everyone to run faster. When capitalism really works this way, it does a good job; but its defenders are wrong in assuming it always works this way. + +竞争范式就像是赛跑:奖励胜者,鼓励每一个跑得更快的人。当资本主义真的这样运作时,当然是件好事;但是维护它的人若是假设它一直这样运作的话那就大错特错了。 + +**关于 vi 和 emacs:** + +> People sometimes ask me if it is a sin in the Church of Emacs to use vi. Using a free version of vi is not a sin; it is a penance. So happy hacking. + +有时会有人问我在 Emacs 的阵营使用 vi 是不是一种罪过。使用自由版的 vi 并不是一种罪过;是一种自我惩罚。所以好好享受其中乐趣吧。 + +**关于自由和历史:** + +> Value your freedom or you will lose it, teaches history. 'Don't bother us with politics', respond those who don't want to learn. + +历史告诉我们不珍惜自由便失去自由,然而有的人不懂吸取教训,只知道说“别拿政治烦我们”。 + +**关于专利:** + +> Fighting patents one by one will never eliminate the danger of software patents, any more than swatting mosquitoes will eliminate malaria. + +和专利一个一个的战斗并不能解决软件专利带来的危害,就像打再多的蚊子也消灭不了疟疾一样。 + +> Software patents are dangerous to software developers because they impose monopolies on software ideas. + +软件专利对于软件的开发者来说十分危险,因为它们加剧了对于软件理念的垄断。 + +**关于版权:** + +> In practice, the copyright system does a bad job of supporting authors, aside from the most popular ones. Other authors' principal interest is to be better known, so sharing their work benefits them as well as readers. + +其实,版权制度对作者也没有什么好处,撇开最受欢迎的那个,其他作者的主旨可能更好理解,所以分享无论对他们还是你的读者都是一件好事。 + +**关于工作与报酬:** + +> There is nothing wrong with wanting pay for work, or seeking to maximize one's income, as long as one does not use means that are destructive. + +劳有所得,或寻求收入的最大化并没有什么错,只要不是不择手段。 + +**关于 Chrome OS:** + +> In essence, Chrome OS is the GNU/Linux operating system. However, it is delivered without the usual applications, and rigged up to impede and discourage installing applications. + +Chrome OS 确实是 GNU/Linux 的操作系统。但是,它在发布时没有安装常用应用,并为安装他们设置了阻碍。 + +**关于 Linux 用户:** + +> Many users of the GNU/Linux system will not have heard the ideas of free software. They will not be aware that we have ideas, that a system exists because of ethical ideals, which were omitted from ideas associated with the term 'open source.' + +许多的 GNU/Linux 用户并没有听过自由软件。他们并没有意识到,这个系统是因为道德理想才存在的,与此一起被忽视的还有所谓的“开源”。 + +**关于 facebook 的隐私:** + +> If there is a Like button in a page, Facebook knows who visited that page. And it can get IP address of the computer visiting the page even if the person is not a Facebook user. + +如果页面上有 “like” 按键,Facebook 就能知道谁访问了页面。即使不是 Facebook 的用户,也可以得到访问该页面电脑的 IP 地址。 + +**关于编程:** + +> Programming is not a science. Programming is a craft. + +编程不是科学,编程是手艺。 + +> My favorite programming languages are Lisp and C. However, since around 1992 I have worked mainly on free software activism, which means I am too busy to do much programming. Around 2008 I stopped doing programming projects. + +Lisp 和 C 语言是我的最爱。然自 1992 年以来我主要工作在自由软件活动上,导致我太忙了,没法做更多的编程。大概在 2008 年我便停止了做编程项目。 + +> C++ is a badly designed and ugly language. It would be a shame to use it in Emacs. + +C++ 设计的真糟糕、真丑陋。在 Emacs 上用它应该觉得羞愧。 + +**关于钻研(hacking)和学习编程:** + +> People could no longer learn hacking the way I did, by starting to work on a real operating system, making real improvements. In fact, in the 1980s I often came across newly graduated computer science majors who had never seen a real program in their lives. They had only seen toy exercises, school exercises, because every real program was a trade secret. They never had the experience of writing features for users to really use, and fixing the bugs that real users came across. The things you need to know to do real work. + +(时过境迁,)人们没法再像我当初那样通过改进实实在在的操作系统来学习编程了。上世纪 80 年代,我常遇见计算机专业的毕业生,有生以来没见过真正的程序。他们接触的到的只有小玩意和学校的作业,因为每一个程序都是商业机密。他们没有机会为用户去写真正实用的特性,修复用户真正遭遇的问题。而这些正是真正的工作中你需要掌握的(东西)。 + +> It is hard to write a simple definition of something as varied as hacking, but I think what these activities have in common is playfulness, cleverness, and exploration. Thus, hacking means exploring the limits of what is possible, in a spirit of playful cleverness. Activities that display playful cleverness have "hack value". + +对于如“hacking”这般多样化的东西真的很难简单的下定义,不过在我看来诸如此类的行为都会有以下的这些共同点:嬉乐、智慧和探索。因此,hacking 意味着对可能的极限的探索,一颗向往快乐与智慧的心。能带来快乐与智慧的行为就有 “hack 的价值” 。 + +**关于浏览网页:** + +> For personal reasons, I do not browse the web from my computer. (I also have no net connection much of the time.) To look at page I send mail to a daemon which runs wget and mails the page back to me. It is very efficient use of my time, but it is slow in real time. + +出于个人原因,我不会在我的电脑上浏览网页。(大部分时间处于没有网络连接的状态。)要浏览网页,我需要给一个守护进程发 mail,然后它会运行 wget 并把页面通过 mail 发还给我。这对我而言已经是最效率了,但那真的比实时慢太多了。 + +**关于音乐共享:** + +> Friends share music with each other, they don't allow themselves to be divided by a system that says that nobody is supposed to have copies. + +朋友之间彼此分享音乐,绝不会希望因为系统的一句:“禁止私下拷贝!”而生分。 + +-------------------------------------------------------------------------------- + +via: https://tlhp.cf/fsf-richard-stallman/ + +作者:[Pavlo Rudyi][a] +译者:[martin2011qi](https://github.com/martin2011qi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://tlhp.cf/fsf-richard-stallman/ +[1]:http://www.gnu.org/ +[2]:http://www.fsf.org/ +[3]:https://www.fsf.org/about/ \ No newline at end of file diff --git a/translated/talk/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md b/translated/talk/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md deleted file mode 100644 index a8d1616106..0000000000 --- a/translated/talk/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md +++ /dev/null @@ -1,171 +0,0 @@ -30 年自由软件基金会:理查德·斯托曼语录集锦 -================================================================================ -注:youtube 视频 - - -**理查德·马修·斯托曼** (rms) – IT大牛之一。他是一名程序员,GCC、GDB、Emacs 的构建者,软件自由传教士,[GNU Project][1] 和 [FSF][2] 的创办人。 - -**GNU** 是 “GNU’s Not Unix!”的缩写。GNU 是基于 Unix 操作系统的自由计算机软件集合。支持 GNU/Hurd 和 Linux 内核。于1983年9月27日公诸于众。常有组件: - -- GNU Compiler Collection (GCC) -- GNU C library (glibc) -- GNU Core Utilities (coreutils) -- GNU Debugger (GDB) -- GNU Binary Utilities (binutils) -- GNU Bash shell -- NOME desktop environment - -注:视频 - - -**自由软件基金会** (FSF) – 一个自由软件的非营利组织,致力于计算机用户自由的提升和权力的捍卫。于 1985 年 10 月 4 日成立。阅读[更多][3]。 - -- 于目的无关,随心运行程序的自由(自由0)。 -- 学习程序如何运作,并改变它为你所用的自由(自由1)。可以访问源码是这条的前提。 -- 重新发布副本的自由,如此你便可以帮助你的邻居了 (自由 2)。 -- 发布自己修改版本给他人的自由(自由 3)。这样能让整个社区有机会从你的改变中受益。可以访问源码是这条的前提。 - -以上为自由软件的四项自由原则。 - -以下为理查德·斯托曼关于自由、软件、社交、哲学等的名言摘引。 - -**关于 Facebook:** - -> Facebook 不是你的朋友,是监控引擎。 - -**关于 Android:** - -> Android 和 GNU/Linux 有很大的区别,因为其中几乎没有 GNU。的确,Android 和 GNU/Linux 之间仅有一个共同组件,那就是内核 - Linux。 - -**关于计算机行业:** - -> 计算机行业是唯一一个比时尚女装更被时尚驱动的行业。 - -**关于云计算:** - -> 关于云计算,有趣的是我们已经重新定义了云计算来包含我们曾干的所有事。 - -**关于伦理:** - -> 无论神存在与否,都没有绝对的伦理道德。没有这份理所当然,我们该如何?也唯有尽善吧。 - -**关于自由:** - -> 自由软件是尊重个人自由和社会团结的软件。所以才能如自由般自由自在。 - -**关于目标和理想:** - -> 如果你想为这世界做些什么,仅有理想是不够的,你需要找条通往目标的道路并走完。 - -**关于分享:** - -> 分享很棒,而且数字化技术也使分享变得容易。 - -**关于 facebook(进阶版):** - -> Facebook 蹂躏它们的用户。它不是你们的朋友;它就是个监控引擎。举个例子,你是否曾在一些网页或网站上看到 Facebook 的 “like” 按键。对,Facebook 知道你的电脑曾访问过那些网页。 - -**关于 web 应用:** - -> 给你个为什么不应该使用 web 应用的理由,因为你失去了计算机的控制权。 -> -> 如果你使用私有程序或他人的 web 服务器,那么你只能任人鱼肉。被软件的软件的开发者轻易操纵。 - -**关于书:** - -> 印刷出来的书,当然是自由的。即使你买了别人也不知道,这也是我一直买书的方式。买时不会被任何数据库认出。是亚马逊把自由夺走了。 - -**关于 MPAA:** - -> MPAA 其实是美国电影协会(Motion Picture Association of America),但我认为叫做攻击万物的邪恶力量(Malicious Power Attacking All)更为合适。 - -**关于金钱与职业:** - -> 我可以这样赚钱,并沉浸在编码的快乐中。但在职业生涯结束后,回首目睹自己筑就的高墙将人与人分隔开,我会觉得我耗尽毕生精力只换来了一个更糟糕的世界。 - -**关于私有软件:** - -> 私有软件使用户孤立、无助。因为禁止将软件给他人使用所以孤立,因为无法改变源码所以无助。他们学不了其中正真的工作方式。所以整个私有软件体系就是一种不公的力量。 - -**关于智能手机:** - -> 智能手机就是电脑 - 虽然做的和常用的电脑不同 - 但是却能干电脑能干的活。所以我们所说的一切有关于电脑上的软件应该能自由运行 - 必须坚持 - 在智能手机上也是这样。当然也包括平板。 - -**关于 CD 和数字内容:** - -> CD 商店有一个弱势就是需要昂贵的库存,但是电子商店就没有这方面的需求:他们只需要将售卖的副本写入记忆棒,并在你忘带自己的记忆棒时卖你一个就是了。 - -**关于竞争范式:About paradigm of competition:** - -> 竞争范式就像是赛跑:鼓励每一个跑得更快的人。当资本主义真的这样运作时,当然是件好事;但是维护者若是假设它一直这样运作的话那就大错特错了。 - -**关于 vi 和 emacs:** - -> 有时会有人问我在 Emacs 的阵营使用 vi 是不是一种罪过。使用自由版的 vi 并不是一种罪过;是一种忏悔。所以好好享受其中乐趣吧。 - -**关于自由和历史:** - -> 历史教会我们:珍惜自由,否则你将失去他。“别和我们谈政治”,对听不进的人这就是答复。 - -**关于专利:** - -> 和专利一个一个的战斗并不能解决软件专利带来的危害,就像打再多的蚊子也消灭不了疟疾一样。 -> -> 软件专利对于软件的开发者来说十分危险,因为它们加剧了对于软件理念的垄断。 - -**关于版权:** - -> 其实,版权制度对作者也没有什么好处,撇开最受欢迎的那个,其他作者的主旨可能更好理解,所以分享无论对他们还是你的读者都是一件好事。 - -**关于工作与报酬:** - -> 劳有所得,或寻求收入的最大化并没有什么错,只要不是不择手段。 - -**关于 Chrome OS:** - -> Chrome OS 确实是 GNU/Linux 的操作系统。但是,它在发布时没有安装常用应用,并为安装他们设置了阻碍。 - -**关于 Linux 用户:** - -> 许多的 GNU/Linux 用户并没有听过自由软件。他们并没有意识到,这个系统是因为道德理想才存在的,与此一起被忽视的还有所谓的“开源”。 - -**关于 facebook 的隐私:** - -> 如果页面上有 “like” 按键,Facebook 就能知道谁访问了页面。即使不是 Facebook 的用户,也可以得到访问该页面电脑的 IP 地址。 - -**关于编程:** - -> 编程不是科学,编程是手艺。 -> -> Lisp 和 C 语言是我的最爱。然自 1992 年以来高频的自由软件活动,确实反映了我编的太过匆忙。大概在 2008 年我便停止了编程开发。 -> -> C++ 设计的真糟糕、真丑陋。在 Emacs 上用他应该觉得羞愧。 - -**关于钻研(hacking)和学习编程:** - -> 今时不同往日,大家再也不用走我的老路了,完全可以在实际的操作系统上提升自己。上世纪 80 年代,我常遇见计算机专业的毕业生,自出生以来没见过真正的程序。他们接触的到的只有小玩意和学校的作业,因为每一个程序都是商业机密。他们没有机会去写真正实用的特性,修复用户真正遭遇的问题。做这些事便是你应知晓的最好的提升方式。 -> -> 对于如 hacking 这般多样化的东西真的很难简单的下定义,不过在我看来诸如此类的行为都会有以下的这些共同点:嬉乐、智慧和探索。因此,hacking 意味着对可能的极限的探索,一颗向往快乐与智慧心。能带来快乐与智慧的行为就有 “hack 的价值” 。 - -**关于浏览网页:** - -> 由于个人原因,我不会在我的电脑上浏览网页。(大部分时间处于没有网络连接的状态。)要浏览网页,我需要给守护进程发 mail,然后它会运行 wget 并把页面通过 mail 发还给我。这对我而言已经是最效率了,但那真的比实时慢太多了。 - -**关于音乐共享:** - -> 朋友之间彼此分享音乐,绝不会希望因为系统的一句:禁止私下拷贝!而生分。 - --------------------------------------------------------------------------------- - -via: https://tlhp.cf/fsf-richard-stallman/ - -作者:[Pavlo Rudyi][a] -译者:[martin2011qi](https://github.com/martin2011qi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://tlhp.cf/fsf-richard-stallman/ -[1]:http://www.gnu.org/ -[2]:http://www.fsf.org/ -[3]:https://www.fsf.org/about/ \ No newline at end of file From 39e253925b31c506e525c28c909c5e90dc3155a4 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 1 Feb 2016 07:53:55 +0800 Subject: [PATCH 021/582] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20201601?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20101020 19 Years of KDE History--Step by Step.md | 0 .../20150921 14 tips for teaching open source development.md | 0 .../20151012 Remember sed and awk All Linux admins should.md | 0 .../20151013 DFileManager--Cover Flow File Manager.md | 0 .../20151107 Hackers Successfully Install Linux on a Potato.md | 0 ...0151109 How to Install GitLab on Ubuntu or Fedora or Debian.md | 0 .../20151117 Linux 101--Get the most out of Systemd.md | 0 ...sign Multiple IP Addresses To One Interface On Ubuntu 15.10.md | 0 .../20151123 How to Configure Apache Solr on Ubuntu 14 or 15.md | 0 .../20151125 Running a mainline kernel on a cellphone.md | 0 ...o Install Nginx as Reverse Proxy for Apache on FreeBSD 10.2.md | 0 ...eries 1--HowTo--Use grep Command In Linux or UNIX--Examples.md | 0 ...grep Command Tutorial series 2--Regular Expressions In grep.md | 0 ...-Search Multiple Words or String Pattern Using grep Command.md | 0 ...rial series 4--Grep Count Lines If a String or Word Matches.md | 0 ...utorial series 5--Grep From Files and Display the File Name.md | 0 ... Tutorial series 6--How To Find Files by Content Under UNIX.md | 0 ...guration File Directives Uncommented Lines of a Config File.md | 0 ...o Install Laravel PHP Framework on CentOS 7 or Ubuntu 15.04.md | 0 ...1204 Install and Configure Munin monitoring server in Linux.md | 0 .../{ => 201601}/20151204 Linux or Unix--jobs Command Examples.md | 0 .../20151206 NetworkManager and privacy in the IPv6 internet.md | 0 .../20151208 How to renew the ISPConfig 3 SSL Certificate.md | 0 .../20151208 Top 5 open source community metrics to track.md | 0 ...1215 Fix--Cannot establish FTP connection to an SFTP server.md | 0 .../20151215 How to block network traffic by country on Linux.md | 0 published/{ => 201601}/20151222 Turn Tor socks to http.md | 0 ...1223 How to Setup SSH Login Without Password CentOS or RHEL.md | 0 .../20151223 How to Use Glances to Monitor System on Ubuntu.md | 0 .../20151223 Monitor Linux System Performance Using Nmon.md | 0 .../20151223 Ten Biggest Linux Stories Of The Year 2015.md | 0 .../20151223 What' s the Best File System for My Linux Install.md | 0 ...What are the best plugins to increase productivity on Emacs.md | 0 published/{ => 201601}/20151229 Grub 2--Heal your bootloader.md | 0 ...w to Check Hardware Information on Linux Using Command Line.md | 0 ...20160111 Open Source DJ Software Mixxx Version 2.0 Released.md | 0 ...60111 Ubuntu-‘Spyware’-Will-Be-Disabled-In-Ubuntu-16.04-LTS.md | 0 published/{ => 201601}/Learn with Linux--Learning Music.md | 0 published/{ => 201601}/Learn with Linux--Learning to Type.md | 0 published/{ => 201601}/Learn with Linux--Physics Simulation.md | 0 published/{ => 201601}/Learn with Linux--Two Geography Apps.md | 0 41 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 201601}/20101020 19 Years of KDE History--Step by Step.md (100%) rename published/{ => 201601}/20150921 14 tips for teaching open source development.md (100%) rename published/{ => 201601}/20151012 Remember sed and awk All Linux admins should.md (100%) rename published/{ => 201601}/20151013 DFileManager--Cover Flow File Manager.md (100%) rename published/{ => 201601}/20151107 Hackers Successfully Install Linux on a Potato.md (100%) rename published/{ => 201601}/20151109 How to Install GitLab on Ubuntu or Fedora or Debian.md (100%) rename published/{ => 201601}/20151117 Linux 101--Get the most out of Systemd.md (100%) rename published/{ => 201601}/20151123 Assign Multiple IP Addresses To One Interface On Ubuntu 15.10.md (100%) rename published/{ => 201601}/20151123 How to Configure Apache Solr on Ubuntu 14 or 15.md (100%) rename published/{ => 201601}/20151125 Running a mainline kernel on a cellphone.md (100%) rename published/{ => 201601}/20151126 How to Install Nginx as Reverse Proxy for Apache on FreeBSD 10.2.md (100%) rename published/{ => 201601}/20151127 Linux or UNIX grep Command Tutorial series 1--HowTo--Use grep Command In Linux or UNIX--Examples.md (100%) rename published/{ => 201601}/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md (100%) mode change 100755 => 100644 rename published/{ => 201601}/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md (100%) rename published/{ => 201601}/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md (100%) rename published/{ => 201601}/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md (100%) rename published/{ => 201601}/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md (100%) rename published/{ => 201601}/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md (100%) rename published/{ => 201601}/20151204 How to Install Laravel PHP Framework on CentOS 7 or Ubuntu 15.04.md (100%) rename published/{ => 201601}/20151204 Install and Configure Munin monitoring server in Linux.md (100%) rename published/{ => 201601}/20151204 Linux or Unix--jobs Command Examples.md (100%) rename published/{ => 201601}/20151206 NetworkManager and privacy in the IPv6 internet.md (100%) rename published/{ => 201601}/20151208 How to renew the ISPConfig 3 SSL Certificate.md (100%) rename published/{ => 201601}/20151208 Top 5 open source community metrics to track.md (100%) rename published/{ => 201601}/20151215 Fix--Cannot establish FTP connection to an SFTP server.md (100%) rename published/{ => 201601}/20151215 How to block network traffic by country on Linux.md (100%) rename published/{ => 201601}/20151222 Turn Tor socks to http.md (100%) rename published/{ => 201601}/20151223 How to Setup SSH Login Without Password CentOS or RHEL.md (100%) rename published/{ => 201601}/20151223 How to Use Glances to Monitor System on Ubuntu.md (100%) rename published/{ => 201601}/20151223 Monitor Linux System Performance Using Nmon.md (100%) rename published/{ => 201601}/20151223 Ten Biggest Linux Stories Of The Year 2015.md (100%) rename published/{ => 201601}/20151223 What' s the Best File System for My Linux Install.md (100%) rename published/{ => 201601}/20151225 What are the best plugins to increase productivity on Emacs.md (100%) rename published/{ => 201601}/20151229 Grub 2--Heal your bootloader.md (100%) rename published/{ => 201601}/20160104 How to Check Hardware Information on Linux Using Command Line.md (100%) rename published/{ => 201601}/20160111 Open Source DJ Software Mixxx Version 2.0 Released.md (100%) rename published/{ => 201601}/20160111 Ubuntu-‘Spyware’-Will-Be-Disabled-In-Ubuntu-16.04-LTS.md (100%) rename published/{ => 201601}/Learn with Linux--Learning Music.md (100%) rename published/{ => 201601}/Learn with Linux--Learning to Type.md (100%) rename published/{ => 201601}/Learn with Linux--Physics Simulation.md (100%) rename published/{ => 201601}/Learn with Linux--Two Geography Apps.md (100%) diff --git a/published/20101020 19 Years of KDE History--Step by Step.md b/published/201601/20101020 19 Years of KDE History--Step by Step.md similarity index 100% rename from published/20101020 19 Years of KDE History--Step by Step.md rename to published/201601/20101020 19 Years of KDE History--Step by Step.md diff --git a/published/20150921 14 tips for teaching open source development.md b/published/201601/20150921 14 tips for teaching open source development.md similarity index 100% rename from published/20150921 14 tips for teaching open source development.md rename to published/201601/20150921 14 tips for teaching open source development.md diff --git a/published/20151012 Remember sed and awk All Linux admins should.md b/published/201601/20151012 Remember sed and awk All Linux admins should.md similarity index 100% rename from published/20151012 Remember sed and awk All Linux admins should.md rename to published/201601/20151012 Remember sed and awk All Linux admins should.md diff --git a/published/20151013 DFileManager--Cover Flow File Manager.md b/published/201601/20151013 DFileManager--Cover Flow File Manager.md similarity index 100% rename from published/20151013 DFileManager--Cover Flow File Manager.md rename to published/201601/20151013 DFileManager--Cover Flow File Manager.md diff --git a/published/20151107 Hackers Successfully Install Linux on a Potato.md b/published/201601/20151107 Hackers Successfully Install Linux on a Potato.md similarity index 100% rename from published/20151107 Hackers Successfully Install Linux on a Potato.md rename to published/201601/20151107 Hackers Successfully Install Linux on a Potato.md diff --git a/published/20151109 How to Install GitLab on Ubuntu or Fedora or Debian.md b/published/201601/20151109 How to Install GitLab on Ubuntu or Fedora or Debian.md similarity index 100% rename from published/20151109 How to Install GitLab on Ubuntu or Fedora or Debian.md rename to published/201601/20151109 How to Install GitLab on Ubuntu or Fedora or Debian.md diff --git a/published/20151117 Linux 101--Get the most out of Systemd.md b/published/201601/20151117 Linux 101--Get the most out of Systemd.md similarity index 100% rename from published/20151117 Linux 101--Get the most out of Systemd.md rename to published/201601/20151117 Linux 101--Get the most out of Systemd.md diff --git a/published/20151123 Assign Multiple IP Addresses To One Interface On Ubuntu 15.10.md b/published/201601/20151123 Assign Multiple IP Addresses To One Interface On Ubuntu 15.10.md similarity index 100% rename from published/20151123 Assign Multiple IP Addresses To One Interface On Ubuntu 15.10.md rename to published/201601/20151123 Assign Multiple IP Addresses To One Interface On Ubuntu 15.10.md diff --git a/published/20151123 How to Configure Apache Solr on Ubuntu 14 or 15.md b/published/201601/20151123 How to Configure Apache Solr on Ubuntu 14 or 15.md similarity index 100% rename from published/20151123 How to Configure Apache Solr on Ubuntu 14 or 15.md rename to published/201601/20151123 How to Configure Apache Solr on Ubuntu 14 or 15.md diff --git a/published/20151125 Running a mainline kernel on a cellphone.md b/published/201601/20151125 Running a mainline kernel on a cellphone.md similarity index 100% rename from published/20151125 Running a mainline kernel on a cellphone.md rename to published/201601/20151125 Running a mainline kernel on a cellphone.md diff --git a/published/20151126 How to Install Nginx as Reverse Proxy for Apache on FreeBSD 10.2.md b/published/201601/20151126 How to Install Nginx as Reverse Proxy for Apache on FreeBSD 10.2.md similarity index 100% rename from published/20151126 How to Install Nginx as Reverse Proxy for Apache on FreeBSD 10.2.md rename to published/201601/20151126 How to Install Nginx as Reverse Proxy for Apache on FreeBSD 10.2.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 1--HowTo--Use grep Command In Linux or UNIX--Examples.md b/published/201601/20151127 Linux or UNIX grep Command Tutorial series 1--HowTo--Use grep Command In Linux or UNIX--Examples.md similarity index 100% rename from published/20151127 Linux or UNIX grep Command Tutorial series 1--HowTo--Use grep Command In Linux or UNIX--Examples.md rename to published/201601/20151127 Linux or UNIX grep Command Tutorial series 1--HowTo--Use grep Command In Linux or UNIX--Examples.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md b/published/201601/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md old mode 100755 new mode 100644 similarity index 100% rename from published/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md rename to published/201601/20151127 Linux or UNIX grep Command Tutorial series 2--Regular Expressions In grep.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md b/published/201601/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md similarity index 100% rename from published/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md rename to published/201601/20151127 Linux or UNIX grep Command Tutorial series 3--Search Multiple Words or String Pattern Using grep Command.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md b/published/201601/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md similarity index 100% rename from published/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md rename to published/201601/20151127 Linux or UNIX grep Command Tutorial series 4--Grep Count Lines If a String or Word Matches.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md b/published/201601/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md similarity index 100% rename from published/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md rename to published/201601/20151127 Linux or UNIX grep Command Tutorial series 5--Grep From Files and Display the File Name.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md b/published/201601/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md similarity index 100% rename from published/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md rename to published/201601/20151127 Linux or UNIX grep Command Tutorial series 6--How To Find Files by Content Under UNIX.md diff --git a/published/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md b/published/201601/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md similarity index 100% rename from published/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md rename to published/201601/20151127 Linux or UNIX grep Command Tutorial series 7--Linux or UNIX View Only Configuration File Directives Uncommented Lines of a Config File.md diff --git a/published/20151204 How to Install Laravel PHP Framework on CentOS 7 or Ubuntu 15.04.md b/published/201601/20151204 How to Install Laravel PHP Framework on CentOS 7 or Ubuntu 15.04.md similarity index 100% rename from published/20151204 How to Install Laravel PHP Framework on CentOS 7 or Ubuntu 15.04.md rename to published/201601/20151204 How to Install Laravel PHP Framework on CentOS 7 or Ubuntu 15.04.md diff --git a/published/20151204 Install and Configure Munin monitoring server in Linux.md b/published/201601/20151204 Install and Configure Munin monitoring server in Linux.md similarity index 100% rename from published/20151204 Install and Configure Munin monitoring server in Linux.md rename to published/201601/20151204 Install and Configure Munin monitoring server in Linux.md diff --git a/published/20151204 Linux or Unix--jobs Command Examples.md b/published/201601/20151204 Linux or Unix--jobs Command Examples.md similarity index 100% rename from published/20151204 Linux or Unix--jobs Command Examples.md rename to published/201601/20151204 Linux or Unix--jobs Command Examples.md diff --git a/published/20151206 NetworkManager and privacy in the IPv6 internet.md b/published/201601/20151206 NetworkManager and privacy in the IPv6 internet.md similarity index 100% rename from published/20151206 NetworkManager and privacy in the IPv6 internet.md rename to published/201601/20151206 NetworkManager and privacy in the IPv6 internet.md diff --git a/published/20151208 How to renew the ISPConfig 3 SSL Certificate.md b/published/201601/20151208 How to renew the ISPConfig 3 SSL Certificate.md similarity index 100% rename from published/20151208 How to renew the ISPConfig 3 SSL Certificate.md rename to published/201601/20151208 How to renew the ISPConfig 3 SSL Certificate.md diff --git a/published/20151208 Top 5 open source community metrics to track.md b/published/201601/20151208 Top 5 open source community metrics to track.md similarity index 100% rename from published/20151208 Top 5 open source community metrics to track.md rename to published/201601/20151208 Top 5 open source community metrics to track.md diff --git a/published/20151215 Fix--Cannot establish FTP connection to an SFTP server.md b/published/201601/20151215 Fix--Cannot establish FTP connection to an SFTP server.md similarity index 100% rename from published/20151215 Fix--Cannot establish FTP connection to an SFTP server.md rename to published/201601/20151215 Fix--Cannot establish FTP connection to an SFTP server.md diff --git a/published/20151215 How to block network traffic by country on Linux.md b/published/201601/20151215 How to block network traffic by country on Linux.md similarity index 100% rename from published/20151215 How to block network traffic by country on Linux.md rename to published/201601/20151215 How to block network traffic by country on Linux.md diff --git a/published/20151222 Turn Tor socks to http.md b/published/201601/20151222 Turn Tor socks to http.md similarity index 100% rename from published/20151222 Turn Tor socks to http.md rename to published/201601/20151222 Turn Tor socks to http.md diff --git a/published/20151223 How to Setup SSH Login Without Password CentOS or RHEL.md b/published/201601/20151223 How to Setup SSH Login Without Password CentOS or RHEL.md similarity index 100% rename from published/20151223 How to Setup SSH Login Without Password CentOS or RHEL.md rename to published/201601/20151223 How to Setup SSH Login Without Password CentOS or RHEL.md diff --git a/published/20151223 How to Use Glances to Monitor System on Ubuntu.md b/published/201601/20151223 How to Use Glances to Monitor System on Ubuntu.md similarity index 100% rename from published/20151223 How to Use Glances to Monitor System on Ubuntu.md rename to published/201601/20151223 How to Use Glances to Monitor System on Ubuntu.md diff --git a/published/20151223 Monitor Linux System Performance Using Nmon.md b/published/201601/20151223 Monitor Linux System Performance Using Nmon.md similarity index 100% rename from published/20151223 Monitor Linux System Performance Using Nmon.md rename to published/201601/20151223 Monitor Linux System Performance Using Nmon.md diff --git a/published/20151223 Ten Biggest Linux Stories Of The Year 2015.md b/published/201601/20151223 Ten Biggest Linux Stories Of The Year 2015.md similarity index 100% rename from published/20151223 Ten Biggest Linux Stories Of The Year 2015.md rename to published/201601/20151223 Ten Biggest Linux Stories Of The Year 2015.md diff --git a/published/20151223 What' s the Best File System for My Linux Install.md b/published/201601/20151223 What' s the Best File System for My Linux Install.md similarity index 100% rename from published/20151223 What' s the Best File System for My Linux Install.md rename to published/201601/20151223 What' s the Best File System for My Linux Install.md diff --git a/published/20151225 What are the best plugins to increase productivity on Emacs.md b/published/201601/20151225 What are the best plugins to increase productivity on Emacs.md similarity index 100% rename from published/20151225 What are the best plugins to increase productivity on Emacs.md rename to published/201601/20151225 What are the best plugins to increase productivity on Emacs.md diff --git a/published/20151229 Grub 2--Heal your bootloader.md b/published/201601/20151229 Grub 2--Heal your bootloader.md similarity index 100% rename from published/20151229 Grub 2--Heal your bootloader.md rename to published/201601/20151229 Grub 2--Heal your bootloader.md diff --git a/published/20160104 How to Check Hardware Information on Linux Using Command Line.md b/published/201601/20160104 How to Check Hardware Information on Linux Using Command Line.md similarity index 100% rename from published/20160104 How to Check Hardware Information on Linux Using Command Line.md rename to published/201601/20160104 How to Check Hardware Information on Linux Using Command Line.md diff --git a/published/20160111 Open Source DJ Software Mixxx Version 2.0 Released.md b/published/201601/20160111 Open Source DJ Software Mixxx Version 2.0 Released.md similarity index 100% rename from published/20160111 Open Source DJ Software Mixxx Version 2.0 Released.md rename to published/201601/20160111 Open Source DJ Software Mixxx Version 2.0 Released.md diff --git a/published/20160111 Ubuntu-‘Spyware’-Will-Be-Disabled-In-Ubuntu-16.04-LTS.md b/published/201601/20160111 Ubuntu-‘Spyware’-Will-Be-Disabled-In-Ubuntu-16.04-LTS.md similarity index 100% rename from published/20160111 Ubuntu-‘Spyware’-Will-Be-Disabled-In-Ubuntu-16.04-LTS.md rename to published/201601/20160111 Ubuntu-‘Spyware’-Will-Be-Disabled-In-Ubuntu-16.04-LTS.md diff --git a/published/Learn with Linux--Learning Music.md b/published/201601/Learn with Linux--Learning Music.md similarity index 100% rename from published/Learn with Linux--Learning Music.md rename to published/201601/Learn with Linux--Learning Music.md diff --git a/published/Learn with Linux--Learning to Type.md b/published/201601/Learn with Linux--Learning to Type.md similarity index 100% rename from published/Learn with Linux--Learning to Type.md rename to published/201601/Learn with Linux--Learning to Type.md diff --git a/published/Learn with Linux--Physics Simulation.md b/published/201601/Learn with Linux--Physics Simulation.md similarity index 100% rename from published/Learn with Linux--Physics Simulation.md rename to published/201601/Learn with Linux--Physics Simulation.md diff --git a/published/Learn with Linux--Two Geography Apps.md b/published/201601/Learn with Linux--Two Geography Apps.md similarity index 100% rename from published/Learn with Linux--Two Geography Apps.md rename to published/201601/Learn with Linux--Two Geography Apps.md From e7af5ba25b0f04def15fff3b473346146e538e90 Mon Sep 17 00:00:00 2001 From: sonofelice Date: Mon, 1 Feb 2016 23:10:22 +0800 Subject: [PATCH 022/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=ADHow=20bad=20?= =?UTF-8?q?a=20boss=20is=20Linus=20Torvalds=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译中How bad a boss is Linus Torvalds? --- sources/talk/20151117 How bad a boss is Linus Torvalds.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/talk/20151117 How bad a boss is Linus Torvalds.md b/sources/talk/20151117 How bad a boss is Linus Torvalds.md index 8b10e44584..76e9f4c244 100644 --- a/sources/talk/20151117 How bad a boss is Linus Torvalds.md +++ b/sources/talk/20151117 How bad a boss is Linus Torvalds.md @@ -1,3 +1,4 @@ +sonofelice translating How bad a boss is Linus Torvalds? ================================================================================ ![linus torvalds](http://images.techhive.com/images/article/2015/08/linus_torvalds-100600260-primary.idge.jpg) From b74befbdb37e452359c9b6e23bac7926d448765a Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 2 Feb 2016 11:45:02 +0800 Subject: [PATCH 023/582] PUB:20151201 How to use Mutt email client with encrypted passwords @wyangsun --- ...t email client with encrypted passwords.md | 135 +++++++++++++++++ ...t email client with encrypted passwords.md | 138 ------------------ 2 files changed, 135 insertions(+), 138 deletions(-) create mode 100644 published/20151201 How to use Mutt email client with encrypted passwords.md delete mode 100644 translated/tech/20151201 How to use Mutt email client with encrypted passwords.md diff --git a/published/20151201 How to use Mutt email client with encrypted passwords.md b/published/20151201 How to use Mutt email client with encrypted passwords.md new file mode 100644 index 0000000000..2c57a73d91 --- /dev/null +++ b/published/20151201 How to use Mutt email client with encrypted passwords.md @@ -0,0 +1,135 @@ +如何 Mutt 邮件客户端中使用密文密码 +================================================================================ +Mutt 是一个 Linux/UNIX 终端环境下的开源的邮件客户端。Mutt 以及 [Alpine][1] 在 Linux 命令行爱好者中有着最忠诚的追随者,这不是没有原因的。想一下你所期待邮件客户端应有的功能,Mutt 拥有:多协议支持(例如,POP3、IMAP 和 SMTP),S/MIME 和 PGP/GPG 集成,会话线索,颜色标记,可定制宏/快捷键,等等。另外,基于命令行的 Mutt 相比粗重的基于浏览器的邮件客户端(如:Gmail,Ymail)或图形用户界面的邮件客户端(如:Thunderbird,MS Outlook)而言,是一个使用电子邮件的轻量级替代品。 + +当你想使用 Mutt 通过公司的 SMTP/IMAP 服务器访问或发送邮件,或取代网页邮件服务,可能所关心的一个问题是如何保护您的邮件凭据(如:SMTP/IMAP 密码),它们存储在一个纯文本 Mutt 配置文件(~/.muttrc)中。 + +对于这些人对安全的担忧,确实有一个容易的方法来**加密 Mutt 配置文件***,以防止这种风险。在这个教程中,我描述了如何加密 Mutt 敏感配置,比如使用 GnuPG(GPG)加密 SMTP/IMAP 密码,GPG 是一个开源的 OpenPGP 实现。 + +### 第一步 (可选):创建 GPG 密钥 ### + +因为我们将要使用 GPG 加密 Mutt 配置文件,如果你没有 GPG 密钥,第一步就是创建一个(公钥/私钥对)。如果有,请忽略这步。 + +创建一个新 GPG 密钥,输入下面命令: + + $ gpg --gen-key + +选择密钥类型(RSA),密钥长度(2048 bits),和过期时间(0 代表不过期)。当出现用户 ID 提示时,输入关联到该公钥/私钥对的名字(Dan Nanni) 和邮箱地址(myemail@email.com)。最后,输入一个密码来保护你的私钥。 + +![](https://c2.staticflickr.com/6/5726/22808727824_7735f11157_c.jpg) + +生成一个 GPG 密钥需要大量的随机字节来构成熵,所以在生成密钥期间确保在你的系统上执行一些随机行为(如:敲打键盘,移动鼠标或者读写磁盘)。根据密钥长度,生成 GPG 密钥要花几分钟或更多时间。 + +![](https://c1.staticflickr.com/1/644/23328597612_6ac5a29944_c.jpg) + +### 第二步:加密 Mutt 敏感配置 ### + +下一步,在 ~/.mutt 目录创建一个新的文本文件,然后把一些你想隐藏的 Mutt 敏感配置放进去。这个例子里,我指定了 SMTP/IMAP 密码。 + + $ mkdir ~/.mutt + $ vi ~/.mutt/password + +---------- + + set smtp_pass="XXXXXXX" + set imap_pass="XXXXXXX" + +现在通过 GPG 使用你的公钥加密这个文件如下: + + $ gpg -r myemail@email.com -e ~/.mutt/password + +这将创建 ~/.mutt/password.gpg,这是一个原始文件的 GPG 加密版本。 + +然后删除 ~/.mutt/password,只保留 GPG 加密版本。 + +### 第三步:创建完整 Mutt 配置文件 ### + +现在你已经在一个单独的文件放置了加密的 Mutt 敏感配置,你可以在 ~/.muttrc 指定其余的 Mutt 配置。然后增加下面这行在 ~/.muttrc 末尾。 + + source "gpg -d ~/.mutt/password.gpg |" + +当你启动 Mutt 时,这行将解密 ~/.mutt/password.gpg ,然后将解密内容应用到你的 Mutt 配置中。 + +下面展示一个完整 Mutt 配置例子,这可以让你通过 Mutt 访问 Gmail,而没有暴露你的 SMTP/IMAP 密码。用你的 Gmail ID 替代下面的 `yourgmailaccount`,此外你也需要在[你的 Goolgle 账户设置][3]中启用“支持不太安全的应用访问”。 + + set from = "yourgmailaccount@gmail.com" + set realname = "Your Name" + set smtp_url = "smtp://yourgmailaccount@smtp.gmail.com:587/" + set imap_user = "yourgmailaccount@gmail.com" + set folder = "imaps://imap.gmail.com:993" + set spoolfile = "+INBOX" + set postponed = "+[Google Mail]/Drafts" + set trash = "+[Google Mail]/Trash" + set header_cache =~/.mutt/cache/headers + set message_cachedir =~/.mutt/cache/bodies + set certificate_file =~/.mutt/certificates + set move = no + set imap_keepalive = 900 + + # encrypted IMAP/SMTP passwords + source "gpg -d ~/.mutt/password.gpg |" + +### 第四步(可选):配置 GPG 代理 ### + +这时候,你将可以使用加密了IMAP/SMTP 密码的 Mutt。然而,每次你运行 Mutt,你都要先被提示输入一个 GPG 密码来使用你的私钥解密 IMAP/SMTP 密码。 + +![](https://c2.staticflickr.com/6/5667/23437064775_20c874940f_c.jpg) + +如果你想避免这样的 GPG 密码提示,你可以部署一个 gpg-agent。它以后台守护进程方式运行,gpg-agent 可以安全地缓存你的 GPG 密码,无需手工干预,gpg 可以自动从 gpg-agent 获得你的 GPG 密码。如果你正在使用 Linux 桌面,你可以配置使用一些等同于 gpg-agent 的特定的桌面软件,例如,GNOME 桌面的 gnome-keyring-daemon。 + +你可以在基于 Debian 系统安装 gpg-agent: + + $ sudo apt-get install gpg-agent + +gpg-agent 在基于 Red Hat 的系统上是预装好的。 + +现在增加下面这些到你的 .bashrc 文件中。 + + envfile="$HOME/.gnupg/gpg-agent.env" + if [[ -e "$envfile" ]] && kill -0 $(grep GPG_AGENT_INFO "$envfile" | cut -d: -f 2) 2>/dev/null; then + eval "$(cat "$envfile")" + else + eval "$(gpg-agent --daemon --allow-preset-passphrase --write-env-file "$envfile")" + fi + export GPG_AGENT_INFO + +重载 .bashrc,或简单的登出然后重新登录。 + + $ source ~/.bashrc + +现在确认 GPG_AGENT_INFO 环境变量已经设置妥当。 + + $ echo $GPG_AGENT_INFO + + /tmp/gpg-0SKJw8/S.gpg-agent:942:1 + +并且,当你输入 gpg-agent 命令时,你应该看到下面的信息。 + + $ gpg-agent + + gpg-agent: gpg-agent running and available + +一旦 gpg-agent 启动运行,它将会在第一次提示你输入密码时缓存你的 GPG 密码。随后你多次运行 Mutt ,都不会被提示要 GPG 密码(gpg-agent 一直开着,缓存就不会过期)。 + +![](https://c1.staticflickr.com/1/664/22809928093_3be57698ce_c.jpg) + +### 结论 ### + +在这个指导里,我提供一个使用 GnuPG 加密如 SMTP/IMAP 密码这样的 Mutt 敏感配置的方法。注意,如果你想在 Mutt 上使用 GnuPG 来加密或签名你的邮件,你可以参考[官方指南][2]关于 GPG 与 Mutt 结合的部分。 + +如果你知道任何使用 Mutt 的安全技巧,欢迎分享它。 + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/mutt-email-client-encrypted-passwords.html + +作者:[Dan Nanni][a] +译者:[wyangsun](https://github.com/wyangsun) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/nanni +[1]:http://xmodulo.com/gmail-command-line-linux-alpine.html +[2]:http://dev.mutt.org/trac/wiki/MuttGuide/UseGPG +[3]:https://www.google.com/settings/u/1/security \ No newline at end of file diff --git a/translated/tech/20151201 How to use Mutt email client with encrypted passwords.md b/translated/tech/20151201 How to use Mutt email client with encrypted passwords.md deleted file mode 100644 index 1e8a032a04..0000000000 --- a/translated/tech/20151201 How to use Mutt email client with encrypted passwords.md +++ /dev/null @@ -1,138 +0,0 @@ -如何使用加密过密码的Mutt邮件客户端 -================================================================================ -Mutt是一个开源的Linux/UNIX终端环境下的邮件客户端。连同[Alpine][1],Mutt有充分的理由在Linux命令行热衷者中有最忠诚的追随者。想一下你对邮件客户端的期待的事情,Mutt拥有:多协议支持(e.g., POP3, IMAP and SMTP),S/MIME和PGP/GPG集成,线程会话,颜色编码,可定制宏/快捷键,等等。另外,基于命令行的Mutt相比笨重的web浏览器(如:Gmail,Ymail)或可视化邮件客户端(如:Thunderbird,MS Outlook)是一个轻量访问电子邮件的选择。 - -当你想使用Mutt通过公司的SMTP/IMAP服务器访问或发送邮件,或取代网页邮件服务,可能所关心的一个问题是如何保护您的邮件凭据(如:SMTP/IMAP密码)存储在一个纯文本Mutt配置文件(~/.muttrc)。 - -对于一些人安全的担忧,确实有一个容易的方法来**加密Mutt配置文件***,防止这种风险。在这个教程中,我描述了如何加密Mutt敏感配置,比如SMTP/IMAP密码使用GnuPG(GPG),一个开源的OpenPGP实现。 - -### 第一步 (可选):创建GPG密钥 ### - -因为我们将要使用GPG加密Mutt配置文件,如果你没有,第一步就是创建一个GPG密钥(公有/私有 密钥对)。如果有,忽略这步。 - -创建一个新GPG密钥,输入下面的。 - - $ gpg --gen-key - -选择密钥类型(RSA),密钥长度(2048 bits),和过期时间(0,不过期)。当出现用户ID提示时,输入你的名字(Dan Nanni) 和邮箱地址(myemail@email.com)关联到私有/公有密钥对。最后,输入一个密码来保护你的私钥。 - -![](https://c2.staticflickr.com/6/5726/22808727824_7735f11157_c.jpg) - -生成一个GPG密钥需要大量的随机字节熵,所以在生成密钥期间确保在你的系统上执行一些随机行为(如:打键盘,移动鼠标或者读写磁盘)。根据密钥长度决定生成GPG密钥要花几分钟或更多时间。 - -![](https://c1.staticflickr.com/1/644/23328597612_6ac5a29944_c.jpg) - -### 第二部:加密Mutt敏感配置 ### - -下一步,在~/.mutt目录创建一个新的文本文件,然后把一些你想隐藏的Mutt敏感配置放进去。这个例子里,我指定了SMTP/IMAP密码。 - - $ mkdir ~/.mutt - $ vi ~/.mutt/password - ----------- - - set smtp_pass="XXXXXXX" - set imap_pass="XXXXXXX" - -现在gpg用你的公钥加密这个文件如下。 - - $ gpg -r myemail@email.com -e ~/.mutt/password - -这将创建~/.mutt/password.gpg,这个是一个GPG加密原始版本文件。 - -继续删除~/.mutt/password,只保留GPG加密版本。 - -### 第三部:创建完整Mutt配置文件 ### - -由于你已经在一个单独的文件加密了Mutt敏感配置,你可以在~/.muttrc指定其余的Mutt配置。然后增加下面这行在~/.muttrc末尾。 - - source "gpg -d ~/.mutt/password.gpg |" - -当你使用Mutt,这行将解密~/.mutt/password.gpg,然后将解密内容应用到你的Mutt配置。 - -下面展示一个完整Mutt配置例子,这允许你用Mutt访问Gmail,没有暴露你的SMTP/IMAP密码。取代你用Gmail ID登陆你的账户。 - - set from = "yourgmailaccount@gmail.com" - set realname = "Your Name" - set smtp_url = "smtp://yourgmailaccount@smtp.gmail.com:587/" - set imap_user = "yourgmailaccount@gmail.com" - set folder = "imaps://imap.gmail.com:993" - set spoolfile = "+INBOX" - set postponed = "+[Google Mail]/Drafts" - set trash = "+[Google Mail]/Trash" - set header_cache =~/.mutt/cache/headers - set message_cachedir =~/.mutt/cache/bodies - set certificate_file =~/.mutt/certificates - set move = no - set imap_keepalive = 900 - - # encrypted IMAP/SMTP passwords - source "gpg -d ~/.mutt/password.gpg |" - -### 第四部(可选):配置GPG代理 ### - -这时候,你将可以使用加密了IMAP/SMTP密码的Mutt。无论如何,每次你运行Mutt,你都要先被提示输入一个GPG密码来使用你的私钥解密IMAP/SMTP密码。 - -![](https://c2.staticflickr.com/6/5667/23437064775_20c874940f_c.jpg) - -如果你想避免这样的GPG密码提示,你可以部署gpg代理。运行一个后台程序,gpg代理安全的缓存你的GPG密码,无需手工干预gpg自动从gpg代理获得你的GPG密码。如果你正在使用Linux桌面,你可以使用桌面特定方式来配置一些东西等价于gpg代理,例如,GNOME桌面的gnome-keyring-daemon。 - -你可以在基于Debian系统安装gpg代理: - -$ sudo apt-get install gpg-agent - -gpg代理是基于Red Hat系统预装的。 - -现在增加下面这些道你的.bashrc文件。 - - envfile="$HOME/.gnupg/gpg-agent.env" - if [[ -e "$envfile" ]] && kill -0 $(grep GPG_AGENT_INFO "$envfile" | cut -d: -f 2) 2>/dev/null; then - eval "$(cat "$envfile")" - else - eval "$(gpg-agent --daemon --allow-preset-passphrase --write-env-file "$envfile")" - fi - export GPG_AGENT_INFO - -重载.bashrc,或单纯的登出然后登陆回来。 - - $ source ~/.bashrc - -现在确认GPG_AGENT_INFO环境变量已经设置妥当。 - - $ echo $GPG_AGENT_INFO - ----------- - - /tmp/gpg-0SKJw8/S.gpg-agent:942:1 - -并且,当你输入gpg-agent命令时,你应该看到下面的信息。 - - $ gpg-agent - ----------- - - gpg-agent: gpg-agent running and available - -一旦gpg-agent启动运行,它将会在第一次提示你输入密码时缓存你的GPG密码。随后你运行Mutt多次,你将不会被提示要GPG密码(gpg-agent一直开着,缓存就不会过期)。 - -![](https://c1.staticflickr.com/1/664/22809928093_3be57698ce_c.jpg) - -### 结论 ### - -在这个指导里,我提出一个方法加密Mutt敏感配置如SMTP/IMAP密码使用GnuPG。注意,如果你想在Mutt上使用GnuPG或者登陆你的邮件信息,你可以参考[官方指南][2]在使用GPG与Mutt结合。 - -如果你知道任何使用Mutt的安全技巧,随时分享他。 - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/mutt-email-client-encrypted-passwords.html - -作者:[Dan Nanni][a] -译者:[wyangsun](https://github.com/wyangsun) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/nanni -[1]:http://xmodulo.com/gmail-command-line-linux-alpine.html -[2]:http://dev.mutt.org/trac/wiki/MuttGuide/UseGPG From a67b583872904f9ee242bc363289f8a3ab5ddb83 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 2 Feb 2016 20:12:15 +0800 Subject: [PATCH 024/582] PUB:20160126 How to change from default to alternative Python version on Debian Linux @mr-ping --- ...lternative Python version on Debian Linux.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) rename {translated/tech => published}/20160126 How to change from default to alternative Python version on Debian Linux.md (85%) diff --git a/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md b/published/20160126 How to change from default to alternative Python version on Debian Linux.md similarity index 85% rename from translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md rename to published/20160126 How to change from default to alternative Python version on Debian Linux.md index 5ff89d7944..a33c0fcaaf 100644 --- a/translated/tech/20160126 How to change from default to alternative Python version on Debian Linux.md +++ b/published/20160126 How to change from default to alternative Python version on Debian Linux.md @@ -1,4 +1,4 @@ -如何将 Debian Linux 系统中默认的 Python 替代为其他版本 +如何将 Debian Linux 中的默认的 Python 版本切换为替代版本 ==================================================== 当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件。你可以按照以下方法使用 `ls` 命令来查看你的系统中都有那些 Python 的二进制文件可供使用。 @@ -15,9 +15,9 @@ $ python --version Python 2.7.8 ``` -1、基于用户修改 Python 版本: +###1、基于用户修改 Python 版本: -想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 `alias(别名)` 即可。打开 `~/.bashrc` 文件,添加新的别名信息来修改默认使用的 Python 版本。 +想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 `alias`(别名) 即可。打开该用户的 `~/.bashrc` 文件,添加新的别名信息来修改默认使用的 Python 版本。 ``` alias python='/usr/bin/python3.4' @@ -36,7 +36,7 @@ $ python --version Python 3.4.2 ``` -2、 基于系统级别修改 Python 版本 +###2、 在系统级修改 Python 版本 我们可以使用 `update-alternatives` 来为整个系统更改 Python 版本。以 root 身份登录,首先罗列出所有可用的 python 替代版本信息: @@ -45,7 +45,7 @@ Python 3.4.2 update-alternatives: error: no alternatives for python ``` -如果出现以上所示的错误信息,则表示 Python 的替代版本尚未被 `update-alternatives` 命令识别。想解决这个问题,我们需要更新一下替代表,将 `python2.7` 和 `python3.4` 放入其中。 +如果出现以上所示的错误信息,则表示 Python 的替代版本尚未被 `update-alternatives` 命令识别。想解决这个问题,我们需要更新一下替代列表,将 `python2.7` 和 `python3.4` 放入其中。 ``` # update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 @@ -61,7 +61,7 @@ update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python Python 3.4.2 ``` -接下来,我们继续列出可用的 Python 替代版本。 +接下来,我们再次列出可用的 Python 替代版本。 ``` # update-alternatives --list python @@ -82,7 +82,7 @@ Python 3.4.2 Python 2.7.8 ``` -3、附录 +###3、移除替代版本 一旦我们的系统中不再存在某个 Python 的替代版本时,我们可以将其从 `update-alternatives` 列表中删除掉。例如,我们可以将列表中的 python2.7 版本移除掉。 @@ -96,9 +96,8 @@ update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python via: http://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux -作者:[作者][] 译者:[mr-ping](https://github.com/mr-ping) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 71059bb550dbaa260f6d979972fb64186ed4d119 Mon Sep 17 00:00:00 2001 From: DongShuaike Date: Thu, 4 Feb 2016 11:38:06 +0800 Subject: [PATCH 025/582] Create 20160129 Recognizing correct code.md --- .../news/20160129 Recognizing correct code.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sources/news/20160129 Recognizing correct code.md diff --git a/sources/news/20160129 Recognizing correct code.md b/sources/news/20160129 Recognizing correct code.md new file mode 100644 index 0000000000..ad5028d622 --- /dev/null +++ b/sources/news/20160129 Recognizing correct code.md @@ -0,0 +1,51 @@ +# Recognizing correct code + +Automatic bug-repair system fixes 10 times as many errors as its predecessors. +------ +MIT researchers have developed a machine-learning system that can comb through repairs to open-source computer programs and learn their general properties, in order to produce new repairs for a different set of programs. + +The researchers tested their system on a set of programming errors, culled from real open-source applications, that had been compiled to evaluate automatic bug-repair systems. Where those earlier systems were able to repair one or two of the bugs, the MIT system repaired between 15 and 18, depending on whether it settled on the first solution it found or was allowed to run longer. + +While an automatic bug-repair tool would be useful in its own right, professor of electrical engineering and computer science Martin Rinard, whose group developed the new system, believes that the work could have broader ramifications. + +“One of the most intriguing aspects of this research is that we’ve found that there are indeed universal properties of correct code that you can learn from one set of applications and apply to another set of applications,” Rinard says. “If you can recognize correct code, that has enormous implications across all software engineering. This is just the first application of what we hope will be a brand-new, fabulous technique.” + +Fan Long, a graduate student in electrical engineering and computer science at MIT, presented a paper describing the new system at the Symposium on Principles of Programming Languages last week. He and Rinard, his advisor, are co-authors. + +Users of open-source programs catalogue bugs they encounter on project websites, and contributors to the projects post code corrections, or “patches,” to the same sites. So Long was able to write a computer script that automatically extracted both the uncorrected code and patches for 777 errors in eight common open-source applications stored in the online repository GitHub. + +**Feature performance** + +As with [all][1] machine-learning systems, the crucial aspect of Long and Rinard’s design was the selection of a “[feature set][2]” that the system would analyze. The researchers concentrated on values stored in memory — either variables, which can be modified during a program’s execution, or constants, which can’t. They identified 30 prime characteristics of a given value: It might be involved in an operation, such as addition or multiplication, or a comparison, such as greater than or equal to; it might be local, meaning it occurs only within a single block of code, or global, meaning that it’s accessible to the program as a whole; it might be the variable that represents the final result of a calculation; and so on. + +Long and Rinard wrote a computer program that evaluated all the possible relationships between these characteristics in successive lines of code. More than 3,500 such relationships constitute their feature set. Their machine-learning algorithm then tried to determine what combination of features most consistently predicted the success of a patch. + +“All the features we’re trying to look at are relationships between the patch you insert and the code you are trying to patch,” Long says. “Typically, there will be good connections in the correct patches, corresponding to useful or productive program logic. And there will be bad patterns that mean disconnections in program logic or redundant program logic that are less likely to be successful.” + +**Ranking candidates** + +In earlier work, Long had developed an algorithm that attempts to repair program bugs by systematically modifying program code. The modified code is then subjected to a suite of tests designed to elicit the buggy behavior. This approach may find a modification that passes the tests, but it could take a prohibitively long time. Moreover, the modified code may still contain errors that the tests don’t trigger. + +Long and Rinard’s machine-learning system works in conjunction with this earlier algorithm, ranking proposed modifications according to the probability that they are correct before subjecting them to time-consuming tests. + +The researchers tested their system, which they call Prophet, on a set of 69 program errors that had cropped up in eight popular open-source programs. Of those, 19 are amenable to the type of modifications that Long’s algorithm uses; the other 50 have more complicated problems that involve logical inconsistencies across larger swaths of code. + +When Long and Rinard configured their system to settle for the first solution that passed the bug-eliciting tests, it was able to correctly repair 15 of the 19 errors; when they allowed it to run for 12 hours per problem, it repaired 18. + +Of course, that still leaves the other 50 errors in the test set untouched. In ongoing work, Long is working on a machine-learning system that will look at more coarse-grained manipulation of program values across larger stretches of code, in the hope of producing a bug-repair system that can handle more complex errors. + +“A revolutionary aspect of Prophet is how it leverages past successful patches to learn new ones,” says Eran Yahav, an associate professor of computer science at the Technion in Israel. “It relies on the insight that despite differences between software projects, fixes — patches — applied to projects often have commonalities that can be learned from. Using machine learning to learn from ‘big code’ holds the promise to revolutionize many programming tasks — code completion, reverse-engineering, et cetera.” + +-------------------------------------------------------------------------------- + +via: http://news.mit.edu/2016/faster-automatic-bug-repair-code-errors-0129 + +作者:Larry Hardesty +译者:[译者ID](https://github.com/翻译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]:http://news.mit.edu/2013/teaching-computers-to-see-by-learning-to-see-like-computers-0919 +[2]:http://news.mit.edu/2015/automating-big-data-analysis-1016 + From 1c79e513dbf63cc0f61099af12f5ba2fcd978c07 Mon Sep 17 00:00:00 2001 From: ZhangXiangping Date: Fri, 5 Feb 2016 10:41:46 +0800 Subject: [PATCH 026/582] Update 20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chisper 翻译中 --- ...w to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md b/sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md index 3b6277da80..7fd80c5ce6 100644 --- a/sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md +++ b/sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md @@ -1,3 +1,4 @@ +chisper 翻译中 How to Install Revive Adserver on Ubuntu 15.04 / CentOS 7 ================================================================================ Revive AdserverHow to Install Revive Adserver on Ubuntu 15.04 / CentOS 7 is a free and open source advertisement management system that enables publishers, ad networks and advertisers to serve ads on websites, apps, videos and manage campaigns for multiple advertiser with many features. Revive Adserver is licensed under GNU Public License which is also known as OpenX Source. It features an integrated banner management interface, URL targeting, geo-targeting and tracking system for gathering statistics. This application enables website owners to manage banners from both in-house advertisement campaigns as well as from paid or third-party sources, such as Google's AdSense. Here, in this tutorial, we'll gonna install Revive Adserver in our machine running Ubuntu 15.04 or CentOS 7. @@ -239,4 +240,4 @@ via: http://linoxide.com/linux-how-to/install-revive-adserver-ubuntu-15-04-cento [a]:http://linoxide.com/author/arunp/ [1]:http://www.revive-adserver.com/download/ -[2]:http://www.adserverplugins.com/ \ No newline at end of file +[2]:http://www.adserverplugins.com/ From b9fe009cf445c8f11f6ae1e8db8886cdf0b6ced6 Mon Sep 17 00:00:00 2001 From: ZhangXiangping Date: Fri, 5 Feb 2016 15:20:49 +0800 Subject: [PATCH 027/582] Delete 20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除原稿 --- ...ve Adserver on Ubuntu 15.04 or CentOS 7.md | 243 ------------------ 1 file changed, 243 deletions(-) delete mode 100644 sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md diff --git a/sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md b/sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md deleted file mode 100644 index 7fd80c5ce6..0000000000 --- a/sources/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md +++ /dev/null @@ -1,243 +0,0 @@ -chisper 翻译中 -How to Install Revive Adserver on Ubuntu 15.04 / CentOS 7 -================================================================================ -Revive AdserverHow to Install Revive Adserver on Ubuntu 15.04 / CentOS 7 is a free and open source advertisement management system that enables publishers, ad networks and advertisers to serve ads on websites, apps, videos and manage campaigns for multiple advertiser with many features. Revive Adserver is licensed under GNU Public License which is also known as OpenX Source. It features an integrated banner management interface, URL targeting, geo-targeting and tracking system for gathering statistics. This application enables website owners to manage banners from both in-house advertisement campaigns as well as from paid or third-party sources, such as Google's AdSense. Here, in this tutorial, we'll gonna install Revive Adserver in our machine running Ubuntu 15.04 or CentOS 7. - -### 1. Installing LAMP Stack ### - -First of all, as Revive Adserver requires a complete LAMP Stack to work, we'll gonna install it. LAMP Stack is the combination of Apache Web Server, MySQL/MariaDB Database Server and PHP modules. To run Revive properly, we'll need to install some PHP modules like apc, zlib, xml, pcre, mysql and mbstring. To setup LAMP Stack, we'll need to run the following command with respect to the distribution of linux we are currently running. - -#### On Ubuntu 15.04 #### - - # apt-get install apache2 mariadb-server php5 php5-gd php5-mysql php5-curl php-apc zlibc zlib1g zlib1g-dev libpcre3 libpcre3-dev libapache2-mod-php5 zip - -#### On CentOS 7 #### - - # yum install httpd mariadb php php-gd php-mysql php-curl php-mbstring php-xml php-apc zlibc zlib1g zlib1g-dev libpcre3 libpcre3-dev zip - -### 2. Starting Apache and MariaDB server ### - -We’ll now start our newly installed Apache web server and MariaDB database server in our linux machine. To do so, we'll need to execute the following commands. - -#### On Ubuntu 15.04 #### - -Ubuntu 15.04 is shipped with Systemd as its default init system, so we'll need to execute the following commands to start apache and mariadb daemons. - - # systemctl start apache2 mysql - -After its started, we'll now make it able to start automatically in every system boot by running the following command. - - # systemctl enable apache2 mysql - - Synchronizing state for apache2.service with sysvinit using update-rc.d... - Executing /usr/sbin/update-rc.d apache2 defaults - Executing /usr/sbin/update-rc.d apache2 enable - Synchronizing state for mysql.service with sysvinit using update-rc.d... - Executing /usr/sbin/update-rc.d mysql defaults - Executing /usr/sbin/update-rc.d mysql enable - -#### On CentOS 7 #### - -Also in CentOS 7, systemd is the default init system so, we'll run the following command to start them. - - # systemctl start httpd mariadb - -Next, we'll enable them to start automatically in every startup of init system using the following command. - - # systemctl enable httpd mariadb - - ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service' - ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service' - -### 3. Configuring MariaDB ### - -#### On CentOS 7/Ubuntu 15.04 #### - -Now, as we are starting MariaDB for the first time and no password has been assigned for MariaDB so, we’ll first need to configure a root password for it. Then, we’ll gonna create a new database so that it can store data for our Revive Adserver installation. - -To configure MariaDB and assign a root password, we’ll need to run the following command. - - # mysql_secure_installation - -This will ask us to enter the password for root but as we haven’t set any password before and its our first time we’ve installed mariadb, we’ll simply press enter and go further. Then, we’ll be asked to set root password, here we’ll hit Y and enter our password for root of MariaDB. Then, we’ll simply hit enter to set the default values for the further configurations. - - …. - so you should just press enter here. - - Enter current password for root (enter for none): - OK, successfully used password, moving on… - - Setting the root password ensures that nobody can log into the MariaDB - root user without the proper authorisation. - - Set root password? [Y/n] y - New password: - Re-enter new password: - Password updated successfully! - Reloading privilege tables.. - … Success! - … - installation should now be secure. - Thanks for using MariaDB! - -![Configuring MariaDB](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-mariadb.png) - -### 4. Creating new Database ### - -After we have assigned the password to our root user of mariadb server, we'll now create a new database for Revive Adserver application so that it can store its data into the database server. To do so, first we'll need to login to our MariaDB console by running the following command. - - # mysql -u root -p - -Then, it will ask us to enter the password of root user which we had just set in the above step. Then, we'll be welcomed into the MariaDB console in which we'll create our new database, database user and assign its password and grant all privileges to create, remove and edit the tables and data stored in it. - - > CREATE DATABASE revivedb; - > CREATE USER 'reviveuser'@'localhost' IDENTIFIED BY 'Pa$$worD123'; - > GRANT ALL PRIVILEGES ON revivedb.* TO 'reviveuser'@'localhost'; - > FLUSH PRIVILEGES; - > EXIT; - -![Creating Mariadb Revive Database](http://blog.linoxide.com/wp-content/uploads/2015/11/creating-mariadb-revive-database.png) - -### 5. Downloading Revive Adserver Package ### - -Next, we'll download the latest release of Revive Adserver ie version 3.2.2 in the time of writing this article. So, we'll first get the download link from the official Download Page of Revive Adserver ie [http://www.revive-adserver.com/download/][1] then we'll download the compressed zip file using wget command under /tmp/ directory as shown bellow. - - # cd /tmp/ - # wget http://download.revive-adserver.com/revive-adserver-3.2.2.zip - - --2015-11-09 17:03:48-- http://download.revive-adserver.com/revive-adserver-3.2.2.zip - Resolving download.revive-adserver.com (download.revive-adserver.com)... 54.230.119.219, 54.239.132.177, 54.230.116.214, ... - Connecting to download.revive-adserver.com (download.revive-adserver.com)|54.230.119.219|:80... connected. - HTTP request sent, awaiting response... 200 OK - Length: 11663620 (11M) [application/zip] - Saving to: 'revive-adserver-3.2.2.zip' - revive-adserver-3.2 100%[=====================>] 11.12M 1.80MB/s in 13s - 2015-11-09 17:04:02 (906 KB/s) - 'revive-adserver-3.2.2.zip' saved [11663620/11663620] - -After the file is downloaded, we'll simply extract its files and directories using unzip command. - - # unzip revive-adserver-3.2.2.zip - -Then, we'll gonna move the entire Revive directories including every files from /tmp to the default webroot of Apache Web Server ie /var/www/html/ directory. - - # mv revive-adserver-3.2.2 /var/www/html/reviveads - -### 6. Configuring Apache Web Server ### - -We'll now configure our Apache Server so that revive will run with proper configuration. To do so, we'll create a new virtualhost by creating a new configuration file named reviveads.conf . The directory here may differ from one distribution to another, here is how we create in the following distributions of linux. - -#### On Ubuntu 15.04 #### - - # touch /etc/apache2/sites-available/reviveads.conf - # ln -s /etc/apache2/sites-available/reviveads.conf /etc/apache2/sites-enabled/reviveads.conf - # nano /etc/apache2/sites-available/reviveads.conf - -Now, we'll gonna add the following lines of configuration into this file using our favorite text editor. - - - ServerAdmin info@reviveads.linoxide.com - DocumentRoot /var/www/html/reviveads/ - ServerName reviveads.linoxide.com - ServerAlias www.reviveads.linoxide.com - - Options FollowSymLinks - AllowOverride All - - ErrorLog /var/log/apache2/reviveads.linoxide.com-error_log - CustomLog /var/log/apache2/reviveads.linoxide.com-access_log common - - -![Configuring Apache2 Ubuntu](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-apache2-ubuntu.png) - -After done, we'll gonna save the file and exit our text editor. Then, we'll restart our Apache Web server. - - # systemctl restart apache2 - -#### On CentOS 7 #### - -In CentOS, we'll directly create the file reviveads.conf under /etc/httpd/conf.d/ directory using our favorite text editor. - - # nano /etc/httpd/conf.d/reviveads.conf - -Then, we'll gonna add the following lines of configuration into the file. - - - ServerAdmin info@reviveads.linoxide.com - DocumentRoot /var/www/html/reviveads/ - ServerName reviveads.linoxide.com - ServerAlias www.reviveads.linoxide.com - - Options FollowSymLinks - AllowOverride All - - ErrorLog /var/log/httpd/reviveads.linoxide.com-error_log - CustomLog /var/log/httpd/reviveads.linoxide.com-access_log common - - -![Configuring httpd Centos](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-httpd-centos.png) - -Once done, we'll simply save the file and exit the editor. And then, we'll gonna restart our apache web server. - - # systemctl restart httpd - -### 7. Fixing Permissions and Ownership ### - -Now, we'll gonna fix some file permissions and ownership of the installation path. First, we'll gonna set the ownership of the installation directory to Apache process owner so that apache web server will have full access of the files and directories to edit, create and delete. - -#### On Ubuntu 15.04 #### - - # chown www-data: -R /var/www/html/reviveads - -#### On CentOS 7 #### - - # chown apache: -R /var/www/html/reviveads - -### 8. Allowing Firewall ### - -Now, we'll gonna configure our firewall programs to allow port 80 (http) so that our apache web server running Revive Adserver will be accessible from other machines in the network across the default http port ie 80. - -#### On Ubuntu 15.04/CentOS 7 #### - -As CentOS 7 and Ubuntu 15.04 both has systemd installed by default, it contains firewalld running as firewall program. In order to open the port 80 (http service) on firewalld, we'll need to execute the following commands. - - # firewall-cmd --permanent --add-service=http - - success - - # firewall-cmd --reload - - success - -### 9. Web Installation ### - -Finally, after everything is done as expected, we'll now be able to access the web interface of the application using a web browser. We can go further towards the web installation, by pointing the web browser to the web server we are running in our linux machine. To do so, we'll need to point our web browser to http://ip-address/ or http://domain.com assigned to our linux machine. Here, in this tutorial, we'll point our browser to http://reviveads.linoxide.com/ . - -Here, we'll see the Welcome page of the installation of Revive Adserver with the GNU General Public License V2 as Revive Adserver is released under this license. Then, we'll simply click on I agree button in order to continue the installation. - -In the next page, we'll need to enter the required database information in order to connect Revive Adserver with the MariaDB database server. Here, we'll need to enter the database name, user and password that we had set in the above step. In this tutorial, we entered database name, user and password as revivedb, reviveuser and Pa$$worD123 respectively then, we set the hostname as localhost and continue further. - -![Configuring Revive Adserver](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-revive-adserver.png) - -We'll now enter the required information like administration username, password and email address so that we can use these information to login to the dashboard of our Adserver. After done, we'll head towards the Finish page in which we'll see that we have successfully installed Revive Adserver in our server. - -Next, we'll be redirected to the Adverstiser page where we'll add new Advertisers and manage them. Then, we'll be able to navigate to our Dashboard, add new users to the adserver, add new campaign for our advertisers, banners, websites, video ads and everything that its built with. - -For enabling more configurations and access towards the administrative settings, we can switch our Dashboard user to the Administrator account. This will add new administrative menus in the dashboard like Plugins, Configuration through which we can add and manage plugins and configure many features and elements of Revive Adserver. - -### Conclusion ### - -In this article, we learned some information on what is Revive Adserver and how we can setup on linux machine running Ubuntu 15.04 and CentOS 7 distributions. Though Revive Adserver's initial source code was bought from OpenX, currently the code base for OpenX Enterprise and Revive Adserver are completely separate. To extend more features, we can install more plugins which we can also find from [http://www.adserverplugins.com/][2] . Really, this piece of software has changed the way of managing the ads for websites, apps, videos and made it very easy and efficient. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/install-revive-adserver-ubuntu-15-04-centos-7/ - -作者:[Arun Pyasi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/arunp/ -[1]:http://www.revive-adserver.com/download/ -[2]:http://www.adserverplugins.com/ From fbb48eaac4b5c36e59b127a32f8887c61fe41047 Mon Sep 17 00:00:00 2001 From: ZhangXiangping Date: Fri, 5 Feb 2016 15:54:05 +0800 Subject: [PATCH 028/582] Create 20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译完成。 --- ...ve Adserver on Ubuntu 15.04 or CentOS 7.md | 237 ++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 translated/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md diff --git a/translated/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md b/translated/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md new file mode 100644 index 0000000000..25bea6cf72 --- /dev/null +++ b/translated/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md @@ -0,0 +1,237 @@ +在Ubuntu 15.04 / CentOS 7上安装Revive Adserver +================================================================================ +Revive Adserver是一个免费且开源的广告管理系统,能使出版商,广告平台和广告商把广告投放在网页,应用,视频上并且管理的系统。Revive Adserver又名OpenX,遵循GNU通用公共授权协议。它集广告管理、网站定位、地理定位和跟踪系统于一体 +,用于数据收集。能使网站站长管理内部,付费以及第三方来源的广告,如谷歌的AdSense。本教程中,将会教会你在Ubuntu 15.04或CentOS 7安装并运行Revive Adserver。 +### 1. 安装LAMP### + +首先,Revive Adserver需要完整的LAMP环境才能运行,所以我们先安装LAMP。LAMP是Apache网页服务器,MySQL/MariaDB数据库和PHP模块的集合。要使Revive正常运行,需要安装PHP的众多模块,如apc,zlib,xml,pcre,mysql和mbstring。在不同的Linux发行版中,我们可以用下列命令进行LAMP的配置: + +#### 在Ubuntu 15.04下#### + + # apt-get install apache2 mariadb-server php5 php5-gd php5-mysql php5-curl php-apc zlibc zlib1g zlib1g-dev libpcre3 libpcre3-dev libapache2-mod-php5 zip + +#### 在CentOS 7下 #### + + # yum install httpd mariadb php php-gd php-mysql php-curl php-mbstring php-xml php-apc zlibc zlib1g zlib1g-dev libpcre3 libpcre3-dev zip + +### 2. 启动Apache Web和MariaDB服务 + +可以用下列命令启动刚刚安装好的Apache Web服务和MariaDB数据库服务。 + +#### 在Ubuntu 15.04下#### + +Ubuntu15.04使用Systemd作为默认初始系统,所以用下列命令启动Apache和MariaDB进程: + + # systemctl start apache2 mysql + +可以用下列命令使其开机自动运行: + + # systemctl enable apache2 mysql + + Synchronizing state for apache2.service with sysvinit using update-rc.d... + Executing /usr/sbin/update-rc.d apache2 defaults + Executing /usr/sbin/update-rc.d apache2 enable + Synchronizing state for mysql.service with sysvinit using update-rc.d... + Executing /usr/sbin/update-rc.d mysql defaults + Executing /usr/sbin/update-rc.d mysql enable + +#### 在CentOS 7下 + +CentOS 7同样是以Systemd作为默认初始系统,可以用下列命令启动: + + # systemctl start httpd mariadb + + ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service' + ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service' + +### 3. 配置MariaDB + +#### 在CentOS 7/Ubuntu 15.04下 #### + +当我们第一次启动MariaDB时,MariaDB是没有分配密码的,所以要先设置一个root密码。之后再创建一个新的数据库用来储存Revive Adserver的数据。 + +使用以下命令配置MariaDB并设置其root密码: + + # mysql_secure_installation + +这时会要我们输入root密码,但我们之前什么密码都没设置,所以按回车下一步。之后,要求设置root密码,这时我们输入Y,然后输入自己想要的密码。回车继续下一步。 + + …. + so you should just press enter here. + + Enter current password for root (enter for none): + OK, successfully used password, moving on… + + Setting the root password ensures that nobody can log into the MariaDB + root user without the proper authorisation. + + Set root password? [Y/n] y + New password: + Re-enter new password: + Password updated successfully! + Reloading privilege tables.. + … Success! + … + installation should now be secure. + Thanks for using MariaDB! + +![Configuring MariaDB](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-mariadb.png) + +### 4. 创建新的数据库 ### +为MariaDB的root用户设置了密码之后,就可以创建用来储存Revive Adserver应用数据的数据库。首先通过以下命令登陆MariaDB控制台: + + # mysql -u root -p + +这时要求输入root用户的密码,我们只要输入上一步设置好的密码。然后进入MariaDB控制台创建新的数据库,数据库用户及其密码,并且授予其创建、删除、编辑和存储表与数据的全部权限。 + + > CREATE DATABASE revivedb; + > CREATE USER 'reviveuser'@'localhost' IDENTIFIED BY 'Pa$$worD123'; + > GRANT ALL PRIVILEGES ON revivedb.* TO 'reviveuser'@'localhost'; + > FLUSH PRIVILEGES; + > EXIT; + +![Creating Mariadb Revive Database](http://blog.linoxide.com/wp-content/uploads/2015/11/creating-mariadb-revive-database.png) + +### 5. 下载Revive Adserver + +接下来下载Revive Adserver的最新版本Revive Adserver.3.2.2(写本文时)。可以使用wget命令从Revive Adserverde 官方网站下载压缩包,网址是:[http://www.revive-adserver.com/download/][1] 。命令如下: + + # cd /tmp/ + # wget http://download.revive-adserver.com/revive-adserver-3.2.2.zip + + --2015-11-09 17:03:48-- http://download.revive-adserver.com/revive-adserver-3.2.2.zip + Resolving download.revive-adserver.com (download.revive-adserver.com)... 54.230.119.219, 54.239.132.177, 54.230.116.214, ... + Connecting to download.revive-adserver.com (download.revive-adserver.com)|54.230.119.219|:80... connected. + HTTP request sent, awaiting response... 200 OK + Length: 11663620 (11M) [application/zip] + Saving to: 'revive-adserver-3.2.2.zip' + revive-adserver-3.2 100%[=====================>] 11.12M 1.80MB/s in 13s + 2015-11-09 17:04:02 (906 KB/s) - 'revive-adserver-3.2.2.zip' saved [11663620/11663620] + +解压到临时目录下: + + # unzip revive-adserver-3.2.2.zip + +把解压后的整个文件夹移动到Apache Web服务器的默认根目录/var/www/html/下: + + # mv revive-adserver-3.2.2 /var/www/html/reviveads + +### 6. 配置Apache Web服务 + +现在配置Apache服务使Revive正常运行。通过创建配置文件reviveads.conf来创建一个新的虚拟主机。这个目录在不同的Linux发行版上有所不同。 + +#### 在Ubuntu 15.04下 + + # touch /etc/apache2/sites-available/reviveads.conf + # ln -s /etc/apache2/sites-available/reviveads.conf /etc/apache2/sites-enabled/reviveads.conf + # nano /etc/apache2/sites-available/reviveads.conf + +在这个文件中添加下列几行文本: + + + ServerAdmin info@reviveads.linoxide.com + DocumentRoot /var/www/html/reviveads/ + ServerName reviveads.linoxide.com + ServerAlias www.reviveads.linoxide.com + + Options FollowSymLinks + AllowOverride All + + ErrorLog /var/log/apache2/reviveads.linoxide.com-error_log + CustomLog /var/log/apache2/reviveads.linoxide.com-access_log common + + +![Configuring Apache2 Ubuntu](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-apache2-ubuntu.png) +保存并退出,重启Apache Web服务: + + # systemctl restart apache2 + +#### 在CentOS 7下 #### + +在CentOS下,我们直接在/etc/httpd/conf.d/ 目录下创建reviveads.conf : + + # nano /etc/httpd/conf.d/reviveads.conf + +在这个文件中添加下列几行文本: + + + ServerAdmin info@reviveads.linoxide.com + DocumentRoot /var/www/html/reviveads/ + ServerName reviveads.linoxide.com + ServerAlias www.reviveads.linoxide.com + + Options FollowSymLinks + AllowOverride All + + ErrorLog /var/log/httpd/reviveads.linoxide.com-error_log + CustomLog /var/log/httpd/reviveads.linoxide.com-access_log common + + +![Configuring httpd Centos](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-httpd-centos.png) + +保存并退出,重启Apache Web服务: + + # systemctl restart httpd + +### 7. 修复权限和所有权 + +现在我们修改安装路径下文件的权限和所有权。把安装目录的所有权改成Apache进程所有以便Apache Web服务有文件和目录的编辑,创建和删除的完全权限。 + +#### 在Ubuntu 15.04下#### + + # chown www-data: -R /var/www/html/reviveads + +#### 在CentOS 7下 + + # chown apache: -R /var/www/html/reviveads + +### 8. 设置防火墙 + + 现在要配置防火墙,打开80端口使Apache Web服务运行的Revive Adserver能够被网络上的其他机器所访问。 + +#### 在Ubuntu 15.04/CentOS 7下 + +Ubuntu15.04/CentOS 7都使用Systemd作为默认初始系统,使用firewalld作为其防火墙。要打开80端口(http服务端口),执行以下命令: + + # firewall-cmd --permanent --add-service=http + + success + + # firewall-cmd --reload + + success + +### 9. 网站的安装 + +顺利的话我们能够使用浏览器进行交互,并可以将浏览器指向正在运行的网络服务器。只要在浏览器输入http://ip-address/ 或者 http://domain.com 。这里我们要访问 http://reviveads.linoxide.com/ + +打开后可以看到Revive Adserver的欢迎页面,上面还有作为它发行许可证的GNU通用公共许可证V2。点击 I agree 继续下一步安装。 + +在下一页中,我们要输入数据库信息以便把Revive Adserver和MariaDB数据库服务连接起来。要输入之前设置的数据库名称,用户名以及密码。在本教程中,我们分别输入数据库名称为revivedb,用户名为reviveuser,密码为Pa$$worD123,并且令主机名为localhost,点击continue继续。 + +![Configuring Revive Adserver](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-revive-adserver.png) + +输入要填的信息,如:管理员用户名,密码和邮箱。可以以这些信息登录Adserver的控制界面。然后跳到最后一页,可以看到Revive Adserver已经安装成功了。 + +接着,转到Adverstiser页面,添加新的广告管理。在控制界面添加新用户到adserver,为广告库户添加标题,网页,视频 +广告。 + + +### 总结 ### +本文中,我们学习了如何在Ubuntu 15.04和CentOS 7上安装并配置Revive Adserver。尽管Revive Adserver的原始代码是从OpenX那买的,但现在它们已经完全分开了。可以从[http://www.adserverplugins.com/][2] 获得更多插件来扩展新特性。讲真,这个软件确实让网页,应用,视频上的广告管理变得容易了许多。 + + + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/install-revive-adserver-ubuntu-15-04-centos-7/ + +作者:[Arun Pyasi][a] +译者:[chisper](https://github.com/chisper) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/arunp/ +[1]:http://www.revive-adserver.com/download/ +[2]:http://www.adserverplugins.com/ From fb355018990cd275d8a0e370ebe591da75f8f336 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 5 Feb 2016 21:52:18 +0800 Subject: [PATCH 029/582] PUB:20151206 Supporting secure DNS in glibc @zpl1025 --- ...20151206 Supporting secure DNS in glibc.md | 51 +++++++++++++++++++ ...20151206 Supporting secure DNS in glibc.md | 46 ----------------- 2 files changed, 51 insertions(+), 46 deletions(-) create mode 100644 published/20151206 Supporting secure DNS in glibc.md delete mode 100644 translated/tech/20151206 Supporting secure DNS in glibc.md diff --git a/published/20151206 Supporting secure DNS in glibc.md b/published/20151206 Supporting secure DNS in glibc.md new file mode 100644 index 0000000000..25e1004b09 --- /dev/null +++ b/published/20151206 Supporting secure DNS in glibc.md @@ -0,0 +1,51 @@ +通过修改 glibc 支持 DNS 加密 +======================== + +域名解析系统(DNS)是互联网安全的许多薄弱环节之一;可以将应用程序所访问的主机对应的 IP 地址误导到其它地方。也就是说,会连接到错误的位置,从而引发中间人(man-in-the-middle )攻击等等。而 [DNSSEC][1] 扩展协议则通过为 DNS 信息建立一条加密的可信通道来解决这个漏洞。在正确地配置好 DNSSEC 后,应用程序将可以得到可靠的主机查询信息。通过关于[尝试将 DNSSEC 更好地集成到 GNU C 库里][2]的讨论,我们知道,确保 DNS 查询信息安全这件事并不是那么简单。 + +从某种意义上来说,这个问题多年以前就解决了,我们可以配置一个本地域名服务实现完整的 DNSSEC 校验(verification)并允许应用程序通过 glibc 函数来使用该服务。DNSSEC 甚至还可以用于提高其他领域的安全性,比如,它可以携带 SSH 或 TLS 密钥指纹,让应用程序可以确认其在与正确的服务器对话。不过,当我们希望确认这条自称带有 DNSSEC 校验的 DNS 结果是不是真的已通过认证的时候 - 也就是说,当我们想依赖 DNSSEC 所承诺的安全的时候,事情变得有点复杂。 + +### /etc/resolv.conf 问题 + +从 glibc 的角度来看,这个问题一部分是因为 glibc 本身并没有做 DNSSEC 校验,而是引用 /etc/resolv.conf 文件,从该文件里读出的服务器来做解析以及校验,再将结果返回给应用程序。如果应用程序使用底层 res_query() 接口,那结果中将会包含“已认证数据(authenticated data)”(AD)标识(如果域名服务器设定了的话)以表示 DNSSEC 校验已经成功。但是 glibc 却完全不知道提供这些结果的域名服务器的信用,所以它其实并不能告诉应用程序结果是否真的可靠。 + +由 glibc 的维护者 Carlos O'Donell 提出的建议是在 resolv.conf 文件里增加一个选项(dns-strip-dnssec-ad-bit)告诉 glibc 无条件移除 AD 标识。这个选项可以由各发行版设定,表示 DNSSEC 级别的 DNS 查询结果并不可靠。而一旦建立好合适的环境可以获得可靠的查询结果后,再移除这个选项。这样一来,虽然问题还没有完全解决,至少应用程序有依据来评价从 glibc 获取的 DNS 查询结果的可靠性。 + +一个可靠的环境配置应该是什么样?标准情况应该和这个差不太多:有一个本地域名服务器,通过环路(loopback)接口访问,作为访问 /etc/resolv.conf 文件的唯一条目。这个域名服务器应该配置来做校验,而在校验失败后就只是简单地不返回任何结果。绝大多数情况下,应用程序就不再需要关心 AD 标识,如果结果不可靠,应用程序就根本看不到。一些发行版已经倾向于这种模型,不过情况仍然不像一些人所设想的那么简单。 + +其中一个问题是,这种方式将 /etc/resolv.conf 文件放到整个系统可信任度的中心。但是,在一个典型的 Linux 系统里,有无数的 DHCP 客户端、网络脚本以及其他更多的程序可以修改这个文件。就像 Paul Wouters 所[指出][3]的,在短时间内锁定这个文件是不可能的。有时候这种修改是必须的:在一个无盘系统启动的时候,在自身的域名服务器启动之前也是需要域名服务的;一个系统的整个 DNS 环境也会根据所连接的网络不同而有所改变;运行在容器里的系统也最好是配置成使用宿主机的域名服务器;等等。 + +所以,现在一般认为,现有系统里的 /etc/resolv.conf 文件并不可信。于是有人提出增加另一个配置文件(/etc/secure-resolv.conf 或其他什么),但这并没有从根本上解决问题。除此之外,有些参与者觉得就算有一个运行在环路接口上的域名服务器也不是真正可靠,比如 Zack Weinberg 甚至[建议][4]系统管理员可以有意禁用 DNSSEC 确认(validation)。 + +既然当前系统里的配置不足以信任,那可以这样推断,在情况有改善能够取得可信的结果后,glibc 需要有一种方式来通知应用程序。可以是上面讨论的屏蔽 AD 标识的方式(或者与之相反,增加一个显示的“此域名服务器可以信任”选项);当然,这都需要一定程度上锁定系统以免 /etc/resolv.conf 受到任何不可预计的修改。按 Petr Spacek 的[建议][5],还有一种引申方式,就是提供一种途径允许应用程序查询 glibc 当前通讯的是不是本地域名服务器。 + +### 在 glibc 里来处理? + +另一种方式是不管域名服务器,而是让 glibc 本身来做 DNSSEC 确认。不过,把这么大一坨加密相关代码放进 glibc 也是有很大阻力。这样将增加库本身的大小,从而感觉会增加使用它的应用程序的受攻击可能性。这个方向再引申一下,由 Zack 提出的[建议][6],可以把确认相关代码放到域名服务缓冲守护进程(nscd)里。因为 nscd 也是 glibc 的一部分,由 glibc 开发人员维护,因此在一定程度上可以相信能正确执行 DNSSEC 确认。而且 nscd 的通讯 socket 所在位置也是公开的,所以可以不考虑 /etc/resolv.conf 问题。不过,Carlos [担心][7]这种方式不能让那些不想使用 nscd 缓存功能的用户所接受;在他看来,基本可以排除 nscd 的方式。 + +所以,至少近期内,glibc 不太可能全部执行 DNSSEC 确认了的整个查询过程。这意味着,如果一个有安全考虑的应用要使用 glibc 库来查询域名,该库将需要提供一个标识来评价从独立域名服务器返回的结果有多大程度的可靠性。这几乎肯定需要发行版或系统管理员做出一些明确的改动。就像 Simo Sorce [说的][8]那样: + +> 如果 glibc 不使用明确的配置选项来通知应用程序它所用的域名解析是可信的,不会有什么用……不改一下还有很大弊端,因为应用程序开发者将马上认识到他们不能信任从 glibc 获取的任何信息,从而在处理 DNSSEC 相关信息时就简单地不用它。 + +要配置一个系统能正常使用 DNSSEC 需要改动该系统的很多组件 - 这是一个发行版范围的问题,需要时间来完全解决。在这个转变过程中 glibc 所扮演的角色很可能会比较小,但是很重要的一部分:如果应用程序不实现一套自己的域名解析代码,glibc 很可能是保证 DNS 结果可信的唯一方式。在一个系统中运行多个 DNSSEC 实现方式看起来不像是一种安全的方式,所以最好还是把事情做对了。 + +glibc 项目目前并没有确定用哪种方式来做这个事情,虽然从 /etc/resolv.conf 文件里的某些标记看上去快好了。这种改动应该需要发布新版本;考虑到 glibc 开发的保守天性,很可能来不及加入预计二月份发布的 2.23 版本了。所以 glibc 中暂时还不会有更高安全性的 DNSSEC ,不过在这个方向上也有一些进展了。 + +--------------------------- + +via: https://lwn.net/Articles/664776/ + +作者:Jonathan Corbet +译者:[zpl1025](https://github.com/zpl1025) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]: https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions +[2]: http://lwn.net/Articles/664790/ +[3]: http://lwn.net/Articles/664794/ +[4]: http://lwn.net/Articles/664782/ +[5]: http://lwn.net/Articles/664784/ +[6]: http://lwn.net/Articles/664796/ +[7]: http://lwn.net/Articles/664786/ +[8]: http://lwn.net/Articles/664787/ \ No newline at end of file diff --git a/translated/tech/20151206 Supporting secure DNS in glibc.md b/translated/tech/20151206 Supporting secure DNS in glibc.md deleted file mode 100644 index c66a28257c..0000000000 --- a/translated/tech/20151206 Supporting secure DNS in glibc.md +++ /dev/null @@ -1,46 +0,0 @@ -通过修改 glibc 支持 DNS 加密 -======================== - -感谢:Jonathan Corbet - -域名解析系统(DNS)是因特网安全许多薄弱环节之一;可以误导应用程序所访问的主机相应的 IP 地址。也就是说,会连接到错误的位置,可以引发中间人攻击以及更多攻击。而 DNSSEC 扩展协议是通过为 DNS 信息建立一条加密的可信通道来解决这个漏洞。在正确地配置好 DNSSEC 后,应用程序将可以得到可靠的主机查询信息。通过关于尝试将 DNSSEC 更好地集成到 GNU C 库里的讨论,确保 DNS 查询信息安全并不是那么简单。 - -某种意义上来说,这个问题多年以前就解决了,我们可以配置一个本地域名服务实现完整的 DNSSEC 认证并允许应用程序通过 glibc 函数来使用该服务。DNSSEC 甚至还可以用于提高其他领域的安全性,比如,它可以携带 SSH 或 TLS 密钥指纹,让应用程序可以确认其在与正确的服务器通话。不过,当我们希望确认这条自称带有 DNSSEC 认证的 DNS 结果是不是真的已通过认证的时候 - 也就是说,当我们想依赖 DNSSEC 所承诺的安全的时候,事情变得有点复杂。 - -/etc/resolv.conf 问题 - -从 glibc 的角度来看,这个问题一部分是因为 glibc 本身并没有做 DNSSEC 认证。而是引用 /etc/resolv.conf 文件,从该文件里读出的服务器来做解析以及认证,再将结果返回给应用程序。如果应用程序使用底层 res_query() 接口,那结果中将会包含“已认证数据”(AD)标识(如果域名服务器设定了的话)以表示 DNSSEC 认证已经成功。但是 glibc 却完全不知道提供这些结果的域名服务器的信用,所以它其实并不能告诉应用程序结果是否真的可靠。 - -由 glibc 的维护者 Carlos O'Donell 提出的建议是在 resolv.conf 文件里增加一个选项(dns-strip-dnssec-ad-bit)告诉 glibc 无条件移除 AD 标识。这个选项可以由各发行版设定,表示 DNSSEC 级别的 DNS 查询结果并不可靠。而一旦建立好合适的环境可以获得可靠的查询结果后,再移除这个选项。这样一来,虽然问题还没有完全解决,至少应用程序有依据来评价从 glibc 获取的 DNS 查询结果的可靠性。 - -一个可靠的环境配置应该是什么样?标准情况应该和这个差不太多:有一个本地域名服务器,通过环路接口访问,作为访问 /etc/resolv.conf 文件的唯一入口。这个域名服务器应该配置来做认证,而在认证失败后就只是简单地不返回任何结果。绝大多数情况下,应用程序就不再需要关心 AD 标识,如果结果不可靠,应用程序就根本看不到。一些发行版已经偏向这种模型,不过情况仍然不像一些人所设想的没那么简单。 - -其中一个问题是,这种方式将 /etc/resolv.conf 文件放到整个系统可信任度的中心。但是,在一个典型的 Linux 系统里,有无数的 DHCP 客户端、网络脚本以及其他更多,可以修改这个文件。就像 Paul Wouters 所指出的,在短时间内锁定这个文件是不可能的。有时候这种改变是必须的:在一个无盘系统启动的时候,在自身的域名服务器启动之前也是需要域名服务的;一个系统的整个 DNS 环境也会根据所连接的网络不同而有所改变;运行在容器里的系统也最好是配制成使用宿主机的域名服务器;等等。 - -所以,现在一般认为,现有系统里的 /etc/resolv.conf 文件并不可信。于是有人提出增加另一个配置文件(/etc/secure-resolv.conf 或其他什么),但这并没有从根本上解决问题。除此之外,有些参与人员觉得就算有一个运行在环路接口上的域名服务器也不是真正可靠,比如 Zack Weinberg 甚至建议系统管理员可以有意禁用 DNSSEC 认证。 - -既然当前系统里的配置不足以信任,那可以这样推断,在情况有改善能够取得可信的结果后,glibc 需要有一种方式来通知应用程序。可以是上面讨论的屏蔽 AD 标识的方式(或者与之相反,增加一个显示的“此域名服务器可以信任”选项);当然,这都需要一定程度上锁定系统以免 /etc/resolv.conf 受到任何不可预计的修改。按 Petr Spacek 的建议,还有一种引申方式,就是提供一种途径允许应用程序查询 glibc 当前通讯的是不是本地域名服务器。 - -在 glibc 里来处理? - -另一种方式是去掉域名服务器,而是让 glibc 本身来做 DNSSEC 认证。不过,把这么大一坨加密相关代码放进 glibc 也是有很大阻力。这样将增加库本身的大小,从而感觉会增加使用它的应用程序的受攻击面积。这个方向再引申一下,由 Zack 提出的建议,可以把认证相关代码放到域名服务缓冲守护进程(nscd)里。因为 nscd 也是 glibc 的一部分,由 glibc 开发人员维护,因此在一定程度上可以相信能正确执行 DNSSEC 认证。而且 nscd 的通讯 socket 所在位置也是公开的,所以可以不考虑 /etc/resolv.conf 问题。不过,Carlos 担心这种方式不能让那些不想使用 nscd 缓存功能的用户所接受;在他看来,基本可以排除 nscd 的方式。 - -所以,至少近期内,glibc 不太可能全部执行带 DNSSEC 认证的整个查询过程。这意味着,如果一个有安全考虑的应用要使用 glibc 库来查询域名,库将需要提供一个标识来评价从独立域名服务器返回的结果有多大程度的可靠性。这几乎肯定需要发行商或系统管理员做出一些明确的改动。就像 Simo Sorce 说的那样: - -如果 glibc 不使用明确的配置选项来通知应用程序它所用的域名解析是可信的,不会有什么用。。。不改一下还有很大弊端,因为应用程序开发者将马上认识到他们不能信任从 glibc 获取的任何信息,从而在处理 DNSSEC 相关信息时就简单地不用它。 - -要配置一个系统能正常使用 DNSSEC 需要改动该系统的很多组件 - 这是一个发行版范围的问题,需要时间来完全解决。在这个转变过程中 glibc 所扮演的角色很可能会比较小,但是很重要的一部分:如果应用程序不实现一套自己的域名解析代码,glibc 很可能是保证 DNS 结果可信的唯一方式。在一个系统中运行多个 DNSSEC 实现方式看起来不像是一种安全的方式,所以最好还是把事情做对了。 - -glibc 项目目前并没有确定用哪种方式来做这个事情,虽然从 /etc/resolv.conf 文件里的某些标记看上去快好了。这种改动应该需要发布新版本;考虑到 glibc 开发的保守天性,很可能来不及加入预计二月份发布的 2.23 版本了。所以 glibc 中暂时还不会有更高安全性的 DNSSEC ,不过在这个方向上也有一些进展了。 - ---------------------------- - -via: https://lwn.net/Articles/663474/ - -作者:Jonathan Corbet - -译者:[zpl1025](https://github.com/zpl1025) - -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6714641232da02832b9cdf0b288fb27bb7a4cbd0 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 5 Feb 2016 23:10:29 +0800 Subject: [PATCH 030/582] PUB:20150824 Great Open Source Collaborative Editing Tools @H-mudcup --- ...Open Source Collaborative Editing Tools.md | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) rename {translated/share => published}/20150824 Great Open Source Collaborative Editing Tools.md (77%) diff --git a/translated/share/20150824 Great Open Source Collaborative Editing Tools.md b/published/20150824 Great Open Source Collaborative Editing Tools.md similarity index 77% rename from translated/share/20150824 Great Open Source Collaborative Editing Tools.md rename to published/20150824 Great Open Source Collaborative Editing Tools.md index bc0a841477..aab783c627 100644 --- a/translated/share/20150824 Great Open Source Collaborative Editing Tools.md +++ b/published/20150824 Great Open Source Collaborative Editing Tools.md @@ -1,12 +1,13 @@ -优秀的开源合作编辑工具 +六款优秀的开源协作编辑工具 ================================================================================ -一句话,合作编著就是多个人进行编著。合作有好处也有风险。好处包括更加全面/协调的方式,更好的利用现有资源和一个更加有力的、团结的声音。对于我来说,最大的好处是极大的透明度。那是当我需要采纳同事的观点。同事之间来来回回地传文件效率非常低,导致不必要的延误还让人(比如,我)对整个合作这件事都感到不满意。有个好的合作软件,我就能实时地或异步地分享笔记,数据和文件,并用评论来分享自己的想法。这样在文档、图片、视频、演示文稿上合作就不会那么的琐碎而无聊。 -有很多种方式能在线进行合作,简直不能更简便了。这篇文章表明了我最喜欢的开源实时文档合作编辑工具。 +简而言之,协作编辑(Collaborative Edit)就是多个人进行编辑。协作有好处也有风险。好处之一是更加全面/协调的方式,更好的利用现有资源和一个更加有力一致的声音。对于我来说,最大的好处是极大的透明度。那是当我需要采纳同事的观点。同事之间来来回回地传文件效率非常低,导致不必要的延误还让人(比如,我)对整个协作这件事都感到不满意。有个好的协作软件,我就能实时地或异步地分享笔记,数据和文件,并用评论来分享自己的想法。这样在文档、图片、视频、演示文稿上协作就不会那么的琐碎而无聊。 -Google Docs 是个非常好的高效应用,有着大部分我所需要的功能。它可以作为一个实时地合作编辑文档的工具提供服务。文档可以被分享、打开并被多位用户同时编辑,用户还能看见其他合作者一个字母一个字母的编辑过程。虽然 Google Docs 对个人是免费的,但并不开源。 +有很多种方式能在线进行协作,简直不能更简便了。这篇文章展示了我最喜欢的开源的实时文档协作编辑工具。 -下面是我带来的最棒的开源合作编辑器,它们能帮你不被打扰的集中精力进行写作,而且是和其他人协同完成。 +Google Docs 是个非常好的高效应用,有着大部分我所需要的功能。它可以作为一个实时地协作编辑文档的工具提供服务。文档可以被分享、打开并被多位用户同时编辑,用户还能看见其他协作者一个字母一个字母的编辑过程。虽然 Google Docs 对个人是免费的,但并不开源。 + +下面是我带来的最棒的开源协作编辑器,它们能帮你不被打扰的集中精力进行写作,而且是和其他人协同完成。 ---------- @@ -14,17 +15,17 @@ Google Docs 是个非常好的高效应用,有着大部分我所需要的功 ![Hackpad in action](http://www.linuxlinks.com/portal/content/reviews/Editors/Screenshot-Hackpad.png) -Hackpad 是个开源的基于网页的实时 wiki,基于开源 EtherPad 合作文档编辑器。 +Hackpad 是个开源的基于网页的实时 wiki,基于开源 EtherPad 协作文档编辑器。 Hackpad 允许用户实时分享你的文档,它还用彩色编码显示各个作者分别贡献了哪部分。它还允许插入图片、清单,由于提供了语法高亮功能,它还能用来写代码。 -当2014年4月 Dropbox 获得了 Hackpad 后,这款软件就以开源的形式在本月发行。让我们经历的等待非常值得。 +当2014年4月 Dropbox 收购了 Hackpad 后,就在这个月这款软件以开源的形式发布。让我们经历的等待非常值得。 特性: - 有类似 wiki 所提供的,一套非常完善的功能 -- 实时或者异步地记合作笔记,共享数据和文件,或用评论分享你们的想法 -- 细致的隐私许可让你可以邀请单个朋友,一个十几人的团队或者上千的 Twitter 粉丝 +- 实时或者异步地记录协作笔记,共享数据和文件,或用评论分享你们的想法 +- 细致的隐私许可让你可以邀请单个朋友、一个十几人的团队或者上千的 Twitter 粉丝 - 智能执行 - 直接从流行的视频分享网站上插入视频 - 表格 @@ -42,9 +43,9 @@ Hackpad 允许用户实时分享你的文档,它还用彩色编码显示各个 ![Etherpad in action](http://www.linuxlinks.com/portal/content/reviews/Editors/Screenshot-Etherpad.png) -Etherpad 是个基于网页的开源实时合作编辑器,允许多个作者同时编辑一个文本文档,写评论,并与其他作者用群聊方式进行交流。 +Etherpad 是个基于网页的开源实时协作编辑器,允许多个作者同时编辑一个文本文档,写评论,并与其他作者用群聊方式进行交流。 -Etherpad 是用 JavaScript 运行的,在 AppJet 平台的顶端,通过 Comet 流实现实时的功能。 +Etherpad 是用 JavaScript 编写的,运行在 AppJet 平台之上,通过 Comet 流实现实时的功能。 特性: @@ -55,9 +56,9 @@ Etherpad 是用 JavaScript 运行的,在 AppJet 平台的顶端,通过 Comet - 每隔一段很短的时间就会自动保存 - 可个性化程度高 - 有客户端插件可以扩展编辑的功能 -- 几百个支持 Etherpad 的扩展包括支持 email 提醒,pad 管理,授权 +- 几百个支持 Etherpad 的扩展,包括支持 email 提醒,pad 管理,授权 - 可访问性开启 -- 可从 Node 里或通过 CLI(命令行界面)和 Pad 目录实时交互 +- 可从 Node 里或通过 CLI(命令行界面)和 EtherPad 的内容交互 - 网站: [etherpad.org][4] - 源代码:[github.com/ether/etherpad-lite][5] @@ -71,7 +72,7 @@ Etherpad 是用 JavaScript 运行的,在 AppJet 平台的顶端,通过 Comet ![Firepad in action](http://www.linuxlinks.com/portal/content/reviews/Editors/Screenshot-Firepad.png) -Firepad 是个开源的合作文本编辑器。它的设计目的是被嵌入到更大的网页应用中对几天内新加入的代码进行批注。 +Firepad 是个开源的协作文本编辑器。它的设计目的是被嵌入到更大的网页应用中对几天内新加入的代码进行批注。 Firepad 是个全功能的文本编辑器,有解决冲突,光标同步,用户属性,用户在线状态检测功能。它使用 Firebase 作为后台,而且不需要任何服务器端的代码。他可以被加入到任何网页应用中。Firepad 可以使用 CodeMirror 编辑器或者 Ace 编辑器提交文本,它的操作转换代码是从 ot.js 上借鉴的。 @@ -81,7 +82,7 @@ Firepad 已被多个编辑器使用,包括Atlassian Stash Realtime Editor、Ni 特性: -- 纯正的合作编辑 +- 纯正的协作编辑 - 基于 OT 的智能合并及解决冲突 - 支持多种格式的文本和代码的编辑 - 光标位置同步 @@ -106,13 +107,13 @@ Firepad 已被多个编辑器使用,包括Atlassian Stash Realtime Editor、Ni ![ownCloud Documents in action](http://www.linuxlinks.com/portal/content/reviews/Editors/Screenshot-ownCloud.png) -ownCloud Documents 是个可以单独并/或合作进行办公室文档编辑 ownCloud 应用。它允许最多5个人同时在网页浏览器上合作进行编辑 .odt 和 .doc 文件。 +ownCloud Documents 是个可以单独并/或协作进行办公室文档编辑 ownCloud 应用。它允许最多5个人同时在网页浏览器上协作进行编辑 .odt 和 .doc 文件。 ownCloud 是个自托管文件同步和分享服务器。他通过网页界面,同步客户端或 WebDAV 提供你数据的使用权,同时提供一个容易在设备间进行浏览、同步和分享的平台。 特性: -- 合作编辑,多个用户同时进行文件编辑 +- 协作编辑,多个用户同时进行文件编辑 - 在 ownCloud 里创建文档 - 上传文档 - 在浏览器里分享和编辑文件,然后在 ownCloud 内部或通过公共链接进行分享这些文件 @@ -131,16 +132,16 @@ ownCloud 是个自托管文件同步和分享服务器。他通过网页界面 ![Gobby in action](http://www.linuxlinks.com/portal/content/reviews/Editors/Screenshot-Gobby.png) -Gobby 是个支持在一个会话内进行多个用户聊天并打开多个文档的合作编辑器。所有的用户都能同时在文件上进行工作,无需锁定。不同用户编写的部分用不同颜色高亮显示,它还支持多个编程和标记语言的语法高亮。 +Gobby 是个支持在一个会话内进行多个用户聊天并打开多个文档的协作编辑器。所有的用户都能同时在文件上进行工作,无需锁定。不同用户编写的部分用不同颜色高亮显示,它还支持多个编程和标记语言的语法高亮。 -Gobby 允许多个用户在互联网上实时共同编辑同一个文档。他很好的整合了 GNOME 环境。它拥有一个客户端-服务端结构,这让它能支持一个会话开多个文档,文档同步请求,密码保护和 IRC 式的聊天方式可以在多个频道进行交流。用户可以选择一个颜色对他们在文档中编写的文本进行高亮。 +Gobby 允许多个用户在互联网上实时共同编辑同一个文档。它很好的整合了 GNOME 环境。它拥有一个客户端-服务端结构,这让它能支持一个会话开多个文档,文档同步请求,密码保护和 IRC 式的聊天方式可以在多个频道进行交流。用户可以选择一个颜色对他们在文档中编写的文本进行高亮。 还供有一个叫做 infinoted 的专用服务器。 特性: - 成熟的文本编辑能力包括使用 GtkSourceView 的语法高亮功能 -- 实时、无需锁定、通过加密(包括PFS)连接的合作文本编辑 +- 实时、无需锁定、通过加密(包括PFS)连接的协作文本编辑 - 整合了群聊 - 本地组撤销:撤销不会影响远程用户的修改 - 显示远程用户的光标和选择区域 @@ -170,9 +171,9 @@ Gobby 允许多个用户在互联网上实时共同编辑同一个文档。他 ONLYOFFICE(从前叫 Teamlab Office)是个多功能云端在线办公套件,整合了 CRM(客户关系管理)系统、文档和项目管理工具箱、甘特图以及邮件整合器 -它能让你整理商业任务和时间表,保存并分享你的合作或个人文档,使用网络社交工具如博客和论坛,还可以和你的队员通过团队的即时聊天工具进行交流。 +它能让你整理商业任务和时间表,保存并分享你的协作或个人文档,使用网络社交工具如博客和论坛,还可以和你的队员通过团队的即时聊天工具进行交流。 -能在同一个地方管理文档、项目、团队和顾客关系。OnlyOffice 结合了文本,电子表格和电子幻灯片编辑器,他们的功能跟微软桌面应用(Word、Excel 和 PowerPoint)的功能相同。但是他允许实时进行合作编辑、评论和聊天。 +能在同一个地方管理文档、项目、团队和顾客关系。OnlyOffice 结合了文本,电子表格和电子幻灯片编辑器,他们的功能跟微软桌面应用(Word、Excel 和 PowerPoint)的功能相同。但是他允许实时进行协作编辑、评论和聊天。 OnlyOffice 是用 ASP.NET 编写的,基于 HTML5 Canvas 元素,并且被翻译成21种语言。 @@ -182,7 +183,7 @@ OnlyOffice 是用 ASP.NET 编写的,基于 HTML5 Canvas 元素,并且被翻 - 文档可以在浏览/编辑模式下分享 - 文档嵌入 - 电子表格和电子幻灯片编辑器 -- 合作编辑 +- 协作编辑 - 评论 - 群聊 - 移动应用 @@ -209,7 +210,7 @@ via: http://www.linuxlinks.com/article/20150823085112605/CollaborativeEditing.ht 作者:Frazer Kline 译者:[H-mudcup](https://github.com/H-mudcup) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 7c4742db05a9909d2010cbb31a2a2bb4450eb627 Mon Sep 17 00:00:00 2001 From: DongShuaike Date: Sat, 6 Feb 2016 09:08:09 +0800 Subject: [PATCH 031/582] DongShuaike is translating --- sources/news/20160129 Recognizing correct code.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20160129 Recognizing correct code.md b/sources/news/20160129 Recognizing correct code.md index ad5028d622..60b94b895d 100644 --- a/sources/news/20160129 Recognizing correct code.md +++ b/sources/news/20160129 Recognizing correct code.md @@ -2,6 +2,8 @@ Automatic bug-repair system fixes 10 times as many errors as its predecessors. ------ +DongShuaike is translating. + MIT researchers have developed a machine-learning system that can comb through repairs to open-source computer programs and learn their general properties, in order to produce new repairs for a different set of programs. The researchers tested their system on a set of programming errors, culled from real open-source applications, that had been compiled to evaluate automatic bug-repair systems. Where those earlier systems were able to repair one or two of the bugs, the MIT system repaired between 15 and 18, depending on whether it settled on the first solution it found or was allowed to run longer. From 35511700a51b0b1b9382e321efafc007952fb4a5 Mon Sep 17 00:00:00 2001 From: ZhangXiangping Date: Sat, 6 Feb 2016 14:29:59 +0800 Subject: [PATCH 032/582] Update 20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chisper翻译中 --- ...151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md b/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md index 3d898340d8..10a40233e8 100644 --- a/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md +++ b/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md @@ -1,3 +1,4 @@ +chisper 翻译中 How to Install Pure-FTPd with TLS on FreeBSD 10.2 ================================================================================ FTP or File Transfer Protocol is application layer standard network protocol used to transfer file from the client to the server, after user logged in to the FTP server over the TCP-Network, such as internet. FTP has been round long time ago, much longer then P2P Program, or World Wide Web, and until this day it was a primary method for sharing file with other over the internet and it it remain very popular even today. FTP provide an secure transmission, that protect username, password and encrypt the content with SSL/TLS. @@ -151,4 +152,4 @@ via: http://linoxide.com/linux-how-to/install-pure-ftpd-tls-freebsd-10-2/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 -[a]:http://linoxide.com/author/arulm/ \ No newline at end of file +[a]:http://linoxide.com/author/arulm/ From 3f2e68fa22c9684f7103d0cb2e786997d20100cc Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 6 Feb 2016 20:19:23 +0800 Subject: [PATCH 033/582] PUB:20150906 How to install Suricata intrusion detection system on Linux @mr-ping --- ...ata intrusion detection system on Linux.md | 59 +++++++++---------- 1 file changed, 27 insertions(+), 32 deletions(-) rename {translated/tech => published}/20150906 How to install Suricata intrusion detection system on Linux.md (54%) diff --git a/translated/tech/20150906 How to install Suricata intrusion detection system on Linux.md b/published/20150906 How to install Suricata intrusion detection system on Linux.md similarity index 54% rename from translated/tech/20150906 How to install Suricata intrusion detection system on Linux.md rename to published/20150906 How to install Suricata intrusion detection system on Linux.md index 0eab03088c..89eccf5650 100644 --- a/translated/tech/20150906 How to install Suricata intrusion detection system on Linux.md +++ b/published/20150906 How to install Suricata intrusion detection system on Linux.md @@ -1,25 +1,24 @@ -如何在Linux系统上安装Suricata入侵检测系统 +如何在 Linux 系统上安装 Suricata 入侵检测系统 ================================================================================ -随着安全威胁的不断发生,入侵检测系统(IDS)在如今的数据中心环境中显得尤为必要。然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB网络,对如此线路上的硬件进行计算密集型的入侵检测越来越困难。其中一种扩展入侵检测系统性能的途径是**多线程入侵检测系统**,它将CPU密集型的深度包检测工作并行的分配给多个并发任务来完成。这样的并行检测可以充分利用多核硬件的优势来轻松扩展入侵检测系统的吞吐量。在这方面有两个知名的开源项目,分别是[Suricata][1] 和 [Bro][2]。 +随着安全威胁的不断发生,入侵检测系统(IDS)在如今的数据中心环境中显得尤为必要。然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB以太网,对如此线路上的硬件进行计算密集型的入侵检测越来越困难。其中一种提升入侵检测系统性能的途径是**多线程入侵检测系统**,它将 CPU 密集型的深度包检测工作并行的分配给多个并发任务来完成。这样的并行检测可以充分利用多核硬件的优势来轻松提升入侵检测系统的吞吐量。在这方面有两个知名的开源项目,分别是 [Suricata][1] 和 [Bro][2]。 -这个教程里,我会向大家演示**如何在Linux服务器上安装和配置Suricata入侵检测系统** +这个教程里,我会向大家演示**如何在 Linux 服务器上安装和配置 Suricata 入侵检测系统** -### 在Linux上安装Suricata IDS ### +### 在 Linux 上安装 Suricata IDS ### -让我们从源文件来构建 Suricata,但在此之前,需要按如下所示安装几个依赖包先。 +让我们从源文件来构建 Suricata,但在此之前,需要按如下所示先安装几个依赖包。 -#### 在Debian, Ubuntu 或者 Linux Mint 操作系统上安装依赖包 #### +#### 在 Debian, Ubuntu 或者 Linux Mint 操作系统上安装依赖包 #### $ sudo apt-get install wget build-essential libpcre3-dev libpcre3-dbg automake autoconf libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libjansson-dev -#### 在CentOS, Fedora 或者 RHEL 操作系统上安装依赖包 #### +#### 在 CentOS, Fedora 或者 RHEL 操作系统上安装依赖包 #### $ sudo yum install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel 一旦将所有依赖包安装完毕,我们就可以继续安装 Suricata 了。 - 首先从 [http://suricata-ids.org/download/][3] 下载 Suricata 源代码,然后构建它。撰写这篇文章的时候,其最新版本号为 2.0.8 。 $ wget http://www.openinfosecfoundation.org/download/suricata-2.0.8.tar.gz @@ -61,12 +60,11 @@ Suricata 源代码带有默认的配置文件。按照如下方法安装这些 $ sudo make install-conf -正如你所料,如果没有IDS规则集的话,Suricata 毛用没有。幸好 Makefile 为我们提供了 IDS 规则集的安装选项。安装方法如下。 - +正如你所料,如果没有IDS规则集的话,Suricata 什么用也没有。幸好 Makefile 为我们提供了 IDS 规则集的安装选项。安装方法如下。 $ sudo make install-rules -以上的规则安装命令会从 [EmergingThreats.net][4] 上下载可用的现存社区规则集快照,并且将其存储在 /etc/suricata/rules 目录下。 +以上的规则安装命令会从 [EmergingThreats.net][4] 上下载可用的社区规则集快照,并且将其存储在 /etc/suricata/rules 目录下。 ![](https://farm1.staticflickr.com/691/20482669553_8b67632277_c.jpg) @@ -76,14 +74,13 @@ Suricata 源代码带有默认的配置文件。按照如下方法安装这些 $ sudo vi /etc/suricata/suricata.yaml -文件中有一些基本的配置供你使用。 +文件中有一些运行所需的基本配置。 -为"default-log-dir"关键字指定Suricata日至文件所在的位置。 +为`default-log-dir`关键字指定 Suricata 日志文件所在的位置。 default-log-dir: /var/log/suricata/ -在"vars"部分下方,你会发现几项对 Suricata 来说很重要变量。"HOME_NET"变量需要指定 Suricata 检查的网络。被分配给 EXTERNAL_NET 变量的 "!$HOME_NET" 代表除本地网络之外的其他网络。"XXX_PORTS"变量用来辨别不同服务所用到的端口号。需要注意的是无论使用什么端口,Suricata 都可以自动检测HTTP流量。所以是不是正确指定端口就显得没那么重要了。 - +在`vars`部分下方,你会发现几项对 Suricata 来说很重要变量。`HOME_NET`变量需要指定 Suricata 检查的网络。被分配给 `EXTERNAL_NET` 变量的 `!$HOME_NET` 代表除本地网络之外的其他网络。`XXX_PORTS`变量用来辨别不同服务所用到的端口号。需要注意的是无论使用什么端口,Suricata 都可以自动检测 HTTP 流量。所以是不是正确指定端口就显得没那么重要了。 vars: HOME_NET: "[192.168.122.0/24]" @@ -92,7 +89,7 @@ Suricata 源代码带有默认的配置文件。按照如下方法安装这些 SHELLCODE_PORTS: "!80" SSH_PORTS: 22 -"host-os-policy" 部分用于防御利用操作系统网络栈(例如:TCP reassembly)的自身行为来逃避检测的一些知名攻击手段。作为对策,通过针对目标操作系统而对检测引擎算法进行微调,现代IDC提供了“基于目标”的检测手段。因此,如果你知道某台主机运行了什么操作系统的话,将这个信息提供给 Suricata 就可以大幅提高检测的成功率。这就是 "host-os-policy" 存在的意义。本例中,默认的IDC对策是Linux系统。如果针对某个IP地址没有指定操作系统信息,Suricata 会默认应用基于Linux系统的检测策略。当捕获到对192.168.122.0/28 和 192.168.122.155通讯时,Suricata就会应用基于Windows系统的检测策略。 +`host-os-policy` 部分用于防御利用操作系统网络栈的自身行为来逃避检测的一些知名攻击手段(例如:TCP reassembly)。作为对策,通过针对目标操作系统而对检测引擎算法进行微调,现代 IDC 提供了“基于目标”的检测手段。因此,如果你知道某台主机运行了什么操作系统的话,将这个信息提供给 Suricata 就可以大幅提高检测的成功率。这就是 `host-os-policy` 存在的意义。本例中,默认的 IDC 策略是 Linux 系统。如果针对某个 IP 地址没有指定操作系统信息,Suricata 会默认应用基于 Linux 系统的检测策略。如下,当捕获到对 192.168.122.0/28 和 192.168.122.155通讯时,Suricata 就会应用基于 Windows 系统的检测策略。 host-os-policy: # These are Windows machines. @@ -111,38 +108,37 @@ Suricata 源代码带有默认的配置文件。按照如下方法安装这些 vista: [] windows2k3: [] -在 "threading" 部分下,你可以为不同的 Suricata 线程指定CPU关联。默认状态下,[CPU 关联][5] 是被禁止使用的 ("set-cpu-affinity: no"),这意味着 Suricata 会分配其线程到所有可用的CPU核心上。Suricata 会默认为每一个CPU核心创建一个检测线程。你可以通过指定 "detect-thread-ratio: N" 来调整此行为。此处会创建 N*M 个检测线程,M代表CPU核心总数。 +在 `threading` 部分下,你可以为不同的 Suricata 线程指定 CPU 关联。默认状态下,[CPU 关联][5] 是被禁止使用的 (`set-cpu-affinity: no`),这意味着 Suricata 会分配其线程到所有可用的 CPU 核心上。Suricata 会默认为每一个 CPU 核心创建一个检测线程。你可以通过指定 `detect-thread-ratio: N` 来调整此行为。此处会创建 N*M 个检测线程,M 代表 CPU 核心总数。 threading: set-cpu-affinity: no detect-thread-ratio: 1.5 -通过以上对线程的设置,Suricata会创建 1.5*M 个检测线程,M是系统的CPU核心总数。 +通过以上对线程的设置,Suricata 会创建 1.5*M 个检测线程,M 是系统的 CPU 核心总数。 -如果你想对Suricata配置有更多的了解,可以去翻阅默认配置文件。里边配有有大量的注释以供你清晰理解。 +如果你想对 Suricata 配置有更多的了解,可以去翻阅默认配置文件。里边配有有大量的注释以供你清晰理解。 -### 使用Suricata进行入侵监控 ### +### 使用 Suricata 进行入侵监控 ### 现在是时候让 Suricata 跑起来了,但在这之前还有一个步骤需要去完成。 -当你使用 pcap捕获模式 的时候,强烈建议关闭Suricata监听网卡上的任何的包卸载(例如 LRO/GRO)功能。这些功能会干扰包的实时捕获行为。 +当你使用 pcap 捕获模式的时候,强烈建议关闭 Suricata 监听网卡上的任何的包卸载(例如 LRO/GRO)功能。这些功能会干扰包的实时捕获行为。 按照以下方法关闭 eth0 接口的 LRO/GRO 功能。 $ sudo ethtool -K eth0 gro off lro off -这里要注意,在使用部分网卡的情况下,你会看到如下警告信息。忽略它们就行了,这些信息只不过告诉你你的网卡不支持LRO功能而已。 +这里要注意,在使用某些网卡的情况下,你会看到如下警告信息。忽略它们就行了,这些信息只不过告诉你你的网卡不支持 LRO 功能而已。 Cannot change large-receive-offload -Suricata 支持许多运行模式。运行模式决定着IDC会使用何种线程。以下命令可以查看所有 [可用的运行模式][6]。 +Suricata 支持许多运行模式。运行模式决定着 IDC 会使用何种线程。以下命令可以查看所有 [可用的运行模式][6]。 $ sudo /usr/local/bin/suricata --list-runmodes ![](https://farm6.staticflickr.com/5730/20481140934_25080d04d7_c.jpg) - -Suricata 使用的默认运行模式是autofp("auto flow pinned load balancing"==“自动流绑定负载均衡” 的缩写)。这个模式下,来自某一个流的包会被分配到一个单独的检测线程中。这些流会根据未被处理的包的最低数量来分配相应的线程。 +Suricata 使用的默认运行模式是 autofp("auto flow pinned load balancing"==“自动流绑定负载均衡” 的缩写)。这个模式下,来自某一个流的包会被分配到一个单独的检测线程中。这些流会根据未被处理的包的最低数量来分配相应的线程。 最后,让我们将 Suricata 运行起来,看看它表现如何。 @@ -150,14 +146,13 @@ Suricata 使用的默认运行模式是autofp("auto flow pinned load balancing ![](https://farm1.staticflickr.com/701/21077552366_c577746e36_c.jpg) -本例中,我们在一个8核心系统中监控eth0网络接口。如上所示,Suricata 创建了13个包处理线程和3个管理线程。包处理线程中包括一个PCAP包捕获线程,12个检测线程(由8*1.5得出)。这表示IDS内的1个包捕获线程均衡负载到12个检测线程中。管理线程包括1个流管理和2个计数/统计相关线程。 +本例中,我们在一个8核心系统中监控 eth0 网络接口。如上所示,Suricata 创建了13个包处理线程和3个管理线程。包处理线程中包括一个 PCAP 包捕获线程,12个检测线程(由8*1.5得出)。这表示 IDS 内的1个包捕获线程均衡负载到12个检测线程中。管理线程包括1个流管理和2个计数/统计相关线程。 -Here is a thread-view of Suricata process (plotted by [htop][7]). 以下是一个关于Suricata处理的线程截图(由 [htop][7] 绘制)。 ![](https://farm6.staticflickr.com/5775/20482669593_174f8f41cb_c.jpg) -Suricata检测日志存储在 /var/log/suricata 目录下。 +Suricata 检测日志存储在 /var/log/suricata 目录下。 $ tail -f /var/log/suricata/fast.log @@ -167,7 +162,7 @@ Suricata检测日志存储在 /var/log/suricata 目录下。 04/01/2015-15:49:06.565901 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317 04/01/2015-15:49:06.566759 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 -> 172.16.253.1:46317 -日志也可以提供Json格式,被当做引用实例去使用: +日志也可以提供 Json 格式以便导入: $ tail -f /var/log/suricata/eve.json @@ -177,9 +172,9 @@ Suricata检测日志存储在 /var/log/suricata 目录下。 ### 总结 ### -这篇教程中,我为大家演示了如何在一台多核Linux服务器上安装Suricata入侵检测系统。不同于单线程的 [Snort IDS][8] ,Suricata 可以很容易的从多核硬件的多进程特性所带来的红利中获益。定制Suricata来最大化其效能和检测范围是一个很好的主意。Suricata的粉丝们维护着一个 [在线 Wiki][9],如果你打算将Suricata部署到你的环境中,我强烈建议你去那儿取取经。 +这篇教程中,我为大家演示了如何在一台多核 Linux 服务器上安装 Suricata 入侵检测系统。不同于单线程的 [Snort IDS][8] ,Suricata 可以很容易的从多核硬件的多进程特性所带来的好处中获益。定制 Suricata 来最大化其效能和检测范围是一个很好的主意。Suricata 的粉丝们维护着一个 [在线 Wiki][9],如果你打算将 Suricata 部署到你的环境中,我强烈建议你去那儿取取经。 -如果你现在已经开始使用Suricata了的话,把你的经验也分享出来吧。 +如果你现在已经开始使用 Suricata 了的话,把你的经验也分享出来吧。 -------------------------------------------------------------------------------- @@ -187,7 +182,7 @@ via: http://xmodulo.com/install-suricata-intrusion-detection-system-linux.html 作者:[Dan Nanni][a] 译者:[mr-ping](https://github.com/mr-ping) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9ccb1e7e67891d48f09f85e2fb4bba49066c96d7 Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 6 Feb 2016 21:00:09 +0800 Subject: [PATCH 034/582] PUB:20151201 Cinnamon 2.8 Review @wwy-hust --- .../20151201 Cinnamon 2.8 Review.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) rename {translated/talk => published}/20151201 Cinnamon 2.8 Review.md (70%) diff --git a/translated/talk/20151201 Cinnamon 2.8 Review.md b/published/20151201 Cinnamon 2.8 Review.md similarity index 70% rename from translated/talk/20151201 Cinnamon 2.8 Review.md rename to published/20151201 Cinnamon 2.8 Review.md index 209ee05cd6..ac84601cab 100644 --- a/translated/talk/20151201 Cinnamon 2.8 Review.md +++ b/published/20151201 Cinnamon 2.8 Review.md @@ -1,52 +1,52 @@ -Cinnamon 2.8 评论 +Cinnamon 2.8 新变化一览 ================================================================================ ![](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2-8-featured.jpg) -除了Gnome和KDE外,Cinnamon是另一个很多人使用的桌面环境。它是由创作Linux Mint的团队制作的,并且可以被安装在许多其他发行版上。该桌面环境的最新版本 - Cinnamon 2.8 - 于本月早些时间发布,此版本修复了许多的Bug、做了许多改进并添加了一些新功能。 +除了Gnome和KDE外,Cinnamon是另一个很多人使用的桌面环境。它是由创作Linux Mint的团队制作的,并且可以被安装在许多其他发行版上。该桌面环境的最新版本 - Cinnamon 2.8 - 于去年底发布,此版本修复了许多的Bug、做了许多改进并添加了一些新功能。 我将仔细介绍该发行版本的主要改进,以及如何更新到Cinnamon 2.8或者第一次安装它。 ### 对Applets的改进 ### -在此版本中,对已经在面板中存在的Applets做了若干的改进。 +在此版本中,对面板中已有的Applets做了若干的改进。 #### 声音 Applet #### ![cinnamon-28-sound-applet](https://www.maketecheasier.com/assets/uploads/2015/11/rsz_cinnamon-28-sound-applet.jpg) -声音Applet经过修订,目前可以显示音轨信息并且可以在音频文件的艺术家封面上面进行媒体控制。对于支持拖动的音乐播放器来说(例如Banshee),会有一个进度条在同样的位置,您可以用它来改变音轨位置。在applet的面板上右击将显示对输入和输出静音的选项。 +声音Applet经过修正,目前可以显示音轨信息并且可以在音频文件的艺术家封面上面进行媒体控制。对于支持拖动的音乐播放器来说(例如Banshee),会有一个进度条显示同样的播放进度,您可以用它来改变音轨位置。在applet的面板上右击将显示对输入和输出设备静音的选项。 #### 电源 Applet #### -电源applet则会使用制造商的数据而不是通用名称显示每一个连接的电池和设备。 +电源applet则会使用电池制造商的数据而不是通用名称来显示每一个连接的电池和设备。 #### 窗口缩略图 #### ![cinnamon-2.8-window-thumbnails](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2.8-window-thumbnails.png) -Cinnamon 2.8带来了可以在鼠标悬停于面板里窗口列表中的窗口时展示窗口缩略图的选项。如果您不喜欢该功能,您还可以关闭它。 +在Cinnamon 2.8中,可以在鼠标悬停于面板里窗口列表时展示窗口缩略图。如果您不喜欢该功能,您还可以关闭该选项。 #### 工作区切换 Applet #### ![cinnamon-2.8-workspace-switcher](https://www.maketecheasier.com/assets/uploads/2015/11/cinnamon-2.8-workspace-switcher.png) -添加工作区切换applet到您的面板将为您显示一个代表工作区的可视化的图像,一些矩形嵌套在其中,代表您的窗口的位置。 +添加工作区切换applet到您的面板将为您显示一个代表该工作区的可视化图像,一些矩形嵌套显示在其中,代表您的窗口的位置。 #### 系统托盘 #### -Cinnamon 2.8带来了对系统托盘中的应用程序指示器的支持。您可以很容易地在设置中禁用它,这将强制应用程序回滚以使用状态图标作为替代。 +Cinnamon 2.8支持在系统托盘中显示应用程序指示器。您可以很容易地在设置中禁用它,这将强制应用程序到以前使用状态图标的方式。 ### 视觉改进 ### -Cinnamon 2.8还做了很多视觉上的改进。经典的切换器和Alt + Tab预览切换器都被细细打磨,有了显著的改进,同时修复了Alt + F2对话框的bug,并赋予了它更好的命令自动补全功能。 +Cinnamon 2.8还做了很多视觉上的改进。经典的切换器和Alt + Tab预览切换器都被精细打磨,有了显著的改进,同时修复了Alt + F2对话框的bug,并赋予了它更好的命令自动补全功能。 -而且,在于最小化窗口时的存在的传统的动画效果中的问题现已被解决并可用于多个面板。 +而且,传统的最小化窗口时动画效果的问题现已被解决,并可用于多个面板。 ### Nemo 的改进 ### ![cinnamon-2.8-nemo](https://www.maketecheasier.com/assets/uploads/2015/11/rsz_cinnamon-28-nemo.jpg) -Cinnamon默认的文件管理器也修复了一些bug,并有了新的“快速重命名”的功能,用于重命名文件和文件夹。可以通过两次点击文件或文件夹并在两次点击之前进行简短的停顿以重命名文件。 +Cinnamon默认的文件管理器也修复了一些bug,并有了新的“快速重命名”的功能,用于重命名文件和文件夹。可以通过两次点击文件或文件夹并在两次点击之间进行简短的停顿以重命名文件。 Nemo也会自动地检测缩略图存在的问题,并提示您快速地修复它们。 @@ -54,7 +54,7 @@ Nemo也会自动地检测缩略图存在的问题,并提示您快速地修复 - Applets如今会在它们被更新的时候自动地重新加载一次。 - 对于多个监视器的支持有了显著的提高。 -- 对话框窗口有了提高,并且会附加到它的父窗口上。 +- 对话框窗口有了改进,并且会附加到它的父窗口上。 - HiDPI检测有了改进。 - QT5应用程序现在看起来更加原生并使用了默认的GTK主题。 - 窗口管理和渲染性能有了提升。 @@ -80,7 +80,7 @@ via: https://www.maketecheasier.com/cinnamon-2-8-review/ 作者:[Ayo Isaiah][a] 译者:[wwy-hust](https://github.com/wwy-hust) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 92536f4a2cd2839526f76860ec35bca646288ffb Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 7 Feb 2016 23:52:41 +0800 Subject: [PATCH 035/582] PUB:20151030 80 Linux Monitoring Tools for SysAdmins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @strugglingyouth 好长的文章 --- ...80 Linux Monitoring Tools for SysAdmins.md | 156 +++++++++--------- 1 file changed, 78 insertions(+), 78 deletions(-) rename {translated/share => published}/20151030 80 Linux Monitoring Tools for SysAdmins.md (68%) diff --git a/translated/share/20151030 80 Linux Monitoring Tools for SysAdmins.md b/published/20151030 80 Linux Monitoring Tools for SysAdmins.md similarity index 68% rename from translated/share/20151030 80 Linux Monitoring Tools for SysAdmins.md rename to published/20151030 80 Linux Monitoring Tools for SysAdmins.md index 4733a41d17..b78c23fa41 100644 --- a/translated/share/20151030 80 Linux Monitoring Tools for SysAdmins.md +++ b/published/20151030 80 Linux Monitoring Tools for SysAdmins.md @@ -1,9 +1,9 @@ - -Linux 系统管理员必备的80个监控工具 +最全列表: 80 多个 Linux 系统管理员必备的监控工具 ================================================================================ + ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/linux-monitoring.jpg) -随着行业的不断发展,各种工具多得不可胜数。这里列出网上最全的(工具)。拥有超过80种方式来管理你的机器。在本文中,我们主要讲述以下方面: +随着互联网行业的不断发展,各种监控工具多得不可胜数。这里列出网上最全的监控工具。让你可以拥有超过80种方式来管理你的机器。在本文中,我们主要包括以下方面: - 命令行工具 - 网络相关内容 @@ -11,51 +11,51 @@ Linux 系统管理员必备的80个监控工具 - 日志监控工具 - 基础设施监控工具 -监控和调试性能问题非常困难,但用对了正确的工具有时也是很容易的。下面是一些你可能听说过的工具,当你使用它们时可能存在一些问题: +监控和调试性能问题是一个艰巨的任务,但用对了正确的工具有时也是很容易的。下面是一些你可能听说过的工具,也有可能没有听说过——何不赶快开始试试? -### 十大系统监控工具 ### +### 八大系统监控工具 ### -#### 1. Top #### +#### 1. top #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/top.jpg) -这是一个被预装在许多 UNIX 系统中的小工具。当你想要查看在系统中运行的进程或线程时:top 是一个很好的工具。你可以对这些进程以不同的标准进行排序,默认是以 CPU 进行排序的。 +这是一个被预装在许多 UNIX 系统中的小工具。当你想要查看在系统中运行的进程或线程时:top 是一个很好的工具。你可以对这些进程以不同的方式进行排序,默认是以 CPU 进行排序的。 #### 2. [htop][1] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/htop.jpg) -HTOP 实质上是 top 的增强版本。它更容易对进程排序。它在视觉上更容易理解并且已经内建了许多通用的命令。它也是完全交互的。 +htop 实质上是 top 的一个增强版本。它更容易对进程排序。它看起来上更容易理解,并且已经内建了许多通用操作。它也是完全交互式的。 #### 3. [atop][2] #### -Atop 和 top,htop 非常相似,它也能监控所有进程,但不同于 top 和 htop 的是,它会记录进程的日志供以后分析。它也能显示所有进程的资源消耗。它还会高亮显示已经达到临界负载的资源。 +atop 和 top,htop 非常相似,它也能监控所有进程,但不同于 top 和 htop 的是,它可以按日记录进程的日志供以后分析。它也能显示所有进程的资源消耗。它还会高亮显示已经达到临界负载的资源。 #### 4. [apachetop][3] #### -Apachetop 会监控 apache 网络服务器的整体性能。它主要是基于 mytop。它会显示当前 reads, writes 的数量以及 requests 进程的总数。 +apachetop 会监控 apache 网络服务器的整体性能。它主要是基于 mytop。它会显示当前的读取进程、写入进程的数量以及请求进程的总数。 #### 5. [ftptop][4] #### -ftptop 给你提供了当前所有连接到 ftp 服务器的基本信息,如会话总数,正在上传和下载的客户端数量以及客户端信息。 +ftptop 给你提供了当前所有连接到 ftp 服务器的基本信息,如会话总数,正在上传和下载的客户端数量以及客户端是谁。 #### 6. [mytop][5] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/mytop.jpg) -mytop 是一个很简洁的工具,用于监控线程和 mysql 的性能。它给了你一个实时的数据库来查询处理结果。 +mytop 是一个很简洁的工具,用于监控 mysql 的线程和性能。它能让你实时查看数据库以及正在处理哪些查询。 #### 7. [powertop][6] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/powertop.jpg) -powertop 可以帮助你诊断与电量消耗和电源管理相关的问题。它也可以帮你进行电源管理设置,以实现对你服务器最有效的配置。你可以使用 tab 键进行选项切换。 +powertop 可以帮助你诊断与电量消耗和电源管理相关的问题。它也可以帮你进行电源管理设置,以实现对你服务器最有效的配置。你可以使用 tab 键切换选项卡。 #### 8. [iotop][7] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/iotop.jpg) -iotop 用于检查 I/O 的使用情况,并为你提供了一个类似 top 的界面来显示。它每列显示读和写的速率,每行代表一个进程。当出现等待 I/O 交换时,它也显示进程消耗时间的百分比。 +iotop 用于检查 I/O 的使用情况,并为你提供了一个类似 top 的界面来显示。它按列显示读和写的速率,每行代表一个进程。当发生交换或 I/O 等待时,它会显示进程消耗时间的百分比。 ### 与网络相关的监控 ### @@ -63,7 +63,7 @@ iotop 用于检查 I/O 的使用情况,并为你提供了一个类似 top 的 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/ntopng.jpg) -ntopng 是 ntop 的升级版,它提供了一个能使用浏览器进行网络监控的图形用户界面。它还有其他用途,如:定位主机,显示网络流量和 ip 流量分布并能进行分析。 +ntopng 是 ntop 的升级版,它提供了一个能通过浏览器进行网络监控的图形用户界面。它还有其他用途,如:地理定位主机,显示网络流量和 ip 流量分布并能进行分析。 #### 10. [iftop][9] #### @@ -75,17 +75,17 @@ iftop 类似于 top,但它主要不是检查 cpu 的使用率而是监听所 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/jnettop.jpg) -jnettop 以相同的方式来监测网络流量但比 iftop 更形象。它还支持自定义的文本输出并能以友好的交互方式来深度分析日志。 +jnettop 以相同的方式来监测网络流量但比 iftop 更形象。它还支持自定义的文本输出,并能以友好的交互方式来深度分析日志。 #### 12. [bandwidthd][11] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/bandwidthd.jpg) -bandwidthd 可以跟踪 TCP/IP 网络子网的使用情况并能在浏览器中通过 png 图片形象化地构建一个 HTML 页面。它有一个数据库驱动系统,支持搜索、过滤,多传感器和自定义报表。 +BandwidthD 可以跟踪 TCP/IP 网络子网的使用情况,并能在浏览器中通过 png 图片形象化地构建一个 HTML 页面。它有一个数据库系统,支持搜索、过滤,多传感器和自定义报表。 #### 13. [EtherApe][12] #### -EtherApe 以图形化显示网络流量,可以支持更多的节点。它可以捕获实时流量信息,也可以从 tcpdump 进行读取。也可以使用具有 pcap 语法的网络过滤显示特定信息。 +EtherApe 以图形化显示网络流量,可以支持更多的节点。它可以捕获实时流量信息,也可以从 tcpdump 进行读取。也可以使用 pcap 格式的网络过滤器来显示特定信息。 #### 14. [ethtool][13] #### @@ -97,7 +97,7 @@ ethtool 用于显示和修改网络接口控制器的一些参数。它也可以 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/nethogs.jpg) -NetHogs 打破了网络流量按协议或子网进行统计的原理。它以进程组来计算。所以,当网络流量猛增时,你可以使用 NetHogs 查看是由哪个进程造成的。 +NetHogs 打破了网络流量按协议或子网进行统计的惯例,它以进程来分组。所以,当网络流量猛增时,你可以使用 NetHogs 查看是由哪个进程造成的。 #### 16. [iptraf][15] #### @@ -109,7 +109,7 @@ iptraf 收集的各种指标,如 TCP 连接数据包和字节数,端口统 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/ngrep.jpg) -如果不是网络层的话,ngrep 就是 grep。pcap 意识到后允许其指定扩展规则或十六进制表达式来匹配数据包。 +ngrep 就是网络层的 grep。它使用 pcap ,允许通过指定扩展正则表达式或十六进制表达式来匹配数据包。 #### 18. [MRTG][17] #### @@ -121,29 +121,29 @@ MRTG 最初被开发来监控路由器的流量,但现在它也能够监控网 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/bmon.jpg) -Bmon 能监控并帮助你调试网络。它能捕获网络相关的统计数据,并以友好的方式进行展示。你还可以与 bmon 通过脚本进行交互。 +bmon 能监控并帮助你调试网络。它能捕获网络相关的统计数据,并以友好的方式进行展示。你还可以与 bmon 通过脚本进行交互。 #### 20. traceroute #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/traceroute.jpg) -Traceroute 是一个内置工具,能显示路由和测试数据包在网络中的延迟。 +traceroute 是一个内置工具,能显示路由和测量数据包在网络中的延迟。 #### 21. [IPTState][19] #### -IPTState 可以让你跨越 iptables 来监控流量,并通过你指定的条件来进行排序。该工具还允许你从表中删除状态信息。 +IPTState 可以让你观察流量是如何通过 iptables,并通过你指定的条件来进行排序。该工具还允许你从 iptables 的表中删除状态信息。 #### 22. [darkstat][20] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/darkstat.jpg) -Darkstat 能捕获网络流量并计算使用情况的统计数据。该报告保存在一个简单的HTTP服务器中,它为你提供了一个非常棒的图形用户界面。 +darkstat 能捕获网络流量并计算使用情况的统计数据。该报告保存在一个简单的 HTTP 服务器中,它为你提供了一个非常棒的图形用户界面。 #### 23. [vnStat][21] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/vnstat.jpg) -vnStat 是一个网络流量监控工具,它的数据统计是由内核进行提供的,其消耗的系统资源非常少。系统重新启动后,它收集的数据仍然存在。它具有颜色选项供系统管理员使用。 +vnStat 是一个网络流量监控工具,它的数据统计是由内核进行提供的,其消耗的系统资源非常少。系统重新启动后,它收集的数据仍然存在。有艺术感的系统管理员可以使用它的颜色选项。 #### 24. netstat #### @@ -159,19 +159,19 @@ netstat 是一个内置的工具,它能显示 TCP 网络连接,路由表和 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/nmap.jpg) -Nmap 可以扫描你服务器开放的端口并且可以检测正在使用哪个操作系统。但你也可以使用 SQL 注入漏洞,网络发现和渗透测试相关的其他手段。 +Nmap 可以扫描你服务器开放的端口并且可以检测正在使用哪个操作系统。但你也可以将其用于 SQL 注入漏洞、网络发现和渗透测试相关的其他用途。 #### 27. [MTR][23] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/mtr.jpg) -MTR 结合了 traceroute 和 ping 的功能到一个网络诊断工具上。当使用该工具时,它会限制单个数据包的跳数,同时也监视它们的到期时间。然后每秒进行重复。 +MTR 将 traceroute 和 ping 的功能结合到了一个网络诊断工具上。当使用该工具时,它会限制单个数据包的跳数,然后监视它们的到期时到达的位置。然后每秒进行重复。 #### 28. [Tcpdump][24] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/tcpdump.jpg) -Tcpdump 将输出一个你在命令中匹配并捕获到的数据包的信息。你还可以将此数据保存并进一步分析。 +Tcpdump 将按照你在命令行中指定的表达式输出匹配捕获到的数据包的信息。你还可以将此数据保存并进一步分析。 #### 29. [Justniffer][25] #### @@ -185,13 +185,13 @@ Justniffer 是 tcp 数据包嗅探器。使用此嗅探器你可以选择收集 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/nmon.jpg) -nmon 将数据输出到屏幕上的,或将其保存在一个以逗号分隔的文件中。你可以查看 CPU,内存,网络,文件系统,top 进程。数据也可以被添加到 RRD 数据库中用于进一步分析。 +nmon 将数据输出到屏幕上的,或将其保存在一个以逗号分隔的文件中。你可以查看 CPU,内存,网络,文件系统,前列 进程。数据也可以被添加到 RRD 数据库中用于进一步分析。 #### 31. [conky][27] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/cpulimit.jpg) -Conky 能监视不同操作系统并统计数据。它支持 IMAP 和 POP3, 甚至许多流行的音乐播放器!出于方便不同的人,你可以使用自己的 Lua 脚本或程序来进行扩展。 +Conky 能监视很多的操作系统数据。它支持 IMAP 和 POP3, 甚至许多流行的音乐播放器!出于方便不同的人,你可以使用自己的 Lua 脚本或程序来进行扩展。 #### 32. [Glances][28] #### @@ -211,17 +211,17 @@ Saidar 是一个非常小的工具,为你提供有关系统资源的基础信 RRDtool 是用来处理 RRD 数据库的工具。RRDtool 旨在处理时间序列数据,如 CPU 负载,温度等。该工具提供了一种方法来提取 RRD 数据并以图形界面显示。 -#### 35. [monit][31] #### +#### 35. [monit][31] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/monit.jpg) -如果出现故障时,monit 有发送警报以及重新启动服务的功能。它可以对任何类型进行检查,你可以为 monit 写一个脚本,它有一个 Web 用户界面来分担你眼睛的压力。 +如果出现故障时,monit 有发送警报以及重新启动服务的功能。它可以对各种数据进行检查,你可以为 monit 写一个脚本,它有一个 Web 用户界面来分担你眼睛的压力。 #### 36. [Linux process explorer][32] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/linux-process-monitor.jpg) -Linux process explorer 是类似 OSX 或 Windows 的在线监视器。它比 top 或 ps 的使用范围更广。你可以查看每个进程的内存消耗以及 CPU 的使用情况。 +Linux process explorer 是类似 OSX 或 Windows 的活动监视器。它比 top 或 ps 的使用范围更广。你可以查看每个进程的内存消耗以及 CPU 的使用情况。 #### 37. df #### @@ -233,37 +233,37 @@ df 是 disk free 的缩写,它是所有 UNIX 系统预装的程序,用来显 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/discus.jpg) -Discus 类似于 df,它的目的是通过使用更吸引人的特性,如颜色,图形和数字来对 df 进行改进。 +discus 类似于 df,它的目的是通过使用更吸引人的特性,如颜色,图形和数字来对 df 进行改进。 #### 39. [xosview][34] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/xosview.jpg) -xosview 是一款经典的系统监控工具,它给你提供包括 IRQ 的各个不同部分的总览。 +xosview 是一款经典的系统监控工具,它给你提供包括 IRQ 在内的各个不同部分的简单总览。 #### 40. [Dstat][35] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/dstat.jpg) -Dstat 旨在替代 vmstat,iostat,netstat 和 ifstat。它可以让你查实时查看所有的系统资源。这些数据可以导出为 CSV。最重要的是 dstat 允许使用插件,因此其可以扩展到更多领域。 +dstat 旨在替代 vmstat,iostat,netstat 和 ifstat。它可以让你查实时查看所有的系统资源。这些数据可以导出为 CSV。最重要的是 dstat 允许使用插件,因此其可以扩展到更多领域。 #### 41. [Net-SNMP][36] #### -SNMP 是“简单网络管理协议”,Net-SNMP 工具套件使用该协议可帮助你收集服务器的准确信息。 +SNMP 即“简单网络管理协议”,Net-SNMP 工具套件使用该协议可帮助你收集服务器的准确信息。 #### 42. [incron][37] #### -Incron 允许你监控一个目录树,然后对这些变化采取措施。如果你想将目录‘a’中的新文件复制到目录‘b’,这正是 incron 能做的。 +incron 允许你监控一个目录树,然后对这些变化采取措施。如果你想在目录‘a’中出现新文件时,将其复制到目录‘b’,这正是 incron 能做的。 #### 43. [monitorix][38] #### -Monitorix 是轻量级的系统监控工具。它可以帮助你监控一台机器,并为你提供丰富的指标。它也有一个内置的 HTTP 服务器,来查看图表和所有指标的报告。 +Monitorix 是轻量级的系统监控工具。它可以帮助你监控单独一台机器,并为你提供丰富的指标。它也有一个内置的 HTTP 服务器,来查看图表和所有指标的报告。 #### 44. vmstat #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/vmstat.jpg) -vmstat(virtual memory statistics)是一个小的内置工具,能监控和显示机器的内存。 +vmstat(virtual memory statistics)是一个小型内置工具,能监控和显示机器的内存。 #### 45. uptime #### @@ -273,13 +273,13 @@ vmstat(virtual memory statistics)是一个小的内置工具,能监控和 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/mpstat.jpg) -mpstat 是一个内置的工具,能监视 cpu 的使用情况。最常见的使用方法是 `mpstat -P ALL`,它给你提供 cpu 的使用情况。你也可以间隔更新 cpu 的使用情况。 +mpstat 是一个内置的工具,能监视 cpu 的使用情况。最常见的使用方法是 `mpstat -P ALL`,它给你提供 cpu 的使用情况。你也可以间歇性地更新 cpu 的使用情况。 #### 47. pmap #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/pmap.jpg) -pmap 是一个内置的工具,报告一个进程的内存映射。你可以使用这个命令来找出内存瓶颈的原因。 +pmap 是一个内置的工具,报告一个进程的内存映射。你可以使用这个命令来找出导致内存瓶颈的原因。 #### 48. ps #### @@ -291,13 +291,13 @@ pmap 是一个内置的工具,报告一个进程的内存映射。你可以使 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/sar.jpg) -sar 是 sysstat 包的一部分,可以帮助你收集,报告和保存不同系统的指标。使用不同的参数,它会给你提供 CPU, 内存 和 I/O 使用情况及其他东西。 +sar 是 sysstat 包的一部分,可以帮助你收集、报告和保存不同系统的指标。使用不同的参数,它会给你提供 CPU、 内存和 I/O 使用情况及其他东西。 #### 50. [collectl][40] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/collectl.jpg) -类似于 sar,collectl 收集你机器的性能指标。默认情况下,显示 cpu,网络和磁盘统计数据,但它实际收集了很多信息。与 sar 不同的是,collectl 能够处理比秒更小的单位,它可以被直接送入绘图工具并且 collectl 的监控过程更广泛。 +类似于 sar,collectl 收集你机器的性能指标。默认情况下,显示 cpu、网络和磁盘统计数据,但它实际收集了很多信息。与 sar 不同的是,collectl 能够处理比秒更小的单位,它可以被直接送入绘图工具并且 collectl 的监控过程更广泛。 #### 51. [iostat][41] #### @@ -309,23 +309,23 @@ iostat 也是 sysstat 包的一部分。此命令用于监控系统的输入/输 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/free.jpg) -这是一个内置的命令用于显示你机器上可用的内存大小以及已使用的内存大小。它还可以显示某时刻内核所使用的缓冲区大小。 +这是一个内置的命令,用于显示你机器上可用的内存大小以及已使用的内存大小。它还可以显示某时刻内核所使用的缓冲区大小。 -#### 53. /Proc 文件系统 #### +#### 53. /proc 文件系统 #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/procfile.jpg) -proc 文件系统可以让你查看内核的统计信息。从这些统计数据可以得到你机器上不同硬件设备的详细信息。看看这个 [ proc文件统计的完整列表 ][42]。 +proc 文件系统可以让你查看内核的统计信息。从这些统计数据可以得到你机器上不同硬件设备的详细信息。看看这个 [proc 文件统计的完整列表][42]。 #### 54. [GKrellM][43] #### -GKrellm 是一个图形应用程序来监控你硬件的状态信息,像CPU,内存,硬盘,网络接口以及其他的。它也可以监视并启动你所选择的邮件阅读器。 +GKrellm 是一个图形应用程序,用来监控你硬件的状态信息,像CPU,内存,硬盘,网络接口以及其他的。它也可以监视并启动你所选择的邮件阅读器。 #### 55. [Gnome 系统监控器][44] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/gnome-system-monitor.jpg) -Gnome 系统监控器是一个基本的系统监控工具,其能通过一个树状结构来查看进程的依赖关系,能杀死及调整进程优先级,还能以图表形式显示所有服务器的指标。 +Gnome 系统监控器是一个基本的系统监控工具,其能通过一个树状结构来查看进程的依赖关系,能杀死进程及调整进程优先级,还能以图表形式显示所有服务器的指标。 ### 日志监控工具 ### @@ -333,11 +333,11 @@ Gnome 系统监控器是一个基本的系统监控工具,其能通过一个 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/goaccess.jpg) -GoAccess 是一个实时的网络日志分析器,它能分析 apache, nginx 和 amazon cloudfront 的访问日志。它也可以将数据输出成 HTML,JSON 或 CSV 格式。它会给你一个基本的统计信息,访问量,404页面,访客位置和其他东西。 +GoAccess 是一个实时的网络日志分析器,它能分析 apache, nginx 和 amazon cloudfront 的访问日志。它也可以将数据输出成 HTML,JSON 或 CSV 格式。它会给你一个基本的统计信息、访问量、404 页面,访客位置和其他东西。 #### 57. [Logwatch][46] #### -Logwatch 是一个日志分析系统。它通过分析系统的日志,并为你所指定的区域创建一个分析报告。它每天给你一个报告可以让你花费更少的时间来分析日志。 +Logwatch 是一个日志分析系统。它通过分析系统的日志,并为你所指定的部分创建一个分析报告。它每天给你一个报告,以便让你花费更少的时间来分析日志。 #### 58. [Swatch][47] #### @@ -349,13 +349,13 @@ Logwatch 是一个日志分析系统。它通过分析系统的日志,并为 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/multitail.jpg) -MultiTail 可帮助你在多窗口下监控日志文件。你可以将这些日志文件合并成一个。它也像正则表达式一样使用不同的颜色来显示日志文件以方便你阅读。 +MultiTail 可帮助你在多个窗口之下监控日志文件。你可以将这些日志文件合并到一个窗口。它可以通过正则表达式的帮助,使用不同的颜色来显示日志文件以方便你阅读。 -#### 系统工具 #### +### 系统工具 ### #### 60. [acct or psacct][49] #### -acct 也称 psacct(取决于如果你使用 apt-get 还是 yum)可以监控所有用户执行的命令,包括 CPU 和内存在系统内所使用的时间。一旦安装完成后你可以使用命令 ‘sa’ 来查看。 +acct 也称 psacct(取决于如果你使用 apt-get 还是 yum)可以监控所有用户执行的命令,包括 CPU 时间和内存占用。一旦安装完成后你可以使用命令 `sa` 来查看统计。 #### 61. [whowatch][50] #### @@ -365,31 +365,31 @@ acct 也称 psacct(取决于如果你使用 apt-get 还是 yum)可以监控 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/strace.jpg) -strace 被用于诊断,调试和监控程序之间的相互调用过程。最常见的做法是用 strace 打印系统调用的程序列表,其可以看出程序是否像预期那样被执行了。 +strace 被用于诊断、调试和监控程序之间的相互调用过程。最常见的做法是用 strace 打印系统调用的程序列表,其可以看出程序是否像预期那样被执行了。 #### 63. [DTrace][52] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/dtrace.jpg) -DTrace 可以说是 strace 的大哥。它动态地跟踪与检测代码实时运行的指令。它允许你深入分析其性能和诊断故障。但是,它并不简单,大约有1200本书中提到过它。 +DTrace 可以说是 strace 的大哥。它动态地跟踪与检测代码实时运行的指令。它允许你深入分析其性能和诊断故障。但是,它并不简单,关于这个话题有1200本书之多。 #### 64. [webmin][53] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/webmin.jpg) -Webmin 是一个基于 Web 的系统管理工具。它不需要手动编辑 UNIX 配置文件,并允许你远程管理系统。它有一对监控模块用于连接它。 +Webmin 是一个基于 Web 的系统管理工具。它不需要手动编辑 UNIX 配置文件,可以让你远程管理系统。它有一对监控模块用于连接它。 #### 65. stat #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/stat.jpg) -Stat 是一个内置的工具,用于显示文件和文件系统的状态信息。它会显示文件被修改,访问或更改的信息。 +Stat 是一个内置的工具,用于显示文件和文件系统的状态信息。它会显示文件何时被修改、访问或更改。 #### 66. ifconfig #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/ifconfig.jpg) -ifconfig 是一个内置的工具用于配置网络接口。大多数网络监控工具背后都使用 ifconfig 将其设置成混乱模式来捕获所有的数据包。你可以手动执行 `ifconfig eth0 promisc` 并使用 `ifconfig eth0 -promisc` 返回正常模式。 +ifconfig 是一个内置的工具,用于配置网络接口。大多数网络监控工具背后都使用 ifconfig 将网卡设置成混乱模式来捕获所有的数据包。你可以手动执行 `ifconfig eth0 promisc` 进入混乱模式,使用 `ifconfig eth0 -promisc` 返回正常模式。 #### 67. [ulimit][54] #### @@ -399,23 +399,23 @@ ulimit 是一个内置的工具,可监控系统资源,并可以限制任何 #### 68. [cpulimit][55] #### -CPULimit 是一个小工具用于监控并限制进程对 CPU 的使用率。其特别有用,能限制批处理作业对 CPU 的使用率保持在一定范围。 +CPULimit 是一个小工具,用于监控并限制进程对 CPU 的使用率。其特别可以用于将批处理作业对 CPU 的使用率保持在一定范围。 #### 69. lshw #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/lshw.jpg) -lshw 是一个小的内置工具能提取关于本机硬件配置的详细信息。它可以输出 CPU 版本和主板配置。 +lshw 是一个小的内置工具,能提取关于本机硬件配置的详细信息。它可以输出 CPU 版本和主板配置。 #### 70. w #### -w 是一个内置命令用于显示当前登录用户的信息及他们所运行的进程。 +w 是一个内置命令,用于显示当前登录用户的信息及他们所运行的进程。 #### 71. lsof #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/lsof.jpg) -lsof 是一个内置的工具可让你列出所有打开的文件和网络连接。从那里你可以看到文件是由哪个进程打开的,基于进程名,可通过一个特定的用户来杀死属于某个用户的所有进程。 +lsof 是一个内置的工具,可让你列出所有打开的文件和网络连接。从那里你可以看到文件是由哪个进程打开的,基于进程名可找到其特定的用户,或杀死属于某个用户的所有进程。 ### 基础架构监控工具 ### @@ -423,13 +423,13 @@ lsof 是一个内置的工具可让你列出所有打开的文件和网络连接 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/server-density-monitoring.png) -我们的 [服务器监控工具][56]!它有一个 web 界面,使你可以进行报警设置并可以通过图表来查看所有系统的网络指标。你还可以设置监控的网站,无论是否在线。Server Density 允许你设置用户的权限,你可以根据我们的插件或 api 来扩展你的监控。该服务已经支持 Nagios 的插件了。 +我们的 [服务器监控工具][56] 它有一个 web 界面,使你可以进行报警设置并可以通过图表来查看所有系统的网络指标。你还可以设置监控的网站,无论是否在线。Server Density 允许你设置用户的权限,你可以根据我们的插件或 api 来扩展你的监控。该服务已经支持 Nagios 的插件了。 #### 73. [OpenNMS][57] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/opennms.jpg) -OpenNMS 主要有四个功能区:事件管理和通知;发现和配置;服务监控和数据收集。其设计可被在多种网络环境中定制。 +OpenNMS 主要有四个功能区:事件管理和通知;发现和配置;服务监控和数据收集。其设计为可被在多种网络环境中定制。 #### 74. [SysUsage][58] #### @@ -441,19 +441,19 @@ SysUsage 通过 Sar 和其他系统命令持续监控你的系统。一旦达到 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/brainypdm.jpg) -brainypdm 是一个数据管理和监控工具,它能收集来自 nagios 或其它公共资源的数据并以图表显示。它是跨平台的,其基于 Web 并可自定义图形。 +brainypdm 是一个数据管理和监控工具,它能收集来自 nagios 或其它常规来源的数据并以图表显示。它是跨平台的,其基于 Web 并可自定义图形。 #### 76. [PCP][60] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/pcp.jpg) -PCP 可以收集来自多个主机的指标,并且效率很高。它也有一个插件框架,所以你可以把它收集的对你很重要的指标使用插件来管理。你可以通过任何一个 Web 界面或 GUI 访问图形数据。它比较适合大型监控系统。 +PCP 可以收集来自多个主机的指标,并且效率很高。它也有一个插件框架,所以你可以让它收集对你很重要的指标。你可以通过任何一个 Web 界面或 GUI 访问图形数据。它比较适合大型监控系统。 -#### 77. [KDE 系统保护][61] #### +#### 77. [KDE 系统守护][61] #### ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/kdesystemguard.jpg) -这个工具既是一个系统监控器也是一个任务管理器。你可以通过工作表来查看多台机器的服务指标,如果一个进程需要被杀死或者你需要启动一个进程,它可以在 KDE 系统保护中来完成。 +这个工具既是一个系统监控器也是一个任务管理器。你可以通过工作表来查看多台机器的服务指标,如果需要杀死一个进程或者你需要启动一个进程,它可以在 KDE 系统守护中来完成。 #### 78. [Munin][62] #### @@ -471,7 +471,7 @@ Nagios 是系统和网络监控工具,可帮助你监控多台服务器。当 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/zenoss.jpg) -Zenoss 提供了一个 Web 界面,使你可以监控所有的系统和网络指标。此外,它能自动发现网络资源和修改网络配置。并且会提醒你采取行动,它也支持 Nagios 的插件。 +Zenoss 提供了一个 Web 界面,使你可以监控所有的系统及网络指标。此外,它能自动发现网络资源和修改网络配置。并且会提醒你采取行动,它也支持 Nagios 的插件。 #### 81. [Cacti][65] #### @@ -483,7 +483,7 @@ Zenoss 提供了一个 Web 界面,使你可以监控所有的系统和网络 ![](https://serverdensity-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/zabbix-monitoring.png) -Zabbix 是一个开源的基础设施监控解决方案。它使用了许多数据库来存放监控统计信息。其核心是用 C 语言编写,并在前端中使用 PHP。如果你不喜欢安装代理,Zabbix 可能是一个最好选择。 +Zabbix 是一个开源的基础设施监控解决方案。它使用了许多数据库来存放监控统计信息。其核心是用 C 语言编写,并在前端中使用 PHP。如果你不喜欢安装代理端,Zabbix 可能是一个最好选择。 ### 附加部分: ### @@ -491,15 +491,15 @@ Zabbix 是一个开源的基础设施监控解决方案。它使用了许多数 #### 83. [collectd][67] #### -Collectd 是一个 Unix 守护进程来收集所有的监控数据。它采用了模块化设计并使用插件来填补一些缺陷。这样能使 collectd 保持轻量级并可进行定制。 +Collectd 是一个 Unix 守护进程,用来收集所有的监控数据。它采用了模块化设计并使用插件来填补一些缺陷。这样能使 collectd 保持轻量级并可进行定制。 #### 84. [Observium][68] #### -Observium 是一个自动发现网络的监控平台,支持普通的硬件平台和操作系统。Observium 专注于提供一个优美,功能强大,简单直观的界面来显示网络的健康和状态。 +Observium 是一个自动发现网络的监控平台,支持大量硬件平台和操作系统。Observium 专注于提供一个优美、功能强大、简单直观的界面来显示网络的健康和状态。 #### 85. Nload #### -这是一个命令行工具来监控网络的吞吐量。它很整洁,因为它使用两个图表和其他一些有用的数据类似传输的数据总量来对进出站流量进行可视化。你可以使用如下方法安装它: +这是一个命令行工具来监控网络的吞吐量。它很整洁,因为它使用两个图表和其他一些类似传输的数据总量这样的有用数据来对进出站流量进行可视化。你可以使用如下方法安装它: yum install nload @@ -509,15 +509,15 @@ Observium 是一个自动发现网络的监控平台,支持普通的硬件平 #### 86. [SmokePing][69] #### -SmokePing 可以跟踪你网络延迟,并对他们进行可视化。SmokePing 有一个流行的延迟测量插件。如果图形用户界面对你来说非常重要,现在有一个正在开发中的插件来实现此功能。 +SmokePing 可以跟踪你网络延迟,并对他们进行可视化。有各种为 SmokePing 开发的延迟测量插件。如果图形用户界面对你来说非常重要,现在有一个正在开发中的插件来实现此功能。 #### 87. [MobaXterm][70] #### -如果你整天在 windows 环境下工作。你可能会觉得 Windows 下受终端窗口的限制。MobaXterm 正是由此而来的,它允许你使用多个在 Linux 中相似的终端。这将会极大地帮助你在监控方面的需求! +如果你整天在 windows 环境下工作。你可能会觉得 Windows 下终端窗口的限制。MobaXterm 正是由此而来的,它允许你使用多个通常出现在 Linux 中的命令。这将会极大地帮助你在监控方面的需求! #### 88. [Shinken monitoring][71] #### -Shinken 是一个监控框架,其是由 python 对 Nagios 进行完全重写的。它的目的是增强灵活性和管理更大环境。但仍保持所有的 nagios 配置和插件。 +Shinken 是一个监控框架,其是采用 python 对 Nagios 进行了完全重写。它的目的是增强灵活性和管理更大环境。但仍保持所有的 nagios 配置和插件。 -------------------------------------------------------------------------------- @@ -525,7 +525,7 @@ via: https://blog.serverdensity.com/80-linux-monitoring-tools-know/ 作者:[Jonathan Sundqvist][a] 译者:[strugglingyouth](https://github.com/strugglingyouth) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 87408809307d007f635eb9c06ad734fbce103705 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Mon, 8 Feb 2016 12:13:05 +0800 Subject: [PATCH 036/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lla with Apache and SSL on FreeBSD 10.2.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/translated/tech/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md b/translated/tech/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md index f709ba5582..784c7d03aa 100644 --- a/translated/tech/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md +++ b/translated/tech/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md @@ -1,8 +1,8 @@ -如何在FreeBSD 10.2上配置Apache和SSL并安装Bugzilla +在FreeBSD 10.2上如何通过配置Apache和SSL安装Bugzilla ================================================================================ -Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由mozilla计划开发并由Mozilla公共许可证授权。它经常被一些高科技公司如mozilla、红帽公司和gnome使用。Bugzilla起初由Terry Weissman在1998年创立,它用perl语言编写,用MySQL作为后端数据库。它是一款旨在帮助管理软件开发的服务器软件,它功能丰富、高优化度的数据库、卓越的安全性、高级的搜索工具、整合邮件功能等等。 +Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由mozilla计划开发并由Mozilla公共许可证授权。它经常被一些高科技公司如mozilla、红帽公司和gnome使用。Bugzilla起初由Terry Weissman在1998年创立,它用perl语言编写,用MySQL作为后端数据库。它是一款旨在帮助管理软件开发的服务器软件,它有丰富的功能、高优化度的数据库、卓越的安全性、高级的搜索工具、整合的邮件功能等等。 -在本教程中,我们将给web服务器安装bugzilla 5.0的apache并为它启用SSL,然后在freebsd 10.2上安装mysql 5.1来作为数据库系统。 +在本教程中,我们将给web服务器安装 bugzilla 5.0 的apache,并为它启用SSL,然后安装 mysql 5.1 来作为 freebsd 10.2 的数据库系统。 #### 准备 #### @@ -19,7 +19,7 @@ Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由moz ### 第二步 - 安装并配置Apache ### -在这一步我们将从freebsd库中用pkg命令安装apache,然后在apache24目录下编辑"httpd.conf"文件,启用SSL和CGI支持。 +在这一步我们将使用pkg命令从freebsd库中安装apache,然后在apache24目录下编辑"httpd.conf"文件,启用SSL和CGI支持来配置apache。 用pkg命令安装apache: @@ -70,7 +70,7 @@ Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由moz 保存并退出。 -在启用apache之前,用sysrc命令添加以下行来在引导的时候启动: +在启用apache之前,用sysrc命令添加以下行作为开机启动项: sysrc apache24_enable=yes service apache24 start @@ -81,7 +81,7 @@ Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由moz pkg install p5-DBD-mysql51 mysql51-server mysql51-client -现在我们要在启动时添加mysql服务并启动,然后为mysql配置root密码。 +现在我们要添加mysql服务到开机启动,然后为mysql配置root密码。 运行以下命令来完成所有操作: @@ -209,19 +209,19 @@ bugzilla的数据库创建好了,名字为"bugzilladb",用户名和密码分 ./checksetup.pl -你会看到一条关于数据库配置错误,你得用nano编辑器编辑一下"localconfig"文件: +你会看到一条关于数据库配置错误的消息,你得用nano编辑器编辑一下"localconfig"文件: nano -c localconfig 现在添加第三步创建的数据库。 - #第五十七行 + #第57行 $db_name = 'bugzilladb'; - #第六十行 + #第60行 $db_user = 'bugzillauser'; - #第六十七行 + #第67行 $db_pass = 'bugzillauser@'; 保存并退出。 @@ -230,7 +230,7 @@ bugzilla的数据库创建好了,名字为"bugzilladb",用户名和密码分 ./checksetup.pl -你会收到输入邮箱名和管理员账号的提示,你只要输入你得邮箱、用户名和密码就行了。 +你会收到输入邮箱名和管理员账号的提示,你只要输入你的邮箱、用户名和密码就行了。 ![Admin Setup](http://blog.linoxide.com/wp-content/uploads/2015/12/Admin-Setup.png) @@ -252,7 +252,7 @@ Bugzilla admin面板: ### 结论 ### -Bugzilla是一个基于web并能帮助你管理软件开发的应用,它用perl开发并使用MySQL作为数据库系统。Bugzilla被mozilla,redhat,gnome等等公司用来帮助它们的软件开发工作。Bugzilla有很多功能并易于配置和安装。 +Bugzilla是一个基于web并能帮助你管理软件开发的应用,它用perl开发并使用MySQL作为数据库系统。Bugzilla帮助mozilla、redhat,gnome等公司完成软件开发工作。Bugzilla有很多功能并易于配置和安装。 -------------------------------------------------------------------------------- @@ -260,7 +260,7 @@ via: http://linoxide.com/tools/install-bugzilla-apache-ssl-freebsd-10-2/ 作者:[Arul][a] 译者:[ZTinoZ](https://github.com/ZTinoZ) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ba22a3d4e504c0f7ecd7c9cb9ecc093c445ef3f1 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 8 Feb 2016 21:19:08 +0800 Subject: [PATCH 037/582] PUB:20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04 @oska874 --- ...3.9.1 with JSON Support on Ubuntu 15.04.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) rename {translated/tech => published}/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md (55%) diff --git a/translated/tech/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md b/published/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md similarity index 55% rename from translated/tech/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md rename to published/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md index b79dc3657e..fcb65c6344 100644 --- a/translated/tech/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md +++ b/published/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md @@ -1,57 +1,58 @@ -如何在Ubuntu 15.04 上安装带JSON 支持的SQLite 3.9.1 +如何在 Ubuntu 15.04 上安装带 JSON 支持的 SQLite 3.9.1 ================================================================================ -欢迎阅读我们关于SQLite 的文章,SQLite 是当今时间上使用最广泛的SQL 数据库引擎,它他基本不需要配置,不需要安装或者管理就可以运行。SQLite 是一个是开放领域的软件,是关系数据库的管理系统,或者说RDBMS,用来在大表存储用户定义的记录。对于数据存储和管理来说,数据库引擎要处理复杂的查询命令,这些命令可能会从多个表获取数据然后生成报告的数据总结。 +欢迎阅读我们关于SQLite 的文章,SQLite 是当今世界上使用最广泛的 SQL 数据库引擎,它基本不需要配置,不需要设置或管理就可以运行。SQLite 是一个是开放领域(public-domain)的软件,是一个关系型数据库管理系统(RDBMS),用来在一个大数据表中存储用户定义的记录。对于数据存储和管理来说,数据库引擎要处理复杂的查询命令,这些命令可能会从多个表获取数据然后生成报告和数据总结。 -SQLite 是一个非常小、轻量级,不需要分离的服务进程或系统。他可以运行在UNIX,Linux,Mac OS-X,Android,iOS 和Windows 上,已经被大量的软件程序使用,如Opera, Ruby On Rails, Adobe System, Mozilla Firefox, Google Chrome 和 Skype。 +SQLite 是一个非常小、轻量级,不需要独立的服务进程或系统。它可以运行在 UNIX,Linux,Mac OS-X,Android,iOS 和 Windows 上,已经被大量的软件程序使用,如 Opera, Ruby On Rails, Adobe System, Mozilla Firefox, Google Chrome 和 Skype。 ### 1) 基本需求: ### -在几乎全部支持SQLite 的平台上安装SQLite 基本上没有复杂的要求。 +在绝大部分支持 SQLite 的平台上安装 SQLite 基本上并没有复杂的要求。 -所以让我们在CLI 或者Secure Shell 上使用sudo 或者root 权限登录Ubuntu 服务器。然后更新系统,这样子就可以让操作系统的软件更新到新版本。 +让我们在 CLI 或者 Secure Shell 上使用 sudo 或者 root 权限登录 Ubuntu 服务器。然后更新系统,这样子就可以让操作系统的软件更新到新版本。 -在Ubuntu 上,下面的命令是用来更新系统的软件源的。 +在 Ubuntu 上,使用如下的命令来更新系统的软件源。 # apt-get update -如果你要在新安装的Ubuntu 上部署SQLite,那么你需要安装一些基础的系统管理工具,如wget, make, unzip, gcc。 +如果你要在新安装的 Ubuntu 上部署 SQLite,那么你需要安装一些基础的系统管理工具,如 wget, make, unzip, gcc。 -要安装wget,可以使用下面的命令,然后输入Y 如果系统提示的话: +要安装 wget,可以使用下面的命令,如果系统提示的话,输入 Y : # apt-get install wget make gcc ### 2) 下载 SQLite ### -要下载SQLite 最好是在[SQLite 官网][1]下载,如下所示 +要下载 SQLite ,最好是在 [SQLite 官网][1]下载,如下所示 ![SQLite download](http://blog.linoxide.com/wp-content/uploads/2015/10/Selection_014.png) -你也可以直接复制资源的连接然后再命令行使用wget 下载,如下所示: +你也可以直接复制资源的连接然后在命令行使用 wget 下载,如下所示: # wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz ![wget SQLite](http://blog.linoxide.com/wp-content/uploads/2015/10/23.png) -下载完成之后,解压缩安装包,切换工作目录到解压缩后的SQLite 目录,使用下面的命令。 +下载完成之后,解压缩安装包,切换工作目录到解压缩后的 SQLite 目录,使用下面的命令。 # tar -zxvf sqlite-autoconf-3090100.tar.gz ### 3) 安装 SQLite ### -现在我们要开始安装、配置刚才下载的SQLite。所以在Ubuntu 上编译、安装SQLite,运行配置脚本。 +现在我们要开始安装、配置刚才下载的 SQLite。在 Ubuntu 上编译、安装 SQLite,运行配置脚本: root@ubuntu-15:~/sqlite-autoconf-3090100# ./configure –prefix=/usr/local ![SQLite Installation](http://blog.linoxide.com/wp-content/uploads/2015/10/35.png) -配置要上面的prefix 之后,运行下面的命令编译安装包。 - - root@ubuntu-15:~/sqlite-autoconf-3090100# make +配置要上面的安装位置前缀(prefix)之后,运行下面的命令编译安装包。 +``` +root@ubuntu-15:~/sqlite-autoconf-3090100# make source='sqlite3.c' object='sqlite3.lo' libtool=yes \ DEPDIR=.deps depmode=none /bin/bash ./depcomp \ /bin/bash ./libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\" -DPACKAGE_VERSION=\"3.9.1\" -DPACKAGE_STRING=\"sqlite\ 3.9.1\" -DPACKAGE_BUGREPORT=\"http://www.sqlite.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"sqlite\" -DVERSION=\"3.9.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DHAVE_POSIX_FALLOCATE=1 -I. -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE -g -O2 -c -o sqlite3.lo sqlite3.c +``` -运行完上面的命令之后,要在Ubuntu 上完成SQLite 的安装得运行下面的命令。 +运行完上面的命令之后,要在 Ubuntu 上完成 SQLite 的安装得运行下面的命令。 # make install @@ -59,7 +60,7 @@ DEPDIR=.deps depmode=none /bin/bash ./depcomp \ ### 4) 测试 SQLite 安装 ### -要保证SQLite 3.9 安装成功了,运行下面的命令。 +要保证 SQLite 3.9 安装成功了,运行下面的命令。 # sqlite3 @@ -77,7 +78,7 @@ SQLite 很容易上手。要获得详细的使用方法,在SQLite 控制台里 ![SQLite Help](http://blog.linoxide.com/wp-content/uploads/2015/10/62.png) -现在开始最后一部分,使用一点SQLite 命令创建数据库。 +现在开始最后一部分,使用一点 SQLite 命令创建数据库。 要创建一个新的数据库需要运行下面的命令。 @@ -103,17 +104,18 @@ SQLite 很容易上手。要获得详细的使用方法,在SQLite 控制台里 sqlite> .exit ![Using SQLite3](http://blog.linoxide.com/wp-content/uploads/2015/10/73.png) + ### 结论 ### -通过本文你可以了解如果安装支持JSON1 的最新版的SQLite,SQLite 从3.9.0 开始支持JSON1。这是一个非常棒的库,可以用来获取内嵌到应用程序,利用它可以很有效而且很轻量的管理资源。我们希望你能觉得本文有所帮助,请自由的像我们反馈你遇到的问题和困难。 +通过本文你可以了解如果安装支持 JSON1 的最新版的 SQLite,SQLite 从 3.9.0 开始支持 JSON1。这是一个非常棒的库,可以内嵌到应用程序,利用它可以很有效而轻量的管理资源。我们希望你能觉得本文有所帮助,请随意地向我们反馈你遇到的问题和困难。 -------------------------------------------------------------------------------- via: http://linoxide.com/ubuntu-how-to/install-sqlite-json-ubuntu-15-04/ 作者:[Kashif Siddique][a] -译者:[译者ID](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +译者:[oska874](https://github.com/oska874) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 5da8a2a2cf4138694e11c3604a854ebe8edc6a4d Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 12 Feb 2016 10:35:48 +0800 Subject: [PATCH 038/582] PUB:20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7 @chisper --- ...ve Adserver on Ubuntu 15.04 or CentOS 7.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) rename {translated/tech => published}/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md (88%) diff --git a/translated/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md b/published/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md similarity index 88% rename from translated/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md rename to published/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md index 25bea6cf72..c7f5a5d71f 100644 --- a/translated/tech/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md +++ b/published/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md @@ -1,10 +1,10 @@ -在Ubuntu 15.04 / CentOS 7上安装Revive Adserver +在 Ubuntu 15.04 / CentOS 7 上安装广告服务器 Revive Adserver ================================================================================ -Revive Adserver是一个免费且开源的广告管理系统,能使出版商,广告平台和广告商把广告投放在网页,应用,视频上并且管理的系统。Revive Adserver又名OpenX,遵循GNU通用公共授权协议。它集广告管理、网站定位、地理定位和跟踪系统于一体 -,用于数据收集。能使网站站长管理内部,付费以及第三方来源的广告,如谷歌的AdSense。本教程中,将会教会你在Ubuntu 15.04或CentOS 7安装并运行Revive Adserver。 +Revive Adserver是一个自由开源的广告管理系统,能使出版商,广告平台和广告商在网页、应用、视频上投放并管理广告的系统。Revive Adserver以前叫做OpenX Source,遵循GNU通用公共授权协议。它集广告管理、网站定位、地理定位和一个用于数据收集的跟踪系统于一体。能使网站站长管理内部的、付费的以及第三方来源的广告,如谷歌的AdSense。本教程中,将会教会你在Ubuntu 15.04或CentOS 7安装并运行Revive Adserver。 + ### 1. 安装LAMP### -首先,Revive Adserver需要完整的LAMP环境才能运行,所以我们先安装LAMP。LAMP是Apache网页服务器,MySQL/MariaDB数据库和PHP模块的集合。要使Revive正常运行,需要安装PHP的众多模块,如apc,zlib,xml,pcre,mysql和mbstring。在不同的Linux发行版中,我们可以用下列命令进行LAMP的配置: +首先,Revive Adserver需要完整的LAMP环境才能运行,所以我们先安装LAMP。LAMP是Apache网页服务器,MySQL/MariaDB数据库和PHP模块的集合。要使Revive正常运行,需要安装PHP的众多模块,如apc, zlib, xml, pcre, mysql和mbstring。在不同的Linux发行版中,我们可以用下列命令进行LAMP的配置: #### 在Ubuntu 15.04下#### @@ -78,7 +78,8 @@ CentOS 7同样是以Systemd作为默认初始系统,可以用下列命令启 ![Configuring MariaDB](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-mariadb.png) ### 4. 创建新的数据库 ### -为MariaDB的root用户设置了密码之后,就可以创建用来储存Revive Adserver应用数据的数据库。首先通过以下命令登陆MariaDB控制台: + +为MariaDB的root用户设置了密码之后,就可以创建用来储存Revive Adserver应用数据的数据库。首先通过以下命令登录MariaDB控制台: # mysql -u root -p @@ -142,6 +143,7 @@ CentOS 7同样是以Systemd作为默认初始系统,可以用下列命令启 ![Configuring Apache2 Ubuntu](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-apache2-ubuntu.png) + 保存并退出,重启Apache Web服务: # systemctl restart apache2 @@ -174,8 +176,8 @@ CentOS 7同样是以Systemd作为默认初始系统,可以用下列命令启 # systemctl restart httpd ### 7. 修复权限和所有权 - -现在我们修改安装路径下文件的权限和所有权。把安装目录的所有权改成Apache进程所有以便Apache Web服务有文件和目录的编辑,创建和删除的完全权限。 + +现在我们修改安装路径下文件的权限和所有权。把安装目录的所有权改成Apache进程所有,以便Apache Web服务有文件和目录的编辑、创建和删除的完全权限。 #### 在Ubuntu 15.04下#### @@ -202,7 +204,7 @@ Ubuntu15.04/CentOS 7都使用Systemd作为默认初始系统,使用firewalld success ### 9. 网站的安装 - + 顺利的话我们能够使用浏览器进行交互,并可以将浏览器指向正在运行的网络服务器。只要在浏览器输入http://ip-address/ 或者 http://domain.com 。这里我们要访问 http://reviveads.linoxide.com/ 打开后可以看到Revive Adserver的欢迎页面,上面还有作为它发行许可证的GNU通用公共许可证V2。点击 I agree 继续下一步安装。 @@ -216,11 +218,9 @@ Ubuntu15.04/CentOS 7都使用Systemd作为默认初始系统,使用firewalld 接着,转到Adverstiser页面,添加新的广告管理。在控制界面添加新用户到adserver,为广告库户添加标题,网页,视频 广告。 - ### 总结 ### -本文中,我们学习了如何在Ubuntu 15.04和CentOS 7上安装并配置Revive Adserver。尽管Revive Adserver的原始代码是从OpenX那买的,但现在它们已经完全分开了。可以从[http://www.adserverplugins.com/][2] 获得更多插件来扩展新特性。讲真,这个软件确实让网页,应用,视频上的广告管理变得容易了许多。 - +本文中,我们学习了如何在Ubuntu 15.04和CentOS 7上安装并配置Revive Adserver。尽管Revive Adserver的原始代码是从OpenX那买的,但现在OpenX Enterprise和Revive Adserver已经完全分开了。可以从[http://www.adserverplugins.com/][2] 获得更多插件来扩展新特性。讲真,这个软件确实让网页,应用,视频上的广告管理变得容易了许多。 -------------------------------------------------------------------------------- @@ -228,7 +228,7 @@ via: http://linoxide.com/linux-how-to/install-revive-adserver-ubuntu-15-04-cento 作者:[Arun Pyasi][a] 译者:[chisper](https://github.com/chisper) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 615e2fa7b90d13a2d845870ae2ce85569010d677 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 12 Feb 2016 11:35:35 +0800 Subject: [PATCH 039/582] PUB:20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison @name1e5s --- ...After More than 8 Years--See Comparison.md | 345 ++++++++++++++++++ ...After More than 8 Years--See Comparison.md | 344 ----------------- 2 files changed, 345 insertions(+), 344 deletions(-) create mode 100644 published/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md delete mode 100644 translated/talk/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md diff --git a/published/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md b/published/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md new file mode 100644 index 0000000000..21e8fcb748 --- /dev/null +++ b/published/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md @@ -0,0 +1,345 @@ +一个八年的 Linux 老用户使用 Windows 10 的体验 +========================================================== + +Windows 10 是2015年7月29日上市的最新一代 Windows NT 系列系统,它是 Windows 8.1 的继任者。Windows 10 支持 Intel 32位平台,AMD64 以及 ARM v7 处理器。 + +![Windows 10 and Linux Comparison](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-vs-Linux.jpg) + +*对比:Windows 10与Linux* + +作为一个连续使用 linux 超过8年的用户,我想要去体验一下 Windows 10 ,因为有很多关于它的消息。这篇文章是我观察力的一个重大突破。我将从一个 linux 用户的角度去看待一切,所以这篇文章可能会有些偏向于 linux。尽管如此,本文也绝对不会有任何虚假信息。 + +1、用谷歌搜索“download Windows 10”并且点击第一个链接。 + +![Search Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Search-Windows-10.jpg) + +*搜索 Windows 10* + +你也可以直接打开: [https://www.microsoft.com/en_us/software-download/Windows10[1] + +2、微软要求我从 Windows 10, Windows 10 KN, Windows 10 N 和 Windows 10 单语言版中选择一个版本。 + +![Select Windows 10 Edition](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Windows-10-Edition.jpg) + +*选择版本* + +以下是各个版本的简略信息: + +- Windows 10 - 包含微软提供给我们的所有软件 +- Windows 10N - 此版本不包含媒体播放器 +- Windows 10KN - 此版本没有媒体播放能力 +- Windows 10 单语言版 - 仅预装一种语言 + +3、我选择了第一个选项“Windows 10”并且单击“确认”。之后我要选择语言,我选择了“英语”。 + +微软给我提供了两个下载链接。一个是32位版,另一个是64位版。我单击了64位版--这与我的电脑架构相同。 + +![Download Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Download-Windows-10.jpg) + +*下载 Windows 10* + +我的带宽是15M的,下载了整整3个小时。不幸的是微软没有提供系统的种子文件,否则整个过程会更加舒畅。镜像大小为 3.8 GB(LCTT译者注:就我的10M小水管,我使用迅雷下载用时50分钟)。 + +我找不到更小的镜像,微软并没有为 Windows 提供网络安装镜像。我也没有办法在下载完成后去校验哈希值。(LCTT 译注:你知道的,这对于 Linux 来说都是常识了) + +我十分惊讶,Windows 在这样的问题上居然如此漫不经心。为了验证这个镜像是否正确下载,我需要把它刻到光盘上或者复制到我的U盘上然后启动它,一直静静的看着它安装直到安装完成。 + +首先,我用 dd 命令将 win10 的 iso 镜像刻录到U盘上。 + + # dd if=/home/avi/Downloads/Win10_English_x64.iso of=/dev/sdb1 bs=512M; sync + +这需要一点时间。在此之后我重启系统并在 UEFI(BIOS)设置中选择从我的U盘启动。 + +#### 系统要求 #### + +升级 + +- 仅支持从 Windows 7 SP1 或者 Windows 8.1 升级 + +全新安装 + +- 处理器: 1GHz 以上 +- 内存: 1GB以上(32位),2GB以上(64位) +- 硬盘: 16GB以上(32位),20GB以上(64位) +- 显卡: 支持DirectX 9或更新 + WDDM 1.0 驱动 + +###Windows 10 安装过程### + +1、Windows 10启动成功了。他们又换了logo,但是仍然没有信息提示我它正在做什么。 + +![Windows 10 Logo](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Logo.jpg) + +*Windows 10 Logo* + +2、选择安装语言,时区,键盘,输入法,点击下一步。 + +![Select Language and Time](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Language-and-Time.jpg) + +*选择语言和时区* + +3、点击“现在安装”。 + +![Install Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Install-Windows-10.jpg) + +*安装Windows 10* + +4、下一步是输入密钥,我点击了“跳过”。 + +![Windows 10 Product Key](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Product-Key.jpg) + +*Windows 10 产品密钥* + +5、从列表中选择一个系统版本。我选择了 Windows 10专业版。 + +![Select Install Operating System](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Install-Operating-System.jpg) + +*选择系统版本* + +6、到了协议部分,选中"我接受"然后点击下一步。 + +![Accept License](http://www.tecmint.com/wp-content/uploads/2015/08/Accept-License.jpg) + +*同意协议* + +7、下一步是选择(从 Windows 的老版本)升级到 Windows 10 或者安装 Windows。我搞不懂为什么微软要让我自己选择:“安装Windows”被微软建议为“高级”选项。但是我还是选择了“安装Windows”。 + +![Select Installation Type](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Installation-Type.jpg) + +*选择安装类型* + +8、选择驱动器,点击“下一步”。 + +![Select Install Drive](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Install-Drive.jpg) + +*选择安装盘* + +9、安装程序开始复制文件,准备文件,安装更新,之后进行收尾。如果安装程序能在安装时输出一堆字符来表示它在做什么就更好了。 + +![Installing Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Installing-Windows.jpg) + +*安装 Windows* + +10、在此之后 Windows 重启了。它们说要继续的话,我们需要重启。 + +![Windows Installation Process](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Installation-Process.jpg) + +*安装进程* + +11、我看到了一个写着“正在准备 Windows”的界面。它停了整整五分多钟!仍然没有说明它正在做什么。没有输出。 + +![Windows Getting Ready](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Getting-Ready.jpg) + +*正在准备 Windows* + +12、又到了输入产品密钥的时间。我点击了“以后再说”,并使用快速设置。 + +![Enter Product Key](http://www.tecmint.com/wp-content/uploads/2015/08/Enter-Product-Key.jpg) + +*输入产品密钥* + +![Select Express Settings](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Express-Settings.jpg) + +*使用快速设置* + +13、又出现了三个界面,作为 Linux 用户我认为此处应有信息来告诉我安装程序在做什么,但是我想多了。 + +![Loading Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Loading-Windows.jpg) + +*载入 Windows* + +![Getting Updates](http://www.tecmint.com/wp-content/uploads/2015/08/Getting-Updates.jpg) + +*获取更新* + +![Still Loading Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Still-Loading-Windows.jpg) + +*还是载入 Windows* + +14、安装程序想要知道谁拥有这台机器,“我的组织”或者我自己。选择我自己并继续。 + +![Select Organization](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Organization.jpg) + +*选择组织* + +15、在单击继续之前,安装程序提示我加入“Aruze Ad”或者“加入域”。我选择了后者。 + +![Connect Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Connect-Windows.jpg) + +*连接网络* + +16、安装程序让我新建一个账户。所以我输入了“user_name”就点击了下一步,我觉得我会收到一个要求我必须输入密码的信息。 + +![Create Account](http://www.tecmint.com/wp-content/uploads/2015/08/Create-Account.jpg) + +*新建账户* + +17、让我惊讶的是 Windows 甚至都没有显示一个警告或提示信息,告诉我必须创建密码。真粗心。不管怎样,现在我可以体验系统了。 + +![Windows 10 Desktop](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Desktop.jpg) + +*Windows 10的桌面环境* + +#### Linux 用户(我)直到现在的体验 #### + +- 没有网络安装镜像 +- 镜像文件太臃肿了 +- 没有验证 iso 是否为正确的方法(官方没有提供哈希值) +- 启动与安装方式仍然与 XP,Win 7,Win 8 相同(可能吧...) +- 和以前一样,安装程序没有输出它正在干什么 - 正在复制什么和正在安装什么软件包 +- 安装程序比 Linux 发行版的更加傻瓜和简单 + +####测试 Windows 10#### + +18、默认桌面很干净,上面只有一个回收站图标。我们可以直接从桌面搜索网络。底部的快捷方式分别是任务预览、网络、微软应用商店。和以前的版本一样,消息栏在右下角。 + +![ ](http://www.tecmint.com/wp-content/uploads/2015/08/Deskop-Shortcut-icons.jpg) + +*桌面图标* + +19、IE 浏览器被换成了 Edge 浏览器。微软把他们的老IE换成了 Edge (斯巴达计划) + +![Microsoft Edge Browser](http://www.tecmint.com/wp-content/uploads/2015/08/Edge-browser.jpg) + +*Edge 浏览器* + +测试起来,这个浏览器至少比 IE 要快。他们有相同的用户界面。它的主页包含新闻更新。它还有一个搜索标题栏是“下一步怎么走”。由于浏览器的全面性能提升,它的加载速度非常快。Edge 的内存占用看起来正常。 + +![Windows Performance](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Performance.jpg) + +*性能* + +Edge 也有小娜加成(智能个人助理)、支持 Chrome 扩展、支持笔记(在浏览网页时记笔记)、分享(在选项卡上右击而不必打开其他选项卡) + +#### Linux 用户(我)此时体验 #### + +20、微软确实提升了网页浏览体验。我绝对稳定性和质量还好。现在它并不落后。 + +21、对我来说,Edge 的内存占用不算太大。但是有很多用户抱怨它的内存占用太多。 + +22、很难说目前 Edge 已经准备好了与火狐或 Chrome竞争。让我们静观其变。 + +#### 更多的视觉体验 #### + +23、重新设计的开始菜单 -- 看起来很简洁高效。Merto 磁贴大部分都会动。预先放置了最通用的应用。 + +![Windows Look and Feel](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Look.jpg) + +*Windows* + +而在 Linux 的 Gnome 桌面环境下。我仅仅需要按下 Win 键并输入应用名就可以搜索应用。 + +![Search Within Desktop](http://www.tecmint.com/wp-content/uploads/2015/08/Search-Within-Desktop.jpg) + +*桌面内进行搜索* + +24、文件浏览器 -- 设计的很简洁。左边是进入文件夹的快捷方式。 + +![Windows File Explorer](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-File-Explorer.jpg) + +*Windows 文件管理器* + +我们的 Gnome 下的文件管理也同样的简洁高效。从图标上移走了不需要的图形图像是个加分点。 + +![File Browser on Gnome](http://www.tecmint.com/wp-content/uploads/2015/08/File-Browser.jpg) + +*Gnome 的文件管理* + +25、设置 -- 尽管 Windows 10的设置有点精炼,但是我们还是可以把它与 linux 的设置进行对比。 + +**Windows 的设置** + +![Windows 10 Settings](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Settings.jpg) + +*Windows 10 设置* + +**Linux Gnome 上的设置** + +![Gnome Settings](http://www.tecmint.com/wp-content/uploads/2015/08/Gnome-Settings.jpg) + +*Gnome 的设置* + +26、应用列表 -- 目前,Linux上的应用列表要好于之前的版本(据我所记,那时我还是一个普通的 Windows 用户),但是 Windows 10 的还比 Gnome 3 的差一点。 + +**Windows 的应用列表** + +![Application List on Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Application-List-on-Windows-10.jpg) + +*Windows 10 的应用列表* + +**Gnome3 的应用列表** + +![Gnome Application List on Linux](http://www.tecmint.com/wp-content/uploads/2015/08/Gnome-Application-List-on-Linux.jpg) + +*Gnome3 的应用列表* + +27、虚拟桌面 -- Windows 10 上的虚拟桌面是近来被提及最多的特性之一。 + +这是 Windows 10 上的虚拟桌面。 + +![Windows Virtual Desktop](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Virtual-Desktop.jpg) + +*Windows 的虚拟桌面* + +这是我们 Linux 用户使用了超过20年的虚拟桌面。 + +![Virtual Desktop on Linux](http://www.tecmint.com/wp-content/uploads/2015/08/Virtual-Desktop-on-Linux.jpg) + +*Linux 的虚拟桌面* + +#### Windows 10 的其他新特性 #### + +28、Windows 10 自带 wifi 感知。它会把你的 wifi 密码分享给他人。任何在你 wifi 范围内并且曾经通过 Skype, Outlook, Hotmail 或 Facebook与你联系的人都能够获得你的网络接入权。这个特性的本意是让用户可以省时省力的连接网络。 + +在微软对于 Tecmint 的问题的回答中,他们说道 -- 用户需要在每次到一个新的网络环境时自己去同意打开 wifi 感知。如果我们考虑到网络安全这将是很不安全的一件事。微软的说法并没有说服我。 + +29、从 Windows 7 和 Windows 8.1 升级可以省下买新版的花费。(家庭版 $119 专业版$199) + +30、微软发布了第一个累积更新,这个更新在一小部分设备上会让系统一直重启。Windows可能不知道这个问题或者不知道它发生的原因。 + +31、微软内建的“禁用/隐藏我不想要的更新”的功能在我这不起作用。这意味着一旦更新开始推送,你没有方法去禁用/隐藏他们。对不住啦,Windows 用户。 + +#### Windows 10 包含的来源于 Linux 的功能 #### + +Windows 10 有很多直接取自 Linux 的功能。如果 Linux 不以 GPL 发布的话,也许以下这些功能永远不会出现在 Windows上。 + +32、命令行的包管理器 -- 是的,你没有听错!Windows 10内建了一个包管理器。它只在 Power Shell 下工作。OneGet 是Windows 的官方包管理器。 + +![Windows 10 Package Manager](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Package-Manager.jpg) + +*Windows 10的包管理器* + +- 无边窗口 +- 扁平化图标 +- 虚拟桌面 +- 离线/在线搜索一体化 +- 手机/桌面系统融合 + +### 总体印象### + +- 响应速度提升 +- 动画很好看 +- 资源占用少 +- 电池续航提升 +- Edge 浏览器很稳定 +- 支持树莓派 2 +- Windows 10 好的原因是 Windows 8/8.1 没有达到公众预期并且坏的可以 +- 旧瓶装新酒:Windows 10基本上就是以前的那一套换上新的图标 + +测试后我对 Windows 10 的评价是:Windows 10 在视觉和感觉上做了一些更新(就如同 Windows 经常做的那样)。我要为斯巴达计划、虚拟桌面、命令行包管理器、整合在线/离线搜索的搜索栏点赞。这确实是一个更新后的产品 ,但是认为 Windows 10 将是 Linux 的最后一个棺材钉的人错了。 + +Linux 走在 Windows 前面。它们的做事方法并不相同。在以后的一段时间里 Windows 不会站到 Linux这一旁。也没有什么让 Linux 用户值得去使用 Windows 10。 + +这就是我要说的。希望你喜欢本文。如果你们喜欢本篇文章我会再写一些你们喜欢读的有趣的文章。在下方留下你的有价值的评论。 + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/a-linux-user-using-Windows-10-after-more-than-8-years-see-comparison/ + +作者:[Avishek Kumar][a] +译者:[name1e5s](https://github.com/name1e5s) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.tecmint.com/author/avishek/ +[1]:https://www.microsoft.com/en-us/software-download/Windows10ISO diff --git a/translated/talk/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md b/translated/talk/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md deleted file mode 100644 index 6f821f777d..0000000000 --- a/translated/talk/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md +++ /dev/null @@ -1,344 +0,0 @@ -对比Windows 10与Linux:Linux用户已经使用'Windows 10'超过8年 -============================================================================================================================================================== -Windows 10 是2015年7月29日上市的最新一代Windows NT系列系统,Windows 8.1 的继任者.Windows 10 支持Intel 32位平台,AMD64以及ARM v7处理器. - -![Windows 10 and Linux Comparison](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-vs-Linux.jpg) - -对比:Windows 10与Linux - -作为一个连续使用linux超过8年的用户,我想要去测试Windows 10 ,因为它最近制造了很多新闻.这篇文章是我观察力的一个重大突破.我将从一个linux用户的角度去看待一切,所以这篇文章可能会有些偏向于linux.尽管如此,本文也应该不会有任何错误信息. - -1. 用谷歌搜索"download Windows 10" 并且点击第一个链接. - -![Search Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Search-Windows-10.jpg) - -搜索Windows 10 - -你也可以直接打开: [https://www.microsoft.com/en_us/software-download/Windows10[1] - -2. 微软要求我从Windows 10, Windows 10 KN, Windows 10 N 和Windows 10 单语言版中选择一个版本 - -![Select Windows 10 Edition](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Windows-10-Edition.jpg) - -选择版本 - -以下是各个版本的简略信息: - -- Windows 10 - 包含微软提供给我们的所有软件 -- Windows 10N - 此版本不包含媒体播放器 -- Windows 10KN - 此版本没有媒体播放能力 -- Windows 10单语言版 - 仅预装一种语言 - -3. 我选择了第一个选项 " Windows 10"并且单击"确认".之后我要选择语言,我选择了"英语" - -微软给我提供了两个下载链接.一个是32位版,另一个是64位版.我单击了64位版--这与我的电脑架构相同. - -![Download Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Download-Windows-10.jpg) - -下载Windows 10 - -我的带宽是15M的,下载了整整3个小时.不幸的是微软没有提供系统的种子文件,否则整个过程会更加舒畅.镜像大小为 3.8 GB(译者注:就我的10M小水管,我使用迅雷下载用时50分钟). - -我找不到更小的镜像,微软并没有为Windows提供网络安装镜像.我也没有办法在下载完成后去校验哈希值. - -我十分惊讶,Windows在这样的问题上居然如此漫不经心.为了验证这个镜像是否正确下载,我需要把它刻到光盘上或者复制到我的U盘上然后启动它,一直静静的看着它安装直到安装完成. - -首先,我用dd命令将win10的iso镜像刻录到U盘上 - - # dd if=/home/avi/Downloads/Win10_English_x64.iso of=/dev/sdb1 bs=512M; sync - -这需要一点时间.在此之后我重启系统并在UEFI(BIOS)设置中选择从我的U盘启动. - -#### 系统要求 #### - -升级 - -- 仅支持从Windows 7 SP1或者Windows 8.1升级 - -重新安装 - -- 处理器: 1GHz 以上 -- 内存: 1GB以上(32位),2GB以上(64位) -- 硬盘: 16GB以上(32位),20GB以上(64位) -- 显卡: 支持DirectX 9或更新 + WDDM 1.0 驱动 - -###Windows 10 安装过程### - -1. Windows 10启动成功了.他们又换了logo,但是仍然没有信息提示我它正在做什么. - -![Windows 10 Logo](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Logo.jpg) - -Windows 10 Logo - -2. 选择安装语言,时区,键盘,输入法,点击下一步 - -![Select Language and Time](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Language-and-Time.jpg) - -选择语言和时区 - -3. 点击'现在安装' - -![Install Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Install-Windows-10.jpg) - -安装Windows 10 - -4. 下一步是输入密钥,我点击了跳过 - -![Windows 10 Product Key](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Product-Key.jpg) - -Windows 10 产品密钥 - -5. 从列表中选择一个系统版本.我选择了Windows 10专业版 - -![Select Install Operating System](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Install-Operating-System.jpg) - -选择系统版本 - -6. 到了协议部分,选中"我接受"然后点击下一步 - -![Accept License](http://www.tecmint.com/wp-content/uploads/2015/08/Accept-License.jpg) - -同意协议 - -7. 下一步是选择(从Windows的老版本)升级到Windows 10或者安装Windows.我搞不懂为什么微软要让我自己选择:"安装Windows"被微软建议为"高级"选项.但是我还是选择了"安装Windows". - -![Select Installation Type](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Installation-Type.jpg) - -选择安装类型 - -8. 选择驱动器,点击"下一步" - -![Select Install Drive](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Install-Drive.jpg) - -选择安装盘 - -9. 安装程序开始复制文件,准备文件,安装更新,之后进行收尾.(如果安装程序能在安装时输出一堆字符来表示他在做什么就更好了) - -![Installing Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Installing-Windows.jpg) - -安装 Windows - -10. 在此之后Windows重启了.他们说为了继续,我们需要重启 - -![Windows Installation Process](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Installation-Process.jpg) - -安装进程 - -11. 我看到了一个写着"正在准备Windows"的界面.它停了整整五分多钟,仍然没有说明它正在做什么.没有输出. - -![Windows Getting Ready](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Getting-Ready.jpg) - -正在准备Windows - -12. 又到了输入产品密钥的时间.我点击了"以后再说",并使用快速设置 - -![Enter Product Key](http://www.tecmint.com/wp-content/uploads/2015/08/Enter-Product-Key.jpg) - -输入产品密钥 - -![Select Express Settings](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Express-Settings.jpg) - -使用快速设置 - - -13. 又出现了三个界面,作为Linux用户我认为此处应有信息来告诉我安装程序在做什么,但是我想多了 -![Loading Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Loading-Windows.jpg) - -载入 Windows - -![Getting Updates](http://www.tecmint.com/wp-content/uploads/2015/08/Getting-Updates.jpg) - -获取更新 - -![Still Loading Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Still-Loading-Windows.jpg) - -还是载入 Windows - -14. 安装程序想要知道谁拥有这台机器,"我的组织"或者我自己 - -![Select Organization](http://www.tecmint.com/wp-content/uploads/2015/08/Select-Organization.jpg) - -选择组织 - -15. 安装程序提示我加入"Aruze Ad"或者"加入域".在单击继续之前,我选择了后者. - -![Connect Windows](http://www.tecmint.com/wp-content/uploads/2015/08/Connect-Windows.jpg) - -连接网络 - -16. 安装程序让我新建一个账户.所以我输入了 "user_name"并点击下一步,我觉得我会收到一个要求我必须输入密码的信息. - -![Create Account](http://www.tecmint.com/wp-content/uploads/2015/08/Create-Account.jpg) - -新建账户 - -17. 让我惊讶的是Windows甚至都没有警告/发现我必须创建密码.真粗心.不管怎样,现在我可以体验系统了. - -![Windows 10 Desktop](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Desktop.jpg) - -Windows 10的桌面环境 - -#### Linux用户(我)直到现在的体验 #### - -- 没有网络安装镜像 -- 镜像文件太臃肿了 -- 没有验证iso是否为正确的方法(官方没有提供哈希值) -- 启动与安装方式仍然与XP,Win 7,Win 8相同(可能吧...) -- 和以前一样,安装程序没有输出他正在干什么 - 正在复制什么和正在安装什么软件包 -- 安装程序比Linux发行版的更加直白和简单 - -####测试 Windows#### - -18. 默认桌面很干净,上面只有一个回收站图标.我们可以直接从桌面搜索网络.底部的快捷方式分别是任务预览,网络,微软应用商店.和以前的版本一样,消息栏在右下角. - -![ ](http://www.tecmint.com/wp-content/uploads/2015/08/Deskop-Shortcut-icons.jpg) - -桌面图标 - -19. IE浏览器被换成了Edge浏览器.微软把他们的老IE换成了Edge(斯巴达计划) - -![Microsoft Edge Browser](http://www.tecmint.com/wp-content/uploads/2015/08/Edge-browser.jpg) - -Edge浏览器 - -这个浏览器至少比IE要快.他们有相同的用户界面.它的主页包含新的更新.它还有一个标题是"下一步怎么走".由于它全面的性能提升,它的加载速度非常快.Edge的内存占用看起来一般般. - -![Windows Performance](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Performance.jpg) - -性能 - -Edge也有小娜加成 -- 智能个人助理.支持笔记(在浏览网页时记笔记),分享(在本TAB分享而不必打开其他TAB) - -#### Linux用户(我)此时体验 #### - -20. 微软确实提升了网页浏览体验.我们要看的就是他的稳定性和质量.现在它并不落后. - -21. 对我来说,Edge的内存占用不算太大.但是有很多用户抱怨他的内存占用. - -22. 很难说目前Edge已经准备好了与火狐或Chrome竞争.让我们静观其变. - -#### 更多的视觉体验 #### - -23. 重新设计的开始菜单 -- 看起来很简洁高效.Merto磁贴大部分都会动.预先放置了最通用的应用. - -![Windows Look and Feel](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Look.jpg) - -Windows - -在Linux的Gnome桌面环境下.我仅仅需要按下Win键并输入应用名就可以搜索应用. - -![Search Within Desktop](http://www.tecmint.com/wp-content/uploads/2015/08/Search-Within-Desktop.jpg) - -桌面内进行搜索 - -24. 文件浏览器 -- 设计的很简洁.左边是进入文件夹的快捷方式. - -![Windows File Explorer](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-File-Explorer.jpg) - -Windows资源管理器 - -我们的Gnome下的文件管理也同样的简洁高效. - -![File Browser on Gnome](http://www.tecmint.com/wp-content/uploads/2015/08/File-Browser.jpg) - -Gnome 的文件管理 - -25. 设置 -- 尽管Windows 10的设置有点精炼,但是我们还是可以把它与linux的设置进行对比. - -**Windows 的设置** - -![Windows 10 Settings](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Settings.jpg) - -Windows 10 设置 - -**Linux Gnome 上的设置** - -![Gnome Settings](http://www.tecmint.com/wp-content/uploads/2015/08/Gnome-Settings.jpg) - -Gnome 的设置 - -26. 应用列表 -- 目前,Linux上的应用列表比之前的版本要好一些 - -**Windows 的应用列表** - -![Application List on Windows 10](http://www.tecmint.com/wp-content/uploads/2015/08/Application-List-on-Windows-10.jpg) - -Windows 10 的应用列表 - -**Gnome3 的应用列表** - -![Gnome Application List on Linux](http://www.tecmint.com/wp-content/uploads/2015/08/Gnome-Application-List-on-Linux.jpg) - -Gnome3 的应用列表 - -27. 虚拟桌面 -- Windows 10 上的虚拟桌面是近来被提及最多的特性之一 - -这是Windows 10 上的虚拟桌面. - -![Windows Virtual Desktop](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-Virtual-Desktop.jpg) - -Windows的虚拟桌面 - -这是我们Linux用户使用了超过20年的虚拟桌面. - -![Virtual Desktop on Linux](http://www.tecmint.com/wp-content/uploads/2015/08/Virtual-Desktop-on-Linux.jpg) - -Linux的虚拟桌面 - -#### Windows 10 的其他新特性 #### - -28. Windows 10 自带wifi感知.它会把你的wifi密码分享给他人.任何在你wifi范围内并且曾经通过Skype, Outlook, Hotmail 或 Facebook与你联系的人都能够获得你的网络接入权.这个特性的本意是让用户可以省时省力的连接网络. - -在微软对于 Tecmint 的问题的回答中,他们说道 -- 用户需要在每次到一个新的网络环境时自己去同意打开wifi感知.如果我们考虑到网络安全这将是很不安全的一件事.微软的说法并没有说服我. - -29. 从Windows 7 和 Windows 8.1升级可以省下买新版的花费.(家庭版$119 专业版$199 ) - -30. 微软发布了第一个累积更新,这个更新在一小部分设备上会让系统一直重启.Windows可能不知道这个问题或者不知道它发生的原因. - -31. 微软内建的禁用/隐藏我不想要的更新的功能在我这不起作用.这意味着一旦更新开始推送,你没有方法去禁用/隐藏他们.对不住啦,Windows 用户. - -#### Windows 10 包含的来源于Linux的功能 #### - -Windows 10有很多直接取自Linux的功能.如果Linux不已GPL发布的话,以下下这些功能永远不会出现在Windows上. - -32. 包管理器 -- 是的,你没有听错!Windows 10内建了一个包管理器.它只在Power Shell下工作.OneGet是Windows的官方包管理器. - -![Windows 10 Package Manager](http://www.tecmint.com/wp-content/uploads/2015/08/Windows-10-Package-Manager.jpg) - - Windows 10的包管理器 - -- 无国界的Windows -- 扁平化图标 -- 虚拟桌面 -- 离线/在线搜索一体化 -- 手机/桌面系统一体化 - -### 总体印象### - -- 响应速度提升 -- 动画很好看 -- 资源占用少 -- 电池续航提升 -- Edge浏览器坚如磐石 -- 支持树莓派 2 -- Windows 10好的原因是Windows 8/8.1没有达到公众预期并且坏的可以 -- 旧瓶装新酒:Windows 10基本上就是以前的那一套换上新的图标 - -测试后我对Windows 10的评价是:Windows 10 在视觉和感觉上做了一些更新(就如同Windows经常做的那样).我要为斯巴达计划,虚拟桌面,命令行包管理器,整合在线/离线搜索的搜索栏点赞.这确实是一个更新后的产品 ,但是认为Windows 10将是Linux的最后一个棺材钉的人错了. - -Linux走在Windows前面.它们的做事方法并不相同.在以后的一段时间里Windows不会站到Linux这一旁.Linux用户也不必去使用Windows 10. - -这就是我要说的.希望你喜欢本文.如果你们喜欢本篇文章我会再写一些你们喜欢读的有趣的文章.在下方留下你的有价值的评论. - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/a-linux-user-using-Windows-10-after-more-than-8-years-see-comparison/ - -作者:[vishek Kumar][a] -译者:[name1e5s](https://github.com/name1e5s) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.tecmint.com/author/avishek/ -[1]:https://www.microsoft.com/en-us/software-download/Windows10ISO From d28b10a297ae9f8b6fc8ca292f70766b94e8fc43 Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Fri, 12 Feb 2016 22:22:09 +0800 Subject: [PATCH 040/582] =?UTF-8?q?20160212-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...isk in Linux CentOS 7 Without Rebooting.md | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md diff --git a/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md b/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md new file mode 100644 index 0000000000..b9e906a435 --- /dev/null +++ b/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md @@ -0,0 +1,172 @@ +How to Add New Disk in Linux CentOS 7 Without Rebooting +================================================================================ + +Increasing disk spaces on the Linux servers is a daily routine work for very system administrator. So, in this article we are going to show you some simple simple steps that you can use to increase your disk spaces on Linux CentOS 7 without rebooting to your production server using Linux commands. We will cover multiple methods and possibilities to increase and add new disks to the Linux systems, so that you can follow the one that you feel comfortable while using according to your requirements. + +### 1. Increasing Disk of VM Guest: ### + +Before increasing the disk volume inside your Linux system, you need to add a new disk or increase the one its has already attached with the system by editing its settings from your VMware vShere, Workstation or any other infrastructure environment that you are using. + +![Increase disk](http://blog.linoxide.com/wp-content/uploads/2016/02/1.png) + +### 2. Check Disk Space: ### + +Run the following command to check the current size of your disk space. + + # df -h + # fdisk -l + +![Fdisk check](http://blog.linoxide.com/wp-content/uploads/2016/02/2.png) + +Here we can see that the total disk size is still the same that is 10 GB while we have already increased it to 50 GB from the back end. + +### 3. Expanding Space without Rebooting VM ### + +Now run the following commands to expand the disk space in the physical volume of the Operating System without rebooting the virtual machine by Re-scanning the SCSI Bus and then adding SCSI Device. + + # ls /sys/class/scsi_host/ + # echo "- - -" > /sys/class/scsi_host/host0/scan + # echo "- - -" > /sys/class/scsi_host/host1/scan + # echo "- - -" > /sys/class/scsi_host/host2/scan + +Check the names of your SCSI devices and then rescan the SCSI buses using below commands. + + # ls /sys/class/scsi_device/ + # echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan + # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan + +That will rescan the current scsi bus and the disk size that we increased from the VM guest settings will be show up as you can see in the below image. + +![Rescan disk device](http://blog.linoxide.com/wp-content/uploads/2016/02/3.png) + +### 4. New Disk Partition: ### + +Once you are able to see the increased disk space inside your system then the run the following command to format your disk for creating a new partition by following the steps to increase your physical disk volume. + + # fdisk /dev/sda + Welcome to fdisk (util-linux 2.23.2) press the 'm' key for help + Command (m for help): m + Command action + a toggle a bootable flag + b edit bsd disklabel + c toggle the dos compatibility flag + d delete a partition + g create a new empty GPT partition table + G create an IRIX (SGI) partition table + l list known partition types + m print this menu + n add a new partition + o create a new empty DOS partition table + p print the partition table + q quit without saving changes + s create a new empty Sun disklabel + t change a partition's system id + u change display/entry units + v verify the partition table + w write table to disk and exit + x extra functionality (experts only) + + Command (m for help): + +Type the 'p' to print the current partition table then create a new primary partition by typing the 'n' key and selecting the available sectors. Change the disk type to 'Linux LVM' by using 't' command and selecting the code to '8e' or leave as it to its default type that is '83'. + +Now write the table to disk and exit by Entring 'w' key as shown. + + Command (m for help): w + The partition table has been altered! + + Calling ioctl() to re-read partition table. + + WARNING: Re-reading the partition table failed with error 16: Device or resource busy. + The kernel still uses the old table. The new table will be used at + the next reboot or after you run partprobe(8) or kpartx(8) + +![New disk Volume](http://blog.linoxide.com/wp-content/uploads/2016/02/3A.png) + +### 5. Creating Physical Volume: ### + +As indicated above run the 'partprobe' or kpartx command so that the tables are ready to use and then create the new Physical Volume using the below commands. + + # partprobe + # pvresize /dev/sda3 + +To check the newly created volume run the following command to see if the new physical volume has been created and visible. After that we will extend the Volume Group 'centos' with the newly create Physical Volume as shown. + + # pvdisplay + # vgextend centos /dev/sda3 + +![Extend volume Group](http://blog.linoxide.com/wp-content/uploads/2016/02/3B.png) + +### 6. Extending Logical Volume: ### + +Now we will extend the Logical Volume to increase the disk space on it using the the below command. + + # lvextend -L +40G /dev/mapper/centos-root + +Once you get the successfully increased message, run the command as shown below to extend the size of your logical volume . + + # xfs_growfs /dev/mapper/centos-root + +The size of the '/' partition has been increased successfully, you can check the size of your disk drives by using the 'df' command as shown. + +![Increase disk space](http://blog.linoxide.com/wp-content/uploads/2016/02/3C.png) + +### 7. Extending Root Partition by Adding New Disk Without Reboot: ### + +This is the second method with but with quite similar commands to increase the size of the Logical volume in CentOS 7. + +So, the first step is to Open the setting of your VM guest settings and click on the 'Add' new button and proceed to the next option. + +![Add new disk](http://blog.linoxide.com/wp-content/uploads/2016/02/3D.png) + +Choose the required configuration for the new disk by selecting the size of the new disk and its type as shown in the below image. + +![New disk setup](http://blog.linoxide.com/wp-content/uploads/2016/02/3E.png) + +Then come to the server side and repeat the following commands to scan your disk devices to the new disk is visible on the system. + + # echo "- - -" > /sys/class/scsi_host/host0/scan + # echo "- - -" > /sys/class/scsi_host/host1/scan + # echo "- - -" > /sys/class/scsi_host/host2/scan + +List the names of your SCSi devices + + # ls /sys/class/scsi_device/ + # echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan + # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan + # echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan + # fdisk -l + +![Scanning new disk](http://blog.linoxide.com/wp-content/uploads/2016/02/3F.png) + +Once the new disk is visible run the below commands to create the new physical volume and add it to the volume group as shown. + + # pvcreate /dev/sdb + # vgextend centos /dev/sdb + # vgdisplay + +![Extending Volume Group](http://blog.linoxide.com/wp-content/uploads/2016/02/3G.png) + +Now extend the Logical Volume by adding the disk space on it and then add it to the root partition. + + # lvextend -L +20G /dev/mapper/centos-root + # xfs_growfs /dev/mapper/centos-root + # df -h + +![Increase / Partition](http://blog.linoxide.com/wp-content/uploads/2016/02/3H.png) + +### Conclusion: ### + +Managing disk partitions in Linux CentOS 7 is a simple process to increase the disk space of any of your logical volumes by using the steps as described in this article. You don't need to give your production server's reboot for this purpose but simply rescan your SCSi devices and expand your desired LVM. We hope you find this article much helpful. Feel free to leave your valuable comments or suggestions. + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/add-new-disk-centos-7-without-rebooting/ + +作者:[Kashif S][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/kashifs/ \ No newline at end of file From fab54d093ced2df32f11ca3d61e13831e7663e1c Mon Sep 17 00:00:00 2001 From: runningwater Date: Sat, 13 Feb 2016 13:24:22 +0800 Subject: [PATCH 041/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=ADby=20running?= =?UTF-8?q?water?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...How to Add New Disk in Linux CentOS 7 Without Rebooting.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md b/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md index b9e906a435..006d4f9905 100644 --- a/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md +++ b/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md @@ -1,3 +1,4 @@ +(翻译中 by runningwater) How to Add New Disk in Linux CentOS 7 Without Rebooting ================================================================================ @@ -164,7 +165,8 @@ Managing disk partitions in Linux CentOS 7 is a simple process to increase the d via: http://linoxide.com/linux-how-to/add-new-disk-centos-7-without-rebooting/ 作者:[Kashif S][a] -译者:[译者ID](https://github.com/译者ID) +译者:[runningwater](https://github.com/runningwater +) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a60212ce1570b2bb004b3781fc308743f6ffc2fc Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 13 Feb 2016 22:09:35 +0800 Subject: [PATCH 042/582] =?UTF-8?q?=E8=B6=85=E6=9C=9F=E5=9B=9E=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @tastynoodle @bazz2 @213edu @taichirain @iov-wang @zky001 @KnightJoker @DongShuaike @name1e5s @zpl1025 @strugglingyouth @ezio @cposture @fw8899 --- .../20150901 5 best open source board games to play online.md | 1 - sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md | 1 - .../talk/20151019 Gaming On Linux--All You Need To Know.md | 2 -- ...0151208 5 great Raspberry Pi projects for the classroom.md | 4 ---- ...tall OsTicket Ticketing System in Fedora 22 or Centos 7.md | 1 - .../tech/20150906 How to Configure OpenNMS on CentOS 7.x.md | 1 - .../tech/20151109 How to Configure Tripwire IDS on Debian.md | 1 - ...nd email notifications using Gmail SMTP server on Linux.md | 1 - sources/tech/20151123 Data Structures in the Linux Kernel.md | 2 -- ...1202 8 things to do after installing openSUSE Leap 42.1.md | 1 - sources/tech/20151202 A new Mindcraft moment.md | 1 - ...--Summon Swarms Of Penguins To Waddle About The Desktop.md | 1 - ...esktop Fun--Text Mode ASCII-art Box and Comment Drawing.md | 3 +-- ...ri-Pi--Using the Raspberry Pi as a Secure Landing Point.md | 4 ---- sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md | 1 - ...at is good stock portfolio management software on Linux.md | 1 - ...ic Shell Scripting and Linux Filesystem Troubleshooting.md | 1 - ...artup Process and Services SysVinit Systemd and Upstart.md | 2 -- 18 files changed, 1 insertion(+), 28 deletions(-) diff --git a/sources/share/20150901 5 best open source board games to play online.md b/sources/share/20150901 5 best open source board games to play online.md index eee49289e0..c14fecc697 100644 --- a/sources/share/20150901 5 best open source board games to play online.md +++ b/sources/share/20150901 5 best open source board games to play online.md @@ -1,4 +1,3 @@ -translating by tastynoodle 5 best open source board games to play online ================================================================================ I have always had a fascination with board games, in part because they are a device of social interaction, they challenge the mind and, most importantly, they are great fun to play. In my misspent youth, myself and a group of friends gathered together to escape the horrors of the classroom, and indulge in a little escapism. The time provided an outlet for tension and rivalry. Board games help teach diplomacy, how to make and break alliances, bring families and friends together, and learn valuable lessons. diff --git a/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md index f6e40d4286..d370b87822 100644 --- a/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md +++ b/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md @@ -1,4 +1,3 @@ -bazz2222222222222222222222222222222222222222222 Review EXT4 vs. Btrfs vs. XFS ================================================================================ ![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/09/1385698302_funny_linux_wallpapers-593x445.jpg) diff --git a/sources/talk/20151019 Gaming On Linux--All You Need To Know.md b/sources/talk/20151019 Gaming On Linux--All You Need To Know.md index 525d08838b..332136112a 100644 --- a/sources/talk/20151019 Gaming On Linux--All You Need To Know.md +++ b/sources/talk/20151019 Gaming On Linux--All You Need To Know.md @@ -1,5 +1,3 @@ -213edu Translating - Gaming On Linux: All You Need To Know ================================================================================ ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Gaming-on-Linux.jpeg) diff --git a/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md b/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md index 302034c330..cefad8cc6b 100644 --- a/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md +++ b/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md @@ -1,12 +1,8 @@ -taichirain 翻译中 - 5 great Raspberry Pi projects for the classroom -5 伟大的树莓派项目教室 ================================================================================ ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png) Image by : opensource.com -图片来源 : opensource.com ### 1. Minecraft Pi ### diff --git a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md b/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md index 7a56750804..6624a3c590 100644 --- a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md +++ b/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md @@ -1,4 +1,3 @@ -translated by iov-wang How to Install OsTicket Ticketing System in Fedora 22 / Centos 7 ================================================================================ In this article, we'll learn how to setup help desk ticketing system with osTicket in our machine or server running Fedora 22 or CentOS 7 as operating system. osTicket is a free and open source popular customer support ticketing system developed and maintained by [Enhancesoft][1] and its contributors. osTicket is the best solution for help and support ticketing system and management for better communication and support assistance with clients and customers. It has the ability to easily integrate with inquiries created via email, phone and web based forms into a beautiful multi-user web interface. osTicket makes us easy to manage, organize and log all our support requests and responses in one single place. It is a simple, lightweight, reliable, open source, web-based and easy to setup and use help desk ticketing system. diff --git a/sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md b/sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md index aca2b04bba..f209c8e45c 100644 --- a/sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md +++ b/sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md @@ -1,4 +1,3 @@ -translated by ivo-wang How to Configure OpenNMS on CentOS 7.x ================================================================================ Systems management and monitoring services are very important that provides information to view important systems management information that allow us to to make decisions based on this information. To make sure the network is running at its best and to minimize the network downtime we need to improve application performance. So, in this article we will make you understand the step by step procedure to setup OpenNMS in your IT infrastructure. OpenNMS is a free open source enterprise level network monitoring and management platform that provides information to allow us to make decisions in regards to future network and capacity planning. diff --git a/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md b/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md index 11e7dbad60..b5068348e4 100644 --- a/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md +++ b/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md @@ -1,4 +1,3 @@ -正在翻译:zky001 How to Configure Tripwire IDS on Debian ================================================================================ This article is about Tripwire installation and configuration on Debian OS. It is a host based Intrusion detection system (IDS) for Linux environment. Prime function of tripwire IDS is to detect and report any unauthorized change (files and directories ) on linux system. After tripwire installation, baseline database created first, tripwire monitors and detects changes such as new file addition/creation, file modification and user who changed it etc. If the changes are legitimate, you can accept the changes to update tripwire database. diff --git a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md index 22e8606c6c..5ffcb5aea8 100644 --- a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md +++ b/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md @@ -1,4 +1,3 @@ -Translating by KnightJoker How to send email notifications using Gmail SMTP server on Linux ================================================================================ Suppose you want to configure a Linux app to send out email messages from your server or desktop. The email messages can be part of email newsletters, status updates (e.g., [Cachet][1]), monitoring alerts (e.g., [Monit][2]), disk events (e.g., [RAID mdadm][3]), and so on. While you can set up your [own outgoing mail server][4] to deliver messages, you can alternatively rely on a freely available public SMTP server as a maintenance-free option. diff --git a/sources/tech/20151123 Data Structures in the Linux Kernel.md b/sources/tech/20151123 Data Structures in the Linux Kernel.md index d344eacd97..187b3ce9cd 100644 --- a/sources/tech/20151123 Data Structures in the Linux Kernel.md +++ b/sources/tech/20151123 Data Structures in the Linux Kernel.md @@ -1,5 +1,3 @@ -Translating by DongShuaike - Data Structures in the Linux Kernel ================================================================================ diff --git a/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md b/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md index 183d39252f..b941c3d611 100644 --- a/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md +++ b/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md @@ -1,4 +1,3 @@ -#name1e5s Translating 8 things to do after installing openSUSE Leap 42.1 ================================================================================ ![Credit: Metropolitan Transportation/Flicrk](http://images.techhive.com/images/article/2015/11/things-to-do-100626947-primary.idge.jpg) diff --git a/sources/tech/20151202 A new Mindcraft moment.md b/sources/tech/20151202 A new Mindcraft moment.md index 92c645ea4b..79930e8202 100644 --- a/sources/tech/20151202 A new Mindcraft moment.md +++ b/sources/tech/20151202 A new Mindcraft moment.md @@ -1,4 +1,3 @@ -zpl1025 A new Mindcraft moment? ======================= diff --git a/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md b/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md index b544517f5e..73d16fe1bd 100644 --- a/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md +++ b/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md @@ -1,4 +1,3 @@ -translation by strugglingyouth Linux Desktop Fun: Summon Swarms Of Penguins To Waddle About The Desktop ================================================================================ XPenguins is a program for animating cute cartoons animals in your root window. By default it will be penguins they drop in from the top of the screen, walk along the tops of your windows, up the side of your windows, levitate, skateboard, and do other similarly exciting things. Now you can send an army of cute little penguins to invade the screen of someone else on your network. diff --git a/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md b/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md index 268c6c9477..fad7c6443b 100644 --- a/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md +++ b/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md @@ -1,4 +1,3 @@ -翻译中 Linux / Unix Desktop Fun: Text Mode ASCII-art Box and Comment Drawing ================================================================================ Boxes command is a text filter and a little known tool that can draw any kind of ASCII art box around its input text or code for fun and profit. You can quickly create email signatures, or create regional comments in any programming language. This command was intended to be used with the vim text editor, but can be tied to any text editor which supports filters, as well as from the command line as a standalone tool. @@ -191,7 +190,7 @@ See also via: http://www.cyberciti.biz/tips/unix-linux-draw-any-kind-of-boxes-around-text-editor.html 作者:Vivek Gite -译者:[zky001](https://github.com/zky001) +译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/sources/tech/20151215 Securi-Pi--Using the Raspberry Pi as a Secure Landing Point.md b/sources/tech/20151215 Securi-Pi--Using the Raspberry Pi as a Secure Landing Point.md index 7388b7693e..36c28d25d6 100644 --- a/sources/tech/20151215 Securi-Pi--Using the Raspberry Pi as a Secure Landing Point.md +++ b/sources/tech/20151215 Securi-Pi--Using the Raspberry Pi as a Secure Landing Point.md @@ -1,7 +1,3 @@ -translating by ezio - - - Securi-Pi: Using the Raspberry Pi as a Secure Landing Point ================================================================================ diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md index 80031c7fd8..99f1ceed04 100644 --- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md +++ b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md @@ -1,4 +1,3 @@ -[Translating by cposture 16-01-14] * * * # GCC-Inline-Assembly-HOWTO diff --git a/sources/tech/20160104 What is good stock portfolio management software on Linux.md b/sources/tech/20160104 What is good stock portfolio management software on Linux.md index b7c372ce71..258cf104fc 100644 --- a/sources/tech/20160104 What is good stock portfolio management software on Linux.md +++ b/sources/tech/20160104 What is good stock portfolio management software on Linux.md @@ -1,4 +1,3 @@ -translating by fw8899 What is good stock portfolio management software on Linux ================================================================================ If you are investing in the stock market, you probably understand the importance of a sound portfolio management plan. The goal of portfolio management is to come up with the best investment plan tailored for you, considering your risk tolerance, time horizon and financial goals. Given its importance, no wonder there are no shortage of commercial portfolio management apps and stock market monitoring software, each touting various sophisticated portfolio performance tracking and reporting capabilities. diff --git a/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md b/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md index 841d5c0625..4d0a5a229a 100644 --- a/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md +++ b/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md @@ -1,4 +1,3 @@ -Being translated by hittlle...... Part 10 - LFCS: Understanding & Learning Basic Shell Scripting and Linux Filesystem Troubleshooting ================================================================================ The Linux Foundation launched the LFCS certification (Linux Foundation Certified Sysadmin), a brand new initiative whose purpose is to allow individuals everywhere (and anywhere) to get certified in basic to intermediate operational support for Linux systems, which includes supporting running systems and services, along with overall monitoring and analysis, plus smart decision-making when it comes to raising issues to upper support teams. diff --git a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md index 3a2dfa844a..2a822e8a45 100644 --- a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md +++ b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md @@ -1,5 +1,3 @@ -Translating by Flowsnow - Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart) ================================================================================ A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams. From 1318b4f220f427102d05c4d5ada4bfc712404fb8 Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Sun, 14 Feb 2016 15:45:59 +0800 Subject: [PATCH 043/582] =?UTF-8?q?20160214-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ll MariaDB 10 on CentOS 7 CPanel Server.md | 326 ++++++++++++++++++ 1 file changed, 326 insertions(+) create mode 100644 sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md diff --git a/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md b/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md new file mode 100644 index 0000000000..53160a0c31 --- /dev/null +++ b/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md @@ -0,0 +1,326 @@ +How to Install MariaDB 10 on CentOS 7 CPanel Server +================================================================================ + +MariaDB is a enhanced open source and drop-in replacement for MySQL. It is developed by MariaDB community and available under the terms of the GPL v2 license. Software Security is the main focus for the MariaDB developers. They maintain its own set of security patches for each MariaDB releases. When any critical security issues are discovered, the developers introduces a new release of MariaDB to get the fix out as soon as possible. + +MariaDB is always up-to-date with the latest MySQL releases. It is highly compatible and works exactly like the MySQL. Almost all commands, data, table definition files, Client APIs, protocols, interfaces, structures, filenames, binaries, ports, database storage locations etc are same as the MySQL. It isn't even needed to convert databases to switch to MariaDB. + +### Advantages of MariaDB ### + +- Truly Open source +- More quicker and transparent security releases +- Highly Compatible with MySQL +- Improved Performance +- More storage engines compared to MySQL + +In this article, I provides guidelines on how to upgrade MySQL 5.5 to the latest MariaDB on a CentOS 7 CPanel server. Let's walk through the Pre-installation steps. + +### Pre-requisites: ### + +#### 1. Stop current MySQL Service #### + + root@server1 [/var/# mysql + Welcome to the MySQL monitor. Commands end with ; or \g. + Your MySQL connection id is 5859 + Server version: 5.5.47-cll MySQL Community Server (GPL) + + Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + Oracle is a registered trademark of Oracle Corporation and/or its + affiliates. Other names may be trademarks of their respective + owners. + + Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. + + root@server1 [~]# systemctl stop mysql + root@server1 [~]# systemctl status mysql + ● mysql.service - LSB: start and stop MySQL + Loaded: loaded (/etc/rc.d/init.d/mysql) + Active: failed (Result: exit-code) since Sun 2016-01-31 10:00:02 UTC; 1min 31s ago + Docs: man:systemd-sysv-generator(8) + Main PID: 23430 (code=exited, status=203/EXEC) + + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Started MySQL Server. + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Starting MySQL Server... + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: mysql.service: main process exited, code=exited, status=203/EXEC + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Unit mysql.service entered failed state. + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: mysql.service failed. + +#### 2. Move all configuration files and databases prior to the upgrade #### + +Move the DB storage path and MySQL configuration files + + root@server1 [~]# cp -Rf /var/lib/mysql /var/lib/mysql-old + + root@server1 [/var/lib/mysql]# cat /etc/my.cnf + [mysqld] + default-storage-engine=MyISAM + innodb_file_per_table=1 + max_allowed_packet=268435456 + open_files_limit=10000 + + root@server1 [~]#mv /etc/my.cnf /etc/my.cnf-old + +#### 3. Remove and uninstall all MySQL rpms from the server #### + +Run the following commands to disable the MySQL RPM targets. By running this commands, cPanel will no longer handle MySQL updates, and mark these rpm.versions as uninstalled on the system. + + /scripts/update_local_rpm_versions --edit target_settings.MySQL50 uninstalled + /scripts/update_local_rpm_versions --edit target_settings.MySQL51 uninstalled + /scripts/update_local_rpm_versions --edit target_settings.MySQL55 uninstalled + /scripts/update_local_rpm_versions --edit target_settings.MySQL56 uninstalled + +Now run the this command: + +/scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55,MySQL56 to remove all existing MySQL rpms on the server and leave a clean environment for MariaDB installation. Please see its output below: + + root@server1 [/var/lib/mysql]# /scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55,MySQL56 + [2016-01-31 09:53:59 +0000] + [2016-01-31 09:53:59 +0000] Problems were detected with cPanel-provided files which are RPM controlled. + [2016-01-31 09:53:59 +0000] If you did not make these changes intentionally, you can correct them by running: + [2016-01-31 09:53:59 +0000] + [2016-01-31 09:53:59 +0000] > /usr/local/cpanel/scripts/check_cpanel_rpms --fix + [2016-01-31 09:53:59 +0000] + [2016-01-31 09:53:59 +0000] The following RPMs are unneeded on your system and should be uninstalled: + [2016-01-31 09:53:59 +0000] MySQL55-client-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-devel-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-server-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-shared-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-test-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] compat-MySQL50-shared-5.0.96-4.cp1136 + [2016-01-31 09:53:59 +0000] compat-MySQL51-shared-5.1.73-1.cp1150 + [2016-01-31 09:53:59 +0000] Removing 0 broken rpms: + [2016-01-31 09:53:59 +0000] rpm: no packages given for erase + [2016-01-31 09:53:59 +0000] No new RPMS needed for install + [2016-01-31 09:53:59 +0000] Disabling service monitoring. + [2016-01-31 09:54:01 +0000] Uninstalling unneeded rpms: MySQL55-test MySQL55-server MySQL55-client compat-MySQL51-shared compat-MySQL50-shared MySQL55-shared MySQL55-devel + [2016-01-31 09:54:04 +0000] Removed symlink /etc/systemd/system/multi-user.target.wants/mysql.service. + [2016-01-31 09:54:04 +0000] Restoring service monitoring. + +With these steps, we've uninstalled existing MySQL RPMs, marked targets to prevent further MySQL updates and made the server ready and clean for the MariaDB installation. + +To startup with the installation, we need to create a yum repository for MariaDB depending on the MariaDB & CentOS versions. This is how I did it! + +### Installation procedures: ### + +#### Step 1: Creating a YUM repository. #### + + root@server1 [~]# vim /etc/yum.repos.d/MariaDB.repo + [mariadb] + name = MariaDB + baseurl = http://yum.mariadb.org/10.0/centos7-amd64/ + gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB + gpgcheck=1 + root@server1 [/etc/yum.repos.d]# cat /etc/yum.repos.d/MariaDB.repo + [mariadb] + name = MariaDB + baseurl = http://yum.mariadb.org/10.0/centos7-amd64/ + gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB + gpgcheck=1 + +#### Step 2: Open the /etc/yum.conf and modify the exclude line as below: #### + +**Remove this line** exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* php* proftpd* pure-ftpd* spamassassin* squirrelmail* + +**And replace with this line** exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* nsd* proftpd* pure-ftpd* spamassassin* squirrelmail* + +**\*\*\* IMPORTANT \*\*\*** + +We need to make sure, we've removed the MySQL and PHP from the exclude list. + +#### Step 3: Run the following command to install MariaDB and related packages. #### + +**yum install MariaDB-server MariaDB-client MariaDB-devel php-mysql** + + root@server1 [~]#yum install MariaDB-server MariaDB-client MariaDB-devel php-mysql + + Dependencies Resolved + + =============================================================================================================================================== + Package Arch Version Repository Size + =============================================================================================================================================== + Installing: + MariaDB-client x86_64 10.0.23-1.el7.centos mariadb 10 M + MariaDB-devel x86_64 10.0.23-1.el7.centos mariadb 6.3 M + MariaDB-server x86_64 10.0.23-1.el7.centos mariadb 55 M + php-mysql x86_64 5.4.16-36.el7_1 base 99 k + Installing for dependencies: + MariaDB-common x86_64 10.0.23-1.el7.centos mariadb 43 k + MariaDB-shared x86_64 10.0.23-1.el7.centos mariadb 1.2 M + libzip x86_64 0.10.1-8.el7 base 48 k + php-common x86_64 5.4.16-36.el7_1 base 563 k + php-pdo x86_64 5.4.16-36.el7_1 base 97 k + + Transaction Summary + =============================================================================================================================================== + Install 4 Packages (+5 Dependent package) + +#### Step 4: Restart and make sure the MySQL service is up. #### + + root@server1 [~]# systemctl start mysql + root@server1 [~]# + root@server1 [~]# + root@server1 [~]# systemctl status mysql + ● mysql.service - LSB: start and stop MySQL + Loaded: loaded (/etc/rc.d/init.d/mysql) + Active: active (exited) since Sun 2016-01-31 10:01:46 UTC; 3s ago + Docs: man:systemd-sysv-generator(8) + Process: 23717 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS) + Main PID: 23430 (code=exited, status=203/EXEC) + + Jan 31 10:01:46 server1.centos7-test.com systemd[1]: Starting LSB: start and stop MySQL... + Jan 31 10:01:46 server1.centos7-test.com mysql[23717]: Starting MySQL SUCCESS! + Jan 31 10:01:46 server1.centos7-test.com systemd[1]: Started LSB: start and stop MySQL. + +#### Step 5: Run mysql_upgrade command #### + +It will examine all tables in all databases for incompatibilities with the current installed version and upgrades the system tables if necessary to take advantage of new privileges or capabilities that might have added with the current version. + + root@server1 [~]# mysql_upgrade + MySQL upgrade detected + Phase 1/6: Checking and upgrading mysql database + Processing databases + mysql + mysql.columns_priv OK + mysql.db OK + mysql.event OK + mysql.func OK + mysql.help_category OK + mysql.help_keyword OK + mysql.help_relation OK + mysql.help_topic OK + mysql.host OK + mysql.ndb_binlog_index OK + mysql.plugin OK + mysql.proc OK + mysql.procs_priv OK + mysql.proxies_priv OK + mysql.servers OK + mysql.tables_priv OK + mysql.time_zone OK + mysql.time_zone_leap_second OK + mysql.time_zone_name OK + mysql.time_zone_transition OK + mysql.time_zone_transition_type OK + mysql.user OK + Phase 2/6: Fixing views from mysql + Phase 3/6: Running 'mysql_fix_privilege_tables' + Phase 4/6: Fixing table and database names + Phase 5/6: Checking and upgrading tables + Processing databases + cphulkd + cphulkd.auths OK + cphulkd.blacklist OK + cphulkd.brutes OK + cphulkd.good_logins OK + cphulkd.ip_lists OK + cphulkd.known_netblocks OK + cphulkd.login_track OK + cphulkd.logins OK + cphulkd.report OK + cphulkd.whitelist OK + eximstats + eximstats.defers OK + eximstats.failures OK + eximstats.sends OK + eximstats.smtp OK + information_schema + leechprotect + leechprotect.hits OK + modsec + modsec.hits OK + performance_schema + roundcube + roundcube.cache OK + roundcube.cache_index OK + roundcube.cache_messages OK + roundcube.cache_shared OK + roundcube.cache_thread OK + roundcube.contactgroupmembers OK + roundcube.contactgroups OK + roundcube.contacts OK + roundcube.cp_schema_version OK + roundcube.dictionary OK + roundcube.identities OK + roundcube.searches OK + roundcube.session OK + roundcube.system OK + roundcube.users OK + saheetha_test + saheetha_test.authors OK + whmxfer + whmxfer.sessions OK + Phase 6/6: Running 'FLUSH PRIVILEGES' + OK + +#### Step 6 : Restart the MySQL service once again to ensure everything works perfect. #### + + root@server1 [~]# systemctl restart mysql + root@server1 [~]# + root@server1 [~]# systemctl status mysql + ● mysql.service - LSB: start and stop MySQL + Loaded: loaded (/etc/rc.d/init.d/mysql) + Active: active (running) since Sun 2016-01-31 10:04:11 UTC; 9s ago + Docs: man:systemd-sysv-generator(8) + Process: 23831 ExecStop=/etc/rc.d/init.d/mysql stop (code=exited, status=0/SUCCESS) + Process: 23854 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS) + Main PID: 23430 (code=exited, status=203/EXEC) + CGroup: /system.slice/mysql.service + ├─23861 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/server1.centos7-test.com.pid + └─23933 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/v... + + Jan 31 10:04:10 server1.centos7-test.com systemd[1]: Starting LSB: start and stop MySQL... + Jan 31 10:04:11 server1.centos7-test.com mysql[23854]: Starting MySQL. SUCCESS! + Jan 31 10:04:11 server1.centos7-test.com systemd[1]: Started LSB: start and stop MySQL. + +#### Step 7: Run EasyApache to rebuild Apache/PHP with MariaDB and ensure all PHP modules remains intact. #### + + root@server1 [~]#/scripts/easyapache --build + + ****IMPORTANT ***** + If you forget to rebuild Apache/PHP after the MariaDB installation, it will report the library error as below: + + root@server1 [/etc/my.cnf.d]# php -v + php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory + +#### Step 8: Now verify the installation and databases. #### + + root@server1 [/var/lib/mysql]# mysql + Welcome to the MariaDB monitor. Commands end with ; or \g. + Your MariaDB connection id is 15 + Server version: 10.0.23-MariaDB MariaDB Server + + Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. + + Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. + + MariaDB [(none)]> show storage engines; + +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ + | Engine | Support | Comment | Transactions | XA | Savepoints | + +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ + | CSV | YES | CSV storage engine | NO | NO | NO | + | MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | + | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | + | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | + | MyISAM | YES | MyISAM storage engine | NO | NO | NO | + | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES | + | ARCHIVE | YES | Archive storage engine | NO | NO | NO | + | FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES | + | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | + | Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO | + +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ + 10 rows in set (0.00 sec) + +That's all :). Now we're all set to go with MariaDB with its improved and efficient features. Hope you enjoyed reading this documentation. I would recommend your valuable suggestions and feedback on this! + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/how-tos/install-mariadb-10-centos-7-cpanel/ + +作者:[Saheetha Shameer][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/saheethas/ \ No newline at end of file From 3cf5e80b1fe1c90057255ae7e54166effb8d340c Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Sun, 14 Feb 2016 15:48:09 +0800 Subject: [PATCH 044/582] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=2020160212-1=20?= =?UTF-8?q?=E9=80=89=E9=A2=98=E7=9A=84=E6=96=87=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...12 How to Add New Disk in Linux CentOS 7 Without Rebooting.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md => 20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md} (100%) diff --git a/sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md b/sources/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md similarity index 100% rename from sources/tech/20160104 How to Add New Disk in Linux CentOS 7 Without Rebooting.md rename to sources/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md From 658a0d21820840882519c9aab60f1e0b92765777 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 15 Feb 2016 09:57:04 +0800 Subject: [PATCH 045/582] translating --- .../tech/20151109 How to Configure Tripwire IDS on Debian.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md b/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md index b5068348e4..d7bee4b745 100644 --- a/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md +++ b/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md @@ -1,3 +1,5 @@ +Translating---geekpi + How to Configure Tripwire IDS on Debian ================================================================================ This article is about Tripwire installation and configuration on Debian OS. It is a host based Intrusion detection system (IDS) for Linux environment. Prime function of tripwire IDS is to detect and report any unauthorized change (files and directories ) on linux system. After tripwire installation, baseline database created first, tripwire monitors and detects changes such as new file addition/creation, file modification and user who changed it etc. If the changes are legitimate, you can accept the changes to update tripwire database. @@ -377,3 +379,5 @@ via: http://linoxide.com/security/configure-tripwire-ids-debian/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:http://linoxide.com/author/naveeda/ + + From 685413ea138e996eb55019661de498287ca3c97e Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 15 Feb 2016 11:03:02 +0800 Subject: [PATCH 046/582] translated --- ...How to Configure Tripwire IDS on Debian.md | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) rename {sources => translated}/tech/20151109 How to Configure Tripwire IDS on Debian.md (78%) diff --git a/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md b/translated/tech/20151109 How to Configure Tripwire IDS on Debian.md similarity index 78% rename from sources/tech/20151109 How to Configure Tripwire IDS on Debian.md rename to translated/tech/20151109 How to Configure Tripwire IDS on Debian.md index d7bee4b745..23bf8eef65 100644 --- a/sources/tech/20151109 How to Configure Tripwire IDS on Debian.md +++ b/translated/tech/20151109 How to Configure Tripwire IDS on Debian.md @@ -1,50 +1,49 @@ -Translating---geekpi - -How to Configure Tripwire IDS on Debian +如何在Debian中配置Tripewire IDS ================================================================================ -This article is about Tripwire installation and configuration on Debian OS. It is a host based Intrusion detection system (IDS) for Linux environment. Prime function of tripwire IDS is to detect and report any unauthorized change (files and directories ) on linux system. After tripwire installation, baseline database created first, tripwire monitors and detects changes such as new file addition/creation, file modification and user who changed it etc. If the changes are legitimate, you can accept the changes to update tripwire database. +本文是一篇关于Debian中安装和配置Tripewire的文章。它是Linux环境下基于主机的入侵检测系统(IDS)。tripwire的高级功能有检测并报告任何Linux中未授权的更改(文件和目录)。tripewire安装之后,会先创建一个基本的数据库,tripewire监控并检测新文件的创建修改和谁修改了它等等。如果修改过是合法的,你可以接受修改并更新tripwire的数据库。 -### Installation and Configuration ### +### 安装和配置 ### -Tripwire installation on Debian VM is shown below. +tripwire在Debian VM中的安装如下。 # apt-get install tripwire ![installation](http://blog.linoxide.com/wp-content/uploads/2015/11/installation.png) -During installation, tripwire prompt for following configuration. +安装中,tripwire会有下面的配置提示。 -#### Site key Creation #### +#### 站点密钥创建 #### + +tripwire需要一个站点口令来加密tripwire的配置文件tw.cfg和策略文件tw.pol。tripewire使用指定的密码加密两个文件。一个tripewire实例必须指定站点口令。 -Tripwire required a site passphrase to secure the tw.cfg tripwire configuration file and tw.pol tripwire policy file. Tripewire encrypte both files using given passphrase. Site passphrase is must even for a single instance tripwire. ![site key1](http://blog.linoxide.com/wp-content/uploads/2015/11/site-key1.png) -#### Local Key passphrase #### +#### 本地密钥口令 #### -Local passphrase is needed for the protection of tripwire database and report files . Local key used by the tripwire to avoid unauthorized modification of tripwire baseline database. +本地口令用来保护tripwire数据库和报告文件。本地密钥用于阻止非授权的tripewire数据库修改。 ![local key1](http://blog.linoxide.com/wp-content/uploads/2015/11/local-key1.png) -#### Tripwire configuration path #### +#### Tripwire配置路径 #### -Tripwire configuration saved in the /etc/tripwire/twcfg.txt file. It is used to generate encrypted configuration file tw.cfg. +tripewire配置存储在/etc/tripwire/twcfg.txt。它用于生成加密的配置文件tw.cfg。 ![configuration file](http://blog.linoxide.com/wp-content/uploads/2015/11/configuration-file.png) -**Tripwire Policy path** +**Tripwire策略路径** -Tripwire saves policies in /etc/tripwire/twpol.txt file . It is used for the generation of encrypted policy file tw.pol used by the tripwire. +tripwire在/etc/tripwire/twpol.txt中保存策略文件。它用于生成加密的策略文件tw.pol。 ![tripwire policy](http://blog.linoxide.com/wp-content/uploads/2015/11/tripwire-policy.png) -Final installation of tripwire is shown in the following snapshot. +安装完成后如下图所示。 ![installed tripewire1](http://blog.linoxide.com/wp-content/uploads/2015/11/installed-tripewire1.png) -#### Tripwire Configuration file (twcfg.txt) #### +#### Tripwire配置文件 (twcfg.txt) #### -Tripwire configuration file (twcfg.txt) details is given below. Paths of encrypted policy file (tw.pol), site key (site.key) and local key (hostname-local.key) etc are given below. +tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件(tw.pol),站点密钥(site.key)和本地密钥(hostname-local.key)如下所示。 ROOT =/usr/sbin @@ -80,9 +79,9 @@ Tripwire configuration file (twcfg.txt) details is given below. Paths of encrypt TEMPDIRECTORY =/tmp -#### Tripwire Policy Configuration #### +#### Tripwire策略配置 #### -Configure tripwire configuration before generation of baseline database. It is necessary to disable few policies such as /dev , /proc ,/root/mail etc. Detailed policy file twpol.txt is given below. +在生成基础数据库之前先配置tripwire配置。有必要经用一些策略如/dev、 /proc 、/root/mail等。详细的twpol.txt策略文件如下所示。 @@section GLOBAL TWBIN = /usr/sbin; @@ -238,13 +237,13 @@ Configure tripwire configuration before generation of baseline database. It is n #/proc -> $(Device) ; } -#### Tripwire Report #### +#### Tripwire 报告 #### -**tripwire –check** command checks the twpol.txt file and based on this file generates tripwire report which is shown below. If this is any error in the twpol.txt file, tripwire does not generate report. +**tripwire –check** 命令检查twpol.txt文件并基于此文件生成tripwire报告如下。如果twpol.txt中有任何错误,tripwire不会生成报告。 ![tripwire report](http://blog.linoxide.com/wp-content/uploads/2015/11/tripwire-report.png) -**Report in text form** +**文本形式报告** root@VMdebian:/home/labadmin# tripwire --check @@ -364,16 +363,16 @@ Configure tripwire configuration before generation of baseline database. It is n Integrity check complete. -### Conclusion ### +### 总结 ### -In this article, we learned installation and basic configuration of open source IDS tool Tripwire. First it generates baseline database and detects any change (file/folder) by comparing it with already generated baseline. However, tripwire is not live monitoring IDS. +本篇中,我们学习安装配置开源入侵检测软件tripwire。首先生成基础数据库并通过比较检测出任何改动(文件/文件夹)。然而,tripwire并不是实时监测的IDS。 -------------------------------------------------------------------------------- via: http://linoxide.com/security/configure-tripwire-ids-debian/ 作者:[nido][a] -译者:[译者zky001](https://github.com/zky001) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a77967d1b11d2b0241533aab62dac4b7bcd437d4 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 15 Feb 2016 20:59:49 +0800 Subject: [PATCH 047/582] PUB:20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2 @ZTinoZ --- ...lla with Apache and SSL on FreeBSD 10.2.md | 87 ++++++++++--------- 1 file changed, 44 insertions(+), 43 deletions(-) rename {translated/tech => published}/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md (54%) diff --git a/translated/tech/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md b/published/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md similarity index 54% rename from translated/tech/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md rename to published/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md index 784c7d03aa..a60b5d7589 100644 --- a/translated/tech/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md +++ b/published/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md @@ -1,36 +1,37 @@ -在FreeBSD 10.2上如何通过配置Apache和SSL安装Bugzilla +在 FreeBSD 10.2 上如何通过配置 Apache 和 SSL 安装 Bugzilla ================================================================================ -Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由mozilla计划开发并由Mozilla公共许可证授权。它经常被一些高科技公司如mozilla、红帽公司和gnome使用。Bugzilla起初由Terry Weissman在1998年创立,它用perl语言编写,用MySQL作为后端数据库。它是一款旨在帮助管理软件开发的服务器软件,它有丰富的功能、高优化度的数据库、卓越的安全性、高级的搜索工具、整合的邮件功能等等。 -在本教程中,我们将给web服务器安装 bugzilla 5.0 的apache,并为它启用SSL,然后安装 mysql 5.1 来作为 freebsd 10.2 的数据库系统。 +Bugzilla 是一款开源的 Web 应用,用于 bug 跟踪系统和测试工具,由 mozilla 开发,并采用 Mozilla 公共许可证授权(MPL)。它经常被一些高科技公司如 mozilla、红帽公司和 gnome 使用。Bugzilla 起初由 Terry Weissman开发于1998年,它用 perl 语言编写,用 MySQL 作为后端数据库。它是一款旨在帮助管理软件开发的服务器软件,它有丰富的功能、高度优化的数据库、卓越的安全性、高级的搜索工具、集成了邮件功能等等。 + +在本教程中,我们将安装 bugzilla 5.0 ,采用 apache 作为 Web 服务器,并为它启用 SSL,然后在 freebsd 10.2 上安装 mysql 5.1 来作为数据库系统。 #### 准备 #### - FreeBSD 10.2 - 64位 - Root权限 +- FreeBSD 10.2 - 64位 +- Root 权限 ### 第一步 - 更新系统 ### -用ssl登录freebsd服务器,并更新库: +用 ssh 登录 freebsd 服务器,并更新软件库: sudo su freebsd-update fetch freebsd-update install -### 第二步 - 安装并配置Apache ### +### 第二步 - 安装并配置 Apache ### -在这一步我们将使用pkg命令从freebsd库中安装apache,然后在apache24目录下编辑"httpd.conf"文件,启用SSL和CGI支持来配置apache。 +在这一步我们将使用 pkg 命令从 freebsd 软件库中安装 apache,然后在 apache24 目录下编辑 "httpd.conf" 文件,来配置 apache 以启用 SSL 和 CGI 支持。 -用pkg命令安装apache: +用 pkg 命令安装 apache: pkg install apache24 -进入apache目录并用nano编辑器编辑"httpd.conf"文件: +进入 apache 目录并用 nano 编辑器编辑"httpd.conf"文件: cd /usr/local/etc/apache24 nano -c httpd.conf -反注释掉下面列出的行: +取消下面列出行的注释: #第70行 LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so @@ -55,11 +56,11 @@ Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由moz 保存并退出。 -接着,我们需要从freebsd库中安装mod perl,并启用它: +接着,我们需要从 freebsd 库中安装 mod perl,并启用它: pkg install ap24-mod_perl2 -启用mod_perl,编辑"httpd.conf"文件并添加"Loadmodule"行: +启用 mod_perl,编辑"httpd.conf"文件并添加"Loadmodule"行: nano -c httpd.conf @@ -70,20 +71,20 @@ Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由moz 保存并退出。 -在启用apache之前,用sysrc命令添加以下行作为开机启动项: +在启用 apache 之前,用 sysrc 命令添加以下行作为开机启动项: sysrc apache24_enable=yes service apache24 start -### 第三步 - 安装并配置MySQL数据库 ### +### 第三步 - 安装并配置 MySQL 数据库 ### -我们要用mysql 5.1来作为后端数据库并且支持perl模块。用pkg命令安装mysql 5.1: +我们要用 mysql 5.1 来作为后端数据库并且支持 perl 模块。用 pkg 命令安装 mysql 5.1: pkg install p5-DBD-mysql51 mysql51-server mysql51-client -现在我们要添加mysql服务到开机启动,然后为mysql配置root密码。 +现在我们要将 mysql 服务设置为开机启动,然后为 mysql 配置 root 密码。 -运行以下命令来完成所有操作: +运行以下命令来完成上述所有操作: sysrc mysql_enable=yes service mysql-server start @@ -91,13 +92,13 @@ Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由moz 注意: -这里mysql密码为:aqwe123 +这里 mysql 密码为:aqwe123 ![Configure MySQL Password](http://blog.linoxide.com/wp-content/uploads/2015/12/Configure-MySQL-Password.png) -以上步骤都完成之后,我们用root登录mysql shell,然后为bugzilla安装创建一个新的数据库和用户。 +以上步骤都完成之后,我们用 root 登录 mysql shell,然后为 bugzilla 安装创建一个新的数据库和用户。 -用以下命令登录mysql shell: +用以下命令登录 mysql shell: mysql -u root -p password: aqwe123 @@ -112,32 +113,32 @@ Bugzilla是一款bug跟踪系统和测试工具,它基于web且开源,由moz ![Creating Database for Bugzilla](http://blog.linoxide.com/wp-content/uploads/2015/12/Creating-Database-for-Bugzilla.png) -bugzilla的数据库创建好了,名字为"bugzilladb",用户名和密码分别为"bugzillauser"和"bugzillauser@"。 +bugzilla 的数据库创建好了,名字为"bugzilladb",用户名和密码分别为"bugzillauser"和"bugzillauser@"。 -### 第四步 - 生成新的SSL证书 ### +### 第四步 - 生成新的 SSL 证书 ### -在bugzilla站点的"ssl"目录里生成新的自签名SSL证书。 +在 bugzilla 站点的 "ssl" 目录里生成新的自签名 SSL 证书。 -前往apache24目录并在此创建新目录"ssl": +前往 apache24 目录并在此创建新目录 "ssl": cd /usr/local/etc/apache24/ mkdir ssl; cd ssl -接着,用openssl命令生成证书文件,然后更改其权限: +接着,用 openssl 命令生成证书文件,然后更改其权限: sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/etc/apache24/ssl/bugzilla.key -out /usr/local/etc/apache24/ssl/bugzilla.crt chmod 600 * ### 第五步 - 配置虚拟主机 ### -我们将在"/usr/local/www/bugzilla"目录里安装bugzilla,所以我们必须为它创建新的虚拟主机配置。 +我们将在 "/usr/local/www/bugzilla" 目录里安装 bugzilla,所以我们必须为它创建新的虚拟主机配置。 -前往apache目录并为虚拟主机文件创建名为"vhost"的新目录: +前往 apache 目录并为虚拟主机文件创建名为 "vhost" 的新目录: cd /usr/local/etc/apache24/ mkdir vhost; cd vhost -现在为虚拟主机文件创建新文件"bugzilla.conf": +现在为虚拟主机文件创建新文件 "bugzilla.conf": nano -c bugzilla.conf @@ -173,9 +174,9 @@ bugzilla的数据库创建好了,名字为"bugzilladb",用户名和密码分 保存并退出。 -上述都完成之后,为bugzilla安装创建新目录并通过添加虚拟主机配置至httpd.conf文件来启用bugzilla虚拟主机。 +上述都完成之后,为 bugzilla 安装创建新目录,并在 httpd.conf 文件添加虚拟主机配置来启用 bugzilla虚拟主机。 -在"apache24"目录下运行以下命令: +在 "apache24" 目录下运行以下命令: mkdir -p /usr/local/www/bugzilla cd /usr/local/etc/apache24/ @@ -187,29 +188,29 @@ bugzilla的数据库创建好了,名字为"bugzilladb",用户名和密码分 保存并退出。 -现在用"apachectl"命令测试一下apache的配置并重启它: +现在用 "apachectl" 命令测试一下 apache 的配置并重启它: apachectl configtest service apache24 restart -### 第六步 - 安装Bugzilla ### +### 第六步 - 安装 Bugzilla ### -我们可以通过下载源来手动安装bugzilla了,或从freebsd库中安装也可以。在这一步中我们将用pkg命令从freebsd库中安装bugzilla: +我们可以通过下载源来手动安装 bugzilla 了,或从 freebsd 库中安装也可以。在这一步中我们将用 pkg 命令从 freebsd 库中安装 bugzilla: pkg install bugzilla50 -以上步骤都完成之后,前往bugzilla安装目录并安装所有bugzilla需要的perl模块。 +以上步骤都完成之后,前往 bugzilla 安装目录并安装所有 bugzilla 需要的 perl 模块。 cd /usr/local/www/bugzilla ./install-module --all 要等到所有都完成,这需要点时间。 -下一步,在bugzilla的安装目录中执行"checksetup.pl"文件来生成配置文件"localconfig"。 +下一步,在 bugzilla 的安装目录中执行 "checksetup.pl" 文件来生成配置文件 "localconfig"。 ./checksetup.pl -你会看到一条关于数据库配置错误的消息,你得用nano编辑器编辑一下"localconfig"文件: +你会看到一条关于数据库配置错误的消息,你得用 nano 编辑器编辑一下 "localconfig" 文件: nano -c localconfig @@ -226,7 +227,7 @@ bugzilla的数据库创建好了,名字为"bugzilladb",用户名和密码分 保存并退出。 -然后再次运行"checksetup.pl": +然后再次运行 "checksetup.pl": ./checksetup.pl @@ -234,25 +235,25 @@ bugzilla的数据库创建好了,名字为"bugzilladb",用户名和密码分 ![Admin Setup](http://blog.linoxide.com/wp-content/uploads/2015/12/Admin-Setup.png) -最后,我们需要把安装目录的属主改成"www",然后用服务命令重启apache: +最后,我们需要把安装目录的属主改成 "www",然后用服务命令重启 apache: cd /usr/local/www/ chown -R www:www bugzilla service apache24 restart -现在Bugzilla已经安装好了,你可以通过访问mybugzilla.me来查看,并且将会重定向到https连接。 +现在 Bugzilla 已经安装好了,你可以通过访问 mybugzilla.me 来查看,并且将会重定向到 https 连接。 -Bugzilla首页: +Bugzilla 首页: ![Bugzilla Home](http://blog.linoxide.com/wp-content/uploads/2015/12/Bugzilla-Home.png) -Bugzilla admin面板: +Bugzilla admin 面板: ![Bugzilla Admin Page](http://blog.linoxide.com/wp-content/uploads/2015/12/Bugzilla-Admin-Page.png) ### 结论 ### -Bugzilla是一个基于web并能帮助你管理软件开发的应用,它用perl开发并使用MySQL作为数据库系统。Bugzilla帮助mozilla、redhat,gnome等公司完成软件开发工作。Bugzilla有很多功能并易于配置和安装。 +Bugzilla 是一个基于 web 的应用,并能帮助你管理软件开发,它用 perl 开发并以 MySQL 作为数据库系统。Bugzilla 帮助 mozilla、redhat、gnome 等公司完成软件开发工作。Bugzilla 有很多功能并易于配置和安装。 -------------------------------------------------------------------------------- From 4067bc9522f90acf97ee31e13a58a2509f2e615d Mon Sep 17 00:00:00 2001 From: struggling <630441839@qq.com> Date: Mon, 15 Feb 2016 23:13:51 +0800 Subject: [PATCH 048/582] Update 20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md --- ...0214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md b/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md index 53160a0c31..ccd14d1410 100644 --- a/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md +++ b/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md @@ -1,3 +1,4 @@ +translation by strugglingyouth How to Install MariaDB 10 on CentOS 7 CPanel Server ================================================================================ @@ -323,4 +324,4 @@ via: http://linoxide.com/how-tos/install-mariadb-10-centos-7-cpanel/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 -[a]:http://linoxide.com/author/saheethas/ \ No newline at end of file +[a]:http://linoxide.com/author/saheethas/ From 5d936a2ac8298afcb0e0a2bfbe2348554b85fb59 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 16 Feb 2016 16:42:06 +0800 Subject: [PATCH 049/582] PUB:20151208 6 useful LibreOffice extensions @GHLandy --- ...0151208 6 useful LibreOffice extensions.md | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) rename {translated/talk/yearbook2015 => published}/20151208 6 useful LibreOffice extensions.md (54%) diff --git a/translated/talk/yearbook2015/20151208 6 useful LibreOffice extensions.md b/published/20151208 6 useful LibreOffice extensions.md similarity index 54% rename from translated/talk/yearbook2015/20151208 6 useful LibreOffice extensions.md rename to published/20151208 6 useful LibreOffice extensions.md index b8d4f1fa1c..5fed70cb74 100644 --- a/translated/talk/yearbook2015/20151208 6 useful LibreOffice extensions.md +++ b/published/20151208 6 useful LibreOffice extensions.md @@ -1,53 +1,54 @@ -GHLandy Translated - LibreOffice 中的六大实用扩展组件 ================================================================================ ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/yearbook2015-osdc-lead-2.png) 图片来源:Opensource.com -LibreOffice 是最好的免费办公套件,并在所有的主要 Linux 发行版中得到应用。尽管 LibreOffice 已经拥有了大多数特性,它仍然可以添加特定的附加组件,即扩展。 +LibreOffice 是最好的自由办公套件,并在所有的主要 Linux 发行版中得到应用。尽管 LibreOffice 已经拥有了大多数特性,它仍然可以通过添加一种叫做扩展(extension)的特定的附加组件来增加功能。 LibreOffice 的扩展组件的网站是 [extensions.libreoffice.org][1]。扩展组件只是一些工具,可以在安装主体上进行独立添加或者移除,以便增加新功能或者让已有功能更容易使用。 ### 1. 多格式保存组件 ### -多格式保存组件可以根据用户的设置,同时将文档保存为开源文档、微软 Office 文档或者 PDF 文档。在你将微软 Office 文档格式转为标准的[开源文档格式][2]的时候,这个组件就很实用了,因为该组件同时提供了两种选择:互操作性较强的 ODF 文档格式以及为所有用户让在实用的微软 Office 文档格式保持兼容性。这样使管理员的文档迁移过程变得更具弹性、更易于管理。 +多格式保存组件可以根据用户的设置,同时将文档保存为开源文档(OpenDocument)、微软 Office 文档或者 PDF 文档。在你需要将微软 Office 文档格式转为标准的[开源文档格式][2]的时候,这个组件就很实用了,因为该组件同时提供了两种选择:互操作性较强的 ODF 文档格式,以及微软 Office 文档格式,以便同所有需要使用老旧的文档格式的用户保持兼容性。这样使管理员的文档迁移过程变得更具弹性、更易于管理。 **[下载 多格式保存组件][3]** ![Multiformatsave extension](https://opensource.com/sites/default/files/images/business-uploads/multiformatsave.png) -### 2. Writer 中可交替使用的查找与替换组件(交替搜索) ### +### 2. Writer 中可备选使用的查找与替换组件(备选搜索 (AltSearch)) ### -该组件向 Writer 中的查找与替换功能添加了许多新特性:可以查找和替换一段或多段文本;一次执行在多个查找和替换;搜索:书签、笔记、文本字段、交叉引用和参考标志内容、名称或标志及其插入;搜索和插入脚注和尾注;通过名称来搜索表格对象、图像和文本框;搜索帮助手册页的分栏符以及创建和失活时间;根据光标位置搜索相同格式的文本。还可以保存/加载查找和替换参数,并在多个同时打开的文件中执行批处理。 +该组件向 Writer 中的查找与替换功能添加了许多新特性:可以查找和替换一段或多段文本;一次执行多个查找和替换;搜索:书签、笔记、文本字段、交叉引用和参考标志内容、名称或标志及其插入;搜索和插入脚注和尾注;通过名称来搜索表格对象、图像和文本框;搜索帮助手册页和分栏符以及创建和失活时间;根据光标位置搜索相同格式的文本。还可以保存/加载查找和替换参数,并在多个同时打开的文件中执行批处理。 -**[下载 Writer 中可交替使用的查找与替换组件(交替搜索)][4]** +**[下载 Writer 中可交替使用的查找与替换组件(交替搜索 (AltSearch))][4]** ![Alternative Find&amp;Replace add-on](https://opensource.com/sites/default/files/images/business-uploads/alternativefindreplace.png) ### 3. Pepito 清除组件 ### -中 LibreOffice 中, Pepito 清除组件主要用来快速清除并修复旧扫描件、导入的 PDF 以及每个电子文本文档的格式错误。通过点击 LibreOffice 工具栏中的 Pepito 图标,用户可以打开一个用于分析文档并呈现文档错误类型。当你将 PDF 文档转换为 ODF 文档时,这个工具就非常有用了,它会自动清除转换过程中出现的错误。 + +Pepito 清除组件是一个 LibreOffice 扩展,主要用来快速清除并修复旧式扫描件、导入的 PDF 以及每个电子文本文档的格式错误。通过点击 LibreOffice 工具栏中的 Pepito 图标,用户可以打开一个用于分析文档并按类型呈现文档错误。当你将 PDF 文档转换为 ODF 文档时,这个工具就非常有用了,它会自动清除转换过程中出现的错误。 **[下载 Pepito 清除组件][5]** ![Pepito cleaner screenshot](https://opensource.com/sites/default/files/images/business-uploads/pepitocleaner.png) ### 4. ImpressRunner 组件### -Impress Runner 是将 [Impress][6] 文档转换成自动播放文件的扩展组件。该组件会添加两个图标,用以设置或移除自动开始播放的功能,我们还可以通过编辑 文件 | 属性 | 自定义属性 菜单来手动添加这两个图标,并将自动运行按钮添加到四个文本域之前。在会议与活动组织而且幻灯片无人主持的时候,这个扩展组件就变得非常有用。 + +Impress Runner 是将 [Impress][6] 文档转换成自动播放文件的扩展组件。该组件会添加两个图标,用以设置或移除自动开始播放的功能,我们还可以通过编辑 文件 | 属性 | 自定义属性 菜单来手动添加这两个图标,并将自动运行按钮添加到前四个文本域之一前面。在会议与组织活动时,如果幻灯片无人主持,这个扩展组件就变得非常有用。 **[下载 ImpressRunner 组件][7]** ### 5. 导出为图像组件 ### -导出为图像组件是 Impress 和 [Draw][8] 中文件菜单里边的一个入口——导出为图像...,,主要用于将所有的幻灯片和页面导出成 JPG、PNG、GIF、BMP 和 TIFF 等图像格式,并且允许用户自定义导出图像的名称、大小以及其他参数。 +导出为图像组件为 Impress 和 [Draw][8] 中文件菜单里增加了一个入口——“导出为图像...”,主要用于将所有的幻灯片和页面导出成 JPG、PNG、GIF、BMP 和 TIFF 等图像格式,并且允许用户自定义导出图像的名称、大小以及其他参数。 **[下载 导出为图像组件][9]** ![Export as images extension](https://opensource.com/sites/default/files/images/business-uploads/exportasimages.png) ### 6. Anaphraseus 组件### -Anaphraseus 是一个 CAT(Computer-Aided Translation,计算机辅助翻译)工具组件,用来创建、管理双语翻译。Anaphraseus 是一个设置成扩展组件或者独立文档的 LibreOffice 宏。最开始,开发者设计 Anaphraseus 为快速翻译(Wordfast)格式,但现在它可以将文件导入或者到出成 TMX 格式。其主要特性:分本分割、在翻译记录中模糊搜索、术语识别以及导入导出 TMX(OmegaT translation memory format,OmegaT 翻译存储格式)。 + +Anaphraseus 是一个 CAT(Computer-Aided Translation,计算机辅助翻译)工具组件,用来创建、管理双语翻译。Anaphraseus 是一个 LibreOffice 宏集合,可以作为扩展组件或者用在单独的文档中。最开始,Anaphraseus 支持快速翻译(Wordfast)格式,但现在它可以导入或者导出成 TMX 格式。其主要特性:分本分割、在翻译记录(Translation Memory)中模糊搜索、术语识别以及导入导出 TMX(OmegaT translation memory format,OmegaT 翻译存储格式)。 **[下载 Anaphraseus 组件][10]** @@ -60,8 +61,8 @@ Anaphraseus 是一个 CAT(Computer-Aided Translation,计算机辅助翻译 via: https://opensource.com/business/15/12/6-useful-libreoffice-extensions 作者:[Italo Vignoli][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[GHLandy](https://github.com/GHLandy) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 56271618f9b1d32d5e6e63455a9c4526b17d5551 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 17 Feb 2016 09:57:16 +0800 Subject: [PATCH 050/582] translating --- ...esktop Fun--Text Mode ASCII-art Box and Comment Drawing.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md b/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md index fad7c6443b..f5321bd83e 100644 --- a/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md +++ b/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md @@ -1,3 +1,5 @@ +Translating----geekpi + Linux / Unix Desktop Fun: Text Mode ASCII-art Box and Comment Drawing ================================================================================ Boxes command is a text filter and a little known tool that can draw any kind of ASCII art box around its input text or code for fun and profit. You can quickly create email signatures, or create regional comments in any programming language. This command was intended to be used with the vim text editor, but can be tied to any text editor which supports filters, as well as from the command line as a standalone tool. @@ -199,3 +201,5 @@ via: http://www.cyberciti.biz/tips/unix-linux-draw-any-kind-of-boxes-around-text [2]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/ [3]:http://www.cyberciti.biz/faq/fedora-sl-centos-redhat6-enable-epel-repo/ [4]:http://www.cyberciti.biz/faq/vim-inserting-current-date-time-under-linux-unix-osx/ + + From 859f199aed135a93f11d9b8a09608aba37ac2cc5 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 17 Feb 2016 10:31:36 +0800 Subject: [PATCH 051/582] translated --- ... Mode ASCII-art Box and Comment Drawing.md | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) rename {sources => translated}/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md (74%) diff --git a/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md b/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md similarity index 74% rename from sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md rename to translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md index f5321bd83e..01b0051fef 100644 --- a/sources/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md +++ b/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md @@ -1,16 +1,15 @@ -Translating----geekpi - -Linux / Unix Desktop Fun: Text Mode ASCII-art Box and Comment Drawing +Linux/Unix桌面趣事:文本模式艺术框及注释图 ================================================================================ Boxes command is a text filter and a little known tool that can draw any kind of ASCII art box around its input text or code for fun and profit. You can quickly create email signatures, or create regional comments in any programming language. This command was intended to be used with the vim text editor, but can be tied to any text editor which supports filters, as well as from the command line as a standalone tool. +boxes是一个文本过滤器并且是一个鲜为人知的可以在文字或者代码周围绘出任何形式的ASCII艺术框的工具。你可以快速地创建一个email签名或者在任何语言中创建一个注释。这个命令可以和vim一起使用,但是可以和任何支持过滤和可以在命令行中使用独立工具的文本编辑器绑定在一起。。 -### Task: Install boxes ### +### 任务: 安装 boxes ### -Use the [apt-get command][1] to install boxes under Debian / Ubuntu Linux: +在Debian/Ubuntu中使用[apt-get命令][1]来安装boxes: $ sudo apt-get install boxes -Sample outputs: +示例输出: Reading package lists... Done Building dependency tree @@ -26,11 +25,11 @@ Sample outputs: Processing triggers for man-db ... Setting up boxes (1.0.1a-2.3) ... -RHEL / CentOS / Fedora Linux users, use the [yum command to install boxes][2] (first [enable EPEL repo as described here][3]): +对于RHEL / CentOS / Fedora用户,使用[yum命令来安装boxes][2](首先[启用EPEL仓库][3]) # yum install boxes -Sample outputs: +示例输出: Loaded plugins: rhnplugin Setting up Install Process @@ -63,50 +62,51 @@ Sample outputs: Complete! FreeBSD user can use the port as follows: +FreeBSD用户可以使用port: cd /usr/ports/misc/boxes/ && make install clean -Or, add the package using the pkg_add command: +或者使用pkg_add命令添加包: # pkg_add -r boxes -### Draw any kind of box around some given text ### +### 用给定的文字画出任何形式的框 ### -Type the following command: +输入下面的额命令: echo "This is a test" | boxes -Or specify the name of the design to use: +或者指定设计: echo -e "\n\tVivek Gite\n\tvivek@nixcraft.com\n\twww.cyberciti.biz" | boxes -d dog -Sample outputs: +示例输出: ![Unix / Linux: Boxes Command To Draw Various Designs](http://s0.cyberciti.org/uploads/l/tips/2012/06/unix-linux-boxes-draw-dog-design.png) -Fig.01: Unix / Linux: Boxes Command To Draw Various Designs +图01:Unix / Linux:Box命令来画出不同的设计 -#### How do I list all designs? #### +#### 我如何列出所有的设计? #### -The syntax is: +语法是: boxes option pipe | boxes options echo "text" | boxes -d foo boxes -l -The -d design option sets the name of the design to use. The syntax is: +-d选项设置使用的设计。语法是: echo "Text" | boxes -d design pipe | boxes -d desig -The -l option list designs. It produces a listing of all available box designs in the config file, along with a sample box and information about it's creator: +-l选项列出设计列表。它会列出配置文件中所有的设计,以及它的设计者的一些信息: boxes -l boxes -l | more boxes -l | less -Sample outputs: +示例输出: 43 Available Styles in "/etc/boxes/boxes-config": ------------------------------------------------- @@ -142,32 +142,32 @@ Sample outputs: output truncated .. -### How do I filter text via boxes while using vi/vim text editor? ### +### 我如何在vi/vim中使用boxes过滤文本? ### -You can use any external command with vi or vim. In this example, [insert current date and time][4], enter: +你可以在vi或者vim中使用任何外部命令。比如,[插入日期和时间][4],输入: !!date -OR +或者 :r !date -You need to type above command in Vim to read the output from the date command. This will insert the date and time after the current line: +你需要在vim中输入上面的命令来读取date命令的输出。这可以在当前行中插入时间和日期: Tue Jun 12 00:05:38 IST 2012 -You can do the same with boxes command. Create a sample shell script or a c program as follows: +你可以用boxes命令做同样的事情。如下创建一个示例脚本或者程序: #!/bin/bash Purpose: Backup mysql database to remote server. Author: Vivek Gite Last updated on: Tue Jun, 12 2012 -Now type the following (move cursor to the second line i.e. line which starts with "Purpose: ...") +现在输入下面的命令(移动光标到第二行,也就是说以Purpose开头的那行) 3!!boxes -And voila you will get the output as follows: +你就会得到下面的示例输出: #!/bin/bash /****************************************************/ @@ -177,22 +177,22 @@ And voila you will get the output as follows: /****************************************************/ This video will give you an introduction to boxes command: +这个视频是boxes命令的一个介绍 注:youtube 视频 -(Video:01: boxes command in action. BTW, this is my first video so go easy on me and let me know what you think.) +(视频01:boxes命令实践。顺便说一下,这是我的第一个视频,所以对我不要太认真并让我知道你们所想) +同样可见 -See also - -- boxes man page +- boxes man页 -------------------------------------------------------------------------------- via: http://www.cyberciti.biz/tips/unix-linux-draw-any-kind-of-boxes-around-text-editor.html 作者:Vivek Gite -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e8d9170b3976f2c2f5c25de2a1bee2c96e4e3353 Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Wed, 17 Feb 2016 23:31:17 +0800 Subject: [PATCH 052/582] =?UTF-8?q?20160217-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... PHP-FPM Instances with Nginx or Apache.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md diff --git a/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md b/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md new file mode 100644 index 0000000000..68af7da0a4 --- /dev/null +++ b/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md @@ -0,0 +1,121 @@ +How to Enable Multiple PHP-FPM Instances with Nginx / Apache +================================================================================ + +PHP-FPM is also known as PHP FastCGI Process Manager. It is an advancement of PHP FastCGI implementation with more useful features for handling heavy-loaded servers and websites. Some of those features are listed below: + +### New Features ### + + - Advanced process managament capability with graceful start/stop options. + - Ability to run the processes with different userids/groupids listening on different ports and using different PHP configurations. + - Error logging. + - Acceleration upload support + - Special function to finish request and flush all data while doing some time consuming tasks + - Both Dynamic and Static Child process Spawning + - IP Address restriction + +In this article, I'm going to discuss about installing PHP-FPM along with Nginx and Apache on a CentOS 7 server running cPanel 11.52 with EA3(EasyApache) and how to manage those installed multiple PHP-FPM instances via CPanel. + +Before going to the installation procedures, let us take a look on the pre-requisites. + +### Pre-requisites ### + + # Enable Mod_proxy_fcgi module + # Enable MPM_Event + +Since, we are installing PHP-FPM on a EA3 server, we need to run EasyApache to compile Apache to enable these modules. + +You can refer my previous document on how to install Nginx as reverse proxy on a Apache server to confirm with the Nginx installation. + +I'll brief those installation steps once again here. You can refer to my previous documentation **(How to Set Nginx as Reverse Proxy on CentOS 7 /CPanel Server)** for details. + + Step 1: Install the Epel repo + Step 2: Install nDeploy RPM repo which is the most **IMPORTANT** step in this installation. + Step 3: Install nDeploy and Nginx plugin using yum from the nDeploy repo. + Step 4: Enable/Configure Nginx as reverse proxy + +Once this is done, install the PHP-FPM packages for all PHP versions available in the server. EA3 uses remi repository for installing these packages. You can run this nDeploy script to download all packages. + + root@server1 [~]# /opt/nDeploy/scripts/easy_php_setup.sh + Loaded plugins: fastestmirror, tsflags, universal-hooks + EA4 | 2.9 kB 00:00:00 + base | 3.6 kB 00:00:00 + epel/x86_64/metalink | 9.7 kB 00:00:00 + epel | 4.3 kB 00:00:00 + extras | 3.4 kB 00:00:00 + updates | 3.4 kB 00:00:00 + (1/2): epel/x86_64/updateinfo | 460 kB 00:00:00 + (2/2): epel/x86_64/primary_db + +Running this script will install all these FPM packages for PHP 54, PHP 55, PHP 56 and PHP 70. + + Installed Packages + php54-php-fpm.x86_64 5.4.45-3.el7.remi @remi + php55-php-fpm.x86_64 5.5.31-1.el7.remi @remi + php56-php-fpm.x86_64 5.6.17-1.el7.remi @remi + php70-php-fpm.x86_64 7.0.2-1.el7.remi @remi + +After this installation, you need to enable PHP-FPM SAPI for Apache. You can run this script to enable PHP-FPM instances. + + root@server1 [~]# /opt/nDeploy/scripts/apache_php-fpm_setup.sh enable + mod_proxy_fcgi.c + Please choose one default PHP version from the list below + PHP70 + PHP56 + PHP54 + PHP55 + Provide the exact desired version string here and press ENTER: PHP54 + ConfGen:: lxblogger + ConfGen:: blogr + ConfGen:: saheetha + ConfGen:: satest + which: no cagefsctl in (/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin) + info [rebuildhttpdconf] Missing owner for domain server1.centos7-test.com, force lookup to root + Built /usr/local/apache/conf/httpd.conf OK + Waiting for “httpd” to restart gracefully …waiting for “httpd” to initialize …… + …finished. + +It will ask the required PHP version which you prefer to run as default on the server. You can enter those details and proceed to configure and generate the virtual host files for the existing domains. + +I've chosen PHP 54 as the default PHP-FPM version on my server. + +![confirm-php-fpm](http://blog.linoxide.com/wp-content/uploads/2016/01/confirm-php-fpm-1024x525.png) + +Even though, the server is configured with PHP-FPM 54, we can modify the PHP-FPM instances for the individual domains via cPanel. + +I'll explain you on how to modify the PHP-FPM instances for individual domains via cPanel using some screenshots. + +The installation of Nginx plugin will provide you with an icon of Nginx Webstack in your domain's cPanel. You can click on that icon to configure your Web server. I've logged into one of my domain's cPanel to configure it's Web server. + +Please check these snapshots. + +![nginx webstack](http://blog.linoxide.com/wp-content/uploads/2016/01/nginx-webstack.png) + +![nginxicon1](http://blog.linoxide.com/wp-content/uploads/2016/01/nginxicon1-1024x253.png) + +Now you can configure the web-server for the selected main domain as required(I've selected the main domain saheetha.com here). I've gone ahead with automatic configuration options since, I don't have any manual settings to add. + +![nginx_auto_proxy](http://blog.linoxide.com/wp-content/uploads/2016/01/nginx_auto_proxy-1024x408.png) + +Once Nginx is configured, you can select the PHP-FPM instance for your domain here. + +![php-fpm1](http://blog.linoxide.com/wp-content/uploads/2016/01/php-fpm1-1024x408.png) + +![php54](http://blog.linoxide.com/wp-content/uploads/2016/01/php54-1024x169.png) + +![php55](http://blog.linoxide.com/wp-content/uploads/2016/01/php55.png) + +As you can see in these snapshots, my default PHP-FPM on the server is **PHP 54** and I'm changing the PHP-FPM instance for my domain alone to **PHP 55**. Once you've modified the PHP-FPM for your domain, you can confirm it by accessing the **phpinfo** page. + +Thank you for referring to this article. I believe this article is really informative and useful for you. I would recommend your valuable comments on this :). + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/enable-multiple-php-fpm-instances-nginx-apache/ + +作者:[Saheetha Shameer][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/saheethas/ \ No newline at end of file From 6535efbb56e01671dfbd878f02da697afff38163 Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Thu, 18 Feb 2016 00:14:05 +0800 Subject: [PATCH 053/582] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8E=9F=E6=96=87?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E5=BA=8F=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Enable Multiple PHP-FPM Instances with Nginx or Apache.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md b/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md index 68af7da0a4..4037c4aa92 100644 --- a/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md +++ b/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md @@ -19,8 +19,8 @@ Before going to the installation procedures, let us take a look on the pre-requi ### Pre-requisites ### - # Enable Mod_proxy_fcgi module - # Enable MPM_Event + 1. Enable Mod_proxy_fcgi module + 2. Enable MPM_Event Since, we are installing PHP-FPM on a EA3 server, we need to run EasyApache to compile Apache to enable these modules. From 8402f139fa2a53c878cbb7724f3f3355502ca970 Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Thu, 18 Feb 2016 10:23:29 +0800 Subject: [PATCH 054/582] =?UTF-8?q?20160218-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ginx as Reverse Proxy on Centos7 CPanel.md | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md diff --git a/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md b/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md new file mode 100644 index 0000000000..e3cc72cd8d --- /dev/null +++ b/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md @@ -0,0 +1,201 @@ +How to Set Nginx as Reverse Proxy on Centos7 CPanel +================================================================================ + +Nginx is one of the fastest and most powerful web-server. It is known for its high performance and low resource utilization. It can be installed as both a standalone and a Reverse Proxy Web-server. In this article, I'm discussing about the installation of Nginx as a reverse proxy along with Apache on a CPanel server with latest CentOS 7 installed. + +Nginx as a reverse proxy will work as a frontend webserver serving static contents along with Apache serving the dynamic files in backend. This setup will boost up the overall server performance. + +Let's walk through the installation steps for Nginx as reverse proxy in CentOS7 x86_64 bit server with cPanel 11.52 installed. + +First of all, we need to install the EPEL repo to start-up with the process. + +### Step 1: Install the EPEL repo. ### + + root@server1 [/usr]# yum -y install epel-release + Loaded plugins: fastestmirror, tsflags, universal-hooks + Loading mirror speeds from cached hostfile + * EA4: 66.23.237.210 + * base: mirrors.linode.com + * extras: mirrors.linode.com + * updates: mirrors.linode.com + Resolving Dependencies + --> Running transaction check + ---> Package epel-release.noarch 0:7-5 will be installed + --> Finished Dependency Resolution + + Dependencies Resolved + + =============================================================================================================================================== + Package Arch Version Repository Size + =============================================================================================================================================== + Installing: + epel-release noarch 7-5 extras 14 k + +### Step 2: After installing the repo, we can start with the installation of the nDeploy RPM repo for CentOS to install our required nDeploy Webstack and Nginx plugin. ### + + root@server1 [/usr]# yum -y install http://rpm.piserve.com/nDeploy-release-centos-1.0-1.noarch.rpm + Loaded plugins: fastestmirror, tsflags, universal-hooks + nDeploy-release-centos-1.0-1.noarch.rpm | 1.7 kB 00:00:00 + Examining /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm: nDeploy-release-centos-1.0-1.noarch + Marking /var/tmp/yum-root-ei5tWJ/nDeploy-release-centos-1.0-1.noarch.rpm to be installed + Resolving Dependencies + --> Running transaction check + ---> Package nDeploy-release-centos.noarch 0:1.0-1 will be installed + --> Finished Dependency Resolution + + Dependencies Resolved + + =============================================================================================================================================== + Package Arch Version Repository Size + =============================================================================================================================================== + Installing: + nDeploy-release-centos noarch 1.0-1 /nDeploy-release-centos-1.0-1.noarch 110 + +### Step 3: Install the nDeploy and Nginx nDeploy plugins. ### + + root@server1 [/usr]# yum --enablerepo=ndeploy install nginx-nDeploy nDeploy + Loaded plugins: fastestmirror, tsflags, universal-hooks + epel/x86_64/metalink | 9.9 kB 00:00:00 + epel | 4.3 kB 00:00:00 + ndeploy | 2.9 kB 00:00:00 + (1/4): ndeploy/7/x86_64/primary_db | 14 kB 00:00:00 + (2/4): epel/x86_64/group_gz | 169 kB 00:00:00 + (3/4): epel/x86_64/primary_db | 3.7 MB 00:00:02 + + Dependencies Resolved + + =============================================================================================================================================== + Package Arch Version Repository Size + =============================================================================================================================================== + Installing: + nDeploy noarch 2.0-11.el7 ndeploy 80 k + nginx-nDeploy x86_64 1.8.0-34.el7 ndeploy 36 M + Installing for dependencies: + PyYAML x86_64 3.10-11.el7 base 153 k + libevent x86_64 2.0.21-4.el7 base 214 k + memcached x86_64 1.4.15-9.el7 base 84 k + python-inotify noarch 0.9.4-4.el7 base 49 k + python-lxml x86_64 3.2.1-4.el7 base 758 k + + Transaction Summary + =============================================================================================================================================== + Install 2 Packages (+5 Dependent packages) + +With these steps, we've completed with the installation of Nginx plugin in our server. Now we need to configure Nginx as reverse proxy and create the virtualhost for the existing cPanel user accounts. For that we can run the following script. + +### Step 4: To enable Nginx as a front end Web Server and create the default configuration files. ### + + root@server1 [/usr]# /opt/nDeploy/scripts/cpanel-nDeploy-setup.sh enable + Modifying apache http and https port in cpanel + + httpd restarted successfully. + Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service. + Created symlink from /etc/systemd/system/multi-user.target.wants/ndeploy_watcher.service to /usr/lib/systemd/system/ndeploy_watcher.service. + Created symlink from /etc/systemd/system/multi-user.target.wants/ndeploy_backends.service to /usr/lib/systemd/system/ndeploy_backends.service. + ConfGen:: saheetha + ConfGen:: satest + +As you can see these script will modify the Apache port from 80 to another port to make Nginx run as a front end web server and create the virtual host configuration files for the existing cPanel accounts. Once it is done, confirm the status of both Apache and Nginx. + +### Apache Status: ### + + root@server1 [/var/run/httpd]# systemctl status httpd + ● httpd.service - Apache Web Server + Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) + Active: active (running) since Mon 2016-01-18 06:34:23 UTC; 12s ago + Process: 25606 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) + Main PID: 24760 (httpd) + CGroup: /system.slice/httpd.service + ‣ 24760 /usr/local/apache/bin/httpd -k start + + Jan 18 06:34:23 server1.centos7-test.com systemd[1]: Starting Apache Web Server... + Jan 18 06:34:23 server1.centos7-test.com apachectl[25606]: httpd (pid 24760) already running + Jan 18 06:34:23 server1.centos7-test.com systemd[1]: Started Apache Web Server. + +### Nginx Status: ### + + root@server1 [~]# systemctl status nginx + ● nginx.service - nginx-nDeploy - high performance web server + Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) + Active: active (running) since Sun 2016-01-17 17:18:29 UTC; 13h ago + Docs: http://nginx.org/en/docs/ + Main PID: 3833 (nginx) + CGroup: /system.slice/nginx.service + ├─ 3833 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf + ├─25473 nginx: worker process + ├─25474 nginx: worker process + └─25475 nginx: cache manager process + + Jan 17 17:18:29 server1.centos7-test.com systemd[1]: Starting nginx-nDeploy - high performance web server... + Jan 17 17:18:29 server1.centos7-test.com nginx[3804]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok + Jan 17 17:18:29 server1.centos7-test.com nginx[3804]: nginx: configuration file /etc/nginx/nginx.conf test is successful + Jan 17 17:18:29 server1.centos7-test.com systemd[1]: Started nginx-nDeploy - high performance web server. + +Nginx act as a frontend webserver running on port 80 and Apache configuration is modified to listen on http port 9999 and https port 4430. Please see their status below: + + root@server1 [/usr/local/src]# netstat -plan | grep httpd + tcp 0 0 0.0.0.0:4430 0.0.0.0:* LISTEN 17270/httpd + tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 17270/httpd + tcp6 0 0 :::4430 :::* LISTEN 17270/httpd + tcp6 0 0 :::9999 :::* LISTEN 17270/httpd + +![apacheport](http://blog.linoxide.com/wp-content/uploads/2016/01/apacheport.png) + + root@server1 [/usr/local/src]# netstat -plan | grep nginx + tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 17802/nginx: master + tcp 0 0 45.79.183.73:80 0.0.0.0:* LISTEN 17802/nginx: master + +The virtualhost entries created for the existing users as located in the folder "**/etc/nginx/sites-enabled**". This file path is included in the Nginx main configuration file. + + root@server1 [/etc/nginx/sites-enabled]# ll | grep .conf + -rw-r--r-- 1 root root 311 Jan 17 09:02 saheetha.com.conf + -rw-r--r-- 1 root root 336 Jan 17 09:02 saheethastest.com.conf + +### Sample Vhost for a domain: ### + + server { + + listen 45.79.183.73:80; + #CPIPVSIX:80; + + # ServerNames + server_name saheetha.com www.saheetha.com; + access_log /usr/local/apache/domlogs/saheetha.com main; + access_log /usr/local/apache/domlogs/saheetha.com-bytes_log bytes_log; + + include /etc/nginx/sites-enabled/saheetha.com.include; + + } + +We can confirm the working of the web server status by calling a website in the browser. Please see the web server information on my server after the installation. + + root@server1 [/home]# ip a | grep -i eth0 + 3: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 + inet 45.79.183.73/24 brd 45.79.183.255 scope global dynamic eth0 + root@server1 [/home]# nginx -v + nginx version: nginx/1.8.0 + +![webserver-status](http://blog.linoxide.com/wp-content/uploads/2016/01/webserver.png) + +Nginx will create the virtual host automatically for any newly created accounts in cPanel. With these simple steps we can configure Nginx as reverse proxy on a CentOS 7/CPanel server. + +### Advantages of Nginx as Reverse Proxy: ### + + 1. Easy to install and configure + 2. Performance and efficiency + 3. Prevent DDOS attacks + 4. Allows .htaccess PHP rewrite rules + +I hope this article is useful for you guys. Thank you for referring to this. I would appreciate your valuable comments and suggestions on this for further improvements. + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/set-nginx-reverse-proxy-centos-7-cpanel/ + +作者:[Saheetha Shameer][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/saheethas/ \ No newline at end of file From f9dfc8e24cba3b6f0f45b8f487db74e130db33b9 Mon Sep 17 00:00:00 2001 From: Markgolzh <1134386961@qq.com> Date: Thu, 18 Feb 2016 17:01:56 +0800 Subject: [PATCH 055/582] =?UTF-8?q?=E6=88=91=E7=BF=BB=E8=AF=91=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rp请合并 --- ... Mode ASCII-art Box and Comment Drawing.md | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md b/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md index 01b0051fef..ce9c76f324 100644 --- a/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md +++ b/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md @@ -1,15 +1,18 @@ -Linux/Unix桌面趣事:文本模式艺术框及注释图 + +Linux / Unix 桌面娱乐 : +文字模式的带有ASCII艺术的Box与评论绘制 + ================================================================================ -Boxes command is a text filter and a little known tool that can draw any kind of ASCII art box around its input text or code for fun and profit. You can quickly create email signatures, or create regional comments in any programming language. This command was intended to be used with the vim text editor, but can be tied to any text editor which supports filters, as well as from the command line as a standalone tool. -boxes是一个文本过滤器并且是一个鲜为人知的可以在文字或者代码周围绘出任何形式的ASCII艺术框的工具。你可以快速地创建一个email签名或者在任何语言中创建一个注释。这个命令可以和vim一起使用,但是可以和任何支持过滤和可以在命令行中使用独立工具的文本编辑器绑定在一起。。 +Boxes 命令不仅是一个文本过滤器,同时是一个很少人知道的可以为了乐趣或者需要在它的输入文本或者代码周围画各种ASCII艺术画的工具。你可以迅速创建邮件签名,或者使用各种编程语言创建局部评论。这个命令计划被vim文本编辑器使用,但是也可以被支持过滤的文本编辑器使用,同时从命令行作为一个单独的工具使用。 -### 任务: 安装 boxes ### -在Debian/Ubuntu中使用[apt-get命令][1]来安装boxes: +### 任务: 安装 boxes ### + +使用 [apt-get command][1] 在 Debian / Ubuntu Linux中安装 boxes : $ sudo apt-get install boxes -示例输出: +输出示例 : Reading package lists... Done Building dependency tree @@ -25,11 +28,11 @@ boxes是一个文本过滤器并且是一个鲜为人知的可以在文字或者 Processing triggers for man-db ... Setting up boxes (1.0.1a-2.3) ... -对于RHEL / CentOS / Fedora用户,使用[yum命令来安装boxes][2](首先[启用EPEL仓库][3]) +RHEL / CentOS / Fedora Linux 用户, 使用 [yum command to install boxes][2] (首先 [enable EPEL repo as described here][3]): # yum install boxes -示例输出: +输出示例 : Loaded plugins: rhnplugin Setting up Install Process @@ -61,52 +64,53 @@ boxes是一个文本过滤器并且是一个鲜为人知的可以在文字或者 boxes.x86_64 0:1.1-8.el6 Complete! -FreeBSD user can use the port as follows: -FreeBSD用户可以使用port: +FreeBSD 用户可以按如下来使用 : cd /usr/ports/misc/boxes/ && make install clean -或者使用pkg_add命令添加包: +或者,使用 pkg_add 命令来增加包: # pkg_add -r boxes -### 用给定的文字画出任何形式的框 ### +### 在一些给定文本周围画出任何种类的box ### -输入下面的额命令: +输入下列命令 : echo "This is a test" | boxes -或者指定设计: +或者,通过设置要使用的设计的名字来使用 : echo -e "\n\tVivek Gite\n\tvivek@nixcraft.com\n\twww.cyberciti.biz" | boxes -d dog -示例输出: +输出示例 : ![Unix / Linux: Boxes Command To Draw Various Designs](http://s0.cyberciti.org/uploads/l/tips/2012/06/unix-linux-boxes-draw-dog-design.png) -图01:Unix / Linux:Box命令来画出不同的设计 +Fig.01: Unix / Linux: Boxes 命令来画出各式各样的设计 -#### 我如何列出所有的设计? #### +#### 怎么样输出所有的设计 #### -语法是: +语法如下: boxes option pipe | boxes options echo "text" | boxes -d foo boxes -l --d选项设置使用的设计。语法是: +设计 -d 选项设置要使用的设计的名字 . 语法如下: + echo "Text" | boxes -d design pipe | boxes -d desig --l选项列出设计列表。它会列出配置文件中所有的设计,以及它的设计者的一些信息: +-l 选项列出所有设计 . 它显示在配置文件中的所有的box设计图,同时也显示关于其创作者的信息。 + boxes -l boxes -l | more boxes -l | less -示例输出: +输出示例: 43 Available Styles in "/etc/boxes/boxes-config": ------------------------------------------------- @@ -142,32 +146,32 @@ FreeBSD用户可以使用port: output truncated .. -### 我如何在vi/vim中使用boxes过滤文本? ### +### 在使用vi/vim文本编辑器时如何通过boxes过滤文本? ### -你可以在vi或者vim中使用任何外部命令。比如,[插入日期和时间][4],输入: +你可以使用vi或vim支持的任何附加命令,在这个例子中, [insert current date and time][4], 输入: !!date 或者 :r !date - -你需要在vim中输入上面的命令来读取date命令的输出。这可以在当前行中插入时间和日期: +你需要在vim中输入以上命令来读取数据命令的输出,这将在当前行后面加入日期和时分秒: Tue Jun 12 00:05:38 IST 2012 -你可以用boxes命令做同样的事情。如下创建一个示例脚本或者程序: +你可以用boxes命令做到同样的. 创建一个作为样本的shell脚本或者如下的一个c程序: + #!/bin/bash Purpose: Backup mysql database to remote server. Author: Vivek Gite Last updated on: Tue Jun, 12 2012 -现在输入下面的命令(移动光标到第二行,也就是说以Purpose开头的那行) +现在输入如下 (将光标移到第二行,也就是以"Purpose: ..."开头的行) 3!!boxes -你就会得到下面的示例输出: +瞧,你就会看到如下的输出 : #!/bin/bash /****************************************************/ @@ -175,24 +179,23 @@ FreeBSD用户可以使用port: /* Author: Vivek Gite */ /* Last updated on: Tue Jun, 12 2012 */ /****************************************************/ - -This video will give you an introduction to boxes command: -这个视频是boxes命令的一个介绍 +这个短片将会给你介绍boxes命令: 注:youtube 视频 -(视频01:boxes命令实践。顺便说一下,这是我的第一个视频,所以对我不要太认真并让我知道你们所想) -同样可见 +(Video:01: boxes command in action. BTW, this is my first video so go easy on me and let me know what you think.) -- boxes man页 +另见 + +- boxes man 手册 -------------------------------------------------------------------------------- via: http://www.cyberciti.biz/tips/unix-linux-draw-any-kind-of-boxes-around-text-editor.html 作者:Vivek Gite -译者:[geekpi](https://github.com/geekpi) +译者:[zky001](https://github.com/zky001) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -201,5 +204,3 @@ via: http://www.cyberciti.biz/tips/unix-linux-draw-any-kind-of-boxes-around-text [2]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/ [3]:http://www.cyberciti.biz/faq/fedora-sl-centos-redhat6-enable-epel-repo/ [4]:http://www.cyberciti.biz/faq/vim-inserting-current-date-time-under-linux-unix-osx/ - - From bf55379eef0d8b14bfa0555568300fc2b2c2168e Mon Sep 17 00:00:00 2001 From: joeren Date: Thu, 18 Feb 2016 17:44:20 +0800 Subject: [PATCH 056/582] Update 20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md --- ...o Enable Multiple PHP-FPM Instances with Nginx or Apache.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md b/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md index 4037c4aa92..10eaaf1388 100644 --- a/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md +++ b/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md @@ -1,3 +1,4 @@ +Translating by GOLinux! How to Enable Multiple PHP-FPM Instances with Nginx / Apache ================================================================================ @@ -118,4 +119,4 @@ via: http://linoxide.com/linux-how-to/enable-multiple-php-fpm-instances-nginx-ap 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 -[a]:http://linoxide.com/author/saheethas/ \ No newline at end of file +[a]:http://linoxide.com/author/saheethas/ From a4c3b419ee534969c86abfef15325f8db75d7f5b Mon Sep 17 00:00:00 2001 From: GOLinux Date: Thu, 18 Feb 2016 18:57:14 +0800 Subject: [PATCH 057/582] [Translated]How to Enable Multiple PHP-FPM Instances with Nginx/Apache.md --- ... PHP-FPM Instances with Nginx or Apache.md | 122 ------------------ 1 file changed, 122 deletions(-) delete mode 100644 sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md diff --git a/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md b/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md deleted file mode 100644 index 10eaaf1388..0000000000 --- a/sources/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md +++ /dev/null @@ -1,122 +0,0 @@ -Translating by GOLinux! -How to Enable Multiple PHP-FPM Instances with Nginx / Apache -================================================================================ - -PHP-FPM is also known as PHP FastCGI Process Manager. It is an advancement of PHP FastCGI implementation with more useful features for handling heavy-loaded servers and websites. Some of those features are listed below: - -### New Features ### - - - Advanced process managament capability with graceful start/stop options. - - Ability to run the processes with different userids/groupids listening on different ports and using different PHP configurations. - - Error logging. - - Acceleration upload support - - Special function to finish request and flush all data while doing some time consuming tasks - - Both Dynamic and Static Child process Spawning - - IP Address restriction - -In this article, I'm going to discuss about installing PHP-FPM along with Nginx and Apache on a CentOS 7 server running cPanel 11.52 with EA3(EasyApache) and how to manage those installed multiple PHP-FPM instances via CPanel. - -Before going to the installation procedures, let us take a look on the pre-requisites. - -### Pre-requisites ### - - 1. Enable Mod_proxy_fcgi module - 2. Enable MPM_Event - -Since, we are installing PHP-FPM on a EA3 server, we need to run EasyApache to compile Apache to enable these modules. - -You can refer my previous document on how to install Nginx as reverse proxy on a Apache server to confirm with the Nginx installation. - -I'll brief those installation steps once again here. You can refer to my previous documentation **(How to Set Nginx as Reverse Proxy on CentOS 7 /CPanel Server)** for details. - - Step 1: Install the Epel repo - Step 2: Install nDeploy RPM repo which is the most **IMPORTANT** step in this installation. - Step 3: Install nDeploy and Nginx plugin using yum from the nDeploy repo. - Step 4: Enable/Configure Nginx as reverse proxy - -Once this is done, install the PHP-FPM packages for all PHP versions available in the server. EA3 uses remi repository for installing these packages. You can run this nDeploy script to download all packages. - - root@server1 [~]# /opt/nDeploy/scripts/easy_php_setup.sh - Loaded plugins: fastestmirror, tsflags, universal-hooks - EA4 | 2.9 kB 00:00:00 - base | 3.6 kB 00:00:00 - epel/x86_64/metalink | 9.7 kB 00:00:00 - epel | 4.3 kB 00:00:00 - extras | 3.4 kB 00:00:00 - updates | 3.4 kB 00:00:00 - (1/2): epel/x86_64/updateinfo | 460 kB 00:00:00 - (2/2): epel/x86_64/primary_db - -Running this script will install all these FPM packages for PHP 54, PHP 55, PHP 56 and PHP 70. - - Installed Packages - php54-php-fpm.x86_64 5.4.45-3.el7.remi @remi - php55-php-fpm.x86_64 5.5.31-1.el7.remi @remi - php56-php-fpm.x86_64 5.6.17-1.el7.remi @remi - php70-php-fpm.x86_64 7.0.2-1.el7.remi @remi - -After this installation, you need to enable PHP-FPM SAPI for Apache. You can run this script to enable PHP-FPM instances. - - root@server1 [~]# /opt/nDeploy/scripts/apache_php-fpm_setup.sh enable - mod_proxy_fcgi.c - Please choose one default PHP version from the list below - PHP70 - PHP56 - PHP54 - PHP55 - Provide the exact desired version string here and press ENTER: PHP54 - ConfGen:: lxblogger - ConfGen:: blogr - ConfGen:: saheetha - ConfGen:: satest - which: no cagefsctl in (/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin) - info [rebuildhttpdconf] Missing owner for domain server1.centos7-test.com, force lookup to root - Built /usr/local/apache/conf/httpd.conf OK - Waiting for “httpd” to restart gracefully …waiting for “httpd” to initialize …… - …finished. - -It will ask the required PHP version which you prefer to run as default on the server. You can enter those details and proceed to configure and generate the virtual host files for the existing domains. - -I've chosen PHP 54 as the default PHP-FPM version on my server. - -![confirm-php-fpm](http://blog.linoxide.com/wp-content/uploads/2016/01/confirm-php-fpm-1024x525.png) - -Even though, the server is configured with PHP-FPM 54, we can modify the PHP-FPM instances for the individual domains via cPanel. - -I'll explain you on how to modify the PHP-FPM instances for individual domains via cPanel using some screenshots. - -The installation of Nginx plugin will provide you with an icon of Nginx Webstack in your domain's cPanel. You can click on that icon to configure your Web server. I've logged into one of my domain's cPanel to configure it's Web server. - -Please check these snapshots. - -![nginx webstack](http://blog.linoxide.com/wp-content/uploads/2016/01/nginx-webstack.png) - -![nginxicon1](http://blog.linoxide.com/wp-content/uploads/2016/01/nginxicon1-1024x253.png) - -Now you can configure the web-server for the selected main domain as required(I've selected the main domain saheetha.com here). I've gone ahead with automatic configuration options since, I don't have any manual settings to add. - -![nginx_auto_proxy](http://blog.linoxide.com/wp-content/uploads/2016/01/nginx_auto_proxy-1024x408.png) - -Once Nginx is configured, you can select the PHP-FPM instance for your domain here. - -![php-fpm1](http://blog.linoxide.com/wp-content/uploads/2016/01/php-fpm1-1024x408.png) - -![php54](http://blog.linoxide.com/wp-content/uploads/2016/01/php54-1024x169.png) - -![php55](http://blog.linoxide.com/wp-content/uploads/2016/01/php55.png) - -As you can see in these snapshots, my default PHP-FPM on the server is **PHP 54** and I'm changing the PHP-FPM instance for my domain alone to **PHP 55**. Once you've modified the PHP-FPM for your domain, you can confirm it by accessing the **phpinfo** page. - -Thank you for referring to this article. I believe this article is really informative and useful for you. I would recommend your valuable comments on this :). - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/enable-multiple-php-fpm-instances-nginx-apache/ - -作者:[Saheetha Shameer][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/saheethas/ From a8c18cbe391dac6abd9e8279d7974dc20f440456 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Thu, 18 Feb 2016 19:00:24 +0800 Subject: [PATCH 058/582] [Translated]How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md --- ... PHP-FPM Instances with Nginx or Apache.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 translated/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md diff --git a/translated/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md b/translated/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md new file mode 100644 index 0000000000..befa31312f --- /dev/null +++ b/translated/tech/20160217 How to Enable Multiple PHP-FPM Instances with Nginx or Apache.md @@ -0,0 +1,119 @@ +启用Nginx/Apache的PHP-FPM多实例 +================================================================================ + +PHP-FPM作为FastCGI进程管理器而广为熟知,它是PHP FastCGI实现的改进,带有更为有用的功能,用于处理高负载的服务器和网站。下面列出其中一些功能: +### 新功能 ### + + - 拥有具有优雅启动/停止选项的高级进程管理能力。 + - 可以以监听不同端口以及使用不同PHP配置的不同用户身份/组身份来运行进程。 + - 错误日志记录。 + - 支持上传加速。 + - 用于在处理一些耗时任务时结束请求和清空所有数据的特别功能。 + - 同时支持动态和静态子进程重生。 + - 支持IP地址限制。 + +在本文中,我将要讨论的是,在运行EA3下CPanel 11.52的CentOS 7服务器上与Nginx和Apache一起安装PHP-FPM,以及如何来通过CPanel管理这些安装好的多个PHP-FPM实例。 +Before going to the installation procedures, let us take a look on the pre-requisites. + +### 先决条件 ### + + 1. 启用 Mod_proxy_fcgi模块 + 2. 启用 MPM_Event + +由于我们要将PHP-FPM安装到一台EA3服务器,我们需要运行EasyApache来编译Apache以启用这些模块。 + +你们可以参考我以前写的,关于如何在Apache服务器上安装Nginx作为反向代理的文档来确认Nginx的安装。 + +这里,我将再次简述那些安装步骤。具体细节,你可以参考我之前写的**(如何在CentOS 7/CPanel服务器上配置Nginx反向代理)**一文。 + + 步骤 1:安装Epel仓库 + 步骤 2:安装nDeploy RPM仓库,这是此次安装中最为**重要**的步骤。 + 步骤 3:使用yum从nDeploy仓库安装nDeploy和Nginx插件。 + 步骤 4:启用/配置Nginx为反向代理。 + +完成这些步骤后,下面为服务器中所有可用PHP版本安装PHP-FPM包,EA3使用remi仓库来安装这些包。你可以运行这个nDeploy脚本来下载所有的包。 + + root@server1 [~]# /opt/nDeploy/scripts/easy_php_setup.sh + Loaded plugins: fastestmirror, tsflags, universal-hooks + EA4 | 2.9 kB 00:00:00 + base | 3.6 kB 00:00:00 + epel/x86_64/metalink | 9.7 kB 00:00:00 + epel | 4.3 kB 00:00:00 + extras | 3.4 kB 00:00:00 + updates | 3.4 kB 00:00:00 + (1/2): epel/x86_64/updateinfo | 460 kB 00:00:00 + (2/2): epel/x86_64/primary_db + +运行该脚本将为PHP 54,PHP 55,PHP 56和PHP 70安装所有这些FPM包。 + + Installed Packages + php54-php-fpm.x86_64 5.4.45-3.el7.remi @remi + php55-php-fpm.x86_64 5.5.31-1.el7.remi @remi + php56-php-fpm.x86_64 5.6.17-1.el7.remi @remi + php70-php-fpm.x86_64 7.0.2-1.el7.remi @remi + +在以上安装完成后,你需要为Apache启用PHP-FPM SAPI。你可以运行下面这个脚本来启用PHP-FPM实例。 + + root@server1 [~]# /opt/nDeploy/scripts/apache_php-fpm_setup.sh enable + mod_proxy_fcgi.c + Please choose one default PHP version from the list below + PHP70 + PHP56 + PHP54 + PHP55 + Provide the exact desired version string here and press ENTER: PHP54 + ConfGen:: lxblogger + ConfGen:: blogr + ConfGen:: saheetha + ConfGen:: satest + which: no cagefsctl in (/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin) + info [rebuildhttpdconf] Missing owner for domain server1.centos7-test.com, force lookup to root + Built /usr/local/apache/conf/httpd.conf OK + Waiting for “httpd” to restart gracefully …waiting for “httpd” to initialize …… + …finished. + +它会问你需要运行哪个PHP版本作为服务器默认版本,你可以输入那些细节内容,然后继续配置并为现存的域生成虚拟主机文件。 + +我选择了PHP 54作为我服务器上的默认PHP-FPM版本。 + +![confirm-php-fpm](http://blog.linoxide.com/wp-content/uploads/2016/01/confirm-php-fpm-1024x525.png) + +虽然服务器配置了PHP-FPM 54,但是我们可以通过CPanel为各个独立的域修改PHP-FPM实例。 + +下面我将通过一些截图来为你们说明一下,怎样通过CPanel为各个独立域修改PHP-FPM实例。 + +Nginx插件的安装将为你的域的CPanel提供一个Nginx Webstack图标,你可以点击该图标来配置你的Web服务器。我已经登陆进了我其中的一个CPanel来配置相应的Web服务器。 + +请看这些截图。 + +![nginx webstack](http://blog.linoxide.com/wp-content/uploads/2016/01/nginx-webstack.png) + +![nginxicon1](http://blog.linoxide.com/wp-content/uploads/2016/01/nginxicon1-1024x253.png) + +现在,你可以根据需要为选中的主域配置web服务器(这里,我已经选择了主域saheetha.com)。我已经继续通过自动化配置选项来进行了,因为我不需要添加任何手动设置。 + +![nginx_auto_proxy](http://blog.linoxide.com/wp-content/uploads/2016/01/nginx_auto_proxy-1024x408.png) + +当Nginx配置完后,你可以在这里为你的域选择PHP-FPM实例。 + +![php-fpm1](http://blog.linoxide.com/wp-content/uploads/2016/01/php-fpm1-1024x408.png) + +![php54](http://blog.linoxide.com/wp-content/uploads/2016/01/php54-1024x169.png) + +![php55](http://blog.linoxide.com/wp-content/uploads/2016/01/php55.png) + +就像你在截图中所看到的,我服务器上的默认PHP-FPM是**PHP 54**,而我正要将我的域的PHP-FPM实例单独修改成**PHP 55**。当你为你的域修改PHP-FPM后,你可以通过访问**phpinfo**页面来确认。 + +谢谢你们参考本文,我相信这篇文章会给你提供不少信息和帮助。我会为你们推荐关于这个内容的有价值的评论 :)。 + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/enable-multiple-php-fpm-instances-nginx-apache/ + +作者:[Saheetha Shameer][a] +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/saheethas/ From b7d17528a5cc1c83b6e6d8c0c069dcbbdb571310 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 20:05:24 +0800 Subject: [PATCH 059/582] Create A Linux-powered microwave oven.md --- .../tech/A Linux-powered microwave oven.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sources/tech/A Linux-powered microwave oven.md diff --git a/sources/tech/A Linux-powered microwave oven.md b/sources/tech/A Linux-powered microwave oven.md new file mode 100644 index 0000000000..f1e35685b7 --- /dev/null +++ b/sources/tech/A Linux-powered microwave oven.md @@ -0,0 +1,51 @@ +A Linux-powered microwave oven +================================================================================ + +Scratching an itch is a recurring theme in presentations at [linux.conf.au](http://linux.conf.au/). As the open-hardware movement gains strength, more and more of these itches relate to the physical world, not just the digital. David Tulloh used his [presentation [WebM]](http://mirror.linux.org.au/linux.conf.au/2016/04_Thursday/D4.303_Costa_Theatre/Linux_driven_microwave.webm) on the “Linux Driven Microwave” to discuss how annoying microwave ovens can be and to describe his project to build something less irritating. + +Tulloh's story began when he obtained a microwave oven, admittedly an inexpensive one, with a user interface even worse than the norm. Setting the time required pressing buttons so hard that the microwave tended to get pushed away — a fact that was elegantly balanced by the door handle requiring a sufficiently hard tug to return the oven to its original position. While this is clearly an extreme case, Tulloh lamented that microwave ovens really hadn't improved noticeably in recent decades. They may have gotten a little cheaper and gained a few features that few people could use without poring over the instruction manual — the implied contrast to smartphones, which are widely used with little instruction, was clear. + +This microwave oven was not a lost cause — it gave its life to the greater good and became the prototype for an idea that Tulloh hopes to turn into a crowd-funded project if he can find the right match between features and demand: a Linux-driven microwave oven. + +![](https://static.lwn.net/images/2016/lca-oven-sm.jpg) + +## Adding novelty + +Adding a smartphone-like touchscreen and a network connection and encouraging a community to build innovative apps such as recipe sharing are fairly obvious ideas once you think to put “Linux” and “microwave oven” together, but Tulloh's vision and prototype lead well beyond there. Two novel features that have been fitted are a thermal camera and a scale for measuring weight. + +The thermal camera provides an eight-by-eight-pixel image of the contents of the oven with a precision of about two degrees. This is enough to detect if a glass of milk is about to boil over, or if the steak being thawed is in danger of getting cooked. In either case, the power can be reduced or removed. If appropriate, an alert can be sounded. This would not be the first microwave to be temperature sensitive — GE sold microwave ovens with temperature probes decades ago — but an always-present sensor is much more useful than a manually inserted probe, especially when there is an accessible API behind it. + +The second innovation is a built-in scale to weigh the food (and container) being cooked. Many recipes give cooking-time guidance based on weight and some microwave ovens allow you to enter the weight manually so it can do a calculation for you. With built-in scales, that can become automatic. Placing a scale reliably under the rotating plate typical of many microwave ovens would be a mechanical challenge that Tulloh did not think worth confronting. Instead his design is based on the “flat-plate” or “flat-bed” style of oven — placing a sensor at each of the four corners is mechanically straightforward and gives good results. + + [User interface] +Once you have these extra sensors — weight and temperature — connected to a suitable logic engine, more interesting possibilities can be explored. A cup of cold milk from the fridge will have a particular weight and temperature profile with a modest degree of error. Tulloh suggested that situation could be detected and some relevant options such as “Boil” or “Warm” could be offered for easy selection (a mock up of the interface is at right, a clickable version is [here](http://mwgui.tulloh.id.au/)). Simple machine learning could extend this to create a personalized experience. It would be easy to collect a history of starting profiles and cooking choices; when those patterns are detected, the most likely cooking choices could be made the easiest to select. + +![](https://static.lwn.net/images/2016/lca-ovengui-sm.png) + +## Overcoming staleness + +Beyond just new functionality, Tulloh wants to improve the functionality that already exists. Door handles as stiff as on Tulloh's cheap microwave may not be common, but few microwave oven doors seem designed to make life easy for people with physical handicaps. There are regulatory restrictions, particularly in the US, that require the oven to function only if there is positive confirmation that the door is actually shut. This confirmation must be resilient against simple fraud, so poking a stick in the hole must not trick the oven into working with the door open. In fact, there must be two independent confirmations and, if they disagree, a fuse must be blown so that a service call is required. Tulloh believes that a magnetic latch would provide much greater flexibility (including easy software control) and that magnetic keying similar to that used in a [magnetic keyed lock](https://en.wikipedia.org/wiki/Magnetic_keyed_lock) would allow the magnetic latch to pass certification. + +Another pain point with microwave ovens is the annoying sounds they make. Tulloh has discarded the beeper and hooked up a speaker to the Banana Pi that is controlling his prototype. This allows for more pleasant and configurable alerts as well as for advice and guidance through a text-to-speech system. Adding a microphone for voice control is an obvious next step. + +Many microwave ovens can do more than just set a time and a power level — they provide a range of power profiles for cooking, warming, defrosting, and so on. Adding precise temperature sensing will allow the community to extend this range substantially. A question from Andrew Tridgell in the audience wondered if tempering chocolate — a process that requires very precise temperature control — would be possible. Tulloh had no experience with the process, and couldn't make promises, but thought it was certainly worth looking in to. Even if that doesn't work out, it shows clear potential for value to be gained from community input. + +## Availability + +Tulloh would very much like to get these Linux-enabled microwave ovens out into the world to create a community and see where it goes. Buying existing ovens and replacing the electronics is not seen as a viable option. The result would be ugly and, given that a small-run smart microwave will inevitably cost more, potential buyers are going to want something that doesn't look completely out of place in their kitchen. + +Many components are available off-the-shelf (magnetron, processor board, thermal sensor) and others, such as a USB interface for the thermal sensor, are easily built. Prototype software is, of course, already available on [GitHub](https://github.com/lod?tab=repositories). The case and door are more of a challenge and would need to be made to order. Tulloh wants to turn this adversity into an opportunity by providing the option for left-handed microwave ovens and a variety of colors. + +A quick survey of the audience suggested that few people would hastily commit to his target price of $AU1000 for a new, improved, open oven. Whether a bit more time for reflection and a wider audience might tip the balance is hard to know. The idea is intriguing, so it seems worth watching Tulloh's [blog](http://david.tulloh.id.au/category/microwave/) for updates. + + +------------------------------------------------------------------------------ + + +via: https://lwn.net/Articles/674877/ + +作者:Neil Brown +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 683d6b5f114edf4a84c92759b702eaff34c62613 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 20:06:54 +0800 Subject: [PATCH 060/582] Rename A Linux-powered microwave oven.md to 20160218 A Linux-powered microwave oven.md --- ...crowave oven.md => 20160218 A Linux-powered microwave oven.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{A Linux-powered microwave oven.md => 20160218 A Linux-powered microwave oven.md} (100%) diff --git a/sources/tech/A Linux-powered microwave oven.md b/sources/tech/20160218 A Linux-powered microwave oven.md similarity index 100% rename from sources/tech/A Linux-powered microwave oven.md rename to sources/tech/20160218 A Linux-powered microwave oven.md From e4f469029bdc99ee22bc0ab8b7a8a0db956c134e Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 20:21:04 +0800 Subject: [PATCH 061/582] =?UTF-8?q?20160218-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ng List of Raspberry Pi 2 Distributions.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md diff --git a/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md b/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md new file mode 100644 index 0000000000..5203be38d8 --- /dev/null +++ b/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md @@ -0,0 +1,43 @@ +Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions +============================================================== +Last week’s news that Tizen 3.0 has been ported to the Raspberry Pi 2 Model B is the latest example of how the year-old ARMv7 version of the Pi is attracting ports from more powerful Linux distributions, most notably Fedora, Ubuntu MATE, and Snappy. The [Samsung Open Source Group’s Tizen for Pi](http://blogs.s-osg.org/bringing-tizen-to-a-raspberry-pi-2-near-you/) project has been underway for several years, achieving several beta releases, and now the effort has shifted to the new Tizen 3.0. It’s still in beta, but now you can create builds for the Pi 2 using tools from the [Yocto](https://www.yoctoproject.org/) Project and [OpenEmbedded project](http://www.openembedded.org/wiki/Main_Page). + +Tizen 3.0 offers performance and security improvements, multiple-user and 64-bit support, and an Internet of Things (IoT) framework. Samsung, the principal backer of the [Linux Foundation hosted Tizen project](https://www.tizen.org/), is using the Pi port to expand the base of developers using Tizen for IoT projects, according to an [IDG News Service post](http://www.cio.com/article/3031812/samsung-hopes-raspberry-pi-can-spread-tizen-os-adoption.html) that reported on the port. + +Although Samsung finally [shipped a Tizen-based](http://www.linux.com/news/embedded-mobile/mobile-linux/837843-samsung-sells-a-million-tizen-phones-as-mozilla-rethinks-firefox-os) phone in India last summer, and Gear smartwatches continue to use Tizen, the main focus now appears to be on IoT. At CES last month, Samsung [announced](http://www.linux.com/news/embedded-mobile/mobile-linux/877879-linux-based-drones-upstage-other-mobile-gadgets-at-ces) that all of its Tizen-based, 2016 Smart TVs will be able to act as SmartThings home automation hubs, letting users monitor the household while watching TV. + +## The Growing List of Pi Distros + +[Elinux.org](http://elinux.org/RPi_Distributions) lists some 46 ARMv6-ready distributions that run on all the Raspberry Pi boards. A separate listing notes two ARMv7-only distros that require the ARMv7 Raspberry Pi 2: Ubuntu MATE, which replaces the resource-intensive Unity desktop with the Gnome 2.0 flavored MATE, and Windows 10 IoT Core. The prominent placement of a Microsoft distribution is not as controversial as one might have thought. To many younger Linux developers and casual Pi hackers, Microsoft is just another tech company, not so much the evil empire loathed by old-time Linux hackers. + +Windows 10 IoT Core isn’t the only non-Linux distro running on the Pi. There’s also the Unix-like FreeBSD and NetBSD, as well as the revived RISC OS Pi version of the old Acorn Computers OS. Some of the 48 operating systems on the Elinux.org list are incomplete, out-of-date, or dedicated to limited niches. [DistroWatch](https://distrowatch.com/search.php?category=Raspberry+Pi) offers a more manageable list of 20. + +The [Raspberry Pi Foundation](https://www.raspberrypi.org/) still prominently posts a download page for its homegrown, Debian-based Raspbian, in both standard and NOOBS packages. This lightweight distro is still the most popular and typically the highest rated Linux build for the Pi. The Scratch-ready distro is especially equally suited for desktop use and embedded hacking with home automation gear, robots, and other IoT gizmos. Raspbian recently [received an update](http://news.softpedia.com/news/raspbian-gets-experimental-opengl-driver-gpu-now-used-for-acceleration-500152.shtml) with an experimental OpenGL driver for doing hardware acceleration on the VideoCore IV GPU used with the Pi 2’s Broadcom BCM2836 SoC. + +The Pi Foundation also lists several [third-party downloads](https://www.raspberrypi.org/downloads/). In addition to Windows 10 IoT Core and and Ubuntu MATE, the list includes the lightweight, transactionally focused [Snappy Ubuntu Core](http://www.linux.com/news/embedded-mobile/mobile-linux/804659-ubuntu-snappy-leads-mobile-linux-migration-to-iot) for the Pi 2. Canonical is aiming Snappy at those who want an app platform and cloud integration in embedded devices like drones and IoT devices. Snappy also came out last week in a version designed for [Intel NUC mini-PCs](https://insights.ubuntu.com/2016/02/10/ubuntu-core-is-available-for-the-intel-nuc/). The Pi Foundation also posts images for RISC OS and the education-focused PINET. There are also two media center distros related to KODI/XBMC: OSMC and OpenElec. + +In addition to its list of 48 released distros, Elinux.org lists several “announced” distros including Firefox OS, [openSUSE](https://www.reddit.com/r/openSUSE/comments/3hxrz4/opensuse_on_a_raspberry_pi_2_armv7/), Meego MER & XBMC, Puppy, RPi-Buildroot, and Aros. Missing, however, is Tizen, as well as newly announced ports such as [Manjaro-ARM](http://www.linux-arm.info/index.php/1103-hands-on-more-adventures-with-manjaro-arm-for-the-raspberry-pi-2) and the CentOS 7-based [CentOS AltArch 7](http://www.linux-arm.info/index.php/1054-centos-altarch-7-now-available-for-aarch64-powerpc64-powerpc8-le-and-armhfp) for the Pi 2, Banana Pi, and CubieTruck SBCs. + +## Android Still Pi in the Sky + +Elinux.org’s “announced” list also includes Android and a Miracast-like program called Android Transporter. People have been trying to port Android to the Pi for years; yet, even with the more suitable [Pi 2](http://www.linux.com/news/embedded-mobile/mobile-linux/807087-faster-raspberry-pi-2-says-yes-to-ubuntu-and-windows-but-wheres-android) shipping for a year now, Android is still pretty much a no-show. Android can run on lower-powered SoCs than the Pi 2’s quad-core, Cortex-A7, but the limited 1GB of RAM and the lack of GPU acceleration are big challenges. Perhaps Raspbian’s OpenGL driver could be ported to Android as well, although the Pi Foundation does not seem very interested in Android. + +There are several Android-for-Pi projects in the works, but without the foundation’s backing, there is still nothing close to a complete port. Projects include an [AOSP Marshmallow](http://www.linux.com/news/embedded-mobile/mobile-linux/886126-tizen-30-joins-growing-list-of-raspberry-pi-2-distros#!topic/android-rpi/YW_gGr8wZkk) patch-set from Peter Yoon, as well as a [RaspAnd](https://extonlinux.wordpress.com/2015/04/05/run-android-5-1-lollipop-exton-build-on-your-raspberry-pi-2/) release based on the Ubuntu-based RaspEx, which makes use of the Aptoide package manager to load some Android 5.1 apps on a Pi 2. The [Razdroid project](https://www.raspberrypi.org/forums/viewtopic.php?f=73&t=19106), which aims to tap into the secrets of Broadcom hardware acceleration, seems to have stalled. + +Most Rasp Pi users, however, appear more interested in [Ubuntu MATE](https://ubuntu-mate.org/raspberry-pi/), which was never optimized for ARMv6, and Fedora. For years, Pi users have run the lightweight spin-down of Fedora called Pidora, but with the Pi 2, they can now try the real thing. The Raspberry Pi Foundation has yet to post Fedora, but the recent [betas of the Pi 2 port](https://chisight.wordpress.com/2015/10/19/fedora-22-or-23-on-raspberry-pi-2/) have received high marks. + +Other Linux distributions that regularly make Top Pi distro lists include Arch Linux, which unlike most ports from mature Linux distros, works just fine on ARMv6. A recent [TechRadar Top 5 list](http://www.techradar.com/us/news/software/5-of-the-most-popular-raspberry-pi-distros-1292537) includes several more niche distros in addition to Raspbian. These include the OSMC media player environment, RetroPie for playing classic games, OpenMediaVault for turning your Pi into a NAS, and Pi MusicBox, based on the Mopidy music streaming server. + +Beyond Ubuntu, Fedora, and Tizen, other distros, both arcane and general, are heading for the Pi 2, as well. The platform is rapidly expanding the boundaries of, as well as redefining the meaning of, desktop Linux. + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/embedded-mobile/mobile-linux/886126-tizen-30-joins-growing-list-of-raspberry-pi-2-distros + +作者:[Eric Brown][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a](http://www.linux.com/community/forums/person/42808) From 47be313d3315e8713b5f4e29ac2350f126b656f2 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 20:32:55 +0800 Subject: [PATCH 062/582] =?UTF-8?q?20160218-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...160218 Russia Announces Switch to Linux.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 sources/news/20160218 Russia Announces Switch to Linux.md diff --git a/sources/news/20160218 Russia Announces Switch to Linux.md b/sources/news/20160218 Russia Announces Switch to Linux.md new file mode 100644 index 0000000000..aa7fb66a86 --- /dev/null +++ b/sources/news/20160218 Russia Announces Switch to Linux.md @@ -0,0 +1,33 @@ +This Week in Linux News:Russia Announces Switch to Linux, Outdated Fight for the Linux Desktop +========================================================================= +This week in Linux news, Russia announces a possible switch to Linux, Jack Wallen ponders the importance of the Linux Desktop in 2016, and more! Get up-to-date on the Latest Linux news with our weekly digest. + +1. Russia announces a possible switch to Linux in retalliation against Western business embargo on Crimea. + + [Russia Might Switch Thousands of Government Computers to Linux to Spite Microsoft](http://www.techradar.com/news/world-of-tech/russia-might-switch-thousands-of-government-computers-to-linux-to-spite-microsoft-1314762) - TechRadar + +2. "It doesn't matter if Linux has 1% or 99% of the desktop market share" writes Jack Wallen. + + [Should the Fight for the Linux Desktop Really Matter?](http://www.techrepublic.com/article/should-the-fight-for-the-linux-desktop-really-matter/) - TechRepublic + +3. The Linux Foundation's Hyperledger Project experiences growth in membership since its launch in December. + + [Linux Foundation-Led Blockchain Project Grows to 30 Members](http://www.coindesk.com/linux-foundation-led-hyperledger-project-swells-to-30-members/) - CoinDesk + +4. Docker's founder and CTO, Solomon Hykes, suggests Alpine Linux will be the company's new default OS. + + [Is Docker Ditching Ubuntu Linux? Confusion Reigns](http://www.infoworld.com/article/3031847/open-source-tools/is-docker-ditching-ubuntu-linux-confusion-reigns.html) - InfoWorld + +5. The Node.js Foundation, a Linux Foundation Collaborative Project, will bring in popular third-party "Express" package. + + [The Node.js Foundation Plans to Incubate One of the Community’s Most Popular Packages](http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more#gref)- The Next Web + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more + +作者:[linux.com][linux.com] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From e1423fd93635f7b85b6d9c8b28841108d81edf7a Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 20:43:32 +0800 Subject: [PATCH 063/582] =?UTF-8?q?20160218-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Releases Free Linux IDE for 32-Bit MCUs.md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md diff --git a/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md new file mode 100644 index 0000000000..d90f6bfbce --- /dev/null +++ b/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md @@ -0,0 +1,54 @@ +ST Releases Free Linux IDE for 32-Bit MCUs +================================================= + +![](http://www.linux.com/images/stories/66866/STM32_Nucleo_expansion_board.jpg) + +The 32-bit microcontroller world is starting to open up to Linux. This week, leading ARM Cortex-M vendor STMicroelectronics (ST) [released](http://www.st.com/web/en/press/p3781) a free Linux desktop version of its development software for its line of STM32 microcontroller units (MCUs). The tools include ST’s STM32CubeMX configurator and initialization tool, as well as its [System Workbench for STM32 (SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) , an Eclipse-based IDE created by Ac6 Tools. SW4STM32 is supported with toolchain, forums, blogs, and technical support by the [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) development community. + +"The Linux community is known to attract creative free-thinkers who are adept at sharing ideas and solving challenges efficiently," stated Laurent Desseignes, Microcontroller Ecosystem Marketing Manager, Microcontroller Division, STMicroelectronics. "We are now making it ultra-easy for them to apply their skills to create imaginative new products, leveraging the features and performance of our STM32 family." + +Linux is the leading platform for Internet of Things gateways and hubs, as well as higher-end IoT endpoints. Yet, much of the IoT revolution, as well as the wearables market, is based on tiny, low-power microcontrollers, increasingly Cortex-M chips. A small subset of these can run the stripped-down uCLinux (see below), but none support more comprehensive Linux distributions. Instead, they are controlled with real-time operating systems (RTOSes) or go bare-bones with no OS at all. The firmware development work is typically done on a Windows-based Integrated Development Environment (IDE). + +With ST’s free tools, Linux developers can more easily tap this new realm. ST’s tools, some of which should also be available for Mac OS/X in the second quarter, work with [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) boards, Discovery kits, and Evaluation boards. The Nucleo boards are available in 32-, 64-, and 144-pin versions, and offer hardware add-ons such as Arduino connectors. + +The STM32CubeMX configurator and SW4STM32 IDE enable Linux developers to configure microcontrollers and develop and debug code. SW4STM32 supports the ST-LINK/V2 debugging tool under Linux via an adapted version of the [OpenOCD](http://openocd.org/) community project. + +The software is compatible with microcontroller firmware within the STM32Cube embedded-software packages or Standard Peripheral Library, says ST. Targets include ST’s full range of MCUs, from entry-level Cortex-M0 cores to high-performing M7 chips, including M0+, M3, and DSP-extended M4 cores. + +ST is not the first 32-bit MCU vendor to offer Linux-ready IDEs for Cortex-M chips, but it appears to be one of the first major free Linux platforms. For example, NXP, whose share of the MCU market increased with its recent acquisition of Freescale (Kinetis MCUs, among others), offers an [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO) with Linux, Windows, and Mac support. However, LPCXpresso costs $450 per individual seat. + +Microsemi, which integrates Cortex-M3 chips in its [SmartFusion FPGA SoCs](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3) has a [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support) available for Red Hat Enterprise Linux (RHEL) in addition to Windows. However, Libero requires a license, and the RHEL version lacks support for add-on packages such as FlashPro and SoftConsole. + +## Why Learn MCU-Speak? + +Even if a Linux developer has no plans to load uClinux on a Cortex-M chip, knowledge of MCUs should come in handy. This is especially true with complex, heterogeneous IoT projects that extend from MCU-based endpoints to cloud platforms. + +For prototyping and hobbyist projects, an interface to an Arduino board offers fairly easy access to MCU benefits. Yet beyond prototyping, developers often replace the Arduino board and its 8-bit ATmega32u4 MCU with a faster 32-bit Cortex-M chip with additional functionality. This includes improved memory addressing, independent clock settings for the core and various buses, and in the case of some [Cortex-M7](http://www.electronicsnews.com.au/products/stm32-mcus-with-arm-cortex-m7-processors-and-graph) chips, rudimentary graphics. + +Other categories where MCU development skills might come in handy include wearables, where low power, low cost, and small size give MCUs an edge, and robotics and drones where real-time processing and motor control are the main benefits. In robotics, you’re likely to see Cortex-A and Cortex-M both integrated in the same product. + +There’s also a modest trend toward system-on-chips adding MCUs to Linux-driven Cortex-A cores, as with the [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/). While most embedded projects don’t use such hybrid SoCs or combine applications processor and MCUs on the same product, developers may increasingly find themselves working on product lines that extend from low-end MCU models to Linux- or Android-driven Cortex-A based designs. + +## uClinux Stakes Linux Claim in MCUs + +With the rise of IoT, we’re starting to see more SBCs and computer-on-modules that run uClinux on 32-bit MCUs. Unlike other Linux distributions, uClinux does not require a memory management unit (MMU). uClinux does, however, have higher memory requirements than most MCUs can meet. The distro requires higher end Cortex-M4 and Cortex-M4 MCUs with built-in memory controllers supporting external DRAM chips. + +[Amptek’s iCon](http://www.semiconductorstore.com/Amptek/) SBCs run uClinux on NXP LPC Cortex-M3 and -M4 chips, offering familiar trappings like WiFi, Bluetooth, USB, and other interfaces. Arrow’s [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) IoT development kit runs uClinux on an Emcraft Systems SmartFusion2 COM based on Microsemi’s 166MHz, Cortex-M3/FPGA SmartFusion2 hybrid SoC. + +[Emcraft](http://www.emcraft.com/), which sells uClinux-based COMs based on ST and NXP, as well as Microsemi MCUs, has been actively promoting the role of uClinux on 32-bit MCUs. Increasingly, uClinux is up against ARM’s own [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/), at least on high-end MCU projects that require wireless communications and more sophisticated rules-based operation. Proponents of Mbed and modern, open source RTOSes like FreeRTOS say that uClinux requires too much RAM overhead to make it affordable for IoT endpoints. However, Emcraft and other uCLinux proponents claim the costs are overstated, and are worth the more extensive Linux wireless and interface support available even in a stripped down distro like uClinux. + +When asked for comment on the ST release, Emcraft director of engineering Vladimir Khusainov had this to say: “ST’s decision to port its development tools to Linux is good news for Emcraft since it allows Linux users an easy way to start working with embedded STM MCUs. We expect that, having had a chance to get familiar with STM devices using the ST configurator and embedded libraries, some of those users may become interested in running embedded Linux (in its uClinux form) on the target.” + +For a recent overview of uClinux on Cortex-M4, check out this [slide show](http://events.linuxfoundation.org/sites/events/files/slides/optimize-uclinux.pdf) from last year’s Embedded Linux Conference by Jim Huang and Jeff Liaw. More on Cortex-M processors in general may be found in this tidy [AnandTech overview](http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores). + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus + +作者:[Arun Pyasi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/42808 From 8136b37aaf7dc2ca5ff8ec43994c76b60e37bfdf Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:01:59 +0800 Subject: [PATCH 064/582] =?UTF-8?q?20160218-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Getting to Know Linux File Permissions.md | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 sources/tech/20160218 Getting to Know Linux File Permissions.md diff --git a/sources/tech/20160218 Getting to Know Linux File Permissions.md b/sources/tech/20160218 Getting to Know Linux File Permissions.md new file mode 100644 index 0000000000..03f6d5018e --- /dev/null +++ b/sources/tech/20160218 Getting to Know Linux File Permissions.md @@ -0,0 +1,147 @@ +Getting to Know Linux File Permissions +========================================== + +![](http://www.linux.com/images/stories/66866/files_a.png) + +One of the most basic tasks in Linux is setting file permissions. Understanding how this is done should be considered a must-know, first step in your travels through the Linux ecosystem. As you might expect, such a fundamental issue within the operating environment hasn’t changed much over the years. In fact, the Linux file permission system is taken directly from the UNIX file permission (and even uses many of the same tools). + +But, don’t think for a second that understanding file permissions is something you’ll wind up having to spend days and days studying...it’s actually quite simple. Let’s walk through what you need to know and how to put it all together. + +## The Bits and Pieces + +The first thing you need to understand is what file permissions apply to. Effectively what you do is apply a permission to a group. When you break it down, the concept really is that simple. But what are the permissions and what are the groups? + +There are three types of permissions you can apply: + +- read — gives the group permission to read the file (indicated with `r`) + +- write — gives the group permission to edit the file (indicated with `w`) + +- execute — gives the group permission to execute (run) the file (indicated with `x`) + +To better explain how this is applied to a group, you could, for example, give a group permission to read and write to a file, but not execute the file. Or, you could give a group permission to read and execute a file, but not write to a file. You can even give a group full permission to read, write, and execute a file or strip a group of any access to a file by removing all permissions. + +Now, what are the groups? There are four: + +- user — the actual owner of the file + +- group — users in the file’s group + +- others — other users not in the file’s group + +- all — all users + +For the most part, you will only really ever bother with the first three groups. The all group is really only used as a shortcut (I’ll explain later). + +So far so simple, right? Let’s layer on a bit of complexity. + +If you open up a terminal window and issue the command ls -l, you will see a line-by-line listing of all files and folders within the current working directory (Figure 1 above). + +If you look in the far left column, you’ll notice listings like `-rw-rw-r--`. + +That listing should actually be looked at like so: + +>rw- rw- r-- + +As you can see, the listing is broken into three sections: + +- rw- + +- rw- + +- r-- + +The order is quite important...for both permissions and for groups. The order is always: + +- User Group Others — for groups + +- Read Write Execute — for permissions + +In our permissions listing example above, the User has read/write permission, the Group has read/write permission, and Others has only read permission. Had any of those groups been given executable permissions, it would have been represented with an x. + +## Numerical Equivalent + +Let’s make this even more complex. Each permission can also be represented by a number. The numbers are: + +- Read — 4 + +- Write — 2 + +- Execute — 1 + +The numerical substitution isn’t an apples to apples change. You can’t drop in: + +>-42-42-4-- + +Instead, what you do is add up the numbers you want for each group. Let’s stick with our example above (`-rw-rw-r—`). To give the User group read and write permission, you would add up 4+2 to get 6. For the Group, you need the same permissions, so they get the same number. You only want Others to have read permissions, so they get 4. The numerical equivalent is now: + +>664 + +So, if you want to give a file 664 permissions, you’d issue the chmod command like this: + +>chmod 664 FILENAME + +where FILENAME is the name of the file. + +## Changing Permissions + +Now that you understand the actual permissions of files, it’s time to learn how to change those permissions. This is done with the chmod command. One of the first things you must understand is that, to be able to change the permissions of a file, either you must be the owner of the file or you must have permission to edit the file (or have admin access by way of su or sudo). Because of that, you cannot just jump around in the directory structure and change permissions of files at will. + +Let’s stick with our example (`-rw-rw-r--`). Suppose this file (we’ll name it script.sh) is actually a shell script and needs to be executed...but you only want to give yourself permission to execute that script. At this point, you should be thinking, “Ah, then I need the permission listing to read `-rwx-rw-r--`!”. To get that `x` bit in there, you’d run the chmod command like so: + +>chmod u+x script.sh + +At this point, the listing will be -rwx-rw-r--. + +If you wanted to give both User and Group executable permission, the command would look like: + +>chmod ug+x script.sh + +See how this works? Let’s make it interesting. Say, for whatever reason, you accidentally give all groups executable permissions for that file (so the listing looks like `-rwx-rwx-r-x`). If you want to strip Others of executable permissions, issue the command: + +>chmod o-x script.sh + +What if you want to completely remove executable permission from the file? You can do that two ways: + +>chmod ugo-x script.sh + +or + +>chmod a-x script.sh + +That’s where all comes into play. This is used to make the process a bit more efficient. I prefer to avoid using a as it could lead to issues (such as, when you accidentally issue the command chmod `a-rwx` script.sh). + +## Directory Permissions + +You can also execute the chmod command on a directory. When you create a new directory as a user, it is typically created with the following permissions: + +>drwxrwxr-x + +NOTE: The leading d indicates it is a directory. + +As you can see, both User and Group have executable permission for the folder. This does not mean that any files created in the folder will have the same permissions (files will be created with the default system permissions of `-rw-rw-r--`). But, suppose you do create files in this new directory, and you want to strip Group of write permissions. You don’t have to change into the directory and then issue the chmod command on all the files. You can add the R option (which means recursive) to the chmod command and change the permission on both the folder and all the containing files. + +Now, suppose our example is a folder named TEST and within it is a number of scripts — all of which (including the TEST folder) have permissions `-rwxrwxr-x`. If you want to strip Group of write permissions, you could issue the command: + +>chmod -R g-w TEST + +If you now issue the command ls `-l`, you will see the TEST folder now has a permission listing of `drwxr-xr-x`. Group has been stripped of its write permissions (as will all the files within). + +## Permission to Conclude + +At this point, you should now have a solid understand of the basic Linux file permissions. There are more advanced issues that you can now easily study, such as setuid and setgid and ACLs. Without a good foundation of the basics, however, you’d quickly get lost with those next-level topics. + +Linux file permissions haven’t changed much, since the early days. And, they most likely won’t change much going into the future. + + +------------------------------------------------------------------------------ + +via: http://www.linux.com/learn/tutorials/885268-getting-to-know-linux-file-permissions + +作者:[Jack Wallen][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/93 From 480813356abe9606acec9037b0c292b8e8bd928d Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:06:17 +0800 Subject: [PATCH 065/582] =?UTF-8?q?20160218-6=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20160218 A Linux-powered microwave oven.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sources/tech/20160218 A Linux-powered microwave oven.md b/sources/tech/20160218 A Linux-powered microwave oven.md index f1e35685b7..109212ad14 100644 --- a/sources/tech/20160218 A Linux-powered microwave oven.md +++ b/sources/tech/20160218 A Linux-powered microwave oven.md @@ -41,7 +41,6 @@ A quick survey of the audience suggested that few people would hastily commit to ------------------------------------------------------------------------------ - via: https://lwn.net/Articles/674877/ 作者:Neil Brown From 10ccb319a19d83164857e9ec94db554b6b9528ae Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:17:42 +0800 Subject: [PATCH 066/582] =?UTF-8?q?20160218-7=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...creates diabetes project for the masses.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md diff --git a/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md b/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md new file mode 100644 index 0000000000..7ac86c8045 --- /dev/null +++ b/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md @@ -0,0 +1,34 @@ +Mozilla contributor creates diabetes project for the masses +================================================================ + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) + +My open source story started in high school as a student. I always considered myself to be a hacker—not the malicious type, but the curious type who liked to tinker with code and hardware. My first encounter with open source was in 2001 when I installed my first Linux distro, [Lindows](https://en.wikipedia.org/wiki/Linspire). Of course, I was also an early user of [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/?utm_source=firefox-com&utm_medium=referral). + +As a result of my early adoption of Linux, the first version I used was 1.0.4 (if I recall correctly), and I immediately fell in love. While I did not stay long with Lindows, hopping across many distros ([Debian](https://www.debian.org/), [Puppy Linux](http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm), [SUSE](https://www.suse.com/), [Slackware](http://www.slackware.com/), [Ubuntu](http://ubuntu.com/)) over the years I continued to use open source software on a daily basis from my youth into adulthood. + +Eventually, I consistently used Ubuntu. Around the release of Hardy Heron I started some of my first contributions to Ubuntu, helping out on IRC and helping users locally who needed help. With Ubuntu being where I cut my teeth in open source, it has always had a special place in my heart. The community behind Ubuntu is very diverse, passionate, and friendly and everyone comes together with some shared common goals but also individuals' goals as drivers for why they contribute to open source. + +After having contributed to Ubuntu for a while, I started contributing upstream to projects like Debian, [GNOME](https://www.gnome.org/), [Ganeti](https://code.google.com/p/ganeti/), and many others. In the past few years I have contributed to over 40 different open source projects, some small and some very large. + +After some changes in direction in the Ubuntu project, I ended up deciding not only that was it time for me to try something new, but that also I wanted to put my contributions into something new. So I started getting involved in Mozilla around 2009, helping out on IRC and then eventually getting involved with the [Mozilla WebFWD program](https://webfwd.org/), becoming a team member, then the [Mozilla Reps Program](https://reps.mozilla.org/), [Mozilla DevRel Program](https://wiki.mozilla.org/Devrel), and then for just over two years was a Firefox Community Release Manager overseeing the release of Firefox Nightly and Firefox ESR. Contributing to Mozilla was an even more rewarding experience than contributions to other open source projects. Of all the open source communities I've been involved in, Mozilla has been the most diverse, largest, and friendliest. + +One thing that has happened over the years in terms of my feelings about open source is I've become more and more aligned to the values of free software and more defensive of things like privacy and respecting licensing and working in the open. I believe all three of those topics are very important to open source, and while many may not care about these things it's important that people advocate for them. + +And here I am today, no longer a full-time contributor to other people's open source projects. Recently being diagnosed with diabetes, I saw a gap in the open source ecosystem where open source health software was not very abundant. Where it did exist, it was not as active as other open source software applications like Linux distros or browsers. + +I recently founded my own open source project, [Glucosio](http://www.glucosio.org/), to bring open source diabetes management and research software to the masses. My years of contributing to open source projects and observing various structures has really come in handy being a project leader now. I'm very excited about the future of Glucosio, but most importantly about the future open source and how that will play out in health and medicine. + +There is a lot of potential for software innovation in healthcare, and I think we will soon see a startup disrupt healthcare and medicine with open source solutions. + +------------------------------------------------------------------------------ + +via: https://opensource.com/life/15/11/my-open-source-story-ben-kerensa + +作者:[opensource.com][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:opensource.com From 81b7e1c8d8cdae0dbd061f32126392b5ac84d516 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:32:41 +0800 Subject: [PATCH 067/582] =?UTF-8?q?20160218-8=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...untu Edition Announced and It's a Beast.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md diff --git a/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md new file mode 100644 index 0000000000..5fb0d286d0 --- /dev/null +++ b/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -0,0 +1,37 @@ +Meizu PRO 5 Ubuntu Edition Announced and It's a Beast +======================================================== + +## Canonical and Meizu have just revealed that Meizu PRO 5 Ubuntu Edition will be available for pre-order during Mobile World Congress 2016. + +It's been a while since we last heard something from Meizu, but it looks like the collaboration between Canonical and the Chinese hardware maker is still alive. From the looks of it, the previous Meizu MX4 Ubuntu Edition was only a limited release, so only a small number of devices have been sold. + +We can only hope that Meizu PRO 5 Ubuntu Edition will be made available in greater numbers, especially since it's a much newer phone that's still supported by Meizu. + +This latest Meizu PRO 5 Ubuntu Edition is the fifth official device that comes with Ubuntu Touch, and we'll likely see many more phones and maybe tablets with this operating system landing in 2016. + +##Meizu PRO 5 Ubuntu Edition is a beast + +Canonical says that it's the most powerful Ubuntu smartphone launched to date, and they are right, not to mention that it's also the biggest, if we don't count the tablet. Meizu PRO 5 features a Samsung Exynos 7420 Octa-core processor, a 5.7-inch 1920x1080 AMOLED display, Corning Gorilla Glass 3, and LPDDR4 memory technology. + +Many of you will probably ask if this new phone is also capable of desktop convergence, and it looks that users are in luck. + +"Canonical remains committed to the vision of reinventing personal computing through a single, adaptive platform for all personal device form factors. As such, while the PRO 5 lacks MHL output, the software running on the Meizu PRO 5 is the latest code which also powers recently announced tablets and other devices and is capable of providing a traditional desktop experience," the company explained. + +Meizu PRO 5 was initially launched back in September 2015. Users will also get a 21 MP back camera, and the phone can shoot video at 2160p and 30fps. It also comes with a fingerprint sensor and a Li-Ion 3050 mAh battery with fast charging. + +For now, the phone will only be available in China and Europe, and the preorders will be opened during the Mobile World Congress 2016 that takes place between February 22 and 25. + +![](http://i1-news.softpedia-static.com/images/fitted/620x/meizu-pro-5-ubuntu-edition-announced-and-it-s-a-beast-photos-500526-11.jpg) + + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/embedded-mobile/mobile-linux/886322-meizu-pro-5-ubuntu-edition-announced-and-its-a-beast + +作者:[Silviu Stahie][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/silviu-stahie From 630a8ea4c531cfa7c22da8cb59c333fa6b267fba Mon Sep 17 00:00:00 2001 From: miaolin Date: Thu, 18 Feb 2016 21:35:02 +0800 Subject: [PATCH 068/582] Update 20160218 Mozilla contributor creates diabetes project for the masses.md --- ...ozilla contributor creates diabetes project for the masses.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md b/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md index 7ac86c8045..61e5c08883 100644 --- a/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md +++ b/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md @@ -1,3 +1,4 @@ +translating by ynmlml Mozilla contributor creates diabetes project for the masses ================================================================ From 849eb6500f1ee20c228562613ca4c5677507e731 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:38:49 +0800 Subject: [PATCH 069/582] =?UTF-8?q?20160218-9=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Systems Patched for Critical glibc Flaw.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md diff --git a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md new file mode 100644 index 0000000000..19c654e27e --- /dev/null +++ b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md @@ -0,0 +1,50 @@ +Linux Systems Patched for Critical glibc Flaw +================================================= + +**Google exposed a critical flaw affecting major Linux distributions. The glibc flaw could have potentially led to remote code execution.** + +Linux users today are scrambling to patch a critical flaw in the core glibc open-source library that could be exposing systems to a remote code execution risk. The glibc vulnerability is identified as CVE-2015-7547 and is titled, "getaddrinfo stack-based buffer overflow." + +The glibc, or GNU C Library, is an open-source implementation of the C and C++ programming language libraries and is part of every major Linux distribution. Google engineers came across the CVE-2015-7547 issue when they were attempting to connect into a certain host system and a segmentation fault (segfault) occurred, causing the connection to crash. Further investigation revealed that glibc was at fault and the crash could potentially achieve an arbitrary remote code execution condition. + +"The glibc DNS client side resolver is vulnerable to a stack-based buffer overflow when the getaddrinfo() library function is used," Google wrote in a blog post. "Software using this function may be exploited with attacker-controlled domain names, attacker-controlled DNS [Domain Name System] servers, or through a man-in-the-middle attack." + +Actually exploiting the CVE-2015-7547 issue is not trivial, but it is possible. To prove that the issue can be exploited, Google has published proof-of-concept (PoC) code on GitHub that demonstrates if an end user or system is vulnerable. + +"The server code triggers the vulnerability and therefore will crash the client code," the GitHub PoC page states. + +Mark Loveless, senior security researcher at Duo Security, explained that the main risk of CVE-2015-7547 is to Linux client-based applications that rely on DNS responses. + +"There are some specific conditions, so not every single application will be impacted, but it appears that several command-line utilities, including the popular SSH [Secure Shell] client could trigger the flaw," Loveless told eWEEK. "We deem this serious mainly because of the existing risks to Linux systems, but also because of the potential for other issues." + +Other issues could potentially include a risk of an email-based attack that triggers the vulnerable glibc getaddrinfo() library call. Also of note is the fact that the vulnerability was in the code for years before it was discovered. + +Google's engineers were not the first or only group to discover the security risk in glibc. The issue was first reported to a glibc bug [tracker](https://sourceware.org/bugzilla/show_bug.cgi?id=1866) on July 13, 2015. The roots of the flaw go back even further with the actual code commit that introduced the flaw first in glibc 2.9, which was released in May 2008. + +Linux vendor Red Hat also independently was looking at the bug in glibc and on Jan. 6, 2016, Google and Red Hat developers confirmed that they had been independently working on the same vulnerability as part of the initial private discussion with upstream glibc maintainers. + +"Once it was confirmed that both teams were working on the same vulnerability, we collaborated on potential fixes, mitigations and regression testing," Florian Weimer, principal software engineer for product security at Red Hat, told eWEEK. "We also worked together to make the test coverage as wide as possible to catch any related problems in the code to help prevent future issues." + +It took years to discover that there was a security issue with the glibc code because that flaw isn't obvious or immediately apparent. + +"To diagnose bugs in a networking component, like a DNS resolver, it is common to look at packet traces which were captured while the issue was encountered," Weimer said. "Such packet captures were not available in this case, so some experimentation was needed to reproduce the exact scenario that triggered the bug." + +Weimer added that once the packet captures were available, considerable effort went into validating the fix, leading to a series of refinements culminating in the regression test suite that was contributed upstream to the glibc project. + +In many cases in Linux, the Security Enhanced Linux (SELinux) mandatory access security controls can mitigate the risk of potential vulnerabilities, but that's not the case with the new glibc issue. + +"The risk is a compromise of important system functionality due to the execution of arbitrary code supplied by an attacker," Weimer said. "A suitable SELinux policy can contain some of the damage an attacker might do and constrain their access to the system, but DNS is used by many applications and system components, so SELinux policies offer only limited containment for this issue." + +Alongside the vulnerability disclosure today, there is now a patch available to mitigate the potential risk of CVE-2015-7547. + +------------------------------------------------------------------------------ + +via: http://www.eweek.com/security/linux-systems-patched-for-critical-glibc-flaw.html + +作者:[Michael Kerner][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://twitter.com/TechJournalist From 53edb51ee2248ea32f3f3dc1da200e4c63799440 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:49:57 +0800 Subject: [PATCH 070/582] =?UTF-8?q?20160218-10=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 9 Key Trends in Hybrid Cloud Computing.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md diff --git a/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md b/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md new file mode 100644 index 0000000000..003405b4b7 --- /dev/null +++ b/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md @@ -0,0 +1,74 @@ +9 Key Trends in Hybrid Cloud Computing +======================================== + +All three forms of cloud computing – public, private, and hybrid – have undergone considerable evolution since the concepts first gained the attention of IT years ago. Hybrid cloud is the overwhelming favorite form of the cloud, with [88% of firms surveyed](https://www.greenhousedata.com/blog/hybrid-continues-to-be-most-popular-cloud-option-adoption-accelerating) rating it as important or critical to their business. + +The lightning-fast evolution of hybrid cloud means the conventional wisdom of a year or two back is already obsolete. So we asked several industry analysts where they saw the hybrid cloud headed in 2016 and got some interesting answers. + +1. **2016 might be the year that we get hybrid cloud to actually work.** + + By its very nature, hybrid cloud relies on private cloud, which has proven elusive for most enterprises. The fact is that the public cloud – Amazon, Google, Microsoft – have had much more investment and a longer head start. The private cloud has hamstrung the hybrid cloud's growth and usability. + + There hasn't been as much investment in the private cloud because by its very nature, the private cloud means keeping and investing in your own data center. And many public cloud providers are pushing enterprises to reduce or eliminate their data center spending all together. + + However, this year will see the private cloud start to catch up thanks to advances in OpenStack and Microsoft's Azure Stack, which is basically a private cloud in a box. The tools, infrastructures, and architectures to support hybrid cloud are also becoming much more robust. + +2. **Containers, microservices, and unikernels will bolster the hybrid cloud.** + + These are all cloud native technologies and will all be more or less mainstream by the end of 2016, analysts predict. They are maturing rapidly and serving as a viable alternative to virtual machines, which require more resources. + + More importantly, they work in an on-premises scenario as well as an off-premises scenario. Containerization and orchestration allow rapid scale up, scale out, and service migration between public and private cloud, making it even easier to move your services around. + +3. **Data and relevance take center stage** + + The cloud, in all its forms, has been in growth mode. That makes it a technology story. But with the cloud shifting into maturity, data and relevance become more important, according to the consultancy [Avoa](http://avoa.com/2016/01/01/2016-is-the-year-of-data-and-relevance/). At first, the cloud and Big Data were all about sucking up as much data as possible. Then they worried about what to do with it. + + In 2016, organizations will hone their craft in how data is collected and used. There is still much progress to be made in the technological and cultural aspects that must be dealt with. But 2016 should bring a renewed focus on the importance of data from all aspects and finding the most relevant information, not just lots of it. + +4. **Cloud services move beyond just on-demand workloads** + + AWS got its start as a place where a programmer/developer could spin up a VM real quick, get some work done, and get off. That's the essence of on-demand use, and given how much it can cost to leave those services constantly running, there is almost a disincentive to keep them running 24/7. + + However, IT organizations are starting to act as service brokers to provide all manner of IT services to their in-house users. This can be anything from in-house IT services, public cloud infrastructure providers, platform-as-a-service, and software-as-a-service. + + They will increasingly recognize the value of tools like cloud management platforms to provide consistent policy-based management over many of these different services. And they will see the value of technology such as containers to enhance portability. However, cloud service brokering in the sense of rapidly moving workloads between clouds for price arbitrage and related reasons will continue to be a non-starter. + +5. **Service providers become cloud service providers** + + Up to now, buying cloud services has been a direct sale model. The user was frequently the buyer of AWS EC2 services, either through officially recognized channels at work or through Shadow IT. But as cloud services become more comprehensive, and the menu of services more confusing, more and more people are turning to resellers and services providers to act as the purchaser of IT services for them. + + A recent survey by 2nd Watch, a Seattle-based cloud services provider, found nearly 85 percent of IT executives in the United States would be willing to pay a small premium to buy public cloud from a channel partner if it were to make it less complex. And about four out of every five within that 85 percent would shell out an extra 15 percent or more, the survey found. One in three executives surveyed said they could use the help in buying, using, and managing public cloud services. + +6. **IoT and cloud is to 2016 what mobile and cloud was to 2012** + + IoT is gaining mindshare and, more importantly, it's moving from test beds to real use cases. The cloud is a vital part for IoT due to its distributed nature, and for industrial IoT, where machinery and heavy equipment talk to back-end systems, a hybrid cloud will be most natural driver because the connection, data collection, and processing will happen in a hybrid cloud environment, due to perceived benefits of the private cloud side, like security and privacy. + +7. **The NIST definition of the cloud begins to break down** + + In 2011, the National Institute of Standards and Technology published "[The NIST Definition of Cloud Computing](http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf)" (PDF) that became the standard definitions of private, public, and hybrid cloud terms and as-a-service models. + + Over time, though, the definitions have changed. IaaS has become much more complex, supporting things like OpenStack, [Swift](https://wiki.openstack.org/wiki/Swift) for object storage and [Neutron networking](https://wiki.openstack.org/wiki/Neutron). PaaS seems to be fading out because there's little that separates it from traditional middleware application development. And SaaS, which was just apps accessed through a browser, is losing steam because with so many cloud APIs for apps and services, you can access them through anything, not just a browser. + +8. **Analytics becomes more important** + + Analytics will be a huge growth opportunity for hybrid cloud because the high volume of data used in analytics is well suited to cloud, with its advantages of large scale and elasticity. For some forms of analytics, like highly sensitive data, then the private cloud will still rule. But the private cloud is part of the hybrid cloud, so either way, hybrid cloud wins. + +9. **Security takes on a new urgency** + + As hybrid cloud grows in 2016 and adds all kinds of new technologies, like IoT and containers, this just adds more vulnerable surface areas for data breaches. Add to it the tendency to rush into a new technology and then secure it later, which happens all the time, along with inexperienced technologists who don't think to secure the system – and you have a recipe for disaster. + + When new technologies come out, management discipline almost always lags and we think about securing the technology later. Containers are a good example. You can download all kinds of sample containers from Docker, but do you know where it came from? Docker had to go back and add security verifications after it started letting people download and run containers without any idea what was really in it. + + Mobile technologies like Path and Snapchat had major security problems a few years back as the smartphone market was taking off. It's inevitable that a new technology will be exploited by the bad guys. So security researchers will have their hands full trying to secure these new technologies. Probably after they get deployed. + +------------------------------------------------------------------------------ + +via: http://www.datamation.com/cloud-computing/9-key-trends-in-hybrid-cloud-computing.html + +作者:[Andy Patrizio][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.datamation.com/author/Andy-Patrizio-90720.html From 33c670f207f02c2bdec4e7e268991a6bf2864f22 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:53:56 +0800 Subject: [PATCH 071/582] =?UTF-8?q?20160218-11=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... in the Series with Hundreds of Changes.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md diff --git a/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md b/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md new file mode 100644 index 0000000000..2bf7e02ce7 --- /dev/null +++ b/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md @@ -0,0 +1,28 @@ +Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes +================================================================================= + +**It looks like renowned kernel maintainer Greg Kroah-Hartman is on vacation, as Sasha Levin has had the great pleasure of [announcing](http://lkml.iu.edu/hypermail/linux/kernel/1602.2/00520.html) earlier today, February 16, 2016, the general availability of the eighteenth maintenance release of Linux kernel 4.1 LTS.** + +Being a long-term supported kernel branch, Linux 4.1 will receive updates and patches for a few more years, and today's maintenance build proves that the kernel developers are committed to keeping the series stable and reliable for all GNU/Linux operating systems that use it. Linux kernel 4.1.18 LTS is a massive release with a total of 228 files changes, consisting of 5,304 insertions and 1,128 deletions. + +What's new in Linux kernel 4.1.18 LTS? Well, let's start with improvements to the ARM, ARM64 (AArch64), MIPS, PA-RISC, m32r, PowerPC (PPC), s390, and x86 hardware architectures. Moreover, there are enhancements to the Btrfs, CIFS, NFS, XFS, OCFS2, OverlayFS, and UDF filesystems, networking stack fixes, especially for mac80211, as well as multiple core, crypto, and mm improvements and sound updates. + +"I'm announcing the release of the 4.1.18 kernel. All users of the 4.1 kernel series must upgrade," says Sasha Levin. "The updated 4.1.y git tree can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.1.y and can be browsed at the normal kernel.org git web browser: http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary." + +## Numerous drivers have been updated + +Besides the architectures, filesystems, sound, networking, crypto, mm, and core kernel improvements, Linux kernel 4.1.18 LTS updates various drivers for better hardware support. This is in particular for things like Bluetooth, DMA, EDAC, GPU (mostly Radeon and Intel i915), InfiniBand, IOMMU, IRQchip, MD, MMC, DVB, networking (mostly wireless), PCI, SCSI, USB, thermal, staging, TTY, and Virtio. + +As usual, we're urging all users of Linux kernel-based operating systems that use kernel packages from the Linux 4.1 LTS series to update to today's 4.1.18 release as soon as possible. This can be done either by installing the update from the default software repositories or by manually compiling the sources, which you can download right now from the [kernel.org](http://kernel.org/) website or via [Softpedia](http://linux.softpedia.com/get/System/Operating-Systems/Kernels/Linux-Kernel-Stable-1960.shtml). + +------------------------------------------------------------------------------ + +via: http://news.softpedia.com/news/linux-kernel-4-1-18-lts-is-the-biggest-in-the-series-with-hundreds-of-changes-500500.shtml + +作者:[Marius Nestor ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/marius-nestor From 5ae3d0069a2c6bc697827d74ae2c3e28e669308c Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:55:46 +0800 Subject: [PATCH 072/582] =?UTF-8?q?20160218-12=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...anonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md diff --git a/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md new file mode 100644 index 0000000000..0b1e9b9502 --- /dev/null +++ b/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md @@ -0,0 +1,8 @@ +Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04 +======================================================= + +Ubuntu developers have been working on [ZFS support for Ubuntu 16.04](http://www.phoronix.com/scan.php?page=news_item&px=ZFS-For-Ubuntu-16.04) and all of that file-system support is getting squared away. + +EXT4 will continue to be the default for Ubuntu 16.04 installations, but ZFS support will be automatically built into the Ubuntu Linux kernel releases, the module will automatically load when needed, zfsutils-linux is part of the main Ubuntu archive, and the support is being backed to commercial customers via Canonical. + +For those interested in official ZFS support for Ubuntu Linux, Canonical's Dustin Kirkland has written [a new blog post](http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html) covering some of the details and why "ZFS is *the* FS for Containers in Ubuntu 16.04!" From 20d355bab055bfdaa49e0d75d9c8dd6d8945a0f4 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 21:58:16 +0800 Subject: [PATCH 073/582] =?UTF-8?q?20160218-12=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...l's ZFS Plans Are Lining Up For Ubuntu 16.04.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md index 0b1e9b9502..32c822289c 100644 --- a/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md +++ b/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md @@ -1,8 +1,22 @@ Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04 ======================================================= +![](https://www.phoronix.com/assets/categories/ubuntu.jpg) + Ubuntu developers have been working on [ZFS support for Ubuntu 16.04](http://www.phoronix.com/scan.php?page=news_item&px=ZFS-For-Ubuntu-16.04) and all of that file-system support is getting squared away. EXT4 will continue to be the default for Ubuntu 16.04 installations, but ZFS support will be automatically built into the Ubuntu Linux kernel releases, the module will automatically load when needed, zfsutils-linux is part of the main Ubuntu archive, and the support is being backed to commercial customers via Canonical. For those interested in official ZFS support for Ubuntu Linux, Canonical's Dustin Kirkland has written [a new blog post](http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html) covering some of the details and why "ZFS is *the* FS for Containers in Ubuntu 16.04!" + +------------------------------------------------------------------------------ + +via: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-ZFS-Continues-16.04&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Phoronix+%28Phoronix%29 + +作者:[Michael Larabel][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.michaellarabel.com/ From 3e1eac235ef9b29ad76c130e9a3e99479dc10f20 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 22:08:26 +0800 Subject: [PATCH 074/582] =?UTF-8?q?20160218-13=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...inux developers think of Git and GitHub.md | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 sources/tech/20160218 What do Linux developers think of Git and GitHub.md diff --git a/sources/tech/20160218 What do Linux developers think of Git and GitHub.md b/sources/tech/20160218 What do Linux developers think of Git and GitHub.md new file mode 100644 index 0000000000..9002025820 --- /dev/null +++ b/sources/tech/20160218 What do Linux developers think of Git and GitHub.md @@ -0,0 +1,93 @@ +What do Linux developers think of Git and GitHub? +===================================================== + +**Also in today’s open source roundup: DistroWatch reviews XStream Desktop 153, and Street Fighter V is coming to Linux and SteamOS in the spring** + +## What do Linux developers think of Git and GitHub? + +The popularity of Git and GitHub among Linux developers is well established. But what do developers think of them? And should GitHub really be synonymous with Git itself? A Linux redditor recently asked about this and got some very interesting answers. + +Dontwakemeup46 asked his question: + +>I am learning Git and Github. What I am interested in is how these two are viewed by the community. That git and github are used extensively, is something I know. But are there serious issues with either Git or Github? Something that the community would love to change? + +[More at Reddit](http://api.viglink.com/api/click?format=go&jsonp=vglnk_145580413015211&key=0a7039c08493c7c51b759e3d13019dbe&libId=iksc5hc8010113at000DL3yrsuvp7&loc=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3033059%2Flinux%2Fwhat-do-linux-developers-think-of-git-and-github.html&v=1&out=https%3A%2F%2Fwww.reddit.com%2Fr%2Flinux%2Fcomments%2F45jy59%2Fthe_popularity_of_git_and_github%2F&ref=http%3A%2F%2Fwww.linux.com%2Fnews%2Fsoftware%2Fapplications%2F886008-what-do-linux-developers-think-of-git-and-github&title=What%20do%20Linux%20developers%20think%20of%20Git%20and%20GitHub%3F%20%7C%20InfoWorld&txt=More%20at%20Reddit) + +His fellow Linux redditors responded with their thoughts about Git and GitHub: + +>Derenir: ”Github is not affliated with Git. + +>Git is made by Linus Torvalds. + +>Github hardly supports Linux. + +>Github is a corporate bordelo that tries to make money from Git. + +>[https://desktop.github.com/](http://api.viglink.com/api/click?format=go&jsonp=vglnk_145580415025712&key=0a7039c08493c7c51b759e3d13019dbe&libId=iksc5hc8010113at000DL3yrsuvp7&loc=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3033059%2Flinux%2Fwhat-do-linux-developers-think-of-git-and-github.html&v=1&type=U&out=https%3A%2F%2Fdesktop.github.com%2F&ref=http%3A%2F%2Fwww.linux.com%2Fnews%2Fsoftware%2Fapplications%2F886008-what-do-linux-developers-think-of-git-and-github&title=What%20do%20Linux%20developers%20think%20of%20Git%20and%20GitHub%3F%20%7C%20InfoWorld&txt=https%3A%2F%2Fdesktop.github.com%2F) see here no Linux Support.” + +>**Bilog78**: ”A minor update: git hasn't been “made by Linus Torvalds” for a while. The maintainer is Junio C Hamano and the main contributors after him are Jeff King and Shawn O. Pearce.” + +>**Fearthefuture**: ”I like git but can't understand why people even use github anymore. From my point of view the only thing it does better than bitbucket are user statistics and the larger userbase. Bitbucket has unlimited free private repos, much better UI and very good integration with other services such as Jenkins.” + +>**Thunger**: ”Gitlab.com is also nice, especially since you can host your own instance on your own servers.” + +>**Takluyver**: ”Lots of people are familiar with the UI of Github and associated services like Travis, and lots of people already have Github accounts, so it's a good place for projects to be. People also use their Github profile as a kind of portfolio, so they're motivated to put more projects on there. Github is a de facto standard for hosting open source projects.” + +>**Tdammers**: ”Serious issue with git would be the UI, which is kind of counterintuitive, to the point that many users just stick with a handful of memorized incantations. + +Github: most serious issue here is that it's a proprietary hosted solution; you buy convenience, and the price is that your code is on someone else's server and not under your control anymore. Another common criticism of github is that its workflow isn't in line with the spirit of git itself, particularly the way pull requests work. And finally, github is monopolizing the code hosting landscape, and that's bad for diversity, which in turn is crucial for a thriving free software community.” + +>**Dies**: ”How is that the case? More importantly, if that is the case, then what's done is done and I guess we're stuck with Github since they control so many projects.” + +>**Tdammers**: ”The code is hosted on someone else's server, "someone else" in this case being github. Which, for an open-source project, is not typically a huge problem, but still, you don't control it. If you have a private project on github, then the only assurance you have that it will remain private is github's word for it. If you decide to delete things, then you can never be sure whether it's been deleted, or just hidden. + +Github doesn't control the projects themselves (you can always take your code and host it elsewhere, declaring the new location the "official" one), it just has deeper access to the code than the developers themselves.” + +>**Drelos**: ”I have read a lot of praises and bad stuff about Github ([here's an example](http://api.viglink.com/api/click?format=go&jsonp=vglnk_145580428524613&key=0a7039c08493c7c51b759e3d13019dbe&libId=iksc5hc8010113at000DL3yrsuvp7&loc=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3033059%2Flinux%2Fwhat-do-linux-developers-think-of-git-and-github.html&v=1&out=http%3A%2F%2Fwww.wired.com%2F2015%2F06%2Fproblem-putting-worlds-code-github%2F&ref=http%3A%2F%2Fwww.linux.com%2Fnews%2Fsoftware%2Fapplications%2F886008-what-do-linux-developers-think-of-git-and-github&title=What%20do%20Linux%20developers%20think%20of%20Git%20and%20GitHub%3F%20%7C%20InfoWorld&txt=here%27s%20an%20example)) but my simple noob question is why aren't efforts towards a free and open "version" ?” + +>**Twizmwazin**: ”GitLab is sorta pushing there.” + +[More at Reddit](http://api.viglink.com/api/click?format=go&jsonp=vglnk_145580429720714&key=0a7039c08493c7c51b759e3d13019dbe&libId=iksc5hc8010113at000DL3yrsuvp7&loc=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3033059%2Flinux%2Fwhat-do-linux-developers-think-of-git-and-github.html&v=1&out=https%3A%2F%2Fwww.reddit.com%2Fr%2Flinux%2Fcomments%2F45jy59%2Fthe_popularity_of_git_and_github%2F&ref=http%3A%2F%2Fwww.linux.com%2Fnews%2Fsoftware%2Fapplications%2F886008-what-do-linux-developers-think-of-git-and-github&title=What%20do%20Linux%20developers%20think%20of%20Git%20and%20GitHub%3F%20%7C%20InfoWorld&txt=More%20at%20Reddit) + +## DistroWatch reviews XStream Desktop 153 + +XStreamOS is a version of Solaris created by Sonicle. XStream Desktop brings the power of Solaris to desktop users, and distrohoppers might be interested in checking it out. DistroWatch did a full review of XStream Desktop 153 and found that it performed fairly well. + +Jesse Smith reports for DistroWatch: + +>I think XStream Desktop does a lot of things well. Admittedly, my trial got off to a rocky start when the operating system would not boot on my hardware and I could not get the desktop to use my display's full screen resolution when running in VirtualBox. However, after that, XStream performed fairly well. The installer works well, the operating system automatically sets up and uses boot environments, insuring we can recover the system if something goes wrong. The package management tools work well and XStream ships with a useful collection of software. + +>I did run into a few problems playing media, specifically getting audio to work. I am not sure if that is another hardware compatibility issue or a problem with the media software that ships with the operating system. On the other hand, tools such as the web browser, e-mail, productivity suite and configuration tools all worked well. + +>What I appreciate about XStream the most is that the operating system is a branch of the OpenSolaris family that is being kept up to date. Other derivatives of OpenSolaris tend to lag behind, at least with desktop software, but XStream is still shipping recent versions of Firefox and LibreOffice. + +>For me personally, XStream is missing a few components, like a printer manager, multimedia support and drivers for my specific hardware. Other aspects of the operating system are quite attractive. I like the way the developers have set up LXDE, I like the default collection of software and I especially like the way file system snapshots and boot environments are enabled out of the box. Most Linux distributions, openSUSE aside, have not caught on to the usefulness of boot environments yet and I hope it is a technology that is picked up by more projects. + +[More at DistroWatch](http://api.viglink.com/api/click?format=go&jsonp=vglnk_145580434172315&key=0a7039c08493c7c51b759e3d13019dbe&libId=iksc5hc8010113at000DL3yrsuvp7&loc=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3033059%2Flinux%2Fwhat-do-linux-developers-think-of-git-and-github.html&v=1&out=http%3A%2F%2Fdistrowatch.com%2Fweekly.php%3Fissue%3D20160215%23xstreamos&ref=http%3A%2F%2Fwww.linux.com%2Fnews%2Fsoftware%2Fapplications%2F886008-what-do-linux-developers-think-of-git-and-github&title=What%20do%20Linux%20developers%20think%20of%20Git%20and%20GitHub%3F%20%7C%20InfoWorld&txt=More%20at%20DistroWatch) + +## Street Fighter V and SteamOS + +Street Fighter is one of the most well known game franchises of all time, and now [Capcom has announced](http://api.viglink.com/api/click?format=go&jsonp=vglnk_145580435418216&key=0a7039c08493c7c51b759e3d13019dbe&libId=iksc5hc8010113at000DL3yrsuvp7&loc=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3033059%2Flinux%2Fwhat-do-linux-developers-think-of-git-and-github.html&v=1&out=http%3A%2F%2Fsteamcommunity.com%2Fgames%2F310950%2Fannouncements%2Fdetail%2F857177755595160250&ref=http%3A%2F%2Fwww.linux.com%2Fnews%2Fsoftware%2Fapplications%2F886008-what-do-linux-developers-think-of-git-and-github&title=What%20do%20Linux%20developers%20think%20of%20Git%20and%20GitHub%3F%20%7C%20InfoWorld&txt=Capcom%20has%20announced) that Street Fighter V will be coming to Linux and SteamOS in the spring. This is great news for Linux gamers. + +Joe Parlock reports for Destructoid: + +>Are you one of the less than one percent of Steam users who play on a Linux-based system? Are you part of the even smaller percentage of people who play on Linux and are excited for Street Fighter V? Well, I’ve got some good news for you. + +>Capcom has announced via Steam that Street Fighter V will be coming to SteamOS and other Linux operating systems sometime this spring. It’ll come at no extra cost, so those who already own the PC build of the game will just be able to install it on Linux and be good to go. + +[More at Destructoid](http://api.viglink.com/api/click?format=go&jsonp=vglnk_145580435418216&key=0a7039c08493c7c51b759e3d13019dbe&libId=iksc5hc8010113at000DL3yrsuvp7&loc=http%3A%2F%2Fwww.infoworld.com%2Farticle%2F3033059%2Flinux%2Fwhat-do-linux-developers-think-of-git-and-github.html&v=1&out=http%3A%2F%2Fsteamcommunity.com%2Fgames%2F310950%2Fannouncements%2Fdetail%2F857177755595160250&ref=http%3A%2F%2Fwww.linux.com%2Fnews%2Fsoftware%2Fapplications%2F886008-what-do-linux-developers-think-of-git-and-github&title=What%20do%20Linux%20developers%20think%20of%20Git%20and%20GitHub%3F%20%7C%20InfoWorld&txt=Capcom%20has%20announced) + +Did you miss a roundup? Check the [Eye On Open home page](http://www.infoworld.com/blog/eye-on-open/) to get caught up with the latest news about open source and Linux. + +------------------------------------------------------------------------------ + +via: http://www.infoworld.com/article/3033059/linux/what-do-linux-developers-think-of-git-and-github.html + +作者:[Jim Lynch][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.infoworld.com/author/Jim-Lynch/ + From 3703d87617b077ca3d757b692fde92ffc13a33ef Mon Sep 17 00:00:00 2001 From: wxy Date: Thu, 18 Feb 2016 22:13:18 +0800 Subject: [PATCH 075/582] PUB:20151126 Linux Foundation Explains a 'World without Linux' and Open Source MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @GHLandy 翻译的不错! --- ...a 'World without Linux' and Open Source.md | 51 ++++++++++++++++++ ...a 'World without Linux' and Open Source.md | 52 ------------------- 2 files changed, 51 insertions(+), 52 deletions(-) create mode 100644 published/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md delete mode 100644 translated/talk/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md diff --git a/published/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md b/published/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md new file mode 100644 index 0000000000..e86ee8b7f0 --- /dev/null +++ b/published/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md @@ -0,0 +1,51 @@ +没有 Linux 和开源软件的世界会变得怎么样 +================================================================================ +> Linux 基金会针最近对人们关于 “没有 Linux 的世界” 系列短片所提出的问题做了回应,解答了包括没有 Linux 和其他的开源软件的因特网会变得怎么样等问题。 + +![](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/11/hey_22.png) + +假如 Linux —— 这个开源的操作系统内核 —— 不曾出现过,我们现在的世界是否会是另一番景象。会不会没有了因特网,或者没有了电影?这些都是观看 [Linux 基金会][1] 正在连续播出的 “[没有 Linux 的世界][2]” 系列短片的观众提出来的问题。 + +假如你错过了观看这些短片也不要紧,“[没有 Linux 的世界][2]” 系列短片是一个搞笑短片的集合,里边描述了没有了 Linux (或者说没有开源软件)的世界发生的事情。这些短片强调了 Linux 在 [电影制作][3] 以及 [因特网服务][4] 中充当的角色。 + +为了揭示该系列短片的一些主张、倾向和隐藏元素,Linux 基金会副主席 Jennifer Cloer 最近在 The VAR Guy 上回应了关于该短片的一些问题。以下是她的原话解答。 + +### 最新一集短片 —— Sam 和 Annie 一起看电影。假如没有 Linux,我们现在的荧屏是不是也和短片中的一样? ### + +在第 4 集剧情中,我们恶搞了一下电影 “阿凡达(Avatar)”。不管你喜欢还是讨厌,现实中的 “阿凡达(Avatar)” 在荧屏上的效果还是让人记忆深刻的。在没有 Linux 的世界中,电影的效果就变得非常丑陋,但是我们并不知道它有多难看,因为那已经是最好的了。但实际上,“阿凡达(Avatar)” 是使用 Linux 来进行效果制作的。Weta 数码使用了当时世界上最大的 Linux 集群来给电影做效果渲染和 3D 建模。据报道,指环王(Lord of the Rings)、神奇四侠(Fantastic Four)和金刚(King Kong)等电影都用到了 Linux。我希望该短片能引起人们关注,因为它所做的这方面的工作还并不广为人知。 + +### 很多人对短片的原始剧情进行了批判,其中就包括“没有 Linux 将没有因特网”的剧情的指责。你对此持什么样的看法? ### + +我们很喜欢人们在短片刚上映就进行激烈的辩论。该短片上映当天就超过了 100,000 的观众,这引起了人们对 Linux 在社会中扮演的角色以及对全世界的社区贡献者和维护者的关注。当然了,没有 Linux 的话,因特网也是会出现的,只是不会像当前我们所熟知的互联网那么成熟而已。每一个短片都对 Linux 在我们每天生活中扮演的角色进行了大胆且有趣的描述。我们希望,这些短片能够把关于 Linux 的故事推广到全世界的人的心里去。 + +### 为什么 Sam 和 Annie 的那只猫叫做 String? ### + +该短片系列中没有一处剧情是随意的。仔细的观看的话,你就会发现其中关于 Linux 和极客们的各种玩笑。小猫 String 是我们的 Linux.com 主编 Libby Clark 以弦理论(string theory)亲自来命名的。在物理学里,弦理论(string theory)是一个理论框架,它用一个叫做弦(String)的一维对象替换了粒子物理学中粒子状的粒子。弦理论(string theory)描述了这些弦(String)如何在空间传播以及相互影响。就像 Sam、Annie 和 String 在那个没有 Linux 的世界里的关系那样。 + +### 我们期待已久的下两集是什么样的,特别是,最后那集什么时候上映? ### + +在第 5 集短片中,我们将到太空并体验一下没有 Linux 的世界对太空探索的影响。这就像是一场疯狂的骑行。在短片的最后,我们最终还是会见到没有 Linux 的世界里的 Linus。贯穿整个短片系列,里边已经给出关于结局的线索,我在这就不能给太多提示了,因为还有好多人在找线索比赛中继续寻找着。并且我也不能给你们说出关于结局短片的上映日期。你们要自己跟进 #WorldWithoutLinux 主题帖来获取更多信息。 + +### 你可给一些关于第 4 集短片相关线索的提示吗? ### + +在该短片中有另外一个关于免费汉堡餐厅(Free Burger Restaurant)的线索。在那个没有 Linux 的世界里,Linux 最后还是以一种很隐秘的方式出现了,可以说,就像是以另一种语言来解读 Linux。当然,这只是为了好玩,String 也以另外一个模样出现。 + +### 那么,该系列短片达到你所想要的效果了吗? ### + +是的,达到了。我们很高兴看到人们分享并参与到这些故事中去。我们希望向那些可能不知道 Linux 的人传达更多关于 Linux 的故事并了解到 Linux 在当今世界中是无处不在的。全部的短片就是为了把这些关于 Linux 的真相推广给大家,并感谢那些全球性社区的开发者和公司对 Linux 的支持,Linux 使得一切成为可能。 + +-------------------------------------------------------------------------------- + +via: http://thevarguy.com/open-source-application-software-companies/linux-foundation-explains-world-without-linux-and-open-so + +作者:[Christopher Tozzi][a] +译者:[GHLandy](https://github.com/GHLandy) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://thevarguy.com/author/christopher-tozzi +[1]:http://linuxfoundation.org/ +[2]:http://www.linuxfoundation.org/world-without-linux +[3]:http://thevarguy.com/open-source-application-software-companies/new-linux-foundation-video-highlights-role-open-source-3d +[4]:http://thevarguy.com/open-source-application-software-companies/100715/would-internet-exist-without-linux-yes-without-open-sourc diff --git a/translated/talk/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md b/translated/talk/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md deleted file mode 100644 index 3f0170de0a..0000000000 --- a/translated/talk/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md +++ /dev/null @@ -1,52 +0,0 @@ -没有 Linux 和开源软件的世界会变得怎么样 —— 听听来自 Linux 基金会的解释 -================================================================================ -> Linux 基金会针最近对人们关于 “没有 Linux 的世界” 系列短片提出的问题做了回应:包括没有 Linux 和其他的开源软件的因特网会变得怎么样等问题。 - -![](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/11/hey_22.png) - -假如 Linux —— 一个开源的操作系统内核 —— 不曾出现过,我们现在的世界是否会是另一番景象。会不会没有了因特网,或者没有了电影?这些都是 [Linux 基金会][1] 正在连续播出的 “[没有 Linux 的世界][2]” 系列短片的观众提出来的问题。 - -假如你错过了观看这些短片也不要紧,“没有 Linux 的世界” 系列短片是一个古怪的短片集合,里边描述了没有了 Linux (或者说没有开源软件)的世界发生的事情。这些短片强调了 Linux 在 [电影制作][3] 以及 [服务于因特网][4] 中充当的角色。 - -为了提供该系列短片的一些主张、方向和隐藏元素,Linux 基金会副主席 Jennifer Cloer 最近在 The VAR Guy 上回应了关于该短片的一些问题。以下是她的原话解答。 - -### 最新一集短片 —— Sam 和 Annie 一起看电影。假如没有 Linux,我们现在的荧屏是不是也和短片中的一样? ### - -在 #4 剧情中,我们恶搞了一下电影 “Avatar”。不管你喜欢还是讨厌,现实中的 “Avatar” 在荧屏上的效果还是让人产生记忆深刻的。在没有 Linux 的世界中,电影的效果就变得非常恐怖,但是我们并不介意它,因为那已经是最好的了。但实际上,“Avatar” 是使用了 Linux 来进行效果制作的。Weta 数码使用了当时世界上最大的 Linux 集群来给电影做效果渲染和 3D 建模。据报道,指环王(Lord of the Rings)、神奇四侠(Fantastic Four)和金刚(King Kong)等电影都用到了 Linux。我希望该短片能引起电影制作工作者的关注,还有很多我们不知道的用到 Linux 来制作的电影。(译者注:这句应该是强度 Linux 在电影制作中的重要应用,可能翻译的不是很好。that work应该指的电影制作,只是直译感觉有点怪,这暂时没想到怎么译的最好。原话为:We hope this episode can bring attention to that work, which hasn't been widely reported.) - -### 很多人对短片的原始剧情进行了批判,其中包括没有 Linux 将没有因特网。你对此持什么样的看法? ### - -我们很喜欢人们从短片刚上映就进行激烈的辩论。该短片上映当天就超过了 100,000 的观众,这引起了人们对 Linux 在社会中扮演的角色以及全球的社区贡献者和维护者的关注。当然了,没有 Linux 的话,因特网也是会出现的,只是不会像当前我们所熟知的互联网那么成熟而已。每一个短片都对 Linux 在我们每天生活中扮演的角色进行了大胆且有趣的描述。我们希望,这些短片能够把关于 Linux 的故事推广到全世界的人的心里去。 - -### 为什么 Sam 和 Annie 的那只猫叫做 String? ### - -该短片系列中没有一处剧情是偶然的。仔细的观看话,你就会发现其中关于 Linux 和极客们的各种玩笑。小猫 String 是我们的 Linux.com 主编 Libby Clark 以弦理论(string theory)亲自来命名的。在物理学里,弦理论(string theory)是一个理论框架,它用一个叫做弦(String)的一维对象替换了粒子物理学中粒子状粒子。弦理论(string theory)描述了这些弦(String)如何在空间传播以及相互影响。就像 Sam、Annie 和 String 在那个没有 Linux 的世界里的关系那样。 - -### 我们期待已久的下两集是什么样的,特别是,最后那集什么时候上映? ### - -在 #5 短片中,我们将到太空并体验一下没有 Linux 的世界对太空探索的影响。这就像是一场疯狂的骑行。在短片的最后,我们最终还是会见到没有 Linux 的世界里的 Linus。贯穿整个短片系列,里边已经给出关于结局的线索,我在这就不能给太多提示了,因为还有好多人在找线索比赛中继续寻找着。并且我也不能给你们说出关于结局短片的上映日期。你们要自己跟进 #WorldWithoutLinux 主题帖来获取跟多信息。 - -### 你可给一些关于 #4 短片相关线索的提示吗? ### - -在该短片中有另外一个关于免费汉堡餐厅(Free Burger Restaurant)的线索。在那个没有 Linux 的世界里,Linux 最后还是以一种很隐秘的方式出现了,可以说,就像是以另一种语言来解读 Linux。当然,这只是为了好玩,String 也是另外一个模样。 - -### 那么,该系列短片达到你所想要的效果了吗? ### - -是的,达到了。我们很高兴看到人们分享并参与到这些故事中去。 -我们希望向那些可能不知道 Linux 的人传达更多关于 Linux 的故事并了解 Linux 在当今世界中是无处不在的。全部的短片就是为了把这些关于 Linux 的真相推广给大家,并感谢那些全球性社区的开发者和公司对 Linux 的支持,Linux 使得一切成为可能。 - --------------------------------------------------------------------------------- - -via: http://thevarguy.com/open-source-application-software-companies/linux-foundation-explains-world-without-linux-and-open-so - -作者:[Christopher Tozzi][a] -译者:[GHLandy](https://github.com/GHLandy) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://thevarguy.com/author/christopher-tozzi -[1]:http://linuxfoundation.org/ -[2]:http://www.linuxfoundation.org/world-without-linux -[3]:http://thevarguy.com/open-source-application-software-companies/new-linux-foundation-video-highlights-role-open-source-3d -[4]:http://thevarguy.com/open-source-application-software-companies/100715/would-internet-exist-without-linux-yes-without-open-sourc From b72b91afc506c622cd0f31037e6619c7924ca4a5 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 22:32:31 +0800 Subject: [PATCH 076/582] =?UTF-8?q?20160218-14=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...est Linux Desktop Environments for 2016.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/tech/20160218 Best Linux Desktop Environments for 2016.md diff --git a/sources/tech/20160218 Best Linux Desktop Environments for 2016.md b/sources/tech/20160218 Best Linux Desktop Environments for 2016.md new file mode 100644 index 0000000000..a93d38c21a --- /dev/null +++ b/sources/tech/20160218 Best Linux Desktop Environments for 2016.md @@ -0,0 +1,90 @@ +Best Linux Desktop Environments for 2016 +============================================= + +![](http://www.linux.com/images/stories/66866/DE-2.png) + +Linux creates a friendly environment for choices and options. For example, there are many Linux-based distributions out there that use different desktop environments for you to choose from. I have picked some of the best desktop environments that you will see in the Linux world. + +## Plasma + +I consider [KDE’s Plasma desktop](https://www.kde.org/workspaces/plasmadesktop/) to be the most advanced desktop environment (DE). It’s the most feature-rich and customizable desktop environment that I have ever seen; even Mac OS X and Windows don’t come near Plasma when it comes to complete control by the user. + +I also love Plasma because of its awesome file manager, Dolphin. One reason I prefer Plasma over Gnome-based systems is the file manager. One of my biggest gripes with Gnome is that its file manager, Files, can’t handle basic tasks, such as batch-files renaming. That’s important for me because I take a lot of pictures, and Gnome makes it impossible for me to rename image files. On Dolphin, it’s a walk in the park. + +Then, you can add more functionality to Plasma with plugins. Plasma comes with some incredible software including Krita, Kdenlive, Calligra Office Suite, digiKam, Kwrite, and many other applications being developed by the KDE community. + +The only weakness of the Plasma desktop is its default email client, Kmail. It’s way too complicated to set up, and I also wish that setting up Kmail also configured the Address Book and Calendar. + +Plasma is the default desktop environment of many major distributions including openSUSE. + +## GNOME + +[GNOME](https://www.gnome.org/) (GNU Network Object Model Environment) was founded by [Miguel de Icaza](https://en.wikipedia.org/wiki/Miguel_de_Icaza) and Federico Mena in 1997 because KDE used Qt toolkit, which was released under a proprietary license. Unlike KDE, where there were numerous customizations, GNOME focused on keeping things simple. GNOME became extremely popular due to its simplicity and ease of use. A factor that I think contributed heavily to Gnome’s popularity was the fact that Ubuntu, one of the most popular Linux distributions, picked it as their default desktop environment. + +With changing times, GNOME needed a change. Therefore, with GNOME 3 the developers introduced the GNOME 3 Shell, which brought with it an entirely new design paradigm. That in turn led to some conflict with Canonical’s plans with Ubuntu, and they created their own shell for GNOME called Unity. Initially, GNOME 3 Shell was plagued by many issues -- most notably, the fact that extensions would stop working after updates. This major shift in design and the various problems then led to many forks of GNOME, such as the Cinnamon and Mate desktops. + +That said, what makes GNOME desktop interesting is that they are targeting touch-based devices, so if you have new laptops that come with a touchscreen, Gnome is the best suited DE for them. + +With version 3.18, GNOME has made some impressive improvements. The most interesting thing that they have done is Google Drive integration where users can mount their Google Drive as a remote file storage and work with files without having to use a web browser. I also love GNOME’s awesome integration of email client with calendar and address book. Despite all this awesomeness, however, the one thing that keeps me from using GNOME is its file manager, which can’t handle batch file renames. I will stick to Plasma until GNOME developers fix this problem. + +![](http://www.linux.com/images/stories/66866/DE-fig1.png) + +## Unity + +[Unity](https://unity.ubuntu.com/) is technically not a desktop environment, it’s a graphical shell developed by Canonical for Ubuntu. Unity runs on top of GNOME desktop environment and uses most stock GNOME apps and tools. The Ubuntu team has forked a few GNOME components to better suit the needs of Unity users. + +Unity plays a very important role in Ubuntu’s convergence story and with Unity 8, the company is bringing the desktop and mobile world together. Canonical has developed many intriguing technologies for Unity including HUD (Head-up Display). They also took a unique approach with lenses and scopes making it easy for users to find appropriate content. + +The upcoming release of Ubuntu, 16.04, is expected to ship with Unity 8 so users will get to experience all the work that developers have put into this open source software. One of the biggest criticisms with Unity was opt-out integration of Amazon ads and other services. With the upcoming release, though, Canonical is removing Amazon ads from Dash, making it a privacy-respecting OS by default. + +## Cinnamon + +[Cinnamon](https://en.wikipedia.org/wiki/Cinnamon_(software)) was initially developed by [Linux Mint](http://www.linuxmint.com/) -- the most popular distro on DistroWatch. Cinnamon is a fork of GNOME Shell, just like Unity. Later, however, it evolved into a desktop environment as Linux Mint developers forked many components of the GNOME desktop, including Files, to address the needs of their users. + +Because Linux Mint was based on regular releases of Ubuntu, the developers continued to chase the moving target that was Ubuntu. As a result, despite great promises Cinnamon was full of bugs and problems. With the 17.x release, however, Linux Mint developers moved to LTS edition of Ubuntu that allowed them to focus on core components of Cinnamon without having to worry about the base. As a result of this move, Cinnamon has become incredibly stable and bug free. The developers have started adding more features to the desktop. + +For those who prefer the good old Windows-like UI on top of the simplicity of GNOME, Cinnamon is the best desktop environment. + +## MATE Desktop + +The [MATE desktop](http://mate-desktop.com/) environment is also a fork of GNOME. However, unlike Cinnamon, it’s not a fork of GNOME 3; instead it’s a fork of GNOME 2 codebase, which is not unmaintained. A few developers didn’t like Gnome 3 and wanted to “continue” GNOME 2, so they took the codebase and created MATE. The MATE project forked many components of the GNOME project and created a few from scratch. To avoid any conflict with GNOME 3, they renamed all their packages: Nautilus become Caja, Gedit became Pluma, Evince became Atril, and so on. + +Although MATE is a continuation of GNOME 2, that doesn’t mean they are using old and obsolete technologies; they are using newer technologies to offer a modern GNOME 2 experience. + +What makes MATE an impressive desktop environment is that it’s extremely resource efficient. You can run it on older hardware or newer less powerful hardware, such as Raspberry Pi or Chromebook Flip. What’s makes it even more interesting is that using it on powerful systems frees most system resources for applications instead of the resources being consumed by the desktop environment itself. + +## LXQt + +[LXQt](http://lxqt.org/) is the successor of LXDE, one of the most lightweight desktop environments. It’s a merger of two open source projects LXDE and Razor-Qt. The first usable version of LXQt (v 0.9) was released in 2015. Initially, the developers used Qt4 but then all compatibility with it was dropped, and they moved to Qt5 and KDE Frameworks 5 for speedy development. I have tried LXQt on my Arch systems, and its a great lightweight desktop environment, but it has a long way to go before it becomes the rightful successor of LXDE. + +## Xfce + +[Xfce](http://www.xfce.org/) predates the KDE desktop environment. It is one of the oldest and lightest desktop environments around. The latest release of Xfce is 4.15, which was released in 2015 and uses modern technologies like GTK+ 3. Xfce is used by many special purpose distributions, such as Ubuntu Studio, because -- much like MATE -- it frees most system resources for applications. It’s also the default desktop environment of many notable Linux distributions including Manjaro Linux, PC/OS, Salix, and Mythbuntu. + +## Budgie + +[Budgie](https://solus-project.com/budgie/) is a new desktop environment being developed by the Solus Linux team. Solus is new Linux distribution that’s being developed from scratch, and Budgie is a core component of it. Budgie uses many GNOME components and offers a minimalistic UI. Because there’s not much information about the new desktop, I talked to the core developer of Solus, Ikey Doherty, and he explained, “We ship our own desktop, the Budgie Desktop. Unlike some other desktops, this is not a fork, rather it aims for full integration into the GNOME stack. It's written from scratch, and is specifically designed to cater for the experience Solus is offering. We work with upstream GNOME here as much as we can, contributing fixes, and advocate and support their work.” + +## Pantheon + +[Pantheon](https://elementary.io/) needs no introduction, it’s the desktop environment powering the lovely Linux distribution elementary OS. Similar to Budgie, Pantheon is not a fork of GNOME as many may assume. elementary OS team comes from design background so they pay very close attention to minute details, as a result Pantheon is extremely polished desktop environment. At the moment, it may lack many feature found in DEs like Plasma, but the developers are taking their time in order to stick to the design principle. + +![](http://www.linux.com/images/stories/66866/DE-3.png) + +## Conclusion + +As I went through this story, I realized the awesomeness of open source and Linux. There is something for everyone. As Jon “maddog” Hall said during the latest SCaLE 14, “Yes, there are 300 Linux distributions. I can try them and stick to the one that I like!” + +So, enjoy this diversity and use the one that floats your boat! + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/software/applications/881107-best-linux-desktop-environments-for-2016 + +作者:[Swapnil Bhartiya][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/61003 From 1fe2dae1544fa3bb6641fda1d95ae0c14a0adc6e Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 22:46:11 +0800 Subject: [PATCH 077/582] =?UTF-8?q?20160218-15=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20160218 The Best Linux Distros of 2016.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/tech/20160218 The Best Linux Distros of 2016.md diff --git a/sources/tech/20160218 The Best Linux Distros of 2016.md b/sources/tech/20160218 The Best Linux Distros of 2016.md new file mode 100644 index 0000000000..ec3bc1390c --- /dev/null +++ b/sources/tech/20160218 The Best Linux Distros of 2016.md @@ -0,0 +1,118 @@ +The Best Linux Distros of 2016 +================================ + +![](http://www.linux.com/images/stories/66866/distro-opensuse.JPG) + +2015 was a very important year for Linux, [both in the enterprise as well as in the consumer space](http://www.cio.com/article/3017983/linux/2015s-most-exciting-linux-devices.html). As a Linux user since 2005, I can see that the operating system has come a long way in the past 10 years. [And, 2016 is going to be even more exciting](http://www.cio.com/article/3017177/linux/11-predictions-for-linux-in-2016.html). In this article, I have picked some of the best distros that will shine in 2016. + +## Best Comeback Distro: openSUSE + +SUSE, the company behind openSUSE, is the oldest Linux company; [it was formed just a year after Linus Torvalds announced Linux](http://www.linux.com/news/software/applications/866964-exclusive-interview-with-suse-president-nils-brauckmann). The company actually predates Linux king Red Hat. SUSE is also the sponsor of the community-based distro [openSUSE](https://www.opensuse.org/). + +In 2015, openSUSE teams decided to come closer to SUSE Linux Enterprise (SLE) so that users could have a distribution that shares its DNA with the enterprise server -- similar to CentOS and Ubuntu. Thus, openSUSE became [openSUSE Leap](https://en.opensuse.org/Portal:Leap), a distribution that’s directly based on SLE SP (service pack) 1. + +The two distros will share the code base to benefit each other -- SUSE will take what’s good in openSUSE and vice versa. With this move, openSUSE is also ditching the regular release cycle, and a new version will be released in sync with SLE. That means each version will have a much longer life cycle. + +As a result of this move, openSUSE has become a very important distribution because potential SLE users can now use openSUSE Leap. That’s not all, however; openSUSE also announced the release of [Tumbleweed](http://www.cio.com/article/3008856/open-source-tools/is-opensuse-tumbleweed-good-enough-for-a-seasoned-arch-user.html), a pure rolling-release version. So, now, users can use either the super-stable openSUSE Leap or the always up-to-date openSUSE Tumbleweed. + +No other distro has made such an impressive comeback in my memory. + +Most Customizable Distro: Arch Linux + +Arch Linux is the best rolling-release distribution out there. Period. Ok, I could be biased because I am an Arch Linux user. However, the reason behind my claim is that Arch excels in many other areas, too, and that’s why I use it as my main operating system. + +[Arch Linux](https://www.archlinux.org/) is a great distro for those who want to learn everything about Linux. Because you have to install everything manually, you learn all the bits and pieces of a Linux-based operating system. + +- Arch is the most customizable distribution. There is no “Arch” flavor of any DE. All you get is a foundation and you can build whatever distro want, on top of it. For good or for worse, unlike openSUSE or Ubuntu there is no extra patching or integration. You get what upstream developers created. Period. + +- Arch Linux is also one of the best rolling releases. It’s always updated. Users always run the latest packages, and they can also run pre-released software through unstable repositories. + +- Arch is also known for having excellent documentation. Arch Wiki is my to-go resource for everything Linux related. + +- What I like the most about Arch is that is offers almost every package and software that’s available for “any” Linux distribution, thanks to the Arch User Repository, aka AUR. + +## Best-Looking Distro: elementary OS + +Different Linux distributions have different focus areas -- in most cases, these are technical differences. In many Linux distributions. the look and feel is an afterthought -- a side project at the mercy of the specific desktop environment. + +[elementary OS](https://elementary.io/) is trying to change all that. Here, design is at the forefront, and the reason is quite obvious. The distro is being developed by designers who have made their name in the Linux world by creating beautiful icons. + +elementary OS is quite strict about the holistic look and feel. The developers have created their own components, including the desktop environment. Additionally, they choose only those applications that fit into the design paradigm. One can find heavy influence of Mac OS X on elementary OS. + +## Best Newcomer: Solus + +![](http://www.linux.com/images/stories/66866/distro-solus.JPG) + +[Solus](https://solus-project.com/) operating system has garnered quite a lot of attention lately. It’s a decent-looking operating system that has been created from scratch. It’s not a derivative of Debian or Ubuntu. It comes with the Budgie desktop environment, which was built from scratch but aims to integrate with Gnome. Solus has the same minimalistic approach as Google’s Chrome OS. + +I have not played with Solus much, but it does look promising. Solus is actually not a “new” OS. It has been around for a while in different forms and names. But the entire project was revived back in 2015 under this new name. + +## Best Cloud OS: Chrome OS + +[Chrome OS](https://www.chromium.org/chromium-os) may not be your typical Linux-based distribution because it’s a browser-based operating system for online activities. However, because it’s based on Linux and its source code is available for anyone to compile, it’s an attractive OS. I use Chrome OS on a daily basis. It’s an excellent, maintenance-free, always updated OS for anyone using a computer purely for web-related activities. Chrome OS, along with Android, deserves all the credit for making Linux popular in the PC and mobile space. + +## Best Laptop OS: Ubuntu MATE + +Most laptops don’t have very high-end hardware, and if you are running a really resource-intensive desktop environment then you won’t have much system resources or battery life at your disposal -- they will be used by the OS itself. That’s where I found [Ubuntu MATE](http://www.cio.com/article/2848475/ubuntu-mate-enterprise-customers.html) to be an excellent operating system. It’s lightweight, yet has all the bells and whistles needed for a pleasant experience. Thanks to its lightweight design, the majority of system resources are free for applications so you can still do some heavy work on it. I also found it to be a great distro on really low-end systems. + +## Best Distro for Old Hardware: Lubuntu + +If you have an old laptop or PC sitting around, breathe new life into it with [Lubuntu](http://lubuntu.net/). Lubuntu uses LXDE, but the project has merged with Razor Qt to create LXQt. Although the latest release 15.04 is still using LXDE, the future versions will be using LXQt. Lubuntu is a decent operating system for old hardware. + +## Best Distro for IoT: Snappy Ubuntu Core + +![](http://www.linux.com/images/stories/66866/distro-ubuntu-studio.JPG) + +Snappy Ubuntu Core is the best Linux-based operating system out there for Internet of Things (IoT) and other such devices. The operating system holds great potential to turn almost everything around us into smart devices -- such as routers, coffeemakers, drones, etc. What makes it even more interesting is the way the software manages updates and offers containerization for added security. + +## Best Distro for Desktops: Linux Mint Cinnamon + +[Linux Mint Cinnamon](http://www.linux.com/news/software/applications/838569-review-linux-mint-172-release/) is the best operating system for desktops and powerful laptops. I will go as far as calling it the Mac OS X of the Linux world. Honestly, I had not been a huge fan of Linux Mint for a long time because of unstable Cinnamon. But, as soon as the developers chose to use LTS as the base, the distro has become incredibly stable. Because the developers don’t have to spend much time worrying about keeping up with Ubuntu, they are now investing all of their time in making Cinnamon better. + +## Best Distro for Games: Steam OS + +Gaming has been a weakness of desktop Linux. Many users dual-boot with Windows just to be able to play games. Valve Software is trying to change that. Valve is a game distributor that offers a client to run games on different platforms. And, Valve has now created their open operating system -- [Steam OS](http://store.steampowered.com/steamos/) -- to create a Linux-based gaming platform. By the end of 2015, partners started shipping Steam machines to the market. + +## Best Distro for Privacy: Tails + +In this age of mass surveillance and tracking by marketers (anonymous tracking for targeted content is acceptable), privacy has become a major issue. If you are someone who needs to keep the government and marketing agencies out of your business, you need an operating system that’s created -- from the ground up -- with privacy in mind. + +And, nothing beats [Tails](https://tails.boum.org/) for this purpose. It’s a Debian-based distribution that offers privacy and anonymity by design. Tails is so good that, according to reports, the NSA considers it a major threat to their mission. + +## Best Distro for Multimedia Production: Ubuntu Studio + +Multimedia production is one of the major weaknesses of Linux-based operating systems. All the professional-grade applications are available for either Windows or Mac OS X. There is no dearth of decent audio/video production software for Linux, but a multimedia production system needs more than just decent applications. It should use a lightweight desktop environment so that precious system resources -- such as CPU and RAM -- are used sparingly by the system itself, leaving them for the multimedia applications. And, the best Linux distribution for multimedia production is [Ubuntu Studio](https://ubuntustudio.org/tour/). It uses Xfce and comes with a broad range of audio, video, and image editing applications. + +## Best Enterprise Distro: SLE/RHEL + +Enterprise customers don’t look for articles like these to choose a distribution to run on their servers. They already know where to go: It’s either [Red Hat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) or [SUSE Linux Enterprise](https://www.suse.com/). These two names have become synonymous with enterprise servers. These companies are also pushing boundaries by innovating in this changing landscape where everything is containerized and becoming software defined. + +## Best Server OS: Debian/CentOS + +If you are looking at running a server, but you can’t afford or don’t want to pay a subscription fee for RHEL or SLE, then there is nothing better than [Debian](https://www.debian.org/) or [CentOS](https://www.centos.org/). These distributions are the gold standard when it comes to community-based servers. And, they are supported for a very long time, so you won’t have to worry about upgrading your system so often. + +## Best Mobile OS: Plasma Mobile + +Although the Linux-based distribution Android is ruling the roost, many in the open source community, including me, still desire a distribution that offers traditional Linux desktop apps on mobile devices. At the same time, it’s better if the distro is run by a community instead of a company so that a user remains in the focus and not the company’s financial goals. And that’s where KDE’s [Plasma Mobile](https://community.kde.org/Plasma/Mobile) brings some hope. + +This Kubuntu-based distribution was launched in 2015. Because the KDE community is known for their adherence to standards and developing stuff in public, I am quite excited about the future of Plasma Mobile. + +## Best Distro for ARM Devices: Arch Linux ARM + +With the success of Android, we are now surrounded by ARM-powered devices -- from Raspberry Pi to Chromebook and Nvidia Shield. The traditional distros written for Intel/AMD processors won’t run on these systems. Some distributions are aimed at ARM, but they are mostly for specific hardware only, such as Raspbian for Raspberry Pi. That’s where [Arch Linux ARM](http://archlinuxarm.org/) (ALARM) shines. It’s a purely community-based distribution that’s based on Arch Linux. You can run it on Raspberry Pi, Chromebooks, Android devices, Nvidia Shield, and what not. What makes this distribution even more interesting is that, thanks to the Arch User Repository (AUR), you can install many applications than you may not get on other distributions. + +## Conclusion + +I was astonished and amazed when I worked on this story. It’s very exciting to see that there is something for everyone in the Linux world. It doesn’t matter if the year of the desktop Linux never arrives. We are happy with our Linux moments! + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/software/applications/878620-the-best-linux-distros-of-2016 + +作者:[Swapnil Bhartiya][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/61003 From 5a2ad668c2413590e73644e9a2b2d3fbcb3934e6 Mon Sep 17 00:00:00 2001 From: Ricky Gong Date: Thu, 18 Feb 2016 16:14:11 +0100 Subject: [PATCH 078/582] =?UTF-8?q?Ricky=E7=94=B3=E8=AF=B7=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160218 Linux Systems Patched for Critical glibc Flaw.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md index 19c654e27e..14e950a611 100644 --- a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md +++ b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md @@ -1,3 +1,5 @@ +Ricky Gong 翻译中 + Linux Systems Patched for Critical glibc Flaw ================================================= From 0a56670fc6e507e3fbf1e839a10ba1f9c01b995b Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 23:14:48 +0800 Subject: [PATCH 079/582] =?UTF-8?q?20160218-16=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eps to Start Your Linux SysAdmin Career.md | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md diff --git a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md new file mode 100644 index 0000000000..60b8f7fc75 --- /dev/null +++ b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md @@ -0,0 +1,68 @@ +7 Steps to Start Your Linux SysAdmin Career +=============================================== + +Linux is hot right now. Everybody is looking for Linux talent. Recruiters are knocking down the doors of anybody with Linux experience, and there are tens of thousands of jobs waiting to be filled. But what if you want to take advantage of this trend and you’re new to Linux? How do you get started? + +1. Install Linux + + It should almost go without saying, but the first key to learning Linux is to install Linux. Both the LFS101x and the LFS201 courses include detailed sections on installing and configuring Linux for the first time. + +2. Take LFS101x + + If you are completely new to Linux, the best place to start is our free [LFS101x Introduction](https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-2) to Linux course. This online course is hosted by edX.org, and explores the various tools and techniques commonly used by Linux system administrators and end users to achieve their day-to-day work in a Linux environment. It is designed for experienced computer users who have limited or no previous exposure to Linux, whether they are working in an individual or enterprise environment. This course will give you a good working knowledge of Linux from both a graphical and command line perspective, allowing you to easily navigate through any of the major Linux distributions. + +3. Look into LFS201 + + Once you’ve completed LFS101x, you’re ready to start diving into the more complicated tasks in Linux that will be required of you as a professional sysadmin. To gain those skills, you’ll want to take [LFS201 Essentials of Linux System Administration](http://training.linuxfoundation.org/linux-courses/system-administration-training/essentials-of-system-administration). The course gives you in-depth explanations and instructions for each topic, along with plenty of exercises and labs to help you get real, hands-on experience with the subject matter. + + If you would rather have a live instructor teach you or you have an employer who is interested in helping you become a Linux sysadmin, you might also be interested in LFS220 Linux System Administration. This course includes all the same topics as the LFS201 course, but is taught by an expert instructor who can guide you through the labs and answer any questions you have on the topics covered in the course. + +4. Practice! + + Practice makes perfect, and that’s as true for Linux as it is for any musical instrument or sport. Once you’ve installed Linux, use it regularly. Perform key tasks over and over again until you can do them easily without reference material. Learn the ins and outs of the command line as well as the GUI. This practice will ensure that you’ve got the skills and knowledge to be successful as a professional Linux sysadmin. + +5. Get Certified + + After you’ve taken LFS201 or LFS220 and you’ve gotten some practice, you are now ready to get certified as a system administrator. You’ll need this certification because this is how you will prove to employers that you have the necessary skills to be a professional Linux sysadmin. + + There are several Linux certifications on the market today, and all of them have their place. However, most of these certifications are either centered on a specific distro (like Red Hat) or are purely knowledge-based and don’t demonstrate actual skill with Linux. The Linux Foundation Certified System Administrator certification is an excellent alternative for someone looking for a flexible, meaningful entry-level certification. + +6. Get Involved + + At this point you may also want to consider joining up with a local Linux Users Group (or LUG), if there’s one in your area. These groups are usually composed of people of all ages and experience levels, so regardless of where you are at with your Linux experience, you can find people with similar skill levels to bond with, or more advanced Linux users who can help answer questions and point you towards helpful resources. To find out if there’s a LUG near you, try looking on meetup.com, check with a nearby university, or just do a simple Internet search. + + There are also many online communities available to you as you learn Linux. These sites and communities provide help and support to both individuals new to Linux or experienced administrators: + + - [Linux Admin subreddit](https://www.reddit.com/r/linuxadmin) + + - [Linux.com](http://www.linux.com/) + + - [training.linuxfoundation.org](http://training.linuxfoundation.org/) + + - [http://community.ubuntu.com/help-information/](http://community.ubuntu.com/help-information/) + + - [https://forums.opensuse.org/forum.php](https://forums.opensuse.org/forum.php) + + - [http://wiki.centos.org/Documentation](http://wiki.centos.org/Documentation) + +7. Learn To Love The Documentation + + Last but not least, if you ever get stuck on something within Linux, don’t forget about Linux’s included documentation. Using the commands man (for manual), info and help, you can find information on virtually every aspect of Linux, right from within the operating system. The usefulness of these built-in resources cannot be overstated, and you’ll find yourself using them throughout your career, so you might as well get familiar with them early on. + + Interested in learning more about starting your IT career with Linux? Check out our free ebook “[A Brief Guide To Starting Your IT Career In Linux](http://training.linuxfoundation.org/sysadmin-it-career-guide).” + +[Download Now](http://training.linuxfoundation.org/sysadmin-it-career-guide) + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/featured-blogs/191-linux-training/834644-7-steps-to-start-your-linux-sysadmin-career + +作者:[linux.com][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:linux.com + + From ce654f9d7b969b1d8cd034a9d6b0268577fdf554 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 23:22:31 +0800 Subject: [PATCH 080/582] =?UTF-8?q?20160218-17=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...to Best Manage Encryption Keys on Linux.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md new file mode 100644 index 0000000000..19aab96541 --- /dev/null +++ b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md @@ -0,0 +1,111 @@ +How to Best Manage Encryption Keys on Linux +============================================= + +![](http://www.linux.com/images/stories/41373/key-management-diagram.png) + +Storing SSH encryption **keys** and memorizing passwords can be a headache. But unfortunately in today's world of malicious hackers and exploits, basic security precautions are an essential practice. For a lot of general users, this amounts to simply memorizing passwords and perhaps finding a good program to store the passwords, as we remind such users not to use the same password for every site. But for those of us in various IT fields, we need to take this up a level. We have to deal with encryption keys such as SSH keys, not just passwords. + +Here's a scenario: I have a server running on a cloud that I use for my main git repository. I have multiple computers I work from. All of those computers need to log into that central server to push to and pull from. I have git set up to use SSH. When git uses SSH, git essentially logs into the server in the same way you would if you were to launch a command line into the server with the SSH command. In order to configure everything, I created a config file in my .ssh directory that contains a Host entry providing a name for the server, the host name, the user to log in as, and the path to a key file. I can then test this configuration out by simply typing the command + +>ssh gitserver + +And soon I'm presented with the server's bash shell. Now I can configure git to use this same entry to log in with the stored key. Easy enough, except for one problem: For each computer I use to log into that server, I need to have a key file. That means more than one key file floating around. I have several such keys on this computer, and several such keys on my other computers. In the same way everyday users have a gazillion passwords, it's easy for us IT folks to end up with a gazillion key files. What to do? + +## Cleaning Up + +Before starting out with a program to help you manage your keys, you have to lay some groundwork on how your keys should be handled, and whether the questions we're asking even make sense. And that requires first and foremost that you understand where your public keys go and where your private keys go. I'm going to assume you know: + +1. The difference between a public key and private key + +2. Why you can't generate a private key from a public key but you can do the reverse + +3. The purpose of the authorized_keys file and what goes in it + +4. How you use private keys to log into a server that has the corresponding public key in its authorized_keys file. + +Here's an example. When you create a cloud server on Amazon Web Services, you have to provide an SSH key that you'll use for connecting to your server. Each key has a public part and a private part. Because you want your server to stay secure, at first glance it might seem you put the private key onto that server, and that you take the public key with you. After all, you don't want that server to be publicly accessible, right? But that's actually backwards. + +You put the public key on the AWS server, and you hold onto your private key for logging into the server. You guard that private key and keep it by your side, not on some remote server, as shown in the figure above. + +Here's why: If the public key were to become known to others, they wouldn't be able to log into the server since they don't have the private key. Further, if somebody did manage to break into your server, all they would find is a public key. You can't generate a private key from a public key. And so if you're using that same key on other servers, they wouldn't be able to use it to log into those other computers. + +And that's why you put your public key on your servers for logging into them through SSH. The private keys stay with you. You don't let those private keys out of your hands. + +But there's still trouble. Consider the case of my git server. I had some decisions to make. Sometimes I'm logged into a development server that's hosted elsewhere. While on that dev box, I need to connect to my git server. How can the dev box connect to the git server? By using the private key. And therein lies trouble. This scenario requires I put a private key on a server that is hosted elsewhere, which is potentially dangerous. + +Now a further scenario: What if I were to use a single key to log into multiple servers? If an intruder got hold of this one private key, he or she would have that private key and gain access to the full virtual network of servers, ready to do some serious damage. Not good at all. + +And that, of course, brings up the other question: Should I really use the same key for those other servers? That's could be dangerous because of what I just described. + +In the end, this sounds messy, but there are some simple solutions. Let's get organized. + +(Note that there are many places you need to use keys besides just logging into servers, but I'm presenting this as one scenario to show you what you're faced with when dealing with keys.) + +## Regarding Passphrases + +When you create your keys, you have the option to include a passphrase that is required when using the private key. With this passphrase, the private key file itself is encrypted using the passphrase. For example, if you have a public key stored on a server and you use the private key to log into that server, you'll be prompted to enter a passphrase. Without the passphrase, the key cannot be used. Alternatively, you can configure your key without a passphrase to begin with. Then all you need is the key file to log into the server. + +Generally going without a passphrase is easier on the users, but one reason I strongly recommend using the passphrase in many situations is this: If the private key file gets stolen, the person who steals it still can't use it until he or she is able to find out the passphrase. In theory, this will save you time as you remove the public key from the server before the attacker can discover the passphrase, thus protecting your system. There are other reasons to use a passphrase, but this one alone makes it worth it to me in many situations. (As an example, I have VNC software on an Android tablet. The tablet holds my private key. If my tablet gets stolen, I'll immediately revoke the public key from the server it logs into, rendering its private key useless, with or without the passphrase.) But in some cases I don't use it, because the server I'm logging into might not have much valuable data on it. It depends on the situation. + +## Server Infrastructure + +How you design your infrastructure of servers will impact how you manage your keys. For example, if you have multiple users logging in, you'll need to decide whether each user gets a separate key. (Generally speaking, they should; you don't want users sharing private keys. That way if one user leaves the organization or loses trust, you can revoke that user's key without having to generate new keys for everyone else. And similarly, by sharing keys they could log in as each other, which is also bad.) But another issue is how you're allocating your servers. Do you allocate a lot of servers using tools such as Puppet, for example? And do you create multiple servers based on your own images? When you replicate your servers, do you need to have the same key for each? Different cloud server software allows you to configure this how you choose; you can have the servers get the same key, or have a new one generated for each. + +If you're dealing with replicated servers, it can get confusing if the users need to use different keys to log into two different servers that are otherwise similar. But on the other hand, there could be security risks by having the servers share the same keys. Or, on the third hand, if your keys are needed for something other than logging in (such as mounting an encrypted drive), then you would need the same key in multiple places. As you can see, whether you need to use the same keys across different servers is not a decision I can make for you; there are trade offs, and you need to decide for yourself what's best. + +In the end, you're likely to have: + +- Multiple servers that need to be logged into + +- Multiple users logging into different servers, each with their own key + +- Multiple keys for each user as they log into different servers. + +(If you're using keys in other situations, as you likely are, the same general concepts will apply regarding how keys are used, how many keys are needed, whether they're shared, and how you handle private and public parts of keys.) + +## Method of safety + +Knowing your infrastructure and unique situation, you need to put together a key management plan that will help guide you on how you distribute and store your keys. For example, earlier I mentioned that if my tablet gets stolen, I will revoke the public key from my server, hopefully before the tablet can be used to access the server. As such, I can allow for the following in my overall plan: + +1. Private keys are okay on mobile devices, but they must include a passphrase + +2. There must exist a way to quickly revoke public keys from a server. + +In your situation, you might decide you just don't want to use passphrases for a system you log into regularly; for example, the system might be a test machine that the developers log into many times a day. That's fine, but then you'll need to adjust your rules a bit. You might include a rule that that machine is not to be logged into from mobile devices. In other words, you need to build your protocols based on your own situation, and not assume one size fits all. + +## Software + +On to software. Surprisingly, there aren't a lot of good, solid software solutions for storing and managing your private keys. But should there be? Consider this: If you have a program storing all your keys for all your servers, and that program is locked down by a quick password, are your keys really secure? Or, similarly, if your private keys are sitting on your hard drive for quick access by the SSH program, is a key management software really providing any protection? + +But for overall infrastructure and creating and managing public keys, there are some solutions. I already mentioned Puppet. In the Puppet world, you create modules to manage your servers in different ways. The idea is that servers are dynamic and not necessarily exact duplicates of each other. [Here's one clever approach](http://manuel.kiessling.net/2014/03/26/building-manageable-server-infrastructures-with-puppet-part-4/) that uses the same keys on different servers, but uses a different Puppet module for each user. This solution may or may not apply to you. + +Or, another option is to shift gears altogether. In the world of Docker, you can take a different approach, as described in [this blog regarding SSH and Docker](http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/). + +But what about managing the private keys? If you search, you're not going to find many software options, for the reasons I mentioned earlier; the private keys are sitting on your hard drive, and a management program might not provide much additional security. But I do manage my keys using this method: + +First, I have multiple Host entries in my .ssh/config file. I have an entry for hosts that I log into, but sometimes I have more than one entry for a single host. That happens if I have multiple logins. I have two different logins for the server hosting my git repository; one is strictly for git, and the other is for general-purpose bash access. The one for git has greatly restricted rights on that machine. Remember what I said earlier about my git keys living on remote development machines? There we go. Although those keys can log into one of my servers, the accounts used are severely limited. + + Second, most of these private keys include a passphrase. (For dealing with having to type the passphrase multiple times, considering using [ssh-agent](http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/).) + +Third, I do have some servers that I want to guard a bit more carefully, and I don't have an entry into my Host file. This is more a social engineering aspect, because the key files are still present, but it might take an intruder a bit longer to locate the key file and figure out which machine they go with. In those cases, I just type out the long ssh command manually. (It's really not that bad.) + +And you can see that I'm not using any special software to manage these private keys. + +## One Size Doesn't Fit All + +We occasionally get questions at linux.com for advice on good software for managing keys. But let's take a step back. The question actually needs to be re-framed, because there isn't a one-size-fits-all solution. The questions you ask should be based on your own situation. Are you simply trying to find a place to store your key files? Are you looking for a way to manage multiple users each with their own public key that needs to be inserted into the authorized_keys file? + +Throughout this article, I've covered the basics of how all this fits together, and hopefully at this point you'll see that how you manage your keys, and whatever software you look for (if you even need additional software at all), should happen only after you ask the right questions. + + +------------------------------------------------------------------------------ + +via: http://www.linux.com/learn/tutorials/838235-how-to-best-manage-encryption-keys-on-linux + +作者:[Jeff Cogswell][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/62256 From 0f472802375809d232f12c4e084dfa34f7c7835d Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 23:38:59 +0800 Subject: [PATCH 081/582] =?UTF-8?q?20160218-18=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Top 4 open source issue tracking tools.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sources/tech/20160218 Top 4 open source issue tracking tools.md diff --git a/sources/tech/20160218 Top 4 open source issue tracking tools.md b/sources/tech/20160218 Top 4 open source issue tracking tools.md new file mode 100644 index 0000000000..b2f784e1e7 --- /dev/null +++ b/sources/tech/20160218 Top 4 open source issue tracking tools.md @@ -0,0 +1,63 @@ +Top 4 open source issue tracking tools +======================================== + +Life is full of bugs. + +No matter how carefully planned, no matter how much time went into design, any project is going to have unforseen issues when the rubber hits the road in the implementation stage. And that's okay. Perhaps the best measure of resiliency for any organization is not how well they handle things when everything is functioning as planned, but rather, how they handle the speed bumps when they come along. + +A critical tool for any project management workflow, especially in the software development world, is an issue tracker. The basics are simple; allowing bugs to be opened, tracked, and resolved in a collaborative manner, while making it easy to follow the progress. Beyond the basic functionality, there are a lot of options focused on meeting specific needs, features, and use cases, including software development and beyond. You may be familiar with hosted versions of these tools, like [GitHub Issues](https://guides.github.com/features/issues/) or [Launchpad](https://launchpad.net/), some of which are themselves open source. + +So let's take a look at four excellent choices for managing bugs and issues, all open source and all easy to download and host yourself. To be clear, there's no way we could possibly list every issue tracking tool here; instead, these are four of our favorites, based on feature richness and the size of the community behind the project. There are others, to be sure, and if you've got a good case for your favorite not listed here, be sure to let us know which is your favorite tool and what makes it stand out to you, in the comments below. + +## Redmine + +[Redmine](http://www.redmine.org/) is a popular issue tracking tool built on Ruby on Rails and dating back to 2006. Similar in many regards to Trac, another one of our favorites, Redmine is capable of managing multiple projects and integrates with a number of version control systems. In addition to basic issue tracking, Redmine also offers forums, wikis, time tracking tools, and the ability to generate Gantt charts and calendars to track progress. + +Redmine is fairly flexible in its setup, supporting numerous database backends and dozens of languages, and is customizable as well, featuring the ability to add custom fields to issues, users, projects and more. It can be further customized with a number of community-created plugins and themes. + +An [online demo](http://demo.redmine.org/) is available if you’d like to try it out. Redmine is licensed as open source under the [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html); the source code can be found in the project’s [subversion repository](https://svn.redmine.org/redmine) or mirrored on [GitHub](https://github.com/redmine/redmine). + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-redmine.png) + +## Bugzilla + +[Bugzilla](https://www.bugzilla.org/) is another popular development tool with issue tracking capabilities. As you might have guessed from the name, Bugzilla was originally created by the [Mozilla Foundation](https://www.mozilla.org/en-US/) to track bugs in the development of the then-called Netscape Communicator suite. Ported to Perl from its original Tcl routes for greater accessibility, Bugzilla is one of the older and more widely adopted issue tracking systems, as it is used by a number of well-known open source projects like GNOME, KDE, and the Linux kernel itself. + +Sporting a number of advanced tools, from notifications to duplicate bug detection to shared searches, Bugzilla is certainly a more feature-rich option. Bugzilla has an advanced search system along with a comprehensive reporting tool, capable of generating charts and automated scheduled reports. Like Redmine, Bugzilla is extensible and customizable, both in the fields themselves as well as featuring the ability to create custom workflows for bugs. It also works with many database backends, and many different languages are supported out of the box. + +Bugzilla is licensed under the [Mozilla Public License](https://en.wikipedia.org/wiki/Mozilla_Public_License), and you can read their [future roadmap](https://www.bugzilla.org/status/roadmap.html) and try out a [demo server](https://landfill.bugzilla.org/) on the official website. + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-bugzilla.png) + +## Trac + +[Trac](http://trac.edgewall.org/browser) describes itself as taking a minimalistic approach to web-based software project management, but don’t confusing minimalism with a lack of features. + +Written in Python, Trac tightly integrates its bug tracking capabilities with its wiki system and a revision control system of your choosing. It features project management capabilities like generating milestones and roadmaps, a customizable reporting system, timelines, support for multiple repositories, built-in spam filtering, and is available in many common languages. Like the other bug trackers we have looked at, has a number of plugins available for it extending its base feature set even further. + +Trac is made available as open source under a modified [BSD license](http://trac.edgewall.org/wiki/TracLicense), though older versions were released under the GPL. You can view Trac’s source in a [self-hosted repository](http://trac.edgewall.org/browser) or check out their [roadmap](http://trac.edgewall.org/wiki/TracRoadmap) for future plans. + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-trac.png) + +## Mantis + +[Mantis](https://www.mantisbt.org/) is the final tool we’ll look at in this collection, a PHP-based bug tracker with a sixteen year history. Another bug tracker with support for many different revision control systems and an event-driven notification system, Mantis has a similar feature set to other tools here. While it does not itself contain a wiki, it integrates with many popular wiki platforms and is localized into many languages. + +Mantis is licensed as open source under the [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html); you can browse its source code on [GitHub](https://github.com/mantisbt/mantisbt) or check out the self-hosted [roadmap](https://www.mantisbt.org/bugs/roadmap_page.php?project=mantisbt&version=1.3.x) for future plans. For a demo, you can check out their own internal [bug tracker](https://www.mantisbt.org/bugs/my_view_page.php). + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-mantis.png) + +As we notes, these four are not the only options. Looking to explore some others? [Apache Bloodhound](https://issues.apache.org/bloodhound/), [Fossil](http://fossil-scm.org/index.html/doc/trunk/www/index.wiki), [The Bug Genie](http://www.thebuggenie.com/), and many alternatives all have dedicated followings, each with different strengths and weaknesses. In addtion, some of the tools in our [project management](https://opensource.com/business/15/1/top-project-management-tools-2015) roundup have issue tracking capabilities. So, which is your preferred tool for tracking and squashing bugs? + + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/2/top-issue-support-and-bug-tracking-tools + +作者:[Jason Baker][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/jason-baker From a49f2ec78e8cf0dbb8600ec9c28333c191207c4f Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 18 Feb 2016 23:50:38 +0800 Subject: [PATCH 082/582] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/news/20160218 Russia Announces Switch to Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20160218 Russia Announces Switch to Linux.md b/sources/news/20160218 Russia Announces Switch to Linux.md index aa7fb66a86..1f5cdd1f49 100644 --- a/sources/news/20160218 Russia Announces Switch to Linux.md +++ b/sources/news/20160218 Russia Announces Switch to Linux.md @@ -1,3 +1,5 @@ +translating by Ezio + This Week in Linux News:Russia Announces Switch to Linux, Outdated Fight for the Linux Desktop ========================================================================= This week in Linux news, Russia announces a possible switch to Linux, Jack Wallen ponders the importance of the Linux Desktop in 2016, and more! Get up-to-date on the Latest Linux news with our weekly digest. From f3ae44aa6236a68149a094dee64a58ecaf1bd7de Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 00:12:04 +0800 Subject: [PATCH 083/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 试水新类型文章 --- ...160218 Russia Announces Switch to Linux.md | 35 ------------------- ...160218 Russia Announces Switch to Linux.md | 35 +++++++++++++++++++ 2 files changed, 35 insertions(+), 35 deletions(-) delete mode 100644 sources/news/20160218 Russia Announces Switch to Linux.md create mode 100644 translated/news/20160218 Russia Announces Switch to Linux.md diff --git a/sources/news/20160218 Russia Announces Switch to Linux.md b/sources/news/20160218 Russia Announces Switch to Linux.md deleted file mode 100644 index 1f5cdd1f49..0000000000 --- a/sources/news/20160218 Russia Announces Switch to Linux.md +++ /dev/null @@ -1,35 +0,0 @@ -translating by Ezio - -This Week in Linux News:Russia Announces Switch to Linux, Outdated Fight for the Linux Desktop -========================================================================= -This week in Linux news, Russia announces a possible switch to Linux, Jack Wallen ponders the importance of the Linux Desktop in 2016, and more! Get up-to-date on the Latest Linux news with our weekly digest. - -1. Russia announces a possible switch to Linux in retalliation against Western business embargo on Crimea. - - [Russia Might Switch Thousands of Government Computers to Linux to Spite Microsoft](http://www.techradar.com/news/world-of-tech/russia-might-switch-thousands-of-government-computers-to-linux-to-spite-microsoft-1314762) - TechRadar - -2. "It doesn't matter if Linux has 1% or 99% of the desktop market share" writes Jack Wallen. - - [Should the Fight for the Linux Desktop Really Matter?](http://www.techrepublic.com/article/should-the-fight-for-the-linux-desktop-really-matter/) - TechRepublic - -3. The Linux Foundation's Hyperledger Project experiences growth in membership since its launch in December. - - [Linux Foundation-Led Blockchain Project Grows to 30 Members](http://www.coindesk.com/linux-foundation-led-hyperledger-project-swells-to-30-members/) - CoinDesk - -4. Docker's founder and CTO, Solomon Hykes, suggests Alpine Linux will be the company's new default OS. - - [Is Docker Ditching Ubuntu Linux? Confusion Reigns](http://www.infoworld.com/article/3031847/open-source-tools/is-docker-ditching-ubuntu-linux-confusion-reigns.html) - InfoWorld - -5. The Node.js Foundation, a Linux Foundation Collaborative Project, will bring in popular third-party "Express" package. - - [The Node.js Foundation Plans to Incubate One of the Community’s Most Popular Packages](http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more#gref)- The Next Web - ------------------------------------------------------------------------------- - -via: http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more - -作者:[linux.com][linux.com] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/translated/news/20160218 Russia Announces Switch to Linux.md b/translated/news/20160218 Russia Announces Switch to Linux.md new file mode 100644 index 0000000000..a259ec1e4e --- /dev/null +++ b/translated/news/20160218 Russia Announces Switch to Linux.md @@ -0,0 +1,35 @@ +本周 Linux 新闻: 俄罗斯宣布迁移到 Linux +========================================================================= + +本周 Linux 新闻, 俄罗斯宣布可能会将系统迁移到 Linux 上, Jack Wallen 思考2016 年对 Linux 桌面系统的重要性, 等等。下面就让我们看看本周 Linux 界都有那些重要新闻。 + +1. 俄罗斯宣布有可能切换到 Linux , 以此来反击自克里米亚以来西方实施的商业禁运。 + + [俄罗斯可能讲成千上万台政府的电脑系统从 Windows 切换成 Linux](http://www.techradar.com/news/world-of-tech/russia-might-switch-thousands-of-government-computers-to-linux-to-spite-microsoft-1314762) - TechRadar + +2. Jack Wallen 写到:“对于 Linux 来说占有桌面系统市场 1% 或者 99% 并不重要” + + [为了 Linux 桌面系统奋斗是否真的很重要?](http://www.techrepublic.com/article/should-the-fight-for-the-linux-desktop-really-matter/) - TechRepublic + +3. 自从去年12月以来,参与 Linux 基金会的 HYPERLEDGER 计划的合作伙伴有了显著的增加 + + [Linux 基金会的 HYPERLEDGER 计划已经有了30 个合作伙伴](http://www.coindesk.com/linux-foundation-led-hyperledger-project-swells-to-30-members/) - CoinDesk + +4. Docker 的创始人和 CTO , Solomon Hykes 暗示 Alpine Linux 将会成为公司新的默认操作系统 + + [Docker 将会抛弃 Ubuntu 吗?](http://www.infoworld.com/article/3031847/open-source-tools/is-docker-ditching-ubuntu-linux-confusion-reigns.html) - InfoWorld + +5.Node.js 基金会, 作为Linux 基金会的合作项目, 将会产生流行的第三方快捷(Express)软件包 + + [Node.js 基金会计划孵化社区中最流行的一个软件包](http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more#gref)- The Next Web + + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more + +作者:[linux.com][linux.com] +译者:[译者ID](https://github.com/oska874) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 5daff92f5784a06f3d893772eb5d66510bc1fdc7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 00:17:00 +0800 Subject: [PATCH 084/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../news/20160218 Russia Announces Switch to Linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/news/20160218 Russia Announces Switch to Linux.md b/translated/news/20160218 Russia Announces Switch to Linux.md index a259ec1e4e..04da7f31c1 100644 --- a/translated/news/20160218 Russia Announces Switch to Linux.md +++ b/translated/news/20160218 Russia Announces Switch to Linux.md @@ -1,4 +1,4 @@ -本周 Linux 新闻: 俄罗斯宣布迁移到 Linux +本周 Linux 新闻: 俄罗斯宣布政府电脑系统迁移到 Linux ========================================================================= 本周 Linux 新闻, 俄罗斯宣布可能会将系统迁移到 Linux 上, Jack Wallen 思考2016 年对 Linux 桌面系统的重要性, 等等。下面就让我们看看本周 Linux 界都有那些重要新闻。 @@ -19,9 +19,9 @@ [Docker 将会抛弃 Ubuntu 吗?](http://www.infoworld.com/article/3031847/open-source-tools/is-docker-ditching-ubuntu-linux-confusion-reigns.html) - InfoWorld -5.Node.js 基金会, 作为Linux 基金会的合作项目, 将会产生流行的第三方快捷(Express)软件包 +5.Node.js 基金会, 作为Linux 基金会的合作项目, 计划将 Express 引入基金会 - [Node.js 基金会计划孵化社区中最流行的一个软件包](http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more#gref)- The Next Web + [Node.js 基金会计划将社区里最流行的框架软件 Expres 引入基金会进行孵化](http://thenextweb.com/dd/2016/02/10/the-node-js-foundation-plans-to-incubate-one-of-the-communitys-most-popular-packages/)- The Next Web ------------------------------------------------------------------------------ From 315e6e200f255770f1666c16fb8505ce4b6682b9 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 00:17:56 +0800 Subject: [PATCH 085/582] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index 5fb0d286d0..d2f3c4ee5c 100644 --- a/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -1,3 +1,5 @@ +translatin by Ezio + Meizu PRO 5 Ubuntu Edition Announced and It's a Beast ======================================================== From a10b20f772d617b13d930ea84d112d26fabd1bdc Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 00:41:54 +0800 Subject: [PATCH 086/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...untu Edition Announced and It's a Beast.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index d2f3c4ee5c..fceeccc881 100644 --- a/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -1,27 +1,28 @@ translatin by Ezio Meizu PRO 5 Ubuntu Edition Announced and It's a Beast +魅族 Pr 5 Ubuntu 版即将发布 ======================================================== -## Canonical and Meizu have just revealed that Meizu PRO 5 Ubuntu Edition will be available for pre-order during Mobile World Congress 2016. +**Canonical 和魅族刚刚透露魅族 Pro 5 Ubuntu 版将在2016 世界移动大会召开期间开始预售** -It's been a while since we last heard something from Meizu, but it looks like the collaboration between Canonical and the Chinese hardware maker is still alive. From the looks of it, the previous Meizu MX4 Ubuntu Edition was only a limited release, so only a small number of devices have been sold. +自从上次听到魅族的消息到现在已经很久了,但是看起来 Canonical 和这个中国的硬件厂商之间的合作关系仍然存在。从表面来看,之前的魅族 MX4 Ubuntu 版只是进行了有限的发布,所以只有很少的设备被出售出去了。 -We can only hope that Meizu PRO 5 Ubuntu Edition will be made available in greater numbers, especially since it's a much newer phone that's still supported by Meizu. +我们可以仅仅希望 魅族 Pro 5 Ubuntu 版可以增加更多的供货量,特别因为他还是一个魅族仍然提供支持的非常新的手机。 -This latest Meizu PRO 5 Ubuntu Edition is the fifth official device that comes with Ubuntu Touch, and we'll likely see many more phones and maybe tablets with this operating system landing in 2016. +最新的魅族 Pro 5 是第5个支持 Ubuntu Touch 的官方设备,而且在2016 年我们将会看到更多的手机,以及平板会预装这个操作系统。 -##Meizu PRO 5 Ubuntu Edition is a beast +## 魅族 Pro 5 Ubuntu 版将会非常震撼 -Canonical says that it's the most powerful Ubuntu smartphone launched to date, and they are right, not to mention that it's also the biggest, if we don't count the tablet. Meizu PRO 5 features a Samsung Exynos 7420 Octa-core processor, a 5.7-inch 1920x1080 AMOLED display, Corning Gorilla Glass 3, and LPDDR4 memory technology. +Canonical 宣称 Pro 5 是目前已发布了的 Ubuntu 智能手机中最强大的, 他们说的是对的, 除了这一点,它还是平板意外最大的。 魅族 Pro 5 拥有一颗 Exynos 7420 8核处理器,5.7 英寸分辨率未1920x1080 的 AMOLED 屏,覆盖第三代大猩猩屏,以及 LPDDR4 内存技术。 -Many of you will probably ask if this new phone is also capable of desktop convergence, and it looks that users are in luck. +很多人也许会问这个新手机是否可以汇聚桌面版系统, 而且看起来用户是运气不错。 -"Canonical remains committed to the vision of reinventing personal computing through a single, adaptive platform for all personal device form factors. As such, while the PRO 5 lacks MHL output, the software running on the Meizu PRO 5 is the latest code which also powers recently announced tablets and other devices and is capable of providing a traditional desktop experience," the company explained. +公司解释说,“Canonical 一直致力于重塑个人计算的视觉表现,希望为所有的的个人设备提供自适应的平台。因此尽管 Pro 5 缺少 MHL 输出,运行在魅族 Pro 5 上的是最新的代码,同时也是最新发布的支持平板和其它设备系统,它可以提供一种传统桌面的体验。” -Meizu PRO 5 was initially launched back in September 2015. Users will also get a 21 MP back camera, and the phone can shoot video at 2160p and 30fps. It also comes with a fingerprint sensor and a Li-Ion 3050 mAh battery with fast charging. +魅族 Pro 5 最初实在2015 年9 月发布的。用户同时会拥有一个2100 万像素的后置摄像头,可以拍摄2160p 和30 fps 的视频。同时它还带有一个指纹传感器和支持快速充电的3050 mAh 的锂电池。 -For now, the phone will only be available in China and Europe, and the preorders will be opened during the Mobile World Congress 2016 that takes place between February 22 and 25. +目前这款手机只在中国和欧洲有售,预定讲从2016 年世界移动大会期间开始,即2 月22 日至25 日。 ![](http://i1-news.softpedia-static.com/images/fitted/620x/meizu-pro-5-ubuntu-edition-announced-and-it-s-a-beast-photos-500526-11.jpg) @@ -31,7 +32,7 @@ For now, the phone will only be available in China and Europe, and the preorders via: http://www.linux.com/news/embedded-mobile/mobile-linux/886322-meizu-pro-5-ubuntu-edition-announced-and-its-a-beast 作者:[Silviu Stahie][a] -译者:[译者ID](https://github.com/译者ID) +译者:[译者ID](https://github.com/osk874) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 95e9d1e3942f583e506738fdc27446efcf694021 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 00:42:51 +0800 Subject: [PATCH 087/582] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=B0translated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources/news => translated/tech}/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md (100%) diff --git a/sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/tech/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md similarity index 100% rename from sources/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md rename to translated/tech/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md From 7769afc60d41d4e642a4bad6ab8fd5c9bdea789e Mon Sep 17 00:00:00 2001 From: "Fuliang.Li" Date: Fri, 19 Feb 2016 09:28:55 +0800 Subject: [PATCH 088/582] =?UTF-8?q?[=E5=BC=80=E5=A7=8B=E7=BF=BB=E8=AF=91]?= =?UTF-8?q?=2020160218=20The=20Best=20Linux=20Distros=20of=202016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20160218 The Best Linux Distros of 2016.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160218 The Best Linux Distros of 2016.md b/sources/tech/20160218 The Best Linux Distros of 2016.md index ec3bc1390c..fa9a6b6ffa 100644 --- a/sources/tech/20160218 The Best Linux Distros of 2016.md +++ b/sources/tech/20160218 The Best Linux Distros of 2016.md @@ -1,3 +1,5 @@ +GHLandy Translating + The Best Linux Distros of 2016 ================================ From 4b24c31143224c785aecf0b82a2874500328bdd8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 19 Feb 2016 10:00:37 +0800 Subject: [PATCH 089/582] translating --- ...18 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md index 32c822289c..2f26ef8c91 100644 --- a/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md +++ b/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md @@ -1,3 +1,5 @@ +Translating----geekpi + Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04 ======================================================= @@ -20,3 +22,5 @@ via: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-ZFS-Continues-16 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:http://www.michaellarabel.com/ + + From 8051180f3b87d04e5510bf855284cffe761745ce Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 19 Feb 2016 10:18:23 +0800 Subject: [PATCH 090/582] translated --- ...FS Plans Are Lining Up For Ubuntu 16.04.md | 26 ------------------- ...FS Plans Are Lining Up For Ubuntu 16.04.md | 24 +++++++++++++++++ 2 files changed, 24 insertions(+), 26 deletions(-) delete mode 100644 sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md create mode 100644 translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md diff --git a/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md deleted file mode 100644 index 2f26ef8c91..0000000000 --- a/sources/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md +++ /dev/null @@ -1,26 +0,0 @@ -Translating----geekpi - -Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04 -======================================================= - -![](https://www.phoronix.com/assets/categories/ubuntu.jpg) - -Ubuntu developers have been working on [ZFS support for Ubuntu 16.04](http://www.phoronix.com/scan.php?page=news_item&px=ZFS-For-Ubuntu-16.04) and all of that file-system support is getting squared away. - -EXT4 will continue to be the default for Ubuntu 16.04 installations, but ZFS support will be automatically built into the Ubuntu Linux kernel releases, the module will automatically load when needed, zfsutils-linux is part of the main Ubuntu archive, and the support is being backed to commercial customers via Canonical. - -For those interested in official ZFS support for Ubuntu Linux, Canonical's Dustin Kirkland has written [a new blog post](http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html) covering some of the details and why "ZFS is *the* FS for Containers in Ubuntu 16.04!" - ------------------------------------------------------------------------------- - -via: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-ZFS-Continues-16.04&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Phoronix+%28Phoronix%29 - -作者:[Michael Larabel][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.michaellarabel.com/ - - diff --git a/translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md new file mode 100644 index 0000000000..efe2ff27bc --- /dev/null +++ b/translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md @@ -0,0 +1,24 @@ +Canonical的ZFS计划将会进入Ubuntu 16.04 +======================================================= + +![](https://www.phoronix.com/assets/categories/ubuntu.jpg) + +Ubuntu开发者正在为[Ubuntu 16.04 加上支持ZFS](http://www.phoronix.com/scan.php?page=news_item&px=ZFS-For-Ubuntu-16.04) ,并且所遇的文件系统支持都已经准备就绪。 + +Ubuntu 16.04的默认安装将会继续是ext4,但是ZFS支持将会自动构建进Ubuntu发布中,模块将在需要时自动加载,zfsutils-linux是Ubuntu的一部分,并且通过Canonical对商业客户提供支持 + +对于那些对Ubuntu中的ZFS感兴趣的人,Canonical的Dustin Kirkland已经写了[一篇新的博客](http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html)覆盖了一些细节及为何“ZFS是Ubuntu 16.04中为容器使用的文件系统!” + +------------------------------------------------------------------------------ + +via: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-ZFS-Continues-16.04&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Phoronix+%28Phoronix%29 + +作者:[Michael Larabel][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.michaellarabel.com/ + + From 63981031529b0517976ae2ca1118fcb967f6f38a Mon Sep 17 00:00:00 2001 From: "Fuliang.Li" Date: Fri, 19 Feb 2016 10:46:48 +0800 Subject: [PATCH 091/582] =?UTF-8?q?[=E5=BC=80=E5=A7=8B=E7=BF=BB=E8=AF=91]?= =?UTF-8?q?=2020160218=20How=20to=20Best=20Manage=20Encryption=20Keys=20on?= =?UTF-8?q?=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160218 How to Best Manage Encryption Keys on Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md index 19aab96541..468414fdfa 100644 --- a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md +++ b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md @@ -1,3 +1,5 @@ +GHLandy Translating + How to Best Manage Encryption Keys on Linux ============================================= From 1bb3a1380fc9d4cea13e06eff86ba60ee3ed8522 Mon Sep 17 00:00:00 2001 From: joeren Date: Fri, 19 Feb 2016 12:52:30 +0800 Subject: [PATCH 092/582] Taken by GOLinux --- ... LTS Is the Biggest in the Series with Hundreds of Changes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md b/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md index 2bf7e02ce7..3e6e5e4388 100644 --- a/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md +++ b/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md @@ -1,3 +1,4 @@ +Translating by GOLinux Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes ================================================================================= From 34b7f4f7e6efccc50897a41849fafb0b70ea5a04 Mon Sep 17 00:00:00 2001 From: bioIkke <455256722@qq.com> Date: Fri, 19 Feb 2016 13:32:27 +0800 Subject: [PATCH 093/582] Update 20160218 7 Steps to Start Your Linux SysAdmin Career.md --- .../tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md index 60b8f7fc75..6df151f9f6 100644 --- a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md +++ b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md @@ -1,3 +1,4 @@ +bioIkke 翻译中 7 Steps to Start Your Linux SysAdmin Career =============================================== From d427778a695757cc9357a1b256373b36220b56f6 Mon Sep 17 00:00:00 2001 From: miaolin Date: Fri, 19 Feb 2016 13:46:41 +0800 Subject: [PATCH 094/582] Create 20160218 Mozilla contributor creates diabetes project for the masses.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第一次翻译,感觉确是需要多翻译,校对费心了了 --- ...creates diabetes project for the masses.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md diff --git a/translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md b/translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md new file mode 100644 index 0000000000..de61ff1d7b --- /dev/null +++ b/translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md @@ -0,0 +1,51 @@ +Mozilla贡献者为群众创建糖尿病项目 +================================================================ + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) + + +我的开源生涯从我还是一名高中生开始,我总想着自己能成为一名黑客,没有什么恶意的,只是喜欢钻研代码和硬件那种。我第一次接触开源是2001年, +我安装了我的第一个Linux发行版[Lindows](https://en.wikipedia.org/wiki/Linspire)。当然,我也是[Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/?utm_source=firefox-com&utm_medium=referral)的早期用户。 + +由于我很早使用Linux,我用的第一个版本是1.0.4(如果我没记错的话),我就立即爱上了它。我没在Lindows上呆太久, +而是活跃于多个发行版([Debian](https://www.debian.org/), +[Puppy Linux](http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm), [SUSE](https://www.suse.com/), +[Slackware](http://www.slackware.com/), [Ubuntu](http://ubuntu.com/)),多年来我一直每天使用着开源软件,从青少年时候直到我成年。 + +最后,我坚持使用Ubuntu。大概是在Hardy Heron(译者注:Ubuntu8.04 LTS)发布时候,我开始第一次为Ubuntu做些贡献,在IRC频道和当地社区 +帮助那些需要帮助的用户。我是通过Ubuntu认识开源的,它在我心里总有着特殊的意义。Ubuntu背后的社区的是非常多样化的,热情的,友好的, +每个人都做些共享,是他们共同的目标也是个人目标,这成为他们为开源贡献的动力。 + +在为Ubuntu贡献一段时间后,我开始了为一些上游项目作贡献,比如Debian, [GNOME](https://www.gnome.org/), +[Ganeti](https://code.google.com/p/ganeti/),还有许多其他的开源项目。 +在过去的几年里,我为超过40个开源项目贡献过,有些小的,也有很大的。 + +在Ubuntu项目方向上有些变化之后,我最终决定不仅对于我是时候该尝试新东西,而且我也想贡献一些新的东西。所以我在2009年参与Mozilla, +在IRC帮忙,最终通过参与[Mozilla WebFWD program](https://webfwd.org/),成为一名团队成员,接着[Mozilla Reps Program](https://reps.mozilla.org/), +[Mozilla DevRel Program](https://wiki.mozilla.org/Devrel),刚过两年时间,我成为了火狐社区的发布经理,负责监督Firefox Nightly +和Firefox ESR的发布。比为其他开源项目,在为Mozilla贡献中会获得更多有益的经验。在所有我参与过的开源社区中,Mozilla是最不同的 +,最大的也是最友好的。 + +这些年来,关于开源我觉得,免费软件,更具安全的隐私和尊重许可,以及公开的工作,我越来越与这样的价值观相一致。我相信这三个主题 +对于开源来说是非常重要的,虽然许多人并没在意到提倡它们是很重要的。 + +今天在这,我已不再是全职的他人开源项目的贡献者。最近我被诊断出患有糖尿病,我看到了开源软件中健康软件不是很丰富这一缺口。确实, +它不像其它开源软件应用如Linux发行版或浏览器那样活跃。 + +我最近创立了自己的开源项目[Glucosio](http://www.glucosio.org/),带给人们糖尿病管理和研究的开源软件。经过几年来对开源项目的贡献, +和见过的多种架构,使得我作为项目领导能够得心应手。我对于Glucosio的未来很兴奋,但最重要的是未来的开源将在医疗健康领域发展的如何。 + +医疗保健软件的创新具有很大潜力,我想我们很快就会看到用于改善医疗卫生保健的开源新方案。 + + +------------------------------------------------------------------------------ + +via: https://opensource.com/life/15/11/my-open-source-story-ben-kerensa + +作者:[opensource.com][a] +译者:[ynmlml](https://github.com/ynmll) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:opensource.com From 0165d6996ef60fe83bd5294aade577b5bd47de77 Mon Sep 17 00:00:00 2001 From: GOLinux Date: Fri, 19 Feb 2016 13:52:56 +0800 Subject: [PATCH 095/582] [Translated]20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md --- ... in the Series with Hundreds of Changes.md | 29 ------------------- ... in the Series with Hundreds of Changes.md | 27 +++++++++++++++++ 2 files changed, 27 insertions(+), 29 deletions(-) delete mode 100644 sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md create mode 100644 translated/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md diff --git a/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md b/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md deleted file mode 100644 index 3e6e5e4388..0000000000 --- a/sources/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md +++ /dev/null @@ -1,29 +0,0 @@ -Translating by GOLinux -Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes -================================================================================= - -**It looks like renowned kernel maintainer Greg Kroah-Hartman is on vacation, as Sasha Levin has had the great pleasure of [announcing](http://lkml.iu.edu/hypermail/linux/kernel/1602.2/00520.html) earlier today, February 16, 2016, the general availability of the eighteenth maintenance release of Linux kernel 4.1 LTS.** - -Being a long-term supported kernel branch, Linux 4.1 will receive updates and patches for a few more years, and today's maintenance build proves that the kernel developers are committed to keeping the series stable and reliable for all GNU/Linux operating systems that use it. Linux kernel 4.1.18 LTS is a massive release with a total of 228 files changes, consisting of 5,304 insertions and 1,128 deletions. - -What's new in Linux kernel 4.1.18 LTS? Well, let's start with improvements to the ARM, ARM64 (AArch64), MIPS, PA-RISC, m32r, PowerPC (PPC), s390, and x86 hardware architectures. Moreover, there are enhancements to the Btrfs, CIFS, NFS, XFS, OCFS2, OverlayFS, and UDF filesystems, networking stack fixes, especially for mac80211, as well as multiple core, crypto, and mm improvements and sound updates. - -"I'm announcing the release of the 4.1.18 kernel. All users of the 4.1 kernel series must upgrade," says Sasha Levin. "The updated 4.1.y git tree can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.1.y and can be browsed at the normal kernel.org git web browser: http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary." - -## Numerous drivers have been updated - -Besides the architectures, filesystems, sound, networking, crypto, mm, and core kernel improvements, Linux kernel 4.1.18 LTS updates various drivers for better hardware support. This is in particular for things like Bluetooth, DMA, EDAC, GPU (mostly Radeon and Intel i915), InfiniBand, IOMMU, IRQchip, MD, MMC, DVB, networking (mostly wireless), PCI, SCSI, USB, thermal, staging, TTY, and Virtio. - -As usual, we're urging all users of Linux kernel-based operating systems that use kernel packages from the Linux 4.1 LTS series to update to today's 4.1.18 release as soon as possible. This can be done either by installing the update from the default software repositories or by manually compiling the sources, which you can download right now from the [kernel.org](http://kernel.org/) website or via [Softpedia](http://linux.softpedia.com/get/System/Operating-Systems/Kernels/Linux-Kernel-Stable-1960.shtml). - ------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/linux-kernel-4-1-18-lts-is-the-biggest-in-the-series-with-hundreds-of-changes-500500.shtml - -作者:[Marius Nestor ][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://news.softpedia.com/editors/browse/marius-nestor diff --git a/translated/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md b/translated/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md new file mode 100644 index 0000000000..4a53818b49 --- /dev/null +++ b/translated/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md @@ -0,0 +1,27 @@ +Linux最大版本4.1.18 LTS发布,带来大量修改 +================================================================================= + +**著名的内核维护者Greg Kroah-Hartman貌似正在度假中,因为Sasha Levin有幸在今天,2016年2月16日,的早些时候来[宣布](http://lkml.iu.edu/hypermail/linux/kernel/1602.2/00520.html),第十八个Linux内核维护版本Linux Kernel 4.1 LTS通用版本正式发布。** + +作为长期支持的内核分支,Linux 4.1将再多几年接收到更新和补丁,而今天的维护构建版本也证明一点,就是内核开发者们正致力于统保持该系列在所有使用该版本的GNU/Linux操作系统上稳定和可靠。Linux Kernel 4.1.18 LTS是一个大规模发行版,它带来了总计达228个文件修改,这些修改包含了多达5304个插入修改和1128个删除修改。 + +Linux Kernel 4.1.18 LTS更新了什么呢?好吧,首先是对ARM,ARM64(AArch64),MIPS,PA-RISC,m32r,PowerPC(PPC),s390以及x86等硬件架构的改进。此外,还有对Btrfs,CIFS,NFS,XFS,OCFS2,OverlayFS以及UDF文件系统的加强。对网络堆栈的修复,尤其是对mac80211的修复。同时,还有多核心、加密和mm等方面的改进和对声音的更新。 + +“我宣布4.1.18内核正式发布,所有4.1内核系列的用户都应当升级。”Sasha Levin说,“更新的4.1.y git树可以在这里找到:git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.1.y,并且可以在常规kernel.org git网站浏览器:http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary 进行浏览。” +## 大量驱动被更新 + +除了架构、文件系统、声音、网络、加密、mm和核心内核方面的改进之外,Linux Kernel 4.1.18 LTS更新了各个驱动,以提供更好的硬件支持,特别是像蓝牙、DMA、EDAC、GPU(主要是Radeon和Intel i915)、无限带宽技术、IOMMU、IRQ芯片、MD、MMC、DVB、网络(主要是无线)、PCI、SCSI、USB、散热、暂存和Virtio等此类东西。 + +和以往一样,我们鼓励所有基于Linux内核的操作系统平台的用户,凡是使用了Linux 4.1 LTS系列内核包的,尽快更新到今天的4.1.18版本。这些用户可以通过默认软件仓库安装更新,也可以手动编译源码包,这些包你现在就可以从[kernel.org](http://kernel.org/)网站或者[Softpedia](http://linux.softpedia.com/get/System/Operating-Systems/Kernels/Linux-Kernel-Stable-1960.shtml)下载。 + +------------------------------------------------------------------------------ + +via: http://news.softpedia.com/news/linux-kernel-4-1-18-lts-is-the-biggest-in-the-series-with-hundreds-of-changes-500500.shtml + +作者:[Marius Nestor ][a] +译者:[GOLinux](https://github.com/GOLinux) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/marius-nestor From 401f1507f651c46c8ef44504e5f2d1f454f0fee5 Mon Sep 17 00:00:00 2001 From: miaolin Date: Fri, 19 Feb 2016 14:05:56 +0800 Subject: [PATCH 096/582] =?UTF-8?q?=E5=BF=98=E4=BA=86=E5=88=A0=E5=8E=9F?= =?UTF-8?q?=E6=96=87=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...creates diabetes project for the masses.md | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md diff --git a/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md b/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md deleted file mode 100644 index 61e5c08883..0000000000 --- a/sources/tech/20160218 Mozilla contributor creates diabetes project for the masses.md +++ /dev/null @@ -1,35 +0,0 @@ -translating by ynmlml -Mozilla contributor creates diabetes project for the masses -================================================================ - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) - -My open source story started in high school as a student. I always considered myself to be a hacker—not the malicious type, but the curious type who liked to tinker with code and hardware. My first encounter with open source was in 2001 when I installed my first Linux distro, [Lindows](https://en.wikipedia.org/wiki/Linspire). Of course, I was also an early user of [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/?utm_source=firefox-com&utm_medium=referral). - -As a result of my early adoption of Linux, the first version I used was 1.0.4 (if I recall correctly), and I immediately fell in love. While I did not stay long with Lindows, hopping across many distros ([Debian](https://www.debian.org/), [Puppy Linux](http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm), [SUSE](https://www.suse.com/), [Slackware](http://www.slackware.com/), [Ubuntu](http://ubuntu.com/)) over the years I continued to use open source software on a daily basis from my youth into adulthood. - -Eventually, I consistently used Ubuntu. Around the release of Hardy Heron I started some of my first contributions to Ubuntu, helping out on IRC and helping users locally who needed help. With Ubuntu being where I cut my teeth in open source, it has always had a special place in my heart. The community behind Ubuntu is very diverse, passionate, and friendly and everyone comes together with some shared common goals but also individuals' goals as drivers for why they contribute to open source. - -After having contributed to Ubuntu for a while, I started contributing upstream to projects like Debian, [GNOME](https://www.gnome.org/), [Ganeti](https://code.google.com/p/ganeti/), and many others. In the past few years I have contributed to over 40 different open source projects, some small and some very large. - -After some changes in direction in the Ubuntu project, I ended up deciding not only that was it time for me to try something new, but that also I wanted to put my contributions into something new. So I started getting involved in Mozilla around 2009, helping out on IRC and then eventually getting involved with the [Mozilla WebFWD program](https://webfwd.org/), becoming a team member, then the [Mozilla Reps Program](https://reps.mozilla.org/), [Mozilla DevRel Program](https://wiki.mozilla.org/Devrel), and then for just over two years was a Firefox Community Release Manager overseeing the release of Firefox Nightly and Firefox ESR. Contributing to Mozilla was an even more rewarding experience than contributions to other open source projects. Of all the open source communities I've been involved in, Mozilla has been the most diverse, largest, and friendliest. - -One thing that has happened over the years in terms of my feelings about open source is I've become more and more aligned to the values of free software and more defensive of things like privacy and respecting licensing and working in the open. I believe all three of those topics are very important to open source, and while many may not care about these things it's important that people advocate for them. - -And here I am today, no longer a full-time contributor to other people's open source projects. Recently being diagnosed with diabetes, I saw a gap in the open source ecosystem where open source health software was not very abundant. Where it did exist, it was not as active as other open source software applications like Linux distros or browsers. - -I recently founded my own open source project, [Glucosio](http://www.glucosio.org/), to bring open source diabetes management and research software to the masses. My years of contributing to open source projects and observing various structures has really come in handy being a project leader now. I'm very excited about the future of Glucosio, but most importantly about the future open source and how that will play out in health and medicine. - -There is a lot of potential for software innovation in healthcare, and I think we will soon see a startup disrupt healthcare and medicine with open source solutions. - ------------------------------------------------------------------------------- - -via: https://opensource.com/life/15/11/my-open-source-story-ben-kerensa - -作者:[opensource.com][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:opensource.com From 6f75af2fabdc9ba1601708501b662c52e5b3841e Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 14:08:28 +0800 Subject: [PATCH 097/582] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=B0translated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...18 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 3 --- 1 file changed, 3 deletions(-) rename translated/{tech => news}/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md (97%) diff --git a/translated/tech/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md similarity index 97% rename from translated/tech/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md rename to translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index fceeccc881..1c07796555 100644 --- a/translated/tech/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -1,6 +1,3 @@ -translatin by Ezio - -Meizu PRO 5 Ubuntu Edition Announced and It's a Beast 魅族 Pr 5 Ubuntu 版即将发布 ======================================================== From 3163de29ac2c0e820ec0233af60b2a1ed611f029 Mon Sep 17 00:00:00 2001 From: Yuking-net Date: Fri, 19 Feb 2016 14:25:16 +0800 Subject: [PATCH 098/582] Update 20160218 Russia Announces Switch to Linux.md --- ...160218 Russia Announces Switch to Linux.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/translated/news/20160218 Russia Announces Switch to Linux.md b/translated/news/20160218 Russia Announces Switch to Linux.md index 04da7f31c1..4e322fadc4 100644 --- a/translated/news/20160218 Russia Announces Switch to Linux.md +++ b/translated/news/20160218 Russia Announces Switch to Linux.md @@ -1,27 +1,27 @@ 本周 Linux 新闻: 俄罗斯宣布政府电脑系统迁移到 Linux ========================================================================= -本周 Linux 新闻, 俄罗斯宣布可能会将系统迁移到 Linux 上, Jack Wallen 思考2016 年对 Linux 桌面系统的重要性, 等等。下面就让我们看看本周 Linux 界都有那些重要新闻。 +本周 Linux 新闻包括:俄罗斯宣布可能会将系统迁移到 Linux 上、Jack Wallen 思考 2016 年对 Linux 桌面系统的重要性,等等。下面就让我们看看本周 Linux 界都有那些重要新闻。 -1. 俄罗斯宣布有可能切换到 Linux , 以此来反击自克里米亚以来西方实施的商业禁运。 +1. 俄罗斯宣布有可能切换到 Linux , 以此来反击西方因克里米亚问题而实施的商业禁运。 - [俄罗斯可能讲成千上万台政府的电脑系统从 Windows 切换成 Linux](http://www.techradar.com/news/world-of-tech/russia-might-switch-thousands-of-government-computers-to-linux-to-spite-microsoft-1314762) - TechRadar + [俄罗斯可能将成千上万台政府的电脑系统从 Windows 切换成 Linux](http://www.techradar.com/news/world-of-tech/russia-might-switch-thousands-of-government-computers-to-linux-to-spite-microsoft-1314762) - TechRadar -2. Jack Wallen 写到:“对于 Linux 来说占有桌面系统市场 1% 或者 99% 并不重要” +2. Jack Wallen 写到:“对于 Linux 来说,占有桌面系统市场 1% 或者 99% 并不重要” [为了 Linux 桌面系统奋斗是否真的很重要?](http://www.techrepublic.com/article/should-the-fight-for-the-linux-desktop-really-matter/) - TechRepublic -3. 自从去年12月以来,参与 Linux 基金会的 HYPERLEDGER 计划的合作伙伴有了显著的增加 +3. 自从去年 12 月以来,参与 Linux 基金会的 HYPERLEDGER 计划的合作伙伴有了显著的增加 - [Linux 基金会的 HYPERLEDGER 计划已经有了30 个合作伙伴](http://www.coindesk.com/linux-foundation-led-hyperledger-project-swells-to-30-members/) - CoinDesk + [Linux 基金会的 HYPERLEDGER 计划已经有了 30 个合作伙伴](http://www.coindesk.com/linux-foundation-led-hyperledger-project-swells-to-30-members/) - CoinDesk -4. Docker 的创始人和 CTO , Solomon Hykes 暗示 Alpine Linux 将会成为公司新的默认操作系统 +4. Docker 的创始人和 CTO , Solomon Hykes 建议将 Alpine Linux 作为公司新的默认操作系统 [Docker 将会抛弃 Ubuntu 吗?](http://www.infoworld.com/article/3031847/open-source-tools/is-docker-ditching-ubuntu-linux-confusion-reigns.html) - InfoWorld -5.Node.js 基金会, 作为Linux 基金会的合作项目, 计划将 Express 引入基金会 +5. Linux 基金会的合作项目 Node.js 基金会计划引入流行的第三方软件包“Express” - [Node.js 基金会计划将社区里最流行的框架软件 Expres 引入基金会进行孵化](http://thenextweb.com/dd/2016/02/10/the-node-js-foundation-plans-to-incubate-one-of-the-communitys-most-popular-packages/)- The Next Web + [Node.js 基金会计划引入社区里最流行的框架软件 Express 进行孵化](http://thenextweb.com/dd/2016/02/10/the-node-js-foundation-plans-to-incubate-one-of-the-communitys-most-popular-packages/)- The Next Web ------------------------------------------------------------------------------ @@ -30,6 +30,6 @@ via: http://www.linux.com/news/software/applications/885174-this-week-in-linux-n 作者:[linux.com][linux.com] 译者:[译者ID](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +校对:[校对者ID](https://github.com/Yuking-net) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 8f9ed3456f44ffbf97894d1e2232c2a0e1345626 Mon Sep 17 00:00:00 2001 From: Yuking-net Date: Fri, 19 Feb 2016 14:26:22 +0800 Subject: [PATCH 099/582] Update 20160218 Russia Announces Switch to Linux.md --- translated/news/20160218 Russia Announces Switch to Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/news/20160218 Russia Announces Switch to Linux.md b/translated/news/20160218 Russia Announces Switch to Linux.md index 4e322fadc4..9aa0ee327a 100644 --- a/translated/news/20160218 Russia Announces Switch to Linux.md +++ b/translated/news/20160218 Russia Announces Switch to Linux.md @@ -29,7 +29,7 @@ via: http://www.linux.com/news/software/applications/885174-this-week-in-linux-news-russia-announces-switch-to-linux-outdated-fight-for-the-linux-desktop-a-more 作者:[linux.com][linux.com] -译者:[译者ID](https://github.com/oska874) -校对:[校对者ID](https://github.com/Yuking-net) +译者:[oska874](https://github.com/oska874) +校对:[Yuking_net](https://github.com/Yuking-net) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 65a7ff39d5bcbd4c11509f008c62dccf519c1b32 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 14:48:26 +0800 Subject: [PATCH 100/582] Rename translated/news/20160218 Russia Announces Switch to Linux.md to published/20160218 Russia Announces Switch to Linux.md --- .../20160218 Russia Announces Switch to Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/news => published}/20160218 Russia Announces Switch to Linux.md (100%) diff --git a/translated/news/20160218 Russia Announces Switch to Linux.md b/published/20160218 Russia Announces Switch to Linux.md similarity index 100% rename from translated/news/20160218 Russia Announces Switch to Linux.md rename to published/20160218 Russia Announces Switch to Linux.md From 099e7daa37819b2cffc6c9c3b9b1279a7ed785f2 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 19 Feb 2016 14:49:18 +0800 Subject: [PATCH 101/582] fix some bug --- ... Ubuntu Edition Announced and It's a Beast.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index 1c07796555..7bc06d74b7 100644 --- a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -1,25 +1,25 @@ -魅族 Pr 5 Ubuntu 版即将发布 +魅族 Pro 5 Ubuntu 版即将发布 ======================================================== **Canonical 和魅族刚刚透露魅族 Pro 5 Ubuntu 版将在2016 世界移动大会召开期间开始预售** -自从上次听到魅族的消息到现在已经很久了,但是看起来 Canonical 和这个中国的硬件厂商之间的合作关系仍然存在。从表面来看,之前的魅族 MX4 Ubuntu 版只是进行了有限的发布,所以只有很少的设备被出售出去了。 +自从上次听到魅族的消息到现在已经很久了,但是看起来 Canonical 和这个中国的硬件厂商之间的合作关系仍然存在。从表面来看,之前魅族的 MX4 Ubuntu 版只是进行了小范围的发布,所以只有很少的设备卖出去了。 -我们可以仅仅希望 魅族 Pro 5 Ubuntu 版可以增加更多的供货量,特别因为他还是一个魅族仍然提供支持的非常新的手机。 +我们仅仅希望 魅族 Pro 5 Ubuntu 版可以提高供货量,特别因为它还是一个魅族仍然提供支持的非常新的手机。 -最新的魅族 Pro 5 是第5个支持 Ubuntu Touch 的官方设备,而且在2016 年我们将会看到更多的手机,以及平板会预装这个操作系统。 +最新的魅族 Pro 5 是第5个支持 Ubuntu Touch 的官方设备,而且在2016 年我们将会看到更多的手机以及平板都会预装这个操作系统。 ## 魅族 Pro 5 Ubuntu 版将会非常震撼 -Canonical 宣称 Pro 5 是目前已发布了的 Ubuntu 智能手机中最强大的, 他们说的是对的, 除了这一点,它还是平板意外最大的。 魅族 Pro 5 拥有一颗 Exynos 7420 8核处理器,5.7 英寸分辨率未1920x1080 的 AMOLED 屏,覆盖第三代大猩猩屏,以及 LPDDR4 内存技术。 +Canonical 宣称 Pro 5 是目前已发布了的 Ubuntu 智能手机中最强大的, 他们说的是对的, 除了这一点,它还是平板以外最大的设备。 魅族 Pro 5 拥有一颗 Exynos 7420 8核处理器,5.7 英寸分辨率为1920x1080 的 AMOLED 屏,覆盖第三代大猩猩屏,以及 LPDDR4 内存技术。 -很多人也许会问这个新手机是否可以汇聚桌面版系统, 而且看起来用户是运气不错。 +很多人也许会问这个新手机的系统是否可以和桌面版系统一样, 现在看起来用户是运气不错。 -公司解释说,“Canonical 一直致力于重塑个人计算的视觉表现,希望为所有的的个人设备提供自适应的平台。因此尽管 Pro 5 缺少 MHL 输出,运行在魅族 Pro 5 上的是最新的代码,同时也是最新发布的支持平板和其它设备系统,它可以提供一种传统桌面的体验。” +公司解释说,“Canonical 一直致力于重塑个人计算的视觉表现,希望为所有的的个人设备提供自适应的平台。因此尽管 Pro 5 缺少 MHL 输出,但运行在魅族 Pro 5 上的是最新的代码,同时也是最新发布的支持平板和其它设备的系统,它可以提供一种接近传统桌面的体验。” 魅族 Pro 5 最初实在2015 年9 月发布的。用户同时会拥有一个2100 万像素的后置摄像头,可以拍摄2160p 和30 fps 的视频。同时它还带有一个指纹传感器和支持快速充电的3050 mAh 的锂电池。 -目前这款手机只在中国和欧洲有售,预定讲从2016 年世界移动大会期间开始,即2 月22 日至25 日。 +目前这款手机只在中国和欧洲有售,预定将从2016 年世界移动大会期间开始,即2 月22 日至25 日。 ![](http://i1-news.softpedia-static.com/images/fitted/620x/meizu-pro-5-ubuntu-edition-announced-and-it-s-a-beast-photos-500526-11.jpg) From a5d070d8fbd46fe82edf4eff9480c0fb7ca250fc Mon Sep 17 00:00:00 2001 From: Markgolzh Date: Fri, 19 Feb 2016 17:58:17 +0800 Subject: [PATCH 102/582] =?UTF-8?q?=F0=9F=91=80=E7=A5=9E=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit zky001翻译中 --- ...0218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md b/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md index e3cc72cd8d..16fc43d0b3 100644 --- a/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md +++ b/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md @@ -1,3 +1,4 @@ +zky001开始翻译 How to Set Nginx as Reverse Proxy on Centos7 CPanel ================================================================================ @@ -198,4 +199,4 @@ via: http://linoxide.com/linux-how-to/set-nginx-reverse-proxy-centos-7-cpanel/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 -[a]:http://linoxide.com/author/saheethas/ \ No newline at end of file +[a]:http://linoxide.com/author/saheethas/ From 8d2861b287ec5319ffc2d395a52ad588ecbb3844 Mon Sep 17 00:00:00 2001 From: martin qi Date: Fri, 19 Feb 2016 21:45:45 +0800 Subject: [PATCH 103/582] Martin --- .../tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md index d90f6bfbce..313bf3b9e5 100644 --- a/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md +++ b/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md @@ -1,3 +1,4 @@ +martin ST Releases Free Linux IDE for 32-Bit MCUs ================================================= From ec638ca480a1796229bd2675a14036335aa3765e Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Fri, 19 Feb 2016 22:55:51 +0800 Subject: [PATCH 104/582] =?UTF-8?q?20160219-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Web server on Ubuntu 15.04 or CentOS 7.md | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md diff --git a/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md b/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md new file mode 100644 index 0000000000..cc0cd57b6d --- /dev/null +++ b/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md @@ -0,0 +1,218 @@ +How to Setup Lighttpd Web server on Ubuntu 15.04 / CentOS 7 +================================================================================ + +Lighttpd is an open source web server which is secure, fast, compliant, and very flexible and is optimized for high-performance environments. It uses very low memory compared to other web servers , small CPU load and speed optimization making it popular among the server for its efficiency and speed. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) makes lighttpd the perfect webserver-software for every server that suffers load problems. + +Here are some simple easy setups on how we can setup Lighttpd web server on our machine running Ubuntu 15.04 or CentOS 7 linux distributions. + +### Installing Lighttpd ### + +#### Installing using Package Manager #### + +Here, we'll install Lighttpd using package manager as its the easiest method to install it. So, we can simply run the following command under sudo mode in a terminal or console to install Lighttpd. + +**CentOS 7** + +As lighttpd is not available in the official repository of CentOS 7, we'll need to install epel additional repository to our system. To do so, we'll need to run the following yum command. + + # yum install epel-release + +Then, we'll gonna update our system and proceed towards the installation of lighttpd. + + # yum update + + # yum install lighttpd + +![Install Lighttpd Centos](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-centos.png) + +**Ubuntu 15.04** + +Lighttpd is available on the official repository of Ubuntu 15.04 so, we'll simply update our local repository index and then go for the installation of lighttpd using apt-get command. + + # apt-get update + + # apt-get install lighttpd + +![Install lighttpd ubuntu](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-ubuntu.png) + +#### Installing from Source #### + +If we wanna install lighttpd from the latest version of source code ie 1.4.39, we'll need to compile the source code and install it into our system. First of all, we'll need to install the dependencies required to compile it. + + # cd /tmp/ + # wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.39.tar.gz + +After its downloaded, we'll need to extract it the tarball by running the following. + + # tar -zxvf lighttpd-1.4.39.tar.gz + +Then, we'll compile it by running the following commands. + + # cd lighttpd-1.4.39 + # ./configure + # make + +**Note:** In this tutorial, we are installing lighttpd with its standard configuration. If you wanna configure beyond the standard configuration and want to install more features like support for SSL, mod_rewrite, mod_redirect then you can configure. + +Once, its compiled, we'll install it in our system. + + # make install + +### Configuring Lighttpd ### + +If we need to configure our lighttpd web server further as our requirements, we can make changes to the default configuration file ie /etc/lighttpd/lighttpd.conf . As wee'll go with the default configuration here in this tutorial, we'll not gonna make changes to it. If we had made any changes and we wanna check for errors in the config file, we'll need to run the following command. + + # lighttpd -t -f /etc/lighttpd/lighttpd.conf + +#### On CentOS 7 #### + +If we are running CentOS 7, we'll need to create a new directory for our webroot defined in our lighttpd's default configuration ie /src/www/htdocs/ . + + # mkdir -p /srv/www/htdocs/ + +Then, we'll copy the default welcome page from /var/www/lighttpd/ directory to the above created directory. + + # cp -r /var/www/lighttpd/* /srv/www/htdocs/ + +### Starting and Enabling Services ### + +Now, we'll gonna restart our database server by executing the following systemctl command. + + # systemctl start lighttpd + +Then, we'll enable it to start automatically in every system boot. + + # systemctl enable lighttpd + +### Allowing Firewall ### + +To allow our webpages or websites running lighttpd web server on the internet or inside the same network, we'll need to allow port 80 from the firewall program. As both CentOS 7 and Ubuntu 15.04 are shipped with systemd as the default init system, we will have firewalld installed as a firewall solution. To allow port 80 or http service, we'll need to run the following commands. + + # firewall-cmd --permanent --add-service=http + + success + + # firewall-cmd --reload + + success + +### Accessing Web Server ### + +As we have allowed port 80 which is the default port of lighttpd, we should be able to access lighttpd's welcome page by default. To do so, we'll need to point our browser to the ip address or domain of our machine running lighttpd according to our configuration. In this tutorial, we'll point our browser to http://lighttpd.linoxide.com/ as we have pointed our sub-domain to its ip address. On doing so, we'll see the following welcome page in our browser. + +![Lighttpd Welcome Page](http://blog.linoxide.com/wp-content/uploads/2016/02/lighttpd-welcome-page.png) + +Further, we can add our website's files to the webroot directory and remove the default lighttpd's index file to make our static website live to the internet. + +If we want to run our PHP application in our lighttpd webserver, we'll need to follow the following steps. + +### Installing PHP5 Modules ### + +Once our lighttpd is installed successfully, we'll need to install PHP and some PHP modules to run PHP5 scripts in our lighttpd web server. + +#### On Ubuntu 15.04 #### + + # apt-get install php5 php5-cgi php5-fpm php5-mysql php5-curl php5-gd php5-intl php5-imagick php5-mcrypt php5-memcache php-pear + +#### On CentOS 7 #### + + # yum install php php-cgi php-fpm php-mysql php-curl php-gd php-intl php-pecl-imagick php-mcrypt php-memcache php-pear lighttpd-fastcgi + +### Configuring Lighttpd with PHP ### + +To make PHP work with lighttpd web server, we'll need to follow the following methods respect to the distribution we are running. + +#### On CentOS 7 #### + +First of all, we'll need to edit our php configuration ie /etc/php.ini and uncomment a line **cgi.fix_pathinfo=1** using a text editor. + + # nano /etc/php.ini + +After its done, we'll need to change the ownership of PHP-FPM process from apache to lighttpd. To do so, we'll need to open the configuration file /etc/php-fpm.d/www.conf using a text editor. + + # nano /etc/php-fpm.d/www.conf + +Then, we'll append the file with the following configurations. + + user = lighttpd + group = lighttpd + +Once done, we'll need to save the file and exit the text editor. Then, we'll need to include fastcgi module from /etc/lighttpd/modules.conf configuration file. + + # nano /etc/lighttpd/modules.conf + +Then, we'll need to uncomment the following line by removing # from it. + + include "conf.d/fastcgi.conf" + +At last, we'll need to configure our fastcgi configuration file using our favorite text editor. + + # nano /etc/lighttpd/conf.d/fastcgi.conf + +Then, we'll need to add the following lines at the end of the file. + + fastcgi.server += ( ".php" => + (( + "host" => "127.0.0.1", + "port" => "9000", + "broken-scriptfilename" => "enable" + )) + ) + +After its done, we'll save the file and exit the text editor. + +#### On Ubuntu 15.04 #### + +To enable fastcgi with lighttpd web server, we'll simply need to execute the following commands. + + # lighttpd-enable-mod fastcgi + + Enabling fastcgi: ok + Run /etc/init.d/lighttpd force-reload to enable changes + + # lighttpd-enable-mod fastcgi-php + + Enabling fastcgi-php: ok + Run /etc/init.d/lighttpd force-reload to enable changes + +Then, we'll reload our lighttpd by running the following command. + + # systemctl force-reload lighttpd + +### Testing if PHP is working ### + +In order to see if PHP is working as expected or not, we'll need to create a new php file under the webroot of our lighttpd web server. Here, in this tutorial we have /var/www/html in Ubuntu and /srv/www/htdocs in CentOS as the default webroot so, we'll create a info.php file under it using a text editor. + +**On CentOS 7** + + # nano /var/www/info.php + +**On Ubuntu 15.04** + + # nano /srv/www/htdocs/info.php + +Then, we'll simply add the following line into the file. + + + +Once done, we'll simply save the file and exit from the text editor. + +Now, we'll point our web browser to our machine running lighttpd using its ip address or domain name with the info.php file path as http://lighttpd.linoxide.com/info.php If everything was done as described above, we will see our PHP information page as shown below. + +![phpinfo lighttpd](http://blog.linoxide.com/wp-content/uploads/2016/02/phpinfo-lighttpd.png) + +### Conclusion ### + +Finally we have successfully installed the world's lightweight, fast and secure web server Lighttpd in our machine running CentOS 7 and Ubuntu 15.04 linux distributions. Once its ready, we can upload our website files into our web root, configure virtual host, enable ssl, connect database, run web apps and much more with our lighttpd web server. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! Enjoy :-) + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/setup-lighttpd-web-server-ubuntu-15-04-centos-7/ + +作者:[Arun Pyasi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/arunp/ \ No newline at end of file From a5b318d5abae4250d3b3cd672d142354110e25dd Mon Sep 17 00:00:00 2001 From: miaolin Date: Fri, 19 Feb 2016 23:27:21 +0800 Subject: [PATCH 105/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20160218 Getting to Know Linux File Permissions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 Getting to Know Linux File Permissions.md b/sources/tech/20160218 Getting to Know Linux File Permissions.md index 03f6d5018e..816f499e36 100644 --- a/sources/tech/20160218 Getting to Know Linux File Permissions.md +++ b/sources/tech/20160218 Getting to Know Linux File Permissions.md @@ -1,3 +1,4 @@ +ynmlml translating Getting to Know Linux File Permissions ========================================== From f70590d3730ff9a47e50699e1363b840bde45e2c Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 00:13:45 +0800 Subject: [PATCH 106/582] =?UTF-8?q?20160219-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit felixonmars --- ... Web server on Ubuntu 15.04 or CentOS 7.md | 73 +++++++++---------- 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md b/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md index cc0cd57b6d..f84e9e1e46 100644 --- a/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md +++ b/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md @@ -1,41 +1,39 @@ How to Setup Lighttpd Web server on Ubuntu 15.04 / CentOS 7 -================================================================================ +================================================================================= Lighttpd is an open source web server which is secure, fast, compliant, and very flexible and is optimized for high-performance environments. It uses very low memory compared to other web servers , small CPU load and speed optimization making it popular among the server for its efficiency and speed. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) makes lighttpd the perfect webserver-software for every server that suffers load problems. Here are some simple easy setups on how we can setup Lighttpd web server on our machine running Ubuntu 15.04 or CentOS 7 linux distributions. -### Installing Lighttpd ### +### Installing Lighttpd -#### Installing using Package Manager #### +#### Installing using Package Manager -Here, we'll install Lighttpd using package manager as its the easiest method to install it. So, we can simply run the following command under sudo mode in a terminal or console to install Lighttpd. +Here, we'll install Lighttpd using package manager as its the easiest method to install it. So, we can simply run the following command under `sudo` mode in a terminal or console to install Lighttpd. **CentOS 7** -As lighttpd is not available in the official repository of CentOS 7, we'll need to install epel additional repository to our system. To do so, we'll need to run the following yum command. +As lighttpd is not available in the official repository of CentOS 7, we'll need to install epel additional repository to our system. To do so, we'll need to run the following `yum` command. # yum install epel-release Then, we'll gonna update our system and proceed towards the installation of lighttpd. # yum update - # yum install lighttpd ![Install Lighttpd Centos](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-centos.png) **Ubuntu 15.04** -Lighttpd is available on the official repository of Ubuntu 15.04 so, we'll simply update our local repository index and then go for the installation of lighttpd using apt-get command. +Lighttpd is available on the official repository of Ubuntu 15.04 so, we'll simply update our local repository index and then go for the installation of lighttpd using `apt-get` command. # apt-get update - # apt-get install lighttpd ![Install lighttpd ubuntu](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-ubuntu.png) -#### Installing from Source #### +#### Installing from Source If we wanna install lighttpd from the latest version of source code ie 1.4.39, we'll need to compile the source code and install it into our system. First of all, we'll need to install the dependencies required to compile it. @@ -52,31 +50,31 @@ Then, we'll compile it by running the following commands. # ./configure # make -**Note:** In this tutorial, we are installing lighttpd with its standard configuration. If you wanna configure beyond the standard configuration and want to install more features like support for SSL, mod_rewrite, mod_redirect then you can configure. +**Note:** In this tutorial, we are installing lighttpd with its standard configuration. If you wanna configure beyond the standard configuration and want to install more features like support for SSL, `mod_rewrite`, `mod_redirect` then you can configure. Once, its compiled, we'll install it in our system. # make install -### Configuring Lighttpd ### +### Configuring Lighttpd -If we need to configure our lighttpd web server further as our requirements, we can make changes to the default configuration file ie /etc/lighttpd/lighttpd.conf . As wee'll go with the default configuration here in this tutorial, we'll not gonna make changes to it. If we had made any changes and we wanna check for errors in the config file, we'll need to run the following command. +If we need to configure our lighttpd web server further as our requirements, we can make changes to the default configuration file ie `/etc/lighttpd/lighttpd.conf` . As wee'll go with the default configuration here in this tutorial, we'll not gonna make changes to it. If we had made any changes and we wanna check for errors in the config file, we'll need to run the following command. # lighttpd -t -f /etc/lighttpd/lighttpd.conf -#### On CentOS 7 #### +#### On CentOS 7 -If we are running CentOS 7, we'll need to create a new directory for our webroot defined in our lighttpd's default configuration ie /src/www/htdocs/ . +If we are running CentOS 7, we'll need to create a new directory for our webroot defined in our lighttpd's default configuration ie `/src/www/htdocs/` . # mkdir -p /srv/www/htdocs/ -Then, we'll copy the default welcome page from /var/www/lighttpd/ directory to the above created directory. +Then, we'll copy the default welcome page from `/var/www/lighttpd/` directory to the above created directory. # cp -r /var/www/lighttpd/* /srv/www/htdocs/ -### Starting and Enabling Services ### +### Starting and Enabling Services -Now, we'll gonna restart our database server by executing the following systemctl command. +Now, we'll gonna restart our database server by executing the following `systemctl` command. # systemctl start lighttpd @@ -84,21 +82,18 @@ Then, we'll enable it to start automatically in every system boot. # systemctl enable lighttpd -### Allowing Firewall ### +### Allowing Firewall To allow our webpages or websites running lighttpd web server on the internet or inside the same network, we'll need to allow port 80 from the firewall program. As both CentOS 7 and Ubuntu 15.04 are shipped with systemd as the default init system, we will have firewalld installed as a firewall solution. To allow port 80 or http service, we'll need to run the following commands. # firewall-cmd --permanent --add-service=http - success - # firewall-cmd --reload - success -### Accessing Web Server ### +### Accessing Web Server -As we have allowed port 80 which is the default port of lighttpd, we should be able to access lighttpd's welcome page by default. To do so, we'll need to point our browser to the ip address or domain of our machine running lighttpd according to our configuration. In this tutorial, we'll point our browser to http://lighttpd.linoxide.com/ as we have pointed our sub-domain to its ip address. On doing so, we'll see the following welcome page in our browser. +As we have allowed port 80 which is the default port of lighttpd, we should be able to access lighttpd's welcome page by default. To do so, we'll need to point our browser to the ip address or domain of our machine running lighttpd according to our configuration. In this tutorial, we'll point our browser to [http://lighttpd.linoxide.com/](http://lighttpd.linoxide.com/) as we have pointed our sub-domain to its ip address. On doing so, we'll see the following welcome page in our browser. ![Lighttpd Welcome Page](http://blog.linoxide.com/wp-content/uploads/2016/02/lighttpd-welcome-page.png) @@ -106,29 +101,29 @@ Further, we can add our website's files to the webroot directory and remove the If we want to run our PHP application in our lighttpd webserver, we'll need to follow the following steps. -### Installing PHP5 Modules ### +### Installing PHP5 Modules Once our lighttpd is installed successfully, we'll need to install PHP and some PHP modules to run PHP5 scripts in our lighttpd web server. -#### On Ubuntu 15.04 #### +#### On Ubuntu 15.04 # apt-get install php5 php5-cgi php5-fpm php5-mysql php5-curl php5-gd php5-intl php5-imagick php5-mcrypt php5-memcache php-pear -#### On CentOS 7 #### +#### On CentOS 7 # yum install php php-cgi php-fpm php-mysql php-curl php-gd php-intl php-pecl-imagick php-mcrypt php-memcache php-pear lighttpd-fastcgi -### Configuring Lighttpd with PHP ### +### Configuring Lighttpd with PHP To make PHP work with lighttpd web server, we'll need to follow the following methods respect to the distribution we are running. -#### On CentOS 7 #### +#### On CentOS 7 -First of all, we'll need to edit our php configuration ie /etc/php.ini and uncomment a line **cgi.fix_pathinfo=1** using a text editor. +First of all, we'll need to edit our php configuration ie `/etc/php.ini` and uncomment a line **cgi.fix_pathinfo=1** using a text editor. # nano /etc/php.ini -After its done, we'll need to change the ownership of PHP-FPM process from apache to lighttpd. To do so, we'll need to open the configuration file /etc/php-fpm.d/www.conf using a text editor. +After its done, we'll need to change the ownership of PHP-FPM process from apache to lighttpd. To do so, we'll need to open the configuration file `/etc/php-fpm.d/www.conf` using a text editor. # nano /etc/php-fpm.d/www.conf @@ -137,11 +132,11 @@ Then, we'll append the file with the following configurations. user = lighttpd group = lighttpd -Once done, we'll need to save the file and exit the text editor. Then, we'll need to include fastcgi module from /etc/lighttpd/modules.conf configuration file. +Once done, we'll need to save the file and exit the text editor. Then, we'll need to include fastcgi module from `/etc/lighttpd/modules.conf` configuration file. # nano /etc/lighttpd/modules.conf -Then, we'll need to uncomment the following line by removing # from it. +Then, we'll need to uncomment the following line by removing `#` from it. include "conf.d/fastcgi.conf" @@ -161,7 +156,7 @@ Then, we'll need to add the following lines at the end of the file. After its done, we'll save the file and exit the text editor. -#### On Ubuntu 15.04 #### +#### On Ubuntu 15.04 To enable fastcgi with lighttpd web server, we'll simply need to execute the following commands. @@ -173,15 +168,15 @@ To enable fastcgi with lighttpd web server, we'll simply need to execute the fol # lighttpd-enable-mod fastcgi-php Enabling fastcgi-php: ok - Run /etc/init.d/lighttpd force-reload to enable changes + Run `/etc/init.d/lighttpd` force-reload to enable changes Then, we'll reload our lighttpd by running the following command. # systemctl force-reload lighttpd -### Testing if PHP is working ### +### Testing if PHP is working -In order to see if PHP is working as expected or not, we'll need to create a new php file under the webroot of our lighttpd web server. Here, in this tutorial we have /var/www/html in Ubuntu and /srv/www/htdocs in CentOS as the default webroot so, we'll create a info.php file under it using a text editor. +In order to see if PHP is working as expected or not, we'll need to create a new php file under the webroot of our lighttpd web server. Here, in this tutorial we have `/var/www/html` in Ubuntu and `/srv/www/htdocs` in CentOS as the default webroot so, we'll create a info.php file under it using a text editor. **On CentOS 7** @@ -197,11 +192,11 @@ Then, we'll simply add the following line into the file. Once done, we'll simply save the file and exit from the text editor. -Now, we'll point our web browser to our machine running lighttpd using its ip address or domain name with the info.php file path as http://lighttpd.linoxide.com/info.php If everything was done as described above, we will see our PHP information page as shown below. +Now, we'll point our web browser to our machine running lighttpd using its ip address or domain name with the info.php file path as [http://lighttpd.linoxide.com/info.php](http://lighttpd.linoxide.com/info.php) If everything was done as described above, we will see our PHP information page as shown below. ![phpinfo lighttpd](http://blog.linoxide.com/wp-content/uploads/2016/02/phpinfo-lighttpd.png) -### Conclusion ### +### Conclusion Finally we have successfully installed the world's lightweight, fast and secure web server Lighttpd in our machine running CentOS 7 and Ubuntu 15.04 linux distributions. Once its ready, we can upload our website files into our web root, configure virtual host, enable ssl, connect database, run web apps and much more with our lighttpd web server. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! Enjoy :-) @@ -215,4 +210,4 @@ via: http://linoxide.com/linux-how-to/setup-lighttpd-web-server-ubuntu-15-04-cen 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 -[a]:http://linoxide.com/author/arunp/ \ No newline at end of file +[a]:http://linoxide.com/author/arunp/ From 7ae9656b9847563a7850e50bd8267bdb0a430864 Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sat, 20 Feb 2016 10:43:24 +0800 Subject: [PATCH 107/582] Translating sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md --- sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md index d370b87822..f6a568a55f 100644 --- a/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md +++ b/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md @@ -1,3 +1,4 @@ +ictlyh Translating Review EXT4 vs. Btrfs vs. XFS ================================================================================ ![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/09/1385698302_funny_linux_wallpapers-593x445.jpg) From b28157e72b1ab231d13c546ae74c7af67e5e7dff Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 15:33:44 +0800 Subject: [PATCH 108/582] =?UTF-8?q?20160220-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Linux Is Coming To ARM With Manjaro-ARM.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md diff --git a/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md b/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md new file mode 100644 index 0000000000..0d503b3010 --- /dev/null +++ b/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md @@ -0,0 +1,31 @@ +Manjaro Linux Is Coming To ARM With Manjaro-ARM +=================================================== + +![](http://itsfoss.com/wp-content/uploads/2016/02/manjaro-arm.jpg) + +Recently, the developers of Manjaro have announced the release of an [alpha build for ARM devices](https://manjaro.github.io/Manjaro-ARM-launched/). This is a big step for the Arch-based distro, which up until this point only ran on 32 and 64-bit PCs. + +According to the announcement, “[Manjaro Arm](http://manjaro-arm.org/) is a project aimed to bring you the simplicity and customability that is Manjaro to [ARM devices](https://www.arm.com/). These devices are growing in numbers and can be used for any number of applications. Most famous is the Raspberry Pi series and BeagleBoard series.” The alpha build only supports the Raspberry Pi 2, but that will undoubtedly grow with time. + +The developers currently include dodgejcr, Torei, Strit, and Ringo32. They are looking for more people to help the project grow and develop. Besides developers, [they are looking for maintainers, moderators and admins, and artists](http://manjaro-arm.org/forums/website/looking-for-contributors/?PHPSESSID=876d5c11400e9c25eb727e9965300a9a). + +Manjaro-ARM will be available in four different versions. The Media Edition will allow you to create a media center with very little configuration and will run Kodi. The Server Edition will come with SSH, FTP, and a LAMP server preconfigured so you can use your ARM device as a file or web server. The Base Edition acts as the desktop edition, with an XFCE desktop. If you want to build you own system from scratch, the Minimal Edition is your choice. It will come with no preloaded packages or desktop, only have a root user. + +## Final Thoughts + +As a fan of Manjaro (I have it installed on 4 computers), I’m glad to hear that they are branching out into the ARM world. ARM is being used in more and more devices. According to technology commentator Robert Cringely, [device makers are starting to look at cheap ARM chips over more expensive Intel or AMD chips](http://www.cringely.com/2016/01/21/prediction-8-intel-starts-to-become-irrelevent/). Even Microsoft (please don’t strike me down) is thinking of porting some of its software to ARM. As the use of ARM powered devices increase, Manjaro will be ready to give those users a great Linux experience. + +What do you think? Do you wish that more Linux distros would create ARM ports? Or do you think that ARM is a passing fad? Tell us below. + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/manjaro-linux-arm/ + +作者:[JOHN PAUL][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/john/ + From 90ff0166a2934cd468c1335969b5fba893e8fbe9 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 15:38:47 +0800 Subject: [PATCH 109/582] =?UTF-8?q?20160220-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ser For Each Incorrect Password Attempt.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md diff --git a/sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md b/sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md new file mode 100644 index 0000000000..cf2146e73e --- /dev/null +++ b/sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md @@ -0,0 +1,57 @@ +Make Sudo Insult User For Each Incorrect Password Attempt +=========================================================== + +You can have lots of fun in Linux terminal. And I am not talking about those funny commands to [run a train in Linux terminal](http://itsfoss.com/ubuntu-terminal-train/). + +I am talking about little tweaks in the terminal that will lighten up your mood. In a previous article, you learnt [how to increase sudo timeout in Linux terminal](http://itsfoss.com/change-sudo-password-timeout-ubuntu/). In today’s fun post, I’ll show you how you can make sudo to insult you (or other users) when incorrect password is attempted with sudo command. + +Confused what I am talking about? Here, take a look at this gif to get a gist of how sudo can insult you for typing in the incorrect password. + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux.gif) + +Now, why would you do that and take insults? After all, insults are not going to brighten up your day, is it? + +To me, this little tweak is funny and is better than the plain old “incorrect password” error message. Moreover, I can show it off to my friends (in this case you, via It’s FOSS) to amuse them. I am pretty sure you can come up with your own reason to use this tweak. + +## Enable insults in sudo + +You can enable insults in `sudo` by adding the following line in `sudo` configuration: + +``` +Defaults insults +``` + +Let’s see how to do that. Open a terminal and use the following command: + +``` +sudo visudo +``` + +This should open the configuration file in [nano](http://www.nano-editor.org/). Yeah, I know that traditionally ‘visudo’ should open the `/etc/sudoers` file in Vi editor, but Ubuntu and Ubuntu based Linux distribution will open it in nano. Since we are talking about Vi, here is a [cheat sheet for Vi editor](http://itsfoss.com/download-vi-cheat-sheet/) that could come handy if you decide to use Vi. + +Coming back to editing the sudeors file, you need to find the section where Defaults are listed. Luckily, it is in the beginning itself. Just add “Defaults insults” line to it, like this: + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint.png) + +If you are using nano, use `Ctrl+X` to quit the editor. At the time of quitting, it will ask you if you want to save the changes or not. To save the changes, press `Y`. + +Once you have saved the changes in sudoers file, open a terminal and use any command with sudo. Deliberately type wrong password and enjoy the abuses :) + +sudo could be nasty. See, it even threatens me of consequences if I type incorrect password again. LOL. + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint-1.jpeg) + +If you like this terminal hack, check out other [terminal tricks](http://itsfoss.com/category/terminal-tricks/) posts as well. If you have other such fun tweaks and hacks, do share it in the comment box below. + + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/sudo-insult-linux/ + +作者:[ABHISHEK][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ From 1a7507fa03a84027493dab943d275f5f037f7868 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 15:58:20 +0800 Subject: [PATCH 110/582] =?UTF-8?q?20160220-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...loud Services For Linux To Replace Copy.md | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md diff --git a/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md b/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md new file mode 100644 index 0000000000..cd2ffee237 --- /dev/null +++ b/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md @@ -0,0 +1,135 @@ +Best Cloud Services For Linux To Replace Copy +=============================================== + +![](http://itsfoss.com/wp-content/uploads/2016/02/Linux-cloud-services.jpg) + +Cloud storage service Copy is shutting down and it is time for us Linux users to look for a worthy **cloud storage alternative to Copy for Linux**. + +All files will be deleted on May 1st, 2016. If you are a Copy user, you should save your files and move it to other + +Copy has been my favorite cloud storage for past couple of years. It gave me plenty of free storage and came with native apps for desktop platforms including Linux and mobile platforms as iOS and Android. + +It was a perfect Cloud storage for me where I get plenty of free storage (380 GB) with a seamless experience between desktop and mobile OSes. But this ‘easy free storage’, 15GB for signup and 5Gb for each referral, had me thinking that if Copy doesn’t get business customers, they will be running out of business soon. Such huge free storage only meant that they were not targeting individual customers like Dropbox do. + +My fear came true when I read about the shutting down of Copy.com. In fact, Copy is not alone. Its parent company [Barracuda Networks](https://www.barracuda.com/) is going through a rough patch and has [hired Morgan Stanely to look for suitable buyer](http://www.bloomberg.com/news/articles/2016-02-01/barracuda-networks-said-to-work-with-morgan-stanley-to-seek-sale)(s). + +Whatever be the reason, all we know is that Copy will soon be history and we need to find similarly **good cloud services for Linux**. I am putting emphasis on Linux because other popular cloud storage services like [Microsoft’s OneDrive](https://onedrive.live.com/about/en-us/) and [Google Drive](https://www.google.com/drive/) do not provide native Linux client. This is something expected out of Microsoft but [Google’s apathy towards Linux](http://itsfoss.com/google-hates-desktop-linux/) is shocking. + +## Best Copy alternatives for Linux + +Now, what do you want in a cloud storage services as a Linux storage? Let me guess: + +- Lots of free storage. After all, individuals cannot pay hefty amounts every month. +- Native Linux client. So that you can synchronize files easily with the server without doing special tweaking or running scripts at regular intervals. +- Desktop clients for other desktop OSes i.e. Windows and OS X. Portability is a necessity and syncing files between devices is such a good relief. +- Mobile apps for Android and iOS. In today’s modern world, you need to be connected across all the devices. + +I am not counting the self-hosted cloud services like OwnCloud or [Seafile](https://www.seafile.com/en/home/) because they require set-up and run a server. This is not apt for all home users who want a Copy like cloud service. + +Let’s see what are the services that you could use to replace Copy.com on Linux. + +## Mega + +![](http://itsfoss.com/wp-content/uploads/2016/02/Mega-Linux.jpg) + +If you are a regular It’s FOSS reader, you might have come across my earlier article about [Mega on Linux](http://itsfoss.com/install-mega-cloud-storage-linux/). This cloud service is an offering by the infamous [Kim Dotcom](https://en.wikipedia.org/wiki/Kim_Dotcom) of [Megaupload scandal](https://en.wikipedia.org/wiki/Megaupload). This also makes some users skeptical about it because Kim Dotcom has been a target by US authorities for a long time. + +Mega has everything that you would expect in a hassle free cloud service. It provides 50 GB of free storage to individual users. Provide native clients for Linux and other platforms and also has end to end encryption. The native Linux client works fine and the sync across the device is seamless. You can also view and access your files in a web browser. + +### Pros: + +- 50 GB of free storage +- End to end encryption +- Native clients for Linux and other platforms such as Windows, Mac OS X, Android, iOS + +### Cons: + +- Shady past of the owner + +[Mega](https://mega.nz/) + +## Hubic + +![](http://itsfoss.com/wp-content/uploads/2016/02/hubic.jpeg) + +Hubic is a cloud service from French company [OVH](https://www.ovh.com/fr/). Hubic also offers 25 GB of free cloud storage at sign up. You can further extend it to 50GB (for free users) by referring it to friends. + +Hubic has a Linux client which is in beta (for over two years now). Hubic has an official Linux client but it is limited to command line. I did not go on to test the mobile versions. + +Hubic boasts of some nice features though. Apart from simple to use interface, file sharing etc, it has a Backup feature where you can archive your important files regularly. + +### Pros: + +- 25 GB of free storage, extendable up to 50 GB +- Available on multiple platforms +- Backup feature + +### Cons: + +- Linux client in beta, only available in command line + +[Hubic](https://hubic.com/) + +## pCloud + +![](http://itsfoss.com/wp-content/uploads/2016/02/pCloud-Linux.jpeg) + +pCloud is another European offering but this time across the French border, from Switzerland. Focused on encryption and security, pCloud offers 10 GB of free storage for each signup. You can further increase it up to 20 GB by inviting friends, sharing links on social media etc. + +It has all the standard features of a cloud service such as file sharing and synchronization, selective syncing etc. pCloud also has native clients across platforms, including Linux of course. + +Linux client is easy to use and worked well in my limited testing on Linux Mint 17.3. + +### Pros: + +- 10 GB of free storage, extendable up to 20 GB +- A good working Linux client with GUI + +### Cons: + +- Encryption is a premium feature + +[pCloud](https://www.pcloud.com/) + +## Yandex Disk + +![](http://itsfoss.com/wp-content/uploads/2016/02/Yandex.jpg) + +Russian internet giant Yandex has everything that Google has. A search engine, analytics and webmaster tool, email, web browser and cloud storage service. + +Yandex Disk offers 10 GB of free cloud storage on sign up. It has native clients for multiple platforms, including Linux. However, the official Linux client is only command line. You can get [unofficial GUI client for Yandex disk](https://mintguide.org/tools/265-yd-tools-gui-indicator-for-yandexdisk-free-cloud-storage-in-linux-mint.html) though. File sharing via links is available as along with other standard cloud storage feature. + +### Pros: + +- 10 GB of free storage, extendable up to 20 GB via referrals. + +### Cons: + +- Only command line client available + +[Yandex Disk](https://disk.yandex.com/) + +## Honorable and deliberate omissions + +I have deliberately skipped [Dropbox](https://www.dropbox.com/), [SpiderOak](https://spideroak.com/) from the list. Dropbox is excellent for Linux but the free storage is limited to 2 GB. Over the past several years, I have managed to increase it to over 21 GB, but that’s another story. + +SpiderOak also provides only 2 GB of free storage and you cannot access it in a web browser. + +OwnCloud needs its own server and set-up and thus it is not everyone’s cup of tea. And it certainly doesn’t fit the criteria of a typical cloud service. + +## Verdict + +If you ask me what I am going to use in place of Copy, my answer is Mega. It has plenty of free cloud storage and a great Linux desktop client. What is your choice among this list of **best cloud storage services for Linux**? Which one do you prefer? + + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/cloud-services-linux/ + +作者:[ABHISHEK][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ From 6ff062bb00db4edb580a3183c487d2ae12d2a9b0 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 16:04:28 +0800 Subject: [PATCH 111/582] =?UTF-8?q?20160220-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e Becomes Real With First Ubuntu Tablet.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md diff --git a/sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md b/sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md new file mode 100644 index 0000000000..a7beb58156 --- /dev/null +++ b/sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md @@ -0,0 +1,73 @@ +Convergence Becomes Real With First Ubuntu Tablet +==================================================== + +![](http://itsfoss.com/wp-content/uploads/2016/02/front-landscape-1-e1454624669422.jpg) + +First Ubuntu tablet has been just announced. Canonical, parent company of Ubuntu, and Spanish hardware manufacturer BQ are all set to unveil the first Ubuntu tablet at Mobile World Congress, later this month. + +BQ is also the manufacturer of the [first Ubuntu Phone](http://itsfoss.com/ubuntu-phone-specification-release-date-pricing/). The partnership between Canonical and BQ extends to the tablet as well. + +Ubuntu has been running the [#reinvent campaign on social media](https://business.facebook.com/media/set/?set=a.656637987810305.1073741827.115098615297581&type=3) and the web ahead of the launch to generate curiosity over the tablet. But does an Ubuntu fan really need a dedicated campaign to know about such things? I think not. + +Ahead of this launch, specifications of the Ubuntu tablet and some teasers have been released. No surprises that the main focus has been on [convergence](https://insights.ubuntu.com/2015/10/20/ubuntus-path-to-convergence/). + +[Ubuntu Phone has demonstrated convergence](http://www.omgubuntu.co.uk/2015/02/new-video-shows-off-ubuntu-convergence-demoed-on-tablet-phone) several times in the past. Ubuntu tablet takes it to the next level. Just adding an HDMI cable makes it to a full-fledged desktop. All you need is a keyboard and a mouse. + +![](http://itsfoss.com/wp-content/uploads/2016/02/convergence-ubuntu-e1454624459103.jpg) + +## BQ Ubuntu tablet specification + +BQ will be using its trusted [Aquaris M10](http://www.bq.com/es/aquaris-m10) series to launch an Ubuntu edition. This is a strategy they used earlier with Ubuntu Phone where they launched an Ubuntu edition of their Aquaris e4.5 Android smartphone. + +Aquaris M10 boasts of a decent hardware and an enormous 10 inches screen size. A quick list of specification includes: + +- 10.1 inch multi-touch screen +- MediaTek Quad Core MT8163A processor up to 1.5GHz +- High capacity Li-Po battery (7280mAh) +- Full HD (1080p) camera for super-sharp video recording +- 2GB RAM and 16GB internal memory +- MicroSD slot for extra storage (up to 64GB) +- 12 megapixel camera with autofocus and dual flash +- Frontal speakers +- Micro HDMI slot +- Dimensions: 246 x 171 x 8.2mm +- Lightweight at only 470g + +These proposed specifications have been taken from Ubuntu’s official website which doesn’t match up with the Aquaris M10 specification on BQ website though. Ubuntu website shows a 12 MP camera while BQ website has 8 MP max. + +As you can see, first Ubuntu tablet is not really a power horse. In 2016, 2GB of RAM doesn’t seem to be sufficient. Moreover, the closed source MediaTek processors are another let down of the first Ubuntu Phone. + +However, a supposed price tag of Euro 260 (the Android version costs the same) is a positive factor here and considering its capability to converge into a desktop, 10 inches screen keeps it in the entry level Netbook section. + +The 470 g weight is another plus factor. + +## First look at Ubuntu tablet + +While Ubuntu tablet will be officially unveiled at Mobile World Congress, you can have a glimpse of its looks and functionings in the pictures below: + +![](http://itsfoss.com/wp-content/uploads/2016/02/tablet-overview-hero-300x182.png) + +## Price, availability and release date + +BQ Aquaris M10 Ubuntu edition will go on sale in the second quarter of the year 2016. Guessing from Ubuntu Phone experience, it should be available for Europe and UK first and later in other parts of the world. + +The price should be around 260-270 Euro. This too is an estimate based on the price of the Android version. + +## Up for the grab? + +I was not very convinced at the first Ubuntu Phone. However, I think Ubuntu tablet is a better device than the Ubuntu Phone. With Snappy coming in action, Ubuntu tablet has the potential to become a mobile device cum desktop. + +What do you think of it? + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/ubuntu-tablet/ + +作者:[ABHISHEK][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ + From 435cab7d902cc27d73763e4152589f691fef4026 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 16:13:48 +0800 Subject: [PATCH 112/582] =?UTF-8?q?20160220-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er Kubuntu Head Unveils New KDE Project.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md diff --git a/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md b/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md new file mode 100644 index 0000000000..dc3b2a1a76 --- /dev/null +++ b/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md @@ -0,0 +1,35 @@ +Former Kubuntu Head Unveils New KDE Project +============================================== + +The name Jonathan Riddell should ring a bell if you read Linux and [open source news](http://itsfoss.com/category/news/). He was the creator and longtime lead developer of the [Kubuntu](http://www.kubuntu.org/) distribution. He was [forced out of his position by Ubuntu boss Mark Shuttleworth](http://www.cio.com/article/2926838/linux/mark-shuttleworth-ubuntu-community-council-ask-kubuntu-developer-to-step-down-as-leader.html) last year because he dared to ask what happened to the funds Canonical had raised for Kubuntu. (To the best of my knowledge, Canonical never really answered to his questions about finances.) + +![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448724263.png) + +## KDE neon logo + +On Saturday, Riddell [announced](https://dot.kde.org/2016/01/30/fosdem-announcing-kde-neon) a new project: [KDE neon](http://neon.kde.org.uk/). According to Riddell’s announcement “Neon will provide a way to get the latest KDE software on the day it’s released.” + +After reading both the announcement and looking at the brief site, **it appears that neon is a mainly a “rapidly updated software repository” that allows KDE fans to be on the bleeding edge**. Instead of waiting for months for distro developers to release the updated KDE on their repos, you’ll be able to get it hot off the presses. + +KDE did state in the [noen FAQ](http://neon.kde.org.uk/faq) that this is not a KDE created distro. In fact, they say “KDE believes it is important to work with many distributions, as each brings unique value and expertise for their respective users. This is one project out of hundreds from KDE.” + +![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448830870.jpg) + +However, the way the site and the announcement refer to the fact that neon runs on Ubuntu 15.10 (until the next LTS version is available) and that there will soon be images makes me wonder. KDE could be saying this to keep Canonical from seeing this project as a competitor to Kubuntu. If they that there is a demand for KDE neon, they could spin it off as a full distro. Both the announcement and site state that this is a KDE Incubator project, so the future could hold anything for this project. + +[KDE neon](http://neon.kde.org.uk/) + +Does neon sound like it would be useful for you or are you happy with your current distro’s KDE release rate? Do you think there is room for another KDE distro (if KDE decides to head in that direction)? Let me know in the comment section below. + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/kde-neon-unveiled/ + +作者:[JOHN PAUL][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/john/ + From 7d760a6a01194c7250aefc778b9e430676b8aaac Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 16:34:30 +0800 Subject: [PATCH 113/582] =?UTF-8?q?20160220-6=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ux Mint 18 Will Get Its Own Set Of Apps.md | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md diff --git a/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md b/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md new file mode 100644 index 0000000000..2ef5effbb7 --- /dev/null +++ b/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md @@ -0,0 +1,62 @@ +Linux Mint 18 Will Get Its Own Set Of Apps +============================================= + +![](http://itsfoss.com/wp-content/uploads/2016/01/Linux-Mint-apps.jpg) + +It’s common for distro developers to create and release a series of apps that are designed specifically for their distros. A big example of this is [elementary OS](https://elementary.io/). Nine years in, Linux Mint is finally taking the plunge and doing the same. + +>#LinuxMint to finally get its own apps in Mint 18. + +[Linux Mint](http://www.linuxmint.com/) is one of the best known Linux distros available. Based on Ubuntu and Debian, Linux Mint strives to create a “modern, elegant and comfortable operating system which is both powerful and easy to use”. The team behind Linux Mint is also very involved with the [MATE](http://itsfoss.com/install-mate-desktop-ubuntu-14-04/) and [Cinnamon](http://itsfoss.com/install-cinnamon-ubuntu-14-04/) desktop environments. + +## First X-Men, now X-Apps + +Thursday, Linux Mint project lead Clement Lefebvre [announced](http://blog.linuxmint.com/?p=2985) the creation of the X-Apps. The X-Apps are designed to be desktop-agnostic so that developers can update them without having to tweak them for each desktop environment. Lefebvre stated that these X-Apps would be used as default applications for Cinnamon, MATE and Xfce. + +## Does Linux Need Even More Apps? + +According to Lefebvre, the creation of the X-Apps was necessitated by the release of GNOME 3.18. He said that with the release of GNOME 3.18: + +> “GTK itself and many of the GNOME applications now integrate better with GNOME Shell and look more native in that environment. The bad news, is that they now look completely out of place everywhere else. To make matters worse, Unity, the flagship product of Ubuntu, relies heavily on GTK, GNOME applications and the GNOME environment itself, so we’re not dealing with the upstream version of 3.18 here, but with a collection of patches which bring their own issues (one example is that Ubuntu reintroduces menubars and titlebars in applications but without rewriting their headerbar.. so you sometimes see all three of them).” + +In the past, the Linux Mint team dealt with the problem by “downgrading apps (Linux Mint 17 uses gedit 2.30 for instance), patching GNOME (GTK and various GNOME apps) and using alternatives (mostly in MATE and Xfce)”. + +Lefebvre also said that it didn’t make sense to build specific applications for Cinnamon and MATE this is why they opted to work on apps which would be generic, perfectly suited to run in Cinnamon, MATE and Xfce (and possibly other desktop environments). + +He further added: + +>"X-Apps will be a collection of generic GTK3 applications using traditional interfaces which can be used as default desktop components in Cinnamon, MATE and Xfce. In Mint 18, the “X apps” will allow us to maintain a native look and a good level of integration because they will be used in replacement of GNOME applications which now look foreign (using headerbars and a distinctive layout). Long-term, the X-App project will allow us to innovate and to develop new features and improvements in the applications themselves (this is something we couldn’t do via patches, temporary forks or DE-specific forks like the MATE apps because it was too costly)." + +## What Kind of Apps Will Be Available? + +![](http://itsfoss.com/wp-content/uploads/2016/01/xedit.png) + +Lefebvre only revealed one of the upcoming X-Apps: a text editor named xedit. Here are some of the feature that it will provide: + +- Based on Pluma to lower learning curve +- Makes use of GTK3 +- Doesn’t depend on GNOME or MATE + +## When + +The X-Apps will be coming together with [Linux Mint 18 release](http://itsfoss.com/linux-mint-18-codenamed-sarah/), which will follow the release of Ubuntu 16.04 LTS by several months. [Ubuntu 16.04 is scheduled to release in April](http://itsfoss.com/ubuntu-1604-release-schedule/). + +## Final Thoughts + +Personally, whenever I hear about someone releasing new distro specific apps, I cringe. The Linux universe is already incredibly fragmented. Do we really need more duplicate projects to take time and energy to create? Don’t get me wrong, I like the idea of desktop-agnostic apps. It would fix a lot of problems with how apps look from distro to distro. + +The problem that worries me is “Will they be able to pull it off?” As I stated before, the Linux Mint guys also work on two desktop environments. Now add application development to the mix. I’ve never written a piece of software myself (other than one that said “Hello, World”), but I do know that when you try and complicate a project bad things happen. Many projects have fallen to the dragon of feature creep I hope that doesn’t happen here. + +Do you have a different take? Let me know in the comments below. + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/linux-mint-own-apps/ + +作者:[JOHN PAUL][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/john/ From 291ffd96eaac49b1747ed249c91b290618922662 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 16:46:59 +0800 Subject: [PATCH 114/582] =?UTF-8?q?20160220-7=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Download] Vi Cheat Sheet For Beginners.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md diff --git a/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md b/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md new file mode 100644 index 0000000000..0a43387984 --- /dev/null +++ b/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md @@ -0,0 +1,78 @@ +[Free Download] Vi Cheat Sheet For Beginners +================================================ + +![](http://itsfoss.com/wp-content/uploads/2016/01/VI.jpg) + +I have often shared my Linux experience with you. Today I am going to share my **Vi cheat sheet** that has often saved me time in googling for a quick command. + +## Basic Vi commands + +This is not a detailed tutorial to teach you each and every aspect of [Vi editor](https://en.wikipedia.org/wiki/Vi). In fact, it’s not a tutorial at all. It’s just a collection of basic Vi commands and their brief description for a quick reference. + +command|explain +:--|:-- +:x |Save the file and quit +:q!|Quit without saving the file +i|Insert starting left of the cursor +a|Append starting right of the cursor +ESC|Exit insert/append mode +arrows|Move cursor +/text|Search string text (case sensitive) +n|Search next occurrence of the searched item +x|Delete character under the cursor +dd|Delete line under the cursor +u|Undo last change +:0|Beginning of the file +:n|Go to line n +G|End of the file +^|Beginning of the line +$|End of the line +:set list|See special characters in the file +yy|Copy the line into the buffer +5yy|Copy 5 lines into the buffer +p|Paste buffer after the current line + +You can download the above cheat sheet in a PDF format from the link below: + +[Download Vi Cheat Sheet](https://drive.google.com/file/d/0By49_3Av9sT1X3dlWkNQa3g2b2c/view?usp=sharing) + +You can print it and keep it at your desk or just save it for offline use. + +## Why I created the Vi cheat sheet? + +Several years ago, when I started working in Linux terminal, the idea of using a command line editor horrified me. I had used desktop Linux before but it was my personal computer so I happily used the GUI text editor like Gedit. But in the working environment, I was stuck with the command line and there was no scope of using a graphical editor. + +I was forced to use Vi for basic edits in the files on remote Linux boxes and this is where I identified and started to admire the power of command line editing tool Vi. + +Since, at that time, I was new at Vi editor, I found myself baffling with it. The first time, I could not even come out of the file because I did not know how to close Vi editor. No shame in accepting that I had to Google it. + +So, I decided to make a list of all the basic commands that I used frequently for editing in Vi. This list or cheat sheet, as you may call it, helped me a lot in my early days with Vi. With time, I grew up with Vi and now I don’t even need to look at the Vi cheat sheet because I have the commands memorized by heart. + +## Why should you use Vi cheat sheet? + +I can understand your situation if you are just getting started with Vi. Your favorite Ctrl+S doesn’t work for saving files. Ctrl+C and Ctrl+V were supposed to be the universal shortcut for copy and paste but it won’t work in Vi universe.Thousands of people use cheat sheets + +Thousands of people use such cheat sheets for various programming languages and `/` or tools that give them a quick reference to commonly used steps `/` commands. Trust me, using cheat sheets among the best practices advised to programmers. + +This Vi cheat sheet will help you a lot if you are just starting with Vi or if you infrequently use the Vi editor (so you keep forgetting the commands). You can save it and use it for quick reference in future, that too offline. + +## Do you like it? + +So far, I have refrained myself from going into too much on terminal side. How do you find this post? Do you want me to share more such cheat sheets and downloadable items? Your suggestions are welcomed. + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/download-vi-cheat-sheet/ + +作者:[ABHISHEK][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ + + + + + From 9100e0c49aca1309ad0191e2c80aab601261aee8 Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sat, 20 Feb 2016 17:02:26 +0800 Subject: [PATCH 115/582] Translated share/20151204 Review EXT4 vs. Btrfs vs. XFS.md --- .../20151204 Review EXT4 vs. Btrfs vs. XFS.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md diff --git a/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md new file mode 100644 index 0000000000..b2e71c0da3 --- /dev/null +++ b/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md @@ -0,0 +1,66 @@ +EXT4、Btrfs、XFS 文件系统回顾 +================================================================================ +![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/09/1385698302_funny_linux_wallpapers-593x445.jpg) + +老实说,人们最不曾考虑的问题之一是他们的个人电脑中使用了什么文件系统。Windows 和 Mac OS X 用户更没有理由去考虑,因为对于他们的操作系统,只有一种选择,那就是 NTFS 和 HFS+。相反,对于 Linux 系统而言,有很多种文件系统可以选择,现在默认的是广泛采用的 ext4。然而,现在也有改用一种称为 btrfs 文件系统的趋势。那是什么使得 btrfs、或者其它文件系统变得更优秀呢?什么时候我们又能看到 Linux 发行版作出改变呢? + +首先让我们对文件系统以及它们真正干什么有个总体的认识,然后我们再对一些有名的文件系统做详细的比较。 + +### 文件系统是干什么的? ### + +如果你不清楚文件系统是干什么的,一句话总结起来也非常简单。文件系统主要用于控制所有程序不再使用数据时如何存储数据、如何访问数据以及有什么其它信息(元数据)和数据本身相关,等等。听起来要编程实现并不是轻而易举的事情,实际上也确实如此。文件系统一直在改进,包括更多的功能、更高效地完成它需要做的事情。总而言之,它是所有计算机的基本需求、但并不像听起来那么简单。 + +### 为什么要分区? ### + +由于每个操作系统都能创建或者删除分区,很多人对分区都有模糊的认识。Linux 操作系统在同一块磁盘上使用多个分区,就算使用标准安装过程,这看起来很奇怪,因此需要一些解释。拥有不同分区的一个主要目的就是为了在灾难发生时能获得更好的数据安全性。 + +通过将硬盘划分为分区,数据会被分隔以及重组。当事故发生的时候,只有存储在被损坏分区的数据会被破坏,很大可能上其它分区的数据能得以保留。这个原因可以追溯到 Linux 操作系统还没有日志文件系统,任何掉电都有可能导致灾难发生的时候。 + +使用分区也考虑到了安全和健壮性原因,因此操作系统部分损坏并不意味着整个计算机就有风险或者会受到破坏。这也是当前采用分区的一个最重要因素。举个例子,用户创建了一些会填满磁盘的脚本、程序或者 web 应用,如果该磁盘只有一个大的分区,如果磁盘满了那么整个系统就不能工作。如果用户把数据保存在不同的分区,那么就只有那个分区会受到影响,而系统分区或者其它数据分区仍能正常运行。 + +记住,拥有一个日志文件系统只能在掉电或者和存储设备意外断开连接时提供数据安全性,并不能在文件系统出现坏块或者发生逻辑错误时保护数据。对于这种情况,用户可以采用廉价磁盘冗余阵列(RAID:Redundant Array of Inexpensive Disks)的方案。 + +### 为什么要选择文件系统? ### + +ext4 文件系统由 ext3 文件系统改进而来,而后者又是从 ext2 文件系统改进而来。虽然 ext4 文件系统已经非常稳定,是过去几年中绝大部分发行版的默认选择,但它是基于陈旧的代码开发而来。另外, Linux 操作系统用户也需要很多 ext4 文件系统本身不提供的新功能。虽然通过某些软件能满足这种需求,但性能会受到影响,在文件系统层次做到这些能获得更好的性能。 + +### Ext4 文件系统 ### + +ext4 还有一些令人印象深刻的限值。最大文件大小是 16tebibytes(大概是 17.6 terabytes),这比普通用户当前能买到的硬盘还要大。使用 ext4 能创建的最大卷/分区是 1 exbibyte(大概是 1,152,921.5 terabytes)。通过使用多种技巧, ext4 比 ext3 有很大的速度提升。类似一些最先进的文件系统,它是一个日志文件系统,意味着它会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录。纵观它的所有功能,它还不支持透明压缩、重复数据删除或者透明加密。技术上支持了快照,但该功能还处于实验性阶段。 + +### Btrfs 文件系统 ### + +btrfs 有很多不同的发音,例如 Better FS、Butter FS 或者 B-Tree FS。它是一个几乎完全从头开发的文件系统。btrfs 存在的原因是它的开发者期初希望扩展文件系统的功能使得它包括快照、池化、校验以及其它一些功能。虽然和 ext4 无关,它也希望能保留 ext4 中能使消费者和商家受益的功能,并整合额外的能使每个人、尤其是企业受益的功能。对于使用大型软件以及大规模数据库的企业,对于多种不同的硬盘看起来一致的文件系统能使他们受益并且使数据整合变得更加简单。删除重复数据能降低数据实际使用的空间,当需要镜像一个单一和广泛文件系统时使用 btrfs 也能使数据镜像变得简单。 + +用户当然可以继续选择创建多个分区从而无需镜像任何东西。考虑到这种情况,btrfs 能横跨多种硬盘,和 ext4 相比,它能支持 16 倍多的驱动空间。btrfs 文件系统一个分区最大是 16 exbibytes,最大的文件大小也是 16 exbibytes。 + +### XFS 文件系统 ### + +XFS 文件系统是扩展文件系统(extent file system)的扩展。XFS 是 64 位高性能日志文件系统。对 XFS 的支持大概在 2002 年合并到了 Linux 内核,到了 2009 年,红帽企业版 Linux 5.4 也支持了 XFS 文件系统。对于 64 位文件系统,XFS 支持最大文件系统大小为 8 exbibytes。XFS 文件系统有一些缺陷,例如它不能压缩,删除大量文件时性能低下。RHEL 7.0 文件系统默认使用 XFS。 + +### 总后总结 ### + +不幸的是,还不知道 btrfs 什么时候能到来。官方说,下一代文件系统仍然被归类到“不稳定”,但是如果用户下载最新版本的 Ubuntu,他就可以选择安装到 btrfs 分区上。什么时候 btrfs 会被归类到 “稳定” 仍然是个谜, 直到真的认为它“稳定”之前,用户也不应该期望 Ubuntu 会默认采用 btrfs。有报道说 Fedora 18 会用 btrfs 作为它的默认文件系统,因为到了发布它的时候,应该有了 btrfs 文件系统校验器。由于还没有实现所有的功能,另外和 ext4 相比性能上也比较缓慢, btrfs 还有很多的工作要做。 + +那么,究竟使用哪个更好呢?尽管性能几乎相同,但 ext4 还是赢家。为什么呢?答案在于易用性以及广泛性。对于桌面或者工作站, ext4 仍然是一个很好的文件系统。由于默认提供,用户可以在上面安装操作系统。同时, ext4 支持最大 1 exabytes 的卷和 16 terabytes 的文件,因此考虑到大小,它也还有很大的进步空间。 + +btrfs 能提供更大的高达 16 exabytes 的卷以及更好的容错,但是,到现在为止,它感觉更像是一个附加文件系统,而没有集成到 Linux 操作系统。比如,尽管 btrfs 支持不同的发行版,使用 btrfs 格式化硬盘之前先要有 btrfs-tools 工具,这意味着安装 Linux 操作系统的时候它并不是一个可选项。 + +尽管传输速率非常重要,评价一个文件系统出了文件传输速度之外还有很多因素。btrfs 有很多好用的功能,例如写复制、扩展校验、快照、清洗、数据自治愈、冗余删除以及其它保证数据完整性的功能。和 ZFS 相比 btrfs 缺少 RAID-Z 功能,因此对于 btrfs, RAID 还处于实验性阶段。对于单纯的数据存储,和 ext4 相比 btrfs 似乎更加优秀,但时间会验证一切。 + +迄今为止,对于桌面系统而言,ext4 似乎是一个更好的选择,因为它是默认的文件系统,传输文件时也比 btrfs 更快。btrfs 当然值得尝试、但要在桌面 Linux 上完全取代 ext4 可能还需要一些时间。数据场和大存储池会揭示关于 ext4、XCF 以及 btrfs 不同的故事和差异。 + +如果你有其它不同的或者额外的观点、在下面的评论框中告诉我们吧。 +If you have a different or additional opinion, kindly let us know by commenting on this article. + +-------------------------------------------------------------------------------- + +via: http://www.unixmen.com/review-ext4-vs-btrfs-vs-xfs/ + +作者:[M.el Khamlichi][a] +译者:[ictlyh](http://mutouxiaogui.cn/blog/) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.unixmen.com/author/pirat9/ From baaa02aa74732629f9b5040b43c6e8e174e2ef40 Mon Sep 17 00:00:00 2001 From: Yuking-net Date: Sat, 20 Feb 2016 21:16:24 +0800 Subject: [PATCH 116/582] Update 20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md --- ...untu Edition Announced and It's a Beast.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index 7bc06d74b7..e655b4ffba 100644 --- a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -5,32 +5,32 @@ 自从上次听到魅族的消息到现在已经很久了,但是看起来 Canonical 和这个中国的硬件厂商之间的合作关系仍然存在。从表面来看,之前魅族的 MX4 Ubuntu 版只是进行了小范围的发布,所以只有很少的设备卖出去了。 -我们仅仅希望 魅族 Pro 5 Ubuntu 版可以提高供货量,特别因为它还是一个魅族仍然提供支持的非常新的手机。 +我们仅仅希望魅族 Pro 5 Ubuntu 版可以提高供货量,尤其是因为它是魅族的一款相当新且还提供支持的手机。 -最新的魅族 Pro 5 是第5个支持 Ubuntu Touch 的官方设备,而且在2016 年我们将会看到更多的手机以及平板都会预装这个操作系统。 +最新的魅族 Pro 5 是第5个支持 Ubuntu Touch 的官方设备,2016 年我们可能会看到更多的手机甚至是平板都会预装这个操作系统。 ## 魅族 Pro 5 Ubuntu 版将会非常震撼 -Canonical 宣称 Pro 5 是目前已发布了的 Ubuntu 智能手机中最强大的, 他们说的是对的, 除了这一点,它还是平板以外最大的设备。 魅族 Pro 5 拥有一颗 Exynos 7420 8核处理器,5.7 英寸分辨率为1920x1080 的 AMOLED 屏,覆盖第三代大猩猩屏,以及 LPDDR4 内存技术。 +Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的Ubuntu设备。魅族 Pro 5 采用一颗 Exynos 7420 8核处理器、5.7 英寸分辨率为1920x1080 的 AMOLED 屏、第三代康宁大猩猩屏以及 LPDDR4 内存技术。 -很多人也许会问这个新手机的系统是否可以和桌面版系统一样, 现在看起来用户是运气不错。 +很多人也许会问这个新手机的系统是否可以和桌面版系统一样,现在看起来用户是运气不错。 -公司解释说,“Canonical 一直致力于重塑个人计算的视觉表现,希望为所有的的个人设备提供自适应的平台。因此尽管 Pro 5 缺少 MHL 输出,但运行在魅族 Pro 5 上的是最新的代码,同时也是最新发布的支持平板和其它设备的系统,它可以提供一种接近传统桌面的体验。” +该公司解释说,“通过向各种个人设备提供一个单一的自适应平台,Canonical 一直致力于重塑个人计算的视觉表现。因此尽管魅族 Pro 5 缺少 MHL 输出,但它 运行的是最新的代码,这些代码与新近发布的平板和其它设备一样,可提供一种接近传统桌面的体验。” -魅族 Pro 5 最初实在2015 年9 月发布的。用户同时会拥有一个2100 万像素的后置摄像头,可以拍摄2160p 和30 fps 的视频。同时它还带有一个指纹传感器和支持快速充电的3050 mAh 的锂电池。 +魅族 Pro 5 最初于 2015 年9 月发布,拥有一个2100 万像素的后置摄像头,可以拍摄30fps 的 2160p 视频。同时它还带有一个指纹传感器和支持快速充电的 3050 mAh 的锂电池。 -目前这款手机只在中国和欧洲有售,预定将从2016 年世界移动大会期间开始,即2 月22 日至25 日。 +目前这款手机只在中国和欧洲有售,预定将从 2016 年 2 月 22 日至 25 日的世界移动大会期间开始。 ![](http://i1-news.softpedia-static.com/images/fitted/620x/meizu-pro-5-ubuntu-edition-announced-and-it-s-a-beast-photos-500526-11.jpg) ------------------------------------------------------------------------------ -via: http://www.linux.com/news/embedded-mobile/mobile-linux/886322-meizu-pro-5-ubuntu-edition-announced-and-its-a-beast +via: http://news.softpedia.com/news/meizu-pro-5-ubuntu-edition-announced-and-it-s-a-beast-photos-500526.shtml 作者:[Silviu Stahie][a] -译者:[译者ID](https://github.com/osk874) -校对:[校对者ID](https://github.com/校对者ID) +译者:[osk874](https://github.com/osk874) +校对:[Yuking](https://github.com/Yuking-net) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 3c641f1b3566efda27f43098f18c0f816291d2c4 Mon Sep 17 00:00:00 2001 From: Yuking-net Date: Sat, 20 Feb 2016 21:17:16 +0800 Subject: [PATCH 117/582] Update 20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md --- ...218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index e655b4ffba..294866bf67 100644 --- a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -17,7 +17,7 @@ Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机 该公司解释说,“通过向各种个人设备提供一个单一的自适应平台,Canonical 一直致力于重塑个人计算的视觉表现。因此尽管魅族 Pro 5 缺少 MHL 输出,但它 运行的是最新的代码,这些代码与新近发布的平板和其它设备一样,可提供一种接近传统桌面的体验。” -魅族 Pro 5 最初于 2015 年9 月发布,拥有一个2100 万像素的后置摄像头,可以拍摄30fps 的 2160p 视频。同时它还带有一个指纹传感器和支持快速充电的 3050 mAh 的锂电池。 +魅族 Pro 5 最初于 2015 年 9 月发布,拥有一个 2100 万像素的后置摄像头,可以拍摄 30fps 的 2160p 视频。同时它还带有一个指纹传感器和支持快速充电的 3050 mAh 的锂电池。 目前这款手机只在中国和欧洲有售,预定将从 2016 年 2 月 22 日至 25 日的世界移动大会期间开始。 From 208d3f9a288470fa3f0f3447406ad0f961a88ff8 Mon Sep 17 00:00:00 2001 From: Yuking-net Date: Sat, 20 Feb 2016 21:17:58 +0800 Subject: [PATCH 118/582] Update 20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md --- ...8 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index 294866bf67..81ad51e3ab 100644 --- a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -7,11 +7,11 @@ 我们仅仅希望魅族 Pro 5 Ubuntu 版可以提高供货量,尤其是因为它是魅族的一款相当新且还提供支持的手机。 -最新的魅族 Pro 5 是第5个支持 Ubuntu Touch 的官方设备,2016 年我们可能会看到更多的手机甚至是平板都会预装这个操作系统。 +最新的魅族 Pro 5 是第 5 个支持 Ubuntu Touch 的官方设备,2016 年我们可能会看到更多的手机甚至是平板都会预装这个操作系统。 ## 魅族 Pro 5 Ubuntu 版将会非常震撼 -Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的Ubuntu设备。魅族 Pro 5 采用一颗 Exynos 7420 8核处理器、5.7 英寸分辨率为1920x1080 的 AMOLED 屏、第三代康宁大猩猩屏以及 LPDDR4 内存技术。 +Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的Ubuntu设备。魅族 Pro 5 采用一颗 Exynos 7420 8 核处理器、5.7 英寸分辨率为 1920x1080 的 AMOLED 屏、第三代康宁大猩猩屏以及 LPDDR4 内存技术。 很多人也许会问这个新手机的系统是否可以和桌面版系统一样,现在看起来用户是运气不错。 From b5a2d52001890af341fc0dbe3052d69f23aea31b Mon Sep 17 00:00:00 2001 From: Yuking-net Date: Sat, 20 Feb 2016 21:18:45 +0800 Subject: [PATCH 119/582] Update 20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md --- ...8 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index 81ad51e3ab..fa75e049cb 100644 --- a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -1,7 +1,7 @@ 魅族 Pro 5 Ubuntu 版即将发布 ======================================================== -**Canonical 和魅族刚刚透露魅族 Pro 5 Ubuntu 版将在2016 世界移动大会召开期间开始预售** +**Canonical 和魅族刚刚透露魅族 Pro 5 Ubuntu 版将在 2016 世界移动大会召开期间开始预售** 自从上次听到魅族的消息到现在已经很久了,但是看起来 Canonical 和这个中国的硬件厂商之间的合作关系仍然存在。从表面来看,之前魅族的 MX4 Ubuntu 版只是进行了小范围的发布,所以只有很少的设备卖出去了。 @@ -11,7 +11,7 @@ ## 魅族 Pro 5 Ubuntu 版将会非常震撼 -Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的Ubuntu设备。魅族 Pro 5 采用一颗 Exynos 7420 8 核处理器、5.7 英寸分辨率为 1920x1080 的 AMOLED 屏、第三代康宁大猩猩屏以及 LPDDR4 内存技术。 +Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的 Ubuntu 设备。魅族 Pro 5 采用一颗 Exynos 7420 8 核处理器、5.7 英寸分辨率为 1920x1080 的 AMOLED 屏、第三代康宁大猩猩屏以及 LPDDR4 内存技术。 很多人也许会问这个新手机的系统是否可以和桌面版系统一样,现在看起来用户是运气不错。 From 026d0e3ce3ba84f921730320105109b2eabf98c5 Mon Sep 17 00:00:00 2001 From: Yuking-net Date: Sat, 20 Feb 2016 21:21:28 +0800 Subject: [PATCH 120/582] Update 20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md --- ...218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index fa75e049cb..b13c639b3d 100644 --- a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -11,7 +11,7 @@ ## 魅族 Pro 5 Ubuntu 版将会非常震撼 -Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的 Ubuntu 设备。魅族 Pro 5 采用一颗 Exynos 7420 8 核处理器、5.7 英寸分辨率为 1920x1080 的 AMOLED 屏、第三代康宁大猩猩屏以及 LPDDR4 内存技术。 +Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的 Ubuntu 设备。魅族 Pro 5 具备一颗 Exynos 7420 8 核处理器和 5.7 英寸分辨率为 1920x1080 的 AMOLED 屏,采用第三代康宁大猩猩玻璃以及 LPDDR4 内存技术。 很多人也许会问这个新手机的系统是否可以和桌面版系统一样,现在看起来用户是运气不错。 From 8c67721ceac1168266ad338ec7792d7bfcc4d0fa Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 21:50:51 +0800 Subject: [PATCH 121/582] Update 20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md --- ...8 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index b13c639b3d..df872dd49e 100644 --- a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -11,11 +11,11 @@ ## 魅族 Pro 5 Ubuntu 版将会非常震撼 -Canonical 宣称 Pro 5 是目前已发布了的最强大的 Ubuntu 智能手机,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它还是最大的 Ubuntu 设备。魅族 Pro 5 具备一颗 Exynos 7420 8 核处理器和 5.7 英寸分辨率为 1920x1080 的 AMOLED 屏,采用第三代康宁大猩猩玻璃以及 LPDDR4 内存技术。 +Canonical 宣称 Pro 5 是目前已发布了的 Ubuntu 智能手机中最强大的一个,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它也是最大的 Ubuntu Touch 设备。魅族 Pro 5 采用了一颗 Exynos 7420 8 核处理器和 5.7 英寸分辨率为 1920x1080 的 AMOLED 屏,配备第三代康宁大猩猩玻璃以及 LPDDR4 内存技术。 很多人也许会问这个新手机的系统是否可以和桌面版系统一样,现在看起来用户是运气不错。 -该公司解释说,“通过向各种个人设备提供一个单一的自适应平台,Canonical 一直致力于重塑个人计算的视觉表现。因此尽管魅族 Pro 5 缺少 MHL 输出,但它 运行的是最新的代码,这些代码与新近发布的平板和其它设备一样,可提供一种接近传统桌面的体验。” +该公司解释说,“Canonical 一直致力于通过向各种个人设备提供一个统一的自适应平台来重塑个人计算的视觉表现。因此尽管魅族 Pro 5 缺少 MHL 输出,但它运行的是最新的代码,这些代码与新近发布的平板和其它设备一样,可提供一种接近传统桌面的体验。” 魅族 Pro 5 最初于 2015 年 9 月发布,拥有一个 2100 万像素的后置摄像头,可以拍摄 30fps 的 2160p 视频。同时它还带有一个指纹传感器和支持快速充电的 3050 mAh 的锂电池。 From d023a49156a57dbe7f9f4599875bc477bec7c90e Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 21:53:09 +0800 Subject: [PATCH 122/582] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=B0published?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/news => published}/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md (100%) diff --git a/translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md similarity index 100% rename from translated/news/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md rename to published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md From 7503fd7d0b9590547bb0639044b852a6cd496d94 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 20 Feb 2016 22:06:52 +0800 Subject: [PATCH 123/582] =?UTF-8?q?=E4=B8=AD=E6=96=87=E6=8E=92=E7=89=88?= =?UTF-8?q?=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用来规范翻译之后的格式 --- chinese-copywriting-guidelines.md | 301 ++++++++++++++++++++++++++++++ 1 file changed, 301 insertions(+) create mode 100644 chinese-copywriting-guidelines.md diff --git a/chinese-copywriting-guidelines.md b/chinese-copywriting-guidelines.md new file mode 100644 index 0000000000..c2d0d207bd --- /dev/null +++ b/chinese-copywriting-guidelines.md @@ -0,0 +1,301 @@ +# 中文文案排版指北 +[![devDependency Status](https://david-dm.org/sparanoid/chinese-copywriting-guidelines/dev-status.svg)](https://david-dm.org/sparanoid/chinese-copywriting-guidelines#info=devDependencies) +[![Built with Almace Scaffolding](https://d349cztnlupsuf.cloudfront.net/amsf-badge.svg)](http://sparanoid.com/note/chinese-copywriting-guidelines/) + +統一中文文案、排版的相關用法,降低團隊成員之間的溝通成本,增強網站氣質。 + +Other languages: + +- [English](README.en.md) +- [Chinese Traditional](README.md) +- [Chinese Simplifed](https://github.com/mzlogin/chinese-copywriting-guidelines) + +----- + +## 目次 + +- [空格](#空格) + - [中英文之間需要增加空格](#中英文之間需要增加空格) + - [中文與數字之間需要增加空格](#中文與數字之間需要增加空格) + - [數字與單位之間需要增加空格](#數字與單位之間需要增加空格) + - [全形標點與其他字符之間不加空格](#全形標點與其他字符之間不加空格) + - [`-ms-text-autospace` to the rescue?](#-ms-text-autospace-to-the-rescue) +- [標點符號](#標點符號) + - [不重複使用標點符號](#不重複使用標點符號) +- [全形和半形](#全形和半形) + - [使用全形中文標點](#使用全形中文標點) + - [數字使用半形字符](#數字使用半形字符) + - [遇到完整的英文整句、特殊名詞,其內容使用半形標點](#遇到完整的英文整句特殊名詞其內容使用半形標點) +- [名詞](#名詞) + - [專有名詞使用正確的大小寫](#專有名詞使用正確的大小寫) + - [不要使用不地道的縮寫](#不要使用不地道的縮寫) +- [爭議](#爭議) + - [鏈接之間增加空格](#鏈接之間增加空格) + - [簡體中文使用直角引號](#簡體中文使用直角引號) +- [工具](#工具) +- [誰在這樣做?](#誰在這樣做) +- [參考文獻](#參考文獻) + +## 空格 + +「有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。 + +與大家共勉之。」——[vinta/paranoid-auto-spacing](https://github.com/vinta/pangu.js) + +### 中英文之間需要增加空格 + +正確: + +> 在 LeanCloud 上,數據存儲是圍繞 `AVObject` 進行的。 + +錯誤: + +> 在LeanCloud上,數據存儲是圍繞`AVObject`進行的。 + +> 在 LeanCloud上,數據存儲是圍繞`AVObject` 進行的。 + +完整的正確用法: + +> 在 LeanCloud 上,数据存储是围绕 `AVObject` 进行的。每个 `AVObject` 都包含了与 JSON 兼容的 key-value 对应的数据。数据是 schema-free 的,你不需要在每个 `AVObject` 上提前指定存在哪些键,只要直接设定对应的 key-value 即可。 + +例外:「豆瓣FM」等產品名詞,按照官方所定義的格式書寫。 + +### 中文與數字之間需要增加空格 + +正確: + +> 今天出去買菜花了 5000 元。 + +錯誤: + +> 今天出去買菜花了 5000元。 + +> 今天出去買菜花了5000元。 + +### 數字與單位之間需要增加空格 + +正確: + +> 我家的光纖入屋寬頻有 10 Gbps,SSD 一共有 20 TB。 + +錯誤: + +> 我家的光纖入屋寬頻有 10Gbps,SSD 一共有 20TB。 + +例外:度/百分比與數字之間不需要增加空格: + +正確: + +> 今天是 233° 的高溫。 + +> 新 MacBook Pro 有 15% 的 CPU 性能提升。 + +錯誤: + +> 今天是 233 ° 的高溫。 + +> 新 MacBook Pro 有 15 % 的 CPU 性能提升。 + +### 全形標點與其他字符之間不加空格 + +正確: + +> 剛剛買了一部 iPhone,好開心! + +錯誤: + +> 剛剛買了一部 iPhone ,好開心! + +### `-ms-text-autospace` to the rescue? + +Microsoft 有個 [`-ms-text-autospace`](http://msdn.microsoft.com/en-us/library/ie/ms531164(v=vs.85).aspx) 的 CSS 屬性可以實現自動為中英文之間增加空白。不過目前並未普及,另外在其他應用場景,例如 OS X、iOS 的用戶介面目前并不存在這個特性,所以請繼續保持隨手加空格的習慣。 + +## 標點符號 + +### 不重複使用標點符號 + +正確: + +> 德國隊竟然戰勝了巴西隊! + +> 她竟然對你說「喵」?! + +錯誤: + +> 德國隊竟然戰勝了巴西隊!! + +> 德國隊竟然戰勝了巴西隊!!!!!!!! + +> 她竟然對你說「喵」??!! + +> 她竟然對你說「喵」?!?!??!! + +## 全形和半形 + +不明白什麼是全形(全角)與半形(半角)符號?請查看維基百科詞條『[全形和半形](http://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2)』。 + +### 使用全形中文標點 + +正確: + +> 嗨!你知道嘛?今天前台的小妹跟我說「喵」了哎! + +> 核磁共振成像(NMRI)是什麼原理都不知道?JFGI! + +錯誤: + +> 嗨! 你知道嘛? 今天前台的小妹跟我說 "喵" 了哎! + +> 嗨!你知道嘛?今天前台的小妹跟我說"喵"了哎! + +> 核磁共振成像 (NMRI) 是什麼原理都不知道? JFGI! + +> 核磁共振成像(NMRI)是什麼原理都不知道?JFGI! + +### 數字使用半形字符 + +正確: + +> 這件蛋糕只賣 1000 元。 + +錯誤: + +> 這件蛋糕只賣 1000 元。 + +例外:在設計稿、宣傳海報中如出現極少量數字的情形時,為方便文字對齊,是可以使用全形數字的。 + +### 遇到完整的英文整句、特殊名詞,其內容使用半形標點 + +正確: + +> 賈伯斯那句話是怎麼說的?「Stay hungry, stay foolish.」 + +> 推薦你閱讀《Hackers & Painters: Big Ideas from the Computer Age》,非常的有趣。 + +錯誤: + +> 賈伯斯那句話是怎麼說的?「Stay hungry,stay foolish。」 + +> 推薦你閱讀《Hackers&Painters:Big Ideas from the Computer Age》,非常的有趣。 + +## 名詞 + +### 專有名詞使用正確的大小寫 + +大小寫相關用法原屬於英文書寫範疇,不屬於本 wiki 討論內容,在這裡只對部分易錯用法進行簡述。 + +正確: + +> 使用 GitHub 登錄 + +> 我們的客戶有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook, Inc.。 + +錯誤: + +> 使用 github 登錄 + +> 使用 GITHUB 登錄 + +> 使用 Github 登錄 + +> 使用 gitHub 登錄 + +> 使用 gイんĤЦ8 登錄 + +> 我們的客戶有 github、foursquare、microsoft corporation、google、facebook, inc.。 + +> 我們的客戶有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。 + +> 我們的客戶有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。 + +> 我們的客戶有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。 + +> 我們的客戶有 gイんĤЦ8、キouЯƧquムгє、๓เςг๏ร๏Ŧt ς๏гק๏гคtเ๏ภn、900913、ƒ4ᄃëв๏๏к, IПᄃ.。 + +注意:當網頁中需要配合整體視覺風格而出現全部大寫/小寫的情形,HTML 中請使用標準的大小寫規範進行書寫;並通過 `text-transform: uppercase;`/`text-transform: lowercase;` 對表現形式進行定義。 + +### 不要使用不地道的縮寫 + +正確: + +> 我們需要一位熟悉 JavaScript、HTML5,至少理解一种框架(如 Backbone.js、AngularJS、React 等)的前端開發者。 + +錯誤: + +> 我們需要一位熟悉 Js、h5,至少理解一种框架(如 backbone、angular、RJS 等)的 FED。 + +## 爭議 + +以下用法略帶有個人色彩,既:無論是否遵循下述規則,從語法的角度來講都是**正確**的。 + +### 鏈接之間增加空格 + +用法: + +> 请 [提交一个 issue](#) 并分配给相关同事。 + +> 訪問我們網站的最新動態,請 [點擊這裡](#) 進行訂閱! + +對比用法: + +> 请[提交一个 issue](#) 并分配给相关同事。 + +> 訪問我們網站的最新動態,請[點擊這裡](#)進行訂閱! + +### 簡體中文使用直角引號 + +用法: + +> 「老师,『有条不紊』的『紊』是什么意思?」 + +對比用法: + +> “老师,‘有条不紊’的‘紊’是什么意思?” + +## 工具 + +倉庫 | 語言 +--- | --- +[vinta/paranoid-auto-spacing](https://github.com/vinta/paranoid-auto-spacing) | JavaScript +[huei90/pangu.node](https://github.com/huei90/pangu.node) | Node.js +[huacnlee/auto-correct](https://github.com/huacnlee/auto-correct) | Ruby +[sparanoid/space-lover](https://github.com/sparanoid/space-lover) | PHP (WordPress) +[nauxliu/auto-correct](https://github.com/NauxLiu/auto-correct) | PHP +[hotoo/pangu.vim](https://github.com/hotoo/pangu.vim) | Vim +[sparanoid/grunt-auto-spacing](https://github.com/sparanoid/grunt-auto-spacing) | Node.js (Grunt) +[hjiang/scripts/add-space-between-latin-and-cjk](https://github.com/hjiang/scripts/blob/master/add-space-between-latin-and-cjk) | Python + +## 誰在這樣做? + +網站 | 文案 | UGC +--- | --- | --- +[Apple 中國](http://www.apple.com/cn/) | Yes | N/A +[Apple 香港](http://www.apple.com/hk/) | Yes | N/A +[Apple 台灣](http://www.apple.com/tw/) | Yes | N/A +[Microsoft 中國](http://www.microsoft.com/zh-cn/) | Yes | N/A +[Microsoft 香港](http://www.microsoft.com/zh-hk/) | Yes | N/A +[Microsoft 台灣](http://www.microsoft.com/zh-tw/) | Yes | N/A +[LeanCloud](https://leancloud.cn/) | Yes | N/A +[知乎](https://www.zhihu.com/) | Yes | 部分用戶達成 +[V2EX](https://www.v2ex.com/) | Yes | Yes +[SegmentFault](https://segmentfault.com/) | Yes | 部分用戶達成 +[Apple4us](http://apple4us.com/) | Yes | N/A +[豌豆荚](https://www.wandoujia.com/) | Yes | N/A +[Ruby China](https://ruby-china.org/) | Yes | 標題達成 +[PHPHub](https://phphub.org/) | Yes | 標題達成 + +## 參考文獻 + +- [Guidelines for Using Capital Letters - About.com](http://grammar.about.com/od/punctuationandmechanics/a/Guidelines-For-Using-Capital-Letters.htm) +- [Letter case - Wikipedia](http://en.wikipedia.org/wiki/Letter_case) +- [Punctuation - Oxford Dictionaries](http://www.oxforddictionaries.com/words/punctuation) +- [Punctuation - The Purdue OWL](https://owl.english.purdue.edu/owl/section/1/6/) +- [How to Use English Punctuation Correctly - wikiHow](http://www.wikihow.com/Use-English-Punctuation-Correctly) +- [格式 - openSUSE](https://zh.opensuse.org/index.php?title=Help:%E6%A0%BC%E5%BC%8F) +- [全形和半形 - 維基百科](http://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2) +- [引號 - 維基百科](http://zh.wikipedia.org/wiki/%E5%BC%95%E8%99%9F) +- [疑問驚嘆號 - 維基百科](http://zh.wikipedia.org/wiki/%E7%96%91%E5%95%8F%E9%A9%9A%E5%98%86%E8%99%9F) + +## CopyRight + +[中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines) From cc8f4d94673467679a743bb9e80af9e59a84105f Mon Sep 17 00:00:00 2001 From: GHLandy Date: Sun, 21 Feb 2016 00:32:19 +0800 Subject: [PATCH 124/582] =?UTF-8?q?[=E5=AE=8C=E6=88=90=E7=BF=BB=E8=AF=91]?= =?UTF-8?q?=2020160218=20The=20Best=20Linux=20Distros=20of=202016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20160218 The Best Linux Distros of 2016.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 translated/tech/20160218 The Best Linux Distros of 2016.md diff --git a/translated/tech/20160218 The Best Linux Distros of 2016.md b/translated/tech/20160218 The Best Linux Distros of 2016.md new file mode 100644 index 0000000000..b0f080a7b6 --- /dev/null +++ b/translated/tech/20160218 The Best Linux Distros of 2016.md @@ -0,0 +1,118 @@ +2016 最佳Linux 发行版 +================================ + +![](http://www.linux.com/images/stories/66866/distro-opensuse.JPG) + +[不管是在企业还是在消费者空间](http://www.cio.com/article/3017983/linux/2015s-most-exciting-linux-devices.html),2015 对于 Linux 来说都是极其重要的一年。作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了这个 Linux 过去 10 里的重大发展。[并且,我相信它在 2016 年里会更加令人激动](http://www.cio.com/article/3017177/linux/11-predictions-for-linux-in-2016.html)。在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版来介绍个大家。 + +## 最易回归的发行版:openSUSE + +SUSE 是 openSUSE 发行版背后的公司,同时也是起步最早的 Linux 公司;[它在 Linus Torvalds 发布 Linux 的第二年就成立了](http://www.linux.com/news/software/applications/866964-exclusive-interview-with-suse-president-nils-brauckmann)。该公司的成立实际上早于现在的 Linux 公司之王 —— Red Hat。同时 SUSE 也是 [openSUSE](https://www.opensuse.org/) 社区发行版的发起者和赞助商。 + +2015 年,openSUSE 的开发团队决定向 SUSE Linux 企业版 (SLE) 靠拢,以便让用户可以获得企业服务器特性的发行版 —— 类似于 CentOS 和 Ubuntu 那样。因此,openSUSE 变成了 [openSUSE Leap](https://en.opensuse.org/Portal:Leap),一个直接基于 SLE SP1 的发行版。 + +两个发行版共用相同的基础代码,相互受益 —— SUSE 会选用 openSUSE 中好的代码,反之亦然。如此,openSUSE 也放弃了原本常规的发布周期,新版本与 SLE 同步发行。这意味着每个版本将会有更长的生命周期。 + +这样做的结果是,openSUSE 就成了一个非常重要的发行版,因为潜在的 SLE 用户现在可以使用 openSUSE Leap 了。但也并非完全如此,openSUSE 同样也有发行版 [Tumbleweed](http://www.cio.com/article/3008856/open-source-tools/is-opensuse-tumbleweed-good-enough-for-a-seasoned-arch-user.html) —— 一个纯净的滚动式版本。所以,用户们可以选择使用超稳定的 openSUSE Leap 或者经常更新的 openSUSE Tumbleweed。 + +在我的记忆中,还没有其他的发行版做了这样一个令人印象深刻的回归。 + +## 最高可定制性的发行版:Arch Linux + +Arch Linux 是目前最好的滚动式更新的发行版。好吧,我可能有些偏见,因为我是一名 Arch Linux 用户 (GHLandy 译注:本人也是 Arch Linux 用户,它的定制性真的很好)。然而,我认为它好的真正原因是 Arch 在很多其他领域也都表现的非常优越,并且这才是我为什么用它作为主系统的原因。 + +- 对于那些想要学习 Linux 方方面面的用户来说,[Arch Linux](https://www.archlinux.org/) 无疑是一个绝佳的选择。因为你需要手动安装所有自己需要的东西,这样你会慢慢学到 Linux 系统的所有细节。 + +- Arch 是一个可高度定制发行版。任何桌面环境 (DE) 都没有了 “Arch” 的原味。你能够得到的只是一个基础系统,然后你可以在上边构建你所想要的发行版。无论好坏,也不想 openSUSE 或者 Ubuntu 那样,Arch 没有额外的补丁或者集成环境。你得到的基本就是上游开发者所创建的原始软件。 + +- Arch Linux 同时也是最好的滚动式更新的发行版之一。它需要经常保持着更新。用户所运行的基本上是最新的软件,当然,也可以通过非稳定仓库运行预发行版的软件。 + +- Arch 闻名于拥有为数众多的优秀文档。Arch Wiki 是我用以了解所有 Linux 相关事情的外带资源。 + +- Arch 中,我最喜欢的是,它提供了“任何” 其他发行版中可用的的包和软件,同时还要感谢 AUR (Arch User Repository,Arch 用户仓库)。 + +## 最美观的发行版:elementary OS + +不同的发行版会有不同的关注点 —— 多数情况下表现为不同的技术。在大多数的 Linux 发行版中,外观和用户感觉并非他们优先考虑的事情 —— 这通常是桌面环境需要考虑的事情。 + +[elementary OS](https://elementary.io/) 正在尝试改变这一事实。在这个发行版中,设计是占据重要位置,并且原因明显 —— 为该发行版取这个名字的开发者要在 Linux 世界里创建一些漂亮的图标。 + +elementary OS 相当注重整体外观和用户感觉。开发者创建了他们自己的组件,包括桌面环境。此外,他们只会选择那些符合设计规范的应用来加入到软件仓库。你可以发现 elementary OS 有很浓重的 Mac OS X 气息。 + +## 最好的新晋发行版:Solus + +![](http://www.linux.com/images/stories/66866/distro-solus.JPG) + +[Solus](https://solus-project.com/) 最近获得非常大的关注程度。它是一个外观还可以、从零开始构建的操作系统,而并非 Debian 或者 Ubuntu 的衍生版本。它使用的 Budgie 桌面环境同样是从零开始构建的,但它的目标是兼容 Gnome。Solus 和 Google 的 Chrome OS 一样 —— 一切从简。 + +我个人没怎么玩过 Solus,但它看起来很有前途。Solus 实际上并不是一个 “新” 系统。它曾以不同的形式和名称存在来很长时间,但直到 2015 年整个项目才现在这个新名称重归大众视野。 + +## 最好的云操作系统:Chrome OS + +[Chrome OS](https://www.chromium.org/chromium-os) 可能不会成为你的典型 Linux 发行版,毕竟它是基于浏览器的操作系统,主要用以在线活动。但由于基于 Linux 以及任何可以获取其源码进行编译,它同样是一个吸引人的系统。同时我也每天使用 Chrome OS,它是一个优秀、不用自己维护并且总是最新状态的系统,每个人都可以单纯用它来进行 web 相关的活动。Chrome OS 和 Android 对于推动 Linux 在 PC 市场和移动市场的占有率有着不可或缺的功劳。 + +## 最好的笔记本操作系统:Ubuntu MATE + +大多数的笔记本都没有高端的硬件,假如你运行了一个很耗费资源的桌面环境,那么你可能没有足够的系统资源或电量来维持你的基本使用 —— 因为基本上被系统自身消耗了。于是我找到了 [Ubuntu MATE](http://www.cio.com/article/2848475/ubuntu-mate-enterprise-customers.html) 这个优秀的系统。它是轻量级的环境,但提供了能让你拥有不错体验的所有软件。也幸好它的轻量级设计,大部分的系统资源都留来给你的软件使用,让你依旧可以完成一些繁重的任务。我还发现,它对于一些低端的硬件也同样有很好的支持。 + +## 为老旧硬件支持而生的发行版:Lubuntu + +假如你身边拥有一些过时的笔记本或 PC,给它安装 [Lubuntu](http://lubuntu.net/) 来获得重生吧。Lubuntu 使用的是 LXDE 桌面环境,但该项目与 Razor Qt 合并之后,变成了 LXQt。尽管最新的版本 15.04 依旧使用 LXDE,但之后的版本将会使用 LXQt。Lubuntu 对于老旧硬件来说是最合适不过的系统来。 + +## 为物联网 (IoT) 而生的发行版:Snappy Ubuntu Core + +![](http://www.linux.com/images/stories/66866/distro-ubuntu-studio.JPG) + +Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系统。该系统拥有巨大潜力,它可以将我们身边绝大多数的东西 —— 如路由器、咖啡机和玩具飞机等 —— 变成智能设备。让它更有趣的是,软件管理更新的方式以及添加安全性能的模块。 + +## 为桌面系统而生的发行版:Linux Mint Cinnamon + +[Linux Mint Cinnamon](http://www.linux.com/news/software/applications/838569-review-linux-mint-172-release/) 对于台式机和一些有强大硬件的笔记本来说是最好的操作系统。并且我会尽量把它叫做 Linux 世界里的 Mac OS X。老实说,由于 Cinnamon 的不稳定,我在很长一段时间内并不是 Linux Mint 的忠实粉丝。但是,在开发者使用 LTS (Long Term Support,长期支持)作为基础之后,该发行版就变得难以想象的稳定。因为开发者花费经历来跟上 Ubuntu 的开发进度,他们现在可以将所有精力放到把 Cinnamon 做的更好上边来了。 + +## 为游戏而生的发行版:Steam OS + +对于桌面版 Linux 来说,玩游戏同样是短板。很多用户为了能够玩游戏,安装了 Linux 和 Windows 双系统。而 Valve 则尝试改变这个局面。Valve 是一个游戏发行商,它提供一个可以跨平台运行游戏的客户端。并且,Valve 也同样创建来它自己的开源操作系统 —— [Steam OS](http://store.steampowered.com/steamos/) —— 为了创建一个基于 Linux 的游戏平台。截至 2015 年底,它的合作伙伴开始把搭载来 Steam OS 的机子推向市场。 + +## 为隐私而生的发行版:Tails + +在充斥着大量监控和营销者的跟踪 (为目标内容进行的匿名跟踪通常是可接受的),隐私就变成主要问题。如果你向脱离政府或者市场机构的监控和跟踪范围,那么你需要一款始终考虑到隐私问题的操作系统。 + +在出于保护隐私的考虑上,没有任何一款系统可以超越 [Tails](https://tails.boum.org/)。它以基于 Debian 的发行版,在设计之初就考虑了隐私和匿名的支持。Tails 非常优秀,而且据报道说,NSA 认为这是对他们的监控的主要威胁之一。 + +## 为多媒体制作而生的发行版:Ubuntu Studio + +基于 Linux 的操作系统有一个明显的弱点,那就是对多媒体制作的支持并不友好。所有在的专业级应用基本只能运行在 Windows 或者 Mac OS X 上。Linux 系统从来都不缺乏像样的音频/视频制作软件,但这样还是远远不够的。应该要有一款轻量级的桌面环境,使得那些宝贵的系统资源 —— 如 CPU 和 RAM —— 尽量少占用,以便用于多媒体制作。目前,[Ubuntu Studio](https://ubuntustudio.org/tour/) 对多媒体制作的支持最好。它使用了 Xfce 桌面环境,并且有应用广泛的音频、视频以及图像编辑应用。 + +## 最好的企业发行版:SLE/RHEL + +企业级用户并不会通过浏览想这样的文章来了解他们的服务器该运行什么发行版。他们通常非常明确该到哪里获取信息:即 [Red Hat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) 或 [SUSE Linux Enterprise](https://www.suse.com/)。这两个名字已经成了企业服务器的代名词了。同时,它们背后的公司也都通过创新来推动一切皆容器并且可以进行软件定义。 + +## 最好的服务器操作系统:Debian/CentOS + +假如你在考虑自己运行一台服务器,但有不希望支付 RHEL 或者 SLE 授权的费用,那么 [Debian](https://www.debian.org/) 或者 [CentOS](https://www.centos.org/) 将是你最好的选择。这两个发行版在社区发行版服务器操作系统有着不可动摇的位置。并且它们有着很长的支持期,从而你不必担忧需要经常去上级系统。 + +## 最好的移动操作系统:Plasma Mobile + +尽管,基于 Linux 的 Android 系统称雄于移动操作系统市场,但是大多数的开源社区 —— 也包括我在内 —— 也仍然强烈希望能有一个发行版能够为移动设备提供传统 Linux 的桌面应用。同时,这样的一个发行版由开源社区来维护会比由商业公司来维护好的多,只有这样用户群才能才能成为这个发行版的焦点,而不应该有公司的商业目标决定这个发行版的发展趋势。而 KDE 的 [Plasma Mobile](https://community.kde.org/Plasma/Mobile) 刚好实现来我们的愿望。 + +这个 基于 Kubuntu 的发行版始于 2015 年。因为 KDE 社区以坚守标准和为公众开发应用而闻名,我非常期待 Plasma Mobile 能够一直坚持下去。 + +## 为 ARM 设备而生的发行版:Arch Linux ARM + +随着 Android 系统的成功,我们的生活也围绕者越来越多的 ARM 设备 —— 从树梅派 (Raspberry Pi) 到 Chromebook 以及 Nvidia Shield。为 Intel/AMD 架构的 CPU 而编写的传统发行版并不能够在这些 ARM 架构的设备上运行。而一些为 ARM 而编写的发行版却仅仅只能在特定的硬件上运行,比如只能运行在树梅派 (Raspberry Pi) 上的 Raspbian 系统。[Arch Linux ARM](http://archlinuxarm.org/) (ALARM) 的闪光点在于:它是一个基于 Arch Linux 的纯社区支持的发行版,可以在树梅派 (Raspberry Pi)、Chromebook、Android 设备以及 Nvidia Shield 等设备上运行。同时,也由于有了 AUR,该发行版变得更加有趣,你可以安装很多在其他发行版可能无法获取的软件。 + +## 结论 + +在我写完本文的时候,连我自己都震惊了。能够在 Linux 的世界里为大家写点东西真的是很令人激动。不必去管 Linux 统治桌面电脑的时代是否会到来,我们都要一样享受自己使用 Linux 的每一刻快乐时光。 + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/software/applications/878620-the-best-linux-distros-of-2016 + +作者:[Swapnil Bhartiya][a] +译者:[GHLandy](https://github.com/GHLandy) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/61003 From 9870239927f18c8e36a0ef4fb5c8da4ad977268d Mon Sep 17 00:00:00 2001 From: GHLandy Date: Sun, 21 Feb 2016 00:34:51 +0800 Subject: [PATCH 125/582] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E5=8E=9F=E6=96=87=EF=BC=8C=E8=AF=91=E6=96=87=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E6=94=BE=E5=9C=A8=E5=AF=B9=E5=BA=94=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20160218 The Best Linux Distros of 2016.md | 120 ------------------ 1 file changed, 120 deletions(-) delete mode 100644 sources/tech/20160218 The Best Linux Distros of 2016.md diff --git a/sources/tech/20160218 The Best Linux Distros of 2016.md b/sources/tech/20160218 The Best Linux Distros of 2016.md deleted file mode 100644 index fa9a6b6ffa..0000000000 --- a/sources/tech/20160218 The Best Linux Distros of 2016.md +++ /dev/null @@ -1,120 +0,0 @@ -GHLandy Translating - -The Best Linux Distros of 2016 -================================ - -![](http://www.linux.com/images/stories/66866/distro-opensuse.JPG) - -2015 was a very important year for Linux, [both in the enterprise as well as in the consumer space](http://www.cio.com/article/3017983/linux/2015s-most-exciting-linux-devices.html). As a Linux user since 2005, I can see that the operating system has come a long way in the past 10 years. [And, 2016 is going to be even more exciting](http://www.cio.com/article/3017177/linux/11-predictions-for-linux-in-2016.html). In this article, I have picked some of the best distros that will shine in 2016. - -## Best Comeback Distro: openSUSE - -SUSE, the company behind openSUSE, is the oldest Linux company; [it was formed just a year after Linus Torvalds announced Linux](http://www.linux.com/news/software/applications/866964-exclusive-interview-with-suse-president-nils-brauckmann). The company actually predates Linux king Red Hat. SUSE is also the sponsor of the community-based distro [openSUSE](https://www.opensuse.org/). - -In 2015, openSUSE teams decided to come closer to SUSE Linux Enterprise (SLE) so that users could have a distribution that shares its DNA with the enterprise server -- similar to CentOS and Ubuntu. Thus, openSUSE became [openSUSE Leap](https://en.opensuse.org/Portal:Leap), a distribution that’s directly based on SLE SP (service pack) 1. - -The two distros will share the code base to benefit each other -- SUSE will take what’s good in openSUSE and vice versa. With this move, openSUSE is also ditching the regular release cycle, and a new version will be released in sync with SLE. That means each version will have a much longer life cycle. - -As a result of this move, openSUSE has become a very important distribution because potential SLE users can now use openSUSE Leap. That’s not all, however; openSUSE also announced the release of [Tumbleweed](http://www.cio.com/article/3008856/open-source-tools/is-opensuse-tumbleweed-good-enough-for-a-seasoned-arch-user.html), a pure rolling-release version. So, now, users can use either the super-stable openSUSE Leap or the always up-to-date openSUSE Tumbleweed. - -No other distro has made such an impressive comeback in my memory. - -Most Customizable Distro: Arch Linux - -Arch Linux is the best rolling-release distribution out there. Period. Ok, I could be biased because I am an Arch Linux user. However, the reason behind my claim is that Arch excels in many other areas, too, and that’s why I use it as my main operating system. - -[Arch Linux](https://www.archlinux.org/) is a great distro for those who want to learn everything about Linux. Because you have to install everything manually, you learn all the bits and pieces of a Linux-based operating system. - -- Arch is the most customizable distribution. There is no “Arch” flavor of any DE. All you get is a foundation and you can build whatever distro want, on top of it. For good or for worse, unlike openSUSE or Ubuntu there is no extra patching or integration. You get what upstream developers created. Period. - -- Arch Linux is also one of the best rolling releases. It’s always updated. Users always run the latest packages, and they can also run pre-released software through unstable repositories. - -- Arch is also known for having excellent documentation. Arch Wiki is my to-go resource for everything Linux related. - -- What I like the most about Arch is that is offers almost every package and software that’s available for “any” Linux distribution, thanks to the Arch User Repository, aka AUR. - -## Best-Looking Distro: elementary OS - -Different Linux distributions have different focus areas -- in most cases, these are technical differences. In many Linux distributions. the look and feel is an afterthought -- a side project at the mercy of the specific desktop environment. - -[elementary OS](https://elementary.io/) is trying to change all that. Here, design is at the forefront, and the reason is quite obvious. The distro is being developed by designers who have made their name in the Linux world by creating beautiful icons. - -elementary OS is quite strict about the holistic look and feel. The developers have created their own components, including the desktop environment. Additionally, they choose only those applications that fit into the design paradigm. One can find heavy influence of Mac OS X on elementary OS. - -## Best Newcomer: Solus - -![](http://www.linux.com/images/stories/66866/distro-solus.JPG) - -[Solus](https://solus-project.com/) operating system has garnered quite a lot of attention lately. It’s a decent-looking operating system that has been created from scratch. It’s not a derivative of Debian or Ubuntu. It comes with the Budgie desktop environment, which was built from scratch but aims to integrate with Gnome. Solus has the same minimalistic approach as Google’s Chrome OS. - -I have not played with Solus much, but it does look promising. Solus is actually not a “new” OS. It has been around for a while in different forms and names. But the entire project was revived back in 2015 under this new name. - -## Best Cloud OS: Chrome OS - -[Chrome OS](https://www.chromium.org/chromium-os) may not be your typical Linux-based distribution because it’s a browser-based operating system for online activities. However, because it’s based on Linux and its source code is available for anyone to compile, it’s an attractive OS. I use Chrome OS on a daily basis. It’s an excellent, maintenance-free, always updated OS for anyone using a computer purely for web-related activities. Chrome OS, along with Android, deserves all the credit for making Linux popular in the PC and mobile space. - -## Best Laptop OS: Ubuntu MATE - -Most laptops don’t have very high-end hardware, and if you are running a really resource-intensive desktop environment then you won’t have much system resources or battery life at your disposal -- they will be used by the OS itself. That’s where I found [Ubuntu MATE](http://www.cio.com/article/2848475/ubuntu-mate-enterprise-customers.html) to be an excellent operating system. It’s lightweight, yet has all the bells and whistles needed for a pleasant experience. Thanks to its lightweight design, the majority of system resources are free for applications so you can still do some heavy work on it. I also found it to be a great distro on really low-end systems. - -## Best Distro for Old Hardware: Lubuntu - -If you have an old laptop or PC sitting around, breathe new life into it with [Lubuntu](http://lubuntu.net/). Lubuntu uses LXDE, but the project has merged with Razor Qt to create LXQt. Although the latest release 15.04 is still using LXDE, the future versions will be using LXQt. Lubuntu is a decent operating system for old hardware. - -## Best Distro for IoT: Snappy Ubuntu Core - -![](http://www.linux.com/images/stories/66866/distro-ubuntu-studio.JPG) - -Snappy Ubuntu Core is the best Linux-based operating system out there for Internet of Things (IoT) and other such devices. The operating system holds great potential to turn almost everything around us into smart devices -- such as routers, coffeemakers, drones, etc. What makes it even more interesting is the way the software manages updates and offers containerization for added security. - -## Best Distro for Desktops: Linux Mint Cinnamon - -[Linux Mint Cinnamon](http://www.linux.com/news/software/applications/838569-review-linux-mint-172-release/) is the best operating system for desktops and powerful laptops. I will go as far as calling it the Mac OS X of the Linux world. Honestly, I had not been a huge fan of Linux Mint for a long time because of unstable Cinnamon. But, as soon as the developers chose to use LTS as the base, the distro has become incredibly stable. Because the developers don’t have to spend much time worrying about keeping up with Ubuntu, they are now investing all of their time in making Cinnamon better. - -## Best Distro for Games: Steam OS - -Gaming has been a weakness of desktop Linux. Many users dual-boot with Windows just to be able to play games. Valve Software is trying to change that. Valve is a game distributor that offers a client to run games on different platforms. And, Valve has now created their open operating system -- [Steam OS](http://store.steampowered.com/steamos/) -- to create a Linux-based gaming platform. By the end of 2015, partners started shipping Steam machines to the market. - -## Best Distro for Privacy: Tails - -In this age of mass surveillance and tracking by marketers (anonymous tracking for targeted content is acceptable), privacy has become a major issue. If you are someone who needs to keep the government and marketing agencies out of your business, you need an operating system that’s created -- from the ground up -- with privacy in mind. - -And, nothing beats [Tails](https://tails.boum.org/) for this purpose. It’s a Debian-based distribution that offers privacy and anonymity by design. Tails is so good that, according to reports, the NSA considers it a major threat to their mission. - -## Best Distro for Multimedia Production: Ubuntu Studio - -Multimedia production is one of the major weaknesses of Linux-based operating systems. All the professional-grade applications are available for either Windows or Mac OS X. There is no dearth of decent audio/video production software for Linux, but a multimedia production system needs more than just decent applications. It should use a lightweight desktop environment so that precious system resources -- such as CPU and RAM -- are used sparingly by the system itself, leaving them for the multimedia applications. And, the best Linux distribution for multimedia production is [Ubuntu Studio](https://ubuntustudio.org/tour/). It uses Xfce and comes with a broad range of audio, video, and image editing applications. - -## Best Enterprise Distro: SLE/RHEL - -Enterprise customers don’t look for articles like these to choose a distribution to run on their servers. They already know where to go: It’s either [Red Hat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) or [SUSE Linux Enterprise](https://www.suse.com/). These two names have become synonymous with enterprise servers. These companies are also pushing boundaries by innovating in this changing landscape where everything is containerized and becoming software defined. - -## Best Server OS: Debian/CentOS - -If you are looking at running a server, but you can’t afford or don’t want to pay a subscription fee for RHEL or SLE, then there is nothing better than [Debian](https://www.debian.org/) or [CentOS](https://www.centos.org/). These distributions are the gold standard when it comes to community-based servers. And, they are supported for a very long time, so you won’t have to worry about upgrading your system so often. - -## Best Mobile OS: Plasma Mobile - -Although the Linux-based distribution Android is ruling the roost, many in the open source community, including me, still desire a distribution that offers traditional Linux desktop apps on mobile devices. At the same time, it’s better if the distro is run by a community instead of a company so that a user remains in the focus and not the company’s financial goals. And that’s where KDE’s [Plasma Mobile](https://community.kde.org/Plasma/Mobile) brings some hope. - -This Kubuntu-based distribution was launched in 2015. Because the KDE community is known for their adherence to standards and developing stuff in public, I am quite excited about the future of Plasma Mobile. - -## Best Distro for ARM Devices: Arch Linux ARM - -With the success of Android, we are now surrounded by ARM-powered devices -- from Raspberry Pi to Chromebook and Nvidia Shield. The traditional distros written for Intel/AMD processors won’t run on these systems. Some distributions are aimed at ARM, but they are mostly for specific hardware only, such as Raspbian for Raspberry Pi. That’s where [Arch Linux ARM](http://archlinuxarm.org/) (ALARM) shines. It’s a purely community-based distribution that’s based on Arch Linux. You can run it on Raspberry Pi, Chromebooks, Android devices, Nvidia Shield, and what not. What makes this distribution even more interesting is that, thanks to the Arch User Repository (AUR), you can install many applications than you may not get on other distributions. - -## Conclusion - -I was astonished and amazed when I worked on this story. It’s very exciting to see that there is something for everyone in the Linux world. It doesn’t matter if the year of the desktop Linux never arrives. We are happy with our Linux moments! - ------------------------------------------------------------------------------- - -via: http://www.linux.com/news/software/applications/878620-the-best-linux-distros-of-2016 - -作者:[Swapnil Bhartiya][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.linux.com/community/forums/person/61003 From 0bf780e222e649fe3b499313cc074850f07b57ab Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 21 Feb 2016 14:26:56 +0800 Subject: [PATCH 126/582] translating --- ...218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md b/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md index e3cc72cd8d..393ff4b878 100644 --- a/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md +++ b/sources/tech/20160218 How to Set Nginx as Reverse Proxy on Centos7 CPanel.md @@ -1,3 +1,5 @@ +translating----geekpi + How to Set Nginx as Reverse Proxy on Centos7 CPanel ================================================================================ @@ -198,4 +200,4 @@ via: http://linoxide.com/linux-how-to/set-nginx-reverse-proxy-centos-7-cpanel/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 -[a]:http://linoxide.com/author/saheethas/ \ No newline at end of file +[a]:http://linoxide.com/author/saheethas/ From 60edea5ac41b7f818baa3ed4ce163a7bdee44171 Mon Sep 17 00:00:00 2001 From: mudongliang Date: Sun, 21 Feb 2016 14:30:16 +0800 Subject: [PATCH 127/582] Validation --- ...20160218 The Best Linux Distros of 2016.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/translated/tech/20160218 The Best Linux Distros of 2016.md b/translated/tech/20160218 The Best Linux Distros of 2016.md index b0f080a7b6..fdb7cd02b0 100644 --- a/translated/tech/20160218 The Best Linux Distros of 2016.md +++ b/translated/tech/20160218 The Best Linux Distros of 2016.md @@ -3,7 +3,7 @@ ![](http://www.linux.com/images/stories/66866/distro-opensuse.JPG) -[不管是在企业还是在消费者空间](http://www.cio.com/article/3017983/linux/2015s-most-exciting-linux-devices.html),2015 对于 Linux 来说都是极其重要的一年。作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了这个 Linux 过去 10 里的重大发展。[并且,我相信它在 2016 年里会更加令人激动](http://www.cio.com/article/3017177/linux/11-predictions-for-linux-in-2016.html)。在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版来介绍个大家。 +[不管是在企业还是在消费者空间](http://www.cio.com/article/3017983/linux/2015s-most-exciting-linux-devices.html),2015 对于 Linux 来说都是极其重要的一年。作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了 Linux 过去这 10 年里的重大发展,[并且,我相信它在 2016 年里会更加令人激动](http://www.cio.com/article/3017177/linux/11-predictions-for-linux-in-2016.html)。在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版给大家介绍一下。 ## 最易回归的发行版:openSUSE @@ -23,13 +23,13 @@ Arch Linux 是目前最好的滚动式更新的发行版。好吧,我可能有 - 对于那些想要学习 Linux 方方面面的用户来说,[Arch Linux](https://www.archlinux.org/) 无疑是一个绝佳的选择。因为你需要手动安装所有自己需要的东西,这样你会慢慢学到 Linux 系统的所有细节。 -- Arch 是一个可高度定制发行版。任何桌面环境 (DE) 都没有了 “Arch” 的原味。你能够得到的只是一个基础系统,然后你可以在上边构建你所想要的发行版。无论好坏,也不想 openSUSE 或者 Ubuntu 那样,Arch 没有额外的补丁或者集成环境。你得到的基本就是上游开发者所创建的原始软件。 +- Arch 是一个可高度定制发行版。任何桌面环境 (DE) 都没有了 “Arch” 的原味。你能够得到的只是一个基础系统,然后你可以在上边构建你所想要的发行版。无论好坏,也不像 openSUSE 或者 Ubuntu 那样,Arch 没有额外的补丁或者集成环境。你得到的基本就是上游开发者所创建的原始软件。 - Arch Linux 同时也是最好的滚动式更新的发行版之一。它需要经常保持着更新。用户所运行的基本上是最新的软件,当然,也可以通过非稳定仓库运行预发行版的软件。 - Arch 闻名于拥有为数众多的优秀文档。Arch Wiki 是我用以了解所有 Linux 相关事情的外带资源。 -- Arch 中,我最喜欢的是,它提供了“任何” 其他发行版中可用的的包和软件,同时还要感谢 AUR (Arch User Repository,Arch 用户仓库)。 +- Arch 中,我最喜欢的是,它提供了“任何”其他发行版中可用的的包和软件,同时还要感谢 AUR (Arch User Repository,Arch 用户仓库)。 ## 最美观的发行版:elementary OS @@ -45,11 +45,11 @@ elementary OS 相当注重整体外观和用户感觉。开发者创建了他们 [Solus](https://solus-project.com/) 最近获得非常大的关注程度。它是一个外观还可以、从零开始构建的操作系统,而并非 Debian 或者 Ubuntu 的衍生版本。它使用的 Budgie 桌面环境同样是从零开始构建的,但它的目标是兼容 Gnome。Solus 和 Google 的 Chrome OS 一样 —— 一切从简。 -我个人没怎么玩过 Solus,但它看起来很有前途。Solus 实际上并不是一个 “新” 系统。它曾以不同的形式和名称存在来很长时间,但直到 2015 年整个项目才现在这个新名称重归大众视野。 +我个人没怎么玩过 Solus,但它看起来很有前途。Solus 实际上并不是一个 “新” 系统。它曾以不同的形式和名称存在了很长时间,但直到 2015 年整个项目才以现在这个新名称重归大众视野。 ## 最好的云操作系统:Chrome OS -[Chrome OS](https://www.chromium.org/chromium-os) 可能不会成为你的典型 Linux 发行版,毕竟它是基于浏览器的操作系统,主要用以在线活动。但由于基于 Linux 以及任何可以获取其源码进行编译,它同样是一个吸引人的系统。同时我也每天使用 Chrome OS,它是一个优秀、不用自己维护并且总是最新状态的系统,每个人都可以单纯用它来进行 web 相关的活动。Chrome OS 和 Android 对于推动 Linux 在 PC 市场和移动市场的占有率有着不可或缺的功劳。 +[Chrome OS](https://www.chromium.org/chromium-os) 可能不会成为你的典型 Linux 发行版,毕竟它是基于浏览器的操作系统,主要用以在线活动。但由于它基于 Linux 以及任何人都可以获取其源码进行编译,它同样是一个吸引人的系统。同时我也每天使用 Chrome OS,它是一个优秀、不用自己维护并且总是最新状态的系统,每个人都可以单纯用它来进行 web 相关的活动。Chrome OS 和 Android 对于推动 Linux 在 PC 市场和移动市场的占有率有着不可或缺的功劳。 ## 最好的笔记本操作系统:Ubuntu MATE @@ -57,7 +57,7 @@ elementary OS 相当注重整体外观和用户感觉。开发者创建了他们 ## 为老旧硬件支持而生的发行版:Lubuntu -假如你身边拥有一些过时的笔记本或 PC,给它安装 [Lubuntu](http://lubuntu.net/) 来获得重生吧。Lubuntu 使用的是 LXDE 桌面环境,但该项目与 Razor Qt 合并之后,变成了 LXQt。尽管最新的版本 15.04 依旧使用 LXDE,但之后的版本将会使用 LXQt。Lubuntu 对于老旧硬件来说是最合适不过的系统来。 +假如你身边拥有一些过时的笔记本或 PC,给它安装 [Lubuntu](http://lubuntu.net/) 来获得重生吧。Lubuntu 使用的是 LXDE 桌面环境,但该项目与 Razor Qt 合并之后,变成了 LXQt。尽管最新的版本 15.04 依旧使用 LXDE,但之后的版本将会使用 LXQt。Lubuntu 对于老旧硬件来说是最合适不过的系统了。 ## 为物联网 (IoT) 而生的发行版:Snappy Ubuntu Core @@ -67,39 +67,39 @@ Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系 ## 为桌面系统而生的发行版:Linux Mint Cinnamon -[Linux Mint Cinnamon](http://www.linux.com/news/software/applications/838569-review-linux-mint-172-release/) 对于台式机和一些有强大硬件的笔记本来说是最好的操作系统。并且我会尽量把它叫做 Linux 世界里的 Mac OS X。老实说,由于 Cinnamon 的不稳定,我在很长一段时间内并不是 Linux Mint 的忠实粉丝。但是,在开发者使用 LTS (Long Term Support,长期支持)作为基础之后,该发行版就变得难以想象的稳定。因为开发者花费经历来跟上 Ubuntu 的开发进度,他们现在可以将所有精力放到把 Cinnamon 做的更好上边来了。 +[Linux Mint Cinnamon](http://www.linux.com/news/software/applications/838569-review-linux-mint-172-release/) 对于台式机和一些有强大硬件的笔记本来说是最好的操作系统。我会尽量把它叫做 Linux 世界里的 Mac OS X。老实说,由于 Cinnamon 的不稳定,我在很长一段时间内并不是 Linux Mint 的忠实粉丝。但是,在开发者使用 LTS (Long Term Support,长期支持)作为基础之后,该发行版就变得难以想象的稳定。因为开发者不必花费经历来跟上 Ubuntu 的开发进度,他们现在可以将所有精力放到提升 Cinnamon 上。 ## 为游戏而生的发行版:Steam OS -对于桌面版 Linux 来说,玩游戏同样是短板。很多用户为了能够玩游戏,安装了 Linux 和 Windows 双系统。而 Valve 则尝试改变这个局面。Valve 是一个游戏发行商,它提供一个可以跨平台运行游戏的客户端。并且,Valve 也同样创建来它自己的开源操作系统 —— [Steam OS](http://store.steampowered.com/steamos/) —— 为了创建一个基于 Linux 的游戏平台。截至 2015 年底,它的合作伙伴开始把搭载来 Steam OS 的机子推向市场。 +对于桌面版 Linux 来说,玩游戏同样是短板。很多用户为了能够玩游戏,安装了 Linux 和 Windows 双系统。而 Valve 则尝试改变这个局面。Valve 是一个游戏发行商,它提供一个可以跨平台运行游戏的客户端。并且,Valve 也同样创建了它自己的开源操作系统 —— [Steam OS](http://store.steampowered.com/steamos/) —— 为了创建一个基于 Linux 的游戏平台。截至 2015 年底,它的合作伙伴开始把搭载了 Steam OS 的机器推向市场。 ## 为隐私而生的发行版:Tails -在充斥着大量监控和营销者的跟踪 (为目标内容进行的匿名跟踪通常是可接受的),隐私就变成主要问题。如果你向脱离政府或者市场机构的监控和跟踪范围,那么你需要一款始终考虑到隐私问题的操作系统。 +在充斥着大量监控和营销者的跟踪 (为目标内容进行的匿名跟踪通常是可接受的)的岁月,隐私就变成主要问题。如果你想脱离政府或者市场机构的监控和跟踪范围,那么你需要一款始终考虑到隐私问题的操作系统。 -在出于保护隐私的考虑上,没有任何一款系统可以超越 [Tails](https://tails.boum.org/)。它以基于 Debian 的发行版,在设计之初就考虑了隐私和匿名的支持。Tails 非常优秀,而且据报道说,NSA 认为这是对他们的监控的主要威胁之一。 +在出于保护隐私的考虑上,没有任何一款系统可以超越 [Tails](https://tails.boum.org/)。它是一款基于 Debian 的发行版,并且在设计之初就考虑了隐私和匿名的支持。Tails 非常优秀,而且据报道说,NSA 认为这是对他们的监控的主要威胁之一。 ## 为多媒体制作而生的发行版:Ubuntu Studio -基于 Linux 的操作系统有一个明显的弱点,那就是对多媒体制作的支持并不友好。所有在的专业级应用基本只能运行在 Windows 或者 Mac OS X 上。Linux 系统从来都不缺乏像样的音频/视频制作软件,但这样还是远远不够的。应该要有一款轻量级的桌面环境,使得那些宝贵的系统资源 —— 如 CPU 和 RAM —— 尽量少占用,以便用于多媒体制作。目前,[Ubuntu Studio](https://ubuntustudio.org/tour/) 对多媒体制作的支持最好。它使用了 Xfce 桌面环境,并且有应用广泛的音频、视频以及图像编辑应用。 +基于 Linux 的操作系统有一个明显的弱点,那就是对多媒体制作的支持并不友好。所有专业级应用基本只能运行在 Windows 或者 Mac OS X 上。Linux 系统从来都不缺乏像样的音频/视频制作软件,但这样还是远远不够的。应该要有一款轻量级的桌面环境,使得那些宝贵的系统资源 —— 如 CPU 和 RAM —— 尽量少占用,以便用于多媒体制作。目前,[Ubuntu Studio](https://ubuntustudio.org/tour/) 对多媒体制作的支持最好。它使用了 Xfce 桌面环境,并且有各种各样的音频、视频以及图像编辑应用。 ## 最好的企业发行版:SLE/RHEL -企业级用户并不会通过浏览想这样的文章来了解他们的服务器该运行什么发行版。他们通常非常明确该到哪里获取信息:即 [Red Hat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) 或 [SUSE Linux Enterprise](https://www.suse.com/)。这两个名字已经成了企业服务器的代名词了。同时,它们背后的公司也都通过创新来推动一切皆容器并且可以进行软件定义。 +企业级用户并不会通过浏览像这样的文章来了解他们的服务器该运行什么发行版。他们通常非常明确该到哪里获取信息:即 [Red Hat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) 或 [SUSE Linux Enterprise](https://www.suse.com/)。这两个名字已经成了企业服务器的代名词了。同时,它们背后的公司也都通过创新来推动一切皆容器并且可以进行软件定义。 ## 最好的服务器操作系统:Debian/CentOS -假如你在考虑自己运行一台服务器,但有不希望支付 RHEL 或者 SLE 授权的费用,那么 [Debian](https://www.debian.org/) 或者 [CentOS](https://www.centos.org/) 将是你最好的选择。这两个发行版在社区发行版服务器操作系统有着不可动摇的位置。并且它们有着很长的支持期,从而你不必担忧需要经常去上级系统。 +假如你在考虑自己运行一台服务器,但有不希望支付 RHEL 或者 SLE 授权的费用,那么 [Debian](https://www.debian.org/) 或者 [CentOS](https://www.centos.org/) 将是你最好的选择。这两个发行版在社区发行版服务器操作系统有着不可动摇的地位。并且它们有着长期支持,你不必担忧需要经常去升级系统。 ## 最好的移动操作系统:Plasma Mobile -尽管,基于 Linux 的 Android 系统称雄于移动操作系统市场,但是大多数的开源社区 —— 也包括我在内 —— 也仍然强烈希望能有一个发行版能够为移动设备提供传统 Linux 的桌面应用。同时,这样的一个发行版由开源社区来维护会比由商业公司来维护好的多,只有这样用户群才能才能成为这个发行版的焦点,而不应该有公司的商业目标决定这个发行版的发展趋势。而 KDE 的 [Plasma Mobile](https://community.kde.org/Plasma/Mobile) 刚好实现来我们的愿望。 +尽管,基于 Linux 的 Android 系统称雄于移动操作系统市场,但是大多数的开源社区 —— 也包括我在内 —— 也仍然强烈希望能有一个发行版能够为移动设备提供传统 Linux 的桌面应用。同时,这样的一个发行版由开源社区来维护会比由商业公司来维护好的多,只有这样用户群才能成为这个发行版的焦点,而不应该由公司的商业目标来决定这个发行版的发展趋势。而 KDE 的 [Plasma Mobile](https://community.kde.org/Plasma/Mobile) 刚好实现了我们的愿望。 -这个 基于 Kubuntu 的发行版始于 2015 年。因为 KDE 社区以坚守标准和为公众开发应用而闻名,我非常期待 Plasma Mobile 能够一直坚持下去。 +这个基于 Kubuntu 的发行版始于 2015 年。因为 KDE 社区以坚守标准和为公众开发应用而闻名,我非常期待 Plasma Mobile 能够一直坚持下去。 ## 为 ARM 设备而生的发行版:Arch Linux ARM -随着 Android 系统的成功,我们的生活也围绕者越来越多的 ARM 设备 —— 从树梅派 (Raspberry Pi) 到 Chromebook 以及 Nvidia Shield。为 Intel/AMD 架构的 CPU 而编写的传统发行版并不能够在这些 ARM 架构的设备上运行。而一些为 ARM 而编写的发行版却仅仅只能在特定的硬件上运行,比如只能运行在树梅派 (Raspberry Pi) 上的 Raspbian 系统。[Arch Linux ARM](http://archlinuxarm.org/) (ALARM) 的闪光点在于:它是一个基于 Arch Linux 的纯社区支持的发行版,可以在树梅派 (Raspberry Pi)、Chromebook、Android 设备以及 Nvidia Shield 等设备上运行。同时,也由于有了 AUR,该发行版变得更加有趣,你可以安装很多在其他发行版可能无法获取的软件。 +随着 Android 系统的成功,我们的生活也围绕者越来越多的 ARM 设备 —— 从树莓派 (Raspberry Pi) 到 Chromebook 以及 Nvidia Shield。为 Intel/AMD 架构的 CPU 而编写的传统发行版并不能够在这些 ARM 架构的设备上运行。而一些为 ARM 而编写的发行版却仅仅只能在特定的硬件上运行,比如只能运行在树莓派 (Raspberry Pi) 上的 Raspbian 系统。这就是 [Arch Linux ARM](http://archlinuxarm.org/) (ALARM) 的闪光点所在。它是一个基于 Arch Linux 的纯社区支持的发行版,可以在树梅派 (Raspberry Pi)、Chromebook、Android 设备以及 Nvidia Shield 等设备上运行。同时,也由于 AUR,该发行版变得更加有趣,你可以安装很多在其他发行版可能无法获取的软件。 ## 结论 @@ -111,7 +111,7 @@ via: http://www.linux.com/news/software/applications/878620-the-best-linux-distr 作者:[Swapnil Bhartiya][a] 译者:[GHLandy](https://github.com/GHLandy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[mudongliang](https://github.com/mudongliang) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 4ffed9195b05f144b681d003f4b2d193ac0d576b Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 21 Feb 2016 14:48:14 +0800 Subject: [PATCH 128/582] PUB:20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast @oska874 @YuKing-net @locez --- ...218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md index df872dd49e..9eb9e779b9 100644 --- a/published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md +++ b/published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md @@ -13,7 +13,7 @@ Canonical 宣称 Pro 5 是目前已发布了的 Ubuntu 智能手机中最强大的一个,他们说的是对的,但还有一点没有被提及,即如果不考虑平板,它也是最大的 Ubuntu Touch 设备。魅族 Pro 5 采用了一颗 Exynos 7420 8 核处理器和 5.7 英寸分辨率为 1920x1080 的 AMOLED 屏,配备第三代康宁大猩猩玻璃以及 LPDDR4 内存技术。 -很多人也许会问这个新手机的系统是否可以和桌面版系统一样,现在看起来用户是运气不错。 +很多人也许会问这个新手机的系统是否可以和桌面版系统一样,现在看起来真是如此。 该公司解释说,“Canonical 一直致力于通过向各种个人设备提供一个统一的自适应平台来重塑个人计算的视觉表现。因此尽管魅族 Pro 5 缺少 MHL 输出,但它运行的是最新的代码,这些代码与新近发布的平板和其它设备一样,可提供一种接近传统桌面的体验。” From dd6751d7e7254673b2e51aa8a6f3cb847f0039ce Mon Sep 17 00:00:00 2001 From: mudongliang Date: Sun, 21 Feb 2016 15:04:15 +0800 Subject: [PATCH 129/582] Translating --- .../tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md b/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md index 2ef5effbb7..6846dbf49d 100644 --- a/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md +++ b/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md @@ -1,3 +1,5 @@ +mudongliang + Linux Mint 18 Will Get Its Own Set Of Apps ============================================= From 329cff65e44a490cdd9004dc1932cb1665b9cc98 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 21 Feb 2016 15:06:23 +0800 Subject: [PATCH 130/582] =?UTF-8?q?=E4=B8=AD=E6=96=87=E6=8E=92=E7=89=88?= =?UTF-8?q?=E6=8C=87=E5=8C=97=EF=BC=88=E7=AE=80=E4=BD=93=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chinese-copywriting-guidelines.md | 301 ------------------------------ 中文排版指北.md | 300 +++++++++++++++++++++++++++++ 2 files changed, 300 insertions(+), 301 deletions(-) delete mode 100644 chinese-copywriting-guidelines.md create mode 100644 中文排版指北.md diff --git a/chinese-copywriting-guidelines.md b/chinese-copywriting-guidelines.md deleted file mode 100644 index c2d0d207bd..0000000000 --- a/chinese-copywriting-guidelines.md +++ /dev/null @@ -1,301 +0,0 @@ -# 中文文案排版指北 -[![devDependency Status](https://david-dm.org/sparanoid/chinese-copywriting-guidelines/dev-status.svg)](https://david-dm.org/sparanoid/chinese-copywriting-guidelines#info=devDependencies) -[![Built with Almace Scaffolding](https://d349cztnlupsuf.cloudfront.net/amsf-badge.svg)](http://sparanoid.com/note/chinese-copywriting-guidelines/) - -統一中文文案、排版的相關用法,降低團隊成員之間的溝通成本,增強網站氣質。 - -Other languages: - -- [English](README.en.md) -- [Chinese Traditional](README.md) -- [Chinese Simplifed](https://github.com/mzlogin/chinese-copywriting-guidelines) - ------ - -## 目次 - -- [空格](#空格) - - [中英文之間需要增加空格](#中英文之間需要增加空格) - - [中文與數字之間需要增加空格](#中文與數字之間需要增加空格) - - [數字與單位之間需要增加空格](#數字與單位之間需要增加空格) - - [全形標點與其他字符之間不加空格](#全形標點與其他字符之間不加空格) - - [`-ms-text-autospace` to the rescue?](#-ms-text-autospace-to-the-rescue) -- [標點符號](#標點符號) - - [不重複使用標點符號](#不重複使用標點符號) -- [全形和半形](#全形和半形) - - [使用全形中文標點](#使用全形中文標點) - - [數字使用半形字符](#數字使用半形字符) - - [遇到完整的英文整句、特殊名詞,其內容使用半形標點](#遇到完整的英文整句特殊名詞其內容使用半形標點) -- [名詞](#名詞) - - [專有名詞使用正確的大小寫](#專有名詞使用正確的大小寫) - - [不要使用不地道的縮寫](#不要使用不地道的縮寫) -- [爭議](#爭議) - - [鏈接之間增加空格](#鏈接之間增加空格) - - [簡體中文使用直角引號](#簡體中文使用直角引號) -- [工具](#工具) -- [誰在這樣做?](#誰在這樣做) -- [參考文獻](#參考文獻) - -## 空格 - -「有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。 - -與大家共勉之。」——[vinta/paranoid-auto-spacing](https://github.com/vinta/pangu.js) - -### 中英文之間需要增加空格 - -正確: - -> 在 LeanCloud 上,數據存儲是圍繞 `AVObject` 進行的。 - -錯誤: - -> 在LeanCloud上,數據存儲是圍繞`AVObject`進行的。 - -> 在 LeanCloud上,數據存儲是圍繞`AVObject` 進行的。 - -完整的正確用法: - -> 在 LeanCloud 上,数据存储是围绕 `AVObject` 进行的。每个 `AVObject` 都包含了与 JSON 兼容的 key-value 对应的数据。数据是 schema-free 的,你不需要在每个 `AVObject` 上提前指定存在哪些键,只要直接设定对应的 key-value 即可。 - -例外:「豆瓣FM」等產品名詞,按照官方所定義的格式書寫。 - -### 中文與數字之間需要增加空格 - -正確: - -> 今天出去買菜花了 5000 元。 - -錯誤: - -> 今天出去買菜花了 5000元。 - -> 今天出去買菜花了5000元。 - -### 數字與單位之間需要增加空格 - -正確: - -> 我家的光纖入屋寬頻有 10 Gbps,SSD 一共有 20 TB。 - -錯誤: - -> 我家的光纖入屋寬頻有 10Gbps,SSD 一共有 20TB。 - -例外:度/百分比與數字之間不需要增加空格: - -正確: - -> 今天是 233° 的高溫。 - -> 新 MacBook Pro 有 15% 的 CPU 性能提升。 - -錯誤: - -> 今天是 233 ° 的高溫。 - -> 新 MacBook Pro 有 15 % 的 CPU 性能提升。 - -### 全形標點與其他字符之間不加空格 - -正確: - -> 剛剛買了一部 iPhone,好開心! - -錯誤: - -> 剛剛買了一部 iPhone ,好開心! - -### `-ms-text-autospace` to the rescue? - -Microsoft 有個 [`-ms-text-autospace`](http://msdn.microsoft.com/en-us/library/ie/ms531164(v=vs.85).aspx) 的 CSS 屬性可以實現自動為中英文之間增加空白。不過目前並未普及,另外在其他應用場景,例如 OS X、iOS 的用戶介面目前并不存在這個特性,所以請繼續保持隨手加空格的習慣。 - -## 標點符號 - -### 不重複使用標點符號 - -正確: - -> 德國隊竟然戰勝了巴西隊! - -> 她竟然對你說「喵」?! - -錯誤: - -> 德國隊竟然戰勝了巴西隊!! - -> 德國隊竟然戰勝了巴西隊!!!!!!!! - -> 她竟然對你說「喵」??!! - -> 她竟然對你說「喵」?!?!??!! - -## 全形和半形 - -不明白什麼是全形(全角)與半形(半角)符號?請查看維基百科詞條『[全形和半形](http://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2)』。 - -### 使用全形中文標點 - -正確: - -> 嗨!你知道嘛?今天前台的小妹跟我說「喵」了哎! - -> 核磁共振成像(NMRI)是什麼原理都不知道?JFGI! - -錯誤: - -> 嗨! 你知道嘛? 今天前台的小妹跟我說 "喵" 了哎! - -> 嗨!你知道嘛?今天前台的小妹跟我說"喵"了哎! - -> 核磁共振成像 (NMRI) 是什麼原理都不知道? JFGI! - -> 核磁共振成像(NMRI)是什麼原理都不知道?JFGI! - -### 數字使用半形字符 - -正確: - -> 這件蛋糕只賣 1000 元。 - -錯誤: - -> 這件蛋糕只賣 1000 元。 - -例外:在設計稿、宣傳海報中如出現極少量數字的情形時,為方便文字對齊,是可以使用全形數字的。 - -### 遇到完整的英文整句、特殊名詞,其內容使用半形標點 - -正確: - -> 賈伯斯那句話是怎麼說的?「Stay hungry, stay foolish.」 - -> 推薦你閱讀《Hackers & Painters: Big Ideas from the Computer Age》,非常的有趣。 - -錯誤: - -> 賈伯斯那句話是怎麼說的?「Stay hungry,stay foolish。」 - -> 推薦你閱讀《Hackers&Painters:Big Ideas from the Computer Age》,非常的有趣。 - -## 名詞 - -### 專有名詞使用正確的大小寫 - -大小寫相關用法原屬於英文書寫範疇,不屬於本 wiki 討論內容,在這裡只對部分易錯用法進行簡述。 - -正確: - -> 使用 GitHub 登錄 - -> 我們的客戶有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook, Inc.。 - -錯誤: - -> 使用 github 登錄 - -> 使用 GITHUB 登錄 - -> 使用 Github 登錄 - -> 使用 gitHub 登錄 - -> 使用 gイんĤЦ8 登錄 - -> 我們的客戶有 github、foursquare、microsoft corporation、google、facebook, inc.。 - -> 我們的客戶有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。 - -> 我們的客戶有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。 - -> 我們的客戶有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。 - -> 我們的客戶有 gイんĤЦ8、キouЯƧquムгє、๓เςг๏ร๏Ŧt ς๏гק๏гคtเ๏ภn、900913、ƒ4ᄃëв๏๏к, IПᄃ.。 - -注意:當網頁中需要配合整體視覺風格而出現全部大寫/小寫的情形,HTML 中請使用標準的大小寫規範進行書寫;並通過 `text-transform: uppercase;`/`text-transform: lowercase;` 對表現形式進行定義。 - -### 不要使用不地道的縮寫 - -正確: - -> 我們需要一位熟悉 JavaScript、HTML5,至少理解一种框架(如 Backbone.js、AngularJS、React 等)的前端開發者。 - -錯誤: - -> 我們需要一位熟悉 Js、h5,至少理解一种框架(如 backbone、angular、RJS 等)的 FED。 - -## 爭議 - -以下用法略帶有個人色彩,既:無論是否遵循下述規則,從語法的角度來講都是**正確**的。 - -### 鏈接之間增加空格 - -用法: - -> 请 [提交一个 issue](#) 并分配给相关同事。 - -> 訪問我們網站的最新動態,請 [點擊這裡](#) 進行訂閱! - -對比用法: - -> 请[提交一个 issue](#) 并分配给相关同事。 - -> 訪問我們網站的最新動態,請[點擊這裡](#)進行訂閱! - -### 簡體中文使用直角引號 - -用法: - -> 「老师,『有条不紊』的『紊』是什么意思?」 - -對比用法: - -> “老师,‘有条不紊’的‘紊’是什么意思?” - -## 工具 - -倉庫 | 語言 ---- | --- -[vinta/paranoid-auto-spacing](https://github.com/vinta/paranoid-auto-spacing) | JavaScript -[huei90/pangu.node](https://github.com/huei90/pangu.node) | Node.js -[huacnlee/auto-correct](https://github.com/huacnlee/auto-correct) | Ruby -[sparanoid/space-lover](https://github.com/sparanoid/space-lover) | PHP (WordPress) -[nauxliu/auto-correct](https://github.com/NauxLiu/auto-correct) | PHP -[hotoo/pangu.vim](https://github.com/hotoo/pangu.vim) | Vim -[sparanoid/grunt-auto-spacing](https://github.com/sparanoid/grunt-auto-spacing) | Node.js (Grunt) -[hjiang/scripts/add-space-between-latin-and-cjk](https://github.com/hjiang/scripts/blob/master/add-space-between-latin-and-cjk) | Python - -## 誰在這樣做? - -網站 | 文案 | UGC ---- | --- | --- -[Apple 中國](http://www.apple.com/cn/) | Yes | N/A -[Apple 香港](http://www.apple.com/hk/) | Yes | N/A -[Apple 台灣](http://www.apple.com/tw/) | Yes | N/A -[Microsoft 中國](http://www.microsoft.com/zh-cn/) | Yes | N/A -[Microsoft 香港](http://www.microsoft.com/zh-hk/) | Yes | N/A -[Microsoft 台灣](http://www.microsoft.com/zh-tw/) | Yes | N/A -[LeanCloud](https://leancloud.cn/) | Yes | N/A -[知乎](https://www.zhihu.com/) | Yes | 部分用戶達成 -[V2EX](https://www.v2ex.com/) | Yes | Yes -[SegmentFault](https://segmentfault.com/) | Yes | 部分用戶達成 -[Apple4us](http://apple4us.com/) | Yes | N/A -[豌豆荚](https://www.wandoujia.com/) | Yes | N/A -[Ruby China](https://ruby-china.org/) | Yes | 標題達成 -[PHPHub](https://phphub.org/) | Yes | 標題達成 - -## 參考文獻 - -- [Guidelines for Using Capital Letters - About.com](http://grammar.about.com/od/punctuationandmechanics/a/Guidelines-For-Using-Capital-Letters.htm) -- [Letter case - Wikipedia](http://en.wikipedia.org/wiki/Letter_case) -- [Punctuation - Oxford Dictionaries](http://www.oxforddictionaries.com/words/punctuation) -- [Punctuation - The Purdue OWL](https://owl.english.purdue.edu/owl/section/1/6/) -- [How to Use English Punctuation Correctly - wikiHow](http://www.wikihow.com/Use-English-Punctuation-Correctly) -- [格式 - openSUSE](https://zh.opensuse.org/index.php?title=Help:%E6%A0%BC%E5%BC%8F) -- [全形和半形 - 維基百科](http://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2) -- [引號 - 維基百科](http://zh.wikipedia.org/wiki/%E5%BC%95%E8%99%9F) -- [疑問驚嘆號 - 維基百科](http://zh.wikipedia.org/wiki/%E7%96%91%E5%95%8F%E9%A9%9A%E5%98%86%E8%99%9F) - -## CopyRight - -[中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines) diff --git a/中文排版指北.md b/中文排版指北.md new file mode 100644 index 0000000000..8f54947f8f --- /dev/null +++ b/中文排版指北.md @@ -0,0 +1,300 @@ +# 中文文案排版指北 +[![devDependency Status](https://david-dm.org/mzlogin/chinese-copywriting-guidelines/dev-status.svg)](https://david-dm.org/mzlogin/chinese-copywriting-guidelines#info=devDependencies) + +统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。 + +Other languages: + +- [English](https://github.com/mzlogin/chinese-copywriting-guidelines/blob/Simplified/README.en.md) +- [Chinese Traditional](https://github.com/sparanoid/chinese-copywriting-guidelines) +- [Chinese Simplified](README.md) + +----- + +## 目录 + +- [空格](#空格) + - [中英文之间需要增加空格](#中英文之间需要增加空格) + - [中文与数字之间需要增加空格](#中文与数字之间需要增加空格) + - [数字与单位之间需要增加空格](#数字与单位之间需要增加空格) + - [全角标点与其他字符之间不加空格](#全角标点与其他字符之间不加空格) + - [`-ms-text-autospace` to the rescue?](#-ms-text-autospace-to-the-rescue) +- [标点符号](#标点符号) + - [不重复使用标点符号](#不重复使用标点符号) +- [全角和半角](#全角和半角) + - [使用全角中文标点](#使用全角中文标点) + - [数字使用半角字符](#数字使用半角字符) + - [遇到完整的英文整句、特殊名词,其內容使用半角标点](#遇到完整的英文整句特殊名词其內容使用半角标点) +- [名词](#名词) + - [专有名词使用正确的大小写](#专有名词使用正确的大小写) + - [不要使用不地道的缩写](#不要使用不地道的缩写) +- [争议](#争议) + - [链接之间增加空格](#链接之间增加空格) + - [简体中文使用直角引号](#简体中文使用直角引号) +- [工具](#工具) +- [谁在这样做?](#谁在这样做) +- [参考文献](#参考文献) + +## 空格 + +「有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。 + +与大家共勉之。」——[vinta/paranoid-auto-spacing](https://github.com/vinta/pangu.js) + +### 中英文之间需要增加空格 + +正确: + +> 在 LeanCloud 上,数据存储是围绕 `AVObject` 进行的。 + +错误: + +> 在LeanCloud上,数据存储是围绕`AVObject`进行的。 + +> 在 LeanCloud上,数据存储是围绕`AVObject` 进行的。 + +完整的正确用法: + +> 在 LeanCloud 上,数据存储是围绕 `AVObject` 进行的。每个 `AVObject` 都包含了与 JSON 兼容的 key-value 对应的数据。数据是 schema-free 的,你不需要在每个 `AVObject` 上提前指定存在哪些键,只要直接设定对应的 key-value 即可。 + +例外:「豆瓣FM」等产品名词,按照官方所定义的格式书写。 + +### 中文与数字之间需要增加空格 + +正确: + +> 今天出去买菜花了 5000 元。 + +错误: + +> 今天出去买菜花了 5000元。 + +> 今天出去买菜花了5000元。 + +### 数字与单位之间需要增加空格 + +正确: + +> 我家的光纤入户宽带有 10 Gbps,SSD 一共有 20 TB。 + +错误: + +> 我家的光纤入户宽带有 10Gbps,SSD 一共有 10TB。 + +例外:度/百分比与数字之间不需要增加空格: + +正确: + +> 今天是 233° 的高温。 + +> 新 MacBook Pro 有 15% 的 CPU 性能提升。 + +错误: + +> 今天是 233 ° 的高温。 + +> 新 MacBook Pro 有 15 % 的 CPU 性能提升。 + +### 全角标点与其他字符之间不加空格 + +正确: + +> 刚刚买了一部 iPhone,好开心! + +错误: + +> 刚刚买了一部 iPhone ,好开心! + +### `-ms-text-autospace` to the rescue? + +Microsoft 有个 [`-ms-text-autospace`](http://msdn.microsoft.com/en-us/library/ie/ms531164(v=vs.85).aspx) 的 CSS 属性可以实现自动为中英文之间增加空白。不过目前并未普及,另外在其他应用场景,例如 OS X、iOS 的用户界面目前并不存在这个特性,所以请继续保持随手加空格的习惯。 + +## 标点符号 + +### 不重复使用标点符号 + +正确: + +> 德国队竟然战胜了巴西队! + +> 她竟然对你说「喵」?! + +错误: + +> 德国队竟然战胜了巴西队!! + +> 德国队竟然战胜了巴西队!!!!!!!! + +> 她竟然对你说「喵」??!! + +> 她竟然对你说「喵」?!?!??!! + +## 全角和半角 + +不明白什么是全角(全形)与半角(半形)符号?请查看维基百科词条『[全角和半角](http://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2)』。 + +### 使用全角中文标点 + +正确: + +> 嗨!你知道嘛?今天前台的小妹跟我说「喵」了哎! + +> 核磁共振成像(NMRI)是什么原理都不知道?JFGI! + +错误: + +> 嗨! 你知道嘛? 今天前台的小妹跟我说 "喵" 了哎! + +> 嗨!你知道嘛?今天前台的小妹跟我说"喵"了哎! + +> 核磁共振成像 (NMRI) 是什么原理都不知道? JFGI! + +> 核磁共振成像(NMRI)是什么原理都不知道?JFGI! + +### 数字使用半角字符 + +正确: + +> 这件蛋糕只卖 1000 元。 + +错误: + +> 这件蛋糕只卖 1000 元。 + +例外:在设计稿、宣传海报中如出现极少量数字的情形时,为方便文字对齐,是可以使用全角数字的。 + +### 遇到完整的英文整句、特殊名词,其內容使用半角标点 + +正确: + +> 乔布斯那句话是怎么说的?「Stay hungry, stay foolish.」 + +> 推荐你阅读《Hackers & Painters: Big Ideas from the Computer Age》,非常的有趣。 + +错误: + +> 乔布斯那句话是怎么说的?「Stay hungry,stay foolish。」 + +> 推荐你阅读《Hackers&Painters:Big Ideas from the Computer Age》,非常的有趣。 + +## 名词 + +### 专有名词使用正确的大小写 + +大小写相关用法原属于英文书写范畴,不属于本 wiki 讨论內容,在这里只对部分易错用法进行简述。 + +正确: + +> 使用 GitHub 登录 + +> 我们的客户有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook, Inc.。 + +错误: + +> 使用 github 登录 + +> 使用 GITHUB 登录 + +> 使用 Github 登录 + +> 使用 gitHub 登录 + +> 使用 gイんĤЦ8 登录 + +> 我们的客户有 github、foursquare、microsoft corporation、google、facebook, inc.。 + +> 我们的客户有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。 + +> 我们的客户有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。 + +> 我们的客户有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。 + +> 我们的客户有 gイんĤЦ8、キouЯƧquムгє、๓เςг๏ร๏Ŧt ς๏гק๏гคtเ๏ภn、900913、ƒ4ᄃëв๏๏к, IПᄃ.。 + +注意:当网页中需要配合整体视觉风格而出现全部大写/小写的情形,HTML 中请使用标准的大小写规范进行书写;并通过 `text-transform: uppercase;`/`text-transform: lowercase;` 对表现形式进行定义。 + +### 不要使用不地道的缩写 + +正确: + +> 我们需要一位熟悉 JavaScript、HTML5,至少理解一种框架(如 Backbone.js、AngularJS、React 等)的前端开发者。 + +错误: + +> 我们需要一位熟悉 Js、h5,至少理解一种框架(如 backbone、angular、RJS 等)的 FED。 + +## 争议 + +以下用法略带有个人色彩,既:无论是否遵循下述规则,从语法的角度来讲都是**正确**的。 + +### 链接之间增加空格 + +用法: + +> 请 [提交一个 issue](#) 并分配给相关同事。 + +> 访问我们网站的最新动态,请 [点击这里](#) 进行订阅! + +对比用法: + +> 请[提交一个 issue](#) 并分配给相关同事。 + +> 访问我们网站的最新动态,请[点击这里](#)进行订阅! + +### 简体中文使用直角引号 + +用法: + +> 「老师,『有条不紊』的『紊』是什么意思?」 + +对比用法: + +> “老师,‘有条不紊’的‘紊’是什么意思?” + +## 工具 + +仓库 | 语言 +--- | --- +[vinta/paranoid-auto-spacing](https://github.com/vinta/paranoid-auto-spacing) | JavaScript +[huei90/pangu.node](https://github.com/huei90/pangu.node) | Node.js +[huacnlee/auto-correct](https://github.com/huacnlee/auto-correct) | Ruby +[sparanoid/space-lover](https://github.com/sparanoid/space-lover) | PHP (WordPress) +[nauxliu/auto-correct](https://github.com/NauxLiu/auto-correct) | PHP +[hotoo/pangu.vim](https://github.com/hotoo/pangu.vim) | Vim +[sparanoid/grunt-auto-spacing](https://github.com/sparanoid/grunt-auto-spacing) | Node.js (Grunt) +[hjiang/scripts/add-space-between-latin-and-cjk](https://github.com/hjiang/scripts/blob/master/add-space-between-latin-and-cjk) | Python + +## 谁在这样做? + +网站 | 文案 | UGC +--- | --- | --- +[Apple 中国](http://www.apple.com/cn/) | Yes | N/A +[Apple 香港](http://www.apple.com/hk/) | Yes | N/A +[Apple 台湾](http://www.apple.com/tw/) | Yes | N/A +[Microsoft 中国](http://www.microsoft.com/zh-cn/) | Yes | N/A +[Microsoft 香港](http://www.microsoft.com/zh-hk/) | Yes | N/A +[Microsoft 台湾](http://www.microsoft.com/zh-tw/) | Yes | N/A +[LeanCloud](https://leancloud.cn/) | Yes | N/A +[知乎](https://www.zhihu.com/) | Yes | 部分用户达成 +[V2EX](https://www.v2ex.com/) | Yes | Yes +[SegmentFault](https://segmentfault.com/) | Yes | 部分用户达成 +[Apple4us](http://apple4us.com/) | Yes | N/A +[豌豆荚](https://www.wandoujia.com/) | Yes | N/A +[Ruby China](https://ruby-china.org/) | Yes | 标题达成 +[PHPHub](https://phphub.org/) | Yes | 标题达成 + +## 参考文献 + +- [Guidelines for Using Capital Letters](http://grammar.about.com/od/punctuationandmechanics/a/Guidelines-For-Using-Capital-Letters.htm) +- [Letter case - Wikipedia](http://en.wikipedia.org/wiki/Letter_case) +- [Punctuation - Oxford Dictionaries](http://www.oxforddictionaries.com/words/punctuation) +- [Punctuation - The Purdue OWL](https://owl.english.purdue.edu/owl/section/1/6/) +- [How to Use English Punctuation Corrently - wikiHow](http://www.wikihow.com/Use-English-Punctuation-Correctly) +- [格式 - openSUSE](https://zh.opensuse.org/index.php?title=Help:%E6%A0%BC%E5%BC%8F) +- [全角和半角 - 维基百科](http://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2) +- [引号 - 维基百科](http://zh.wikipedia.org/wiki/%E5%BC%95%E8%99%9F) +- [疑问惊叹号 - 维基百科](http://zh.wikipedia.org/wiki/%E7%96%91%E5%95%8F%E9%A9%9A%E5%98%86%E8%99%9F) + +## CopyRight + +[中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines) From d4fc7ecab45e6ce71c4ff1f0fee87e2bf1e97bae Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 21 Feb 2016 15:07:52 +0800 Subject: [PATCH 131/582] translated --- ...ser For Each Incorrect Password Attempt.md | 59 ------------------- ...ser For Each Incorrect Password Attempt.md | 58 ++++++++++++++++++ 2 files changed, 58 insertions(+), 59 deletions(-) delete mode 100644 sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md create mode 100644 translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md diff --git a/sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md b/sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md deleted file mode 100644 index 8db9dfa7b4..0000000000 --- a/sources/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md +++ /dev/null @@ -1,59 +0,0 @@ -Translating---geekpi - -Make Sudo Insult User For Each Incorrect Password Attempt -=========================================================== - -You can have lots of fun in Linux terminal. And I am not talking about those funny commands to [run a train in Linux terminal](http://itsfoss.com/ubuntu-terminal-train/). - -I am talking about little tweaks in the terminal that will lighten up your mood. In a previous article, you learnt [how to increase sudo timeout in Linux terminal](http://itsfoss.com/change-sudo-password-timeout-ubuntu/). In today’s fun post, I’ll show you how you can make sudo to insult you (or other users) when incorrect password is attempted with sudo command. - -Confused what I am talking about? Here, take a look at this gif to get a gist of how sudo can insult you for typing in the incorrect password. - -![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux.gif) - -Now, why would you do that and take insults? After all, insults are not going to brighten up your day, is it? - -To me, this little tweak is funny and is better than the plain old “incorrect password” error message. Moreover, I can show it off to my friends (in this case you, via It’s FOSS) to amuse them. I am pretty sure you can come up with your own reason to use this tweak. - -## Enable insults in sudo - -You can enable insults in `sudo` by adding the following line in `sudo` configuration: - -``` -Defaults insults -``` - -Let’s see how to do that. Open a terminal and use the following command: - -``` -sudo visudo -``` - -This should open the configuration file in [nano](http://www.nano-editor.org/). Yeah, I know that traditionally ‘visudo’ should open the `/etc/sudoers` file in Vi editor, but Ubuntu and Ubuntu based Linux distribution will open it in nano. Since we are talking about Vi, here is a [cheat sheet for Vi editor](http://itsfoss.com/download-vi-cheat-sheet/) that could come handy if you decide to use Vi. - -Coming back to editing the sudeors file, you need to find the section where Defaults are listed. Luckily, it is in the beginning itself. Just add “Defaults insults” line to it, like this: - -![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint.png) - -If you are using nano, use `Ctrl+X` to quit the editor. At the time of quitting, it will ask you if you want to save the changes or not. To save the changes, press `Y`. - -Once you have saved the changes in sudoers file, open a terminal and use any command with sudo. Deliberately type wrong password and enjoy the abuses :) - -sudo could be nasty. See, it even threatens me of consequences if I type incorrect password again. LOL. - -![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint-1.jpeg) - -If you like this terminal hack, check out other [terminal tricks](http://itsfoss.com/category/terminal-tricks/) posts as well. If you have other such fun tweaks and hacks, do share it in the comment box below. - - ------------------------------------------------------------------------------- - -via: http://itsfoss.com/sudo-insult-linux/ - -作者:[ABHISHEK][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/abhishek/ diff --git a/translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md b/translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md new file mode 100644 index 0000000000..0a0008ab8d --- /dev/null +++ b/translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md @@ -0,0 +1,58 @@ +让sudo在用户输错密码时侮辱用户 +=========================================================== + +你在Linux终端中会有很多的乐趣。我今天要讲的不是在[终端中跑火车](http://itsfoss.com/ubuntu-terminal-train/)。 + +我今天要讲的技巧可以放松你的心情。前面一篇文章中,你学习了[如何在命令行中增加sudo命令的超时](http://itsfoss.com/change-sudo-password-timeout-ubuntu/)。今天的文章中,我会向你展示如让sudo在输错密码的时候侮辱你(或者其他人)。 + + +对我讲的感到疑惑?这里,让我们看下这张gif来了解sudo如何在你输错密码之后侮辱你的。 + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux.gif) + +现在,你为什要这么做?毕竟,侮辱不会让你的一天开心,不是么? + +对我来说,一点小技巧都是有趣的,并且要比以前的“密码错误”的错误提示更有趣。另外,我可以向我的朋友展示娱乐(这个例子中是通过自由开源软件)。我很肯定你有你自己的里有来使用这个技巧的。 + +## 在sudo中启用侮辱 + +你可以在`sudo`配置中增加下面的行来启用侮辱功能: + +``` +Defaults insults +``` + +让我们看看该如何做。打开终端并使用下面的命令: + +``` +sudo visudo +``` + +这会在[nano](http://www.nano-editor.org/)中打开配置文件。使得,我知道传统的‘visudo’应该在vi中打开`/etc/sudoers` 文件,但是Ubuntu及基于它的发行版会使用nano打开。由于我们再讨论vi,这里有一份[vi速查表](http://itsfoss.com/download-vi-cheat-sheet)可以在你决定使用vi的时候使用。 + +回到编辑sudeors文件界面,你需要找出Defaults所在的行。幸运的是,只需要在文件的开头加上“Defaults insults”,就像这样: + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint.png) + +如果你正在使用nano,使用`Ctrl+X`来退出编辑器。在退出的时候,它会询问你是否保存更改。要保存更改,按下“Y”。 + +一旦你保存了sudoers文件之后,打开终端并在任何命令中使用sudo。故意输错密码病享受辱骂:) + +sudo可能会讨厌的。看见没,他甚至在我再次输错之后威胁我。哈哈 + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint-1.jpeg) + +如果你喜欢这个终端技巧,你也可以查看[其他终端技巧的文章](http://itsfoss.com/category/terminal-tricks/)。如果你有其他有趣的技巧,在评论中分享。 + + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/sudo-insult-linux/ + +作者:[ABHISHEK][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ From 3e8c3e1ce47da456a73ad851d70acae27c7498e7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 21 Feb 2016 15:34:35 +0800 Subject: [PATCH 132/582] Update 20160218 The Best Linux Distros of 2016.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按照指北修改几处排版 --- ...20160218 The Best Linux Distros of 2016.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/translated/tech/20160218 The Best Linux Distros of 2016.md b/translated/tech/20160218 The Best Linux Distros of 2016.md index fdb7cd02b0..dee100ad70 100644 --- a/translated/tech/20160218 The Best Linux Distros of 2016.md +++ b/translated/tech/20160218 The Best Linux Distros of 2016.md @@ -9,17 +9,17 @@ SUSE 是 openSUSE 发行版背后的公司,同时也是起步最早的 Linux 公司;[它在 Linus Torvalds 发布 Linux 的第二年就成立了](http://www.linux.com/news/software/applications/866964-exclusive-interview-with-suse-president-nils-brauckmann)。该公司的成立实际上早于现在的 Linux 公司之王 —— Red Hat。同时 SUSE 也是 [openSUSE](https://www.opensuse.org/) 社区发行版的发起者和赞助商。 -2015 年,openSUSE 的开发团队决定向 SUSE Linux 企业版 (SLE) 靠拢,以便让用户可以获得企业服务器特性的发行版 —— 类似于 CentOS 和 Ubuntu 那样。因此,openSUSE 变成了 [openSUSE Leap](https://en.opensuse.org/Portal:Leap),一个直接基于 SLE SP1 的发行版。 +2015 年,openSUSE 的开发团队决定向 SUSE Linux 企业版 (SLE) 靠拢,以便让用户可以获得企业服务器特性的发行版——类似于 CentOS 和 Ubuntu 那样。因此,openSUSE 变成了 [openSUSE Leap](https://en.opensuse.org/Portal:Leap),一个直接基于 SLE SP1 的发行版。 -两个发行版共用相同的基础代码,相互受益 —— SUSE 会选用 openSUSE 中好的代码,反之亦然。如此,openSUSE 也放弃了原本常规的发布周期,新版本与 SLE 同步发行。这意味着每个版本将会有更长的生命周期。 +两个发行版共用相同的基础代码,相互受益—— SUSE 会选用 openSUSE 中好的代码,反之亦然。如此,openSUSE 也放弃了原本常规的发布周期,新版本与 SLE 同步发行。这意味着每个版本将会有更长的生命周期。 -这样做的结果是,openSUSE 就成了一个非常重要的发行版,因为潜在的 SLE 用户现在可以使用 openSUSE Leap 了。但也并非完全如此,openSUSE 同样也有发行版 [Tumbleweed](http://www.cio.com/article/3008856/open-source-tools/is-opensuse-tumbleweed-good-enough-for-a-seasoned-arch-user.html) —— 一个纯净的滚动式版本。所以,用户们可以选择使用超稳定的 openSUSE Leap 或者经常更新的 openSUSE Tumbleweed。 +这样做的结果是,openSUSE 就成了一个非常重要的发行版,因为潜在的 SLE 用户现在可以使用 openSUSE Leap 了。但也并非完全如此,openSUSE 同样也有发行版 [Tumbleweed](http://www.cio.com/article/3008856/open-source-tools/is-opensuse-tumbleweed-good-enough-for-a-seasoned-arch-user.html) ——一个纯净的滚动式版本。所以,用户们可以选择使用超稳定的 openSUSE Leap 或者经常更新的 openSUSE Tumbleweed。 在我的记忆中,还没有其他的发行版做了这样一个令人印象深刻的回归。 ## 最高可定制性的发行版:Arch Linux -Arch Linux 是目前最好的滚动式更新的发行版。好吧,我可能有些偏见,因为我是一名 Arch Linux 用户 (GHLandy 译注:本人也是 Arch Linux 用户,它的定制性真的很好)。然而,我认为它好的真正原因是 Arch 在很多其他领域也都表现的非常优越,并且这才是我为什么用它作为主系统的原因。 +Arch Linux 是目前最好的滚动式更新的发行版。好吧,我可能有些偏见,因为我是一名 Arch Linux 用户 ( LCTT 译注:译者也是 Arch Linux 用户,它的定制性真的很好)。然而,我认为它好的真正原因是 Arch 在很多其他领域也都表现的非常优越,并且这才是我为什么用它作为主系统的原因。 - 对于那些想要学习 Linux 方方面面的用户来说,[Arch Linux](https://www.archlinux.org/) 无疑是一个绝佳的选择。因为你需要手动安装所有自己需要的东西,这样你会慢慢学到 Linux 系统的所有细节。 @@ -33,9 +33,9 @@ Arch Linux 是目前最好的滚动式更新的发行版。好吧,我可能有 ## 最美观的发行版:elementary OS -不同的发行版会有不同的关注点 —— 多数情况下表现为不同的技术。在大多数的 Linux 发行版中,外观和用户感觉并非他们优先考虑的事情 —— 这通常是桌面环境需要考虑的事情。 +不同的发行版会有不同的关注点——多数情况下表现为不同的技术。在大多数的 Linux 发行版中,外观和用户感觉并非他们优先考虑的事情 —— 这通常是桌面环境需要考虑的事情。 -[elementary OS](https://elementary.io/) 正在尝试改变这一事实。在这个发行版中,设计是占据重要位置,并且原因明显 —— 为该发行版取这个名字的开发者要在 Linux 世界里创建一些漂亮的图标。 +[elementary OS](https://elementary.io/) 正在尝试改变这一事实。在这个发行版中,设计是占据重要位置,并且原因明显——为该发行版取这个名字的开发者要在 Linux 世界里创建一些漂亮的图标。 elementary OS 相当注重整体外观和用户感觉。开发者创建了他们自己的组件,包括桌面环境。此外,他们只会选择那些符合设计规范的应用来加入到软件仓库。你可以发现 elementary OS 有很浓重的 Mac OS X 气息。 @@ -43,7 +43,7 @@ elementary OS 相当注重整体外观和用户感觉。开发者创建了他们 ![](http://www.linux.com/images/stories/66866/distro-solus.JPG) -[Solus](https://solus-project.com/) 最近获得非常大的关注程度。它是一个外观还可以、从零开始构建的操作系统,而并非 Debian 或者 Ubuntu 的衍生版本。它使用的 Budgie 桌面环境同样是从零开始构建的,但它的目标是兼容 Gnome。Solus 和 Google 的 Chrome OS 一样 —— 一切从简。 +[Solus](https://solus-project.com/) 最近获得非常大的关注程度。它是一个外观还可以、从零开始构建的操作系统,而并非 Debian 或者 Ubuntu 的衍生版本。它使用的 Budgie 桌面环境同样是从零开始构建的,但它的目标是兼容 Gnome。Solus 和 Google 的 Chrome OS 一样——一切从简。 我个人没怎么玩过 Solus,但它看起来很有前途。Solus 实际上并不是一个 “新” 系统。它曾以不同的形式和名称存在了很长时间,但直到 2015 年整个项目才以现在这个新名称重归大众视野。 @@ -63,7 +63,7 @@ elementary OS 相当注重整体外观和用户感觉。开发者创建了他们 ![](http://www.linux.com/images/stories/66866/distro-ubuntu-studio.JPG) -Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系统。该系统拥有巨大潜力,它可以将我们身边绝大多数的东西 —— 如路由器、咖啡机和玩具飞机等 —— 变成智能设备。让它更有趣的是,软件管理更新的方式以及添加安全性能的模块。 +Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系统。该系统拥有巨大潜力,它可以将我们身边绝大多数的东西 —— 如路由器、咖啡机和玩具飞机等——变成智能设备。让它更有趣的是,软件管理更新的方式以及添加安全性能的模块。 ## 为桌面系统而生的发行版:Linux Mint Cinnamon @@ -71,7 +71,7 @@ Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系 ## 为游戏而生的发行版:Steam OS -对于桌面版 Linux 来说,玩游戏同样是短板。很多用户为了能够玩游戏,安装了 Linux 和 Windows 双系统。而 Valve 则尝试改变这个局面。Valve 是一个游戏发行商,它提供一个可以跨平台运行游戏的客户端。并且,Valve 也同样创建了它自己的开源操作系统 —— [Steam OS](http://store.steampowered.com/steamos/) —— 为了创建一个基于 Linux 的游戏平台。截至 2015 年底,它的合作伙伴开始把搭载了 Steam OS 的机器推向市场。 +对于桌面版 Linux 来说,玩游戏同样是短板。很多用户为了能够玩游戏,安装了 Linux 和 Windows 双系统。而 Valve 则尝试改变这个局面。Valve 是一个游戏发行商,它提供一个可以跨平台运行游戏的客户端。并且,Valve 也同样创建了它自己的开源操作系统——[Steam OS](http://store.steampowered.com/steamos/)——为了创建一个基于 Linux 的游戏平台。截至 2015 年底,它的合作伙伴开始把搭载了 Steam OS 的机器推向市场。 ## 为隐私而生的发行版:Tails @@ -81,7 +81,7 @@ Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系 ## 为多媒体制作而生的发行版:Ubuntu Studio -基于 Linux 的操作系统有一个明显的弱点,那就是对多媒体制作的支持并不友好。所有专业级应用基本只能运行在 Windows 或者 Mac OS X 上。Linux 系统从来都不缺乏像样的音频/视频制作软件,但这样还是远远不够的。应该要有一款轻量级的桌面环境,使得那些宝贵的系统资源 —— 如 CPU 和 RAM —— 尽量少占用,以便用于多媒体制作。目前,[Ubuntu Studio](https://ubuntustudio.org/tour/) 对多媒体制作的支持最好。它使用了 Xfce 桌面环境,并且有各种各样的音频、视频以及图像编辑应用。 +基于 Linux 的操作系统有一个明显的弱点,那就是对多媒体制作的支持并不友好。所有专业级应用基本只能运行在 Windows 或者 Mac OS X 上。Linux 系统从来都不缺乏像样的音频/视频制作软件,但这样还是远远不够的。应该要有一款轻量级的桌面环境,使得那些宝贵的系统资源——如 CPU 和 RAM——尽量少占用,以便用于多媒体制作。目前,[Ubuntu Studio](https://ubuntustudio.org/tour/) 对多媒体制作的支持最好。它使用了 Xfce 桌面环境,并且有各种各样的音频、视频以及图像编辑应用。 ## 最好的企业发行版:SLE/RHEL @@ -93,13 +93,13 @@ Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系 ## 最好的移动操作系统:Plasma Mobile -尽管,基于 Linux 的 Android 系统称雄于移动操作系统市场,但是大多数的开源社区 —— 也包括我在内 —— 也仍然强烈希望能有一个发行版能够为移动设备提供传统 Linux 的桌面应用。同时,这样的一个发行版由开源社区来维护会比由商业公司来维护好的多,只有这样用户群才能成为这个发行版的焦点,而不应该由公司的商业目标来决定这个发行版的发展趋势。而 KDE 的 [Plasma Mobile](https://community.kde.org/Plasma/Mobile) 刚好实现了我们的愿望。 +尽管,基于 Linux 的 Android 系统称雄于移动操作系统市场,但是大多数的开源社区——也包括我在内——也仍然强烈希望能有一个发行版能够为移动设备提供传统 Linux 的桌面应用。同时,这样的一个发行版由开源社区来维护会比由商业公司来维护好的多,只有这样用户群才能成为这个发行版的焦点,而不应该由公司的商业目标来决定这个发行版的发展趋势。而 KDE 的 [Plasma Mobile](https://community.kde.org/Plasma/Mobile) 刚好实现了我们的愿望。 这个基于 Kubuntu 的发行版始于 2015 年。因为 KDE 社区以坚守标准和为公众开发应用而闻名,我非常期待 Plasma Mobile 能够一直坚持下去。 ## 为 ARM 设备而生的发行版:Arch Linux ARM -随着 Android 系统的成功,我们的生活也围绕者越来越多的 ARM 设备 —— 从树莓派 (Raspberry Pi) 到 Chromebook 以及 Nvidia Shield。为 Intel/AMD 架构的 CPU 而编写的传统发行版并不能够在这些 ARM 架构的设备上运行。而一些为 ARM 而编写的发行版却仅仅只能在特定的硬件上运行,比如只能运行在树莓派 (Raspberry Pi) 上的 Raspbian 系统。这就是 [Arch Linux ARM](http://archlinuxarm.org/) (ALARM) 的闪光点所在。它是一个基于 Arch Linux 的纯社区支持的发行版,可以在树梅派 (Raspberry Pi)、Chromebook、Android 设备以及 Nvidia Shield 等设备上运行。同时,也由于 AUR,该发行版变得更加有趣,你可以安装很多在其他发行版可能无法获取的软件。 +随着 Android 系统的成功,我们的生活也围绕者越来越多的 ARM 设备——从树莓派 (Raspberry Pi) 到 Chromebook 以及 Nvidia Shield。为 Intel/AMD 架构的 CPU 而编写的传统发行版并不能够在这些 ARM 架构的设备上运行。而一些为 ARM 而编写的发行版却仅仅只能在特定的硬件上运行,比如只能运行在树莓派 (Raspberry Pi) 上的 Raspbian 系统。这就是 [Arch Linux ARM](http://archlinuxarm.org/) (ALARM) 的闪光点所在。它是一个基于 Arch Linux 的纯社区支持的发行版,可以在树梅派 (Raspberry Pi)、Chromebook、Android 设备以及 Nvidia Shield 等设备上运行。同时,也由于 AUR,该发行版变得更加有趣,你可以安装很多在其他发行版可能无法获取的软件。 ## 结论 From 51dbcd09e3799274318425e3021e4f93cf6d641d Mon Sep 17 00:00:00 2001 From: mudongliang Date: Sun, 21 Feb 2016 20:34:13 +0800 Subject: [PATCH 133/582] Translated --- ...ux Mint 18 Will Get Its Own Set Of Apps.md | 56 +++++++++---------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md b/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md index 6846dbf49d..e2ee3073b9 100644 --- a/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md +++ b/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md @@ -1,62 +1,60 @@ -mudongliang - -Linux Mint 18 Will Get Its Own Set Of Apps +Linux Mint 18 将会得到自己的应用集 ============================================= ![](http://itsfoss.com/wp-content/uploads/2016/01/Linux-Mint-apps.jpg) -It’s common for distro developers to create and release a series of apps that are designed specifically for their distros. A big example of this is [elementary OS](https://elementary.io/). Nine years in, Linux Mint is finally taking the plunge and doing the same. +对于发行版开发者来说,创建和发布一系列专为他们发行版设计的应用是再平常不过的事情。一个很大的例子就是 [elementary OS](https://elementary.io/) 。九年的投入,Linux Mint 终于孤注一掷做了相同的事情。 ->#LinuxMint to finally get its own apps in Mint 18. +>#LinuxMint 终将在 Mint 18 中得到自己的应用。 -[Linux Mint](http://www.linuxmint.com/) is one of the best known Linux distros available. Based on Ubuntu and Debian, Linux Mint strives to create a “modern, elegant and comfortable operating system which is both powerful and easy to use”. The team behind Linux Mint is also very involved with the [MATE](http://itsfoss.com/install-mate-desktop-ubuntu-14-04/) and [Cinnamon](http://itsfoss.com/install-cinnamon-ubuntu-14-04/) desktop environments. +[Linux Mint](http://www.linuxmint.com/) 是目前可用的最著名的 Linux 发行版之一。基于 Ubuntu 和 Debian,Linux Mint 努力去创建一个现代的,优雅的,舒适的操作系统,同时强大而易于使用。(LCTT 注:Linux Mint 基于 Ubuntu,而 Linux Mint Debian Edition 基于 Debian。)Linux Mint 背后的团队同时也积极参与 [MATE](http://itsfoss.com/install-mate-desktop-ubuntu-14-04/) 和 [Cinnamon](http://itsfoss.com/install-cinnamon-ubuntu-14-04/) 桌面环境开发。 -## First X-Men, now X-Apps +## 原来的 X-Men,现在的 X-Apps -Thursday, Linux Mint project lead Clement Lefebvre [announced](http://blog.linuxmint.com/?p=2985) the creation of the X-Apps. The X-Apps are designed to be desktop-agnostic so that developers can update them without having to tweak them for each desktop environment. Lefebvre stated that these X-Apps would be used as default applications for Cinnamon, MATE and Xfce. +周四 Linux Mint 项目领导者 Clement Lefebvre [宣布](http://blog.linuxmint.com/?p=2985) X-Apps 的创建。X-Apps 被设计为桌面无关以便开发者可以直接更新它们而不必针对每一种桌面环境做调整。Lefebvre 声明这些 X-Apps 将会被作为 Cinnamon,MATE 和 Xfce 桌面环境的默认应用。 -## Does Linux Need Even More Apps? +## Linux是否需要更多的应用? -According to Lefebvre, the creation of the X-Apps was necessitated by the release of GNOME 3.18. He said that with the release of GNOME 3.18: +据 Lefebvre 所述,X-Apps 的创建被 GNOME 3.18 发布所需。对于 GNOME 3.18 的发布,他这样说: + +> “GTK 本身和一些 GNOME 应用都在 GNOME SHELL 上集成地很好,而且看起来很有本地风格。坏消息就是它们在任何别的地方看起来很不相称。使事情变得更糟的是,Unity,Ubuntu的旗舰产品,重度依赖 GTK,GNOME 应用,GNOME 环境本身,所以我们这里才不处理上游的 3.18 版本,但是这一系列的补丁带来它们自己的问题(举一个例子,Ubuntu 在应用中重新引入菜单条和标题栏,但是不重写它们的头部栏..所以你有时会看到它们三者一起出现)。” -> “GTK itself and many of the GNOME applications now integrate better with GNOME Shell and look more native in that environment. The bad news, is that they now look completely out of place everywhere else. To make matters worse, Unity, the flagship product of Ubuntu, relies heavily on GTK, GNOME applications and the GNOME environment itself, so we’re not dealing with the upstream version of 3.18 here, but with a collection of patches which bring their own issues (one example is that Ubuntu reintroduces menubars and titlebars in applications but without rewriting their headerbar.. so you sometimes see all three of them).” +在过去,Linux Mint 团队通过“应用降级(例如 Linux Mint 17 使用 gedit 2.30),给 GNOME 打补丁以及使用替代品(大部分在 MATE 和 Xfce)”来处理这个问题。 -In the past, the Linux Mint team dealt with the problem by “downgrading apps (Linux Mint 17 uses gedit 2.30 for instance), patching GNOME (GTK and various GNOME apps) and using alternatives (mostly in MATE and Xfce)”. +Lefebvre也说为 Cinnamon 和 MATE 构建特定应用没有意义。这就是为什么他们选择开发那些一般的,完美适应地运行在 Cinnamon,MATE 和 Xfce(以及其他可能的桌面环境)。 -Lefebvre also said that it didn’t make sense to build specific applications for Cinnamon and MATE this is why they opted to work on apps which would be generic, perfectly suited to run in Cinnamon, MATE and Xfce (and possibly other desktop environments). +他进一步添加到: -He further added: +>“X-Apps 将会是一个通用的,使用传统的接口 GTK3 应用的集合。它将会被作为 Cinnamon,MATE 和 Xfce 默认的桌面组件。在 Mint 18 中,“X apps” 将允许我们去维护一个本地样子和好的集成标准。因为它们将会被用于替代看起来很外地的 GNOME 桌面应用。长期来讲,X-App 项目将会允许我们去创新和开发更多的,应用本身的特色和提高(这是一些我们无法通过打补丁,临时的复制或者特定桌面的复制,比如说 MATE 桌面应用做到的事情,因为它代价太高)。” ->"X-Apps will be a collection of generic GTK3 applications using traditional interfaces which can be used as default desktop components in Cinnamon, MATE and Xfce. In Mint 18, the “X apps” will allow us to maintain a native look and a good level of integration because they will be used in replacement of GNOME applications which now look foreign (using headerbars and a distinctive layout). Long-term, the X-App project will allow us to innovate and to develop new features and improvements in the applications themselves (this is something we couldn’t do via patches, temporary forks or DE-specific forks like the MATE apps because it was too costly)." - -## What Kind of Apps Will Be Available? +## 什么类型的应用将会可用? ![](http://itsfoss.com/wp-content/uploads/2016/01/xedit.png) -Lefebvre only revealed one of the upcoming X-Apps: a text editor named xedit. Here are some of the feature that it will provide: +Lefebvre 只透露其中一个即将来临的 X-Apps:一个名为 xedit 的文本编辑器。下面是这个软件提供的一些特性: + +- 基于 Pluma 去降低学习曲线 +- 使用 GTK3 +- 不依赖 GNOME 或 MATE -- Based on Pluma to lower learning curve -- Makes use of GTK3 -- Doesn’t depend on GNOME or MATE +## 何时 -## When +X-Apps 将会和 [Linux Mint 18](http://itsfoss.com/linux-mint-18-codenamed-sarah/) 一同到来。而 Linux Mint 18 将会在 Ubuntu 16.04 LTS 发布之后数月后发布。[Ubuntu 16.04 LTS 计划于四月发布。](http://itsfoss.com/ubuntu-1604-release-schedule/) -The X-Apps will be coming together with [Linux Mint 18 release](http://itsfoss.com/linux-mint-18-codenamed-sarah/), which will follow the release of Ubuntu 16.04 LTS by several months. [Ubuntu 16.04 is scheduled to release in April](http://itsfoss.com/ubuntu-1604-release-schedule/). +## 最终想法 -## Final Thoughts +就我而言,无论何时当我听见某人发布一个新发行版特定的应用,我都会局促不安。Linux 世界本身已经难以想象的碎片化了。我们真的需要花费时间和精力去创建更多的副本工程吗?不要误解我,我喜欢桌面无关软件的想法。它将修复大量的关于一个桌面一个应用样子的问题。 -Personally, whenever I hear about someone releasing new distro specific apps, I cringe. The Linux universe is already incredibly fragmented. Do we really need more duplicate projects to take time and energy to create? Don’t get me wrong, I like the idea of desktop-agnostic apps. It would fix a lot of problems with how apps look from distro to distro. +使我发愁的问题是“它们是否会成功?”。正如我之前所说,Linux Mint 团队成员也在两种桌面环境工作。目前去添加应用开发来混合。我自己没有写过一个软件(除了 Hello World),但是我知道当你尝试且使一个项目复杂化,不好的事情将会发生。许多项目已经变成了不断膨胀的巨龙。我希望这样的事不要发生在这里。 -The problem that worries me is “Will they be able to pull it off?” As I stated before, the Linux Mint guys also work on two desktop environments. Now add application development to the mix. I’ve never written a piece of software myself (other than one that said “Hello, World”), but I do know that when you try and complicate a project bad things happen. Many projects have fallen to the dragon of feature creep I hope that doesn’t happen here. - -Do you have a different take? Let me know in the comments below. +你有不同的想法吗?在下方评论以便让我知道。 ------------------------------------------------------------------------------ via: http://itsfoss.com/linux-mint-own-apps/ 作者:[JOHN PAUL][a] -译者:[译者ID](https://github.com/译者ID) +译者:[mudongliang](https://github.com/mudongliang) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 52fe4ccb7f8cba04e4299649903a1cea437a673d Mon Sep 17 00:00:00 2001 From: mudongliang Date: Sun, 21 Feb 2016 20:39:20 +0800 Subject: [PATCH 134/582] remove translated file to the translated directory --- .../tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md (100%) diff --git a/sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md b/translated/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md similarity index 100% rename from sources/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md rename to translated/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md From a96939a54f221b1df766fb27dd7e7b8b69740668 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Mon, 22 Feb 2016 00:14:05 +0800 Subject: [PATCH 135/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20151204 Review EXT4 vs. Btrfs vs. XFS.md | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md index b2e71c0da3..7f93b149ba 100644 --- a/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md +++ b/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md @@ -1,8 +1,8 @@ -EXT4、Btrfs、XFS 文件系统回顾 +EXT4,Btrfs和XFS 文件系统之点评 ================================================================================ ![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/09/1385698302_funny_linux_wallpapers-593x445.jpg) -老实说,人们最不曾考虑的问题之一是他们的个人电脑中使用了什么文件系统。Windows 和 Mac OS X 用户更没有理由去考虑,因为对于他们的操作系统,只有一种选择,那就是 NTFS 和 HFS+。相反,对于 Linux 系统而言,有很多种文件系统可以选择,现在默认的是广泛采用的 ext4。然而,现在也有改用一种称为 btrfs 文件系统的趋势。那是什么使得 btrfs、或者其它文件系统变得更优秀呢?什么时候我们又能看到 Linux 发行版作出改变呢? +老实说,人们最不曾考虑的问题之一是他们的个人电脑中使用了什么文件系统。Windows 和 Mac OS X 用户更没有理由去考虑,因为对于他们的操作系统,只有一种选择,那就是 NTFS 和 HFS+。相反,对于 Linux 系统而言,有很多种文件系统可以选择,现在默认的是广泛采用的 ext4。然而,现在也有改用一种称为 btrfs 文件系统的趋势。那是什么使得 btrfs更优秀,其它的文件系统又是什么,什么时候我们又能看到 Linux 发行版作出改变呢? 首先让我们对文件系统以及它们真正干什么有个总体的认识,然后我们再对一些有名的文件系统做详细的比较。 @@ -12,46 +12,45 @@ EXT4、Btrfs、XFS 文件系统回顾 ### 为什么要分区? ### -由于每个操作系统都能创建或者删除分区,很多人对分区都有模糊的认识。Linux 操作系统在同一块磁盘上使用多个分区,就算使用标准安装过程,这看起来很奇怪,因此需要一些解释。拥有不同分区的一个主要目的就是为了在灾难发生时能获得更好的数据安全性。 +由于每个操作系统都能创建或者删除分区,很多人对分区都有模糊的认识。Linux 操作系统在同一块磁盘上即便使用标准安装过程,仍可以使用多个分区,这看起来很奇怪,因此需要一些解释。拥有不同分区的一个主要目的就是为了在灾难发生时能获得更好的数据安全性。 -通过将硬盘划分为分区,数据会被分隔以及重组。当事故发生的时候,只有存储在被损坏分区的数据会被破坏,很大可能上其它分区的数据能得以保留。这个原因可以追溯到 Linux 操作系统还没有日志文件系统,任何掉电都有可能导致灾难发生的时候。 +通过将硬盘划分为分区,数据会被分隔以及重组。当事故发生的时候,只有存储在被损坏分区的数据会被破坏,很大可能上其它分区的数据能得以保留。这个原因可以追溯到 Linux 操作系统还没有日志文件系统,任何电力故障都有可能导致灾难发生的时候。 使用分区也考虑到了安全和健壮性原因,因此操作系统部分损坏并不意味着整个计算机就有风险或者会受到破坏。这也是当前采用分区的一个最重要因素。举个例子,用户创建了一些会填满磁盘的脚本、程序或者 web 应用,如果该磁盘只有一个大的分区,如果磁盘满了那么整个系统就不能工作。如果用户把数据保存在不同的分区,那么就只有那个分区会受到影响,而系统分区或者其它数据分区仍能正常运行。 记住,拥有一个日志文件系统只能在掉电或者和存储设备意外断开连接时提供数据安全性,并不能在文件系统出现坏块或者发生逻辑错误时保护数据。对于这种情况,用户可以采用廉价磁盘冗余阵列(RAID:Redundant Array of Inexpensive Disks)的方案。 -### 为什么要选择文件系统? ### +### 为什么要改变文件系统? ### ext4 文件系统由 ext3 文件系统改进而来,而后者又是从 ext2 文件系统改进而来。虽然 ext4 文件系统已经非常稳定,是过去几年中绝大部分发行版的默认选择,但它是基于陈旧的代码开发而来。另外, Linux 操作系统用户也需要很多 ext4 文件系统本身不提供的新功能。虽然通过某些软件能满足这种需求,但性能会受到影响,在文件系统层次做到这些能获得更好的性能。 ### Ext4 文件系统 ### -ext4 还有一些令人印象深刻的限值。最大文件大小是 16tebibytes(大概是 17.6 terabytes),这比普通用户当前能买到的硬盘还要大。使用 ext4 能创建的最大卷/分区是 1 exbibyte(大概是 1,152,921.5 terabytes)。通过使用多种技巧, ext4 比 ext3 有很大的速度提升。类似一些最先进的文件系统,它是一个日志文件系统,意味着它会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录。纵观它的所有功能,它还不支持透明压缩、重复数据删除或者透明加密。技术上支持了快照,但该功能还处于实验性阶段。 +ext4 还有一些明显的限值。最大文件大小是 16tebibytes(大概是 17.6 terabytes),这比普通用户当前能买到的硬盘还要大的多。使用 ext4 能创建的最大卷/分区是 1 exbibyte(大概是 1,152,921.5 terabytes)。通过使用多种技巧, ext4 比 ext3 有很大的速度提升。类似一些最先进的文件系统,它是一个日志文件系统,意味着它会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录。纵观它的所有功能,它还不支持透明压缩、重复数据删除或者透明加密。技术上支持了快照,但该功能还处于实验性阶段。 ### Btrfs 文件系统 ### -btrfs 有很多不同的发音,例如 Better FS、Butter FS 或者 B-Tree FS。它是一个几乎完全从头开发的文件系统。btrfs 存在的原因是它的开发者期初希望扩展文件系统的功能使得它包括快照、池化、校验以及其它一些功能。虽然和 ext4 无关,它也希望能保留 ext4 中能使消费者和商家受益的功能,并整合额外的能使每个人、尤其是企业受益的功能。对于使用大型软件以及大规模数据库的企业,对于多种不同的硬盘看起来一致的文件系统能使他们受益并且使数据整合变得更加简单。删除重复数据能降低数据实际使用的空间,当需要镜像一个单一和广泛文件系统时使用 btrfs 也能使数据镜像变得简单。 +btrfs 有很多不同的发音,例如 Better FS、Butter FS 或者 B-Tree FS。它是一个几乎完全从头开发的文件系统。btrfs 存在的原因是它的开发者期初希望扩展文件系统的功能使得它包括快照、池化、校验以及其它一些功能。虽然和 ext4 无关,它也希望能保留 ext4 中能使消费者和商家受益的功能,并整合额外的能使每个人,尤其是企业受益的功能。对于使用大型软件以及大规模数据库的企业,对于多种不同的硬盘看起来一致的文件系统能使他们受益并且使数据整合变得更加简单。删除重复数据能降低数据实际使用的空间,当需要镜像一个单一和广泛文件系统时使用 btrfs 也能使数据镜像变得简单。 -用户当然可以继续选择创建多个分区从而无需镜像任何东西。考虑到这种情况,btrfs 能横跨多种硬盘,和 ext4 相比,它能支持 16 倍多的驱动空间。btrfs 文件系统一个分区最大是 16 exbibytes,最大的文件大小也是 16 exbibytes。 +用户当然可以继续选择创建多个分区从而无需镜像任何东西。考虑到这种情况,btrfs 能横跨多种硬盘,和 ext4 相比,它能支持 16 倍以上的驱动空间。btrfs 文件系统一个分区最大是 16 exbibytes,最大的文件大小也是 16 exbibytes。 ### XFS 文件系统 ### -XFS 文件系统是扩展文件系统(extent file system)的扩展。XFS 是 64 位高性能日志文件系统。对 XFS 的支持大概在 2002 年合并到了 Linux 内核,到了 2009 年,红帽企业版 Linux 5.4 也支持了 XFS 文件系统。对于 64 位文件系统,XFS 支持最大文件系统大小为 8 exbibytes。XFS 文件系统有一些缺陷,例如它不能压缩,删除大量文件时性能低下。RHEL 7.0 文件系统默认使用 XFS。 +XFS 文件系统是扩展文件系统(extent file system)的扩展。XFS 是 64 位高性能日志文件系统。对 XFS 的支持大概在 2002 年合并到了 Linux 内核,到了 2009 年,红帽企业版 Linux 5.4 也支持了 XFS 文件系统。对于 64 位文件系统,XFS 支持最大文件系统大小为 8 exbibytes。XFS 文件系统有一些缺陷,例如它不能压缩,删除大量文件时性能低下。目前RHEL 7.0 文件系统默认使用 XFS。 ### 总后总结 ### -不幸的是,还不知道 btrfs 什么时候能到来。官方说,下一代文件系统仍然被归类到“不稳定”,但是如果用户下载最新版本的 Ubuntu,他就可以选择安装到 btrfs 分区上。什么时候 btrfs 会被归类到 “稳定” 仍然是个谜, 直到真的认为它“稳定”之前,用户也不应该期望 Ubuntu 会默认采用 btrfs。有报道说 Fedora 18 会用 btrfs 作为它的默认文件系统,因为到了发布它的时候,应该有了 btrfs 文件系统校验器。由于还没有实现所有的功能,另外和 ext4 相比性能上也比较缓慢, btrfs 还有很多的工作要做。 +不幸的是,还不知道 btrfs 什么时候能到来。官方说,下一代文件系统仍然被归类为“不稳定”,但是如果用户下载最新版本的 Ubuntu,就可以选择安装到 btrfs 分区上。什么时候 btrfs 会被归类到 “稳定” 仍然是个谜, 直到真的认为它“稳定”之前,用户也不应该期望 Ubuntu 会默认采用 btrfs。有报道说 Fedora 18 会用 btrfs 作为它的默认文件系统,因为到了发布它的时候,应该有了 btrfs 文件系统校验器。由于还没有实现所有的功能,另外和 ext4 相比性能上也比较缓慢,btrfs 还有很多的工作要做。 那么,究竟使用哪个更好呢?尽管性能几乎相同,但 ext4 还是赢家。为什么呢?答案在于易用性以及广泛性。对于桌面或者工作站, ext4 仍然是一个很好的文件系统。由于默认提供,用户可以在上面安装操作系统。同时, ext4 支持最大 1 exabytes 的卷和 16 terabytes 的文件,因此考虑到大小,它也还有很大的进步空间。 -btrfs 能提供更大的高达 16 exabytes 的卷以及更好的容错,但是,到现在为止,它感觉更像是一个附加文件系统,而没有集成到 Linux 操作系统。比如,尽管 btrfs 支持不同的发行版,使用 btrfs 格式化硬盘之前先要有 btrfs-tools 工具,这意味着安装 Linux 操作系统的时候它并不是一个可选项。 +btrfs 能提供更大的高达 16 exabytes 的卷以及更好的容错,但是,到现在为止,它感觉更像是一个附加文件系统,而没有集成到 Linux 操作系统。比如,尽管 btrfs 支持不同的发行版,使用 btrfs 格式化硬盘之前先要有 btrfs-tools 工具,这意味着安装 Linux 操作系统的时候它并不是一个可选项,即便不同发行版之间会有差异。 -尽管传输速率非常重要,评价一个文件系统出了文件传输速度之外还有很多因素。btrfs 有很多好用的功能,例如写复制、扩展校验、快照、清洗、数据自治愈、冗余删除以及其它保证数据完整性的功能。和 ZFS 相比 btrfs 缺少 RAID-Z 功能,因此对于 btrfs, RAID 还处于实验性阶段。对于单纯的数据存储,和 ext4 相比 btrfs 似乎更加优秀,但时间会验证一切。 +尽管传输速率非常重要,评价一个文件系统出了文件传输速度之外还有很多因素。btrfs 有很多好用的功能,例如写复制、扩展校验、快照、清洗、自修复数据、冗余删除以及其它保证数据完整性的功能。和 ZFS 相比 btrfs 缺少 RAID-Z 功能,因此对于 btrfs, RAID 还处于实验性阶段。对于单纯的数据存储,和 ext4 相比 btrfs 似乎更加优秀,但时间会验证一切。 迄今为止,对于桌面系统而言,ext4 似乎是一个更好的选择,因为它是默认的文件系统,传输文件时也比 btrfs 更快。btrfs 当然值得尝试、但要在桌面 Linux 上完全取代 ext4 可能还需要一些时间。数据场和大存储池会揭示关于 ext4、XCF 以及 btrfs 不同的故事和差异。 -如果你有其它不同的或者额外的观点、在下面的评论框中告诉我们吧。 -If you have a different or additional opinion, kindly let us know by commenting on this article. +如果你有不同或者其它的观点,在下面的评论框中告诉我们吧。 -------------------------------------------------------------------------------- @@ -59,7 +58,7 @@ via: http://www.unixmen.com/review-ext4-vs-btrfs-vs-xfs/ 作者:[M.el Khamlichi][a] 译者:[ictlyh](http://mutouxiaogui.cn/blog/) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c7e9960c5818b5c17114a3a793de5d32d67c1788 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 22 Feb 2016 11:04:05 +0800 Subject: [PATCH 136/582] PUB:20160220 Linux Mint 18 Will Get Its Own Set Of Apps @mudongliang @locez @oska874 --- ...ux Mint 18 Will Get Its Own Set Of Apps.md | 60 ++++++++++++++++++ ...ux Mint 18 Will Get Its Own Set Of Apps.md | 62 ------------------- 2 files changed, 60 insertions(+), 62 deletions(-) create mode 100644 published/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md delete mode 100644 translated/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md diff --git a/published/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md b/published/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md new file mode 100644 index 0000000000..4872f4352a --- /dev/null +++ b/published/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md @@ -0,0 +1,60 @@ +Linux Mint 18 将拥有自己的应用集 +============================================= + +![](http://itsfoss.com/wp-content/uploads/2016/01/Linux-Mint-apps.jpg) + +对于发行版开发者来说,创建和发布一系列专为他们发行版设计的应用是再平常不过的事情。一个最典型的例子就是 [elementary OS](https://elementary.io/) 。而在经过九年的努力后,Linux Mint 终于孤注一掷做了相同的事情。 + +[Linux Mint](http://www.linuxmint.com/) 是现今最著名的 Linux 发行版之一。其基于 Ubuntu 和 Debian,Linux Mint 努力去创建一个现代的、优雅的、舒适的操作系统,不但强大而且易用。(LCTT 译注:Linux Mint 基于 Ubuntu,而 Linux Mint Debian Edition 基于 Debian。)Linux Mint 背后的团队同时也积极参与 [MATE](http://itsfoss.com/install-mate-desktop-ubuntu-14-04/) 和 [Cinnamon](http://itsfoss.com/install-cinnamon-ubuntu-14-04/) 桌面环境开发。 + +## 前有 X 战警(X-men),后有 X 应用(X-Apps) + +周四, Linux Mint 项目领导者 Clement Lefebvre [宣布](http://blog.linuxmint.com/?p=2985) X-Apps 的创建。X-Apps 被设计为不依赖特定桌面环境,以便开发者可以直接更新它们而不必针对每一种桌面环境做调整。Lefebvre 声明这些 X-Apps 将会被作为 Cinnamon、MATE 和 Xfce 桌面环境的默认应用。 + +## Linux 是否需要更多的应用? + +据 Lefebvre 所述,X-Apps 的创建是因 GNOME 3.18 发布所需。对于 GNOME 3.18 的发布,他这样说: + +> “GTK 本身和一些 GNOME 应用都在 GNOME SHELL 上集成地很好,而且看起来风格很一致。坏消息就是它们在任何别的地方看起来很不相称。使事情变得更糟的是,Ubuntu 的旗舰产品 Unity 重度依赖 GTK、GNOME 应用及 GNOME 环境本身,所以我们这里不能在上游的 3.18 版本中处理,而这一系列的补丁会带来它们自己的问题(举一个例子,Ubuntu 在应用中重新引入菜单条和标题栏,但是不重写它们的头部栏..所以你有时会看到它们三者一起出现)。” + +在过去,Linux Mint 团队通过“应用降级(例如 Linux Mint 17 使用 gedit 2.30),给 GNOME 打补丁以及使用替代品(大部分在 MATE 和 Xfce)”来处理这个问题。 + +Lefebvre 也说为 Cinnamon 和 MATE 构建特定应用没有意义。这就是为什么他们选择开发那些通用的,可以完美地适应运行在 Cinnamon,MATE 和 Xfce(以及其他可能的桌面环境)的应用。 + +他进一步补充道: + +>“X-Apps 将会是一个通用的,使用传统的接口 GTK3 应用的集合。它能被用作 Cinnamon,MATE 和 Xfce 默认的桌面组件。在 Mint 18 中,“X apps” 将允许我们去维护一个本地风格及更高层面的集成。因为它们将会被用于替代看起来很不一致的 GNOME 桌面应用。长期来讲,X-App 项目将会允许我们去开发新的功能和改进应用本身(这是一些我们无法通过打补丁,临时分支或者特定桌面的分支做到的事情,比如说 MATE 桌面应用,因为它代价太高)。” + +## 将会有什么类型的应用? + +![](http://itsfoss.com/wp-content/uploads/2016/01/xedit.png) + +Lefebvre 只透露其中一个即将来临的 X-Apps:一个名为 xedit 的文本编辑器。下面是这个软件提供的一些特性: + +- 基于 Pluma,很容易学会使用 +- 使用 GTK3 +- 不依赖 GNOME 或 MATE + +## 何时呢? + +X-Apps 将会和 [Linux Mint 18](http://itsfoss.com/linux-mint-18-codenamed-sarah/) 一同到来。而 Linux Mint 18 将会在 Ubuntu 16.04 LTS 发布之后数月后发布。[Ubuntu 16.04 LTS 计划于四月发布。](http://itsfoss.com/ubuntu-1604-release-schedule/) + +## 总结 + +就我而言,无论何时当我听见某人发布一个新发行版特定的应用,我都会局促不安。Linux 世界本身已经难以想象的碎片化了。我们真的需要花费时间和精力去创建更多的重复的项目吗?但不要误解我,我喜欢桌面无关软件的想法。它将修复大量的一个桌面一个应用样子的问题。 + +使我发愁的问题是“它们是否会成功?”。正如我之前所说,Linux Mint 团队成员也在两种桌面环境工作。目前增加了应用开发就让这些混在一起了。我自己没有写过一个软件(除了 Hello World),但是我知道当你尝试且使一个项目复杂化,就会发生不好的事情。许多项目已经变成了不断膨胀的恶龙。我希望这样的事不要发生在这里。 + +你有不同的想法吗?在下方评论以便让我知道。 + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/linux-mint-own-apps/ + +作者:[JOHN PAUL][a] +译者:[mudongliang](https://github.com/mudongliang) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/john/ diff --git a/translated/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md b/translated/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md deleted file mode 100644 index e2ee3073b9..0000000000 --- a/translated/tech/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md +++ /dev/null @@ -1,62 +0,0 @@ -Linux Mint 18 将会得到自己的应用集 -============================================= - -![](http://itsfoss.com/wp-content/uploads/2016/01/Linux-Mint-apps.jpg) - -对于发行版开发者来说,创建和发布一系列专为他们发行版设计的应用是再平常不过的事情。一个很大的例子就是 [elementary OS](https://elementary.io/) 。九年的投入,Linux Mint 终于孤注一掷做了相同的事情。 - ->#LinuxMint 终将在 Mint 18 中得到自己的应用。 - -[Linux Mint](http://www.linuxmint.com/) 是目前可用的最著名的 Linux 发行版之一。基于 Ubuntu 和 Debian,Linux Mint 努力去创建一个现代的,优雅的,舒适的操作系统,同时强大而易于使用。(LCTT 注:Linux Mint 基于 Ubuntu,而 Linux Mint Debian Edition 基于 Debian。)Linux Mint 背后的团队同时也积极参与 [MATE](http://itsfoss.com/install-mate-desktop-ubuntu-14-04/) 和 [Cinnamon](http://itsfoss.com/install-cinnamon-ubuntu-14-04/) 桌面环境开发。 - -## 原来的 X-Men,现在的 X-Apps - -周四 Linux Mint 项目领导者 Clement Lefebvre [宣布](http://blog.linuxmint.com/?p=2985) X-Apps 的创建。X-Apps 被设计为桌面无关以便开发者可以直接更新它们而不必针对每一种桌面环境做调整。Lefebvre 声明这些 X-Apps 将会被作为 Cinnamon,MATE 和 Xfce 桌面环境的默认应用。 - -## Linux是否需要更多的应用? - -据 Lefebvre 所述,X-Apps 的创建被 GNOME 3.18 发布所需。对于 GNOME 3.18 的发布,他这样说: - -> “GTK 本身和一些 GNOME 应用都在 GNOME SHELL 上集成地很好,而且看起来很有本地风格。坏消息就是它们在任何别的地方看起来很不相称。使事情变得更糟的是,Unity,Ubuntu的旗舰产品,重度依赖 GTK,GNOME 应用,GNOME 环境本身,所以我们这里才不处理上游的 3.18 版本,但是这一系列的补丁带来它们自己的问题(举一个例子,Ubuntu 在应用中重新引入菜单条和标题栏,但是不重写它们的头部栏..所以你有时会看到它们三者一起出现)。” - -在过去,Linux Mint 团队通过“应用降级(例如 Linux Mint 17 使用 gedit 2.30),给 GNOME 打补丁以及使用替代品(大部分在 MATE 和 Xfce)”来处理这个问题。 - -Lefebvre也说为 Cinnamon 和 MATE 构建特定应用没有意义。这就是为什么他们选择开发那些一般的,完美适应地运行在 Cinnamon,MATE 和 Xfce(以及其他可能的桌面环境)。 - -他进一步添加到: - ->“X-Apps 将会是一个通用的,使用传统的接口 GTK3 应用的集合。它将会被作为 Cinnamon,MATE 和 Xfce 默认的桌面组件。在 Mint 18 中,“X apps” 将允许我们去维护一个本地样子和好的集成标准。因为它们将会被用于替代看起来很外地的 GNOME 桌面应用。长期来讲,X-App 项目将会允许我们去创新和开发更多的,应用本身的特色和提高(这是一些我们无法通过打补丁,临时的复制或者特定桌面的复制,比如说 MATE 桌面应用做到的事情,因为它代价太高)。” - -## 什么类型的应用将会可用? - -![](http://itsfoss.com/wp-content/uploads/2016/01/xedit.png) - -Lefebvre 只透露其中一个即将来临的 X-Apps:一个名为 xedit 的文本编辑器。下面是这个软件提供的一些特性: - -- 基于 Pluma 去降低学习曲线 -- 使用 GTK3 -- 不依赖 GNOME 或 MATE - -## 何时 - -X-Apps 将会和 [Linux Mint 18](http://itsfoss.com/linux-mint-18-codenamed-sarah/) 一同到来。而 Linux Mint 18 将会在 Ubuntu 16.04 LTS 发布之后数月后发布。[Ubuntu 16.04 LTS 计划于四月发布。](http://itsfoss.com/ubuntu-1604-release-schedule/) - -## 最终想法 - -就我而言,无论何时当我听见某人发布一个新发行版特定的应用,我都会局促不安。Linux 世界本身已经难以想象的碎片化了。我们真的需要花费时间和精力去创建更多的副本工程吗?不要误解我,我喜欢桌面无关软件的想法。它将修复大量的关于一个桌面一个应用样子的问题。 - -使我发愁的问题是“它们是否会成功?”。正如我之前所说,Linux Mint 团队成员也在两种桌面环境工作。目前去添加应用开发来混合。我自己没有写过一个软件(除了 Hello World),但是我知道当你尝试且使一个项目复杂化,不好的事情将会发生。许多项目已经变成了不断膨胀的巨龙。我希望这样的事不要发生在这里。 - -你有不同的想法吗?在下方评论以便让我知道。 - ------------------------------------------------------------------------------- - -via: http://itsfoss.com/linux-mint-own-apps/ - -作者:[JOHN PAUL][a] -译者:[mudongliang](https://github.com/mudongliang) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/john/ From 6468ca248c80bd87cd4df640b8630815194678e6 Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 22 Feb 2016 11:57:23 +0800 Subject: [PATCH 137/582] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=80=89=E9=A2=98?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ng List of Raspberry Pi 2 Distributions.md | 50 ++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md b/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md index 5203be38d8..ee98887448 100644 --- a/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md +++ b/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md @@ -1,32 +1,32 @@ Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions ============================================================== -Last week’s news that Tizen 3.0 has been ported to the Raspberry Pi 2 Model B is the latest example of how the year-old ARMv7 version of the Pi is attracting ports from more powerful Linux distributions, most notably Fedora, Ubuntu MATE, and Snappy. The [Samsung Open Source Group’s Tizen for Pi](http://blogs.s-osg.org/bringing-tizen-to-a-raspberry-pi-2-near-you/) project has been underway for several years, achieving several beta releases, and now the effort has shifted to the new Tizen 3.0. It’s still in beta, but now you can create builds for the Pi 2 using tools from the [Yocto](https://www.yoctoproject.org/) Project and [OpenEmbedded project](http://www.openembedded.org/wiki/Main_Page). +Last week’s news that Tizen 3.0 has been ported to the Raspberry Pi 2 Model B is the latest example of how the year-old ARMv7 version of the Pi is attracting ports from more powerful Linux distributions, most notably Fedora, Ubuntu MATE, and Snappy. The [Samsung Open Source Group’s Tizen for Pi][1] project has been underway for several years, achieving several beta releases, and now the effort has shifted to the new Tizen 3.0. It’s still in beta, but now you can create builds for the Pi 2 using tools from the [Yocto][2] Project and [OpenEmbedded project][3]. -Tizen 3.0 offers performance and security improvements, multiple-user and 64-bit support, and an Internet of Things (IoT) framework. Samsung, the principal backer of the [Linux Foundation hosted Tizen project](https://www.tizen.org/), is using the Pi port to expand the base of developers using Tizen for IoT projects, according to an [IDG News Service post](http://www.cio.com/article/3031812/samsung-hopes-raspberry-pi-can-spread-tizen-os-adoption.html) that reported on the port. +Tizen 3.0 offers performance and security improvements, multiple-user and 64-bit support, and an Internet of Things (IoT) framework. Samsung, the principal backer of the [Linux Foundation hosted Tizen project][4], is using the Pi port to expand the base of developers using Tizen for IoT projects, according to an [IDG News Service post][5] that reported on the port. -Although Samsung finally [shipped a Tizen-based](http://www.linux.com/news/embedded-mobile/mobile-linux/837843-samsung-sells-a-million-tizen-phones-as-mozilla-rethinks-firefox-os) phone in India last summer, and Gear smartwatches continue to use Tizen, the main focus now appears to be on IoT. At CES last month, Samsung [announced](http://www.linux.com/news/embedded-mobile/mobile-linux/877879-linux-based-drones-upstage-other-mobile-gadgets-at-ces) that all of its Tizen-based, 2016 Smart TVs will be able to act as SmartThings home automation hubs, letting users monitor the household while watching TV. +Although Samsung finally [shipped a Tizen-based][6] phone in India last summer, and Gear smartwatches continue to use Tizen, the main focus now appears to be on IoT. At CES last month, Samsung [announced][7] that all of its Tizen-based, 2016 Smart TVs will be able to act as SmartThings home automation hubs, letting users monitor the household while watching TV. ## The Growing List of Pi Distros -[Elinux.org](http://elinux.org/RPi_Distributions) lists some 46 ARMv6-ready distributions that run on all the Raspberry Pi boards. A separate listing notes two ARMv7-only distros that require the ARMv7 Raspberry Pi 2: Ubuntu MATE, which replaces the resource-intensive Unity desktop with the Gnome 2.0 flavored MATE, and Windows 10 IoT Core. The prominent placement of a Microsoft distribution is not as controversial as one might have thought. To many younger Linux developers and casual Pi hackers, Microsoft is just another tech company, not so much the evil empire loathed by old-time Linux hackers. +[Elinux.org][8] lists some 46 ARMv6-ready distributions that run on all the Raspberry Pi boards. A separate listing notes two ARMv7-only distros that require the ARMv7 Raspberry Pi 2: Ubuntu MATE, which replaces the resource-intensive Unity desktop with the Gnome 2.0 flavored MATE, and Windows 10 IoT Core. The prominent placement of a Microsoft distribution is not as controversial as one might have thought. To many younger Linux developers and casual Pi hackers, Microsoft is just another tech company, not so much the evil empire loathed by old-time Linux hackers. -Windows 10 IoT Core isn’t the only non-Linux distro running on the Pi. There’s also the Unix-like FreeBSD and NetBSD, as well as the revived RISC OS Pi version of the old Acorn Computers OS. Some of the 48 operating systems on the Elinux.org list are incomplete, out-of-date, or dedicated to limited niches. [DistroWatch](https://distrowatch.com/search.php?category=Raspberry+Pi) offers a more manageable list of 20. +Windows 10 IoT Core isn’t the only non-Linux distro running on the Pi. There’s also the Unix-like FreeBSD and NetBSD, as well as the revived RISC OS Pi version of the old Acorn Computers OS. Some of the 48 operating systems on the Elinux.org list are incomplete, out-of-date, or dedicated to limited niches. [DistroWatch][9] offers a more manageable list of 20. -The [Raspberry Pi Foundation](https://www.raspberrypi.org/) still prominently posts a download page for its homegrown, Debian-based Raspbian, in both standard and NOOBS packages. This lightweight distro is still the most popular and typically the highest rated Linux build for the Pi. The Scratch-ready distro is especially equally suited for desktop use and embedded hacking with home automation gear, robots, and other IoT gizmos. Raspbian recently [received an update](http://news.softpedia.com/news/raspbian-gets-experimental-opengl-driver-gpu-now-used-for-acceleration-500152.shtml) with an experimental OpenGL driver for doing hardware acceleration on the VideoCore IV GPU used with the Pi 2’s Broadcom BCM2836 SoC. +The [Raspberry Pi Foundation][10] still prominently posts a download page for its homegrown, Debian-based Raspbian, in both standard and NOOBS packages. This lightweight distro is still the most popular and typically the highest rated Linux build for the Pi. The Scratch-ready distro is especially equally suited for desktop use and embedded hacking with home automation gear, robots, and other IoT gizmos. Raspbian recently [received an update][11] with an experimental OpenGL driver for doing hardware acceleration on the VideoCore IV GPU used with the Pi 2’s Broadcom BCM2836 SoC. -The Pi Foundation also lists several [third-party downloads](https://www.raspberrypi.org/downloads/). In addition to Windows 10 IoT Core and and Ubuntu MATE, the list includes the lightweight, transactionally focused [Snappy Ubuntu Core](http://www.linux.com/news/embedded-mobile/mobile-linux/804659-ubuntu-snappy-leads-mobile-linux-migration-to-iot) for the Pi 2. Canonical is aiming Snappy at those who want an app platform and cloud integration in embedded devices like drones and IoT devices. Snappy also came out last week in a version designed for [Intel NUC mini-PCs](https://insights.ubuntu.com/2016/02/10/ubuntu-core-is-available-for-the-intel-nuc/). The Pi Foundation also posts images for RISC OS and the education-focused PINET. There are also two media center distros related to KODI/XBMC: OSMC and OpenElec. +The Pi Foundation also lists several [third-party downloads][12]. In addition to Windows 10 IoT Core and and Ubuntu MATE, the list includes the lightweight, transactionally focused [Snappy Ubuntu Core][13] for the Pi 2. Canonical is aiming Snappy at those who want an app platform and cloud integration in embedded devices like drones and IoT devices. Snappy also came out last week in a version designed for [Intel NUC mini-PCs][14]. The Pi Foundation also posts images for RISC OS and the education-focused PINET. There are also two media center distros related to KODI/XBMC: OSMC and OpenElec. -In addition to its list of 48 released distros, Elinux.org lists several “announced” distros including Firefox OS, [openSUSE](https://www.reddit.com/r/openSUSE/comments/3hxrz4/opensuse_on_a_raspberry_pi_2_armv7/), Meego MER & XBMC, Puppy, RPi-Buildroot, and Aros. Missing, however, is Tizen, as well as newly announced ports such as [Manjaro-ARM](http://www.linux-arm.info/index.php/1103-hands-on-more-adventures-with-manjaro-arm-for-the-raspberry-pi-2) and the CentOS 7-based [CentOS AltArch 7](http://www.linux-arm.info/index.php/1054-centos-altarch-7-now-available-for-aarch64-powerpc64-powerpc8-le-and-armhfp) for the Pi 2, Banana Pi, and CubieTruck SBCs. +In addition to its list of 48 released distros, Elinux.org lists several “announced” distros including Firefox OS, [openSUSE][15], Meego MER & XBMC, Puppy, RPi-Buildroot, and Aros. Missing, however, is Tizen, as well as newly announced ports such as [Manjaro-ARM][16] and the CentOS 7-based [CentOS AltArch 7][17] for the Pi 2, Banana Pi, and CubieTruck SBCs. ## Android Still Pi in the Sky -Elinux.org’s “announced” list also includes Android and a Miracast-like program called Android Transporter. People have been trying to port Android to the Pi for years; yet, even with the more suitable [Pi 2](http://www.linux.com/news/embedded-mobile/mobile-linux/807087-faster-raspberry-pi-2-says-yes-to-ubuntu-and-windows-but-wheres-android) shipping for a year now, Android is still pretty much a no-show. Android can run on lower-powered SoCs than the Pi 2’s quad-core, Cortex-A7, but the limited 1GB of RAM and the lack of GPU acceleration are big challenges. Perhaps Raspbian’s OpenGL driver could be ported to Android as well, although the Pi Foundation does not seem very interested in Android. +Elinux.org’s “announced” list also includes Android and a Miracast-like program called Android Transporter. People have been trying to port Android to the Pi for years; yet, even with the more suitable [Pi 2][18] shipping for a year now, Android is still pretty much a no-show. Android can run on lower-powered SoCs than the Pi 2’s quad-core, Cortex-A7, but the limited 1GB of RAM and the lack of GPU acceleration are big challenges. Perhaps Raspbian’s OpenGL driver could be ported to Android as well, although the Pi Foundation does not seem very interested in Android. -There are several Android-for-Pi projects in the works, but without the foundation’s backing, there is still nothing close to a complete port. Projects include an [AOSP Marshmallow](http://www.linux.com/news/embedded-mobile/mobile-linux/886126-tizen-30-joins-growing-list-of-raspberry-pi-2-distros#!topic/android-rpi/YW_gGr8wZkk) patch-set from Peter Yoon, as well as a [RaspAnd](https://extonlinux.wordpress.com/2015/04/05/run-android-5-1-lollipop-exton-build-on-your-raspberry-pi-2/) release based on the Ubuntu-based RaspEx, which makes use of the Aptoide package manager to load some Android 5.1 apps on a Pi 2. The [Razdroid project](https://www.raspberrypi.org/forums/viewtopic.php?f=73&t=19106), which aims to tap into the secrets of Broadcom hardware acceleration, seems to have stalled. +There are several Android-for-Pi projects in the works, but without the foundation’s backing, there is still nothing close to a complete port. Projects include an [AOSP Marshmallow][19] patch-set from Peter Yoon, as well as a [RaspAnd][20] release based on the Ubuntu-based RaspEx, which makes use of the Aptoide package manager to load some Android 5.1 apps on a Pi 2. The [Razdroid project][21], which aims to tap into the secrets of Broadcom hardware acceleration, seems to have stalled. -Most Rasp Pi users, however, appear more interested in [Ubuntu MATE](https://ubuntu-mate.org/raspberry-pi/), which was never optimized for ARMv6, and Fedora. For years, Pi users have run the lightweight spin-down of Fedora called Pidora, but with the Pi 2, they can now try the real thing. The Raspberry Pi Foundation has yet to post Fedora, but the recent [betas of the Pi 2 port](https://chisight.wordpress.com/2015/10/19/fedora-22-or-23-on-raspberry-pi-2/) have received high marks. +Most Rasp Pi users, however, appear more interested in [Ubuntu MATE][22], which was never optimized for ARMv6, and Fedora. For years, Pi users have run the lightweight spin-down of Fedora called Pidora, but with the Pi 2, they can now try the real thing. The Raspberry Pi Foundation has yet to post Fedora, but the recent [betas of the Pi 2 port][23] have received high marks. -Other Linux distributions that regularly make Top Pi distro lists include Arch Linux, which unlike most ports from mature Linux distros, works just fine on ARMv6. A recent [TechRadar Top 5 list](http://www.techradar.com/us/news/software/5-of-the-most-popular-raspberry-pi-distros-1292537) includes several more niche distros in addition to Raspbian. These include the OSMC media player environment, RetroPie for playing classic games, OpenMediaVault for turning your Pi into a NAS, and Pi MusicBox, based on the Mopidy music streaming server. +Other Linux distributions that regularly make Top Pi distro lists include Arch Linux, which unlike most ports from mature Linux distros, works just fine on ARMv6. A recent [TechRadar Top 5 list][24] includes several more niche distros in addition to Raspbian. These include the OSMC media player environment, RetroPie for playing classic games, OpenMediaVault for turning your Pi into a NAS, and Pi MusicBox, based on the Mopidy music streaming server. Beyond Ubuntu, Fedora, and Tizen, other distros, both arcane and general, are heading for the Pi 2, as well. The platform is rapidly expanding the boundaries of, as well as redefining the meaning of, desktop Linux. @@ -40,4 +40,28 @@ via: http://www.linux.com/news/embedded-mobile/mobile-linux/886126-tizen-30-join 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 -[a](http://www.linux.com/community/forums/person/42808) +[a]:http://www.linux.com/community/forums/person/42808 +[1]:http://blogs.s-osg.org/bringing-tizen-to-a-raspberry-pi-2-near-you/ +[2]:https://www.yoctoproject.org/ +[3]:http://www.openembedded.org/wiki/Main_Page +[4]:https://www.tizen.org/ +[5]:http://www.cio.com/article/3031812/samsung-hopes-raspberry-pi-can-spread-tizen-os-adoption.html +[6]:http://www.linux.com/news/embedded-mobile/mobile-linux/837843-samsung-sells-a-million-tizen-phones-as-mozilla-rethinks-firefox-os +[7]:http://www.linux.com/news/embedded-mobile/mobile-linux/877879-linux-based-drones-upstage-other-mobile-gadgets-at-ces +[8]:http://elinux.org/RPi_Distributions +[9]:https://distrowatch.com/search.php?category=Raspberry+Pi +[10]:https://www.raspberrypi.org/ +[11]:http://news.softpedia.com/news/raspbian-gets-experimental-opengl-driver-gpu-now-used-for-acceleration-500152.shtml +[12]:https://www.raspberrypi.org/downloads/ +[13]:http://www.linux.com/news/embedded-mobile/mobile-linux/804659-ubuntu-snappy-leads-mobile-linux-migration-to-iot +[14]:https://insights.ubuntu.com/2016/02/10/ubuntu-core-is-available-for-the-intel-nuc/ +[15]:https://www.reddit.com/r/openSUSE/comments/3hxrz4/opensuse_on_a_raspberry_pi_2_armv7/ +[16]:http://www.linux-arm.info/index.php/1103-hands-on-more-adventures-with-manjaro-arm-for-the-raspberry-pi-2 +[17]:http://www.linux-arm.info/index.php/1054-centos-altarch-7-now-available-for-aarch64-powerpc64-powerpc8-le-and-armhfp +[18]:http://www.linux.com/news/embedded-mobile/mobile-linux/807087-faster-raspberry-pi-2-says-yes-to-ubuntu-and-windows-but-wheres-android +[19]:http://www.linux.com/news/embedded-mobile/mobile-linux/886126-tizen-30-joins-growing-list-of-raspberry-pi-2-distros#!topic/android-rpi/YW_gGr8wZkk +[20]:https://extonlinux.wordpress.com/2015/04/05/run-android-5-1-lollipop-exton-build-on-your-raspberry-pi-2/ +[21]:https://www.raspberrypi.org/forums/viewtopic.php?f=73&t=19106 +[22]:https://ubuntu-mate.org/raspberry-pi/ +[23]:https://chisight.wordpress.com/2015/10/19/fedora-22-or-23-on-raspberry-pi-2/ +[24]:http://www.techradar.com/us/news/software/5-of-the-most-popular-raspberry-pi-distros-1292537 From 64815556c7daf620251ee24ff6de17ba1a1c818a Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 22 Feb 2016 11:59:43 +0800 Subject: [PATCH 138/582] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=80=89=E9=A2=98?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3.0 Joins Growing List of Raspberry Pi 2 Distributions.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md b/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md index ee98887448..062fcae483 100644 --- a/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md +++ b/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md @@ -1,12 +1,13 @@ Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions ============================================================== + Last week’s news that Tizen 3.0 has been ported to the Raspberry Pi 2 Model B is the latest example of how the year-old ARMv7 version of the Pi is attracting ports from more powerful Linux distributions, most notably Fedora, Ubuntu MATE, and Snappy. The [Samsung Open Source Group’s Tizen for Pi][1] project has been underway for several years, achieving several beta releases, and now the effort has shifted to the new Tizen 3.0. It’s still in beta, but now you can create builds for the Pi 2 using tools from the [Yocto][2] Project and [OpenEmbedded project][3]. Tizen 3.0 offers performance and security improvements, multiple-user and 64-bit support, and an Internet of Things (IoT) framework. Samsung, the principal backer of the [Linux Foundation hosted Tizen project][4], is using the Pi port to expand the base of developers using Tizen for IoT projects, according to an [IDG News Service post][5] that reported on the port. Although Samsung finally [shipped a Tizen-based][6] phone in India last summer, and Gear smartwatches continue to use Tizen, the main focus now appears to be on IoT. At CES last month, Samsung [announced][7] that all of its Tizen-based, 2016 Smart TVs will be able to act as SmartThings home automation hubs, letting users monitor the household while watching TV. -## The Growing List of Pi Distros +### The Growing List of Pi Distros [Elinux.org][8] lists some 46 ARMv6-ready distributions that run on all the Raspberry Pi boards. A separate listing notes two ARMv7-only distros that require the ARMv7 Raspberry Pi 2: Ubuntu MATE, which replaces the resource-intensive Unity desktop with the Gnome 2.0 flavored MATE, and Windows 10 IoT Core. The prominent placement of a Microsoft distribution is not as controversial as one might have thought. To many younger Linux developers and casual Pi hackers, Microsoft is just another tech company, not so much the evil empire loathed by old-time Linux hackers. @@ -18,7 +19,7 @@ The Pi Foundation also lists several [third-party downloads][12]. In addition to In addition to its list of 48 released distros, Elinux.org lists several “announced” distros including Firefox OS, [openSUSE][15], Meego MER & XBMC, Puppy, RPi-Buildroot, and Aros. Missing, however, is Tizen, as well as newly announced ports such as [Manjaro-ARM][16] and the CentOS 7-based [CentOS AltArch 7][17] for the Pi 2, Banana Pi, and CubieTruck SBCs. -## Android Still Pi in the Sky +### Android Still Pi in the Sky Elinux.org’s “announced” list also includes Android and a Miracast-like program called Android Transporter. People have been trying to port Android to the Pi for years; yet, even with the more suitable [Pi 2][18] shipping for a year now, Android is still pretty much a no-show. Android can run on lower-powered SoCs than the Pi 2’s quad-core, Cortex-A7, but the limited 1GB of RAM and the lack of GPU acceleration are big challenges. Perhaps Raspbian’s OpenGL driver could be ported to Android as well, although the Pi Foundation does not seem very interested in Android. From f50d7a402ad215892f822164188988acd01cbb78 Mon Sep 17 00:00:00 2001 From: Jonathan Kang Date: Mon, 22 Feb 2016 14:09:21 +0800 Subject: [PATCH 139/582] JonathanKang is translating --- .../20160220 [Free Download] Vi Cheat Sheet For Beginners.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md b/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md index 0a43387984..db69940892 100644 --- a/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md +++ b/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md @@ -1,3 +1,5 @@ +JonathanKang is translating + [Free Download] Vi Cheat Sheet For Beginners ================================================ From 96f17f73af84fdc2689e640c61d47ede5825bfe4 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 22 Feb 2016 13:58:00 +0800 Subject: [PATCH 140/582] PUB:20160218 The Best Linux Distros of 2016 @GHLandy @mudongliang @locez @oska874 --- ...20160218 The Best Linux Distros of 2016.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) rename {translated/tech => published}/20160218 The Best Linux Distros of 2016.md (58%) diff --git a/translated/tech/20160218 The Best Linux Distros of 2016.md b/published/20160218 The Best Linux Distros of 2016.md similarity index 58% rename from translated/tech/20160218 The Best Linux Distros of 2016.md rename to published/20160218 The Best Linux Distros of 2016.md index dee100ad70..bfd8ddd640 100644 --- a/translated/tech/20160218 The Best Linux Distros of 2016.md +++ b/published/20160218 The Best Linux Distros of 2016.md @@ -1,21 +1,21 @@ -2016 最佳Linux 发行版 +2016:如何选择 Linux 发行版 ================================ ![](http://www.linux.com/images/stories/66866/distro-opensuse.JPG) -[不管是在企业还是在消费者空间](http://www.cio.com/article/3017983/linux/2015s-most-exciting-linux-devices.html),2015 对于 Linux 来说都是极其重要的一年。作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了 Linux 过去这 10 年里的重大发展,[并且,我相信它在 2016 年里会更加令人激动](http://www.cio.com/article/3017177/linux/11-predictions-for-linux-in-2016.html)。在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版给大家介绍一下。 +[不管是在企业级应用还是在消费者领域](http://www.cio.com/article/3017983/linux/2015s-most-exciting-linux-devices.html),2015 对于 Linux 来说都是极其重要的一年。作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了 Linux 过去这 10 年里的重大发展,[并且,我相信它在 2016 年里会更加令人激动](http://www.cio.com/article/3017177/linux/11-predictions-for-linux-in-2016.html)。在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版给大家介绍一下。 -## 最易回归的发行版:openSUSE +## 强势归来的发行版:openSUSE SUSE 是 openSUSE 发行版背后的公司,同时也是起步最早的 Linux 公司;[它在 Linus Torvalds 发布 Linux 的第二年就成立了](http://www.linux.com/news/software/applications/866964-exclusive-interview-with-suse-president-nils-brauckmann)。该公司的成立实际上早于现在的 Linux 公司之王 —— Red Hat。同时 SUSE 也是 [openSUSE](https://www.opensuse.org/) 社区发行版的发起者和赞助商。 2015 年,openSUSE 的开发团队决定向 SUSE Linux 企业版 (SLE) 靠拢,以便让用户可以获得企业服务器特性的发行版——类似于 CentOS 和 Ubuntu 那样。因此,openSUSE 变成了 [openSUSE Leap](https://en.opensuse.org/Portal:Leap),一个直接基于 SLE SP1 的发行版。 -两个发行版共用相同的基础代码,相互受益—— SUSE 会选用 openSUSE 中好的代码,反之亦然。如此,openSUSE 也放弃了原本常规的发布周期,新版本与 SLE 同步发行。这意味着每个版本将会有更长的生命周期。 +两个发行版共用相同的基础代码,相互受益 —— SUSE 会选用 openSUSE 中好的代码,反之亦然。如此,openSUSE 也放弃了原本常规的发布周期,新版本与 SLE 同步发行。这意味着每个版本将会有更长的生命周期。 -这样做的结果是,openSUSE 就成了一个非常重要的发行版,因为潜在的 SLE 用户现在可以使用 openSUSE Leap 了。但也并非完全如此,openSUSE 同样也有发行版 [Tumbleweed](http://www.cio.com/article/3008856/open-source-tools/is-opensuse-tumbleweed-good-enough-for-a-seasoned-arch-user.html) ——一个纯净的滚动式版本。所以,用户们可以选择使用超稳定的 openSUSE Leap 或者经常更新的 openSUSE Tumbleweed。 +这样做的结果是,openSUSE 就成了一个非常重要的发行版,因为潜在的 SLE 用户现在可以使用 openSUSE Leap 了。不过,这还不是全部,openSUSE 同样也有发行版 [Tumbleweed](http://www.cio.com/article/3008856/open-source-tools/is-opensuse-tumbleweed-good-enough-for-a-seasoned-arch-user.html) —— 一个纯净的滚动式版本。所以,用户们可以选择使用很稳定的 openSUSE Leap 或者经常更新的 openSUSE Tumbleweed。 -在我的记忆中,还没有其他的发行版做了这样一个令人印象深刻的回归。 +在我的记忆中,还没有其他的发行版做了这样一个令人印象深刻的强势归来。 ## 最高可定制性的发行版:Arch Linux @@ -27,15 +27,15 @@ Arch Linux 是目前最好的滚动式更新的发行版。好吧,我可能有 - Arch Linux 同时也是最好的滚动式更新的发行版之一。它需要经常保持着更新。用户所运行的基本上是最新的软件,当然,也可以通过非稳定仓库运行预发行版的软件。 -- Arch 闻名于拥有为数众多的优秀文档。Arch Wiki 是我用以了解所有 Linux 相关事情的外带资源。 +- Arch 闻名于拥有为数众多的优秀文档。Arch Wiki 是我用以了解所有 Linux 相关事情的完整资源。 - Arch 中,我最喜欢的是,它提供了“任何”其他发行版中可用的的包和软件,同时还要感谢 AUR (Arch User Repository,Arch 用户仓库)。 ## 最美观的发行版:elementary OS -不同的发行版会有不同的关注点——多数情况下表现为不同的技术。在大多数的 Linux 发行版中,外观和用户感觉并非他们优先考虑的事情 —— 这通常是桌面环境需要考虑的事情。 +不同的发行版会有不同的关注点——多数情况下表现为技术的不同。在大多数的 Linux 发行版中,外观和用户感觉并非他们优先考虑的事情 —— 这通常是桌面环境需要考虑的事情。 -[elementary OS](https://elementary.io/) 正在尝试改变这一事实。在这个发行版中,设计是占据重要位置,并且原因明显——为该发行版取这个名字的开发者要在 Linux 世界里创建一些漂亮的图标。 +[elementary OS](https://elementary.io/) 正在尝试改变这一事实。在这个发行版中,设计是占据重要位置,并且原因明显——这个发行版是由那些以在 Linux 世界创建漂亮图标而闻名的设计人员所开发的。 elementary OS 相当注重整体外观和用户感觉。开发者创建了他们自己的组件,包括桌面环境。此外,他们只会选择那些符合设计规范的应用来加入到软件仓库。你可以发现 elementary OS 有很浓重的 Mac OS X 气息。 @@ -43,17 +43,17 @@ elementary OS 相当注重整体外观和用户感觉。开发者创建了他们 ![](http://www.linux.com/images/stories/66866/distro-solus.JPG) -[Solus](https://solus-project.com/) 最近获得非常大的关注程度。它是一个外观还可以、从零开始构建的操作系统,而并非 Debian 或者 Ubuntu 的衍生版本。它使用的 Budgie 桌面环境同样是从零开始构建的,但它的目标是兼容 Gnome。Solus 和 Google 的 Chrome OS 一样——一切从简。 +[Solus](https://solus-project.com/) 最近获得非常大的关注程度。它是一个看起来中规中矩、从零开始构建的操作系统,它并非 Debian 或者 Ubuntu 的衍生版本。它使用的 Budgie 桌面环境同样是从零开始构建的,但它的目标是兼容 Gnome。Solus 和 Google 的 Chrome OS 一样——一切从简。 我个人没怎么玩过 Solus,但它看起来很有前途。Solus 实际上并不是一个 “新” 系统。它曾以不同的形式和名称存在了很长时间,但直到 2015 年整个项目才以现在这个新名称重归大众视野。 ## 最好的云操作系统:Chrome OS -[Chrome OS](https://www.chromium.org/chromium-os) 可能不会成为你的典型 Linux 发行版,毕竟它是基于浏览器的操作系统,主要用以在线活动。但由于它基于 Linux 以及任何人都可以获取其源码进行编译,它同样是一个吸引人的系统。同时我也每天使用 Chrome OS,它是一个优秀、不用自己维护并且总是最新状态的系统,每个人都可以单纯用它来进行 web 相关的活动。Chrome OS 和 Android 对于推动 Linux 在 PC 市场和移动市场的占有率有着不可或缺的功劳。 +[Chrome OS](https://www.chromium.org/chromium-os) 可能不会成为你的典型 Linux 发行版,毕竟它是基于浏览器的操作系统,主要用以在线使用。但由于它基于 Linux ,任何人都可以获取其源码进行编译,它同样是一个吸引人的系统。我每天都使用 Chrome OS,它是一个优秀、不用自己维护并且总是保持最新状态的系统,每个人都可以单纯地用它来进行 web 相关的用途。Chrome OS 和 Android 对于推动 Linux 在 PC 市场和移动市场的占有率有着不可或缺的功劳。 -## 最好的笔记本操作系统:Ubuntu MATE +## 最好的笔记本计算机操作系统:Ubuntu MATE -大多数的笔记本都没有高端的硬件,假如你运行了一个很耗费资源的桌面环境,那么你可能没有足够的系统资源或电量来维持你的基本使用 —— 因为基本上被系统自身消耗了。于是我找到了 [Ubuntu MATE](http://www.cio.com/article/2848475/ubuntu-mate-enterprise-customers.html) 这个优秀的系统。它是轻量级的环境,但提供了能让你拥有不错体验的所有软件。也幸好它的轻量级设计,大部分的系统资源都留来给你的软件使用,让你依旧可以完成一些繁重的任务。我还发现,它对于一些低端的硬件也同样有很好的支持。 +大多数的笔记本计算机都没有高端的硬件,假如你运行了一个很耗费资源的桌面环境,那么你可能没有足够的系统资源或电量来维持你的使用 —— 因为基本上被操作系统自身消耗了。于是我找到了 [Ubuntu MATE](http://www.cio.com/article/2848475/ubuntu-mate-enterprise-customers.html) 这个优秀的系统。它是轻量级的环境,但提供了能让你拥有不错体验的所有软件。也幸好它的轻量级设计,大部分的系统资源都留来给你的软件使用,让你依旧可以完成一些繁重的任务。我认为它对于低端硬件来说是最好的发行版。 ## 为老旧硬件支持而生的发行版:Lubuntu @@ -63,19 +63,19 @@ elementary OS 相当注重整体外观和用户感觉。开发者创建了他们 ![](http://www.linux.com/images/stories/66866/distro-ubuntu-studio.JPG) -Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系统。该系统拥有巨大潜力,它可以将我们身边绝大多数的东西 —— 如路由器、咖啡机和玩具飞机等——变成智能设备。让它更有趣的是,软件管理更新的方式以及添加安全性能的模块。 +Snappy Ubuntu Core 是为物联网 (IoT) 及此类设备而生的 Linux 操作系统。该系统拥有巨大潜力,它可以将我们身边绝大多数的东西 —— 如路由器、咖啡机和无人机等——变成智能设备。让它更有趣的是,软件管理更新的方式以及为增加安全而提供的容器化支持。 ## 为桌面系统而生的发行版:Linux Mint Cinnamon -[Linux Mint Cinnamon](http://www.linux.com/news/software/applications/838569-review-linux-mint-172-release/) 对于台式机和一些有强大硬件的笔记本来说是最好的操作系统。我会尽量把它叫做 Linux 世界里的 Mac OS X。老实说,由于 Cinnamon 的不稳定,我在很长一段时间内并不是 Linux Mint 的忠实粉丝。但是,在开发者使用 LTS (Long Term Support,长期支持)作为基础之后,该发行版就变得难以想象的稳定。因为开发者不必花费经历来跟上 Ubuntu 的开发进度,他们现在可以将所有精力放到提升 Cinnamon 上。 +[Linux Mint Cinnamon](http://www.linux.com/news/software/applications/838569-review-linux-mint-172-release/) 对于台式机和一些有强大硬件的笔记本来说是最好的操作系统。我一般把它叫做 Linux 世界里的 Mac OS X。老实说,由于 Cinnamon 的不稳定,我在很长一段时间内并不是 Linux Mint 的忠实粉丝。但是,在开发者使用Ubuntu LTS (Long Term Support,长期支持)作为基础版本之后,该发行版就变得难以想象的稳定。因为开发者不必花费精力来跟上 Ubuntu 的开发进度,他们现在可以将所有精力放到提升 Cinnamon 上。 ## 为游戏而生的发行版:Steam OS -对于桌面版 Linux 来说,玩游戏同样是短板。很多用户为了能够玩游戏,安装了 Linux 和 Windows 双系统。而 Valve 则尝试改变这个局面。Valve 是一个游戏发行商,它提供一个可以跨平台运行游戏的客户端。并且,Valve 也同样创建了它自己的开源操作系统——[Steam OS](http://store.steampowered.com/steamos/)——为了创建一个基于 Linux 的游戏平台。截至 2015 年底,它的合作伙伴开始把搭载了 Steam OS 的机器推向市场。 +对于桌面版 Linux 来说,玩游戏同样是短板。很多用户为了能够玩游戏,安装了 Linux 和 Windows 双系统。而 Valve 则尝试改变这个局面。Valve 是一个游戏发行商,它提供一个可以在不同平台上运行游戏的客户端。并且,Valve 也同样创建了它自己的开源操作系统——[Steam OS](http://store.steampowered.com/steamos/)——为了创建一个基于 Linux 的游戏平台。截至 2015 年底,它的合作伙伴开始把搭载了 Steam OS 的机器推向市场。 ## 为隐私而生的发行版:Tails -在充斥着大量监控和营销者的跟踪 (为目标内容进行的匿名跟踪通常是可接受的)的岁月,隐私就变成主要问题。如果你想脱离政府或者市场机构的监控和跟踪范围,那么你需要一款始终考虑到隐私问题的操作系统。 +在充斥着大量监控和营销者的跟踪 (对目标内容进行的匿名跟踪通常是可接受的)的岁月,隐私保护就变成了一个重要问题。如果你想脱离政府或者市场机构的监控和跟踪,那么你需要一款始终考虑到隐私问题的操作系统。 在出于保护隐私的考虑上,没有任何一款系统可以超越 [Tails](https://tails.boum.org/)。它是一款基于 Debian 的发行版,并且在设计之初就考虑了隐私和匿名的支持。Tails 非常优秀,而且据报道说,NSA 认为这是对他们的监控的主要威胁之一。 @@ -85,21 +85,21 @@ Snappy Ubuntu Core 为物联网 (IoT) 及此类设备而生的 Linux 操作系 ## 最好的企业发行版:SLE/RHEL -企业级用户并不会通过浏览像这样的文章来了解他们的服务器该运行什么发行版。他们通常非常明确该到哪里获取信息:即 [Red Hat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) 或 [SUSE Linux Enterprise](https://www.suse.com/)。这两个名字已经成了企业服务器的代名词了。同时,它们背后的公司也都通过创新来推动一切皆容器并且可以进行软件定义。 +企业级用户并不会通过浏览像这样的文章来了解他们的服务器该运行什么发行版。他们通常非常明确地知道该到哪里获取信息:即 [Red Hat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux) 或 [SUSE Linux Enterprise](https://www.suse.com/)。这两个名字已经成了企业服务器的代名词了。同时,这些公司也都通过创新来推动将一切都容器化和变成软件定义的。 ## 最好的服务器操作系统:Debian/CentOS -假如你在考虑自己运行一台服务器,但有不希望支付 RHEL 或者 SLE 授权的费用,那么 [Debian](https://www.debian.org/) 或者 [CentOS](https://www.centos.org/) 将是你最好的选择。这两个发行版在社区发行版服务器操作系统有着不可动摇的地位。并且它们有着长期支持,你不必担忧需要经常去升级系统。 +假如你在考虑自己运行一台服务器,但有不希望支付 RHEL 或者 SLE 授权的费用,那么 [Debian](https://www.debian.org/) 或者 [CentOS](https://www.centos.org/) 将是你最好的选择。这两个发行版是社区主导的服务器操作系统,具有不可动摇的地位。并且它们有着长期支持,你不必担忧需要经常去升级系统。 ## 最好的移动操作系统:Plasma Mobile -尽管,基于 Linux 的 Android 系统称雄于移动操作系统市场,但是大多数的开源社区——也包括我在内——也仍然强烈希望能有一个发行版能够为移动设备提供传统 Linux 的桌面应用。同时,这样的一个发行版由开源社区来维护会比由商业公司来维护好的多,只有这样用户群才能成为这个发行版的焦点,而不应该由公司的商业目标来决定这个发行版的发展趋势。而 KDE 的 [Plasma Mobile](https://community.kde.org/Plasma/Mobile) 刚好实现了我们的愿望。 +尽管,基于 Linux 的 Android 系统称雄于移动操作系统市场,但是大多数的开源社区——也包括我在内——也仍然强烈希望能有一个发行版可以为移动设备提供传统 Linux 的桌面应用。同时,这样的一个发行版由开源社区来维护会比由商业公司来维护好的多,只有这样,用户才能成为这个发行版的关注点,而不是由公司的商业目标来决定这个发行版的发展趋势。KDE 的 [Plasma Mobile](https://community.kde.org/Plasma/Mobile) 刚好实现了我们的愿望。 这个基于 Kubuntu 的发行版始于 2015 年。因为 KDE 社区以坚守标准和为公众开发应用而闻名,我非常期待 Plasma Mobile 能够一直坚持下去。 ## 为 ARM 设备而生的发行版:Arch Linux ARM -随着 Android 系统的成功,我们的生活也围绕者越来越多的 ARM 设备——从树莓派 (Raspberry Pi) 到 Chromebook 以及 Nvidia Shield。为 Intel/AMD 架构的 CPU 而编写的传统发行版并不能够在这些 ARM 架构的设备上运行。而一些为 ARM 而编写的发行版却仅仅只能在特定的硬件上运行,比如只能运行在树莓派 (Raspberry Pi) 上的 Raspbian 系统。这就是 [Arch Linux ARM](http://archlinuxarm.org/) (ALARM) 的闪光点所在。它是一个基于 Arch Linux 的纯社区支持的发行版,可以在树梅派 (Raspberry Pi)、Chromebook、Android 设备以及 Nvidia Shield 等设备上运行。同时,也由于 AUR,该发行版变得更加有趣,你可以安装很多在其他发行版可能无法获取的软件。 +随着 Android 系统的成功,我们的生活也围绕者越来越多的 ARM 设备——从树莓派 (Raspberry Pi) 到 Chromebook 以及 Nvidia Shield。为 Intel/AMD 架构的 CPU 而编写的传统发行版并不能够在这些 ARM 架构的设备上运行。而一些为 ARM 而编写的发行版却仅仅只能在特定的硬件上运行,比如只能运行在树莓派 (Raspberry Pi) 上的 Raspbian 系统。这就是为什么 [Arch Linux ARM](http://archlinuxarm.org/) (ALARM) 让人眼前一亮的原因。它是一个基于 Arch Linux 的纯粹由社区主导的发行版,可以在树梅派 (Raspberry Pi)、Chromebook、Android 设备以及 Nvidia Shield 等设备上运行。同时,更好的是,也由于 AUR,你可以安装很多在其他发行版可能无法获取的软件。 ## 结论 @@ -111,7 +111,7 @@ via: http://www.linux.com/news/software/applications/878620-the-best-linux-distr 作者:[Swapnil Bhartiya][a] 译者:[GHLandy](https://github.com/GHLandy) -校对:[mudongliang](https://github.com/mudongliang) +校对:[mudongliang](https://github.com/mudongliang),[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 3442410a42843c8d737fe2d58baa763fb8e954e2 Mon Sep 17 00:00:00 2001 From: robot527 Date: Mon, 22 Feb 2016 15:30:56 +0800 Subject: [PATCH 141/582] Translating The best open source networking and security software --- ...5--The best open source networking and security software.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md b/sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md index 129ce3eff4..78c558b1e6 100644 --- a/sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md +++ b/sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md @@ -1,3 +1,6 @@ +robot527 translating + + Bossie Awards 2015: The best open source networking and security software ================================================================================ InfoWorld's top picks of the year among open source tools for building, operating, and securing networks From 1dd5c99446d1250d643fc6216ebbc901789bcd45 Mon Sep 17 00:00:00 2001 From: "Fuliang.Li" Date: Mon, 22 Feb 2016 22:31:46 +0800 Subject: [PATCH 142/582] =?UTF-8?q?[=E5=BC=80=E5=A7=8B=E7=BF=BB=E8=AF=91]?= =?UTF-8?q?=2020160218=20Best=20Linux=20Desktop=20Environments=20for=20201?= =?UTF-8?q?6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2016:如何选择 Linux 桌面环境 --- .../tech/20160218 Best Linux Desktop Environments for 2016.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160218 Best Linux Desktop Environments for 2016.md b/sources/tech/20160218 Best Linux Desktop Environments for 2016.md index a93d38c21a..7aef79366b 100644 --- a/sources/tech/20160218 Best Linux Desktop Environments for 2016.md +++ b/sources/tech/20160218 Best Linux Desktop Environments for 2016.md @@ -1,3 +1,5 @@ +GHLandy Translating + Best Linux Desktop Environments for 2016 ============================================= From 81dd542a8fe8e62f25b457a42ed2bfc45aca0087 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 23 Feb 2016 09:50:42 +0800 Subject: [PATCH 143/582] =?UTF-8?q?20160223-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er Tools With Wercker’s Open Source CLI.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md diff --git a/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md b/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md new file mode 100644 index 0000000000..81f7467719 --- /dev/null +++ b/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md @@ -0,0 +1,80 @@ +Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI +=========================================== + +For enterprises, containers offer more efficient build environments, cloud-native applications and migration from legacy systems to the cloud. But enterprise adoption of the technology -- Docker specifically -- has been hampered by, among other issues, [a lack of mature developer tools][1]. + +Amsterdam-based [Wercker][2] is one of many early-stage companies looking to meet the need for better tools with its cloud platform for automating microservices and application development, based on Docker. + +The company [announced a $4.5 million Series A][3] funding round this month, which will help it ramp up development on an upcoming on-premise enterprise product. Key to its success, however, will be building a community around its newly [open-sourced CLI][4] tool. Wercker must quickly integrate with myriad other container technologies -- open source Kubernetes and Mesos among them -- to remain competitive in the evolving container space. + +“By open sourcing our CLI technology, we hope to get to dev-prod parity faster and turn “build once, ship anywhere” into an automated reality,” said Wercker CEO and founder Micha Hernández van Leuffen. + +I reached out to van Leuffen to learn more about the company, its CLI tool, and how it’s planning to help grow the pool of enterprise customers actually using containers in production. Below is an edited version of the interview. + +### Linux.com: Can you briefly tell us about Wercker? + +van Leuffen: Wercker is a container-centric platform for automating the development of microservices and applications. + +With Wercker’s Docker-based infrastructure, teams can increase developer velocity with custom automation pipelines using steps that produce containers as artifacts. Once the build passes, users can continue to deploy the steps as specified in the wercker.yml. Continuously repeating these steps allows teams to work in small increments, making it easy to debug and ship faster. + +![](https://www.linux.com/images/stories/66866/wercker-cli.png) + +### Linux.com: How does it help developers? + +van Leuffen: The Wercker CLI helps developers attain greater dev-prod parity. They’re able to release faster and more often because they are developing, building and testing in an environment very similar to that in production. We’ve open sourced the exact same program that we execute in the Wercker cloud platform to run your pipelines. + +### Linux.com: Can you point out some of the features and advantages of your tool as compared to competitors? + +van Leuffen: Unlike some of our competitors, we’re not just offering Docker support. With Wercker, the Docker container is the unit of work. All jobs run inside containers, and each build artifact can be a Docker container. + +Wercker’s Docker container pipeline is completely customizable. A ‘pipeline’ refers to any automated workflow, for instance, a build or deploy pipeline. In those workflows, you want to execute tasks: install dependencies, test your code, push your container, or create a slack notification when something fails, for example. We call these tasks ‘steps,’ and there is no limit to the types of steps created. In fact, we have a marketplace of steps built by the Wercker community. So if you’ve built a step that fits my workflow, I can use that in my pipeline. + +Our Docker container pipelines adapt to any developer workflow. Users can use any Docker container out there — not just those made by or for Wercker. Whether the container is on Docker Hub or a private registry such as CoreOS’s Quay, it works with Wercker. + +Our competitors range from the classic CI/CD tools to larger-scale DevOps solutions like CloudBees. + +### Linux.com: How does it integrate with other cloud technologies? + +van Leuffen: Wercker is vendor-agnostic and can automate development with any cloud platform or service. We work closely with ecosystem partners like Mesosphere, Kubernetes and CoreOS to make integrations as seamless as possible. We also recently partnered with Atlassian to integrate the Wercker platform with Bitbucket. More than 3 million Bitbucket users can install the Wercker Pipeline Viewer and view build status directly from their dashboard. + +### Linux.com: Why did you open source the Wercker CLI tool? + +van Leuffen: Open sourcing the Wercker CLI will help us stay ahead of the curve and strengthen the developer community. The market landscape is changing fast; developers are expected to release more frequently, using infrastructure of increasing complexity. While Docker has solved a lot of infrastructure problems, developer teams are still looking for the perfect tools to test, build and deploy rapidly. + +The Wercker community is already experimenting with these new tools: Kubernetes, Mesosphere, CoreOS. It makes sense to tap that community to create integrations that work with our technology – and make that process as frictionless as possible. By open sourcing our CLI technology, we hope to get to dev-prod parity faster and turn “build once, ship anywhere” into an automated reality. + +### Linux.com: You recently raised over $4.5 million, so how is this fund being used for product development? + +van Leuffen: We’re focused on building out our commercial team and bringing an enterprise product to market. We’ve had a lot of inbound interest from the enterprise looking for VPC and on-premise solutions. While the enterprise is still largely in the discovery stage, we can see the market shifting toward containers. Enterprise software devs need to release often, just like the small, agile teams with whom they are increasingly competing. We need to prove containers can scale, and that Wercker has the organizational permissions and the automation suite to make that process as efficient as possible. + +In addition to continuing to invest in our product, we’ll be focusing our resources on market education and developer evangelism. Developer teams are still looking for the right mix of tools to test, build and deploy rapidly (including Kubernetes, Mesosphere, CoreOS, etc.). As an ecosystem, we need to do more to educate and provide the tutorials and resources to help developers succeed in this changing landscape. + +### Linux.com: What products do you offer and who is your target audience? + +van Leuffen: We currently offer one service level of our product Wercker; however, we’re developing an enterprise offering. Current organizations using Wercker range from startups, such as Open Listings, to larger companies and big agencies, like Pivotal Labs. + + +### Linux.com: What does this recently open-sourced CLI do? + +van Leuffen: Using the Wercker Command Line Interface (CLI), developers can spin up Docker containers on their desktop, automate their build and deploy processes and then deploy them to various cloud providers, like AWS, and scheduler and orchestration platforms, such as Mesosphere and Kubernetes. + +The Wercker Command Line Interface is available as an open source project on GitHub and runs on both OSX and Linux machines. + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/enterprise/systems-management/887177-achieving-enterprise-ready-container-tools-with-werckers-open-source-cli + +作者:[Swapnil Bhartiya][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.linux.com/community/forums/person/61003 +[1]:http://thenewstack.io/adopting-containers-enterprise/ +[2]:http://wercker.com/ +[3]:http://venturebeat.com/2016/01/28/wercker-raises-4-5-million-open-sources-its-command-line-tool/ +[4]:https://github.com/wercker/wercker + + From de34ee4eff38ed238aefd88c32d27f7d5524f000 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 23 Feb 2016 10:11:49 +0800 Subject: [PATCH 144/582] =?UTF-8?q?20160223-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...RM processor for the Internet of Things.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md diff --git a/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md b/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md new file mode 100644 index 0000000000..2acebc8473 --- /dev/null +++ b/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md @@ -0,0 +1,37 @@ +NXP unveils a tiny 64-bit ARM processor for the Internet of Things +========================================================================= + +**TAGS**:[ARM][1], [INTERNET OF THINGS][2], [NXP][3], [NXP SEMICONDUCTORS][4] + +![](http://1u88jj3r4db2x4txp44yqfj1.wpengine.netdna-cdn.com/wp-content/uploads/2016/02/nxp-930x556.jpg) + +[NXP Semiconductors][5] has unveiled what it calls the world’s smallest and lowest-power 64-bit ARM processor for the Internet of Things (IoT). + +The tiny QorIQ LS1012A delivers networking-grade security and performance acceleration to battery-powered, space-constrained applications. This includes powering applications for Internet of Things, or everyday objects that are smart and connected. If IoT is to reach its potential of $1.7 trillion by 2020 (as estimated by market researcher IDC), it’s going to need processors like the new one from NXP, which was unveiled at the Embedded World 2016 event in Nuremberg, Germany. + +The chip has a 64-bit ARMv8 processor with network packet acceleration and built-in security. It fits in a 9.6 mm-square space and draws about 1 watt of power. Potential applications include next-generation IoT gateways, portable entertainment platforms, high-performance portable storage applications, mobile hard disk drives, and mobile storage for cameras, tablets, and other rechargeable devices. + +Additionally, the LS1012A is the first processor designed specifically for an emerging new storage solution, dubbed object-based storage. Object-based storage relies on a smart hard disk drive that is directly connected to the data center’s Ethernet network. The processor must be small enough to be integrated directly on the circuit board for a hard disk drive. + +“The groundbreaking combination of low power, tiny footprint and networking-grade performance of NXP’s LS1012 processor is ideal for consumer, networking and Internet of Things applications alike,” said Tareq Bustami, senior vice president and general manager of NXP’s Digital Networking division, in a statement. “This unique blend of capabilities unleashes embedded systems designers and developers to imagine and create radically innovative end-products across a broad spectrum of high-growth markets.” + +NXP said it is the only 1-watt, 64-bit processor in the market to combine such a comprehensive set of high-speed peripherals in a single chip, thus enabling lower system-level costs. And due to innovative packaging, the processor can be routed on low-cost circuit boards. + +NXP’s LS1012A will be available in April 2016 and can be ordered now. NXP has more than 45,000 employees in 35 countries. + +-------------------------------------------------------------------------------- + +via: http://venturebeat.com/2016/02/21/nxp-unveils-a-small-and-tiny-64-bit-arm-processor-for-the-internet-of-things/ + +作者:[DEAN TAKAHASHI][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://venturebeat.com/author/dean-takahashi/ +[1]:http://venturebeat.com/tag/arm/ +[2]:http://venturebeat.com/tag/internet-of-things/ +[3]:http://venturebeat.com/tag/nxp/ +[4]:http://venturebeat.com/tag/nxp-semiconductors/ +[5]:http://www.nxp.com/ From dd1d0b122aaf6c46de2cd6b0c88aaab8da549b77 Mon Sep 17 00:00:00 2001 From: KS Date: Tue, 23 Feb 2016 10:27:55 +0800 Subject: [PATCH 145/582] Update 20160218 Top 4 open source issue tracking tools.md --- sources/tech/20160218 Top 4 open source issue tracking tools.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 Top 4 open source issue tracking tools.md b/sources/tech/20160218 Top 4 open source issue tracking tools.md index b2f784e1e7..060a50db11 100644 --- a/sources/tech/20160218 Top 4 open source issue tracking tools.md +++ b/sources/tech/20160218 Top 4 open source issue tracking tools.md @@ -1,3 +1,4 @@ +wyangsun translating Top 4 open source issue tracking tools ======================================== From 6df2f1212d74a018aeeb2d41e4a29df6c075289b Mon Sep 17 00:00:00 2001 From: BOBO Date: Wed, 24 Feb 2016 12:48:10 +0800 Subject: [PATCH 146/582] translating --- ...prise-Ready Container Tools With Wercker’s Open Source CLI.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md b/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md index 81f7467719..2f7d6f7f8d 100644 --- a/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md +++ b/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md @@ -1,5 +1,6 @@ Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI =========================================== +#CoderBOBO translating For enterprises, containers offer more efficient build environments, cloud-native applications and migration from legacy systems to the cloud. But enterprise adoption of the technology -- Docker specifically -- has been hampered by, among other issues, [a lack of mature developer tools][1]. From 14469815a347ce0c13562bd42c906cc4777d2ccd Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 24 Feb 2016 16:29:29 +0800 Subject: [PATCH 147/582] =?UTF-8?q?20160224-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Android phone powering big-screen Linux.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md diff --git a/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md b/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md new file mode 100644 index 0000000000..29a5c77cd9 --- /dev/null +++ b/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md @@ -0,0 +1,32 @@ +Intel shows budget Android phone powering big-screen Linux +============================================================== + +![](https://regmedia.co.uk/2016/02/23/intel-bigscreen.jpg?x=648&y=348&crop=1) + +**MWC16** Intel is showing what it calls "Big Screen Experience" at Mobile World Congress, an Android smartphone which runs a full Linux desktop when plugged into an external display. + +The concept is broadly similar to Microsoft's Continuum for Windows 10 Mobile, but whereas Continuum devices are towards the high end, Intel's project is aimed, it says, at budget smartphones and emerging markets. + +On display in Barcelona is a prototype SoFIA (Smart or Feature Phone with Intel Architecture) smartphone with an Atom x3 processor, 2GB RAM and 16GB storage, and modified to support an external display. Attach keyboard, mouse and display, and it becomes desktop Linux, with an option to display the Android screen in a window on the large display. + +"Android is based on a Linux kernel, so we're running one kernel, we have an Android stack and a Linux stack, and we're sharing the same context, so the file system is identical. The phone stays fully functional," Intel's Nir Metzer, Path Finding Group Manager, told the Reg. + +"I have a multi-window environment. As soon as I plug in I can do spreadsheets, I can drag and drop, play video. Achieving all this on a low-end platform is a challenge," said Metzer. + +Currently the display on the device goes blank when the external display is attached, but Metzer said that the next version of the Atom X3 will support dual displays. + +The version of Linux used is maintained by Intel. "We need to align between the Linux versions and the Android," said Metzer. "The framework is pre-installed, not an app you can download." + +Intel is pitching the idea at phone manufacturers here at Mobile World Congress, but had nothing to report concerning actual customers for its device. "The chip is ready, this is production-ready. This can go into production tomorrow. It is a business decision," said Metzer.® + +-------------------------------------------------------------------------------- + +via: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ + +作者:[Tim Anderson][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.theregister.co.uk/Author/2878 From 6f8f6394d46dd50d9de3e553b7606099e3289761 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 24 Feb 2016 16:34:12 +0800 Subject: [PATCH 148/582] =?UTF-8?q?20160224-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...S Parallel File System Goes Open Source.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md diff --git a/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md b/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md new file mode 100644 index 0000000000..d65285a222 --- /dev/null +++ b/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md @@ -0,0 +1,32 @@ +BeeGFS Parallel File System Goes Open Source +================================================== + +![](http://insidehpc.com/wp-content/uploads/2015/08/beegfs.jpg) + +Today ThinkParQ announced that the complete [BeeGFS parallel file system][1] is now available as open source. Developed specifically for performance-critical environments, the BeeGFS parallel file system was developed with a strong focus on easy installation and high flexibility, including converged setups where storage servers are also used for compute jobs. By increasing the number of servers and disks in the system, performance and capacity of the file system can simply be scaled out to the desired level, seamlessly from small clusters up to enterprise-class systems with thousands of nodes. + +The first official announcement to make the BeeGFS sources available was made at the International Supercomputing Conference 2013. This was in the context of the European exascale project [DEEP-ER][2], where several new approaches to address extreme I/O requirements are being designed and implemented. For exascale systems, the different software and hardware layers have to work together very efficiently to achieve maximum scalability. Thus, making the sources of BeeGFS available is one logical step to enabling efficient integration of all layers of an exascale stack. + +“While some of our users are just happy with the fact that BeeGFS is so easy to install and doesn’t require much attention, others really want to understand exactly what is happening under the hood to further optimize the runtime of their applications, improve their monitoring or port it to other platforms like BSD,” said Sven Breuner, CEO of ThinkParQ, the company behind BeeGFS “Also, being able to build BeeGFS for non-x86 architectures like ARM and Power is another important aspect that the community has been waiting for.” + +The steady advances in ARM technology indeed make it a more and more interesting technology to look at for future procurements. Thus, the BeeGFS team is also participating in [ExaNeSt][3], a new European exascale project, which is specifically focused on getting the ARM ecosystem ready for performance-critical workloads. “Although BeeGFS can already run out of the box on ARM systems today, this project will give us the opportunity to make sure that we can deliver the maximum performance on this architecture as well.”, adds Bernd Lietzow, BeeGFS head for ExaNeSt. + +With a rather compact code base of about 25K lines of C++ code for the distributed metadata service and about 15K lines of C++ code for the distributed storage service, BeeGFS should be relatively easy to understand and extend, not only for senior programmers, but also for University students interested in file system research. On GitHub, there are already a number of projects listed related to BeeGFS, e.g. for browser-based monitoring or Docker integration. + +In related news, the [BeeGFS User Meeting][4] will take place May 18-19 in Kaiserslautern, Germany. + +----------------------------------------------------------------------------------------- + +via: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+InsideHPC+%28insideHPC.com%29 + +作者:[staff][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://insidehpc.com/author/staff/ +[1]: http://www.beegfs.com/ +[2]: http://www.deep-project.eu/deep-project/EN/Home/home_node.html +[3]: http://www.exanest.eu/ +[4]: http://www.beegfs.com/content/user-meeting-2016/ From 1a8398fc6771cc30ba4cf497c9eaf7ef898a3906 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 24 Feb 2016 16:41:13 +0800 Subject: [PATCH 149/582] =?UTF-8?q?20160224-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Should Bring Order to Containerization.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md diff --git a/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md b/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md new file mode 100644 index 0000000000..48ea41d7b3 --- /dev/null +++ b/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md @@ -0,0 +1,49 @@ +New Docker Data Center Admin Suite Should Bring Order to Containerization +=============================================================================== + +![](https://tctechcrunch2011.files.wordpress.com/2016/02/shutterstock_119411227.jpg?w=738) + +[Docker][1] announced a new container control center today it’s calling the Docker Datacenter (DDC), an integrated administrative console that has been designed to give large and small businesses control over creating, managing and shipping containers. + +The DDC is a new tool made up of various commercial pieces including Docker Universal Control Plane (which also happens to be generally available today) and Docker Trusted Registry. It also includes open source pieces such as Docker Engine. The idea is to give companies the ability to manage the entire lifecycle of Dockerized applications from one central administrative interface. + +Customers actually were the driving force behind this new tool. While companies liked the agility that Docker containers give them, they also wanted management control over administration, security and governance around the containers they were creating and shipping, Scott Johnston, SVP of product management told TechCrunch. + +The company has called this Containers as a Service (CaaS), mostly because when customers came to them asking for this type of administrative control, that’s how they described it, Johnston said. + + +![](https://tctechcrunch2011.files.wordpress.com/2016/02/screen-shot-2016-02-23-at-7-56-54-am.png?w=680&h=401) + +>Image courtesy of Docker + +Like many open source projects, Docker gained a strong following among developers first, but as it grew in popularity, the companies these developers were working for wanted a straight-forward way to track and manage them. + +That’s exactly what DDC is designed to do. It gives developers the agility they need to create containerized applications, while providing operations with the tools they need to bring order to the process. + +In practice this means that developers can create a set of containerized components, have them approved for deployment by operations and then have access to a library of fully certified images. This lets developers pull the pieces they need across a range of applications without having to reinvent the wheel every time. That should speed up application development and deployment (and add to the agility that containers should in theory be providing in the first place). + +This aspect appealed to Beta customer ADP. The payroll services giant particularly liked having this central repository of images available to developers. + +“As part of our initiative to modernize our business-critical applications to microservices, ADP has been investigating solutions that would enable our developers to leverage a central library of IT-vetted and secured core services that they could rapidly iterate on,” said Keith Fulton, Chief Technology Officer at ADP said in a statement. + +Docker was launched in 2010 by founder Solomon Hykes as dotCloud. He pivoted the company to Docker in 2013, [selling dotCloud in August][2], 2014 to focus completely on Docker. + +The company came out of the gate like gangbusters a couple of years ago raising $180 million ($168 million since becoming Docker) over five rounds, according to CrunchBase. What caught the attention of investors was that Docker offered a way to deliver applications for the modern age called containers, a way of building, managing and shipping distributed applications. + +Containerization enables developers to create these distributed applications made up of small discrete pieces that run across multiple servers, as opposed to the large monolithic applications companies used to create running on a single server. + +Pricing for Docker Datacenter starts at $150 per node per month. + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/calico-virtual-private-networking-docker/ + +作者:[ Ron Miller][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://techcrunch.com/author/ron-miller/ +[1]: https://www.docker.com/ +[2]: http://techcrunch.com/2014/08/04/docker-sells-dotcloud-to-cloudcontrol-to-focus-on-core-container-business/ From d2818a9bc4402d2487d9b2f34144aa955850f00b Mon Sep 17 00:00:00 2001 From: Jonathan Kang Date: Wed, 24 Feb 2016 16:44:12 +0800 Subject: [PATCH 150/582] Translated --- ... Download] Vi Cheat Sheet For Beginners.md | 80 ------------------- ... Download] Vi Cheat Sheet For Beginners.md | 79 ++++++++++++++++++ 2 files changed, 79 insertions(+), 80 deletions(-) delete mode 100644 sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md create mode 100644 translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md diff --git a/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md b/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md deleted file mode 100644 index db69940892..0000000000 --- a/sources/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md +++ /dev/null @@ -1,80 +0,0 @@ -JonathanKang is translating - -[Free Download] Vi Cheat Sheet For Beginners -================================================ - -![](http://itsfoss.com/wp-content/uploads/2016/01/VI.jpg) - -I have often shared my Linux experience with you. Today I am going to share my **Vi cheat sheet** that has often saved me time in googling for a quick command. - -## Basic Vi commands - -This is not a detailed tutorial to teach you each and every aspect of [Vi editor](https://en.wikipedia.org/wiki/Vi). In fact, it’s not a tutorial at all. It’s just a collection of basic Vi commands and their brief description for a quick reference. - -command|explain -:--|:-- -:x |Save the file and quit -:q!|Quit without saving the file -i|Insert starting left of the cursor -a|Append starting right of the cursor -ESC|Exit insert/append mode -arrows|Move cursor -/text|Search string text (case sensitive) -n|Search next occurrence of the searched item -x|Delete character under the cursor -dd|Delete line under the cursor -u|Undo last change -:0|Beginning of the file -:n|Go to line n -G|End of the file -^|Beginning of the line -$|End of the line -:set list|See special characters in the file -yy|Copy the line into the buffer -5yy|Copy 5 lines into the buffer -p|Paste buffer after the current line - -You can download the above cheat sheet in a PDF format from the link below: - -[Download Vi Cheat Sheet](https://drive.google.com/file/d/0By49_3Av9sT1X3dlWkNQa3g2b2c/view?usp=sharing) - -You can print it and keep it at your desk or just save it for offline use. - -## Why I created the Vi cheat sheet? - -Several years ago, when I started working in Linux terminal, the idea of using a command line editor horrified me. I had used desktop Linux before but it was my personal computer so I happily used the GUI text editor like Gedit. But in the working environment, I was stuck with the command line and there was no scope of using a graphical editor. - -I was forced to use Vi for basic edits in the files on remote Linux boxes and this is where I identified and started to admire the power of command line editing tool Vi. - -Since, at that time, I was new at Vi editor, I found myself baffling with it. The first time, I could not even come out of the file because I did not know how to close Vi editor. No shame in accepting that I had to Google it. - -So, I decided to make a list of all the basic commands that I used frequently for editing in Vi. This list or cheat sheet, as you may call it, helped me a lot in my early days with Vi. With time, I grew up with Vi and now I don’t even need to look at the Vi cheat sheet because I have the commands memorized by heart. - -## Why should you use Vi cheat sheet? - -I can understand your situation if you are just getting started with Vi. Your favorite Ctrl+S doesn’t work for saving files. Ctrl+C and Ctrl+V were supposed to be the universal shortcut for copy and paste but it won’t work in Vi universe.Thousands of people use cheat sheets - -Thousands of people use such cheat sheets for various programming languages and `/` or tools that give them a quick reference to commonly used steps `/` commands. Trust me, using cheat sheets among the best practices advised to programmers. - -This Vi cheat sheet will help you a lot if you are just starting with Vi or if you infrequently use the Vi editor (so you keep forgetting the commands). You can save it and use it for quick reference in future, that too offline. - -## Do you like it? - -So far, I have refrained myself from going into too much on terminal side. How do you find this post? Do you want me to share more such cheat sheets and downloadable items? Your suggestions are welcomed. - ------------------------------------------------------------------------------- - -via: http://itsfoss.com/download-vi-cheat-sheet/ - -作者:[ABHISHEK][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/abhishek/ - - - - - diff --git a/translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md b/translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md new file mode 100644 index 0000000000..dbf4ef5011 --- /dev/null +++ b/translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md @@ -0,0 +1,79 @@ +【免费下载】初学者Vi备忘单 +================================================ + +![](http://itsfoss.com/wp-content/uploads/2016/01/VI.jpg) + +一直以来,我都在给你们分享我使用Linux的经验。今天我想分享我的**Vi备忘单**。这份备忘单节省了我很多时间,因为我再也不用使用Google去搜索这些命令了。 + +## Basic Vi commands +## 基本Vi命令 + +这并不是一个详尽的教程来教你[Vi编辑器](https://en.wikipedia.org/wiki/Vi)的每一个方面。事实上,这根本就不是一个教程。这仅仅是一些基本Vi命令以及这些命令简单介绍的集合。 + +命令|解释 +:--|:-- +:x |保存文件并退出 +:q!|退出但不保存文件 +i|在光标左侧插入 +a|在光标右侧插入 +ESC|退出插入模式 +arrows|移动光标 +/text|搜索字符串text(大小写敏感) +n|跳到下一个搜索结果 +x|删除当前光标处的字符 +dd|删除当前光标所在的行 +u|撤销上次改变 +:0|将光标移动到文件开头 +:n|将光标移动到第n行 +G|将光标移动到文件结尾 +^|将光标移动到该行开头 +$|将光标移动到该行结尾 +:set list|查看文件中特殊字符 +yy|复制光标所在行 +5yy|复制从光标所在行开始的5行 +p|在光标所在行下面粘贴 + +你可以通过下面的链接下载PDF格式的Vi备忘录: + +[下载Vi备忘录](https://drive.google.com/file/d/0By49_3Av9sT1X3dlWkNQa3g2b2c/view?usp=sharing) + +你可以把它打印出来放到你的办公桌上,或者把它保存到你的电脑上来使用。 + +## 我为什么要建立这个Vi备忘录? + +几年前,当我刚刚接触Linux终端时,使用命令行编辑器这个主意使我一惊。我之前在我自己的电脑上使用过桌面版本的Linux,所以我很乐意使用像Gedit这样的有图形界面的编辑器。但是在工作环境中,我不得不使用命令行,并且无法使用图形界面版的编辑器。 + +我就这么被强迫地使用Vi来对远程Linux终端上的文件做一些基本的编辑。从这时候我开始了解并钦佩Vi的强大之处。 + +因为在那时候我还是一个Vi新手,所以我经常对Vi一些操作很困惑。仍然记得第一次使用Vi的时候,由于我不知道如何退出Vi,所以我都无法关闭某个文件。我也只能通过Google搜索来找到解决办法。我不得不接受这个尴尬的事实。 + +从那以后,我就决定制作一个列表来列出我经常会用到的基本Vi操作。这个列表,或者你可能称它为备忘录。在我早期使用Vi的时候,它对我非常有用。慢慢地,我对Vi更加熟悉,我已经可以熟记那些基本编辑命令。到现在,我甚至不需要再去查看我的Vi备忘录了。 + +## 你为什么需要Vi备忘录? + +我能理解一个刚刚接触Vi的人的感受。你最喜欢的Ctrl+S快捷键不能像在其他编辑器那样方便地保存文件。Ctrl+C和Ctrl+V理应是通用的用来复制和粘贴的快捷键,但是在Vi中却不是这样。 + +很多人都在使用类似的备忘录帮助他们熟悉各种编程语言以及用来进行快速检索的“/”工具。相信我,使用备忘录会给程序员日常工作带来很大便利。 + +如果你刚刚开始接触Vi或者你经常使用但是总是记不住Vi操作,那么这份Vi备忘录对于你来说是非常有用的。你可以把它保存下来留作以后查询使用。 + +## 你怎么看待这份备忘录? + +至今为止,我一直在克制我自己不要过于以来终端。我想知道你是怎么发现这篇文章的?你是否想让我分享更多类似的备忘录出来以供你们下载?我很期待你的意见和建议。 + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/download-vi-cheat-sheet/ + +作者:[ABHISHEK][a] +译者:[JonathanKang](https://github.com/JonathanKang) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ + + + + + From 47727a58486ee50dc5121309ed52e4c7f1aef180 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 24 Feb 2016 16:50:07 +0800 Subject: [PATCH 151/582] =?UTF-8?q?20160224-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160204 An Introduction to SELinux.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 sources/tech/20160204 An Introduction to SELinux.md diff --git a/sources/tech/20160204 An Introduction to SELinux.md b/sources/tech/20160204 An Introduction to SELinux.md new file mode 100644 index 0000000000..dc5968ad00 --- /dev/null +++ b/sources/tech/20160204 An Introduction to SELinux.md @@ -0,0 +1,136 @@ +An Introduction to SELinux +=============================== + +![](https://www.linux.com/images/stories/66866/jack2-selinux_a.png) + +>Figure 1: The getenforce command reporting SELinux is set to Enforcing. + +Way back in kernel 2.6, a new security system was introduced to provide a mechanism for supporting access control security policies. This system was [Security Enhanced Linux (SELinux)][1] and was introduced by the [National Security Administration (NSA)][2] to incorporate a strong Mandatory Access Control architecture into the subsystems of the Linux kernel. + +If you’ve spent your entire Linux career either disabling or ignoring SELinux, this article is dedicated to you — an introduction to the system that lives “under the hood” of your Linux desktop or server to limit privilege or even eliminate the possibility of damage should programs or daemons become compromised. + +Before I begin, you should know that SELinux is primarily a tool for Red Hat Linux and its derivatives. The likes of Ubuntu and SUSE (and their derivatives) make use of AppArmor. SELinux and AppArmor are significantly different. You can install SELinux on SUSE, openSUSE, Ubuntu, etc., but it’s an incredibly challenging task unless you’re very well versed in Linux. + +With that said, let me introduce you to SELinux. + +### DAC vs. MAC + +The old-guard standard form of access control on Linux was Discretionary Access Control (DAC). With this form, an application or daemon runs under either User ID (UID) or Set owner User ID (SUID) and holds object permissions (for files, sockets, and other processes) of that user. This made it easier for malicious code to be run with a permission set that would grant it access to crucial subsystems. + +Mandatory Access Control (MAC), on the other hand, enforces the separation of information based on both confidentiality and integrity to enable the confinement of damage. The confinement unit operates independently of the traditional Linux security mechanisms and has no concept of a superuser. + +### How SELinux Works + +Consider these pieces of the SELinux puzzle: + +- Subjects + +- Objects + +- Policy + +- Mode + +When a subject (such as an application) attempts to access an object (such as a file), the SELinux Security Server (inside the kernel) runs a check against the Policy Database. Depending on the current mode, if the SELinux Security Server grants permission, the subject is given access to the object. If the SELinux Security Server denies permission, a denied message is logged in /var/log/messages. + +Sounds relatively simple, right? There’s actually more to it than that, but for the sake of introduction, those are the important steps. + +### The Modes + +SELinux has three modes (which can be set by the user). These modes will dictate how SELinux acts upon subject request. The modes are: + +- Enforcing — SELinux policy is enforced and subjects will be denied or granted access to objects based on the SELinux policy rules + +- Permissive — SELinux policy is not enforced and does not deny access, although denials are logged + +- Disabled — SELinux is completely disabled + +Out of the box, most systems have SELinux set to Enforcing. How do you know what mode your system is currently running? You can use a simple command to report the mode; that command is getenforce. This command is incredibly simple to use (as it has the singular purpose of reporting the SELinux mode). To use this tool, open up a terminal window and issue the command getenforce. The report will come back with either, Enforcing, Permissive, or Disabled (see Figure 1 above). + +Setting the SELinux mode is actually quite simple — depending upon the mode you want to set. Understand this: It is never recommended to set SELinux to Disable. Why? When you do this, you open up the possibility that files on your disk will be mislabeled and require a re-label to fix. It is also not possible to change the mode of a system when it has been booted in Disabled mode. Your best modes are either Enabled or Permissive. + +You can change the SELinux mode from the command line or in the /etc/selinux/config file. To set the mod via command line, you use the setenforce tool. To set the mode to Enforcing, do the following: + +1. Open up a terminal window + +2. Issue the command su and then enter your administrator password + +3. Issue the command setenforce 1 + +4. Issue the command getenforce to ensure the mode has been set (Figure 2) + +![](https://www.linux.com/images/stories/66866/jack-selinux_b.png) + +>Figure 2: Setting the SELinux mode to Enforcing. + +To set the mode to Permissive, do this: + +1. Open up a terminal window + +2. Issue the command su and then enter your administrator password + +3. Issue the command setenforce 0 + +4. Issue the command getenforce to ensure the mode has been set (Figure 3) + +![](https://www.linux.com/images/stories/66866/jack-selinux_c.png) + +>Figure 3: Setting the SELinux mode to Permissive. + +NOTE: Setting the mode via command line overrides the setting in the SELinux config file. + +If you’d prefer to set the mode in the SELinux command file, open up that particular file in your favorite text editor and look for the line: + +>SELINUX=permissive + +You can change the mode to suit your preference and then save the file. + +There is also a third method of changing the SELinux mode (via the bootloader), but I don’t recommend it for a beginning user. + +### Policy Type + +There are two types of SELinux policies: + +- Targeted — only targeted network daemons (dhcpd, httpd, named, nscd, ntpd, portmap, snmpd, squid, and syslogd) are protected + +- Strict — full SELinux protection for all daemons + +You can change the policy type within the /etc/selinux/config file. Open the file in your favorite text editor and look for the line: + +>SELINUXTYPE=targeted + +Change the option in that line to either targeted or strict to match your needs. + +### Checking the Full SELinux Status + +There is a handy SELinux tool you might want to know about that will display a detailed status report of your SELinux-enabled system. The command is run from a terminal window like this: + +>sestatus -v + +You should see output similar to that shown in Figure 4. + +![](https://www.linux.com/images/stories/66866/jack-selinux_d.png) + +>Figure 4: The output of the sestatus -v command. + +### Just Scratching the Surface + +As you might expect, I have only scratched the surface of SELinux. It is quite a complex system and will require diving much deeper to obtain a solid understanding of how it works for you and how you can make it better work for your desktops and servers. I still have yet to cover troubleshooting and creating custom SELinux policies. + +SELinux is a powerful tool that any Linux administrator should know. Now that you’ve been introduced, I highly recommend you return to Linux.com (when more tutorials on the subject are posted) or take a look at the [NSA SELinux documentation][3] for very in-depth tutorials. + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/learn/docs/ldp/883671-an-introduction-to-selinux + +作者:[Jack Wallen][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.linux.com/community/forums/person/93 +[1]: http://selinuxproject.org/page/Main_Page +[2]: https://www.nsa.gov/research/selinux/ +[3]: https://www.nsa.gov/research/selinux/docs.shtml From cbab5e849861ab2589290cd63cdcf63fb9ddcb77 Mon Sep 17 00:00:00 2001 From: KS Date: Wed, 24 Feb 2016 17:38:38 +0800 Subject: [PATCH 152/582] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Top 4 open source issue tracking tools.md | 64 ------------------- ... Top 4 open source issue tracking tools.md | 63 ++++++++++++++++++ 2 files changed, 63 insertions(+), 64 deletions(-) delete mode 100644 sources/tech/20160218 Top 4 open source issue tracking tools.md create mode 100644 translated/tech/20160218 Top 4 open source issue tracking tools.md diff --git a/sources/tech/20160218 Top 4 open source issue tracking tools.md b/sources/tech/20160218 Top 4 open source issue tracking tools.md deleted file mode 100644 index 060a50db11..0000000000 --- a/sources/tech/20160218 Top 4 open source issue tracking tools.md +++ /dev/null @@ -1,64 +0,0 @@ -wyangsun translating -Top 4 open source issue tracking tools -======================================== - -Life is full of bugs. - -No matter how carefully planned, no matter how much time went into design, any project is going to have unforseen issues when the rubber hits the road in the implementation stage. And that's okay. Perhaps the best measure of resiliency for any organization is not how well they handle things when everything is functioning as planned, but rather, how they handle the speed bumps when they come along. - -A critical tool for any project management workflow, especially in the software development world, is an issue tracker. The basics are simple; allowing bugs to be opened, tracked, and resolved in a collaborative manner, while making it easy to follow the progress. Beyond the basic functionality, there are a lot of options focused on meeting specific needs, features, and use cases, including software development and beyond. You may be familiar with hosted versions of these tools, like [GitHub Issues](https://guides.github.com/features/issues/) or [Launchpad](https://launchpad.net/), some of which are themselves open source. - -So let's take a look at four excellent choices for managing bugs and issues, all open source and all easy to download and host yourself. To be clear, there's no way we could possibly list every issue tracking tool here; instead, these are four of our favorites, based on feature richness and the size of the community behind the project. There are others, to be sure, and if you've got a good case for your favorite not listed here, be sure to let us know which is your favorite tool and what makes it stand out to you, in the comments below. - -## Redmine - -[Redmine](http://www.redmine.org/) is a popular issue tracking tool built on Ruby on Rails and dating back to 2006. Similar in many regards to Trac, another one of our favorites, Redmine is capable of managing multiple projects and integrates with a number of version control systems. In addition to basic issue tracking, Redmine also offers forums, wikis, time tracking tools, and the ability to generate Gantt charts and calendars to track progress. - -Redmine is fairly flexible in its setup, supporting numerous database backends and dozens of languages, and is customizable as well, featuring the ability to add custom fields to issues, users, projects and more. It can be further customized with a number of community-created plugins and themes. - -An [online demo](http://demo.redmine.org/) is available if you’d like to try it out. Redmine is licensed as open source under the [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html); the source code can be found in the project’s [subversion repository](https://svn.redmine.org/redmine) or mirrored on [GitHub](https://github.com/redmine/redmine). - -![](https://opensource.com/sites/default/files/images/business-uploads/issues-redmine.png) - -## Bugzilla - -[Bugzilla](https://www.bugzilla.org/) is another popular development tool with issue tracking capabilities. As you might have guessed from the name, Bugzilla was originally created by the [Mozilla Foundation](https://www.mozilla.org/en-US/) to track bugs in the development of the then-called Netscape Communicator suite. Ported to Perl from its original Tcl routes for greater accessibility, Bugzilla is one of the older and more widely adopted issue tracking systems, as it is used by a number of well-known open source projects like GNOME, KDE, and the Linux kernel itself. - -Sporting a number of advanced tools, from notifications to duplicate bug detection to shared searches, Bugzilla is certainly a more feature-rich option. Bugzilla has an advanced search system along with a comprehensive reporting tool, capable of generating charts and automated scheduled reports. Like Redmine, Bugzilla is extensible and customizable, both in the fields themselves as well as featuring the ability to create custom workflows for bugs. It also works with many database backends, and many different languages are supported out of the box. - -Bugzilla is licensed under the [Mozilla Public License](https://en.wikipedia.org/wiki/Mozilla_Public_License), and you can read their [future roadmap](https://www.bugzilla.org/status/roadmap.html) and try out a [demo server](https://landfill.bugzilla.org/) on the official website. - -![](https://opensource.com/sites/default/files/images/business-uploads/issues-bugzilla.png) - -## Trac - -[Trac](http://trac.edgewall.org/browser) describes itself as taking a minimalistic approach to web-based software project management, but don’t confusing minimalism with a lack of features. - -Written in Python, Trac tightly integrates its bug tracking capabilities with its wiki system and a revision control system of your choosing. It features project management capabilities like generating milestones and roadmaps, a customizable reporting system, timelines, support for multiple repositories, built-in spam filtering, and is available in many common languages. Like the other bug trackers we have looked at, has a number of plugins available for it extending its base feature set even further. - -Trac is made available as open source under a modified [BSD license](http://trac.edgewall.org/wiki/TracLicense), though older versions were released under the GPL. You can view Trac’s source in a [self-hosted repository](http://trac.edgewall.org/browser) or check out their [roadmap](http://trac.edgewall.org/wiki/TracRoadmap) for future plans. - -![](https://opensource.com/sites/default/files/images/business-uploads/issues-trac.png) - -## Mantis - -[Mantis](https://www.mantisbt.org/) is the final tool we’ll look at in this collection, a PHP-based bug tracker with a sixteen year history. Another bug tracker with support for many different revision control systems and an event-driven notification system, Mantis has a similar feature set to other tools here. While it does not itself contain a wiki, it integrates with many popular wiki platforms and is localized into many languages. - -Mantis is licensed as open source under the [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html); you can browse its source code on [GitHub](https://github.com/mantisbt/mantisbt) or check out the self-hosted [roadmap](https://www.mantisbt.org/bugs/roadmap_page.php?project=mantisbt&version=1.3.x) for future plans. For a demo, you can check out their own internal [bug tracker](https://www.mantisbt.org/bugs/my_view_page.php). - -![](https://opensource.com/sites/default/files/images/business-uploads/issues-mantis.png) - -As we notes, these four are not the only options. Looking to explore some others? [Apache Bloodhound](https://issues.apache.org/bloodhound/), [Fossil](http://fossil-scm.org/index.html/doc/trunk/www/index.wiki), [The Bug Genie](http://www.thebuggenie.com/), and many alternatives all have dedicated followings, each with different strengths and weaknesses. In addtion, some of the tools in our [project management](https://opensource.com/business/15/1/top-project-management-tools-2015) roundup have issue tracking capabilities. So, which is your preferred tool for tracking and squashing bugs? - - ------------------------------------------------------------------------------- - -via: https://opensource.com/business/16/2/top-issue-support-and-bug-tracking-tools - -作者:[Jason Baker][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://opensource.com/users/jason-baker diff --git a/translated/tech/20160218 Top 4 open source issue tracking tools.md b/translated/tech/20160218 Top 4 open source issue tracking tools.md new file mode 100644 index 0000000000..b8f336b120 --- /dev/null +++ b/translated/tech/20160218 Top 4 open source issue tracking tools.md @@ -0,0 +1,63 @@ +排名前4的开源问题追踪工具 +======================================== + +生活充满了漏洞。 + +无论怎样小心计划,无论花多少时间去设计,在执行阶段当轮胎压在路上,任何工程都会有未知的问题。也无妨。也许对于任何一个组织的最佳衡量弹性不是他们如何一切都按计划运行地处理事情,而是,当出现磕磕碰碰时他们处理速度。 + +一个任意工程管理流程的关键工具,特别是在软件开发领域,是一个问题追踪系统。基础很简单;允许漏洞在合作的方式被打开,追踪,和解决,同时很容易跟随进展。除了基本功能,还有很多专注于满足特定需求的选择,和使用案例,包括软件开发和更多。你可能熟悉托管版本的这些工具,像 [GitHub Issues](https://guides.github.com/features/issues/)或者[Launchpad](https://launchpad.net/),这些是他们自己开放的资源。 + +让我们看一看四个管理漏洞和问题的优秀选择,全部开源代码、易于下载和自我托管。要清楚,我们可能没有办法在这里列出每一个问题跟踪工具;然而,这有四个我们偏爱的,基于功能丰富和项目背后的社区项目的规模。还有其他,可以肯定的是,如果你有一个好的理由你喜欢的没有列在这里,一定要让我们知道这是你最喜欢的工具,在下面的评论中使它脱颖而出。 + +## Redmine + +[Redmine](http://www.redmine.org/) 是一个流行的问题追踪工具建立在Ruby on Rails和可以追溯到2006年。很多类似于Trac,另一方面我们最爱的是,Redmine可以管理多个项目然后整合了多种版本控制系统。除了基本问题追踪,Redmine也提供论坛,wiki,时间跟踪工具,和生成甘特图和日历的能力来跟踪项目的进展。 + +Redmine的设置相当灵活,支持多种数据库后端和几十种语言,还是可定制的,可以添加自定义字段到问题,用户,工程和更多。通过社区创建的插件和主题它可以进一步定制。 + +如果你想试一试,一个[在线演示](http://demo.redmine.org/)可提供使用。Redmine在开源[GPL版本2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)下许可;开源代码可以在工程的[svn仓库](https://svn.redmine.org/redmine)或在[GitHub](https://github.com/redmine/redmine)镜像上找到。 + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-redmine.png) + +## Bugzilla + +[Bugzilla](https://www.bugzilla.org/)是另一个流行的有问题追踪功能的开发工具。从名字您可能已经猜到了,Bugzilla最初是[Mozilla基金会](https://www.mozilla.org/en-US/)创建,用来跟踪当时称为网景通信套件开发漏洞的。为了更好的通过性从原来的Tcl移植到Perl路径,Bugzilla是一个比较老的和更广泛采用的问题跟踪系统,因为它用在许多著名的开源项目如GNOME,KDE,Linux内核本身。 + +拥有一些先进的工具,从通知到共享搜索重复的漏洞检测,Bugzilla是一个功能更丰富的选项。Bugzilla有高级搜索系统与全面的报表工具,生成图表和自动化计划报告的能力。像Redmine,Bugzilla是可扩展和可定制的,两者在字段本身像能创建自定义漏洞工作流一样。它也支持多种后端数据库,和自带的多语言支持。 + +Bugzilla在[Mozilla公共许可证](https://en.wikipedia.org/wiki/Mozilla_Public_License)下许可,你可以读取他们[未来路线图](https://www.bugzilla.org/status/roadmap.html)还有在官网测试一个[示例服务](https://landfill.bugzilla.org/) + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-bugzilla.png) + +## Trac + +[Trac](http://trac.edgewall.org/browser)自称是使用基于web简单的方法的软件工程管理软件,但不要混淆极简主义与缺乏功能。 + +python编写,Trac紧密结合它的漏洞跟踪与它的wiki系统和你选择的版本控制系统。项目管理能力突出,如生成的里程碑和路线图,一个可定制的报表系统,大事记,支持多资源库,内置的垃圾邮件过滤,还可以使用很多一般的语言。如其他漏洞追踪软件我们已经看到,有很多插件可进一步扩展其基本特性。 + +Trac是在改进的[BSD许可](http://trac.edgewall.org/wiki/TracLicense)下获得开放源码许可,虽然更老的版本发布在GPL下。你可以在一个[自托管仓库](http://trac.edgewall.org/browser)预览Trac的源码或者查看他们的[路线图](http://trac.edgewall.org/wiki/TracRoadmap)对未来的规划。 + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-trac.png) + +## Mantis + +[Mantis](https://www.mantisbt.org/)是这次收集中我们将看的最后一个工具,一个基于PHP且有16年历史的漏洞跟踪工具。另外漏洞跟踪支持多种不同的版本控制系统和一个事件驱动的通知系统,Mantis有一个与其他工具类似的功能设置。虽然它不本身包含一个wiki,它整合很多流行的wiki平台且本地化到多种语言。 + +Mantis在[GPL版本2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)下获得开源许可证书;你可以在[GitHub](https://github.com/mantisbt/mantisbt)浏览他的源代码或查看自托管[路线图](https://www.mantisbt.org/bugs/roadmap_page.php?project=mantisbt&version=1.3.x)对未来的规划。一个示例,你可以查看他们的内部[漏洞跟踪](https://www.mantisbt.org/bugs/my_view_page.php)。 + +![](https://opensource.com/sites/default/files/images/business-uploads/issues-mantis.png) + +正如我们指出的,这四个不是唯一的选项。想要探索更多?[Apache Bloodhound](https://issues.apache.org/bloodhound/),[Fossil](http://fossil-scm.org/index.html/doc/trunk/www/index.wiki),[The Bug Genie](http://www.thebuggenie.com/),还有很多可替换品都有专注的追随者,每个都有不同的优点和缺点。另外,一些工具在我们[项目管理](https://opensource.com/business/15/1/top-project-management-tools-2015)摘要有问题跟踪功能。所以,哪个是你首选的跟踪和挤压漏洞的工具? + + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/2/top-issue-support-and-bug-tracking-tools + +作者:[Jason Baker][a] +译者:[wyangsun](https://github.com/wyangsun) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/jason-baker From 9ebe7447e4532865956f9daf127666d418b527f8 Mon Sep 17 00:00:00 2001 From: KS Date: Wed, 24 Feb 2016 17:42:47 +0800 Subject: [PATCH 153/582] Update 20160218 Top 4 open source issue tracking tools.md --- .../tech/20160218 Top 4 open source issue tracking tools.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/tech/20160218 Top 4 open source issue tracking tools.md b/translated/tech/20160218 Top 4 open source issue tracking tools.md index b8f336b120..d5572a8ff8 100644 --- a/translated/tech/20160218 Top 4 open source issue tracking tools.md +++ b/translated/tech/20160218 Top 4 open source issue tracking tools.md @@ -1,9 +1,9 @@ -排名前4的开源问题追踪工具 +排名前4的开源漏洞追踪工具 ======================================== 生活充满了漏洞。 -无论怎样小心计划,无论花多少时间去设计,在执行阶段当轮胎压在路上,任何工程都会有未知的问题。也无妨。也许对于任何一个组织的最佳衡量弹性不是他们如何一切都按计划运行地处理事情,而是,当出现磕磕碰碰时他们处理速度。 +无论怎样小心计划,无论花多少时间去设计,在执行阶段当轮胎压在路上,任何工程都会有未知的问题。也无妨。也许对于任何一个组织的最佳弹性衡量不是他们如何一切都按计划运行地处理事情,而是,当出现磕磕碰碰时他们处理速度。 一个任意工程管理流程的关键工具,特别是在软件开发领域,是一个问题追踪系统。基础很简单;允许漏洞在合作的方式被打开,追踪,和解决,同时很容易跟随进展。除了基本功能,还有很多专注于满足特定需求的选择,和使用案例,包括软件开发和更多。你可能熟悉托管版本的这些工具,像 [GitHub Issues](https://guides.github.com/features/issues/)或者[Launchpad](https://launchpad.net/),这些是他们自己开放的资源。 From 4aa35794053585c3e94e77f15c8c3a98fe7423ed Mon Sep 17 00:00:00 2001 From: KS Date: Wed, 24 Feb 2016 17:47:30 +0800 Subject: [PATCH 154/582] Update 20160218 Top 4 open source issue tracking tools.md --- .../20160218 Top 4 open source issue tracking tools.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translated/tech/20160218 Top 4 open source issue tracking tools.md b/translated/tech/20160218 Top 4 open source issue tracking tools.md index d5572a8ff8..840a3d80fc 100644 --- a/translated/tech/20160218 Top 4 open source issue tracking tools.md +++ b/translated/tech/20160218 Top 4 open source issue tracking tools.md @@ -11,7 +11,7 @@ ## Redmine -[Redmine](http://www.redmine.org/) 是一个流行的问题追踪工具建立在Ruby on Rails和可以追溯到2006年。很多类似于Trac,另一方面我们最爱的是,Redmine可以管理多个项目然后整合了多种版本控制系统。除了基本问题追踪,Redmine也提供论坛,wiki,时间跟踪工具,和生成甘特图和日历的能力来跟踪项目的进展。 +[Redmine](http://www.redmine.org/) 是一个流行的漏洞追踪工具建立在Ruby on Rails和可以追溯到2006年。很多类似于Trac,另一方面我们最爱的是,Redmine可以管理多个项目然后整合了多种版本控制系统。除了基本问题追踪,Redmine也提供论坛,wiki,时间跟踪工具,和生成甘特图和日历的能力来跟踪项目的进展。 Redmine的设置相当灵活,支持多种数据库后端和几十种语言,还是可定制的,可以添加自定义字段到问题,用户,工程和更多。通过社区创建的插件和主题它可以进一步定制。 @@ -21,17 +21,17 @@ Redmine的设置相当灵活,支持多种数据库后端和几十种语言, ## Bugzilla -[Bugzilla](https://www.bugzilla.org/)是另一个流行的有问题追踪功能的开发工具。从名字您可能已经猜到了,Bugzilla最初是[Mozilla基金会](https://www.mozilla.org/en-US/)创建,用来跟踪当时称为网景通信套件开发漏洞的。为了更好的通过性从原来的Tcl移植到Perl路径,Bugzilla是一个比较老的和更广泛采用的问题跟踪系统,因为它用在许多著名的开源项目如GNOME,KDE,Linux内核本身。 +[Bugzilla](https://www.bugzilla.org/)是另一个流行的有漏洞追踪功能的开发工具。从名字您可能已经猜到了,Bugzilla最初是[Mozilla基金会](https://www.mozilla.org/en-US/)创建,用来跟踪当时称为网景通信套件开发漏洞的。为了更好的通过性从原来的Tcl移植到Perl路径,Bugzilla是一个比较老的和更广泛采用的问题跟踪系统,因为它用在许多著名的开源项目如GNOME,KDE,Linux内核本身。 拥有一些先进的工具,从通知到共享搜索重复的漏洞检测,Bugzilla是一个功能更丰富的选项。Bugzilla有高级搜索系统与全面的报表工具,生成图表和自动化计划报告的能力。像Redmine,Bugzilla是可扩展和可定制的,两者在字段本身像能创建自定义漏洞工作流一样。它也支持多种后端数据库,和自带的多语言支持。 -Bugzilla在[Mozilla公共许可证](https://en.wikipedia.org/wiki/Mozilla_Public_License)下许可,你可以读取他们[未来路线图](https://www.bugzilla.org/status/roadmap.html)还有在官网测试一个[示例服务](https://landfill.bugzilla.org/) +Bugzilla在[Mozilla公共许可证](https://en.wikipedia.org/wiki/Mozilla_Public_License)下许可,你可以读取他们[未来路线图](https://www.bugzilla.org/status/roadmap.html)还有在官网尝试一个[示例服务](https://landfill.bugzilla.org/) ![](https://opensource.com/sites/default/files/images/business-uploads/issues-bugzilla.png) ## Trac -[Trac](http://trac.edgewall.org/browser)自称是使用基于web简单的方法的软件工程管理软件,但不要混淆极简主义与缺乏功能。 +[Trac](http://trac.edgewall.org/browser)自称是使用简单的方法基于web的软件工程管理软件,但不要混淆极简主义与缺乏功能。 python编写,Trac紧密结合它的漏洞跟踪与它的wiki系统和你选择的版本控制系统。项目管理能力突出,如生成的里程碑和路线图,一个可定制的报表系统,大事记,支持多资源库,内置的垃圾邮件过滤,还可以使用很多一般的语言。如其他漏洞追踪软件我们已经看到,有很多插件可进一步扩展其基本特性。 From 83e522b07505011ffe88486379bebed5f0967c68 Mon Sep 17 00:00:00 2001 From: martin qi Date: Wed, 24 Feb 2016 21:20:10 +0800 Subject: [PATCH 155/582] Translated --- ...Releases Free Linux IDE for 32-Bit MCUs.md | 43 +++++++-------- ...Releases Free Linux IDE for 32-Bit MCUs.md | 55 +++++++++++++++++++ 2 files changed, 76 insertions(+), 22 deletions(-) create mode 100644 translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md diff --git a/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md index 313bf3b9e5..adc5404a2c 100644 --- a/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md +++ b/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md @@ -1,53 +1,52 @@ -martin -ST Releases Free Linux IDE for 32-Bit MCUs +意法半导体为 32 位 微控制器发布了一款自由的 Linux 集成开发环境 ================================================= ![](http://www.linux.com/images/stories/66866/STM32_Nucleo_expansion_board.jpg) -The 32-bit microcontroller world is starting to open up to Linux. This week, leading ARM Cortex-M vendor STMicroelectronics (ST) [released](http://www.st.com/web/en/press/p3781) a free Linux desktop version of its development software for its line of STM32 microcontroller units (MCUs). The tools include ST’s STM32CubeMX configurator and initialization tool, as well as its [System Workbench for STM32 (SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) , an Eclipse-based IDE created by Ac6 Tools. SW4STM32 is supported with toolchain, forums, blogs, and technical support by the [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) development community. +32 位微控制器世界向 Linux 敞开大门。本周,领先的 ARM Cortex-M 供应商意法半导体(ST)[发布了](http://www.st.com/web/en/press/p3781) 一款自由的 Linux 桌面版开发程序,该软件面向其旗下的 STM32 微控制单元(MCU)。包含了 ST 的 STM32CubeMX 配置器和初始化工具,以及其 STM32 [系统工作台(SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) ,这个基于 Eclipse 的 IDE 由工具 Ac6 创建。支撑 SW4STM32 的工具链,论坛,博客以及技术会由 [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) 开发社区提供。 -"The Linux community is known to attract creative free-thinkers who are adept at sharing ideas and solving challenges efficiently," stated Laurent Desseignes, Microcontroller Ecosystem Marketing Manager, Microcontroller Division, STMicroelectronics. "We are now making it ultra-easy for them to apply their skills to create imaginative new products, leveraging the features and performance of our STM32 family." +“Linux 社区以吸引富有创意的自由思想者而闻名,他们善于交流心得、高效地克服挑战。” Laurent Desseignes,意法半导体微控制器产品部,微控制器生态系统市场经理这么说道:“我们正着手做的是让他们能极端简单的借力 STM32 系列的特性和性能施展自己的才能,运用到富有想象力的新产品的创造中去。 -Linux is the leading platform for Internet of Things gateways and hubs, as well as higher-end IoT endpoints. Yet, much of the IoT revolution, as well as the wearables market, is based on tiny, low-power microcontrollers, increasingly Cortex-M chips. A small subset of these can run the stripped-down uCLinux (see below), but none support more comprehensive Linux distributions. Instead, they are controlled with real-time operating systems (RTOSes) or go bare-bones with no OS at all. The firmware development work is typically done on a Windows-based Integrated Development Environment (IDE). +Linux 是物联网(IoT)网关和枢纽,及高端 IoT 终端的领先平台。但是,大部分 IoT 革命,以及可穿戴设备市场基于小型的低功耗微控制器,对 Cortex-M 芯片的运用越来越多。虽然其中的一小部分可以运行精简的 uCLinux (见下文),却没能支持更全面的 Linux 发行版。取而代之的是实时操作系统(RTOS)们或者有时干脆不用 OS 来控制。固件的开发工作一般会在基于 Windows 的集成开发环境(IDE)上完成。 -With ST’s free tools, Linux developers can more easily tap this new realm. ST’s tools, some of which should also be available for Mac OS/X in the second quarter, work with [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) boards, Discovery kits, and Evaluation boards. The Nucleo boards are available in 32-, 64-, and 144-pin versions, and offer hardware add-ons such as Arduino connectors. +通过 ST 的自由工具,Linux 开发者们可以更容易的开疆拓土。ST 工具中的一些技术在第二季度应该登录 Mac OS/X 平台,与 [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) ,开发套件,以及评估板同时面世。Nucleo 支持 32 针, 64 针, 和 144 针的版本,并且提供类似 Arduino 连接器这样的插件。 -The STM32CubeMX configurator and SW4STM32 IDE enable Linux developers to configure microcontrollers and develop and debug code. SW4STM32 supports the ST-LINK/V2 debugging tool under Linux via an adapted version of the [OpenOCD](http://openocd.org/) community project. +STM32CubeMX 配置器和 IDE SW4STM32 使 Linux 开发者能够配置微控制器并开发调试代码。SW4STM32 支持在 Linux 下通过社区更改版的 [OpenOCD](http://openocd.org/) 使用调试工具 ST-LINK/V2。 -The software is compatible with microcontroller firmware within the STM32Cube embedded-software packages or Standard Peripheral Library, says ST. Targets include ST’s full range of MCUs, from entry-level Cortex-M0 cores to high-performing M7 chips, including M0+, M3, and DSP-extended M4 cores. +据 ST 称,软件兼容 STM32Cube 软件包及标准外设库中的微控制器固件。目标是囊括 ST 的全系列 MCU,从入门级的 Cortex-M0 内核到高性能的 M7 芯片,包括 M0+,M3 和 DSP 扩展的 M4 内核。 -ST is not the first 32-bit MCU vendor to offer Linux-ready IDEs for Cortex-M chips, but it appears to be one of the first major free Linux platforms. For example, NXP, whose share of the MCU market increased with its recent acquisition of Freescale (Kinetis MCUs, among others), offers an [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO) with Linux, Windows, and Mac support. However, LPCXpresso costs $450 per individual seat. +ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商,但似乎是第一大自由的 Linux 平台。例如NXP,MCU 的市场份额随着近期收购了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO)支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售价 $450。 -Microsemi, which integrates Cortex-M3 chips in its [SmartFusion FPGA SoCs](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3) has a [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support) available for Red Hat Enterprise Linux (RHEL) in addition to Windows. However, Libero requires a license, and the RHEL version lacks support for add-on packages such as FlashPro and SoftConsole. +在其 [SmartFusion FPGA 系统级芯片(SoC)](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3)上集成了 Cortex-M3 芯片的Microsemi,拥有一款 IDE [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support)适用于 RHEL 和 Windows。然而,Libero 需求许可证,并且 RHEL 版缺乏如 FlashPro 和 SoftConsole 的插件。 -## Why Learn MCU-Speak? +## 为什么要学习 MCU? -Even if a Linux developer has no plans to load uClinux on a Cortex-M chip, knowledge of MCUs should come in handy. This is especially true with complex, heterogeneous IoT projects that extend from MCU-based endpoints to cloud platforms. +即便 Linux 开发者并没有计划在 Cortex-M 上使用 uClinux,但是 MCU 的知识总会派上用场。特别是牵扯到复杂的 IoT 工程,需要扩展 MCU 终端至云端。 -For prototyping and hobbyist projects, an interface to an Arduino board offers fairly easy access to MCU benefits. Yet beyond prototyping, developers often replace the Arduino board and its 8-bit ATmega32u4 MCU with a faster 32-bit Cortex-M chip with additional functionality. This includes improved memory addressing, independent clock settings for the core and various buses, and in the case of some [Cortex-M7](http://www.electronicsnews.com.au/products/stm32-mcus-with-arm-cortex-m7-processors-and-graph) chips, rudimentary graphics. +对于历程和业余爱好者的项目,Arduino 板为其访问 MCU 提供了非常便利的接口。然而历程之外,开发者常常就会用更快的 32 位 Cortex-M 芯片以及所带来的附加功能来替代 Arduino 板和板上的那块 8 位 MCU ATmega32u4。这些附加功能包括改进的存储器寻址,用于芯片和各种总线的独立时钟设置,以及芯片 [Cortex-M7](http://www.electronicsnews.com.au/products/stm32-mcus-with-arm-cortex-m7-processors-and-graph)自带的入门级显示芯片。 -Other categories where MCU development skills might come in handy include wearables, where low power, low cost, and small size give MCUs an edge, and robotics and drones where real-time processing and motor control are the main benefits. In robotics, you’re likely to see Cortex-A and Cortex-M both integrated in the same product. +还有些可能需求 MCU 开发技术的地方有:可穿戴设备、低功耗、低成本和小尺寸给了 MCU 一席之地,还有机器人和无人机这些使用实时处理和电机控制的地方更为受用。在机器人上,你更是有可能看看 Cortex-A 与 Cortex-M 集成在同一个产品中的样子。 -There’s also a modest trend toward system-on-chips adding MCUs to Linux-driven Cortex-A cores, as with the [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/). While most embedded projects don’t use such hybrid SoCs or combine applications processor and MCUs on the same product, developers may increasingly find themselves working on product lines that extend from low-end MCU models to Linux- or Android-driven Cortex-A based designs. +对于 SoC 芯片还有这样的一种温和的局势,即将 MCU 加入到 Linux 驱动的 Cortex-A 核心中,就如同 [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/)。虽然大多数的嵌入式项目并不使用这种混合型 SoC 或者说将应用处理器和 MCU 结合在同一产品中,但开发者会渐渐地发现自己工作的生产线、设计所基于的芯片正渐渐的从低端的 MCU 模块发展到 Linux 或安卓驱动的 Cortex-A。 -## uClinux Stakes Linux Claim in MCUs +## uClinux 是 Linux 在 MCU 领域的筹码 -With the rise of IoT, we’re starting to see more SBCs and computer-on-modules that run uClinux on 32-bit MCUs. Unlike other Linux distributions, uClinux does not require a memory management unit (MMU). uClinux does, however, have higher memory requirements than most MCUs can meet. The distro requires higher end Cortex-M4 and Cortex-M4 MCUs with built-in memory controllers supporting external DRAM chips. +随着物联网的兴起,我们见到越来越多的 SBC 和模块计算机,它们在 32 位的 MCU 上运行着 uClinux。不同于其他的 Linux 发行版,uClinux 并不需要内存管理单元(MMU)。然而,uClinux 对市面上可见 MCU 有更高的内存需求。需求更高端的 Cortex-M4 和 Cortex-M4 微控制器内置内存控制器来支持外部 DRAM 芯片。 -[Amptek’s iCon](http://www.semiconductorstore.com/Amptek/) SBCs run uClinux on NXP LPC Cortex-M3 and -M4 chips, offering familiar trappings like WiFi, Bluetooth, USB, and other interfaces. Arrow’s [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) IoT development kit runs uClinux on an Emcraft Systems SmartFusion2 COM based on Microsemi’s 166MHz, Cortex-M3/FPGA SmartFusion2 hybrid SoC. +[Amptek](http://www.semiconductorstore.com/Amptek/) SBC 在 NXP LPC Cortex-M3 和 -M4 芯片上运行 uClinux,以提供常用的功能类似 WiFi、蓝牙、USB 等众多接口。Arrow 的 [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) 物联网开发套件将 uClinux 运行于 SmartFusion2 模块计算机的 Emcraft 系统上,该模块计算机是 Microsemi 的 166MHz Cortex-M3/FPGA SmartFusion2 混合 SoC。 -[Emcraft](http://www.emcraft.com/), which sells uClinux-based COMs based on ST and NXP, as well as Microsemi MCUs, has been actively promoting the role of uClinux on 32-bit MCUs. Increasingly, uClinux is up against ARM’s own [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/), at least on high-end MCU projects that require wireless communications and more sophisticated rules-based operation. Proponents of Mbed and modern, open source RTOSes like FreeRTOS say that uClinux requires too much RAM overhead to make it affordable for IoT endpoints. However, Emcraft and other uCLinux proponents claim the costs are overstated, and are worth the more extensive Linux wireless and interface support available even in a stripped down distro like uClinux. +[Emcraft](http://www.emcraft.com/) 销售基于 uClinux 的模块计算机,有 ST 和 NXP 的,也有 Microsemi 的 MCU,是 32 位 MCU 上积极推进 uClinux 的重要角色。日益频繁的 uClinux 开始了与 ARM 本身 [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/)的对抗,至少在高端的 MCU 工程中需要无线通信和更为复杂的操作规则。Mbed 和 modern 的支持者,开源的 RTOS 们,类似 FreeRTOS 认为 uClinux 需要对 RAM 的需求太高以至于难以压低 IoT 终端的价格然而 Emcraft 与其他 uCLinux 拥趸表示价格并没有如此夸张,而且扩展 Linux 的无线和接口也是相当值得的,即使只是在像 uClinux 这样的精简版上。 -When asked for comment on the ST release, Emcraft director of engineering Vladimir Khusainov had this to say: “ST’s decision to port its development tools to Linux is good news for Emcraft since it allows Linux users an easy way to start working with embedded STM MCUs. We expect that, having had a chance to get familiar with STM devices using the ST configurator and embedded libraries, some of those users may become interested in running embedded Linux (in its uClinux form) on the target.” +当被问及对于这次 ST 发布的看法,Emcraft 的主任工程师 Vladimir Khusainov 表示:”ST决定将这款开发工具 移植至 Linux 对于 Emcraft 是个好消息,它使得 Linux 用户能轻易的在嵌入式 STM MCU 上展开工作。我们希望那些有机会熟悉 STM 设备,使用 ST 配置器和嵌入式库的用户可以对在目标机上使用嵌入式 Linux (以 uClinux 的形式)感兴趣。“ -For a recent overview of uClinux on Cortex-M4, check out this [slide show](http://events.linuxfoundation.org/sites/events/files/slides/optimize-uclinux.pdf) from last year’s Embedded Linux Conference by Jim Huang and Jeff Liaw. More on Cortex-M processors in general may be found in this tidy [AnandTech overview](http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores). +最近关于 Cortex-M4 上运行 uClinux 的概述,可以查看去年 Jim Huang 与 Jeff Liaws 在嵌入式 Linux 大会上使用的[幻灯片](http://events.linuxfoundation.org/sites/events/files/slides/optimize-uclinux.pdf)。更多关于 Cortex-M 处理器可以查看这里过的 [AnandTech 总结](http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores)。 ------------------------------------------------------------------------------ via: http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus 作者:[Arun Pyasi][a] -译者:[译者ID](https://github.com/译者ID) +译者:[martin2011qi](https://github.com/martin2011qi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md new file mode 100644 index 0000000000..e6dc9cca97 --- /dev/null +++ b/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md @@ -0,0 +1,55 @@ +ST 为 32 位 MCU 发布了一款自由的 Linux IDE +================================================= + +![](http://www.linux.com/images/stories/66866/STM32_Nucleo_expansion_board.jpg) + +32 位微控制器世界向 Linux 敞开大门。本周,领先的 ARM Cortex-M 供应商意法半导体(ST)[发布了](http://www.st.com/web/en/press/p3781) 一款自由的 Linux 桌面版开发程序,该软件面向其旗下的 STM32 微控制单元(MCU)。包含了 ST 的 STM32CubeMX 配置器和初始化工具,以及其 STM32 [系统工作台(SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) ,这个基于 Eclipse 的 IDE 由工具 Ac6 创建。支撑 SW4STM32 的工具链,论坛,博客以及技术会由 [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) 开发社区提供。 + +"Linux 社区以吸引富有创意的自由思想者而闻名,他们善于交流心得、高效地克服挑战。” Laurent Desseignes,意法半导体微控制器产品部,微控制器生态系统市场经理这么说道:“我们正着手做的是让他们能极端简单的借力 STM32 系列的特性和性能施展自己的才能,运用到富有想象力的新产品的创造中去。 + +Linux 是物联网(IoT)网关和枢纽,及高端 IoT 终端的领先平台。但是,大部分 IoT 革命,以及可穿戴设备市场基于小型的低功耗微控制器,对 Cortex-M 芯片的运用越来越多。虽然其中的一小部分可以运行精简的 uCLinux (见下文),却没能支持更全面的 Linux 发行版。取而代之的是实时操作系统(RTOS)们或者干脆不用 OS来控制。固件的开发工作一般会在基于 Windows 的集成开发环境(IDE)上完成。 + +通过 ST 的自由工具,Linux 开发者们可以更容易的开疆拓土。ST 工具中的一些技术在第二季度应该登录 Mac OS/X 平台,与 [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) ,开发套件,以及评估板同时面世。Nucleo 支持 32 针, 64 针, 和 144 针的版本,并且提供类似 Arduino 连接器这样的插件。 + +STM32CubeMX 配置器和 IDE SW4STM32 是 Linux 开发者能够配置微控制器并开发调试代码。SW4STM32 支持在 Linux 下通过社区更改版的 [OpenOCD](http://openocd.org/) 使用调试工具 ST-LINK/V2。 + +据 ST 称,软件兼容 STM32Cube 软件包及标准外设库中的微控制器固件。目标是囊括 ST 的全系列 MCU,从入门级的 Cortex-M0 内核到高性能的 M7 芯片,包括 M0+,M3 和 DSP 扩展的 M4 内核。 + +ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商,但似乎是第一大自由的 Linux 平台之一。例如NXP,MCU 的市场份额随着近期收购了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO)支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售价 $450。 + +在其 [SmartFusion FPGA SoCs](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3)上集成了 Cortex-M3 芯片的拥有一款 IDE [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support)适用于 RHEL 和 Windows。然而,Libero 需求许可证,并且 RHEL 版缺乏插件,比如 FlashPro 和 SoftConsole。 + +## 为什么要学习 MCU? + +即便 Linux 开发者并没有计划在 Cortex-M 上使用 uClinux,但是 MCU 的知识总会派上用场。特别是牵扯到复杂的 IoT 工程,需要扩展 MCU 终端至云端。 + +对于历程和业余爱好者的项目,Arduino 板为其访问 MCU 提供了非常便利的接口。然而历程之外,开发者常常就会用更快的 32 位 Cortex-M 芯片以及所带来的附加功能来替代 Arduino 板和板上的那块 8 位 MCU ATmega32u4。这些附加功能包括改进的存储器寻址,用于芯片和各种总线的独立时钟设置,以及芯片 [Cortex-M7](http://www.electronicsnews.com.au/products/stm32-mcus-with-arm-cortex-m7-processors-and-graph)自带的入门级显示芯片。 + +还有些可能需求 MCU 开发技术的地方有:可穿戴设备、低功耗、低成本和小尺寸给了 MCU 一席之地,还有机器人和无人机这些使用实时处理和电机控制的地方更为受用。在机器人上,你更是有可能看看 Cortex-A 与 Cortex-M 集成在同一个产品中的样子。 + +对于 SoC 芯片还有这样的一种温和的局势,即将 MCU 加入到 Linux 驱动的 Cortex-A 核心中,就如同 [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/)。 +虽然大多数的嵌入式项目并不使用这种混合型 SoC 或者说将应用处理器和 MCU 结合在同一产品中,但开发者会渐渐地发现自己工作的生产线、设计所基于的芯片正渐渐的从低端的 MCU 模块发展到 Linux 或安卓驱动的 Cortex-A。 + +## uClinux 是 Linux 在 MCU 领域的筹码 + +随着物联网的兴起,我们见到越来越多的 SBC 和模块计算机,它们在 32 位的 MCU 上运行着 uClinux。不同于其他的 Linux 发行版,uClinux 并不需要内存管理单元(MMU)。然而,uClinux 对市面上可见 MCU 有更高的内存需求。需求更高端的 Cortex-M4 和 Cortex-M4 微控制器内置内存控制器来支持外部 DRAM 芯片。 + +[Amptek 图标](http://www.semiconductorstore.com/Amptek/) SBC 在 NXP LPC Cortex-M3 和 -M4 芯片上运行 uClinux,以提供常用的功能类似 WiFi、蓝牙、USB 等众多接口。Arrow 的 [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) 物联网开发套件将 uClinux 运行于 SmartFusion2 模块计算机的 Emcraft 系统上,该模块计算机是 Microsemi 的 166MHz Cortex-M3/FPGA SmartFusion2 混合片上系统。 + +[Emcraft](http://www.emcraft.com/) 销售基于 uClinux 的模块计算机,有 ST 和 NXP 的,也有 Microsemi 的 MCU,是 32 位 MCU 上积极推进 uClinux 的重要角色。日益频繁的 uClinux 开始了与 ARM 本身 [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/)的对抗,至少在高端的 MCU 工程中需要无线通信和更为复杂的操作规则。Mbed 和 modern 的支持者,开源的 RTOS 们,类似 FreeRTOS 认为 uClinux 需要对 RAM 的需求太高以至于难以压低 IoT 终端的价格然而 Emcraft 与其他 uCLinux 拥趸表示价格并没有如此夸张,而且扩展 Linux 的无线和接口也是相当值得的,即使只是在像 uClinux 这样的精简版上。 + +当被问及对于这次 ST 发布的看法,Emcraft 的主任工程师 Vladimir Khusainov 表示:”ST决定将这款开发工具 移植至 Linux 对于 Emcraft 是个好消息,它使得 Linux 用户能轻易的在嵌入式 STM MCU 上展开工作。我们希望那些有机会熟悉 STM 设备,使用 ST 配置器和嵌入式库的用户可以对在目标机上使用嵌入式 Linux (以 uClinux的形式)感兴趣。“ + +最近关于 Cortex-M4 上运行 uClinux 的概述,可以查看去年 Jim Huang 与 Jeff Liaws 在嵌入式 Linux 大会上使用的[幻灯片](http://events.linuxfoundation.org/sites/events/files/slides/optimize-uclinux.pdf)。更多关于 Cortex-M 处理器可以查看这里过的 [AnandTech 总结](http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores)。 + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus + +作者:[Arun Pyasi][a] +译者:[martin2011qi](https://github.com/martin2011qi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/42808 From d1651db94c4b1d12851701b18978ac91e18f4729 Mon Sep 17 00:00:00 2001 From: martin qi Date: Wed, 24 Feb 2016 21:24:27 +0800 Subject: [PATCH 156/582] Translated --- ...Releases Free Linux IDE for 32-Bit MCUs.md | 54 ------------------- ...Releases Free Linux IDE for 32-Bit MCUs.md | 19 ++++--- 2 files changed, 9 insertions(+), 64 deletions(-) delete mode 100644 sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md diff --git a/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md deleted file mode 100644 index adc5404a2c..0000000000 --- a/sources/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md +++ /dev/null @@ -1,54 +0,0 @@ -意法半导体为 32 位 微控制器发布了一款自由的 Linux 集成开发环境 -================================================= - -![](http://www.linux.com/images/stories/66866/STM32_Nucleo_expansion_board.jpg) - -32 位微控制器世界向 Linux 敞开大门。本周,领先的 ARM Cortex-M 供应商意法半导体(ST)[发布了](http://www.st.com/web/en/press/p3781) 一款自由的 Linux 桌面版开发程序,该软件面向其旗下的 STM32 微控制单元(MCU)。包含了 ST 的 STM32CubeMX 配置器和初始化工具,以及其 STM32 [系统工作台(SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) ,这个基于 Eclipse 的 IDE 由工具 Ac6 创建。支撑 SW4STM32 的工具链,论坛,博客以及技术会由 [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) 开发社区提供。 - -“Linux 社区以吸引富有创意的自由思想者而闻名,他们善于交流心得、高效地克服挑战。” Laurent Desseignes,意法半导体微控制器产品部,微控制器生态系统市场经理这么说道:“我们正着手做的是让他们能极端简单的借力 STM32 系列的特性和性能施展自己的才能,运用到富有想象力的新产品的创造中去。 - -Linux 是物联网(IoT)网关和枢纽,及高端 IoT 终端的领先平台。但是,大部分 IoT 革命,以及可穿戴设备市场基于小型的低功耗微控制器,对 Cortex-M 芯片的运用越来越多。虽然其中的一小部分可以运行精简的 uCLinux (见下文),却没能支持更全面的 Linux 发行版。取而代之的是实时操作系统(RTOS)们或者有时干脆不用 OS 来控制。固件的开发工作一般会在基于 Windows 的集成开发环境(IDE)上完成。 - -通过 ST 的自由工具,Linux 开发者们可以更容易的开疆拓土。ST 工具中的一些技术在第二季度应该登录 Mac OS/X 平台,与 [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) ,开发套件,以及评估板同时面世。Nucleo 支持 32 针, 64 针, 和 144 针的版本,并且提供类似 Arduino 连接器这样的插件。 - -STM32CubeMX 配置器和 IDE SW4STM32 使 Linux 开发者能够配置微控制器并开发调试代码。SW4STM32 支持在 Linux 下通过社区更改版的 [OpenOCD](http://openocd.org/) 使用调试工具 ST-LINK/V2。 - -据 ST 称,软件兼容 STM32Cube 软件包及标准外设库中的微控制器固件。目标是囊括 ST 的全系列 MCU,从入门级的 Cortex-M0 内核到高性能的 M7 芯片,包括 M0+,M3 和 DSP 扩展的 M4 内核。 - -ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商,但似乎是第一大自由的 Linux 平台。例如NXP,MCU 的市场份额随着近期收购了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO)支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售价 $450。 - -在其 [SmartFusion FPGA 系统级芯片(SoC)](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3)上集成了 Cortex-M3 芯片的Microsemi,拥有一款 IDE [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support)适用于 RHEL 和 Windows。然而,Libero 需求许可证,并且 RHEL 版缺乏如 FlashPro 和 SoftConsole 的插件。 - -## 为什么要学习 MCU? - -即便 Linux 开发者并没有计划在 Cortex-M 上使用 uClinux,但是 MCU 的知识总会派上用场。特别是牵扯到复杂的 IoT 工程,需要扩展 MCU 终端至云端。 - -对于历程和业余爱好者的项目,Arduino 板为其访问 MCU 提供了非常便利的接口。然而历程之外,开发者常常就会用更快的 32 位 Cortex-M 芯片以及所带来的附加功能来替代 Arduino 板和板上的那块 8 位 MCU ATmega32u4。这些附加功能包括改进的存储器寻址,用于芯片和各种总线的独立时钟设置,以及芯片 [Cortex-M7](http://www.electronicsnews.com.au/products/stm32-mcus-with-arm-cortex-m7-processors-and-graph)自带的入门级显示芯片。 - -还有些可能需求 MCU 开发技术的地方有:可穿戴设备、低功耗、低成本和小尺寸给了 MCU 一席之地,还有机器人和无人机这些使用实时处理和电机控制的地方更为受用。在机器人上,你更是有可能看看 Cortex-A 与 Cortex-M 集成在同一个产品中的样子。 - -对于 SoC 芯片还有这样的一种温和的局势,即将 MCU 加入到 Linux 驱动的 Cortex-A 核心中,就如同 [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/)。虽然大多数的嵌入式项目并不使用这种混合型 SoC 或者说将应用处理器和 MCU 结合在同一产品中,但开发者会渐渐地发现自己工作的生产线、设计所基于的芯片正渐渐的从低端的 MCU 模块发展到 Linux 或安卓驱动的 Cortex-A。 - -## uClinux 是 Linux 在 MCU 领域的筹码 - -随着物联网的兴起,我们见到越来越多的 SBC 和模块计算机,它们在 32 位的 MCU 上运行着 uClinux。不同于其他的 Linux 发行版,uClinux 并不需要内存管理单元(MMU)。然而,uClinux 对市面上可见 MCU 有更高的内存需求。需求更高端的 Cortex-M4 和 Cortex-M4 微控制器内置内存控制器来支持外部 DRAM 芯片。 - -[Amptek](http://www.semiconductorstore.com/Amptek/) SBC 在 NXP LPC Cortex-M3 和 -M4 芯片上运行 uClinux,以提供常用的功能类似 WiFi、蓝牙、USB 等众多接口。Arrow 的 [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) 物联网开发套件将 uClinux 运行于 SmartFusion2 模块计算机的 Emcraft 系统上,该模块计算机是 Microsemi 的 166MHz Cortex-M3/FPGA SmartFusion2 混合 SoC。 - -[Emcraft](http://www.emcraft.com/) 销售基于 uClinux 的模块计算机,有 ST 和 NXP 的,也有 Microsemi 的 MCU,是 32 位 MCU 上积极推进 uClinux 的重要角色。日益频繁的 uClinux 开始了与 ARM 本身 [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/)的对抗,至少在高端的 MCU 工程中需要无线通信和更为复杂的操作规则。Mbed 和 modern 的支持者,开源的 RTOS 们,类似 FreeRTOS 认为 uClinux 需要对 RAM 的需求太高以至于难以压低 IoT 终端的价格然而 Emcraft 与其他 uCLinux 拥趸表示价格并没有如此夸张,而且扩展 Linux 的无线和接口也是相当值得的,即使只是在像 uClinux 这样的精简版上。 - -当被问及对于这次 ST 发布的看法,Emcraft 的主任工程师 Vladimir Khusainov 表示:”ST决定将这款开发工具 移植至 Linux 对于 Emcraft 是个好消息,它使得 Linux 用户能轻易的在嵌入式 STM MCU 上展开工作。我们希望那些有机会熟悉 STM 设备,使用 ST 配置器和嵌入式库的用户可以对在目标机上使用嵌入式 Linux (以 uClinux 的形式)感兴趣。“ - -最近关于 Cortex-M4 上运行 uClinux 的概述,可以查看去年 Jim Huang 与 Jeff Liaws 在嵌入式 Linux 大会上使用的[幻灯片](http://events.linuxfoundation.org/sites/events/files/slides/optimize-uclinux.pdf)。更多关于 Cortex-M 处理器可以查看这里过的 [AnandTech 总结](http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores)。 - ------------------------------------------------------------------------------- - -via: http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus - -作者:[Arun Pyasi][a] -译者:[martin2011qi](https://github.com/martin2011qi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.linux.com/community/forums/person/42808 diff --git a/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md index e6dc9cca97..adc5404a2c 100644 --- a/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md +++ b/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md @@ -1,23 +1,23 @@ -ST 为 32 位 MCU 发布了一款自由的 Linux IDE +意法半导体为 32 位 微控制器发布了一款自由的 Linux 集成开发环境 ================================================= ![](http://www.linux.com/images/stories/66866/STM32_Nucleo_expansion_board.jpg) 32 位微控制器世界向 Linux 敞开大门。本周,领先的 ARM Cortex-M 供应商意法半导体(ST)[发布了](http://www.st.com/web/en/press/p3781) 一款自由的 Linux 桌面版开发程序,该软件面向其旗下的 STM32 微控制单元(MCU)。包含了 ST 的 STM32CubeMX 配置器和初始化工具,以及其 STM32 [系统工作台(SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) ,这个基于 Eclipse 的 IDE 由工具 Ac6 创建。支撑 SW4STM32 的工具链,论坛,博客以及技术会由 [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) 开发社区提供。 -"Linux 社区以吸引富有创意的自由思想者而闻名,他们善于交流心得、高效地克服挑战。” Laurent Desseignes,意法半导体微控制器产品部,微控制器生态系统市场经理这么说道:“我们正着手做的是让他们能极端简单的借力 STM32 系列的特性和性能施展自己的才能,运用到富有想象力的新产品的创造中去。 +“Linux 社区以吸引富有创意的自由思想者而闻名,他们善于交流心得、高效地克服挑战。” Laurent Desseignes,意法半导体微控制器产品部,微控制器生态系统市场经理这么说道:“我们正着手做的是让他们能极端简单的借力 STM32 系列的特性和性能施展自己的才能,运用到富有想象力的新产品的创造中去。 -Linux 是物联网(IoT)网关和枢纽,及高端 IoT 终端的领先平台。但是,大部分 IoT 革命,以及可穿戴设备市场基于小型的低功耗微控制器,对 Cortex-M 芯片的运用越来越多。虽然其中的一小部分可以运行精简的 uCLinux (见下文),却没能支持更全面的 Linux 发行版。取而代之的是实时操作系统(RTOS)们或者干脆不用 OS来控制。固件的开发工作一般会在基于 Windows 的集成开发环境(IDE)上完成。 +Linux 是物联网(IoT)网关和枢纽,及高端 IoT 终端的领先平台。但是,大部分 IoT 革命,以及可穿戴设备市场基于小型的低功耗微控制器,对 Cortex-M 芯片的运用越来越多。虽然其中的一小部分可以运行精简的 uCLinux (见下文),却没能支持更全面的 Linux 发行版。取而代之的是实时操作系统(RTOS)们或者有时干脆不用 OS 来控制。固件的开发工作一般会在基于 Windows 的集成开发环境(IDE)上完成。 通过 ST 的自由工具,Linux 开发者们可以更容易的开疆拓土。ST 工具中的一些技术在第二季度应该登录 Mac OS/X 平台,与 [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) ,开发套件,以及评估板同时面世。Nucleo 支持 32 针, 64 针, 和 144 针的版本,并且提供类似 Arduino 连接器这样的插件。 -STM32CubeMX 配置器和 IDE SW4STM32 是 Linux 开发者能够配置微控制器并开发调试代码。SW4STM32 支持在 Linux 下通过社区更改版的 [OpenOCD](http://openocd.org/) 使用调试工具 ST-LINK/V2。 +STM32CubeMX 配置器和 IDE SW4STM32 使 Linux 开发者能够配置微控制器并开发调试代码。SW4STM32 支持在 Linux 下通过社区更改版的 [OpenOCD](http://openocd.org/) 使用调试工具 ST-LINK/V2。 据 ST 称,软件兼容 STM32Cube 软件包及标准外设库中的微控制器固件。目标是囊括 ST 的全系列 MCU,从入门级的 Cortex-M0 内核到高性能的 M7 芯片,包括 M0+,M3 和 DSP 扩展的 M4 内核。 -ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商,但似乎是第一大自由的 Linux 平台之一。例如NXP,MCU 的市场份额随着近期收购了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO)支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售价 $450。 +ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商,但似乎是第一大自由的 Linux 平台。例如NXP,MCU 的市场份额随着近期收购了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO)支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售价 $450。 -在其 [SmartFusion FPGA SoCs](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3)上集成了 Cortex-M3 芯片的拥有一款 IDE [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support)适用于 RHEL 和 Windows。然而,Libero 需求许可证,并且 RHEL 版缺乏插件,比如 FlashPro 和 SoftConsole。 +在其 [SmartFusion FPGA 系统级芯片(SoC)](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3)上集成了 Cortex-M3 芯片的Microsemi,拥有一款 IDE [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support)适用于 RHEL 和 Windows。然而,Libero 需求许可证,并且 RHEL 版缺乏如 FlashPro 和 SoftConsole 的插件。 ## 为什么要学习 MCU? @@ -27,18 +27,17 @@ ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商, 还有些可能需求 MCU 开发技术的地方有:可穿戴设备、低功耗、低成本和小尺寸给了 MCU 一席之地,还有机器人和无人机这些使用实时处理和电机控制的地方更为受用。在机器人上,你更是有可能看看 Cortex-A 与 Cortex-M 集成在同一个产品中的样子。 -对于 SoC 芯片还有这样的一种温和的局势,即将 MCU 加入到 Linux 驱动的 Cortex-A 核心中,就如同 [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/)。 -虽然大多数的嵌入式项目并不使用这种混合型 SoC 或者说将应用处理器和 MCU 结合在同一产品中,但开发者会渐渐地发现自己工作的生产线、设计所基于的芯片正渐渐的从低端的 MCU 模块发展到 Linux 或安卓驱动的 Cortex-A。 +对于 SoC 芯片还有这样的一种温和的局势,即将 MCU 加入到 Linux 驱动的 Cortex-A 核心中,就如同 [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/)。虽然大多数的嵌入式项目并不使用这种混合型 SoC 或者说将应用处理器和 MCU 结合在同一产品中,但开发者会渐渐地发现自己工作的生产线、设计所基于的芯片正渐渐的从低端的 MCU 模块发展到 Linux 或安卓驱动的 Cortex-A。 ## uClinux 是 Linux 在 MCU 领域的筹码 随着物联网的兴起,我们见到越来越多的 SBC 和模块计算机,它们在 32 位的 MCU 上运行着 uClinux。不同于其他的 Linux 发行版,uClinux 并不需要内存管理单元(MMU)。然而,uClinux 对市面上可见 MCU 有更高的内存需求。需求更高端的 Cortex-M4 和 Cortex-M4 微控制器内置内存控制器来支持外部 DRAM 芯片。 -[Amptek 图标](http://www.semiconductorstore.com/Amptek/) SBC 在 NXP LPC Cortex-M3 和 -M4 芯片上运行 uClinux,以提供常用的功能类似 WiFi、蓝牙、USB 等众多接口。Arrow 的 [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) 物联网开发套件将 uClinux 运行于 SmartFusion2 模块计算机的 Emcraft 系统上,该模块计算机是 Microsemi 的 166MHz Cortex-M3/FPGA SmartFusion2 混合片上系统。 +[Amptek](http://www.semiconductorstore.com/Amptek/) SBC 在 NXP LPC Cortex-M3 和 -M4 芯片上运行 uClinux,以提供常用的功能类似 WiFi、蓝牙、USB 等众多接口。Arrow 的 [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) 物联网开发套件将 uClinux 运行于 SmartFusion2 模块计算机的 Emcraft 系统上,该模块计算机是 Microsemi 的 166MHz Cortex-M3/FPGA SmartFusion2 混合 SoC。 [Emcraft](http://www.emcraft.com/) 销售基于 uClinux 的模块计算机,有 ST 和 NXP 的,也有 Microsemi 的 MCU,是 32 位 MCU 上积极推进 uClinux 的重要角色。日益频繁的 uClinux 开始了与 ARM 本身 [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/)的对抗,至少在高端的 MCU 工程中需要无线通信和更为复杂的操作规则。Mbed 和 modern 的支持者,开源的 RTOS 们,类似 FreeRTOS 认为 uClinux 需要对 RAM 的需求太高以至于难以压低 IoT 终端的价格然而 Emcraft 与其他 uCLinux 拥趸表示价格并没有如此夸张,而且扩展 Linux 的无线和接口也是相当值得的,即使只是在像 uClinux 这样的精简版上。 -当被问及对于这次 ST 发布的看法,Emcraft 的主任工程师 Vladimir Khusainov 表示:”ST决定将这款开发工具 移植至 Linux 对于 Emcraft 是个好消息,它使得 Linux 用户能轻易的在嵌入式 STM MCU 上展开工作。我们希望那些有机会熟悉 STM 设备,使用 ST 配置器和嵌入式库的用户可以对在目标机上使用嵌入式 Linux (以 uClinux的形式)感兴趣。“ +当被问及对于这次 ST 发布的看法,Emcraft 的主任工程师 Vladimir Khusainov 表示:”ST决定将这款开发工具 移植至 Linux 对于 Emcraft 是个好消息,它使得 Linux 用户能轻易的在嵌入式 STM MCU 上展开工作。我们希望那些有机会熟悉 STM 设备,使用 ST 配置器和嵌入式库的用户可以对在目标机上使用嵌入式 Linux (以 uClinux 的形式)感兴趣。“ 最近关于 Cortex-M4 上运行 uClinux 的概述,可以查看去年 Jim Huang 与 Jeff Liaws 在嵌入式 Linux 大会上使用的[幻灯片](http://events.linuxfoundation.org/sites/events/files/slides/optimize-uclinux.pdf)。更多关于 Cortex-M 处理器可以查看这里过的 [AnandTech 总结](http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores)。 From a0a37c0fbaa909b1cfa2ad7d7c4f26488f362312 Mon Sep 17 00:00:00 2001 From: runningwater Date: Thu, 25 Feb 2016 00:15:02 +0800 Subject: [PATCH 157/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...isk in Linux CentOS 7 Without Rebooting.md | 174 ------------------ ...isk in Linux CentOS 7 Without Rebooting.md | 173 +++++++++++++++++ 2 files changed, 173 insertions(+), 174 deletions(-) delete mode 100644 sources/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md create mode 100644 translated/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md diff --git a/sources/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md b/sources/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md deleted file mode 100644 index 006d4f9905..0000000000 --- a/sources/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md +++ /dev/null @@ -1,174 +0,0 @@ -(翻译中 by runningwater) -How to Add New Disk in Linux CentOS 7 Without Rebooting -================================================================================ - -Increasing disk spaces on the Linux servers is a daily routine work for very system administrator. So, in this article we are going to show you some simple simple steps that you can use to increase your disk spaces on Linux CentOS 7 without rebooting to your production server using Linux commands. We will cover multiple methods and possibilities to increase and add new disks to the Linux systems, so that you can follow the one that you feel comfortable while using according to your requirements. - -### 1. Increasing Disk of VM Guest: ### - -Before increasing the disk volume inside your Linux system, you need to add a new disk or increase the one its has already attached with the system by editing its settings from your VMware vShere, Workstation or any other infrastructure environment that you are using. - -![Increase disk](http://blog.linoxide.com/wp-content/uploads/2016/02/1.png) - -### 2. Check Disk Space: ### - -Run the following command to check the current size of your disk space. - - # df -h - # fdisk -l - -![Fdisk check](http://blog.linoxide.com/wp-content/uploads/2016/02/2.png) - -Here we can see that the total disk size is still the same that is 10 GB while we have already increased it to 50 GB from the back end. - -### 3. Expanding Space without Rebooting VM ### - -Now run the following commands to expand the disk space in the physical volume of the Operating System without rebooting the virtual machine by Re-scanning the SCSI Bus and then adding SCSI Device. - - # ls /sys/class/scsi_host/ - # echo "- - -" > /sys/class/scsi_host/host0/scan - # echo "- - -" > /sys/class/scsi_host/host1/scan - # echo "- - -" > /sys/class/scsi_host/host2/scan - -Check the names of your SCSI devices and then rescan the SCSI buses using below commands. - - # ls /sys/class/scsi_device/ - # echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan - # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan - -That will rescan the current scsi bus and the disk size that we increased from the VM guest settings will be show up as you can see in the below image. - -![Rescan disk device](http://blog.linoxide.com/wp-content/uploads/2016/02/3.png) - -### 4. New Disk Partition: ### - -Once you are able to see the increased disk space inside your system then the run the following command to format your disk for creating a new partition by following the steps to increase your physical disk volume. - - # fdisk /dev/sda - Welcome to fdisk (util-linux 2.23.2) press the 'm' key for help - Command (m for help): m - Command action - a toggle a bootable flag - b edit bsd disklabel - c toggle the dos compatibility flag - d delete a partition - g create a new empty GPT partition table - G create an IRIX (SGI) partition table - l list known partition types - m print this menu - n add a new partition - o create a new empty DOS partition table - p print the partition table - q quit without saving changes - s create a new empty Sun disklabel - t change a partition's system id - u change display/entry units - v verify the partition table - w write table to disk and exit - x extra functionality (experts only) - - Command (m for help): - -Type the 'p' to print the current partition table then create a new primary partition by typing the 'n' key and selecting the available sectors. Change the disk type to 'Linux LVM' by using 't' command and selecting the code to '8e' or leave as it to its default type that is '83'. - -Now write the table to disk and exit by Entring 'w' key as shown. - - Command (m for help): w - The partition table has been altered! - - Calling ioctl() to re-read partition table. - - WARNING: Re-reading the partition table failed with error 16: Device or resource busy. - The kernel still uses the old table. The new table will be used at - the next reboot or after you run partprobe(8) or kpartx(8) - -![New disk Volume](http://blog.linoxide.com/wp-content/uploads/2016/02/3A.png) - -### 5. Creating Physical Volume: ### - -As indicated above run the 'partprobe' or kpartx command so that the tables are ready to use and then create the new Physical Volume using the below commands. - - # partprobe - # pvresize /dev/sda3 - -To check the newly created volume run the following command to see if the new physical volume has been created and visible. After that we will extend the Volume Group 'centos' with the newly create Physical Volume as shown. - - # pvdisplay - # vgextend centos /dev/sda3 - -![Extend volume Group](http://blog.linoxide.com/wp-content/uploads/2016/02/3B.png) - -### 6. Extending Logical Volume: ### - -Now we will extend the Logical Volume to increase the disk space on it using the the below command. - - # lvextend -L +40G /dev/mapper/centos-root - -Once you get the successfully increased message, run the command as shown below to extend the size of your logical volume . - - # xfs_growfs /dev/mapper/centos-root - -The size of the '/' partition has been increased successfully, you can check the size of your disk drives by using the 'df' command as shown. - -![Increase disk space](http://blog.linoxide.com/wp-content/uploads/2016/02/3C.png) - -### 7. Extending Root Partition by Adding New Disk Without Reboot: ### - -This is the second method with but with quite similar commands to increase the size of the Logical volume in CentOS 7. - -So, the first step is to Open the setting of your VM guest settings and click on the 'Add' new button and proceed to the next option. - -![Add new disk](http://blog.linoxide.com/wp-content/uploads/2016/02/3D.png) - -Choose the required configuration for the new disk by selecting the size of the new disk and its type as shown in the below image. - -![New disk setup](http://blog.linoxide.com/wp-content/uploads/2016/02/3E.png) - -Then come to the server side and repeat the following commands to scan your disk devices to the new disk is visible on the system. - - # echo "- - -" > /sys/class/scsi_host/host0/scan - # echo "- - -" > /sys/class/scsi_host/host1/scan - # echo "- - -" > /sys/class/scsi_host/host2/scan - -List the names of your SCSi devices - - # ls /sys/class/scsi_device/ - # echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan - # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan - # echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan - # fdisk -l - -![Scanning new disk](http://blog.linoxide.com/wp-content/uploads/2016/02/3F.png) - -Once the new disk is visible run the below commands to create the new physical volume and add it to the volume group as shown. - - # pvcreate /dev/sdb - # vgextend centos /dev/sdb - # vgdisplay - -![Extending Volume Group](http://blog.linoxide.com/wp-content/uploads/2016/02/3G.png) - -Now extend the Logical Volume by adding the disk space on it and then add it to the root partition. - - # lvextend -L +20G /dev/mapper/centos-root - # xfs_growfs /dev/mapper/centos-root - # df -h - -![Increase / Partition](http://blog.linoxide.com/wp-content/uploads/2016/02/3H.png) - -### Conclusion: ### - -Managing disk partitions in Linux CentOS 7 is a simple process to increase the disk space of any of your logical volumes by using the steps as described in this article. You don't need to give your production server's reboot for this purpose but simply rescan your SCSi devices and expand your desired LVM. We hope you find this article much helpful. Feel free to leave your valuable comments or suggestions. - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/add-new-disk-centos-7-without-rebooting/ - -作者:[Kashif S][a] -译者:[runningwater](https://github.com/runningwater -) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/kashifs/ \ No newline at end of file diff --git a/translated/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md b/translated/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md new file mode 100644 index 0000000000..adfb7f556f --- /dev/null +++ b/translated/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md @@ -0,0 +1,173 @@ +如何在CentOS 7 中添加新磁盘而不用重启系统 +================================================================================ + +对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一。因此这篇文章会在通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器。关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,所以可按您所需选择最适用的一种。 + +### 1. 为虚拟机客户端扩充磁盘空间: ### + +在为 Linux 系统增加磁盘卷之前,您需要添加一块新的物理磁盘或是从正使用的 VMware vShere、工作站或着其它的基础虚拟环境软件中进行设置,从而扩充一块系统正使用的虚拟磁盘空间。 + +![Increase disk](http://blog.linoxide.com/wp-content/uploads/2016/02/1.png) + +### 2. 检查磁盘空间: ### + +运行如下命令来检查当前磁盘空间大小。 + + # df -h + # fdisk -l + +![Fdisk check](http://blog.linoxide.com/wp-content/uploads/2016/02/2.png) + +可以看到,虽然我们已经在后端给其增加到 50 GB 的空间,但此时的总磁盘大小仍然为 10 GB。 + +### 3. 扩展空间而无需重启虚拟机 ### + +现在运行如下命令就可以来扩展操作系统的物理卷磁盘空间,而且不需要重启虚拟机,系统会重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并添加 SCSI 设备。 + + # ls /sys/class/scsi_host/ + # echo "- - -" > /sys/class/scsi_host/host0/scan + # echo "- - -" > /sys/class/scsi_host/host1/scan + # echo "- - -" > /sys/class/scsi_host/host2/scan + +使用下面的命令来检查 SCSI 设备的名称,然后重新扫描 SCSI 总线。 + + # ls /sys/class/scsi_device/ + # echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan + # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan + +如下图所示,会重新扫描 SCSI 总线,随后我们从虚拟机客户端设置的磁盘大小会正常显示。 + +![Rescan disk device](http://blog.linoxide.com/wp-content/uploads/2016/02/3.png) + +### 4. 创建新磁盘分区: ### + +一旦在系统中可以看到扩展的磁盘空间,就可以运行如下命令来格式化您的磁盘以创建一个新的分区。请按如下操作步骤来扩充您的物理磁盘卷。 + + # fdisk /dev/sda + Welcome to fdisk (util-linux 2.23.2) press the 'm' key for help + Command (m for help): m + Command action + a toggle a bootable flag + b edit bsd disklabel + c toggle the dos compatibility flag + d delete a partition + g create a new empty GPT partition table + G create an IRIX (SGI) partition table + l list known partition types + m print this menu + n add a new partition + o create a new empty DOS partition table + p print the partition table + q quit without saving changes + s create a new empty Sun disklabel + t change a partition's system id + u change display/entry units + v verify the partition table + w write table to disk and exit + x extra functionality (experts only) + + Command (m for help): + +键入 'p' 来查看当前的分区表信息,然后键入 'n' 键来创建一个新的主分区,选择所有可用的扇区。 使用 't' 命令改变磁盘类型为 'Linux LVM',然后选择编码 '8e' 或者默认不选,它默认的类型编码为 '83'。 + +现在输入 'w' 来保存分区表信息并且退出命令环境,如下示: + + Command (m for help): w + The partition table has been altered! + + Calling ioctl() to re-read partition table. + + WARNING: Re-reading the partition table failed with error 16: Device or resource busy. + The kernel still uses the old table. The new table will be used at + the next reboot or after you run partprobe(8) or kpartx(8) + +![New disk Volume](http://blog.linoxide.com/wp-content/uploads/2016/02/3A.png) + +### 5. 创建物理卷: ### + +根据提示运行 'partprob' 或 'kpartx' 命令以使分区表被真正使用,然后使用如下的命令来创建新的物理卷。 + + # partprobe + # pvresize /dev/sda3 + +要检查新创建的卷,运行如下的命令可以看出新的物理卷是否已经被创建,是否可用。接下来,我们就可以使用这个新的物理卷来扩展 'centos' 卷组了,如下示: + + # pvdisplay + # vgextend centos /dev/sda3 + +![Extend volume Group](http://blog.linoxide.com/wp-content/uploads/2016/02/3B.png) + +### 6. 扩展逻辑卷: ### + +现在我们使用如下的命令扩展逻辑卷,以增加我们系统正使用的磁盘空间。 + + # lvextend -L +40G /dev/mapper/centos-root + +一旦返回增加成功的消息,就可以运行如下命令来扩展您的逻辑卷大小。 + + # xfs_growfs /dev/mapper/centos-root + +'/' 分区的大小已经成功的增加了,可以使用 'df' 命令来检查您磁盘驱动的大小。如图示。 + +![Increase disk space](http://blog.linoxide.com/wp-content/uploads/2016/02/3C.png) + +### 7. 通过增加新的磁盘来扩充根分区而不用重启系统: ### + +这是第二种方法,它使用的命令非常简单, 用来增加 CentOS 7 系统上逻辑卷空间大小。 + +所以第一步是打开您的虚拟机客户端的设置页面,点击 ‘增加’ 按纽,然后继续下一步操作。 + +![Add new disk](http://blog.linoxide.com/wp-content/uploads/2016/02/3D.png) + +选择新磁盘所需要的配置信息,如下图所示的,选择新磁盘的大小和它的类型。 + +![New disk setup](http://blog.linoxide.com/wp-content/uploads/2016/02/3E.png) + +然后进入服务端重复如下的命令来扫描您的磁盘设备,以使新磁盘在系统中可见。 + + # echo "- - -" > /sys/class/scsi_host/host0/scan + # echo "- - -" > /sys/class/scsi_host/host1/scan + # echo "- - -" > /sys/class/scsi_host/host2/scan + +列出您的 SCSI 设备的名称 + + # ls /sys/class/scsi_device/ + # echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan + # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan + # echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan + # fdisk -l + +![Scanning new disk](http://blog.linoxide.com/wp-content/uploads/2016/02/3F.png) + +一旦新增的磁盘可见就可以运行下面的命令来创建新的物理卷,然后增加到卷组,如下示。 + + # pvcreate /dev/sdb + # vgextend centos /dev/sdb + # vgdisplay + +![Extending Volume Group](http://blog.linoxide.com/wp-content/uploads/2016/02/3G.png) + +现在根据此磁盘的空间大小来扩展逻辑卷,然后添加到根分区。 + + # lvextend -L +20G /dev/mapper/centos-root + # xfs_growfs /dev/mapper/centos-root + # df -h + +![Increase / Partition](http://blog.linoxide.com/wp-content/uploads/2016/02/3H.png) + +### 结论: ### + +在 Linux CentOS 7 系统上,使用这篇文章所述的操作步骤来扩充您的任意逻辑卷的磁盘空间,此管理磁盘分区的操作过程是非常简单的。您不需要重启生产线上的服务器,只是简单的重扫描下 SCSI 设备,和扩展您想要的 LVM(逻辑卷管理)。我们希望这文章对您有用。可自由的发表有用的评论和建议。 + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/add-new-disk-centos-7-without-rebooting/ + +作者:[Kashif S][a] +译者:[runningwater](https://github.com/runningwater +) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/kashifs/ \ No newline at end of file From bbb269101a9672cf1ca04064ec2f7fa0c6f20359 Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Thu, 25 Feb 2016 09:58:56 +0800 Subject: [PATCH 158/582] name1e5s translating... --- .../20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md b/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md index 0d503b3010..14ef0ed776 100644 --- a/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md +++ b/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md @@ -1,3 +1,5 @@ +name1e5s translating + Manjaro Linux Is Coming To ARM With Manjaro-ARM =================================================== From 7d010d7154513d78166dc19c4cf5f4d02e0f5aee Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Thu, 25 Feb 2016 10:48:13 +0800 Subject: [PATCH 159/582] [translated] 20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md --- ...Linux Is Coming To ARM With Manjaro-ARM.md | 33 ------------------- ...Linux Is Coming To ARM With Manjaro-ARM.md | 31 +++++++++++++++++ 2 files changed, 31 insertions(+), 33 deletions(-) delete mode 100644 sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md create mode 100644 translated/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md diff --git a/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md b/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md deleted file mode 100644 index 14ef0ed776..0000000000 --- a/sources/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md +++ /dev/null @@ -1,33 +0,0 @@ -name1e5s translating - -Manjaro Linux Is Coming To ARM With Manjaro-ARM -=================================================== - -![](http://itsfoss.com/wp-content/uploads/2016/02/manjaro-arm.jpg) - -Recently, the developers of Manjaro have announced the release of an [alpha build for ARM devices](https://manjaro.github.io/Manjaro-ARM-launched/). This is a big step for the Arch-based distro, which up until this point only ran on 32 and 64-bit PCs. - -According to the announcement, “[Manjaro Arm](http://manjaro-arm.org/) is a project aimed to bring you the simplicity and customability that is Manjaro to [ARM devices](https://www.arm.com/). These devices are growing in numbers and can be used for any number of applications. Most famous is the Raspberry Pi series and BeagleBoard series.” The alpha build only supports the Raspberry Pi 2, but that will undoubtedly grow with time. - -The developers currently include dodgejcr, Torei, Strit, and Ringo32. They are looking for more people to help the project grow and develop. Besides developers, [they are looking for maintainers, moderators and admins, and artists](http://manjaro-arm.org/forums/website/looking-for-contributors/?PHPSESSID=876d5c11400e9c25eb727e9965300a9a). - -Manjaro-ARM will be available in four different versions. The Media Edition will allow you to create a media center with very little configuration and will run Kodi. The Server Edition will come with SSH, FTP, and a LAMP server preconfigured so you can use your ARM device as a file or web server. The Base Edition acts as the desktop edition, with an XFCE desktop. If you want to build you own system from scratch, the Minimal Edition is your choice. It will come with no preloaded packages or desktop, only have a root user. - -## Final Thoughts - -As a fan of Manjaro (I have it installed on 4 computers), I’m glad to hear that they are branching out into the ARM world. ARM is being used in more and more devices. According to technology commentator Robert Cringely, [device makers are starting to look at cheap ARM chips over more expensive Intel or AMD chips](http://www.cringely.com/2016/01/21/prediction-8-intel-starts-to-become-irrelevent/). Even Microsoft (please don’t strike me down) is thinking of porting some of its software to ARM. As the use of ARM powered devices increase, Manjaro will be ready to give those users a great Linux experience. - -What do you think? Do you wish that more Linux distros would create ARM ports? Or do you think that ARM is a passing fad? Tell us below. - ------------------------------------------------------------------------------- - -via: http://itsfoss.com/manjaro-linux-arm/ - -作者:[JOHN PAUL][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/john/ - diff --git a/translated/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md b/translated/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md new file mode 100644 index 0000000000..80670c5c7b --- /dev/null +++ b/translated/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md @@ -0,0 +1,31 @@ +Manjaro Linux 即将推出支持 ARM 处理器的 Manjaro-ARM +=================================================== + +![](http://itsfoss.com/wp-content/uploads/2016/02/manjaro-arm.jpg) + +最近,Manjaro 的开发者为 ARM 处理器发布了一个[ alpha 版本](https://manjaro.github.io/Manjaro-ARM-launched/)。这是这个基于 Arhclinux 的发行版的一大进步,在此之前,它只能在 32 位或者 64 位的个人电脑上运行。 + +根据公告, “[Manjaro Arm](http://manjaro-arm.org/) 项目致力于将简洁可定制的 Manjaro 移植到使用[ ARM 处理器](https://www.arm.com/)的设备上去。这些设备的数量正在上涨并且应用范围广泛。这些设备中最出名的是树莓派和 BeagleBoard“。目前 Alpha 版本仅支持树莓派2,但是毫无疑问,支持的设备数量会随时间增长。 + +现在这个项目的开发者有 dodgejcr, Torei, Strit, 和 Ringo32。他们正在寻求更多的人来帮助这个项目发展。除了开发者,[他们还在寻找维护者,论坛版主,管理员,以及设计师](http://manjaro-arm.org/forums/website/looking-for-contributors/?PHPSESSID=876d5c11400e9c25eb727e9965300a9a)。 + +Manjaro-ARM 将会有四个版本。媒体版本将可以运行Kodi并且允许你很少配置就能创建一个媒体中心。服务器版将会预先配置好 SSH,FTP,LAMP ,你能把你的 ARM 设备当作服务器使用。基本版是一个桌面版本,自带一个 XFCE 桌面。如果你想自己从头折腾系统的话你可以选择迷你版,它没有任何预先配置的包,仅仅包含一个 root 用户。 + +## 我的想法 + +作为一个 Manjaro 的粉丝(我在 4 个电脑上都安了 Manjaro),听说他们分支出一个 ARM 版我很高兴。 ARM 处理器被用到了越来越多的设备当中。如同评论员 Robert Cringely 所说, [设备制造商开始注意到昂贵的因特尔或者AMD处理器之外的便宜的多的ARM处理器](http://www.cringely.com/2016/01/21/prediction-8-intel-starts-to-become-irrelevent/)。甚至微软(憋打我)都开始考虑将自己的一些软件移植到 ARM 处理器上去。随着 ARM 处理器设备数量的增多,Manjaro 将会带给用户良好的体验。 + +对此,你怎样看待?你希望更多的发行版支持 ARM 吗?或者你认为 ARM 将是昙花一现?在评论区告诉我们。 + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/manjaro-linux-arm/ + +作者:[JOHN PAUL][a] +译者:[name1e5s](https://github.com/name1e5s) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/john/ + From 2e7947e057e67346060788df67b08ba71dbb47c8 Mon Sep 17 00:00:00 2001 From: Rubik Date: Thu, 25 Feb 2016 11:36:33 +0800 Subject: [PATCH 160/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...w to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md b/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md index f84e9e1e46..51f8050de7 100644 --- a/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md +++ b/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md @@ -1,3 +1,4 @@ +[Translating] Haohong Wang How to Setup Lighttpd Web server on Ubuntu 15.04 / CentOS 7 ================================================================================= From 52bf40b2a72fda6311c562ffec2b6abcb0b119d1 Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Thu, 25 Feb 2016 18:20:01 +0800 Subject: [PATCH 161/582] name1e5s translating... --- .../20160223 BeeGFS Parallel File System Goes Open Source.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md b/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md index d65285a222..f563483358 100644 --- a/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md +++ b/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md @@ -1,3 +1,4 @@ +name1e5s translating BeeGFS Parallel File System Goes Open Source ================================================== From 35256e338657d15663937d2b3747fbafe1fce9cb Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Thu, 25 Feb 2016 19:39:57 +0800 Subject: [PATCH 162/582] [translated]BeeGFS Parallel File System Goes Open Source --- ...S Parallel File System Goes Open Source.md | 33 ------------------- ...S Parallel File System Goes Open Source.md | 32 ++++++++++++++++++ 2 files changed, 32 insertions(+), 33 deletions(-) delete mode 100644 sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md create mode 100644 translated/tech/20160223 BeeGFS Parallel File System Goes Open Source.md diff --git a/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md b/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md deleted file mode 100644 index f563483358..0000000000 --- a/sources/tech/20160223 BeeGFS Parallel File System Goes Open Source.md +++ /dev/null @@ -1,33 +0,0 @@ -name1e5s translating -BeeGFS Parallel File System Goes Open Source -================================================== - -![](http://insidehpc.com/wp-content/uploads/2015/08/beegfs.jpg) - -Today ThinkParQ announced that the complete [BeeGFS parallel file system][1] is now available as open source. Developed specifically for performance-critical environments, the BeeGFS parallel file system was developed with a strong focus on easy installation and high flexibility, including converged setups where storage servers are also used for compute jobs. By increasing the number of servers and disks in the system, performance and capacity of the file system can simply be scaled out to the desired level, seamlessly from small clusters up to enterprise-class systems with thousands of nodes. - -The first official announcement to make the BeeGFS sources available was made at the International Supercomputing Conference 2013. This was in the context of the European exascale project [DEEP-ER][2], where several new approaches to address extreme I/O requirements are being designed and implemented. For exascale systems, the different software and hardware layers have to work together very efficiently to achieve maximum scalability. Thus, making the sources of BeeGFS available is one logical step to enabling efficient integration of all layers of an exascale stack. - -“While some of our users are just happy with the fact that BeeGFS is so easy to install and doesn’t require much attention, others really want to understand exactly what is happening under the hood to further optimize the runtime of their applications, improve their monitoring or port it to other platforms like BSD,” said Sven Breuner, CEO of ThinkParQ, the company behind BeeGFS “Also, being able to build BeeGFS for non-x86 architectures like ARM and Power is another important aspect that the community has been waiting for.” - -The steady advances in ARM technology indeed make it a more and more interesting technology to look at for future procurements. Thus, the BeeGFS team is also participating in [ExaNeSt][3], a new European exascale project, which is specifically focused on getting the ARM ecosystem ready for performance-critical workloads. “Although BeeGFS can already run out of the box on ARM systems today, this project will give us the opportunity to make sure that we can deliver the maximum performance on this architecture as well.”, adds Bernd Lietzow, BeeGFS head for ExaNeSt. - -With a rather compact code base of about 25K lines of C++ code for the distributed metadata service and about 15K lines of C++ code for the distributed storage service, BeeGFS should be relatively easy to understand and extend, not only for senior programmers, but also for University students interested in file system research. On GitHub, there are already a number of projects listed related to BeeGFS, e.g. for browser-based monitoring or Docker integration. - -In related news, the [BeeGFS User Meeting][4] will take place May 18-19 in Kaiserslautern, Germany. - ------------------------------------------------------------------------------------------ - -via: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+InsideHPC+%28insideHPC.com%29 - -作者:[staff][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://insidehpc.com/author/staff/ -[1]: http://www.beegfs.com/ -[2]: http://www.deep-project.eu/deep-project/EN/Home/home_node.html -[3]: http://www.exanest.eu/ -[4]: http://www.beegfs.com/content/user-meeting-2016/ diff --git a/translated/tech/20160223 BeeGFS Parallel File System Goes Open Source.md b/translated/tech/20160223 BeeGFS Parallel File System Goes Open Source.md new file mode 100644 index 0000000000..2aeadbc3fb --- /dev/null +++ b/translated/tech/20160223 BeeGFS Parallel File System Goes Open Source.md @@ -0,0 +1,32 @@ +并行文件系统 BeeGFS 现已开源 +================================================== + +![](http://insidehpc.com/wp-content/uploads/2015/08/beegfs.jpg) + +今天(2月23日) ThinkParQ 宣布完整的 [BeeGFS 并行文件系统][1] 的源码现已开源。由于 BeeGFS 是专为要求性能的环境开发的,所以它在开发时十分注重安装的简单以及高度的灵活性,包括融合了在存储服务器同时做计算任务时需要的设置。随着系统中的服务器以及存储设备的增加,文件系统的容量以及性能将是需求的拓展点,无论是小型集群还是多达上千个节点的企业级系统。 + +第一次官方声明开放 BeeGFS 的源码是在 2013 年的国际超级计算大会上发布的。这个声明是在欧洲的百亿亿次级超算项目 [DEEP-ER][2] 的背景下做出的,在这个项目里为了得到更好的 I/O 要求,一些微小的进步被设计并应用。对于运算量高达百亿亿次的系统,不同的软硬件必须有效的协同工作才能得到最佳的拓展性。因此,开源 BeeGFS 是让一个百亿亿次的集群的所有组成部分高效的发挥作用的一步。 + +“当我们的一些用户对于 BeeGFS 十分容易安装并且不用费心管理而感到高兴时,另外一些用户则想要知道它是如何运行的以便于更好的优化他们的应用,使得他们可以监控它或者把它移植到其他的平台上,比如 BSD,” Sven Breuner 说道,他是 ThinkParQ (BeeGFS 背后的公司)的 CEO,“而且,把 BeeGFS 移植到其他的非 X86 架构,比如 ARM 或者 Power,也是社区等着要做的一件事。” + +对于未来的采购来说,ARM 技术的稳步发展确实使得它成为了一个越来越有趣的技术。因此, BeeGFS 的团队也参与了 [ExaNeSt][3],一个来自欧洲的新的百亿亿次级超算计划,这个计划致力于使 ARM 的生态能为高性能的工作负载做好准备。“尽管现在 BeeGFS 在 ARM 处理器上可以算是开箱即用,这个项目也将给我们机会来证明我们在这个架构上也能完全发挥其性能。”, Bernd Lietzow , BeeGFS 中 ExaNeSt 的领导者补充道。 + + 作为一个有着 25 K 行 C++ 代码的元数据服务以及约 15 K 行存储服务的项目,BeeGFS 相对比较容易理解和拓展,不只是对于大神,对于对文件系统有兴趣的大学生也是这样。在 GitHub 上已经有很多的为 BeeGFS 写的项目,比如基于浏览器的监控或者 Docker 一体化。 + + 有关新闻显示, [BeeGFS 用户大会][4]将于 5 月 18-19 日在德国凯泽斯劳滕举行。 + + ----------------------------------------------------------------------------------------- + +via: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+InsideHPC+%28insideHPC.com%29 + +作者:[staff][a] +译者:[name1e5s](https://github.com/name1e5s) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://insidehpc.com/author/staff/ +[1]: http://www.beegfs.com/ +[2]: http://www.deep-project.eu/deep-project/EN/Home/home_node.html +[3]: http://www.exanest.eu/ +[4]: http://www.beegfs.com/content/user-meeting-2016/ From 4b95d3fa5b77ec6ed6112aab628885bd3c75c0ed Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 25 Feb 2016 20:10:02 +0800 Subject: [PATCH 163/582] =?UTF-8?q?20160225-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d open source experience to your resume.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20160225 How to add open source experience to your resume.md diff --git a/sources/tech/20160225 How to add open source experience to your resume.md b/sources/tech/20160225 How to add open source experience to your resume.md new file mode 100644 index 0000000000..73e22c2b8b --- /dev/null +++ b/sources/tech/20160225 How to add open source experience to your resume.md @@ -0,0 +1,91 @@ +How to add open source experience to your resume +================================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/lightning-test.png?itok=aMceg0Vg) + + +In this article, I'll share my technique for leveraging open source contributions to stand out as a great candidate for a job in the technology field. + +No goal can be accomplished without first being set. Before jumping into a new commitment or spending the evening overhauling your resume, it pays to clearly define the traits of the job you're seeking. Your resume is a piece of persuasive writing, so you have to know your audience for it to reach its full potential. Your resume's audience is anyone with the need for your skills and the budget to hire you. When editing, read your resume while imagining what it's like to be in their position. Do you look like a candidate that you would hire? + +I personally find it helpful to make a list of the key traits that the ideal candidate for my target job displays. I gather this list from a combination of personal experience, reading job postings, and asking colleagues in similar roles. LinkedIn and conferences are great places to find people happy to offer this sort of advice. Many people enjoy talking about themselves, and inviting them to tell part of their own story to help you expand your knowledge makes everyone feel good. As you talk to others about their career paths, you'll gain insights not only into how to land the jobs you want, but also into which traits or behaviors correspond to ending up in situations you'd rather avoid. + +For example, the list of key traits for a junior role might look like this: + +### Technical: + +- Experience with CI, Jenkins preferred + +- Strong scripting background in Python and Ruby + +- Familiarity with Eclipse IDE + +- Basic Git and Bash + +### Personal: + +- Self-directed learner + +- Clear communication and documentation skills + +- Experience working on a multi-person development team ("team player") + +- Familiarity with issue tracker workflow + +### Apply anyway + +Remember, you don't have to meet every single criterion listed in a job description to get an interview. + +The job description describes whoever left the role, and if you start out knowing everything you've likely signed yourself up for a few years that don't challenge or expand your skill set. If you're nervous about missing a particular technology on the list, do some research into it to see whether comparable skills from another experience would apply. For example, someone who's never used [Jenkins][1] might still understand the principles of continuous integration testing from working on a project that uses [Buildbot][2] or [Travis CI][3]. + +If you're applying at a larger company, they probably have an entire department and comprehensive screening process to make sure they don't hire any candidate unable to succeed in a role. That means it's your job to apply and their job to decide whether to reject you. Don't prematurely reject yourself from the job by refusing to apply. + +Now you have an idea of what job you want and what skills you'll need to impress your interviewers. The next steps to take will vary based on how much experience you've already got. + +### Tailoring existing involvement + +Start by making a list of all the projects you've been involved with in the past few years. One way to get a quick list of things you've worked on lately is to navigate to the **Repositories** tab of your GitHub profile and filter the list by clicking on **Forks**. Additionally, look down your [Organizations][4] list for places you might have been engaging in leadership roles. If you already have a resume, make sure you've included everything from these lists under experience. + +Consider any IRC channel where you have special permissions as a potential leadership experience. Check your Meetup and Eventbrite accounts and add any events that you organize or volunteer at to your list. Skim your calendar for the past year and note any volunteering, mentoring, or public speaking engagements. + +Now for the hard part: Map the list of required skills onto the list of experiences. I like to assign a letter or number to each trait needed for the job, then mark the same symbol next to every piece of experience or involvement where you demonstrated the trait. When in doubt, claim it anyway—your problem is more likely a reluctance to brag than actual incompetence. + +This is the point in the process at which resume writers are often fettered by reluctance to risk overselling their own skills. It often helps to re-frame the question as: "Did someone who organized a meetup show leadership and planning skills?" Rather than: "Did I personally show these skills when I organized that meetup?". + +If you've been sufficiently thorough at figuring out where your free time has gone for the past year or two and you code a lot, you might now be facing a surprising problem: Too many items to fit on a single-page resume! If anything on your list of experiences didn't demonstrate any of the skills you're trying to showcase, cross it off. If an item demonstrates few skills and you don't have any stories that you enjoy telling about it, cross it off. If this abridged list of things you've done still won't fit in the format of a resume, prioritize the experiences from which you gained a relevant story or extensive experience with a desired technology. + +At this point, it should be obvious if you need a better piece of experience to hone a particular skill. Consider using an issue aggregator like OpenHatch to find an open source project where you build and practice your skills with the tool or technology that you're missing. + +### Make your resume beautiful + +A resume's beauty comes from conciseness, clarity, and layout. Each piece of experience should be accompanied by enough information for a reader to immediately know why you included it, but no more. Each type of information should be formatted consistently throughout the document—it's distracting to have some dates italicized or right-aligned and others not. + +Typeset your resume using a tool that makes these goals easy to achieve. I enjoy using [LaTeX][5], since its macro system makes visual consistency easy and most interviewers recognize it immediately. Your tool of choice might be [LibreOffice][6] or HTML, depending on your skills and how you want to distribute your resume. + +Remember that a digitally submitted resume might be scanned for keywords, so it can help to use the same acronyms as the job posting when describing your experiences. To make your resume easy for your interviewer to use, place the most important information first. + +Coders often struggle to quantify balance and layout when typesetting a document. My favorite technique for stepping back and assessing whether my document's whitespace is in the right place is to fullscreen the PDF or print it out, then look at it in a mirror. If you're using LibreOffice Writer, save a copy of your resume then change the font to that of a language you can't read. Both of these techniques forcibly pull you out of reading the content, and allow you to see the overall layout of the document in a new light. They take you from a "That sentence is poorly worded!" critique to noticing things like "It looks funny to have only a single word on that line." + +Finally, double check that your resume displays correctly in the media where it will be seen. If you're distributing it as a web page, test it at different screen widths in multiple browsers. If it's a PDF, open it on your phone or a friend's computer to make sure all the fonts it needs are available. + +### Next steps + +Finally, don't let the content that you worked so hard on for your resume go to waste! Mirror it to your LinkedIn account—complete with the buzzwords from the job posting—and don't be surprised if recruiters start reaching out to you. Even if the jobs they're describing aren't a good fit right now, you can leverage their time and interest to get feedback on what's working well about your resume and what isn't. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/business/16/2/add-open-source-to-your-resume + +作者:[edunham][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/edunham +[1]: https://jenkins-ci.org/ +[2]: http://buildbot.net/ +[3]: https://travis-ci.org/ +[4]: https://github.com/settings/organizations +[5]: https://www.latex-project.org/ +[6]: https://www.libreoffice.org/download/libreoffice-fresh/ From 38754c8fb275cebc3ecd1858b83bf342c8f293bc Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 25 Feb 2016 20:16:09 +0800 Subject: [PATCH 164/582] =?UTF-8?q?20160225-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...he Zika virus with rapid, open research.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md diff --git a/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md b/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md new file mode 100644 index 0000000000..e25df9c008 --- /dev/null +++ b/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md @@ -0,0 +1,27 @@ +Can we tackle the Zika virus with rapid, open research? +============================================================ + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/OSDC_LifeScience_OpenScience_520x292_12268077_0614MM.png?itok=3ZD2Mce9) + +One of the major issues with the Zika virus is that so little is known about it. That means that a lot of research has to be done very quickly. + +The Zika virus is at the heart of a global health emergency. It became a global health emergency after outbreaks began in 2015, and has possible links to birth defects. When the virus was first discovered in the late forties, human infections had been observed as early as 1952 according to Wikipedia. + +On February 10, the open journal [PLoS released a statement][1] on data sharing in public emergencies. Then, an article in the research journal F1000, [Open drug discovery for the Zika virus][2], discussed the status of Zika along with the need to conduct research openly. The statement from PLoS lists more than 30 important organizations who have aligned around the open dissemination of data as the virus is studied. And the World Health Organization has implemented special provisions that submissions to the WHO Bulletin now be made available under a [Creative Commons license][3]. + +Rapid publication, unrestricted reuse, and emphasizing dissemination of research are strategic steps that the open science community has been pushing for in all scientific research. Seeing a start with health emergencies that require our immediate attention is encouraging. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/2/how-rapid-open-science-could-change-game-zika-virus + +作者:[Marcus D. Hanwell][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/mhanwell +[1]: http://blogs.plos.org/plos/2016/02/statement-on-data-sharing-in-public-health-emergencies/ +[2]: http://f1000research.com/articles/5-150/v1 +[3]: https://creativecommons.org/licenses/by/3.0/igo/ From 32159443d8119de4978d91e53530801d121e8dde Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 25 Feb 2016 20:28:03 +0800 Subject: [PATCH 165/582] =?UTF-8?q?20160225-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160225 The Tao of project management.md | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 sources/tech/20160225 The Tao of project management.md diff --git a/sources/tech/20160225 The Tao of project management.md b/sources/tech/20160225 The Tao of project management.md new file mode 100644 index 0000000000..629bdaef36 --- /dev/null +++ b/sources/tech/20160225 The Tao of project management.md @@ -0,0 +1,176 @@ +The Tao of project management +================================= + + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BUSINESS_orgchart1.png?itok=DGsp6jB5) + +The [Tao Te Ching][1], [believed to have been written][2] by the sage [Lao Tzu][3] in the 6th century BCE, is among the most widely translated texts in existence. It has inspired everything from [religions][4] to [funny movies about dating][5], and authors have used it as a metaphor to explain all kinds of things (even [programming][6]). + +This text is what immediately comes to my mind when thinking about project management in open organizations. + +That might sound strange. But to understand where I'm coming from, you should start by reading *The Open Organization: Igniting Passion and Performance*, Red Hat president and CEO Jim Whitehurst's manifesto on corporate culture and the new leadership paradigm. In this book, Jim (with a little help from other Red Hatters) explains the difference between conventional organizations (a "top-down" approach, with decisions coming down from central command to employees motivated by promotion and pay) and open organizations (a bottom-up approach, with leaders focused on inspiring purpose and passion so employees are empowered to be and do their best). + +This concept—that employees in open organizations are motivated by passion, purpose, and engagement—plays directly into where I think project managers should focus. + +And to explain, I'll return to the *Tao Te Ching*. + +### Don't let your job title define you + +>The tao that can be told +>is not the eternal Tao +>The name that can be named +>is not the eternal Name. + +>The unnameable is the eternally real. +>Naming is the origin +>of all particular things. +[[1]][7] + +What exactly is project management? And what does a project manager do? + +As you might expect, part of being a project manager is managing projects: gathering requirements, managing stakeholder communication, setting priority, scheduling tasks, helping the team resolve blockers. Many institutions can teach you how to manage projects very well, and these are good skills to have. + +However, literally managing projects is only part of what project managers in open organizations do. These organizations require something more: Courage. If you're good at managing projects (or if you're good at any job, really), then you can start to feel safe in your routine. That's when you know you need to find the courage to take a risk. + +Do you have the courage to step outside of your comfort zone? The courage to ask important people challenging questions that might raise eyebrows, but that might also uncover a better way forward? The courage to identify the next thing that needs to be done—then the courage to go and do it? The courage to call out communication gaps and take initiative to fix them? The courage to try things? The courage to fail? + +The opening passage of the Tao Te Ching (which I cited above) suggests that words, labels, and names are limiting. That includes job titles. In open organizations, project managers don't just perform the rote tasks required to manage projects. They help teams accomplish the organization's mission, however defined. + +### Connect the right people + +>We join spokes together in a wheel, +>but it is the center hole +>that makes the wagon move. +[[11]][8] + +One of the most difficult lessons I had to learn as I transitioned into project management was that not having all the answers was perfectly acceptable, even expected. That was new for me. I like having all the answers. But as a project manager, my role is more about connecting people—so the ones who do have the answers can collaborate efficiently. + +This does not mean dodging responsibility or ownership. This means being comfortable saying, "I don't know, but I will find out for you," and closing that loop as quickly as possible. + +Picture a wagon wheel. Without the stability and direction provided by the center hole, the spokes would fall and the wheel collapse in on itself. Project managers in an open organization can help a team maintain forward momentum by bringing the right people together and cultivating the right discussions. + +### Trust your team + +>When the Master governs, the people +>are hardly aware that he exists. +>Next best is a leader who is loved. +>Next, one who is feared. +>The worst is one who is despised. +> +>If you don't trust the people, +>you make them untrustworthy. +> +>The Master doesn't talk, he acts. +>When his work is done, +>the people say, "Amazing: +>we did it, all by ourselves!" +[[17]][9] + +[Rebecca Fernandez][10] once told me that what differentiates leaders in open organizations is not the trust people have in them, but the trust they have in other people. + +Open organizations do a great job hiring smart people who are passionate about what their companies are doing. In order for them to do their best work, we have to give them what they need and then get out of their way. + +Here, I think the above passage from the Tao Te Ching speaks for itself. + +### Be effortless + +>The Master does nothing +>yet he leaves nothing undone. +>The ordinary man is always doing things, +>yet many more are left to be done. +[[38]][11] + +Do you know the type of person who is always extremely busy? The one who seems frazzled and stressed with too many things to do? + +Don't be that person. + +I know that's easier said than done. The thing that most helps me keep from being that person is remembering that we are all extremely busy. I don't have a single co-worker who is bored. + +But someone needs to be the calm in the middle of the storm. Someone needs to be the person who reassures the team that everything is going to be okay, that we'll find a way to get things done within the parameters dictated by reality and the number of business hours in a day (because that's the truth, and we have to). + +Be that person. + +What this passage of the Tao Te Ching says to me is that the person who's always talking about what she or he is doing has no time to actually do those things. If you can make your job seem effortless to those around you, then you're doing your job right. + +### Be a culture coach + +>When a superior man hears of the Tao, +>he immediately begins to embody it. +>When an average man hears of the Tao, +>he half believes it, half doubts it. +>When a foolish man hears of the Tao, +>he laughs out loud. +>If he didn't laugh, +>it wouldn't be the Tao. +[[41]][12] + +Last fall, I enrolled an MBA business ethics class with a bunch of federal employees. When I started describing my company's culture, values, and ethics framework, I got the direct impression that both my classmates and my professor thought I was a naive young lady with [a lot of lovely daydreams][13] about how companies should run. They told me things couldn't possibly be as they seemed. They said I should investigate further. + +So I did. + +And here's what I found: Things are exactly as they seem. + +In open organizations, culture matters. Maintaining that culture as an organization grows makes it possible to wake up and look forward to going to work in the morning. I (and other members of open organizations) don't want to "work to live," as my classmates described it. I need to feel a passion and purpose, to understand how the work I do on a daily basis directly contributes to something I believe in. + +As a project manager, you might think that your job has nothing to do with cultivating your company's culture on your team. However, it's your job to embody it. + +### Kaizen + +>In pursuit of knowledge, +>every day something is added. +>In the practice of the Tao, +>every day something is dropped. +>Less and less do you need to force things, +>until finally you arrive at non-action. When nothing is done, +>nothing is left undone. +[[48]][14] + +The general field of project management is too focused on the latest and greatest tools. But the answer to the question of which tool you should use is always the same: "the simplest." + +For example, I keep my running to-do list in a text file on my desktop because it serves its purpose without unnecessary distractions. Whatever tools, processes, and procedures you introduce to a team should increase efficiency and remove obstacles, not introduce additional complexity. So instead of focusing on the tools, focus on the problem(s) you're using those tools to solve. + +My favorite part of being a project manager in an Agile world is having the freedom to throw out what doesn't work. This is related to the concept of kaizen, or "continuous improvement." Don't be afraid to try and fail. Failing is the label we've put on the process of learning what works and what doesn't. But it's the only way to improve. + +The best processes arise organically. As a project manager, you can help your team by supporting them and not trying to force them into anything. + +### Practice + +>Some say that my teaching is nonsense. +>Others call it lofty but impractical. +>But to those who have looked inside themselves, +>this nonsense makes perfect sense. +>And to those who put it into practice, +>this loftiness has roots that go deep. +[[67]][15] + +I believe in what open organizations are doing. What open organizations are doing for the field of management is almost as important as the actual products and services they offer. We have an opportunity to lead by example, to inspire passion and purpose in others, to create working environments that inspire and empower. + +I encourage you to find ways to incorporate some of these ideas into your own projects and teams to see what happens. Learn about your organization's mission and how your projects contribute to it. Have courage, expect to try some things that won't work, and don't forget to share the lessons you learn with our community so we can continue to improve. + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/16/2/tao-project-management + +作者:[Allison Matlack][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/amatlack +[1]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html +[2]: https://en.wikipedia.org/wiki/Tao_Te_Ching +[3]: http://plato.stanford.edu/entries/laozi/ +[4]: https://en.wikipedia.org/wiki/Taoism +[5]: http://www.imdb.com/title/tt0234853/ +[6]: http://www.mit.edu/~xela/tao.html +[7]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#1 +[8]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#11 +[10]: https://opensource.com/users/rebecca +[11]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#38 +[12]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#41 +[13]: https://opensource.com/open-organization/15/9/reflections-open-organization-starry-eyed-dreamer +[14]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#48 +[15]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#67 + From 121d67ae26355c6ca30de530823bf33f060a3f6e Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 25 Feb 2016 22:22:41 +0800 Subject: [PATCH 166/582] =?UTF-8?q?=E9=80=89=E9=A2=98=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 选题模板.txt | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 选题模板.txt diff --git a/选题模板.txt b/选题模板.txt new file mode 100644 index 0000000000..fabd1f1dba --- /dev/null +++ b/选题模板.txt @@ -0,0 +1,41 @@ +选题标题格式: + + 原文日期 标题.md + +正文内容: + + 标题 + ======= + + ### 子一级标题 + + 正文 + + #### 子二级标题 + + 正文内容 + + ![](图片地址) + + ### 子一级标题 + + 正文内容 : I have a [dream][1]。 + + + -------------------------------------------------------------------------------- + + via: 原文地址 + + 作者:[作者名][a] + 译者:[译者ID](https://github.com/译者ID) + 校对:[校对者ID](https://github.com/校对者ID) + + 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + + [a]: 作者介绍地址 + [1]: 引文链接地址 + +说明: +1. 标题层级很多时从 “##” 开始 +2. 引文链接地址在下方集中写 + From 6f67b9d37e15e93874a9438b3930e87df86c102f Mon Sep 17 00:00:00 2001 From: GHLandy Date: Thu, 25 Feb 2016 22:47:02 +0800 Subject: [PATCH 167/582] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90]?= =?UTF-8?q?=2020160218=20Best=20Linux=20Desktop=20Environments=20for=20201?= =?UTF-8?q?6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...est Linux Desktop Environments for 2016.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 translated/tech/20160218 Best Linux Desktop Environments for 2016.md diff --git a/translated/tech/20160218 Best Linux Desktop Environments for 2016.md b/translated/tech/20160218 Best Linux Desktop Environments for 2016.md new file mode 100644 index 0000000000..b9306b79be --- /dev/null +++ b/translated/tech/20160218 Best Linux Desktop Environments for 2016.md @@ -0,0 +1,90 @@ +2016:如何选择 Linux 桌面环境 +============================================= + +![](http://www.linux.com/images/stories/66866/DE-2.png) + +Linux 创建了一个相对友好的环境,为我们提供了选择的可能。比方说,现代大多数的 Linux 发行版都提供不同桌面环境给我们来选择。在本文中,我将挑选一些你可能会在 Linux 中见到的相对较好的桌面环境来介绍。 + +## Plasma + +我认为,[KDE’s Plasma desktop](https://www.kde.org/workspaces/plasmadesktop/) 是最高级的桌面环境 (LCTT 译注:译者认为,没有什么是最好的,只有最合适的,毕竟每个人的喜好都不可能完全相同)。它是我见过功能最完善和定制性最高的桌面环境;在用户完全自主控制方面,即使是 Mac OS X 和 Windows 也无法与之比拟。 + +我爱 Plasma,因为它自带了一个非常好的文件管理器——Dolphin。而相对应 Gnome 环境,我更喜欢 Plasma 的原因就在于文件管理器。使用 Gnome 最大的痛苦就是,它的文件管理器——Files——使我无法完成一些基本任务,比如说,批量文件重命名操作。而这个操作对我来说相当重要,因为我喜欢拍摄,但 Gnome 却让我无法批量重命名这些图像文件。而使用 Dolphin 的话,这个操作就像在公园散步一样简单。 + +而且,你可以通过插件来增强 Plasma 的功能。Plasma 有大量的基础软件,如 Krita、Kdenlive、Calligra 办公套件、digiKam、Kwrite 以及由 KDE 社区开发维护的大量应用。 + +Plasma 桌面环境唯一的缺陷就是它默认的邮件客户端——Kmail。它的设置比较困难,我希望 Kmail 设置可以配置地址簿和日历。 + +包括 openSUSE 在内的多数主流发行版多使用 Plasma 作为默认桌面。 + +## GNOME + +[GNOME](https://www.gnome.org/) (GNU Network Object Model Environment,GNU 网络对象模型环境) 由 [Miguel de Icaza](https://en.wikipedia.org/wiki/Miguel_de_Icaza) 和 Federico Mena 在 1997 年的时候创立,这是因为 KDE 使用来 Qt 工具包,而这个工具包是使用专业许可证 (proprietary license) 发布的。和 KDE 不一样的是,GNOME 提供了大量的定制,它专注于让事情变得简单。因为 自身的简单性和易用性,GNOME 变得相当流行。而我认为 GNOME 之所以流行的原因在于,Ubuntu——使用 GNOME 作为默认桌面的主流 Linux 发行版之一——对其有着巨大的推动作用。 + +随着时代变化,GNOME 也需要作出相应的改变了。因此,开发者通过 GNOME 3 推出了 GNOME 3 Shell,从而引出它全新的设计规范。但这同时与 Canonical 的 Ubuntu 计划存在者一些冲突,所以 Canonical 为 GNOME 开发来叫做 Unity 的特有 Shell。最初,GNOME 3 Shell 因很多争议 (issues) 而困扰不已——最明显的是,升级之后会导致很多扩展无法正常工作。由于设计上的重大改版以及各种问题的出现,GNOME 便产生来很多分支,比如 Cinnamon 和 Mate 桌面。 + +也就是说,使得 GNOME 有趣的是,它针对触摸设备做了优化,所以,如果你有一台触屏笔记本电脑的话,GNOME 则是最合适你这台电脑的桌面环境。 + +在 3.18 版本中,GNOME 已经作出了一些令人印象深刻的改动。其中他们所做的最有趣的是集成了 Google Drive,用户可以把他们的 Google Drive 挂载为远程存储设备,这样就不必在使用浏览器来查看里边的文件来。我也很喜欢 GNOME 里边自带的那个优秀的邮件客户端,它带有日历和地址簿功能。尽管有这么多些优秀的特性,但它的文件管理器使我不再使用 GNOME ,因为我无法处理批量文件重命名。我会坚持使用 Plasma,一直到 GNOME 的开发者修复了这个小缺陷。 + +![](http://www.linux.com/images/stories/66866/DE-fig1.png) + +## Unity + +从技术上来说,[Unity](https://unity.ubuntu.com/) 并不是一个桌面环境,它只是 Canonical 为 Ubuntu 开发的一个图形化 Shell。Unity 运行于 GNOME 桌面之上,并使用很多 GNOME 的应用和工具。Ubuntu 团队分支了一些 GNOME 组件,以便更好的满足 Unity 用户的需求。 + +Unity 在 Ubuntu 故事集和 Unity 8 中扮演者重要角色,Canonical 公司正在努力将电脑桌面和移动世界结合到一起。Canonical 同时还为 Unity 开发了许多的有趣技术,比如 HUD (Head-up Display,平视显示)。他们还有一种独特的技术来然用户在镜片上的某范围找到特定内容。 + +即将发行的 Ubuntu 16.04,将会搭载 Unity 8,那时候用户就可以完全体验开发者为该开源软件添加的所有特性了。其中最大的争议就是,Unity 不再集成 Amazon Ads 和其他服务。即将发行的版本,虽然 Canonical 从 Dash 移除了 Amazon ads,但却默认保证了系统的隐私性。 + +## Cinnamon + +最初,[Cinnamon](https://en.wikipedia.org/wiki/Cinnamon_(software)) 由 [Linux Mint](http://www.linuxmint.com/) 开发 —— DistroWatch.com 上统计出来最流行的发行版。就像 Unity,Cinnamon 是 GNOME Shell 的一个分支。但最后进化为一个独立的桌面环境,这是因为 Linux Mint 的开发者分支了 GNOME 桌面中很多的组件到 Cinnamon,包括 Files ——以满足自身用户的需求。 + +由于 Linux Mint 基于普通版本的 Ubuntu,开发者仍需要去完成 Ubuntu 尚未完成的目标。结果,尽管前途光明,但 Cinnamon 却充满了 Bugs 和问题。随着 17.x 本版的发布,Linux Mint 开始移动到 Ubuntu 的 LTS 版本上,从而他们可以专注于开发 Cinnamon 的核心组件,而不必再去担心代码库。移动到 LTS 的好处是,Cinnamon 变得非常稳定并且基本没有 Bugs 出现。现在,开发者已经开始向桌面环境中添加更多的新特性来。 + +对于那些更喜欢在 GNOME 基础上有一个很好的类 Windows 用户界面的用户来说,Cinnamon 是他们最好的桌面环境。 + +## MATE Desktop + +[MATE desktop](http://mate-desktop.com/) 同样是 GNOME 的一个分支,然而,它并不像 Cinnamon 那样由 GNOME 3 分支,而是现在已经没有人维护的 GNOME 2 代码库的一个分支。MATE desktop 中的一些开发者并不喜欢 GNOME 3 并且想要“继续坚持” GNOME 2,所以他们使用这个代码库来创建来 MATE。为避免和 GNOME 3 的冲突,他们重命名了全部的包:Nautilus 改为 Caja、Gedit 改为 Pluma 以及 Evince 改为 Atril 等。 + +尽管 MATE 延续了 GNOME 2,但这并不意味着他们使用过时的技术;相反,他们使用了更新的技术来提供一个现代的 GNOME 2 体验。 + +拥有相当高的资源效率才是 MATE 最令人印象深刻之处。你可将它运行在老旧硬件或者很少更新的强大硬件上,如树梅派 (Raspberry Pi) 或者 Chromebook Flip。使得它更有趣的是,把它运行在一些强大的硬件上,可以节省大多数的资源给其他应用,而桌面环境本身只占用很少的资源。 + +## LXQt + +[LXQt](http://lxqt.org/) 继承了 LXDE ——最轻量级的桌面环境之一。它融合了 LXDE 和 Razor-Qt 两个开源项目。LXQt 的首个可用本版 V 0.9 发布于 2015 年。最初,开发者使用了 Qt4 但向下兼容,之后为了加快开发速度,他们移动到 Qt5 和 KDE 框架上。我也在自己的 Arch 系统上尝试使用了 LXQt,它的确是一个非常好的轻量级桌面环境。但在完全继承 LXDE 之前,LXQt 仍有一段很长的路需要走。 + +## Xfce + +[Xfce](http://www.xfce.org/) 早于 KDE 桌面环境,它是最古老和最轻量级的桌面环境。Xfce 的最新版本是 4.15,发布于 2015 年,使用了诸如 GTK + 3 的大量的现代科技。很多发行版都使用了 Xfce 环境以满足特定需求,比如 Ubuntu Studio ——与 MATE 类似——尽量节省系统资源给其他的应用。并且,许多的著名的 Linux 发行版——包括 Manjaro Linux、PC/OS、Salix 和 Mythbuntu ——都把它作为默认桌面环境。 + +## Budgie + +[Budgie](https://solus-project.com/budgie/) 是一个新型的桌面环境,由 Solus Linux 团队开发和维护。Solus 是一个从零开始构建的新型发行版,而 Budgie 则是它的一个核心组件。Budgie 使用了大量的 GNOME 组件,从而提供一个华丽的用户界面 (UI)。由于没有该桌面环境的更多信息,我特地联系了 Solus 的核心开发者—— Ikey Doherty。他解释说:“我们搭载了自己的桌面环境—— Budgie。与其他桌面环境不同的是,Budgie 并不是其他桌面的一个分支,它的目标是侧底融入到 GNOME 协议栈之中。它完全从零开始编写,并特意的设计来迎合 Solus 提供的体验。我们会尽可能的和 GNOME 的上游团队协同工作,修复 Bugs,并提倡和支持他们的工作”。 + +## Pantheon + +我想,[Pantheon](https://elementary.io/) 不需要特别介绍了吧,那个优美的 elementary OS 就使用它作为桌面。类似于 Budgie,很多人都认为 Pantheon 也不是 GNOME 的一个分支。elementary OS 团队大多拥有良好的设计背景,所以他们会近距离关注每一个细节,这使得 Pantheon 成为一个非常优美的桌面环境。在某个瞬间,它可能缺少像 Plasma 等桌面中的某些特性,但开发者实际上是尽其所能的去坚持设计原则。 + +![](http://www.linux.com/images/stories/66866/DE-3.png) + +## 结论 + +当我写完本文后,我突然意识到来开源和 Linux 的重大好处。总有一个发行版本适合你。就像 Jon “maddog” Hall 在最近的 SCaLE 14 上说的那样:“是的,现在有 300 多个 Linux 发行版。我可以一个一个去尝试,然后坚持使用我最喜欢的那一个”。 + +所以,尽情享受 Linux 的多样性吧,最后使用最合你意的那一个。 + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/software/applications/881107-best-linux-desktop-environments-for-2016 + +作者:[Swapnil Bhartiya][a] +译者:[GHLandy](https://github.com/GHLandy) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/61003 From 316d10fc5f83baca12be63af1374be9a1948c4a4 Mon Sep 17 00:00:00 2001 From: GHLandy Date: Thu, 25 Feb 2016 22:48:52 +0800 Subject: [PATCH 168/582] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=B7=B2=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E5=AE=8C=E6=88=90=E7=9A=84=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...est Linux Desktop Environments for 2016.md | 92 ------------------- 1 file changed, 92 deletions(-) delete mode 100644 sources/tech/20160218 Best Linux Desktop Environments for 2016.md diff --git a/sources/tech/20160218 Best Linux Desktop Environments for 2016.md b/sources/tech/20160218 Best Linux Desktop Environments for 2016.md deleted file mode 100644 index 7aef79366b..0000000000 --- a/sources/tech/20160218 Best Linux Desktop Environments for 2016.md +++ /dev/null @@ -1,92 +0,0 @@ -GHLandy Translating - -Best Linux Desktop Environments for 2016 -============================================= - -![](http://www.linux.com/images/stories/66866/DE-2.png) - -Linux creates a friendly environment for choices and options. For example, there are many Linux-based distributions out there that use different desktop environments for you to choose from. I have picked some of the best desktop environments that you will see in the Linux world. - -## Plasma - -I consider [KDE’s Plasma desktop](https://www.kde.org/workspaces/plasmadesktop/) to be the most advanced desktop environment (DE). It’s the most feature-rich and customizable desktop environment that I have ever seen; even Mac OS X and Windows don’t come near Plasma when it comes to complete control by the user. - -I also love Plasma because of its awesome file manager, Dolphin. One reason I prefer Plasma over Gnome-based systems is the file manager. One of my biggest gripes with Gnome is that its file manager, Files, can’t handle basic tasks, such as batch-files renaming. That’s important for me because I take a lot of pictures, and Gnome makes it impossible for me to rename image files. On Dolphin, it’s a walk in the park. - -Then, you can add more functionality to Plasma with plugins. Plasma comes with some incredible software including Krita, Kdenlive, Calligra Office Suite, digiKam, Kwrite, and many other applications being developed by the KDE community. - -The only weakness of the Plasma desktop is its default email client, Kmail. It’s way too complicated to set up, and I also wish that setting up Kmail also configured the Address Book and Calendar. - -Plasma is the default desktop environment of many major distributions including openSUSE. - -## GNOME - -[GNOME](https://www.gnome.org/) (GNU Network Object Model Environment) was founded by [Miguel de Icaza](https://en.wikipedia.org/wiki/Miguel_de_Icaza) and Federico Mena in 1997 because KDE used Qt toolkit, which was released under a proprietary license. Unlike KDE, where there were numerous customizations, GNOME focused on keeping things simple. GNOME became extremely popular due to its simplicity and ease of use. A factor that I think contributed heavily to Gnome’s popularity was the fact that Ubuntu, one of the most popular Linux distributions, picked it as their default desktop environment. - -With changing times, GNOME needed a change. Therefore, with GNOME 3 the developers introduced the GNOME 3 Shell, which brought with it an entirely new design paradigm. That in turn led to some conflict with Canonical’s plans with Ubuntu, and they created their own shell for GNOME called Unity. Initially, GNOME 3 Shell was plagued by many issues -- most notably, the fact that extensions would stop working after updates. This major shift in design and the various problems then led to many forks of GNOME, such as the Cinnamon and Mate desktops. - -That said, what makes GNOME desktop interesting is that they are targeting touch-based devices, so if you have new laptops that come with a touchscreen, Gnome is the best suited DE for them. - -With version 3.18, GNOME has made some impressive improvements. The most interesting thing that they have done is Google Drive integration where users can mount their Google Drive as a remote file storage and work with files without having to use a web browser. I also love GNOME’s awesome integration of email client with calendar and address book. Despite all this awesomeness, however, the one thing that keeps me from using GNOME is its file manager, which can’t handle batch file renames. I will stick to Plasma until GNOME developers fix this problem. - -![](http://www.linux.com/images/stories/66866/DE-fig1.png) - -## Unity - -[Unity](https://unity.ubuntu.com/) is technically not a desktop environment, it’s a graphical shell developed by Canonical for Ubuntu. Unity runs on top of GNOME desktop environment and uses most stock GNOME apps and tools. The Ubuntu team has forked a few GNOME components to better suit the needs of Unity users. - -Unity plays a very important role in Ubuntu’s convergence story and with Unity 8, the company is bringing the desktop and mobile world together. Canonical has developed many intriguing technologies for Unity including HUD (Head-up Display). They also took a unique approach with lenses and scopes making it easy for users to find appropriate content. - -The upcoming release of Ubuntu, 16.04, is expected to ship with Unity 8 so users will get to experience all the work that developers have put into this open source software. One of the biggest criticisms with Unity was opt-out integration of Amazon ads and other services. With the upcoming release, though, Canonical is removing Amazon ads from Dash, making it a privacy-respecting OS by default. - -## Cinnamon - -[Cinnamon](https://en.wikipedia.org/wiki/Cinnamon_(software)) was initially developed by [Linux Mint](http://www.linuxmint.com/) -- the most popular distro on DistroWatch. Cinnamon is a fork of GNOME Shell, just like Unity. Later, however, it evolved into a desktop environment as Linux Mint developers forked many components of the GNOME desktop, including Files, to address the needs of their users. - -Because Linux Mint was based on regular releases of Ubuntu, the developers continued to chase the moving target that was Ubuntu. As a result, despite great promises Cinnamon was full of bugs and problems. With the 17.x release, however, Linux Mint developers moved to LTS edition of Ubuntu that allowed them to focus on core components of Cinnamon without having to worry about the base. As a result of this move, Cinnamon has become incredibly stable and bug free. The developers have started adding more features to the desktop. - -For those who prefer the good old Windows-like UI on top of the simplicity of GNOME, Cinnamon is the best desktop environment. - -## MATE Desktop - -The [MATE desktop](http://mate-desktop.com/) environment is also a fork of GNOME. However, unlike Cinnamon, it’s not a fork of GNOME 3; instead it’s a fork of GNOME 2 codebase, which is not unmaintained. A few developers didn’t like Gnome 3 and wanted to “continue” GNOME 2, so they took the codebase and created MATE. The MATE project forked many components of the GNOME project and created a few from scratch. To avoid any conflict with GNOME 3, they renamed all their packages: Nautilus become Caja, Gedit became Pluma, Evince became Atril, and so on. - -Although MATE is a continuation of GNOME 2, that doesn’t mean they are using old and obsolete technologies; they are using newer technologies to offer a modern GNOME 2 experience. - -What makes MATE an impressive desktop environment is that it’s extremely resource efficient. You can run it on older hardware or newer less powerful hardware, such as Raspberry Pi or Chromebook Flip. What’s makes it even more interesting is that using it on powerful systems frees most system resources for applications instead of the resources being consumed by the desktop environment itself. - -## LXQt - -[LXQt](http://lxqt.org/) is the successor of LXDE, one of the most lightweight desktop environments. It’s a merger of two open source projects LXDE and Razor-Qt. The first usable version of LXQt (v 0.9) was released in 2015. Initially, the developers used Qt4 but then all compatibility with it was dropped, and they moved to Qt5 and KDE Frameworks 5 for speedy development. I have tried LXQt on my Arch systems, and its a great lightweight desktop environment, but it has a long way to go before it becomes the rightful successor of LXDE. - -## Xfce - -[Xfce](http://www.xfce.org/) predates the KDE desktop environment. It is one of the oldest and lightest desktop environments around. The latest release of Xfce is 4.15, which was released in 2015 and uses modern technologies like GTK+ 3. Xfce is used by many special purpose distributions, such as Ubuntu Studio, because -- much like MATE -- it frees most system resources for applications. It’s also the default desktop environment of many notable Linux distributions including Manjaro Linux, PC/OS, Salix, and Mythbuntu. - -## Budgie - -[Budgie](https://solus-project.com/budgie/) is a new desktop environment being developed by the Solus Linux team. Solus is new Linux distribution that’s being developed from scratch, and Budgie is a core component of it. Budgie uses many GNOME components and offers a minimalistic UI. Because there’s not much information about the new desktop, I talked to the core developer of Solus, Ikey Doherty, and he explained, “We ship our own desktop, the Budgie Desktop. Unlike some other desktops, this is not a fork, rather it aims for full integration into the GNOME stack. It's written from scratch, and is specifically designed to cater for the experience Solus is offering. We work with upstream GNOME here as much as we can, contributing fixes, and advocate and support their work.” - -## Pantheon - -[Pantheon](https://elementary.io/) needs no introduction, it’s the desktop environment powering the lovely Linux distribution elementary OS. Similar to Budgie, Pantheon is not a fork of GNOME as many may assume. elementary OS team comes from design background so they pay very close attention to minute details, as a result Pantheon is extremely polished desktop environment. At the moment, it may lack many feature found in DEs like Plasma, but the developers are taking their time in order to stick to the design principle. - -![](http://www.linux.com/images/stories/66866/DE-3.png) - -## Conclusion - -As I went through this story, I realized the awesomeness of open source and Linux. There is something for everyone. As Jon “maddog” Hall said during the latest SCaLE 14, “Yes, there are 300 Linux distributions. I can try them and stick to the one that I like!” - -So, enjoy this diversity and use the one that floats your boat! - ------------------------------------------------------------------------------- - -via: http://www.linux.com/news/software/applications/881107-best-linux-desktop-environments-for-2016 - -作者:[Swapnil Bhartiya][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.linux.com/community/forums/person/61003 From 455c2fae1ad9c0cf5c597da90e8a47e4d944b485 Mon Sep 17 00:00:00 2001 From: cposture Date: Fri, 26 Feb 2016 14:51:27 +0800 Subject: [PATCH 169/582] Data Structures in the Linux Kernel --- sources/tech/20151123 Data Structures in the Linux Kernel.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20151123 Data Structures in the Linux Kernel.md b/sources/tech/20151123 Data Structures in the Linux Kernel.md index 187b3ce9cd..edc4c1a5a7 100644 --- a/sources/tech/20151123 Data Structures in the Linux Kernel.md +++ b/sources/tech/20151123 Data Structures in the Linux Kernel.md @@ -1,3 +1,4 @@ +【Translating By cposture 2016-02-26】 Data Structures in the Linux Kernel ================================================================================ From 86223bf367d29aa12b2281aa857f1b0c8dd019f9 Mon Sep 17 00:00:00 2001 From: cposture Date: Fri, 26 Feb 2016 15:08:36 +0800 Subject: [PATCH 170/582] Translaing by cposture-How to add open source experience to your resume --- .../20160225 How to add open source experience to your resume.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160225 How to add open source experience to your resume.md b/sources/tech/20160225 How to add open source experience to your resume.md index 73e22c2b8b..eee0d6aa23 100644 --- a/sources/tech/20160225 How to add open source experience to your resume.md +++ b/sources/tech/20160225 How to add open source experience to your resume.md @@ -1,3 +1,4 @@ +【Translating by cposture 2016-02-25】 How to add open source experience to your resume ================================================== From 1fc20642e29479ec1a947ce6b6d4663d13207399 Mon Sep 17 00:00:00 2001 From: runningwater Date: Fri, 26 Feb 2016 15:57:18 +0800 Subject: [PATCH 171/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=AD=20by=20runn?= =?UTF-8?q?ingwater?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/20160225 The Tao of project management.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20160225 The Tao of project management.md b/sources/tech/20160225 The Tao of project management.md index 629bdaef36..a8de86ae0b 100644 --- a/sources/tech/20160225 The Tao of project management.md +++ b/sources/tech/20160225 The Tao of project management.md @@ -1,3 +1,4 @@ +(翻译中 by runningwater) The Tao of project management ================================= @@ -153,7 +154,7 @@ I encourage you to find ways to incorporate some of these ideas into your own pr via: https://opensource.com/open-organization/16/2/tao-project-management 作者:[Allison Matlack][a] -译者:[译者ID](https://github.com/译者ID) +译者:[runningwater](https://github.com/runningwater) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d97cd027939b2425f9db4c2b0ce9dad0a8e0594a Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Fri, 26 Feb 2016 19:14:25 +0800 Subject: [PATCH 172/582] name1e5s translating... --- ...224 Can we tackle the Zika virus with rapid, open research.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md b/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md index e25df9c008..d243496585 100644 --- a/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md +++ b/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md @@ -1,3 +1,4 @@ +name1e5s translating Can we tackle the Zika virus with rapid, open research? ============================================================ From 7fad6c6a8c6b147a846bb273ddcfc61c17c1f22f Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Fri, 26 Feb 2016 20:04:33 +0800 Subject: [PATCH 173/582] [Translated]20160224 Can we tackle the Zika virus with rapid, open research --- ...he Zika virus with rapid, open research.md | 28 ------------------- ...he Zika virus with rapid, open research.md | 27 ++++++++++++++++++ 2 files changed, 27 insertions(+), 28 deletions(-) delete mode 100644 sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md create mode 100644 translated/tech/20160224 Can we tackle the Zika virus with rapid, open research.md diff --git a/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md b/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md deleted file mode 100644 index d243496585..0000000000 --- a/sources/tech/20160224 Can we tackle the Zika virus with rapid, open research.md +++ /dev/null @@ -1,28 +0,0 @@ -name1e5s translating -Can we tackle the Zika virus with rapid, open research? -============================================================ - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/OSDC_LifeScience_OpenScience_520x292_12268077_0614MM.png?itok=3ZD2Mce9) - -One of the major issues with the Zika virus is that so little is known about it. That means that a lot of research has to be done very quickly. - -The Zika virus is at the heart of a global health emergency. It became a global health emergency after outbreaks began in 2015, and has possible links to birth defects. When the virus was first discovered in the late forties, human infections had been observed as early as 1952 according to Wikipedia. - -On February 10, the open journal [PLoS released a statement][1] on data sharing in public emergencies. Then, an article in the research journal F1000, [Open drug discovery for the Zika virus][2], discussed the status of Zika along with the need to conduct research openly. The statement from PLoS lists more than 30 important organizations who have aligned around the open dissemination of data as the virus is studied. And the World Health Organization has implemented special provisions that submissions to the WHO Bulletin now be made available under a [Creative Commons license][3]. - -Rapid publication, unrestricted reuse, and emphasizing dissemination of research are strategic steps that the open science community has been pushing for in all scientific research. Seeing a start with health emergencies that require our immediate attention is encouraging. - --------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/2/how-rapid-open-science-could-change-game-zika-virus - -作者:[Marcus D. Hanwell][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/mhanwell -[1]: http://blogs.plos.org/plos/2016/02/statement-on-data-sharing-in-public-health-emergencies/ -[2]: http://f1000research.com/articles/5-150/v1 -[3]: https://creativecommons.org/licenses/by/3.0/igo/ diff --git a/translated/tech/20160224 Can we tackle the Zika virus with rapid, open research.md b/translated/tech/20160224 Can we tackle the Zika virus with rapid, open research.md new file mode 100644 index 0000000000..8ed74fc15f --- /dev/null +++ b/translated/tech/20160224 Can we tackle the Zika virus with rapid, open research.md @@ -0,0 +1,27 @@ +我们能通过快速的,开放的研究战胜寨卡病毒吗? +============================================================ + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/OSDC_LifeScience_OpenScience_520x292_12268077_0614MM.png?itok=3ZD2Mce9) + +关于寨卡病毒,最主要的问题就是我们对于它了解的太少了。这意味着我们需要尽快对它作出很多研究。 + +寨卡病毒现已严重威胁到世界人民的健康。在 2015 年爆发之后,它就成为了全球卫生的紧急状况,并且这个病毒也可能与儿童的出生缺陷有关。根据维基百科,在这个病毒在 40 年代末期被发现以后,它对于人类的影响早在 1952 年就被观测到了。 + +在 2 月 10 日,开放杂志 PLoS [发布了一个声明][1],这个是声明是关于有关公共公众紧急状况的信息的共享。在此之后,刊登在开放期刊 F1000 的一篇文章 [开始了对于能治疗寨卡病毒的药物的研究][2],它开放的讨论寨卡病毒的状况以及对它进行研究的需要。那个来自 PLoS 的声明列出了超过 30 个开放了对于寨卡病毒的研究进度的数据的重要组织。并且世界卫生组织实施了对于提交到他们那里的资料的特别规定使得在一个[创作共用许可证下][3]公布。 + +快速公布,无限制的重复利用,以及强调研究结果的传播是开放科研组织把他们的研究推出的战略性一步。看到一个需要我们给予关注的紧急状况的研究的开端是很令人受鼓舞的。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/2/how-rapid-open-science-could-change-game-zika-virus + +作者:[Marcus D. Hanwell][a] +译者:[name1e5s](https://github.com/name1e5s) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/mhanwell +[1]: http://blogs.plos.org/plos/2016/02/statement-on-data-sharing-in-public-health-emergencies/ +[2]: http://f1000research.com/articles/5-150/v1 +[3]: https://creativecommons.org/licenses/by/3.0/igo/ From 3a249757c99e6c40adcc2bc39acacbd964d5c66f Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Fri, 26 Feb 2016 20:22:12 +0800 Subject: [PATCH 174/582] name1e5s translating... --- sources/talk/20151019 Gaming On Linux--All You Need To Know.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/talk/20151019 Gaming On Linux--All You Need To Know.md b/sources/talk/20151019 Gaming On Linux--All You Need To Know.md index 332136112a..6618b8302d 100644 --- a/sources/talk/20151019 Gaming On Linux--All You Need To Know.md +++ b/sources/talk/20151019 Gaming On Linux--All You Need To Know.md @@ -1,3 +1,4 @@ +name1e5s translating Gaming On Linux: All You Need To Know ================================================================================ ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Gaming-on-Linux.jpeg) From fd5421db9660dec797b7723f468be56263181e84 Mon Sep 17 00:00:00 2001 From: struggling <630441839@qq.com> Date: Sat, 27 Feb 2016 09:12:13 +0800 Subject: [PATCH 175/582] Delete 20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md --- ...ll MariaDB 10 on CentOS 7 CPanel Server.md | 327 ------------------ 1 file changed, 327 deletions(-) delete mode 100644 sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md diff --git a/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md b/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md deleted file mode 100644 index ccd14d1410..0000000000 --- a/sources/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md +++ /dev/null @@ -1,327 +0,0 @@ -translation by strugglingyouth -How to Install MariaDB 10 on CentOS 7 CPanel Server -================================================================================ - -MariaDB is a enhanced open source and drop-in replacement for MySQL. It is developed by MariaDB community and available under the terms of the GPL v2 license. Software Security is the main focus for the MariaDB developers. They maintain its own set of security patches for each MariaDB releases. When any critical security issues are discovered, the developers introduces a new release of MariaDB to get the fix out as soon as possible. - -MariaDB is always up-to-date with the latest MySQL releases. It is highly compatible and works exactly like the MySQL. Almost all commands, data, table definition files, Client APIs, protocols, interfaces, structures, filenames, binaries, ports, database storage locations etc are same as the MySQL. It isn't even needed to convert databases to switch to MariaDB. - -### Advantages of MariaDB ### - -- Truly Open source -- More quicker and transparent security releases -- Highly Compatible with MySQL -- Improved Performance -- More storage engines compared to MySQL - -In this article, I provides guidelines on how to upgrade MySQL 5.5 to the latest MariaDB on a CentOS 7 CPanel server. Let's walk through the Pre-installation steps. - -### Pre-requisites: ### - -#### 1. Stop current MySQL Service #### - - root@server1 [/var/# mysql - Welcome to the MySQL monitor. Commands end with ; or \g. - Your MySQL connection id is 5859 - Server version: 5.5.47-cll MySQL Community Server (GPL) - - Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. - - Oracle is a registered trademark of Oracle Corporation and/or its - affiliates. Other names may be trademarks of their respective - owners. - - Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. - - root@server1 [~]# systemctl stop mysql - root@server1 [~]# systemctl status mysql - ● mysql.service - LSB: start and stop MySQL - Loaded: loaded (/etc/rc.d/init.d/mysql) - Active: failed (Result: exit-code) since Sun 2016-01-31 10:00:02 UTC; 1min 31s ago - Docs: man:systemd-sysv-generator(8) - Main PID: 23430 (code=exited, status=203/EXEC) - - Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Started MySQL Server. - Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Starting MySQL Server... - Jan 31 10:00:02 server1.centos7-test.com systemd[1]: mysql.service: main process exited, code=exited, status=203/EXEC - Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Unit mysql.service entered failed state. - Jan 31 10:00:02 server1.centos7-test.com systemd[1]: mysql.service failed. - -#### 2. Move all configuration files and databases prior to the upgrade #### - -Move the DB storage path and MySQL configuration files - - root@server1 [~]# cp -Rf /var/lib/mysql /var/lib/mysql-old - - root@server1 [/var/lib/mysql]# cat /etc/my.cnf - [mysqld] - default-storage-engine=MyISAM - innodb_file_per_table=1 - max_allowed_packet=268435456 - open_files_limit=10000 - - root@server1 [~]#mv /etc/my.cnf /etc/my.cnf-old - -#### 3. Remove and uninstall all MySQL rpms from the server #### - -Run the following commands to disable the MySQL RPM targets. By running this commands, cPanel will no longer handle MySQL updates, and mark these rpm.versions as uninstalled on the system. - - /scripts/update_local_rpm_versions --edit target_settings.MySQL50 uninstalled - /scripts/update_local_rpm_versions --edit target_settings.MySQL51 uninstalled - /scripts/update_local_rpm_versions --edit target_settings.MySQL55 uninstalled - /scripts/update_local_rpm_versions --edit target_settings.MySQL56 uninstalled - -Now run the this command: - -/scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55,MySQL56 to remove all existing MySQL rpms on the server and leave a clean environment for MariaDB installation. Please see its output below: - - root@server1 [/var/lib/mysql]# /scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55,MySQL56 - [2016-01-31 09:53:59 +0000] - [2016-01-31 09:53:59 +0000] Problems were detected with cPanel-provided files which are RPM controlled. - [2016-01-31 09:53:59 +0000] If you did not make these changes intentionally, you can correct them by running: - [2016-01-31 09:53:59 +0000] - [2016-01-31 09:53:59 +0000] > /usr/local/cpanel/scripts/check_cpanel_rpms --fix - [2016-01-31 09:53:59 +0000] - [2016-01-31 09:53:59 +0000] The following RPMs are unneeded on your system and should be uninstalled: - [2016-01-31 09:53:59 +0000] MySQL55-client-5.5.47-1.cp1148 - [2016-01-31 09:53:59 +0000] MySQL55-devel-5.5.47-1.cp1148 - [2016-01-31 09:53:59 +0000] MySQL55-server-5.5.47-1.cp1148 - [2016-01-31 09:53:59 +0000] MySQL55-shared-5.5.47-1.cp1148 - [2016-01-31 09:53:59 +0000] MySQL55-test-5.5.47-1.cp1148 - [2016-01-31 09:53:59 +0000] compat-MySQL50-shared-5.0.96-4.cp1136 - [2016-01-31 09:53:59 +0000] compat-MySQL51-shared-5.1.73-1.cp1150 - [2016-01-31 09:53:59 +0000] Removing 0 broken rpms: - [2016-01-31 09:53:59 +0000] rpm: no packages given for erase - [2016-01-31 09:53:59 +0000] No new RPMS needed for install - [2016-01-31 09:53:59 +0000] Disabling service monitoring. - [2016-01-31 09:54:01 +0000] Uninstalling unneeded rpms: MySQL55-test MySQL55-server MySQL55-client compat-MySQL51-shared compat-MySQL50-shared MySQL55-shared MySQL55-devel - [2016-01-31 09:54:04 +0000] Removed symlink /etc/systemd/system/multi-user.target.wants/mysql.service. - [2016-01-31 09:54:04 +0000] Restoring service monitoring. - -With these steps, we've uninstalled existing MySQL RPMs, marked targets to prevent further MySQL updates and made the server ready and clean for the MariaDB installation. - -To startup with the installation, we need to create a yum repository for MariaDB depending on the MariaDB & CentOS versions. This is how I did it! - -### Installation procedures: ### - -#### Step 1: Creating a YUM repository. #### - - root@server1 [~]# vim /etc/yum.repos.d/MariaDB.repo - [mariadb] - name = MariaDB - baseurl = http://yum.mariadb.org/10.0/centos7-amd64/ - gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB - gpgcheck=1 - root@server1 [/etc/yum.repos.d]# cat /etc/yum.repos.d/MariaDB.repo - [mariadb] - name = MariaDB - baseurl = http://yum.mariadb.org/10.0/centos7-amd64/ - gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB - gpgcheck=1 - -#### Step 2: Open the /etc/yum.conf and modify the exclude line as below: #### - -**Remove this line** exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* php* proftpd* pure-ftpd* spamassassin* squirrelmail* - -**And replace with this line** exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* nsd* proftpd* pure-ftpd* spamassassin* squirrelmail* - -**\*\*\* IMPORTANT \*\*\*** - -We need to make sure, we've removed the MySQL and PHP from the exclude list. - -#### Step 3: Run the following command to install MariaDB and related packages. #### - -**yum install MariaDB-server MariaDB-client MariaDB-devel php-mysql** - - root@server1 [~]#yum install MariaDB-server MariaDB-client MariaDB-devel php-mysql - - Dependencies Resolved - - =============================================================================================================================================== - Package Arch Version Repository Size - =============================================================================================================================================== - Installing: - MariaDB-client x86_64 10.0.23-1.el7.centos mariadb 10 M - MariaDB-devel x86_64 10.0.23-1.el7.centos mariadb 6.3 M - MariaDB-server x86_64 10.0.23-1.el7.centos mariadb 55 M - php-mysql x86_64 5.4.16-36.el7_1 base 99 k - Installing for dependencies: - MariaDB-common x86_64 10.0.23-1.el7.centos mariadb 43 k - MariaDB-shared x86_64 10.0.23-1.el7.centos mariadb 1.2 M - libzip x86_64 0.10.1-8.el7 base 48 k - php-common x86_64 5.4.16-36.el7_1 base 563 k - php-pdo x86_64 5.4.16-36.el7_1 base 97 k - - Transaction Summary - =============================================================================================================================================== - Install 4 Packages (+5 Dependent package) - -#### Step 4: Restart and make sure the MySQL service is up. #### - - root@server1 [~]# systemctl start mysql - root@server1 [~]# - root@server1 [~]# - root@server1 [~]# systemctl status mysql - ● mysql.service - LSB: start and stop MySQL - Loaded: loaded (/etc/rc.d/init.d/mysql) - Active: active (exited) since Sun 2016-01-31 10:01:46 UTC; 3s ago - Docs: man:systemd-sysv-generator(8) - Process: 23717 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS) - Main PID: 23430 (code=exited, status=203/EXEC) - - Jan 31 10:01:46 server1.centos7-test.com systemd[1]: Starting LSB: start and stop MySQL... - Jan 31 10:01:46 server1.centos7-test.com mysql[23717]: Starting MySQL SUCCESS! - Jan 31 10:01:46 server1.centos7-test.com systemd[1]: Started LSB: start and stop MySQL. - -#### Step 5: Run mysql_upgrade command #### - -It will examine all tables in all databases for incompatibilities with the current installed version and upgrades the system tables if necessary to take advantage of new privileges or capabilities that might have added with the current version. - - root@server1 [~]# mysql_upgrade - MySQL upgrade detected - Phase 1/6: Checking and upgrading mysql database - Processing databases - mysql - mysql.columns_priv OK - mysql.db OK - mysql.event OK - mysql.func OK - mysql.help_category OK - mysql.help_keyword OK - mysql.help_relation OK - mysql.help_topic OK - mysql.host OK - mysql.ndb_binlog_index OK - mysql.plugin OK - mysql.proc OK - mysql.procs_priv OK - mysql.proxies_priv OK - mysql.servers OK - mysql.tables_priv OK - mysql.time_zone OK - mysql.time_zone_leap_second OK - mysql.time_zone_name OK - mysql.time_zone_transition OK - mysql.time_zone_transition_type OK - mysql.user OK - Phase 2/6: Fixing views from mysql - Phase 3/6: Running 'mysql_fix_privilege_tables' - Phase 4/6: Fixing table and database names - Phase 5/6: Checking and upgrading tables - Processing databases - cphulkd - cphulkd.auths OK - cphulkd.blacklist OK - cphulkd.brutes OK - cphulkd.good_logins OK - cphulkd.ip_lists OK - cphulkd.known_netblocks OK - cphulkd.login_track OK - cphulkd.logins OK - cphulkd.report OK - cphulkd.whitelist OK - eximstats - eximstats.defers OK - eximstats.failures OK - eximstats.sends OK - eximstats.smtp OK - information_schema - leechprotect - leechprotect.hits OK - modsec - modsec.hits OK - performance_schema - roundcube - roundcube.cache OK - roundcube.cache_index OK - roundcube.cache_messages OK - roundcube.cache_shared OK - roundcube.cache_thread OK - roundcube.contactgroupmembers OK - roundcube.contactgroups OK - roundcube.contacts OK - roundcube.cp_schema_version OK - roundcube.dictionary OK - roundcube.identities OK - roundcube.searches OK - roundcube.session OK - roundcube.system OK - roundcube.users OK - saheetha_test - saheetha_test.authors OK - whmxfer - whmxfer.sessions OK - Phase 6/6: Running 'FLUSH PRIVILEGES' - OK - -#### Step 6 : Restart the MySQL service once again to ensure everything works perfect. #### - - root@server1 [~]# systemctl restart mysql - root@server1 [~]# - root@server1 [~]# systemctl status mysql - ● mysql.service - LSB: start and stop MySQL - Loaded: loaded (/etc/rc.d/init.d/mysql) - Active: active (running) since Sun 2016-01-31 10:04:11 UTC; 9s ago - Docs: man:systemd-sysv-generator(8) - Process: 23831 ExecStop=/etc/rc.d/init.d/mysql stop (code=exited, status=0/SUCCESS) - Process: 23854 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS) - Main PID: 23430 (code=exited, status=203/EXEC) - CGroup: /system.slice/mysql.service - ├─23861 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/server1.centos7-test.com.pid - └─23933 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/v... - - Jan 31 10:04:10 server1.centos7-test.com systemd[1]: Starting LSB: start and stop MySQL... - Jan 31 10:04:11 server1.centos7-test.com mysql[23854]: Starting MySQL. SUCCESS! - Jan 31 10:04:11 server1.centos7-test.com systemd[1]: Started LSB: start and stop MySQL. - -#### Step 7: Run EasyApache to rebuild Apache/PHP with MariaDB and ensure all PHP modules remains intact. #### - - root@server1 [~]#/scripts/easyapache --build - - ****IMPORTANT ***** - If you forget to rebuild Apache/PHP after the MariaDB installation, it will report the library error as below: - - root@server1 [/etc/my.cnf.d]# php -v - php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory - -#### Step 8: Now verify the installation and databases. #### - - root@server1 [/var/lib/mysql]# mysql - Welcome to the MariaDB monitor. Commands end with ; or \g. - Your MariaDB connection id is 15 - Server version: 10.0.23-MariaDB MariaDB Server - - Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. - - Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. - - MariaDB [(none)]> show storage engines; - +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ - | Engine | Support | Comment | Transactions | XA | Savepoints | - +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ - | CSV | YES | CSV storage engine | NO | NO | NO | - | MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | - | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | - | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | - | MyISAM | YES | MyISAM storage engine | NO | NO | NO | - | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES | - | ARCHIVE | YES | Archive storage engine | NO | NO | NO | - | FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES | - | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | - | Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO | - +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ - 10 rows in set (0.00 sec) - -That's all :). Now we're all set to go with MariaDB with its improved and efficient features. Hope you enjoyed reading this documentation. I would recommend your valuable suggestions and feedback on this! - --------------------------------------------------------------------------------- - -via: http://linoxide.com/how-tos/install-mariadb-10-centos-7-cpanel/ - -作者:[Saheetha Shameer][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/saheethas/ From 0ff9c6c29c593d35b231937a4e70040a14ee9cc4 Mon Sep 17 00:00:00 2001 From: struggling <630441839@qq.com> Date: Sat, 27 Feb 2016 09:12:48 +0800 Subject: [PATCH 176/582] Create 20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md --- ...ll MariaDB 10 on CentOS 7 CPanel Server.md | 326 ++++++++++++++++++ 1 file changed, 326 insertions(+) create mode 100644 translated/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md diff --git a/translated/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md b/translated/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md new file mode 100644 index 0000000000..8d452af0ad --- /dev/null +++ b/translated/tech/20160214 How to Install MariaDB 10 on CentOS 7 CPanel Server.md @@ -0,0 +1,326 @@ + +在 CentOS 7 CPanel 服务器上安装 MariaDB 10 +================================================================================ + +MariaDB 是一个增强版的,开源的并且可以直接替代 MySQL。它主要由 MariaDB 社区在维护,采用 GPL v2 授权许可。软件的安全性是 MariaDB 开发者的主要焦点。他们保持为 MariaDB 的每个版本发布安全补丁。当有任何安全问题被发现时,开发者会尽快修复并推出 MariaDB 的新版本。 + +### MariaDB 的优势 ### + +- 完全开源 +- 快速且透明的安全版本 +- 与 MySQL 高度兼容 +- 性能更好 +- 比 MySQL 的存储引擎多 + +在这篇文章中,我将谈论关于如何升级 MySQL5.5 到最新的 MariaDB 在CentOS7 CPanel 服务器上。在安装前先完成以下步骤。 + +### 先决条件: ### + +#### 1. 停止当前 MySQL 服务 #### + + root@server1 [/var/# mysql + Welcome to the MySQL monitor. Commands end with ; or \g. + Your MySQL connection id is 5859 + Server version: 5.5.47-cll MySQL Community Server (GPL) + + Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + + Oracle is a registered trademark of Oracle Corporation and/or its + affiliates. Other names may be trademarks of their respective + owners. + + Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. + + root@server1 [~]# systemctl stop mysql + root@server1 [~]# systemctl status mysql + ● mysql.service - LSB: start and stop MySQL + Loaded: loaded (/etc/rc.d/init.d/mysql) + Active: failed (Result: exit-code) since Sun 2016-01-31 10:00:02 UTC; 1min 31s ago + Docs: man:systemd-sysv-generator(8) + Main PID: 23430 (code=exited, status=203/EXEC) + + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Started MySQL Server. + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Starting MySQL Server... + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: mysql.service: main process exited, code=exited, status=203/EXEC + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: Unit mysql.service entered failed state. + Jan 31 10:00:02 server1.centos7-test.com systemd[1]: mysql.service failed. + +#### 2. 在升级之前将所有配置文件和数据库转移 #### + +转移数据库的存储路径和 MySQL 的配置文件 + + root@server1 [~]# cp -Rf /var/lib/mysql /var/lib/mysql-old + + root@server1 [/var/lib/mysql]# cat /etc/my.cnf + [mysqld] + default-storage-engine=MyISAM + innodb_file_per_table=1 + max_allowed_packet=268435456 + open_files_limit=10000 + + root@server1 [~]#mv /etc/my.cnf /etc/my.cnf-old + +#### 3. 从服务器上删除和卸载 MySQL 所有的 RPM 包 #### + +运行以下命令来禁用 MySQL 的 RPM 的目标。通过运行此命令,cPanel 将不再处理 MySQL 的更新,并在系统上将卸载的标记为 rpm.versions。 + + /scripts/update_local_rpm_versions --edit target_settings.MySQL50 uninstalled + /scripts/update_local_rpm_versions --edit target_settings.MySQL51 uninstalled + /scripts/update_local_rpm_versions --edit target_settings.MySQL55 uninstalled + /scripts/update_local_rpm_versions --edit target_settings.MySQL56 uninstalled + +现在运行以下命令: + +/scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55,MySQL56 +移除服务器上所有已存在的 MySQL rpms 来为 MariaDB 的安装清理环境。请看下面的输出: + + root@server1 [/var/lib/mysql]# /scripts/check_cpanel_rpms --fix --targets=MySQL50,MySQL51,MySQL55,MySQL56 + [2016-01-31 09:53:59 +0000] + [2016-01-31 09:53:59 +0000] Problems were detected with cPanel-provided files which are RPM controlled. + [2016-01-31 09:53:59 +0000] If you did not make these changes intentionally, you can correct them by running: + [2016-01-31 09:53:59 +0000] + [2016-01-31 09:53:59 +0000] > /usr/local/cpanel/scripts/check_cpanel_rpms --fix + [2016-01-31 09:53:59 +0000] + [2016-01-31 09:53:59 +0000] The following RPMs are unneeded on your system and should be uninstalled: + [2016-01-31 09:53:59 +0000] MySQL55-client-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-devel-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-server-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-shared-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] MySQL55-test-5.5.47-1.cp1148 + [2016-01-31 09:53:59 +0000] compat-MySQL50-shared-5.0.96-4.cp1136 + [2016-01-31 09:53:59 +0000] compat-MySQL51-shared-5.1.73-1.cp1150 + [2016-01-31 09:53:59 +0000] Removing 0 broken rpms: + [2016-01-31 09:53:59 +0000] rpm: no packages given for erase + [2016-01-31 09:53:59 +0000] No new RPMS needed for install + [2016-01-31 09:53:59 +0000] Disabling service monitoring. + [2016-01-31 09:54:01 +0000] Uninstalling unneeded rpms: MySQL55-test MySQL55-server MySQL55-client compat-MySQL51-shared compat-MySQL50-shared MySQL55-shared MySQL55-devel + [2016-01-31 09:54:04 +0000] Removed symlink /etc/systemd/system/multi-user.target.wants/mysql.service. + [2016-01-31 09:54:04 +0000] Restoring service monitoring. + +通过这些步骤,我们已经卸载了现有的 MySQL RPMs,并做了标记来防止 MySQL的更新,服务器的环境已经清理然后准备安装 MariaDB。 + +开始安装吧,我们需要在 CentOS 为 MariaDB 创建一个 yum 软件库。下面是我的做法! + +### 安装步骤: ### + +#### 第1步:创建 YUM 软件库。#### + + root@server1 [~]# vim /etc/yum.repos.d/MariaDB.repo + [mariadb] + name = MariaDB + baseurl = http://yum.mariadb.org/10.0/centos7-amd64/ + gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB + gpgcheck=1 + root@server1 [/etc/yum.repos.d]# cat /etc/yum.repos.d/MariaDB.repo + [mariadb] + name = MariaDB + baseurl = http://yum.mariadb.org/10.0/centos7-amd64/ + gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB + gpgcheck=1 + +#### 第2步:打开 /etc/yum.conf 并修改如下行: #### + +**Remove this line** exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* php* proftpd* pure-ftpd* spamassassin* squirrelmail* + +**And replace with this line** exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* nsd* proftpd* pure-ftpd* spamassassin* squirrelmail* + +**\*\*\* IMPORTANT \*\*\*** + +需要确保我们已经从 exclude 列表中移除了 MySQL 和 PHP。 + +#### 第3步:运行以下命令来安装 MariaDB 和相关的包。 #### + +**yum install MariaDB-server MariaDB-client MariaDB-devel php-mysql** + + root@server1 [~]#yum install MariaDB-server MariaDB-client MariaDB-devel php-mysql + + Dependencies Resolved + + =============================================================================================================================================== + Package Arch Version Repository Size + =============================================================================================================================================== + Installing: + MariaDB-client x86_64 10.0.23-1.el7.centos mariadb 10 M + MariaDB-devel x86_64 10.0.23-1.el7.centos mariadb 6.3 M + MariaDB-server x86_64 10.0.23-1.el7.centos mariadb 55 M + php-mysql x86_64 5.4.16-36.el7_1 base 99 k + Installing for dependencies: + MariaDB-common x86_64 10.0.23-1.el7.centos mariadb 43 k + MariaDB-shared x86_64 10.0.23-1.el7.centos mariadb 1.2 M + libzip x86_64 0.10.1-8.el7 base 48 k + php-common x86_64 5.4.16-36.el7_1 base 563 k + php-pdo x86_64 5.4.16-36.el7_1 base 97 k + + Transaction Summary + =============================================================================================================================================== + Install 4 Packages (+5 Dependent package) + +#### 第4步:重新启动,并确保 MySQL 服务已启动。#### + + root@server1 [~]# systemctl start mysql + root@server1 [~]# + root@server1 [~]# + root@server1 [~]# systemctl status mysql + ● mysql.service - LSB: start and stop MySQL + Loaded: loaded (/etc/rc.d/init.d/mysql) + Active: active (exited) since Sun 2016-01-31 10:01:46 UTC; 3s ago + Docs: man:systemd-sysv-generator(8) + Process: 23717 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS) + Main PID: 23430 (code=exited, status=203/EXEC) + + Jan 31 10:01:46 server1.centos7-test.com systemd[1]: Starting LSB: start and stop MySQL... + Jan 31 10:01:46 server1.centos7-test.com mysql[23717]: Starting MySQL SUCCESS! + Jan 31 10:01:46 server1.centos7-test.com systemd[1]: Started LSB: start and stop MySQL. + +#### 第5步:运行 mysql_upgrade 命令。 #### + +它将检查所有数据库中的所有表与当前安装的版本是否兼容并在必要时会更新系统表采取新的特权或功能,可能会增加当前版本的性能。 + + + root@server1 [~]# mysql_upgrade + MySQL upgrade detected + Phase 1/6: Checking and upgrading mysql database + Processing databases + mysql + mysql.columns_priv OK + mysql.db OK + mysql.event OK + mysql.func OK + mysql.help_category OK + mysql.help_keyword OK + mysql.help_relation OK + mysql.help_topic OK + mysql.host OK + mysql.ndb_binlog_index OK + mysql.plugin OK + mysql.proc OK + mysql.procs_priv OK + mysql.proxies_priv OK + mysql.servers OK + mysql.tables_priv OK + mysql.time_zone OK + mysql.time_zone_leap_second OK + mysql.time_zone_name OK + mysql.time_zone_transition OK + mysql.time_zone_transition_type OK + mysql.user OK + Phase 2/6: Fixing views from mysql + Phase 3/6: Running 'mysql_fix_privilege_tables' + Phase 4/6: Fixing table and database names + Phase 5/6: Checking and upgrading tables + Processing databases + cphulkd + cphulkd.auths OK + cphulkd.blacklist OK + cphulkd.brutes OK + cphulkd.good_logins OK + cphulkd.ip_lists OK + cphulkd.known_netblocks OK + cphulkd.login_track OK + cphulkd.logins OK + cphulkd.report OK + cphulkd.whitelist OK + eximstats + eximstats.defers OK + eximstats.failures OK + eximstats.sends OK + eximstats.smtp OK + information_schema + leechprotect + leechprotect.hits OK + modsec + modsec.hits OK + performance_schema + roundcube + roundcube.cache OK + roundcube.cache_index OK + roundcube.cache_messages OK + roundcube.cache_shared OK + roundcube.cache_thread OK + roundcube.contactgroupmembers OK + roundcube.contactgroups OK + roundcube.contacts OK + roundcube.cp_schema_version OK + roundcube.dictionary OK + roundcube.identities OK + roundcube.searches OK + roundcube.session OK + roundcube.system OK + roundcube.users OK + saheetha_test + saheetha_test.authors OK + whmxfer + whmxfer.sessions OK + Phase 6/6: Running 'FLUSH PRIVILEGES' + OK + +#### 第6步:再次重新启动MySQL的服务,以确保一切都运行完好。 #### + + root@server1 [~]# systemctl restart mysql + root@server1 [~]# + root@server1 [~]# systemctl status mysql + ● mysql.service - LSB: start and stop MySQL + Loaded: loaded (/etc/rc.d/init.d/mysql) + Active: active (running) since Sun 2016-01-31 10:04:11 UTC; 9s ago + Docs: man:systemd-sysv-generator(8) + Process: 23831 ExecStop=/etc/rc.d/init.d/mysql stop (code=exited, status=0/SUCCESS) + Process: 23854 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS) + Main PID: 23430 (code=exited, status=203/EXEC) + CGroup: /system.slice/mysql.service + ├─23861 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/server1.centos7-test.com.pid + └─23933 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/v... + + Jan 31 10:04:10 server1.centos7-test.com systemd[1]: Starting LSB: start and stop MySQL... + Jan 31 10:04:11 server1.centos7-test.com mysql[23854]: Starting MySQL. SUCCESS! + Jan 31 10:04:11 server1.centos7-test.com systemd[1]: Started LSB: start and stop MySQL. + +#### 第7步:运行 EasyApache 用 MariaDB 重建 Apache/PHP,并确保所有 PHP 的模块保持不变。#### + + root@server1 [~]#/scripts/easyapache --build + + ****IMPORTANT ***** + If you forget to rebuild Apache/PHP after the MariaDB installation, it will report the library error as below: + + root@server1 [/etc/my.cnf.d]# php -v + php: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory + +#### 第8步:现在验证安装的数据库。 #### + + root@server1 [/var/lib/mysql]# mysql + Welcome to the MariaDB monitor. Commands end with ; or \g. + Your MariaDB connection id is 15 + Server version: 10.0.23-MariaDB MariaDB Server + + Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. + + Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. + + MariaDB [(none)]> show storage engines; + +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ + | Engine | Support | Comment | Transactions | XA | Savepoints | + +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ + | CSV | YES | CSV storage engine | NO | NO | NO | + | MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | + | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | + | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | + | MyISAM | YES | MyISAM storage engine | NO | NO | NO | + | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES | + | ARCHIVE | YES | Archive storage engine | NO | NO | NO | + | FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES | + | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | + | Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO | + +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ + 10 rows in set (0.00 sec) + +就这样 :)。现在,我们该去欣赏 MariaDB 完善和高效的特点了。希望你喜欢阅读本文。希望留下您宝贵的建议和反馈! +-------------------------------------------------------------------------------- + +via: http://linoxide.com/how-tos/install-mariadb-10-centos-7-cpanel/ + +作者:[Saheetha Shameer][a] +译者:[strugglingyouth](https://github.com/strugglingyouth) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/saheethas/ From 84afc48e27e7e0b72cb2e017fb2a74d3ff28d5c2 Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Sat, 27 Feb 2016 14:55:00 +0800 Subject: [PATCH 177/582] [Translated]20151019 Gaming On Linux--All You Need To Know --- ...9 Gaming On Linux--All You Need To Know.md | 204 ------------------ ...9 Gaming On Linux--All You Need To Know.md | 200 +++++++++++++++++ 2 files changed, 200 insertions(+), 204 deletions(-) delete mode 100644 sources/talk/20151019 Gaming On Linux--All You Need To Know.md create mode 100644 translated/talk/20151019 Gaming On Linux--All You Need To Know.md diff --git a/sources/talk/20151019 Gaming On Linux--All You Need To Know.md b/sources/talk/20151019 Gaming On Linux--All You Need To Know.md deleted file mode 100644 index 6618b8302d..0000000000 --- a/sources/talk/20151019 Gaming On Linux--All You Need To Know.md +++ /dev/null @@ -1,204 +0,0 @@ -name1e5s translating -Gaming On Linux: All You Need To Know -================================================================================ -![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Gaming-on-Linux.jpeg) - -**Can I play games on Linux?** - -This is one of the most frequently asked questions by people who are thinking about [switching to Linux][1]. After all, gaming on Linux often termed as a distant possibility. In fact, some people even wonder if they can listen to music or watch movies on Linux. Considering that, question about native Linux games seem genuine. - -In this article, I am going to answer most of the Linux gaming questions a Linux beginner may have. For example, if it is possible to play games on Linux, if yes, what are the Linux games available, where can you **download Linux games** from or how do you get more information of gaming on Linux. - -But before I do that, let me make a confession. I am not a PC gamer or rather I should say, I am not desktop Linux gamer. I prefer to play games on my PS4 and I don’t care about PC games or even mobile games (no candy crush request sent to anyone in my friend list). This is the reason you see only a few articles in [Linux games][2] section of It’s FOSS. - -So why am I covering this topic then? - -Because I have been asked questions about playing games on Linux several times and I wanted to come up with a Linux gaming guide that could answer all those question. And remember, it’s not just gaming on Ubuntu I am talking about here. I am talking about Linux in general. - -### Can you play games on Linux? ### - -Yes and no! - -Yes, you can play games on Linux and no, you cannot play ‘all the games’ in Linux. - -Confused? Don’t be. What I meant here is that you can get plenty of popular games on Linux such as [Counter Strike, Metro Last Night][3] etc. But you might not get all the latest and popular Windows games on Linux, for e.g., [PES 2015][4]. - -The reason, in my opinion, is that Linux has less than 2% of desktop market share and these numbers are demotivating enough for most game developers to avoid working on the Linux version of their games. - -Which means that there is huge possibility that the most talked about games of the year may not be playable in Linux. Don’t despair, there are ‘other means’ to get these games on Linux and we shall see it in coming sections, but before that let’s talk about what kind of games are available for Linux. - -If I have to categorize, I’ll divide them in four categories: - -1. Native Linux Games -1. Windows games in Linux -1. Browser Games -1. Terminal Games - -Let’s start with the most important one, native Linux games, first. - ----------- - -### 1. Where to find native Linux games? ### - -Native Linux games mean those games which are officially supported in Linux. These games have native Linux client and can be installed like most other applications in Linux without requiring any additional effort (we’ll see about these in next section). - -So, as you see, there are games developed for Linux. Next question that arises is where can you find these Linux games and how can you play them. I am going to list some of the resources where you can get Linux games. - -#### Steam #### - -![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/09/Install-Steam-Ubuntu-11.jpeg) - -“[Steam][5] is a digital distribution platform for video games. As Amazon Kindle is digital distribution platform for e-Books, iTunes for music, similarly Steam is for games. It provides you the option to buy and install games, play multiplayer and stay in touch with other games via social networking on its platform. The games are protected with [DRM][6].” - -A couple of years ago, when gaming platform Steam announced support for Linux, it was a big news. It was an indication that gaming on Linux is being taken seriously. Though Steam’s decision was more influenced with its own Linux-based gaming console and a separate [Linux distribution called Steam OS][7], it still was a reassuring move that has brought a number of games on Linux. - -I have written a detailed article about installing and using Steam. If you are getting started with Steam, do read it. - -- [Install and use Steam for gaming on Linux][8] - -#### GOG.com #### - -[GOG.com][9] is another platform similar to Steam. Like Steam, you can browse and find hundreds of native Linux games on GOG.com, purchase the games and install them. If the games support several platforms, you can download and use them across various operating systems. Your purchased games are available for you all the time in your account. You can download them anytime you wish. - -One main difference between the two is that GOG.com offers only DRM free games and movies. Also, GOG.com is entirely web based. So you don’t need to install a client like Steam. You can simply download the games from browser and install them in your system. - -#### Portable Linux Games #### - -[Portable Linux Games][10] is a website that has a collection of a number of Linux games. The unique and best thing about Portable Linux Games is that you can download and store the games for offline installation. - -The downloaded files have all the dependencies (at times Wine and Perl installation) and these are also platform independent. All you need to do is to download the files and double click to install them. Store the downloadable file on external hard disk and use them in future. Highly recommend if you don’t have continuous access to high speed internet. - -#### Game Drift Game Store #### - -[Game Drift][11] is actually a Linux distribution based on Ubuntu with sole focus on gaming. While you might not want to start using this Linux distribution for the sole purpose of gaming, you can always visit its game store online and see what games are available for Linux and install them. - -#### Linux Game Database #### - -As the name suggests, [Linux Game Database][12] is a website with a huge collection of Linux games. You can browse through various category of games and download/install them from the game developer’s website. As a member of Linux Game Database, you can even rate the games. LGDB, kind of, aims to be the IGN or IMDB for Linux games. - -#### Penguspy #### - -Created by a gamer who refused to use Windows for playing games, [Penguspy][13] showcases a collection of some of the best Linux games. You can browse games based on category and if you like the game, you’ll have to go to the respective game developer’s website. - -#### Software Repositories #### - -Look into the software repositories of your own Linux distribution. There always will be some games in it. If you are using Ubuntu, Ubuntu Software Center itself has an entire section for games. Same is true for other Linux distributions such as Linux Mint etc. - ----------- - -### 2. How to play Windows games in Linux? ### - -![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Wine-Linux.png) - -So far we talked about native Linux games. But there are not many Linux games, or to be more precise, most popular Linux games are not available for Linux but they are available for Windows PC. So the questions arises, how to play Windows games in Linux? - -Good thing is that with the help of tools like Wine, PlayOnLinux and CrossOver, you can play a number of popular Windows games in Linux. - -#### Wine #### - -Wine is a compatibility layer which is capable of running Windows applications in systems like Linux, BSD and OS X. With the help of Wine, you can install and use a number of Windows applications in Linux. - -[Installing Wine in Ubuntu][14] or any other Linux is easy as it is available in most Linux distributions’ repository. There is a huge [database of applications and games supported by Wine][15] that you can browse. - -#### CrossOver #### - -[CrossOver][16] is an improved version of Wine that brings professional and technical support to Wine. But unlike Wine, CrossOver is not free. You’ll have to purchase the yearly license for it. Good thing about CrossOver is that every purchase contributes to Wine developers and that in fact boosts the development of Wine to support more Windows games and applications. If you can afford $48 a year, you should buy CrossOver for the support they provide. - -### PlayOnLinux ### - -PlayOnLinux too is based on Wine but implemented differently. It has different interface and slightly easier to use than Wine. Like Wine, PlayOnLinux too is free to use. You can browse the [applications and games supported by PlayOnLinux on its database][17]. - ----------- - -### 3. Browser Games ### - -![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Chrome-Web-Store.jpeg) - -Needless to say that there are tons of browser based games that are available to play in any operating system, be it Windows or Linux or Mac OS X. Most of the addictive mobile games, such as [GoodGame Empire][18], also have their web browser counterparts. - -Apart from that, thanks to [Google Chrome Web Store][19], you can play some more games in Linux. These Chrome games are installed like a standalone app and they can be accessed from the application menu of your Linux OS. Some of these Chrome games are playable offline as well. - ----------- - -### 4. Terminal Games ### - -![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/03/nSnake_Linux_terminal_game.jpeg) - -Added advantage of using Linux is that you can use the command line terminal to play games. I know that it’s not the best way to play games but at times, it’s fun to play games like [Snake][20] or [2048][21] in terminal. There is a good collection of Linux terminal games at [this blog][22]. You can browse through it and play the ones you want. - ----------- - -### How to stay updated about Linux games? ### - -When you have learned a lot about what kind of games are available on Linux and how could you use them, next question is how to stay updated about new games on Linux? And for that, I advise you to follow these blogs that provide you with the latest happenings of the Linux gaming world: - -- [Gaming on Linux][23]: I won’t be wrong if I call it the nest Linux gaming news portal. You get all the latest rumblings and news about Linux games. Frequently updated, Gaming on Linux has dedicated fan following which makes it a nice community of Linux game lovers. -- [Free Gamer][24]: A blog focusing on free and open source games. -- [Linux Game News][25]: A Tumbler blog that updates on various Linux games. - -#### What else? #### - -I think that’s pretty much what you need to know to get started with gaming on Linux. If you are still not convinced, I would advise you to [dual boot Linux with Windows][26]. Use Linux as your main desktop and if you want to play games, boot into Windows. This could be a compromised solution. - -I think that’s pretty much what you need to know to get started with gaming on Linux. If you are still not convinced, I would advise you to [dual boot Linux with Windows][27]. Use Linux as your main desktop and if you want to play games, boot into Windows. This could be a compromised solution. - -It’s time for you to add your inputs. Do you play games on your Linux desktop? What are your favorites? What blogs you follow to stay updated on latest Linux games? - - -投票项目: -How do you play games on Linux? - -- I use Wine and PlayOnLinux along with native Linux Games -- I am happy with Browser Games -- I prefer the Terminal Games -- I use native Linux games only -- I play it on Steam -- I dual boot and go in to Windows to play games -- I don't play games at all - -注:投票代码 -
-
- - - -注,发布时根据情况看怎么处理 - --------------------------------------------------------------------------------- - -via: http://itsfoss.com/linux-gaming-guide/ - -作者:[Abhishek][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/abhishek/ -[1]:http://itsfoss.com/reasons-switch-linux-windows-xp/ -[2]:http://itsfoss.com/category/games/ -[3]:http://blog.counter-strike.net/ -[4]:https://pes.konami.com/tag/pes-2015/ -[5]:http://store.steampowered.com/ -[6]:https://en.wikipedia.org/wiki/Digital_rights_management -[7]:http://itsfoss.com/valve-annouces-linux-based-gaming-operating-system-steamos/ -[8]:http://itsfoss.com/install-steam-ubuntu-linux/ -[9]:http://www.gog.com/ -[10]:http://www.portablelinuxgames.org/ -[11]:http://gamedrift.org/GameStore.html -[12]:http://www.lgdb.org/ -[13]:http://www.penguspy.com/ -[14]:http://itsfoss.com/wine-1-5-11-released-ppa-available-to-download/ -[15]:https://appdb.winehq.org/ -[16]:https://www.codeweavers.com/products/ -[17]:https://www.playonlinux.com/en/supported_apps.html -[18]:http://empire.goodgamestudios.com/ -[19]:https://chrome.google.com/webstore/category/apps -[20]:http://itsfoss.com/nsnake-play-classic-snake-game-linux-terminal/ -[21]:http://itsfoss.com/play-2048-linux-terminal/ -[22]:https://ttygames.wordpress.com/ -[23]:https://www.gamingonlinux.com/ -[24]:http://freegamer.blogspot.fr/ -[25]:http://linuxgamenews.com/ -[26]:http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ -[27]:http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ diff --git a/translated/talk/20151019 Gaming On Linux--All You Need To Know.md b/translated/talk/20151019 Gaming On Linux--All You Need To Know.md new file mode 100644 index 0000000000..ae46ccb117 --- /dev/null +++ b/translated/talk/20151019 Gaming On Linux--All You Need To Know.md @@ -0,0 +1,200 @@ +Linux上的游戏:所有你需要知道的 +================================================================================ +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Gaming-on-Linux.jpeg) + +** 我能在 Linux 上玩游戏吗 ?** + +这是打算[投奔 Linux 阵营][1]的人最经常问的问题之一。毕竟,在 Linux 上面玩游戏经常被认为有点难以实现。事实上,一些人甚至考虑他们能不能在 Linux 上看电影或者听音乐。考虑到这些,关于 Linux 的平台的游戏的问题是很现实的。「 + +在本文中,我将解答大多数 Linux 新手关于在 Linux 打游戏的问题。例如 Linux 下能不能玩游戏,如果能的话,在**哪里下载游戏**或者如何获取有关游戏的信息。 + +但是在此之前,我需要说明一下。我不是一个 PC 上的玩家或者说我不认为我是一个在 Linux 桌面上完游玩戏的家伙。我更喜欢在 PS4 上玩游戏并且我不关心 PC 上的游戏甚至也不关心手机上的游戏(我没有给我的任何一个朋友安利糖果传奇)。这也就是你很少在 It's FOSS 上很少看见关于 [Linux 上的游戏][2]的部分。 + +所以我为什么要写这个主题? + +因为别人问过我几次有关 Linux 上的游戏的问题并且我想要写出来一个能解答这些问题的 Linux 上的游戏指南。注意,在这里我不只是讨论 Ubuntu 上的游戏。我讨论的是在所有的 Linux 上的游戏。 + +### 我能在 Linux 上玩游戏吗 ? ### + +是,但不是完全是。 + +“是”,是指你能在Linux上玩游戏;“不完全是”,是指你不能在 Linux 上玩 ’所有的游戏‘。 + +什么?你是拒绝的?不必这样。我的意思是你能在 Linux 上玩很多流行的游戏,比如[反恐精英以及地铁:最后的曙光][3]等。但是你可能不能玩到所有在 Windows 上流行的最新游戏,比如[实况足球2015][4]。 + +在我看来,造成这种情况的原因是 Linux 在桌面系统中仅占不到 2%,这占比使得大多数开发者没有在 Linux 上发布他们的游戏的打算。 + +这就意味指大多数近年来被提及的比较多的游戏很有可能不能在 Linux 上玩。不要灰心。我们能以某种方式在 Linux 上玩这些游戏,我们将在下面的章节中讨论这些方法。但是,在此之前,让我们看看在 Linux 上能玩的游戏的种类。 + +要我说的话,我会把那些游戏分为四类: + +1. Linux 原生游戏 +2. Linux 上的 Windows 游戏 +3. 浏览器里的游戏 +4. 终端里的游戏 + +让我们以最重要的 Linux 的原生游戏开始。 + +--------- + +### 1. 在哪里去找 Llinux 原生游戏 ?### + +原生游戏指的是官方支持 Linux 的游戏。这些游戏有原生的 Linux 客户端并且能像在 Linux 上的其他软件一样不需要附加的步骤就能安装在 Linux 上面(我们将在下一节讨论)。 + +所以,如你所见,这里有一些为 Linux 开发的游戏,下一个问题就是在哪能找到这些游戏以及如何安装。我将列出来一些让你玩到游戏的渠道了。 + +#### Steam #### + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/09/Install-Steam-Ubuntu-11.jpeg) + +“[Steam][5] 是一个游戏的分发平台。就如同 Kindle 是电子书的分发平台,iTunes 是音乐的分发平台一样,Steam 也具有那样的功能。它给了你购买和安装游戏,玩多人游戏以及在它的平台上关注其他游戏的选项。这些游戏被[ DRM ][6]所保护。” + +两年以前,游戏平台 Steam 宣布支持 Linux,这在当时是一个大新闻。这是 Linux 上玩游戏被严肃的对待的一个迹象。尽管这个决定更多地影响了他们自己的基于 Linux 游戏平台[ Steam OS][7]。这仍然是令人欣慰的事情,因为它给 Linux 带来了一大堆游戏。 + +我已经写了一篇详细的关于安装以及使用 Steam 的文章。如果你想开始使用 Steam 的话,读读那篇文章。 + +- [在 Linux 上安装以及使用 Steam ][8] + +#### GOG.com #### + +[GOG.com][9] 失灵一个与 Steam 类似的平台。与 Steam 一样,你能在这上面找到数以百计的 Linux 游戏,你可以购买和安装它们。如果游戏支持好几个平台,尼卡一在多个操作系统上安装他们。你买到你账户的游戏你可以随时玩。捏可以在你想要下载的任何时间下载。 + +GOG.com 与 Steam 不同的是前者仅提供没有 DRM 保护的游戏以及电影。而且,GOG.com 完全是基于网页的,所以你不需要安装类似 Steam 的客户端。你只需要用浏览器下载游戏然后安装到你的系统上。 + +#### Portable Linux Games #### + +[Portable Linux Games][10] 是一个集聚了不少 Linux 游戏的网站。这家网站最特别以及最好的就是你能离线安装这些游戏。 + +你下载到的文件包含所有的依赖(仅需 Wine 以及 Perl)并且他们也是与平台无关的。你所需要的仅仅是下载文件并且双击来启动安装程序。你也可以把文件储存起来以用于将来的安装,如果你网速不够快的话我很推荐您这样做。 + +#### Game Drift 游戏商店 #### + +[Game Drift][11] 是一个只专注于游戏的基于 Ubuntu 的 Linux 发行版。但是如果你不想只为游戏就去安装这个发行版的话,你也可以经常上线看哪个游戏可以在 Linux 上运行并且安装他们。 + +#### Linux Game Database #### + +如其名字所示,[Linux Game Database][12]是一个收集了很多 Linux 游戏的网站。你能在这里浏览诸多类型的游戏并从游戏开发者的网站下载/安装这些游戏。作为这家网站的会员,你甚至可以为游戏打分。LGDB,有点像 Linux 游戏界的 IMDB 或者 IGN. + +#### Penguspy #### + +此网站由一个不想用 Windows 玩游戏的玩家创立。[Penguspy][13] 聚集了一些 Linux 下最好的游戏。在这里你也能分类浏览游戏,如果你喜欢这个游戏的话,你可以跳转到游戏开发者的网站去下载安装。 + +#### 软件源 #### + +看看你自己的发行版的软件源。那里可能有一些游戏。如果你用 Ubuntu 的话,它的软件中心里有一个游戏的分类。在一些其他的发行版里也有,比如 Liux Mint 等。 + +---------- + +### 2. 如何在 Linux 上玩 Windows 的游戏 ?### + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Wine-Linux.png) + +到现在为止,我们一直在讨论 Linux 的原生游戏。但是并没有很多 Linux 上的原生游戏,或者说,火的不要不要的游戏大多不支持 Linux,但是都支持 Windows PC。所以,如何在 Linux 上玩 Wendows 的游戏? + +幸好,由于我们有 Wine, PlayOnLinux 和 CrossOver 等工具,我们能在 Linux 上玩不少的 Wendows 游戏。 + +#### Wine #### + +Wine 是一个能使 Wendows 应用在类似 Linux, BSD 和 OS X 上运行的兼容层。在 Wine 的帮助下,你可以在 Linux 下安装以及使用很多 Windows 下的应用。 + +[在 Ubuntu 上安装 Wine][14]或者在其他 Linux 上安装 Wine 是很简单的,因为大多数发行版的软件源里都有它。这里也有一个很大的[ Wine 支持的应用的数据库][15]供您浏览。 + +#### CrossOver #### + +[CrossOver][16] 是 Wine 的增强版,它给 Wine 提供了专业的技术上的支持。但是与 Wine 不同, CrossOver 不是免费的。你需要购买许可。好消息是它会把更新也贡献到 Wine 的开发者那里并且事实上加速了 Wine 的开发使得 Wine 能支持更多的 Windows 上的游戏和应用。如果你可以一年支付 48 美元,你可以购买 CrossOver 并得到他们提供的技术支持。 + +### PlayOnLinux ### + +PlayOnLinux 也基于 Wine 但是执行程序的方式略有不同。它有着更好用的,不同的界面。与 Wine 一样,PlayOnLinux 也是免费使用。你可以在[开发者自己的数据库里查看它支持的应用以及游戏][17]。 + +---------- + +### 3. 网页游戏 ### + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Chrome-Web-Store.jpeg) + +不必说你也应该知道有非常多的基于网页的游戏,这些游戏都可以在任何操作系统里运行,无论是 Windows,Linux,还是 OS X。大多数让人上瘾的手机游戏,比如[帝国之战][18]就有官方的网页版。 + +除了这些,还有 [Google Chrome在线商店][19],你可以在 Linux 上玩更多的这些游戏。这些 Chrome 上的游戏可以像一个单独的应用一样安装并从应用菜单中打开,一些游戏就算是离线也能运行。 + +---------- + +### 4. 终端游戏 ### + +![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/03/nSnake_Linux_terminal_game.jpeg) + +使用 Linux 的一个附加优势就是可以使用命令行终端玩游戏。我知道这不是最好的玩游戏的 方法,但是在终端里玩[贪吃蛇][20]或者 [2048][21] 很有趣。在[这个博客][21]中有一些好玩的的终端游戏。你可以浏览并安装你喜欢的游戏。 + +---------- + +### 如何保证游戏的版本是最新的 ?### + +当你了解了不少的在 Linux 上你可以玩到的游戏以及你如何使用他们,下一个问题就是如何保持游戏的版本是最新的。对于这件事,我建议你看看下面的博客,这些博客能告诉你 Linux 游戏世界的最新消息: + +- [Gaming on Linux][23]:我认为我把它叫做 Linux 游戏的门户并没有错误。在这你可以得到关于 Linux 的游戏的最新的传言以及新闻。最近, Gaming on Linux 有了一个由 Linux 游戏爱好者组成的漂亮的社区。 +- [Free Gamer][24]:一个专注于免费开源的游戏的博客。 +- [Linux Game News][25]:一个提供很多的 Linux 游戏的升级的 Tumbler 博客。 + +#### 还有别的要说呃吗? #### + +我认为让你知道如何开始在 Linux 上的游戏人生是一个好事。如果你仍然不能被说服。我推荐你做个[双系统][26],把 Linux 作为你的主要桌面系统,当你想玩游戏时,重启到 Windows。这是一个对游戏妥协的解决办法。 + +现在,这里是你说出你自己的状况的时候了。你在 Linux 上玩游戏吗?你最喜欢什么游戏?你关注了哪些游戏博客? + + +投票项目: +你怎样在 Linux 上玩游戏? + +- 我玩原生 Linux 游戏,我也用 Wine 以及 PlayOnLinux 运行 Windows 游戏 +- 我喜欢网页游戏 +- 我喜欢终端游戏 +- 我只玩原生 Linux 游戏 +- 我用 Steam +- 我用双系统,要玩游戏时就换到 Windows +- 我不玩游戏 + +注:投票代码 +
+
+ + + +注,发布时根据情况看怎么处理 + +-------------------------------------------------------------------------------- + +via: http://itsfoss.com/linux-gaming-guide/ + +作者:[Abhishek][a] +译者:[name1e5s](https://github.com/name1e5s) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ +[1]:http://itsfoss.com/reasons-switch-linux-windows-xp/ +[2]:http://itsfoss.com/category/games/ +[3]:http://blog.counter-strike.net/ +[4]:https://pes.konami.com/tag/pes-2015/ +[5]:http://store.steampowered.com/ +[6]:https://en.wikipedia.org/wiki/Digital_rights_management +[7]:http://itsfoss.com/valve-annouces-linux-based-gaming-operating-system-steamos/ +[8]:http://itsfoss.com/install-steam-ubuntu-linux/ +[9]:http://www.gog.com/ +[10]:http://www.portablelinuxgames.org/ +[11]:http://gamedrift.org/GameStore.html +[12]:http://www.lgdb.org/ +[13]:http://www.penguspy.com/ +[14]:http://itsfoss.com/wine-1-5-11-released-ppa-available-to-download/ +[15]:https://appdb.winehq.org/ +[16]:https://www.codeweavers.com/products/ +[17]:https://www.playonlinux.com/en/supported_apps.html +[18]:http://empire.goodgamestudios.com/ +[19]:https://chrome.google.com/webstore/category/apps +[20]:http://itsfoss.com/nsnake-play-classic-snake-game-linux-terminal/ +[21]:http://itsfoss.com/play-2048-linux-terminal/ +[22]:https://ttygames.wordpress.com/ +[23]:https://www.gamingonlinux.com/ +[24]:http://freegamer.blogspot.fr/ +[25]:http://linuxgamenews.com/ +[26]:http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ \ No newline at end of file From 8b39d31702ec2d5ffeed0a4f8ab76252d2ed6bd8 Mon Sep 17 00:00:00 2001 From: name1e5s <836401406@qq.com> Date: Sat, 27 Feb 2016 15:00:12 +0800 Subject: [PATCH 178/582] =?UTF-8?q?remove=20=E5=91=83=20in=20line=20138?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../talk/20151019 Gaming On Linux--All You Need To Know.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translated/talk/20151019 Gaming On Linux--All You Need To Know.md b/translated/talk/20151019 Gaming On Linux--All You Need To Know.md index ae46ccb117..d43b548f7c 100644 --- a/translated/talk/20151019 Gaming On Linux--All You Need To Know.md +++ b/translated/talk/20151019 Gaming On Linux--All You Need To Know.md @@ -135,7 +135,7 @@ PlayOnLinux 也基于 Wine 但是执行程序的方式略有不同。它有着 - [Free Gamer][24]:一个专注于免费开源的游戏的博客。 - [Linux Game News][25]:一个提供很多的 Linux 游戏的升级的 Tumbler 博客。 -#### 还有别的要说呃吗? #### +#### 还有别的要说的吗? #### 我认为让你知道如何开始在 Linux 上的游戏人生是一个好事。如果你仍然不能被说服。我推荐你做个[双系统][26],把 Linux 作为你的主要桌面系统,当你想玩游戏时,重启到 Windows。这是一个对游戏妥协的解决办法。 @@ -197,4 +197,4 @@ via: http://itsfoss.com/linux-gaming-guide/ [23]:https://www.gamingonlinux.com/ [24]:http://freegamer.blogspot.fr/ [25]:http://linuxgamenews.com/ -[26]:http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ \ No newline at end of file +[26]:http://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ From e7827fd92651f3ae5c63b2b50169579961579dd6 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 27 Feb 2016 17:54:43 +0800 Subject: [PATCH 179/582] =?UTF-8?q?20160227-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rom Facebook, IBM, Yahoo, and more news.md | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md diff --git a/sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md b/sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md new file mode 100644 index 0000000000..518256d0e9 --- /dev/null +++ b/sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md @@ -0,0 +1,72 @@ +Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news +=========================================================================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/weekly_news_roundup_tv.png?itok=eqUoW1gU) + +In this week's edition of our open source news roundup, we take a look at the new IoT project from the Linux Foundation, three big corporations releasing open source, and more. + +**News roundup for February 21 - 26, 2016** + +### Linux Foundation unveils the Zephyr Project + +The Internet of Things (IoT) is shaping up to be the next big thing in consumer technology. At the moment, most IoT solutions are proprietary and closed source. Open source is making numerous in-roads into the IoT world, and that's undoubtedly going to accelerate now that the Linux Foundation has [announced the Zephyr Project][1]. + +The Zephyr Project, according to ZDNet, "hopes to bring vendors and developers together under a single operating system which could make the development of connected devices an easier, less expensive and more stable process." The Project "aims to incorporate input from the open source and embedded developer communities and to encourage collaboration on the RTOS (real-time operating system)," according to the [Linux Foundation's press release][2]. + +Currently, Intel Corporation, NXP Semiconductors N.V., Synopsys, Inc., and UbiquiOS Technology Limited are the main supporters of the project. The Linux Foundation intends to attract other IoT vendors to this effort as well. + +### Releases from Facebook, IBM, Yahoo + +As we all know, open source isn't just about individuals or small groups hacking on code and hardware. Quite a few large corporations have significant investments in open source. This past week, three of them affirmed their commitment to open source. + +Yahoo again waded into open source waters this week with the [release of CaffeOnSpark][3] artificial intelligence software under an Apache 2.0 license. CaffeOnSpark performs "a popular type of AI called 'deep learning' on the vast swaths of data kept in its Hadoop open-source file system for storing big data," according to VentureBeat. If you're curious, you can [find the source code on GitHub][4]. + +Earlier this week, Facebook "[unveiled a new project that seeks not only to accelerate the evolution of technologies that drive our mobile networks, but to freely share this work with the world’s telecoms][5]," according to Wired. The company plans to build "everything from new wireless radios to nee optical fiber equipment." The designs, according to Facebook, will be open source so any telecom firm can use them. + +As part of the [Open Mainframe Project][6], IBM has open sourced the code for its Anomaly Detection Engine (ADE) for Linux logs. [According to IBM][7], "ADE detects anomalous time slices and messages in Linux logs using statistical learning" to detect suspicious behaviour. You can grab the [source code for ADE][8] from GitHub. + +### European Union to fund research + +The European Research Council, the European Union's science and technology funding body, is [funding four open source research projects][9] to the tune of about €2 million. According to joinup.ec.europa.eu, the projects being funded are: + +- A code audit of Mozilla's open source Rust programming language + +- An initiative at INRIA (France's national computer science research center) studying secure programming + +- A project at Austria's Technische Universitat Graz testing "ways to secure code against attacks that exploit certain properties of the computer hardware" + +- The "development of techniques to prove popular cryptographic protocols and schemes" at IST Austria + +### In other news + +- [Infosys' newest weapon: open source][10] + +- [Intel demonstrates Android smartphone running a Linux desktop][11] + +- [BeeGFS file system goes open source][12] + +A big thanks, as always, to the Opensource.com moderators and staff for their help this week. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/2/weekly-news-feb-26 + +作者:[Scott Nesbitt][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/scottnesbitt +[1]: http://www.zdnet.com/article/the-linux-foundations-zephyr-project-building-an-operating-system-for-iot-devices/ +[2]: http://www.linuxfoundation.org/news-media/announcements/2016/02/linux-foundation-announces-project-build-real-time-operating-system +[3]: http://venturebeat.com/2016/02/24/yahoo-open-sources-caffeonspark-deep-learning-framework-for-hadoop/ +[4]: https://github.com/yahoo/CaffeOnSpark +[5]: http://www.wired.com/2016/02/facebook-open-source-wireless-gear-forge-5g-world/ +[6]: https://www.openmainframeproject.org/ +[7]: http://openmainframeproject.github.io/ade/ +[8]: https://github.com/openmainframeproject/ade +[9]: https://joinup.ec.europa.eu/node/149541 +[10]: http://www.businessinsider.in/Exclusive-Infosys-is-using-Open-Source-as-its-mostlethal-weapon-yet/articleshow/51109129.cms +[11]: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ +[12]: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/ From 9b8154162c9ac491b4116709a3c16da2b44bcb60 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 27 Feb 2016 18:35:13 +0800 Subject: [PATCH 180/582] =?UTF-8?q?20160227-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to use Python to hack your Eclipse IDE.md | 215 ++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 sources/tech/20160226 How to use Python to hack your Eclipse IDE.md diff --git a/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md b/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md new file mode 100644 index 0000000000..770c6db479 --- /dev/null +++ b/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md @@ -0,0 +1,215 @@ +How to use Python to hack your Eclipse IDE +============================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/lightbulb_computer_person_general_.png?itok=ZY3UuQQa) + +The Eclipse Advanced Scripting Environment ([EASE][1]) project is a new but powerful set of plugins that enables you to quickly hack your Eclipse IDE. + +Eclipse is a powerful framework that can be extended in many different ways by using its built-in plugin mechanism. However, writing and deploying a new plugin can be cumbersome if all you want is a bit of additional functionality. Now, using EASE, there's a better way to do that, without having to write a single line of Java code. EASE provides a way to easily automate workbench functionality using scripting languages such as Python or Javascript. + +In this article, based on my [talk][2] at EclipseCon North America this year, I'll cover the basics of how to set up your Eclipse environment with Python and EASE and look at a few ideas to supercharge your IDE with the power of Python. + +### Setup and run "Hello World" + +The examples in this article are based on the Java-implementation of Python, Jython. You can install EASE directly into your existing Eclipse IDE. In this example we use Eclipse [Mars][3] and install EASE itself, its modules and the Jython engine. + +From within the Eclipse Install Dialog (`Help>Install New Software`...), install EASE: [http://download.eclipse.org/ease/update/nightly][4] + +And, select the following components: + +- EASE Core feature + +- EASE core UI feature + +- EASE Python Developer Resources + +- EASE modules (Incubation) + +This will give you EASE and its modules. The main one we are interested in is the Resource module that gives you access to the Eclipse workspace, projects, and files API. + +![](https://opensource.com/sites/default/files/1_installease_nightly.png) + + +After those have been successfully installed, next install the EASE Jython engine: [https://dl.bintray.com/pontesegger/ease-jython/][5]. Once the plugins are installed, test EASE out. Create a new project and add in a new file called hello.py with this content: + +``` +print "hello world" +``` + +Select the file, right click, and select 'Run as -> EASE script'. You should see "Hello World" appear in the console. + +Now you can start writing Python scripts that can access the workspace and projects. This power can be used for all sorts of hacks, below are just a few ideas. + +### Improve your code quality + +Maintaining good code quality can be a tiresome job especially when dealing with a large codebase or when lots of developers are involved. Some of this pain can be made easier with a script, such as for batch formatting for a set of files, or even fixing certain files to [remove unix line endings][6] for easy comparison in source control like git. Another nice thing to do is use a script to generate Eclipse markers to highlight code that could do with improving. Here's an example script that you could use to add task markers for all "printStackTrace" methods it detects in Java files. See the source code: [markers.py][7] + +To run, copy the file to your workspace, then right click and select 'Run as -> EASE script'. + +``` +loadModule('/System/Resources') +``` + +from org.eclipse.core.resources import IMarker + +``` +for ifile in findFiles("*.java"): + file_name = str(ifile.getLocation()) + print "Processing " + file_name + with open(file_name) as f: + for line_no, line in enumerate(f, start=1): + if "printStackTrace" in line: + marker = ifile.createMarker(IMarker.TASK) + marker.setAttribute(IMarker.TRANSIENT, True) + marker.setAttribute(IMarker.LINE_NUMBER, line_no) + marker.setAttribute(IMarker.MESSAGE, "Fix in Sprint 2: " + line.strip()) + +``` + +If you have any java files with printStackTraces you will be able to see the newly created markers in the Tasks view and in the editor margin. + +![](https://opensource.com/sites/default/files/2_codequality.png) + +### Automate tedious tasks + +When you are working with several projects you may want to automate some tedious, repetitive tasks. Perhaps you need to add in a copyright header to the beginning of each source file, or update source files when adopting a new framework. For instance, when we first switched to using Tycho and Maven, we had to add a pom.xml to each project. This is easily done using a few lines of Python. Then when Tycho provided support for pom-less builds, we wanted to remove unnecessary pom files. Again, a few lines of Python script enabled this. As an example, here is a script which adds a README.md file to every open project in your workspace, noting if they are Java or Python projects. See the source code: [add_readme.py][8]. + +To run, copy the file to your workspace, then right click and select 'Run as -> EASE script'. + +loadModule('/System/Resources') + +``` +for iproject in getWorkspace().getProjects(): + if not iproject.isOpen(): + continue + + ifile = iproject.getFile("README.md") + + if not ifile.exists(): + contents = "# " + iproject.getName() + "\n\n" + if iproject.hasNature("org.eclipse.jdt.core.javanature"): + contents += "A Java Project\n" + elif iproject.hasNature("org.python.pydev.pythonNature"): + contents += "A Python Project\n" + writeFile(ifile, contents) +``` + +The result should be that every open project will have a README.md file, with Java and Python projects having an additional descriptive line. + +![](https://opensource.com/sites/default/files/3_tedioustask.png) + +### Prototype new features + +You can also use a Python script to hack a quick-fix for some much wanted functionality, or as a prototype to help demonstrate to your team or users how you envision a feature. For instance, one feature Eclipse IDE doesn't currently support is auto-save on the current file you are working on. Although this feature is in the works for future releases, you can have a quick and dirty version that autosaves every 30 seconds or when the editor is deactivated. Below is a snippet of the main method. See the full source: [autosave.py][9] + +``` +def save_dirty_editors(): + workbench = getService(org.eclipse.ui.IWorkbench) + for window in workbench.getWorkbenchWindows(): + for page in window.getPages(): + for editor_ref in page.getEditorReferences(): + part = editor_ref.getPart(False) + if part and part.isDirty(): + print "Auto-Saving", part.getTitle() + part.doSave(None) +``` + +Before running this script you will need to turn on the 'Allow Scripts to run code in UI thread' setting by checking the box under Window > Preferences > Scripting. Then you can add the file to your workspace, right click on it and select 'Run As>EASE Script'. A save message is printed out in the Console view every time an editor is saved. To turn off the autosave just stop the script by pressing the 'Terminate' red square button in the Console view. + +![](https://opensource.com/sites/default/files/4_prototype.png) + +### Quickly extend the user interface with custom buttons, menus, etc + +One of the best things about EASE is that it allows you to take your scripts and quickly hook them into UI elements of the IDE, for example, as a new button or new menu item. No need to write Java or have a new plugin, just add a couple of lines to your script header—it's that simple. + +Here's an example for a simplistic script that creates us three new projects. + +``` +# name : Create fruit projects +# toolbar : Project Explorer +# description : Create fruit projects + +loadModule("/System/Resources") + +for name in ["banana", "pineapple", "mango"]: + createProject(name) +``` + +The comment lines specify to EASE to add a button to the Project Explorer toolbar. Here's another script that adds a button to the same toolbar to delete those three projects. See the source files: [createProjects.py][10] and [deleteProjects.py][11] + +``` +# name :Delete fruit projects +# toolbar : Project Explorer +# description : Get rid of the fruit projects + +loadModule("/System/Resources") + +for name in ["banana", "pineapple", "mango"]: + project = getProject(name) + project.delete(0, None) +``` + +To get the buttons to appear, add the two script files to a new project—let's call it 'ScriptsProject'. Then go to Windows > Preference > Scripting > Script Locations. Click on the 'Add Workspace' button and select the ScriptsProject. This project now becomes a default location for locating script files. You should see the buttons show up in the Project Explorer without needing to restart your IDE. You should be able to quickly create and delete the projects using your newly added buttons. + +![](https://opensource.com/sites/default/files/5_buttons.png) + +### Integrate with third-party tools + +Every now and then you may need to use a tool outside the Eclipse ecosystem (sad but true, it has a lot but it does not do everything). For those occasions it might be quite handy to wrap calling that call to the tool in a script. Here's an example that allows you to integrate with explorer.exe, and add it to the content menu so you could instantly open a file browser using the current selection. See the source code: [explorer.py][12] + +``` +# name : Explore from here +# popup : enableFor(org.eclipse.core.resources.IResource) +# description : Start a file browser using current selection +loadModule("/System/Platform") +loadModule('/System/UI') + +selection = getSelection() +if isinstance(selection, org.eclipse.jface.viewers.IStructuredSelection): + selection = selection.getFirstElement() + +if not isinstance(selection, org.eclipse.core.resources.IResource): + selection = adapt(selection, org.eclipse.core.resources.IResource) + +if isinstance(selection, org.eclipse.core.resources.IFile): + selection = selection.getParent() + +if isinstance(selection, org.eclipse.core.resources.IContainer): + runProcess("explorer.exe", [selection.getLocation().toFile().toString()]) +``` + +To get the menu to appear, add the script to a new project—let's call it 'ScriptsProject'. Then go to Windows > Preference > Scripting > Script Locations. Click on the 'Add Workspace' button and select the ScriptsProject. You should see the new menu item show up in the context menu when you right-click on a file. Select this action to bring up a file browser. (Note this functionality already exists in Eclipse but this example is one you could adapt to other third-party tools). + +![](https://opensource.com/sites/default/files/6_explorer.png) + +The Eclipse Advanced Scripting Environment provides a great way to get more out of your Eclipse IDE by leveraging the power of Python. It is a project in its infancy so there is so much more to come. Learn more [about the project][13] and get involved by signing up for the [forum][14]. + +I'll be talking more about EASE at [Eclipsecon North America][15] 2016. My talk [Scripting Eclipse with Python][16] will go into how you can use not just Jython, but C-Python and how this functionality can be extended specifically for scientific use-cases. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/2/how-use-python-hack-your-ide + +作者:[Tracy Miranda][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/tracymiranda +[1]: https://eclipse.org/ease/ +[2]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python +[3]: https://www.eclipse.org/downloads/packages/eclipse-ide-eclipse-committers-451/mars1 +[4]: http://download.eclipse.org/ease/update/nightly +[5]: https://dl.bintray.com/pontesegger/ease-jython/ +[6]: http://code.activestate.com/recipes/66434-change-line-endings/ +[7]: https://gist.github.com/tracymiranda/6556482e278c9afc421d +[8]: https://gist.github.com/tracymiranda/f20f233b40f1f79b1df2 +[9]: https://gist.github.com/tracymiranda/e9588d0976c46a987463 +[10]: https://gist.github.com/tracymiranda/55995daaea9a4db584dc +[11]: https://gist.github.com/tracymiranda/baa218fc2c1a8e898194 +[12]: https://gist.github.com/tracymiranda/8aa3f0fc4bf44f4a5cd3 +[13]: https://eclipse.org/ease/ +[14]: https://dev.eclipse.org/mailman/listinfo/ease-dev +[15]: https://www.eclipsecon.org/na2016 +[16]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python From 6886aaf9320f1d315b9c773e1556665fcd8b3487 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 27 Feb 2016 19:49:12 +0800 Subject: [PATCH 181/582] =?UTF-8?q?=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...om the command line on Debian or Ubuntu.md | 187 ++++++++++++------ 1 file changed, 130 insertions(+), 57 deletions(-) diff --git a/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md b/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md index 6f9f3690cb..aa157a4969 100644 --- a/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md +++ b/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md @@ -1,67 +1,90 @@ 怎样在ubuntu和debian中用命令行使用KVM ================================================================================ -有很多不同的方式去管理运行在KVM管理程序上的虚拟机。例如,virt-manager就是一个流行的基于图形用户界面的前端虚拟机管理工具。然而,如果你想要在没有图形窗口的服务器环境下使用KVM,那么基于图形用户界面的解决方案显然是行不通的。事实上,你可以纯粹的使用包装了kvm命令行脚本的命令行来管理KVM虚拟机。作为替代方案,你可以使用virsh这个容易使用的命令行用户接口来管理客户虚拟机。在virsh中,它通过和libvirtd服务通信来达到控制虚拟机的目的,而libvirtd可以控制几个不同的虚拟机管理器,包括KVM,Xen,QEMU,LXC和OpenVZ。 - 当你想要对虚拟机的前期准备和后期管理实现自动化操作时,像virsh这样的命令行管理工具是非常有用的。同样,virsh支持多个管理器的事实也意味着你可以通过相同的virsh接口去管理不同的虚拟机管理器。 - 在这篇文章中,我会示范**怎样在ubuntu和debian上通过使用virsh命令行去运行KVM**。 + +有很多不同的方式去管理运行在 KVM 管理程序上的虚拟机。例如,virt-manager 就是一个流行的基于图形界面的前端虚拟机管理工具。然而,如果你想要在没有图形窗口的服务器环境下使用 KVM ,那么基于图形界面的解决方案显然是行不通的。事实上,你可以纯粹的使用包装了 kvm 命令行脚本的命令行来管理 KVM 虚拟机。作为替代方案,你可以使用 virsh 这个容易使用的命令行程序来管理客户虚拟机。在 virsh 中,它通过和 libvirtd 服务通信来达到控制虚拟机的目的,而 libvirtd 可以控制多个不同的虚拟机管理器,包括 KVM,Xen,QEMU,LXC 和 OpenVZ。 + +当你想要对虚拟机的前期准备和后期管理实现自动化操作时,像 virsh 这样的命令行管理工具是非常有用的。同样,virsh 支持多个管理器也就意味着你可以通过相同的 virsh 接口去管理不同的虚拟机管理器。 + +在这篇文章中,我会示范**怎样在ubuntu和debian上通过使用virsh命令行去运行KVM**。 ### 第一步:确认你的硬件平台支持虚拟化 ### -作为第一步,首先要确认你的主机CPU配备了硬件虚拟化拓展(e.g.,Intel VT或者AMD-V),这是KVM对硬件的要求。下面的命令可以检查硬件是否支持虚拟化。 +第一步,首先要确认你的 CPU 支持硬件虚拟化扩展(e.g.,Intel VT 或者 AMD-V),这是 KVM 对硬件的要求。下面的命令可以检查硬件是否支持虚拟化。 +``` $ egrep '(vmx|svm)' --color /proc/cpuinfo +``` ![](https://c2.staticflickr.com/2/1505/24050288606_758a44c4c6_c.jpg) - 如果在输出中不包含vmx或者svm标识,那么就意味着你的主机cpu不支持硬件虚拟化。因此你不能在你的机器上使用KVM。确认了主机cpu存在vmx或者svm之后,接下来开始安装KVM。 -对于KVM来说,它不要求运行在拥有64位内核系统的主机上,但是通常我们会推荐在64位系统的主机上面运行KVM。 +如果在输出中不包含 vmx 或者 svm 标识,那么就意味着你的 cpu 不支持硬件虚拟化。因此你不能在你的机器上使用 KVM 。确认了 cpu 支持 vmx 或者 svm 之后,接下来开始安装 KVM。 + +对于 KVM 来说,它不要求运行在拥有 64 位内核系统的主机上,但是通常我们会推荐在 64 位系统的主机上面运行 KVM。 ### 第二步:安装KVM ### -使用apt-get安装KVM和相关的用户空间工具。 +使用 `apt-ge` 安装 KVM 和相关的用户空间工具。 +``` $ sudo apt-get install qemu-kvm libvirt-bin +``` -安装期间,libvirtd组(在debian上是libvirtd-qemu组)将会被创建,并且你的用户id将会被自动添加到该组中。这样做的目的是让你可以以一个普通用户而不是root用户的身份去管理虚拟机。你可以使用id命令来确认这一点,下面将会告诉你怎么去显示你的组id: +安装期间,libvirtd 用户组(在 debian 上是 libvirtd-qemu 用户组)将会被创建,并且你的用户 id 将会被自动添加到该组中。这样做的目的是让你可以以一个普通用户而不是 root 用户的身份去管理虚拟机。你可以使用 `id` 命令来确认这一点,下面将会告诉你怎么去显示你的组 id: +``` $ id +``` ![](https://c2.staticflickr.com/6/5597/15432586092_64dfb867d3_c.jpg) -如果因为某些原因,libvirt(在debian中是libvirt-qemu)没有在你的组id中被找到,你也可以手动将你自己添加到对应的组中,如下所示: -在ubuntu上: +如果因为某些原因,libvirt(在 debian 中是 libvirt-qemu)没有在你的组 id 中被找到,你也可以手动将你自己添加到对应的组中,如下所示: +在 ubuntu 上: + +``` $ sudo adduser [youruserID] libvirtd +``` -在debian上: +在 debian 上: +``` $ sudo adduser [youruserID] libvirt-qemu +``` -按照如下形式重修载入更新后的组成员关系。如果要求输入密码,那么输入你的登陆密码即可。 +按照如下命令重新载入更新后的组成员关系。如果要求输入密码,那么输入你的登陆密码即可。 +``` $ exec su -l $USER +``` -这时,你应该可以以普通用户的身份去执行virsh了。做一个如下所示的测试,这个命令将会以列表的形式列出可用的虚拟机(当前的列表是空的)。如果你没有遇到权限问题,那意味着迄今为止一切都是正常的。 +这时,你应该可以以普通用户的身份去执行 virsh 了。做一个如下所示的测试,这个命令将会以列表的形式列出可用的虚拟机(当前的列表是空的)。如果你没有遇到权限问题,那意味着到目前为止一切都是正常的。 $ virsh list ---------- Id Name State - ---------------------------------------------------- +---------------------------------------------------- ### 第三步:配置桥接网络 ### -为了使KVM虚拟机能够访问外部网络,一种方法是通过在KVM宿主机上创建Linux桥来实现。创建之后的桥能够将虚拟机的虚拟网卡和宿主机的物理网卡连接起来,因此,虚拟机能够发送和接受由物理网卡发送过来的流量数据包。这种方式叫做网桥连接。 -下面将告诉你如何创建并且配置网桥,我们称它为br0. +为了使 KVM 虚拟机能够访问外部网络,一种方法是通过在 KVM 宿主机上创建 Linux 桥来实现。创建之后的桥能够将虚拟机的虚拟网卡和宿主机的物理网卡连接起来,因此,虚拟机能够发送和接收由物理网卡传输的数据包。这种方式叫做网络桥接。 + +下面将告诉你如何创建并且配置网桥,我们创建一个网桥称它为 br0. + 首先,安装一个必需的包,然后用命令行创建一个网桥。 +``` $ sudo apt-get install bridge-utils $ sudo brctl addbr br0 +``` -下一步就是配置已经创建好的网桥,即修改位于/etc/network/interfaces的配置文件。我们需要将该桥接网卡设置成开机启动。为了修改该配置文件,你需要关闭你的操作系统上的网络管理器(如果你在使用它的话)。跟随[操作指南][1]的说明去关闭网络管理器。 - 关闭网络管理器之后,接下来就是通过修改配置文件来配置网桥了。 +下一步就是配置已经创建好的网桥,即修改位于 `/etc/network/interfaces` 的配置文件。我们需要将该桥接网卡设置成开机启动。为了修改该配置文件,你需要关闭你的操作系统上的网络管理器(如果你在使用它的话)。跟随[操作指南][1]的说明去关闭网络管理器。 +关闭网络管理器之后,接下来就是通过修改配置文件来配置网桥了。 + +``` #auto eth0 #iface eth0 inet dhcp @@ -71,23 +94,28 @@ bridge_stp off bridge_fd 0 bridge_maxwait 0 +``` +在上面的配置中,我假设 eth0 是主要网卡,它也是连接到外网的网卡,同样,我假设 eth0 将会通过 DHCP 协议自动获取 ip 地址。注意,之前在 `/etc/network/interfaces` 中还没有对 eth0 进行任何配置。桥接网卡 br0 引用了 eth0 的配置,而 eth0 也会受到 br0 的制约。 -在上面的配置中,我假设eth0是主要网卡,它也是连接到外网的网卡,同样,我假设eth0将会通过DHCP得到它的ip地址。注意,之前在/etc/network/interfaces中还没有对eth0进行任何配置。桥接网卡br0引用了eth0的配置,而eth0也会受到br0的制约。 -重启网络服务,并确认网桥已经被成功的配置好。如果成功的话,br0的ip地址将会是eth0的被自动分配的ip地址,而且eth0不会被分配任何ip地址。 +重启网络服务,并确认网桥已经被成功的配置好。如果成功的话,br0 的 ip 地址将会是 eth0 自动分配的 ip 地址,而且 eth0 不会被分配任何 ip 地址。 +``` $ sudo /etc/init.d/networking restart $ ifconfig +``` -如果因为某些原因,eth0仍然保留了之前分配给了br0的ip地址,那么你可能必须明确的删除eth0的ip地址。 +如果因为某些原因,eth0 仍然保留了之前分配给了 br0 的 ip 地址,那么你可能必须手动删除 eth0 的 ip 地址。 ![](https://c2.staticflickr.com/2/1698/23780708850_66cd7ba6ea_c.jpg) -###第四步:用命令行创建一个虚拟机 ### +### 第四步:用命令行创建一个虚拟机 ### -对于虚拟机来说,它的配置信息被存储在它对应的xml文件中。因此,创建一个虚拟机的第一步就是准备一个与主机名对应的xml文件。 -下面是一个示例xml文件,你可以根据需要手动修改它。 - +对于虚拟机来说,它的配置信息被存储在它对应的xml文件中。因此,创建一个虚拟机的第一步就是准备一个与虚拟机对应的 xml 文件。 + +下面是一个示例 xml 文件,你可以根据需要手动修改它。 + +``` alice f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa @@ -134,55 +162,69 @@ +``` 上面的主机xml配置文件定义了如下的虚拟机内容。 -- 1GB内存,一个虚拟cpu和一个硬件驱动。 -- Disk image:/home/dev/images/alice.img。 -- Boot from CD-ROM(/home/dev/iso/CentOS-6.5-x86_64-minomal.iso)。 -- Networking:一个桥接到br0的虚拟网卡。 -- 通过VNC远程访问。 -中的UUID字符串可以随机生成。为了得到一个随机的uuid字符串,你可能需要使用uuid命令行工具。 +- 1GB内存,一个虚拟cpu和一个硬件驱动 +- Disk image:`/home/dev/images/alice.img` + +- Boot from CD-ROM(`/home/dev/iso/CentOS-6.5-x86_64-minomal.iso`) + +- Networking:一个桥接到 br0 的虚拟网卡 + +- 通过 VNC 远程访问 + +`` 中的 UUID 字符串可以随机生成。为了得到一个随机的 uuid 字符串,你可能需要使用 uuid 命令行工具。 + +``` $ sudo apt-get install uuid $ uuid +``` 生成一个主机xml配置文件的方式就是通过一个已经存在的虚拟机来导出它的xml配置文件。如下所示。 +``` $ virsh dumpxml alice > bob.xml +``` ![](https://c2.staticflickr.com/6/5808/23968234602_25e8019ec8_c.jpg) -###第五步:使用命令行启动虚拟机### +### 第五步:使用命令行启动虚拟机 ### -在启动虚拟机之前,我们需要创建它的初始磁盘镜像。为此,你需要使用qemu-img命令来生成一个你已经安装的qemu-kvm镜像。下面的命令将会创建10GB大小的空磁盘,并且它是qcow2格式的。 +在启动虚拟机之前,我们需要创建它的初始磁盘镜像。为此,你需要使用 qemu-img 命令来生成一个 qemu-kvm 镜像。下面的命令将会创建 10 GB 大小的空磁盘,并且它是 qcow2 格式的。 +``` $ qemu-img create -f qcow2 /home/dev/images/alice.img 10G +``` -使用qcow2格式的磁盘镜像的好处就是它在创建之初并不会给它分配全部大小磁盘容量(这里是10GB),而是随着虚拟机中文件的增加而逐渐增大。因此,它对空间的使用更加有效。 -现在,你可以准备通过使用之前创建的xml配置文件启动你的虚拟机了。下面的命令将会创建一个虚拟机,然后自动启动它。 +使用 qcow2 格式的磁盘镜像的好处就是它在创建之初并不会给它分配全部大小磁盘容量(这里是 10 GB),而是随着虚拟机中文件的增加而逐渐增大。因此,它对空间的使用更加有效。 +现在,你可以通过使用之前创建的 xml 配置文件启动你的虚拟机了。下面的命令将会创建一个虚拟机,然后自动启动它。 + +``` $ virsh create alice.xml - ----------- - Domain alice created from alice.xml +``` -**注意**:如果你对一个已经存在的虚拟机运行了上面的命令,那么这个操作将会在没有警告信息的情况下抹去那个已经存在的虚拟机的全部信息。如果你已经创建了一个虚拟机,你可能会使用下面的命令来启动虚拟机。 +**注意**: 如果你对一个已经存在的虚拟机执行了了上面的命令,那么这个操作将会在没有任何警告的情况下抹去那个已经存在的虚拟机的全部信息。如果你已经创建了一个虚拟机,你可能会使用下面的命令来启动虚拟机。 +``` $ virsh start alice.xml +``` 使用如下命令确认一个新的虚拟机已经被创建并成功的被启动。 +``` $ virsh list - ----------- +``` Id Name State ---------------------------------------------------- 3 alice running -同样,使用如下命令确认你的虚拟机的虚拟网卡已经被成功的添加到了你先前创建的br0网桥中。 +同样,使用如下命令确认你的虚拟机的虚拟网卡已经被成功的添加到了你先前创建的 br0 网桥中。 $ sudo brctl show @@ -193,59 +235,82 @@ 为了远程访问一个正在运行的虚拟机的控制台,你可以使用VNC客户端。 首先,你需要使用如下命令找出用于虚拟机的VNC端口号。 +``` $ sudo netstat -nap | egrep '(kvm|qemu)' +``` ![](https://c2.staticflickr.com/6/5633/23448144274_49045bc868_c.jpg) -在这个例子中,用于alice虚拟机的VNC端口号是5900 -然后启动一个VNC客户端,连接到一个端口号为5900的VNC服务器。在我们的例子中,虚拟机支持由CentOS光盘文件启动。 +在这个例子中,用于 alice 虚拟机的 VNC 端口号是 5900 + 然后启动一个VNC客户端,连接到一个端口号为5900的VNC服务器。在我们的例子中,虚拟机支持由CentOS光盘文件启动。 ![](https://c2.staticflickr.com/2/1533/24076369675_99408972a4_c.jpg) -### 使用virsh管理虚拟机 ### +### 使用 virsh 管理虚拟机 ### -下面列出了virsh命令的常规用法 +下面列出了 virsh 命令的常规用法 创建客户机并且启动虚拟机: +``` $ virsh create alice.xml +``` 停止虚拟机并且删除客户机 +``` $ virsh destroy alice +``` 关闭虚拟机(不用删除它) +``` $ virsh shutdown alice +``` 暂停虚拟机 +``` $ virsh suspend alice +``` 恢复虚拟机 +``` $ virsh resume alice +``` -访问正在运行的虚拟机的登陆控制台 +访问正在运行的虚拟机的控制台 +``` $ virsh console alice +``` 设置虚拟机开机启动: +``` $ virsh autostart alice +``` 查看虚拟机的详细信息 +``` $ virsh dominfo alice +``` 编辑虚拟机的配置文件: +``` $ virsh edit alice +``` 上面的这个命令将会使用一个默认的编辑器来调用主机配置文件。该配置文件中的任何改变都将自动被libvirt验证其正确性。 你也可以在一个virsh会话中管理虚拟机。下面的命令会创建并进入到一个virsh会话中: +``` $ virsh -在virsh提示中,你可以使用任何virsh命令。 +``` + +在 virsh 提示中,你可以使用任何 virsh 命令。 ![](https://c2.staticflickr.com/6/5645/23708565129_b1ef968b30_c.jpg) @@ -255,33 +320,41 @@ error: internal error: no supported architecture for os type 'hvm' - 如果你的硬件不支持虚拟化的话你可能就会遇到这个错误。(例如,Intel VT或者AMD-V),这是运行KVM所必需的。如果你遇到了这个错误,而你的cpu支持虚拟化,那么这里可以给你一些可用的解决方案: + 如果你的硬件不支持虚拟化的话你可能就会遇到这个错误。(例如,Intel VT或者AMD-V),这是运行KVM所必需的。如果你遇到了这个错误,而你的cpu支持虚拟化,那么这里可以给你一些可用的解决方案: -首先,检查你的内核模块是否丢失。 + 首先,检查你的内核模块是否丢失。 + ``` $ lsmod | grep kvm + ``` -如果内核模块没有加载,你必须按照如下方式加载它。 + 如果内核模块没有加载,你必须按照如下方式加载它。 + ``` $ sudo modprobe kvm_intel (for Intel processor) $ sudo modprobe kvm_amd (for AMD processor) + ``` -第二个解决方案就是添加“--connect qemu:///system”参数到virsh命令中,如下所示。当你正在你的硬件平台上使用超过一个虚拟机管理器的时候就需要添加这个参数(例如,VirtualBox,VMware)。 + 第二个解决方案就是添加 `--connect qemu:///system` 参数到 `virsh` 命令中,如下所示。当你正在你的硬件平台上使用超过一个虚拟机管理器的时候就需要添加这个参数(例如,VirtualBox,VMware)。 + + ``` $ virsh --connect qemu:///system create alice.xml + ``` 2. 当我试着访问我的虚拟机的登陆控制台的时候遇到了错误: +``` $ virsh console alice + error: internal error: cannot find character device +``` ----------- + 这个错误发生的原因是你没有在你的虚拟机配置文件中定义控制台设备。在 xml 文件中加上下面的内部设备部分即可。 - error: internal error: cannot find character device - -这个错误发生的原因是你没有在你的虚拟机配置文件中定义控制台设备。在xml文件中加上下面的内部设备部分即可。 - +``` +``` -------------------------------------------------------------------------------- From ee145429e26dbea845c3a577d702fa19d0486ad7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 27 Feb 2016 19:51:51 +0800 Subject: [PATCH 182/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... KVM from the command line on Debian or Ubuntu.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md b/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md index aa157a4969..6063bb7810 100644 --- a/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md +++ b/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md @@ -343,26 +343,26 @@ 2. 当我试着访问我的虚拟机的登陆控制台的时候遇到了错误: -``` + ``` $ virsh console alice error: internal error: cannot find character device -``` + ``` 这个错误发生的原因是你没有在你的虚拟机配置文件中定义控制台设备。在 xml 文件中加上下面的内部设备部分即可。 -``` + ``` -``` + ``` -------------------------------------------------------------------------------- via: http://xmodulo.com/use-kvm-command-line-debian-ubuntu.html 作者:[Dan Nanni][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[kylepeng93 ](https://github.com/kylepeng93 ) +校对:[Ezio](https://github.com/oska874) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c6de07aab673c036d1b18bc9da638596038f2049 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 27 Feb 2016 19:53:19 +0800 Subject: [PATCH 183/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=EF=BC=8C?= =?UTF-8?q?=E5=87=86=E5=A4=87=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04 How to use KVM from the command line on Debian or Ubuntu.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20160104 How to use KVM from the command line on Debian or Ubuntu.md (100%) diff --git a/translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md b/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md similarity index 100% rename from translated/tech/20160104 How to use KVM from the command line on Debian or Ubuntu.md rename to published/20160104 How to use KVM from the command line on Debian or Ubuntu.md From be2ed7eb8b54ea88849f7b4f56596980e545cb3c Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 27 Feb 2016 19:54:27 +0800 Subject: [PATCH 184/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=EF=BC=8C?= =?UTF-8?q?=E5=87=86=E5=A4=87=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... How to use KVM from the command line on Debian or Ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md b/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md index 6063bb7810..1f7a121b3a 100644 --- a/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md +++ b/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md @@ -1,5 +1,5 @@ -怎样在ubuntu和debian中用命令行使用KVM +怎样在 ubuntu 和 debian 中用命令行使用 KVM ================================================================================ 有很多不同的方式去管理运行在 KVM 管理程序上的虚拟机。例如,virt-manager 就是一个流行的基于图形界面的前端虚拟机管理工具。然而,如果你想要在没有图形窗口的服务器环境下使用 KVM ,那么基于图形界面的解决方案显然是行不通的。事实上,你可以纯粹的使用包装了 kvm 命令行脚本的命令行来管理 KVM 虚拟机。作为替代方案,你可以使用 virsh 这个容易使用的命令行程序来管理客户虚拟机。在 virsh 中,它通过和 libvirtd 服务通信来达到控制虚拟机的目的,而 libvirtd 可以控制多个不同的虚拟机管理器,包括 KVM,Xen,QEMU,LXC 和 OpenVZ。 From e6bcad3740501e940e567416602e8d678106b718 Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sat, 27 Feb 2016 21:51:18 +0800 Subject: [PATCH 185/582] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20151204 Review EXT4 vs. Btrfs vs. XFS.md | 66 ------------------- 1 file changed, 66 deletions(-) delete mode 100644 sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md diff --git a/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md deleted file mode 100644 index f6a568a55f..0000000000 --- a/sources/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md +++ /dev/null @@ -1,66 +0,0 @@ -ictlyh Translating -Review EXT4 vs. Btrfs vs. XFS -================================================================================ -![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/09/1385698302_funny_linux_wallpapers-593x445.jpg) - -To be honest, one of the things that comes last in people’s thinking is to look at which file system on their PC is being used. Windows users as well as Mac OS X users even have less reason for looking as they have really only 1 choice for their operating system which are NTFS and HFS+. Linux operating system, on the other side, has plenty of various file system options, with the current default is being widely used ext4. However, there is another push for changing the file system to something other which is called btrfs. But what makes btrfs better, what are other file systems, and when can we see the distributions making the change? - -Let’s first have a general look at file systems and what they really do, then we will make a small comparison between famous file systems. - -### So, What Do File Systems Do? ### - -Just in case if you are unfamiliar about what file systems really do, it is actually simple when it is summarized. The file systems are mainly used in order for controlling how the data is stored after any program is no longer using it, how access to the data is controlled, what other information (metadata) is attached to the data itself, etc. I know that it does not sound like an easy thing to be programmed, and it is definitely not. The file systems are continually still being revised for including more functionality while becoming more efficient in what it simply needs to do. Therefore, however, it is a basic need for all computers, it is not quite as basic as it sounds like. - -### Why Partitioning? ### - -Many people have a vague knowledge of what the partitions are since each operating system has an ability for creating or removing them. It can seem strange that Linux operating system uses more than 1 partition on the same disk, even while using the standard installation procedure, so few explanations are called for them. One of the main goals of having different partitions is achieving higher data security in the disaster case. - -By dividing your hard disk into partitions, the data may be grouped and also separated. When the accidents occur, only the data stored in the partition which got the hit will only be damaged, while data on the other partitions will survive most likely. These principles date from the days when the Linux operating system didn’t have a journaled file system and any power failure might have led to a disaster. - -The using of partitions will remain for security and the robustness reasons, then the breach on 1 part of the operating system does not automatically mean that whole computer is under risk or danger. This is currently most important factor for the partitioning process. For example, the users create scripts, the programs or web applications which start filling up the disk. If that disk contains only 1 big partition, then entire system may stop functioning if that disk is full. If the users store data on separate partitions, then only that data partition can be affected, while system partitions and the possible other data partitions will keep functioning. - -Mind that to have a journaled file system will only provide data security in case if there is a power failure as well as sudden disconnection of the storage devices. Such will not protect the data against the bad blocks and the logical errors in the file system. In such cases, the user should use a Redundant Array of Inexpensive Disks (RAID) solution. - -### Why Switch File Systems? ### - -The ext4 file system has been an improvement for the ext3 file system that was also an improvement over the ext2 file system. While the ext4 is a very solid file system which has been the default choice for almost all distributions for the past few years, it is made from an aging code base. Additionally, Linux operating system users are seeking many new different features in file systems which ext4 does not handle on its own. There is software which takes care of some of such needs, but in the performance aspect, being able to do such things on the file system level could be faster. - -### Ext4 File System ### - -The ext4 has some limits which are still a bit impressive. The maximum file size is 16 tebibytes (which is roughly 17.6 terabytes) and is much bigger than any hard drive a regular consumer can currently buy. While, the largest volume/partition you can make with ext4 is 1 exbibyte (which is roughly 1,152,921.5 terabytes). The ext4 is known to bring the speed improvements over ext3 by using multiple various techniques. Like in the most modern file systems, it is a journaling file system that means that it will keep a journal of where the files are mainly located on the disk and of any other changes that happen to the disk. Regardless all of its features, it doesn’t support the transparent compression, the data deduplication, or the transparent encryption. The snapshots are supported technically, but such feature is experimental at best. - -### Btrfs File System ### - -The btrfs, many of us pronounce it different ways, as an example, Better FS, Butter FS, or B-Tree FS. It is a file system which is completely made from scratch. The btrfs exists because its developers firstly wanted to expand the file system functionality in order to include snapshots, pooling, as well as checksums among the other things. While it is independent from the ext4, it also wants to build off the ideas present in the ext4 that are great for the consumers and the businesses alike as well as incorporate those additional features that will benefit everybody, but specifically the enterprises. For the enterprises who are using very large programs with very large databases, they are having a seemingly continuous file system across the multiple hard drives could be very beneficial as it will make a consolidation of the data much easier. The data deduplication could reduce the amount of the actual space data could occupy, and the data mirroring could become easier with the btrfs as well when there is a single and broad file system which needs to be mirrored. - -The user certainly can still choose to create multiple partitions so that he does not need to mirror everything. Considering that the btrfs will be able for spanning over the multiple hard drives, it is a very good thing that it can support 16 times more drive space than the ext4. A maximum partition size of the btrfs file system is 16 exbibytes, as well as maximum file size is 16 exbibytes too. - -### XFS File System ### - -The XFS file system is an extension of the extent file system. The XFS is a high-performance 64-bit journaling file system. The support of the XFS was merged into Linux kernel in around 2002 and In 2009 Red Hat Enterprise Linux version 5.4 usage of the XFS file system. XFS supports maximum file system size of 8 exbibytes for the 64-bit file system. There is some comparison of XFS file system is XFS file system can’t be shrunk and poor performance with deletions of the large numbers of files. Now, the RHEL 7.0 uses XFS as the default filesystem. - -### Final Thoughts ### - -Unfortunately, the arrival date for the btrfs is not quite known. But officially, the next-generation file system is still classified as “unstable”, but if the user downloads the latest version of Ubuntu, he will be able to choose to install on a btrfs partition. When the btrfs will be classified actually as “stable” is still a mystery, but users shouldn’t expect the Ubuntu to use the btrfs by default until it’s indeed considered “stable”. It has been reported that Fedora 18 will use the btrfs as its default file system as by the time of its release a file system checker for the btrfs should exist. There is a good amount of work still left for the btrfs, as not all the features are yet implemented and the performance is a little sluggish if we compare it to the ext4. - -So, which is better to use? Till now, the ext4 will be the winner despite the identical performance. But why? The answer will be the convenience as well as the ubiquity. The ext4 is still excellent file system for the desktop or workstation use. It is provided by default, so the user can install the operating system on it. Also, the ext4 supports volumes up to 1 Exabyte and files up to 16 Terabyte in size, so there’s still a plenty of room for the growth where space is concerned. - -The btrfs might offer greater volumes up to 16 Exabyte and improved fault tolerance, but, till now, it feels more as an add-on file system rather than one integrated into the Linux operating system. For example, the btrfs-tools have to be present before a drive will be formatted with the btrfs, which means that the btrfs is not an option during the Linux operating system installation though that could vary with the distribution. - -Even though the transfer rates are so important, there’s more to a just file system than speed of the file transfers. The btrfs has many useful features such as Copy-on-Write (CoW), extensive checksums, snapshots, scrubbing, self-healing data, deduplication, as well as many more good improvements that ensure the data integrity. The btrfs lacks the RAID-Z features of ZFS, so the RAID is still in an experimental state with the btrfs. For pure data storage, however, the btrfs is the winner over the ext4, but time still will tell. - -Till the moment, the ext4 seems to be a better choice on the desktop system since it is presented as a default file system, as well as it is faster than the btrfs when transferring files. The btrfs is definitely worth to look into, but to completely switch to replace the ext4 on desktop Linux might be few years later. The data farms and the large storage pools could reveal different stories and show the right differences between ext4, XCF, and btrfs. - -If you have a different or additional opinion, kindly let us know by commenting on this article. - --------------------------------------------------------------------------------- - -via: http://www.unixmen.com/review-ext4-vs-btrfs-vs-xfs/ - -作者:[M.el Khamlichi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.unixmen.com/author/pirat9/ From efb620868dd4ed32461fe143f3ddc2cb87e442ef Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 27 Feb 2016 21:52:17 +0800 Subject: [PATCH 186/582] PUB:20160224 Can we tackle the Zika virus with rapid, open research @name1e5s --- ...tackle the Zika virus with rapid, open research.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) rename {translated/tech => published}/20160224 Can we tackle the Zika virus with rapid, open research.md (52%) diff --git a/translated/tech/20160224 Can we tackle the Zika virus with rapid, open research.md b/published/20160224 Can we tackle the Zika virus with rapid, open research.md similarity index 52% rename from translated/tech/20160224 Can we tackle the Zika virus with rapid, open research.md rename to published/20160224 Can we tackle the Zika virus with rapid, open research.md index 8ed74fc15f..54cd0fe697 100644 --- a/translated/tech/20160224 Can we tackle the Zika virus with rapid, open research.md +++ b/published/20160224 Can we tackle the Zika virus with rapid, open research.md @@ -1,15 +1,15 @@ -我们能通过快速的,开放的研究战胜寨卡病毒吗? +我们能通过快速、开放的研究来战胜寨卡病毒吗? ============================================================ ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/OSDC_LifeScience_OpenScience_520x292_12268077_0614MM.png?itok=3ZD2Mce9) 关于寨卡病毒,最主要的问题就是我们对于它了解的太少了。这意味着我们需要尽快对它作出很多研究。 -寨卡病毒现已严重威胁到世界人民的健康。在 2015 年爆发之后,它就成为了全球卫生的紧急状况,并且这个病毒也可能与儿童的出生缺陷有关。根据维基百科,在这个病毒在 40 年代末期被发现以后,它对于人类的影响早在 1952 年就被观测到了。 +寨卡病毒现已严重威胁到世界人民的健康。在 2015 年爆发之后,它就成为了全球性的突发公共卫生事件,并且这个病毒也可能与儿童的出生缺陷有关。根据[维基百科][4],在这个病毒在 40 年代末期被发现以后,早在 1952 年就被观测到了对于人类的影响。 -在 2 月 10 日,开放杂志 PLoS [发布了一个声明][1],这个是声明是关于有关公共公众紧急状况的信息的共享。在此之后,刊登在开放期刊 F1000 的一篇文章 [开始了对于能治疗寨卡病毒的药物的研究][2],它开放的讨论寨卡病毒的状况以及对它进行研究的需要。那个来自 PLoS 的声明列出了超过 30 个开放了对于寨卡病毒的研究进度的数据的重要组织。并且世界卫生组织实施了对于提交到他们那里的资料的特别规定使得在一个[创作共用许可证下][3]公布。 +在 2 月 10 日,开放杂志 PLoS [发布了一个声明][1],这个是声明是关于有关公众紧急状况的信息共享。在此之后,刊登在研究期刊 F1000 的一篇文章 [对于能治疗寨卡病毒的开源药物(Open drug)的研究][2],它讨论了寨卡病毒及其开放研究的状况。那篇来自 PLoS 的声明列出了超过 30 个开放了对于寨卡病毒的研究进度的数据的重要组织。并且世界卫生组织实施了一个特别规定,以[创作共用许可证][3]公布提交到他们那里的资料。 -快速公布,无限制的重复利用,以及强调研究结果的传播是开放科研组织把他们的研究推出的战略性一步。看到一个需要我们给予关注的紧急状况的研究的开端是很令人受鼓舞的。 +快速公布,无限制的重复利用,以及强调研究结果的传播是推动开放科研社区的战略性一步。看到我们所关注的突发公共卫生事件能够以这样的方式开始是很令人受鼓舞的。 -------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ via: https://opensource.com/life/16/2/how-rapid-open-science-could-change-game-z 作者:[Marcus D. Hanwell][a] 译者:[name1e5s](https://github.com/name1e5s) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -25,3 +25,4 @@ via: https://opensource.com/life/16/2/how-rapid-open-science-could-change-game-z [1]: http://blogs.plos.org/plos/2016/02/statement-on-data-sharing-in-public-health-emergencies/ [2]: http://f1000research.com/articles/5-150/v1 [3]: https://creativecommons.org/licenses/by/3.0/igo/ +[4]: https://en.wikipedia.org/wiki/Zika_virus \ No newline at end of file From 1cb307ea85c53b1329c3d43edc375c4a08a437f7 Mon Sep 17 00:00:00 2001 From: cposture Date: Sun, 28 Feb 2016 11:30:55 +0800 Subject: [PATCH 187/582] Translated Data Structures in the Linux Kernel --- ...123 Data Structures in the Linux Kernel.md | 202 ------------------ 1 file changed, 202 deletions(-) delete mode 100644 sources/tech/20151123 Data Structures in the Linux Kernel.md diff --git a/sources/tech/20151123 Data Structures in the Linux Kernel.md b/sources/tech/20151123 Data Structures in the Linux Kernel.md deleted file mode 100644 index edc4c1a5a7..0000000000 --- a/sources/tech/20151123 Data Structures in the Linux Kernel.md +++ /dev/null @@ -1,202 +0,0 @@ -【Translating By cposture 2016-02-26】 -Data Structures in the Linux Kernel -================================================================================ - -Radix tree --------------------------------------------------------------------------------- - -As you already know linux kernel provides many different libraries and functions which implement different data structures and algorithms. In this part we will consider one of these data structures - [Radix tree](http://en.wikipedia.org/wiki/Radix_tree). There are two files which are related to `radix tree` implementation and API in the linux kernel: - -* [include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h) -* [lib/radix-tree.c](https://github.com/torvalds/linux/blob/master/lib/radix-tree.c) - -Lets talk about what a `radix tree` is. Radix tree is a `compressed trie` where a [trie](http://en.wikipedia.org/wiki/Trie) is a data structure which implements an interface of an associative array and allows to store values as `key-value`. The keys are usually strings, but any data type can be used. A trie is different from an `n-tree` because of its nodes. Nodes of a trie do not store keys; instead, a node of a trie stores single character labels. The key which is related to a given node is derived by traversing from the root of the tree to this node. For example: - - -``` -               +-----------+ -               |           | -               |    " "    | - | | -        +------+-----------+------+ -        |                         | -        |                         | -   +----v------+            +-----v-----+ -   |           |            |           | -   |    g      |            |     c     | - | | | | -   +-----------+            +-----------+ -        |                         | -        |                         | -   +----v------+            +-----v-----+ -   |           |            |           | -   |    o      |            |     a     | - | | | | -   +-----------+            +-----------+ -                                  | -                                  | -                            +-----v-----+ -                            |           | -                            |     t     | - | | -                            +-----------+ -``` - -So in this example, we can see the `trie` with keys, `go` and `cat`. The compressed trie or `radix tree` differs from `trie` in that all intermediates nodes which have only one child are removed. - -Radix tree in linux kernel is the datastructure which maps values to integer keys. It is represented by the following structures from the file [include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h): - -```C -struct radix_tree_root { - unsigned int height; - gfp_t gfp_mask; - struct radix_tree_node __rcu *rnode; -}; -``` - -This structure presents the root of a radix tree and contains three fields: - -* `height` - height of the tree; -* `gfp_mask` - tells how memory allocations will be performed; -* `rnode` - pointer to the child node. - -The first field we will discuss is `gfp_mask`: - -Low-level kernel memory allocation functions take a set of flags as - `gfp_mask`, which describes how that allocation is to be performed. These `GFP_` flags which control the allocation process can have following values: (`GF_NOIO` flag) means sleep and wait for memory, (`__GFP_HIGHMEM` flag) means high memory can be used, (`GFP_ATOMIC` flag) means the allocation process has high-priority and can't sleep etc. - -* `GFP_NOIO` - can sleep and wait for memory; -* `__GFP_HIGHMEM` - high memory can be used; -* `GFP_ATOMIC` - allocation process is high-priority and can't sleep; - -etc. - -The next field is `rnode`: - -```C -struct radix_tree_node { - unsigned int path; - unsigned int count; - union { - struct { - struct radix_tree_node *parent; - void *private_data; - }; - struct rcu_head rcu_head; - }; - /* For tree user */ - struct list_head private_list; - void __rcu *slots[RADIX_TREE_MAP_SIZE]; - unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS]; -}; -``` - -This structure contains information about the offset in a parent and height from the bottom, count of the child nodes and fields for accessing and freeing a node. This fields are described below: - -* `path` - offset in parent & height from the bottom; -* `count` - count of the child nodes; -* `parent` - pointer to the parent node; -* `private_data` - used by the user of a tree; -* `rcu_head` - used for freeing a node; -* `private_list` - used by the user of a tree; - -The two last fields of the `radix_tree_node` - `tags` and `slots` are important and interesting. Every node can contains a set of slots which are store pointers to the data. Empty slots in the linux kernel radix tree implementation store `NULL`. Radix trees in the linux kernel also supports tags which are associated with the `tags` fields in the `radix_tree_node` structure. Tags allow individual bits to be set on records which are stored in the radix tree. - -Now that we know about radix tree structure, it is time to look on its API. - -Linux kernel radix tree API ---------------------------------------------------------------------------------- - -We start from the datastructure initialization. There are two ways to initialize a new radix tree. The first is to use `RADIX_TREE` macro: - -```C -RADIX_TREE(name, gfp_mask); -```` - -As you can see we pass the `name` parameter, so with the `RADIX_TREE` macro we can define and initialize radix tree with the given name. Implementation of the `RADIX_TREE` is easy: - -```C -#define RADIX_TREE(name, mask) \ - struct radix_tree_root name = RADIX_TREE_INIT(mask) - -#define RADIX_TREE_INIT(mask) { \ - .height = 0, \ - .gfp_mask = (mask), \ - .rnode = NULL, \ -} -``` - -At the beginning of the `RADIX_TREE` macro we define instance of the `radix_tree_root` structure with the given name and call `RADIX_TREE_INIT` macro with the given mask. The `RADIX_TREE_INIT` macro just initializes `radix_tree_root` structure with the default values and the given mask. - -The second way is to define `radix_tree_root` structure by hand and pass it with mask to the `INIT_RADIX_TREE` macro: - -```C -struct radix_tree_root my_radix_tree; -INIT_RADIX_TREE(my_tree, gfp_mask_for_my_radix_tree); -``` - -where: - -```C -#define INIT_RADIX_TREE(root, mask) \ -do { \ - (root)->height = 0; \ - (root)->gfp_mask = (mask); \ - (root)->rnode = NULL; \ -} while (0) -``` - -makes the same initialziation with default values as it does `RADIX_TREE_INIT` macro. - -The next are two functions for inserting and deleting records to/from a radix tree: - -* `radix_tree_insert`; -* `radix_tree_delete`; - -The first `radix_tree_insert` function takes three parameters: - -* root of a radix tree; -* index key; -* data to insert; - -The `radix_tree_delete` function takes the same set of parameters as the `radix_tree_insert`, but without data. - -The search in a radix tree implemented in two ways: - -* `radix_tree_lookup`; -* `radix_tree_gang_lookup`; -* `radix_tree_lookup_slot`. - -The first `radix_tree_lookup` function takes two parameters: - -* root of a radix tree; -* index key; - -This function tries to find the given key in the tree and return the record associated with this key. The second `radix_tree_gang_lookup` function have the following signature - -```C -unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, - void **results, - unsigned long first_index, - unsigned int max_items); -``` - -and returns number of records, sorted by the keys, starting from the first index. Number of the returned records will not be greater than `max_items` value. - -And the last `radix_tree_lookup_slot` function will return the slot which will contain the data. - -Links ---------------------------------------------------------------------------------- - -* [Radix tree](http://en.wikipedia.org/wiki/Radix_tree) -* [Trie](http://en.wikipedia.org/wiki/Trie) - --------------------------------------------------------------------------------- - -via: https://github.com/0xAX/linux-insides/edit/master/DataStructures/radix-tree.md - -作者:[0xAX] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - From 938cbe4b34646dbf4d5c984afd65a28a92df8ce1 Mon Sep 17 00:00:00 2001 From: cposture Date: Sun, 28 Feb 2016 11:35:27 +0800 Subject: [PATCH 188/582] Translated Data Structures in the Linux Kernel --- ...123 Data Structures in the Linux Kernel.md | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 translated/tech/20151123 Data Structures in the Linux Kernel.md diff --git a/translated/tech/20151123 Data Structures in the Linux Kernel.md b/translated/tech/20151123 Data Structures in the Linux Kernel.md new file mode 100644 index 0000000000..78526e6d94 --- /dev/null +++ b/translated/tech/20151123 Data Structures in the Linux Kernel.md @@ -0,0 +1,198 @@ +Linux内核数据结构 +================================================================================ + +基数树 Radix tree +-------------------------------------------------------------------------------- +正如你所知道的,Linux内核提供了许多不同的库和函数,它们实现了不同的数据结构和算法。在这部分,我们将研究其中一种数据结构——[基数树 Radix tree](http://en.wikipedia.org/wiki/Radix_tree)。在Linux内核中,有两个与基数树实现和API相关的文件: + +* [include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h) +* [lib/radix-tree.c](https://github.com/torvalds/linux/blob/master/lib/radix-tree.c) + +让我们讨论什么是`基数树`吧。基数树是一种`压缩的字典树`,而[字典树](http://en.wikipedia.org/wiki/Trie)是实现了关联数组接口并允许以`键值对`方式存储值的一种数据结构。该键通常是字符串,但能够使用任何数据类型。字典树因为它的节点而与`n叉树`不同。字典树的节点不存储键;相反,字典树的一个节点存储单个字符的标签。与一个给定节点关联的键可以通过从根遍历到该节点获得。举个例子: + +``` +               +-----------+ +               |           | +               |    " "    | + | | +        +------+-----------+------+ +        |                         | +        |                         | +   +----v------+            +-----v-----+ +   |           |            |           | +   |    g      |            |     c     | + | | | | +   +-----------+            +-----------+ +        |                         | +        |                         | +   +----v------+            +-----v-----+ +   |           |            |           | +   |    o      |            |     a     | + | | | | +   +-----------+            +-----------+ +                                  | +                                  | +                            +-----v-----+ +                            |           | +                            |     t     | + | | +                            +-----------+ +``` + +因此在这个例子中,我们可以看到一个有着两个键`go`和`cat`的`字典树`。压缩的字典树或者`基数树`和`字典树`不同于所有只有一个孩子的中间节点都被删除。 + +Linu内核中的基数树是映射值到整形键的一种数据结构。[include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h)文件中的以下结构体表示了基数树: + +```C +struct radix_tree_root { + unsigned int height; + gfp_t gfp_mask; + struct radix_tree_node __rcu *rnode; +}; +``` + +这个结构体表示了一个基数树的根,并包含了3个域成员: + +* `height` - 树的高度; +* `gfp_mask` - 告诉如何执行动态内存分配; +* `rnode` - 孩子节点指针. + +我们第一个要讨论的域是`gfp_mask`: + +底层内核内存动态分配函数以一组标志作为` gfp_mask `,用于描述如何执行动态内存分配。这些控制分配进程的`GFP_`标志拥有以下值:(`GF_NOIO`标志)意味着睡眠等待内存,(`__GFP_HIGHMEM`标志)意味着高端内存能够被使用,(`GFP_ATOMIC`标志)意味着分配进程拥有高优先级并不能睡眠等等。 + +* `GFP_NOIO` - 睡眠等待内存 +* `__GFP_HIGHMEM` - 高端内存能够被使用; +* `GFP_ATOMIC` - 分配进程拥有高优先级并且不能睡眠; + +等等。 + +下一个域是`rnode`: + +```C +struct radix_tree_node { + unsigned int path; + unsigned int count; + union { + struct { + struct radix_tree_node *parent; + void *private_data; + }; + struct rcu_head rcu_head; + }; + /* For tree user */ + struct list_head private_list; + void __rcu *slots[RADIX_TREE_MAP_SIZE]; + unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS]; +}; +``` +这个结构体包含的信息有父节点中的偏移以及到底端(叶节点)的高度、孩子节点的个数以及用于访问和释放节点的域成员。这些域成员描述如下: + +* `path` - 父节点中的偏移和到底端(叶节点)的高度 +* `count` - 孩子节点的个数; +* `parent` - 父节点指针; +* `private_data` - 由树的用户使用; +* `rcu_head` - 用于释放节点; +* `private_list` - 由树的用户使用; + +`radix_tree_node`的最后两个成员——`tags`和`slots`非常重要且令人关注。Linux内核基数树的每个节点都包含一组存储指向数据指针的slots。Linux内核基数树实现的空slots存储`NULL`值。Linux内核中的基数树也支持与`radix_tree_node`结构体的`tags`域相关联的标签。标签允许在基数树存储的记录中设置各个位。 + +既然我们了解了基数树的结构,那么该是时候看一下它的API了。 + +Linux内核基数树API +--------------------------------------------------------------------------------- + +我们从结构体的初始化开始。有两种方法初始化一个新的基数树。第一种是使用`RADIX_TREE`宏: + +```C +RADIX_TREE(name, gfp_mask); +```` + +正如你所看到的,我们传递`name`参数,所以使用`RADIX_TREE`宏,我们能够定义和初始化基数树为给定的名字。`RADIX_TREE`的实现是简单的: + +```C +#define RADIX_TREE(name, mask) \ + struct radix_tree_root name = RADIX_TREE_INIT(mask) + +#define RADIX_TREE_INIT(mask) { \ + .height = 0, \ + .gfp_mask = (mask), \ + .rnode = NULL, \ +} +``` + +在`RADIX_TREE`宏的开始,我们使用给定的名字定义`radix_tree_root`结构体实例,并使用给定的mask调用`RADIX_TREE_INIT`宏。`RADIX_TREE_INIT`宏只是初始化`radix_tree_root`结构体为默认值和给定的mask而已。 + +第二种方法是亲手定义`radix_tree_root`结构体,并且将它和mask传给`INIT_RADIX_TREE`宏: + +```C +struct radix_tree_root my_radix_tree; +INIT_RADIX_TREE(my_tree, gfp_mask_for_my_radix_tree); +``` + +where: + +```C +#define INIT_RADIX_TREE(root, mask) \ +do { \ + (root)->height = 0; \ + (root)->gfp_mask = (mask); \ + (root)->rnode = NULL; \ +} while (0) +``` + +和`RADIX_TREE_INIT`宏所做的初始化一样,初始化为默认值。 + +接下来是用于从基数树插入和删除数据的两个函数: + +* `radix_tree_insert`; +* `radix_tree_delete`; + +第一个函数`radix_tree_insert`需要3个参数: + +* 基数树的根; +* 索引键; +* 插入的数据; + +`radix_tree_delete`函数需要和`radix_tree_insert`一样的一组参数,但是没有data。 + +基数树的搜索以两种方法实现: + +* `radix_tree_lookup`; +* `radix_tree_gang_lookup`; +* `radix_tree_lookup_slot`. + +第一个函数`radix_tree_lookup`需要两个参数: + +* 基数树的根; +* 索引键; + +这个函数尝试在树中查找给定的键,并返回和该键相关联的记录。第二个函数`radix_tree_gang_lookup`有以下的函数签名: + +```C +unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, + void **results, + unsigned long first_index, + unsigned int max_items); +``` + +和返回记录的个数,(results指向的数据)按键排序并从第一个索引开始。返回的记录个数将不会超过`max_items`。 + +最后一个函数`radix_tree_lookup_slot`将会返回包含数据的slot。 + +链接 +--------------------------------------------------------------------------------- + +* [Radix tree](http://en.wikipedia.org/wiki/Radix_tree) +* [Trie](http://en.wikipedia.org/wiki/Trie) + +-------------------------------------------------------------------------------- + +via: https://github.com/0xAX/linux-insides/edit/master/DataStructures/radix-tree.md + +作者:[0xAX] +译者:[cposture](https://github.com/cposture) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + From 2eadbb2d8deba1b7555258d3075d775f3850e551 Mon Sep 17 00:00:00 2001 From: cposture Date: Sun, 28 Feb 2016 11:51:02 +0800 Subject: [PATCH 189/582] Update 20151109 How to send email notifications using Gmail SMTP server on Linux.md --- ...end email notifications using Gmail SMTP server on Linux.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md index 5ffcb5aea8..1ec6ddff27 100644 --- a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md +++ b/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md @@ -1,3 +1,4 @@ +【Translating by cposture 2016-02-28】 How to send email notifications using Gmail SMTP server on Linux ================================================================================ Suppose you want to configure a Linux app to send out email messages from your server or desktop. The email messages can be part of email newsletters, status updates (e.g., [Cachet][1]), monitoring alerts (e.g., [Monit][2]), disk events (e.g., [RAID mdadm][3]), and so on. While you can set up your [own outgoing mail server][4] to deliver messages, you can alternatively rely on a freely available public SMTP server as a maintenance-free option. @@ -153,4 +154,4 @@ via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html [4]:http://xmodulo.com/mail-server-ubuntu-debian.html [5]:http://xmodulo.com/go/digitalocean [6]:http://xmodulo.com/server-monitoring-system-monit.html -[7]:http://xmodulo.com/go/digitalocean \ No newline at end of file +[7]:http://xmodulo.com/go/digitalocean From fdba14f751711368c0c6f231734dca520c6cc25b Mon Sep 17 00:00:00 2001 From: Chang Liu Date: Sun, 28 Feb 2016 17:24:32 +0800 Subject: [PATCH 190/582] Update 20151208 5 great Raspberry Pi projects for the classroom.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 准备翻译该篇。 --- .../20151208 5 great Raspberry Pi projects for the classroom.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md b/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md index cefad8cc6b..09423a6b8d 100644 --- a/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md +++ b/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md @@ -1,3 +1,5 @@ +FSSlc translating + 5 great Raspberry Pi projects for the classroom ================================================================================ ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png) From 456fd7fa45321e6af3a601293cc374e11d14f2be Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 28 Feb 2016 20:04:43 +0800 Subject: [PATCH 191/582] PUB:20160104 How to use KVM from the command line on Debian or Ubuntu @kylepeng93 --- ...om the command line on Debian or Ubuntu.md | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md b/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md index 1f7a121b3a..f631477721 100644 --- a/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md +++ b/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md @@ -1,12 +1,11 @@ - -怎样在 ubuntu 和 debian 中用命令行使用 KVM +怎样在 ubuntu 和 debian 中通过命令行管理 KVM ================================================================================ -有很多不同的方式去管理运行在 KVM 管理程序上的虚拟机。例如,virt-manager 就是一个流行的基于图形界面的前端虚拟机管理工具。然而,如果你想要在没有图形窗口的服务器环境下使用 KVM ,那么基于图形界面的解决方案显然是行不通的。事实上,你可以纯粹的使用包装了 kvm 命令行脚本的命令行来管理 KVM 虚拟机。作为替代方案,你可以使用 virsh 这个容易使用的命令行程序来管理客户虚拟机。在 virsh 中,它通过和 libvirtd 服务通信来达到控制虚拟机的目的,而 libvirtd 可以控制多个不同的虚拟机管理器,包括 KVM,Xen,QEMU,LXC 和 OpenVZ。 +有很多不同的方式去管理运行在 KVM 管理程序上的虚拟机。例如,virt-manager 就是一个流行的基于图形界面的前端虚拟机管理工具。然而,如果你想要在没有图形窗口的服务器环境下使用 KVM ,那么基于图形界面的解决方案显然是行不通的。事实上,你可以单纯使用包装了 kvm 命令行脚本的命令行来管理 KVM 虚拟机。作为替代方案,你可以使用 virsh 这个容易使用的命令行程序来管理客户虚拟机。在 virsh 中,它通过和 libvirtd 服务通信来达到控制虚拟机的目的,而 libvirtd 可以控制多个不同的虚拟机管理器,包括 KVM,Xen,QEMU,LXC 和 OpenVZ。 当你想要对虚拟机的前期准备和后期管理实现自动化操作时,像 virsh 这样的命令行管理工具是非常有用的。同样,virsh 支持多个管理器也就意味着你可以通过相同的 virsh 接口去管理不同的虚拟机管理器。 -在这篇文章中,我会示范**怎样在ubuntu和debian上通过使用virsh命令行去运行KVM**。 +在这篇文章中,我会示范**怎样在 ubuntu 和 debian 上通过使用 virsh 命令行去运行 KVM**。 ### 第一步:确认你的硬件平台支持虚拟化 ### @@ -24,7 +23,7 @@ ### 第二步:安装KVM ### -使用 `apt-ge` 安装 KVM 和相关的用户空间工具。 +使用 `apt-get` 安装 KVM 和相关的用户空间工具。 ``` $ sudo apt-get install qemu-kvm libvirt-bin @@ -71,7 +70,7 @@ 为了使 KVM 虚拟机能够访问外部网络,一种方法是通过在 KVM 宿主机上创建 Linux 桥来实现。创建之后的桥能够将虚拟机的虚拟网卡和宿主机的物理网卡连接起来,因此,虚拟机能够发送和接收由物理网卡传输的数据包。这种方式叫做网络桥接。 -下面将告诉你如何创建并且配置网桥,我们创建一个网桥称它为 br0. +下面将告诉你如何创建并且配置网桥,我们创建一个网桥称它为 br0。 首先,安装一个必需的包,然后用命令行创建一个网桥。 @@ -168,11 +167,11 @@ - 1GB内存,一个虚拟cpu和一个硬件驱动 -- Disk image:`/home/dev/images/alice.img` +- 磁盘镜像:`/home/dev/images/alice.img` -- Boot from CD-ROM(`/home/dev/iso/CentOS-6.5-x86_64-minomal.iso`) +- 从 CD-ROM 引导(`/home/dev/iso/CentOS-6.5-x86_64-minomal.iso`) -- Networking:一个桥接到 br0 的虚拟网卡 +- 网络:一个桥接到 br0 的虚拟网卡 - 通过 VNC 远程访问 @@ -183,7 +182,7 @@ $ uuid ``` -生成一个主机xml配置文件的方式就是通过一个已经存在的虚拟机来导出它的xml配置文件。如下所示。 +生成一个主机 xml 配置文件的方式就是通过一个已经存在的虚拟机来导出它的 xml 配置文件。如下所示。 ``` $ virsh dumpxml alice > bob.xml @@ -233,6 +232,7 @@ ### 远程连接虚拟机 ### 为了远程访问一个正在运行的虚拟机的控制台,你可以使用VNC客户端。 + 首先,你需要使用如下命令找出用于虚拟机的VNC端口号。 ``` @@ -241,57 +241,57 @@ ![](https://c2.staticflickr.com/6/5633/23448144274_49045bc868_c.jpg) -在这个例子中,用于 alice 虚拟机的 VNC 端口号是 5900 - 然后启动一个VNC客户端,连接到一个端口号为5900的VNC服务器。在我们的例子中,虚拟机支持由CentOS光盘文件启动。 +在这个例子中,用于 alice 虚拟机的 VNC 端口号是 5900。 然后启动一个VNC客户端,连接到一个端口号为5900的VNC服务器。在我们的例子中,虚拟机支持由CentOS光盘文件启动。 ![](https://c2.staticflickr.com/2/1533/24076369675_99408972a4_c.jpg) ### 使用 virsh 管理虚拟机 ### -下面列出了 virsh 命令的常规用法 +下面列出了 virsh 命令的常规用法: + 创建客户机并且启动虚拟机: ``` $ virsh create alice.xml ``` -停止虚拟机并且删除客户机 +停止虚拟机并且删除客户机: ``` $ virsh destroy alice ``` -关闭虚拟机(不用删除它) +关闭虚拟机(不用删除它): ``` $ virsh shutdown alice ``` -暂停虚拟机 +暂停虚拟机: ``` $ virsh suspend alice ``` -恢复虚拟机 +恢复虚拟机: ``` $ virsh resume alice ``` -访问正在运行的虚拟机的控制台 +访问正在运行的虚拟机的控制台: ``` $ virsh console alice ``` -设置虚拟机开机启动: +设置虚拟机开机启动: ``` $ virsh autostart alice ``` -查看虚拟机的详细信息 +查看虚拟机的详细信息: ``` $ virsh dominfo alice @@ -304,6 +304,7 @@ ``` 上面的这个命令将会使用一个默认的编辑器来调用主机配置文件。该配置文件中的任何改变都将自动被libvirt验证其正确性。 + 你也可以在一个virsh会话中管理虚拟机。下面的命令会创建并进入到一个virsh会话中: ``` @@ -361,7 +362,7 @@ via: http://xmodulo.com/use-kvm-command-line-debian-ubuntu.html 作者:[Dan Nanni][a] -译者:[kylepeng93 ](https://github.com/kylepeng93 ) +译者:[kylepeng93](https://github.com/kylepeng93 ) 校对:[Ezio](https://github.com/oska874) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d083c7a9baf670e0285c3b6bbfb891c099daec93 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 28 Feb 2016 21:06:24 +0800 Subject: [PATCH 192/582] =?UTF-8?q?20160228-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...velopment Release: Xubuntu 16.04 Beta 1.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md diff --git a/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md new file mode 100644 index 0000000000..20111a905d --- /dev/null +++ b/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md @@ -0,0 +1,25 @@ +Development Release: Xubuntu 16.04 Beta 1 +============================================ + +he Ubuntu Release Team has announced the availability of new beta test images for select community editions. The new development release, which carries the designation 16.04 Beta 1, is recommended for testers only and is not considered suitable for daily use. + +"This beta features images for [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] and [Xubuntu][6]. Pre-releases of Xenial Xerus are not encouraged for anyone needing a stable system or anyone who is not comfortable running into occasional, even frequent breakage. They are, however, recommended for Ubuntu flavour developers and those who want to help in testing, reporting and fixing bugs as we work towards getting this release ready." Additional information can be found in the [release announcement][7]. + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/software/applications/888731-development-release-xubuntu-1604-beta-1 + +作者:[DistroWatch][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/community/forums/person/284 +[1]: http://distrowatch.com/lubuntu +[2]: http://distrowatch.com/ubuntugnome +[3]: http://distrowatch.com/ubuntumate +[4]: http://distrowatch.com/ubuntukylin +[5]: http://distrowatch.com/ubuntustudio +[6]: http://distrowatch.com/xubuntu +[7]: https://lists.ubuntu.com/archives/ubuntu-devel-announce/2016-February/001173.html From e28e4c57daafe88c261ecf6d7bb8b7aa6149892b Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 28 Feb 2016 21:06:56 +0800 Subject: [PATCH 193/582] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../news/20160226 Development Release: Xubuntu 16.04 Beta 1.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md index 20111a905d..85cbe1f351 100644 --- a/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md +++ b/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md @@ -1,3 +1,5 @@ +ezio translting + Development Release: Xubuntu 16.04 Beta 1 ============================================ From 34fff873e6d09c0c56e27e403d0e71b4d6897a90 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 28 Feb 2016 21:23:53 +0800 Subject: [PATCH 194/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60226 Development Release: Xubuntu 16.04 Beta 1.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md index 85cbe1f351..7d1fee4d3c 100644 --- a/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md +++ b/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md @@ -1,18 +1,23 @@ -ezio translting +ezio translted Development Release: Xubuntu 16.04 Beta 1 +Xubuntu 16.04 Beta 1 开发发布 ============================================ -he Ubuntu Release Team has announced the availability of new beta test images for select community editions. The new development release, which carries the designation 16.04 Beta 1, is recommended for testers only and is not considered suitable for daily use. +The Ubuntu Release Team has announced the availability of new beta test images for select community editions. The new development release, which carries the designation 16.04 Beta 1, is recommended for testers only and is not considered suitable for daily use. + +Ubuntu 发布组已经宣布为了选定的社区版本准备的最新的 beta 测试镜像已经可以使用了。新的开发发布版名称是 16.04 beta 1,这个版本只推荐给测试人员,并不适合日常使用。 "This beta features images for [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] and [Xubuntu][6]. Pre-releases of Xenial Xerus are not encouraged for anyone needing a stable system or anyone who is not comfortable running into occasional, even frequent breakage. They are, however, recommended for Ubuntu flavour developers and those who want to help in testing, reporting and fixing bugs as we work towards getting this release ready." Additional information can be found in the [release announcement][7]. +“这个 beta 特性的镜像是为 [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] 和 [Xubuntu][6] 这几个发布版准备的。Xenial Xerus 的预发布版本并不推荐那些需要稳定版本的,或者那些不希望在系统运行中偶尔或频繁的出现 bug 的人。这个版本还是推荐给喜欢 ubuntu 的开发人员,以及那些想帮助着测试、报告和修改 bug,和我们一起工作让这个发布版本早日准备好。” 更多的信息可以从 [发布日志][7] 获取。 + -------------------------------------------------------------------------------- via: https://www.linux.com/news/software/applications/888731-development-release-xubuntu-1604-beta-1 作者:[DistroWatch][a] -译者:[译者ID](https://github.com/译者ID) +译者:[Ezio](https://github.com/oska874) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8743d7ca06f035c9f35b09a9a878b83332106e5b Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 28 Feb 2016 21:24:54 +0800 Subject: [PATCH 195/582] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=B0translated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../news/20160226 Development Release: Xubuntu 16.04 Beta 1.md | 2 -- 1 file changed, 2 deletions(-) rename {sources => translated}/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md (99%) diff --git a/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md similarity index 99% rename from sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md rename to translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md index 7d1fee4d3c..95be0bfa46 100644 --- a/sources/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md +++ b/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md @@ -1,5 +1,3 @@ -ezio translted - Development Release: Xubuntu 16.04 Beta 1 Xubuntu 16.04 Beta 1 开发发布 ============================================ From 9c6cf2cf1dada2930577cbd26becf8078bcf6c04 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 28 Feb 2016 21:25:50 +0800 Subject: [PATCH 196/582] =?UTF-8?q?=E8=B5=B6=E7=B4=A7=E6=A0=A1=E5=AF=B9?= =?UTF-8?q?=E5=90=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160226 Development Release: Xubuntu 16.04 Beta 1.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md index 95be0bfa46..62e903018f 100644 --- a/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md +++ b/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md @@ -1,13 +1,8 @@ -Development Release: Xubuntu 16.04 Beta 1 Xubuntu 16.04 Beta 1 开发发布 ============================================ -The Ubuntu Release Team has announced the availability of new beta test images for select community editions. The new development release, which carries the designation 16.04 Beta 1, is recommended for testers only and is not considered suitable for daily use. - Ubuntu 发布组已经宣布为了选定的社区版本准备的最新的 beta 测试镜像已经可以使用了。新的开发发布版名称是 16.04 beta 1,这个版本只推荐给测试人员,并不适合日常使用。 -"This beta features images for [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] and [Xubuntu][6]. Pre-releases of Xenial Xerus are not encouraged for anyone needing a stable system or anyone who is not comfortable running into occasional, even frequent breakage. They are, however, recommended for Ubuntu flavour developers and those who want to help in testing, reporting and fixing bugs as we work towards getting this release ready." Additional information can be found in the [release announcement][7]. - “这个 beta 特性的镜像是为 [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] 和 [Xubuntu][6] 这几个发布版准备的。Xenial Xerus 的预发布版本并不推荐那些需要稳定版本的,或者那些不希望在系统运行中偶尔或频繁的出现 bug 的人。这个版本还是推荐给喜欢 ubuntu 的开发人员,以及那些想帮助着测试、报告和修改 bug,和我们一起工作让这个发布版本早日准备好。” 更多的信息可以从 [发布日志][7] 获取。 -------------------------------------------------------------------------------- From a520da8795954430434bf059d36fd93824e31d48 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 29 Feb 2016 14:52:25 +0800 Subject: [PATCH 197/582] translating --- ...ntel shows budget Android phone powering big-screen Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md b/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md index 29a5c77cd9..315de0689e 100644 --- a/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md +++ b/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md @@ -1,3 +1,5 @@ +translating---geekpi + Intel shows budget Android phone powering big-screen Linux ============================================================== From e494a35410c411e9a5d080e15b089354b6ab456d Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 29 Feb 2016 15:22:54 +0800 Subject: [PATCH 198/582] translated --- ...Android phone powering big-screen Linux.md | 24 ++++++------- ...Android phone powering big-screen Linux.md | 34 +++++++++++++++++++ 2 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md diff --git a/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md b/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md index 315de0689e..aedd61f966 100644 --- a/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md +++ b/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md @@ -1,34 +1,34 @@ -translating---geekpi - -Intel shows budget Android phone powering big-screen Linux +Intel展示了带动大屏幕Linux的便宜Android手机 ============================================================== ![](https://regmedia.co.uk/2016/02/23/intel-bigscreen.jpg?x=648&y=348&crop=1) -**MWC16** Intel is showing what it calls "Big Screen Experience" at Mobile World Congress, an Android smartphone which runs a full Linux desktop when plugged into an external display. +在世界移动会议**MWC16**上Intel展示了称之为“大屏体验”的一款的Android智能手机,它在插入一个外部显示后运行了一个完整的Linux桌面。 -The concept is broadly similar to Microsoft's Continuum for Windows 10 Mobile, but whereas Continuum devices are towards the high end, Intel's project is aimed, it says, at budget smartphones and emerging markets. +这个概念大体上与微软在Windows 10手机中的Continuum相似,但是Continuum面向的是高端设备,Intel的项目面向的是低端智能机何新兴市场。 -On display in Barcelona is a prototype SoFIA (Smart or Feature Phone with Intel Architecture) smartphone with an Atom x3 processor, 2GB RAM and 16GB storage, and modified to support an external display. Attach keyboard, mouse and display, and it becomes desktop Linux, with an option to display the Android screen in a window on the large display. +显示上Barcelona是拥有Atom x3、2GB RAM和16GB存储以及支持外部显示的的SoFIA(Intel架构的只能或功能手机)智能机原型。插上键盘、鼠标何显示,它就变成了一台桌面Linux,可以选择在大屏幕中显示Android桌面。 -"Android is based on a Linux kernel, so we're running one kernel, we have an Android stack and a Linux stack, and we're sharing the same context, so the file system is identical. The phone stays fully functional," Intel's Nir Metzer, Path Finding Group Manager, told the Reg. +Intel的拓荒小组经理Nir Metzer告诉Reg:“Android基于Linux内核,因此我们运行的是一个内核,我们有一个Android栈和一个Linux栈,并且我们共享一个上下文,因此文件系统是相同的。电话是全功能的。” -"I have a multi-window environment. As soon as I plug in I can do spreadsheets, I can drag and drop, play video. Achieving all this on a low-end platform is a challenge," said Metzer. +Metzer说:“我有一个多窗口环境。只要我插入后就可以做电子表格,我可以拖拽、播放音频。在一个低端平台实现这一切是一个挑战。” -Currently the display on the device goes blank when the external display is attached, but Metzer said that the next version of the Atom X3 will support dual displays. +现在当连上外部显示器时设备的屏幕显示的空白,但是Metzer说下个版本的Atom X3会支持双显示。 -The version of Linux used is maintained by Intel. "We need to align between the Linux versions and the Android," said Metzer. "The framework is pre-installed, not an app you can download." +使用的Linux版本是由Intel维护的。Metzer说:“我们需要将Linux和Android保持一致。框架是预安装的,你不能下载任何app” -Intel is pitching the idea at phone manufacturers here at Mobile World Congress, but had nothing to report concerning actual customers for its device. "The chip is ready, this is production-ready. This can go into production tomorrow. It is a business decision," said Metzer.® +英特尔在移动世界大会上向手机制造商们推销这一想法,但却没有实际报告购买该设备的消费者。Metzer说:“芯片已经准备好了,已经为量产准备好了。这可以明天进入生产。这是一个商业决定。” -------------------------------------------------------------------------------- via: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ 作者:[Tim Anderson][a] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:http://www.theregister.co.uk/Author/2878 + + diff --git a/translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md b/translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md new file mode 100644 index 0000000000..aedd61f966 --- /dev/null +++ b/translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md @@ -0,0 +1,34 @@ +Intel展示了带动大屏幕Linux的便宜Android手机 +============================================================== + +![](https://regmedia.co.uk/2016/02/23/intel-bigscreen.jpg?x=648&y=348&crop=1) + +在世界移动会议**MWC16**上Intel展示了称之为“大屏体验”的一款的Android智能手机,它在插入一个外部显示后运行了一个完整的Linux桌面。 + +这个概念大体上与微软在Windows 10手机中的Continuum相似,但是Continuum面向的是高端设备,Intel的项目面向的是低端智能机何新兴市场。 + +显示上Barcelona是拥有Atom x3、2GB RAM和16GB存储以及支持外部显示的的SoFIA(Intel架构的只能或功能手机)智能机原型。插上键盘、鼠标何显示,它就变成了一台桌面Linux,可以选择在大屏幕中显示Android桌面。 + +Intel的拓荒小组经理Nir Metzer告诉Reg:“Android基于Linux内核,因此我们运行的是一个内核,我们有一个Android栈和一个Linux栈,并且我们共享一个上下文,因此文件系统是相同的。电话是全功能的。” + +Metzer说:“我有一个多窗口环境。只要我插入后就可以做电子表格,我可以拖拽、播放音频。在一个低端平台实现这一切是一个挑战。” + +现在当连上外部显示器时设备的屏幕显示的空白,但是Metzer说下个版本的Atom X3会支持双显示。 + +使用的Linux版本是由Intel维护的。Metzer说:“我们需要将Linux和Android保持一致。框架是预安装的,你不能下载任何app” + +英特尔在移动世界大会上向手机制造商们推销这一想法,但却没有实际报告购买该设备的消费者。Metzer说:“芯片已经准备好了,已经为量产准备好了。这可以明天进入生产。这是一个商业决定。” + +-------------------------------------------------------------------------------- + +via: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ + +作者:[Tim Anderson][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.theregister.co.uk/Author/2878 + + From d7e2a05e8f6ffe8b023abaf692c90042bed9aa91 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 29 Feb 2016 15:24:31 +0800 Subject: [PATCH 199/582] delete source --- ...Android phone powering big-screen Linux.md | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md diff --git a/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md b/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md deleted file mode 100644 index aedd61f966..0000000000 --- a/sources/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md +++ /dev/null @@ -1,34 +0,0 @@ -Intel展示了带动大屏幕Linux的便宜Android手机 -============================================================== - -![](https://regmedia.co.uk/2016/02/23/intel-bigscreen.jpg?x=648&y=348&crop=1) - -在世界移动会议**MWC16**上Intel展示了称之为“大屏体验”的一款的Android智能手机,它在插入一个外部显示后运行了一个完整的Linux桌面。 - -这个概念大体上与微软在Windows 10手机中的Continuum相似,但是Continuum面向的是高端设备,Intel的项目面向的是低端智能机何新兴市场。 - -显示上Barcelona是拥有Atom x3、2GB RAM和16GB存储以及支持外部显示的的SoFIA(Intel架构的只能或功能手机)智能机原型。插上键盘、鼠标何显示,它就变成了一台桌面Linux,可以选择在大屏幕中显示Android桌面。 - -Intel的拓荒小组经理Nir Metzer告诉Reg:“Android基于Linux内核,因此我们运行的是一个内核,我们有一个Android栈和一个Linux栈,并且我们共享一个上下文,因此文件系统是相同的。电话是全功能的。” - -Metzer说:“我有一个多窗口环境。只要我插入后就可以做电子表格,我可以拖拽、播放音频。在一个低端平台实现这一切是一个挑战。” - -现在当连上外部显示器时设备的屏幕显示的空白,但是Metzer说下个版本的Atom X3会支持双显示。 - -使用的Linux版本是由Intel维护的。Metzer说:“我们需要将Linux和Android保持一致。框架是预安装的,你不能下载任何app” - -英特尔在移动世界大会上向手机制造商们推销这一想法,但却没有实际报告购买该设备的消费者。Metzer说:“芯片已经准备好了,已经为量产准备好了。这可以明天进入生产。这是一个商业决定。” - --------------------------------------------------------------------------------- - -via: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ - -作者:[Tim Anderson][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.theregister.co.uk/Author/2878 - - From c266d8db2eda6dd9725640c0133895dc740ef0b2 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 29 Feb 2016 15:27:29 +0800 Subject: [PATCH 200/582] tranalating --- ...--Summon Swarms Of Penguins To Waddle About The Desktop.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md b/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md index 73d16fe1bd..898790b197 100644 --- a/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md +++ b/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md @@ -1,3 +1,5 @@ +translating---geekpi + Linux Desktop Fun: Summon Swarms Of Penguins To Waddle About The Desktop ================================================================================ XPenguins is a program for animating cute cartoons animals in your root window. By default it will be penguins they drop in from the top of the screen, walk along the tops of your windows, up the side of your windows, levitate, skateboard, and do other similarly exciting things. Now you can send an army of cute little penguins to invade the screen of someone else on your network. @@ -98,3 +100,5 @@ via: http://www.cyberciti.biz/tips/linux-cute-little-xpenguins-walk-along-tops-o [1]:http://xpenguins.seul.org/ [2]:http://www.cyberciti.biz/tips/displays-animations-when-accidentally-you-type-sl-instead-of-ls.html [3]:http://www.cyberciti.biz/tips/linux-unix-apple-osx-terminal-ascii-aquarium.html + + From 1cebb81e0fcd6d6d7d171ef3dfaeee051df5149d Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 29 Feb 2016 15:46:07 +0800 Subject: [PATCH 201/582] translated --- ...Of Penguins To Waddle About The Desktop.md | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) rename {sources => translated}/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md (51%) diff --git a/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md b/translated/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md similarity index 51% rename from sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md rename to translated/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md index 898790b197..6c797816f5 100644 --- a/sources/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md +++ b/translated/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md @@ -1,45 +1,43 @@ -translating---geekpi - -Linux Desktop Fun: Summon Swarms Of Penguins To Waddle About The Desktop +Linux桌面趣闻:召唤一群企鹅在桌面上行走 ================================================================================ -XPenguins is a program for animating cute cartoons animals in your root window. By default it will be penguins they drop in from the top of the screen, walk along the tops of your windows, up the side of your windows, levitate, skateboard, and do other similarly exciting things. Now you can send an army of cute little penguins to invade the screen of someone else on your network. +XPenguins是一个在窗口播放可爱动物动画的程序。默认情况下,将会从屏幕上方掉落企鹅,沿着你的窗口顶部行走,在窗口变漂浮,滑板,和做其他类似的令人兴奋的事情。现在,你可以把这些可爱的小企鹅大军入侵别人的桌面了。 -### Install XPenguins ### +### 安装XPenguins ### -Open a command-line terminal (select Applications > Accessories > Terminal), and then type the following commands to install XPenguins program. First, type the command apt-get update to tell apt to refresh its package information by querying the configured repositories and then install the required program: +打开终端(选择程序->附件->终端),接着输入下面的命令来安装XPenguins。首先,输入apt-get update通过请求配置的仓库刷新包的信息,接着安装需要的程序: $ sudo apt-get update $ sudo apt-get install xpenguins -### How do I Start XPenguins Locally? ### +### 我本地如何启动XPenguins? ### -Type the following command: +输入下面的命令: $ xpenguins -Sample outputs: +示例输出: ![An army of cute little penguins invading the screen](http://files.cyberciti.biz/uploads/tips/2011/07/Workspace-1_002_12_07_2011.png) -An army of cute little penguins invading the screen +一支可爱企鹅军队正在入侵屏幕。 ![Linux: Cute little penguins walking along the tops of your windows](http://files.cyberciti.biz/uploads/tips/2011/07/Workspace-1_001_12_07_2011.png) -Linux: Cute little penguins walking along the tops of your windows +Linux:可爱的小企鹅沿着窗口的顶部行走。 ![Xpenguins Screenshot](http://files.cyberciti.biz/uploads/tips/2011/07/xpenguins-screenshot.jpg) -Xpenguins Screenshot +Xpenguins截图 -Be careful when you move windows as the little guys squash easily. If you send the program an interupt signal (Ctrl-C) they will burst. +移动窗口时小心点,小家伙们很容易被压坏。如果你发送中断程序(Ctrl-C),它们会爆炸。 -### Themes ### +### 主题 ### -To list themes, enter: +要列出主题,输入: $ xpenguins -l -Sample outputs: +示例输出: Big Penguins Bill @@ -47,11 +45,11 @@ Sample outputs: Penguins Turtles -You can use alternative themes as follows: +你可以用下面的命令使用其他的主题: $ xpenguins --theme "Big Penguins" --theme "Turtles" -You can install additional themes as follows: +你可以用下面的命令安装额外的主题: $ cd /tmp $ wget http://xpenguins.seul.org/xpenguins_themes-1.0.tar.gz @@ -60,7 +58,7 @@ You can install additional themes as follows: $ mv -v themes ~/.xpenguins/ $ xpenguins -l -Sample outputs: +示例输出: Lemmings Sonic the Hedgehog @@ -73,26 +71,26 @@ Sample outputs: Penguins Turtles -To start with a random theme, enter: +已一个随机主题开始,输入: $ xpenguins --random-theme -To load all available themes and run them simultaneously, enter: +要加载所有的主题并且同时运行,输入: $ xpenguins --all -More links and information: +更多链接何信息: -- [XPenguins][1] home page. +- [XPenguins][1] 主页。 - man penguins -- More Linux / UNIX desktop fun with [Steam Locomotive][2] and [Terminal ASCII Aquarium][3]. +- 更多Linux/Unix桌面乐趣在[蒸汽火车][2]和[终端ASCII水族馆][3]。 -------------------------------------------------------------------------------- via: http://www.cyberciti.biz/tips/linux-cute-little-xpenguins-walk-along-tops-ofyour-windows.html 作者:Vivek Gite -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7fbc74dc9e80c685979ee7b1d82ef2bc1f84c472 Mon Sep 17 00:00:00 2001 From: Bestony Date: Mon, 29 Feb 2016 17:35:12 +0800 Subject: [PATCH 202/582] Update 20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md --- ...Install OsTicket Ticketing System in Fedora 22 or Centos 7.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md b/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md index 6624a3c590..49244c96d2 100644 --- a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md +++ b/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md @@ -1,3 +1,4 @@ +translated by bestony How to Install OsTicket Ticketing System in Fedora 22 / Centos 7 ================================================================================ In this article, we'll learn how to setup help desk ticketing system with osTicket in our machine or server running Fedora 22 or CentOS 7 as operating system. osTicket is a free and open source popular customer support ticketing system developed and maintained by [Enhancesoft][1] and its contributors. osTicket is the best solution for help and support ticketing system and management for better communication and support assistance with clients and customers. It has the ability to easily integrate with inquiries created via email, phone and web based forms into a beautiful multi-user web interface. osTicket makes us easy to manage, organize and log all our support requests and responses in one single place. It is a simple, lightweight, reliable, open source, web-based and easy to setup and use help desk ticketing system. From a07d9fbe5afc29ccb83f7af2ab48af4cc97276fa Mon Sep 17 00:00:00 2001 From: cposture Date: Mon, 29 Feb 2016 19:20:47 +0800 Subject: [PATCH 203/582] Translated by cposture --- ...ations using Gmail SMTP server on Linux.md | 156 ------------------ ...ations using Gmail SMTP server on Linux.md | 156 ++++++++++++++++++ 2 files changed, 156 insertions(+), 156 deletions(-) delete mode 100644 sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md create mode 100644 translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md diff --git a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md deleted file mode 100644 index 5ffcb5aea8..0000000000 --- a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md +++ /dev/null @@ -1,156 +0,0 @@ -How to send email notifications using Gmail SMTP server on Linux -================================================================================ -Suppose you want to configure a Linux app to send out email messages from your server or desktop. The email messages can be part of email newsletters, status updates (e.g., [Cachet][1]), monitoring alerts (e.g., [Monit][2]), disk events (e.g., [RAID mdadm][3]), and so on. While you can set up your [own outgoing mail server][4] to deliver messages, you can alternatively rely on a freely available public SMTP server as a maintenance-free option. - -One of the most reliable **free SMTP servers** is from Google's Gmail service. All you have to do to send email notifications within your app is to add Gmail's SMTP server address and your credentials to the app, and you are good to go. - -One catch with using Gmail's SMTP server is that there are various restrictions in place, mainly to combat spammers and email marketers who often abuse the server. For example, you can send messages to no more than 100 addresses at once, and no more than 500 recipients per day. Also, if you don't want to be flagged as a spammer, you cannot send a large number of undeliverable messages. When any of these limitations is reached, your Gmail account will temporarily be locked out for a day. In short, Gmail's SMTP server is perfectly fine for your personal use, but not meant for commercial bulk emails. - -With that being said, let me demonstrate **how to use Gmail's SMTP server in Linux environment**. - -### Google Gmail SMTP Server Setting ### - -If you want to send emails from your app using Gmail's SMTP server, remember the following details. - -- **Outgoing mail server (SMTP server)**: smtp.gmail.com -- **Use authentication**: yes -- **Use secure connection**: yes -- **Username**: your Gmail account ID (e.g., "alice" if your email is alice@gmail.com) -- **Password**: your Gmail password -- **Port**: 587 - -Exact configuration syntax may vary depending on apps. In the rest of this tutorial, I will show you several useful examples of using Gmail SMTP server in Linux. - -### Send Emails from the Command Line ### - -As the first example, let's try the most basic email functionality: send an email from the command line using Gmail SMTP server. For this, I am going to use a command-line email client called mutt. - -First, install mutt: - -For Debian-based system: - - $ sudo apt-get install mutt - -For Red Hat based system: - - $ sudo yum install mutt - -Create a mutt configuration file (~/.muttrc) and specify in the file Gmail SMTP server information as follows. Replace with your own Gmail ID. Note that this configuration is for sending emails only (not receiving emails). - - $ vi ~/.muttrc - ----------- - - set from = "@gmail.com" - set realname = "Dan Nanni" - set smtp_url = "smtp://@smtp.gmail.com:587/" - set smtp_pass = "" - -Now you are ready to send out an email using mutt: - - $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com - -To attach a file in an email, use "-a" option: - - $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com -a ~/test_attachment.jpg - -![](https://c1.staticflickr.com/1/770/22239850784_5fb0988075_c.jpg) - -Using Gmail SMTP server means that the emails appear as sent from your Gmail account. In other words, a recepient will see your Gmail address as the sender's address. If you want to use your domain as the email sender, you need to use Gmail SMTP relay service instead. - -### Send Email Notification When a Server is Rebooted ### - -If you are running a [virtual private server (VPS)][5] for some critical website, one recommendation is to monitor VPS reboot activities. As a more practical example, let's consider how to set up email notifications for every reboot event on your VPS. Here I assume you are using systemd on your VPS, and show you how to create a custom systemd boot-time service for automatic email notifications. - -First create the following script reboot_notify.sh which takes care of email notifications. - - $ sudo vi /usr/local/bin/reboot_notify.sh - ----------- - - #!/bin/sh - - echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoo.com - ----------- - - $ sudo chmod +x /usr/local/bin/reboot_notify.sh - -In the script, I use "-F" option to specify the location of system-wide mutt configuration file. So don't forget to create /etc/muttrc file and populate Gmail SMTP information as described earlier. - -Now let's create a custom systemd service as follows. - - $ sudo mkdir -p /usr/local/lib/systemd/system - $ sudo vi /usr/local/lib/systemd/system/reboot-task.service - ----------- - - [Unit] - Description=Send a notification email when the server gets rebooted - DefaultDependencies=no - Before=reboot.target - - [Service] - Type=oneshot - ExecStart=/usr/local/bin/reboot_notify.sh - - [Install] - WantedBy=reboot.target - -Once the service file is created, enable and start the service. - - $ sudo systemctl enable reboot-task - $ sudo systemctl start reboot-task - -From now on, you will be receiving a notification email every time the VPS gets rebooted. - -![](https://c1.staticflickr.com/1/608/22241452923_2ace9cde2e_c.jpg) - -### Send Email Notification from Server Usage Monitoring ### - -As a final example, let me present a real-world application called [Monit][6], which is a pretty useful server monitoring application. It comes with comprehensive [VPS][7] monitoring capabilities (e.g., CPU, memory, processes, file system), as well as email notification functions. - -If you want to receive email notifications for any event on your VPS (e.g., server overload) generated by Monit, you can add the following SMTP information to Monit configuration file. - - set mailserver smtp.gmail.com port 587 - username "" password "" - using tlsv12 - - set mail-format { - from: @gmail.com - subject: $SERVICE $EVENT at $DATE on $HOST - message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. - - Yours sincerely, - Monit - } - - # the person who will receive notification emails - set alert alice@yahoo.com - -Here is the example email notification sent by Monit for excessive CPU load. - -![](https://c1.staticflickr.com/1/566/22873764251_8fe66bfd16_c.jpg) - -### Conclusion ### - -As you can imagine, there will be so many different ways to take advantage of free SMTP servers like Gmail. But once again, remember that the free SMTP server is not meant for commercial usage, but only for your own personal project. If you are using Gmail SMTP server inside any app, feel free to share your use case. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html - -作者:[Dan Nanni][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/nanni -[1]:http://xmodulo.com/setup-system-status-page.html -[2]:http://xmodulo.com/server-monitoring-system-monit.html -[3]:http://xmodulo.com/create-software-raid1-array-mdadm-linux.html -[4]:http://xmodulo.com/mail-server-ubuntu-debian.html -[5]:http://xmodulo.com/go/digitalocean -[6]:http://xmodulo.com/server-monitoring-system-monit.html -[7]:http://xmodulo.com/go/digitalocean \ No newline at end of file diff --git a/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md new file mode 100644 index 0000000000..56830068ab --- /dev/null +++ b/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md @@ -0,0 +1,156 @@ +如何在Linux上使用Gmail SMTP服务器发送邮件通知 +================================================================================ +假定你想配置一个Linux app从你的服务器或桌面客户端发送邮件信息。邮件信息可以是邮件简报、状态更新(比如[Cachet][1])、监控警报(比如[Monit][2])、磁盘时间(比如[RAID mdadm][3])等等的一部分。当你要建立自己的[邮件发送服务器][4],作为一个免维护的选择,你可以依赖一个免费可用的公共SMTP服务器。 + +最可靠的**免费SMTP服务器**之一来自谷歌的Gmail服务。为了在你的app里发送邮件通知,你仅需在app中添加Gmail的SMTP服务器地址和你的凭证即可。 + +Gmail的SMTP服务器吸引人的地方之一是有各种各样恰当的限制,这些限制主要用于阻止那些经常滥用服务器的滥发垃圾邮件者和邮件营销者。举个例子,你一次只能给至多100个地址发送信息,并且一天不能超过500个接收者。当你达到任何一个限制,你的Gmail账户将暂时锁一天。简而言之,Gmail的SMTP服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。 + +话虽如此,让我们展示**如何在Linux环境下使用Gmail的SMTP服务器**。 + +### Google Gmail SMTP服务器设置 ### + +如果你想要使用Gmail的SMTP服务器从你的app发送邮件,请牢记接下来的详细说明。 + +- **邮件发送服务器 (SMTP服务器)**: smtp.gmail.com +- **使用认证**: 是 +- **使用安全连接**: 是 +- **用户名**: 你的Gmail账户ID (比如 "alice" 如果你的邮箱为alice@gmail.com) +- **密码**: 你的Gmail密码 +- **端口**: 587 + +确切的配置语法可能要依据app而不同。在本教程的剩下部分,我将会向你展示各种在Linux上使用Gmail SMTP服务器的有用示例。 + +### 从命令行发送邮件 ### + +作为第一个例子,让我们尝试最基本的邮件功能:使用Gmail SMTP服务器从命令行发送一封邮件。为此,我将使用一个称为mutt的命令行邮件客户端。 + +先安装mutt: + +对于 Debian-based 系统: + + $ sudo apt-get install mutt + +对于 Red Hat based 系统: + + $ sudo yum install mutt + +创建一个mutt配置文件(~/.muttrc),并和下面一样,在文件中指定Gmail SMTP服务器信息。将gmail-id替换成自己的Gmail ID。注意这配置只是为了发送邮件而已(而非接收邮件)。 + + $ vi ~/.muttrc + +---------- + + set from = "@gmail.com" + set realname = "Dan Nanni" + set smtp_url = "smtp://@smtp.gmail.com:587/" + set smtp_pass = "" + +现在准备使用mutt发送一封邮件: + + $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com + +为了在一封邮件中添加一个附件,使用"-a"选项 + + $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com -a ~/test_attachment.jpg + +![](https://c1.staticflickr.com/1/770/22239850784_5fb0988075_c.jpg) + +使用Gmail SMTP服务器意味着邮件显示为从你的Gmail账户发出。换句话说,一个接收者将你的Gmail地址视为发送者地址。如果你想要使用自己的域名作为邮件发送者,你需要使用Gmail SMTP转发服务。 + +### 当服务器重启时发送邮件通知 ### + +如果你为了一些重要的网站正在运行一台[虚拟专用服务器(VPS)][5],一个建议是监视VPS的重启活动。作为一个更实用的例子,让我们研究如何在你的VPS上为每一次重启事件建立邮件通知。这里我假设你正在你的VPS上使用systemd,并向你展示如何为自动邮件通知创建一个自定义的systemd启动服务。 + +首先创建下面的脚本reboot_notify.sh,用于负责邮件通知。 + + $ sudo vi /usr/local/bin/reboot_notify.sh + +---------- + + #!/bin/sh + + echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoo.com + +---------- + + $ sudo chmod +x /usr/local/bin/reboot_notify.sh + +在这个脚本中,我使用"-F"选项,用于直到系统级的mutt配置文件位置。因此不要忘了创建/etc/muttrc文件并如前面描述填入Gmail SMTP信息。 + +现在让我们创建如下一个自定义的systemd服务。 + + $ sudo mkdir -p /usr/local/lib/systemd/system + $ sudo vi /usr/local/lib/systemd/system/reboot-task.service + +---------- + + [Unit] + Description=Send a notification email when the server gets rebooted + DefaultDependencies=no + Before=reboot.target + + [Service] + Type=oneshot + ExecStart=/usr/local/bin/reboot_notify.sh + + [Install] + WantedBy=reboot.target + +一旦创建服务,便使能和启动该服务。 + + $ sudo systemctl enable reboot-task + $ sudo systemctl start reboot-task + +从现在起,在每次VPS重启时你将会收到一封通知邮件。 + +![](https://c1.staticflickr.com/1/608/22241452923_2ace9cde2e_c.jpg) + +### 从服务器使用监控发送邮件通知 ### + +作为最后一个例子,让我展示一个称为[Monit][6]的现实生活的应用程序,这是一个极其有用的服务器监控应用程序。它附有广泛的[VPS][7]监控能力(比如CPU、内存、进程、文件系统),包括邮件通知能力。 + +如果你想要接收VPS上任何事件导致的且由Monit产生的邮件通知,你可以在Monit配置文件中添加以下SMTP信息。 + + set mailserver smtp.gmail.com port 587 + username "" password "" + using tlsv12 + + set mail-format { + from: @gmail.com + subject: $SERVICE $EVENT at $DATE on $HOST + message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. + + Yours sincerely, + Monit + } + + # the person who will receive notification emails + set alert alice@yahoo.com + +这是一个因为CPU负载超载而由Monit发送的邮件通知例子。 + +![](https://c1.staticflickr.com/1/566/22873764251_8fe66bfd16_c.jpg) + +### 总结 ### + +正如你能想象的,像Gmail一样,有许多中不同的方式使用免费的SMTP服务器。但再次说明,请牢记免费的SMTP服务器不适用于商业用途,仅仅适用于个人项目。如果你正在任一app中使用Gmail SMTP服务器,请自由分享你的用例。 + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html + +作者:[Dan Nanni][a] +译者:[cposture](https://github.com/cposture) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/nanni +[1]:http://xmodulo.com/setup-system-status-page.html +[2]:http://xmodulo.com/server-monitoring-system-monit.html +[3]:http://xmodulo.com/create-software-raid1-array-mdadm-linux.html +[4]:http://xmodulo.com/mail-server-ubuntu-debian.html +[5]:http://xmodulo.com/go/digitalocean +[6]:http://xmodulo.com/server-monitoring-system-monit.html +[7]:http://xmodulo.com/go/digitalocean From f69d2d164193fc1b5753a55ffccb0c8ea27cb4a6 Mon Sep 17 00:00:00 2001 From: cposture Date: Mon, 29 Feb 2016 19:54:16 +0800 Subject: [PATCH 204/582] =?UTF-8?q?=E5=9B=9E=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160225 How to add open source experience to your resume.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sources/tech/20160225 How to add open source experience to your resume.md b/sources/tech/20160225 How to add open source experience to your resume.md index eee0d6aa23..73e22c2b8b 100644 --- a/sources/tech/20160225 How to add open source experience to your resume.md +++ b/sources/tech/20160225 How to add open source experience to your resume.md @@ -1,4 +1,3 @@ -【Translating by cposture 2016-02-25】 How to add open source experience to your resume ================================================== From 01b1c41bc687b2bcd26654d5a43ee8821e48f9e3 Mon Sep 17 00:00:00 2001 From: cposture Date: Mon, 29 Feb 2016 20:40:59 +0800 Subject: [PATCH 205/582] Translated by cposture --- ...ations using Gmail SMTP server on Linux.md | 157 ------------------ 1 file changed, 157 deletions(-) delete mode 100644 sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md diff --git a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md deleted file mode 100644 index 1ec6ddff27..0000000000 --- a/sources/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md +++ /dev/null @@ -1,157 +0,0 @@ -【Translating by cposture 2016-02-28】 -How to send email notifications using Gmail SMTP server on Linux -================================================================================ -Suppose you want to configure a Linux app to send out email messages from your server or desktop. The email messages can be part of email newsletters, status updates (e.g., [Cachet][1]), monitoring alerts (e.g., [Monit][2]), disk events (e.g., [RAID mdadm][3]), and so on. While you can set up your [own outgoing mail server][4] to deliver messages, you can alternatively rely on a freely available public SMTP server as a maintenance-free option. - -One of the most reliable **free SMTP servers** is from Google's Gmail service. All you have to do to send email notifications within your app is to add Gmail's SMTP server address and your credentials to the app, and you are good to go. - -One catch with using Gmail's SMTP server is that there are various restrictions in place, mainly to combat spammers and email marketers who often abuse the server. For example, you can send messages to no more than 100 addresses at once, and no more than 500 recipients per day. Also, if you don't want to be flagged as a spammer, you cannot send a large number of undeliverable messages. When any of these limitations is reached, your Gmail account will temporarily be locked out for a day. In short, Gmail's SMTP server is perfectly fine for your personal use, but not meant for commercial bulk emails. - -With that being said, let me demonstrate **how to use Gmail's SMTP server in Linux environment**. - -### Google Gmail SMTP Server Setting ### - -If you want to send emails from your app using Gmail's SMTP server, remember the following details. - -- **Outgoing mail server (SMTP server)**: smtp.gmail.com -- **Use authentication**: yes -- **Use secure connection**: yes -- **Username**: your Gmail account ID (e.g., "alice" if your email is alice@gmail.com) -- **Password**: your Gmail password -- **Port**: 587 - -Exact configuration syntax may vary depending on apps. In the rest of this tutorial, I will show you several useful examples of using Gmail SMTP server in Linux. - -### Send Emails from the Command Line ### - -As the first example, let's try the most basic email functionality: send an email from the command line using Gmail SMTP server. For this, I am going to use a command-line email client called mutt. - -First, install mutt: - -For Debian-based system: - - $ sudo apt-get install mutt - -For Red Hat based system: - - $ sudo yum install mutt - -Create a mutt configuration file (~/.muttrc) and specify in the file Gmail SMTP server information as follows. Replace with your own Gmail ID. Note that this configuration is for sending emails only (not receiving emails). - - $ vi ~/.muttrc - ----------- - - set from = "@gmail.com" - set realname = "Dan Nanni" - set smtp_url = "smtp://@smtp.gmail.com:587/" - set smtp_pass = "" - -Now you are ready to send out an email using mutt: - - $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com - -To attach a file in an email, use "-a" option: - - $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com -a ~/test_attachment.jpg - -![](https://c1.staticflickr.com/1/770/22239850784_5fb0988075_c.jpg) - -Using Gmail SMTP server means that the emails appear as sent from your Gmail account. In other words, a recepient will see your Gmail address as the sender's address. If you want to use your domain as the email sender, you need to use Gmail SMTP relay service instead. - -### Send Email Notification When a Server is Rebooted ### - -If you are running a [virtual private server (VPS)][5] for some critical website, one recommendation is to monitor VPS reboot activities. As a more practical example, let's consider how to set up email notifications for every reboot event on your VPS. Here I assume you are using systemd on your VPS, and show you how to create a custom systemd boot-time service for automatic email notifications. - -First create the following script reboot_notify.sh which takes care of email notifications. - - $ sudo vi /usr/local/bin/reboot_notify.sh - ----------- - - #!/bin/sh - - echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoo.com - ----------- - - $ sudo chmod +x /usr/local/bin/reboot_notify.sh - -In the script, I use "-F" option to specify the location of system-wide mutt configuration file. So don't forget to create /etc/muttrc file and populate Gmail SMTP information as described earlier. - -Now let's create a custom systemd service as follows. - - $ sudo mkdir -p /usr/local/lib/systemd/system - $ sudo vi /usr/local/lib/systemd/system/reboot-task.service - ----------- - - [Unit] - Description=Send a notification email when the server gets rebooted - DefaultDependencies=no - Before=reboot.target - - [Service] - Type=oneshot - ExecStart=/usr/local/bin/reboot_notify.sh - - [Install] - WantedBy=reboot.target - -Once the service file is created, enable and start the service. - - $ sudo systemctl enable reboot-task - $ sudo systemctl start reboot-task - -From now on, you will be receiving a notification email every time the VPS gets rebooted. - -![](https://c1.staticflickr.com/1/608/22241452923_2ace9cde2e_c.jpg) - -### Send Email Notification from Server Usage Monitoring ### - -As a final example, let me present a real-world application called [Monit][6], which is a pretty useful server monitoring application. It comes with comprehensive [VPS][7] monitoring capabilities (e.g., CPU, memory, processes, file system), as well as email notification functions. - -If you want to receive email notifications for any event on your VPS (e.g., server overload) generated by Monit, you can add the following SMTP information to Monit configuration file. - - set mailserver smtp.gmail.com port 587 - username "" password "" - using tlsv12 - - set mail-format { - from: @gmail.com - subject: $SERVICE $EVENT at $DATE on $HOST - message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. - - Yours sincerely, - Monit - } - - # the person who will receive notification emails - set alert alice@yahoo.com - -Here is the example email notification sent by Monit for excessive CPU load. - -![](https://c1.staticflickr.com/1/566/22873764251_8fe66bfd16_c.jpg) - -### Conclusion ### - -As you can imagine, there will be so many different ways to take advantage of free SMTP servers like Gmail. But once again, remember that the free SMTP server is not meant for commercial usage, but only for your own personal project. If you are using Gmail SMTP server inside any app, feel free to share your use case. - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html - -作者:[Dan Nanni][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/nanni -[1]:http://xmodulo.com/setup-system-status-page.html -[2]:http://xmodulo.com/server-monitoring-system-monit.html -[3]:http://xmodulo.com/create-software-raid1-array-mdadm-linux.html -[4]:http://xmodulo.com/mail-server-ubuntu-debian.html -[5]:http://xmodulo.com/go/digitalocean -[6]:http://xmodulo.com/server-monitoring-system-monit.html -[7]:http://xmodulo.com/go/digitalocean From cece931e431327d5dc919267037a06b2ed379547 Mon Sep 17 00:00:00 2001 From: cposture Date: Tue, 1 Mar 2016 00:26:25 +0800 Subject: [PATCH 206/582] Translating by cposture --- sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md index 99f1ceed04..f2e09b5c7a 100644 --- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md +++ b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md @@ -1,3 +1,4 @@ +【Translating by cposture 2016-03-01】 * * * # GCC-Inline-Assembly-HOWTO From ccb535342afd9645c4af9ebcd5c4a8d141e63fed Mon Sep 17 00:00:00 2001 From: alim0x Date: Tue, 1 Mar 2016 19:47:34 +0800 Subject: [PATCH 207/582] [translated]22 - The history of Android --- .../22 - The history of Android.md | 86 ------------------- .../22 - The history of Android.md | 84 ++++++++++++++++++ 2 files changed, 84 insertions(+), 86 deletions(-) delete mode 100644 sources/talk/The history of Android/22 - The history of Android.md create mode 100644 translated/talk/The history of Android/22 - The history of Android.md diff --git a/sources/talk/The history of Android/22 - The history of Android.md b/sources/talk/The history of Android/22 - The history of Android.md deleted file mode 100644 index fab3d8c087..0000000000 --- a/sources/talk/The history of Android/22 - The history of Android.md +++ /dev/null @@ -1,86 +0,0 @@ -alim0x translating - -The history of Android -================================================================================ -### Android 4.2, Jelly Bean—new Nexus devices, new tablet interface ### - -The Android Platform was rapidly maturing, and with Google hosting more and more apps in the Play Store, there was less and less that needed to go out in the OS update. Still, the relentless march of updates must continue, and in November 2012 Android 4.2 was released. 4.2 was still called "Jelly Bean," a nod to the relatively small amount of changes that were present in this release. - -![The LG-made Nexus 4 and Samsung-made Nexus 10.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/unnamed.jpg) -The LG-made Nexus 4 and Samsung-made Nexus 10. -Photo by Google/Ron Amadeo - -Along with Android 4.2 came two flagship devices, the Nexus 4 and the Nexus 10, both of which were sold direct by Google on the Play Store. The Nexus 4 applied the Nexus 7 strategy of a quality device at a shockingly low price and sold for $300 unlocked. The Nexus 4 had a quad-core 1.5 GHz Snapdragon S4 Pro, 2GB of RAM and a 4.7-inch 1280×768 LCD. Google's new flagship phone was manufactured by LG, and with the manufacturer switch came a focus on materials and build quality. The Nexus 4 had a glass front and back, and while you couldn't drop it, it was one of the nicest-feeling Android phones to date. The biggest downside to the Nexus 4 was the lack of LTE at a time when most phones, including the Verizon Galaxy Nexus, came with the faster modem. Still, demand for the Nexus 4 greatly exceeded Google's expectations—the launch rush crashed the Play Store Web site on launch day. The device sold out in under an hour. - -The Nexus 10 was Google's first 10-inch Nexus tablet. The highlight of the device was the 2560×1600 display, which was the highest resolution in its class. All those pixels were powered by a dual core, 1.7GHz Cortex A15 processor and 2GB of RAM. With each passing month, it's looking more and more like the Nexus 10 is the first and last 10-inch Nexus tablet. Usually these devices are upgraded every year, but the Nexus 10 is now 16 months old, and there's no sign of the new model on the horizon. Google is doing well with smaller-sized 7-inch tablets, and it seems content to let partners [like Samsung][1] explore the larger end of the tablet spectrum. - -![The new lock screen, wallpaper, and clock widget design.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/JBvsjb.jpg) -The new lock screen, wallpaper, and clock widget design. -Photo by Ron Amadeo - -4.2 brought lots of changes to the lock screen. The font was centered and used an extremely thick weight for the hour and a thin font for the minutes. The lock screen was now paginated and could be customized with widgets. Rather than a simple clock on the lock screen, users could replace it with another widget or add extra pages to the lock screen for more widgets. - -![The lock screen's add widget page, the list of widgets, the Gmail widget on the lock screen, and swiping over to the camera.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/locksc2reen.jpg) -The lock screen's add widget page, the list of widgets, the Gmail widget on the lock screen, and swiping over to the camera. -Photo by Ron Amadeo - -The lock screen now worked like a stripped-down version of the home screen. Page outlines would pop up on the left and right sides of the lock screen to hint to users that they could swipe to other pages with other widgets. Swiping to the left would show a simple blank page with a plus sign in the center, and tapping on it would bring up a list of widgets that were compatible with the lock screen. Lock screens were limited to one widget per page and could be expanded or collapsed by dragging up or down on the widget. The right-most page was reserved for the camera—a simple over would open the camera interface, but you weren't able to swipe back. - -![The new Quick Settings panel and a composite image of the app lineup.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/42fix.png) -The new Quick Settings panel and a composite image of the app lineup. -Photo by Ron Amadeo - -One of the biggest additions to 4.2 was the new "Quick Settings" panel. Android 3.0 brought a way to quickly change power settings to tablets, and 4.2 finally brought that ability to phones. A new icon was added to the top right corner of the notification panel that would switch between the normal list of notifications and the new quick settings screen. Quick Settings offered faster access to screen brightness, network connections, and battery and data usage without having to dig through the full settings screen. The top level settings button in Android 4.1 was removed, and a square was added to the Quick Settings screen for it. - -There were lots of changes to the app drawer and 4.2's lineup of apps and icons. Thanks to the wider aspect ratio of the Nexus 4 (5:3 vs 16:9 on the Galaxy Nexus), the app drawer on that device could now show a five-wide grid of icons. 4.2 replaced the stock browser with Google Chrome and the stock calendar with Google Calendar, both of which brought new icon designs. The Clock and Camera apps were revamped in 4.2, and new icons were part of the deal. "Google Settings" was a new app that offered shortcuts to all the existing Google Account settings around the OS, and it had a unified look with Google Search and the new Google+ icon. Google Maps got a new icon, and Google Latitude, which was part of Google Maps, was retired in favor of Google+ location. - -![The browser was replaced with Chrome, and the new camera interface with a full screen viewfinder.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/chroemcam.jpg) -The browser was replaced with Chrome, and the new camera interface with a full screen viewfinder. -Photo by Ron Amadeo - -The stock browser did its best Chrome imitation for a while—it took many cues from Chrome’s interface, many Chrome features, and was even using Chrome’s javascript engine—but by the time Android 4.2 rolled around, Google deemed the Android version of Chrome ready to replace the imitator. On the surface, it didn't seem like much of a difference; the interface looked different, and early versions of Chrome for Android didn't scroll as smoothly as the stock browser. Under the hood, though, everything was different. Development of Android's main browser was now handled by the Google Chrome team instead of being a side project of the Android team. Android's default browser moved from being a stagnant app tied to Android releases to a Play Store app that was continually updated. Today there is even a beta channel that receives several updates per month. - -The camera interface was redesigned. It was now a completely full-screen app, showing a live view of the camera and places controls on top of it. The layout aesthetic had a lot in common with the [camera design][2] of Android 1.5: minimal controls with a focus on the viewfinder output. The circle of controls in the center appeared when you either held your finger on the screen or pressed the circle icon in the bottom right corner. When holding your finger down, you could slide around to pick the options around the circle, often expanding out into a sub-menu. Releasing over a highlighted item would select it. This was clearly inspired by the Quick Controls in the Android 4.0 browser, but arranging the options in a circle meant your finger was almost always blocking part of the interface. - -![The clock app, which went from a two-screen app to a feature-packed, useful application.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/clock-1.jpg) -The clock app, which went from a two-screen app to a feature-packed, useful application. -Photo by Ron Amadeo - -The clock application was completely revamped, going from a simple two-screen alarm clock to a world clock, alarm, timer, and stopwatch. The clock app design was like nothing Google introduced before, with an ultra-minimal aesthetic and red highlights. It seemed to be an experiment for Google. Even several versions later, this design language seemed to be confined only to this app. - -The clock's time picker was particularly well-designed. It showed a simple number pad, and it would intelligently disable numbers that would result in an invalid time. It was also impossible to set an alarm time without implicitly selecting AM or PM, forever solving the problem of accidentally setting an alarm for 9pm instead of 9am. - -![The new system UI for tablets used a stretched-out phone interface.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/tablet2.jpg) -The new system UI for tablets used a stretched-out phone interface. -Photo by Ron Amadeo - -The most controversial change in Android 4.2 was made to the tablet UI, which switched from a unified single bottom system bar to a two-bar interface with a top status bar and bottom system bar. The new design unified the phone and tablet interfaces, but critics said it was a waste of space to stretch the phone interface to a 10-inch landscape tablet. Since the navigation buttons had the whole bottom bar to themselves now, they were centered, just like the phone interface. - -![Multiple users on a tablet, and the new gesture-driven keyboard.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/2014-03-06-14.55.png) -Multiple users on a tablet, and the new gesture-driven keyboard. -Photo by Ron Amadeo - -On tablets, Android 4.2 brought support for multiple users. In the settings, a "Users" section was added, where you could manage users on a device. Setup was done from within each user account, where Android would keep separate settings, home screens, apps, and app data for each user. - -4.2 also added a new keyboard with swiping abilities. Rather than just tapping each individual letter, users could now keep a finger on the screen the whole time and just slide from letter to letter to type. - ----------- - -![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) - -[Ron Amadeo][a] / Ron is the Reviews Editor at Ars Technica, where he specializes in Android OS and Google products. He is always on the hunt for a new gadget and loves to rip things apart to see how they work. - -[@RonAmadeo][t] - --------------------------------------------------------------------------------- - -via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/22/ - -译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:http://arstechnica.com/gadgets/2014/01/hands-on-with-samsungs-notepro-and-tabpro-new-screen-sizes-and-magazine-ui/ -[2]:http://cdn.arstechnica.net/wp-content/uploads/2013/12/device-2013-12-26-11016071.png -[a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo diff --git a/translated/talk/The history of Android/22 - The history of Android.md b/translated/talk/The history of Android/22 - The history of Android.md new file mode 100644 index 0000000000..aabe79cfa1 --- /dev/null +++ b/translated/talk/The history of Android/22 - The history of Android.md @@ -0,0 +1,84 @@ +安卓编年史 +================================================================================ +### Android 4.2,果冻豆——全新 Nexus 设备,全新平板界面 ### + +安卓平台成熟的脚步越来越快,谷歌也将越来越多的应用托管到 Play 商店,需要通过系统更新来更新的应用越来越少。但是不间断的更新还是要继续的,2012 年 11 月,安卓 4.2 发布。4.2 还是叫做“果冻豆”,这个版本主要是一些少量变动。 + +![LG 生产的 Nexus 4 和三星生产的 Nexus 10。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/unnamed.jpg) +LG 生产的 Nexus 4 和三星生产的 Nexus 10。 +Google/Ron Amadeo 供图 + +和安卓 4.2 一同发布的还有两部旗舰设备,Nexus 4 和 Nexus 10,都由谷歌直接在 Play 商店出售。Nexus 4 使用了 Nexus 7 的策略,令人惊讶的低价和高质量,并且无锁设备售价 300 美元。Nexus 4 有一个 4 核 1.5GHz 骁龙 S4 Pro 处理器,2GB 内存以及 1280×768 分辨率 4.7 英寸 LCD 显示屏。谷歌的新旗舰手机由 LG 生产,并和制造商一起将关注点转向了材料和质量。Nexus 4 有着正反两面双面玻璃,这会让你爱不释手,他是有史以来触感最佳的安卓手机之一。Nexus 4 最大的缺点是没有 LTE 支持,那时候大部分手机,包括 Version Galaxy Nexus 都有更快的基带。但 Nexus 4 的需求仍大大超出了谷歌的预料——发布当日大量的流量拖垮了 Play 商店网站。手机在一小时之内销售一空。 + +Nexus 10 是谷歌的第一部 10 英寸 Nexus 平板。该设备的亮点是 2560×1600 分辨率的显示屏,在其等级上是分辨率最高的。这背后是双核 1.7GHz Cortex A15 处理器和 2GB 内存的强力支持。随着时间一个月一个月地流逝,Nexus 10 似乎逐渐成为了第一部也是最后一部 10 英寸 Nexus 平板。通常这些设备每年都升级,但 Nexus 10 至今面世 16 个月了,可预见的未来还没有新设备的迹象。谷歌在小尺寸的 7 英寸平板上做得很出色,它似乎更倾向于让[像三星][1]这样的合作伙伴探索更大的平板家族。 + +![新的锁屏,壁纸,以及时钟小部件设计。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/JBvsjb.jpg) +新的锁屏,壁纸,以及时钟小部件设计。 +Ron Amadeo 供图 + +4.2 为锁屏带来了很多变化。文字居中,并且对小时使用了较大的字重,对分钟使用了较细的字体。锁屏现在是分页的,可以自定义小部件。锁屏不仅仅是一个简单的时钟,用户还可以将其替换成其它小部件或者添加额外的页面和更多的小部件。 + +![锁屏的添加小部件页面,小部件列表,锁屏上的 Gmail 部件,以及滑动到相机。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/locksc2reen.jpg) +锁屏的添加小部件页面,小部件列表,锁屏上的 Gmail 部件,以及滑动到相机。 +Ron Amadeo 供图 + +锁屏现在就像是一个精简版的主屏幕。页面轮廓会显示在锁屏的左右两侧来提示用户可以滑动到有其他小部件的页面。向左滑动页面会显示一个中间带有加号的简单空白页面,点击加号会打开兼容锁屏的小部件列表。锁屏每个页面限制一个小部件,将小部件向上或向下拖动可以展开或收起。最右侧的页面保留给了相机——一个简单的滑动就能打开相机界面,但是你没办法滑动回来。 + +![新的快速设置面板以及内置应用集合。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/42fix.png) +新的快速设置面板以及内置应用集合。 +Ron Amadeo 供图 + +4.2 最大的新增特性之一就是“快速设置”面板。安卓 3.0 为平板引入了快速改变电源设置的途径,4.2 终于将这种能力带给了手机。通知中心右上角加入了一枚新图标,可以在正常的通知列表和新的快速设置之间切换。快速设置提供了对屏幕亮度,网络连接,电池以及数据用量更加快捷的访问,而不用打开完整的设置界面。安卓 4.1 中顶部的设置按钮移除掉了,快速设置中添加了一个按钮来替代它。 + +应用抽屉和 4.2 中的应用阵容有很多改变。得益于 Nexus 4 更宽的屏幕横纵比(5:3,Galaxy Nexus 是 16:9),应用抽屉可以显示一行五个应用图标的方阵。4.2 将自带的浏览器替换为了 Google Chrome,自带的日历换成了 Google Calendar,他们都带来了新的图标设计。时钟和相机应用在 4.2 中经过了重制,新的图标也是其中的一部分。“Google Settings”是个新应用,用于提供对系统范围内所有存在的谷歌账户设置的快捷方式,它有着和 Google Search 和 Google+ 图标一致的风格。谷歌地图拥有了新图标,谷歌纵横,以往是谷歌地图的一部分,作为对 Google+ location 的支持在这个版本退役。 + +![浏览器替换为 Chrome,带有全屏取景器的新相机界面。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/chroemcam.jpg) +浏览器替换为 Chrome,带有全屏取景器的新相机界面。 +Ron Amadeo 供图 + +原自带浏览器在一段时间内对 Chrome 的模仿上下了不少功夫——它引入了许多 Chrome 的界面元素,许多 Chrome 的特性,甚至还使用了 Chrome 的 javascript 引擎——但安卓 4.2 来临的时候,谷歌认为安卓版的 Chrome 已经准备好替代这个模仿者了。表面上看起来没有多大不同;界面看起来不一样,而且早期版本的 Chrome 安卓版滚动起来没有原浏览器顺畅。不过深层次来说,一切都不一样。安卓的主浏览器开发现在由 Google Chrome 团队负责,而不是作为安卓团队的子项目存在。安卓的默认浏览器从绑定安卓版本发布停滞不前的应用变成了不断更新的 Play 商店应用。现在甚至还有一个每个月接收一些更新的 beta 通道。 + +相机界面经过了重新设计。它现在完全是个全屏应用,显示摄像头的实时图像并且在上面显示控制选项。布局审美和安卓 1.5 的[相机设计][2]有很多共同之处:带对焦的最小化的控制放置在取景器显示之上。中间的控制环在你长按屏幕或点击右下角圆形按钮的时候显示。你的手指保持在屏幕上时,你可以滑动来选择环上的选项,通常是展开进入一个子菜单。在高亮的选项上释放手指选中它。这灵感很明显来自于安卓 4.0 浏览器中的快速控制,但是将选项安排在一个环上意味着你的手指几乎总会挡住一部分界面。 + +![时钟应用,从一个只有两个界面的应用变成功能强大,实用的应用。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/clock-1.jpg) +时钟应用,从一个只有两个界面的应用变成功能强大,实用的应用。 +Ron Amadeo 供图 + +时钟应用经过了完整的改造,从一个简单的两个界面的闹钟,到一个世界时钟,闹钟,定时器,以及秒表俱全。时钟应用的设计和谷歌之前引入的完全不同,有着极简审美和红色高亮。它看起来像是谷歌的一个试验。甚至是几个版本之后,这个设计语言似乎也仅限于这个应用。 + +时钟的时间选择器是经过特别精心设计的。它显示一个简单的数字盘,会智能地禁用会导致无效时间的数字。设置闹钟时间也不可能没有隐式选择选择的 AM 和 PM,永远地解决了不小心将 9am 的闹钟设置成 9pm 的问题。 + +![平板的新系统界面使用了延展版的手机界面。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/tablet2.jpg) +平板的新系统界面使用了延展版的手机界面。 +Ron Amadeo 供图 + +安卓 4.2 中最有争议的改变是平板界面,从单独一个统一的底部系统栏变成带有顶部状态栏和底部系统栏的双栏设计。新设计统一了手机和平板的界面,但批评人士说将手机界面延展到 10 英寸的横向平板上是浪费空间。因为导航按键现在拥有了整个底栏,所以他们像手机界面那样被居中。 + +![平板上的多用户,以及新的手势键盘。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/2014-03-06-14.55.png) +平板上的多用户,以及新的手势键盘。 +Ron Amadeo 供图 + +在平板上,安卓 4.2 带来了多用户支持。在设置里,新增了“用户”部分,你可以在这里管理一台设备上的用户。设置在每个用户账户内完成,安卓会给每个用户保存单独的设置,主屏幕,应用以及应用数据。 + +4.2 还添加了有滑动输入能力的键盘。用户可以将手指一直保持在屏幕上,按顺序在字母按键上滑动来输入,而不用像以前那样一个一个字母单独地输入。 + +---------- + +![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) + +[Ron Amadeo][a] / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。 + +[@RonAmadeo][t] + +-------------------------------------------------------------------------------- + +via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/22/ + +译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://arstechnica.com/gadgets/2014/01/hands-on-with-samsungs-notepro-and-tabpro-new-screen-sizes-and-magazine-ui/ +[2]:http://cdn.arstechnica.net/wp-content/uploads/2013/12/device-2013-12-26-11016071.png +[a]:http://arstechnica.com/author/ronamadeo +[t]:https://twitter.com/RonAmadeo From 7114caea17111b6315cc7a83141b3f443f896f86 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 09:14:21 +0800 Subject: [PATCH 208/582] =?UTF-8?q?20160302-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ommercial Software Built On Open Source.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md diff --git a/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md b/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md new file mode 100644 index 0000000000..85ba752bfa --- /dev/null +++ b/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md @@ -0,0 +1,40 @@ +The Evolving Market for Commercial Software Built On Open Source +===================================================================== + +![](https://www.linux.com/images/stories/41373/Structure-event-photo.jpg) +>Attendees listen to a presentation during Structure at the UCSF Mission Bay Conference Center, where Structure Data 2016 will take place. Image credit: Structure Events. + +It's really hard to understate the impact of open source projects on the enterprise software market these days; open source integration became the norm so quickly we could be forgiven for missing the turning point. + +Hadoop, for example, changed more than just the world of data analysis. It gave rise to a new generation of data companies that created their own software around open source projects, tweaking and supporting that code as needed, much like how Red Hat embraced Linux in the 1990s and early 2000s. And this software is increasingly delivered over public clouds, rather than run on the buyer's own servers, enabling an amazing degree of operational flexibility but raising all sorts of new questions about licensing, support, and pricing. + +We've been following this closely over the years when putting together the lineup for our Structure Data conference, and Structure Data 2016 is no exception. The CEOs of three of the most important companies in big data operating around Hadoop -- Hortonworks, Cloudera and MapR -- will share the stage to discuss how they sell enterprise software and services around open source projects, generating cash while giving back to that community project at the same time. + +There was a time when making money on enterprise software was easier. Once purchased by a customer, a mega-package of software from an enterprise vendor turned into its own cash register, generating something close to lifetime income from maintenance contracts and periodic upgrades to software that became harder and harder to displace as it became the heart of a customer’s business. Customers grumbled about lock-in, but they didn't really have much of a choice if they wanted to make their workforce more productive. + +That is no longer the case. While an awful lot of companies are still stuck running immense software packages critical to their infrastructure, new projects are being deployed on cloud servers using open source technologies. This makes it much easier to upgrade one's capabilities without having to rip out a huge software package and reinstall something else, and it also allows companies to pay as they go, rather than paying for a bunch of features they'll never use. + +And there are a lot of customers who want to take advantage of open source projects without building and supporting a team of engineers to tweak one of those projects for their own unique needs. Those customers are willing to pay for software packages whose value is based on the delta between the open source projects and the proprietary features laid on top of that project. + +This is especially true for infrastructure-related software. Sure, your customers could install their own tweaks to a project like Hadoop or Spark or Node.js, but there's money to be made helping those customers out with a customizable package that lets them implement some of today's vital open source technologies without having to do all of the heavy lifting themselves. Just look at Structure Data 2016 presenters such as Confluent (Kafka), Databricks (Spark), and the Cloudera-Hortonworks-MapR (Hadoop) trio. + +There's certainly something to be said for having a vendor to yell at when things go wrong. If your engineers botch the implementation of an open source project, you've only yourself to blame. But If you contract with a company that is willing to guarantee certain performance and uptime metrics inside of a service-level agreement, you're willing to pay for support, guidance, and a chance to yell at somebody outside of your organization when inevitable problems crop up. + +The evolving market for commercial software on top of open source projects is something we've been tracking at Structure Data for years, and we urge you to join us in San Francisco March 9 and 10 if this is a topic near and dear to your heart. + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/enterprise/cloud-computing/889564-the-evolving-market-for-commercial-software-built-on-open-source- + +作者:[Tom Krazit ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/community/forums/person/70513 + + + + From 6eaeac207dccfd4d3dce37fa5e13b0b3d0555f65 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 09:20:47 +0800 Subject: [PATCH 209/582] =?UTF-8?q?20160302-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ites Imperiled by New Decryption Attack.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sources/tech/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md diff --git a/sources/tech/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/sources/tech/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md new file mode 100644 index 0000000000..3c73120fa4 --- /dev/null +++ b/sources/tech/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md @@ -0,0 +1,26 @@ +More than 11 Million HTTPS Websites Imperiled by New Decryption Attack +=========================================================================== + +![](https://www.linux.com/images/stories/66866/drown-explainer.jpg) + +Low-cost DROWN attack decrypts data in hours, works against TLS e-mail servers, too. + +More than 11 million websites and e-mail services protected by the [transport layer security protocol[[1] are vulnerable to a newly discovered, low-cost attack that decrypts sensitive communications in a matter of hours and in some cases almost immediately, an international team of researchers warned Tuesday. More than 81,000 of the top 1 million most popular Web properties are among the vulnerable HTTPS-protected sites. + +The attack works against TLS-protected communications that rely on the [RSA cryptosystem][2] when the key is exposed even indirectly through SSLv2, a TLS precursor that was retired almost two decades ago because of crippling weaknesses. The vulnerability allows an attacker to decrypt an intercepted TLS connection by repeatedly using SSLv2 to make connections to a server. + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/software/applications/889455--more-than-11-million-https-websites-imperiled-by-new-decryption-attack + +作者:[ArsTechnica][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/community/forums/person/112 +[1]: https://en.wikipedia.org/wiki/Transport_Layer_Security +[2]: https://en.wikipedia.org/wiki/RSA_(cryptosystem) + From 8dbeefa384f670487801e13a56e8132c5bee2e42 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 09:26:10 +0800 Subject: [PATCH 210/582] =?UTF-8?q?20160302-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n IoT Development Suite, is now Zerynth.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md diff --git a/sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md b/sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md new file mode 100644 index 0000000000..40a601a71e --- /dev/null +++ b/sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md @@ -0,0 +1,34 @@ +Viper, the Python IoT Development Suite, is now Zerynth +============================================================ + + +![](http://www.open-electronics.org/wp-content/uploads/2016/02/Logo_Zerynth-636x144.png) + + +The startup that launched the tools to develop embedded solutions in Python language announced the brand change along with the first official release. + +>Exactly one year after the Kickstarter launch of the suite for developing Internet of Things solutions in Python language, **Viper becomes Zerynth**. It is definitely a big day for the startup that created a radically new way to approach the world of microcontrollers and connected devices, making professionals and makers able to design interactive solutions with reduced efforts and shorter time. + +>“We really believe in the uniqueness of our tools, this is why they deserve an adequate recognition. Viper was a great name for a product, but other notable companies had the same feeling many decades ago, with the result that this term was shared with too many other actors out there. We are grown now, and ready to take off fast and light, like the design processes that our tools are enabling”, says the Viper (now Zerynth), co-founders. + +>**Thousands of users** developed amazing connected solutions in just 9 months of life in Beta version. Built to be cross-platform, Zerynth’s tools are meant for high-level design of Internet/cloud-connected devices, interactive objects, artistic installations. They are: **Zerynth Studio**, a browser-based IDE for programming embedded devices in Python with cloud sync and board management features; **Zerynth Virtual Machine**: a multithreaded real-time OS that provides real hardware independence allowing code reuse on the entire ARM architecture; **Zerynth App**, a general purpose interface that turns any mobile into the controller and display for smart objects and IoT systems. + +>This modular set of tools, adaptable to different hardware and cloud infrastructures, can dramatically reduce the time to market and the overall development costs for makers, professionals and companies. + +>Now Zerynth celebrates its new name launching the **first official release** of the toolkit. Check it here [www.zerynth.com][1] + +![](http://www.open-electronics.org/wp-content/uploads/2016/02/Zerynth-Press-Release_Studio-Img-768x432.png) + +-------------------------------------------------------------------------------- + +via: http://www.open-electronics.org/viper-the-python-iot-development-suite-is-now-zerynth/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+OpenElectronics+%28Open+Electronics%29 + +作者:[Staff ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.open-electronics.org/author/staff/ +[1]: http://www.zerynth.com/ + From 5ffe9ac893bc91d5996bbdc8be64701693d7ab8a Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 09:32:22 +0800 Subject: [PATCH 211/582] =?UTF-8?q?20160302-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-Signatures-Using-SHA-256512 Algorithms.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md diff --git a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md new file mode 100644 index 0000000000..d40a1c9e6f --- /dev/null +++ b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md @@ -0,0 +1,32 @@ +OpenSSH 7.2 Out Now with Support for RSA Signatures Using SHA-256/512 Algorithms +======================================================== + +**Today, February 29, 2016, the OpenBSD project had the great pleasure of announcing the release and immediate availability for download of OpenSSH 7.2 for all supported platforms.** + +According to the internal [release notes][1], also attached at the end of the article for reference, OpenSSH 7.2 is primarily a bugfix release, fixing most of the issues reported by users or discovered by the development team since the release of OpenSSH 7.1p2, but we can see several new features as well. + +Among these, we can mention support for RSA signatures using SHA-256 or SHA-256 512 hash algorithms, the addition of an AddKeysToAgent client option to add private keys used for authentication to the ssh-agent, and the implementation of the "restrict" authorized_keys option for storing key restrictions. + +Furthermore, there's now an ssh_config CertificateFile option for explicitly listing certificates, the ssh-keygen is now capable of changing the key comment for all supported formats, fingerprinting is now allowed from standard input and for multiple public keys in a file. + +### ssh-keygen now supports multiple certificates + +In addition to the changes mentioned above, OpenSSH 7.2 adds support for multiple certificates to ssh-keygen, one per line, implements the "none" argument for sshd_config ChrootDirectory and Foreground, and the "-c" flag allows ssh-keyscan to fetch certificates instead of plain keys. + +Last but not least, OpenSSH 7.2 no longer enables by default all flavors of the rijndael-cbc aliases for AES, blowfish-cbc, and cast128-cbc legacy ciphers, as well as MD5-based and truncated HMAC algorithms. The getrandom() syscall is now supported under Linux. [Download OpenSSH 7.2][2] and check the changelog below for some additional details about exactly what has been fixed in this major release. + + + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml + +作者:[Marius Nestor][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://www.openssh.com/txt/release-7.2 +[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml From d6bb51f8a4eda54c02b5af26662311215bdb9741 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 09:37:07 +0800 Subject: [PATCH 212/582] =?UTF-8?q?2060302-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ased ahead of impending OpenSSL updates.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md diff --git a/sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md b/sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md new file mode 100644 index 0000000000..659df2e1f3 --- /dev/null +++ b/sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md @@ -0,0 +1,42 @@ +Node.js 5.7 released ahead of impending OpenSSL updates +============================================================= + +![](http://images.techhive.com/images/article/2014/09/nodejs-100449932-primary.idge.jpg) + +>Once again, OpenSSL fixes must be evaluated by keepers of the popular server-side JavaScript platform + +The Node.js Foundation is gearing up this week for fixes to OpenSSL that could mean updates to Node.js itself. + +Releases to OpenSSL due on Tuesday will fix defects deemed to be of "high" severity, Rod Vagg, foundation technical steering committee director, said [in a blog post][1] on Monday. Within a day of the OpenSSL releases, the Node.js crypto team will assess their impacts, saying, "Please be prepared for the possibility of important updates to Node.js v0.10, v0.12, v4 and v5 soon after Tuesday, the 1st of March." + +[ Deep Dive: [How to rethink security for the new world of IT][2]. | Discover how to secure your systems with InfoWorld's [Security newsletter][3]. ] + +The high severity status actually means the issues are of lower risks than critical, perhaps affecting less-common configurations or less likely to be exploitable. Due to an embargo, the exact nature of these fixes and their impact on Node.js remain uncertain, said Vagg. "Node.js v0.10 and v0.12 both use OpenSSL v1.0.1, and Node.js v4 and v5 both use OpenSSL v1.0.2, and releases from nodejs.org and some other popular distribution sources are statically compiled. Therefore, all active release lines are impacted by this update." OpenSSL also impacted Node.js in December, [when two critical vulnerabilities were fixed][4]. + +The latest OpenSSL developments follow [the release of Node.js 5.7.0][5], which is clearing a path for the upcoming Node.js 6. Version 5 is the main focus for active development, said foundation representative Mikeal Rogers, "However, v5 won't be supported long-term, and most users will want to wait for v6, which will be released by the end of April, for the new features that are landing in v5." + +Release 5.7 has more predictability for C++ add-ons' interactions with JavaScript. Node.js can invoke JavaScript code from C++ code, and in version 5.7, the C++ node::MakeCallback() API is now re-entrant; calling it from inside another MakeCallback() call no longer causes the nextTick queue or Promises microtask queue to be processed out of order, [according to release notes][6]. + +Also fixed is an HTTP bug where handling headers mistakenly trigger an "upgrade" event where the server just advertises protocols. The bug can prevent HTTP clients from communicating with HTTP2-enabled servers. Version 5.7 performance improvements are featured in the path, querystring, streams, and process.nextTick modules. + +This story, "Node.js 5.7 released ahead of impending OpenSSL updates" was originally published by [InfoWorld][7]. + + +-------------------------------------------------------------------------------- + +via: http://www.itworld.com/article/3039005/security/nodejs-57-released-ahead-of-impending-openssl-updates.html + +作者:[Paul Krill][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.itworld.com/author/Paul-Krill/ +[1]: https://nodejs.org/en/blog/vulnerability/openssl-march-2016/ +[2]: http://www.infoworld.com/resources/17273/security-management/how-to-rethink-security-for-the-new-world-of-it#tk.ifw-infsb +[3]: http://www.infoworld.com/newsletters/signup.html#tk.ifw-infsb +[4]: http://www.infoworld.com/article/3012157/security/why-nodejs-waited-for-openssl-security-update-before-patching.html +[5]: https://nodejs.org/en/blog/release/v5.7.0/ +[6]: https://nodejs.org/en/blog/release/v5.7.0/ +[7]: http://www.infoworld.com/ From 243529de979ed767d7de22befc6c2bc3786528b7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 10:31:06 +0800 Subject: [PATCH 213/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=EF=BC=8C?= =?UTF-8?q?=E5=BA=94=E8=AF=A5=E6=94=BE=E5=88=B0news=20=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... HTTPS Websites Imperiled by New Decryption Attack.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) rename sources/{tech => news}/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md (59%) diff --git a/sources/tech/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/sources/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md similarity index 59% rename from sources/tech/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md rename to sources/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md index 3c73120fa4..6d9ae7f4e9 100644 --- a/sources/tech/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md +++ b/sources/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md @@ -1,21 +1,28 @@ More than 11 Million HTTPS Websites Imperiled by New Decryption Attack + +超过一千万个使用 https 的站点有可能收到新型的加密攻击的影响 =========================================================================== ![](https://www.linux.com/images/stories/66866/drown-explainer.jpg) Low-cost DROWN attack decrypts data in hours, works against TLS e-mail servers, too. +低成本的淹没攻击会在几个小时内完成解密操作,同时这也不利于采用了 TLS 的邮件服务器。 + More than 11 million websites and e-mail services protected by the [transport layer security protocol[[1] are vulnerable to a newly discovered, low-cost attack that decrypts sensitive communications in a matter of hours and in some cases almost immediately, an international team of researchers warned Tuesday. More than 81,000 of the top 1 million most popular Web properties are among the vulnerable HTTPS-protected sites. +一个国际研究小组在周二发出的警告说,超过 1100 万的网站和邮件服务采用了[传输层安全协议][1],以此来保护自己的服务,而这些都是处于一个新发现的、低成本的攻击的威胁之下,这种攻击会在几个小时内解密敏感的通信,在某些情况下甚至是立即解密。 1 百万个最流行的网站中有超过 81,000 个就处于这些受到威胁的 HTTPS 协议保护之下。 + The attack works against TLS-protected communications that rely on the [RSA cryptosystem][2] when the key is exposed even indirectly through SSLv2, a TLS precursor that was retired almost two decades ago because of crippling weaknesses. The vulnerability allows an attacker to decrypt an intercepted TLS connection by repeatedly using SSLv2 to make connections to a server. +处于 TLS 保护的通信协议,依赖于 [RSA 加密系统][2],如果密钥被泄露了,即使是间接的通过 SSLv2 ——一种在 20 年前就因为自身缺陷而退休了的安全协议,也就是 TLS 的前辈协议——泄露也会处于这种新型攻击的威胁之下。这种危险性在于允许一个入侵者通过反复的使用 SSLv2 来连接到服务器,可以解密一个被中途拦截下来的 TLS 连接。 -------------------------------------------------------------------------------- via: https://www.linux.com/news/software/applications/889455--more-than-11-million-https-websites-imperiled-by-new-decryption-attack 作者:[ArsTechnica][a] -译者:[译者ID](https://github.com/译者ID) +译者:[Ezio](https://github.com/oska874) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c0a8fa7b54d4eca685570cda7ca39beea7863a36 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 10:32:30 +0800 Subject: [PATCH 214/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=8C=E6=94=BE=E5=88=B0=20translated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lion HTTPS Websites Imperiled by New Decryption Attack.md | 5 ----- 1 file changed, 5 deletions(-) rename {sources => translated}/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md (66%) diff --git a/sources/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/translated/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md similarity index 66% rename from sources/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md rename to translated/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md index 6d9ae7f4e9..cdc7d1b7ae 100644 --- a/sources/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md +++ b/translated/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md @@ -1,19 +1,14 @@ -More than 11 Million HTTPS Websites Imperiled by New Decryption Attack - 超过一千万个使用 https 的站点有可能收到新型的加密攻击的影响 =========================================================================== ![](https://www.linux.com/images/stories/66866/drown-explainer.jpg) -Low-cost DROWN attack decrypts data in hours, works against TLS e-mail servers, too. 低成本的淹没攻击会在几个小时内完成解密操作,同时这也不利于采用了 TLS 的邮件服务器。 -More than 11 million websites and e-mail services protected by the [transport layer security protocol[[1] are vulnerable to a newly discovered, low-cost attack that decrypts sensitive communications in a matter of hours and in some cases almost immediately, an international team of researchers warned Tuesday. More than 81,000 of the top 1 million most popular Web properties are among the vulnerable HTTPS-protected sites. 一个国际研究小组在周二发出的警告说,超过 1100 万的网站和邮件服务采用了[传输层安全协议][1],以此来保护自己的服务,而这些都是处于一个新发现的、低成本的攻击的威胁之下,这种攻击会在几个小时内解密敏感的通信,在某些情况下甚至是立即解密。 1 百万个最流行的网站中有超过 81,000 个就处于这些受到威胁的 HTTPS 协议保护之下。 -The attack works against TLS-protected communications that rely on the [RSA cryptosystem][2] when the key is exposed even indirectly through SSLv2, a TLS precursor that was retired almost two decades ago because of crippling weaknesses. The vulnerability allows an attacker to decrypt an intercepted TLS connection by repeatedly using SSLv2 to make connections to a server. 处于 TLS 保护的通信协议,依赖于 [RSA 加密系统][2],如果密钥被泄露了,即使是间接的通过 SSLv2 ——一种在 20 年前就因为自身缺陷而退休了的安全协议,也就是 TLS 的前辈协议——泄露也会处于这种新型攻击的威胁之下。这种危险性在于允许一个入侵者通过反复的使用 SSLv2 来连接到服务器,可以解密一个被中途拦截下来的 TLS 连接。 From a9d0940aed3bc389317173edf15fdee5a76201e3 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 10:39:38 +0800 Subject: [PATCH 215/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160226 Development Release: Xubuntu 16.04 Beta 1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md index 62e903018f..bae1ecccf8 100644 --- a/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md +++ b/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md @@ -1,9 +1,9 @@ Xubuntu 16.04 Beta 1 开发发布 ============================================ -Ubuntu 发布组已经宣布为了选定的社区版本准备的最新的 beta 测试镜像已经可以使用了。新的开发发布版名称是 16.04 beta 1,这个版本只推荐给测试人员,并不适合日常使用。 +Ubuntu 发布组宣布为选定的社区版本而准备的最新的 beta 测试镜像已经可以使用了。新的发布版名称是 16.04 beta 1 ,这个版本只推荐给测试人员测试用,并不适合普通人进行日常使用。 -“这个 beta 特性的镜像是为 [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] 和 [Xubuntu][6] 这几个发布版准备的。Xenial Xerus 的预发布版本并不推荐那些需要稳定版本的,或者那些不希望在系统运行中偶尔或频繁的出现 bug 的人。这个版本还是推荐给喜欢 ubuntu 的开发人员,以及那些想帮助着测试、报告和修改 bug,和我们一起工作让这个发布版本早日准备好。” 更多的信息可以从 [发布日志][7] 获取。 +“这个 beta 特性的镜像主要是为 [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] 和 [Xubuntu][6] 这几个发布版准备的。Xenial Xerus (LCTT 注: ubuntu 16.04 的开发代号) 的这个预发布版本并不推荐那些需要稳定版本的人员使用,同时那些不希望在系统运行中偶尔或频繁的出现 bug 的人也不建议使用这个版本。这个版本主要还是推荐给那些喜欢 ubuntu 的开发人员,以及那些想协助我们测试、报告 bug 和修改 bug 的人使用,和我们一起努力让这个发布版本早日准备就绪。” 更多的信息可以从 [发布日志][7] 获取。 -------------------------------------------------------------------------------- @@ -11,7 +11,7 @@ via: https://www.linux.com/news/software/applications/888731-development-release 作者:[DistroWatch][a] 译者:[Ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Ezio](https://github.com/oska874) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 84a9cd948715593113a28b135fd0e6c1bb65784a Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 2 Mar 2016 10:40:23 +0800 Subject: [PATCH 216/582] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E5=87=86=E5=A4=87?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160226 Development Release: Xubuntu 16.04 Beta 1.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/news => published}/20160226 Development Release: Xubuntu 16.04 Beta 1.md (100%) diff --git a/translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/published/20160226 Development Release: Xubuntu 16.04 Beta 1.md similarity index 100% rename from translated/news/20160226 Development Release: Xubuntu 16.04 Beta 1.md rename to published/20160226 Development Release: Xubuntu 16.04 Beta 1.md From b342f53e0868c9db39bd70dc7898906e60e70999 Mon Sep 17 00:00:00 2001 From: runningwater Date: Wed, 2 Mar 2016 11:23:05 +0800 Subject: [PATCH 217/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=AD=20by=20runn?= =?UTF-8?q?ingwater?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- published/20160226 Development Release | 0 ... Viper, the Python IoT Development Suite, is now Zerynth.md | 3 ++- translated/news/20160226 Development Release | 0 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 published/20160226 Development Release create mode 100644 translated/news/20160226 Development Release diff --git a/published/20160226 Development Release b/published/20160226 Development Release new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md b/sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md index 40a601a71e..f732382bc6 100644 --- a/sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md +++ b/sources/tech/20160301 Viper, the Python IoT Development Suite, is now Zerynth.md @@ -1,3 +1,4 @@ +(翻译中 by runningwater) Viper, the Python IoT Development Suite, is now Zerynth ============================================================ @@ -24,7 +25,7 @@ The startup that launched the tools to develop embedded solutions in Python lang via: http://www.open-electronics.org/viper-the-python-iot-development-suite-is-now-zerynth/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+OpenElectronics+%28Open+Electronics%29 作者:[Staff ][a] -译者:[译者ID](https://github.com/译者ID) +译者:[runningwater](https://github.com/runningwater) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/translated/news/20160226 Development Release b/translated/news/20160226 Development Release new file mode 100644 index 0000000000..e69de29bb2 From bef55ccf97cb52b732672e3a88a51188d01ddae8 Mon Sep 17 00:00:00 2001 From: martin qi Date: Wed, 2 Mar 2016 23:57:24 +0800 Subject: [PATCH 218/582] =?UTF-8?q?=E6=A0=A1=E5=AF=B9=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第一次校对,发布前再看看是否有错漏。 --- ...ites Imperiled by New Decryption Attack.md | 25 +++++++++++++++++ ...ites Imperiled by New Decryption Attack.md | 28 ------------------- 2 files changed, 25 insertions(+), 28 deletions(-) create mode 100644 published/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md delete mode 100644 translated/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md diff --git a/published/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/published/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md new file mode 100644 index 0000000000..d3270ac88e --- /dev/null +++ b/published/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md @@ -0,0 +1,25 @@ +逾千万使用 https 的站点受到新型解密攻击的威胁 +=========================================================================== + +![](https://www.linux.com/images/stories/66866/drown-explainer.jpg) + + +低成本的 DROWN 攻击能在数小时内完成数据解密,对采用了 TLS 的邮件服务器也同样奏效。 + +一国际研究小组于周二发出警告,据称逾 1100 万家网站和邮件服务采用的用以保证服务安全的[传输层安全协议][1],对于一种新发现的、成本低廉的攻击而言异常脆弱,这种攻击会在几个小时内解密敏感的通信,在某些情况下解密甚至能瞬间完成。 1 百万家最为流行的网站中有超过 81,000 家正处于这些脆弱的 HTTPS 协议的保护之下。 + +这种攻击主要针对受 TLS 保护、依赖于 [RSA 加密系统][2]的通信。如果密钥泄露了,即使是间接的由 SSLv2,一种在 20 年前就因为自身缺陷而退休了的 LTS 前辈。该漏洞允许攻击者,可以通过反复使用 SSLv2 创建与服务器连接的方式,解密截获的 TLS 连接。 + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/software/applications/889455--more-than-11-million-https-websites-imperiled-by-new-decryption-attack + +作者:[ArsTechnica][a] +译者:[Ezio](https://github.com/oska874) +校对:[martin2011qi](https://github.com/martin2011qi) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/community/forums/person/112 +[1]: https://en.wikipedia.org/wiki/Transport_Layer_Security +[2]: https://en.wikipedia.org/wiki/RSA_(cryptosystem) diff --git a/translated/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/translated/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md deleted file mode 100644 index cdc7d1b7ae..0000000000 --- a/translated/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md +++ /dev/null @@ -1,28 +0,0 @@ -超过一千万个使用 https 的站点有可能收到新型的加密攻击的影响 -=========================================================================== - -![](https://www.linux.com/images/stories/66866/drown-explainer.jpg) - - -低成本的淹没攻击会在几个小时内完成解密操作,同时这也不利于采用了 TLS 的邮件服务器。 - - -一个国际研究小组在周二发出的警告说,超过 1100 万的网站和邮件服务采用了[传输层安全协议][1],以此来保护自己的服务,而这些都是处于一个新发现的、低成本的攻击的威胁之下,这种攻击会在几个小时内解密敏感的通信,在某些情况下甚至是立即解密。 1 百万个最流行的网站中有超过 81,000 个就处于这些受到威胁的 HTTPS 协议保护之下。 - - -处于 TLS 保护的通信协议,依赖于 [RSA 加密系统][2],如果密钥被泄露了,即使是间接的通过 SSLv2 ——一种在 20 年前就因为自身缺陷而退休了的安全协议,也就是 TLS 的前辈协议——泄露也会处于这种新型攻击的威胁之下。这种危险性在于允许一个入侵者通过反复的使用 SSLv2 来连接到服务器,可以解密一个被中途拦截下来的 TLS 连接。 - --------------------------------------------------------------------------------- - -via: https://www.linux.com/news/software/applications/889455--more-than-11-million-https-websites-imperiled-by-new-decryption-attack - -作者:[ArsTechnica][a] -译者:[Ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.linux.com/community/forums/person/112 -[1]: https://en.wikipedia.org/wiki/Transport_Layer_Security -[2]: https://en.wikipedia.org/wiki/RSA_(cryptosystem) - From 54c5c2f669f2b9d4a2b1c843467855996289da85 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 3 Mar 2016 00:11:04 +0800 Subject: [PATCH 219/582] =?UTF-8?q?=E6=A0=A1=E5=AF=B9=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=8C=E8=AF=B7=E5=8F=91=E5=B8=83=E5=90=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1 Million HTTPS Websites Imperiled by New Decryption Attack.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename published/{news => }/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md (100%) diff --git a/published/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md similarity index 100% rename from published/news/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md rename to published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md From 91f16a64344aee942079e824c481bcbe57cd1902 Mon Sep 17 00:00:00 2001 From: FSSlc Date: Thu, 3 Mar 2016 00:36:53 +0800 Subject: [PATCH 220/582] [Translated]20151208 5 great Raspberry Pi projects for the classroom.md --- ...Raspberry Pi projects for the classroom.md | 98 ------------------- ...Raspberry Pi projects for the classroom.md | 98 +++++++++++++++++++ 2 files changed, 98 insertions(+), 98 deletions(-) delete mode 100644 sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md create mode 100644 translated/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md diff --git a/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md b/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md deleted file mode 100644 index 09423a6b8d..0000000000 --- a/sources/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md +++ /dev/null @@ -1,98 +0,0 @@ -FSSlc translating - -5 great Raspberry Pi projects for the classroom -================================================================================ -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png) - -Image by : opensource.com - -### 1. Minecraft Pi ### - -Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0.][1] - -Minecraft is the favorite game of pretty much every teenager in the world—and it's one of the most creative games ever to capture the attention of young people. The version that comes with every Raspberry Pi is not only a creative thinking building game, but comes with a programming interface allowing for additional interaction with the Minecraft world through Python code. - -Minecraft: Pi Edition is a great way for teachers to engage students with problem solving and writing code to perform tasks. You can use the Python API to build a house and have it follow you wherever you go, build a bridge wherever you walk, make it rain lava, show the temperature in the sky, and anything else your imagination can create. - -Read more in "[Getting Started with Minecraft Pi][2]." - -### 2. Reaction game and traffic lights ### - -![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg) - -Courtesy of [Low Voltage Labs][3]. [CC BY-SA 4.0][1]. - -It's really easy to get started with physical computing on Raspberry Pi—just connect up LEDs and buttons to the GPIO pins, and with a few lines of code you can turn lights on and control things with button presses. Once you know the code to do the basics, it's down to your imagination as to what you do next! - -If you know how to flash one light, you can flash three. Pick out three LEDs in traffic light colors and you can code the traffic light sequence. If you know how to use a button to a trigger an event, then you have a pedestrian crossing! Also look out for great pre-built traffic light add-ons like [PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6], and more. - -It's not always about the code—this can be used as an exercise in understanding how real world systems are devised. Computational thinking is a useful skill in any walk of life. - -![](https://opensource.com/sites/default/files/reaction-game.png) - -Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1]. - -Next, try wiring up two buttons and an LED and making a two-player reaction game—let the light come on after a random amount of time and see who can press the button first! - -To learn more, check out "[GPIO Zero recipes][7]. Everything you need is in [CamJam EduKit 1][8]. - -### 3. Sense HAT Pixel Pet ### - -The Astro Pi—an augmented Raspberry Pi—is going to space this December, but you haven't missed your chance to get your hands on the hardware. The Sense HAT is the sensor board add-on used in the Astro Pi mission and it's available for anyone to buy. You can use it for data collection, science experiments, games and more. Watch this Gurl Geek Diaries video from Raspberry Pi's Carrie Anne for a great way to get started—by bringing to life an animated pixel pet of your own design on the Sense HAT display: - -注:youtube 视频 - - -Learn more in "[Exploring the Sense HAT][9]." - -### 4. Infrared bird box ### - -![](https://opensource.com/sites/default/files/ir-bird-box.png) -Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0.][1] - -A great exercise for the whole class to get involved with—place a Raspberry Pi and the NoIR camera module inside a bird box along with some infra-red lights so you can see in the dark, then stream video from the Pi over the network or on the internet. Wait for birds to nest and you can observe them without disturbing them in their habitat. - -Learn all about infrared and the light spectrum, and how to adjust the camera focus and control the camera in software. - -Learn more in "[Make an infrared bird box.][10]" - -### 5. Robotics ### - -![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg) - -Courtesy of Low Voltage Labs. [CC BY-SA 4.0][1]. - -With a Raspberry Pi and as little as a couple of motors and a motor controller board, you can build your own robot. There is a vast range of robots you can make, from basic buggies held together by sellotape and a homemade chassis, all the way to self-aware, sensor-laden metallic stallions with camera attachments driven by games controllers. - -Learn how to control individual motors with something straightforward like the RTK Motor Controller Board (£8/$12), or dive into the new CamJam robotics kit (£17/$25) which comes with motors, wheels and a couple of sensors—great value and plenty of learning potential. - -Alternatively, if you'd like something more hardcore, try PiBorg's [4Borg][11] (£99/$150) or [DiddyBorg][12] (£180/$273) or go the whole hog and treat yourself to their DoodleBorg Metal edition (£250/$380)—and build a mini version of their infamous [DoodleBorg tank][13] (unfortunately not for sale). - -Check out the [CamJam robotics kit worksheets][14]. - - --------------------------------------------------------------------------------- - -via: https://opensource.com/education/15/12/5-great-raspberry-pi-projects-classroom - -作者:[Ben Nuttall][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://opensource.com/users/bennuttall -[1]:https://creativecommons.org/licenses/by-sa/4.0/ -[2]:https://opensource.com/life/15/5/getting-started-minecraft-pi -[3]:http://lowvoltagelabs.com/ -[4]:http://lowvoltagelabs.com/products/pi-traffic/ -[5]:http://4tronix.co.uk/store/index.php?rt=product/product&product_id=390 -[6]:https://ryanteck.uk/hats/1-traffichat-0635648607122.html -[7]:http://pythonhosted.org/gpiozero/recipes/ -[8]:http://camjam.me/?page_id=236 -[9]:https://opensource.com/life/15/10/exploring-raspberry-pi-sense-hat -[10]:https://www.raspberrypi.org/learning/infrared-bird-box/ -[11]:https://www.piborg.org/4borg -[12]:https://www.piborg.org/diddyborg -[13]:https://www.piborg.org/doodleborg -[14]:http://camjam.me/?page_id=1035#worksheets diff --git a/translated/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md b/translated/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md new file mode 100644 index 0000000000..06191d551c --- /dev/null +++ b/translated/talk/yearbook2015/20151208 5 great Raspberry Pi projects for the classroom.md @@ -0,0 +1,98 @@ +5 个适合课堂教学的树莓派项目 +================================================================================ +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png) + +图片来源 : opensource.com + +### 1. Minecraft Pi ### + +![](https://opensource.com/sites/default/files/lava.png) + +上图由树莓派基金会提供。遵循 [CC BY-SA 4.0.][1] 协议。 + +Minecraft(我的世界)几乎是世界上每个青少年都极其喜爱的游戏 —— 在吸引年轻人注意力方面,它也是最具创意的游戏之一。伴随着每一个树莓派的游戏版本不仅仅是一个关于创造性思维的建筑游戏,它还带有一个编程接口,允许使用者通过 Python 代码来与 Minecraft 世界进行互动。 + +对于教师来说,Minecraft: Pi 版本是一个鼓励学生们解决遇到的问题以及通过书写代码来执行特定任务的极好方式。你可以使用 Python API + 来建造一所房子,让它跟随你到任何地方;或在你所到之处修建一座桥梁;又或者是下一场岩溶雨;或在天空中显示温度;以及其他任何你能想像到的事物。 + +可在 "[Minecraft Pi 入门][2]" 中了解更多相关内容。 + +### 2. 反应游戏和交通指示灯 ### + +![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg) + +上图由 [Low Voltage Labs][3] 提供。遵循 [CC BY-SA 4.0][1] 协议。 + +在树莓派上进行物理计算是非常容易的 —— 只需将 LED 灯 和按钮连接到 GPIO 针脚上,再加上少量的代码,你就可以点亮 LED 灯并通过按按钮来控制物体。一旦你知道来执行基本操作的代码,下一步就可以随你的想像那样去做了! + +假如你知道如何让一盏灯闪烁,你就可以让三盏灯闪烁。选出三盏交通灯颜色的 LED 灯,你就可以编程出交通灯闪烁序列。假如你知道如何使用一个按钮来触发一个事件,然后你就有一个人行横道了!同时,你还可以找到诸如 [PI-TRAFFIC][4]、[PI-STOP][5]、[Traffic HAT][6] 等预先构建好的交通灯插件。 + +这不总是关于代码的 —— 它还可以被用来作为一个的练习,用以理解真实世界中的系统是如何被设计出来的。计算思维在生活中的各种情景中都是一个有用的技能。 + +![](https://opensource.com/sites/default/files/reaction-game.png) + +上图由树莓派基金会提供。遵循 [CC BY-SA 4.0][1] 协议。 + +下面尝试将两个按钮和一个 LED 灯连接起来,来制作一个二人制反应游戏 —— 让灯在一段随机的时间中点亮,然后看谁能够先按到按钮! + +想了解更多的话,请查看 [GPIO 新手指南][7]。你所需要的尽在 [CamJam EduKit 1][8]。 + +### 3. Sense HAT 像素宠物 ### + +Astro Pi— 一个增强版的树莓派 —将于今年 12 月(注:应该是去年的事了。)问世,但你并没有错过让你的手玩弄硬件的机会。Sense HAT 是一个用在 Astro Pi 任务中的感应器主板插件,且任何人都可以买到。你可以用它来做数据收集、科学实验、游戏或者更多。 观看下面这个由树莓派的 Carrie Anne 带来的 Gurl Geek Diaries 录像来开始一段美妙的旅程吧 —— 通过在 Sense HAT 的显示器上展现出你自己设计的一个动物像素宠物: + +注:youtube 视频 + + +在 "[探索 Sense HAT][9]" 中可以学到更多。 + +### 4. 红外鸟箱 ### + +![](https://opensource.com/sites/default/files/ir-bird-box.png) +上图由 [Low Voltage Labs][3] 提供。遵循 [CC BY-SA 4.0][1] 协议。 + +让全班所有同学都能够参与进来的一个好的练习是 —— 在一个鸟箱中沿着某些红外线放置一个树莓派和 NoIR 照相模块,这样你就可以在黑暗中观看,然后通过网络或在网络中你可以从树莓派那里获取到视频流。等鸟进入笼子,然后你就可以在不打扰到它们的情况下观察它们。 + +在这期间,你可以学习到所有关于红外和光谱的知识,以及如何用软件来调整摄像头的焦距和控制它。 + +在 "[制作一个红外鸟箱][10]" 中你可以学到更多。 + +### 5. 机器人 ### + +![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg) + +上图由 Low Voltage Labs 提供。遵循 [CC BY-SA 4.0][1] 协议。 + +拥有一个树莓派,一些感应器和一个感应器控制电路板,你就可以构建你自己的机器人。你可以制作各种类型的机器人,从用透明胶带和自制底盘组合在一起的简易四驱车,一直到由游戏控制器驱动的具有自我意识,带有传感器和摄像头的金属马儿。 + +学习如何直接去控制单个的发动机,例如通过 RTK Motor Controller Board (£8/$12),或者尝试新的 CamJam robotics kit (£17/$25) ,它带有发动机、轮胎和一系列的感应器 — 这些都很有价值并很有学习的潜力。 + +另外,如何你喜欢更为骨灰级别的东西,可以尝试 PiBorg 的 [4Borg][11] (£99/$150) 或 [DiddyBorg][12] (£180/$273) 或者一干到底,享受他们的 DoodleBorg 金属版 (£250/$380) — 并构建一个他们声名远扬的 [DoodleBorg tank][13](很不幸的时,这个没有卖的) 的迷你版。 + +另外请参考 [CamJam robotics kit worksheets][14]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/education/15/12/5-great-raspberry-pi-projects-classroom + +作者:[Ben Nuttall][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/bennuttall +[1]:https://creativecommons.org/licenses/by-sa/4.0/ +[2]:https://opensource.com/life/15/5/getting-started-minecraft-pi +[3]:http://lowvoltagelabs.com/ +[4]:http://lowvoltagelabs.com/products/pi-traffic/ +[5]:http://4tronix.co.uk/store/index.php?rt=product/product&product_id=390 +[6]:https://ryanteck.uk/hats/1-traffichat-0635648607122.html +[7]:http://pythonhosted.org/gpiozero/recipes/ +[8]:http://camjam.me/?page_id=236 +[9]:https://opensource.com/life/15/10/exploring-raspberry-pi-sense-hat +[10]:https://www.raspberrypi.org/learning/infrared-bird-box/ +[11]:https://www.piborg.org/4borg +[12]:https://www.piborg.org/diddyborg +[13]:https://www.piborg.org/doodleborg +[14]:http://camjam.me/?page_id=1035#worksheets From 2fd4968b580d73a74038c177a8a8873d0daddf78 Mon Sep 17 00:00:00 2001 From: martin qi Date: Thu, 3 Mar 2016 21:34:54 +0800 Subject: [PATCH 221/582] Verify --- ...send email notifications using Gmail SMTP server on Linux.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md index 56830068ab..ce6174cefc 100644 --- a/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md +++ b/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md @@ -1,3 +1,5 @@ +Martin + 如何在Linux上使用Gmail SMTP服务器发送邮件通知 ================================================================================ 假定你想配置一个Linux app从你的服务器或桌面客户端发送邮件信息。邮件信息可以是邮件简报、状态更新(比如[Cachet][1])、监控警报(比如[Monit][2])、磁盘时间(比如[RAID mdadm][3])等等的一部分。当你要建立自己的[邮件发送服务器][4],作为一个免维护的选择,你可以依赖一个免费可用的公共SMTP服务器。 From 331a67dbaa08d9bb2f8714586271a43346d8e907 Mon Sep 17 00:00:00 2001 From: martin qi Date: Fri, 4 Mar 2016 01:02:10 +0800 Subject: [PATCH 222/582] =?UTF-8?q?=E6=A0=A1=E5=AF=B9=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ations using Gmail SMTP server on Linux.md | 156 +++++++++++++++++ ...ations using Gmail SMTP server on Linux.md | 158 ------------------ 2 files changed, 156 insertions(+), 158 deletions(-) create mode 100644 published/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md delete mode 100644 translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md diff --git a/published/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/published/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md new file mode 100644 index 0000000000..20850869b1 --- /dev/null +++ b/published/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md @@ -0,0 +1,156 @@ +如何在 Linux 上使用 Gmail SMTP 服务器发送邮件通知 +================================================================================ +假定你想配置一个 Linux app,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是部分的邮件简报、状态更新(如 [Cachet][1])、监控警报(如 [Monit][2])、磁盘时间(如 [RAID mdadm][3])等等。当你要建立自己的 [邮件发送服务器][4] 传递信息时 ,你可以依赖一个免费使用的公共 SMTP 服务器作为一个变通选项避免遭受维护之苦。 + +谷歌的 Gmail 服务就是最可靠的 **免费 SMTP 服务器** 之一。想要从 app 发送邮件通知,你仅需在 app 中添加 Gmail 的 SMTP 服务器地址和你的凭证即可。 + +选择 Gmail 的 SMTP 服务器的原因之一是各种各样恰当的限制,这些限制主要用于阻止那些经常滥用服务器来发送垃圾邮件和使用邮件营销的家伙。举个例子,你一次只能给至多 100 个地址发送信息,并且一天不能超过 500 个收件人。同样,如果你不想被标为垃圾邮件发送者,你就不能发送过多的不可投递的消息。当你达到任何一个限制,你的 Gmail 账户将被暂时的锁定一天。简而言之,Gmail 的 SMTP 服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。 + +说了这么多,是时候向你们展示 **如何在 Linux 环境下使用 Gmail 的 SMTP 服务器** 了。 + +### Google Gmail SMTP 服务器设置 ### + +如果你想要通过你的 app 使用 Gmail 的 SMTP 服务器发送邮件,请牢记接下来的详细说明。 + +- **邮件发送服务器 (SMTP 服务器)**: smtp.gmail.com +- **使用认证**: 是 +- **使用安全连接**: 是 +- **用户名**: 你的 Gmail 账户 ID (比如 "alice" 如果你的邮箱为 alice@gmail.com) +- **密码**: 你的 Gmail 密码 +- **端口**: 587 + +确切的配置根据 app 会有所不同。在本教程的剩余部分,我将向你展示一些在 Linux 上使用 Gmail SMTP 服务器的应用示例。 + +### 从命令行发送邮件 ### + +作为第一个例子,让我们尝试最基本的邮件功能:使用 Gmail SMTP 服务器从命令行发送一封邮件。为此,我将使用一个称为 mutt 的命令行邮件客户端。 + +先安装 mutt: + +对于 Debian-based 系统: + + $ sudo apt-get install mutt + +对于 Red Hat based 系统: + + $ sudo yum install mutt + +创建一个 mutt 配置文件(~/.muttrc),并和下面一样,在文件中指定 Gmail SMTP 服务器信息。将 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已(而非接收邮件)。 + + $ vi ~/.muttrc + +---------- + + set from = "@gmail.com" + set realname = "Dan Nanni" + set smtp_url = "smtp://@smtp.gmail.com:587/" + set smtp_pass = "" + +一切就绪使用 mutt 发送一封邮件: + + $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com + +想在一封邮件中添加附件,使用 "-a" 选项 + + $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com -a ~/test_attachment.jpg + +![](https://c1.staticflickr.com/1/770/22239850784_5fb0988075_c.jpg) + +使用 Gmail SMTP 服务器意味着邮件将显示是从你 Gmail 账户发出的。换句话说,收件人将视你的 Gmail 地址为发件人地址。如果你想要使用自己的域名作为邮件发送方,你需要使用 Gmail SMTP 转发服务。 + +### 当服务器重启时发送邮件通知 ### + +如果你在 [虚拟专用服务器(VPS)][5] 上跑了些重要的网站,建议要监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS 上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是 systemd,并向你展示如何为自动邮件通知创建一个自定义的 systemd 启动服务。 + +首先创建下面的脚本 reboot_notify.sh,用于负责邮件通知。 + + $ sudo vi /usr/local/bin/reboot_notify.sh + +---------- + + #!/bin/sh + + echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoo.com + +---------- + + $ sudo chmod +x /usr/local/bin/reboot_notify.sh + +在这个脚本中,我使用 "-F" 选项,用于指定系统级的 mutt 配置文件位置。因此不要忘了创建 /etc/muttrc 文件,并如前面描述的那样填入 Gmail SMTP 信息。 + +现在让我们创建如下一个自定义的 systemd 服务。 + + $ sudo mkdir -p /usr/local/lib/systemd/system + $ sudo vi /usr/local/lib/systemd/system/reboot-task.service + +---------- + + [Unit] + Description=Send a notification email when the server gets rebooted + DefaultDependencies=no + Before=reboot.target + + [Service] + Type=oneshot + ExecStart=/usr/local/bin/reboot_notify.sh + + [Install] + WantedBy=reboot.target + +在创建服务后,添加并启动该服务。 + + $ sudo systemctl enable reboot-task + $ sudo systemctl start reboot-task + +从现在起,在每次 VPS 重启时,你将会收到一封通知邮件。 + +![](https://c1.staticflickr.com/1/608/22241452923_2ace9cde2e_c.jpg) + +### 通过服务器使用监控发送邮件通知 ### + +作为最后一个例子,让我展示一个现实生活中的应用程序,[Monit][6],这是一款极其有用的服务器监控应用程序。它附有全面的 [VPS][7] 监控能力(比如 CPU、内存、进程、文件系统),和邮件通知功能。 + +如果你想要接收 VPS 上任何事件导致的且由 Monit 产生的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。 + + set mailserver smtp.gmail.com port 587 + username "" password "" + using tlsv12 + + set mail-format { + from: @gmail.com + subject: $SERVICE $EVENT at $DATE on $HOST + message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. + + Yours sincerely, + Monit + } + + # the person who will receive notification emails + set alert alice@yahoo.com + +这是一个因为 CPU 负载超载而由 Monit 发送的邮件通知的例子。 + +![](https://c1.staticflickr.com/1/566/22873764251_8fe66bfd16_c.jpg) + +### 总结 ### + +如你所见,类似 Gmail 这样免费的 SMTP 服务器有着这么多不同的运用方式 。但再次重申,牢记免费的 SMTP 服务器不适用于商业用途,仅仅适用于个人项目。无论你正在任一款 app 中使用 Gmail SMTP 服务器,欢迎自由分享你的用例。 + +-------------------------------------------------------------------------------- + +via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html + +作者:[Dan Nanni][a] +译者:[cposture](https://github.com/cposture) +校对:[martin2011qi](https://github.com/martin2011qi) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://xmodulo.com/author/nanni +[1]:http://xmodulo.com/setup-system-status-page.html +[2]:http://xmodulo.com/server-monitoring-system-monit.html +[3]:http://xmodulo.com/create-software-raid1-array-mdadm-linux.html +[4]:http://xmodulo.com/mail-server-ubuntu-debian.html +[5]:http://xmodulo.com/go/digitalocean +[6]:http://xmodulo.com/server-monitoring-system-monit.html +[7]:http://xmodulo.com/go/digitalocean diff --git a/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md deleted file mode 100644 index ce6174cefc..0000000000 --- a/translated/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md +++ /dev/null @@ -1,158 +0,0 @@ -Martin - -如何在Linux上使用Gmail SMTP服务器发送邮件通知 -================================================================================ -假定你想配置一个Linux app从你的服务器或桌面客户端发送邮件信息。邮件信息可以是邮件简报、状态更新(比如[Cachet][1])、监控警报(比如[Monit][2])、磁盘时间(比如[RAID mdadm][3])等等的一部分。当你要建立自己的[邮件发送服务器][4],作为一个免维护的选择,你可以依赖一个免费可用的公共SMTP服务器。 - -最可靠的**免费SMTP服务器**之一来自谷歌的Gmail服务。为了在你的app里发送邮件通知,你仅需在app中添加Gmail的SMTP服务器地址和你的凭证即可。 - -Gmail的SMTP服务器吸引人的地方之一是有各种各样恰当的限制,这些限制主要用于阻止那些经常滥用服务器的滥发垃圾邮件者和邮件营销者。举个例子,你一次只能给至多100个地址发送信息,并且一天不能超过500个接收者。当你达到任何一个限制,你的Gmail账户将暂时锁一天。简而言之,Gmail的SMTP服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。 - -话虽如此,让我们展示**如何在Linux环境下使用Gmail的SMTP服务器**。 - -### Google Gmail SMTP服务器设置 ### - -如果你想要使用Gmail的SMTP服务器从你的app发送邮件,请牢记接下来的详细说明。 - -- **邮件发送服务器 (SMTP服务器)**: smtp.gmail.com -- **使用认证**: 是 -- **使用安全连接**: 是 -- **用户名**: 你的Gmail账户ID (比如 "alice" 如果你的邮箱为alice@gmail.com) -- **密码**: 你的Gmail密码 -- **端口**: 587 - -确切的配置语法可能要依据app而不同。在本教程的剩下部分,我将会向你展示各种在Linux上使用Gmail SMTP服务器的有用示例。 - -### 从命令行发送邮件 ### - -作为第一个例子,让我们尝试最基本的邮件功能:使用Gmail SMTP服务器从命令行发送一封邮件。为此,我将使用一个称为mutt的命令行邮件客户端。 - -先安装mutt: - -对于 Debian-based 系统: - - $ sudo apt-get install mutt - -对于 Red Hat based 系统: - - $ sudo yum install mutt - -创建一个mutt配置文件(~/.muttrc),并和下面一样,在文件中指定Gmail SMTP服务器信息。将gmail-id替换成自己的Gmail ID。注意这配置只是为了发送邮件而已(而非接收邮件)。 - - $ vi ~/.muttrc - ----------- - - set from = "@gmail.com" - set realname = "Dan Nanni" - set smtp_url = "smtp://@smtp.gmail.com:587/" - set smtp_pass = "" - -现在准备使用mutt发送一封邮件: - - $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com - -为了在一封邮件中添加一个附件,使用"-a"选项 - - $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com -a ~/test_attachment.jpg - -![](https://c1.staticflickr.com/1/770/22239850784_5fb0988075_c.jpg) - -使用Gmail SMTP服务器意味着邮件显示为从你的Gmail账户发出。换句话说,一个接收者将你的Gmail地址视为发送者地址。如果你想要使用自己的域名作为邮件发送者,你需要使用Gmail SMTP转发服务。 - -### 当服务器重启时发送邮件通知 ### - -如果你为了一些重要的网站正在运行一台[虚拟专用服务器(VPS)][5],一个建议是监视VPS的重启活动。作为一个更实用的例子,让我们研究如何在你的VPS上为每一次重启事件建立邮件通知。这里我假设你正在你的VPS上使用systemd,并向你展示如何为自动邮件通知创建一个自定义的systemd启动服务。 - -首先创建下面的脚本reboot_notify.sh,用于负责邮件通知。 - - $ sudo vi /usr/local/bin/reboot_notify.sh - ----------- - - #!/bin/sh - - echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoo.com - ----------- - - $ sudo chmod +x /usr/local/bin/reboot_notify.sh - -在这个脚本中,我使用"-F"选项,用于直到系统级的mutt配置文件位置。因此不要忘了创建/etc/muttrc文件并如前面描述填入Gmail SMTP信息。 - -现在让我们创建如下一个自定义的systemd服务。 - - $ sudo mkdir -p /usr/local/lib/systemd/system - $ sudo vi /usr/local/lib/systemd/system/reboot-task.service - ----------- - - [Unit] - Description=Send a notification email when the server gets rebooted - DefaultDependencies=no - Before=reboot.target - - [Service] - Type=oneshot - ExecStart=/usr/local/bin/reboot_notify.sh - - [Install] - WantedBy=reboot.target - -一旦创建服务,便使能和启动该服务。 - - $ sudo systemctl enable reboot-task - $ sudo systemctl start reboot-task - -从现在起,在每次VPS重启时你将会收到一封通知邮件。 - -![](https://c1.staticflickr.com/1/608/22241452923_2ace9cde2e_c.jpg) - -### 从服务器使用监控发送邮件通知 ### - -作为最后一个例子,让我展示一个称为[Monit][6]的现实生活的应用程序,这是一个极其有用的服务器监控应用程序。它附有广泛的[VPS][7]监控能力(比如CPU、内存、进程、文件系统),包括邮件通知能力。 - -如果你想要接收VPS上任何事件导致的且由Monit产生的邮件通知,你可以在Monit配置文件中添加以下SMTP信息。 - - set mailserver smtp.gmail.com port 587 - username "" password "" - using tlsv12 - - set mail-format { - from: @gmail.com - subject: $SERVICE $EVENT at $DATE on $HOST - message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. - - Yours sincerely, - Monit - } - - # the person who will receive notification emails - set alert alice@yahoo.com - -这是一个因为CPU负载超载而由Monit发送的邮件通知例子。 - -![](https://c1.staticflickr.com/1/566/22873764251_8fe66bfd16_c.jpg) - -### 总结 ### - -正如你能想象的,像Gmail一样,有许多中不同的方式使用免费的SMTP服务器。但再次说明,请牢记免费的SMTP服务器不适用于商业用途,仅仅适用于个人项目。如果你正在任一app中使用Gmail SMTP服务器,请自由分享你的用例。 - --------------------------------------------------------------------------------- - -via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html - -作者:[Dan Nanni][a] -译者:[cposture](https://github.com/cposture) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://xmodulo.com/author/nanni -[1]:http://xmodulo.com/setup-system-status-page.html -[2]:http://xmodulo.com/server-monitoring-system-monit.html -[3]:http://xmodulo.com/create-software-raid1-array-mdadm-linux.html -[4]:http://xmodulo.com/mail-server-ubuntu-debian.html -[5]:http://xmodulo.com/go/digitalocean -[6]:http://xmodulo.com/server-monitoring-system-monit.html -[7]:http://xmodulo.com/go/digitalocean From f6195564271811c8bb9361a4762b7296369f8ca3 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 4 Mar 2016 11:00:52 +0800 Subject: [PATCH 223/582] =?UTF-8?q?=E6=A0=A1=E5=AF=B9=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=AD=A3=E7=9B=AE=E5=BD=95=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o send email notifications using Gmail SMTP server on Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename published/{tech => }/20151109 How to send email notifications using Gmail SMTP server on Linux.md (100%) diff --git a/published/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/published/20151109 How to send email notifications using Gmail SMTP server on Linux.md similarity index 100% rename from published/tech/20151109 How to send email notifications using Gmail SMTP server on Linux.md rename to published/20151109 How to send email notifications using Gmail SMTP server on Linux.md From 9b7d854df6eda7cbf5827231fa5e8b752a5dd3aa Mon Sep 17 00:00:00 2001 From: robot527 Date: Fri, 4 Mar 2016 20:19:36 +0800 Subject: [PATCH 224/582] Translated 20151028 Bossie Awards 2015--The best open source networking and security software.md --- ...source networking and security software.md | 165 ------------------ ...source networking and security software.md | 162 +++++++++++++++++ 2 files changed, 162 insertions(+), 165 deletions(-) delete mode 100644 sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md create mode 100644 translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md b/sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md deleted file mode 100644 index 78c558b1e6..0000000000 --- a/sources/share/20151028 Bossie Awards 2015--The best open source networking and security software.md +++ /dev/null @@ -1,165 +0,0 @@ -robot527 translating - - -Bossie Awards 2015: The best open source networking and security software -================================================================================ -InfoWorld's top picks of the year among open source tools for building, operating, and securing networks - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-net-sec-100614459-orig.jpg) - -### The best open source networking and security software ### - -BIND, Sendmail, OpenSSH, Cacti, Nagios, Snort -- open source software seems to have been invented for networks, and many of the oldies and goodies are still going strong. Among our top picks in the category this year, you'll find a mix of stalwarts, mainstays, newcomers, and upstarts perfecting the arts of network management, security monitoring, vulnerability assessment, rootkit detection, and much more. - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-icinga-100614482-orig.jpg) - -### Icinga 2 ### - -Icinga began life as a fork of system monitoring application Nagios. [Icinga 2][1] was completely rewritten to give users a modern interface, support for multiple databases, and an API to integrate numerous extensions. With out-of-the-box load balancing, notifications, and configuration, Icinga 2 shortens the time to installation for complex environments. Icinga 2 supports Graphite natively, giving administrators real-time performance graphing without any fuss. But what puts Icinga back on the radar this year is its release of Icinga Web 2, a graphical front end with drag-and-drop customizable dashboards and streamlined monitoring tools. - -Administrators can view, filter, and prioritize problems, while keeping track of which actions have already been taken. A new matrix view lets administrators view hosts and services on one page. You can view events over a particular time period or filter incidents to understand which ones need immediate attention. Icinga Web 2 may boast a new interface and zippier performance, but all the usual commands from Icinga Classic and Icinga Web are still available. That means there is no downtime trying to learn a new version of the tool. - --- Fahmida Rashid - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-zenoss-100614465-orig.jpg) - -### Zenoss Core ### - -Another open source stalwart, [Zenoss Core][2] gives network administrators a complete, one-stop solution for tracking and managing all of the applications, servers, storage, networking components, virtualization tools, and other elements of an enterprise infrastructure. Administrators can make sure the hardware is running efficiently and take advantage of the modular design to plug in ZenPacks for extended functionality. - -Zenoss Core 5, released in February of this year, takes the already powerful tool and improves it further, with an enhanced user interface and expanded dashboard. The Web-based console and dashboards were already highly customizable and dynamic, and the new version now lets administrators mash up multiple component charts onto a single chart. Think of it as the tool for better root cause and cause/effect analysis. - -Portlets give additional insights for network mapping, device issues, daemon processes, production states, watch lists, and event views, to name a few. And new HTML5 charts can be exported outside the tool. The Zenoss Control Center allows out-of-band management and monitoring of all Zenoss components. Zenoss Core has new tools for online backup and restore, snapshots and rollbacks, and multihost deployment. Even more important, deployments are faster with full Docker support. - --- Fahmida Rashid - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opennms-100614461-orig.jpg) - -### OpenNMS ### - -An extremely flexible network management solution, [OpenNMS][3] can handle any network management task, whether it's device management, application performance monitoring, inventory control, or events management. With IPv6 support, a robust alerts system, and the ability to record user scripts to test Web applications, OpenNMS has everything network administrators and testers need. OpenNMS has become, as now a mobile dashboard, called OpenNMS Compass, lets networking pros keep an eye on their network even when they're out and about. - -The iOS version of the app, which is available on the [iTunes App Store][4], displays outages, nodes, and alarms. The next version will offer additional event details, resource graphs, and information about IP and SNMP interfaces. The Android version, available on [Google Play][5], displays network availability, outages, and alarms on the dashboard, as well as the ability to acknowledge, escalate, or clear alarms. The mobile clients are compatible with OpenNMS Horizon 1.12 or greater and OpenNMS Meridian 2015.1.0 or greater. - --- Fahmida Rashid - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-onion-100614460-orig.jpg) - -### Security Onion ### - -Like an onion, network security monitoring is made of many layers. No single tool will give you visibility into every attack or show you every reconnaissance or foot-printing session on your company network. [Security Onion][6] bundles scores of proven tools into one handy Ubuntu distro that will allow you to see who's inside your network and help keep the bad guys out. - -Whether you're taking a proactive approach to network security monitoring or following up on a potential attack, Security Onion can assist. Consisting of sensor, server, and display layers, the Onion combines full network packet capture with network-based and host-based intrusion detection, and it serves up all of the various logs for inspection and analysis. - -The star-studded network security toolchain includes Netsniff-NG for packet capture, Snort and Suricata for rules-based network intrusion detection, Bro for analysis-based network monitoring, OSSEC for host intrusion detection, and Sguil, Squert, Snorby, and ELSA (Enterprise Log Search and Archive) for display, analysis, and log management. It’s a carefully vetted collection of tools, all wrapped in a wizard-driven installer and backed by thorough documentation, that can help you get from zero to monitoring as fast as possible. - --- Victor R. Garza - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-kali-100614458-orig.jpg) - -Kali Linux - -The team behind [Kali Linux][7] revamped the popular security Linux distribution this year to make it faster and even more versatile. Kali sports a new 4.0 kernel, improved hardware and wireless driver support, and a snappier interface. The most popular tools are easily accessible from a dock on the side of the screen. The biggest change? Kali Linux is now a rolling distribution, with a continuous stream of software updates. Kali's core system is based on Debian Jessie, and the team will pull packages continuously from Debian Testing, while continuing to add new Kali-flavored features on top. - -The distribution still comes jam-packed with tools for penetration testing, vulnerability analysis, security forensics, Web application analysis, wireless networking and assessment, reverse engineering, and exploitation tools. Now the distribution has an upstream version checking system that will automatically notify users when updates are available for the individual tools. The distribution also features ARM images for a range of devices, including Raspberry Pi, Chromebook, and Odroids, as well as updates to the NetHunter penetration testing platform that runs on Android devices. There are other changes too: Metasploit Community/Pro is no longer included, because Kali 2.0 is not yet [officially supported by Rapid7][8]. - --- Fahmida Rashid - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-openvas-100614462-orig.jpg) - -### OpenVAS ### - -[OpenVAS][9], the Open Vulnerability Assessment System, is a framework that combines multiple services and tools to offer vulnerability scanning and vulnerability management. The scanner is coupled with a weekly feed of network vulnerability tests, or you can use a feed from a commercial service. The framework includes a command-line interface (so it can be scripted) and an SSL-secured, browser-based interface via the [Greenbone Security Assistant][10]. OpenVAS accommodates various plug-ins for additional functionality. Scans can be scheduled or run on-demand. - -Multiple OpenVAS installations can be controlled through a single master, which makes this a scalable vulnerability assessment tool for enterprises. The project is as compatible with standards as can be: Scan results and configurations are stored in a SQL database, where they can be accessed easily by external reporting tools. Client tools access the OpenVAS Manager via the XML-based stateless OpenVAS Management Protocol, so security administrators can extend the functionality of the framework. The software can be installed from packages or source code to run on Windows or Linux, or downloaded as a virtual appliance. - --- Matt Sarrel - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-owasp-100614463-orig.jpg) - -### OWASP ### - -[OWASP][11], the Open Web Application Security Project, is a nonprofit organization with worldwide chapters focused on improving software security. The community-driven organization provides test tools, documentation, training, and almost anything you could imagine that’s related to assessing software security and best practices for developing secure software. Several OWASP projects have become valuable components of many a security practitioner's toolkit: - -[ZAP][12], the Zed Attack Proxy Project, is a penetration test tool for finding vulnerabilities in Web applications. One of the design goals of ZAP was to make it easy to use so that developers and functional testers who aren't security experts can benefit from using it. ZAP provides automated scanners and a set of manual test tools. - -The [Xenotix XSS Exploit Framework][13] is an advanced cross-site scripting vulnerability detection and exploitation framework that runs scans within browser engines to get real-world results. The Xenotix Scanner Module uses three intelligent fuzzers, and it can run through nearly 5,000 distinct XSS payloads. An API lets security administrators extend and customize the exploit toolkit. - -[O-Saft][14], or the OWASP SSL advanced forensic tool, is an SSL auditing tool that shows detailed information about SSL certificates and tests SSL connections. This command-line tool can run online or offline to assess SSL security such as ciphers and configurations. O-Saft provides built-in checks for common vulnerabilities, and you can easily extend these through scripting. In May 2015 a simple GUI was added as an optional download. - -[OWTF][15], the Offensive Web Testing Framework, is an automated test tool that follows OWASP testing guidelines and the NIST and PTES standards. The framework uses both a Web UI and a CLI, and it probes Web and application servers for common vulnerabilities such as improper configuration and unpatched software. - --- Matt Sarrel - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-beef-100614456-orig.jpg) - -### BeEF ### - -The Web browser has become the most common vector for attacks against clients. [BeEF][15], the Browser Exploitation Framework Project, is a widely used penetration tool to assess Web browser security. BeEF helps you expose the security weaknesses of client systems using client-side attacks launched through the browser. BeEF sets up a malicious website, which security administrators visit from the browser they want to test. BeEF then sends commands to attack the Web browser and use it to plant software on the client machine. Administrators can then launch attacks on the client machine as if they were zombies. - -BeEF comes with commonly used modules like a key logger, a port scanner, and a Web proxy, plus you can write your own modules or send commands directly to the zombified test machine. BeEF comes with a handful of demo Web pages to help you get started and makes it very easy to write additional Web pages and attack modules so you can customize testing to your environment. BeEF is a valuable test tool for assessing browser and endpoint security and for learning how browser-based attacks are launched. Use it to put together a demo to show your users how malware typically infects client devices. - --- Matt Sarrel - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-unhide-100614464-orig.jpg) - -### Unhide ### - -[Unhide][16] is a forensic tool that locates open TCP/UDP ports and hidden process on UNIX, Linux, and Windows. Hidden ports and processes can be the result of rootkit or LKM (loadable kernel module) activity. Rootkits can be difficult to find and remove because they are designed to be stealthy, hiding themselves from the OS and user. A rootkit can use LKMs to hide its processes or impersonate other processes, allowing it to run on machines undiscovered for a long time. Unhide can provide the assurance that administrators need to know their systems are clean. - -Unhide is really two separate scripts: one for processes and one for ports. The tool interrogates running processes, threads, and open ports and compares this info to what's registered with the system as active, reporting discrepancies. Unhide and WinUnhide are extremely lightweight scripts that run from the command line to produce text output. They're not pretty, but they are extremely useful. Unhide is also included in the [Rootkit Hunter][17] project. - --- Matt Sarrel - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614457-orig.jpg) - -Read about more open source winners - -InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners: - -[Bossie Awards 2015: The best open source applications][18] - -[Bossie Awards 2015: The best open source application development tools][19] - -[Bossie Awards 2015: The best open source big data tools][20] - -[Bossie Awards 2015: The best open source data center and cloud software][21] - -[Bossie Awards 2015: The best open source desktop and mobile software][22] - -[Bossie Awards 2015: The best open source networking and security software][23] - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2982962/open-source-tools/bossie-awards-2015-the-best-open-source-networking-and-security-software.html - -作者:[InfoWorld staff][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/InfoWorld-staff/ -[1]:https://www.icinga.org/icinga/icinga-2/ -[2]:http://www.zenoss.com/ -[3]:http://www.opennms.org/ -[4]:https://itunes.apple.com/us/app/opennms-compass/id968875097?mt=8 -[5]:https://play.google.com/store/apps/details?id=com.opennms.compass&hl=en -[6]:http://blog.securityonion.net/p/securityonion.html -[7]:https://www.kali.org/ -[8]:https://community.rapid7.com/community/metasploit/blog/2015/08/12/metasploit-on-kali-linux-20 -[9]:http://www.openvas.org/ -[10]:http://www.greenbone.net/ -[11]:https://www.owasp.org/index.php/Main_Page -[12]:https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project -[13]:https://www.owasp.org/index.php/O-Saft -[14]:https://www.owasp.org/index.php/OWASP_OWTF -[15]:http://www.beefproject.com/ -[16]:http://www.unhide-forensics.info/ -[17]:http://www.rootkit.nl/projects/rootkit_hunter.html -[18]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html -[19]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html -[20]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html -[21]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html -[22]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html -[23]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html \ No newline at end of file diff --git a/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md b/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md new file mode 100644 index 0000000000..42b2a4ac99 --- /dev/null +++ b/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md @@ -0,0 +1,162 @@ +2015 Bossie 评选:最佳开源网络和安全软件 +================================================================================ +InfoWorld 在建设网络,运营网络和保障网络安全领域精选出了年度开源工具获奖者。 + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-net-sec-100614459-orig.jpg) + +### 最佳开源网络和安全软件 ### + +[BIND](https://en.wikipedia.org/wiki/BIND), [Sendmail](https://en.wikipedia.org/wiki/Sendmail), [OpenSSH](https://en.wikipedia.org/wiki/OpenSSH), [Cacti](https://en.wikipedia.org/wiki/Cactus), [Nagios](https://en.wikipedia.org/wiki/Nagios), [Snort](https://en.wikipedia.org/wiki/Snort_%28software%29) -- 这些为了网络而发明的开源软件,许多老家伙和好东西依然强劲。今年在我们这个范畴的最佳选择中,你会发现中坚支柱,新人,和新贵正在完善网络管理,安全监控,漏洞评估,[rootkit](https://en.wikipedia.org/wiki/Rootkit) 检测,以及更多。 + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-icinga-100614482-orig.jpg) + +### Icinga 2 ### + +Icinga 起先只是系统监控应用 Nagios 的一个分叉。为了给用户一个时尚的界面,对多个数据库的支持,以及一个集成众多扩展的 API,[Icinga 2][1] 被完全重写。凭借开箱即用的负载均衡、通知和配置,Icinga 2 缩短了在复杂环境下的安装时间。Icinga 2 原生支持 [Graphite](https://github.com/graphite-project/graphite-web)(系统监控应用),轻松为管理员呈现实时性能图表。但是 Icinga 今年很火是因为它发布了一个支持可拖放可定制 dashboard 和一些流式监控工具的前端图形界面系统 Icinga Web 2。 + +管理员可以查看,过滤,并把问题按优先顺序排好,同时保持跟踪已经进行的动作。一个新的矩阵视图使管理员能够在一个页面上查看主机和服务。您可以查看一个特定时间段的事件或筛选了的事件来了解哪些需要立即关注。Icinga Web 2 能够拥有一个全新界面和更为强劲的性能,然而传统版 Icinga 和 Web 版 Icinga 的所有常用命令仍然可用。这意味着学习新版工具不耗费额外的时间。 + +-- Fahmida Rashid + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-zenoss-100614465-orig.jpg) + +### Zenoss Core ### + +另一个强大的开源软件,[Zenoss Core][2] 为网络管理员提供了一个完整的,一站式解决方案来跟踪和管理所有的应用程序、服务器、存储,网络组件、虚拟化工具、以及企业基础架构的其他元素。管理员可以确保硬件的运行效率并利用模块化设计的插件来扩展 ZenPacks 的功能。 + +Zenoss Core 5,在今年二月发布,作为已经很强大的工具,并进一步改进以增强用户界面和扩展 dashboard。基于 Web 的控制台和 dashboard 已经是高度可定制的和动态调整的,现在新版本可让管理员混搭多个组件图表到一个图表。可把它作为一种更好的根源分析和因果分析的工具。 + +Portlets 为网络映射、设备问题、守护进程、产品状态、监视列表和事件视图等等提供深入的分析。而且新的 HTML5 图表可以从工具导出。Zenoss 的控制中心支持带外管理并且可监控所有 Zenoss 组件。Zenoss Core 拥有在线备份和恢复、快照和回滚和多主机部署的新工具。更重要的是,凭借对 Docker 的全面支持,部署起来更快了。 + +-- Fahmida Rashid + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opennms-100614461-orig.jpg) + +### OpenNMS ### + +一个非常灵活的网络管理解决方案,[OpenNMS][3] 可以处理任何网络管理任务,无论是设备管理,应用性能监控,库存控制,或事件管理。凭借对 IPv6 的支持,强大的警报系统,和记录用户脚本来测试 Web 应用程序的能力,OpenNMS 拥有网络管理员和测试人员需要的一切。OpenNMS 现在变得像一款移动 dashboard,堪称 OpenNMS 指南针,可让网络专家随时,甚至当他们外出时都可以监视他们的网络。 + +该应用程序的 IOS 版本,可从 [iTunes App Store][4] 上获取,显示故障、节点和告警。下一个版本将提供更多的事件细节、资源图表、以及关于 IP 和 SNMP 接口的信息。安卓版可从 [Google Play][5] 上获取,可在仪表板上显示网络可用性,故障和告警,以及确认、提升或清除告警的能力。移动客户端与 OpenNMS Horizon 1.12 或更高版本以及 OpenNMS Meridian 2015.1.0 或更高版本兼容。 + +-- Fahmida Rashid + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-onion-100614460-orig.jpg) + +### Security Onion ### + +如同一个洋葱,网络安全监控是由许多层组成。没有单一的工具会使你洞察在你公司网络中的每次攻击,或者显示每一次侦查或文本会话给你。[Security Onion][6] 打包了许多经过验证的工具成为一个便于使用的 Ubuntu 发行版,这会让你看到谁留在你的网络里,并帮助你隔离坏家伙。 + +无论你是采取主动式的网络安全监测还是追查可能的攻击,Security Onion 都可以帮助你。由传感器、服务器和显示层组成,Onion 结合了基于网络和基于主机的入侵检测,全面的网络数据包捕获,并提供了所有的各种日志进行检查和分析。 + +众星云集的的网络安全工具链,包括用于网络抓包的 [Netsniff-NG](http://www.netsniff-ng.org/)、基于规则的网络入侵检测系统 Snort 和 [Suricata](https://en.wikipedia.org/wiki/Suricata_%28software%29),基于分析的网络监控系统 Bro,基于主机的入侵检测系统 OSSEC 和用于显示、分析和日志管理的 Sguil、Squert、Snorby 和 ELSA (企业日志搜索和归档)。它是一个经过精挑细选的工具集,全被打包进一个向导驱动式的安装程序并有完整的文档支持,可以帮助你尽可能快地进行监控。 + +-- Victor R. Garza + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-kali-100614458-orig.jpg) + +Kali Linux + +[Kali Linux][7] 背后的团队修改了今年流行的安全 Linux 发行版,使其更快,更全能。Kali 采用全新 4.0 版的内核 ,改进了对硬件和无线驱动程序的支持,以及一个更流畅的界面。最流行的工具都可从屏幕的侧边栏上轻松访问。最大的改变?Kali Linux 现在是一个滚动发行版,具有连续的软件更新。Kali 的核心系统是基于 Debian Jessie 发行版,而且该团队会不断地从 Debian 测试版 pull 程序包,同时持续在上面添加新的 Kali 风格的特性。 + +该发行版仍然配备满了渗透测试,漏洞分析,安全审查,网络应用分析,无线网络评估,逆向工程,和漏洞利用工具。现在该发行版具有新版本检测系统,当有个别工具可更新时系统会自动通知用户。该发行版还具有一系列设备的 ARM 映像,包括树莓派、[Chromebook](https://en.wikipedia.org/wiki/Chromebook) 和 [Odroid](https://en.wikipedia.org/wiki/ODROID),也可更新在 Android 设备上运行的 [NetHunter](https://www.kali.org/kali-linux-nethunter/) 渗透测试平台。还有其他的变化:Metasploit 的社区版/专业版不再包括在内,因为 Kali 2.0 还没有 [Rapid7 的官方支持][8]。 + +-- Fahmida Rashid + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-openvas-100614462-orig.jpg) + +### OpenVAS ### + +[OpenVAS][9],开源漏洞评估系统,是一种整合多种服务和工具来提供漏洞扫描和漏洞管理的软件框架。该扫描器与每周一次的网络漏洞测试数据配合,或者您可以使用商业数据。该软件框架包括一个命令行界面(所以它可以用脚本运行)和一个带 SSL 安全机制的基于 [Greenbone 安全助手][10] 的浏览器界面。OpenVAS 提供了用于附加功能的各种插件。扫描可以预定运行或按需运行。 + +可通过单一的主控来控制多个 OpenVAS 的安装,使得它成为一个可扩展的企业漏洞评估工具。该项目与兼容这样的标准:扫描结果和配置存储在 SQL 数据库中,在那里他们可以容易地被外部报告工具访问。客户端工具通过基于 XML 的无状态 OpenVAS 管理协议访问 OpenVAS 管理器,所以安全管理员可以扩展该框架的功能。该软件能以包或源代码的方式安装在 Windows 或 Linux 上运行,或者作为一个虚拟设备被下载。 + +-- Matt Sarrel + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-owasp-100614463-orig.jpg) + +### OWASP ### + +[OWASP][11],开放的 Web 应用安全项目,是专注于提高软件安全性的全球协会的非营利组织。社区性组织提供测试工具、文档、培训和几乎任何你可以想象的评估软件安全和开发安全软件相关的最佳实践。有几个 OWASP 项目已成为很多安全从业者的工具箱中有价值的组件: + +[ZAP][12],ZED 攻击代理项目,是一个在 Web 应用程序中寻找漏洞的渗透测试工具。ZAP 的设计目标之一是使之易于使用,以便于开发人员和非安全专家的测试人员可以受益于使用它。ZAP 提供了自动扫描器和一套手动测试工具。 + +[Xenotix XSS Exploit Framework][13] 是一款运行浏览器引擎内的扫描来获得实际结果的先进的跨站脚本漏洞检测和漏洞利用框架。Xenotix 扫描器模块采用三个智能的 fuzzer,它可以运行近 5000 个不同的XSS有效载荷。一个 API 可以让安全管理员扩展和定制开发工具包。 + +[O-Saft][14],OWASP SSL 高级审查工具,一个查看 SSL 证书详细信息和测试 SSL 连接的 SSL 审计工具。这个命令行工具可以在线或离线运行来评估 SSL 安全性,比如密码和配置。O-Saft 提供了常见漏洞的内置检查,你可以容易地通过编写脚本来扩展这些功能。在 2015 年 5 月加入了一个简单的图形用户界面作为可选的下载项。 + +[OWTF][15],攻击性的 Web 测试框架,一个遵循 OWASP 测试指南和 NIST 和 PTES 标准的自动化测试工具。该框架使用一个 Web 用户界面和一个命令行,它探测 Web 和应用服务器常见漏洞,如配置不当和未打补丁的软件。 + +-- Matt Sarrel + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-beef-100614456-orig.jpg) + +### BeEF ### + +Web 浏览器已经成为用于针对客户端的攻击中最常见的载体。[BeEF][15] 浏览器漏洞利用框架项目,是一种广泛使用的用以评估 Web 浏览器安全性的渗透工具。BeEF 帮助你揭露客户端系统的安全弱点,通过启动浏览器来进行客户端攻击。BeEF 建立了一个恶意网站,安全管理员用想要测试的浏览器访问该网站。然后 BeEF 发送命令来攻击 Web 浏览器并使用命令在客户端机器上植入软件。如果他们是僵尸机 ,管理员可以对客户端机器发动攻击。 + +BeEF 自带像键盘记录器,一个端口扫描器,和 Web 代理这样的常用模块,此外你可以编写你自己的模块或直接将命令发送到僵尸测试机。BeEF 带有少量的演示网页来帮你快速入门使得编写额外的网页和攻击模块很简单,因此你可以自定义测试你的环境。BeEF 是一个评估浏览器和终端安全、学习如何发起基于浏览器的攻击的宝贵的测试工具。可使用它来展示恶意软件通常如何感染客户端设备的演示给你的用户。 + +-- Matt Sarrel + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-unhide-100614464-orig.jpg) + +### Unhide ### + +[Unhide][16] 是一个定位开放的 TCP/UDP 端口和隐藏在 UNIX、Linux 和 Windows 上的进程的审查工具。隐藏的端口和进程可以是 rootkit 或 LKM(可加载的内核模块)activity 的结果。rootkit 可能很难找到并移除,因为它们被设计成隐蔽的,对操作系统和用户隐藏自己。一个 rootkit 可以使用内核模块隐藏其进程或冒充其他进程,让它在机器上运行很长一段时间而不被发现。Unhide 可以保证管理员需要的干净系统。 + +Unhide 实际上是两个单独的脚本:一个用于进程,一个用于端口。该工具查询正在运行的进程、线程和开放的端口并将这些信息与系统中注册的活动比较,报告之间的差异。Unhide 和 WinUnhide 是在运行命令行产生文本输出的非常轻量级的脚本。它们不算优美,但是极为有用。Unhide 还列入了 [Rootkit Hunter][17] 项目中。 + +-- Matt Sarrel + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614457-orig.jpg) + +查看更多的开源软件优胜者 + +InfoWorld 网站的 2014 年最佳开源奖从堆栈底部到顶部庆祝了 100 多个开源项目。以下链接指向更多开源软件优胜者: + +[2015 Bossie 评选:最佳开源应用程序][18] + +[2015 Bossie 评选:最佳开源应用程序开发工具][19] + +[2015 Bossie 评选:最佳开源大数据工具][20] + +[2015 Bossie 评选:最佳开源数据中心和云计算软件][21] + +[2015 Bossie 评选:最佳开源桌面和移动端软件][22] + +[2015 Bossie 评选:最佳开源网络和安全软件][23] + +-------------------------------------------------------------------------------- + +via: http://www.infoworld.com/article/2982962/open-source-tools/bossie-awards-2015-the-best-open-source-networking-and-security-software.html + +作者:[InfoWorld staff][a] +译者:[robot527](https://github.com/robot527) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.infoworld.com/author/InfoWorld-staff/ +[1]:https://www.icinga.org/icinga/icinga-2/ +[2]:http://www.zenoss.com/ +[3]:http://www.opennms.org/ +[4]:https://itunes.apple.com/us/app/opennms-compass/id968875097?mt=8 +[5]:https://play.google.com/store/apps/details?id=com.opennms.compass&hl=en +[6]:http://blog.securityonion.net/p/securityonion.html +[7]:https://www.kali.org/ +[8]:https://community.rapid7.com/community/metasploit/blog/2015/08/12/metasploit-on-kali-linux-20 +[9]:http://www.openvas.org/ +[10]:http://www.greenbone.net/ +[11]:https://www.owasp.org/index.php/Main_Page +[12]:https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project +[13]:https://www.owasp.org/index.php/O-Saft +[14]:https://www.owasp.org/index.php/OWASP_OWTF +[15]:http://www.beefproject.com/ +[16]:http://www.unhide-forensics.info/ +[17]:http://www.rootkit.nl/projects/rootkit_hunter.html +[18]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html +[19]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html +[20]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html +[21]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html +[22]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html +[23]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html From 4ab470b03712d1af26481403e6c4612fcdef616b Mon Sep 17 00:00:00 2001 From: GHLandy Date: Fri, 4 Mar 2016 20:49:15 +0800 Subject: [PATCH 225/582] =?UTF-8?q?[=E5=BC=80=E5=A7=8B=E7=BF=BB=E8=AF=91]?= =?UTF-8?q?=20Part=2010=20-=20LFCS:=20Understanding=20&=20Learning=20Basic?= =?UTF-8?q?=20Shell=20Scripting=20and=20Linux=20Filesystem=20Troubleshooti?= =?UTF-8?q?ng?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...asic Shell Scripting and Linux Filesystem Troubleshooting.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md b/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md index 4d0a5a229a..65a853bc84 100644 --- a/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md +++ b/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md @@ -1,3 +1,5 @@ +GHLandy Translating + Part 10 - LFCS: Understanding & Learning Basic Shell Scripting and Linux Filesystem Troubleshooting ================================================================================ The Linux Foundation launched the LFCS certification (Linux Foundation Certified Sysadmin), a brand new initiative whose purpose is to allow individuals everywhere (and anywhere) to get certified in basic to intermediate operational support for Linux systems, which includes supporting running systems and services, along with overall monitoring and analysis, plus smart decision-making when it comes to raising issues to upper support teams. From 5d09fbdbe696ef87889372987d2d3191a20406ab Mon Sep 17 00:00:00 2001 From: martin qi Date: Fri, 4 Mar 2016 21:18:18 +0800 Subject: [PATCH 226/582] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...15--The best open source networking and security software.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md b/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md index 42b2a4ac99..a073ce5349 100644 --- a/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md +++ b/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md @@ -1,3 +1,5 @@ +Martin + 2015 Bossie 评选:最佳开源网络和安全软件 ================================================================================ InfoWorld 在建设网络,运营网络和保障网络安全领域精选出了年度开源工具获奖者。 From 9fbcb0f9568620f6ada517c2342be87bb2be2931 Mon Sep 17 00:00:00 2001 From: Rubik Date: Sat, 5 Mar 2016 11:14:12 +0800 Subject: [PATCH 227/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Web server on Ubuntu 15.04 or CentOS 7.md | 214 ------------------ ... Web server on Ubuntu 15.04 or CentOS 7.md | 210 +++++++++++++++++ 2 files changed, 210 insertions(+), 214 deletions(-) delete mode 100644 sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md create mode 100644 translated/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md diff --git a/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md b/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md deleted file mode 100644 index 51f8050de7..0000000000 --- a/sources/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md +++ /dev/null @@ -1,214 +0,0 @@ -[Translating] Haohong Wang -How to Setup Lighttpd Web server on Ubuntu 15.04 / CentOS 7 -================================================================================= - -Lighttpd is an open source web server which is secure, fast, compliant, and very flexible and is optimized for high-performance environments. It uses very low memory compared to other web servers , small CPU load and speed optimization making it popular among the server for its efficiency and speed. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) makes lighttpd the perfect webserver-software for every server that suffers load problems. - -Here are some simple easy setups on how we can setup Lighttpd web server on our machine running Ubuntu 15.04 or CentOS 7 linux distributions. - -### Installing Lighttpd - -#### Installing using Package Manager - -Here, we'll install Lighttpd using package manager as its the easiest method to install it. So, we can simply run the following command under `sudo` mode in a terminal or console to install Lighttpd. - -**CentOS 7** - -As lighttpd is not available in the official repository of CentOS 7, we'll need to install epel additional repository to our system. To do so, we'll need to run the following `yum` command. - - # yum install epel-release - -Then, we'll gonna update our system and proceed towards the installation of lighttpd. - - # yum update - # yum install lighttpd - -![Install Lighttpd Centos](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-centos.png) - -**Ubuntu 15.04** - -Lighttpd is available on the official repository of Ubuntu 15.04 so, we'll simply update our local repository index and then go for the installation of lighttpd using `apt-get` command. - - # apt-get update - # apt-get install lighttpd - -![Install lighttpd ubuntu](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-ubuntu.png) - -#### Installing from Source - -If we wanna install lighttpd from the latest version of source code ie 1.4.39, we'll need to compile the source code and install it into our system. First of all, we'll need to install the dependencies required to compile it. - - # cd /tmp/ - # wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.39.tar.gz - -After its downloaded, we'll need to extract it the tarball by running the following. - - # tar -zxvf lighttpd-1.4.39.tar.gz - -Then, we'll compile it by running the following commands. - - # cd lighttpd-1.4.39 - # ./configure - # make - -**Note:** In this tutorial, we are installing lighttpd with its standard configuration. If you wanna configure beyond the standard configuration and want to install more features like support for SSL, `mod_rewrite`, `mod_redirect` then you can configure. - -Once, its compiled, we'll install it in our system. - - # make install - -### Configuring Lighttpd - -If we need to configure our lighttpd web server further as our requirements, we can make changes to the default configuration file ie `/etc/lighttpd/lighttpd.conf` . As wee'll go with the default configuration here in this tutorial, we'll not gonna make changes to it. If we had made any changes and we wanna check for errors in the config file, we'll need to run the following command. - - # lighttpd -t -f /etc/lighttpd/lighttpd.conf - -#### On CentOS 7 - -If we are running CentOS 7, we'll need to create a new directory for our webroot defined in our lighttpd's default configuration ie `/src/www/htdocs/` . - - # mkdir -p /srv/www/htdocs/ - -Then, we'll copy the default welcome page from `/var/www/lighttpd/` directory to the above created directory. - - # cp -r /var/www/lighttpd/* /srv/www/htdocs/ - -### Starting and Enabling Services - -Now, we'll gonna restart our database server by executing the following `systemctl` command. - - # systemctl start lighttpd - -Then, we'll enable it to start automatically in every system boot. - - # systemctl enable lighttpd - -### Allowing Firewall - -To allow our webpages or websites running lighttpd web server on the internet or inside the same network, we'll need to allow port 80 from the firewall program. As both CentOS 7 and Ubuntu 15.04 are shipped with systemd as the default init system, we will have firewalld installed as a firewall solution. To allow port 80 or http service, we'll need to run the following commands. - - # firewall-cmd --permanent --add-service=http - success - # firewall-cmd --reload - success - -### Accessing Web Server - -As we have allowed port 80 which is the default port of lighttpd, we should be able to access lighttpd's welcome page by default. To do so, we'll need to point our browser to the ip address or domain of our machine running lighttpd according to our configuration. In this tutorial, we'll point our browser to [http://lighttpd.linoxide.com/](http://lighttpd.linoxide.com/) as we have pointed our sub-domain to its ip address. On doing so, we'll see the following welcome page in our browser. - -![Lighttpd Welcome Page](http://blog.linoxide.com/wp-content/uploads/2016/02/lighttpd-welcome-page.png) - -Further, we can add our website's files to the webroot directory and remove the default lighttpd's index file to make our static website live to the internet. - -If we want to run our PHP application in our lighttpd webserver, we'll need to follow the following steps. - -### Installing PHP5 Modules - -Once our lighttpd is installed successfully, we'll need to install PHP and some PHP modules to run PHP5 scripts in our lighttpd web server. - -#### On Ubuntu 15.04 - - # apt-get install php5 php5-cgi php5-fpm php5-mysql php5-curl php5-gd php5-intl php5-imagick php5-mcrypt php5-memcache php-pear - -#### On CentOS 7 - - # yum install php php-cgi php-fpm php-mysql php-curl php-gd php-intl php-pecl-imagick php-mcrypt php-memcache php-pear lighttpd-fastcgi - -### Configuring Lighttpd with PHP - -To make PHP work with lighttpd web server, we'll need to follow the following methods respect to the distribution we are running. - -#### On CentOS 7 - -First of all, we'll need to edit our php configuration ie `/etc/php.ini` and uncomment a line **cgi.fix_pathinfo=1** using a text editor. - - # nano /etc/php.ini - -After its done, we'll need to change the ownership of PHP-FPM process from apache to lighttpd. To do so, we'll need to open the configuration file `/etc/php-fpm.d/www.conf` using a text editor. - - # nano /etc/php-fpm.d/www.conf - -Then, we'll append the file with the following configurations. - - user = lighttpd - group = lighttpd - -Once done, we'll need to save the file and exit the text editor. Then, we'll need to include fastcgi module from `/etc/lighttpd/modules.conf` configuration file. - - # nano /etc/lighttpd/modules.conf - -Then, we'll need to uncomment the following line by removing `#` from it. - - include "conf.d/fastcgi.conf" - -At last, we'll need to configure our fastcgi configuration file using our favorite text editor. - - # nano /etc/lighttpd/conf.d/fastcgi.conf - -Then, we'll need to add the following lines at the end of the file. - - fastcgi.server += ( ".php" => - (( - "host" => "127.0.0.1", - "port" => "9000", - "broken-scriptfilename" => "enable" - )) - ) - -After its done, we'll save the file and exit the text editor. - -#### On Ubuntu 15.04 - -To enable fastcgi with lighttpd web server, we'll simply need to execute the following commands. - - # lighttpd-enable-mod fastcgi - - Enabling fastcgi: ok - Run /etc/init.d/lighttpd force-reload to enable changes - - # lighttpd-enable-mod fastcgi-php - - Enabling fastcgi-php: ok - Run `/etc/init.d/lighttpd` force-reload to enable changes - -Then, we'll reload our lighttpd by running the following command. - - # systemctl force-reload lighttpd - -### Testing if PHP is working - -In order to see if PHP is working as expected or not, we'll need to create a new php file under the webroot of our lighttpd web server. Here, in this tutorial we have `/var/www/html` in Ubuntu and `/srv/www/htdocs` in CentOS as the default webroot so, we'll create a info.php file under it using a text editor. - -**On CentOS 7** - - # nano /var/www/info.php - -**On Ubuntu 15.04** - - # nano /srv/www/htdocs/info.php - -Then, we'll simply add the following line into the file. - - - -Once done, we'll simply save the file and exit from the text editor. - -Now, we'll point our web browser to our machine running lighttpd using its ip address or domain name with the info.php file path as [http://lighttpd.linoxide.com/info.php](http://lighttpd.linoxide.com/info.php) If everything was done as described above, we will see our PHP information page as shown below. - -![phpinfo lighttpd](http://blog.linoxide.com/wp-content/uploads/2016/02/phpinfo-lighttpd.png) - -### Conclusion - -Finally we have successfully installed the world's lightweight, fast and secure web server Lighttpd in our machine running CentOS 7 and Ubuntu 15.04 linux distributions. Once its ready, we can upload our website files into our web root, configure virtual host, enable ssl, connect database, run web apps and much more with our lighttpd web server. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! Enjoy :-) - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/setup-lighttpd-web-server-ubuntu-15-04-centos-7/ - -作者:[Arun Pyasi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/arunp/ diff --git a/translated/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md b/translated/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md new file mode 100644 index 0000000000..8840e8b973 --- /dev/null +++ b/translated/tech/20160219 How to Setup Lighttpd Web server on Ubuntu 15.04 or CentOS 7.md @@ -0,0 +1,210 @@ +[Translated] Haohong Wang +如何在Ubuntu 15.04/CentOS 7中安装Lighttpd Web server +================================================================================= +Lighttpd 是一款开源Web服务器软件。Lighttpd 安全快速,符合行业标准,适配性强并且针对高配置环境进行了优化。Lighttpd因其CPU、内存占用小,针对小型CPU加载的快速适配以及出色的效率和速度而从众多Web服务器中脱颖而出。 而Lighttpd诸如FastCGI,CGI,Auth,Out-Compression,URL-Rewriting等高级功能更是那些低配置的服务器的福音。 + +以下便是在我们运行Ubuntu 15.04 或CentOS 7 Linux发行版的机器上安装Lighttpd Web服务器的简要流程。 + +### 安装Lighttpd + +#### 使用包管理器安装 + +这里我们通过使用包管理器这种最简单的方法来安装Lighttpd。只需以sudo模式在终端或控制台中输入下面的指令即可。 + +**CentOS 7** + +由于CentOS 7.0官方repo中并没有提供Lighttpd,所以我们需要在系统中安装额外的软件源epel repo。使用下面的yum指令来安装epel。 + + # yum install epel-release + +然后,我们需要更新系统及进程为Lighttpd的安装做准备。 + + # yum update + # yum install lighttpd + +![Install Lighttpd Centos](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-centos.png) + +**Ubuntu 15.04** + +Ubuntu 15.04官方repo中包含了Lighttpd,所以只需更新本地repo并使用apt-get指令即可安装Lighttpd。 + + # apt-get update + # apt-get install lighttpd + +![Install lighttpd ubuntu](http://blog.linoxide.com/wp-content/uploads/2016/02/install-lighttpd-ubuntu.png) + +#### 从源代码安装Lighttpd + +如果想从Lighttpd源码安装最新版本(例如1.4.39),我们需要在本地编译源码并进行安装。首先我们要安装编译源码所需的依赖包。 + + # cd /tmp/ + # wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.39.tar.gz + +下载完成后,执行下面的指令解压缩。 + + # tar -zxvf lighttpd-1.4.39.tar.gz + +然后使用下面的指令进行编译。 + + # cd lighttpd-1.4.39 + # ./configure + # make + +**注:**在这份教程中,我们安装的是默认配置的Lighttpd。其他诸如高级功能或拓展功能,如对SSL的支持,mod_rewrite,mod_redirect等,需自行配置。 + +当编译完成后,我们就可以把它安装到系统中了。 + + # make install + +### 设置Lighttpd + +如果有更高的需求,我们可以通过修改默认设置文件,如`/etc/lighttpd/lighttpd.conf`,来对Lighttpd进行进一步设置。 而在这份教程中我们将使用默认设置,不对设置文件进行修改。如果你曾做过修改并想检查设置文件是否出错,可以执行下面的指令。 + + # lighttpd -t -f /etc/lighttpd/lighttpd.conf + +#### 使用 CentOS 7 + +在CentOS 7中,我们需在Lighttpd默认设置中创设一个例如`/src/www/htdocs`的webroot文件夹。 + + # mkdir -p /srv/www/htdocs/ + +而后将默认欢迎页面从`/var/www/lighttpd`复制至刚刚新建的目录中: + + # cp -r /var/www/lighttpd/* /srv/www/htdocs/ + +### 开启服务 + +现在,通过执行systemctl指令来重启数据库服务。 + + # systemctl start lighttpd + +然后我们将它设置为伴随系统启动自动运行。 + + # systemctl enable lighttpd + +### 设置防火墙 + +如要让我们运行在Lighttpd上的网页和网站能在Internet或相似的网络上被访问,我们需要在防火墙程序中设置打开80端口。由于CentOS 7和Ubuntu15.04都附带Systemd作为默认初始化系统,所以我们安装firewalld作为解决方案。如果要打开80端口或http服务,我们只需执行下面的命令: + + # firewall-cmd --permanent --add-service=http + success + # firewall-cmd --reload + success + +### 连接至Web Server +在将80端口设置为默认端口后,我们就可以默认直接访问Lighttpd的欢迎页了。我们需要根据运行Lighttpd的设备来设置浏览器的IP地址和域名。在本教程中,我们令浏览器指向 [http://lighttpd.linoxide.com/](http://lighttpd.linoxide.com/) 同时将子域名指向它的IP地址。如此一来,我们就可以在浏览器中看到如下的欢迎页面了。 + +![Lighttpd Welcome Page](http://blog.linoxide.com/wp-content/uploads/2016/02/lighttpd-welcome-page.png) + +此外,我们可以将网站的文件添加到webroot目录下,并删除lighttpd的默认索引文件,使我们的静态网站链接至互联网上。 + +如果想在Lighttpd Web Server中运行PHP应用,请参考下面的步骤: + +### 安装PHP5模块 +在Lighttpd成功安装后,我们需要安装PHP及相关模块以在Lighttpd中运行PHP5脚本。 + +#### 使用 Ubuntu 15.04 + + # apt-get install php5 php5-cgi php5-fpm php5-mysql php5-curl php5-gd php5-intl php5-imagick php5-mcrypt php5-memcache php-pear + +#### 使用 CentOS 7 + + # yum install php php-cgi php-fpm php-mysql php-curl php-gd php-intl php-pecl-imagick php-mcrypt php-memcache php-pear lighttpd-fastcgi + +### 设置Lighttpd的PHP服务 + +如要让PHP与Lighttpd协同工作,我们只要根据所使用的发行版执行如下对应的指令即可。 + +#### 使用 CentOS 7 + +首先要做的便是使用文件编辑器编辑php设置文件(例如`/etc/php.ini`)并取消掉对**cgi.fix_pathinfo=1**的注释。 + + # nano /etc/php.ini + +完成上面的步骤之后,我们需要把PHP-FPM进程的所有权从Apache转移至Lighttpd。要完成这些,首先用文件编辑器打开`/etc/php-fpm.d/www.conf`文件。 + + # nano /etc/php-fpm.d/www.conf + +然后在文件中增加下面的语句: + + user = lighttpd + group = lighttpd + +做完这些,我们保存并退出文本编辑器。然后从`/etc/lighttpd/modules.conf`设置文件中添加FastCGI模块。 + + # nano /etc/lighttpd/modules.conf + +然后,去掉下面语句前面的`#`来取消对它的注释。 + + include "conf.d/fastcgi.conf" + +最后我们还需在文本编辑器设置FastCGI的设置文件。 + + # nano /etc/lighttpd/conf.d/fastcgi.conf + +在文件尾部添加以下代码: + + fastcgi.server += ( ".php" => + (( + "host" => "127.0.0.1", + "port" => "9000", + "broken-scriptfilename" => "enable" + )) + ) + +在编辑完成后保存并退出文本编辑器即可。 + +#### 使用 Ubuntu 15.04 + +如需启用Lighttpd的FastCGI,只需执行下列代码: + + # lighttpd-enable-mod fastcgi + + Enabling fastcgi: ok + Run /etc/init.d/lighttpd force-reload to enable changes + + # lighttpd-enable-mod fastcgi-php + + Enabling fastcgi-php: ok + Run `/etc/init.d/lighttpd` force-reload to enable changes + +然后,执行下列命令来重启Lighttpd。 + + # systemctl force-reload lighttpd + +### 检测PHP工作状态 + +如需检测PHP是否按预期工作,我们需在Lighttpd的webroot目录下新建一个php文件。本教程中,在Ubuntu下/var/www/html 目录,CentOS下/src/www/htdocs目录下使用文本编辑器创建并打开info.php。 + +**使用 CentOS 7** + + # nano /var/www/info.php + +**使用 Ubuntu 15.04** + + # nano /srv/www/htdocs/info.php + +然后只需将下面的语句添加到文件里即可。 + + + +在编辑完成后保存并推出文本编辑器即可。 + +现在,我们需根据路径 [http://lighttpd.linoxide.com/info.php](http://lighttpd.linoxide.com/info.php) 下的info.php文件的IP地址或域名,来让我们的网页浏览器指向系统上运行的Lighttpd。如果一切都按照以上说明进行,我们将看到如下图所示的PHP页面信息。 + +![phpinfo lighttpd](http://blog.linoxide.com/wp-content/uploads/2016/02/phpinfo-lighttpd.png) + +### 总结 + +至此,我们已经在CentOS 7和Ubuntu 15.04 Linux 发行版上成功安装了轻巧快捷并且安全的Lighttpd Web服务器。现在,我们已经可以利用Lighttpd Web服务器来实现上传网站文件到网站根目录,配置虚拟主机,启用SSL,连接数据库,运行Web应用等功能了。 如果你有任何疑问,建议或反馈请在下面的评论区中写下来以让我们更好的改良Lighttpd。谢谢!(译注:评论网址 http://linoxide.com/linux-how-to/setup-lighttpd-web-server-ubuntu-15-04-centos-7/ ) +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/setup-lighttpd-web-server-ubuntu-15-04-centos-7/ + +作者:[Arun Pyasi][a] +译者:[HaohongWANG](https://github.com/HaohongWANG) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/arunp/ From 54df9889e0dca5ff774ec1598d627636eefb6b70 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 6 Mar 2016 14:27:31 +0800 Subject: [PATCH 228/582] =?UTF-8?q?20160306-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit keyword: NASA , Image Process , Node.js , OpenCV --- ...ocessing at NASA with open source tools.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 sources/tech/20160304 Image processing at NASA with open source tools.md diff --git a/sources/tech/20160304 Image processing at NASA with open source tools.md b/sources/tech/20160304 Image processing at NASA with open source tools.md new file mode 100644 index 0000000000..7bf6d8297d --- /dev/null +++ b/sources/tech/20160304 Image processing at NASA with open source tools.md @@ -0,0 +1,81 @@ +Image processing at NASA with open source tools +======================================================= + +keyword: NASA , Image Process , Node.js , OpenCV + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/nasa_spitzer_space_pink_spiral.jpg?itok=3XEUstkl) + +This past summer, I was an intern at the [GVIS][1] Lab at [NASA][2] Glenn, where I brought my passion for open source into the lab. My task was to improve our lab's contributions to an open source fluid flow dynamics [simulation][3] developed by Dan Schroeder. The original simulation presents obstacles that users can draw in with their mouse to model computational fluid dynamics. My team contributed by adding image processing code that analyzes each frame of a live video feed to show how a physical object interacts with a fluid. But, there was more for us to do. + +We wanted to make the image processing more robust, so I worked on improving the image processing library. + +With the new library, the simulation would be able to detect contours, perform coordinate transformations in place, and find the center of mass of an object. The image processing doesn't directly relate to the physics of the fluid flow dynamics simulation. It detects the object with a camera and creates a barrier for the fluid flow simulation by getting the outline of the object. Then, the fluid flow simulation runs, and the output is projected down onto the actual object. + +My goal was to improve the simulation in three ways: + +1. to find accurate contours of an object +2. to find the center of mass of an object +3. to be able to perform accurate transformations about the center of an object + +My mentor recommended that I install [Node.js][4], [OpenCV][5], and the [Node.js bindings for OpenCV][6]. While I was waiting for those to install, I looked at the example code on the OpenCV bindings on their [GitHub page][7]. I discovered that the example code was in JavaScript, so because I didn’t know JavaScript, I started a short course from Codecademy. Two days later, I was sick of JavaScript but ready to start my project... which involved yet more JavaScript. + +The example contour-finding code worked well. In fact, it allowed me to accomplish my first goal in a matter of hours! To get the contours of an image, here's what it looked like: + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_1-520x293.jpg) +>The original image with all of the contours. + +The example contour-finding code worked a bit too well. Instead of the contour of the object being detected, all of the contours in the image were detected. This would have resulted in the simulation interacting with all of the unwanted contours. This is a problem because it would return incorrect data. To keep the simulation from interacting with the unwanted contours, I added an area constraint. If the contour was in a certain area range, then it would be drawn. The area constraint resulted in a much cleaner contour. + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_2-520x293.jpg) +>The filtered contour with the shadow contour. + +Though the extraneous contours weren't detected, there was still a problem with the image. There was only one contour in the image, but it doubled back on itself and wasn't complete. Area couldn't be a deciding factor here, so it was time to try something else. + +This time around, instead of immediately finding the contours, I first converted the image into a binary image. A binary image is an image where each pixel is either black or white. To get a binary image I first converted the color image to grayscale. Once the image was in grayscale, I called the threshold method on the image. The threshold method went through the image pixel by pixel and if the color value of the pixel was less than 30, the pixel color would be changed to black. Otherwise, the pixel value would be turned to white. After the original image was converted to a binary image, the resulting image looked like this: + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_3-520x293.jpg) +>The binary image. + +Then I got the contours from the binary image, which resulted in a much cleaner contour, without the shadow contour. + +![](https://opensource.com/sites/default/files/image_processing_nasa_4.jpg) +>The final clean contour. + +At this point, I was able to get clean contours and detect the center of mass. Unfortunately, I didn't have enough time to be able to complete transformations about the center of mass. Since I only had a few days left in my internship, I started to think about other things I could do within a limited time span. One of those things was the bounding rectangle. The bounding rectangle is a quadrilateral with the smallest area that contains the entire contour of an image. The bounding rectangle is important because it is key in scaling the contour on the page. Unfortunately I didn't have time to do much with the bounding rectangle, but I still wanted to learn about it because it's a useful tool. + +Finally, after all of that, I was able to finish processing the image! + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_5-521x293.jpg) +>The final image with bounding rectangle and center of mass in red. + +Once the image processing code was complete, I replaced the old image processing code in the simulation with my code. To my surprise, it worked! + +Well, mostly. + +The program had a memory leak in it, which leaked 100MB every 1/10 of a second. I was glad that it wasn’t because of my code. The bad thing was that fixing it was out of my control. The good thing was that there was a workaround that I could use. It was less than ideal, but it checked the amount of memory the simulation was using and when it used more than 1 GiB, the simulation restarted. + +At the NASA lab, we use a lot of open source software, and my work there isn't possible without it. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/3/image-processing-nasa + +作者:[Lauren Egts][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/laurenegts +[1]: https://ocio.grc.nasa.gov/gvis/ +[2]: http://www.nasa.gov/centers/glenn/home/index.html +[3]: http://physics.weber.edu/schroeder/fluids/ +[4]: http://nodejs.org/ +[5]: http://opencv.org/ +[6]: https://github.com/peterbraden/node-opencv +[7]: https://github.com/peterbraden/node-opencv + + + + + From 31e0cc9057849be5238a02346451ce917315178d Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 6 Mar 2016 14:41:20 +0800 Subject: [PATCH 229/582] =?UTF-8?q?20160306-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit keyword: shell , Linux , bash , zsh , fish , ksh , tcsh , license --- ... 5 open source command shells for Linux.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 sources/tech/20160303 Top 5 open source command shells for Linux.md diff --git a/sources/tech/20160303 Top 5 open source command shells for Linux.md b/sources/tech/20160303 Top 5 open source command shells for Linux.md new file mode 100644 index 0000000000..74c135e594 --- /dev/null +++ b/sources/tech/20160303 Top 5 open source command shells for Linux.md @@ -0,0 +1,89 @@ +Top 5 open source command shells for Linux +=============================================== + +keyword: shell , Linux , bash , zsh , fish , ksh , tcsh , license + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/terminal_blue_smoke_command_line_0.jpg?itok=u2mRRqOa) + +There are two kinds of Linux users: the cautious and the adventurous. + +On one side is the user who almost reflexively tries out ever new option which hits the scene. They’ve tried handfuls of window managers, dozens of distributions, and every new desktop widget they can find. + +On the other side is the user who finds something they like and sticks with it. They tend to like their distribution’s defaults. If they’re passionate about a text editor, it’s whichever one they mastered first. + +As a Linux user, both on the server and the desktop, for going on fifteen years now, I am definitely more in the second category than the first. I have a tendency to use what’s presented to me, and I like the fact that this means more often than not I can find thorough documentation and examples of most any use case I can dream up. If I used something non-standard, the switch was carefully researched and often predicated by a strong pitch from someone I trust. + +But that doesn’t mean I don’t like to sometimes try and see what I’m missing. So recently, after years of using the bash shell without even giving it a thought, I decided to try out four alternative shells: ksh, tcsh, zsh, and fish. All four were easy installs from my default repositories in Fedora, and they’re likely already packaged for your distribution of choice as well. + +Here’s a little bit on each option and why you might choose it to be your next Linux command-line interpreter. + +### bash + +First, let’s take a look back at the familiar. [GNU Bash][1], the Bourne Again Shell, has been the default in pretty much every Linux distribution I’ve used through the years. Originally released in 1989, bash has grown to easily become the most used shell across the Linux world, and it is commonly found in other unix-like operating systems as well. + +Bash is a perfectly respectable shell, and as you look for documentation of how to do various things across the Internet, almost invariably you’ll find instructions which assume you are using a bash shell. But bash has some shortcomings, as anyone who has ever written a bash script that’s more than a few lines can attest to. It’s not that you can’t do something, it’s that it’s not always particularly intuitive (or at least elegant) to read and write. For some examples, see this list of [common bash pitfalls][2]. + +That said, bash is probably here to stay for at least the near future, with its enormous install base and legions of both casual and professional system administrators who are already attuned to its usage, and quirks. The bash project is available under a [GPLv3][3] license. + +### ksh + +[KornShell][4], also known by its command invocation, ksh, is an alternative shell that grew out of Bell Labs in the 1980s, written by David Korn. While originally proprietary software, later versions were released under the [Eclipse Public License][5]. + +Proponents of ksh list a number of ways in which they feel it is superior, including having a better loop syntax, cleaner exit codes from pipes, an easier way to repeat commands, and associative arrays. It's also capable of emulating many of the behaviors of vi or emacs, so if you are very partial to a text editor, it may be worth giving a try. Overall, I found it to be very similar to bash for basic input, although for advanced scripting it would surely be a different experience. + +### tcsh + +[Tcsh][6] is a derivative of csh, the Berkely Unix C shell, and sports a very long lineage back to the early days of Unix and computing itself. + +The big selling point for tcsh is its scripting language, which should look very familiar to anyone who has programmed in C. Tcsh's scripting is loved by some and hated by others. But it has other features as well, including adding arguments to aliases, and various defaults that might appeal to your preferences, including the way autocompletion with tab and history tab completion work. + +You can find tcsh under a [BSD license][7]. + +### zsh + +[Zsh][8] is another shell which has similarities to bash and ksh. Originating in the early 90s, zsh sports a number of useful features, including spelling correction, theming, namable directory shortcuts, sharing your command history across multiple terminals, and various other slight tweaks from the original Bourne shell. + +The code and binaries for zsh can be distributed under an MIT-like license, though portions are under the GPL; check the [actual license][9] for details. + +### fish + +I knew I was going to like the Friendly Interactive Shell, [fish][10], when I visited the website and found it described tongue-in-cheek with "Finally, a command line shell for the 90s"—fish was written in 2005. + +The authors of fish offer a number of reasons to make the switch, all invoking a bit of humor and poking a bit of fun at shells that don't quite live up. Features include autosuggestions ("Watch out, Netscape Navigator 4.0"), support of the "astonishing" 256 color palette of VGA, but some actually quite helpful features as well including command completion based on the man pages on your machine, clean scripting, and a web-based configuration. + +Fish is licensed primarily unde the GPL version 2 but with portions under other licenses; check the repository for [complete information][11]. + +*** + +Looking for a more detailed rundown on the precise differences between each option? [This site][12] ought to help you out. + +So where did I land? Well, ultimately, I’m probably going back to bash, because the differences were subtle enough that someone who mostly used the command line interactively as opposed to writing advanced scripts really wouldn't benefit much from the switch, and I'm already pretty comfortable in bash. + +But I’m glad I decided to come out of my shell (ha!) and try some new options. And I know there are many, many others out there. Which shells have you tried, and which one do you prefer? Let us know in the comments! + + + + +via: https://opensource.com/business/16/3/top-linux-shells + +作者:[Jason Baker][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/jason-baker + +[1]: https://www.gnu.org/software/bash/ +[2]: http://mywiki.wooledge.org/BashPitfalls +[3]: http://www.gnu.org/licenses/gpl.html +[4]: http://www.kornshell.org/ +[5]: https://www.eclipse.org/legal/epl-v10.html +[6]: http://www.tcsh.org/Welcome +[7]: https://en.wikipedia.org/wiki/BSD_licenses +[8]: http://www.zsh.org/ +[9]: https://sourceforge.net/p/zsh/code/ci/master/tree/LICENCE +[10]: https://fishshell.com/ +[11]: https://github.com/fish-shell/fish-shell/blob/master/COPYING +[12]: http://hyperpolyglot.org/unix-shells + From 110043eefa1bd5b4e3820f58aa5308e165cc2b64 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 6 Mar 2016 16:39:11 +0800 Subject: [PATCH 230/582] translating --- ...th-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md index d40a1c9e6f..63c82074d3 100644 --- a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md +++ b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md @@ -1,3 +1,5 @@ +Translating---geekpi + OpenSSH 7.2 Out Now with Support for RSA Signatures Using SHA-256/512 Algorithms ======================================================== From fbe4c229c106303b8fc5a57f4b9bc98b51d48d8d Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 6 Mar 2016 17:02:18 +0800 Subject: [PATCH 231/582] translated --- ...-Signatures-Using-SHA-256512 Algorithms.md | 34 ------------------- ...-Signatures-Using-SHA-256512 Algorithms.md | 33 ++++++++++++++++++ 2 files changed, 33 insertions(+), 34 deletions(-) delete mode 100644 sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md create mode 100644 translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md diff --git a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md deleted file mode 100644 index 63c82074d3..0000000000 --- a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md +++ /dev/null @@ -1,34 +0,0 @@ -Translating---geekpi - -OpenSSH 7.2 Out Now with Support for RSA Signatures Using SHA-256/512 Algorithms -======================================================== - -**Today, February 29, 2016, the OpenBSD project had the great pleasure of announcing the release and immediate availability for download of OpenSSH 7.2 for all supported platforms.** - -According to the internal [release notes][1], also attached at the end of the article for reference, OpenSSH 7.2 is primarily a bugfix release, fixing most of the issues reported by users or discovered by the development team since the release of OpenSSH 7.1p2, but we can see several new features as well. - -Among these, we can mention support for RSA signatures using SHA-256 or SHA-256 512 hash algorithms, the addition of an AddKeysToAgent client option to add private keys used for authentication to the ssh-agent, and the implementation of the "restrict" authorized_keys option for storing key restrictions. - -Furthermore, there's now an ssh_config CertificateFile option for explicitly listing certificates, the ssh-keygen is now capable of changing the key comment for all supported formats, fingerprinting is now allowed from standard input and for multiple public keys in a file. - -### ssh-keygen now supports multiple certificates - -In addition to the changes mentioned above, OpenSSH 7.2 adds support for multiple certificates to ssh-keygen, one per line, implements the "none" argument for sshd_config ChrootDirectory and Foreground, and the "-c" flag allows ssh-keyscan to fetch certificates instead of plain keys. - -Last but not least, OpenSSH 7.2 no longer enables by default all flavors of the rijndael-cbc aliases for AES, blowfish-cbc, and cast128-cbc legacy ciphers, as well as MD5-based and truncated HMAC algorithms. The getrandom() syscall is now supported under Linux. [Download OpenSSH 7.2][2] and check the changelog below for some additional details about exactly what has been fixed in this major release. - - - --------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml - -作者:[Marius Nestor][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://news.softpedia.com/editors/browse/marius-nestor -[1]: http://www.openssh.com/txt/release-7.2 -[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml diff --git a/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md new file mode 100644 index 0000000000..d3cf0e8e8b --- /dev/null +++ b/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md @@ -0,0 +1,33 @@ +使用SHA-256/512算法作为RSA签名的OpenSSH 7.2发布了 +======================================================== + +**今天,2016.2.29,OpenBSD项目很高兴地宣布OpenSSH 7.2发布了,并且很块可在所有支持的平台下载。** + +根据内部[发布公告][1],该公告附在了文章的最后,OpenSSH 7.2主要是bug修复,修改了自OpenSSH 7.1p2以来由用户报告和开发团队发现的问题,但是我们可以看到几个新功能。 + +这其中,我们可以提到使用了SHA-256 或者 SHA-256 512哈希算法的RSA签名,增加了一个AddKeysToAgent客户端选项添加用于身份验证的ssh-agent的私钥,和实现了一个“restrict”级别的authorized_keys选项用于存储键限制。 + +此外,现在ssh_config中CertificateFile选项可以明确列出证书,ssh-keygen现在能够改所有支持的格式的密钥注释、指纹可以来自标准输入,文件可含多个公钥。 + +### ssh-keygen现在支持多证书 + +除了上面提到的,OpenSSH 7.2正加了ssh-keygen多证书的支持,一个一行,实现了sshd_config ChrootDirectory及前台的0参数,“-c”标志允许ssh-keyscan取回证书而不是文本密钥。 + +最后但并非最不重要的,OpenSSH 7.3不再默认启用rijndael-cbc也叫AES,blowfish-cbc、古老的cast128-cbc密码,同样还有基于MD5和截断的HMAC算法。getrandom()系统调用在Linux中支持。[下载OpenSSH 7.2][2]并在更新日志中查看更细节的在本主要更新中修复的问题。 + + + + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml + +作者:[Marius Nestor][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://www.openssh.com/txt/release-7.2 +[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml From 5e16d7165d8f840540df33aa67cf2118cff4c553 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 6 Mar 2016 17:03:29 +0800 Subject: [PATCH 232/582] Revert "translated" This reverts commit fbe4c229c106303b8fc5a57f4b9bc98b51d48d8d. --- ...-Signatures-Using-SHA-256512 Algorithms.md | 34 +++++++++++++++++++ ...-Signatures-Using-SHA-256512 Algorithms.md | 33 ------------------ 2 files changed, 34 insertions(+), 33 deletions(-) create mode 100644 sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md delete mode 100644 translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md diff --git a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md new file mode 100644 index 0000000000..63c82074d3 --- /dev/null +++ b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md @@ -0,0 +1,34 @@ +Translating---geekpi + +OpenSSH 7.2 Out Now with Support for RSA Signatures Using SHA-256/512 Algorithms +======================================================== + +**Today, February 29, 2016, the OpenBSD project had the great pleasure of announcing the release and immediate availability for download of OpenSSH 7.2 for all supported platforms.** + +According to the internal [release notes][1], also attached at the end of the article for reference, OpenSSH 7.2 is primarily a bugfix release, fixing most of the issues reported by users or discovered by the development team since the release of OpenSSH 7.1p2, but we can see several new features as well. + +Among these, we can mention support for RSA signatures using SHA-256 or SHA-256 512 hash algorithms, the addition of an AddKeysToAgent client option to add private keys used for authentication to the ssh-agent, and the implementation of the "restrict" authorized_keys option for storing key restrictions. + +Furthermore, there's now an ssh_config CertificateFile option for explicitly listing certificates, the ssh-keygen is now capable of changing the key comment for all supported formats, fingerprinting is now allowed from standard input and for multiple public keys in a file. + +### ssh-keygen now supports multiple certificates + +In addition to the changes mentioned above, OpenSSH 7.2 adds support for multiple certificates to ssh-keygen, one per line, implements the "none" argument for sshd_config ChrootDirectory and Foreground, and the "-c" flag allows ssh-keyscan to fetch certificates instead of plain keys. + +Last but not least, OpenSSH 7.2 no longer enables by default all flavors of the rijndael-cbc aliases for AES, blowfish-cbc, and cast128-cbc legacy ciphers, as well as MD5-based and truncated HMAC algorithms. The getrandom() syscall is now supported under Linux. [Download OpenSSH 7.2][2] and check the changelog below for some additional details about exactly what has been fixed in this major release. + + + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml + +作者:[Marius Nestor][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://www.openssh.com/txt/release-7.2 +[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml diff --git a/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md deleted file mode 100644 index d3cf0e8e8b..0000000000 --- a/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md +++ /dev/null @@ -1,33 +0,0 @@ -使用SHA-256/512算法作为RSA签名的OpenSSH 7.2发布了 -======================================================== - -**今天,2016.2.29,OpenBSD项目很高兴地宣布OpenSSH 7.2发布了,并且很块可在所有支持的平台下载。** - -根据内部[发布公告][1],该公告附在了文章的最后,OpenSSH 7.2主要是bug修复,修改了自OpenSSH 7.1p2以来由用户报告和开发团队发现的问题,但是我们可以看到几个新功能。 - -这其中,我们可以提到使用了SHA-256 或者 SHA-256 512哈希算法的RSA签名,增加了一个AddKeysToAgent客户端选项添加用于身份验证的ssh-agent的私钥,和实现了一个“restrict”级别的authorized_keys选项用于存储键限制。 - -此外,现在ssh_config中CertificateFile选项可以明确列出证书,ssh-keygen现在能够改所有支持的格式的密钥注释、指纹可以来自标准输入,文件可含多个公钥。 - -### ssh-keygen现在支持多证书 - -除了上面提到的,OpenSSH 7.2正加了ssh-keygen多证书的支持,一个一行,实现了sshd_config ChrootDirectory及前台的0参数,“-c”标志允许ssh-keyscan取回证书而不是文本密钥。 - -最后但并非最不重要的,OpenSSH 7.3不再默认启用rijndael-cbc也叫AES,blowfish-cbc、古老的cast128-cbc密码,同样还有基于MD5和截断的HMAC算法。getrandom()系统调用在Linux中支持。[下载OpenSSH 7.2][2]并在更新日志中查看更细节的在本主要更新中修复的问题。 - - - - --------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml - -作者:[Marius Nestor][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://news.softpedia.com/editors/browse/marius-nestor -[1]: http://www.openssh.com/txt/release-7.2 -[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml From cf3c03be58f508073adac520564761cfbda1ae48 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 6 Mar 2016 17:06:20 +0800 Subject: [PATCH 233/582] revert --- ...-Signatures-Using-SHA-256512 Algorithms.md | 34 ------------------- ...-Signatures-Using-SHA-256512 Algorithms.md | 33 ++++++++++++++++++ 2 files changed, 33 insertions(+), 34 deletions(-) delete mode 100644 sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md create mode 100644 translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md diff --git a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md deleted file mode 100644 index 63c82074d3..0000000000 --- a/sources/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md +++ /dev/null @@ -1,34 +0,0 @@ -Translating---geekpi - -OpenSSH 7.2 Out Now with Support for RSA Signatures Using SHA-256/512 Algorithms -======================================================== - -**Today, February 29, 2016, the OpenBSD project had the great pleasure of announcing the release and immediate availability for download of OpenSSH 7.2 for all supported platforms.** - -According to the internal [release notes][1], also attached at the end of the article for reference, OpenSSH 7.2 is primarily a bugfix release, fixing most of the issues reported by users or discovered by the development team since the release of OpenSSH 7.1p2, but we can see several new features as well. - -Among these, we can mention support for RSA signatures using SHA-256 or SHA-256 512 hash algorithms, the addition of an AddKeysToAgent client option to add private keys used for authentication to the ssh-agent, and the implementation of the "restrict" authorized_keys option for storing key restrictions. - -Furthermore, there's now an ssh_config CertificateFile option for explicitly listing certificates, the ssh-keygen is now capable of changing the key comment for all supported formats, fingerprinting is now allowed from standard input and for multiple public keys in a file. - -### ssh-keygen now supports multiple certificates - -In addition to the changes mentioned above, OpenSSH 7.2 adds support for multiple certificates to ssh-keygen, one per line, implements the "none" argument for sshd_config ChrootDirectory and Foreground, and the "-c" flag allows ssh-keyscan to fetch certificates instead of plain keys. - -Last but not least, OpenSSH 7.2 no longer enables by default all flavors of the rijndael-cbc aliases for AES, blowfish-cbc, and cast128-cbc legacy ciphers, as well as MD5-based and truncated HMAC algorithms. The getrandom() syscall is now supported under Linux. [Download OpenSSH 7.2][2] and check the changelog below for some additional details about exactly what has been fixed in this major release. - - - --------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml - -作者:[Marius Nestor][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://news.softpedia.com/editors/browse/marius-nestor -[1]: http://www.openssh.com/txt/release-7.2 -[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml diff --git a/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md new file mode 100644 index 0000000000..d3cf0e8e8b --- /dev/null +++ b/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md @@ -0,0 +1,33 @@ +使用SHA-256/512算法作为RSA签名的OpenSSH 7.2发布了 +======================================================== + +**今天,2016.2.29,OpenBSD项目很高兴地宣布OpenSSH 7.2发布了,并且很块可在所有支持的平台下载。** + +根据内部[发布公告][1],该公告附在了文章的最后,OpenSSH 7.2主要是bug修复,修改了自OpenSSH 7.1p2以来由用户报告和开发团队发现的问题,但是我们可以看到几个新功能。 + +这其中,我们可以提到使用了SHA-256 或者 SHA-256 512哈希算法的RSA签名,增加了一个AddKeysToAgent客户端选项添加用于身份验证的ssh-agent的私钥,和实现了一个“restrict”级别的authorized_keys选项用于存储键限制。 + +此外,现在ssh_config中CertificateFile选项可以明确列出证书,ssh-keygen现在能够改所有支持的格式的密钥注释、指纹可以来自标准输入,文件可含多个公钥。 + +### ssh-keygen现在支持多证书 + +除了上面提到的,OpenSSH 7.2正加了ssh-keygen多证书的支持,一个一行,实现了sshd_config ChrootDirectory及前台的0参数,“-c”标志允许ssh-keyscan取回证书而不是文本密钥。 + +最后但并非最不重要的,OpenSSH 7.3不再默认启用rijndael-cbc也叫AES,blowfish-cbc、古老的cast128-cbc密码,同样还有基于MD5和截断的HMAC算法。getrandom()系统调用在Linux中支持。[下载OpenSSH 7.2][2]并在更新日志中查看更细节的在本主要更新中修复的问题。 + + + + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml + +作者:[Marius Nestor][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://www.openssh.com/txt/release-7.2 +[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml From e88c20e9de6a2eb539f06f209a3952b24206e915 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 6 Mar 2016 22:20:33 +0800 Subject: [PATCH 234/582] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20201602?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...er Using Windows 10 After More than 8 Years--See Comparison.md | 0 .../20150824 Great Open Source Collaborative Editing Tools.md | 0 ...How to install Suricata intrusion detection system on Linux.md | 0 ...f Free Software Foundation--Best Quotes of Richard Stallman.md | 0 .../20151030 80 Linux Monitoring Tools for SysAdmins.md | 0 ...w to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md | 0 ... How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md | 0 ...Foundation Explains a 'World without Linux' and Open Source.md | 0 published/{ => 201602}/20151201 Cinnamon 2.8 Review.md | 0 ...51201 How to use Mutt email client with encrypted passwords.md | 0 published/{ => 201602}/20151206 Supporting secure DNS in glibc.md | 0 .../{ => 201602}/20151208 6 useful LibreOffice extensions.md | 0 ...How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md | 0 ...Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md | 0 ...04 How to use KVM from the command line on Debian or Ubuntu.md | 0 ... from default to alternative Python version on Debian Linux.md | 0 ...60218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md | 0 .../{ => 201602}/20160218 Russia Announces Switch to Linux.md | 0 published/{ => 201602}/20160218 The Best Linux Distros of 2016.md | 0 .../20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md | 0 ...0224 Can we tackle the Zika virus with rapid, open research.md | 0 21 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 201602}/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md (100%) rename published/{ => 201602}/20150824 Great Open Source Collaborative Editing Tools.md (100%) rename published/{ => 201602}/20150906 How to install Suricata intrusion detection system on Linux.md (100%) rename published/{ => 201602}/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md (100%) rename published/{ => 201602}/20151030 80 Linux Monitoring Tools for SysAdmins.md (100%) rename published/{ => 201602}/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md (100%) rename published/{ => 201602}/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md (100%) rename published/{ => 201602}/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md (100%) rename published/{ => 201602}/20151201 Cinnamon 2.8 Review.md (100%) rename published/{ => 201602}/20151201 How to use Mutt email client with encrypted passwords.md (100%) rename published/{ => 201602}/20151206 Supporting secure DNS in glibc.md (100%) rename published/{ => 201602}/20151208 6 useful LibreOffice extensions.md (100%) rename published/{ => 201602}/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md (100%) rename published/{ => 201602}/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md (100%) rename published/{ => 201602}/20160104 How to use KVM from the command line on Debian or Ubuntu.md (100%) rename published/{ => 201602}/20160126 How to change from default to alternative Python version on Debian Linux.md (100%) rename published/{ => 201602}/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md (100%) rename published/{ => 201602}/20160218 Russia Announces Switch to Linux.md (100%) rename published/{ => 201602}/20160218 The Best Linux Distros of 2016.md (100%) rename published/{ => 201602}/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md (100%) rename published/{ => 201602}/20160224 Can we tackle the Zika virus with rapid, open research.md (100%) diff --git a/published/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md b/published/201602/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md similarity index 100% rename from published/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md rename to published/201602/20150818 A Linux User Using Windows 10 After More than 8 Years--See Comparison.md diff --git a/published/20150824 Great Open Source Collaborative Editing Tools.md b/published/201602/20150824 Great Open Source Collaborative Editing Tools.md similarity index 100% rename from published/20150824 Great Open Source Collaborative Editing Tools.md rename to published/201602/20150824 Great Open Source Collaborative Editing Tools.md diff --git a/published/20150906 How to install Suricata intrusion detection system on Linux.md b/published/201602/20150906 How to install Suricata intrusion detection system on Linux.md similarity index 100% rename from published/20150906 How to install Suricata intrusion detection system on Linux.md rename to published/201602/20150906 How to install Suricata intrusion detection system on Linux.md diff --git a/published/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md b/published/201602/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md similarity index 100% rename from published/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md rename to published/201602/20151020 30 Years of Free Software Foundation--Best Quotes of Richard Stallman.md diff --git a/published/20151030 80 Linux Monitoring Tools for SysAdmins.md b/published/201602/20151030 80 Linux Monitoring Tools for SysAdmins.md similarity index 100% rename from published/20151030 80 Linux Monitoring Tools for SysAdmins.md rename to published/201602/20151030 80 Linux Monitoring Tools for SysAdmins.md diff --git a/published/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md b/published/201602/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md similarity index 100% rename from published/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md rename to published/201602/20151104 How to Install SQLite 3.9.1 with JSON Support on Ubuntu 15.04.md diff --git a/published/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md b/published/201602/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md similarity index 100% rename from published/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md rename to published/201602/20151119 How to Install Revive Adserver on Ubuntu 15.04 or CentOS 7.md diff --git a/published/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md b/published/201602/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md similarity index 100% rename from published/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md rename to published/201602/20151126 Linux Foundation Explains a 'World without Linux' and Open Source.md diff --git a/published/20151201 Cinnamon 2.8 Review.md b/published/201602/20151201 Cinnamon 2.8 Review.md similarity index 100% rename from published/20151201 Cinnamon 2.8 Review.md rename to published/201602/20151201 Cinnamon 2.8 Review.md diff --git a/published/20151201 How to use Mutt email client with encrypted passwords.md b/published/201602/20151201 How to use Mutt email client with encrypted passwords.md similarity index 100% rename from published/20151201 How to use Mutt email client with encrypted passwords.md rename to published/201602/20151201 How to use Mutt email client with encrypted passwords.md diff --git a/published/20151206 Supporting secure DNS in glibc.md b/published/201602/20151206 Supporting secure DNS in glibc.md similarity index 100% rename from published/20151206 Supporting secure DNS in glibc.md rename to published/201602/20151206 Supporting secure DNS in glibc.md diff --git a/published/20151208 6 useful LibreOffice extensions.md b/published/201602/20151208 6 useful LibreOffice extensions.md similarity index 100% rename from published/20151208 6 useful LibreOffice extensions.md rename to published/201602/20151208 6 useful LibreOffice extensions.md diff --git a/published/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md b/published/201602/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md similarity index 100% rename from published/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md rename to published/201602/20151208 How to Install Bugzilla with Apache and SSL on FreeBSD 10.2.md diff --git a/published/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md b/published/201602/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md similarity index 100% rename from published/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md rename to published/201602/20151214 Linux or Unix Desktop Fun--Christmas Tree For Your Terminal.md diff --git a/published/20160104 How to use KVM from the command line on Debian or Ubuntu.md b/published/201602/20160104 How to use KVM from the command line on Debian or Ubuntu.md similarity index 100% rename from published/20160104 How to use KVM from the command line on Debian or Ubuntu.md rename to published/201602/20160104 How to use KVM from the command line on Debian or Ubuntu.md diff --git a/published/20160126 How to change from default to alternative Python version on Debian Linux.md b/published/201602/20160126 How to change from default to alternative Python version on Debian Linux.md similarity index 100% rename from published/20160126 How to change from default to alternative Python version on Debian Linux.md rename to published/201602/20160126 How to change from default to alternative Python version on Debian Linux.md diff --git a/published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md b/published/201602/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md similarity index 100% rename from published/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md rename to published/201602/20160218 Meizu PRO 5 Ubuntu Edition Announced and It's a Beast.md diff --git a/published/20160218 Russia Announces Switch to Linux.md b/published/201602/20160218 Russia Announces Switch to Linux.md similarity index 100% rename from published/20160218 Russia Announces Switch to Linux.md rename to published/201602/20160218 Russia Announces Switch to Linux.md diff --git a/published/20160218 The Best Linux Distros of 2016.md b/published/201602/20160218 The Best Linux Distros of 2016.md similarity index 100% rename from published/20160218 The Best Linux Distros of 2016.md rename to published/201602/20160218 The Best Linux Distros of 2016.md diff --git a/published/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md b/published/201602/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md similarity index 100% rename from published/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md rename to published/201602/20160220 Linux Mint 18 Will Get Its Own Set Of Apps.md diff --git a/published/20160224 Can we tackle the Zika virus with rapid, open research.md b/published/201602/20160224 Can we tackle the Zika virus with rapid, open research.md similarity index 100% rename from published/20160224 Can we tackle the Zika virus with rapid, open research.md rename to published/201602/20160224 Can we tackle the Zika virus with rapid, open research.md From 1f7add65730d940fa46fbfd891c6f3e81c88c011 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 6 Mar 2016 22:21:27 +0800 Subject: [PATCH 235/582] =?UTF-8?q?=E6=B6=88=E9=99=A4=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @oska874 --- published/20160226 Development Release | 0 ...1.md => 20160226 Development Release- Xubuntu 16.04 Beta 1.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 published/20160226 Development Release rename published/{20160226 Development Release: Xubuntu 16.04 Beta 1.md => 20160226 Development Release- Xubuntu 16.04 Beta 1.md} (100%) diff --git a/published/20160226 Development Release b/published/20160226 Development Release deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/published/20160226 Development Release: Xubuntu 16.04 Beta 1.md b/published/20160226 Development Release- Xubuntu 16.04 Beta 1.md similarity index 100% rename from published/20160226 Development Release: Xubuntu 16.04 Beta 1.md rename to published/20160226 Development Release- Xubuntu 16.04 Beta 1.md From b4c0dea400bea351d7bf70b8ecfe95af6613fcf5 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 6 Mar 2016 22:29:32 +0800 Subject: [PATCH 236/582] PUB:20160226 Development Release- Xubuntu 16.04 Beta 1 @oska874 --- .../20160226 Development Release- Xubuntu 16.04 Beta 1.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/published/20160226 Development Release- Xubuntu 16.04 Beta 1.md b/published/20160226 Development Release- Xubuntu 16.04 Beta 1.md index bae1ecccf8..0e7c3d0673 100644 --- a/published/20160226 Development Release- Xubuntu 16.04 Beta 1.md +++ b/published/20160226 Development Release- Xubuntu 16.04 Beta 1.md @@ -1,9 +1,11 @@ -Xubuntu 16.04 Beta 1 开发发布 +Xubuntu 16.04 Beta 1 开发者版本发布 ============================================ -Ubuntu 发布组宣布为选定的社区版本而准备的最新的 beta 测试镜像已经可以使用了。新的发布版名称是 16.04 beta 1 ,这个版本只推荐给测试人员测试用,并不适合普通人进行日常使用。 +Ubuntu 发布团队宣布为选定的社区版本而准备的最新的 beta 测试镜像已经可以使用了。新的发布版本名称是 16.04 beta 1 ,这个版本只推荐给测试人员测试用,并不适合普通人进行日常使用。 -“这个 beta 特性的镜像主要是为 [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] 和 [Xubuntu][6] 这几个发布版准备的。Xenial Xerus (LCTT 注: ubuntu 16.04 的开发代号) 的这个预发布版本并不推荐那些需要稳定版本的人员使用,同时那些不希望在系统运行中偶尔或频繁的出现 bug 的人也不建议使用这个版本。这个版本主要还是推荐给那些喜欢 ubuntu 的开发人员,以及那些想协助我们测试、报告 bug 和修改 bug 的人使用,和我们一起努力让这个发布版本早日准备就绪。” 更多的信息可以从 [发布日志][7] 获取。 +![](https://www.linux.com/images/stories/66866/xubuntu-small.png) + +“这个 beta 特性的镜像主要是为 [Lubuntu][1], Ubuntu Cloud, [Ubuntu GNOME][2], [Ubuntu MATE][3], [Ubuntu Kylin][4], [Ubuntu Studio][5] 和 [Xubuntu][6] 这几个发布版准备的。Xenial Xerus (LCTT 译注: ubuntu 16.04 的开发代号)的这个预发布版本并不推荐那些需要稳定版本的人员使用,同时那些不希望在系统运行中偶尔或频繁的出现 bug 的人也不建议使用这个版本。这个版本主要还是推荐给那些喜欢 ubuntu 的开发人员,以及那些想协助我们测试、报告 bug 和修改 bug 的人使用,和我们一起努力让这个发布版本早日准备就绪。” 更多的信息可以从 [发布日志][7] 获取。 -------------------------------------------------------------------------------- From 95892c50c547cbf5a37c3a4dec9b89dcf31645e0 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 6 Mar 2016 22:45:14 +0800 Subject: [PATCH 237/582] PUB:20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack @oska874 @martin2011qi --- ...n HTTPS Websites Imperiled by New Decryption Attack.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md index d3270ac88e..d1878c81f9 100644 --- a/published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md +++ b/published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md @@ -4,11 +4,11 @@ ![](https://www.linux.com/images/stories/66866/drown-explainer.jpg) -低成本的 DROWN 攻击能在数小时内完成数据解密,对采用了 TLS 的邮件服务器也同样奏效。 +低成本的 DROWN 攻击能在数小时内完成数据解密,该攻击对采用了 TLS 的邮件服务器也同样奏效。 -一国际研究小组于周二发出警告,据称逾 1100 万家网站和邮件服务采用的用以保证服务安全的[传输层安全协议][1],对于一种新发现的、成本低廉的攻击而言异常脆弱,这种攻击会在几个小时内解密敏感的通信,在某些情况下解密甚至能瞬间完成。 1 百万家最为流行的网站中有超过 81,000 家正处于这些脆弱的 HTTPS 协议的保护之下。 +一个国际研究小组于周二发出警告,据称逾 1100 万家网站和邮件服务采用的用以保证服务安全的 [传输层安全协议 TLS][1],对于一种新发现的、成本低廉的攻击而言异常脆弱,这种攻击会在几个小时内解密敏感的通信,在某些情况下解密甚至能瞬间完成。 前一百万家最大的网站中有超过 81,000 个站点正处于这种脆弱的 HTTPS 协议保护之下。 -这种攻击主要针对受 TLS 保护、依赖于 [RSA 加密系统][2]的通信。如果密钥泄露了,即使是间接的由 SSLv2,一种在 20 年前就因为自身缺陷而退休了的 LTS 前辈。该漏洞允许攻击者,可以通过反复使用 SSLv2 创建与服务器连接的方式,解密截获的 TLS 连接。 +这种攻击主要针对依赖于 [RSA 加密系统][2]的 TLS 所保护的通信,密钥会间接的通过 SSLv2 暴露,这是一种在 20 年前就因为自身缺陷而退休了的 TLS 前代协议。该漏洞允许攻击者可以通过反复使用 SSLv2 创建与服务器连接的方式,解密截获的 TLS 连接。 -------------------------------------------------------------------------------- @@ -16,7 +16,7 @@ via: https://www.linux.com/news/software/applications/889455--more-than-11-milli 作者:[ArsTechnica][a] 译者:[Ezio](https://github.com/oska874) -校对:[martin2011qi](https://github.com/martin2011qi) +校对:[martin2011qi](https://github.com/martin2011qi), [wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6a429bfe56cde11c545f626804ae5854862f6fef Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 7 Mar 2016 15:39:44 +0800 Subject: [PATCH 238/582] PUB:20151109 How to send email notifications using Gmail SMTP server on Linux @cposture @martin2011qi --- ...ations using Gmail SMTP server on Linux.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/published/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/published/20151109 How to send email notifications using Gmail SMTP server on Linux.md index 20850869b1..2661a64085 100644 --- a/published/20151109 How to send email notifications using Gmail SMTP server on Linux.md +++ b/published/20151109 How to send email notifications using Gmail SMTP server on Linux.md @@ -1,25 +1,25 @@ 如何在 Linux 上使用 Gmail SMTP 服务器发送邮件通知 ================================================================================ -假定你想配置一个 Linux app,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是部分的邮件简报、状态更新(如 [Cachet][1])、监控警报(如 [Monit][2])、磁盘时间(如 [RAID mdadm][3])等等。当你要建立自己的 [邮件发送服务器][4] 传递信息时 ,你可以依赖一个免费使用的公共 SMTP 服务器作为一个变通选项避免遭受维护之苦。 +假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是邮件简报、状态更新(如 [Cachet][1])、监控警报(如 [Monit][2])、磁盘时间(如 [RAID mdadm][3])等等。当你要建立自己的 [邮件发送服务器][4] 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦。 -谷歌的 Gmail 服务就是最可靠的 **免费 SMTP 服务器** 之一。想要从 app 发送邮件通知,你仅需在 app 中添加 Gmail 的 SMTP 服务器地址和你的凭证即可。 +谷歌的 Gmail 服务就是最可靠的 **免费 SMTP 服务器** 之一。想要从应用中发送邮件通知,你仅需在应用中添加 Gmail 的 SMTP 服务器地址和你的身份凭证即可。 -选择 Gmail 的 SMTP 服务器的原因之一是各种各样恰当的限制,这些限制主要用于阻止那些经常滥用服务器来发送垃圾邮件和使用邮件营销的家伙。举个例子,你一次只能给至多 100 个地址发送信息,并且一天不能超过 500 个收件人。同样,如果你不想被标为垃圾邮件发送者,你就不能发送过多的不可投递的消息。当你达到任何一个限制,你的 Gmail 账户将被暂时的锁定一天。简而言之,Gmail 的 SMTP 服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。 +使用 Gmail 的 SMTP 服务器会遇到一些限制,这些限制主要用于阻止那些经常滥用服务器来发送垃圾邮件和使用邮件营销的家伙。举个例子,你一次只能给至多 100 个地址发送信息,并且一天不能超过 500 个收件人。同样,如果你不想被标为垃圾邮件发送者,你就不能发送过多的不可投递的邮件。当你达到任何一个限制,你的 Gmail 账户将被暂时的锁定一天。简而言之,Gmail 的 SMTP 服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。 说了这么多,是时候向你们展示 **如何在 Linux 环境下使用 Gmail 的 SMTP 服务器** 了。 ### Google Gmail SMTP 服务器设置 ### -如果你想要通过你的 app 使用 Gmail 的 SMTP 服务器发送邮件,请牢记接下来的详细说明。 +如果你想要通过你的应用使用 Gmail 的 SMTP 服务器发送邮件,请牢记接下来的详细说明。 - **邮件发送服务器 (SMTP 服务器)**: smtp.gmail.com - **使用认证**: 是 - **使用安全连接**: 是 -- **用户名**: 你的 Gmail 账户 ID (比如 "alice" 如果你的邮箱为 alice@gmail.com) +- **用户名**: 你的 Gmail 账户 ID (比如 "alice" ,如果你的邮箱为 alice@gmail.com) - **密码**: 你的 Gmail 密码 - **端口**: 587 -确切的配置根据 app 会有所不同。在本教程的剩余部分,我将向你展示一些在 Linux 上使用 Gmail SMTP 服务器的应用示例。 +确切的配置根据应用会有所不同。在本教程的剩余部分,我将向你展示一些在 Linux 上使用 Gmail SMTP 服务器的应用示例。 ### 从命令行发送邮件 ### @@ -35,7 +35,7 @@ $ sudo yum install mutt -创建一个 mutt 配置文件(~/.muttrc),并和下面一样,在文件中指定 Gmail SMTP 服务器信息。将 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已(而非接收邮件)。 +创建一个 mutt 配置文件(~/.muttrc),并和下面一样,在文件中指定 Gmail SMTP 服务器信息。将 \ 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已(而非接收邮件)。 $ vi ~/.muttrc @@ -46,7 +46,7 @@ set smtp_url = "smtp://@smtp.gmail.com:587/" set smtp_pass = "" -一切就绪使用 mutt 发送一封邮件: +一切就绪,使用 mutt 发送一封邮件: $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com @@ -60,7 +60,7 @@ ### 当服务器重启时发送邮件通知 ### -如果你在 [虚拟专用服务器(VPS)][5] 上跑了些重要的网站,建议要监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS 上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是 systemd,并向你展示如何为自动邮件通知创建一个自定义的 systemd 启动服务。 +如果你在 [虚拟专用服务器(VPS)][5] 上跑了些重要的网站,建议监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS 上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是 systemd,并向你展示如何为自动邮件通知创建一个自定义的 systemd 启动服务。 首先创建下面的脚本 reboot_notify.sh,用于负责邮件通知。 @@ -108,9 +108,9 @@ ### 通过服务器使用监控发送邮件通知 ### -作为最后一个例子,让我展示一个现实生活中的应用程序,[Monit][6],这是一款极其有用的服务器监控应用程序。它附有全面的 [VPS][7] 监控能力(比如 CPU、内存、进程、文件系统),和邮件通知功能。 +作为最后一个例子,让我展示一个现实生活中的应用程序,[Monit][6],这是一款极其有用的服务器监控应用程序。它带有全面的 [VPS][7] 监控能力(比如 CPU、内存、进程、文件系统)和邮件通知功能。 -如果你想要接收 VPS 上任何事件导致的且由 Monit 产生的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。 +如果你想要接收 VPS 上由 Monit 产生的任何事件的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。 set mailserver smtp.gmail.com port 587 username "" password "" @@ -134,7 +134,7 @@ ### 总结 ### -如你所见,类似 Gmail 这样免费的 SMTP 服务器有着这么多不同的运用方式 。但再次重申,牢记免费的 SMTP 服务器不适用于商业用途,仅仅适用于个人项目。无论你正在任一款 app 中使用 Gmail SMTP 服务器,欢迎自由分享你的用例。 +如你所见,类似 Gmail 这样免费的 SMTP 服务器有着这么多不同的运用方式 。但再次重申,请牢记免费的 SMTP 服务器不适用于商业用途,仅仅适用于个人项目。无论你正在哪款应用中使用 Gmail SMTP 服务器,欢迎自由分享你的用例。 -------------------------------------------------------------------------------- @@ -142,7 +142,7 @@ via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html 作者:[Dan Nanni][a] 译者:[cposture](https://github.com/cposture) -校对:[martin2011qi](https://github.com/martin2011qi) +校对:[martin2011qi](https://github.com/martin2011qi), [wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a5b4a7fc6efcf3c9113592eb3646cc2d652181b2 Mon Sep 17 00:00:00 2001 From: ZhangXiangping Date: Mon, 7 Mar 2016 16:12:44 +0800 Subject: [PATCH 239/582] Update 20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 个人原因,取消认领。 --- ...20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md b/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md index 10a40233e8..19ddcf0e97 100644 --- a/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md +++ b/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md @@ -1,4 +1,3 @@ -chisper 翻译中 How to Install Pure-FTPd with TLS on FreeBSD 10.2 ================================================================================ FTP or File Transfer Protocol is application layer standard network protocol used to transfer file from the client to the server, after user logged in to the FTP server over the TCP-Network, such as internet. FTP has been round long time ago, much longer then P2P Program, or World Wide Web, and until this day it was a primary method for sharing file with other over the internet and it it remain very popular even today. FTP provide an secure transmission, that protect username, password and encrypt the content with SSL/TLS. From b88c3dce5bc904b5a35ce5d81a608ca3050e4812 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 8 Mar 2016 00:14:56 +0800 Subject: [PATCH 240/582] =?UTF-8?q?20160307-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit keywords: Linux Server , SMB , clearos , Zentyal --- ...wo Outstanding All-in-One Linux Servers.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md diff --git a/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md b/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md new file mode 100644 index 0000000000..a291fd2006 --- /dev/null +++ b/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md @@ -0,0 +1,104 @@ +Two Outstanding All-in-One Linux Servers +================================================ + +keywords: Linux Server , SMB , clearos , Zentyal + +![](http://www.linux.com/images/stories/66866/jack-clear_a.png) + +>Figure 1: The ClearOS setup wizard. + +Back in 2000, Microsoft released their Small Business Server. This product changed the way many people viewed how technology could function within the realm of business. Instead of having multiple machines handle different tasks, you could deploy a single server which would handle email, calendaring, file sharing, directory services, VPN, and a whole lot more. For many of small businesses, this was a serious boon, but for some the cost of the Windows SMB was prohibitive. For yet others, the idea of relying on such a server, designed by Microsoft, simply wasn’t an option. + +For that last group, there are alternatives. In fact, within the realm of Linux and open source, you can choose from several solid platforms that can serve your small business as a one-stop server shop. If your small business has between 10 and 50 employees, the all-in-one server might be the ideal solution to meet your needs. + +Here, I’ll look at two Linux all-in-one servers, so you can see if one of them is the perfect match for your company. + +Remember, these servers are not, in any way, suited for big business or enterprise. Larger companies cannot rely on the all-in-one server simply because a single server cannot take the load expected within the realm of enterprise needs. With that said, here’s what SMBs can expect from a Linux all in one. + +### ClearOS + +[ClearOS][1] was originally released in 2009, under the name ClarkConnect, as a router and gateway distribution. Since then, ClearOS has added all the features necessary to define it as an all-in-one server. ClearOS offers more than just a piece of software. You can also purchase a [ClearBox 100][2] or [ClearBox 300][3]. These servers ship complete with ClearOS and are marketed as IT in a box. Check out the feature comparison/price matrix [here][4]. + +For those with hardware already in-house, you can download one of the following: + +- [ClearOS Community][5] — The community (free) edition of ClearOS + +- [ClearOS Home][6] — Ideal for home offices (details on features and subscription costs, see here) + +- [ClearOS Business][7] — Ideal for small businesses (details on features and subscription costs, see here) + +What do you get with ClearOS? You get a business-class server with a single, elegantly designed web interface. What is unique about ClearOS is that you will get plenty of features in the base server; beyond that, you must add on features from the [Clear Marketplace][8]. From within the Marketplace, you can install free or paid apps that extend the feature set of the ClearOS server. Here you’ll find add-ons for Windows Server Active Directory, OpenLDAP, Flexshares, Antimalware, Cloud, Web access control, Content filtering, and much more. You’ll even find some third-party add-ons such as Google Apps Synchronization, Zarafa Collaboration Platform, and Kaspersky Anti-virus. + +ClearOS is installed like any other Linux distribution (based on Red Hat’s Anaconda installer). Once the install is complete, you will be prompted to set up the networking interface as well as presented with the address to point your browser (on the same network as the ClearOS server). The address will be in the form: + +[https://IP_OF_CLEAROS_SERVER:81][9] + +Where IP_OF_CLEAROS_SERVER is the actual IP address of the server. NOTE: When you first point your browser to the server, you will receive a “Connection is not private” warning. Proceed on to the address so you can continue the setup. + +When the browser finally connects, you will be prompted for the root user credentials (you set the root user password up during initial installation). Once authenticated, you will be presented with the ClearOS setup wizard (Figure 1 above). + +Click the Next button to begin the process of setting up your ClearOS server. The wizard is self-explanatory and, in the end, you will be asked which version of ClearOS you want to use. Click either Community, Home, or Business. Once selected, you will be required to register for an account. Once you’ve created an account and registered the server, you can then move on to updating the server, configuring the server, and adding modules from the marketplace (Figure 2). + +![](http://www.linux.com/images/stories/66866/jack-clear_b.png) + +>Figure 2: Installing modules from the marketplace. + +At this point, you are ready to start digging deep into the configuration of your ClearOS small business server. + +### Zentyal + +[Zentyal][10] is a Ubuntu-based small business server that was, at one point, distributed under the name eBox. Zentyal offers plenty of servers/services to fit your SMB needs: + +- Email — Webmail; Native MS Exchange protocols and Active Directory support; Calendars and contacts; Mobile device email sync; Antivirus/antispam; IMAP, POP, SMTP, CalDAV, and CardDAV support + +- Domain & Directory — Central domain directory management; Multiple organization units; Single sign-on authentication; File sharing; ACLs, Advanced domain management, Printer management + +- Networking & Firewall — Static and DHCP interfaces; Objects & services; Packet filter; Port forwarding + +- Infrastructure — DNS; DHCP; NTP; Certification authority; VPN + +- Firewall + +The installation of Zentyal is very much like that of Ubuntu Server—it’s text based and quite simple: Boot up the install media, make a few quick selections, and wait for the installation to complete. Once the initial, text-based, installation is finished, you are presented with the GUI desktop where a wizard will appear for package selection. Select all the packages you want to install and allow the installer to finish the job. + +Finally, you can log into your Zentyal server via the web interface (point your browser to [https://IP_OF_SERVER:8443][11] — where IP_OF_SERVER is the LAN address of the Zentyal server) or use the standalone, desktop GUI to administer the server (Zentyal includes quick access to an Administrator and User console as well as a Zentyal Administration console). When all systems have been saved and started, you will be presented with the Zentyal Dashboard (Figure 3). + +![](http://www.linux.com/images/stories/66866/jack-zentyal_a.png) + +>Figure 3: The Zentyal Dashboard in action. + +The Dashboard allows you to control all aspects of the server, such as updating, managing servers/services, and getting a quick status update of the server. You can also go into the Components area and install components that you opted out of during installation or update the current package list. Click on Software Management > System Updates and select what you want to update (Figure 4), then click the UPDATE button at the bottom of the screen. + +![](http://www.linux.com/images/stories/66866/jack-zentyal_b.png) + +>Figure 4: Updating your Zentyal server is simple. + +### Which Server Is Right for You? + +The answer to this question depends on what you need. Zentyal is an amazing server that does a great job running your SMB network. If you need a bit more, such as groupware, your best bet is to go with ClearOS. If you don’t need groupware, either server will do an outstanding job. + +I highly recommend installing both of these all-in-one servers to see which will best serve your small company needs. + + +------------------------------------------------------------------------------ + +via: http://www.linux.com/learn/tutorials/882146-two-outstanding-all-in-one-linux-servers + +作者:[Jack Wallen][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.linux.com/community/forums/person/93 +[1]: http://www.linux.com/learn/tutorials/882146-two-outstanding-all-in-one-linux-servers#clearfoundation-overview +[2]: https://www.clearos.com/products/hardware/clearbox-100-series +[3]: https://www.clearos.com/products/hardware/clearbox-300-series +[4]: https://www.clearos.com/products/hardware/clearbox-overview +[5]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso +[6]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso +[7]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso +[8]: https://www.clearos.com/products/purchase/clearos-marketplace-overview +[9]: https://ip_of_clearos_server:81/ +[10]: http://www.zentyal.org/server/ +[11]: https://ip_of_server:8443/ From 9f3c6bba6031decfb2afa598a4f6e770d7e867a7 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 8 Mar 2016 06:21:24 +0800 Subject: [PATCH 241/582] PUB:20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04 @geekpi --- ...FS Plans Are Lining Up For Ubuntu 16.04.md | 24 +++++++++++++++++++ ...FS Plans Are Lining Up For Ubuntu 16.04.md | 24 ------------------- 2 files changed, 24 insertions(+), 24 deletions(-) create mode 100644 published/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md delete mode 100644 translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md diff --git a/published/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/published/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md new file mode 100644 index 0000000000..5c5f44c803 --- /dev/null +++ b/published/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md @@ -0,0 +1,24 @@ +Ubuntu 16.04 为更好支持容器化而采用 ZFS +======================================================= + +![](https://www.phoronix.com/assets/categories/ubuntu.jpg) + +Ubuntu 开发者正在为 [Ubuntu 16.04 加上 ZFS 支持](http://www.phoronix.com/scan.php?page=news_item&px=ZFS-For-Ubuntu-16.04) ,并且对该文件系统的所有支持都已经准备就绪。 + +Ubuntu 16.04 的默认安装将会继续是 ext4,但是 ZFS 支持将会自动构建进 Ubuntu 发布中,模块将在需要时自动加载,zfsutils-linux 将放到 Ubuntu 主分支内,并且通过 Canonical 对商业客户提供支持。 + +对于那些对 Ubuntu 中的 ZFS 感兴趣的人,Canonical 的 Dustin Kirkland 已经写了[一篇新的博客](http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html),介绍了一些细节及为何“ZFS 是 Ubuntu 16.04 中面向容器使用的文件系统!” + +------------------------------------------------------------------------------ + +via: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-ZFS-Continues-16.04&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Phoronix+%28Phoronix%29 + +作者:[Michael Larabel][a] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.michaellarabel.com/ + + diff --git a/translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md deleted file mode 100644 index efe2ff27bc..0000000000 --- a/translated/tech/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md +++ /dev/null @@ -1,24 +0,0 @@ -Canonical的ZFS计划将会进入Ubuntu 16.04 -======================================================= - -![](https://www.phoronix.com/assets/categories/ubuntu.jpg) - -Ubuntu开发者正在为[Ubuntu 16.04 加上支持ZFS](http://www.phoronix.com/scan.php?page=news_item&px=ZFS-For-Ubuntu-16.04) ,并且所遇的文件系统支持都已经准备就绪。 - -Ubuntu 16.04的默认安装将会继续是ext4,但是ZFS支持将会自动构建进Ubuntu发布中,模块将在需要时自动加载,zfsutils-linux是Ubuntu的一部分,并且通过Canonical对商业客户提供支持 - -对于那些对Ubuntu中的ZFS感兴趣的人,Canonical的Dustin Kirkland已经写了[一篇新的博客](http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html)覆盖了一些细节及为何“ZFS是Ubuntu 16.04中为容器使用的文件系统!” - ------------------------------------------------------------------------------- - -via: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-ZFS-Continues-16.04&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Phoronix+%28Phoronix%29 - -作者:[Michael Larabel][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.michaellarabel.com/ - - From ae61b5a3cf377610f19d5df6395a4a98720c21e1 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 8 Mar 2016 06:34:37 +0800 Subject: [PATCH 242/582] PUB:20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms @geekpi --- ...-Signatures-Using-SHA-256512 Algorithms.md | 30 +++++++++++++++++ translated/news/20160226 Development Release | 0 ...-Signatures-Using-SHA-256512 Algorithms.md | 33 ------------------- 3 files changed, 30 insertions(+), 33 deletions(-) create mode 100644 published/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md delete mode 100644 translated/news/20160226 Development Release delete mode 100644 translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md diff --git a/published/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/published/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md new file mode 100644 index 0000000000..4000153d0e --- /dev/null +++ b/published/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md @@ -0,0 +1,30 @@ +OpenSSH 7.2发布,支持 SHA-256/512 的 RSA 签名 +======================================================== + +**2016.2.29,OpenBSD 项目很高兴地宣布 OpenSSH 7.2发布了,并且很块可在所有支持的平台下载。** + +根据内部[发布公告][1],OpenSSH 7.2 主要是 bug 修复,修改了自 OpenSSH 7.1p2 以来由用户报告和开发团队发现的问题,但是我们可以看到几个新功能。 + +这其中,我们可以提到使用了 SHA-256 或者 SHA-256 512 哈希算法的 RSA 签名;增加了一个 AddKeysToAgent 客户端选项,以添加用于身份验证的 ssh-agent 的私钥;和实现了一个“restrict”级别的 authorized_keys 选项,用于存储密钥限制。 + +此外,现在 ssh_config 中 CertificateFile 选项可以明确列出证书,ssh-keygen 现在能够改变所有支持的格式的密钥注释、密钥指纹现在可以来自标准输入,多个公钥可以放到一个文件。 + +### ssh-keygen 现在支持多证书 + +除了上面提到的,OpenSSH 7.2 增加了 ssh-keygen 多证书的支持,一个一行,实现了 sshd_config ChrootDirectory 及Foreground 的“none”参数,“-c”标志允许 ssh-keyscan 获取证书而不是文本密钥。 + +最后但并非最不重要的,OpenSSH 7.3 不再默认启用 rijndael-cbc(即 AES),blowfish-cbc、cast128-cbc 等古老的算法,同样的还有基于 MD5 和截断的 HMAC 算法。在 Linux 中支持 getrandom() 系统调用。[下载 OpenSSH 7.2][2] 并查看更新日志中的更多细节。 + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml + +作者:[Marius Nestor][a] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://www.openssh.com/txt/release-7.2 +[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml diff --git a/translated/news/20160226 Development Release b/translated/news/20160226 Development Release deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md deleted file mode 100644 index d3cf0e8e8b..0000000000 --- a/translated/news/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md +++ /dev/null @@ -1,33 +0,0 @@ -使用SHA-256/512算法作为RSA签名的OpenSSH 7.2发布了 -======================================================== - -**今天,2016.2.29,OpenBSD项目很高兴地宣布OpenSSH 7.2发布了,并且很块可在所有支持的平台下载。** - -根据内部[发布公告][1],该公告附在了文章的最后,OpenSSH 7.2主要是bug修复,修改了自OpenSSH 7.1p2以来由用户报告和开发团队发现的问题,但是我们可以看到几个新功能。 - -这其中,我们可以提到使用了SHA-256 或者 SHA-256 512哈希算法的RSA签名,增加了一个AddKeysToAgent客户端选项添加用于身份验证的ssh-agent的私钥,和实现了一个“restrict”级别的authorized_keys选项用于存储键限制。 - -此外,现在ssh_config中CertificateFile选项可以明确列出证书,ssh-keygen现在能够改所有支持的格式的密钥注释、指纹可以来自标准输入,文件可含多个公钥。 - -### ssh-keygen现在支持多证书 - -除了上面提到的,OpenSSH 7.2正加了ssh-keygen多证书的支持,一个一行,实现了sshd_config ChrootDirectory及前台的0参数,“-c”标志允许ssh-keyscan取回证书而不是文本密钥。 - -最后但并非最不重要的,OpenSSH 7.3不再默认启用rijndael-cbc也叫AES,blowfish-cbc、古老的cast128-cbc密码,同样还有基于MD5和截断的HMAC算法。getrandom()系统调用在Linux中支持。[下载OpenSSH 7.2][2]并在更新日志中查看更细节的在本主要更新中修复的问题。 - - - - --------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/openssh-7-2-out-now-with-support-for-rsa-signatures-using-sha-256-512-algorithms-501111.shtml - -作者:[Marius Nestor][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://news.softpedia.com/editors/browse/marius-nestor -[1]: http://www.openssh.com/txt/release-7.2 -[2]: http://linux.softpedia.com/get/Security/OpenSSH-4474.shtml From 713b5517acfaa51371157df316f6959ff22cec25 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 8 Mar 2016 07:28:41 +0800 Subject: [PATCH 243/582] PUB:20160218 Best Linux Desktop Environments for 2016 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @GHLandy  翻译的不错,很流畅 --- ...est Linux Desktop Environments for 2016.md | 90 +++++++++++++++++++ ...est Linux Desktop Environments for 2016.md | 90 ------------------- 2 files changed, 90 insertions(+), 90 deletions(-) create mode 100644 published/20160218 Best Linux Desktop Environments for 2016.md delete mode 100644 translated/tech/20160218 Best Linux Desktop Environments for 2016.md diff --git a/published/20160218 Best Linux Desktop Environments for 2016.md b/published/20160218 Best Linux Desktop Environments for 2016.md new file mode 100644 index 0000000000..6ac25a27c5 --- /dev/null +++ b/published/20160218 Best Linux Desktop Environments for 2016.md @@ -0,0 +1,90 @@ +2016:如何选择 Linux 桌面环境 +============================================= + +![](http://www.linux.com/images/stories/66866/DE-2.png) + +Linux 创建了一个友好的环境,为我们提供了选择的可能。比方说,现代大多数的 Linux 发行版都提供不同桌面环境给我们来选择。在本文中,我将挑选一些你可能会在 Linux 中见到的最棒的桌面环境来介绍。 + +## Plasma + +我认为,[KDE 的 Plasma 桌面](https://www.kde.org/workspaces/plasmadesktop/) 是最先进的桌面环境 (LCTT 译注:译者认为,没有什么是最好的,只有最合适的,毕竟每个人的喜好都不可能完全相同)。它是我见过功能最完善和定制性最高的桌面环境;在用户完全自主控制方面,即使是 Mac OS X 和 Windows 也无法与之比拟。 + +我爱 Plasma,因为它自带了一个非常好的文件管理器 —— Dolphin。而相对应 Gnome 环境,我更喜欢 Plasma 的原因就在于这个文件管理器。使用 Gnome 最大的痛苦就是,它的文件管理器——Files——使我无法完成一些基本任务,比如说,批量文件重命名操作。而这个操作对我来说相当重要,因为我喜欢拍摄,但 Gnome 却让我无法批量重命名这些图像文件。而使用 Dolphin 的话,这个操作就像在公园散步一样简单。 + +而且,你可以通过插件来增强 Plasma 的功能。Plasma 有大量的基础软件,如 Krita、Kdenlive、Calligra 办公套件、digiKam、Kwrite 以及由 KDE 社区开发维护的大量应用。 + +Plasma 桌面环境唯一的缺陷就是它默认的邮件客户端——Kmail。它的设置比较困难,我希望 Kmail 设置可以配置地址簿和日历。 + +包括 openSUSE 在内的多数主流发行版多使用 Plasma 作为默认桌面。 + +## GNOME + +[GNOME](https://www.gnome.org/) (GNU Network Object Model Environment,GNU 网络对象模型环境) 由 [Miguel de Icaza](https://en.wikipedia.org/wiki/Miguel_de_Icaza) 和 Federico Mena 在 1997 年的时候创立,这是因为 KDE 使用了 Qt 工具包,而这个工具包是使用专属许可证 (proprietary license) 发布的。不像提供了大量定制的 KDE,GNOME 专注于让事情变得简单。因为其自身的简单性和易用性,GNOME 变得相当流行。而我认为 GNOME 之所以流行的原因在于,Ubuntu——使用 GNOME 作为默认桌面的主流 Linux 发行版之一——对其有着巨大的推动作用。 + +随着时代变化,GNOME 也需要作出相应的改变了。因此,开发者在 GNOME 3 中推出了 GNOME 3 Shell,从而引出了它的全新设计规范。但这同时与 Canonical 的 Ubuntu 计划存在者一些冲突,所以 Canonical 为 GNOME 开发了叫做 Unity 的自己的 Shell。最初,GNOME 3 Shell 因很多争议 (issues) 而困扰不已——最明显的是,升级之后会导致很多扩展无法正常工作。由于设计上的重大改版以及各种问题的出现,GNOME 便产生了很多分支(fork),比如 Cinnamon 和 Mate 桌面。 + +另外,使得 GNOME 让人感兴趣的是,它针对触摸设备做了优化,所以,如果你有一台触屏笔记本电脑的话,GNOME 则是最合适你这台电脑的桌面环境。 + +在 3.18 版本中,GNOME 已经作出了一些令人印象深刻的改动。其中他们所做的最让人感兴趣的是集成了 Google Drive,用户可以把他们的 Google Drive 挂载为远程存储设备,这样就不必再使用浏览器来查看里边的文件了。我也很喜欢 GNOME 里边自带的那个优秀的邮件客户端,它带有日历和地址簿功能。尽管有这么多些优秀的特性,但它的文件管理器使我不再使用 GNOME ,因为我无法处理批量文件重命名。我会坚持使用 Plasma,一直到 GNOME 的开发者修复了这个小缺陷。 + +![](http://www.linux.com/images/stories/66866/DE-fig1.png) + +## Unity + +从技术上来说,[Unity](https://unity.ubuntu.com/) 并不是一个桌面环境,它只是 Canonical 为 Ubuntu 开发的一个图形化 Shell。Unity 运行于 GNOME 桌面之上,并使用很多 GNOME 的应用和工具。Ubuntu 团队分支了一些 GNOME 组件,以便更好的满足 Unity 用户的需求。 + +Unity 在 Ubuntu 的融合(convergence)计划中扮演着重要角色, 在 Unity 8 中,Canonical 公司正在努力将电脑桌面和移动世界结合到一起。Canonical 同时还为 Unity 开发了许多的有趣技术,比如 HUD (Head-up Display,平视显示)。他们还在 lenses 和 scopes 中通过一种独特的技术来让用户方便地找到特定内容。 + +即将发行的 Ubuntu 16.04,将会搭载 Unity 8,那时候用户就可以完全体验开发者为该开源软件添加的所有特性了。其中最大的争议之一,Unity 可选取消集成了 Amazon Ads 和其他服务。而在即将发行的版本,Canonical 从 Dash 移除了 Amazon ads,但却默认保证了系统的隐私性。 + +## Cinnamon + +最初,[Cinnamon](https://en.wikipedia.org/wiki/Cinnamon_(software\)) 由 [Linux Mint](http://www.linuxmint.com/) 开发 —— 这是 DistroWatch.com 上统计出来最流行的发行版。就像 Unity,Cinnamon 是 GNOME Shell 的一个分支。但最后进化为一个独立的桌面环境,这是因为 Linux Mint 的开发者分支了 GNOME 桌面中很多的组件到 Cinnamon,包括 Files ——以满足自身用户的需求。 + +由于 Linux Mint 基于普通版本的 Ubuntu,开发者仍需要去完成 Ubuntu 尚未完成的目标。结果,尽管前途光明,但 Cinnamon 却充满了 Bugs 和问题。随着 17.x 本版的发布,Linux Mint 开始转移到 Ubuntu 的 LTS 版本上,从而他们可以专注于开发 Cinnamon 的核心组件,而不必再去担心代码库。转移到 LTS 的好处是,Cinnamon 变得非常稳定并且基本没有 Bugs 出现。现在,开发者已经开始向桌面环境中添加更多的新特性了。 + +对于那些更喜欢在 GNOME 基础上有一个很好的类 Windows 用户界面的用户来说,Cinnamon 是他们最好的桌面环境。 + +## MATE 桌面 + +[MATE 桌面](http://mate-desktop.com/) 同样是 GNOME 的一个分支,然而,它并不像 Cinnamon 那样由 GNOME 3 分支而来,而是现在已经没有人维护的 GNOME 2 代码库的一个分支。MATE 桌面中的一些开发者并不喜欢 GNOME 3 并且想要“继续坚持” GNOME 2,所以他们使用这个代码库来创建来 MATE。为避免和 GNOME 3 的冲突,他们重命名了全部的包:Nautilus 改为 Caja、Gedit 改为 Pluma 以及 Evince 改为 Atril 等。 + +尽管 MATE 延续了 GNOME 2,但这并不意味着他们使用过时的技术;相反,他们使用了更新的技术来提供一个现代的 GNOME 2 体验。 + +拥有相当高的资源使用率才是 MATE 最令人印象深刻之处。你可将它运行在老旧硬件或者更新一些的但不太强大的硬件上,如树梅派 (Raspberry Pi) 或者 Chromebook Flip。使得它更有让人感兴趣的是,把它运行在一些强大的硬件上,可以节省大多数的资源给其他应用,而桌面环境本身只占用很少的资源。 + +## LXQt + +[LXQt](http://lxqt.org/) 继承了 LXDE ——最轻量级的桌面环境之一。它融合了 LXDE 和 Razor-Qt 两个开源项目。LXQt 的首个可用本版(v 0.9)发布于 2015 年。最初,开发者使用了 Qt4 ,之后为了加快开发速度,而放弃了兼容性,他们移动到 Qt5 和 KDE 框架上。我也在自己的 Arch 系统上尝试使用了 LXQt,它的确是一个非常好的轻量级桌面环境。但在完全接过 LXDE 的传承之前,LXQt 仍有一段很长的路需要走。 + +## Xfce + +[Xfce](http://www.xfce.org/) 早于 KDE 桌面环境,它是最古老和最轻量级的桌面环境。Xfce 的最新版本是 4.15,发布于 2015 年,使用了诸如 GTK+ 3 的大量的现代科技。很多发行版都使用了 Xfce 环境以满足特定需求,比如 Ubuntu Studio ——与 MATE 类似——尽量节省系统资源给其他的应用。并且,许多的著名的 Linux 发行版——包括 Manjaro Linux、PC/OS、Salix 和 Mythbuntu ——都把它作为默认桌面环境。 + +## Budgie + +[Budgie](https://solus-project.com/budgie/) 是一个新型的桌面环境,由 Solus Linux 团队开发和维护。Solus 是一个从零开始构建的新型发行版,而 Budgie 则是它的一个核心组件。Budgie 使用了大量的 GNOME 组件,从而提供一个华丽的用户界面。由于没有该桌面环境的更多信息,我特地联系了 Solus 的核心开发者—— Ikey Doherty。他解释说:“我们搭载了自己的桌面环境—— Budgie 桌面。与其他桌面环境不同的是,Budgie 并不是其他桌面的一个分支,它的目标是彻底融入到 GNOME 协议栈之中。它完全从零开始编写,并特意设计来迎合 Solus 提供的体验。我们会尽可能的和 GNOME 的上游团队协同工作,修复 Bugs,并提倡和支持他们的工作”。 + +## Pantheon + +我想,[Pantheon](https://elementary.io/) 不需要特别介绍了吧,那个优美的 elementary OS 就使用它作为桌面。类似于 Budgie,很多人都认为 Pantheon 也不是 GNOME 的一个分支。elementary OS 团队大多拥有良好的设计从业背景,所以他们会近距离关注每一个细节,这使得 Pantheon 成为一个非常优美的桌面环境。偶尔,它可能缺少像 Plasma 等桌面中的某些特性,但开发者实际上是尽其所能的去坚持设计原则。 + +![](http://www.linux.com/images/stories/66866/DE-3.png) + +## 结论 + +当我写完本文后,我突然意识到来开源和 Linux 的重大好处。总有一些东西适合你。就像 Jon “maddog” Hall 在最近的 SCaLE 14 上说的那样:“是的,现在有 300 多个 Linux 发行版。我可以一个一个去尝试,然后坚持使用我最喜欢的那一个”。 + +所以,尽情享受 Linux 的多样性吧,最后使用最合你意的那一个。 + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/software/applications/881107-best-linux-desktop-environments-for-2016 + +作者:[Swapnil Bhartiya][a] +译者:[GHLandy](https://github.com/GHLandy) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linux.com/community/forums/person/61003 diff --git a/translated/tech/20160218 Best Linux Desktop Environments for 2016.md b/translated/tech/20160218 Best Linux Desktop Environments for 2016.md deleted file mode 100644 index b9306b79be..0000000000 --- a/translated/tech/20160218 Best Linux Desktop Environments for 2016.md +++ /dev/null @@ -1,90 +0,0 @@ -2016:如何选择 Linux 桌面环境 -============================================= - -![](http://www.linux.com/images/stories/66866/DE-2.png) - -Linux 创建了一个相对友好的环境,为我们提供了选择的可能。比方说,现代大多数的 Linux 发行版都提供不同桌面环境给我们来选择。在本文中,我将挑选一些你可能会在 Linux 中见到的相对较好的桌面环境来介绍。 - -## Plasma - -我认为,[KDE’s Plasma desktop](https://www.kde.org/workspaces/plasmadesktop/) 是最高级的桌面环境 (LCTT 译注:译者认为,没有什么是最好的,只有最合适的,毕竟每个人的喜好都不可能完全相同)。它是我见过功能最完善和定制性最高的桌面环境;在用户完全自主控制方面,即使是 Mac OS X 和 Windows 也无法与之比拟。 - -我爱 Plasma,因为它自带了一个非常好的文件管理器——Dolphin。而相对应 Gnome 环境,我更喜欢 Plasma 的原因就在于文件管理器。使用 Gnome 最大的痛苦就是,它的文件管理器——Files——使我无法完成一些基本任务,比如说,批量文件重命名操作。而这个操作对我来说相当重要,因为我喜欢拍摄,但 Gnome 却让我无法批量重命名这些图像文件。而使用 Dolphin 的话,这个操作就像在公园散步一样简单。 - -而且,你可以通过插件来增强 Plasma 的功能。Plasma 有大量的基础软件,如 Krita、Kdenlive、Calligra 办公套件、digiKam、Kwrite 以及由 KDE 社区开发维护的大量应用。 - -Plasma 桌面环境唯一的缺陷就是它默认的邮件客户端——Kmail。它的设置比较困难,我希望 Kmail 设置可以配置地址簿和日历。 - -包括 openSUSE 在内的多数主流发行版多使用 Plasma 作为默认桌面。 - -## GNOME - -[GNOME](https://www.gnome.org/) (GNU Network Object Model Environment,GNU 网络对象模型环境) 由 [Miguel de Icaza](https://en.wikipedia.org/wiki/Miguel_de_Icaza) 和 Federico Mena 在 1997 年的时候创立,这是因为 KDE 使用来 Qt 工具包,而这个工具包是使用专业许可证 (proprietary license) 发布的。和 KDE 不一样的是,GNOME 提供了大量的定制,它专注于让事情变得简单。因为 自身的简单性和易用性,GNOME 变得相当流行。而我认为 GNOME 之所以流行的原因在于,Ubuntu——使用 GNOME 作为默认桌面的主流 Linux 发行版之一——对其有着巨大的推动作用。 - -随着时代变化,GNOME 也需要作出相应的改变了。因此,开发者通过 GNOME 3 推出了 GNOME 3 Shell,从而引出它全新的设计规范。但这同时与 Canonical 的 Ubuntu 计划存在者一些冲突,所以 Canonical 为 GNOME 开发来叫做 Unity 的特有 Shell。最初,GNOME 3 Shell 因很多争议 (issues) 而困扰不已——最明显的是,升级之后会导致很多扩展无法正常工作。由于设计上的重大改版以及各种问题的出现,GNOME 便产生来很多分支,比如 Cinnamon 和 Mate 桌面。 - -也就是说,使得 GNOME 有趣的是,它针对触摸设备做了优化,所以,如果你有一台触屏笔记本电脑的话,GNOME 则是最合适你这台电脑的桌面环境。 - -在 3.18 版本中,GNOME 已经作出了一些令人印象深刻的改动。其中他们所做的最有趣的是集成了 Google Drive,用户可以把他们的 Google Drive 挂载为远程存储设备,这样就不必在使用浏览器来查看里边的文件来。我也很喜欢 GNOME 里边自带的那个优秀的邮件客户端,它带有日历和地址簿功能。尽管有这么多些优秀的特性,但它的文件管理器使我不再使用 GNOME ,因为我无法处理批量文件重命名。我会坚持使用 Plasma,一直到 GNOME 的开发者修复了这个小缺陷。 - -![](http://www.linux.com/images/stories/66866/DE-fig1.png) - -## Unity - -从技术上来说,[Unity](https://unity.ubuntu.com/) 并不是一个桌面环境,它只是 Canonical 为 Ubuntu 开发的一个图形化 Shell。Unity 运行于 GNOME 桌面之上,并使用很多 GNOME 的应用和工具。Ubuntu 团队分支了一些 GNOME 组件,以便更好的满足 Unity 用户的需求。 - -Unity 在 Ubuntu 故事集和 Unity 8 中扮演者重要角色,Canonical 公司正在努力将电脑桌面和移动世界结合到一起。Canonical 同时还为 Unity 开发了许多的有趣技术,比如 HUD (Head-up Display,平视显示)。他们还有一种独特的技术来然用户在镜片上的某范围找到特定内容。 - -即将发行的 Ubuntu 16.04,将会搭载 Unity 8,那时候用户就可以完全体验开发者为该开源软件添加的所有特性了。其中最大的争议就是,Unity 不再集成 Amazon Ads 和其他服务。即将发行的版本,虽然 Canonical 从 Dash 移除了 Amazon ads,但却默认保证了系统的隐私性。 - -## Cinnamon - -最初,[Cinnamon](https://en.wikipedia.org/wiki/Cinnamon_(software)) 由 [Linux Mint](http://www.linuxmint.com/) 开发 —— DistroWatch.com 上统计出来最流行的发行版。就像 Unity,Cinnamon 是 GNOME Shell 的一个分支。但最后进化为一个独立的桌面环境,这是因为 Linux Mint 的开发者分支了 GNOME 桌面中很多的组件到 Cinnamon,包括 Files ——以满足自身用户的需求。 - -由于 Linux Mint 基于普通版本的 Ubuntu,开发者仍需要去完成 Ubuntu 尚未完成的目标。结果,尽管前途光明,但 Cinnamon 却充满了 Bugs 和问题。随着 17.x 本版的发布,Linux Mint 开始移动到 Ubuntu 的 LTS 版本上,从而他们可以专注于开发 Cinnamon 的核心组件,而不必再去担心代码库。移动到 LTS 的好处是,Cinnamon 变得非常稳定并且基本没有 Bugs 出现。现在,开发者已经开始向桌面环境中添加更多的新特性来。 - -对于那些更喜欢在 GNOME 基础上有一个很好的类 Windows 用户界面的用户来说,Cinnamon 是他们最好的桌面环境。 - -## MATE Desktop - -[MATE desktop](http://mate-desktop.com/) 同样是 GNOME 的一个分支,然而,它并不像 Cinnamon 那样由 GNOME 3 分支,而是现在已经没有人维护的 GNOME 2 代码库的一个分支。MATE desktop 中的一些开发者并不喜欢 GNOME 3 并且想要“继续坚持” GNOME 2,所以他们使用这个代码库来创建来 MATE。为避免和 GNOME 3 的冲突,他们重命名了全部的包:Nautilus 改为 Caja、Gedit 改为 Pluma 以及 Evince 改为 Atril 等。 - -尽管 MATE 延续了 GNOME 2,但这并不意味着他们使用过时的技术;相反,他们使用了更新的技术来提供一个现代的 GNOME 2 体验。 - -拥有相当高的资源效率才是 MATE 最令人印象深刻之处。你可将它运行在老旧硬件或者很少更新的强大硬件上,如树梅派 (Raspberry Pi) 或者 Chromebook Flip。使得它更有趣的是,把它运行在一些强大的硬件上,可以节省大多数的资源给其他应用,而桌面环境本身只占用很少的资源。 - -## LXQt - -[LXQt](http://lxqt.org/) 继承了 LXDE ——最轻量级的桌面环境之一。它融合了 LXDE 和 Razor-Qt 两个开源项目。LXQt 的首个可用本版 V 0.9 发布于 2015 年。最初,开发者使用了 Qt4 但向下兼容,之后为了加快开发速度,他们移动到 Qt5 和 KDE 框架上。我也在自己的 Arch 系统上尝试使用了 LXQt,它的确是一个非常好的轻量级桌面环境。但在完全继承 LXDE 之前,LXQt 仍有一段很长的路需要走。 - -## Xfce - -[Xfce](http://www.xfce.org/) 早于 KDE 桌面环境,它是最古老和最轻量级的桌面环境。Xfce 的最新版本是 4.15,发布于 2015 年,使用了诸如 GTK + 3 的大量的现代科技。很多发行版都使用了 Xfce 环境以满足特定需求,比如 Ubuntu Studio ——与 MATE 类似——尽量节省系统资源给其他的应用。并且,许多的著名的 Linux 发行版——包括 Manjaro Linux、PC/OS、Salix 和 Mythbuntu ——都把它作为默认桌面环境。 - -## Budgie - -[Budgie](https://solus-project.com/budgie/) 是一个新型的桌面环境,由 Solus Linux 团队开发和维护。Solus 是一个从零开始构建的新型发行版,而 Budgie 则是它的一个核心组件。Budgie 使用了大量的 GNOME 组件,从而提供一个华丽的用户界面 (UI)。由于没有该桌面环境的更多信息,我特地联系了 Solus 的核心开发者—— Ikey Doherty。他解释说:“我们搭载了自己的桌面环境—— Budgie。与其他桌面环境不同的是,Budgie 并不是其他桌面的一个分支,它的目标是侧底融入到 GNOME 协议栈之中。它完全从零开始编写,并特意的设计来迎合 Solus 提供的体验。我们会尽可能的和 GNOME 的上游团队协同工作,修复 Bugs,并提倡和支持他们的工作”。 - -## Pantheon - -我想,[Pantheon](https://elementary.io/) 不需要特别介绍了吧,那个优美的 elementary OS 就使用它作为桌面。类似于 Budgie,很多人都认为 Pantheon 也不是 GNOME 的一个分支。elementary OS 团队大多拥有良好的设计背景,所以他们会近距离关注每一个细节,这使得 Pantheon 成为一个非常优美的桌面环境。在某个瞬间,它可能缺少像 Plasma 等桌面中的某些特性,但开发者实际上是尽其所能的去坚持设计原则。 - -![](http://www.linux.com/images/stories/66866/DE-3.png) - -## 结论 - -当我写完本文后,我突然意识到来开源和 Linux 的重大好处。总有一个发行版本适合你。就像 Jon “maddog” Hall 在最近的 SCaLE 14 上说的那样:“是的,现在有 300 多个 Linux 发行版。我可以一个一个去尝试,然后坚持使用我最喜欢的那一个”。 - -所以,尽情享受 Linux 的多样性吧,最后使用最合你意的那一个。 - ------------------------------------------------------------------------------- - -via: http://www.linux.com/news/software/applications/881107-best-linux-desktop-environments-for-2016 - -作者:[Swapnil Bhartiya][a] -译者:[GHLandy](https://github.com/GHLandy) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.linux.com/community/forums/person/61003 From 30b627dd8dd9e129ed819acb0001e960cc514f28 Mon Sep 17 00:00:00 2001 From: zpl Date: Tue, 8 Mar 2016 10:09:48 +0800 Subject: [PATCH 244/582] [translating] 20151202 A new Mindcraft moment.md --- sources/tech/20151202 A new Mindcraft moment.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20151202 A new Mindcraft moment.md b/sources/tech/20151202 A new Mindcraft moment.md index 79930e8202..92c645ea4b 100644 --- a/sources/tech/20151202 A new Mindcraft moment.md +++ b/sources/tech/20151202 A new Mindcraft moment.md @@ -1,3 +1,4 @@ +zpl1025 A new Mindcraft moment? ======================= From ce7f446503587fece9c0c2f48e3a74e9ec530eac Mon Sep 17 00:00:00 2001 From: Markgolzh Date: Tue, 8 Mar 2016 11:45:33 +0800 Subject: [PATCH 245/582] Update 20160303 Top 5 open source command shells for Linux.md --- .../tech/20160303 Top 5 open source command shells for Linux.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160303 Top 5 open source command shells for Linux.md b/sources/tech/20160303 Top 5 open source command shells for Linux.md index 74c135e594..d097928ace 100644 --- a/sources/tech/20160303 Top 5 open source command shells for Linux.md +++ b/sources/tech/20160303 Top 5 open source command shells for Linux.md @@ -1,3 +1,4 @@ +翻译中;by ![zky001](https://github.com/LCTT/TranslateProject/edit/master/sources/tech/20160303%20Top%205%20open%20source%20command%20shells%20for%20Linux.md) Top 5 open source command shells for Linux =============================================== From 6f5538280d2b42e80d335bc86a48333fd1e0e571 Mon Sep 17 00:00:00 2001 From: martin qi Date: Tue, 8 Mar 2016 23:06:44 +0800 Subject: [PATCH 246/582] Update and rename translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md to published/20151028 Bossie Awards 2015--The best open source networking and security software.md --- ...source networking and security software.md | 162 +++++++++++++++++ ...source networking and security software.md | 164 ------------------ 2 files changed, 162 insertions(+), 164 deletions(-) create mode 100644 published/20151028 Bossie Awards 2015--The best open source networking and security software.md delete mode 100644 translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md diff --git a/published/20151028 Bossie Awards 2015--The best open source networking and security software.md b/published/20151028 Bossie Awards 2015--The best open source networking and security software.md new file mode 100644 index 0000000000..d245fe2a4c --- /dev/null +++ b/published/20151028 Bossie Awards 2015--The best open source networking and security software.md @@ -0,0 +1,162 @@ +2015 Bossie 评选:最佳开源网络和安全软件 +================================================================================ +InfoWorld 在建设网络,运营网络和保障网络安全领域精选出了年度开源工具获奖者。 + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-net-sec-100614459-orig.jpg) + +### 最佳开源网络和安全软件 ### + +[BIND](https://en.wikipedia.org/wiki/BIND), [Sendmail](https://en.wikipedia.org/wiki/Sendmail), [OpenSSH](https://en.wikipedia.org/wiki/OpenSSH), [Cacti](https://en.wikipedia.org/wiki/Cactus), [Nagios](https://en.wikipedia.org/wiki/Nagios), [Snort](https://en.wikipedia.org/wiki/Snort_%28software%29) -- 这些为了网络而生的开源软件,好些家伙们老而弥坚。今年在这个范畴的最佳选择中,你会发现中坚、支柱、新人和新贵云集,他们正在完善网络管理,安全监控,漏洞评估,[rootkit](https://en.wikipedia.org/wiki/Rootkit) 检测,以及很多方面。 + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-icinga-100614482-orig.jpg) + +### Icinga 2 ### + +Icinga 起先只是系统监控应用 Nagios 的一个分支。[Icinga 2][1] 经历了完全的重写,为用户带来了时尚的界面,对多数据库的支持,以及一个集成众多扩展的 API。凭借着配置好的负载均衡、通知和配置文件,Icinga 2 缩短了在复杂环境下安装的时间。Icinga 2 原生支持 [Graphite](https://github.com/graphite-project/graphite-web)(系统监控应用),轻松为管理员呈现实时性能图表。不过真的让 Icinga 今年重新火起来的原因是 Icinga Web 2 的发布,那是一个支持可拖放定制的 dashboard 和一些流式监控工具的前端图形界面系统 。 + +管理员可以查看,过滤,并把问题按优先顺序排好,同时保持跟踪已经进行的动作。一个新的矩阵视图使管理员能够在一个页面上查看主机和服务。你可以通过查看特定时间段的事件或筛选事件类型来了解哪些事件需要立即关注。虽然 Icinga Web 2 有着全新界面和更为强劲的性能,不过对于传统版 Icinga 和 Web 版 Icinga 的所有常用命令还是照旧支持的。这意味着学习新版工具不耗费额外的时间。 + +-- Fahmida Rashid + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-zenoss-100614465-orig.jpg) + +### Zenoss Core ### + +另一个强大的开源软件,[Zenoss Core][2] 为网络管理员提供了一个完整的,一站式解决方案来跟踪和管理所有的应用程序、服务器、存储,网络组件、虚拟化工具、以及企业基础架构的其他元素。管理员可以确保硬件的运行效率并利用 ZenPacks 中模块化设计的插件来扩展功能。 + +Zenoss Core 5,在今年二月发布,保留了已经很强大的工具,并进一步改进以增强用户界面和扩展 dashboard。基于 Web 的控制台和 dashboard 已经是高度可定制并动态调整的存在了,现在新版本还能让管理员混搭多个组件图表到一个图表。想来这定是一个更好的根源分析和因果分析的工具。 + +Portlets 为网络映射、设备问题、守护进程、产品状态、监视列表和事件视图等等提供深入的分析。而且新的 HTML5 图表可以从工具导出。Zenoss 的控制中心支持带外管理并且可监控所有 Zenoss 组件。Zenoss Core 拥有在线备份和恢复、快照和回滚以及多主机部署的新工具。更重要的是,凭借对 Docker 的全面支持,部署起来更快了。 + +-- Fahmida Rashid + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opennms-100614461-orig.jpg) + +### OpenNMS ### + +作为一个非常灵活的网络管理解决方案,[OpenNMS][3] 可以处理任何网络管理任务,无论是设备管理,应用性能监控,库存控制,或事件管理。凭借对 IPv6 的支持,强大的警报系统和记录用户脚本来测试 Web 应用程序的能力,OpenNMS 拥有网络管理员和测试人员需要的一切。OpenNMS 现在变得像一款移动 dashboard,堪称 OpenNMS 指南针,可让网络专家随时,甚至在外出时都可以监视他们的网络。 + +该应用程序的 IOS 版本,可从 [iTunes App Store][4] 上获取,显示故障、节点和告警。下一个版本将提供更多的事件细节、资源图表、以及关于 IP 和 SNMP 接口的信息。安卓版可从 [Google Play][5] 上获取,可在 dashboard 上显示网络可用性,故障和告警,以及确认、提升或清除告警的能力。移动客户端与 OpenNMS Horizon 1.12 或更高版本以及 OpenNMS Meridian 2015.1.0 或更高版本兼容。 + +-- Fahmida Rashid + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-onion-100614460-orig.jpg) + +### Security Onion ### + +如同一个洋葱,网络安全监控是由许多层组成。没有任何一个单一的工具可以让你洞察每一次攻击,为你显示你公司网络中的每一次侦查或是会话的足迹。[Security Onion][6] 在一个简单易用的 Ubuntu 发行版中打包了许多经过验证的工具,这会让你看到谁留在你的网络里,并帮助你隔离这些坏家伙。 + +无论你是采取主动式的网络安全监测还是追查可能的攻击,Security Onion 都可以帮助你。Onion 由传感器、服务器和显示层组成,结合了基于网络和基于主机的入侵检测,全面的网络数据包捕获,并提供了所有类型的日志以供检查和分析。 + +这是一个众星云集的的网络安全工具链,包括用于网络抓包的 [Netsniff-NG](http://www.netsniff-ng.org/)、基于规则的网络入侵检测系统 Snort 和 [Suricata](https://en.wikipedia.org/wiki/Suricata_%28software%29),基于分析的网络监控系统 Bro,基于主机的入侵检测系统 OSSEC 和用于显示、分析和日志管理的 Sguil、Squert、Snorby 和 ELSA (企业日志搜索和归档)。是一个经过精挑细选的工具集,所有的这些全被打包进一个向导式的安装程序并有完整的文档支持,可以帮助你尽可能快地上手监控。 + +-- Victor R. Garza + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-kali-100614458-orig.jpg) + +Kali Linux + +[Kali Linux][7] 背后的团队今年改版了流行的安全 Linux 发行版,使其更快,更全能。Kali 采用全新 4.0 版的内核 ,改进了对硬件和无线驱动程序的支持,并且界面更为流畅。最常用的工具都可从屏幕的侧边栏上轻松找到。而最大的最大的改变是 Kali Linux 现在是一个滚动发行版,具有持续的软件更新。Kali 的核心系统是基于 Debian Jessie,而且该团队会不断地从 Debian 测试版 pull 软件包,并持续的在上面添加 Kali 风格的新特性。 + +该发行版仍然配备满了渗透测试,漏洞分析,安全审查,网络应用分析,无线网络评估,逆向工程,和漏洞利用工具。现在该发行版具有新版本检测系统,当有个别工具可更新时系统会自动通知用户。该发行版还具有一系列设备的 ARM 镜像,包括树莓派、[Chromebook](https://en.wikipedia.org/wiki/Chromebook) 和 [Odroid](https://en.wikipedia.org/wiki/ODROID),也更新了 Android 设备上运行的 [NetHunter](https://www.kali.org/kali-linux-nethunter/) 渗透测试平台。还有其他的变化:Metasploit 的社区版/专业版不再包括在内,因为 Kali 2.0 还没有 [Rapid7 的官方支持][8]。 + +-- Fahmida Rashid + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-openvas-100614462-orig.jpg) + +### OpenVAS ### + +开放式漏洞评估系统 [OpenVAS][9],是一个整合多种服务和工具来提供漏洞扫描和漏洞管理的软件框架。该扫描器与每周一次的网络漏洞测试数据配合,或者你可以使用商业数据。该软件框架包括一个命令行界面(以使其可以用脚本运行)和一个带 SSL 安全机制的基于 [Greenbone 安全助手][10] 的浏览器界面。OpenVAS 提供了用于附加功能的各种插件。扫描可以预定运行或按需运行。 + +可通过单一的主控来控制多个 OpenVAS 的安装,这使其成为了一个可扩展的企业漏洞评估工具。该项目兼容的标准使其可以:将扫描结果和配置存储在 SQL 数据库中,在那里他们可以容易地被外部报告工具访问。客户端工具通过基于 XML 的无状态 OpenVAS 管理协议访问 OpenVAS 管理器,所以安全管理员可以扩展该框架的功能。该软件能以软件包或源代码的方式安装在 Windows 或 Linux 上运行,或者作为一个虚拟应用下载。 + +-- Matt Sarrel + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-owasp-100614463-orig.jpg) + +### OWASP ### + +[OWASP][11](开放式 Web 应用程序安全项目 )是专注于提高软件安全性的在全球各地拥有分会的非营利组织。由这个社区性的组织提供测试工具、文档、培训和几乎任何你可以想象的开发安全软件相关的软件安全评估和最佳做法。有一些 OWASP 项目已成为很多安全从业者工具箱中的重要组件: + +[ZAP][12](ZED 攻击代理项目)是一个在 Web 应用程序中寻找漏洞的渗透测试工具。ZAP 的设计目标之一是使之易于使用,以便于那些并非安全领域专家的开发人员和的测试人员在使用中能得到帮助。ZAP 提供自动扫描和一套手动测试工具集。 + +[Xenotix XSS Exploit Framework][13] 是一个先进的跨站点脚本漏洞检测和漏洞利用框架,该框架通过在浏览器引擎内执行扫描以获取真实结果。Xenotix 扫描模块使用了三个智能的模糊器,使其可以运行近 5000 种不同的 XSS 有效载荷。API 可以让安全管理员扩展和定制漏洞测试工具包。 + +[O-Saft][14](OWASP SSL 高级审查工具)是一个查看 SSL 证书详细信息和测试 SSL 连接的 SSL 审计工具。这个命令行工具可以在线或离线运行来评估 SSL ,比如密码和配置是否安全。O-Saft 提供了常见漏洞的内置检查,你可以容易地通过编写脚本来扩展这些功能。在 2015 年 5 月加入了一个简单的图形用户界面作为可选的下载项。 + +[OWTF][15](攻击性的 Web 测试框架)是一个遵循 OWASP 测试指南和 NIST 和 PTES 标准的自动化测试工具。该框架同时使用 Web 用户界面和命令行,用于探测 Web 和应用服务器的常见漏洞,如配置失当和软件未打补丁。 + +-- Matt Sarrel + +![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-beef-100614456-orig.jpg) + +### BeEF ### + +Web 浏览器已经成为用于针对客户端的攻击中最常见的载体。[BeEF][15] 浏览器漏洞利用框架项目,是一种广泛使用的用以评估 Web 浏览器安全性的渗透工具。BeEF 通过浏览器来启动客户端攻击,帮助你暴露出客户端系统的安全弱点。BeEF 建立了一个恶意网站,安全管理员用想要测试的浏览器访问该网站。然后 BeEF 发送命令来攻击 Web 浏览器并使用命令在客户端机器上植入软件。随后管理员就可以把客户端机器看作尸体般发动攻击了。 + +BeEF 自带像键盘记录,端口扫描和 Web 代理这样的常用模块,此外你可以编写你自己的模块或直接将命令发送到被控制的测试机上。BeEF 带有少量的演示网页来帮你快速入门,使得编写额外的网页和攻击模块变得非常简单,这使得你可以因地适宜的自定义你的测试。BeEF 是一个非常有价值的评估浏览器和终端安全、学习如何发起基于浏览器攻击的测试工具。可以使用它来向你的用户综合演示,那些恶意软件通常是如何感染客户端设备的。 + +-- Matt Sarrel + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-unhide-100614464-orig.jpg) + +### Unhide ### + +[Unhide][16] 是一个定位开放的 TCP/UDP 端口和隐藏在 UNIX、Linux 和 Windows 上的进程的审查工具。隐藏的端口和进程可能是由于运行 Rootkit 或 LKM(可加载的内核模块) 导致的。Rootkit 可能很难找到并移除,因为它们就是针对隐蔽性设计的,在操作系统和用户前隐藏自己。一个 Rootkit 可以使用 LKM 隐藏其进程或冒充其他进程,让它在机器上运行很长一段时间而不被发现。而 Unhide 可以使管理员们确信他们的系统是干净的。 + +Unhide 实际上是两个单独的脚本:一个用于进程,一个用于端口。该工具查询正在运行的进程、线程和开放的端口并将这些信息与系统中注册的活动比较,报告之间的差异。Unhide 和 WinUnhide 是在运行命令行产生文本输出的非常轻量级的脚本。它们不算优美,但是极为有用。Unhide 还列入了 [Rootkit Hunter][17] 项目中。 + +-- Matt Sarrel + +![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614457-orig.jpg) + +查看更多的开源软件优胜者 + +InfoWorld 网站的 2014 年最佳开源奖由下至上表扬了 100 多个开源项目。通过以下链接可以查看更多开源软件中的翘楚: + +[2015 Bossie 评选:最佳开源应用程序][18] + +[2015 Bossie 评选:最佳开源应用程序开发工具][19] + +[2015 Bossie 评选:最佳开源大数据工具][20] + +[2015 Bossie 评选:最佳开源数据中心和云计算软件][21] + +[2015 Bossie 评选:最佳开源桌面和移动端软件][22] + +[2015 Bossie 评选:最佳开源网络和安全软件][23] + +-------------------------------------------------------------------------------- + +via: http://www.infoworld.com/article/2982962/open-source-tools/bossie-awards-2015-the-best-open-source-networking-and-security-software.html + +作者:[InfoWorld staff][a] +译者:[robot527](https://github.com/robot527) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.infoworld.com/author/InfoWorld-staff/ +[1]:https://www.icinga.org/icinga/icinga-2/ +[2]:http://www.zenoss.com/ +[3]:http://www.opennms.org/ +[4]:https://itunes.apple.com/us/app/opennms-compass/id968875097?mt=8 +[5]:https://play.google.com/store/apps/details?id=com.opennms.compass&hl=en +[6]:http://blog.securityonion.net/p/securityonion.html +[7]:https://www.kali.org/ +[8]:https://community.rapid7.com/community/metasploit/blog/2015/08/12/metasploit-on-kali-linux-20 +[9]:http://www.openvas.org/ +[10]:http://www.greenbone.net/ +[11]:https://www.owasp.org/index.php/Main_Page +[12]:https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project +[13]:https://www.owasp.org/index.php/O-Saft +[14]:https://www.owasp.org/index.php/OWASP_OWTF +[15]:http://www.beefproject.com/ +[16]:http://www.unhide-forensics.info/ +[17]:http://www.rootkit.nl/projects/rootkit_hunter.html +[18]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html +[19]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html +[20]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html +[21]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html +[22]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html +[23]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html diff --git a/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md b/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md deleted file mode 100644 index a073ce5349..0000000000 --- a/translated/share/20151028 Bossie Awards 2015--The best open source networking and security software.md +++ /dev/null @@ -1,164 +0,0 @@ -Martin - -2015 Bossie 评选:最佳开源网络和安全软件 -================================================================================ -InfoWorld 在建设网络,运营网络和保障网络安全领域精选出了年度开源工具获奖者。 - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-net-sec-100614459-orig.jpg) - -### 最佳开源网络和安全软件 ### - -[BIND](https://en.wikipedia.org/wiki/BIND), [Sendmail](https://en.wikipedia.org/wiki/Sendmail), [OpenSSH](https://en.wikipedia.org/wiki/OpenSSH), [Cacti](https://en.wikipedia.org/wiki/Cactus), [Nagios](https://en.wikipedia.org/wiki/Nagios), [Snort](https://en.wikipedia.org/wiki/Snort_%28software%29) -- 这些为了网络而发明的开源软件,许多老家伙和好东西依然强劲。今年在我们这个范畴的最佳选择中,你会发现中坚支柱,新人,和新贵正在完善网络管理,安全监控,漏洞评估,[rootkit](https://en.wikipedia.org/wiki/Rootkit) 检测,以及更多。 - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-icinga-100614482-orig.jpg) - -### Icinga 2 ### - -Icinga 起先只是系统监控应用 Nagios 的一个分叉。为了给用户一个时尚的界面,对多个数据库的支持,以及一个集成众多扩展的 API,[Icinga 2][1] 被完全重写。凭借开箱即用的负载均衡、通知和配置,Icinga 2 缩短了在复杂环境下的安装时间。Icinga 2 原生支持 [Graphite](https://github.com/graphite-project/graphite-web)(系统监控应用),轻松为管理员呈现实时性能图表。但是 Icinga 今年很火是因为它发布了一个支持可拖放可定制 dashboard 和一些流式监控工具的前端图形界面系统 Icinga Web 2。 - -管理员可以查看,过滤,并把问题按优先顺序排好,同时保持跟踪已经进行的动作。一个新的矩阵视图使管理员能够在一个页面上查看主机和服务。您可以查看一个特定时间段的事件或筛选了的事件来了解哪些需要立即关注。Icinga Web 2 能够拥有一个全新界面和更为强劲的性能,然而传统版 Icinga 和 Web 版 Icinga 的所有常用命令仍然可用。这意味着学习新版工具不耗费额外的时间。 - --- Fahmida Rashid - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-zenoss-100614465-orig.jpg) - -### Zenoss Core ### - -另一个强大的开源软件,[Zenoss Core][2] 为网络管理员提供了一个完整的,一站式解决方案来跟踪和管理所有的应用程序、服务器、存储,网络组件、虚拟化工具、以及企业基础架构的其他元素。管理员可以确保硬件的运行效率并利用模块化设计的插件来扩展 ZenPacks 的功能。 - -Zenoss Core 5,在今年二月发布,作为已经很强大的工具,并进一步改进以增强用户界面和扩展 dashboard。基于 Web 的控制台和 dashboard 已经是高度可定制的和动态调整的,现在新版本可让管理员混搭多个组件图表到一个图表。可把它作为一种更好的根源分析和因果分析的工具。 - -Portlets 为网络映射、设备问题、守护进程、产品状态、监视列表和事件视图等等提供深入的分析。而且新的 HTML5 图表可以从工具导出。Zenoss 的控制中心支持带外管理并且可监控所有 Zenoss 组件。Zenoss Core 拥有在线备份和恢复、快照和回滚和多主机部署的新工具。更重要的是,凭借对 Docker 的全面支持,部署起来更快了。 - --- Fahmida Rashid - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opennms-100614461-orig.jpg) - -### OpenNMS ### - -一个非常灵活的网络管理解决方案,[OpenNMS][3] 可以处理任何网络管理任务,无论是设备管理,应用性能监控,库存控制,或事件管理。凭借对 IPv6 的支持,强大的警报系统,和记录用户脚本来测试 Web 应用程序的能力,OpenNMS 拥有网络管理员和测试人员需要的一切。OpenNMS 现在变得像一款移动 dashboard,堪称 OpenNMS 指南针,可让网络专家随时,甚至当他们外出时都可以监视他们的网络。 - -该应用程序的 IOS 版本,可从 [iTunes App Store][4] 上获取,显示故障、节点和告警。下一个版本将提供更多的事件细节、资源图表、以及关于 IP 和 SNMP 接口的信息。安卓版可从 [Google Play][5] 上获取,可在仪表板上显示网络可用性,故障和告警,以及确认、提升或清除告警的能力。移动客户端与 OpenNMS Horizon 1.12 或更高版本以及 OpenNMS Meridian 2015.1.0 或更高版本兼容。 - --- Fahmida Rashid - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-onion-100614460-orig.jpg) - -### Security Onion ### - -如同一个洋葱,网络安全监控是由许多层组成。没有单一的工具会使你洞察在你公司网络中的每次攻击,或者显示每一次侦查或文本会话给你。[Security Onion][6] 打包了许多经过验证的工具成为一个便于使用的 Ubuntu 发行版,这会让你看到谁留在你的网络里,并帮助你隔离坏家伙。 - -无论你是采取主动式的网络安全监测还是追查可能的攻击,Security Onion 都可以帮助你。由传感器、服务器和显示层组成,Onion 结合了基于网络和基于主机的入侵检测,全面的网络数据包捕获,并提供了所有的各种日志进行检查和分析。 - -众星云集的的网络安全工具链,包括用于网络抓包的 [Netsniff-NG](http://www.netsniff-ng.org/)、基于规则的网络入侵检测系统 Snort 和 [Suricata](https://en.wikipedia.org/wiki/Suricata_%28software%29),基于分析的网络监控系统 Bro,基于主机的入侵检测系统 OSSEC 和用于显示、分析和日志管理的 Sguil、Squert、Snorby 和 ELSA (企业日志搜索和归档)。它是一个经过精挑细选的工具集,全被打包进一个向导驱动式的安装程序并有完整的文档支持,可以帮助你尽可能快地进行监控。 - --- Victor R. Garza - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-kali-100614458-orig.jpg) - -Kali Linux - -[Kali Linux][7] 背后的团队修改了今年流行的安全 Linux 发行版,使其更快,更全能。Kali 采用全新 4.0 版的内核 ,改进了对硬件和无线驱动程序的支持,以及一个更流畅的界面。最流行的工具都可从屏幕的侧边栏上轻松访问。最大的改变?Kali Linux 现在是一个滚动发行版,具有连续的软件更新。Kali 的核心系统是基于 Debian Jessie 发行版,而且该团队会不断地从 Debian 测试版 pull 程序包,同时持续在上面添加新的 Kali 风格的特性。 - -该发行版仍然配备满了渗透测试,漏洞分析,安全审查,网络应用分析,无线网络评估,逆向工程,和漏洞利用工具。现在该发行版具有新版本检测系统,当有个别工具可更新时系统会自动通知用户。该发行版还具有一系列设备的 ARM 映像,包括树莓派、[Chromebook](https://en.wikipedia.org/wiki/Chromebook) 和 [Odroid](https://en.wikipedia.org/wiki/ODROID),也可更新在 Android 设备上运行的 [NetHunter](https://www.kali.org/kali-linux-nethunter/) 渗透测试平台。还有其他的变化:Metasploit 的社区版/专业版不再包括在内,因为 Kali 2.0 还没有 [Rapid7 的官方支持][8]。 - --- Fahmida Rashid - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-openvas-100614462-orig.jpg) - -### OpenVAS ### - -[OpenVAS][9],开源漏洞评估系统,是一种整合多种服务和工具来提供漏洞扫描和漏洞管理的软件框架。该扫描器与每周一次的网络漏洞测试数据配合,或者您可以使用商业数据。该软件框架包括一个命令行界面(所以它可以用脚本运行)和一个带 SSL 安全机制的基于 [Greenbone 安全助手][10] 的浏览器界面。OpenVAS 提供了用于附加功能的各种插件。扫描可以预定运行或按需运行。 - -可通过单一的主控来控制多个 OpenVAS 的安装,使得它成为一个可扩展的企业漏洞评估工具。该项目与兼容这样的标准:扫描结果和配置存储在 SQL 数据库中,在那里他们可以容易地被外部报告工具访问。客户端工具通过基于 XML 的无状态 OpenVAS 管理协议访问 OpenVAS 管理器,所以安全管理员可以扩展该框架的功能。该软件能以包或源代码的方式安装在 Windows 或 Linux 上运行,或者作为一个虚拟设备被下载。 - --- Matt Sarrel - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-owasp-100614463-orig.jpg) - -### OWASP ### - -[OWASP][11],开放的 Web 应用安全项目,是专注于提高软件安全性的全球协会的非营利组织。社区性组织提供测试工具、文档、培训和几乎任何你可以想象的评估软件安全和开发安全软件相关的最佳实践。有几个 OWASP 项目已成为很多安全从业者的工具箱中有价值的组件: - -[ZAP][12],ZED 攻击代理项目,是一个在 Web 应用程序中寻找漏洞的渗透测试工具。ZAP 的设计目标之一是使之易于使用,以便于开发人员和非安全专家的测试人员可以受益于使用它。ZAP 提供了自动扫描器和一套手动测试工具。 - -[Xenotix XSS Exploit Framework][13] 是一款运行浏览器引擎内的扫描来获得实际结果的先进的跨站脚本漏洞检测和漏洞利用框架。Xenotix 扫描器模块采用三个智能的 fuzzer,它可以运行近 5000 个不同的XSS有效载荷。一个 API 可以让安全管理员扩展和定制开发工具包。 - -[O-Saft][14],OWASP SSL 高级审查工具,一个查看 SSL 证书详细信息和测试 SSL 连接的 SSL 审计工具。这个命令行工具可以在线或离线运行来评估 SSL 安全性,比如密码和配置。O-Saft 提供了常见漏洞的内置检查,你可以容易地通过编写脚本来扩展这些功能。在 2015 年 5 月加入了一个简单的图形用户界面作为可选的下载项。 - -[OWTF][15],攻击性的 Web 测试框架,一个遵循 OWASP 测试指南和 NIST 和 PTES 标准的自动化测试工具。该框架使用一个 Web 用户界面和一个命令行,它探测 Web 和应用服务器常见漏洞,如配置不当和未打补丁的软件。 - --- Matt Sarrel - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-beef-100614456-orig.jpg) - -### BeEF ### - -Web 浏览器已经成为用于针对客户端的攻击中最常见的载体。[BeEF][15] 浏览器漏洞利用框架项目,是一种广泛使用的用以评估 Web 浏览器安全性的渗透工具。BeEF 帮助你揭露客户端系统的安全弱点,通过启动浏览器来进行客户端攻击。BeEF 建立了一个恶意网站,安全管理员用想要测试的浏览器访问该网站。然后 BeEF 发送命令来攻击 Web 浏览器并使用命令在客户端机器上植入软件。如果他们是僵尸机 ,管理员可以对客户端机器发动攻击。 - -BeEF 自带像键盘记录器,一个端口扫描器,和 Web 代理这样的常用模块,此外你可以编写你自己的模块或直接将命令发送到僵尸测试机。BeEF 带有少量的演示网页来帮你快速入门使得编写额外的网页和攻击模块很简单,因此你可以自定义测试你的环境。BeEF 是一个评估浏览器和终端安全、学习如何发起基于浏览器的攻击的宝贵的测试工具。可使用它来展示恶意软件通常如何感染客户端设备的演示给你的用户。 - --- Matt Sarrel - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-unhide-100614464-orig.jpg) - -### Unhide ### - -[Unhide][16] 是一个定位开放的 TCP/UDP 端口和隐藏在 UNIX、Linux 和 Windows 上的进程的审查工具。隐藏的端口和进程可以是 rootkit 或 LKM(可加载的内核模块)activity 的结果。rootkit 可能很难找到并移除,因为它们被设计成隐蔽的,对操作系统和用户隐藏自己。一个 rootkit 可以使用内核模块隐藏其进程或冒充其他进程,让它在机器上运行很长一段时间而不被发现。Unhide 可以保证管理员需要的干净系统。 - -Unhide 实际上是两个单独的脚本:一个用于进程,一个用于端口。该工具查询正在运行的进程、线程和开放的端口并将这些信息与系统中注册的活动比较,报告之间的差异。Unhide 和 WinUnhide 是在运行命令行产生文本输出的非常轻量级的脚本。它们不算优美,但是极为有用。Unhide 还列入了 [Rootkit Hunter][17] 项目中。 - --- Matt Sarrel - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614457-orig.jpg) - -查看更多的开源软件优胜者 - -InfoWorld 网站的 2014 年最佳开源奖从堆栈底部到顶部庆祝了 100 多个开源项目。以下链接指向更多开源软件优胜者: - -[2015 Bossie 评选:最佳开源应用程序][18] - -[2015 Bossie 评选:最佳开源应用程序开发工具][19] - -[2015 Bossie 评选:最佳开源大数据工具][20] - -[2015 Bossie 评选:最佳开源数据中心和云计算软件][21] - -[2015 Bossie 评选:最佳开源桌面和移动端软件][22] - -[2015 Bossie 评选:最佳开源网络和安全软件][23] - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2982962/open-source-tools/bossie-awards-2015-the-best-open-source-networking-and-security-software.html - -作者:[InfoWorld staff][a] -译者:[robot527](https://github.com/robot527) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/InfoWorld-staff/ -[1]:https://www.icinga.org/icinga/icinga-2/ -[2]:http://www.zenoss.com/ -[3]:http://www.opennms.org/ -[4]:https://itunes.apple.com/us/app/opennms-compass/id968875097?mt=8 -[5]:https://play.google.com/store/apps/details?id=com.opennms.compass&hl=en -[6]:http://blog.securityonion.net/p/securityonion.html -[7]:https://www.kali.org/ -[8]:https://community.rapid7.com/community/metasploit/blog/2015/08/12/metasploit-on-kali-linux-20 -[9]:http://www.openvas.org/ -[10]:http://www.greenbone.net/ -[11]:https://www.owasp.org/index.php/Main_Page -[12]:https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project -[13]:https://www.owasp.org/index.php/O-Saft -[14]:https://www.owasp.org/index.php/OWASP_OWTF -[15]:http://www.beefproject.com/ -[16]:http://www.unhide-forensics.info/ -[17]:http://www.rootkit.nl/projects/rootkit_hunter.html -[18]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html -[19]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html -[20]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html -[21]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html -[22]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html -[23]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html From ff3a7953ec02d5d3626fc060797ee43d6fd8e96a Mon Sep 17 00:00:00 2001 From: runningwater Date: Wed, 9 Mar 2016 00:47:10 +0800 Subject: [PATCH 247/582] =?UTF-8?q?=E6=9A=82=E5=AD=98=E4=B8=80=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160225 The Tao of project management.md | 121 ++++++++---------- 1 file changed, 54 insertions(+), 67 deletions(-) diff --git a/sources/tech/20160225 The Tao of project management.md b/sources/tech/20160225 The Tao of project management.md index a8de86ae0b..5cea94472d 100644 --- a/sources/tech/20160225 The Tao of project management.md +++ b/sources/tech/20160225 The Tao of project management.md @@ -1,119 +1,105 @@ -(翻译中 by runningwater) -The Tao of project management +项目管理之道 ================================= ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BUSINESS_orgchart1.png?itok=DGsp6jB5) -The [Tao Te Ching][1], [believed to have been written][2] by the sage [Lao Tzu][3] in the 6th century BCE, is among the most widely translated texts in existence. It has inspired everything from [religions][4] to [funny movies about dating][5], and authors have used it as a metaphor to explain all kinds of things (even [programming][6]). +[道德经][1],[据确认][2]为公元前六世纪的圣人[老子][3]所编写,是现存被翻译的语言版本最多的经文。从[宗教][4]到[关于约会的有趣电影][5]等一切的一切,它都影响至深,作者们借用它来隐喻,以解释各种各样的事情(甚至是[编程][6])。 -This text is what immediately comes to my mind when thinking about project management in open organizations. +当考虑开放性组织的项目管理时上面这段文字会立马浮现在我脑海。 -That might sound strange. But to understand where I'm coming from, you should start by reading *The Open Organization: Igniting Passion and Performance*, Red Hat president and CEO Jim Whitehurst's manifesto on corporate culture and the new leadership paradigm. In this book, Jim (with a little help from other Red Hatters) explains the difference between conventional organizations (a "top-down" approach, with decisions coming down from central command to employees motivated by promotion and pay) and open organizations (a bottom-up approach, with leaders focused on inspiring purpose and passion so employees are empowered to be and do their best). +这听起来会很奇怪。要理解我为什么会有这种想法,应该是从读了*《开放性组织:点燃激情提升执行力》*这书开始的,它是红帽公司总裁、CEO Jim Whitehurst 所著作的关于企业文化和新领导榜样的宣言。在这本书里,Jim(给予其它红帽子人的一点帮助而) 解释了传统组织机构(“自上而下”的方式,做决定的是高层,命令下达到员工,而员工是通过薪酬和晋升来激励的)和开放组织机构(自下而上,领导专注于激励和鼓励,员工被充分授权使其发挥主观能动性而做得最好)的差异。 -This concept—that employees in open organizations are motivated by passion, purpose, and engagement—plays directly into where I think project managers should focus. +在开放性组织中的员工意味有激情、有目的性和有参与感,这些我认为是项目管理者应该关注的。 -And to explain, I'll return to the *Tao Te Ching*. +要解释这一切,让我们回到*道德经*上来。 -### Don't let your job title define you +### 不要让工作职衔框住自身 ->The tao that can be told ->is not the eternal Tao ->The name that can be named ->is not the eternal Name. +>道,可道, +>非常道; +>名,可名, +>非常名。 ->The unnameable is the eternally real. ->Naming is the origin ->of all particular things. +>无,名天地之始; +>有,名万物之母。 [[1]][7] -What exactly is project management? And what does a project manager do? +项目管理到底是什么?做为一个项目管理者应该做些什么呢? -As you might expect, part of being a project manager is managing projects: gathering requirements, managing stakeholder communication, setting priority, scheduling tasks, helping the team resolve blockers. Many institutions can teach you how to manage projects very well, and these are good skills to have. +如您所想,项目管理者的一部分工作就是管理项目:收集需求、项目相关人员的沟通、设置项目优先级、安排任务、帮助团队解决困扰。许多教育培训机构都可以教授如何做好项目管理,这些技能值得去学习。 -However, literally managing projects is only part of what project managers in open organizations do. These organizations require something more: Courage. If you're good at managing projects (or if you're good at any job, really), then you can start to feel safe in your routine. That's when you know you need to find the courage to take a risk. +然而,在开放性组织中,字面上的项目管理技能仅仅只是项目管理者需要做到一小部分,这些组织需要更多的:勇气。如果您擅长于管理项目(或者是真的擅长于任何工作),那么您就进入了舒适区。这时候就是需要鼓起勇气开始尝试冒险之时。 -Do you have the courage to step outside of your comfort zone? The courage to ask important people challenging questions that might raise eyebrows, but that might also uncover a better way forward? The courage to identify the next thing that needs to be done—then the courage to go and do it? The courage to call out communication gaps and take initiative to fix them? The courage to try things? The courage to fail? +您有勇气跨出舒适区吗?向权威人士提出提出挑战性问题,可能会引发对方的不快,也可能会发现一个好的方法,您有勇气这样做吗?有确定需要做的下一件事,然后真正去完成它的勇气吗?有主动去解决因为沟通空白而留下的问题的勇气吗?有去尝试各种事情的勇气吗?有失败的勇气吗? -The opening passage of the Tao Te Ching (which I cited above) suggests that words, labels, and names are limiting. That includes job titles. In open organizations, project managers don't just perform the rote tasks required to manage projects. They help teams accomplish the organization's mission, however defined. +道德经的开篇(上面引用的)就表明词语、标签、名字这些是有限制的,也包括工作职衔。在开放性组织中,项目经理不仅仅是执行管理项目所需的机械任务,而且要帮助团队完成组织的使命,尽管只是定义。 -### Connect the right people +### 结交正确的人 ->We join spokes together in a wheel, ->but it is the center hole ->that makes the wagon move. +>三十辐共一毂, +>当其无, +>有车之用。 [[11]][8] -One of the most difficult lessons I had to learn as I transitioned into project management was that not having all the answers was perfectly acceptable, even expected. That was new for me. I like having all the answers. But as a project manager, my role is more about connecting people—so the ones who do have the answers can collaborate efficiently. +当我开始学习要过渡到项目管理时,遇到最困难的一课就是并不是所有解决方案都是可接受的,甚至有的连预期都达不到。那对我来说是全新的,我喜欢所有的解决方案。但作为项目管理者,我的角色更多的是与人沟通--因此与那些有解决方案的人合作更有效率。 -This does not mean dodging responsibility or ownership. This means being comfortable saying, "I don't know, but I will find out for you," and closing that loop as quickly as possible. +这决不是逃避责任和不负责的意思。这意味着可以很舒适的说,“我不知道,但我会给您找出答案”,然后就可迅速的关闭此循环。 -Picture a wagon wheel. Without the stability and direction provided by the center hole, the spokes would fall and the wheel collapse in on itself. Project managers in an open organization can help a team maintain forward momentum by bringing the right people together and cultivating the right discussions. +想像马车的车轮。无中心孔的稳定性和方向,辐条车轮会自行崩溃。在一个开放性的组织中,项目管理者可以帮助一个团队,把正确的人凝聚在一起,主持积极讨论,以保持团队一直前进。 -### Trust your team +### 信任您的团队 ->When the Master governs, the people ->are hardly aware that he exists. ->Next best is a leader who is loved. ->Next, one who is feared. ->The worst is one who is despised. +>太上, 不知有之; +>其次,亲而誉之; +>其次,畏之; +>其次,侮之。 > ->If you don't trust the people, ->you make them untrustworthy. +>信不足焉,有不信焉。 > ->The Master doesn't talk, he acts. ->When his work is done, ->the people say, "Amazing: ->we did it, all by ourselves!" +>悠兮,其贵言。功成事遂,百姓皆谓“我自然”。 [[17]][9] -[Rebecca Fernandez][10] once told me that what differentiates leaders in open organizations is not the trust people have in them, but the trust they have in other people. +[Rebecca Fernandez][10]曾经告诉我开放性组织的领导与其它最大的不同点,不是取得别人的信任,而是信任别人。 -Open organizations do a great job hiring smart people who are passionate about what their companies are doing. In order for them to do their best work, we have to give them what they need and then get out of their way. +开放性组织会雇佣那些非常聪明的,且对公司正在做的事情充满激情的人来做工作。为了能使他们能更好的工作,我们会提供其所需,并尊重他们的工作方式。 -Here, I think the above passage from the Tao Te Ching speaks for itself. +至于原因,我认为从道德经中摘出的上面一段就说的很清楚。 -### Be effortless +### 顺其自然 ->The Master does nothing ->yet he leaves nothing undone. ->The ordinary man is always doing things, ->yet many more are left to be done. +>上德无为而无以为;下德为之而有以为。 [[38]][11] -Do you know the type of person who is always extremely busy? The one who seems frazzled and stressed with too many things to do? +你认识总是忙忙碌碌的这种类型的人吗?认识因为有太多事情要做而看起来疲倦和压抑的人吗? -Don't be that person. +不要成为那样的人。 -I know that's easier said than done. The thing that most helps me keep from being that person is remembering that we are all extremely busy. I don't have a single co-worker who is bored. +我知道说比做容易。要远离那种人最有帮助的事就是请记住大家都很忙。我没有那样讨厌的同事。 -But someone needs to be the calm in the middle of the storm. Someone needs to be the person who reassures the team that everything is going to be okay, that we'll find a way to get things done within the parameters dictated by reality and the number of business hours in a day (because that's the truth, and we have to). +但需要有人在狂风暴雨中保持镇定;需要这样的人,能根据实际和一天工作时间的数量找到平衡参数的方式来做工作,并安慰团队让一切都好(因为这是我们正在做的事实)。 -Be that person. +要成为那样的人。 -What this passage of the Tao Te Ching says to me is that the person who's always talking about what she or he is doing has no time to actually do those things. If you can make your job seem effortless to those around you, then you're doing your job right. +道德经所说的,在我理解来就是总是夸夸其谈的人其实并没有干实事。如里您能把工作做的得心应手的话,那就说明您的工作做对了。 -### Be a culture coach +### 作为一个文化传教士 ->When a superior man hears of the Tao, ->he immediately begins to embody it. ->When an average man hears of the Tao, ->he half believes it, half doubts it. ->When a foolish man hears of the Tao, ->he laughs out loud. ->If he didn't laugh, ->it wouldn't be the Tao. +>上士闻道,勤而行之; +>中士闻道,若存若亡; +>下士闻道,大笑之。 +>不笑不足以为道。 [[41]][12] -Last fall, I enrolled an MBA business ethics class with a bunch of federal employees. When I started describing my company's culture, values, and ethics framework, I got the direct impression that both my classmates and my professor thought I was a naive young lady with [a lot of lovely daydreams][13] about how companies should run. They told me things couldn't possibly be as they seemed. They said I should investigate further. +去年秋天,我跟着一群联邦雇员注册了一个工商管理硕士课程。当我开始介绍我公司的文化、价值和伦理框架以及公司如何运行时,我的同学和教授都认为我就像一个天真可爱的小姑娘在做着[许多甜美的白日梦][13],这就是我得到的直接印象。他们告诉我事情并不是如此的。他们告诉我应该进一步考察。 -So I did. +所有我照做了。 -And here's what I found: Things are exactly as they seem. +到现在我发现:正是如此。 -In open organizations, culture matters. Maintaining that culture as an organization grows makes it possible to wake up and look forward to going to work in the morning. I (and other members of open organizations) don't want to "work to live," as my classmates described it. I need to feel a passion and purpose, to understand how the work I do on a daily basis directly contributes to something I believe in. +开放性组织的企业文化。应该跟随着企业的成长而时时维护那些文化,以使它随时精神焕发,充满斗志。我(和其它开源组织的成员)并不想过如我同学所描述的“为生活而工作”。我需要有激情和有目的性;我需要明白自己的日常工作如何对那些有价值的东西服务。 -As a project manager, you might think that your job has nothing to do with cultivating your company's culture on your team. However, it's your job to embody it. +作为一个项目管理者,虽然你的工作与培养你的团队的文化无关,但是工作本身就是文化。 ### Kaizen @@ -168,6 +154,7 @@ via: https://opensource.com/open-organization/16/2/tao-project-management [6]: http://www.mit.edu/~xela/tao.html [7]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#1 [8]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#11 +[9]:http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#17 [10]: https://opensource.com/users/rebecca [11]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#38 [12]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#41 From 8235a9fd5731180e2ae8ba80bc5281d0cea99c26 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 9 Mar 2016 10:51:43 +0800 Subject: [PATCH 248/582] PUB:20151204 Review EXT4 vs. Btrfs vs. XFS @ictlyh --- .../20151204 Review EXT4 vs. Btrfs vs. XFS.md | 65 +++++++++++++++++++ .../20151204 Review EXT4 vs. Btrfs vs. XFS.md | 65 ------------------- 2 files changed, 65 insertions(+), 65 deletions(-) create mode 100644 published/20151204 Review EXT4 vs. Btrfs vs. XFS.md delete mode 100644 translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md diff --git a/published/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/published/20151204 Review EXT4 vs. Btrfs vs. XFS.md new file mode 100644 index 0000000000..aebbc485b1 --- /dev/null +++ b/published/20151204 Review EXT4 vs. Btrfs vs. XFS.md @@ -0,0 +1,65 @@ +如何选择文件系统:EXT4、Btrfs 和 XFS +================================================================================ +![](http://1969324071.rsc.cdn77.org/wp-content/uploads/2015/09/1385698302_funny_linux_wallpapers.jpg) + +老实说,人们最不曾思考的问题之一是他们的个人电脑中使用了什么文件系统。Windows 和 Mac OS X 用户更没有理由去考虑,因为对于他们的操作系统,只有一种选择,那就是 NTFS 和 HFS+。相反,对于 Linux 系统而言,有很多种文件系统可以选择,现在默认的是广泛采用的 ext4。然而,现在也有改用一种称为 btrfs 文件系统的趋势。那是什么使得 btrfs 更优秀,其它的文件系统又是什么,什么时候我们又能看到 Linux 发行版作出改变呢? + +首先让我们对文件系统以及它们真正干什么有个总体的认识,然后我们再对一些有名的文件系统做详细的比较。 + +### 文件系统是干什么的? ### + +如果你不清楚文件系统是干什么的,一句话总结起来也非常简单。文件系统主要用于控制所有程序在不使用数据时如何存储数据、如何访问数据以及有什么其它信息(元数据)和数据本身相关,等等。听起来要编程实现并不是轻而易举的事情,实际上也确实如此。文件系统一直在改进,包括了更多的功能、更高效地完成它需要做的事情。总而言之,它是所有计算机的基本需求、但并不像听起来那么简单。 + +### 为什么要分区? ### + +由于每个操作系统都能创建或者删除分区,很多人对分区都有模糊的认识。Linux 操作系统即便使用标准安装过程,在同一块磁盘上仍使用多个分区,这看起来很奇怪,因此需要一些解释。拥有不同分区的一个主要目的就是为了在灾难发生时能获得更好的数据安全性。 + +通过将硬盘划分为分区,数据会被分隔以及重组。当事故发生的时候,只有存储在被损坏分区上的数据会被破坏,很大可能上其它分区的数据能得以保留。这个原因可以追溯到 Linux 操作系统还没有日志文件系统、任何电力故障都有可能导致灾难发生的时候。 + +使用分区也考虑到了安全和健壮性原因,因此操作系统部分损坏并不意味着整个计算机就有风险或者会受到破坏。这也是当前采用分区的一个最重要因素。举个例子,用户创建了一些会填满磁盘的脚本、程序或者 web 应用,如果该磁盘只有一个大的分区,如果磁盘满了那么整个系统就不能工作。如果用户把数据保存在不同的分区,那么就只有那个分区会受到影响,而系统分区或者其它数据分区仍能正常运行。 + +记住,拥有一个日志文件系统只能在掉电或者和存储设备意外断开连接时提供数据安全性,并不能在文件系统出现坏块或者发生逻辑错误时保护数据。对于这种情况,用户可以采用廉价磁盘冗余阵列(RAID:Redundant Array of Inexpensive Disks)的方案。 + +### 为什么要切换文件系统? ### + +ext4 文件系统由 ext3 文件系统改进而来,而后者又是从 ext2 文件系统改进而来。虽然 ext4 文件系统已经非常稳定,是过去几年中绝大部分发行版的默认选择,但它是基于陈旧的代码开发而来。另外, Linux 操作系统用户也需要很多 ext4 文件系统本身不提供的新功能。虽然通过某些软件能满足这种需求,但性能会受到影响,在文件系统层次做到这些能获得更好的性能。 + +### Ext4 文件系统 ### + +ext4 还有一些明显的限制。最大文件大小是 16 tebibytes(大概是 17.6 terabytes),这比普通用户当前能买到的硬盘还要大的多。使用 ext4 能创建的最大卷/分区是 1 exbibyte(大概是 1,152,921.5 terabytes)。通过使用多种技巧, ext4 比 ext3 有很大的速度提升。类似一些最先进的文件系统,它是一个日志文件系统,意味着它会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录。纵观它的所有功能,它还不支持透明压缩、重复数据删除或者透明加密。技术上支持了快照,但该功能还处于实验性阶段。 + +### Btrfs 文件系统 ### + +btrfs 有很多不同的叫法,例如 Better FS、Butter FS 或者 B-Tree FS。它是一个几乎完全从头开发的文件系统。btrfs 出现的原因是它的开发者起初希望扩展文件系统的功能使得它包括快照、池化(pooling)、校验以及其它一些功能。虽然和 ext4 无关,它也希望能保留 ext4 中能使消费者和企业受益的功能,并整合额外的能使每个人,尤其是企业受益的功能。对于使用大型软件以及大规模数据库的企业,让多种不同的硬盘看起来一致的文件系统能使他们受益并且使数据整合变得更加简单。删除重复数据能降低数据实际使用的空间,当需要镜像一个单一而巨大的文件系统时使用 btrfs 也能使数据镜像变得简单。 + +用户当然可以继续选择创建多个分区从而无需镜像任何东西。考虑到这种情况,btrfs 能横跨多种硬盘,和 ext4 相比,它能支持 16 倍以上的磁盘空间。btrfs 文件系统一个分区最大是 16 exbibytes,最大的文件大小也是 16 exbibytes。 + +### XFS 文件系统 ### + +XFS 文件系统是扩展文件系统(extent file system)的一个扩展。XFS 是 64 位高性能日志文件系统。对 XFS 的支持大概在 2002 年合并到了 Linux 内核,到了 2009 年,红帽企业版 Linux 5.4 也支持了 XFS 文件系统。对于 64 位文件系统,XFS 支持最大文件系统大小为 8 exbibytes。XFS 文件系统有一些缺陷,例如它不能压缩,删除大量文件时性能低下。目前RHEL 7.0 文件系统默认使用 XFS。 + +### 总结 ### + +不幸的是,还不知道 btrfs 什么时候能到来。官方说,其下一代文件系统仍然被归类为“不稳定”,但是如果用户下载最新版本的 Ubuntu,就可以选择安装到 btrfs 分区上。什么时候 btrfs 会被归类到 “稳定” 仍然是个谜, 直到真的认为它“稳定”之前,用户也不应该期望 Ubuntu 会默认采用 btrfs。有报道说 Fedora 18 会用 btrfs 作为它的默认文件系统,因为到了发布它的时候,应该有了 btrfs 文件系统校验器。由于还没有实现所有的功能,另外和 ext4 相比性能上也比较缓慢,btrfs 还有很多的工作要做。 + +那么,究竟使用哪个更好呢?尽管性能几乎相同,但 ext4 还是赢家。为什么呢?答案在于易用性以及广泛性。对于桌面或者工作站, ext4 仍然是一个很好的文件系统。由于它是默认提供的文件系统,用户可以在上面安装操作系统。同时, ext4 支持最大 1 exabytes 的卷和 16 terabytes 的文件,因此考虑到大小,它也还有很大的进步空间。 + +btrfs 能提供更大的高达 16 exabytes 的卷以及更好的容错,但是,到现在为止,它感觉更像是一个附加的文件系统,而部署一个集成到 Linux 操作系统的文件系统。比如,尽管 btrfs 支持不同的发行版,使用 btrfs 格式化硬盘之前先要有 btrfs-tools 工具,这意味着安装 Linux 操作系统的时候它并不是一个可选项,即便不同发行版之间会有所不同。 + +尽管传输速率非常重要,评价一个文件系统除了文件传输速度之外还有很多因素。btrfs 有很多好用的功能,例如写复制(Copy-on-Write)、扩展校验、快照、清洗、自修复数据、冗余删除以及其它保证数据完整性的功能。和 ZFS 相比 btrfs 缺少 RAID-Z 功能,因此对于 btrfs, RAID 还处于实验性阶段。对于单纯的数据存储,和 ext4 相比 btrfs 似乎更加优秀,但时间会验证一切。 + +迄今为止,对于桌面系统而言,ext4 似乎是一个更好的选择,因为它是默认的文件系统,传输文件时也比 btrfs 更快。btrfs 当然值得尝试、但要在桌面 Linux 上完全取代 ext4 可能还需要一些时间。数据场和大存储池会揭示关于 ext4、XCF 以及 btrfs 不同的场景和差异。 + +如果你有不同或者其它的观点,在下面的评论框中告诉我们吧。 + +-------------------------------------------------------------------------------- + +via: http://www.unixmen.com/review-ext4-vs-btrfs-vs-xfs/ + +作者:[M.el Khamlichi][a] +译者:[ictlyh](http://mutouxiaogui.cn/blog/) +校对:[Caroline](https://github.com/carolinewuyan) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.unixmen.com/author/pirat9/ diff --git a/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md deleted file mode 100644 index 7f93b149ba..0000000000 --- a/translated/share/20151204 Review EXT4 vs. Btrfs vs. XFS.md +++ /dev/null @@ -1,65 +0,0 @@ -EXT4,Btrfs和XFS 文件系统之点评 -================================================================================ -![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2015/09/1385698302_funny_linux_wallpapers-593x445.jpg) - -老实说,人们最不曾考虑的问题之一是他们的个人电脑中使用了什么文件系统。Windows 和 Mac OS X 用户更没有理由去考虑,因为对于他们的操作系统,只有一种选择,那就是 NTFS 和 HFS+。相反,对于 Linux 系统而言,有很多种文件系统可以选择,现在默认的是广泛采用的 ext4。然而,现在也有改用一种称为 btrfs 文件系统的趋势。那是什么使得 btrfs更优秀,其它的文件系统又是什么,什么时候我们又能看到 Linux 发行版作出改变呢? - -首先让我们对文件系统以及它们真正干什么有个总体的认识,然后我们再对一些有名的文件系统做详细的比较。 - -### 文件系统是干什么的? ### - -如果你不清楚文件系统是干什么的,一句话总结起来也非常简单。文件系统主要用于控制所有程序不再使用数据时如何存储数据、如何访问数据以及有什么其它信息(元数据)和数据本身相关,等等。听起来要编程实现并不是轻而易举的事情,实际上也确实如此。文件系统一直在改进,包括更多的功能、更高效地完成它需要做的事情。总而言之,它是所有计算机的基本需求、但并不像听起来那么简单。 - -### 为什么要分区? ### - -由于每个操作系统都能创建或者删除分区,很多人对分区都有模糊的认识。Linux 操作系统在同一块磁盘上即便使用标准安装过程,仍可以使用多个分区,这看起来很奇怪,因此需要一些解释。拥有不同分区的一个主要目的就是为了在灾难发生时能获得更好的数据安全性。 - -通过将硬盘划分为分区,数据会被分隔以及重组。当事故发生的时候,只有存储在被损坏分区的数据会被破坏,很大可能上其它分区的数据能得以保留。这个原因可以追溯到 Linux 操作系统还没有日志文件系统,任何电力故障都有可能导致灾难发生的时候。 - -使用分区也考虑到了安全和健壮性原因,因此操作系统部分损坏并不意味着整个计算机就有风险或者会受到破坏。这也是当前采用分区的一个最重要因素。举个例子,用户创建了一些会填满磁盘的脚本、程序或者 web 应用,如果该磁盘只有一个大的分区,如果磁盘满了那么整个系统就不能工作。如果用户把数据保存在不同的分区,那么就只有那个分区会受到影响,而系统分区或者其它数据分区仍能正常运行。 - -记住,拥有一个日志文件系统只能在掉电或者和存储设备意外断开连接时提供数据安全性,并不能在文件系统出现坏块或者发生逻辑错误时保护数据。对于这种情况,用户可以采用廉价磁盘冗余阵列(RAID:Redundant Array of Inexpensive Disks)的方案。 - -### 为什么要改变文件系统? ### - -ext4 文件系统由 ext3 文件系统改进而来,而后者又是从 ext2 文件系统改进而来。虽然 ext4 文件系统已经非常稳定,是过去几年中绝大部分发行版的默认选择,但它是基于陈旧的代码开发而来。另外, Linux 操作系统用户也需要很多 ext4 文件系统本身不提供的新功能。虽然通过某些软件能满足这种需求,但性能会受到影响,在文件系统层次做到这些能获得更好的性能。 - -### Ext4 文件系统 ### - -ext4 还有一些明显的限值。最大文件大小是 16tebibytes(大概是 17.6 terabytes),这比普通用户当前能买到的硬盘还要大的多。使用 ext4 能创建的最大卷/分区是 1 exbibyte(大概是 1,152,921.5 terabytes)。通过使用多种技巧, ext4 比 ext3 有很大的速度提升。类似一些最先进的文件系统,它是一个日志文件系统,意味着它会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录。纵观它的所有功能,它还不支持透明压缩、重复数据删除或者透明加密。技术上支持了快照,但该功能还处于实验性阶段。 - -### Btrfs 文件系统 ### - -btrfs 有很多不同的发音,例如 Better FS、Butter FS 或者 B-Tree FS。它是一个几乎完全从头开发的文件系统。btrfs 存在的原因是它的开发者期初希望扩展文件系统的功能使得它包括快照、池化、校验以及其它一些功能。虽然和 ext4 无关,它也希望能保留 ext4 中能使消费者和商家受益的功能,并整合额外的能使每个人,尤其是企业受益的功能。对于使用大型软件以及大规模数据库的企业,对于多种不同的硬盘看起来一致的文件系统能使他们受益并且使数据整合变得更加简单。删除重复数据能降低数据实际使用的空间,当需要镜像一个单一和广泛文件系统时使用 btrfs 也能使数据镜像变得简单。 - -用户当然可以继续选择创建多个分区从而无需镜像任何东西。考虑到这种情况,btrfs 能横跨多种硬盘,和 ext4 相比,它能支持 16 倍以上的驱动空间。btrfs 文件系统一个分区最大是 16 exbibytes,最大的文件大小也是 16 exbibytes。 - -### XFS 文件系统 ### - -XFS 文件系统是扩展文件系统(extent file system)的扩展。XFS 是 64 位高性能日志文件系统。对 XFS 的支持大概在 2002 年合并到了 Linux 内核,到了 2009 年,红帽企业版 Linux 5.4 也支持了 XFS 文件系统。对于 64 位文件系统,XFS 支持最大文件系统大小为 8 exbibytes。XFS 文件系统有一些缺陷,例如它不能压缩,删除大量文件时性能低下。目前RHEL 7.0 文件系统默认使用 XFS。 - -### 总后总结 ### - -不幸的是,还不知道 btrfs 什么时候能到来。官方说,下一代文件系统仍然被归类为“不稳定”,但是如果用户下载最新版本的 Ubuntu,就可以选择安装到 btrfs 分区上。什么时候 btrfs 会被归类到 “稳定” 仍然是个谜, 直到真的认为它“稳定”之前,用户也不应该期望 Ubuntu 会默认采用 btrfs。有报道说 Fedora 18 会用 btrfs 作为它的默认文件系统,因为到了发布它的时候,应该有了 btrfs 文件系统校验器。由于还没有实现所有的功能,另外和 ext4 相比性能上也比较缓慢,btrfs 还有很多的工作要做。 - -那么,究竟使用哪个更好呢?尽管性能几乎相同,但 ext4 还是赢家。为什么呢?答案在于易用性以及广泛性。对于桌面或者工作站, ext4 仍然是一个很好的文件系统。由于默认提供,用户可以在上面安装操作系统。同时, ext4 支持最大 1 exabytes 的卷和 16 terabytes 的文件,因此考虑到大小,它也还有很大的进步空间。 - -btrfs 能提供更大的高达 16 exabytes 的卷以及更好的容错,但是,到现在为止,它感觉更像是一个附加文件系统,而没有集成到 Linux 操作系统。比如,尽管 btrfs 支持不同的发行版,使用 btrfs 格式化硬盘之前先要有 btrfs-tools 工具,这意味着安装 Linux 操作系统的时候它并不是一个可选项,即便不同发行版之间会有差异。 - -尽管传输速率非常重要,评价一个文件系统出了文件传输速度之外还有很多因素。btrfs 有很多好用的功能,例如写复制、扩展校验、快照、清洗、自修复数据、冗余删除以及其它保证数据完整性的功能。和 ZFS 相比 btrfs 缺少 RAID-Z 功能,因此对于 btrfs, RAID 还处于实验性阶段。对于单纯的数据存储,和 ext4 相比 btrfs 似乎更加优秀,但时间会验证一切。 - -迄今为止,对于桌面系统而言,ext4 似乎是一个更好的选择,因为它是默认的文件系统,传输文件时也比 btrfs 更快。btrfs 当然值得尝试、但要在桌面 Linux 上完全取代 ext4 可能还需要一些时间。数据场和大存储池会揭示关于 ext4、XCF 以及 btrfs 不同的故事和差异。 - -如果你有不同或者其它的观点,在下面的评论框中告诉我们吧。 - --------------------------------------------------------------------------------- - -via: http://www.unixmen.com/review-ext4-vs-btrfs-vs-xfs/ - -作者:[M.el Khamlichi][a] -译者:[ictlyh](http://mutouxiaogui.cn/blog/) -校对:[Caroline](https://github.com/carolinewuyan) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.unixmen.com/author/pirat9/ From 2f78133e083ee013125fff48c020515db56006ee Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 9 Mar 2016 11:02:12 +0800 Subject: [PATCH 249/582] PUB:20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes @GOLinux --- ...est in the Series with Hundreds of Changes.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) rename {translated/tech => published}/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md (66%) diff --git a/translated/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md b/published/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md similarity index 66% rename from translated/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md rename to published/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md index 4a53818b49..595f245e3b 100644 --- a/translated/tech/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md +++ b/published/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md @@ -1,14 +1,16 @@ -Linux最大版本4.1.18 LTS发布,带来大量修改 +Linux 4.1 系列的最大版本 4.1.18 LTS发布,带来大量修改 ================================================================================= +(LCTT 译注:这是一则过期的消息,但是为了披露更新内容,还是发布出来给大家参考) -**著名的内核维护者Greg Kroah-Hartman貌似正在度假中,因为Sasha Levin有幸在今天,2016年2月16日,的早些时候来[宣布](http://lkml.iu.edu/hypermail/linux/kernel/1602.2/00520.html),第十八个Linux内核维护版本Linux Kernel 4.1 LTS通用版本正式发布。** +**著名的内核维护者Greg Kroah-Hartman貌似正在度假中,因为Sasha Levin2016年2月16日的早些时候来[宣布](http://lkml.iu.edu/hypermail/linux/kernel/1602.2/00520.html),第十八个Linux内核维护版本Linux Kernel 4.1 LTS通用版本正式发布。** -作为长期支持的内核分支,Linux 4.1将再多几年接收到更新和补丁,而今天的维护构建版本也证明一点,就是内核开发者们正致力于统保持该系列在所有使用该版本的GNU/Linux操作系统上稳定和可靠。Linux Kernel 4.1.18 LTS是一个大规模发行版,它带来了总计达228个文件修改,这些修改包含了多达5304个插入修改和1128个删除修改。 +作为长期支持的内核分支,Linux 4.1还会在几年内得到更新和补丁,而今天的维护构建版本也证明一点,就是内核开发者们正致力于保持该系列在所有使用该版本的GNU/Linux操作系统上稳定和可靠。Linux Kernel 4.1.18 LTS是一个大的发布版本,它带来了总计达228个文件修改,这些修改包含了多达5304个插入修改和1128个删除修改。 Linux Kernel 4.1.18 LTS更新了什么呢?好吧,首先是对ARM,ARM64(AArch64),MIPS,PA-RISC,m32r,PowerPC(PPC),s390以及x86等硬件架构的改进。此外,还有对Btrfs,CIFS,NFS,XFS,OCFS2,OverlayFS以及UDF文件系统的加强。对网络堆栈的修复,尤其是对mac80211的修复。同时,还有多核心、加密和mm等方面的改进和对声音的更新。 -“我宣布4.1.18内核正式发布,所有4.1内核系列的用户都应当升级。”Sasha Levin说,“更新的4.1.y git树可以在这里找到:git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.1.y,并且可以在常规kernel.org git网站浏览器:http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary 进行浏览。” -## 大量驱动被更新 +“我宣布4.1.18内核正式发布,所有4.1内核系列的用户都应当升级。”Sasha Levin说,“更新的4.1.y git树可以在这里找到:git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.1.y,并且可以在 kernel.org 的 git 网站上浏览:http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary 进行浏览。” + +### 大量驱动被更新 除了架构、文件系统、声音、网络、加密、mm和核心内核方面的改进之外,Linux Kernel 4.1.18 LTS更新了各个驱动,以提供更好的硬件支持,特别是像蓝牙、DMA、EDAC、GPU(主要是Radeon和Intel i915)、无限带宽技术、IOMMU、IRQ芯片、MD、MMC、DVB、网络(主要是无线)、PCI、SCSI、USB、散热、暂存和Virtio等此类东西。 @@ -18,9 +20,9 @@ Linux Kernel 4.1.18 LTS更新了什么呢?好吧,首先是对ARM,ARM64(A via: http://news.softpedia.com/news/linux-kernel-4-1-18-lts-is-the-biggest-in-the-series-with-hundreds-of-changes-500500.shtml -作者:[Marius Nestor ][a] +作者:[Marius Nestor][a] 译者:[GOLinux](https://github.com/GOLinux) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 04fbcf94075c7248e27191e435440710d0f30d7d Mon Sep 17 00:00:00 2001 From: Markgolzh Date: Wed, 9 Mar 2016 13:12:32 +0800 Subject: [PATCH 250/582] Update 20160303 Top 5 open source command shells for Linux.md --- .../tech/20160303 Top 5 open source command shells for Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20160303 Top 5 open source command shells for Linux.md b/sources/tech/20160303 Top 5 open source command shells for Linux.md index d097928ace..b9bf5e2e87 100644 --- a/sources/tech/20160303 Top 5 open source command shells for Linux.md +++ b/sources/tech/20160303 Top 5 open source command shells for Linux.md @@ -1,4 +1,4 @@ -翻译中;by ![zky001](https://github.com/LCTT/TranslateProject/edit/master/sources/tech/20160303%20Top%205%20open%20source%20command%20shells%20for%20Linux.md) +翻译中;by ![zky001] Top 5 open source command shells for Linux =============================================== From 7c3cc7e5bcf9f6915a7a67587ea8d78be191d727 Mon Sep 17 00:00:00 2001 From: cposture Date: Wed, 9 Mar 2016 16:14:24 +0800 Subject: [PATCH 251/582] translated character 1 --- .../20151220 GCC-Inline-Assembly-HOWTO.md | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md index f2e09b5c7a..c22e03bfd7 100644 --- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md +++ b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md @@ -1,41 +1,43 @@ 【Translating by cposture 2016-03-01】 * * * -# GCC-Inline-Assembly-HOWTO +# GCC内联汇编HOWTO + v0.1, 01 March 2003. * * * -_This HOWTO explains the use and usage of the inline assembly feature provided by GCC. There are only two prerequisites for reading this article, and that’s obviously a basic knowledge of x86 assembly language and C._ +_本HOWTO文档将讲解GCC提供的内联汇编特性的用途和用法。对于阅读这篇文章,这里只有两个前提要求,很明显,就是x86汇编语言和C语言的基本认识。_ * * * -## 1. Introduction. +## 1. 简介 -## 1.1 Copyright and License. +## 1.1 版权许可 Copyright (C)2003 Sandeep S. -This document is free; you can redistribute and/or modify this under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. +本文档自由共享;你可以重新发布它,并且/或者在遵循自由软件基金会发布的GNU通用公共许可证下修改它;或者该许可证的版本2,或者(按照你的需求)更晚的版本。 -This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +发布这篇文档是希望它能够帮助别人,但是没有任何保证;甚至不包括可售性和适用于任何特定目的的保证。关于更详细的信息,可以查看GNU通用许可证。 -## 1.2 Feedback and Corrections. +## 1.2 反馈校正 -Kindly forward feedback and criticism to [Sandeep.S](mailto:busybox@sancharnet.in). I will be indebted to anybody who points out errors and inaccuracies in this document; I shall rectify them as soon as I am informed. +请将反馈和批评一起提交给[Sandeep.S](mailto:busybox@sancharnet.in)。我将感谢任何一个指出本文档中错误和不准确之处的人;一被告知,我会马上改正它们。 -## 1.3 Acknowledgments. +## 1.3 致谢 -I express my sincere appreciation to GNU people for providing such a great feature. Thanks to Mr.Pramode C E for all the helps he did. Thanks to friends at the Govt Engineering College, Trichur for their moral-support and cooperation, especially to Nisha Kurur and Sakeeb S. Thanks to my dear teachers at Govt Engineering College, Trichur for their cooperation. +我对提供如此棒的特性的GNU人们表示真诚的感谢。感谢Mr.Pramode C E所做的所有帮助。感谢在Govt Engineering College和Trichur朋友们的精神支持和合作,尤其是Nisha Kurur和Sakeeb S。 感谢在Gvot Engineering College和Trichur老师们的合作。 -Additionally, thanks to Phillip, Brennan Underwood and colin@nyx.net; Many things here are shamelessly stolen from their works. +另外,感谢Phillip, Brennan Underwood and colin@nyx.net;这里的许多东西都厚颜地直接取自他们的工作成果。 * * * -## 2. Overview of the whole thing. +## 2. 概览 -We are here to learn about GCC inline assembly. What this inline stands for? +在这里,我们将学习GCC内联汇编。这内联表示的是什么呢? + +我们可以要求编译器将一个函数的代码插入到调用者代码中函数被实际调用的地方。这样的函数就是内联函数。这听起来和宏差不多?这两者确实有相似之处。 -We can instruct the compiler to insert the code of a function into the code of its callers, to the point where actually the call is to be made. Such functions are inline functions. Sounds similar to a Macro? Indeed there are similarities. What is the benefit of inline functions? From 4f6d87686af60c3a1c48ff13aad724b0eab17141 Mon Sep 17 00:00:00 2001 From: Stdio A Date: Wed, 9 Mar 2016 17:37:19 +0800 Subject: [PATCH 252/582] =?UTF-8?q?20160306=20=E9=80=89=E9=A2=98=E5=B9=B6?= =?UTF-8?q?=E7=BF=BB=E8=AF=915=20Favorite=20Open=20Source=20Django=20Packa?= =?UTF-8?q?ges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 5 Favorite Open Source Django Packages.md | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md diff --git a/sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md b/sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md new file mode 100644 index 0000000000..de57717f56 --- /dev/null +++ b/sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md @@ -0,0 +1,166 @@ +StdioA Translated + +5 favorite open source Django packages +================================================================================ +![Yearbook cover 2015](https://opensource.com/sites/default/files/styles/image-full-size/public/u23316/osdc-open-source-yearbook-lead8.png?itok=0_5-hdFE) + +Image source: Opensource.com + +_Jacob Kaplan-Moss and Frank Wiles also contributed to this article._ + +Django is built around the concept of [reusable apps][1]: self-contained packages that provide re-usable features. You can build your site by composing these reusable apps, together with your own site-specific code. There's a rich and varied ecosystem of reusable apps available for your use — PyPI lists more than [8,000 Django apps][2] — but how do you know which ones are best? + +To help focus your app search, we've put together this list of our five favorites. They are: +* [Cookiecutter][3]: the best way to start a new Django site. +* [Whitenoise][4]: the best static asset server. +* [Django Rest Framework][5]: the best way to write REST APIs with Django. +* [Wagtail][6]: the best Django-based content-management system. +* [django-allauth][7]: the best way to provide "social login" (e.g., Twitter, Facebook, GitHub, etc). + +We also recommend you check out [Django Packages][8], a directory of reusable Django apps. Django Packages organizes Django apps into "grids" that allow you to compare similar packages and chose between them. You can see which features are offered by each package, as well as usage statistics. (For example: here's the [grid for REST tools][9], which might help you understand why we recommend Django REST Framework.) + +## Why you should trust us? + +We've been using Django for longer than almost anyone. Two of us (Frank and Jacob) worked at the [Lawrence Journal-World][10] (birthplace of Django) before Django was released (and in fact helped make the open source release happen). We've all spent the past eight years running a consultancy that advises companies on how best to use Django. + +So, we've seen the entire history of the Django project and community, and we've seen popular packages come and go. Between the three of us, we've probably tried at least half of these 8,000 apps personally, or we know someone who has. We have a strong understanding of what makes an app solid and reliable, and we have a good understanding of what gives these things staying power. + +## Best way to start a new Django site: [Cookiecutter][3] + +Starting off a new project or app is always a bit of a pain. You can use Django's built in `startproject` but if you're like us, you're particular in how you do things. Cookiecutter solves this by giving you a quick and easy way to define project or app templates that can be easily reused. A quick example, just `pip install cookiecutter` and then run this from the command line: + +```bash +$ cookiecutter https://github.com/marcofucci/cookiecutter-simple-django +``` + +You'll immediately start getting prompted for quick answers, such as the name of your project, repo, author name, email, and a few other bits of configuration. These are used to help fill out the project details. We picked the ever so original '_foo_' to be our repo name. So cookiecutter created a simple Django project in the subdirectory '_foo_'. + +If you poke around in the '_foo_' project a bit, you'll see the other bits of configuration you were prompted for have been templated into the files themselves along with sub-directories as necessary. This "template" is all defined at the GitHub repo URL we used as the only argument when we called `cookiecutter`. This example used a remote GitHub repo as the template; however, note that you can use local file system directories as well, which is perfect for non-reusable scenarios. + +We mention cookiecutter as a great Django package, but honestly it's useful for plain Python or even non-Python-related purposes. Being able to lay things out exactly as you like in an easily repeatable way makes cookiecutter a great tool for keeping your workflow DRY. + +## Best static asset server: [Whitenoise][4] + +For many years, serving your site's static assets—images, JavaScript, CSS—was a pain. The built-in [django.views.static.serve][11] view is, as the documentation states, "not hardened for production use and should be used only as a development aid." But serving media from a "real" web server, such as NGINX or out of a CDN, can be difficult to set up. + +Whitenoise cleanly solves this problem. It's as easy to set up as the development-only static server, and is hardened and optimized for production. Setup is simple: + +1. Make sure you're using Django's [contrib.staticfiles][12] app, and that you've correctly set `STATIC_ROOT` in your settings file. +2. Enable Whitenoise in your `wsgi.py` file: + +```python +from django.core.wsgi import get_wsgi_application +from whitenoise.django import DjangoWhiteNoise + +application = get_wsgi_application() +application = DjangoWhiteNoise(application) +``` + +That's really all it takes! For large applications, you'll likely want to use a dedicated media server and/or a CDN, but for most small- or medium-sized Django sites, Whitenoise is more than powerful enough. + +For more information on Whitenoise, [check out the documentation][13]. + +Best Tool for REST APIs: [Django REST Framework][5] + +REST APIs are quickly becoming a standard feature of modern web applications. An API is really simply talking in JSON rather than HTML, and of course you can do this with just Django. You can craft your own views that set the proper content types and return data in JSON rather than templated HTML responses. This is exactly what many people did before API frameworks such as [Django Rest Framework][14] (a.k.a., DRF) were released. + +Building a REST API with DRF is similar to working with Django's Class Based Views if you're familiar with them, except these are specifically designed and targeted around an API use case. Quite a bit of code is involved in your average API setup, so instead of a code sample to get you excited, we'll highlight some of DRF's features that make your life easier: + +* Automatic browseable API which makes development and manual testing a breeze. Click around in the DRF [demo example][15]. You can view API responses and support POST/PUT/DELETE type operations without having to do anything yourself. +* Easy integration of authentication styles, such as OAuth, Basic Auth, or API Tokens. + Simple permission system for fine-grained control of which users can use which API endpoints and/or actions. +* Built in rate limiting. +* Nearly automatic API documentation when combined with [django-rest-swagger][16]. +* Extensive ecosystem of third-party libraries. + +Although you could certainly build an API without DRF, we can't fathom a reason why you would start off down that path. Even if you don't use all of DRF's features, building up your own API views from their solid base view classes is a huge win in terms of safety, consistency of your API, and development velocity. If you aren't using DRF already, you should set aside some time to check it out. + +## Best Django-based CMS: [Wagtail][6] + +Wagtail is the current darling of the Django CMS world and with good reason. Like most CMS systems, it gives you flexibility to define different types of pages and their content via simple Django models. This takes you from zero to a basically working system in hours, not days. To give you a quick example, to define a Staff page type for people at your company can be as simple as: + +```python +from wagtail.wagtailcore.models import Page +from wagtail.wagtailcore.fields import RichTextField +from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel +from wagtail.wagtailimages.edit_handlers import ImageChooserPanel + +class StaffPage(Page): + name = models.CharField(max_length=100) + hire_date = models.DateField() + bio = models.RichTextField() + email = models.EmailField() + headshot = models.ForeignKey('wagtailimages.Image', null=True, blank=True) + content_panels = Page.content_panels + [ + FieldPanel('name'), + FieldPanel('hire_date'), + FieldPanel('email'), + FieldPanel('bio', classname="full"), + ImageChoosePanel('headshot'), + ] + +``` + +The real appeal of Wagtail, however, is in its easy-to-use modern admin interface and flexibility. You can control which types of pages are allowed in different areas of the site, add additional complex logic to your pages, and get standard moderation/approval workflows right out of the box. With most CMS systems, at some point you run into a wall you can work around. With Wagtail, we have yet to find a wall we couldn't easy find a door through to make it do exactly what we want in an easy and maintainable way. If you're interested, we wrote up a [deeper dive into Wagtail][17]. + +## Best Social Login Tool: [django-allauth][7] + +django-allauth is a reusable Django application that solves your registration and authentication needs. Whether you need a local or social registration system, django-allauth has you covered. + +The project supports multiple authentication schemes, such as user name or email address. Once a user has signed up, multiple strategies are supported for account verification ranging from none to email verification. Multiple social and email accounts are also supported. Pluggable signup forms are also supports which allows asking additional questions during registration. + +django-allauth supports more than 20 authentication providers, including Facebook, GitHub, Google, and Twitter. If you have an account on a social website that's not supported, then it's most supported through a third-party add-on. The project supports writing custom backends, which allows custom authentication systems to work, too. This is nice for anyone with custom authentication needs. + +django-allauth is easy to setup and has [extensive documentation][18]. The project is also well tested so you know that everything actually works. + +Do you have a favorite Django package? Let us know about it in the comments. + +## About the author + +![Photo][] + +Jeff Triplett + +Lawrence, KS + + +I moved to Lawrence, KS in 2007 to work at the Lawrence Journal-World where Django was invented. I now work at [Revolution Systems (Revsys)][19] in Lawrence, KS as a developer and a consultant. + +I am a co-founder of the [Django Events Foundation North America (DEFNA)][20], Conference Chair for [DjangoCon US][21] 2015 and 2016, and I co-organized [Django Birthday][22] to celebrate the 10 year birthday of Django in its birthplace in Lawrence. + +I am a member of a local trail running group, I love basketball, and I love dreaming about traveling in an airstream across America. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/business/15/12/5-favorite-open-source-django-packages + +作者:[Jeff Triplett][a] +译者:[StdioA](https://github.com/StdioA) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + + +[a]:https://opensource.com/users/jefftriplett +[1]:https://docs.djangoproject.com/en/1.8/intro/reusable-apps/ +[2]:https://pypi.python.org/pypi?:action=browse&c=523 +[3]:https://github.com/audreyr/cookiecutter +[4]:http://whitenoise.evans.io/en/latest/base.html +[5]:http://www.django-rest-framework.org/ +[6]:https://wagtail.io/ +[7]:http://www.intenct.nl/projects/django-allauth/ +[8]:https://www.djangopackages.com/ +[9]:https://www.djangopackages.com/grids/g/rest/ +[10]:http://www2.ljworld.com/news/2015/jul/09/happy-birthday-django/ +[11]:https://docs.djangoproject.com/en/1.8/ref/views/#django.views.static.serve +[12]:https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/ +[13]:http://whitenoise.evans.io/en/latest/index.html +[14]:http://www.django-rest-framework.org/ +[15]:http://restframework.herokuapp.com/ +[16]:http://django-rest-swagger.readthedocs.org/en/latest/index.html +[17]:https://opensource.com/business/15/5/wagtail-cms +[18]:http://django-allauth.readthedocs.org/en/latest/ +[19]:http://www.revsys.com/ +[20]:http://defna.org/ +[21]:https://2015.djangocon.us/ +[22]:https://djangobirthday.com/ From 6f0f13a8826606a397cee5c8af7b6e2273282307 Mon Sep 17 00:00:00 2001 From: Stdio A Date: Wed, 9 Mar 2016 17:38:17 +0800 Subject: [PATCH 253/582] =?UTF-8?q?5=20Favorite=20Open=20Source=20Django?= =?UTF-8?q?=20Packages=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 5 Favorite Open Source Django Packages.md | 166 ------------------ ... 5 Favorite Open Source Django Packages.md | 164 +++++++++++++++++ 2 files changed, 164 insertions(+), 166 deletions(-) delete mode 100644 sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md create mode 100644 translated/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md diff --git a/sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md b/sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md deleted file mode 100644 index de57717f56..0000000000 --- a/sources/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md +++ /dev/null @@ -1,166 +0,0 @@ -StdioA Translated - -5 favorite open source Django packages -================================================================================ -![Yearbook cover 2015](https://opensource.com/sites/default/files/styles/image-full-size/public/u23316/osdc-open-source-yearbook-lead8.png?itok=0_5-hdFE) - -Image source: Opensource.com - -_Jacob Kaplan-Moss and Frank Wiles also contributed to this article._ - -Django is built around the concept of [reusable apps][1]: self-contained packages that provide re-usable features. You can build your site by composing these reusable apps, together with your own site-specific code. There's a rich and varied ecosystem of reusable apps available for your use — PyPI lists more than [8,000 Django apps][2] — but how do you know which ones are best? - -To help focus your app search, we've put together this list of our five favorites. They are: -* [Cookiecutter][3]: the best way to start a new Django site. -* [Whitenoise][4]: the best static asset server. -* [Django Rest Framework][5]: the best way to write REST APIs with Django. -* [Wagtail][6]: the best Django-based content-management system. -* [django-allauth][7]: the best way to provide "social login" (e.g., Twitter, Facebook, GitHub, etc). - -We also recommend you check out [Django Packages][8], a directory of reusable Django apps. Django Packages organizes Django apps into "grids" that allow you to compare similar packages and chose between them. You can see which features are offered by each package, as well as usage statistics. (For example: here's the [grid for REST tools][9], which might help you understand why we recommend Django REST Framework.) - -## Why you should trust us? - -We've been using Django for longer than almost anyone. Two of us (Frank and Jacob) worked at the [Lawrence Journal-World][10] (birthplace of Django) before Django was released (and in fact helped make the open source release happen). We've all spent the past eight years running a consultancy that advises companies on how best to use Django. - -So, we've seen the entire history of the Django project and community, and we've seen popular packages come and go. Between the three of us, we've probably tried at least half of these 8,000 apps personally, or we know someone who has. We have a strong understanding of what makes an app solid and reliable, and we have a good understanding of what gives these things staying power. - -## Best way to start a new Django site: [Cookiecutter][3] - -Starting off a new project or app is always a bit of a pain. You can use Django's built in `startproject` but if you're like us, you're particular in how you do things. Cookiecutter solves this by giving you a quick and easy way to define project or app templates that can be easily reused. A quick example, just `pip install cookiecutter` and then run this from the command line: - -```bash -$ cookiecutter https://github.com/marcofucci/cookiecutter-simple-django -``` - -You'll immediately start getting prompted for quick answers, such as the name of your project, repo, author name, email, and a few other bits of configuration. These are used to help fill out the project details. We picked the ever so original '_foo_' to be our repo name. So cookiecutter created a simple Django project in the subdirectory '_foo_'. - -If you poke around in the '_foo_' project a bit, you'll see the other bits of configuration you were prompted for have been templated into the files themselves along with sub-directories as necessary. This "template" is all defined at the GitHub repo URL we used as the only argument when we called `cookiecutter`. This example used a remote GitHub repo as the template; however, note that you can use local file system directories as well, which is perfect for non-reusable scenarios. - -We mention cookiecutter as a great Django package, but honestly it's useful for plain Python or even non-Python-related purposes. Being able to lay things out exactly as you like in an easily repeatable way makes cookiecutter a great tool for keeping your workflow DRY. - -## Best static asset server: [Whitenoise][4] - -For many years, serving your site's static assets—images, JavaScript, CSS—was a pain. The built-in [django.views.static.serve][11] view is, as the documentation states, "not hardened for production use and should be used only as a development aid." But serving media from a "real" web server, such as NGINX or out of a CDN, can be difficult to set up. - -Whitenoise cleanly solves this problem. It's as easy to set up as the development-only static server, and is hardened and optimized for production. Setup is simple: - -1. Make sure you're using Django's [contrib.staticfiles][12] app, and that you've correctly set `STATIC_ROOT` in your settings file. -2. Enable Whitenoise in your `wsgi.py` file: - -```python -from django.core.wsgi import get_wsgi_application -from whitenoise.django import DjangoWhiteNoise - -application = get_wsgi_application() -application = DjangoWhiteNoise(application) -``` - -That's really all it takes! For large applications, you'll likely want to use a dedicated media server and/or a CDN, but for most small- or medium-sized Django sites, Whitenoise is more than powerful enough. - -For more information on Whitenoise, [check out the documentation][13]. - -Best Tool for REST APIs: [Django REST Framework][5] - -REST APIs are quickly becoming a standard feature of modern web applications. An API is really simply talking in JSON rather than HTML, and of course you can do this with just Django. You can craft your own views that set the proper content types and return data in JSON rather than templated HTML responses. This is exactly what many people did before API frameworks such as [Django Rest Framework][14] (a.k.a., DRF) were released. - -Building a REST API with DRF is similar to working with Django's Class Based Views if you're familiar with them, except these are specifically designed and targeted around an API use case. Quite a bit of code is involved in your average API setup, so instead of a code sample to get you excited, we'll highlight some of DRF's features that make your life easier: - -* Automatic browseable API which makes development and manual testing a breeze. Click around in the DRF [demo example][15]. You can view API responses and support POST/PUT/DELETE type operations without having to do anything yourself. -* Easy integration of authentication styles, such as OAuth, Basic Auth, or API Tokens. - Simple permission system for fine-grained control of which users can use which API endpoints and/or actions. -* Built in rate limiting. -* Nearly automatic API documentation when combined with [django-rest-swagger][16]. -* Extensive ecosystem of third-party libraries. - -Although you could certainly build an API without DRF, we can't fathom a reason why you would start off down that path. Even if you don't use all of DRF's features, building up your own API views from their solid base view classes is a huge win in terms of safety, consistency of your API, and development velocity. If you aren't using DRF already, you should set aside some time to check it out. - -## Best Django-based CMS: [Wagtail][6] - -Wagtail is the current darling of the Django CMS world and with good reason. Like most CMS systems, it gives you flexibility to define different types of pages and their content via simple Django models. This takes you from zero to a basically working system in hours, not days. To give you a quick example, to define a Staff page type for people at your company can be as simple as: - -```python -from wagtail.wagtailcore.models import Page -from wagtail.wagtailcore.fields import RichTextField -from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel -from wagtail.wagtailimages.edit_handlers import ImageChooserPanel - -class StaffPage(Page): - name = models.CharField(max_length=100) - hire_date = models.DateField() - bio = models.RichTextField() - email = models.EmailField() - headshot = models.ForeignKey('wagtailimages.Image', null=True, blank=True) - content_panels = Page.content_panels + [ - FieldPanel('name'), - FieldPanel('hire_date'), - FieldPanel('email'), - FieldPanel('bio', classname="full"), - ImageChoosePanel('headshot'), - ] - -``` - -The real appeal of Wagtail, however, is in its easy-to-use modern admin interface and flexibility. You can control which types of pages are allowed in different areas of the site, add additional complex logic to your pages, and get standard moderation/approval workflows right out of the box. With most CMS systems, at some point you run into a wall you can work around. With Wagtail, we have yet to find a wall we couldn't easy find a door through to make it do exactly what we want in an easy and maintainable way. If you're interested, we wrote up a [deeper dive into Wagtail][17]. - -## Best Social Login Tool: [django-allauth][7] - -django-allauth is a reusable Django application that solves your registration and authentication needs. Whether you need a local or social registration system, django-allauth has you covered. - -The project supports multiple authentication schemes, such as user name or email address. Once a user has signed up, multiple strategies are supported for account verification ranging from none to email verification. Multiple social and email accounts are also supported. Pluggable signup forms are also supports which allows asking additional questions during registration. - -django-allauth supports more than 20 authentication providers, including Facebook, GitHub, Google, and Twitter. If you have an account on a social website that's not supported, then it's most supported through a third-party add-on. The project supports writing custom backends, which allows custom authentication systems to work, too. This is nice for anyone with custom authentication needs. - -django-allauth is easy to setup and has [extensive documentation][18]. The project is also well tested so you know that everything actually works. - -Do you have a favorite Django package? Let us know about it in the comments. - -## About the author - -![Photo][] - -Jeff Triplett - -Lawrence, KS - - -I moved to Lawrence, KS in 2007 to work at the Lawrence Journal-World where Django was invented. I now work at [Revolution Systems (Revsys)][19] in Lawrence, KS as a developer and a consultant. - -I am a co-founder of the [Django Events Foundation North America (DEFNA)][20], Conference Chair for [DjangoCon US][21] 2015 and 2016, and I co-organized [Django Birthday][22] to celebrate the 10 year birthday of Django in its birthplace in Lawrence. - -I am a member of a local trail running group, I love basketball, and I love dreaming about traveling in an airstream across America. - --------------------------------------------------------------------------------- - -via: https://opensource.com/business/15/12/5-favorite-open-source-django-packages - -作者:[Jeff Triplett][a] -译者:[StdioA](https://github.com/StdioA) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - - -[a]:https://opensource.com/users/jefftriplett -[1]:https://docs.djangoproject.com/en/1.8/intro/reusable-apps/ -[2]:https://pypi.python.org/pypi?:action=browse&c=523 -[3]:https://github.com/audreyr/cookiecutter -[4]:http://whitenoise.evans.io/en/latest/base.html -[5]:http://www.django-rest-framework.org/ -[6]:https://wagtail.io/ -[7]:http://www.intenct.nl/projects/django-allauth/ -[8]:https://www.djangopackages.com/ -[9]:https://www.djangopackages.com/grids/g/rest/ -[10]:http://www2.ljworld.com/news/2015/jul/09/happy-birthday-django/ -[11]:https://docs.djangoproject.com/en/1.8/ref/views/#django.views.static.serve -[12]:https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/ -[13]:http://whitenoise.evans.io/en/latest/index.html -[14]:http://www.django-rest-framework.org/ -[15]:http://restframework.herokuapp.com/ -[16]:http://django-rest-swagger.readthedocs.org/en/latest/index.html -[17]:https://opensource.com/business/15/5/wagtail-cms -[18]:http://django-allauth.readthedocs.org/en/latest/ -[19]:http://www.revsys.com/ -[20]:http://defna.org/ -[21]:https://2015.djangocon.us/ -[22]:https://djangobirthday.com/ diff --git a/translated/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md b/translated/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md new file mode 100644 index 0000000000..81e999fd80 --- /dev/null +++ b/translated/talk/yearbook2015/20160306 5 Favorite Open Source Django Packages.md @@ -0,0 +1,164 @@ +5个最受喜爱的开源Django包 +================================================================================ +![Yearbook cover 2015](https://opensource.com/sites/default/files/styles/image-full-size/public/u23316/osdc-open-source-yearbook-lead8.png?itok=0_5-hdFE) + +图片来源:Opensource.com + +_Jacob Kaplan-Moss和Frank Wiles也参与了本文的写作。_ + +Django围绕“[可重用应用][1]”观点建立:自我包含了提供可重复使用特性的包。你可以将这些可重用应用组装起来,在加上适用于你的网站的特定代码,来搭建你自己的网站。Django具有一个丰富多样的、由可供你使用的可重用应用组建起来的生态系统——PyPI列出了[超过8000个 Django 应用][2]——可你该如何知道哪些是最好的呢? + +为了节省你的时间,我们总结了五个最受喜爱的 Django 应用。它们是: +- [Cookiecutter][3]: 建立 Django 网站的最佳方式。 +- [Whitenoise][4]: 最棒的静态资源服务器。 +- [Django Rest Framework][5]: 使用 Django 开发 REST API 的最佳方式。 +- [Wagtail][6]: 基于 Django 的最佳内容管理系统。 +- [django-allauth][7]: 提供社交账户登录的最佳应用(如 Twitter, Facebook, GitHub 等)。 + +我们同样推荐你查看 [Django Packages][8],一个可重用 Django 应用的目录。Django Packages 将 Django 应用组织成“表格”,你可以在功能相似的不同应用之间进行比较并做出选择。你可以查看每个包中提供的特性,和使用统计情况。(比如:这是[ REST 工具的表格][9],也许可以帮助你理解我们为何推荐 Django REST Framework. + +## 为什么你应该相信我们? + +我们使用 Django 的时间比几乎其他人都长。在 Django 发布之前,我们当中的两个人(Frank 和 Jacob)在 [Lawrence Journal-World][10] (Django 的发源地)工作(事实上他们两人推动了 Django 开源发布的进程)。我们在过去的八年当中运行着一个咨询公司,来建议公司使用 Django 去将事情做到最好。 + +所以,我们见证了Django项目和社群的完整历史,我们见证了流行软件包的兴起和没落。在我们三个中,我们可能私下试用了8000个应用中的一半以上,或者我们知道谁试用过这些。我们对如何使应用变得坚实可靠有着深刻的理解,并且我们对给予这些应用持久力量的来源也有不错的理解。 + +## 建立Django网站的最佳方式:[Cookiecutter][3] + +建立一个新项目或应用总是有些痛苦。你可以用Django内建的 `startproject`。不过,如果你像我们一样,你可能会对你的办事方式很挑剔。Cookiecutter 为你提供了一个快捷简单的方式来构建易于使用的项目或应用模板,从而解决了这个问题。一个简单的例子:键入 `pip install cookiecutter`,然后在命令行中运行以下命令: + +```bash +$ cookiecutter https://github.com/marcofucci/cookiecutter-simple-django +``` + +接下来你需要回答几个简单的问题,比如你的项目名称、目录、作者名字、E-Mail和其他几个关于配置的小问题。这些能够帮你补充项目相关的细节。我们使用最最原始的 "_foo_" 作为我们的目录名称。所以 cokkiecutter 在子目录 "_foo_" 下建立了一个简单的 Django 项目。 + +如果你在"_foo_"项目中闲逛,你会看见你刚刚选择的其它设置已通过模板,连同子目录一同嵌入到文件当中。这个“模板”在我们刚刚在执行 `cookiecutter` 命令时输入的 Github 仓库 URL 中定义。这个样例工程使用了一个 Github 远程仓库作为模板;不过你也可以使用本地的模板,这在建立非重用项目时非常有用。 + +我们认为 cookiecutter 是一个极棒的 Django 包,但是,事实上其实它在面对纯 Python 甚至非 Python 相关需求时也极为有用。你能够将所有文件依你所愿精确摆放在任何位置上,使得 cookiecutter 成为了一个简化工作流程的极佳工具。 + +## 最棒的静态资源服务器:[Whitenoise][4] + +多年来,托管网站的静态资源——图片、Javascript、CSS——都是一件很痛苦的事情。Django 内建的 [django.views.static.serve][11] 视图,就像Django文章所述的那样,“在生产环境中不可靠,所以只应为开发环境的提供辅助功能。”但使用一个“真正的” Web 服务器,如 NGINX 或者借助 CDN 来托管媒体资源,配置起来会相当困难。 + +Whitenoice 很简洁地解决了这个问题。它可以像在开发环境那样轻易地在生产环境中设置静态服务器,并且针对生产环境进行了加固和优化。它的设置方法极为简单: + +1. 确保你在使用 Django 的 [contrib.staticfiles][12] 应用,并确认你在配置文件中正确设置了 `STATIC_ROOT` 变量。 + +2. 在 `wsgi.py` 文件中启用 Whitenoise: + + ```python + from django.core.wsgi import get_wsgi_application + from whitenoise.django import DjangoWhiteNoise + + application = get_wsgi_application() + application = DjangoWhiteNoise(application) + ``` + +配置它真的就这么简单!对于大型应用,你可能想要使用一个专用的媒体服务器和/或一个 CDN,但对于大多数小型或中型 Django 网站,Whitenoise 已经足够强大。 + +如需查看更多关于 Whitenoise 的信息,[请查看文档][13]。 + +## 开发REST API的最佳工具:[Django REST Framework][5] + +REST API 正在迅速成为现代 Web 应用的标准功能。与一个 API 进行简短的会话,你只需使用 JSON 而不是 HTML,当然你可以只用 Django 做到这些。你可以制作自己的视图,设置合适的 `Content-Type`, 然后返回 JSON 而不是渲染后的 HTML 响应。这是在像 [Django Rest Framework][14](下称DRF)这样的API框架发布之前,大多数人所做的。 + +如果你对 Django 的视图类很熟悉,你会觉得使用DRF构建REST API与使用它们很相似,不过 DRF 只针对特定 API 使用场景而设计。在一般 API 设计中,你会用到它的不少代码,所以我们强调了一些 DRF 的特性来使你更快地接受它,而不是去看一份让你兴奋的示例代码: + +* 可自动预览的 API 可以使你的开发和人工测试轻而易举。你可以查看 DRF 的[示例代码][15]。你可以查看 API 响应,并且它支持 POST/PUT/DELETE 类型的操作,不需要你做任何事。 + + +* 认证方式易于迁移,如OAuth, Basic Auth, 或API Tokens. +* 内建请求速度限制。 +* 当与 [django-rest-swagger][16] 结合时,API文档几乎可以自动生成。 +* 第三方库拥有广泛的生态。 + +当然你可以不依赖 DRF 来构建 API,但我们无法推测你不开始使用 DRF 的原因。就算你不使用 DRF 的全部特性,使用一个成熟的视图库来构建你自己的 API 也会使你的 API 更加一致、完全,更能提高你的开发速度。如果你还没有开始使用 DRF, 你应该找点时间去体验一下。 + +## 以 Django 为基础的最佳 CMS:[Wagtail][6] + +Wagtail是当下Django CMS(内容管理系统)世界中最受人青睐的应用,并且它的热门有足够的理由。就想大多数的 CMS 一样,它具有极佳的灵活性,可以通过简单的 Django 模型来定义不同类型的页面及其内容。使用它,你可以从零开始,在几个小时而不是几天之内来和建造一个基本可以运行的内容管理系统。举一个小例子,为你公司的员工定义一个页面类型可以像下面一样简单: + +```python +from wagtail.wagtailcore.models import Page +from wagtail.wagtailcore.fields import RichTextField +from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel +from wagtail.wagtailimages.edit_handlers import ImageChooserPanel + +class StaffPage(Page): + name = models.CharField(max_length=100) + hire_date = models.DateField() + bio = models.RichTextField() + email = models.EmailField() + headshot = models.ForeignKey('wagtailimages.Image', null=True, blank=True) + content_panels = Page.content_panels + [ + FieldPanel('name'), + FieldPanel('hire_date'), + FieldPanel('email'), + FieldPanel('bio',classname="full"), + ImageChoosePanel('headshot'), + ] +``` + +然而,Wagtail 真正出彩的地方在于它的灵活性及其易于使用的现代化管理页面。你可以控制不同类型的页面在哪网站的哪些区域可以访问,为页面添加复杂的附加逻辑,还可以极为方便地取得标准的适应/审批工作流。在大多数 CMS 系统中,你会在开发时在某些点上遇到困难。而使用 Wagtail 时,我们经过不懈努力找到了一个突破口,使得让我们轻易地开发出一套简洁稳定的系统,使得程序完全依照我们的想法运行。如果你对此感兴趣,我们写了一篇[深入理解 Wagtail][17]. + +## 提供社交账户登录的最佳工具:[django-allauth][7] + +django-allauth 是一个能够解决你的注册和认证需求的、可重用的Django应用。无论你需要构建本地注册系统还是社交账户注册系统,django-allauth 都能够帮你做到。 + +这个应用支持多种认证体系,比如用户名或电子邮件。一旦用户注册成功,它可以提供从零到电子邮件认证的多种账户验证的策略。同时,它也支持多种社交账户和电子邮件账户关联。它还支持可插拔的注册表单,可让用户在注册时回答一些附加问题。 + +django-allauth 支持多于 20 种认证提供者,包括 Facebook, Github, Google 和 Twitter。如果你发现了一个它不支持的社交网站,那很有可能有一款第三方插件提供该网站的接入支持。这个项目还支持自定义后台开发,可以支持自定义的认证方式。 + +django-allauth 易于配置,且有[完善的文档][18]。该项目通过了很多测试,所以你可以相信它的所有部件都会正常运作。 + +你有最喜爱的 Django 包吗?请在评论中告诉我们。 + +## 关于作者 + +![Photo](https://opensource.com/sites/default/files/styles/profile_pictures/public/pictures/main-one-i-use-everywhere.png?itok=66GC-D1q) + +Jeff Triplett + +劳伦斯,堪萨斯州 + + +我在 2007 年搬到了堪萨斯州的劳伦斯,在 Django 的发源地—— Lawrence Journal-World 工作。我现在在劳伦斯市的 [Revolution Systems (Revsys)][19] 工作,做一位开发者兼顾问。 + +我是[北美 Django 运动基金会(DEFNA)][20]的联合创始人,2015 和 2016 年 [DjangoCon US][21] 的会议主席,而且我在 Django 的发源地劳伦斯参与组织了 [Django Birthday][22] 来庆祝 Django 的 10 岁生日。 + +我是当地越野跑小组的成员,我喜欢篮球,我还喜欢梦见自己随着一道气流游遍美国。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/business/15/12/5-favorite-open-source-django-packages + +作者:[Jeff Triplett][a] +译者:[StdioA](https://github.com/StdioA) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/jefftriplett +[1]:https://docs.djangoproject.com/en/1.8/intro/reusable-apps/ +[2]:https://pypi.python.org/pypi?:action=browse&c=523 +[3]:https://github.com/audreyr/cookiecutter +[4]:http://whitenoise.evans.io/en/latest/base.html +[5]:http://www.django-rest-framework.org/ +[6]:https://wagtail.io/ +[7]:http://www.intenct.nl/projects/django-allauth/ +[8]:https://www.djangopackages.com/ +[9]:https://www.djangopackages.com/grids/g/rest/ +[10]:http://www2.ljworld.com/news/2015/jul/09/happy-birthday-django/ +[11]:https://docs.djangoproject.com/en/1.8/ref/views/#django.views.static.serve +[12]:https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/ +[13]:http://whitenoise.evans.io/en/latest/index.html +[14]:http://www.django-rest-framework.org/ +[15]:http://restframework.herokuapp.com/ +[16]:http://django-rest-swagger.readthedocs.org/en/latest/index.html +[17]:https://opensource.com/business/15/5/wagtail-cms +[18]:http://django-allauth.readthedocs.org/en/latest/ +[19]:http://www.revsys.com/ +[20]:http://defna.org/ +[21]:https://2015.djangocon.us/ +[22]:https://djangobirthday.com/ From 6fb68f93ec48052d7f75c43e48a401b2619a6aef Mon Sep 17 00:00:00 2001 From: cposture Date: Wed, 9 Mar 2016 19:13:58 +0800 Subject: [PATCH 254/582] translated character 2 --- .../20151220 GCC-Inline-Assembly-HOWTO.md | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md index c22e03bfd7..1324bfdc33 100644 --- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md +++ b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md @@ -1,12 +1,12 @@ 【Translating by cposture 2016-03-01】 * * * -# GCC内联汇编HOWTO +# GCC 内联汇编 HOWTO v0.1, 01 March 2003. * * * -_本HOWTO文档将讲解GCC提供的内联汇编特性的用途和用法。对于阅读这篇文章,这里只有两个前提要求,很明显,就是x86汇编语言和C语言的基本认识。_ +_本 HOWTO 文档将讲解 GCC 提供的内联汇编特性的用途和用法。对于阅读这篇文章,这里只有两个前提要求,很明显,就是 x86 汇编语言和 C 语言的基本认识。_ * * * @@ -16,36 +16,35 @@ _本HOWTO文档将讲解GCC提供的内联汇编特性的用途和用法。对 Copyright (C)2003 Sandeep S. -本文档自由共享;你可以重新发布它,并且/或者在遵循自由软件基金会发布的GNU通用公共许可证下修改它;或者该许可证的版本2,或者(按照你的需求)更晚的版本。 +本文档自由共享;你可以重新发布它,并且/或者在遵循自由软件基金会发布的 GNU 通用公共许可证下修改它;或者该许可证的版本 2 ,或者(按照你的需求)更晚的版本。 -发布这篇文档是希望它能够帮助别人,但是没有任何保证;甚至不包括可售性和适用于任何特定目的的保证。关于更详细的信息,可以查看GNU通用许可证。 +发布这篇文档是希望它能够帮助别人,但是没有任何保证;甚至不包括可售性和适用于任何特定目的的保证。关于更详细的信息,可以查看 GNU 通用许可证。 ## 1.2 反馈校正 -请将反馈和批评一起提交给[Sandeep.S](mailto:busybox@sancharnet.in)。我将感谢任何一个指出本文档中错误和不准确之处的人;一被告知,我会马上改正它们。 +请将反馈和批评一起提交给 [Sandeep.S](mailto:busybox@sancharnet.in) 。我将感谢任何一个指出本文档中错误和不准确之处的人;一被告知,我会马上改正它们。 ## 1.3 致谢 -我对提供如此棒的特性的GNU人们表示真诚的感谢。感谢Mr.Pramode C E所做的所有帮助。感谢在Govt Engineering College和Trichur朋友们的精神支持和合作,尤其是Nisha Kurur和Sakeeb S。 感谢在Gvot Engineering College和Trichur老师们的合作。 +我对提供如此棒的特性的 GNU 人们表示真诚的感谢。感谢 Mr.Pramode C E 所做的所有帮助。感谢在 Govt Engineering College 和 Trichur 的朋友们的精神支持和合作,尤其是 Nisha Kurur 和 Sakeeb S 。 感谢在 Gvot Engineering College 和 Trichur 的老师们的合作。 -另外,感谢Phillip, Brennan Underwood and colin@nyx.net;这里的许多东西都厚颜地直接取自他们的工作成果。 +另外,感谢 Phillip , Brennan Underwood 和 colin@nyx.net ;这里的许多东西都厚颜地直接取自他们的工作成果。 * * * ## 2. 概览 -在这里,我们将学习GCC内联汇编。这内联表示的是什么呢? +在这里,我们将学习 GCC 内联汇编。这内联表示的是什么呢? 我们可以要求编译器将一个函数的代码插入到调用者代码中函数被实际调用的地方。这样的函数就是内联函数。这听起来和宏差不多?这两者确实有相似之处。 +内联函数的优点是什么呢? -What is the benefit of inline functions? +这种内联方法可以减少函数调用开销。同时如果所有实参的值为常量,它们的已知值可以在编译期允许简化,因此并非所有的内联函数代码都需要被包含。代码大小的影响是不可预测的,这取决于特定的情况。为了声明一个内联函数,我们必须在函数声明中使用 `inline` 关键字。 -This method of inlining reduces the function-call overhead. And if any of the actual argument values are constant, their known values may permit simplifications at compile time so that not all of the inline function’s code needs to be included. The effect on code size is less predictable, it depends on the particular case. To declare an inline function, we’ve to use the keyword `inline` in its declaration. +现在我们正处于一个猜测内联汇编到底是什么的点上。它只不过是一些写为内联函数的汇编程序。在系统编程上,它们方便、快速并且极其有用。我们主要集中学习(GCC)内联汇编函数的基本格式和用法。为了声明内联汇编函数,我们使用 `asm` 关键词。 -Now we are in a position to guess what is inline assembly. Its just some assembly routines written as inline functions. They are handy, speedy and very much useful in system programming. Our main focus is to study the basic format and usage of (GCC) inline assembly functions. To declare inline assembly functions, we use the keyword `asm`. - -Inline assembly is important primarily because of its ability to operate and make its output visible on C variables. Because of this capability, "asm" works as an interface between the assembly instructions and the "C" program that contains it. +内联汇编之所以重要,主要是因为它能在 C 变量上操作和使其输出可见的能力。正是因为此能力, "asm" 起到了汇编指令和 包含它的"C"程序之间的接口作用。 * * * From c9dfda04bed704d1506300763541d5c459cfde18 Mon Sep 17 00:00:00 2001 From: cposture Date: Wed, 9 Mar 2016 20:22:34 +0800 Subject: [PATCH 255/582] translated character 3 --- .../20151220 GCC-Inline-Assembly-HOWTO.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md index 1324bfdc33..24e749e829 100644 --- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md +++ b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md @@ -44,47 +44,47 @@ Copyright (C)2003 Sandeep S. 现在我们正处于一个猜测内联汇编到底是什么的点上。它只不过是一些写为内联函数的汇编程序。在系统编程上,它们方便、快速并且极其有用。我们主要集中学习(GCC)内联汇编函数的基本格式和用法。为了声明内联汇编函数,我们使用 `asm` 关键词。 -内联汇编之所以重要,主要是因为它能在 C 变量上操作和使其输出可见的能力。正是因为此能力, "asm" 起到了汇编指令和 包含它的"C"程序之间的接口作用。 +内联汇编之所以重要,主要是因为它可以操作并且使其输出通过 C 变量显示出来。正是因为此能力, "asm" 可以用作汇编指令和包含它的 C 程序之间的接口。 * * * -## 3. GCC Assembler Syntax. +## 3. GCC 汇编语法 -GCC, the GNU C Compiler for Linux, uses **AT&T**/**UNIX** assembly syntax. Here we’ll be using AT&T syntax for assembly coding. Don’t worry if you are not familiar with AT&T syntax, I will teach you. This is quite different from Intel syntax. I shall give the major differences. +GCC , Linux上的 GNU C 编译器,使用 **AT&T** / **UNIX** 汇编语法。在这里,我们将使用 AT&T 语法 进行汇编编码。如果你对 AT&T 语法不熟悉的话,请不要紧张,我会教你的。AT&T 语法和 Intel 语法的差别很大。我会给出主要的区别。 -1. Source-Destination Ordering. +1. 源操作数和目的操作数顺序 - The direction of the operands in AT&T syntax is opposite to that of Intel. In Intel syntax the first operand is the destination, and the second operand is the source whereas in AT&T syntax the first operand is the source and the second operand is the destination. ie, + AT&T 语法的操作数方向和 Intel 语法的刚好相反。在Intel 语法中,第一操作数为目的操作数,第二操作数为源操作数,然而在 AT&T 语法中,第一操作数为源操作数,第二操作数为目的操作数。也就是说, - "Op-code dst src" in Intel syntax changes to + Intel 语法中的 "Op-code dst src" 变为 + + AT&T 语法中的 "Op-code src dst"。 - "Op-code src dst" in AT&T syntax. +2. 寄存器命名 -2. Register Naming. + 寄存器名称有 % 前缀,即如果必须使用 eax,它应该用作 %eax。 - Register names are prefixed by % ie, if eax is to be used, write %eax. +3. 立即数 -3. Immediate Operand. + AT&T 立即数以 ’$’ 为前缀。静态 "C" 变量 也使用 ’$’ 前缀。在 Intel 语法中,十六进制常量以 ’h’ 为后缀,然而AT&T不使用这种语法,这里我们给常量添加前缀 ’0x’。所以,对于十六进制,我们首先看到一个 ’$’,然后是 ’0x’,最后才是常量。 - AT&T immediate operands are preceded by ’$’. For static "C" variables also prefix a ’$’. In Intel syntax, for hexadecimal constants an ’h’ is suffixed, instead of that, here we prefix ’0x’ to the constant. So, for hexadecimals, we first see a ’$’, then ’0x’ and finally the constants. +4. 操作数大小 -4. Operand Size. + 在 AT&T 语法中,存储器操作数的大小取决于操作码名字的最后一个字符。操作码后缀 ’b’ 、’w’、’l’分别指明了字节(byte)(8位)、字(word)(16位)、长型(long)(32位)存储器引用。Intel 语法通过给存储器操作数添加’byte ptr’、 ’word ptr’ 和 ’dword ptr’前缀来实现这一功能。 - In AT&T syntax the size of memory operands is determined from the last character of the op-code name. Op-code suffixes of ’b’, ’w’, and ’l’ specify byte(8-bit), word(16-bit), and long(32-bit) memory references. Intel syntax accomplishes this by prefixing memory operands (not the op-codes) with ’byte ptr’, ’word ptr’, and ’dword ptr’. + 因此,Intel的 "mov al, byte ptr foo" 在 AT&T 语法中为 "movb foo, %al"。 - Thus, Intel "mov al, byte ptr foo" is "movb foo, %al" in AT&T syntax. +5. 存储器操作数 + + 在 Intel 语法中,基址寄存器包含在 ’[’ 和 ’]’ 中,然而在 AT&T 中,它们变为 ’(’ 和 ’)’。另外,在 Intel 语法中, 间接内存引用为 -5. Memory Operands. + section:[base + index*scale + disp], 在 AT&T中变为 - In Intel syntax the base register is enclosed in ’[’ and ’]’ where as in AT&T they change to ’(’ and ’)’. Additionally, in Intel syntax an indirect memory reference is like + section:disp(base, index, scale)。 - section:[base + index*scale + disp], which changes to + 需要牢记的一点是,当一个常量用于 disp 或 scale,不能添加’$’前缀。 - section:disp(base, index, scale) in AT&T. - - One point to bear in mind is that, when a constant is used for disp/scale, ’$’ shouldn’t be prefixed. - -Now we saw some of the major differences between Intel syntax and AT&T syntax. I’ve wrote only a few of them. For a complete information, refer to GNU Assembler documentations. Now we’ll look at some examples for better understanding. +现在我们看到了 Intel 语法和 AT&T 语法之间的一些主要差别。我仅仅写了它们差别的一部分而已。关于更完整的信息,请参考 GNU 汇编文档。现在为了更好地理解,我们可以看一些示例。 > ` > From 3c995d45a886f460070ca6101505567a57781a7d Mon Sep 17 00:00:00 2001 From: alim0x Date: Wed, 9 Mar 2016 20:24:12 +0800 Subject: [PATCH 256/582] [translating]23 - The history of Android --- .../The history of Android/23 - The history of Android.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/talk/The history of Android/23 - The history of Android.md b/sources/talk/The history of Android/23 - The history of Android.md index e67dff87e6..f140949d7b 100644 --- a/sources/talk/The history of Android/23 - The history of Android.md +++ b/sources/talk/The history of Android/23 - The history of Android.md @@ -1,3 +1,5 @@ +alim0x translating + The history of Android ================================================================================ ![Another Play Store redesign! This one is very close to the current design and uses cards that make layout changes a piece of cake.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/get-em-Kirill.jpg) @@ -56,4 +58,4 @@ via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-histor [2]:http://arstechnica.com/information-technology/2013/05/hands-on-with-hangouts-googles-new-text-and-video-chat-architecture/ [3]:https://developer.android.com/design/patterns/navigation-drawer.html [a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo \ No newline at end of file +[t]:https://twitter.com/RonAmadeo From 063ba12e7efb22f91f28f16f7ca7fa36f1377c19 Mon Sep 17 00:00:00 2001 From: cposture Date: Thu, 10 Mar 2016 02:53:17 +0800 Subject: [PATCH 257/582] translated character 4 --- .../20151220 GCC-Inline-Assembly-HOWTO.md | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md index 24e749e829..39ac8a180f 100644 --- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md +++ b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md @@ -108,29 +108,29 @@ GCC , Linux上的 GNU C 编译器,使用 **AT&T** / **UNIX** 汇编语法。 * * * -## 4. Basic Inline. +## 4. 基本内联 -The format of basic inline assembly is very much straight forward. Its basic form is +基本内联汇编的格式非常直接了当。它的基本格式为 -`asm("assembly code");` +`asm("汇编代码");` -Example. +示例 > ` > > * * * > ->
asm("movl %ecx %eax"); /* moves the contents of ecx to eax */
-> __asm__("movb %bh (%eax)"); /*moves the byte from bh to the memory pointed by eax */
+> 
asm("movl %ecx %eax"); /* 将 ecx 寄存器的内容移至 eax  */
+> __asm__("movb %bh (%eax)"); /* 将 bh 的一个字节数据 移至 eax 寄存器指向的内存 */
 > 
> > * * * > > ` -You might have noticed that here I’ve used `asm` and `__asm__`. Both are valid. We can use `__asm__` if the keyword `asm` conflicts with something in our program. If we have more than one instructions, we write one per line in double quotes, and also suffix a ’\n’ and ’\t’ to the instruction. This is because gcc sends each instruction as a string to **as**(GAS) and by using the newline/tab we send correctly formatted lines to the assembler. +你可能注意到了这里我使用了 `asm ` 和 `__asm__`。这两者都是有效的。如果关键词 `asm` 和我们程序的一些标识符冲突了,我们可以使用 `__asm__`。如果我们的指令多余一条,我们可以写成一行,并用括号括起,也可以为每条指令添加 ’\n’ 和 ’\t’ 后缀。这是因为gcc将每一条当作字符串发送给 **as**(GAS)( GAS 即 GNU 汇编器 ——译者注),并且通过使用换行符/制表符发送正确地格式化行给汇编器。 -Example. +示例 > ` > @@ -146,22 +146,22 @@ Example. > > ` -If in our code we touch (ie, change the contents) some registers and return from asm without fixing those changes, something bad is going to happen. This is because GCC have no idea about the changes in the register contents and this leads us to trouble, especially when compiler makes some optimizations. It will suppose that some register contains the value of some variable that we might have changed without informing GCC, and it continues like nothing happened. What we can do is either use those instructions having no side effects or fix things when we quit or wait for something to crash. This is where we want some extended functionality. Extended asm provides us with that functionality. +如果在代码中,我们涉及到一些寄存器(即改变其内容),但在没有固定这些变化的情况下从汇编中返回,这将会导致一些不好的事情。这是因为 GCC 并不知道寄存器内容的变化,这会导致问题,特别是当编译器做了某些优化。在没有告知 GCC 的情况下,它将会假设一些寄存器存储了我们可能已经改变的变量的值,它会像什么事都没发生一样继续运行(什么事都没发生一样是指GCC不会假设寄存器装入的值是有效的,当退出改变了寄存器值的内联汇编后,寄存器的值不会保存到相应的变量或内存空间 ——译者注)。我们所可以做的是使用这些没有副作用的指令,或者当我们退出时固定这些寄存器,或者等待程序崩溃。这是为什么我们需要一些扩展功能。扩展汇编正好给我们提供了那样的功能。 * * * -## 5. Extended Asm. +## 5. 扩展汇编 -In basic inline assembly, we had only instructions. In extended assembly, we can also specify the operands. It allows us to specify the input registers, output registers and a list of clobbered registers. It is not mandatory to specify the registers to use, we can leave that head ache to GCC and that probably fit into GCC’s optimization scheme better. Anyway the basic format is: +在基本内联汇编中,我们只有指令。然而在扩展汇编中,我们可以同时指定操作数。它允许我们指定输入寄存器、输出寄存器以及修饰寄存器列表。GCC 不强制用户必须指定使用的寄存器。我们可以把头疼的事留给 GCC ,这可能可以更好地适应 GCC 的优化。不管怎樣,基本格式为: > ` > > * * * > ->
       asm ( assembler template 
->            : output operands                  /* optional */
->            : input operands                   /* optional */
->            : list of clobbered registers      /* optional */
+> 
       asm ( 汇编程序模板 
+>            : 输出操作数					/* 可选的 */
+>            : 输入操作数                   /* 可选的 */
+>            : 修饰寄存器列表			    /* 可选的 */
 >            );
 > 
> @@ -169,11 +169,11 @@ In basic inline assembly, we had only instructions. In extended assembly, we can > > ` -The assembler template consists of assembly instructions. Each operand is described by an operand-constraint string followed by the C expression in parentheses. A colon separates the assembler template from the first output operand and another separates the last output operand from the first input, if any. Commas separate the operands within each group. The total number of operands is limited to ten or to the maximum number of operands in any instruction pattern in the machine description, whichever is greater. +汇编程序模板由汇编指令组成.每一个操作数由一个操作数约束字符串所描述,其后紧接一个括弧括起的 C 表达式。冒号用于将汇编程序模板和第一个输出操作数分开,另一个(冒号)用于将最后一个输出操作数和第一个输入操作数分开,如果存在的话。逗号用于分离每一个组内的操作数。总操作数的数目限制在10个,或者机器描述中的任何指令格式中的最大操作数数目,以较大者为准。 -If there are no output operands but there are input operands, you must place two consecutive colons surrounding the place where the output operands would go. +如果没有输出操作数但存在输入操作数,你必须将两个连续的冒号放置于输出操作数原本会放置的地方周围。 -Example: +示例: > ` > @@ -182,7 +182,7 @@ Example: >
        asm ("cld\n\t"
 >              "rep\n\t"
 >              "stosl"
->              : /* no output registers */
+>              : /* 无输出寄存器 */
 >              : "c" (count), "a" (fill_value), "D" (dest)
 >              : "%ecx", "%edi" 
 >              );
@@ -192,7 +192,7 @@ Example:
 > 
 > `
 
-Now, what does this code do? The above inline fills the `fill_value` `count` times to the location pointed to by the register `edi`. It also says to gcc that, the contents of registers `eax` and `edi` are no longer valid. Let us see one more example to make things more clearer.
+现在,这段代码是干什么的?以上的内联汇编是将 `fill_value` 值 连续 `count` 次 拷贝到 寄存器 `edi` 所指位置(每执行stosl一次,寄存器 edi 的值会递增或递减,这取决于是否设置了 direction 标志,因此以上代码实则初始化一个内存块 ——译者注)。 它也告诉 gcc 寄存器 `ecx` 和 `edi` 一直无效(原文为 eax ,但代码修饰寄存器列表中为 ecx,因此这可能为作者的纰漏 ——译者注)。为了使扩展汇编更加清晰,让我们再看一个示例。
 
 > `
 > 
@@ -202,9 +202,9 @@ Now, what does this code do? The above inline fills the `fill_value` `count` 
 >         int a=10, b;
 >         asm ("movl %1, %%eax; 
 >               movl %%eax, %0;"
->              :"=r"(b)        /* output */
->              :"r"(a)         /* input */
->              :"%eax"         /* clobbered register */
+>              :"=r"(b)        /* 输出 */
+>              :"r"(a)         /* 输入 */
+>              :"%eax"         /* 修饰寄存器 */
 >              );       
 > 
> @@ -212,6 +212,7 @@ Now, what does this code do? The above inline fills the `fill_value` `count`  > > ` + Here what we did is we made the value of ’b’ equal to that of ’a’ using assembly instructions. Some points of interest are: * "b" is the output operand, referred to by %0 and "a" is the input operand, referred to by %1. @@ -564,7 +565,6 @@ Now we have covered the basic theory about GCC inline assembly, now we shall con > > * * * > - >
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
     > type name(type1 arg1,type2 arg2,type3 arg3) \
     > { \
     > long __res; \

From e896356f50417aeb520c5b159047301722d7aaa6 Mon Sep 17 00:00:00 2001
From: Name1e5s <836401406@qq.com>
Date: Fri, 11 Mar 2016 14:15:56 +0800
Subject: [PATCH 258/582] Name1e5s translating

---
 ... Startup Process and Services SysVinit Systemd and Upstart.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md
index 2a822e8a45..24d431696d 100644
--- a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md	
+++ b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md	
@@ -1,3 +1,4 @@
+Name1e5s translating......
 Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart)
 ================================================================================
 A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams.

From 3e2b2bd1bd5f81d27c26b1bfbcc0be4c5063f3a0 Mon Sep 17 00:00:00 2001
From: cposture 
Date: Sat, 12 Mar 2016 02:26:46 +0800
Subject: [PATCH 259/582] translated 6th character

---
 .../20151220 GCC-Inline-Assembly-HOWTO.md     | 141 +++++++++---------
 1 file changed, 71 insertions(+), 70 deletions(-)

diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md
index 39ac8a180f..b60ccad1f3 100644
--- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md	
+++ b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md	
@@ -212,37 +212,36 @@ GCC , Linux上的 GNU C 编译器,使用 **AT&T** / **UNIX** 汇编语法。
 > 
 > `
 
+这里我们所做的是使用汇编指令使 ’b’ 变量的值等于 ’a’ 变量的值。一些有意思的地方是:
 
-Here what we did is we made the value of ’b’ equal to that of ’a’ using assembly instructions. Some points of interest are:
+*	"b" 为输出操作数,用 %0 引用,并且 "a" 为输入操作数,用 %1 引用。
+*	"r" 为操作数约束。之后我们会更详细地了解约束(字符串)。目前,"r" 告诉 GCC 可以使用任一寄存器存储操作数。输出操作数约束应该有一个约束修饰符 "=" 。这修饰符表明它是一个只读的输出操作数。
+*	寄存器名字以两个%为前缀。这有利于 GCC 区分操作数和寄存器。操作数以一个 % 为前缀。
+*	第三个冒号之后的修饰寄存器 %eax 告诉 GCC %eax的值将会在 "asm" 内部被修改,所以 GCC 将不会使用此寄存器存储任何其他值。
 
-*   "b" is the output operand, referred to by %0 and "a" is the input operand, referred to by %1.
-*   "r" is a constraint on the operands. We’ll see constraints in detail later. For the time being, "r" says to GCC to use any register for storing the operands. output operand constraint should have a constraint modifier "=". And this modifier says that it is the output operand and is write-only.
-*   There are two %’s prefixed to the register name. This helps GCC to distinguish between the operands and registers. operands have a single % as prefix.
-*   The clobbered register %eax after the third colon tells GCC that the value of %eax is to be modified inside "asm", so GCC won’t use this register to store any other value.
+当 "asm" 执行完毕, "b" 变量会映射到更新的值,因为它被指定为输出操作数。换句话说, "asm" 内 "b" 变量的修改 应该会被映射到 "asm" 外部。
 
-When the execution of "asm" is complete, "b" will reflect the updated value, as it is specified as an output operand. In other words, the change made to "b" inside "asm" is supposed to be reflected outside the "asm".
+现在,我们可以更详细地看看每一个域。
 
-Now we may look each field in detail.
+## 5.1 汇编程序模板
 
-## 5.1 Assembler Template.
+汇编程序模板包含了被插入到 C 程序的汇编指令集。其格式为:每条指令用双引号圈起,或者整个指令组用双引号圈起。同时每条指令应以分界符结尾。有效的分界符有换行符(\n)和逗号(;)。’\n’ 可以紧随一个制表符(\t)。我们应该都明白使用换行符或制表符的原因了吧?和 C 表达式对应的操作数使用 %0、%1 ... 等等表示。
 
-The assembler template contains the set of assembly instructions that gets inserted inside the C program. The format is like: either each instruction should be enclosed within double quotes, or the entire group of instructions should be within double quotes. Each instruction should also end with a delimiter. The valid delimiters are newline(\n) and semicolon(;). ’\n’ may be followed by a tab(\t). We know the reason of newline/tab, right?. Operands corresponding to the C expressions are represented by %0, %1 ... etc.
+## 5.2 操作数
 
-## 5.2 Operands.
+C 表达式用作 "asm" 内的汇编指令操作数。作为第一双引号内的操作数约束,写下每一操作数。对于输出操作数,在引号内还有一个约束修饰符,其后紧随一个用于表示操作数的 C 表达式。即,
 
-C expressions serve as operands for the assembly instructions inside "asm". Each operand is written as first an operand constraint in double quotes. For output operands, there’ll be a constraint modifier also within the quotes and then follows the C expression which stands for the operand. ie,
+"约束字符串"(C 表达式),它是一个通用格式。对于输出操作数,还有一个额外的修饰符。约束字符串主要用于决定操作数的寻找方式,同时也用于指定使用的寄存器。
 
-"constraint" (C expression) is the general form. For output operands an additional modifier will be there. Constraints are primarily used to decide the addressing modes for operands. They are also used in specifying the registers to be used.
+如果我们使用的操作数多于一个,那么每一个操作数用逗号隔开。
 
-If we use more than one operand, they are separated by comma.
+在汇编程序模板,每个操作数用数字引用。编号方式如下。如果总共有 n 个操作数(包括输入和输出操作数),那么第一个输出操作数编号为 0 ,逐项递增,并且最后一个输入操作数编号为 n - 1 。操作数的最大数目为前一节我们所看到的那样。
 
-In the assembler template, each operand is referenced by numbers. Numbering is done as follows. If there are a total of n operands (both input and output inclusive), then the first output operand is numbered 0, continuing in increasing order, and the last input operand is numbered n-1\. The maximum number of operands is as we saw in the previous section.
+输出操作数表达式必须为左值。输入操作数的要求不像这样严格。它们可以为表达式。扩展汇编特性常常用于编译器自己不知道其存在的机器指令 ;-)。如果输出表达式无法直接寻址(例如,它是一个位域),我们的约束字符串必须给定一个寄存器。在这种情况下,GCC 将会使用该寄存器作为汇编的输出,然后存储该寄存器的内容到输出。
 
-Output operand expressions must be lvalues. The input operands are not restricted like this. They may be expressions. The extended asm feature is most often used for machine instructions the compiler itself does not know as existing ;-). If the output expression cannot be directly addressed (for example, it is a bit-field), our constraint must allow a register. In that case, GCC will use the register as the output of the asm, and then store that register contents into the output.
+正如前面所陈述的一样,普通的输出操作数必须为只写的; GCC 将会假设指令前的操作数值是死的,并且不需要被(提前)生成。扩展汇编也支持输入-输出或者读-写操作数。
 
-As stated above, ordinary output operands must be write-only; GCC will assume that the values in these operands before the instruction are dead and need not be generated. Extended asm also supports input-output or read-write operands.
-
-So now we concentrate on some examples. We want to multiply a number by 5\. For that we use the instruction `lea`.
+所以现在我们来关注一些示例。我们想要求一个数的5次方结果。为了计算该值,我们使用 `lea` 指令。
 
 > `
 > 
@@ -258,7 +257,7 @@ So now we concentrate on some examples. We want to multiply a number by 5\. For
 > 
 > `
 
-Here our input is in ’x’. We didn’t specify the register to be used. GCC will choose some register for input, one for output and does what we desired. If we want the input and output to reside in the same register, we can instruct GCC to do so. Here we use those types of read-write operands. By specifying proper constraints, here we do it.
+这里我们的输入为x。我们不指定使用的寄存器。 GCC 将会选择一些输入寄存器,一个输出寄存器,并且做我们期望的事。如果我们想要输入和输出存在于同一个寄存器里,我们可以要求 GCC 这样做。这里我们使用那些读-写操作数类型。这里我们通过指定合适的约束来实现它。
 
 > `
 > 
@@ -274,7 +273,7 @@ Here our input is in ’x’. We didn’t specify the register to be used. GCC w
 > 
 > `
 
-Now the input and output operands are in the same register. But we don’t know which register. Now if we want to specify that also, there is a way.
+现在输出和输出操作数位于同一个寄存器。但是我们无法得知是哪一个寄存器。现在假如我们也想要指定操作数所在的寄存器,这里有一种方法。
 
 > `
 > 
@@ -290,17 +289,17 @@ Now the input and output operands are in the same register. But we don’t know
 > 
 > `
 
-In all the three examples above, we didn’t put any register to the clobber list. why? In the first two examples, GCC decides the registers and it knows what changes happen. In the last one, we don’t have to put `ecx` on the c lobberlist, gcc knows it goes into x. Therefore, since it can know the value of `ecx`, it isn’t considered clobbered.
+在以上三个示例中,我们并没有添加任何寄存器到修饰寄存器里,为什么?在头两个示例, GCC 决定了寄存器并且它知道发生了什么改变。在最后一个示例,我们不必将 'ecx' 添加到修饰寄存器列表(原文修饰寄存器列表拼写有错,这里已修正 ——译者注), gcc 知道它表示x。因此,因为它可以知道 `ecx` 的值,它就不被当作修饰的(寄存器)了。
 
-## 5.3 Clobber List.
+## 5.3 修饰寄存器列表
 
-Some instructions clobber some hardware registers. We have to list those registers in the clobber-list, ie the field after the third ’**:**’ in the asm function. This is to inform gcc that we will use and modify them ourselves. So gcc will not assume that the values it loads into these registers will be valid. We shoudn’t list the input and output registers in this list. Because, gcc knows that "asm" uses them (because they are specified explicitly as constraints). If the instructions use any other registers, implicitly or explicitly (and the registers are not present either in input or in the output constraint list), then those registers have to be specified in the clobbered list.
+一些指令会破坏一些硬件寄存器。我们不得不在修饰寄存器中列出这些寄存器,即汇编函数内第三个 ’**:**’ 之后的域。这可以通知 gcc 我们将会自己使用和修改这些寄存器。所以 gcc 将不会假设存入这些寄存器的值是有效的。我们不用在这个列表里列出输入输出寄存器。因为 gcc 知道 "asm" 使用了它们(因为它们被显式地指定为约束了)。如果指令隐式或显式地使用了任何其他寄存器,(并且寄存器不能出现在输出或者输出约束列表里),那么不得不在修饰寄存器列表中指定这些寄存器。
 
-If our instruction can alter the condition code register, we have to add "cc" to the list of clobbered registers.
+如果我们的指令可以修改状态寄存器,我们必须将 "cc" 添加进修饰寄存器列表。
 
-If our instruction modifies memory in an unpredictable fashion, add "memory" to the list of clobbered registers. This will cause GCC to not keep memory values cached in registers across the assembler instruction. We also have to add the **volatile** keyword if the memory affected is not listed in the inputs or outputs of the asm.
+如果我们的指令以不可预测的方式修改了内存,那么需要将 "memory" 添加进修饰寄存器列表。这可以使 GCC 不会在汇编指令间保持缓存于寄存器的内存值。如果被影响的内存不在汇编的输入或输出列表中,我们也必须添加 **volatile** 关键词。
 
-We can read and write the clobbered registers as many times as we like. Consider the example of multiple instructions in a template; it assumes the subroutine _foo accepts arguments in registers `eax` and `ecx`.
+我们可以按我们的需求多次读写修饰寄存器。考虑一个模板内的多指令示例;它假设子例程 _foo 接受寄存器 `eax` 和 `ecx` 里的参数。
 
 > `
 > 
@@ -321,35 +320,36 @@ We can read and write the clobbered registers as many times as we like. Consider
 
 ## 5.4 Volatile ...?
 
-If you are familiar with kernel sources or some beautiful code like that, you must have seen many functions declared as `volatile` or `__volatile__` which follows an `asm` or `__asm__`. I mentioned earlier about the keywords `asm` and `__asm__`. So what is this `volatile`?
+如果你熟悉内核源码或者其他像内核源码一样漂亮的代码,你一定见过许多声明为 `volatile` 或者 `__volatile__`的函数,其跟着一个 `asm` 或者 `__asm__`。我之前提过关键词 `asm` 和 `__asm__`。那么什么是 `volatile`呢?
 
-If our assembly statement must execute where we put it, (i.e. must not be moved out of a loop as an optimization), put the keyword `volatile` after asm and before the ()’s. So to keep it from moving, deleting and all, we declare it as
+如果我们的汇编语句必须在我们放置它的地方执行(即,不能作为一种优化被移出循环语句),将关键词 `volatile` 放置在 asm 后面,()的前面。因为为了防止它被移动、删除或者其他操作,我们将其声明为
 
 `asm volatile ( ... : ... : ... : ...);`
 
-Use `__volatile__` when we have to be verymuch careful.
+当我们必须非常谨慎时,请使用 `__volatile__`。
 
-If our assembly is just for doing some calculations and doesn’t have any side effects, it’s better not to use the keyword `volatile`. Avoiding it helps gcc in optimizing the code and making it more beautiful.
+如果我们的汇编只是用于一些计算并且没有任何副作用,不使用 `volatile` 关键词会更好。不使用 `volatile` 可以帮助 gcc 优化代码并使代码更漂亮。
 
-In the section `Some Useful Recipes`, I have provided many examples for inline asm functions. There we can see the clobber-list in detail.
+
+在 `Some Useful Recipes` 一节中,我提供了多个内联汇编函数的例子。这儿我们详细查看修饰寄存器列表。
 
 * * *
 
-## 6. More about constraints.
+## 6. 更多关于约束
 
-By this time, you might have understood that constraints have got a lot to do with inline assembly. But we’ve said little about constraints. Constraints can say whether an operand may be in a register, and which kinds of register; whether the operand can be a memory reference, and which kinds of address; whether the operand may be an immediate constant, and which possible values (ie range of values) it may have.... etc.
+到这个时候,你可能已经了解到约束和内联汇编有很大的关联。但我们很少说到约束。约束用于表明一个操作数是否可以位于寄存器和位于哪个寄存器;是否操作数可以为一个内存引用和哪种地址;是否操作数可以为一个立即数和为哪一个可能的值(即值的范围)。它可以有...等等。
 
-## 6.1 Commonly used constraints.
+## 6.1 常用约束
 
-There are a number of constraints of which only a few are used frequently. We’ll have a look at those constraints.
+在许多约束中,只有小部分是常用的。我们将看看这些约束。
 
-1.  **Register operand constraint(r)**
+1.  **寄存器操作数约束(r)**
 
-    When operands are specified using this constraint, they get stored in General Purpose Registers(GPR). Take the following example:
+	当使用这种约束指定操作数时,它们存储在通用寄存器(GPR)中。请看下面示例:
 
     `asm ("movl %%eax, %0\n" :"=r"(myval));`
 
-    Here the variable myval is kept in a register, the value in register `eax` is copied onto that register, and the value of `myval` is updated into the memory from this register. When the "r" constraint is specified, gcc may keep the variable in any of the available GPRs. To specify the register, you must directly specify the register names by using specific register constraints. They are:
+	这里,变量 myval 保存在寄存器中,寄存器 eax 的值被复制到该寄存器中,并且myval的值从寄存器更新到了内存。当指定 "r" 约束时, gcc 可以将变量保存在任何可用的 GPR 中。为了指定寄存器,你必须使用特定寄存器约束直接地指定寄存器的名字。它们为:
 
     > `
     > 
@@ -367,57 +367,58 @@ There are a number of constraints of which only a few are used frequently. We’
     > 
     > `
 
-2.  **Memory operand constraint(m)**
+2.	**内存操作数约束(m)**
 
-    When the operands are in the memory, any operations performed on them will occur directly in the memory location, as opposed to register constraints, which first store the value in a register to be modified and then write it back to the memory location. But register constraints are usually used only when they are absolutely necessary for an instruction or they significantly speed up the process. Memory constraints can be used most efficiently in cases where a C variable needs to be updated inside "asm" and you really don’t want to use a register to hold its value. For example, the value of idtr is stored in the memory location loc:
+	当操作数位于内存时,任何对它们的操作将直接发生在内存位置,这与寄存器约束相反,后者首先将值存储在要修改的寄存器中,然后将它写回到内存位置。但寄存器约束通常用于一个指令必须使用它们或者它们可以大大提高进程速度的地方。当需要在 "asm" 内更新一个 C 变量,而又不想使用寄存器去保存它的只,使用内存最为有效。例如, idtr 的值存储于内存位置:
 
     `asm("sidt %0\n" : :"m"(loc));`
 
-3.  **Matching(Digit) constraints**
+3.	**匹配(数字)约束**
 
-    In some cases, a single variable may serve as both the input and the output operand. Such cases may be specified in "asm" by using matching constraints.
+	在某些情况下,一个变量可能既充当输入操作数,也充当输出操作数。可以通过使用匹配约束在 "asm" 中指定这种情况。
 
     `asm ("incl %0" :"=a"(var):"0"(var));`
 
-    We saw similar examples in operands subsection also. In this example for matching constraints, the register %eax is used as both the input and the output variable. var input is read to %eax and updated %eax is stored in var again after increment. "0" here specifies the same constraint as the 0th output variable. That is, it specifies that the output instance of var should be stored in %eax only. This constraint can be used:
+	在操作数子节中,我们也看到了一些类似的示例。在这个匹配约束的示例中,寄存器 "%eax" 既用作输入变量,也用作输出变量。 var 输入被读进 %eax ,并且更新的 %eax 再次被存储进 var。这里的 "0" 用于指定与第0个输出变量相同的约束。也就是,它指定 var 输出实例应只被存储在 "%eax" 中。该约束可用于:
 
-    *   In cases where input is read from a variable or the variable is modified and modification is written back to the same variable.
-    *   In cases where separate instances of input and output operands are not necessary.
+	*	在输入从变量读取或变量修改后,修改被写回同一变量的情况
+	*	在不需要将输入操作数实例和输出操作数实例分开的情况
 
-    The most important effect of using matching restraints is that they lead to the efficient use of available registers.
+	使用匹配约束最重要的意义在于它们可以导致有效地使用可用寄存器。
 
-Some other constraints used are:
+其他一些约束:
 
-1.  "m" : A memory operand is allowed, with any kind of address that the machine supports in general.
-2.  "o" : A memory operand is allowed, but only if the address is offsettable. ie, adding a small offset to the address gives a valid address.
+1.	"m" : 允许一个内存操作数使用机器普遍支持的任一种地址。
+2.	"o" : 允许一个内存操作数,但只有当地址是可偏移的。即,该地址加上一个小的偏移量可以得到一个地址。
 3.  "V" : A memory operand that is not offsettable. In other words, anything that would fit the `m’ constraint but not the `o’constraint.
-4.  "i" : An immediate integer operand (one with constant value) is allowed. This includes symbolic constants whose values will be known only at assembly time.
-5.  "n" : An immediate integer operand with a known numeric value is allowed. Many systems cannot support assembly-time constants for operands less than a word wide. Constraints for these operands should use ’n’ rather than ’i’.
-6.  "g" : Any register, memory or immediate integer operand is allowed, except for registers that are not general registers.
+4.	"i" : 允许一个(带有常量)的立即整形操作数。这包括其值仅在汇编时期知道的符号常量。
+5.	"n" : 允许一个带有已知数字的立即整形操作数。许多系统不支持汇编时期的常量,因为操作数少于一个字宽。对于此种操作数,约束应该使用 'n' 而不是'i'。 
+6.	"g" : 允许任一寄存器、内存或者立即整形操作数,不包括通用寄存器之外的寄存器。
 
-Following constraints are x86 specific.
 
-1.  "r" : Register operand constraint, look table given above.
-2.  "q" : Registers a, b, c or d.
-3.  "I" : Constant in range 0 to 31 (for 32-bit shifts).
-4.  "J" : Constant in range 0 to 63 (for 64-bit shifts).
-5.  "K" : 0xff.
-6.  "L" : 0xffff.
-7.  "M" : 0, 1, 2, or 3 (shifts for lea instruction).
-8.  "N" : Constant in range 0 to 255 (for out instruction).
-9.  "f" : Floating point register
-10.  "t" : First (top of stack) floating point register
-11.  "u" : Second floating point register
-12.  "A" : Specifies the `a’ or `d’ registers. This is primarily useful for 64-bit integer values intended to be returned with the `d’ register holding the most significant bits and the `a’ register holding the least significant bits.
+以下约束为x86特有。
 
-## 6.2 Constraint Modifiers.
+1.	"r" : 寄存器操作数约束,查看上面给定的表格。
+2.	"q" : 寄存器 a、b、c 或者 d。
+3.	"I" : 范围从 0 到 31 的常量(对于 32 位移位)。
+4.  "J" : 范围从 0 到 63 的常量(对于 64 位移位)。
+5.	"K" : 0xff。
+6.  "L" : 0xffff。
+7.  "M" : 0, 1, 2, or 3 (lea 指令的移位)。
+8.  "N" : 范围从 0 到 255 的常量(对于 out 指令)。
+9.  "f" : 浮点寄存器
+10.  "t" : 第一个(栈顶)浮点寄存器
+11.  "u" : 第二个浮点寄存器
+12.  "A" : 指定 `a` 或 `d` 寄存器。这主要用于想要返回 64 位整形数,使用 `d` 寄存器保存最高有效位和 `a` 寄存器保存最低有效位。
 
-While using constraints, for more precise control over the effects of constraints, GCC provides us with constraint modifiers. Mostly used constraint modifiers are
+## 6.2 约束修饰符
 
-1.  "=" : Means that this operand is write-only for this instruction; the previous value is discarded and replaced by output data.
-2.  "&" : Means that this operand is an earlyclobber operand, which is modified before the instruction is finished using the input operands. Therefore, this operand may not lie in a register that is used as an input operand or as part of any memory address. An input operand can be tied to an earlyclobber operand if its only use as an input occurs before the early result is written.
+当使用约束时,对于更精确的控制超越了约束作用的需求,GCC 给我们提供了约束修饰符。最常用的约束修饰符为:
 
-    The list and explanation of constraints is by no means complete. Examples can give a better understanding of the use and usage of inline asm. In the next section we’ll see some examples, there we’ll find more about clobber-lists and constraints.
+1.  "=" : 意味着对于这条指令,操作数为只写的;旧值会被忽略并被输出数据所替换。
+2.  "&" : 意味着这个操作数为一个早期的改动操作数,其在该指令完成前通过使用输入操作数被修改了。因此,这个操作数不可以位于一个被用作输出操作数或任何内存地址部分的寄存器。如果在旧值被写入之前它仅用作输入而已,一个输入操作数可以为一个早期改动操作数。
+
+	约束的列表和解释是决不完整的。示例可以给我们一个关于内联汇编的用途和用法的更好的理解。在下一节,我们会看到一些示例,在那里我们会发现更多关于修饰寄存器列表的东西。
 
 * * *
 

From ee4a1ed9806c00effc356ed4bcb030df944bd30b Mon Sep 17 00:00:00 2001
From: Name1e5s <836401406@qq.com>
Date: Sat, 12 Mar 2016 09:34:49 +0800
Subject: [PATCH 260/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E7=9A=84=E4=B8=8D?=
 =?UTF-8?q?=E5=A5=BD=EF=BC=8C=E9=80=80=E5=9B=9E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ... Startup Process and Services SysVinit Systemd and Upstart.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md
index 24d431696d..2a822e8a45 100644
--- a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md	
+++ b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md	
@@ -1,4 +1,3 @@
-Name1e5s translating......
 Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart)
 ================================================================================
 A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams.

From 386d6a10c68cab1760a8bb35dc42b55040eee957 Mon Sep 17 00:00:00 2001
From: cposture 
Date: Sat, 12 Mar 2016 15:24:02 +0800
Subject: [PATCH 261/582] Translating by cposture 2016-03-12

---
 .../20160220 Best Cloud Services For Linux To Replace Copy.md    | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md b/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md
index cd2ffee237..8e178b856e 100644
--- a/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md	
+++ b/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md	
@@ -1,3 +1,4 @@
+[Translating by cposture 2016-03-12]
 Best Cloud Services For Linux To Replace Copy
 ===============================================
 

From 937fe5e12d114083536c432ab84981490f2336b2 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Sat, 12 Mar 2016 19:07:58 +0800
Subject: [PATCH 262/582] PUB:20151028 Bossie Awards 2015--The best open source
 networking and security software
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

@robot527 翻译的不错!用心了!
---
 ...source networking and security software.md | 56 +++++++++----------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/published/20151028 Bossie Awards 2015--The best open source networking and security software.md b/published/20151028 Bossie Awards 2015--The best open source networking and security software.md
index d245fe2a4c..14eb07dee2 100644
--- a/published/20151028 Bossie Awards 2015--The best open source networking and security software.md	
+++ b/published/20151028 Bossie Awards 2015--The best open source networking and security software.md	
@@ -1,6 +1,6 @@
-2015 Bossie 评选:最佳开源网络和安全软件
+网络与安全方面的最佳开源软件
 ================================================================================ 
-InfoWorld 在建设网络,运营网络和保障网络安全领域精选出了年度开源工具获奖者。
+InfoWorld 在部署、运营和保障网络安全领域精选出了年度开源工具获奖者。
 
 ![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-net-sec-100614459-orig.jpg)
 
@@ -12,9 +12,9 @@ InfoWorld 在建设网络,运营网络和保障网络安全领域精选出了
 
 ### Icinga 2 ###
 
-Icinga 起先只是系统监控应用 Nagios 的一个分支。[Icinga 2][1] 经历了完全的重写,为用户带来了时尚的界面,对多数据库的支持,以及一个集成众多扩展的 API。凭借着配置好的负载均衡、通知和配置文件,Icinga 2 缩短了在复杂环境下安装的时间。Icinga 2 原生支持 [Graphite](https://github.com/graphite-project/graphite-web)(系统监控应用),轻松为管理员呈现实时性能图表。不过真的让 Icinga 今年重新火起来的原因是 Icinga Web 2 的发布,那是一个支持可拖放定制的 dashboard 和一些流式监控工具的前端图形界面系统 。
+Icinga 起先只是系统监控应用 Nagios 的一个衍生分支。[Icinga 2][1] 经历了完全的重写,为用户带来了时尚的界面、对多数据库的支持,以及一个集成了众多扩展的 API。凭借着开箱即用的负载均衡、通知和配置文件,Icinga 2 缩短了在复杂环境下安装的时间。Icinga 2 原生支持 [Graphite](https://github.com/graphite-project/graphite-web)(系统监控应用),轻松为管理员呈现实时性能图表。不过真的让 Icinga 今年重新火起来的原因是 Icinga Web 2 的发布,那是一个支持可拖放定制的 仪表盘 和一些流式监控工具的前端图形界面系统。
 
-管理员可以查看,过滤,并把问题按优先顺序排好,同时保持跟踪已经进行的动作。一个新的矩阵视图使管理员能够在一个页面上查看主机和服务。你可以通过查看特定时间段的事件或筛选事件类型来了解哪些事件需要立即关注。虽然 Icinga Web 2 有着全新界面和更为强劲的性能,不过对于传统版 Icinga 和 Web 版 Icinga 的所有常用命令还是照旧支持的。这意味着学习新版工具不耗费额外的时间。
+管理员可以查看、过滤、并按优先顺序排列发现的问题,同时可以跟踪已经采取的动作。一个新的矩阵视图使管理员能够在单一页面上查看主机和服务。你可以通过查看特定时间段的事件或筛选事件类型来了解哪些事件需要立即关注。虽然 Icinga Web 2 有着全新界面和更为强劲的性能,不过对于传统版 Icinga 和 Web 版 Icinga 的所有常用命令还是照旧支持的。这意味着学习新版工具不耗费额外的时间。
 
 -- Fahmida Rashid
 
@@ -22,11 +22,11 @@ Icinga 起先只是系统监控应用 Nagios 的一个分支。[Icinga 2][1] 经
 
 ### Zenoss Core ###
 
-另一个强大的开源软件,[Zenoss Core][2] 为网络管理员提供了一个完整的,一站式解决方案来跟踪和管理所有的应用程序、服务器、存储,网络组件、虚拟化工具、以及企业基础架构的其他元素。管理员可以确保硬件的运行效率并利用 ZenPacks 中模块化设计的插件来扩展功能。
+这是另一个强大的开源软件,[Zenoss Core][2] 为网络管理员提供了一个完整的、一站式解决方案来跟踪和管理所有的应用程序、服务器、存储、网络组件、虚拟化工具、以及企业基础架构的其他元素。管理员可以确保硬件的运行效率并利用 ZenPacks 中模块化设计的插件来扩展功能。
 
-Zenoss Core 5,在今年二月发布,保留了已经很强大的工具,并进一步改进以增强用户界面和扩展 dashboard。基于 Web 的控制台和 dashboard 已经是高度可定制并动态调整的存在了,现在新版本还能让管理员混搭多个组件图表到一个图表。想来这定是一个更好的根源分析和因果分析的工具。
+在2015年二月发布的 Zenoss Core 5 保留了已经很强大的工具,并进一步改进以增强用户界面和扩展 仪表盘。基于 Web 的控制台和 仪表盘 可以高度可定制并动态调整,而现在的新版本还能让管理员混搭多个组件图表到一个图表中。想来这应该是一个更好的根源分析和因果分析的工具。
 
-Portlets 为网络映射、设备问题、守护进程、产品状态、监视列表和事件视图等等提供深入的分析。而且新的 HTML5 图表可以从工具导出。Zenoss 的控制中心支持带外管理并且可监控所有 Zenoss 组件。Zenoss Core 拥有在线备份和恢复、快照和回滚以及多主机部署的新工具。更重要的是,凭借对 Docker 的全面支持,部署起来更快了。
+Portlets 为网络映射、设备问题、守护进程、产品状态、监视列表和事件视图等等提供了深入的分析。而且新版 HTML5 图表可以从工具导出。Zenoss 的控制中心支持带外管理并且可监控所有 Zenoss 组件。Zenoss Core 现在拥有一些新工具,用于在线备份和恢复、快照和回滚以及多主机部署等方面。更重要的是,凭借对 Docker 的全面支持,部署起来更快了。
 
 -- Fahmida Rashid
 
@@ -34,9 +34,9 @@ Portlets 为网络映射、设备问题、守护进程、产品状态、监视
 
 ### OpenNMS ###
 
-作为一个非常灵活的网络管理解决方案,[OpenNMS][3] 可以处理任何网络管理任务,无论是设备管理,应用性能监控,库存控制,或事件管理。凭借对 IPv6 的支持,强大的警报系统和记录用户脚本来测试 Web 应用程序的能力,OpenNMS 拥有网络管理员和测试人员需要的一切。OpenNMS 现在变得像一款移动 dashboard,堪称 OpenNMS 指南针,可让网络专家随时,甚至在外出时都可以监视他们的网络。
+作为一个非常灵活的网络管理解决方案,[OpenNMS][3] 可以处理任何网络管理任务,无论是设备管理、应用性能监控、库存控制,或事件管理。凭借对 IPv6 的支持、强大的警报系统和记录用户脚本来测试 Web 应用程序的能力,OpenNMS 拥有网络管理员和测试人员需要的一切。OpenNMS 现在变得像一款移动版 仪表盘,称之为 OpenNMS Compass,可让网络专家随时,甚至在外出时都可以监视他们的网络。
 
-该应用程序的 IOS 版本,可从 [iTunes App Store][4] 上获取,显示故障、节点和告警。下一个版本将提供更多的事件细节、资源图表、以及关于 IP 和 SNMP 接口的信息。安卓版可从 [Google Play][5] 上获取,可在 dashboard 上显示网络可用性,故障和告警,以及确认、提升或清除告警的能力。移动客户端与 OpenNMS Horizon 1.12 或更高版本以及 OpenNMS Meridian 2015.1.0 或更高版本兼容。
+该应用程序的 IOS 版本,可从 [iTunes App Store][4] 上获取,可以显示故障、节点和告警。下一个版本将提供更多的事件细节、资源图表、以及关于 IP 和 SNMP 接口的信息。安卓版可从 [Google Play][5] 上获取,可在 仪表盘 上显示网络可用性,故障和告警,以及可以确认、提升或清除告警。移动客户端与 OpenNMS Horizon 1.12 或更高版本以及 OpenNMS Meridian 2015.1.0 或更高版本兼容。
 
 -- Fahmida Rashid
 
@@ -44,21 +44,21 @@ Portlets 为网络映射、设备问题、守护进程、产品状态、监视
 
 ### Security Onion ###
 
-如同一个洋葱,网络安全监控是由许多层组成。没有任何一个单一的工具可以让你洞察每一次攻击,为你显示你公司网络中的每一次侦查或是会话的足迹。[Security Onion][6] 在一个简单易用的 Ubuntu 发行版中打包了许多经过验证的工具,这会让你看到谁留在你的网络里,并帮助你隔离这些坏家伙。
+如同一个洋葱,网络安全监控是由许多层组成。没有任何一个单一的工具可以让你洞察每一次攻击,为你显示对你的公司网络中的每一次侦查或是会话的足迹。[Security Onion][6] 在一个简单易用的 Ubuntu 发行版中打包了许多久经考验的工具,可以让你看到谁留在你的网络里,并帮助你隔离这些坏家伙。
 
 无论你是采取主动式的网络安全监测还是追查可能的攻击,Security Onion 都可以帮助你。Onion 由传感器、服务器和显示层组成,结合了基于网络和基于主机的入侵检测,全面的网络数据包捕获,并提供了所有类型的日志以供检查和分析。
 
-这是一个众星云集的的网络安全工具链,包括用于网络抓包的 [Netsniff-NG](http://www.netsniff-ng.org/)、基于规则的网络入侵检测系统 Snort 和 [Suricata](https://en.wikipedia.org/wiki/Suricata_%28software%29),基于分析的网络监控系统 Bro,基于主机的入侵检测系统 OSSEC 和用于显示、分析和日志管理的 Sguil、Squert、Snorby 和 ELSA (企业日志搜索和归档)。是一个经过精挑细选的工具集,所有的这些全被打包进一个向导式的安装程序并有完整的文档支持,可以帮助你尽可能快地上手监控。
+这是一个众星云集的的网络安全工具链,包括用于网络抓包的 [Netsniff-NG](http://www.netsniff-ng.org/)、基于规则的网络入侵检测系统 Snort 和 [Suricata](https://en.wikipedia.org/wiki/Suricata_%28software%29),基于分析的网络监控系统 Bro,基于主机的入侵检测系统 OSSEC 和用于显示、分析和日志管理的 Sguil、Squert、Snorby 和 ELSA (企业日志搜索和归档(Enterprise Log Search and Archive))。它是一个经过精挑细选的工具集,所有的这些全被打包进一个向导式的安装程序并有完整的文档支持,可以帮助你尽可能快地上手监控。
 
 -- Victor R. Garza
 
 ![](http://images.techhive.com/images/article/2015/09/bossies-2015-kali-100614458-orig.jpg)
 
-Kali Linux
+### Kali Linux ###
 
-[Kali Linux][7] 背后的团队今年改版了流行的安全 Linux 发行版,使其更快,更全能。Kali 采用全新 4.0 版的内核 ,改进了对硬件和无线驱动程序的支持,并且界面更为流畅。最常用的工具都可从屏幕的侧边栏上轻松找到。而最大的最大的改变是 Kali Linux 现在是一个滚动发行版,具有持续的软件更新。Kali 的核心系统是基于 Debian Jessie,而且该团队会不断地从 Debian 测试版 pull 软件包,并持续的在上面添加 Kali 风格的新特性。
+[Kali Linux][7] 背后的团队今年为这个流行的安全 Linux 发行版发布了新版本,使其更快,更全能。Kali 采用全新 4.0 版的内核,改进了对硬件和无线驱动程序的支持,并且界面更为流畅。最常用的工具都可从屏幕的侧边栏上轻松找到。而最大的改变是 Kali Linux 现在是一个滚动发行版,具有持续不断的软件更新。Kali 的核心系统是基于 Debian Jessie,而且该团队会不断地从 Debian 测试版拉取最新的软件包,并持续的在上面添加 Kali 风格的新特性。
 
-该发行版仍然配备满了渗透测试,漏洞分析,安全审查,网络应用分析,无线网络评估,逆向工程,和漏洞利用工具。现在该发行版具有新版本检测系统,当有个别工具可更新时系统会自动通知用户。该发行版还具有一系列设备的 ARM 镜像,包括树莓派、[Chromebook](https://en.wikipedia.org/wiki/Chromebook) 和 [Odroid](https://en.wikipedia.org/wiki/ODROID),也更新了 Android 设备上运行的 [NetHunter](https://www.kali.org/kali-linux-nethunter/) 渗透测试平台。还有其他的变化:Metasploit 的社区版/专业版不再包括在内,因为 Kali 2.0 还没有 [Rapid7 的官方支持][8]。
+该发行版仍然配备了很多的渗透测试,漏洞分析,安全审查,网络应用分析,无线网络评估,逆向工程,和漏洞利用工具。现在该发行版具有上游版本检测系统,当有个别工具可更新时系统会自动通知用户。该发行版还提过了一系列 ARM 设备的镜像,包括树莓派、[Chromebook](https://en.wikipedia.org/wiki/Chromebook) 和 [Odroid](https://en.wikipedia.org/wiki/ODROID),同时也更新了 Android 设备上运行的 [NetHunter](https://www.kali.org/kali-linux-nethunter/) 渗透测试平台。还有其他的变化:Metasploit 的社区版/专业版不再包括在内,因为 Kali 2.0 还没有 [Rapid7 的官方支持][8]。
 
 -- Fahmida Rashid
 
@@ -66,9 +66,9 @@ Kali Linux
 
 ### OpenVAS ###
 
-开放式漏洞评估系统 [OpenVAS][9],是一个整合多种服务和工具来提供漏洞扫描和漏洞管理的软件框架。该扫描器与每周一次的网络漏洞测试数据配合,或者你可以使用商业数据。该软件框架包括一个命令行界面(以使其可以用脚本运行)和一个带 SSL 安全机制的基于 [Greenbone 安全助手][10] 的浏览器界面。OpenVAS 提供了用于附加功能的各种插件。扫描可以预定运行或按需运行。
+开放式漏洞评估系统(Open Vulnerability Assessment System) [OpenVAS][9],是一个整合多种服务和工具来提供漏洞扫描和漏洞管理的软件框架。该扫描器可以使用每周更新一次的网络漏洞测试数据,或者你也可以使用商业服务的数据。该软件框架包括一个命令行界面(以使其可以用脚本调用)和一个带 SSL 安全机制的基于 [Greenbone 安全助手][10] 的浏览器界面。OpenVAS 提供了用于附加功能的各种插件。扫描可以预定运行或按需运行。
 
-可通过单一的主控来控制多个 OpenVAS 的安装,这使其成为了一个可扩展的企业漏洞评估工具。该项目兼容的标准使其可以:将扫描结果和配置存储在 SQL 数据库中,在那里他们可以容易地被外部报告工具访问。客户端工具通过基于 XML 的无状态 OpenVAS 管理协议访问 OpenVAS 管理器,所以安全管理员可以扩展该框架的功能。该软件能以软件包或源代码的方式安装在 Windows 或 Linux 上运行,或者作为一个虚拟应用下载。
+可通过单一的主控来控制多个安装好 OpenVAS 的系统,这使其成为了一个可扩展的企业漏洞评估工具。该项目兼容的标准使其可以将扫描结果和配置存储在 SQL 数据库中,这样它们可以容易地被外部报告工具访问。客户端工具通过基于 XML 的无状态 OpenVAS 管理协议访问 OpenVAS 管理器,所以安全管理员可以扩展该框架的功能。该软件能以软件包或源代码的方式安装在 Windows 或 Linux 上运行,或者作为一个虚拟应用下载。
 
 -- Matt Sarrel
 
@@ -76,15 +76,15 @@ Kali Linux
 
 ### OWASP ###
 
-[OWASP][11](开放式 Web 应用程序安全项目 )是专注于提高软件安全性的在全球各地拥有分会的非营利组织。由这个社区性的组织提供测试工具、文档、培训和几乎任何你可以想象的开发安全软件相关的软件安全评估和最佳做法。有一些 OWASP 项目已成为很多安全从业者工具箱中的重要组件:
+[OWASP][11](开放式 Web 应用程序安全项目(Open Web Application Security Project))是一个专注于提高软件安全性的在全球各地拥有分会的非营利组织。这个社区性的组织提供测试工具、文档、培训和几乎任何你可以想象到的开发安全软件相关的软件安全评估和最佳实践。有一些 OWASP 项目已成为很多安全从业者工具箱中的重要组件:
 
-[ZAP][12](ZED 攻击代理项目)是一个在 Web 应用程序中寻找漏洞的渗透测试工具。ZAP 的设计目标之一是使之易于使用,以便于那些并非安全领域专家的开发人员和的测试人员在使用中能得到帮助。ZAP 提供自动扫描和一套手动测试工具集。
+[ZAP][12](ZED 攻击代理项目(Zed Attack Proxy Project))是一个在 Web 应用程序中寻找漏洞的渗透测试工具。ZAP 的设计目标之一是使之易于使用,以便于那些并非安全领域专家的开发人员和测试人员能便于使用。ZAP 提供了自动扫描和一套手动测试工具集。
 
-[Xenotix XSS Exploit Framework][13] 是一个先进的跨站点脚本漏洞检测和漏洞利用框架,该框架通过在浏览器引擎内执行扫描以获取真实结果。Xenotix 扫描模块使用了三个智能的模糊器,使其可以运行近 5000 种不同的 XSS 有效载荷。API 可以让安全管理员扩展和定制漏洞测试工具包。
+[Xenotix XSS Exploit Framework][13] 是一个先进的跨站点脚本漏洞检测和漏洞利用框架,该框架通过在浏览器引擎内执行扫描以获取真实的结果。Xenotix 扫描模块使用了三个智能模糊器( intelligent fuzzers),使其可以运行近 5000 种不同的 XSS 有效载荷。它有个 API 可以让安全管理员扩展和定制漏洞测试工具包。
 
-[O-Saft][14](OWASP SSL 高级审查工具)是一个查看 SSL 证书详细信息和测试 SSL 连接的 SSL 审计工具。这个命令行工具可以在线或离线运行来评估 SSL ,比如密码和配置是否安全。O-Saft 提供了常见漏洞的内置检查,你可以容易地通过编写脚本来扩展这些功能。在 2015 年 5 月加入了一个简单的图形用户界面作为可选的下载项。
+[O-Saft][14](OWASP SSL 高级审查工具(OWASP SSL advanced forensic tool))是一个查看 SSL 证书详细信息和测试 SSL 连接的 SSL 审计工具。这个命令行工具可以在线或离线运行来评估 SSL ,比如算法和配置是否安全。O-Saft 内置提供了常见漏洞的检查,你可以容易地通过编写脚本来扩展这些功能。在 2015 年 5 月加入了一个简单的图形用户界面作为可选的下载项。
 
-[OWTF][15](攻击性的 Web 测试框架)是一个遵循 OWASP 测试指南和 NIST 和 PTES 标准的自动化测试工具。该框架同时使用 Web 用户界面和命令行,用于探测 Web 和应用服务器的常见漏洞,如配置失当和软件未打补丁。
+[OWTF][15](攻击性 Web 测试框架(Offensive Web Testing Framework))是一个遵循 OWASP 测试指南和 NIST 和 PTES 标准的自动化测试工具。该框架同时支持 Web 用户界面和命令行,用于探测 Web 和应用服务器的常见漏洞,如配置失当和软件未打补丁。
 
 -- Matt Sarrel
 
@@ -92,9 +92,9 @@ Kali Linux
 
 ### BeEF ###
 
-Web 浏览器已经成为用于针对客户端的攻击中最常见的载体。[BeEF][15] 浏览器漏洞利用框架项目,是一种广泛使用的用以评估 Web 浏览器安全性的渗透工具。BeEF 通过浏览器来启动客户端攻击,帮助你暴露出客户端系统的安全弱点。BeEF 建立了一个恶意网站,安全管理员用想要测试的浏览器访问该网站。然后 BeEF 发送命令来攻击 Web 浏览器并使用命令在客户端机器上植入软件。随后管理员就可以把客户端机器看作尸体般发动攻击了。
+Web 浏览器已经成为用于针对客户端的攻击中最常见的载体。[BeEF][15] (浏览器漏洞利用框架项目(Browser Exploitation Framework Project)),是一种广泛使用的用以评估 Web 浏览器安全性的渗透工具。BeEF 通过浏览器来启动客户端攻击,帮助你暴露出客户端系统的安全弱点。BeEF 建立了一个恶意网站,安全管理员用想要测试的浏览器访问该网站。然后 BeEF 发送命令来攻击 Web 浏览器并使用命令在客户端机器上植入软件。随后管理员就可以把客户端机器看作不设防般发动攻击了。
 
-BeEF 自带像键盘记录,端口扫描和 Web 代理这样的常用模块,此外你可以编写你自己的模块或直接将命令发送到被控制的测试机上。BeEF 带有少量的演示网页来帮你快速入门,使得编写额外的网页和攻击模块变得非常简单,这使得你可以因地适宜的自定义你的测试。BeEF 是一个非常有价值的评估浏览器和终端安全、学习如何发起基于浏览器攻击的测试工具。可以使用它来向你的用户综合演示,那些恶意软件通常是如何感染客户端设备的。
+BeEF 自带键盘记录器、端口扫描器和 Web 代理这样的常用模块,此外你可以编写你自己的模块或直接将命令发送到被控制的测试机上。BeEF 带有少量的演示网页来帮你快速入门,使得编写更多的网页和攻击模块变得非常简单,让你可以因地适宜的自定义你的测试。BeEF 是一个非常有价值的评估浏览器和终端安全、学习如何发起基于浏览器攻击的测试工具。可以使用它来向你的用户综合演示,那些恶意软件通常是如何感染客户端设备的。
 
 -- Matt Sarrel
 
@@ -102,17 +102,17 @@ BeEF 自带像键盘记录,端口扫描和 Web 代理这样的常用模块,
 
 ### Unhide ###
 
-[Unhide][16] 是一个定位开放的 TCP/UDP 端口和隐藏在 UNIX、Linux 和 Windows 上的进程的审查工具。隐藏的端口和进程可能是由于运行 Rootkit 或 LKM(可加载的内核模块) 导致的。Rootkit 可能很难找到并移除,因为它们就是针对隐蔽性设计的,在操作系统和用户前隐藏自己。一个 Rootkit 可以使用 LKM 隐藏其进程或冒充其他进程,让它在机器上运行很长一段时间而不被发现。而 Unhide 可以使管理员们确信他们的系统是干净的。
+[Unhide][16] 是一个用于定位开放的 TCP/UDP 端口和隐藏在 UNIX、Linux 和 Windows 上的进程的审查工具。隐藏的端口和进程可能是由于运行 Rootkit 或 LKM(可加载的内核模块(loadable kernel module)) 导致的。Rootkit 可能很难找到并移除,因为它们就是专门针对隐蔽性而设计的,可以在操作系统和用户前隐藏自己。一个 Rootkit 可以使用 LKM 隐藏其进程或冒充其他进程,让它在机器上运行很长一段时间而不被发现。而 Unhide 则可以使管理员们确信他们的系统是干净的。
 
-Unhide 实际上是两个单独的脚本:一个用于进程,一个用于端口。该工具查询正在运行的进程、线程和开放的端口并将这些信息与系统中注册的活动比较,报告之间的差异。Unhide 和 WinUnhide 是在运行命令行产生文本输出的非常轻量级的脚本。它们不算优美,但是极为有用。Unhide 还列入了 [Rootkit Hunter][17] 项目中。
+Unhide 实际上是两个单独的脚本:一个用于进程,一个用于端口。该工具查询正在运行的进程、线程和开放的端口并将这些信息与系统中注册的活动比较,报告之间的差异。Unhide 和 WinUnhide 是非常轻量级的脚本,可以运行命令行而产生文本输出。它们不算优美,但是极为有用。Unhide 也包括在 [Rootkit Hunter][17] 项目中。
 
 -- Matt Sarrel
 
 ![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614457-orig.jpg)
 
-查看更多的开源软件优胜者
+### 查看更多的开源软件优胜者 ###
 
-InfoWorld 网站的 2014 年最佳开源奖由下至上表扬了 100 多个开源项目。通过以下链接可以查看更多开源软件中的翘楚:
+InfoWorld 网站的 2015 年最佳开源奖由下至上表扬了 100 多个开源项目。通过以下链接可以查看更多开源软件中的翘楚:
 
 [2015 Bossie 评选:最佳开源应用程序][18]
 
@@ -132,7 +132,7 @@ via: http://www.infoworld.com/article/2982962/open-source-tools/bossie-awards-20
 
 作者:[InfoWorld staff][a]
 译者:[robot527](https://github.com/robot527)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From 313f15c9005283e66195fdbb7acbed7e4083c0eb Mon Sep 17 00:00:00 2001
From: runningwater 
Date: Sun, 13 Mar 2016 11:23:56 +0800
Subject: [PATCH 263/582] =?UTF-8?q?=E6=9A=82=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../20160225 The Tao of project management.md | 21 ++++++++-----------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/sources/tech/20160225 The Tao of project management.md b/sources/tech/20160225 The Tao of project management.md
index 5cea94472d..750bc476dc 100644
--- a/sources/tech/20160225 The Tao of project management.md	
+++ b/sources/tech/20160225 The Tao of project management.md	
@@ -101,24 +101,21 @@
 
 作为一个项目管理者,虽然你的工作与培养你的团队的文化无关,但是工作本身就是文化。
 
-### Kaizen
+### 持续改善
 
->In pursuit of knowledge,
->every day something is added.
->In the practice of the Tao,
->every day something is dropped.
->Less and less do you need to force things,
->until finally you arrive at non-action. When nothing is done,
->nothing is left undone. 
+>为学日益,
+>为道日损,
+>损之又损,以至于无为。无为而无不为,取天下常以无事
 [[48]][14]
 
-The general field of project management is too focused on the latest and greatest tools. But the answer to the question of which tool you should use is always the same: "the simplest."
+虽然项目管理的一般领域都太过于专注最新最强大的的工具,但是您应该使用哪种工具这问题的答案总是一致的:“最简单的”。
 
-For example, I keep my running to-do list in a text file on my desktop because it serves its purpose without unnecessary distractions. Whatever tools, processes, and procedures you introduce to a team should increase efficiency and remove obstacles, not introduce additional complexity. So instead of focusing on the tools, focus on the problem(s) you're using those tools to solve.
+例如,我将任务列表放在桌面的一个文本文件中,因为它很单纯,没有不必要的干扰。您想介绍给团队的,无论是何种工具、流程和程序都应该是能提高效率,排除障碍的,而不是引入额外的复杂性。所以不应该专注于工具本身,而应该专注于使用这些工具来解决的问题。
 
-My favorite part of being a project manager in an Agile world is having the freedom to throw out what doesn't work. This is related to the concept of kaizen, or "continuous improvement." Don't be afraid to try and fail. Failing is the label we've put on the process of learning what works and what doesn't. But it's the only way to improve.
+我最喜欢的一个项目经理在一个灵活的世界是有自由扔什么不工作。在  Agile world 中我喜欢项目管理者能自由的做决定,抛出不能做的工作。这就是改善的概念,或叫“持续改进”。不要害怕尝试和失败。失败是我们在学习的过程中所用的标签,不能代表什么,但这是提高的唯一方式。
 
-The best processes arise organically. As a project manager, you can help your team by supporting them and not trying to force them into anything.
+
+最好的过程都不是一蹴而就的。作为项目管理者,您应该帮助您的团队,支持团队让其自己提升,而不是强迫团队。
 
 ### Practice
 

From 40d7856fa145334e4f1a4ce569858e8c29d117dd Mon Sep 17 00:00:00 2001
From: runningwater 
Date: Mon, 14 Mar 2016 00:22:58 +0800
Subject: [PATCH 264/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../tech/20160225 The Tao of project management.md  | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)
 rename {sources => translated}/tech/20160225 The Tao of project management.md (90%)

diff --git a/sources/tech/20160225 The Tao of project management.md b/translated/tech/20160225 The Tao of project management.md
similarity index 90%
rename from sources/tech/20160225 The Tao of project management.md
rename to translated/tech/20160225 The Tao of project management.md
index 750bc476dc..e0238e2cee 100644
--- a/sources/tech/20160225 The Tao of project management.md	
+++ b/translated/tech/20160225 The Tao of project management.md	
@@ -117,19 +117,14 @@
 
 最好的过程都不是一蹴而就的。作为项目管理者,您应该帮助您的团队,支持团队让其自己提升,而不是强迫团队。
 
-### Practice
+### 实践
 
->Some say that my teaching is nonsense.
->Others call it lofty but impractical.
->But to those who have looked inside themselves,
->this nonsense makes perfect sense.
->And to those who put it into practice,
->this loftiness has roots that go deep. 
+>天下皆谓我"道"大,似不肖。夫唯大,故似不肖。若肖,久矣其细也夫!
 [[67]][15]
 
-I believe in what open organizations are doing. What open organizations are doing for the field of management is almost as important as the actual products and services they offer. We have an opportunity to lead by example, to inspire passion and purpose in others, to create working environments that inspire and empower.
+我相信开放性组织正在做的。开放性组织在管理领域的工作几乎和他们所提供的产品和服务一样重要。我们有机会以身作则,激发他人的激情和目的,创造激励和充分授权的工作环境。
 
-I encourage you to find ways to incorporate some of these ideas into your own projects and teams to see what happens. Learn about your organization's mission and how your projects contribute to it. Have courage, expect to try some things that won't work, and don't forget to share the lessons you learn with our community so we can continue to improve.
+我鼓励您们找到办法把这些想法融入到自己的项目和团队中,看看会发生什么。了解组织的使命和您的项目怎么样帮助它们。鼓起勇气,尝试一些不好的事情,同时不要忘记和我们的社区分享你所学到的经验,这样我们就可以继续改进。
 
 
 --------------------------------------------------------------------------------

From 18ebd969b6f358ca6b9793b903ab7324046408d4 Mon Sep 17 00:00:00 2001
From: KS 
Date: Mon, 14 Mar 2016 10:36:24 +0800
Subject: [PATCH 265/582] wyangsun translating

---
 .../tech/20160228 Two Outstanding All-in-One Linux Servers.md    | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md b/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md
index a291fd2006..4d6f369aa5 100644
--- a/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md	
+++ b/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md	
@@ -1,3 +1,4 @@
+wyangsun translating
 Two Outstanding All-in-One Linux Servers
 ================================================
 

From 7755a0b6652d9f093663dc3c41508cf546ed1eb6 Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Mon, 14 Mar 2016 21:38:46 +0800
Subject: [PATCH 266/582] =?UTF-8?q?20160314-1=20=E9=80=89=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

keyword : FOSS , podcast
---
 .../tech/20160314 15 podcasts for FOSS fans   | 79 +++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 sources/tech/20160314 15 podcasts for FOSS fans

diff --git a/sources/tech/20160314 15 podcasts for FOSS fans b/sources/tech/20160314 15 podcasts for FOSS fans
new file mode 100644
index 0000000000..222861427e
--- /dev/null
+++ b/sources/tech/20160314 15 podcasts for FOSS fans	
@@ -0,0 +1,79 @@
+15 podcasts for FOSS fans
+=============================
+
+keyword : FOSS , podcast 
+
+![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/oss_podcasts.png?itok=3KwxsunX)
+
+I listen to a lot of podcasts. A lot. On my phone's podcatcher, I am subscribed to around 60 podcasts... and I think that only eight of those have podfaded (died). Unsurprisingly, a fairly sizeable proportion of those remaining alive-and-well subscriptions are shows with a specific interest or relevance to open source software. As I seek to resurrect my own comatose podcast from the nebulous realm of podfadery, I thought it would be great for us as a community to share what we're listening to.
+
+>Quick digression: I understand that there are a lot of "pod"-prefixed words in that first paragraph. Furthermore, I also know that the term itself is related to a proprietary device that, by most accounts, isn't even used for listening to these web-based audio broadcasts. However, the term 'webcast' died in the nineties and 'oggcast' never gathered a substantial foothold among the listening public. As such, in order to ensure that the most people actually know what I'm referring to, I'm essentially forced to use the web-anachronistic, but publicly recognized term, podcast.
+
+I should also mention that a number of these shows involve grown-ups using grown-up language (i.e. swearing). I've tried to indicate which shows these are by putting a red E next to their names, but please do your own due diligence if you're concerned about listening to these shows at work or with children around.
+
+The following lists are podcasts that I keep in heavy rotation (each sublist is listed in alphabetical order). In the first list are the ones I think of as my "general coverage" shows. They tend to either discuss general topics related to free and open source software, or they give a survey of multiple open source projects from one episode to the next.
+
+- [Bad Voltage][1] E — Regular contributor and community moderator here on Opensource.com, Jono Bacon, shares hosting dutes on this podcast with Jeremy Garcia, Stuart Langridge, and Bryan Lunduke, four friends with a variety of digressing and intersecting opinions. That's the most interesting part of the show for me. Of course, they also do product reviews and cover timely news relevant to free and open source software, but it's the banter that I stick around for.
+
+- [FLOSS Weekly][2] — The Twit network of podcasts is a long-time standby in technology broadcasts. Hosted by Randal Schwartz, FLOSS Weekly focuses on covering one open source project each week, typically by interviewing someone relevant in the development of that project. It's a really good show for getting exposed to new open source tools... or learning more about the programs you're already familiar with.
+
+- [Free as in Freedom][3] — Hosted by Bradley Kuhn and Karen Sandler, this show has a specific focus on legal and policy matters as it relates to both specific free and open source projects, as well as open culture in general. The show seems to have gone on a bit of a hiatus since its last episode in November of 2015, but I for one am immensely hopeful that Free as in Freedom emerges victoriously from its battle with being podfaded and returns to its regular bi-weekly schedule.
+
+- [GNU World Order][4] — I think that this show can be best descrbed as a free and open source variety show. Solo host, Klaatu, spends the majority of each show going in-depth at nearly tutorial level with a whole range of specific software tools and workflows. It's a really friendly way to get an open source neophyte up to speed with everything from understanding SSH to playing with digital painting and video. And there's a video component to the show, too, which certainly helps make some of these topics easier to follow.
+
+- [Hacker Public Radio][5] — This is just a well-executed version of a fantastic concept. Hacker Public Radio (HPR) is a community-run daily (well, working-week daily) podcast with a focus on "anything of interest to hackers." Sure there are wide swings in audio quality from show to show, but it's an open platform where anyone can share what they know (or what they think) in that topic space. Show topics include 3D printing, hardware hacking, conference interviews, and more. There are even long-running tutorial series and an audio book club. The monthly recap episodes are particularly useful if you're having trouble picking a place to start. And best of all, you can record your own episode and add it to the schedule. In fact, they actively encourage it.
+
+My next list of open source podcasts are a bit more specific to particular topics or software packages in the free and open source ecosystem.
+
+- [Blender Podcast][6] — Although this podcast is very specific to one particular application—Blender, in case you couldn't guess—many of the topics are relevant to issues faced by users and developers of open source other softrware programs. Hosts Thomas Dinges and Campbell Barton—both on the core development team for Blender—discuss the latest happenings in the Blender community, sometimes with a guest. The release schedule is a bit sporadic, but one of the things I really like about this particular show is the fact that they talk about both user issues and developer issues... and the various intersections of the two. It's a great way for each part of the community to gain insight from the other.
+
+- [Sunday Morning Linux Review][7] — As it's name indicates, SMLR offers a weekly review of topics relevant to Linux. Since around the end of last year, the show has seen a bit of a restructuring. However, that has not detracted from its quality. Tony Bemus, Mary Tomich, and Tom Lawrence deliver a lot of good information, and you can catch them recording their shows live through their website (if you happen to have free time on your Sundays).
+
+- [LinuxLUGcast][8] — The LinuxLUGcast is a community podcast that's really a recording of an online Linux Users Group (LUG) that meets on the first and third Friday of each month. The group meets (and records) via Mumble and discussions range from home builds with single-board computers like the Raspberry Pi to getting help with trying out a new distro. The LUG is open to everyone, but there is a rotating cast of regulars who've made themselves (and their IRC handles) recognizable fixtures on the show. (Full disclosure: I'm a regular on this one)
+
+- [The Open EdTech Podcast][9] — Thaj Sara's Open EdTech Podcast is a fairly new show that so far only has three episodes. However, since there's a really sizeable community of open source users in the field of education (both in teaching and in IT), this show serves an important and underserved segment of our community. I've spoken with Thaj via email and he assures me that new episodes are in the pipe. He just needs to set aside the time to edit them.
+
+- [The Linux Action Show][10] — It would be remiss of me to make a list of open source podcasts and not mention one of the stallwart fixtures in the space: The Linux Action Show. Chris Fisher and Noah Chelliah discuss current news as it pertains to Linux and open source topics while at the same time giving feature attention to specific projects or their own experiences using various open source tools.
+
+This next section is what I'm going to term my "honorable mention" section. These shows are either new or have a more tangential focus on open source software and culture. In any case, I still think readers of Opensource.com would enjoy listening to these shows.
+
+- [Blender Institute Podcast][11] — The Blender Institute—the more commercial creative production spin-off from the Blender Foundation—started hosting their own weekly podcast a few months ago. In the show, artists (and now a developer!) working at the Institute discuss the open content projects they're working on, answer questions about using Blender, and give great insight into how things go (or occasionally don't go) in their day-to-day work.
+
+- [Geek News Radio][12] E — There was a tangible sense of loss about a year ago when the hosts of Linux Outlaws hung up their mics. Well good news! A new show has sprung from its ashes. In episodes of Geek News Radio, Fab Scherschel and Dave Nicholas have a wider focus than Linux Outlaws did. Rather than being an actual news podcast, it's more akin to an informal discussion among friends about video games, movies, technology, and open source (of course).
+
+- [Geekrant][13] — Formerly known as the Everyday Linux Podcast, this show was rebranded at the start of the year to reflect kind of content that the hosts Mark Cockrell, Seth Anderson, and Chris Neves were already discussing. They do discuss open source software and culture, but they also give their own spin and opinions on topics of interest in general geek culture. Topics have a range that includes everything from popular media to network security. (P.S. Opensource.com content manager Jen Wike Huger was a guest on Episode 164.)
+
+- [Open Source Creative][14] E — In case you haven't read my little bio blurb, I also have my own podcast. In this show, I talk about news and topics that are [hopefully] of interest to artists and creatives who use free and open source tools. I record it during my work commute so episode length varies with traffic, and I haven't quite figured out a good way to do interviews safely, but if you listen while you're on your way to work, it'll be like we're carpooling. The show has been on a bit of hiatus for almost a year, but I've commited to making sure it comes back... and soon.
+
+- [Still Untitled][15] E — As you may have noticed from most of the selections on this list, I tend to lean toward the indie side of the spectrum, preferring to listen to shows by people with less of a "name." That said, this show really hits a good place for me. Hosts Adam Savage, Norman Chan, and Will Smith talk about all manner of interesting and geeky things. From Adam's adventures with Mythbusters to maker builds and book reviews, there's rarely ever a show that hasn't been fun for me to listen to.
+
+So there you go! I'm always looking for more interesting shows to listen to on my commute (as I'm sure many others are). What suggestions or recommendations do you have?
+
+
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/life/16/3/open-source-podcasts
+
+作者:[Jason van Gumster][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/jason-van-gumster
+[1]: http://badvoltage.org/
+[2]: https://twit.tv/shows/floss-weekly
+[3]: http://faif.us/
+[4]: http://gnuworldorder.info/
+[5]: http://hackerpublicradio.org/
+[6]: https://blender-podcast.org/
+[7]: http://smlr.us/
+[8]: http://linuxlugcast.com/
+[9]: http://openedtechpodcast.com/
+[10]: http://www.jupiterbroadcasting.com/tag/linux-action-show/
+[11]: http://podcast.blender.institute/
+[12]: http://sixgun.org/geeknewsradio
+[13]: http://elementopie.com/geekrant-episodes
+[14]: http://monsterjavaguns.com/podcast
+[15]: http://www.tested.com/still-untitled-the-adam-savage-project/

From 54449508830639e7b6258cf20deff02f696c5d26 Mon Sep 17 00:00:00 2001
From: zpl 
Date: Tue, 15 Mar 2016 10:39:06 +0800
Subject: [PATCH 267/582] [translated] 20151202 A new Mindcraft moment.md

---
 .../tech/20151202 A new Mindcraft moment.md   | 87 +++++++++----------
 1 file changed, 43 insertions(+), 44 deletions(-)

diff --git a/sources/tech/20151202 A new Mindcraft moment.md b/sources/tech/20151202 A new Mindcraft moment.md
index 92c645ea4b..808124dec2 100644
--- a/sources/tech/20151202 A new Mindcraft moment.md	
+++ b/sources/tech/20151202 A new Mindcraft moment.md	
@@ -1,44 +1,43 @@
-zpl1025
-A new Mindcraft moment?
-=======================
-
-Credit:Jonathan Corbet
-
-It is not often that Linux kernel development attracts the attention of a mainstream newspaper like The Washington Post; lengthy features on the kernel community's approach to security are even more uncommon. So when just such a feature hit the net, it attracted a lot of attention. This article has gotten mixed reactions, with many seeing it as a direct attack on Linux. The motivations behind the article are hard to know, but history suggests that we may look back on it as having given us a much-needed push in a direction we should have been going for some time.
-
-Think back, a moment, to the dim and distant past — April 1999, to be specific. An analyst company named Mindcraft issued a report showing that Windows NT greatly outperformed Red Hat Linux 5.2 and Apache for web-server workloads. The outcry from the Linux community, including from a very young LWN, was swift and strong. The report was a piece of Microsoft-funded FUD trying to cut off an emerging threat to its world-domination plans. The Linux system had been deliberately configured for poor performance. The hardware chosen was not well supported by Linux at the time. And so on.
-
-Once people calmed down a bit, though, one other fact came clear: the Mindcraft folks, whatever their motivations, had a point. Linux did, indeed, have performance problems that were reasonably well understood even at the time. The community then did what it does best: we sat down and fixed the problems. The scheduler got exclusive wakeups, for example, to put an end to thethundering-herd problem in the acceptance of connection requests. Numerous other little problems were fixed. Within a year or so, the kernel's performance on this kind of workload had improved considerably.
-
-The Mindcraft report, in other words, was a much-needed kick in the rear that got the community to deal with issues that had been neglected until then.
-
-The Washington Post article seems clearly slanted toward a negative view of the Linux kernel and its contributors. It freely mixes kernel problems with other issues (the AshleyMadison.com breakin, for example) that were not kernel vulnerabilities at all. The fact that vendors seem to have little interest in getting security fixes to their customers is danced around like a huge elephant in the room. There are rumors of dark forces that drove the article in the hopes of taking Linux down a notch. All of this could well be true, but it should not be allowed to overshadow the simple fact that the article has a valid point.
-
-We do a reasonable job of finding and fixing bugs. Problems, whether they are security-related or not, are patched quickly, and the stable-update mechanism makes those patches available to kernel users. Compared to a lot of programs out there (free and proprietary alike), the kernel is quite well supported. But pointing at our ability to fix bugs is missing a crucial point: fixing security bugs is, in the end, a game of whack-a-mole. There will always be more moles, some of which we will not know about (and will thus be unable to whack) for a long time after they are discovered and exploited by attackers. These bugs leave our users vulnerable, even if the commercial side of Linux did a perfect job of getting fixes to users — which it decidedly does not.
-
-The point that developers concerned about security have been trying to make for a while is that fixing bugs is not enough. We must instead realize that we will never fix them all and focus on making bugs harder to exploit. That means restricting access to information about the kernel, making it impossible for the kernel to execute code in user-space memory, instrumenting the kernel to detect integer overflows, and all the other things laid out in Kees Cook's Kernel Summit talk at the end of October. Many of these techniques are well understood and have been adopted by other operating systems; others will require innovation on our part. But, if we want to adequately defend our users from attackers, these changes need to be made.
-
-Why hasn't the kernel adopted these technologies already? The Washington Post article puts the blame firmly on the development community, and on Linus Torvalds in particular. The culture of the kernel community prioritizes performance and functionality over security and is unwilling to make compromises if they are needed to improve the security of the kernel. There is some truth to this claim; the good news is that attitudes appear to be shifting as the scope of the problem becomes clear. Kees's talk was well received, and it clearly got developers thinking and talking about the issues.
-
-The point that has been missed is that we do not just have a case of Linus fending off useful security patches. There simply are not many such patches circulating in the kernel community. In particular, the few developers who are working in this area have never made a serious attempt to get that work integrated upstream. Getting any large, intrusive patch set merged requires working with the kernel community, making the case for the changes, splitting the changes into reviewable pieces, dealing with review comments, and so on. It can be tiresome and frustrating, but it's how the kernel works, and it clearly results in a more generally useful, more maintainable kernel in the long run.
-
-Almost nobody is doing that work to get new security technologies into the kernel. One might cite a "chilling effect" from the hostile reaction such patches can receive, but that is an inadequate answer: developers have managed to merge many changes over the years despite a difficult initial reaction. Few security developers are even trying.
-
-Why aren't they trying? One fairly obvious answer is that almost nobody is being paid to try. Almost all of the work going into the kernel is done by paid developers and has been for many years. The areas that companies see fit to support get a lot of work and are well advanced in the kernel. The areas that companies think are not their problem are rather less so. The difficulties in getting support for realtime development are a clear case in point. Other areas, such as documentation, tend to languish as well. Security is clearly one of those areas. There are a lot of reasons why Linux lags behind in defensive security technologies, but one of the key ones is that the companies making money on Linux have not prioritized the development and integration of those technologies.
-
-There are signs that things might be changing a bit. More developers are showing interest in security-related issues, though commercial support for their work is still less than it should be. The reaction against security-related changes might be less knee-jerk negative than it used to be. Efforts like the Kernel Self Protection Project are starting to work on integrating existing security technologies into the kernel.
-
-We have a long way to go, but, with some support and the right mindset, a lot of progress can be made in a short time. The kernel community can do amazing things when it sets its mind to it. With luck, the Washington Post article will help to provide the needed impetus for that sort of setting of mind. History suggests that we will eventually see this moment as a turning point, when we were finally embarrassed into doing work that has clearly needed doing for a while. Linux should not have a substandard security story for much longer.
-
----------------------------
-
-via: https://lwn.net/Articles/663474/
-
-作者:Jonathan Corbet
-
-译者:[译者ID](https://github.com/译者ID)
-
-校对:[校对者ID](https://github.com/校对者ID)
-
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+又一次 Mindcraft 事件?
+=======================
+
+感谢:Jonathan Corbet
+
+Linux 内核开发很少吸引像华盛顿邮报这样主流媒体的关注,内核社区在安全方面进展的冗长功能列表就更少人看了。所以当这样一个功能发布到网上,就吸引了很多人的注意。关于这篇文章有不同的反应,很多人认为这是对 Linux 直接的攻击。文章背后的动机很难知道,但是从历史经验来看,它也可以看作对我们早就该前进的方向的一次非常必要的推动。
+
+回顾一次在昏暗遥远过去的事件 - 确切地说是 1999 年 4 月。一家叫 Mindcraft 的分析公司发布了一份报告显示 Windows NT 在服务器开销方面完胜 Red Hat Linux 5.2 加 Apache。Linux 社区,包括当时还很年轻的 LWN,的反应很迅速而且强烈。这份报告是微软资助的 FUD 的一部分,用来消除那些全球垄断计划的新兴威胁。报告指出,Linux 系统有意配置成低性能,Linux 不支持当时的很多硬件,等等。
+
+在大家稍微冷静一点后,尽管如此,事实很明显:Mindcraft 的人,不管什么动机,说的也有道理。当时 Linux 确实在性能方面存在一些已经被充分认识到的问题。然后社区做了最正确的事情:我们坐下来解决问题。比如,单独唤醒的调度器可以终结接受连接请求时的惊群问题。其他很多小问题也都解决了。在差不多一年里,内核在这类开销方面的性能已经有了非常大的改善。
+
+这份 Mindcraft 的报告,某种意义上来说,往 Linux 背后踢了很有必要的一脚,推动整个社区去处理一些当时被忽略的事情。
+
+华盛顿邮报的文章明显在鄙视 Linux 内核以及它的贡献者。它随意地混淆了内核问题和其他根本不是内核脆弱性引起的问题(比如,AshleyMadison.com 被黑)。不过供应商没什么兴趣为他们的客户提供安全补丁的事实,就像一头巨象在房间里跳舞一样明显。还有谣言说这篇文章后面的黑暗势力希望打击一下 Linux 的势头。这些也许都是真的,但是也不能掩盖一个简单的事实,就是文章说的确实是真的。
+
+我们会合理地测试并解决问题。而问题,不管是不是安全相关,能很快得到修复,然后再通过稳定更新的机制将这些补丁发布给内核用户。比起外面很多应用程序(免费的和付费的),内核的支持非常好。但是指责我们解决问题的能力时却遗漏了关键的一点:解决安全问题最终是一个打鼹鼠游戏。总是会出来更多的鼹鼠,其中有一些在攻击者发现并利用后很长时间我们都还不知道(所以没法使劲打下去)。尽管商业 Linux 已经非常努力地在将补丁传递给用户,这种问题还是会让我们的用户很受伤 - 只是这并不是故意的。
+
+关键是只是解决问题并不够,一些关心安全性的开发者也已经开始尝试。我们必须认识到,问题永远都解不完,所以要让问题更难被发现和利用。意思就是限制访问内核信息,绝对不允许内核执行用户空间内存的指令,指示内核侦测整数溢出,以及 Kee Cook 在十月底内核峰会的讲话中所提出的其他所有事情。其中许多技术被其他操作系统深刻理解并采用了;它们的创新也有我们的功劳。但是,如果我们想充分保护我们的用户免受攻击,这些改变是必须要做的。
+
+为什么内核还没有引入这些技术?华盛顿邮报的文章坚定地指责开发社区,特别是 Linus Torvalds。内核社区的传统就是相对安全性更侧重于性能和功能,在需要牺牲性能来改善内核安全性时并不愿意折中处理。这些指责一定程度上是对的;好的一面是,因为问题的范围变得清晰,态度看上去有点改善。Kee 的演讲都听进去了,而且很明显让开发者开始思考和讨论这些问题。
+
+而被忽略的一点是,并不仅仅是 Linus 在拒绝有用的安全补丁。而是就没有多少这种补丁在内核社区里流传。特别是,在这个领域工作的开发者就那么些人,而且从没有认真地尝试把自己的工作合并到上游。要合并任何大的侵入性补丁,需要和内核社区一起工作,为改动编写用例,将改动分割成方便审核的碎片,处理审核意见,等等。整个过程可能会有点无聊而且让人沮丧,但这却是内核维护的运作方式,而且很明显只有这样才能在长时间的开发中形成更有用更可维护的内核。 
+
+几乎没有人会走这个流程来将最新的安全技术引入内核。对于这类补丁可能收到的不利反应,有人觉得也许会导致“寒蝉效应”,但是这个说法并不充分:不管最初的反应有多麻烦,多年以来开发者已经合并了大量的改动。而少数安全开发者连试都没试过。
+
+他们为什么不愿意尝试?一个比较明显的答案是,几乎没有人会因此拿到报酬。几乎所有引入内核的工作都由付费开发者完成,而且已经持续多年。公司能看到利润的领域在内核里都有大量的工作以及很好的进展。而公司觉得和它们没关系的领域就不会这样了。为实时开发找到赞助支持的困难就是很明显的例子。其他领域,比如文档,也在慢慢萧条。安全性很明显也属于这类领域。可能有很多原因导致 Linux 落后于防御式安全技术,但是其中最关键的一条是,靠 Linux 赚钱的公司没有重视这些技术的开发和应用。
+
+有迹象显示局面已有所转变。越来越多的开发人员开始关注安全相关问题,尽管对他们工作的商业支持还仍然不够。对于安全相关的改变已经没有之前那样的下意识反应了。像内核自我保护项目这样,已经开始把现存的安全技术集成进入内核了。
+
+我们还有很长的路要走,但是,如果能有一些支持以及正确的思想,短期内能有很大的进展。内核社区在确定了自己的想法后可以做到很让人惊叹的事情。幸运的是,华盛顿邮报的文章将有助于提供形成这种想法的必要动力。在历史的角度上,我们很可能会把这次事件看作一个转折点,我们最终被倒逼着去完成之前很明确需要做的事情。Linux 不应该再继续讲述这个安全不合格的故事了。
+
+---------------------------
+
+via: https://lwn.net/Articles/663474/
+
+作者:Jonathan Corbet
+
+译者:[zpl1025](https://github.com/zpl1025)
+
+校对:[校对者ID](https://github.com/校对者ID)
+
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

From 93fa61462f5be9c3f86de81b7bcd5a33d5cfd5ad Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Tue, 15 Mar 2016 16:23:00 +0800
Subject: [PATCH 268/582] =?UTF-8?q?20160314-2=20=E9=80=89=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

keyword: Node.js , opensource , project management  , software
---
 sources/tech/20160314 Healthy Open Source.md | 212 +++++++++++++++++++
 1 file changed, 212 insertions(+)
 create mode 100644 sources/tech/20160314 Healthy Open Source.md

diff --git a/sources/tech/20160314 Healthy Open Source.md b/sources/tech/20160314 Healthy Open Source.md
new file mode 100644
index 0000000000..b36b516758
--- /dev/null
+++ b/sources/tech/20160314 Healthy Open Source.md	
@@ -0,0 +1,212 @@
+Healthy Open Source
+============================
+
+keyword: Node.js , opensource , project management , software
+
+*A walkthrough of the Node.js Foundation’s base contribution policy*.
+
+A lot has changed since io.js and Node.js merged under the Node.js Foundation. The most impressive change, and probably the change that is most relevant to the rest of the community and to open source in general, is the growth in contributors and committers to the project.
+
+A few years ago, Node.js had just a few committers (contributors with write access to the repository in order to merge code and triage bugs). The maintenance overhead for the few committers on Node.js Core was overwhelming and the project began to see a decline in both committers and outside contribution. This resulted in a corresponding decline in releases.
+
+Today, the Node.js project is divided into many components with a full org size of well over 400 members. Node.js Core now has over 50 committers and over 100 contributors per month.
+
+Through this growth we’ve found many tools that help scale the human infrastructure around an Open Source project. We also identified a few core values we believe are fundamental to modern Open Source: transparency, participation, and efficacy. As we continue to scale the way we do Open Source we try to find a balance of these values and adapt the practices we find help to fit the needs of each component of the Node.js project.
+
+Now that Node.js is in a good place, the foundation is looking to promote this kind of sustainability in the ecosystem. Part of this is a new umbrella for additional projects to enter the foundation, of which [Express was recently admitted][1], and the creation of this new contribution policy.
+
+This contribution policy is not universal. It’s meant as a starting point. Additions and alterations to this policy are encouraged so that the process used by each project fits its needs and can continue to change shape as the project grows and faces new challenges.
+
+The [current version][2] is hosted in the Node.js Foundation. We expect to iterate on this over time and encourage people to [log issues][3] with questions and feedback regarding the policy for future iterations.
+
+This document describes a very simple process suitable for most projects in the Node.js ecosystem. Projects are encouraged to adopt this whether they are hosted in the Node.js Foundation or not.
+
+The Node.js project is organized into over a hundred repositories and a few dozen Working Groups. There are large variations in contribution policy between many of these components because each one has different constraints. This document is a minimalist version of the processes and philosophy we’ve found works best everywhere.
+
+We believe that contributors should own their projects, and that includes contribution policies like this. While new foundation projects start with this policy we expect many of them to alter it or possibly diverge from it entirely to suite their own specific needs.
+
+The goal of this document is to create a contribution process that:
+
+* Encourages new contributions.
+
+* Encourages contributors to remain involved.
+
+* Avoids unnecessary processes and bureaucracy whenever possible.
+
+* Creates a transparent decision making process which makes it clear how contributors can be involved in decision making.
+
+Most contribution processes are created by maintainers who feel overwhelmed by outside contributions. These documents have traditionally been about processes that make life easier for a small group of maintainers, often at the cost of attracting new contributors.
+
+We’ve gone the opposite direction. The purpose of this policy is to gain contributors, to retain them as much as possible, and to use a much larger and growing contributor base to manage the corresponding influx of contributions.
+
+As projects mature, there’s a tendency to become top heavy and overly hierarchical as a means of quality control and this is enforced through process. We use process to add transparency that encourages participation which grows the code review pool which leads to better quality control.
+
+This document is based on much prior art in the Node.js community, io.js, and the Node.js project.
+
+This document is based on what we’ve learned growing the Node.js project. Not just the core project, which has been a massive undertaking, but also much smaller sub-projects like the website which have very different needs and, as a result, very different processes.
+
+When we began these reforms in the Node.js project, we were taking a lot of inspiration from the broader Node.js ecosystem. In particular, Rod Vagg’s [OPEN Open Source policy][4]. Rod’s work in levelup and nan is the basis for what we now call “liberal contribution policies.”
+
+### Vocabulary
+
+* A **Contributor** is any individual creating or commenting on an issue or pull request.
+
+* A **Committer** is a subset of contributors who have been given write access to the repository.
+
+* A **TC (Technical Committee)** is a group of committers representing the required technical expertise to resolve rare disputes.
+
+Every person who shows up to comment on an issue or submit code is a member of a project’s community. Just being able to see them means that they have crossed the line from being a user to being a contributor.
+
+Typically open source projects have had a single distinction for those that have write access to the repository and those empowered with decision making. We’ve found this to be inadequate and have separated this into two distinctions which we’ll dive into more a bit later.
+
+![](https://www.linux.com/images/stories/66866/healthy_1.png)
+
+healthy 1Looking at the community in and around a project as a bunch of concentric circles helps to visualize this.
+
+In the outermost circle are users, a subset of those users are contributors, a subset of contributors become committers who can merge code and triage issues. Finally, a smaller group of trusted experts who only get pulled in to the hard problems and can act as a tie-breaker in disputes.
+
+This is what a healthy project should look like. As the demands on the project from increased users rise, so do the contributors, and as contributors increase more are converted into committers. As the committer base grows, more of them rise to the level of expertise where they should be involved in higher level decision making.
+
+![](https://www.linux.com/images/stories/66866/healthy-2.png)
+
+If these groups don’t grow in proportion to each other they can’t carry the load imposed on them by outward growth. A project’s ability to convert people from each of these groups is the only way it can stay healthy if its user base is growing.
+
+This is what unhealthy projects look like in their earliest stages of dysfunction, but imagine that the committers bubble is so small you can’t actually read the word “committers” in it, and imagine this is a logarithmic scale.
+
+healthy-2A massive user base is pushing a lot of contributions onto a very small number of maintainers.
+
+This is when maintainers build processes and barriers to new contributions as a means to manage the workload. Often the problems the project is facing will be attributed to the tools the project is using, especially GitHub.
+
+In Node.js we had all the same problems, resolved them without a change in tooling, and today manage a growing workload much larger than most projects, and GitHub has not been a bottleneck.
+
+We know what happens to unhealthy projects over a long enough time period, more maintainers leave, contributions eventually fall, and **if we’re lucky** users leave it. When we aren’t so lucky adoption continues and years later we’re plagued with security and stability issues in widely adopt software that can’t be effectively maintained.
+
+The number of users a project has is a poor indicator of the health of the project, often it is the most used software that suffers the biggest contribution crisis.
+
+### Logging
+
+Log an issue for any question or problem you might have. When in doubt, log an issue, any additional policies about what to include will be provided in the responses. The only exception is security disclosures which should be sent privately.
+
+The first sentence is surprisingly controversial. A lot of maintainers complain that there isn’t a more heavy handed way of forcing people to read a document before they log an issue on GitHub. We have documents all over projects in the Node.js Foundation about writing good bug reports but, first and foremost, we encourage people to log something and try to avoid putting barriers in the way of that.
+
+Sure, we get bad bugs, but we have a ton of contributors who can immediately work with people who log them to educate them on better practices and treat it as an opportunity to educate. This is why we have documentation on writing good bugs, in order to educate contributors, not as a barrier to entry.
+
+Creating barriers to entry just reduces the number of people there’s a chance to identify, educate and potentially grow into greater contributors.
+
+Of course, never log a public issue about a security disclosure, ever. This is a bit vague about the best private venue because we can’t determine that for every project that adopts this policy, but we’re working on a responsible disclosure mechanism for the broader community (stay tuned).
+
+Committers may direct you to another repository, ask for additional clarifications, and add appropriate metadata before the issue is addressed.
+
+For smaller projects this isn’t a big deal but in Node.js we’ve had to continually break off work into other, more specific, repositories just to keep the volume on a single repo manageable. But all anyone has to do when someone puts something in the wrong place is direct them to the right one.
+
+Another benefit of growing the committer base is that there’s more people to deal with little things, like redirecting issues to other repos, or adding metadata to issues and PRs. This allows developers who are more specialized to focus on just a narrow subset of work rather than triaging issues.
+
+Please be courteous, respectful, and every participant is expected to follow the project’s Code of Conduct.
+
+One thing that can burn out a project is when people show up with a lot of hostility and entitlement. Most of the time this sentiment comes from a feeling that their input isn’t valued. No matter what, a few people will show up who are used to more hostile environments and it’s good to have these kinds of expectations explicit and written down.
+
+And each project should have a Code of Conduct, which is an extension of these expectations that makes people feel safe and respected.
+
+### Contributions
+
+Any change to resources in this repository must be through pull requests. This applies to all changes to documentation, code, binary files, etc. Even long term committers and TC members must use pull requests.
+
+No pull request can be merged without being reviewed.
+
+Every change needs to be a pull request.
+
+A Pull Request captures the entire discussion and review of a change. Allowing some subset of committers to slip things in without a Pull Request gives the impression to potential contributors that they they can’t be involved in the project because they don’t have access to a behind the scenes process or culture.
+
+This isn’t just a good practice, it’s a necessity in order to be transparent enough to attract new contributors.
+
+For non-trivial contributions, pull requests should sit for at least 36 hours to ensure that contributors in other timezones have time to review. Consideration should also be given to weekends and other holiday periods to ensure active committers all have reasonable time to become involved in the discussion and review process if they wish.
+
+Part of being open and inviting to more contributors is making the process accessible to people in timezones all over the world. We don’t want to add an artificial delay in small doc changes but for any change that needs a bit of consideration needs to give people in different parts of the world time to consider it.
+
+In Node.js we actually have an even longer timeline than this, 48 hours on weekdays and 72 on weekends. That might be too much for smaller projects so it is shorter in this base policy but as a project grows it may want to increase this as well.
+
+The default for each contribution is that it is accepted once no committer has an objection. During review committers may also request that a specific contributor who is most versed in a particular area gives a “LGTM” before the PR can be merged. There is no additional “sign off” process for contributions to land. Once all issues brought by committers are addressed it can be landed by any committer.
+
+A key part of the liberal contribution policies we’ve been building is an inversion of the typical code review process. Rather than the default mode for a change to be rejected until enough people sign off, we make the default for every change to land. This puts the onus on reviewers to note exactly what adjustments need to be made in order for it to land.
+
+For new contributors it’s a big leap just to get that initial code up and sent. Viewing the code review process as a series of small adjustments and education, rather than a quality control hierarchy, does a lot to encourage and retain these new contributors.
+
+It’s important not to build processes that encourage a project to be too top heavy, with a few people needing to sign off on every change. Instead, we just mention any committer than we think should weigh in on a specific review. In Node.js we have people who are the experts on OpenSSL, any change to crypto is going to need a LGTM from them. This kind of expertise forms naturally as a project grows and this is a good way to work with it without burning people out.
+
+In the case of an objection being raised in a pull request by another committer, all involved committers should seek to arrive at a consensus by way of addressing concerns being expressed by discussion, compromise on the proposed change, or withdrawal of the proposed change.
+
+This is what we call a lazy consensus seeking process. Most review comments and adjustments are uncontroversial and the process should optimize for getting them in without unnecessary process. When there is disagreement, try to reach an easy consensus among the committers. More than 90% of the time this is simple, easy and obvious.
+
+If a contribution is controversial and committers cannot agree about how to get it to land or if it should land then it should be escalated to the TC. TC members should regularly discuss pending contributions in order to find a resolution. It is expected that only a small minority of issues be brought to the TC for resolution and that discussion and compromise among committers be the default resolution mechanism.
+
+For the minority of changes that are controversial and don’t reach an easy consensus we escalate that to the TC. These are rare but when they do happen it’s good to reach a resolution quickly rather than letting things fester. Contentious issues tend to get a lot of attention, especially by those more casually involved in the project or even entirely outside of it, but they account for a relatively small amount of what the project does every day.
+
+### Becoming a Committer
+
+All contributors who land a non-trivial contribution should be on-boarded in a timely manner, and added as a committer, and be given write access to the repository.
+
+This is where we diverge sharply from open source tradition.
+
+Projects have historically guarded commit rights to their version control system. This made a lot of sense when we were using version control systems like subversion. A single contributor can inadvertently mess up a project pretty badly in older version control systems, but not so much in git. In git, there isn’t a lot that can’t be fixed and so most of the quality controls we put on guarding access are no longer necessary.
+
+Not every committer has the rights to release or make high level decisions, so we can be much more liberal about giving out commit rights. That increases the committer base for code review and bug triage. As a wider range of expertise in the committer pool smaller changes are reviewed and adjusted without the intervention of the more technical contributors, who can spend their time on reviews only they can do.
+
+This is they key to scaling contribution growth: committer growth.
+
+Committers are expected to follow this policy and continue to send pull requests, go through proper review, and have other committers merge their pull requests.
+
+This part is entirely redundant, but on purpose. Just a reminder even once someone is a committer their changes still flow through the same process they followed before.
+
+### TC Process
+
+The TC uses a “consensus seeking” process for issues that are escalated to the TC. The group tries to find a resolution that has no open objections among TC members. If a consensus cannot be reached that has no objections then a majority wins vote is called. It is also expected that the majority of decisions made by the TC are via a consensus seeking process and that voting is only used as a last-resort.
+
+The best solution tends to be the one everyone can agree to so you would think that consensus systems would be the norm. However, **pure consensus** systems incentivize obstructionism which we need to avoid.
+
+In pure consensus everyone essentially has a veto. So, if I don’t want something to happen I’m in a strong position of power over everyone that wants something to happen. They have to convince me, and I don’t have to convince anyone else of anything.
+
+To avoid this we use a system called “consensus seeking” which has a long history outside of open source. It’s quite simple, just attempt to reach a consensus, if a consensus can’t be reached then call for a majority wins vote.
+
+Just the fact that a vote **is a possibility** means that people can’t be obstructionists, whether someone favor a change or not, they have to convince their peers and if they aren’t willing to put in the work to convince their peers then they probably don’t involve themselves in that decision at all.
+
+The way these incentives play out is pretty impressive. We started using this process in io.js and adopted it in Node.js when we merged into the foundation. In that entire time we’ve never actually had to call for a vote, just the fact that we could is enough to keep everyone working together to find a solution and move forward.
+
+Resolution may involve returning the issue to committers with suggestions on how to move forward towards a consensus. It is not expected that a meeting of the TC will resolve all issues on its agenda during that meeting and may prefer to continue the discussion happening among the committers.
+
+A TC tries to resolve things in a timely manner so that people can make progress but often it’s better to provide some additional guidance that pushes the greater contributorship towards resolution without being heavy handed.
+
+Avoid creating big decision hierarchies. Instead, invest in a broad, growing and empowered contributorship that can make progress without intervention. We need to view a constant need for intervention by a few people to make any and every tough decision as the biggest obstacle to healthy Open Source.
+
+Members can be added to the TC at any time. Any committer can nominate another committer to the TC and the TC uses its standard consensus seeking process to evaluate whether or not to add this new member. Members who do not participate consistently at the level of a majority of the other members are expected to resign.
+
+The TC just uses the same consensus seeking process for adding new members as it uses for everything else.
+
+It’s a good idea to encourage committers to nominate people to the TC and not just wait around for TC members to notice the impact some people are having. Listening to the broader committers about who they see as having a big impact keeps the TC’s perspective inline with the rest of the project.
+
+As a project grows it’s important to add people from a variety of skill sets. If people are doing a lot of docs work, or test work, treat the investment they are making as equally valuable as the hard technical stuff.
+
+Projects should have the same ladder, user -> contributor -> commiters -> TC member, for every skill set they want to build into the project to keep it healthy.
+
+I often see long time maintainers worry about adding people who don’t understand every part of the project, as if they have to be involved in every decision. The reality is that people do know their limitations and want to defer hard decisions to people they know have more experience.
+
+Thanks to Greg [Wallace][5] and ashley [williams][6].
+
+--------------------------------------------------------------------------------
+
+via: https://www.linux.com/news/biz-os/governance/892141-healthy-open-source
+
+作者:[Mikeal Rogers][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:https://www.linux.com/community/forums/person/66928
+
+
+[1]: https://medium.com/@nodejs/node-js-foundation-to-add-express-as-an-incubator-project-225fa3008f70#.mc30mvj4m
+[2]: https://github.com/nodejs/TSC/blob/master/BasePolicies/CONTRIBUTING.md
+[3]: https://github.com/nodejs/TSC/issues
+[4]: https://github.com/Level/community/blob/master/CONTRIBUTING.md
+[5]: https://medium.com/@gtewallaceLF
+[6]: https://medium.com/@ag_dubs

From 5f72154fcf34e3b3d25a30da8873ff004f6cffad Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 07:07:29 +0800
Subject: [PATCH 269/582] PUB:20151020 18 Years of GNOME Design and Software
 Evolution--Step by Step
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

@HaohongWANG 用心了~
---
 ...gn and Software Evolution--Step by Step.md | 200 ++++++++++++++++++
 ...gn and Software Evolution--Step by Step.md | 200 ------------------
 2 files changed, 200 insertions(+), 200 deletions(-)
 create mode 100644 published/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md
 delete mode 100644 translated/talk/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md

diff --git a/published/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md b/published/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md
new file mode 100644
index 0000000000..6c579e0d5f
--- /dev/null
+++ b/published/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md	
@@ -0,0 +1,200 @@
+
+一步一脚印:GNOME十八年进化史
+================================================================================
+注:youtube 视频
+
+
+[GNOME][1] (GNU Object Model Environment)由两位墨西哥的程序员 Miguel de Icaza 和 Federico Mena 始创于1997年8月15日。GNOME 自由软件计划由志愿者和全职开发者来开发一个桌面环境及其应用程序。GNOME 桌面环境的所有部分都由开源软件组成,并且支持Linux, FreeBSD, OpenBSD 等操作系统。
+
+现在就让我穿越到1997年来看看 GNOME 的第一个版本:
+
+### GNOME 1 ###
+
+![GNOME 1.0 - GNOME 发布的第一个重大版本](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/1.0/gnome.png)
+
+*GNOME 1.0 (1997) – GNOME 发布的第一个重大版本*
+
+![GNOME 1.2 Bongo](https://raw.githubusercontent.com/paulcarroty/Articles/master/GNOME_History/1.2/1361441938.or.86429.png)
+
+*GNOME 1.2 “Bongo”,2000*
+
+![GNOME 1.4 Tranquility](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/1.4/1.png)
+
+*GNOME 1.4 “Tranquility”, 2001*
+
+### GNOME 2 ###
+
+![GNOME 2.0](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.0/1.png)
+
+*GNOME 2.0, 2002*
+
+重大更新,基于 GTK+ 2。引入了人机界面指南(Human Interface Guidelines)。
+
+![GNOME 2.2](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.2/GNOME_2.2_catala.png)
+
+*GNOME 2.2 2003*
+
+改进了多媒体和文件管理器。
+
+![GNOME 2.4 Temujin](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.4/gnome-desktop.png)
+
+*GNOME 2.4 “Temujin”, 2003*
+
+首次发布 Epiphany 浏览器,增添了辅助功能(accessibility)。
+
+![GNOME 2.6](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.6/Adam_Hooper.png)
+
+*GNOME 2.6, 2004*
+
+Nautilus 成为主要的文件管理工具,同时引入了新的 GTK+ 对话框。作为对这个版本中变化的结果,创建了一个存在时间不久的分叉版本:GoneME。
+
+![GNOME 2.8](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.8/3.png)
+
+*GNOME 2.8, 2004*
+
+改良了对可移动设备的支持,并新增了 Evolution 邮件应用。
+
+![GNOME 2.10](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.10/GNOME-Screenshot-2.10-FC4.png)
+
+*GNOME 2.10, 2005*
+
+减小了内存需求和提升了性能。增加了新的面板小应用(调制解调器控制、磁盘挂载器和回收站组件)以及 Totem 影片播放器和 Sound Juicer CD抓取工具。
+
+![GNOME 2.12](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.12/gnome-livecd.jpg)
+
+*GNOME 2.12, 2005*
+
+改进了 Nautilus,改进了应用程序间的剪切/粘贴功能和 freedesktop.org 的整合。 新增 Evince PDF 阅读器;新默认主题 Clearlooks;菜单编辑器、钥匙环管理器和管理员工具。基于 GTK+2.8,支持 Cairo。
+
+![GNOME 2.14](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.14/debian4-stable.jpg)
+
+*GNOME 2.14, 2006*
+
+性能提升(某些情况下超过 100%);增强用户界面的易用性;GStreamer 0.10 多媒体框架。增加了 Ekiga 视频会议应用、Deskbar 搜索工具、Pessulus 权限管理器、快速切换用户功能和 Sabayon 系统管理员工具。
+
+![GNOME 2.16](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.16/Gnome-2.16-screenshot.png)
+
+*GNOME 2.16, 2006*
+
+性能提升。增加了 Tomboy 笔记应用、Baobab 磁盘用量分析应用、Orca 屏幕阅读器以及 GNOME 电源管理程序(延长了笔记本电池寿命)。改进了 Totem、Nautilus。Metacity 窗口管理器的合成(compositing)支持。新的图标主题。基于 GTK+ 2.0 的全新打印对话框。
+
+![GNOME 2.18](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.18/Gnome-2.18.1.png)
+
+*GNOME 2.18, 2007*
+
+性能提升。增加了 Seahorse GPG 安全应用,可以对邮件和本地文件进行加密。Baobab 改进了环状图表显示方式的支持。Orca 屏幕阅读器。改进了 Evince、Epiphany、GNOME 电源管理、音量控制。增加了两款新游戏:GNOME 数独和 glChess 国际象棋。支持 MP3 和 AAC 音频解码。
+
+![GNOME 2.20](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.20/rnintroduction-screenshot.png)
+
+*GNOME 2.20, 2007*
+
+发布十周年版本。Evolution 增加了备份功能。改进了 Epiphany、EOG、GNOME 电源管理。Seahorse 中的钥匙环密码管理功能。增加:在 Evince 中可以编辑PDF文档、文件管理界面中整合了搜索模块、自动安装多媒体解码器。
+
+![GNOME 2.22, 2008](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.22/GNOME-2-22-2-Released-2.png)
+
+*GNOME 2.22, 2008*
+
+新增 Cheese 应用,它是一个可以截取网络摄像头和远程桌面图像的工具。Metacity 支持基本的窗口合成(compositing)。引入 GVFS(LCTT译注:GNOME Virtual file system,GNOME 虚拟文件系统)。改善了Totem 播放 DVD 和 YouTube 的效果,支持播放 MythTV。时钟小应用支持国际化。在 Evolution 中新增了谷歌日历以及为信息添加标签的功能。改进了 Evince、Tomboy、 Sound Juicer 和计算器。
+
+![GNOME 2.24](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.24/gnome-224.jpg)
+
+*GNOME 2.24, 2008*
+
+新增了 Empathy 即时通讯软件。Ekiga 升级至3.0版本。Nautilus 支持标签式浏览,更好的支持了多屏幕显示方式和数字电视功能。
+
+![GNOME 2.26](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.26/gnome226-large_001.jpg)
+
+*GNOME 2.26, 2009*
+
+新增光盘刻录应用 Brasero。简化了文件分享的流程。改进了媒体播放器的性能。支持多显示器和指纹识别器。
+
+![GNOME 2.28](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.28/1.png)
+
+*GNOME 2.28, 2009*
+
+增加了 GNOME 蓝牙模块。改进了 Epiphany 网页浏览器、Empathy 即时通讯软件、时间追踪器和辅助功能。GTK+ 升级至2.18版本。
+
+![GNOME 2.30](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.30/GNOME2.30.png)
+
+*GNOME 2.30, 2010*
+
+改进了 Nautilus 文件管理器、Empathy 即时通讯软件、Tomboy、Evince、时间追踪器、Epiphany 和 Vinagre。借助 GVFS 通过 libimobiledevice(LCTT 译注:支持iOS®设备跨平台使用的工具协议库)部分地支持了 iPod 和 iPod Touch 设备。
+
+![GNOME 2.32](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.32/gnome-2-32.png.en_GB.png)
+
+*GNOME 2.32, 2010*
+
+新增 Rygel 媒体分享工具和 GNOME 色彩管理器。改进了 Empathy 即时通讯软件、Evince、Nautilus 文件管理器等。由于计划于2010年9月发布3.0版本,因此大部分开发者的精力都由2.3x转移至了3.0版本。
+
+### GNOME 3 ###
+
+![GNOME 3.0](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.0/chat-3-0.png)
+
+*GNOME 3.0, 2011*
+
+引入 GNOME Shell,这是一个重新设计的、具有更简练更集中的选项的框架。基于 Mallard 标记语言的话题导向型帮助系统。支持窗口并列堆叠。启用新的视觉主题和默认字体。采用 GTK+ 3.0,具有更好的语言绑定、主题、触控以及多平台支持。去除了那些长期弃用的 API。
+
+![GNOME 3.2](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.2/gdm.png)
+
+*GNOME 3.2、 2011*
+
+支持在线帐户、“浏览器”应用。新增通讯录应用和文档文件管理器。“文件管理器”支持快速预览。较大的整合,文档更完善,以及对外观的改善和各种性能提升。
+
+![GNOME 3.4](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.4/application-view.png)
+
+*GNOME 3.4, 2012*
+
+全新外观的 GNOME 3 应用程序:“文件”、Epiphany(更名为“浏览器”)、“GNOME 通讯录”。可以在活动概览中搜索本地文件。支持应用菜单。焕然一新的界面元素:新的颜色拾取器、重新设计的滚动条、更易使用的旋钮以及可隐藏的标题栏。支持平滑滚动。全新的动态壁纸。在系统设置中改进了对 Wacom 数位板的支持。更简便的扩展应用管理。更好的硬件支持。面向主题的帮助文档。在 Empathy 中提供了对视频电话和动态信息的支持。更好的辅助功能:提升 Orca 整合度,增强高对比度模式,以及全新的缩放设置。大量的应用增强和对细节的改进。
+
+![GNOME 3.6](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.6/gnome-3-6.png)
+
+*GNOME 3.6, 2012*
+
+全新设计的核心元素:新的应用按钮和改进的活动概览布局。新的登录和锁定界面。重新设计的通知栏。通知现在更智能,可见性更高,同时更容易关闭。改进了系统设置的界面和设定逻辑。用户菜单默认显示关闭电源操作。整合的输入方式。辅助功能一直开启。新的应用:Boxes 桌面虚拟化,曾在 GNOME 3.4中发布过预览版。Clocks 时钟,可以显示世界时间。更新了磁盘用量分析、Empathy 和字体查看器的外观。改进了 Orca 对布莱叶盲文的支持。 在“浏览器”中,用最常访问页面取代了之前的空白起始页,增添了更好的全屏模式并使用了 WebKit2 测试版引擎。 Evolution 开始使用 WebKit 显示邮件内容。 改进了“磁盘”功能。 改进了“文件”应用(即之前的 Nautilus),新增诸如最近访问的文件和搜索等功能。
+
+![GNOME 3.8](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.8/applications-view.png)
+
+*GNOME 3.8, 2013*
+
+令人耳目一新的核心组件:新应用界面可以分别显示常用应用及全部应用。窗口布局得到全面改造。新的屏幕即现式(OSD)输入法开关。通知和信息现在会对屏幕边缘的点击作出回应。为那些喜欢传统桌面的用户提供了经典模式。重新设计了设置界面的工具栏。新的初始化引导流程。“GNOME 在线帐户”添加了对更多供应商的支持。“浏览器”正式启用 WebKit2 引擎,有了一个新的私密浏览模式。“文档”支持双页模式并且整合了 “Google 文档”。“通讯录”的 UI 升级。“GNOME 文件”、“GNOME Boxes”和“GNOME 磁盘”都得到了大幅改进。集成了 ownCloud。两款全新的 GNOME 核心应用:“GNOME 时钟”和“GNOME 天气”。
+
+![GNOME 3.10](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.10/GNOME-3-10-Release-Schedule-2.png)
+
+*GNOME 3.10, 2013*
+
+全新打造的系统状态区,能够更直观的纵览全局。一系列新应用,包括 “GNOME 地图”、“GNOME 备忘录”、 “GNOME 音乐”和“GNOME 照片”。新的基于位置的功能,如自动时区和世界时钟。支持高分辨率及智能卡。 基于 GLib 2.38 提供了对 D-Bus 的支持。
+
+![GNOME 3.12](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.12/app-folders.png)
+
+*GNOME 3.12, 2014*
+
+改进了概览中的键盘导航和窗口选择,基于易用性测试对初始设置进行了修改。有线网络图标重新回到了状态栏上,在“应用”视图中可以自定义应用文件夹。在大量应用的对话框中引入了新的 GTK+ 小工具,同时使用了新的 GTK+ 标签风格。“GNOME 视频”,“GNOME 终端”以及 Gedit 都改用了全新外观,更贴合 HIG(LCTT 译注:Human Interface Guidelines,人机界面指南)。在 GNOME Shell 的终端仿真器中提供了搜索预测功能。增强了对 “GNOME 软件”和高分辨率显示屏的支持。提供了新的录音工具。增加了新的桌面通知接口。在向 Wayland 移植的进度中达到了可用的程度,可用选择性地预览体验。
+
+![GNOME 3.14](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.14/Top-Features-of-GNOME-3-14-Gallery-459893-2.jpg)
+
+*GNOME 3.14, 2014*
+
+更炫酷的桌面环境效果,改善了对触摸屏的支持。“GNOME 软件”可以管理安装的插件。在“GNOME 照片”中可以访问 “Google 相册”。重绘了 Evince、数独、扫雷和天气应用的用户界面,同时增加了一款叫做 Hitori 的 GNOME 游戏。
+
+![GNOME 3.16](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.16/preview-apps.png)
+
+*GNOME 3.16, 2015*
+
+33000 处改变。主要的修改包括 UI 的配色方案从黑色变成了炭黑色。 增加了即现式滚动条。通知窗口中整合了日历应用。对“文件”,图像查看器和“地图”等大量应用进行了微调。可以预览应用程序。进一步从 X11 向 Wayland 移植。
+
+感谢 GNOME Project 及 [Wikipedia][2] 提供的变更日志!感谢阅读!
+
+
+--------------------------------------------------------------------------------
+
+via: https://tlhp.cf/18-years-of-gnome-evolution/
+
+作者:[Pavlo Rudyi][a]
+译者:[Haohong WANG](https://github.com/HaohongWANG)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:https://tlhp.cf/author/paul/
+[1]:https://www.gnome.org/
+[2]:https://en.wikipedia.org/wiki/GNOME
diff --git a/translated/talk/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md b/translated/talk/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md
deleted file mode 100644
index 614f10bb85..0000000000
--- a/translated/talk/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md	
+++ /dev/null
@@ -1,200 +0,0 @@
-
-一步一脚印:GNOME十八年进化史
-================================================================================
-注:youtube 视频
-
-
-[GNOME][1] (GNU Object Model Environment)由两位墨西哥的程序员Miguel de Icaza和Federico Mena 始创于1997年8月15日。GNOME自由软件的桌面环境和应用程序计划由志愿者和全职开发者来开发。所有的GNOME桌面环境都由开源软件组成,并且支持Linux, FreeBSD, OpenBSD 等操作系统。
-
-现在就让我穿越到1997年来看看GNOME的第一个版本:
-
-### GNOME 1 ###
-
-![GNOME 1.0 - First major GNOME release](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/1.0/gnome.png)
-
-**GNOME 1.0** (1997) – GNOME 发布的第一个版本
-
-![GNOME 1.2 Bongo](https://raw.githubusercontent.com/paulcarroty/Articles/master/GNOME_History/1.2/1361441938.or.86429.png)
-
-**GNOME 1.2** “Bongo”, 2000
-
-![GNOME 1.4 Tranquility](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/1.4/1.png)
-
-**GNOME 1.4** “Tranquility”, 2001
-
-### GNOME 2 ###
-
-![GNOME 2.0](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.0/1.png)
-
-**GNOME 2.0**, 2002
-
-基于GTK+2的重大更新。引入了人机界面指南。
-
-![GNOME 2.2](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.2/GNOME_2.2_catala.png)
-
-**GNOME 2.2**, 2003
-
-改进了多媒体和文件管理器。
-
-![GNOME 2.4 Temujin](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.4/gnome-desktop.png)
-
-**GNOME 2.4** “Temujin”, 2003
-
-首次发布Epiphany浏览器,增添了辅助功能。
-
-![GNOME 2.6](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.6/Adam_Hooper.png)
-
-**GNOME 2.6**, 2004
-
-启用Nautilus空间文件管理工具同时引入了新的GTK+ (译注:跨平台图形用户界面工具包)对话框。这个转瞬即逝的版本变更被称做是GNOME的一个分支:GoneME。
-
-![GNOME 2.8](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.8/3.png)
-
-**GNOME 2.8**, 2004
-
-改良了对可移动设备的支持并新增了Evolution邮件应用。
-
-![GNOME 2.10](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.10/GNOME-Screenshot-2.10-FC4.png)
-
-**GNOME 2.10**, 2005
-
-减小内存需求,改进显示界面。增加网络控制、磁盘挂载和回收站组件以及Totem影片播放器和Sound Juicer CD抓取工具。
-
-![GNOME 2.12](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.12/gnome-livecd.jpg)
-
-**GNOME 2.12**, 2005
-
-改进了Nautilus以及跨平台剪切/粘贴功能的整合。 新增Evince PDF阅读器;新预设主题Clearlooks;新增菜单编辑器、管理员工具与环状管理器。基于支持Cairo的GTK+2.8。
-
-![GNOME 2.14](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.14/debian4-stable.jpg)
-
-**GNOME 2.14**, 2006
-
-改善显示效果;增强易用性;基于GStreamer 0.10多媒体框架。增加了Ekiga视频会议应用,Deskbar搜索工具,Pessulus权限管理器,和Sabayon系统管理员工具和快速切换用户功能。
-
-![GNOME 2.16](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.16/Gnome-2.16-screenshot.png)
-
-**GNOME 2.16**, 2006
-
-界面改良。增加了Tomboy笔记应用,Baobab磁盘用量分析应用,Orca屏幕朗读器以及GNOME 电源管理程序(以延长笔记本电池寿命);改进了Totem, Nautilus, 使用了新的图标主题。基于GTK+ 2.0 的全新显示对话框。
-
-![GNOME 2.18](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.18/Gnome-2.18.1.png)
-
-**GNOME 2.18**, 2007
-
-界面改良。增加了Seahorse GPG安全应用,可以对邮件和本地文件进行加密;Baobab增加了环状图表显示方式;改进了Orca,Evince, Epiphany, GNOME电源管理,音量控制;增加了两款新游戏:GNOME数独和国际象棋。支持MP3和AAC音频解码。
-
-![GNOME 2.20](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.20/rnintroduction-screenshot.png)
-
-**GNOME 2.20**, 2007
-
-发布十周年版本。Evolution增加了备份功能;改进了Epiphany,EOG,GNOME电源管理以及Seahorse中的Keyring密码管理方式;在Evince中可以编辑PDF文档;文件管理界面中整合了搜索模块;自动安装多媒体解码器。
-
-![GNOME 2.22, 2008](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.22/GNOME-2-22-2-Released-2.png)
-
-**GNOME 2.22**, 2008
-
-新增Cheese应用,它是一个可以截取网络摄像头和远程桌面图像的工具;Metacity支持基本的窗口叠加复合;引入GVFS(译注:GNOME Virtual file system,GNOME虚拟文件系统);改善了Totem播放DVD 和YouTube的效果,支持播放MythTV;在Evolution中新增了谷歌日历以及为信息添加标签的功能;改进了Evince, Tomboy, Sound Juicer和计算器。
-
-![GNOME 2.24](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.24/gnome-224.jpg)
-
-**GNOME 2.24**, 2008
-
-新增了Empathy即时通讯软件,Ekiga升级至3.0版本;Nautilus支持标签式浏览,更好的支持了多屏幕显示方式和数字电视功能。
-
-![GNOME 2.26](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.26/gnome226-large_001.jpg)
-
-**GNOME 2.26**, 2009
-
-新增光盘刻录应用Brasero;简化了文件分享的流程,改进了媒体播放器的性能;支持多显示器和指纹识别器。
-
-![GNOME 2.28](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.28/1.png)
-
-**GNOME 2.28**, 2009
-
-增加了GNOME 蓝牙模块;改进了Epiphany ,Empathy,时间追踪器和辅助功能。GTK+升级至2.18版本。
-
-![GNOME 2.30](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.30/GNOME2.30.png)
-
-**GNOME 2.30**, 2010
-
-改进了Nautilus,Empathy,Tomboy,Evince,Time Tracker,Epiphany和 Vinagre。借助基于libimobiledevice(译注:支持iOS®设备跨平台使用的工具协议库)的GVFS可以访问部分iPod 和iPod Touch。
-
-![GNOME 2.32](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/2.32/gnome-2-32.png.en_GB.png)
-
-**GNOME 2.32**, 2010
-
-新增Rygel 媒体分享工具和GNOME色彩管理器;改进了Empathy即时通讯客户端,Evince,Nautilus文件管理器等。计划于2010年9月发布3.0版本,因此大部分开发者的精力都由2.3x转移至了3.0版本。
-
-### GNOME 3 ###
-
-![GNOME 3.0](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.0/chat-3-0.png)
-
-**GNOME 3.0**, 2011
-
-引入GNOME Shell,一个重新设计的、具有更简练更集中的选项的框架。基于Mallard标记语言的话题导向型帮助。支持窗口并列堆叠。启用新的视觉主题和字体。采用GTK+3.0,具有更好的语言绑定,主题,触控以及多平台支持。去除了长期弃用的API。
-
-![GNOME 3.2](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.2/gdm.png)
-
-**GNOME 3.2**, 2011
-
-支持在线帐户,Web应用;新增通讯录应用和文档文件管理器;文件管理器支持快速预览;整合性能,更新文档以及对外观的一些小改进。
-
-![GNOME 3.4](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.4/application-view.png)
-
-**GNOME 3.4**, 2012
-
-全新的GNOME 3 应用程序外观:文件,Epiphany(更名为Web),GNOME 通讯录。可以在Activities Overview中搜索本地文件。支持应用菜单。焕然一新的界面元素:崭新的颜色拾取器,重新设计的滚动条,更易使用的旋转按钮以及可隐藏的标题栏。支持视角平滑。全新的动态壁纸。在系统设置中增添了对Wacom数位板的支持。更简便的扩展应用管理。更好的硬件支持。面向主题的文档。在Empathy中提供了对视频电话和动态信息的支持。更好的辅助功能:提升Orca整合度,增强高对比度模式适配性,以及全新的缩放设置。大量应用和细节的改进。
-
-![GNOME 3.6](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.6/gnome-3-6.png)
-
-**GNOME 3.6**, 2012
-
-全新设计的核心元素:新的应用按钮和改进的Activities Overview布局。新的登陆锁定界面。重新设计的通知栏。通知现在更智能,可见性更高,同时更容易操作。改进了系统设置的界面和设定逻辑。用户菜单默认显示关机操作。整合了输入法。辅助功能一直开启。新的应用:Boxes虚拟机,在GNOME 3.4中发布了预览版。Clocks时钟, 可以显示世界时间。升级了磁盘用量分析,Empathy和 Font Viewer的外观。改进了Orca对布莱叶盲文的支持。 在Web浏览器中, 用最常访问页面取代了之前的空白起始页,增添了更好的全屏模式并使用了WebKit2测试版引擎. Evolution 开始使用WebKit提交邮件。 改进了磁盘功能。 改进了文件管理应用即之前的Nautilus, 新增诸如最近访问的文件和搜索等功能。
-
-![GNOME 3.8](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.8/applications-view.png)
-
-**GNOME 3.8**, 2013
-
-令人耳目一新的核心组件:新应用界面可以分别显示常用应用及全部应用,窗口布局得到全面改造。新的屏幕即现式输入法开关。通知和信息现在会对屏幕边缘的点击作出回应。为那些喜欢传统桌面的用户提供了经典模式。重新设计了设置界面的工具栏。新的初始化引导流程。GNOME 在线帐户添加了对更多供应商的支持。浏览器正式启用WebKit2引擎。文档支持双页模式并且整合了Google 文档。通讯录的UI升级。GNOME Files,GNOME Boxes和GNOME Disks都得到了大幅改进。两款全新的GNOME核心应用:GNOME时钟和GNOME天气。
-
-![GNOME 3.10](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.10/GNOME-3-10-Release-Schedule-2.png)
-
-**GNOME 3.10**, 2013
-
-全新设计的系统状态界面,能够更直观的纵览全局。一系列新应用,包括GNOME Maps, GNOME Notes, GNOME Music 和GNOME Photos。新的基于位置的功能,如自动时区和世界时间。支持高分辨率及智能卡。 基于GLib 2.38提供了对D-Bus的支持。
-
-![GNOME 3.12](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.12/app-folders.png)
-
-**GNOME 3.12**, 2014
-
-改进了Overview中的键盘导航和窗口选择,基于易用性测试对初始设置进行了修改。有线网络重新回到了状态栏上,在应用预览中可以自定义应用文件夹。在大量应用的对话框中引入了新的GTK+小工具同时使用了新的GTK+标签风格。GNOME Videos,GNOME 终端以及Gedit都改用了全新外观,更贴合HIG(译注:Human Interface Guidelines,人机界面指南)。在GNOME Shell的终端仿真器中提供了搜索预测功能。增强了对GNOME软件和高密度显示屏的支持。提供了新的录音工具。增加了新的桌面通知接口。在Wayland中的进程被置于更易使用的位置并可以进行选择性预览。
-
-![GNOME 3.14](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.14/Top-Features-of-GNOME-3-14-Gallery-459893-2.jpg)
-
-**GNOME 3.14**, 2014
-
-更炫酷的桌面环境效果,改善了对触摸屏的支持。GNOME Software supports managing installed add-ons. 在GNOME Photos中可以访问Google相册。重绘了Evince,数独,扫雷和天气应用的用户界面,同时增加了一款叫做Hitori 的GNOME游戏。
-
-![GNOME 3.16](https://github.com/paulcarroty/Articles/raw/master/GNOME_History/3.16/preview-apps.png)
-
-**GNOME 3.16**, 2015
-
-33,000处改变。主要修改了UI的配色方案。 增加了即现式滚动条。通知窗口中整合了日历应用。对文件管理器,图像查看器和地图等大量应用进行了微调。可以预览应用程序。进一步使用Wayland取代X11。
-
-感谢GNOME Project及[Wikipedia][2]提供的变更日志!感谢阅读!(译注:原文此处为“敬请期待”。)
-
-
---------------------------------------------------------------------------------
-
-via: https://tlhp.cf/18-years-of-gnome-evolution/
-
-作者:[Pavlo Rudyi][a]
-译者:[Haohong WANG](https://github.com/HaohongWANG)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:https://tlhp.cf/author/paul/
-[1]:https://www.gnome.org/
-[2]:https://en.wikipedia.org/wiki/GNOME

From 7cf2860811bdd99833386fbb9d025d9a9b3ede05 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 10:19:39 +0800
Subject: [PATCH 270/582] PUB:20160220 [Free Download] Vi Cheat Sheet For
 Beginners

@JonathanKang
---
 ... Download] Vi Cheat Sheet For Beginners.md | 78 ++++++++++++++++++
 ... Download] Vi Cheat Sheet For Beginners.md | 79 -------------------
 2 files changed, 78 insertions(+), 79 deletions(-)
 create mode 100644 published/20160220 [Free Download] Vi Cheat Sheet For Beginners.md
 delete mode 100644 translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md

diff --git a/published/20160220 [Free Download] Vi Cheat Sheet For Beginners.md b/published/20160220 [Free Download] Vi Cheat Sheet For Beginners.md
new file mode 100644
index 0000000000..6993d7ade1
--- /dev/null
+++ b/published/20160220 [Free Download] Vi Cheat Sheet For Beginners.md	
@@ -0,0 +1,78 @@
+初学者 Vi 备忘单
+================================================
+
+![](http://itsfoss.com/wp-content/uploads/2016/01/VI.jpg)
+
+一直以来,我都在给你们分享我使用 Linux 的经验。今天我想分享我的 **Vi 备忘单**。这份备忘单节省了我很多时间,因为我再也不用使用 Google 去搜索这些命令了。
+
+## 基本 Vi 命令
+
+这并不是一个教你使用 [Vi 编辑器](https://en.wikipedia.org/wiki/Vi)的各个方面的详尽教程。事实上,这根本就不是一个教程。这仅仅是一些基本 Vi 命令以及这些命令简单介绍的集合。
+
+命令|解释
+:--|:--
+`:x`|保存文件并退出
+`:q!`|退出但不保存文件
+`i`|在光标左侧插入
+`a`|在光标右侧插入
+`ESC`按键|退出插入模式
+光标键|移动光标
+`/text`|搜索字符串text(大小写敏感)
+`n`|跳到下一个搜索结果
+`x`|删除当前光标处的字符
+`dd`|删除当前光标所在的行
+`u`|撤销上次改变
+`:0`(数字0)|将光标移动到文件开头
+`:n`|将光标移动到第n行
+`G`|将光标移动到文件结尾
+`^`|将光标移动到该行开头
+`$`|将光标移动到该行结尾
+`:set list`|查看文件中特殊字符
+`yy`|复制光标所在行
+`5yy`|复制从光标所在行开始的5行
+`p`|在光标所在行下面粘贴
+
+你可以通过下面的链接下载 PDF 格式的 Vi 备忘录:
+
+[下载 Vi 备忘录](https://drive.google.com/file/d/0By49_3Av9sT1X3dlWkNQa3g2b2c/view?usp=sharing)
+
+你可以把它打印出来放到你的办公桌上,或者把它保存到你的电脑上来使用。
+
+## 我为什么要建立这个 Vi 备忘录?
+
+几年前,当我刚刚接触 Linux 终端时,使用命令行编辑器这个主意使我一惊。我之前在我自己的电脑上使用过桌面版本的 Linux,所以我很乐意使用像 Gedit 这样的有图形界面的编辑器。但是在工作环境中,我不得不使用命令行,并且无法使用图形界面版的编辑器。
+
+我就这么被强迫地使用 Vi 来对远程 Linux 终端上的文件做一些基本的编辑。从这时候我开始了解并钦佩 Vi 的强大之处。
+
+因为在那时候我还是一个 Vi 新手,所以我经常对 Vi 一些操作很困惑。仍然记得第一次使用 Vi 的时候,由于我不知道如何退出 Vi,所以我都无法关闭某个文件。我也只能通过 Google 搜索来找到解决办法。我不得不接受这个尴尬的事实。
+
+从那以后,我就决定制作一个列表来列出我经常会用到的基本 Vi 操作。这个列表,或者你可能称它为备忘录。在我早期使用 Vi 的时候,它对我非常有用。慢慢地,我对 Vi 更加熟悉,我已经可以熟记那些基本编辑命令。到现在,我甚至不需要再去查看我的 Vi 备忘录了。
+
+## 你为什么需要 Vi 备忘录?
+
+我能理解一个刚刚接触 Vi 的人的感受。你最喜欢的 `Ctrl`+`S` 快捷键不能像在其他编辑器那样方便地保存文件。`Ctrl`+`C`和`Ctrl`+`V`理应是通用的用来复制和粘贴的快捷键,但是在 Vi 中却不是这样。
+
+很多人都在使用类似的备忘录帮助他们熟悉各种编程语言或工具,以便让他们可以快速找到常用的下一步或命令。相信我,使用备忘录会给程序员日常工作带来很大便利。
+
+如果你刚刚开始接触 Vi 或者你经常使用但是总是记不住 Vi 操作,那么这份 Vi 备忘录对于你来说是非常有用的。你可以把它保存下来留作以后查询使用。
+
+## 你怎么看待这份备忘录?
+
+至今为止,我一直在克制我自己不要过于依赖终端。我想知道你是怎么发现这篇文章的?你是否想让我分享更多类似的备忘录出来以供你们下载?我很期待你的意见和建议。
+
+------------------------------------------------------------------------------
+
+via: http://itsfoss.com/download-vi-cheat-sheet/
+
+作者:[ABHISHEK][a]
+译者:[JonathanKang](https://github.com/JonathanKang)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/abhishek/
+
+
+
+
+
diff --git a/translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md b/translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md
deleted file mode 100644
index dbf4ef5011..0000000000
--- a/translated/tech/20160220 [Free Download] Vi Cheat Sheet For Beginners.md	
+++ /dev/null
@@ -1,79 +0,0 @@
-【免费下载】初学者Vi备忘单
-================================================
-
-![](http://itsfoss.com/wp-content/uploads/2016/01/VI.jpg)
-
-一直以来,我都在给你们分享我使用Linux的经验。今天我想分享我的**Vi备忘单**。这份备忘单节省了我很多时间,因为我再也不用使用Google去搜索这些命令了。
-
-## Basic Vi commands
-## 基本Vi命令
-
-这并不是一个详尽的教程来教你[Vi编辑器](https://en.wikipedia.org/wiki/Vi)的每一个方面。事实上,这根本就不是一个教程。这仅仅是一些基本Vi命令以及这些命令简单介绍的集合。
-
-命令|解释
-:--|:--
-:x |保存文件并退出
-:q!|退出但不保存文件
-i|在光标左侧插入
-a|在光标右侧插入
-ESC|退出插入模式
-arrows|移动光标
-/text|搜索字符串text(大小写敏感)
-n|跳到下一个搜索结果
-x|删除当前光标处的字符
-dd|删除当前光标所在的行
-u|撤销上次改变
-:0|将光标移动到文件开头
-:n|将光标移动到第n行
-G|将光标移动到文件结尾
-^|将光标移动到该行开头
-$|将光标移动到该行结尾
-:set list|查看文件中特殊字符
-yy|复制光标所在行
-5yy|复制从光标所在行开始的5行
-p|在光标所在行下面粘贴
-
-你可以通过下面的链接下载PDF格式的Vi备忘录:
-
-[下载Vi备忘录](https://drive.google.com/file/d/0By49_3Av9sT1X3dlWkNQa3g2b2c/view?usp=sharing)
-
-你可以把它打印出来放到你的办公桌上,或者把它保存到你的电脑上来使用。
-
-## 我为什么要建立这个Vi备忘录?
-
-几年前,当我刚刚接触Linux终端时,使用命令行编辑器这个主意使我一惊。我之前在我自己的电脑上使用过桌面版本的Linux,所以我很乐意使用像Gedit这样的有图形界面的编辑器。但是在工作环境中,我不得不使用命令行,并且无法使用图形界面版的编辑器。
-
-我就这么被强迫地使用Vi来对远程Linux终端上的文件做一些基本的编辑。从这时候我开始了解并钦佩Vi的强大之处。
-
-因为在那时候我还是一个Vi新手,所以我经常对Vi一些操作很困惑。仍然记得第一次使用Vi的时候,由于我不知道如何退出Vi,所以我都无法关闭某个文件。我也只能通过Google搜索来找到解决办法。我不得不接受这个尴尬的事实。
-
-从那以后,我就决定制作一个列表来列出我经常会用到的基本Vi操作。这个列表,或者你可能称它为备忘录。在我早期使用Vi的时候,它对我非常有用。慢慢地,我对Vi更加熟悉,我已经可以熟记那些基本编辑命令。到现在,我甚至不需要再去查看我的Vi备忘录了。
-
-## 你为什么需要Vi备忘录?
-
-我能理解一个刚刚接触Vi的人的感受。你最喜欢的Ctrl+S快捷键不能像在其他编辑器那样方便地保存文件。Ctrl+C和Ctrl+V理应是通用的用来复制和粘贴的快捷键,但是在Vi中却不是这样。
-
-很多人都在使用类似的备忘录帮助他们熟悉各种编程语言以及用来进行快速检索的“/”工具。相信我,使用备忘录会给程序员日常工作带来很大便利。
-
-如果你刚刚开始接触Vi或者你经常使用但是总是记不住Vi操作,那么这份Vi备忘录对于你来说是非常有用的。你可以把它保存下来留作以后查询使用。
-
-## 你怎么看待这份备忘录?
-
-至今为止,我一直在克制我自己不要过于以来终端。我想知道你是怎么发现这篇文章的?你是否想让我分享更多类似的备忘录出来以供你们下载?我很期待你的意见和建议。
-
-------------------------------------------------------------------------------
-
-via: http://itsfoss.com/download-vi-cheat-sheet/
-
-作者:[ABHISHEK][a]
-译者:[JonathanKang](https://github.com/JonathanKang)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://itsfoss.com/author/abhishek/
-
-
-
-
-

From 2686a1ca36ec7e7c688cbb7a62645bf0e4555aef Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 10:46:56 +0800
Subject: [PATCH 271/582] PUB:20160218 ST Releases Free Linux IDE for 32-Bit
 MCUs

@martin2011qi
---
 ...Releases Free Linux IDE for 32-Bit MCUs.md | 24 +++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
 rename {translated/tech => published}/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md (68%)

diff --git a/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/published/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md
similarity index 68%
rename from translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md
rename to published/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md
index adc5404a2c..846fa1b035 100644
--- a/translated/tech/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md	
+++ b/published/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md	
@@ -1,43 +1,43 @@
-意法半导体为 32 位 微控制器发布了一款自由的 Linux 集成开发环境
+意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境
 =================================================
 
 ![](http://www.linux.com/images/stories/66866/STM32_Nucleo_expansion_board.jpg)
 
-32 位微控制器世界向 Linux 敞开大门。本周,领先的 ARM Cortex-M 供应商意法半导体(ST)[发布了](http://www.st.com/web/en/press/p3781) 一款自由的 Linux 桌面版开发程序,该软件面向其旗下的 STM32 微控制单元(MCU)。包含了 ST 的 STM32CubeMX 配置器和初始化工具,以及其 STM32 [系统工作台(SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) ,这个基于 Eclipse 的 IDE 由工具 Ac6 创建。支撑 SW4STM32 的工具链,论坛,博客以及技术会由 [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) 开发社区提供。
+32 位微控制器世界向 Linux 敞开大门。前一段时间,领先的 ARM Cortex-M 供应商意法半导体(ST)[发布了](http://www.st.com/web/en/press/p3781) 一款自由的 Linux 桌面版开发程序,该软件面向其旗下的 STM32 微控制单元(MCU)。包含了 ST 的 STM32CubeMX 配置器和初始化工具,以及其 STM32 [系统工作台(SW4STM32)](http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF261797) ,这个基于 Eclipse 的 IDE 由工具 Ac6 创建。支撑 SW4STM32 的工具链,论坛,博客以及技术会由 [openSTM32.org](http://www.openstm32.org/tiki-index.php?page=HomePage) 开发社区提供。
 
 “Linux 社区以吸引富有创意的自由思想者而闻名,他们善于交流心得、高效地克服挑战。” Laurent Desseignes,意法半导体微控制器产品部,微控制器生态系统市场经理这么说道:“我们正着手做的是让他们能极端简单的借力 STM32 系列的特性和性能施展自己的才能,运用到富有想象力的新产品的创造中去。
 
 Linux 是物联网(IoT)网关和枢纽,及高端 IoT 终端的领先平台。但是,大部分 IoT 革命,以及可穿戴设备市场基于小型的低功耗微控制器,对 Cortex-M 芯片的运用越来越多。虽然其中的一小部分可以运行精简的 uCLinux (见下文),却没能支持更全面的 Linux 发行版。取而代之的是实时操作系统(RTOS)们或者有时干脆不用 OS 来控制。固件的开发工作一般会在基于 Windows 的集成开发环境(IDE)上完成。
 
-通过 ST 的自由工具,Linux 开发者们可以更容易的开疆拓土。ST 工具中的一些技术在第二季度应该登录 Mac OS/X 平台,与 [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) ,开发套件,以及评估板同时面世。Nucleo 支持 32 针, 64 针, 和 144 针的版本,并且提供类似 Arduino 连接器这样的插件。
+通过 ST 的自由工具,Linux 开发者们可以更容易的开疆拓土。ST 工具中的一些技术在第二季度应该会登录 Mac OS/X 平台,与 [STM32 Nucleo](http://www.st.com/web/en/catalog/tools/FM146/CL2167/SC2003?icmp=sc2003_pron_pr-stm32f446_dec2014&sc=stm32nucleo-pr5) 、开发套件、以及评估板同时面世。Nucleo 支持 32 针、64 针、和 144 针的版本,并且提供类似 Arduino 连接器这样的插件。
 
 STM32CubeMX 配置器和 IDE SW4STM32 使 Linux 开发者能够配置微控制器并开发调试代码。SW4STM32 支持在 Linux 下通过社区更改版的 [OpenOCD](http://openocd.org/) 使用调试工具 ST-LINK/V2。
 
 据 ST 称,软件兼容 STM32Cube 软件包及标准外设库中的微控制器固件。目标是囊括 ST 的全系列 MCU,从入门级的 Cortex-M0 内核到高性能的 M7 芯片,包括 M0+,M3 和 DSP 扩展的 M4 内核。
 
-ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商,但似乎是第一大自由的 Linux 平台。例如NXP,MCU 的市场份额随着近期收购了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO)支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售价 $450。
+ST 并非首个为 Linux 准备 Cortex-M 芯片 IDE 的 32 位 MCU 供应商,但似乎是第一大自由的 Linux 平台。例如 NXP,MCU 的市场份额随着近期收购了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE [LPCXpresso IDE](http://www.nxp.com/pages/lpcxpresso-ide:LPCXPRESSO),支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售价 $450。
 
-在其 [SmartFusion FPGA 系统级芯片(SoC)](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3)上集成了 Cortex-M3 芯片的Microsemi,拥有一款 IDE [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support)适用于 RHEL 和 Windows。然而,Libero 需求许可证,并且 RHEL 版缺乏如 FlashPro 和 SoftConsole 的插件。
+在其 [SmartFusion FPGA 系统级芯片(SoC)](http://www.microsemi.com/products/fpga-soc/soc-processors/arm-cortex-m3)上集成了 Cortex-M3 芯片的 Microsemi,拥有一款 IDE [Libero IDE](http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-free-linux-ide-for-32-bit-mcus#device-support),适用于 RHEL 和 Windows。然而,Libero 需要许可证才行,并且 RHEL 版缺乏如 FlashPro 和 SoftConsole 的插件。
 
-## 为什么要学习 MCU?
+### 为什么要学习 MCU?
 
 即便 Linux 开发者并没有计划在 Cortex-M 上使用 uClinux,但是 MCU 的知识总会派上用场。特别是牵扯到复杂的 IoT 工程,需要扩展 MCU 终端至云端。
 
-对于历程和业余爱好者的项目,Arduino 板为其访问 MCU 提供了非常便利的接口。然而历程之外,开发者常常就会用更快的 32 位 Cortex-M 芯片以及所带来的附加功能来替代 Arduino 板和板上的那块 8 位 MCU ATmega32u4。这些附加功能包括改进的存储器寻址,用于芯片和各种总线的独立时钟设置,以及芯片 [Cortex-M7](http://www.electronicsnews.com.au/products/stm32-mcus-with-arm-cortex-m7-processors-and-graph)自带的入门级显示芯片。
+对于原型和业余爱好者的项目,Arduino 板为其访问 MCU 提供了非常便利的接口。然而原型之外,开发者常常就会用更快的 32 位 Cortex-M 芯片以及所带来的附加功能来替代 Arduino 板和板上的那块 8 位 MCU ATmega32u4。这些附加功能包括改进的存储器寻址,用于芯片和各种总线的独立时钟设置,以及芯片 [Cortex-M7](http://www.electronicsnews.com.au/products/stm32-mcus-with-arm-cortex-m7-processors-and-graph) 自带的入门级显示芯片。
 
-还有些可能需求 MCU 开发技术的地方有:可穿戴设备、低功耗、低成本和小尺寸给了 MCU 一席之地,还有机器人和无人机这些使用实时处理和电机控制的地方更为受用。在机器人上,你更是有可能看看 Cortex-A 与 Cortex-M 集成在同一个产品中的样子。
+还有些可能需求 MCU 开发技术的地方包括可穿戴设备,低功耗、低成本和小尺寸给了 MCU 一席之地,还有机器人和无人机这些使用实时处理和电机控制的地方更为受用。在机器人上,你更是有可能看看 Cortex-A 与 Cortex-M 集成在同一个产品中的样子。
 
 对于 SoC 芯片还有这样的一种温和的局势,即将 MCU 加入到 Linux 驱动的 Cortex-A 核心中,就如同 [NXP i.MX6 SoloX](http://linuxgizmos.com/freescales-popular-i-mx6-soc-sprouts-a-cortex-m4-mcu/)。虽然大多数的嵌入式项目并不使用这种混合型 SoC 或者说将应用处理器和 MCU 结合在同一产品中,但开发者会渐渐地发现自己工作的生产线、设计所基于的芯片正渐渐的从低端的 MCU 模块发展到 Linux 或安卓驱动的 Cortex-A。
 
-## uClinux 是 Linux 在 MCU 领域的筹码
+### uClinux 是 Linux 在 MCU 领域的筹码
 
 随着物联网的兴起,我们见到越来越多的 SBC 和模块计算机,它们在 32 位的 MCU 上运行着 uClinux。不同于其他的 Linux 发行版,uClinux 并不需要内存管理单元(MMU)。然而,uClinux 对市面上可见 MCU 有更高的内存需求。需求更高端的 Cortex-M4 和 Cortex-M4 微控制器内置内存控制器来支持外部 DRAM 芯片。
 
 [Amptek](http://www.semiconductorstore.com/Amptek/) SBC 在 NXP LPC Cortex-M3 和 -M4 芯片上运行 uClinux,以提供常用的功能类似 WiFi、蓝牙、USB 等众多接口。Arrow 的 [SF2+](http://linuxgizmos.com/iot-dev-kit-runs-uclinux-on-a-microsemi-cortex-m3-fpga-soc/) 物联网开发套件将 uClinux 运行于 SmartFusion2 模块计算机的 Emcraft 系统上,该模块计算机是 Microsemi 的 166MHz Cortex-M3/FPGA SmartFusion2 混合 SoC。
 
-[Emcraft](http://www.emcraft.com/) 销售基于 uClinux 的模块计算机,有 ST 和 NXP 的,也有 Microsemi 的 MCU,是 32 位 MCU 上积极推进 uClinux 的重要角色。日益频繁的 uClinux 开始了与 ARM 本身 [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/)的对抗,至少在高端的 MCU 工程中需要无线通信和更为复杂的操作规则。Mbed 和 modern 的支持者,开源的 RTOS 们,类似 FreeRTOS 认为 uClinux 需要对 RAM 的需求太高以至于难以压低 IoT 终端的价格然而 Emcraft 与其他 uCLinux 拥趸表示价格并没有如此夸张,而且扩展 Linux 的无线和接口也是相当值得的,即使只是在像 uClinux 这样的精简版上。
+[Emcraft](http://www.emcraft.com/) 销售基于 uClinux 的模块计算机,有 ST 和 NXP 的,也有 Microsemi 的 MCU,是 32 位 MCU 上积极推进 uClinux 的重要角色。日益频繁的 uClinux 开始了与 ARM 本身 [Mbed OS](http://linuxgizmos.com/arm-announces-mbed-os-for-iot-devices/)的对抗,至少在高端的 MCU 工程中需要无线通信和更为复杂的操作规则。Mbed 和 modern 的支持者,开源的 RTOS 们,类似 FreeRTOS 认为 uClinux 需要对 RAM 的需求太高以至于难以压低 IoT 终端的价格,然而 Emcraft 与其他 uCLinux 拥趸表示价格并没有如此夸张,而且扩展 Linux 的无线和接口也是相当值得的,即使只是在像 uClinux 这样的精简版上。
 
-当被问及对于这次 ST 发布的看法,Emcraft 的主任工程师 Vladimir Khusainov 表示:”ST决定将这款开发工具 移植至 Linux 对于 Emcraft 是个好消息,它使得 Linux 用户能轻易的在嵌入式 STM MCU 上展开工作。我们希望那些有机会熟悉 STM 设备,使用 ST 配置器和嵌入式库的用户可以对在目标机上使用嵌入式 Linux (以 uClinux 的形式)感兴趣。“
+当被问及对于这次 ST 发布的看法,Emcraft 的主任工程师 Vladimir Khusainov 表示:“ST决定将这款开发工具 移植至 Linux 对于 Emcraft 是个好消息,它使得 Linux 用户能轻易的在嵌入式 STM MCU 上展开工作。我们希望那些有机会熟悉 STM 设备,使用 ST 配置器和嵌入式库的用户可能对在目标机上使用嵌入式 Linux (以 uClinux 的形式)感兴趣。”
 
 最近关于 Cortex-M4 上运行 uClinux 的概述,可以查看去年 Jim Huang 与 Jeff Liaws 在嵌入式 Linux 大会上使用的[幻灯片](http://events.linuxfoundation.org/sites/events/files/slides/optimize-uclinux.pdf)。更多关于 Cortex-M 处理器可以查看这里过的 [AnandTech 总结](http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores)。
 
@@ -47,7 +47,7 @@ via: http://www.linux.com/news/embedded-mobile/mobile-linux/884961-st-releases-f
 
 作者:[Arun Pyasi][a]
 译者:[martin2011qi](https://github.com/martin2011qi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
 

From 26fe48fb1cac6d275d44abdc5a9a6e91dc663a97 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 10:54:02 +0800
Subject: [PATCH 272/582] PUB:20151215 Linux Desktop Fun--Summon Swarms Of
 Penguins To Waddle About The Desktop

@geekpi
---
 ... Of Penguins To Waddle About The Desktop.md | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
 rename {translated/tech => published}/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md (74%)

diff --git a/translated/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md b/published/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md
similarity index 74%
rename from translated/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md
rename to published/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md
index 6c797816f5..4577cb10cb 100644
--- a/translated/tech/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md	
+++ b/published/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md	
@@ -1,15 +1,15 @@
-Linux桌面趣闻:召唤一群企鹅在桌面上行走
+Linux/Unix 桌面趣事:召唤一群企鹅在桌面上行走
 ================================================================================
-XPenguins是一个在窗口播放可爱动物动画的程序。默认情况下,将会从屏幕上方掉落企鹅,沿着你的窗口顶部行走,在窗口变漂浮,滑板,和做其他类似的令人兴奋的事情。现在,你可以把这些可爱的小企鹅大军入侵别人的桌面了。
+XPenguins 是一个在窗口播放可爱动物动画的程序。默认情况下,将会从屏幕上方掉落企鹅,沿着你的窗口顶部行走,在窗口漂浮起来,踩上滑板,和做其他类似的有趣的事情。现在,你可以把这些可爱的小企鹅大军入侵别人的桌面了。
 
 ### 安装XPenguins ###
 
-打开终端(选择程序->附件->终端),接着输入下面的命令来安装XPenguins。首先,输入apt-get update通过请求配置的仓库刷新包的信息,接着安装需要的程序:
+打开终端(选择程序->附件->终端),接着输入下面的命令来安装 XPenguins。首先,输入 `apt-get update` 通过请求配置的仓库刷新包的信息,接着安装需要的程序:
 
     $ sudo apt-get update
     $ sudo apt-get install xpenguins
 
-### 我本地如何启动XPenguins? ###
+### 我本地如何启动 XPenguins? ###
 
 输入下面的命令:
 
@@ -19,15 +19,15 @@ XPenguins是一个在窗口播放可爱动物动画的程序。默认情况下
 
 ![An army of cute little penguins invading the screen](http://files.cyberciti.biz/uploads/tips/2011/07/Workspace-1_002_12_07_2011.png)
 
-一支可爱企鹅军队正在入侵屏幕。
+*一支可爱企鹅军队正在入侵屏幕。*
 
 ![Linux: Cute little penguins walking along the tops of your windows](http://files.cyberciti.biz/uploads/tips/2011/07/Workspace-1_001_12_07_2011.png)
 
-Linux:可爱的小企鹅沿着窗口的顶部行走。
+*可爱的小企鹅沿着窗口的顶部行走。*
 
 ![Xpenguins Screenshot](http://files.cyberciti.biz/uploads/tips/2011/07/xpenguins-screenshot.jpg)
 
-Xpenguins截图
+*Xpenguins 截图*
 
 移动窗口时小心点,小家伙们很容易被压坏。如果你发送中断程序(Ctrl-C),它们会爆炸。
 
@@ -83,7 +83,7 @@ Xpenguins截图
 
 - [XPenguins][1] 主页。
 - man penguins
-- 更多Linux/Unix桌面乐趣在[蒸汽火车][2]和[终端ASCII水族馆][3]。
+- 更多 Linux/Unix 桌面乐趣在[蒸汽火车][2]和[终端ASCII水族馆][3]。
 
 --------------------------------------------------------------------------------
 
@@ -91,7 +91,7 @@ via: http://www.cyberciti.biz/tips/linux-cute-little-xpenguins-walk-along-tops-o
 
 作者:Vivek Gite
 译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From c79100483f50d15a24ff8c60d4779d4c9fea0600 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 11:16:02 +0800
Subject: [PATCH 273/582] PUB:20151215 How to Install Light Table 0.8 in Ubuntu
 14.04, 15.10

@zky001
---
 ... Light Table 0.8 in Ubuntu 14.04, 15.10.md | 53 +++++++++----------
 1 file changed, 25 insertions(+), 28 deletions(-)
 rename {translated/tech => published}/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md (56%)

diff --git a/translated/tech/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md b/published/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md
similarity index 56%
rename from translated/tech/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md
rename to published/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md
index 3b3f72ac4c..915466448b 100644
--- a/translated/tech/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md	
+++ b/published/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md	
@@ -1,45 +1,42 @@
- 如何在 Ubuntu 14.04, 15.10 中安装Light Table 0.8
+ 如何在 Ubuntu 中安装 Light Table 0.8
 ================================================================================
 ![](http://ubuntuhandbook.org/wp-content/uploads/2014/11/LightTable-IDE-logo-icon.png)
 
-Light Table 在经过一年以上的开发,已经推出了新的稳定发行版本。现在它只为Linux提供64位的二进制包。
+Light Table 在经过一年以上的开发,已经推出了新的稳定发行版本。现在它只为 Linux 提供64位的二进制包。
+
 LightTable 0.8.0的改动:
 
-- 更改: 我们从 NW.js 中选择了 Electron 
-- 更改: LT’s 发行版本与自更新进程在github上面完全的公开
-- 增加: LT 可以由提供的脚本从源码在支持的不同平台上安装
-- 增加: LT’s 大部分的代码库将用npm依赖来安装以取代以forked库安装
-- 增加: 有效文档. 更多详情内容见下面
-- 修复: 版本号>= OSX 10.10的系统下工作的主要的可用性问题
-- 更改: 32位Linux不再提供官方包文件下载,从源码安装仍旧将被支持
-- 修复: ClojureScript eval 在ClojureScript的现代版本可以正常工作
+- 更改: 我们从 NW.js 切换到了 Electron 
+- 更改: Light Table 的发行与自更新进程完全地公开在github上
+- 增加: Light Table 可以用提供的脚本在各个支持的平台上从源码构建
+- 增加: Light Table 大部分的 node 代码库将通过 npm 依赖来安装,以取代以前采用分叉库的方式
+- 增加: 有效文档。更多详情内容见下面
+- 修复: 版本号 >= OSX 10.10的系统下的主要的可用性问题
+- 更改: 官方不再提供 32位 Linux 软件包下载,不过仍然支持从源码构建
+- 修复: ClojureScript eval 支持 ClojureScript 的现代版本
 - 参阅更多 [github.com/LightTable/LightTable/releases][1]
 
 ![LightTable 0.8.0](http://ubuntuhandbook.org/wp-content/uploads/2015/12/lighttable-08.jpg)
 
-### 如何在Ubuntu中安Light Table 0.8.0: ###
+### 如何在 Ubuntu 中安装 Light Table 0.8.0 ###
 
-下面的步骤回指导你怎么样在Ubuntu下安装官方的二进制包,在目前Ubuntu发行版本都适用(**仅仅针对64位**)。
+下面的步骤会指导你怎么样在 Ubuntu 下安装官方的二进制包,在目前的 Ubuntu 发行版本中都适用(**仅仅针对64位**)。
 
 在开始之前,如果你安装了之前的版本请做好备份。
 
-**1.** 
-从以下链接下载LightTable Linux下的二进制文件:
+**1.** 从以下链接下载 LightTable Linux 下的二进制文件:
 
 - [lighttable-0.8.0-linux.tar.gz][2]
 
-**2.** 
-从dash或是应用启动器,或者是Ctrl+Alt+T快捷键打开终端,并且在输入以下命令后敲击回车键:
+**2.** 从 dash 或是应用启动器,或者是 Ctrl+Alt+T 快捷键打开终端,并且在输入以下命令后敲击回车键:
 
     gksudo file-roller ~/Downloads/lighttable-0.8.0-linux.tar.gz
 
 ![open-via-fileroller](http://ubuntuhandbook.org/wp-content/uploads/2015/12/open-via-fileroller.jpg)
 
-如果命令不工作的话从Ubuntu软件中心安装`gksu`。
-
-**3.** 
-之前的命令使用了root用户权限通过档案管理器打开了下载好的存档。
+如果命令不工作的话从 Ubuntu 软件中心安装`gksu`。
 
+**3.** 之前的命令使用了 root 用户权限通过档案管理器打开了下载好的存档。
 
 打开它后,请做以下步骤:
 
@@ -48,17 +45,17 @@ LightTable 0.8.0的改动:
 
 ![extract-lighttable](http://ubuntuhandbook.org/wp-content/uploads/2015/12/extract-lighttable.jpg)
 
-最终你应该安装好了LightTable,可以在/opt/ 目录下查看:
+最终你应该安装好了 LightTable,可以在 /opt/ 目录下查看:
 
 ![lighttable-in-opt](http://ubuntuhandbook.org/wp-content/uploads/2015/12/lighttable-in-opt.jpg)
 
-**4.** 创建一个启动器使你可以从dash工具或是应用启动器打开LightTable。
+**4.** 创建一个启动器使你可以从 dash 工具或是应用启动器打开 LightTable。
 
-打开终端,运行以下命令来创建与编辑一个LightTable的启动文件:
+打开终端,运行以下命令来创建与编辑一个 LightTable 的启动文件:
 
     gksudo gedit /usr/share/applications/lighttable.desktop
 
-通过Gedit文本编辑器打开文件后, 粘贴下面的内容并保存:
+通过 Gedit 文本编辑器打开文件后,粘贴下面的内容并保存:
 
     [Desktop Entry]
     Version=1.0
@@ -81,7 +78,7 @@ LightTable 0.8.0的改动:
     Exec=/opt/LightTable/LightTable -n
     OnlyShowIn=Unity;
     
-        [Desktop Action Document]
+    [Desktop Action Document]
     Name=New File
     Exec=/opt/LightTable/LightTable --command new_file
     OnlyShowIn=Unity;
@@ -90,15 +87,15 @@ LightTable 0.8.0的改动:
 
 ![lighttable-launcher](http://ubuntuhandbook.org/wp-content/uploads/2015/12/lighttable-launcher.jpg)
 
-最后,从dash工具或者是应用启动器打开IDE,好好享受它吧!
+最后,从 dash 工具或者是应用启动器打开 IDE,好好享受它吧!
 
 --------------------------------------------------------------------------------
 
 via: http://ubuntuhandbook.org/index.php/2015/12/install-light-table-0-8-ubuntu-14-04/
 
 作者:[Ji m][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[zky001](https://github.com/zky001)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From f66e44d3ec3a016235e5e674ecd252c476dfdf9f Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 11:42:10 +0800
Subject: [PATCH 274/582] PUB:20160218 Mozilla contributor creates diabetes
 project for the masses

@ynmlml
---
 ...creates diabetes project for the masses.md | 38 ++++++++++++++
 ...creates diabetes project for the masses.md | 51 -------------------
 2 files changed, 38 insertions(+), 51 deletions(-)
 create mode 100644 published/20160218 Mozilla contributor creates diabetes project for the masses.md
 delete mode 100644 translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md

diff --git a/published/20160218 Mozilla contributor creates diabetes project for the masses.md b/published/20160218 Mozilla contributor creates diabetes project for the masses.md
new file mode 100644
index 0000000000..abaf2fe9d6
--- /dev/null
+++ b/published/20160218 Mozilla contributor creates diabetes project for the masses.md	
@@ -0,0 +1,38 @@
+Mozilla 贡献者为大众创建糖尿病项目
+================================================================
+
+![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi)
+
+
+我的开源生涯从我还是一名高中生开始,我总想着自己能成为一名黑客,没有什么恶意的,只是喜欢钻研代码和硬件那种。我第一次接触开源是2001年,我安装了我的第一个Linux发行版[Lindows](https://en.wikipedia.org/wiki/Linspire)。当然,我也是[Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/?utm_source=firefox-com&utm_medium=referral)的早期用户。
+
+由于我很早使用Linux,我用的第一个版本是 Lindows 1.0.4(如果我没记错的话),我就立即爱上了它。我没在Lindows上呆太久,而是活跃于多个发行版([Debian](https://www.debian.org/), 
+[Puppy Linux](http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm), [SUSE](https://www.suse.com/), 
+[Slackware](http://www.slackware.com/), [Ubuntu](http://ubuntu.com/)),多年来我一直每天使用着开源软件,从青少年时候直到我成年。
+
+最后,我坚持使用Ubuntu。大概是在Hardy Heron(LCTT 译注:Ubuntu8.04 LTS)发布时候,我开始第一次为Ubuntu做些贡献,在IRC频道和当地社区帮助那些需要帮助的用户。我是通过Ubuntu认识开源的,它在我心里总有着特殊的意义。Ubuntu背后的社区的是非常多样化的、热情的、友好的,每个人都做些共享,是他们共同的目标也是个人目标,这成为他们为开源贡献的动力。
+
+在为Ubuntu贡献一段时间后,我开始了为一些上游项目作贡献,比如Debian、[GNOME](https://www.gnome.org/)、 [Ganeti](https://code.google.com/p/ganeti/),还有许多其他的开源项目。在过去的几年里,我为超过40个开源项目贡献过,有些小的,也有很大的。
+
+在Ubuntu项目方向上有些变化之后,我最终觉得,这不仅对于我是一个尝试新东西的机遇,而且也是我给一些新东西贡献的时候。所以我在2009年参与了Mozilla项目,在IRC帮忙,最终通过参与[Mozilla WebFWD program](https://webfwd.org/),成为一名团队成员,然后是[Mozilla Reps Program](https://reps.mozilla.org/),[Mozilla DevRel Program](https://wiki.mozilla.org/Devrel),刚过两年时间,我成为了火狐社区的发布经理,负责监督Firefox Nightly和Firefox ESR的发布。相比其他开源项目,在为Mozilla贡献中会获得更多有益的经验。在所有我参与过的开源社区中,Mozilla是最不同的,最大的也是最友好的。
+
+这些年来,关于开源我觉得,我越来越遵循自由软件价值观、捍卫隐私和许可协议合规,以及在开放的氛围下工作。我相信这三个主题对于开源来说是非常重要的,虽然许多人并没在意到提倡它们是很重要的。
+
+今天在这,我已不再是别人的开源项目的全职贡献者。最近我被诊断出患有糖尿病,我看到了开源软件中健康软件不是很丰富这一缺口。确实,它不像其它开源软件应用如Linux发行版或浏览器那样活跃。
+
+我最近创立了自己的开源项目[Glucosio](http://www.glucosio.org/),带给人们糖尿病管理和研究的开源软件。经过几年来对开源项目的贡献,和见识过的多种组织结构,使得我作为项目领导能够得心应手。我对于Glucosio的未来很兴奋,但最重要的是未来的开源将在医疗健康领域发展的如何。
+
+医疗保健软件的创新具有很大潜力,我想我们很快就会看到用于改善医疗卫生保健的开源新方案。
+
+
+------------------------------------------------------------------------------
+
+via: https://opensource.com/life/15/11/my-open-source-story-ben-kerensa
+
+作者:[Benjamin Kerensa][a]
+译者:[ynmlml](https://github.com/ynmll)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:https://opensource.com/users/bkerensa
diff --git a/translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md b/translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md
deleted file mode 100644
index de61ff1d7b..0000000000
--- a/translated/tech/20160218 Mozilla contributor creates diabetes project for the masses.md	
+++ /dev/null
@@ -1,51 +0,0 @@
-Mozilla贡献者为群众创建糖尿病项目
-================================================================
-
-![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi)
-
-
-我的开源生涯从我还是一名高中生开始,我总想着自己能成为一名黑客,没有什么恶意的,只是喜欢钻研代码和硬件那种。我第一次接触开源是2001年,
-我安装了我的第一个Linux发行版[Lindows](https://en.wikipedia.org/wiki/Linspire)。当然,我也是[Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/?utm_source=firefox-com&utm_medium=referral)的早期用户。
-
-由于我很早使用Linux,我用的第一个版本是1.0.4(如果我没记错的话),我就立即爱上了它。我没在Lindows上呆太久,
-而是活跃于多个发行版([Debian](https://www.debian.org/), 
-[Puppy Linux](http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm), [SUSE](https://www.suse.com/), 
-[Slackware](http://www.slackware.com/), [Ubuntu](http://ubuntu.com/)),多年来我一直每天使用着开源软件,从青少年时候直到我成年。
-
-最后,我坚持使用Ubuntu。大概是在Hardy Heron(译者注:Ubuntu8.04 LTS)发布时候,我开始第一次为Ubuntu做些贡献,在IRC频道和当地社区
-帮助那些需要帮助的用户。我是通过Ubuntu认识开源的,它在我心里总有着特殊的意义。Ubuntu背后的社区的是非常多样化的,热情的,友好的,
-每个人都做些共享,是他们共同的目标也是个人目标,这成为他们为开源贡献的动力。
-
-在为Ubuntu贡献一段时间后,我开始了为一些上游项目作贡献,比如Debian, [GNOME](https://www.gnome.org/), 
-[Ganeti](https://code.google.com/p/ganeti/),还有许多其他的开源项目。
-在过去的几年里,我为超过40个开源项目贡献过,有些小的,也有很大的。
-
-在Ubuntu项目方向上有些变化之后,我最终决定不仅对于我是时候该尝试新东西,而且我也想贡献一些新的东西。所以我在2009年参与Mozilla,
-在IRC帮忙,最终通过参与[Mozilla WebFWD program](https://webfwd.org/),成为一名团队成员,接着[Mozilla Reps Program](https://reps.mozilla.org/),
-[Mozilla DevRel Program](https://wiki.mozilla.org/Devrel),刚过两年时间,我成为了火狐社区的发布经理,负责监督Firefox Nightly
-和Firefox ESR的发布。比为其他开源项目,在为Mozilla贡献中会获得更多有益的经验。在所有我参与过的开源社区中,Mozilla是最不同的
-,最大的也是最友好的。
-
-这些年来,关于开源我觉得,免费软件,更具安全的隐私和尊重许可,以及公开的工作,我越来越与这样的价值观相一致。我相信这三个主题
-对于开源来说是非常重要的,虽然许多人并没在意到提倡它们是很重要的。
-
-今天在这,我已不再是全职的他人开源项目的贡献者。最近我被诊断出患有糖尿病,我看到了开源软件中健康软件不是很丰富这一缺口。确实,
-它不像其它开源软件应用如Linux发行版或浏览器那样活跃。
-
-我最近创立了自己的开源项目[Glucosio](http://www.glucosio.org/),带给人们糖尿病管理和研究的开源软件。经过几年来对开源项目的贡献,
-和见过的多种架构,使得我作为项目领导能够得心应手。我对于Glucosio的未来很兴奋,但最重要的是未来的开源将在医疗健康领域发展的如何。
-
-医疗保健软件的创新具有很大潜力,我想我们很快就会看到用于改善医疗卫生保健的开源新方案。
-
-
-------------------------------------------------------------------------------
-
-via: https://opensource.com/life/15/11/my-open-source-story-ben-kerensa
-
-作者:[opensource.com][a]
-译者:[ynmlml](https://github.com/ynmll)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:opensource.com

From 4b8508de7adefa690bd498264f865508d7c8b649 Mon Sep 17 00:00:00 2001
From: VicYu 
Date: Wed, 16 Mar 2016 16:39:41 +0800
Subject: [PATCH 275/582] Translating

---
 .../tech/20160226 How to use Python to hack your Eclipse IDE.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md b/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md
index 770c6db479..9f1b1ed359 100644
--- a/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md	
+++ b/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md	
@@ -1,3 +1,5 @@
+	Vic020
+
 How to use Python to hack your Eclipse IDE
 ==============================================
 

From b54dcc381cb10e42347e2e1a93c24297b889a3bd Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 20:39:09 +0800
Subject: [PATCH 276/582] PUB:20151027 How to Install Ghost with Nginx on
 FreeBSD 10.2

@ictlyh
---
 ...027 How to Install Ghost with Nginx on FreeBSD 10.2.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
 rename {translated/tech => published}/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md (94%)

diff --git a/translated/tech/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md b/published/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md
similarity index 94%
rename from translated/tech/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md
rename to published/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md
index f8d78c88f9..c961d47c8a 100644
--- a/translated/tech/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md	
+++ b/published/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md	
@@ -1,6 +1,6 @@
 如何在 FreeBSD 10.2 上安装使用 Nginx 的 Ghost
 ================================================================================
-Node.js 是用于开发服务器端应用程序的开源运行时环境。Node.js 应用使用 JavaScript 编写,能在任何有 Node.js 运行时的服务器上运行。它跨平台支持 Linux、Windows、OSX、IBM AIX,也包括 FreeBSD。Node.js 是 Ryan Dahl 以及在 Joyent 工作的其他开发者于 2009 年创建的。它的设计目标就是构建可扩展的网络应用程序。
+Node.js 是用于开发服务器端应用程序的开源的运行时环境。Node.js 应用使用 JavaScript 编写,能在任何有 Node.js 运行时的服务器上运行。它跨平台支持 Linux、Windows、OSX、IBM AIX,也包括 FreeBSD。Node.js 是 Ryan Dahl 以及在 Joyent 工作的其他开发者于 2009 年创建的。它的设计目标就是构建可扩展的网络应用程序。
 
 Ghost 是使用 Node.js 编写的博客平台。它不仅开源,而且有很漂亮的界面设计、对用户友好并且免费。它允许你快速地在网络上发布内容,或者创建你的混合网站。
 
@@ -97,7 +97,7 @@ Ghost 是使用 Node.js 编写的博客平台。它不仅开源,而且有很
 
     npm start --production
 
-通过访问服务器 ip 和 2368 号端口验证。
+通过访问服务器 ip 和 2368 号端口验证一下。
 
 ![Ghost 安装完成](http://blog.linoxide.com/wp-content/uploads/2015/10/Ghost-Installed.png)
 
@@ -189,7 +189,7 @@ Ghost 是使用 Node.js 编写的博客平台。它不仅开源,而且有很
 
 ### 第五步 - 为 Ghost 安装和配置 Nginx ###
 
-默认情况下,ghost 会以单机模式运行,你可以不用 Nginx、apache 或 IIS web 服务器直接运行它。但在这篇指南中我们会安装和配置 nginx 和 ghost 一起使用。
+默认情况下,ghost 会以独立模式运行,你可以不用 Nginx、apache 或 IIS web 服务器直接运行它。但在这篇指南中我们会安装和配置 nginx 和 ghost 一起使用。
 
 用 pkg 命令从 freebsd 库中安装 nginx:
 
@@ -289,7 +289,7 @@ via: http://linoxide.com/linux-how-to/install-ghost-nginx-freebsd-10-2/
 
 作者:[Arul][a]
 译者:[ictlyh](http://mutouxiaogui.cn/blog/)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From b81f27ce1f9d56bf8605ac7b1e384efcd434e889 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Wed, 16 Mar 2016 21:19:02 +0800
Subject: [PATCH 277/582] PUB:20151105 Linux FAQs with Answers--How to install
 Ubuntu desktop behind a proxy

@strugglingyouth
---
 ... Answers--How to install Ubuntu desktop behind a proxy.md | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
 rename {translated/tech => published}/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md (97%)

diff --git a/translated/tech/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md b/published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md
similarity index 97%
rename from translated/tech/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md
rename to published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md
index b7c86609bd..0a215a066e 100644
--- a/translated/tech/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md	
+++ b/published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md	
@@ -1,5 +1,4 @@
-
-Linux 有问必答 - 如何通过代理服务器安装 Ubuntu 桌面
+Linux 有问必答 - 如何通过代理服务器安装 Ubuntu 桌面版
 ================================================================================
 > **问题**: 我的电脑通过 HTTP 代理连接到公司网络。当我尝试从 CD-ROM 在计算机上安装 Ubuntu 桌面时,在检索文件时安装程序会被挂起,检索则不会完成,这可能是由于代理造成的。然而问题是,Ubuntu 的安装程序从不要求我在安装过程中配置代理。那我该怎么使用代理来安装 Ubuntu 桌面?
 
@@ -56,7 +55,7 @@ via: http://ask.xmodulo.com/install-ubuntu-desktop-behind-proxy.html
 
 作者:[Dan Nanni][a]
 译者:[strugglingyouth](https://github.com/strugglingyouth)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From c7fe3d5b930cebde86d79b5afe603ad451b0a988 Mon Sep 17 00:00:00 2001
From: XIAOYU <1136299502@qq.com>
Date: Thu, 17 Mar 2016 12:10:50 +0800
Subject: [PATCH 278/582] translating by xiaoyu33

translating by xiaoyu33
---
 ...1208 10 tools for visual effects in Linux with Kdenlive.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md b/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md
index bf2ba1ff25..690b2c8186 100644
--- a/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md	
+++ b/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md	
@@ -1,3 +1,5 @@
+translating by xiaoyu33
+
 10 tools for visual effects in Linux with Kdenlive
 ================================================================================
 ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life-uploads/kdenlivetoolssummary.png)
@@ -152,4 +154,4 @@ via: https://opensource.com/life/15/12/10-kdenlive-tools
 [3]:http://frei0r.dyne.org/
 [4]:http://www.kodak.com/global/en/professional/products/films/bw/triX2.jhtml
 [5]:https://en.wikipedia.org/wiki/Fear_and_Loathing_in_Las_Vegas_(film)
-[6]:https://en.wikipedia.org/wiki/Dead_Island
\ No newline at end of file
+[6]:https://en.wikipedia.org/wiki/Dead_Island

From cd2f210f4ea0de2027957bd75020c760b0813dd5 Mon Sep 17 00:00:00 2001
From: martin qi 
Date: Thu, 17 Mar 2016 21:53:14 +0800
Subject: [PATCH 279/582] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E7=BF=BB=E8=AF=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...0317 What we learned in Seoul with AlphaGo | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 sources/news/20160317 What we learned in Seoul with AlphaGo

diff --git a/sources/news/20160317 What we learned in Seoul with AlphaGo b/sources/news/20160317 What we learned in Seoul with AlphaGo
new file mode 100644
index 0000000000..8eb12005d3
--- /dev/null
+++ b/sources/news/20160317 What we learned in Seoul with AlphaGo	
@@ -0,0 +1,51 @@
+martin
+
+What we learned in Seoul with AlphaGo
+================================================================================
+Go isn't just a game—it's a living, breathing culture of players, analysts, fans, and legends. Over the last 10 days in Seoul, South Korea, we've been lucky enough to witness some of that incredible excitement firsthand. We've also had the chance to see something that's never happened before: [DeepMind's][1] AlphaGo took on and defeated legendary Go player, Lee Sedol (9-dan professional with 18 world titles), marking a major milestone for artificial intelligence.
+
+![Pedestrians checking in on the AlphaGo vs. Lee Sedol Go match on the streets of Seoul (March 13)](https://1.bp.blogspot.com/-vfgUcjyMOmM/Vumk5gXD98I/AAAAAAAASDI/frbYidb1u6gTKGcvFOf8iQVsr9PLoRlBQ/s1600/Press%2BCenter%2BOutdoor%2BScreen%2B2.jpg)
+
+Go may be one of the oldest games in existence, but the attention to our five-game tournament exceeded even our wildest imaginations. Searches for Go rules and Go boards spiked in the U.S. In China, tens of millions watched live streams of the matches, and the “Man vs. Machine Go Showdown” hashtag saw 200 million pageviews on Sina Weibo. Sales of Go boards even [surged][2] in Korea.
+
+Our public test of AlphaGo, however, was about more than winning at Go. We founded DeepMind in 2010 to create general-purpose artificial intelligence (AI) that can learn on its own—and, eventually, be used as a tool to help society solve some of its biggest and most pressing problems, from climate change to disease diagnosis.
+
+Like many researchers before us, we've been developing and testing our algorithms through games. We first revealed [AlphaGo][3] in January—the first AI program that could beat a professional player at the most complex board game mankind has devised, using [deep learning][4] and [reinforcement learning][5]. The [ultimate challenge][6] was for AlphaGo to take on the best Go player of the past decade—Lee Sedol.
+
+To everyone's surprise, including ours, AlphaGo won four of the five games. Commentators noted that AlphaGo played many unprecedented, creative, and even [“beautiful”][7] moves. Based on our data, AlphaGo's bold [move 37][8] in Game 2 had a 1 in 10,000 chance of being played by a human. Lee countered with innovative moves of his own, such as his [move 78][9] against AlphaGo in Game 4—again, a 1 in 10,000 chance of being played—which ultimately resulted in a win.
+
+The final score was 4-1. We're contributing the $1 million in prize money to organizations that support science, technology, engineering and math (STEM) education and Go, as well as UNICEF.
+
+We've learned two important things from this experience. First, this test bodes well for AI's potential in solving other problems. AlphaGo has the ability to look “globally” across a board—and find solutions that humans either have been trained not to play or would not consider. This has huge potential for using AlphaGo-like technology to find solutions that humans don't necessarily see in other areas. Second, while the match has been widely billed as "man vs. machine," AlphaGo is really a human achievement. Lee Sedol and the AlphaGo team both pushed each other toward new ideas, opportunities and solutions—and in the long run that's something we all stand to benefit from.
+
+But as they say about Go in Korean: “Don't be arrogant when you win or you'll lose your luck.” This is just one small, albeit significant, step along the way to making machines smart. We've demonstrated that our cutting edge deep reinforcement learning techniques can be used to make strong Go and [Atari][10] players. Deep neural networks are already used at Google for specific tasks—like [image recognition][11], [speech recognition][12], and [Search ranking][13]. However, we're still a long way from a machine that can learn to flexibly perform the full range of intellectual tasks a human can—the hallmark of true [artificial general intelligence][14].
+
+![Demis and Lee Sedol hold up the signed Go board from the Google DeepMind Challenge Match](https://4.bp.blogspot.com/-LkxNvsR-e1I/Vumk5gmProI/AAAAAAAASDM/J55Y2psqzOwWZ3kau2Pgz6xmazo7XDj_Q/s1600/A26U6150.jpg)
+
+With this tournament, we wanted to test the limits of AlphaGo. The genius of Lee Sedol did that brilliantly—and we'll spend the next few weeks studying the games he and AlphaGo played in detail. And because the machine learning methods we've used in AlphaGo are general purpose, we hope to apply some of these techniques to other challenges in the future. Game on!
+
+--------------------------------------------------------------------------------
+
+via: https://googleblog.blogspot.com/2016/03/what-we-learned-in-seoul-with-alphago.html
+
+作者:[Demis Hassabis][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://demishassabis.com/
+[1]:https://deepmind.com/
+[2]:http://www.hankookilbo.com/m/v/3e7deaa26a834f76929a1689ecd388ea
+[3]:https://googleblog.blogspot.com/2016/01/alphago-machine-learning-game-go.html
+[4]:https://en.wikipedia.org/wiki/Deep_learning
+[5]:https://en.wikipedia.org/wiki/Reinforcement_learning
+[6]:https://deepmind.com/alpha-go.html
+[7]:http://www.wired.com/2016/03/sadness-beauty-watching-googles-ai-play-go/
+[8]:https://youtu.be/l-GsfyVCBu0?t=1h17m50s
+[9]:https://youtu.be/yCALyQRN3hw?t=3h10m25s
+[10]:http://googleresearch.blogspot.sg/2015/02/from-pixels-to-actions-human-level.html
+[11]:http://googleresearch.blogspot.sg/2013/06/improving-photo-search-step-across.html
+[12]:http://googleresearch.blogspot.sg/2015/08/the-neural-networks-behind-google-voice.html
+[13]:http://www.bloomberg.com/news/articles/2015-10-26/google-turning-its-lucrative-web-search-over-to-ai-machines
+[14]:https://en.wikipedia.org/wiki/Artificial_general_intelligence

From f2a488cce957410c1b7d8dc0a06a1e1b58cef61f Mon Sep 17 00:00:00 2001
From: martin qi 
Date: Thu, 17 Mar 2016 21:55:25 +0800
Subject: [PATCH 280/582] Rename 20160317 What we learned in Seoul with AlphaGo
 to 20160317 What we learned in Seoul with AlphaGo.md

---
 ... AlphaGo => 20160317 What we learned in Seoul with AlphaGo.md} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename sources/news/{20160317 What we learned in Seoul with AlphaGo => 20160317 What we learned in Seoul with AlphaGo.md} (100%)

diff --git a/sources/news/20160317 What we learned in Seoul with AlphaGo b/sources/news/20160317 What we learned in Seoul with AlphaGo.md
similarity index 100%
rename from sources/news/20160317 What we learned in Seoul with AlphaGo
rename to sources/news/20160317 What we learned in Seoul with AlphaGo.md

From 5af1e26b348989cfe91d46be5fb42c49440a64b5 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Thu, 17 Mar 2016 22:50:03 +0800
Subject: [PATCH 281/582] PUB:20151104 Optimize Web Delivery with these Open
 Source Tools
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

@fw8899 用心了~
---
 ...b Delivery with these Open Source Tools.md | 204 ++++++++++++++++++
 ...b Delivery with these Open Source Tools.md | 195 -----------------
 2 files changed, 204 insertions(+), 195 deletions(-)
 create mode 100644 published/20151104 Optimize Web Delivery with these Open Source Tools.md
 delete mode 100644 translated/share/20151104 Optimize Web Delivery with these Open Source Tools.md

diff --git a/published/20151104 Optimize Web Delivery with these Open Source Tools.md b/published/20151104 Optimize Web Delivery with these Open Source Tools.md
new file mode 100644
index 0000000000..e2aed5c634
--- /dev/null
+++ b/published/20151104 Optimize Web Delivery with these Open Source Tools.md	
@@ -0,0 +1,204 @@
+五大开源 Web 代理软件横向比较:Squid、Privoxy、Varnish、Polipo、Tinyproxy
+================================================================================
+Web 代理软件转发 HTTP 请求时并不会改变数据流量。它们可以配置成透明代理,而无需客户端配置。它们还可以作为反向代理放在网站的前端;这样缓存服务器可以为一台或多台 web 服务器提供无限量的用户服务。
+
+网站代理功能多样,有着宽泛的用途:从缓存页面、DNS 和其他查询,到加速 web 服务器响应、降低带宽消耗。代理软件广泛用于大型高访问量的网站,比如纽约时报、卫报, 以及社交媒体网站如 Twitter、Facebook 和 Wikipedia。
+
+页面缓存已经成为优化单位时间内所能吞吐的数据量的至关重要的机制。好的 Web 缓存还能降低延迟,尽可能快地响应页面,让终端用户不至于因等待内容的时间过久而失去耐心。它们还能将频繁访问的内容缓存起来以节省带宽。如果你需要降低服务器负载并改善网站内容响应速度,那缓存软件能带来的好处就绝对值得探索一番。
+
+为深入探查 Linux 下可用的相关软件的质量,我列出了下边5个优秀的开源 web 代理工具。它们中有些功能完备强大,也有几个只需很低的资源就能运行。
+
+### Squid ###
+
+Squid 是一个高性能、开源的代理缓存服务器和 Web 缓存进程,支持 FTP、Internet Gopher、HTTPS 和 SSL 等多种协议。它通过一个非阻塞的、I/O 事件驱动的单一进程处理所有的 IPV4 或 IPV6 协议请求。
+
+Squid 由一个主服务程序 squid,和 DNS 查询程序 dnsserver,另外还有一些可选的请求重写、执行认证程序组件,及一些管理和客户端工具构成。
+
+Squid 提供了丰富的访问控制、认证和日志环境, 用于开发 web 代理和内容服务网站应用。
+
+其特性包括:
+
+- Web 代理:
+    - 通过缓存来降低访问时间和带宽使用
+    - 将元数据和访问特别频繁的对象缓存到内存中
+    - 缓存 DNS 查询
+    - 支持非阻塞的 DNS 查询
+    - 实现了失败请求的未果缓存
+- Squid 缓存可架设为层次结构,或网状结构以节省额外的带宽
+- 通过广泛的访问控制来执行网站访问策略
+- 隐匿请求,如禁用或修改客户端 HTTP 请求头特定属性
+- 反向代理
+- 媒体范围(media-range)限制
+- 支持 SSL
+- 支持 IPv6
+- 错误页面的本地化 - Squid 可以根据访问者的语言选项对每个请求展示本地化的错误页面
+- 连接固定(Connection Pinning )(用于 NTLM Auth Passthrough) - 一种允许 Web 服务器通过 Web 代理使用Microsoft NTLM 安全认证替代 HTTP 标准认证的方案
+- 支持服务质量 (QoS, Quality of Service) 流
+    - 选择一个 TOS/Diffserv 值来标记本地命中
+    - 选择一个 TOS/Diffserv 值来标记对端命中
+    - 选择性地仅标记同级或上级请求
+    - 允许任意发往客户端的 HTTP 响应保持由远程服务器处响应的 TOS 值
+    - 对收到的远程服务器的 TOS 值,在复制之前对指定位进行掩码操作,再发送到客户端
+- SSL Bump (用于 HTTPS 过滤和适配) - Squid-in-the-middle,在 CONNECT 方式的 SSL 隧道中,用配置化的客户端和服务器端证书,对流量进行解密和加密
+- 支持适配模块
+- ICAP 旁路和重试增强 - 通过完全的旁路和动态链式路由扩展 ICAP,来处理多多个适应性服务。
+- 支持 ICY 流式协议 - 俗称 SHOUTcast 多媒体流
+- 动态 SSL 证书生成
+- 支持 ICAP 协议 (Internet Content Adaptation Protocol)
+- 完整的请求日志记录
+- 匿名连接
+
+--
+- 网站: [www.squid-cache.org][1]
+- 开发: 美国国家应用网络研究实验室(NLANR)和网络志愿者
+- 授权: GNU GPL v2
+- 版本号: 4.0.1
+
+### Privoxy ###
+
+Privoxy (Privacy Enhancing Proxy) 是一个非缓存类 Web 代理软件,它自带的高级过滤功能可以用来增强隐私保护、修改页面内容和 HTTP 头部信息、访问控制,以及去除广告和其它招人反感的互联网垃圾。Privoxy 的配置非常灵活,能充分定制已满足各种各样的需求和偏好。它支持单机和多用户网络两种模式。
+
+Privoxy 使用 action 规则来处理浏览器和远程站点间的数据流。
+
+其特性包括: 
+
+- 高度配置化——可以完全定制你的配置
+- 广告拦截
+- Cookie 管理
+- 支持“Connection: keep-alive”。可以无视客户端配置而保持外发的持久连接
+- 支持 IPv6
+- 标签化(Tagging),允许按照客户端和服务器的请求头进行处理
+- 作为拦截(intercepting)代理器运行
+- 巧妙的动作(action)和过滤机制用来处理服务器和客户端的 HTTP 头部
+- 可以与其他代理软件链式使用
+- 整合了基于浏览器的配置和控制工具,能在线跟踪规则和过滤效果,可远程开关
+- 页面过滤(文本替换、根据尺寸大小删除广告栏, 隐藏的“web-bugs”元素和 HTML 容错等)
+- 模块化的配置使得标准配置和用户配置可以存放于不同文件中,这样安装更新就不会覆盖用户的个性化设置
+- 配置文件支持 Perl 兼容的正则表达式,以及更为精妙和灵活的配置语法
+- GIF 去动画
+- 旁路处理大量点击跟踪(click-tracking)脚本(避免脚本重定向)
+- 大多数代理生成的页面(例如 "访问受限" 页面)可由用户自定义HTML模板
+- 自动监测配置文件的修改并重新读取
+- 大多数功能可以基于每个站点或每个 URL 位置来进行控制
+
+--
+
+- 网站: [www.privoxy.org][2]
+- 开发: Fabian Keil(开发领导者), David Schmidt, 和众多其他贡献者
+- 授权: GNU GPL v2
+- 版本号: 3.4.2
+
+### Varnish Cache ###
+
+Varnish Cache 是一个为性能和灵活性而生的 web 加速器。它新颖的架构设计能带来显著的性能提升。根据你的架构,通常情况下它能加速响应速度300-1000倍。Varnish 将页面存储到内存,这样 web 服务器就无需重复地创建相同的页面,只需要在页面发生变化后重新生成。页面内容直接从内存中访问,当然比其他方式更快。
+
+此外 Varnish 能大大提升响应 web 页面的速度,用在任何应用服务器上都能使网站访问速度大幅度地提升。
+
+按经验,Varnish Cache 比较经济的配置是1-16GB内存+ SSD 固态硬盘。
+
+其特性包括: 
+
+- 新颖的设计
+- VCL - 非常灵活的配置语言。VCL 配置会转换成 C,然后编译、加载、运行,灵活且高效
+- 能使用 round-robin 轮询和随机分发两种方式来负载均衡,两种方式下后端服务器都可以设置权重
+- 基于 DNS、随机、散列和客户端 IP 的分发器(Director)
+- 多台后端主机间的负载均衡
+- 支持 Edge Side Includes,包括拼装压缩后的 ESI 片段
+- 重度多线程并发
+- URL 重写
+- 单 Varnish 能够缓存多个虚拟主机
+- 日志数据存储在共享内存中
+- 基本的后端服务器健康检查
+- 优雅地处理后端服务器“挂掉”
+- 命令行界面的管理控制台
+- 使用内联 C 语言来扩展 Varnish
+- 可以与 Apache 用在相同的系统上
+- 单个系统可运行多个 Varnish
+- 支持 HAProxy 代理协议。该协议在每个收到的 TCP 请求——例如 SSL 终止过程中——附加一小段 http 头信息,以记录客户端的真实地址
+- 冷热 VCL 状态
+- 可以用名为 VMOD 的 Varnish 模块来提供插件扩展
+- 通过 VMOD 定义后端主机
+- Gzip 压缩及解压
+- HTTP 流的通过和获取
+- 神圣模式和优雅模式。用 Varnish 作为负载均衡器,神圣模式下可以将不稳定的后端服务器在一段时间内打入黑名单,阻止它们继续提供流量服务。优雅模式允许 Varnish 在获取不到后端服务器状态良好的响应时,提供已过期版本的页面或其它内容。
+- 实验性支持持久化存储,无需 LRU 缓存淘汰
+
+--
+
+- 网站: [www.varnish-cache.org][3]
+- 开发: Varnish Software
+- 授权: FreeBSD
+- 版本号: 4.1.0
+
+### Polipo ###
+
+Polipo 是一个开源的 HTTP 缓存代理,只需要非常低的资源开销。
+
+它监听来自浏览器的 web 页面请求,转发到 web 服务器,然后将服务器的响应转发到浏览器。在此过程中,它能优化和整形网络流量。从本质来讲 Polipo 与 WWWOFFLE 很相似,但其实现技术更接近于 Squid。
+
+Polipo 最开始的目标是作为一个兼容 HTTP/1.1 的代理,理论它能在任何兼容 HTTP/1.1 或更早的 HTTP/1.0 的站点上运行。
+
+其特性包括:
+
+- HTTP 1.1、IPv4 & IPv6、流量过滤和隐私保护增强
+- 如确认远程服务器支持的话,则无论收到的请求是管道处理过的还是在多个连接上同时收到的,都使用 HTTP/1.1 管道(pipelining)
+- 下载被中断时缓存起始部分,当需要续传时用区间(Range)请求来完成下载
+- 将 HTTP/1.0 的客户端请求升级为 HTTP/1.1,然后按照客户端支持的级别进行升级或降级后回复
+- 全面支持 IPv6 (作用域(链路本地)地址除外)
+- 作为 IPv4 和 IPv6 网络的网桥
+- 内容过滤
+- 能使用 Poor Man 多路复用技术(Poor Man's Multiplexing)降低延迟
+- 支持 SOCKS 4 和 SOCKS 5 协议
+- HTTPS 代理
+- 扮演透明代理的角色
+- 可以与 Privoxy 或 tor 一起运行
+
+--
+
+- 网站: [www.pps.univ-paris-diderot.fr/~jch/software/polipo/][4]
+- 开发: Juliusz Chroboczek, Christopher Davis
+- 授权: MIT License
+- 版本号: 1.1.1
+
+### Tinyproxy ###
+
+Tinyproxy 是一个轻量级的开源 web 代理守护进程,其设计目标是快而小。它适用于需要完整 HTTP 代理特性,但系统资源又不足以运行大型代理的场景,比如嵌入式部署。
+
+Tinyproxy 对小规模网络非常有用,这样的场合下大型代理会使系统资源紧张,或有安全风险。Tinyproxy 的一个关键特性是其缓冲连接的理念。从效果上看, Tinyproxy 对服务器的响应进行了高速缓冲,然后按照客户端能够处理的最高速度进行响应。该特性极大的降低了网络延滞带来的问题。 
+
+特性:
+
+- 易于修改
+- 隐匿模式 - 定义哪些 HTTP 头允许通过,哪些又会被拦截
+- 支持 HTTPS - Tinyproxy 允许通过 CONNECT 方法转发 HTTPS 连接,任何情况下都不会修改数据流量
+- 远程监控 - 远程访问代理统计数据,让你能清楚了解代理服务当前的忙碌状态
+- 平均负载监控 - 通过配置,当服务器的负载接近一定值后拒绝新连接
+- 访问控制 - 通过配置,仅允许指定子网或 IP 地址的访问
+- 安全 - 运行无需额外权限,减小了系统受到威胁的概率
+- 基于 URL 的过滤 - 允许基于域和URL的黑白名单
+- 透明代理 - 配置为透明代理,这样客户端就无需任何配置
+- 代理链 - 在流量出口处采用上游代理服务器,而不是直接转发到目标服务器,创建我们所说的代理链
+- 隐私特性 - 限制允许从浏览器收到的来自 HTTP 服务器的数据(例如 cookies),同时限制允许通过的从浏览器到 HTTP 服务器的数据(例如版本信息)
+- 低开销 - 使用 glibc 内存开销只有2MB,CPU 负载按并发连接数线性增长(取决于网络连接速度)。 Tinyproxy 可以运行在老旧的机器上而无需担心性能问题。 
+
+--
+
+- 网站: [banu.com/tinyproxy][5]
+- 开发: Robert James Kaes和其他贡献者
+- 授权: GNU GPL v2
+- 版本号: 1.8.3
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxlinks.com/article/20151101020309690/WebDelivery.html
+
+译者:[fw8899](https://github.com/fw8899)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[1]:http://www.squid-cache.org/
+[2]:http://www.privoxy.org/
+[3]:https://www.varnish-cache.org/
+[4]:http://www.pps.univ-paris-diderot.fr/%7Ejch/software/polipo/
+[5]:https://banu.com/tinyproxy/
diff --git a/translated/share/20151104 Optimize Web Delivery with these Open Source Tools.md b/translated/share/20151104 Optimize Web Delivery with these Open Source Tools.md
deleted file mode 100644
index 21fd8ad8e2..0000000000
--- a/translated/share/20151104 Optimize Web Delivery with these Open Source Tools.md	
+++ /dev/null
@@ -1,195 +0,0 @@
-使用开源工具优化Web响应
-================================================================================
-Web代理软件转发HTTP请求时并不会改变数据流量。它们经过配置后,可以免客户端配置,作为透明代理。它们还可以作为网站反向代理的前端;缓存服务器在此能支撑一台或多台web服务器为海量用户提供服务。
-
-网站代理功能多样,有着宽泛的用途:从页面缓存、DNS和其他查询,到加速web服务器响应、降低带宽消耗。代理软件广泛用于大型高访问量的网站,比如纽约时报、卫报, 以及社交媒体网站如Twitter、Facebook和Wikipedia。
-
-页面缓存已经成为优化单位时间内所能吞吐的数据量的至关重要的机制。好的Web缓存还能降低延迟,尽可能快地响应页面,让终端用户不至于因等待内容的时间过久而失去耐心。它们还能将频繁访问的内容缓存起来以节省带宽。如果你需要降低服务器负载并改善网站内容响应速度,那缓存软件能带来的好处就绝对值得探索一番。
-
-为深入探查Linux下可用的相关软件的质量,我列出了下边5个优秀的开源web代理工具。它们中有些功能完备强大,也有几个只需很低的资源就能运行。
-
-### Squid ###
-
-Squid是一个高性能、开源的代理缓存和Web缓存服务器,支持FTP、Internet Gopher、HTTPS和SSL等多种协议。它通过一个非阻塞,I/O事件驱动的单一进程处理所有IPV4或IPV6上的请求。
-
-Squid由一个主服务程序squid,和DNS查询程序dnsserver,另外还有可选的请求重写、执行认证程序组件,及一些管理和客户端工具构成。
-
-Squid提供了丰富的访问控制、认证和日志环境, 用于开发web代理和内容服务网站应用。
-
-其特性包括:
-
-- Web代理:
-    - 通过缓存来降低访问时间和带宽使用
-    - 将元数据和特别热的对象缓存到内存中
-    - 缓存DNS查询
-    - 支持非阻塞的DNS查询
-    - 实现了失败请求的未果缓存
-- Squid缓存可架设为层次结构,或网状结构以节省额外的带宽
-- 通过可扩展的访问控制来执行网站使用条款
-- 隐匿请求,如禁用或修改客户端HTTP请求头特定属性
-- 反向代理
-- 媒体范围限制
-- 支持SSL
-- 支持IPv6
-- 错误页面的本地化 - Squid可以根据访问者的语言选项对每个请求展示本地化的错误页面
-- 连接Pinning(用于NTLM Auth Passthrough) - 一种通过Web代理,允许Web服务器使用Microsoft NTLM安全认证替代HTTP标准认证的方案
-- 支持服务质量 (QoS, Quality of Service) 流
-    - 选择一个TOS/Diffserv值来标记本地命中
-    - 选择一个TOS/Diffserv值来标记邻居命中
-    - 选择性地仅标记同级或上级请求
-    - 允许任意发往客户端的HTTP响应保持由远程服务器处响应的TOS值
-    - 对收到的远程服务器的TOS值,在复制之前对指定位进行掩码操作,再发送到客户端
-- SSL Bump (用于HTTPS过滤和适配) - Squid-in-the-middle,在CONNECT方式的SSL隧道中,用配置化的客户端和服务器端证书,对流量进行解密和加密
-- 支持适配模块
-- ICAP旁路和重试增强 - 通过完全的旁路和动态链式路由扩展ICAP,来处理多多个适应性服务。
-- 支持ICY流式协议 - 俗称SHOUTcast多媒体流
-- 动态SSL证书生产
-- 支持ICAP协议(Internet Content Adaptation Protocol)
-- 完整的请求日志记录
-- 匿名连接
-
-- 网站: [www.squid-cache.org][1]
-- 开发: 美国国家应用网络研究实验室和网络志愿者
-- 授权: GNU GPL v2
-- 版本号: 4.0.1
-
-### Privoxy ###
-
-Privoxy(Privacy Enhancing Proxy)是一个非缓存类Web代理软件,它自带的高级过滤功能用来增强隐私保护,修改页面内容和HTTP头部信息,访问控制,以及去除广告和其它招人反感的互联网垃圾。Privoxy的配置非常灵活,能充分定制已满足各种各样的需求和偏好。它支持单机和多用户网络两种模式。
-
-Privoxy使用Actions规则来处理浏览器和远程站点间的数据流。
-
-其特性包括: 
-
-- 高度配置化
-- 广告拦截
-- Cookie管理
-- 支持"Connection: keep-alive"。可以无视客户端配置而保持持久连接
-- 支持IPv6
-- 标签化,允许按照客户端和服务器的请求头进行处理
-- 作为拦截代理器运行
-- 巧妙的手段和过滤机制用来处理服务器和客户端的HTTP头部
-- 可以与其他代理软件链式使用
-- 整合了基于浏览器的配置和控制工具,能在线跟踪规则和过滤效果,可远程开关
-- 页面过滤(文本替换、根据尺寸大小删除广告栏, 隐藏的"web-bugs"元素和HTML容错等)
-- 模块化的配置使得标准配合和用户配置可以存放于不同文件中,这样安装更新就不会覆盖用户的个性化设置
-- 配置文件支持Perl兼容的正则表达式,以及更为精妙和灵活的配置语法
-- GIF去动画
-- 旁路处理大量click-tracking脚本(避免脚本重定向)
-- 大多数代理生成的页面(例如 "访问受限" 页面)可由用户自定义HTML模板
-- 自动监测配置文件的修改并重新读取
-- 最大特点是可以基于每个站点或每个位置来进行控制
-
-- 网站: [www.privoxy.org][2]
-- 开发: Fabian Keil(开发领导者), David Schmidt, 和众多其他贡献者
-- 授权: GNU GPL v2
-- 版本号: 3.4.2
-
-### Varnish Cache ###
-
-Varnish Cache是一个为性能和灵活性而生的web加速器。它新颖的架构设计能带来显著的性能提升。根据你的架构,通常情况下它能加速响应速度300-1000倍。Varnish将页面存储到内存,这样web服务器就无需重复地创建相同的页面,只需要在页面发生变化后重新生成。页面内容直接从内存中访问,当然比其他方式更快。
-
-此外Varnish能大大提升响应web页面的速度,用任何应用服务器都能使网站访问速度大幅度地提升。
-
-按按经验,Varnish Cache比较经济的配置是1-16GB内存+SSD固态硬盘。
-
-其特性包括: 
-
-- 新颖的设计
-- VCL - 非常灵活的配置语言。VCL配置转换成C,然后编译、加载、运行,灵活且高效
-- 能使用round-robin轮询和随机分发两种方式来负载均衡,两种方式下后端服务器都可以设置权重
-- 基于DNS、随机、散列和客户端IP的分发器
-- 多台后端主机间的负载均衡
-- 支持Edge Side Includes,包括拼装压缩后的ESI片段
-- 多线程并发
-- URL重写
-- 单Varnish缓存多个虚拟主机
-- 日志数据存储在共享内存中
-- 基本的后端服务器健康检查
-- 优雅地处理后端服务器“挂掉”
-- 命令行界面的管理控制台
-- 使用内联C来扩展Varnish
-- 可以与Apache用在相同的系统上
-- 单系统可运行多个Varnish
-- 支持HAProxy代理协议。该协议在每个收到的TCP请求,例如SSL终止过程中,附加小段头信息,以记录客户端的真实地址
-- 冷热VCL状态
-- 用名为VMODs的Varnish模块来提供插件扩展
-- 通过VMODs定义后端主机
-- Gzip压缩及解压
-- HTTP流通过和获取
-- 神圣模式和优雅模式。用Varnish作为负载均衡器,神圣模式下可以将不稳定的后端服务器在一段时间内打入黑名单,阻止它们继续提供流量服务。优雅模式允许Varnish在获取不到后端服务器状态良好的响应时,提供已过期版本的页面或其它内容。
-- 实验性支持持久化存储,无需LRU缓存淘汰
-
-- 网站: [www.varnish-cache.org][3]
-- 开发: Varnish Software
-- 授权: FreeBSD
-- 版本号: 4.1.0
-
-### Polipo ###
-
-Polipo是一个开源的HTTP缓存代理,只需要非常低的资源开销。
-
-它监听来自浏览器的web页面请求,转发到web服务器,然后将服务器的响应转发到浏览器。在此过程中,它能优化和整形网络流量。从本质来讲Polipo与WWWOFFLE很相似,但其实现技术更接近于Squid。
-
-Polipo最开始的目标是作为一个兼容HTTP/1.1的代理,理论它能在任何兼容HTTP/1.1或更早的HTTP/1.0的站点上运行。
-
-其特性包括:
-
-- HTTP 1.1、IPv4 & IPv6、流量过滤和隐私保护增强
-- 如确认远程服务器支持,则无论收到的请求是管道处理过的还是在多个连接上同时收到的,都使用HTTP/1.1管道
-- 下载被中断时缓存起始部分,当需要续传时用区间请求来完成下载
-- 将HTTP/1.0的客户端请求升级为HTTP/1.1,然后按照客户端支持的级别进行升级或降级后回复
-- 全面支持IPv6 (作用域(链路本地)地址除外)
-- 作为IPv4和IPv6网络的网桥
-- 内容过滤
-- 能使用Poor Man多路复用技术降低延迟
-- 支持SOCKS 4和SOCKS 5协议
-- HTTPS代理
-- 扮演透明代理的角色
-- 可以与Privoxy或tor一起运行
-
-- 网站: [www.pps.univ-paris-diderot.fr/~jch/software/polipo/][4]
-- 开发: Juliusz Chroboczek, Christopher Davis
-- 授权: MIT License
-- 版本号: 1.1.1
-
-### Tinyproxy ###
-
-Tinyproxy是一个轻量级的开源web代理守护进程,其设计目标是快而小。它适用于需要完整HTTP代理特性,但系统资源又不足以运行大型代理的场景,比如嵌入式部署。
-
-Tinyproxy对小规模网络非常有用,这样的场合下大型代理会使系统资源紧张,或有安全风险。Tinyproxy的一个关键特性是其缓冲连接的理念。实质上Tinyproxy服务器的响应进行了高速缓冲,然后按照客户端能够处理的最高速度进行响应。该特性极大的降低了网络延滞带来的问题。 
-
-特性:
-
-- 易于修改
-- 隐匿模式 - 定义哪些HTTP头允许通过,哪些又会被拦截
-- 支持HTTPS - Tinyproxy允许通过CONNECT方法转发HTTPS连接,任何情况下都不会修改数据流量
-- 远程监控 - 远程访问代理统计数据,让你能清楚了解代理服务当前的忙碌状态
-- 平均负载监控 - 通过配置,当服务器的负载接近一定值后拒绝新连接
-- 访问控制 - 通过配置,仅允许指定子网或IP地址的访问
-- 安全 - 运行无需额外权限,减小了系统受到威胁的概率
-- 基于URL的过滤 - 允许基于域和URL的黑白名单
-- 透明代理 - 配位为透明代理,这样客户端就无需任何配置
-- 代理链 - 来流量出口处采用上游代理服务器,而不是直接转发到目标服务器,创建我们所说的代理链
-- 隐私特性 - 限制允许从浏览器收到的来自HTTP服务器的数据(例如cookies),同时限制允许通过的从浏览器到HTTP服务器的数据(例如版本信息)
-- 低开销 - 使用glibc内存开销只有2MB,CPU负载按并发连接数线性增长(取决于网络连接速度)。 Tinyproxy可以运行在老旧的机器上而无需担心性能问题。 
-
-- 网站: [banu.com/tinyproxy][5]
-- 开发: Robert James Kaes和其他贡献者
-- 授权: GNU GPL v2
-- 版本号: 1.8.3
-
---------------------------------------------------------------------------------
-
-via: http://www.linuxlinks.com/article/20151101020309690/WebDelivery.html
-
-译者:[fw8899](https://github.com/fw8899)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[1]:http://www.squid-cache.org/
-[2]:http://www.privoxy.org/
-[3]:https://www.varnish-cache.org/
-[4]:http://www.pps.univ-paris-diderot.fr/%7Ejch/software/polipo/
-[5]:https://banu.com/tinyproxy/

From 33d4f96e783cb8ca2b77abda1b6779bb3ec06149 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Thu, 17 Mar 2016 22:50:23 +0800
Subject: [PATCH 282/582] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...ith Answers--How to install Ubuntu desktop behind a proxy.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md b/published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md
index 0a215a066e..31ca37ab0b 100644
--- a/published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md	
+++ b/published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md	
@@ -1,4 +1,4 @@
-Linux 有问必答 - 如何通过代理服务器安装 Ubuntu 桌面版
+Linux 有问必答:如何通过代理服务器安装 Ubuntu 桌面版
 ================================================================================
 > **问题**: 我的电脑通过 HTTP 代理连接到公司网络。当我尝试从 CD-ROM 在计算机上安装 Ubuntu 桌面时,在检索文件时安装程序会被挂起,检索则不会完成,这可能是由于代理造成的。然而问题是,Ubuntu 的安装程序从不要求我在安装过程中配置代理。那我该怎么使用代理来安装 Ubuntu 桌面?
 

From 6315c293936bcb009dbc207f9bca61230132b999 Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Fri, 18 Mar 2016 14:52:27 +0800
Subject: [PATCH 283/582] =?UTF-8?q?20160318-1=20=E9=80=89=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...Raspberry Pi projects for the classroom.md | 92 +++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md

diff --git a/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md
new file mode 100644
index 0000000000..d074c2e840
--- /dev/null
+++ b/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md	
@@ -0,0 +1,92 @@
+5 great Raspberry Pi projects for the classroom
+=====================================================
+
+![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png?itok=fSUS0fIt)
+
+### 1. Minecraft Pi
+
+![](https://opensource.com/sites/default/files/lava.png)
+>Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1].
+
+Minecraft is the favorite game of pretty much every teenager in the world—and it's one of the most creative games ever to capture the attention of young people. The version that comes with every Raspberry Pi is not only a creative thinking building game, but comes with a programming interface allowing for additional interaction with the Minecraft world through Python code.
+
+Minecraft: Pi Edition is a great way for teachers to engage students with problem solving and writing code to perform tasks. You can use the Python API to build a house and have it follow you wherever you go, build a bridge wherever you walk, make it rain lava, show the temperature in the sky, and anything else your imagination can create.
+
+Read more in "[Getting Started with Minecraft Pi][2]."
+
+### 2. Reaction game and traffic lights
+
+![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg)
+>Courtesy of [Low Voltage Labs][3]. [CC BY-SA 4.0][1].
+
+It's really easy to get started with physical computing on Raspberry Pi—just connect up LEDs and buttons to the GPIO pins, and with a few lines of code you can turn lights on and control things with button presses. Once you know the code to do the basics, it's down to your imagination as to what you do next!
+
+If you know how to flash one light, you can flash three. Pick out three LEDs in traffic light colors and you can code the traffic light sequence. If you know how to use a button to a trigger an event, then you have a pedestrian crossing! Also look out for great pre-built traffic light add-ons like [PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6], and more.
+
+It's not always about the code—this can be used as an exercise in understanding how real world systems are devised. Computational thinking is a useful skill in any walk of life.
+
+![](https://opensource.com/sites/default/files/reaction-game.png)
+>Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1].
+
+Next, try wiring up two buttons and an LED and making a two-player reaction game—let the light come on after a random amount of time and see who can press the button first!
+
+To learn more, check out [GPIO Zero recipes][7]. Everything you need is in [CamJam EduKit 1][8].
+
+### 3. Sense HAT Pixel Pet
+
+The Astro Pi—an augmented Raspberry Pi—is going to space this December, but you haven't missed your chance to get your hands on the hardware. The Sense HAT is the sensor board add-on used in the Astro Pi mission and it's available for anyone to buy. You can use it for data collection, science experiments, games and more. Watch this Gurl Geek Diaries video from Raspberry Pi's Carrie Anne for a great way to get started—by bringing to life an animated pixel pet of your own design on the Sense HAT display:
+
+[video](https://youtu.be/gfRDFvEVz-w)
+
+>Learn more in "[Exploring the Sense HAT][9]."
+
+### 4. Infrared bird box
+
+![](https://opensource.com/sites/default/files/ir-bird-box.png)
+>Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1].
+
+A great exercise for the whole class to get involved with—place a Raspberry Pi and the NoIR camera module inside a bird box along with some infra-red lights so you can see in the dark, then stream video from the Pi over the network or on the internet. Wait for birds to nest and you can observe them without disturbing them in their habitat.
+
+Learn all about infrared and the light spectrum, and how to adjust the camera focus and control the camera in software.
+
+Learn more in "[Make an infrared bird box][10]."
+
+### 5. Robotics
+
+![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg)
+>Courtesy of Low Voltage Labs. [CC BY-SA 4.0][1].
+
+With a Raspberry Pi and as little as a couple of motors and a motor controller board, you can build your own robot. There is a vast range of robots you can make, from basic buggies held together by sellotape and a homemade chassis, all the way to self-aware, sensor-laden metallic stallions with camera attachments driven by games controllers.
+
+Learn how to control individual motors with something straightforward like the RTK Motor Controller Board (£8/$12), or dive into the new CamJam robotics kit (£17/$25) which comes with motors, wheels and a couple of sensors—great value and plenty of learning potential.
+
+Alternatively, if you'd like something more hardcore, try PiBorg's [4Borg][11] (£99/$150) or [DiddyBorg][12] (£180/$273) or go the whole hog and treat yourself to their DoodleBorg Metal edition (£250/$380)—and build a mini version of their infamous [DoodleBorg tank][13] (unfortunately not for sale).
+
+Check out the [CamJam robotics kit worksheets][14].
+
+
+------------------------------------------------------------------------------
+
+via: https://opensource.com/education/15/12/5-great-raspberry-pi-projects-classroom
+
+作者:[Ben Nuttall][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/bennuttall
+[1]: https://creativecommons.org/licenses/by-sa/4.0/
+[2]: https://opensource.com/life/15/5/getting-started-minecraft-pi
+[3]: http://lowvoltagelabs.com/
+[4]: http://lowvoltagelabs.com/products/pi-traffic/
+[5]: http://4tronix.co.uk/store/index.php?rt=product/product&product_id=390
+[6]: https://ryanteck.uk/hats/1-traffichat-0635648607122.html
+[7]: http://pythonhosted.org/gpiozero/recipes/
+[8]: http://camjam.me/?page_id=236
+[9]: https://opensource.com/life/15/10/exploring-raspberry-pi-sense-hat
+[10]: https://www.raspberrypi.org/learning/infrared-bird-box/
+[11]: https://www.piborg.org/4borg
+[12]: https://www.piborg.org/diddyborg
+[13]: https://www.piborg.org/doodleborg
+[14]: http://camjam.me/?page_id=1035#worksheets

From 6eaa9fd46df494a0718b7d466c9e14b69aae0d2c Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Fri, 18 Mar 2016 14:52:59 +0800
Subject: [PATCH 284/582] translating

---
 .../20151207 5 great Raspberry Pi projects for the classroom.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md
index d074c2e840..b1bc89b2a0 100644
--- a/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md	
+++ b/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md	
@@ -1,3 +1,5 @@
+ezio
+
 5 great Raspberry Pi projects for the classroom
 =====================================================
 

From c0c483068eddbdc7fad6f4b93b3ecb1565171194 Mon Sep 17 00:00:00 2001
From: martin qi 
Date: Sat, 19 Mar 2016 01:07:27 +0800
Subject: [PATCH 285/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

对 [General purpose] 一词没有把握。
---
 ...7 What we learned in Seoul with AlphaGo.md | 51 -------------------
 ...6 What we learned in Seoul with AlphaGo.md | 49 ++++++++++++++++++
 2 files changed, 49 insertions(+), 51 deletions(-)
 delete mode 100644 sources/news/20160317 What we learned in Seoul with AlphaGo.md
 create mode 100644 translated/news/20160316 What we learned in Seoul with AlphaGo.md

diff --git a/sources/news/20160317 What we learned in Seoul with AlphaGo.md b/sources/news/20160317 What we learned in Seoul with AlphaGo.md
deleted file mode 100644
index 8eb12005d3..0000000000
--- a/sources/news/20160317 What we learned in Seoul with AlphaGo.md	
+++ /dev/null
@@ -1,51 +0,0 @@
-martin
-
-What we learned in Seoul with AlphaGo
-================================================================================
-Go isn't just a game—it's a living, breathing culture of players, analysts, fans, and legends. Over the last 10 days in Seoul, South Korea, we've been lucky enough to witness some of that incredible excitement firsthand. We've also had the chance to see something that's never happened before: [DeepMind's][1] AlphaGo took on and defeated legendary Go player, Lee Sedol (9-dan professional with 18 world titles), marking a major milestone for artificial intelligence.
-
-![Pedestrians checking in on the AlphaGo vs. Lee Sedol Go match on the streets of Seoul (March 13)](https://1.bp.blogspot.com/-vfgUcjyMOmM/Vumk5gXD98I/AAAAAAAASDI/frbYidb1u6gTKGcvFOf8iQVsr9PLoRlBQ/s1600/Press%2BCenter%2BOutdoor%2BScreen%2B2.jpg)
-
-Go may be one of the oldest games in existence, but the attention to our five-game tournament exceeded even our wildest imaginations. Searches for Go rules and Go boards spiked in the U.S. In China, tens of millions watched live streams of the matches, and the “Man vs. Machine Go Showdown” hashtag saw 200 million pageviews on Sina Weibo. Sales of Go boards even [surged][2] in Korea.
-
-Our public test of AlphaGo, however, was about more than winning at Go. We founded DeepMind in 2010 to create general-purpose artificial intelligence (AI) that can learn on its own—and, eventually, be used as a tool to help society solve some of its biggest and most pressing problems, from climate change to disease diagnosis.
-
-Like many researchers before us, we've been developing and testing our algorithms through games. We first revealed [AlphaGo][3] in January—the first AI program that could beat a professional player at the most complex board game mankind has devised, using [deep learning][4] and [reinforcement learning][5]. The [ultimate challenge][6] was for AlphaGo to take on the best Go player of the past decade—Lee Sedol.
-
-To everyone's surprise, including ours, AlphaGo won four of the five games. Commentators noted that AlphaGo played many unprecedented, creative, and even [“beautiful”][7] moves. Based on our data, AlphaGo's bold [move 37][8] in Game 2 had a 1 in 10,000 chance of being played by a human. Lee countered with innovative moves of his own, such as his [move 78][9] against AlphaGo in Game 4—again, a 1 in 10,000 chance of being played—which ultimately resulted in a win.
-
-The final score was 4-1. We're contributing the $1 million in prize money to organizations that support science, technology, engineering and math (STEM) education and Go, as well as UNICEF.
-
-We've learned two important things from this experience. First, this test bodes well for AI's potential in solving other problems. AlphaGo has the ability to look “globally” across a board—and find solutions that humans either have been trained not to play or would not consider. This has huge potential for using AlphaGo-like technology to find solutions that humans don't necessarily see in other areas. Second, while the match has been widely billed as "man vs. machine," AlphaGo is really a human achievement. Lee Sedol and the AlphaGo team both pushed each other toward new ideas, opportunities and solutions—and in the long run that's something we all stand to benefit from.
-
-But as they say about Go in Korean: “Don't be arrogant when you win or you'll lose your luck.” This is just one small, albeit significant, step along the way to making machines smart. We've demonstrated that our cutting edge deep reinforcement learning techniques can be used to make strong Go and [Atari][10] players. Deep neural networks are already used at Google for specific tasks—like [image recognition][11], [speech recognition][12], and [Search ranking][13]. However, we're still a long way from a machine that can learn to flexibly perform the full range of intellectual tasks a human can—the hallmark of true [artificial general intelligence][14].
-
-![Demis and Lee Sedol hold up the signed Go board from the Google DeepMind Challenge Match](https://4.bp.blogspot.com/-LkxNvsR-e1I/Vumk5gmProI/AAAAAAAASDM/J55Y2psqzOwWZ3kau2Pgz6xmazo7XDj_Q/s1600/A26U6150.jpg)
-
-With this tournament, we wanted to test the limits of AlphaGo. The genius of Lee Sedol did that brilliantly—and we'll spend the next few weeks studying the games he and AlphaGo played in detail. And because the machine learning methods we've used in AlphaGo are general purpose, we hope to apply some of these techniques to other challenges in the future. Game on!
-
---------------------------------------------------------------------------------
-
-via: https://googleblog.blogspot.com/2016/03/what-we-learned-in-seoul-with-alphago.html
-
-作者:[Demis Hassabis][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://demishassabis.com/
-[1]:https://deepmind.com/
-[2]:http://www.hankookilbo.com/m/v/3e7deaa26a834f76929a1689ecd388ea
-[3]:https://googleblog.blogspot.com/2016/01/alphago-machine-learning-game-go.html
-[4]:https://en.wikipedia.org/wiki/Deep_learning
-[5]:https://en.wikipedia.org/wiki/Reinforcement_learning
-[6]:https://deepmind.com/alpha-go.html
-[7]:http://www.wired.com/2016/03/sadness-beauty-watching-googles-ai-play-go/
-[8]:https://youtu.be/l-GsfyVCBu0?t=1h17m50s
-[9]:https://youtu.be/yCALyQRN3hw?t=3h10m25s
-[10]:http://googleresearch.blogspot.sg/2015/02/from-pixels-to-actions-human-level.html
-[11]:http://googleresearch.blogspot.sg/2013/06/improving-photo-search-step-across.html
-[12]:http://googleresearch.blogspot.sg/2015/08/the-neural-networks-behind-google-voice.html
-[13]:http://www.bloomberg.com/news/articles/2015-10-26/google-turning-its-lucrative-web-search-over-to-ai-machines
-[14]:https://en.wikipedia.org/wiki/Artificial_general_intelligence
diff --git a/translated/news/20160316 What we learned in Seoul with AlphaGo.md b/translated/news/20160316 What we learned in Seoul with AlphaGo.md
new file mode 100644
index 0000000000..ab3c92b4c9
--- /dev/null
+++ b/translated/news/20160316 What we learned in Seoul with AlphaGo.md	
@@ -0,0 +1,49 @@
+我们和 AlphaGo 在首尔学到了什么
+================================================================================
+围棋并不仅仅是一个游戏——她是一伙活生生的玩家们,分析家们,爱好者们以及传奇大师们。在过去的十天里,在韩国首尔,我们有幸亲眼目睹那份难以置信的激动。我们也有幸也目睹了那前所未有的场景:[DeepMind][1] 的 AlphaGo 迎战并战胜了传奇围棋大师,李世石(职业9段,身负 18 个世界头衔),这是人工智能的里程碑。
+
+![Pedestrians checking in on the AlphaGo vs. Lee Sedol Go match on the streets of Seoul (March 13)](https://1.bp.blogspot.com/-vfgUcjyMOmM/Vumk5gXD98I/AAAAAAAASDI/frbYidb1u6gTKGcvFOf8iQVsr9PLoRlBQ/s1600/Press%2BCenter%2BOutdoor%2BScreen%2B2.jpg)
+
+虽说围棋可能是存世的最为悠久的游戏之一了,但对于这五盘比赛的关注度还是大大的超出了我们的想象。搜索围棋规则和围棋盘的用户在美国迅速飙升。在中国,数以千万计的用户通过直播观看了这场比赛,并且新浪微博“人机围棋大战”话题的浏览量破 2 亿。韩国的围棋盘也销量[激增][2]。
+
+然而我们如此公然的测试 AlphaGo,并不仅仅是为了赢棋而已。我们自 2010 年成立 DeepMind,为的是创造出具有独立学习能力的通用型人工智能(AI),并致力于将其作为工具协助解决,从气候变化到诊断疾病,这类最为棘手且急迫的问题为最终目标。 
+
+亦如许多前辈学者们一样,我们也是通过游戏来开发并测试我们的算法的。在一月份,我们第一次披露了 [AlphaGo][3]——作为第一个通过使用 [深度学习][4] 和 [强化学习][5],可以在人类发明的最为复杂的棋盘类游戏中击败职业选手的 AI 程序。而 AlphaGo 迎战过去十年间最厉害的围棋选手——李世石,绝对称得上是 [终极挑战][6]。
+
+结果震惊了包括我们在内的每个人,AlphaGo 五战四胜。评论家指出了 AlphaGo 下出的许多前所未见、极富创意或者要用 [“漂亮”][7] 来形容的妙手。基于我们的数据分析,AlphaGo 在第 2 局中的 [37 手][8],在人类选手中出现的几率仅有万分之一。而李一反常态的创新下法,如第 4 局中的 [78 手][9]——也是既存下法中的万中之一的——这一手也最终造就了一场胜利。
+
+最后比分定格在 4-1。我们为支持科学、技术、工程、数学(STEM)教育和围棋的组织,以及 UNICEF (联合国儿童基金会)赢得了 $1 百万的捐助。
+
+经此一役,我们将收获总结成以下两点:第一,此次测试很好的预示了 AI 有解决其他问题的潜力。AlphaGo 在棋盘上能够做到兼顾“全局”——并找出人类已经被训化而不会走或想到的妙手。运用 AlphaGo 这类的技术,在人类目所不能及的领域中探索,会有很大的潜力。第二,虽说这场比赛已经被广泛的标榜成“人机大战”,但 AlphaGo 却是人类实实在在的成果。无论是李世石还是 AlphaGo 团队相互之间互相促进,产生了新的想法、观点和答案——并且长远来看,我们都将从中受益。
+
+但正如韩国对于围棋的观点:“胜而不骄,是以常胜。”这只是使机器聪明的漫长道路中的一个小小而显著的一步而已。我们已经证明了尖端深度强化学习技术可以被用作制作强大的围棋选手和 [Atari][10] 玩家。深度神经网络在 Google 已经与 [图像识别][11],[语音识别][12] 以及 [搜索排名][13] 一样被应用到具体的任务中了。然而,从会学习的机器到可以像人一样全方位灵活实施智能任务——真正达到 [强人工智能][14] 的特性,此中的道路还很漫长。
+
+![Demis and Lee Sedol hold up the signed Go board from the Google DeepMind Challenge Match](https://4.bp.blogspot.com/-LkxNvsR-e1I/Vumk5gmProI/AAAAAAAASDM/J55Y2psqzOwWZ3kau2Pgz6xmazo7XDj_Q/s1600/A26U6150.jpg)
+
+我们想通过这场比赛来测试 AlphaGo 的极限。李世石大师做的十分出色—我们在接下来的数周内会研究他与 AlphaGo 的对战细节。同时因为我们在 AlphaGo 中使用的机器学习方法是通用型的,我们十分希望在不久的将来,将这种技术应用于其他的挑战中。游戏开始!
+
+--------------------------------------------------------------------------------
+
+via: https://googleblog.blogspot.com/2016/03/what-we-learned-in-seoul-with-alphago.html
+
+作者:[Demis Hassabis][a]
+译者:[martin2011qi](https://github.com/martin2011qi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://demishassabis.com/
+[1]:https://deepmind.com/
+[2]:http://www.hankookilbo.com/m/v/3e7deaa26a834f76929a1689ecd388ea
+[3]:https://googleblog.blogspot.com/2016/01/alphago-machine-learning-game-go.html
+[4]:https://en.wikipedia.org/wiki/Deep_learning
+[5]:https://en.wikipedia.org/wiki/Reinforcement_learning
+[6]:https://deepmind.com/alpha-go.html
+[7]:http://www.wired.com/2016/03/sadness-beauty-watching-googles-ai-play-go/
+[8]:https://youtu.be/l-GsfyVCBu0?t=1h17m50s
+[9]:https://youtu.be/yCALyQRN3hw?t=3h10m25s
+[10]:http://googleresearch.blogspot.sg/2015/02/from-pixels-to-actions-human-level.html
+[11]:http://googleresearch.blogspot.sg/2013/06/improving-photo-search-step-across.html
+[12]:http://googleresearch.blogspot.sg/2015/08/the-neural-networks-behind-google-voice.html
+[13]:http://www.bloomberg.com/news/articles/2015-10-26/google-turning-its-lucrative-web-search-over-to-ai-machines
+[14]:https://en.wikipedia.org/wiki/Artificial_general_intelligence

From 0d972d4ae38777a6095cbfbb6a45109fb2609095 Mon Sep 17 00:00:00 2001
From: zpl 
Date: Sat, 19 Mar 2016 12:26:25 +0800
Subject: [PATCH 286/582] move the translated files into right place

---
 {sources => translated}/tech/20151202 A new Mindcraft moment.md | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename {sources => translated}/tech/20151202 A new Mindcraft moment.md (100%)

diff --git a/sources/tech/20151202 A new Mindcraft moment.md b/translated/tech/20151202 A new Mindcraft moment.md
similarity index 100%
rename from sources/tech/20151202 A new Mindcraft moment.md
rename to translated/tech/20151202 A new Mindcraft moment.md

From 077e2a079dcca139cd1cffe849e3fb8cee60d5d2 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Sat, 19 Mar 2016 12:36:22 +0800
Subject: [PATCH 287/582] PUB:20150820 Why did you start using Linux

@bazz2
---
 .../20150820 Why did you start using Linux.md | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)
 rename {translated/talk => published}/20150820 Why did you start using Linux.md (87%)

diff --git a/translated/talk/20150820 Why did you start using Linux.md b/published/20150820 Why did you start using Linux.md
similarity index 87%
rename from translated/talk/20150820 Why did you start using Linux.md
rename to published/20150820 Why did you start using Linux.md
index aa48db697c..c0a01c17a2 100644
--- a/translated/talk/20150820 Why did you start using Linux.md	
+++ b/published/20150820 Why did you start using Linux.md	
@@ -1,12 +1,11 @@
 年轻人,你为啥使用 linux
 ================================================================================
-> 今天的开源综述:是什么带你进入 linux 的世界?号外:IBM 基于 Linux 的大型机。以及,你应该抛弃 win10 选择 Linux 的原因。
 
 ### 当初你为何使用 Linux? ###
 
 Linux 越来越流行,很多 OS X 或 Windows 用户都转移到 Linux 阵营了。但是你知道是什么让他们开始使用 Linux 的吗?一个 Reddit 用户在网站上问了这个问题,并且得到了很多有趣的回答。
 
-一个名为 SilverKnight 的用户在 Reddit 的 Linux 板块上问了如下问题:
+一个名为 SilverKnight 的用户在 Reddit 的 Linux 版块上问了如下问题:
 
 > 我知道这个问题肯定被问过了,但我还是想听听年轻一代使用 Linux 的原因,以及是什么让他们坚定地成为 Linux 用户。
 > 
@@ -18,7 +17,7 @@ Linux 越来越流行,很多 OS X 或 Windows 用户都转移到 Linux 阵营
 
 以下是网站上的回复:
 
-> **DoublePlusGood**:我12岁开始使用 Backtrack(现在改名为 Kali),因为我想成为一名黑客(LCTT 译注:原文1337 haxor,1337 是 leet 的火星文写法,意为'火星文',haxor 为 hackor 的火星文写法,意为'黑客',另一种写法是 1377 h4x0r,满满的火星文文化)。我现在一直使用 ArchLinux,因为它给我无限自由,让我对我的电脑可以为所欲为。
+> **DoublePlusGood**:我12岁开始使用 Backtrack(现在改名为 Kali),因为我想成为一名黑客(LCTT 译注:原文“1337 haxor”,1337 是 leet 的火星文写法,意为'火星文',haxor 为 hackor 的火星文写法,意为'黑客',另一种写法是 1377 h4x0r,满满的火星文文化)。我现在一直使用 ArchLinux,因为它给我无限自由,让我对我的电脑可以为所欲为。
 > 
 > **Zack**:我记得是12、3岁的时候使用 Linux,现在15岁了。
 > 
@@ -44,9 +43,9 @@ Linux 越来越流行,很多 OS X 或 Windows 用户都转移到 Linux 阵营
 > 
 > 我很喜欢这个系统。然后在圣诞节的时候我得到树莓派,上面只能跑 Debian,还不能支持其它发行版。
 > 
-> **Cqz**:我9岁的时候有一次玩 Windows 98,结果这货当机了,原因未知。我没有 Windows 安装盘,但我爸的一本介绍编程的杂志上有一张随书附赠的光盘,这张光盘上刚好有 Mandrake Linux 的安装软件,于是我瞬间就成为了 Linux 用户。我当时还不知道自己在玩什么,但是玩得很嗨皮。这些年我虽然在电脑上装了多种 Windows 版本,但是 FLOSS 世界才是我的家。现在我只把 Windows 装在虚拟机上,用来玩游戏。
+> **Cqz**:我9岁的时候有一次玩 Windows 98,结果这货当机了,原因未知。我没有 Windows 安装盘,但我爸的一本介绍编程的杂志上有一张随书附赠的光盘,这张光盘上刚好有 Mandrake Linux 的安装软件,于是我瞬间就成为了 Linux 用户。我当时还不知道自己在玩什么,但是玩得很嗨皮。这些年我虽然在电脑上装了多种 Windows 版本,但是 FLOSS 世界才是我的家(LCTT 译注:FLOSS —— Free/Libre and Open Source Software,自由/开源软件)。现在我只把 Windows 装在虚拟机上,用来玩游戏。
 > 
-> **Tosmarcel**:15岁那年对'编程'这个概念很好奇,然后我开始了哈佛课程'CS50',这个课程要我们安装 Linux 虚拟机用来执行一些命令。当时我问自己为什么 Windows 没有这些命令?于是我 Google 了 Linux,搜索结果出现了 Ubuntu,在安装 Ubuntu。的时候不小心把 Windows 分区给删了。。。当时对 Linux 毫无所知,适应这个系统非常困难。我现在16岁,用 ArchLinux,不想用回 Windows,我爱 ArchLinux。
+> **Tosmarcel**:15岁那年对'编程'这个概念很好奇,然后我开始了哈佛课程'CS50',这个课程要我们安装 Linux 虚拟机用来执行一些命令。当时我问自己为什么 Windows 没有这些命令?于是我 Google 了 Linux,搜索结果出现了 Ubuntu,在安装 Ubuntu 的时候不小心把 Windows 分区给删了。。。当时对 Linux 毫无所知,适应这个系统非常困难。我现在16岁,用 ArchLinux,不想用回 Windows,我爱 ArchLinux。
 > 
 > **Micioonthet**:第一次听说 Linux 是在我5年级的时候,当时去我一朋友家,他的笔记本装的就是 MEPIS(Debian的一个比较老的衍生版),而不是 XP。
 > 
@@ -54,7 +53,7 @@ Linux 越来越流行,很多 OS X 或 Windows 用户都转移到 Linux 阵营
 > 
 > 我13岁那年还没有自己的笔记本电脑,而我另一位朋友总是抱怨他的电脑有多慢,所以我打算把它买下来并修好它。我花了20美元买下了这台装着 Windows Vista 系统、跑满病毒、完全无法使用的惠普笔记本。我不想重装讨厌的 Windows 系统,记得 Linux 是免费的,所以我刻了一张 Ubuntu 14.04 光盘,马上把它装起来,然后我被它的高性能给震精了。
 > 
-> 我的世界(由于它允运行在 JAVA 上,所以当时它是 Linux 下为数不多的几个游戏之一)在 Vista 上只能跑5帧每秒,而在 Ubuntu 上能跑到25帧。
+> “我的世界(Minecraft)”(由于它允许运行在 JAVA 上,所以当时它是 Linux 下为数不多的几个游戏之一)在 Vista 上只能跑5帧每秒,而在 Ubuntu 上能跑到25帧。
 > 
 > 我到现在还会偶尔使用一下那台笔记本,Linux 可不会在乎你的硬件设备有多老。
 > 
@@ -62,9 +61,9 @@ Linux 越来越流行,很多 OS X 或 Windows 用户都转移到 Linux 阵营
 > 
 > **Webtm**:我爹每台电脑都会装多个发行版,有几台是 opensuse 和 Debian,他的个人电脑装的是 Slackware。所以我记得很小的时候一直在玩 debian,但没有投入很多精力,我用了几年的 Windows,然后我爹问我有没有兴趣试试 debian。这是个有趣的经历,在那之后我一直使用 debian。而现在我不用 Linux,转投 freeBSD,5个月了,用得很开心。
 > 
-> 完全控制自己的系统是个很奇妙的体验。开源届有好多酷酷的软件,我认为在自己解决一些问题并且利用这些工具解决其他事情的过程是最有趣的。当然稳定和高效也是吸引我的地方。更不用说它的保密级别了。
+> 完全控制自己的系统是个很奇妙的体验。开源界有好多酷酷的软件,我认为在自己解决一些问题并且利用这些工具解决其他事情的过程是最有趣的。当然稳定和高效也是吸引我的地方。更不用说它的保密级别了。
 > 
-> **Wyronaut**:我今年18,第一次玩 Linux 是13岁,当时玩的 Ubuntu,为啥要碰 Linux?因为我想搭一个'我的世界'的服务器来和小伙伴玩游戏,当时'我的世界'可是个新鲜玩意儿。而搭个私服需要用 Linux 系统。
+> **Wyronaut**:我今年18,第一次玩 Linux 是13岁,当时玩的 Ubuntu,为啥要碰 Linux?因为我想搭一个“我的世界”的服务器来和小伙伴玩游戏,当时“我的世界”可是个新鲜玩意儿。而搭个私服需要用 Linux 系统。
 > 
 > 当时我还是个新手,对着 Linux 的命令行有些傻眼,因为很多东西都要我自己处理。还是多亏了 Google 和维基,我成功地在多台老 PC 上部署了一些简单的服务器,那些早已无人问津的老古董机器又能发挥余热了。
 > 
@@ -90,7 +89,7 @@ Linux 越来越流行,很多 OS X 或 Windows 用户都转移到 Linux 阵营
 > 
 > 老实说我对电脑挺感兴趣的,当我还没接触'自由软件哲学'的时候,我认为 free 是免费的意思。我也不认为命令行界面很让人难以接受,因为我小时候就接触过 DOS 系统。
 > 
-> 我第一个发行版是 Mandrake,在我11岁还是12岁那年我把家里的电脑弄得乱七八糟,然后我一直折腾那台电脑,试着让我技的技能提升一个台阶。现在我在一家公司全职使用 Linux。(请允许我耸个肩)。
+> 我第一个发行版是 Mandrake,在我11岁还是12岁那年我把家里的电脑弄得乱七八糟,然后我一直折腾那台电脑,试着让我自己的技能提升一个台阶。现在我在一家公司全职使用 Linux。(请允许我耸个肩)。
 > 
 > **Matto**:我的电脑是旧货市场淘回来的,装 XP,跑得慢,于是我想换个系统。Google 了一下,发现 Ubuntu。当年我15、6岁,现在23了,就职的公司内部使用 Linux。
 > 
@@ -133,7 +132,7 @@ via: http://www.itworld.com/article/2972587/linux/why-did-you-start-using-linux.
 
 作者:[Jim Lynch][a]
 译者:[bazz2](https://github.com/bazz2)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
 

From 86e9efdc55bf9af872ee7ecccb5b5b3f2bcd516a Mon Sep 17 00:00:00 2001
From: zpl 
Date: Sat, 19 Mar 2016 12:38:26 +0800
Subject: [PATCH 288/582] [translating] 20160314 15 podcasts for FOSS fans

---
 sources/tech/20160314 15 podcasts for FOSS fans | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sources/tech/20160314 15 podcasts for FOSS fans b/sources/tech/20160314 15 podcasts for FOSS fans
index 222861427e..eae53102ad 100644
--- a/sources/tech/20160314 15 podcasts for FOSS fans	
+++ b/sources/tech/20160314 15 podcasts for FOSS fans	
@@ -1,3 +1,4 @@
+zpl1025
 15 podcasts for FOSS fans
 =============================
 

From 18ef3edd4cd033b0b27b199e272976a30a87c33b Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Sat, 19 Mar 2016 21:59:34 +0800
Subject: [PATCH 289/582] =?UTF-8?q?20160319-1=20=E9=80=89=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...buntu Core 16.04 LTS and Raspberry Pi 3.md | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md

diff --git a/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md b/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md
new file mode 100644
index 0000000000..a03f9dd355
--- /dev/null
+++ b/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md	
@@ -0,0 +1,35 @@
+ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3
+===============================================================================
+
+keyword : ownCloud Pi , Snappy Ubuntu Core 16.04 LTS , Raspberry Pi 3 , Western Digital , PiDrive
+
+### We [reported][1] last year that ownCloud was in talks with WD (Western Digital) Labs to help them develop a community project that would bring a self-hosted cloud storage device in users' homes.
+
+The idea behind the self-hosted device, which will be powered by the ownCloud Server software, was to combine a Raspberry Pi single-board computer with a Western Digital disk drive into an easy-to-install and out-of-the-box container.
+
+Well, it looks like the community's response was more than positive, and many great proposals and ideas were received for the ownCloud Pi project. And today, they have even greater news for us, as the first images are available for [download][2].
+
+The ownCloud Pi images are based on the latest Snappy Ubuntu Core 16.04 LTS operating system, which was designed by Canonical for embedded and IoT (Internet of Things) devices, as well as the new Raspberry Pi 3 Model B SBC.
+
+"We’re looking for help in the ownCloud, Ubuntu, Raspberry Pi and WD Labs communities for help to test and improve them and will be able to make available a first batch of about 30 devices at the end of next week," say the ownCloud developers in today's [announcement][3].
+
+### Current obstacles, challenges, and the road ahead
+
+At the moment, the team is working hard on finishing their ownCloud Pi device solution based on the Xenial Xerus edition of Snappy Ubuntu Core. Thus, the new 64-bit Raspberry Pi 3 computer helps them with the obstacles encountered during previous tests running on the Raspberry Pi 2 board, such as support for files larger than 2GB.
+
+Therefore, it looks like the decision was taken, and the final ownCloud Pi device, which should be available as a preview later this spring, will be powered by the Raspberry Pi 3 single-board computer. In the coming days, we should be able to purchase the first production-ready version of the ownCloud Pi device.
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/owncloud-pi-device-to-run-on-snappy-ubuntu-core-16-04-lts-and-raspberry-pi-3-501904.shtml
+
+作者:[Marius Nestor][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: http://news.softpedia.com/editors/browse/marius-nestor
+[1]: http://news.softpedia.com/news/owncloud-partnerships-with-wd-to-bring-self-hosted-cloud-storage-in-users-homes-497512.shtml
+[2]: http://people.canonical.com/~kyrofa/owncloud-pi/
+[3]: https://owncloud.org/blog/wd-labs-raspberry-pi-owncloud-and-ubuntu/

From 981785b0124e390c18d1cf6183bda0da4906a26b Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Sat, 19 Mar 2016 22:06:32 +0800
Subject: [PATCH 290/582] =?UTF-8?q?20160319-2=20=E9=80=89=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...nced-Based-on-Debian-GNU-Linux 8 Jessie.md | 40 +++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 sources/news/20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md

diff --git a/sources/news/20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md b/sources/news/20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md
new file mode 100644
index 0000000000..059ea0cfe1
--- /dev/null
+++ b/sources/news/20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md	
@@ -0,0 +1,40 @@
+Robolinux 8.4 LTS "Raptor" Series Announced, Based on Debian GNU/Linux 8 Jessie
+====================================================================================
+
+keyword : Robolinux 8.4 LTS , Robolinux 8.4 Cinnamon , Robolinux 8.4 MATE , Robolinux 8.4 Xfce , Debian 8
+
+> It runs Windows 7 and 10 virus-free in stealth VMs
+
+### The developer of the Robolinux project has announced the release of his latest Robolinux 8.4 LTS "Raptor" series of Debian-based operating systems, which includes numerous software updates and performance improvements.
+
+Usually, the Robolinux developer [announces][1] only one edition at a time for a new major release of the GNU/Linux distribution, but today's announcement includes details about the availability for download of the Robolinux 8.4 LTS Cinnamon, MATE, Xfce, and LXDE editions, as both 64-bit and 32-bit variants.
+
+The long-term supported Robolinux 8.4 series of distributions has been in development for the last three and a half months, during which it has been synchronized with the upstream Debian GNU/Linux 8 (Jessie) repositories, thus adding all the latest security patches and software updates.
+
+"Three and a half months of hard work went into finding every way possible to optimize and speed up our series 8 Robolinux 'Raptor' operating systems," say the devs. "The result is we have significantly decreased the time it takes to load applications, bootup and shutdown all four of our upgraded Robolinux Raptor series versions.
+
+### The Raptor series is supported until 2020
+
+Powered by Debian GNU/Linux 8's Linux 3.16 kernel, all the Robolinux 8.4 LTS "Raptor" editions have been rebased on the current stable Debian 8.3 source code, including over 180 upstream security and application updates. As Google ended support for the 32-bit version of its Google Chrome web browser, Robolinux now switches to Chromium.
+
+Other important software updates include the Mozilla Firefox 45.0 web browser, Mozilla Thunderbird 38.7.0 email and news client, Tor Browser 5.5, and VirtualBox 5.0. As usual, all Robolinux flavors come with numerous popular apps, including but not limited to Google Earth, Skype, Tor, I2P, Kazam, and a collection of useful security and privacy apps.
+
+Robolinux is a distribution targeted at new Linux users, so as expected, it includes the stealth virtual machine technology that lets them run the Microsoft Windows XP, Windows 7, and Windows 10 operating systems virus-free. Best of all, the Robolinux 8 "Raptor" LTS series is supported with software updates and security patches until the year 2020.
+
+While newcomers can [download the Robolinux 8.4 LTS Cinnamon, MATE][2], [Xfce][3], and [LXDE][4] editions right now from our website, current Robolinux 8 users can upgrade to the 8.4 release using the built-in "Robolinux Auto Upgrade" button in the Applications Menu.
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/robolinux-8-4-lts-raptor-series-announced-based-on-debian-gnu-linux-8-jessie-501899.shtml
+
+作者:[Marius Nestor][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: http://news.softpedia.com/editors/browse/marius-nestor
+[1]: https://robolinux.org/downloads/v8.4-details.html
+[2]: http://linux.softpedia.com/get/System/Operating-Systems/Linux-Distributions/Robolinux-102332.shtml
+[3]: http://linux.softpedia.com/get/Linux-Distributions/Robolinux-Xfce-103540.shtml
+[4]: http://linux.softpedia.com/get/Linux-Distributions/Robolinux-LXDE-103691.shtml

From c8cd642ba9462897037c74de0c6c14f7b6f6259d Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Sat, 19 Mar 2016 22:16:56 +0800
Subject: [PATCH 291/582] Rename
 20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux
 8 Jessie.md to 20160318
 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8
 Jessie.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

修改文件名
---
 ...Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename sources/news/{20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md => 20160318 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md} (100%)

diff --git a/sources/news/20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md b/sources/news/20160318 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md
similarity index 100%
rename from sources/news/20160318-Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md
rename to sources/news/20160318 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md

From c771d5d10be54c611b0e95945ecdd6c7cf6d698f Mon Sep 17 00:00:00 2001
From: wxy 
Date: Sun, 20 Mar 2016 20:38:23 +0800
Subject: [PATCH 292/582] PUB:20160220 Manjaro Linux Is Coming To ARM With
 Manjaro-ARM

@name1e5s
---
 ...Linux Is Coming To ARM With Manjaro-ARM.md | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)
 rename {translated/tech => published}/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md (60%)

diff --git a/translated/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md b/published/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md
similarity index 60%
rename from translated/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md
rename to published/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md
index 80670c5c7b..5b8ea027c9 100644
--- a/translated/tech/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md	
+++ b/published/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md	
@@ -3,19 +3,24 @@ Manjaro Linux 即将推出支持 ARM 处理器的 Manjaro-ARM
 
 ![](http://itsfoss.com/wp-content/uploads/2016/02/manjaro-arm.jpg)
 
-最近,Manjaro 的开发者为 ARM 处理器发布了一个[ alpha 版本](https://manjaro.github.io/Manjaro-ARM-launched/)。这是这个基于 Arhclinux 的发行版的一大进步,在此之前,它只能在 32 位或者 64 位的个人电脑上运行。
+最近,Manjaro 的开发者为 ARM 处理器发布了一个 [alpha 版本](https://manjaro.github.io/Manjaro-ARM-launched/)。这是这个基于 Archlinux 的发行版的一大进步,在此之前,它只能在 32 位或者 64 位的个人电脑上运行。
 
-根据公告, “[Manjaro Arm](http://manjaro-arm.org/) 项目致力于将简洁可定制的 Manjaro 移植到使用[ ARM 处理器](https://www.arm.com/)的设备上去。这些设备的数量正在上涨并且应用范围广泛。这些设备中最出名的是树莓派和 BeagleBoard“。目前 Alpha 版本仅支持树莓派2,但是毫无疑问,支持的设备数量会随时间增长。
+根据公告, “[Manjaro Arm](http://manjaro-arm.org/) 项目致力于将简洁可定制的 Manjaro 移植到使用 [ARM 处理器](https://www.arm.com/)的设备上去。这些设备的数量越来越多并且应用范围广泛。这些设备中最出名的是树莓派和 BeagleBoard“。目前 Alpha 版本仅支持树莓派2,但是毫无疑问,支持的设备数量会随时间增长。
 
 现在这个项目的开发者有 dodgejcr, Torei, Strit, 和 Ringo32。他们正在寻求更多的人来帮助这个项目发展。除了开发者,[他们还在寻找维护者,论坛版主,管理员,以及设计师](http://manjaro-arm.org/forums/website/looking-for-contributors/?PHPSESSID=876d5c11400e9c25eb727e9965300a9a)。
 
-Manjaro-ARM 将会有四个版本。媒体版本将可以运行Kodi并且允许你很少配置就能创建一个媒体中心。服务器版将会预先配置好 SSH,FTP,LAMP ,你能把你的 ARM 设备当作服务器使用。基本版是一个桌面版本,自带一个 XFCE 桌面。如果你想自己从头折腾系统的话你可以选择迷你版,它没有任何预先配置的包,仅仅包含一个 root 用户。
+Manjaro-ARM 将会有四个版本:
 
-## 我的想法
+- 媒体版本将可以运行 Kodi 并且允许你用很少的配置就能创建一个媒体中心。
+- 服务器版将会预先配置好 SSH,FTP,LAMP ,你能把你的 ARM 设备当作服务器使用。
+- 基本版是一个桌面版本,自带一个 XFCE 桌面。
+- 如果你想自己从头折腾系统的话你可以选择迷你版,它没有任何预先配置的软件包,仅仅包含一个 root 用户。
 
-作为一个 Manjaro 的粉丝(我在 4 个电脑上都安了 Manjaro),听说他们分支出一个 ARM 版我很高兴。 ARM 处理器被用到了越来越多的设备当中。如同评论员 Robert Cringely 所说, [设备制造商开始注意到昂贵的因特尔或者AMD处理器之外的便宜的多的ARM处理器](http://www.cringely.com/2016/01/21/prediction-8-intel-starts-to-become-irrelevent/)。甚至微软(憋打我)都开始考虑将自己的一些软件移植到 ARM 处理器上去。随着 ARM 处理器设备数量的增多,Manjaro 将会带给用户良好的体验。
+### 我的想法
 
-对此,你怎样看待?你希望更多的发行版支持 ARM 吗?或者你认为 ARM 将是昙花一现?在评论区告诉我们。
+作为一个 Manjaro 的粉丝(我在 4 个电脑上都安了 Manjaro),听说他们分支出一个 ARM 版我很高兴。 ARM 处理器被用到了越来越多的设备当中。如同评论员 Robert Cringely 所说, [设备制造商开始注意到昂贵的因特尔、AMD 处理器之外的便宜的多的 ARM 处理器](http://www.cringely.com/2016/01/21/prediction-8-intel-starts-to-become-irrelevent/)。甚至微软(别打我)都开始考虑将自己的一些软件移植到 ARM 处理器上去。随着 ARM 处理器设备数量的增多,Manjaro 将会带给用户良好的体验。
+
+对此,你怎样看?你希望更多的发行版支持 ARM 吗?或者你认为 ARM 将是昙花一现?在评论区告诉我们。
 
 ------------------------------------------------------------------------------
 
@@ -23,7 +28,7 @@ via: http://itsfoss.com/manjaro-linux-arm/
 
 作者:[JOHN PAUL][a]
 译者:[name1e5s](https://github.com/name1e5s)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
 

From 35c084e15ec66e477ae98138143539a9e5bcf7c6 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Sun, 20 Mar 2016 21:15:32 +0800
Subject: [PATCH 293/582] PUB:20151125 20 Years of GIMP Evolution--Step by Step

@GHLandy
---
 ...0 Years of GIMP Evolution--Step by Step.md | 96 +++++++++----------
 1 file changed, 45 insertions(+), 51 deletions(-)
 rename {translated/talk => published}/20151125 20 Years of GIMP Evolution--Step by Step.md (64%)

diff --git a/translated/talk/20151125 20 Years of GIMP Evolution--Step by Step.md b/published/20151125 20 Years of GIMP Evolution--Step by Step.md
similarity index 64%
rename from translated/talk/20151125 20 Years of GIMP Evolution--Step by Step.md
rename to published/20151125 20 Years of GIMP Evolution--Step by Step.md
index 20acfc1ee8..6da552aa39 100644
--- a/translated/talk/20151125 20 Years of GIMP Evolution--Step by Step.md	
+++ b/published/20151125 20 Years of GIMP Evolution--Step by Step.md	
@@ -1,57 +1,51 @@
-GHLandy Translated
-
 GIMP 过去的 20 年:一点一滴的进步
 ================================================================================
 注:youtube 视频
 
 
-[GIMP][1](GNU 图像处理程序)—— 一流的开源免费图像处理程序。加州大学伯克利分校的 Peter Mattis 和 Spencer Kimball 最早在 1995 年的时候就进行了该程序的开发。到了 1997 年,该程序成为了 [GNU Project][2] 官方的一部分,并正式更名为 GIMP。时至今日,GIMP 已经成为了最好的图像编辑器之一,并有最受欢迎的 “GIMP vs Photoshop” 之争。
+[GIMP][1](GNU 图像处理程序(GNU Image Manipulation Program))—— 一流的开源自由的图像处理程序。加州大学伯克利分校的 Peter Mattis 和 Spencer Kimball 早在 1995 年的时候开始了该程序的开发。到了 1997 年,该程序成为了 [GNU Project][2] 官方的一部分,并正式更名为 GIMP。时至今日,GIMP 已经成为了最好的图像编辑器之一,并有经常有 “GIMP vs Photoshop” 之争。
 
-1995 年 11 月 21 日,首版发布:
+### 1995 年 11 月 21 日,首版发布###
 
-> 发布者: Peter Mattis
-> 
-> 发布主题: ANNOUNCE: The GIMP
-> 
-> 日期: 1995-11-21
-> 
-> 消息ID: <48s543$r7b@agate.berkeley.edu>
-> 
-> 新闻组: comp.os.linux.development.apps,comp.os.linux.misc,comp.windows.x.apps
-> 
-> GIMP:通用图像处理程序
-> ------------------------------------------------
-> 
-> GIMP 是为各种图像编辑操作提供一个直观的图形界面而设计的。
-> 
-> 以下是 GIMP 的主要功能介绍:
-> 
->  图像查看
->  -------------
-> 
->    *  支持 8 位,15 位,16 位和 24 位颜色
->    *  8 位色显示的图像序列的稳定算法
->    *  以 RGB 色、灰度和索引色模式查看图像
->    *  同时编辑多个图像
->    *  实时缩放和全图查看
->    *  支持 GIF、JPEG、PNG、TIFF 和 XPM 格式
-> 
->  图像编辑
->  -------------
-> 
->    *  选区工具:包括矩形、椭圆、自由、模糊、贝尔赛曲线以及智能
->    *  变换工具:包括旋转、缩放、剪切和翻转
->    *  绘画工具:包括油漆桶、笔刷、喷枪、克隆、卷积、混合和文本
->    *  效果滤镜:如模糊和边缘检测
->    *  通道和颜色操作:叠加、反相和分解
->    *  组件功能:允许你方便的添加新的文件格式和效果滤镜
->    *  多步撤销/重做功能
+```
+From: Peter Mattis
+Subject: ANNOUNCE: The GIMP
+Date: 1995-11-21
+Message-ID: <48s543$r7b@agate.berkeley.edu>
+Newsgroups: comp.os.linux.development.apps,comp.os.linux.misc,comp.windows.x.apps
 
-1996 年,GIMP 0.54 版
+GIMP:通用图像处理程序
+------------------------------------------------
+
+GIMP 是为各种图像编辑操作提供一个直观的图形界面而设计的。
+以下是 GIMP 的主要功能介绍:
+ 图像查看
+ -------------
+
+   *  支持 8 位,15 位,16 位和 24 位颜色
+   *  8 位色显示图像的排序和 Floyd-Steinberg 抖动算法
+   *  以 RGB 色、灰度和索引色模式查看图像
+   *  同时编辑多个图像
+   *  实时缩放和全图查看
+   *  支持 GIF、JPEG、PNG、TIFF 和 XPM 格式
+
+ 图像编辑
+ -------------
+
+   *  选区工具:包括矩形、椭圆、自由、模糊、贝尔赛曲线以及智能
+   *  变换工具:包括旋转、缩放、剪切和翻转
+   *  绘画工具:包括油漆桶、笔刷、喷枪、克隆、卷积、混合和文本
+   *  效果滤镜:如模糊和边缘检测
+   *  通道和颜色操作:叠加、反相和分解
+   *  组件功能:允许你方便的添加新的文件格式和效果滤镜
+   *  多步撤销/重做功能
+```
+
+### 1996 年,GIMP 0.54 版 ###
 
 ![](https://github.com/paulcarroty/Articles/raw/master/GIMP%20History/054.png)
 
-GIMP 0.54 版需要具备 X11 显示、X-server 以及 Motif 1.2 微件,支持 8 位、15 位、16 位和 24 位的颜色深度和灰度,支持 GIF、JPEG、PNG、TIFF 和 XPM 图像格式。
+GIMP 0.54 版需要具备 X11 显示、X-server 以及 Motif 1.2 组件,支持 8 位、15 位、16 位和 24 位的颜色深度和灰度,支持 GIF、JPEG、PNG、TIFF 和 XPM 图像格式。
 
 基本功能:具备矩形、椭圆、自由、模糊、贝塞尔曲线和智能等选择工具,旋转、缩放、剪切、克隆、混合和翻转等变换工具。
 
@@ -66,7 +60,7 @@ GIMP 0.54 版可以在  Linux、HP-UX、Solaris 和 SGI IRIX 中运行。
 这只是一个开发版本,并非面向用户发布的。GIMP 有了新的工具包——GDK(GIMP Drawing Kit,GIMP 绘图工具)和 GTK(GIMP Toolkit,GIMP 工具包),并弃用 Motif。GIMP 工具包随后也发展成为了 GTK+ 跨平台的微件工具包。新特性:
 
 - 基本的图层功能
-- 子像素采集
+- 子像素取样
 - 笔刷间距
 - 改进剂喷枪功能
 - 绘制模式
@@ -75,7 +69,7 @@ GIMP 0.54 版可以在  Linux、HP-UX、Solaris 和 SGI IRIX 中运行。
 
 ![](https://github.com/paulcarroty/Articles/raw/master/GIMP%20History/099.png)
 
-从 0.99 版本开始,GIMP 有了宏脚本的支持。GTK 及 GTK 功能增强版正式更名为 GTK+。其他更新:
+从 0.99 版本开始,GIMP 有了宏脚本的支持。GTK 及 GDK 功能增强版正式更名为 GTK+。其他更新:
 
 - 支持大体积图像(大于 100M)
 - 新增原生格式 – XCF
@@ -87,8 +81,8 @@ GIMP 0.54 版可以在  Linux、HP-UX、Solaris 和 SGI IRIX 中运行。
 
 GIMP 和 GTK+ 开始分为两个不同的项目。GIMP 官网进行重构,包含新教程、组件和文档。新特性:
 
-- 基于瓦片式的内存管理
-- 组件 API 做了较大改变
+- 基于瓦片式(tile)的内存管理
+- 组件 API 做了大量改变
 - XFC 格式现在支持图层、导航和选择
 - web 界面
 - 在线图像生成
@@ -98,7 +92,7 @@ GIMP 和 GTK+ 开始分为两个不同的项目。GIMP 官网进行重构,包
 新特性:
 
 - 进行了非英文语言翻译
-- 修复 GTK+ 和 GIMP 中的大量bug
+- 修复 GTK+ 和 GIMP 中的大量 bug
 - 增加大量组件
 - 图像映射
 - 新工具:调整大小、测量、加亮、燃烧效果、颜色吸管和翻转等。
@@ -106,7 +100,7 @@ GIMP 和 GTK+ 开始分为两个不同的项目。GIMP 官网进行重构,包
 - 保存前可以进行图像预览
 - 按比例缩放的笔刷进行预览
 - 通过路径进行递归选择
-- 新的窗口导航
+- 新的导航窗口
 - 支持图像拖拽
 - 支持水印
 
@@ -138,7 +132,7 @@ GIMP 和 GTK+ 开始分为两个不同的项目。GIMP 官网进行重构,包
 
 - 更新了图形界面
 - 新的选择工具
-- 继承了 GEGL (GEneric Graphics Library,通用图形库)
+- 集成了 GEGL (GEneric Graphics Library,通用图形库)
 - 为 MDI 行为实现了实用程序窗口提示
 
 ### 2012 年,GIMP 2.8 版 ###
@@ -160,7 +154,7 @@ via: https://tlhp.cf/20-years-of-gimp-evolution/
 
 作者:[Pavlo Rudyi][a]
 译者:[GHLandy](https://github.com/GHLandy)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From c6f5b0ce5a5044d335198cd515a3b32597cdadb3 Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Sun, 20 Mar 2016 23:13:22 +0800
Subject: [PATCH 294/582] translating

---
 ...Raspberry Pi projects for the classroom.md | 35 ++++++++++++++++---
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md
index b1bc89b2a0..b7455d11f7 100644
--- a/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md	
+++ b/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md	
@@ -3,57 +3,82 @@ ezio
 5 great Raspberry Pi projects for the classroom
 =====================================================
 
+
+5 个很适合在课堂上演示的树莓派项目
+=====================================================
+
 ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png?itok=fSUS0fIt)
 
-### 1. Minecraft Pi
+### 1. 我的世界 Pi
 
 ![](https://opensource.com/sites/default/files/lava.png)
 >Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1].
 
 Minecraft is the favorite game of pretty much every teenager in the world—and it's one of the most creative games ever to capture the attention of young people. The version that comes with every Raspberry Pi is not only a creative thinking building game, but comes with a programming interface allowing for additional interaction with the Minecraft world through Python code.
 
+我的世界是世界上很多青少年最喜欢的一个游戏,而且他也是目前最能激发年轻人创造力的一款游戏。这个树莓派版上自带的我的世界不仅仅是一个具有创造性的建筑游戏,他还是一个具有编程接口、可以通过 Python 与之交互的版本。
+
 Minecraft: Pi Edition is a great way for teachers to engage students with problem solving and writing code to perform tasks. You can use the Python API to build a house and have it follow you wherever you go, build a bridge wherever you walk, make it rain lava, show the temperature in the sky, and anything else your imagination can create.
 
+我的世界:Pi 版对于老师来说是一个非常好的教授学生解决问题和编写代码完成任务的途径。你可以使用 Python API 创建一个房子,并且一直跟随这你的脚步移动,当你需要桥梁的时候给你建造一座桥,让老天呀下雨,显示天空的温度,以及其它你可以想象到的一切东西。
+
 Read more in "[Getting Started with Minecraft Pi][2]."
 
-### 2. Reaction game and traffic lights
+详情请见 "[Getting Started with Minecraft Pi][2]."
+
+### 2. 反应游戏和交通灯 Reaction game and traffic lights
 
 ![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg)
 >Courtesy of [Low Voltage Labs][3]. [CC BY-SA 4.0][1].
 
 It's really easy to get started with physical computing on Raspberry Pi—just connect up LEDs and buttons to the GPIO pins, and with a few lines of code you can turn lights on and control things with button presses. Once you know the code to do the basics, it's down to your imagination as to what you do next!
 
+使用树莓派可以很轻松的进行物理计算——只需要连接几个 LED 和按钮到 开发板上的 GPIO 接口,再用几行代码你就可以按下按钮来开灯。一旦你指导了如何使用代码来做这些基本的东西,接下来就可以根据你的想象来做其它事情了。
+
 If you know how to flash one light, you can flash three. Pick out three LEDs in traffic light colors and you can code the traffic light sequence. If you know how to use a button to a trigger an event, then you have a pedestrian crossing! Also look out for great pre-built traffic light add-ons like [PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6], and more.
 
+如果你知道如何让一个灯闪烁,你就可以让三个灯开始闪烁。挑选三个和交通灯一样颜色的 LED 灯,然后编写控制交通灯的代码。如果你知道如何使用按钮触发实践,那么你就可以模拟行人过马路。同时你可以参考其它已经完成的交通灯附件,比如[PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6],等等。
+
 It's not always about the code—this can be used as an exercise in understanding how real world systems are devised. Computational thinking is a useful skill in any walk of life.
 
+代码并不是全部——这些联系只是让你理解真是世界里使如何完成这些事的。计算思维是一个在你一生中都会很有用的技能。
+
 ![](https://opensource.com/sites/default/files/reaction-game.png)
 >Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1].
 
 Next, try wiring up two buttons and an LED and making a two-player reaction game—let the light come on after a random amount of time and see who can press the button first!
 
+接下来试着接通两个按钮和 LED 灯的电源,实现一个反应游戏 —— 让 LED 灯随机的点亮,然后看是最先按下按钮。
+
 To learn more, check out [GPIO Zero recipes][7]. Everything you need is in [CamJam EduKit 1][8].
 
-### 3. Sense HAT Pixel Pet
+要想了解更多可以看看 [GPIO Zero recipes][7]。你所需要的资料都可以在 [CamJam EduKit 1][8] 找到。
+
+### 3. 电子宠物 Sense HAT Pixel Pet
 
 The Astro Pi—an augmented Raspberry Pi—is going to space this December, but you haven't missed your chance to get your hands on the hardware. The Sense HAT is the sensor board add-on used in the Astro Pi mission and it's available for anyone to buy. You can use it for data collection, science experiments, games and more. Watch this Gurl Geek Diaries video from Raspberry Pi's Carrie Anne for a great way to get started—by bringing to life an animated pixel pet of your own design on the Sense HAT display:
 
+Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是你并没有错过亲手把玩这个硬件的机会。Sense HAT 是 Astro Pi 的一个传感器扩展板,现在已经开放购买了。你可以使用它来进行数据搜集,科学实验,游戏和其它很多事。可以看看下面树莓派的 Carrie Anne 拍摄的 Gurl Geek Diaries 的视频,里面演示了一种很棒的入门途径——给生活添加一个你自己创造的生动的像素宠物:
+
 [video](https://youtu.be/gfRDFvEVz-w)
 
 >Learn more in "[Exploring the Sense HAT][9]."
+>详见 "[探索 Sense HAT][9]."
 
-### 4. Infrared bird box
+### 4. 红外鸟笼 Infrared bird box
 
 ![](https://opensource.com/sites/default/files/ir-bird-box.png)
 >Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1].
 
 A great exercise for the whole class to get involved with—place a Raspberry Pi and the NoIR camera module inside a bird box along with some infra-red lights so you can see in the dark, then stream video from the Pi over the network or on the internet. Wait for birds to nest and you can observe them without disturbing them in their habitat.
 
+
+
 Learn all about infrared and the light spectrum, and how to adjust the camera focus and control the camera in software.
 
 Learn more in "[Make an infrared bird box][10]."
 
-### 5. Robotics
+### 5. 机器人 Robotics
 
 ![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg)
 >Courtesy of Low Voltage Labs. [CC BY-SA 4.0][1].

From 9bc3cd8d9330742394c36f909567de323277e742 Mon Sep 17 00:00:00 2001
From: geekpi 
Date: Mon, 21 Mar 2016 10:01:12 +0800
Subject: [PATCH 295/582] translating

---
 ...to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md b/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md
index a03f9dd355..b9c93cc1cd 100644
--- a/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md	
+++ b/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md	
@@ -1,3 +1,5 @@
+----translating----
+
 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3
 ===============================================================================
 

From b34b5e74da9f6e2de2b7778e8d9eb4dba88b9060 Mon Sep 17 00:00:00 2001
From: geekpi 
Date: Mon, 21 Mar 2016 10:31:28 +0800
Subject: [PATCH 296/582] translated

---
 ...buntu Core 16.04 LTS and Raspberry Pi 3.md | 37 -------------------
 ...buntu Core 16.04 LTS and Raspberry Pi 3.md | 37 +++++++++++++++++++
 2 files changed, 37 insertions(+), 37 deletions(-)
 delete mode 100644 sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md
 create mode 100644 translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md

diff --git a/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md b/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md
deleted file mode 100644
index b9c93cc1cd..0000000000
--- a/sources/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md	
+++ /dev/null
@@ -1,37 +0,0 @@
-----translating----
-
-ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3
-===============================================================================
-
-keyword : ownCloud Pi , Snappy Ubuntu Core 16.04 LTS , Raspberry Pi 3 , Western Digital , PiDrive
-
-### We [reported][1] last year that ownCloud was in talks with WD (Western Digital) Labs to help them develop a community project that would bring a self-hosted cloud storage device in users' homes.
-
-The idea behind the self-hosted device, which will be powered by the ownCloud Server software, was to combine a Raspberry Pi single-board computer with a Western Digital disk drive into an easy-to-install and out-of-the-box container.
-
-Well, it looks like the community's response was more than positive, and many great proposals and ideas were received for the ownCloud Pi project. And today, they have even greater news for us, as the first images are available for [download][2].
-
-The ownCloud Pi images are based on the latest Snappy Ubuntu Core 16.04 LTS operating system, which was designed by Canonical for embedded and IoT (Internet of Things) devices, as well as the new Raspberry Pi 3 Model B SBC.
-
-"We’re looking for help in the ownCloud, Ubuntu, Raspberry Pi and WD Labs communities for help to test and improve them and will be able to make available a first batch of about 30 devices at the end of next week," say the ownCloud developers in today's [announcement][3].
-
-### Current obstacles, challenges, and the road ahead
-
-At the moment, the team is working hard on finishing their ownCloud Pi device solution based on the Xenial Xerus edition of Snappy Ubuntu Core. Thus, the new 64-bit Raspberry Pi 3 computer helps them with the obstacles encountered during previous tests running on the Raspberry Pi 2 board, such as support for files larger than 2GB.
-
-Therefore, it looks like the decision was taken, and the final ownCloud Pi device, which should be available as a preview later this spring, will be powered by the Raspberry Pi 3 single-board computer. In the coming days, we should be able to purchase the first production-ready version of the ownCloud Pi device.
-
---------------------------------------------------------------------------------
-
-via: http://news.softpedia.com/news/owncloud-pi-device-to-run-on-snappy-ubuntu-core-16-04-lts-and-raspberry-pi-3-501904.shtml
-
-作者:[Marius Nestor][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: http://news.softpedia.com/editors/browse/marius-nestor
-[1]: http://news.softpedia.com/news/owncloud-partnerships-with-wd-to-bring-self-hosted-cloud-storage-in-users-homes-497512.shtml
-[2]: http://people.canonical.com/~kyrofa/owncloud-pi/
-[3]: https://owncloud.org/blog/wd-labs-raspberry-pi-owncloud-and-ubuntu/
diff --git a/translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md b/translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md
new file mode 100644
index 0000000000..7b65226250
--- /dev/null
+++ b/translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md	
@@ -0,0 +1,37 @@
+ownCloud Pi设备将在Snappy Ubuntu Core 16.04 LTS及树莓派3中运行
+===============================================================================
+
+关键词 : ownCloud Pi , Snappy Ubuntu Core 16.04 LTS , Raspberry Pi 3 , Western Digital , PiDrive
+
+### 我们去年[报道了][1] ownCloud正与西部数据(ownCloud)实验室交谈帮助他们开发一个社区项目,可以在家自托管的云存储设备。
+
+自托管设备背后的理念,是由ownCloud服务端软件承载的,它结合了树莓派和西数硬盘到一个易安装和开箱即用的容器中。
+
+社区的反应看上去很积极,ownCloud Pi收到了许多好的提议和点子。今天,我们收到了一个更好的消息,首个镜像可以[下载][2]了。
+
+ownCloud Pi基于最新的Snappy Ubuntu Core 16.04 LTS系统,它由Canonical为嵌入式和IoT(Internet of Things)及新的树莓派3 Model B设计。
+
+ownCloud的开发者在今天的[声明][3]中称:“我们正在寻求ownCloud、Ubuntu、树莓派和西数实验室的帮助来帮助测试和提高它们,并且可以在下周发布首批30台设备”。
+
+### 目前的阻碍、挑战及前进的路
+
+目前团队正致力于在基于Xenial Xerus版本的Snappy Ubuntu内核上完成他们的ownCloud Pi设备方案。那么,新的64位树莓派3可以帮助它们克服之前在树莓派2上遇到的阻碍,比如支持大于2GB的文件。
+
+由此看来决定已经有了,最终的ownCloud Pi将在今年春天发布预览版,它将会在树莓派3上运行。之后,我们应该就可以购买首批生产就绪版本的ownCloud Pi设备了。
+
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/owncloud-pi-device-to-run-on-snappy-ubuntu-core-16-04-lts-and-raspberry-pi-3-501904.shtml
+
+作者:[Marius Nestor][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: http://news.softpedia.com/editors/browse/marius-nestor
+[1]: http://news.softpedia.com/news/owncloud-partnerships-with-wd-to-bring-self-hosted-cloud-storage-in-users-homes-497512.shtml
+[2]: http://people.canonical.com/~kyrofa/owncloud-pi/
+[3]: https://owncloud.org/blog/wd-labs-raspberry-pi-owncloud-and-ubuntu/
+
+

From 576947f4094384253a7ce4dbd9291f10710a7e03 Mon Sep 17 00:00:00 2001
From: miaolin 
Date: Mon, 21 Mar 2016 20:56:36 +0800
Subject: [PATCH 297/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=BA=86=E4=B8=80?=
 =?UTF-8?q?=E9=83=A8=E5=88=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

别回收,这两天完成
---
 ... Getting to Know Linux File Permissions.md | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/sources/tech/20160218 Getting to Know Linux File Permissions.md b/sources/tech/20160218 Getting to Know Linux File Permissions.md
index 816f499e36..be48dbbe5a 100644
--- a/sources/tech/20160218 Getting to Know Linux File Permissions.md	
+++ b/sources/tech/20160218 Getting to Know Linux File Permissions.md	
@@ -1,28 +1,39 @@
 ynmlml translating 
 Getting to Know Linux File Permissions
 ==========================================
-
+初识Linux文件系统
+==========================================
 ![](http://www.linux.com/images/stories/66866/files_a.png)
 
 One of the most basic tasks in Linux is setting file permissions. Understanding how this is done should be considered a must-know, first step in your travels through the Linux ecosystem. As you might expect, such a fundamental issue within the operating environment hasn’t changed much over the years. In fact, the Linux file permission system is taken directly from the UNIX file permission (and even uses many of the same tools).
+在Linux中最基本的任务就是设置文件权限。理解如何实现是你进入LInux世界的第一步。如您所料,这一基本操作在类UNIX操作系统中大同小异。实际上,Linux文件权限系统就直接来取自UNIX文件权限(甚至使用许多相同的工具)。
 
 But, don’t think for a second that understanding file permissions is something you’ll wind up having to spend days and days studying...it’s actually quite simple. Let’s walk through what you need to know and how to put it all together.
+但不要以为在学习第二种文件权限的时候你需要再次一点一点的学起。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。
 
 ## The Bits and Pieces
+##预备小知识
 
 The first thing you need to understand is what file permissions apply to. Effectively what you do is apply a permission to a group. When you break it down, the concept really is that simple. But what are the permissions and what are the groups?
+首先你要知道文件权限有什么用,有效的设置一个组的权限。当你将其分解,那这个概念就真的很简单了。那到底什么是权限什么是组呢。
 
 There are three types of permissions you can apply:
+你可以设置的3种权限:
 
 - read — gives the group permission to read the file (indicated with `r`)
+- 读 — 允许该组读文件(用`r`表示)
 
 - write — gives the group permission to edit the file (indicated with `w`)
+- 写 — 允许该组写文件(用`w`表示)
 
 - execute — gives the group permission to execute (run) the file (indicated with `x`)
+- 执行 — 允许该组执行(运行)文件(用`x`表示)
 
 To better explain how this is applied to a group, you could, for example, give a group permission to read and write to a file, but not execute the file. Or, you could give a group permission to read and execute a file, but not write to a file. You can even give a group full permission to read, write, and execute a file or strip a group of any access to a file by removing all permissions.
+为了更好的解释为何是应用于一个组,你可是尝试允许一个组读和写一个文件,但不能执行。或者你可以允许一个组读和执行一个文件,但不能写。甚至你可以允许一组有读、写、执行全部的权限,也可以删除全部权限。
 
 Now, what are the groups? There are four:
+那什么是分组呢,有以下4个:
 
 - user — the actual owner of the file
 
@@ -31,8 +42,12 @@ Now, what are the groups? There are four:
 - others — other users not in the file’s group
 
 - all — all users
-
+- user — 文件实际的拥有者
+- group — 用户所在的组
+- others — 用户组内的其他用户
+- all — 所有用户
 For the most part, you will only really ever bother with the first three groups. The all group is really only used as a shortcut (I’ll explain later).
+大多数情况,你只会对前3组进行操作,all这一组只是作为快捷方式(稍后我会解释)。
 
 So far so simple, right? Let’s layer on a bit of complexity.
 

From 3e0aeea596e159b2a2a44540d5ac4cd7acd83d41 Mon Sep 17 00:00:00 2001
From: miaolin 
Date: Tue, 22 Mar 2016 20:51:17 +0800
Subject: [PATCH 298/582] Create Getting to Know Linux File Permissions

---
 .../Getting to Know Linux File Permissions    | 160 ++++++++++++++++++
 1 file changed, 160 insertions(+)
 create mode 100644 translated/tech/Getting to Know Linux File Permissions

diff --git a/translated/tech/Getting to Know Linux File Permissions b/translated/tech/Getting to Know Linux File Permissions
new file mode 100644
index 0000000000..fb75030b0a
--- /dev/null
+++ b/translated/tech/Getting to Know Linux File Permissions	
@@ -0,0 +1,160 @@
+初识Linux文件系统
+==========================================
+
+![](http://www.linux.com/images/stories/66866/files_a.png)
+
+在Linux中最基本的任务就是设置文件权限。理解如何实现是你进入LInux世界的第一步。如您所料,这一基本操作在类UNIX操作系统中大同小异。
+实际上,Linux文件权限系统就直接取自UNIX文件权限(甚至使用许多相同的工具)。
+
+但不要以为在学习第二种文件权限系统的时候你需要再次一点一点的学起。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。
+
+##基础概念
+
+首先你要知道文件权限适用于什么,如何有效的设置一个分组的权限。当你将其分解,那这个概念就真的简单多了。那到底什么是权限什么是分组呢。
+
+你可以设置的3种权限:
+
+- 读 — 允许该组读文件(用`r`表示)
+
+- 写 — 允许该组写文件(用`w`表示)
+
+- 执行 — 允许该组执行(运行)文件(用`x`表示)
+
+为了更好的解释为何是应用于一个分组,你可是尝试允许一个分组读和写一个文件,但不能执行。或者你可以允许一个组读和执行一个文件,但不能写。
+甚至你可以允许一组有读、写、执行全部的权限,也可以删除全部权限。
+
+什么是分组呢,有以下4个:
+
+- user — 文件实际的拥有者
+
+- group — 用户所在的组
+
+- others — 用户组内的其他用户
+
+- all — 所有用户
+
+大多数情况,你只会对前3组进行操作,all这一组只是作为快捷方式(稍后我会解释)。
+
+到目前为止很简单,对吧?接下来我们将深入一层。
+
+如果你打开一个终端并运行命令 ls -l ,你将会看到逐行列出当前工作目录下所有的文件和文件夹的列表(如图1).
+
+你会留意到最左边那列是像·-rw-rw-r--·这样的。
+
+实际上这列表该这样看的:
+
+>rw- rw- r--
+
+将其分为如下3部分:
+
+- rw-
+
+- rw-
+
+- r--
+
+权限和组的顺序都很重要,顺序总是:
+
+- 用户 组 其他 — 分组
+
+- 读 写 操作 — 权限
+
+在我们上面示例的权限列表中,用户拥有读/写权限,用户组拥有读/写权限,其他用户仅拥有读权限。这些分组中赋予执行权限的话,就用一个x表示。
+
+## 等效数值
+
+接下来我们让它更复杂一些,每个权限都可以用一个数字表示。这些数字是:
+
+- 读 — 4
+
+- 写 — 2
+
+- 执行— 1
+
+数值代替不是一个一个的替换,你不能像这样:
+
+>-42-42-4--
+
+你该把每个分组的数值相加,给用户读和写权限,你该用4 + 2 得到6。给用户组相同的权限,也是使用相同的数值。假如你只想给其他用户读的权限,
+那就设置它为4。现在用数只表示为:
+
+>664
+
+如果你想给一个文件664权限,你可以使用chmod命令,如:
+
+>chmod 664 FILENAME
+
+FILENAME处为文件名。
+
+## 更改权限
+
+既然你已经理解了文件权限,那是时候学习如何更改这些权限了。就是使用chmod命令来实现。第一步你要知道你能否更改文件权限,
+你必须是文件的所有者或者有权限编辑文件(或者使用su或sudo进行操作)。正因为这样,你不能随意切换目录和更改文件权限。
+
+
+继续用我们的例子(`-rw-rw-r--`),假设这个文件(命名为script.sh)实际是个shell脚本,需要执行。但是你你只想让自己有权限执行这个脚本。
+这个时候,你可能会想:“我需要是文件的权限如`-rwx-rw-r--`这样来设置`x`”。实际你可以这样使用chmod命令:
+
+>chmod u+x script.sh
+
+这时候,列表中显示的应该是 -rwx-rw-r-- 。
+
+如果你想同时让用户及其所在组同时拥有执行权限,命令应该这样:
+
+>chmod ug+x script.sh
+
+
+明白这是怎么工作的了,下面我们让它更有趣些。不管什么原因,你不小心给了所有分组对文件的执行权限(列表中是这样的 `-rwx-rwx-r-x` )。
+如果你想去除其他用户的执行权限,只需运行命令:
+
+>chmod o-x script.sh
+
+如果你想完全删除文件的可执行权限,你可以用两种方法:
+
+>chmod ugo-x script.sh
+
+或者
+
+>chmod a-x script.sh
+
+以上就是所有内容,能使操作更有效率。我希望能避免哪些可能会导致一些问题的操作(例如你不小心对script.sh使用`a-rwx`这样的chmod命令)。
+
+## 目录权限
+
+You can also execute the chmod command on a directory. When you create a new directory as a user, it is typically created with the following permissions:
+你也可以对一个目录执行chmod命令,当你创建一个新的目录,通常新建目录具有这样的权限:
+
+>drwxrwxr-x
+
+注:开头的d表示这是一个目录。
+
+正如你所见,用户及其所在组都对文件夹具有操作权限,但这并不意味着在这文件夹中出创建的问价也具有与其相同的权限
+(创建的文件使用默认系统的权限`-rw-rw-r--`)。但如果你想在新文件夹中创建文件,并且移除用户组的写权限,
+你不用切换到该目录下并对所有文件使用chmod命令。你可以用加上参数R(意味着递归)的chmod命令,同时更改该文件夹及其目录下所有的文件的权限。
+
+现在,假设有一文件夹TEST,里面有一些脚本,所有这些(包括TEST文件夹)拥有权限`-rwxrwxr-x`。如果你想移除用户组的写权限,
+你可以运行命令:
+
+>chmod -R g-w TEST
+
+运行命令`ls -l`,你讲看到列出的TEST文件夹的权限信息是`drwxr-xr-x`。用户组被去除了写权限(其目录下的所有文件也如此)。
+
+## 总结
+
+现在,你应该对基本的Linux文件权限有了深入的理解。对于更高级的东西学起来会很轻松,像setid,setuid和ACLs这些。没有良好的基础,
+你很快就会混淆不清概念的。
+
+Linux文件权限从早期到现在没有太大变化,而且很可能以后也不会。
+
+
+------------------------------------------------------------------------------
+
+via: http://www.linux.com/learn/tutorials/885268-getting-to-know-linux-file-permissions
+
+作者:[Jack Wallen][a]
+译者:[译者ID](https://github.com/ynmlml)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/community/forums/person/93

From 00c8835729298ad51a74c258c5c5a9b22e2e5a5e Mon Sep 17 00:00:00 2001
From: miaolin 
Date: Tue, 22 Mar 2016 20:53:13 +0800
Subject: [PATCH 299/582] Delete 20160218 Getting to Know Linux File
 Permissions.md

---
 ... Getting to Know Linux File Permissions.md | 163 ------------------
 1 file changed, 163 deletions(-)
 delete mode 100644 sources/tech/20160218 Getting to Know Linux File Permissions.md

diff --git a/sources/tech/20160218 Getting to Know Linux File Permissions.md b/sources/tech/20160218 Getting to Know Linux File Permissions.md
deleted file mode 100644
index be48dbbe5a..0000000000
--- a/sources/tech/20160218 Getting to Know Linux File Permissions.md	
+++ /dev/null
@@ -1,163 +0,0 @@
-ynmlml translating 
-Getting to Know Linux File Permissions
-==========================================
-初识Linux文件系统
-==========================================
-![](http://www.linux.com/images/stories/66866/files_a.png)
-
-One of the most basic tasks in Linux is setting file permissions. Understanding how this is done should be considered a must-know, first step in your travels through the Linux ecosystem. As you might expect, such a fundamental issue within the operating environment hasn’t changed much over the years. In fact, the Linux file permission system is taken directly from the UNIX file permission (and even uses many of the same tools).
-在Linux中最基本的任务就是设置文件权限。理解如何实现是你进入LInux世界的第一步。如您所料,这一基本操作在类UNIX操作系统中大同小异。实际上,Linux文件权限系统就直接来取自UNIX文件权限(甚至使用许多相同的工具)。
-
-But, don’t think for a second that understanding file permissions is something you’ll wind up having to spend days and days studying...it’s actually quite simple. Let’s walk through what you need to know and how to put it all together.
-但不要以为在学习第二种文件权限的时候你需要再次一点一点的学起。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。
-
-## The Bits and Pieces
-##预备小知识
-
-The first thing you need to understand is what file permissions apply to. Effectively what you do is apply a permission to a group. When you break it down, the concept really is that simple. But what are the permissions and what are the groups?
-首先你要知道文件权限有什么用,有效的设置一个组的权限。当你将其分解,那这个概念就真的很简单了。那到底什么是权限什么是组呢。
-
-There are three types of permissions you can apply:
-你可以设置的3种权限:
-
-- read — gives the group permission to read the file (indicated with `r`)
-- 读 — 允许该组读文件(用`r`表示)
-
-- write — gives the group permission to edit the file (indicated with `w`)
-- 写 — 允许该组写文件(用`w`表示)
-
-- execute — gives the group permission to execute (run) the file (indicated with `x`)
-- 执行 — 允许该组执行(运行)文件(用`x`表示)
-
-To better explain how this is applied to a group, you could, for example, give a group permission to read and write to a file, but not execute the file. Or, you could give a group permission to read and execute a file, but not write to a file. You can even give a group full permission to read, write, and execute a file or strip a group of any access to a file by removing all permissions.
-为了更好的解释为何是应用于一个组,你可是尝试允许一个组读和写一个文件,但不能执行。或者你可以允许一个组读和执行一个文件,但不能写。甚至你可以允许一组有读、写、执行全部的权限,也可以删除全部权限。
-
-Now, what are the groups? There are four:
-那什么是分组呢,有以下4个:
-
-- user — the actual owner of the file
-
-- group — users in the file’s group
-
-- others — other users not in the file’s group
-
-- all — all users
-- user — 文件实际的拥有者
-- group — 用户所在的组
-- others — 用户组内的其他用户
-- all — 所有用户
-For the most part, you will only really ever bother with the first three groups. The all group is really only used as a shortcut (I’ll explain later).
-大多数情况,你只会对前3组进行操作,all这一组只是作为快捷方式(稍后我会解释)。
-
-So far so simple, right? Let’s layer on a bit of complexity.
-
-If you open up a terminal window and issue the command ls -l, you will see a line-by-line listing of all files and folders within the current working directory (Figure 1 above).
-
-If you look in the far left column, you’ll notice listings like `-rw-rw-r--`.
-
-That listing should actually be looked at like so:
-
->rw- rw- r--
-
-As you can see, the listing is broken into three sections:
-
-- rw-
-
-- rw-
-
-- r--
-
-The order is quite important...for both permissions and for groups. The order is always:
-
-- User Group Others — for groups
-
-- Read Write Execute — for permissions
-
-In our permissions listing example above, the User has read/write permission, the Group has read/write permission, and Others has only read permission. Had any of those groups been given executable permissions, it would have been represented with an x.
-
-## Numerical Equivalent
-
-Let’s make this even more complex. Each permission can also be represented by a number. The numbers are:
-
-- Read — 4
-
-- Write — 2
-
-- Execute — 1
-
-The numerical substitution isn’t an apples to apples change. You can’t drop in:
-
->-42-42-4--
-
-Instead, what you do is add up the numbers you want for each group. Let’s stick with our example above (`-rw-rw-r—`). To give the User group read and write permission, you would add up 4+2 to get 6. For the Group, you need the same permissions, so they get the same number. You only want Others to have read permissions, so they get 4. The numerical equivalent is now:
-
->664
-
-So, if you want to give a file 664 permissions, you’d issue the chmod command like this:
-
->chmod 664 FILENAME
-
-where FILENAME is the name of the file.
-
-## Changing Permissions
-
-Now that you understand the actual permissions of files, it’s time to learn how to change those permissions. This is done with the chmod command. One of the first things you must understand is that, to be able to change the permissions of a file, either you must be the owner of the file or you must have permission to edit the file (or have admin access by way of su or sudo). Because of that, you cannot just jump around in the directory structure and change permissions of files at will.
-
-Let’s stick with our example (`-rw-rw-r--`). Suppose this file (we’ll name it script.sh) is actually a shell script and needs to be executed...but you only want to give yourself permission to execute that script. At this point, you should be thinking, “Ah, then I need the permission listing to read `-rwx-rw-r--`!”. To get that `x` bit in there, you’d run the chmod command like so:
-
->chmod u+x script.sh
-
-At this point, the listing will be -rwx-rw-r--.
-
-If you wanted to give both User and Group executable permission, the command would look like:
-
->chmod ug+x script.sh
-
-See how this works? Let’s make it interesting. Say, for whatever reason, you accidentally give all groups executable permissions for that file (so the listing looks like `-rwx-rwx-r-x`). If you want to strip Others of executable permissions, issue the command:
-
->chmod o-x script.sh
-
-What if you want to completely remove executable permission from the file? You can do that two ways:
-
->chmod ugo-x script.sh
-
-or
-
->chmod a-x script.sh
-
-That’s where all comes into play. This is used to make the process a bit more efficient. I prefer to avoid using a as it could lead to issues (such as, when you accidentally issue the command chmod `a-rwx` script.sh).
-
-## Directory Permissions
-
-You can also execute the chmod command on a directory. When you create a new directory as a user, it is typically created with the following permissions:
-
->drwxrwxr-x
-
-NOTE: The leading d indicates it is a directory.
-
-As you can see, both User and Group have executable permission for the folder. This does not mean that any files created in the folder will have the same permissions (files will be created with the default system permissions of `-rw-rw-r--`). But, suppose you do create files in this new directory, and you want to strip Group of write permissions. You don’t have to change into the directory and then issue the chmod command on all the files. You can add the R option (which means recursive) to the chmod command and change the permission on both the folder and all the containing files.
-
-Now, suppose our example is a folder named TEST and within it is a number of scripts — all of which (including the TEST folder) have permissions `-rwxrwxr-x`. If you want to strip Group of write permissions, you could issue the command:
-
->chmod -R g-w TEST
-
-If you now issue the command ls `-l`, you will see the TEST folder now has a permission listing of `drwxr-xr-x`. Group has been stripped of its write permissions (as will all the files within).
-
-## Permission to Conclude
-
-At this point, you should now have a solid understand of the basic Linux file permissions. There are more advanced issues that you can now easily study, such as setuid and setgid and ACLs. Without a good foundation of the basics, however, you’d quickly get lost with those next-level topics.
-
-Linux file permissions haven’t changed much, since the early days. And, they most likely won’t change much going into the future.
-
-
-------------------------------------------------------------------------------
-
-via: http://www.linux.com/learn/tutorials/885268-getting-to-know-linux-file-permissions
-
-作者:[Jack Wallen][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://www.linux.com/community/forums/person/93

From 25ecd2c82042f12630621ef85a8b72e41eecf021 Mon Sep 17 00:00:00 2001
From: miaolin 
Date: Tue, 22 Mar 2016 21:06:52 +0800
Subject: [PATCH 300/582] =?UTF-8?q?=E9=A2=9D=EF=BC=8C=E6=80=8E=E4=B9=88?=
 =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E6=9C=89=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 translated/tech/Getting to Know Linux File Permissions | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/translated/tech/Getting to Know Linux File Permissions b/translated/tech/Getting to Know Linux File Permissions
index fb75030b0a..72edbed84e 100644
--- a/translated/tech/Getting to Know Linux File Permissions	
+++ b/translated/tech/Getting to Know Linux File Permissions	
@@ -1,5 +1,5 @@
 初识Linux文件系统
-==========================================
+================================================================================
 
 ![](http://www.linux.com/images/stories/66866/files_a.png)
 

From b60314b6ab5ee18e82bcac4bbd21e23f165eee8a Mon Sep 17 00:00:00 2001
From: geekpi 
Date: Wed, 23 Mar 2016 09:43:34 +0800
Subject: [PATCH 301/582] translating

---
 .../20160220 Former Kubuntu Head Unveils New KDE Project.md     | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md b/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md
index dc3b2a1a76..5601497176 100644
--- a/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md	
+++ b/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md	
@@ -1,3 +1,5 @@
+translating----geekpi
+
 Former Kubuntu Head Unveils New KDE Project
 ==============================================
 

From aa19f69948807cb19b13e77e8777585f5fde11a5 Mon Sep 17 00:00:00 2001
From: 4357 
Date: Wed, 23 Mar 2016 11:20:53 +0800
Subject: [PATCH 302/582] =?UTF-8?q?4357=20=E7=BF=BB=E8=AF=91=E4=B8=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

https://github.com/4357
---
 ...20160218 What do Linux developers think of Git and GitHub.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sources/tech/20160218 What do Linux developers think of Git and GitHub.md b/sources/tech/20160218 What do Linux developers think of Git and GitHub.md
index 9002025820..b444b0958c 100644
--- a/sources/tech/20160218 What do Linux developers think of Git and GitHub.md	
+++ b/sources/tech/20160218 What do Linux developers think of Git and GitHub.md	
@@ -1,3 +1,5 @@
+@4357 翻译中
+
 What do Linux developers think of Git and GitHub?
 =====================================================
 

From dcb49b8915cac334f8b59be85b85163813c8b162 Mon Sep 17 00:00:00 2001
From: geekpi 
Date: Wed, 23 Mar 2016 11:27:03 +0800
Subject: [PATCH 303/582] translated

---
 ...er Kubuntu Head Unveils New KDE Project.md | 37 -------------------
 ...er Kubuntu Head Unveils New KDE Project.md | 35 ++++++++++++++++++
 2 files changed, 35 insertions(+), 37 deletions(-)
 delete mode 100644 sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md
 create mode 100644 translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md

diff --git a/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md b/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md
deleted file mode 100644
index 5601497176..0000000000
--- a/sources/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md	
+++ /dev/null
@@ -1,37 +0,0 @@
-translating----geekpi
-
-Former Kubuntu Head Unveils New KDE Project
-==============================================
-
-The name Jonathan Riddell should ring a bell if you read Linux and [open source news](http://itsfoss.com/category/news/). He was the creator and longtime lead developer of the [Kubuntu](http://www.kubuntu.org/) distribution. He was [forced out of his position by Ubuntu boss Mark Shuttleworth](http://www.cio.com/article/2926838/linux/mark-shuttleworth-ubuntu-community-council-ask-kubuntu-developer-to-step-down-as-leader.html) last year because he dared to ask what happened to the funds Canonical had raised for Kubuntu. (To the best of my knowledge, Canonical never really answered to his questions about finances.)
-
-![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448724263.png)
-
-## KDE neon logo
-
-On Saturday, Riddell [announced](https://dot.kde.org/2016/01/30/fosdem-announcing-kde-neon) a new project: [KDE neon](http://neon.kde.org.uk/). According to Riddell’s announcement “Neon will provide a way to get the latest KDE software on the day it’s released.”
-
-After reading both the announcement and looking at the brief site, **it appears that neon is a mainly a “rapidly updated software repository” that allows KDE fans to be on the bleeding edge**. Instead of waiting for months for distro developers to release the updated KDE on their repos, you’ll be able to get it hot off the presses.
-
-KDE did state in the [noen FAQ](http://neon.kde.org.uk/faq) that this is not a KDE created distro. In fact, they say “KDE believes it is important to work with many distributions, as each brings unique value and expertise for their respective users. This is one project out of hundreds from KDE.”
-
-![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448830870.jpg)
-
-However, the way the site and the announcement refer to the fact that neon runs on Ubuntu 15.10 (until the next LTS version is available) and that there will soon be images makes me wonder. KDE could be saying this to keep Canonical from seeing this project as a competitor to Kubuntu. If they that there is a demand for KDE neon, they could spin it off as a full distro. Both the announcement and site state that this is a KDE Incubator project, so the future could hold anything for this project.
-
-[KDE neon](http://neon.kde.org.uk/)
-
-Does neon sound like it would be useful for you or are you happy with your current distro’s KDE release rate? Do you think there is room for another KDE distro (if KDE decides to head in that direction)? Let me know in the comment section below.
-
-------------------------------------------------------------------------------
-
-via: http://itsfoss.com/kde-neon-unveiled/
-
-作者:[JOHN PAUL][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://itsfoss.com/author/john/
-
diff --git a/translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md b/translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md
new file mode 100644
index 0000000000..44dc94b9f0
--- /dev/null
+++ b/translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md	
@@ -0,0 +1,35 @@
+前Kubuntu领袖发起了新的KDE项目
+==============================================
+
+如果你阅读Linux和[开源新闻](http://itsfoss.com/category/news/)的话应该会对Jonathan Riddell这人很熟悉。它是[Kubuntu](http://www.kubuntu.org/)发行版的创建者及长期的开发领导。他由于敢于询问Canonical基金会对Kubuntu的资金筹集情况[而被Ubuntu的老板Mark Shuttleworth驱逐](http://www.cio.com/article/2926838/linux/mark-shuttleworth-ubuntu-community-council-ask-kubuntu-developer-to-step-down-as-leader.html) (据我所知,Canonical从来没有真正回答过他的这个关于财务的问题。)
+
+![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448724263.png)
+
+## KDE neon 标志
+
+在周日,Riddell[宣布](https://dot.kde.org/2016/01/30/fosdem-announcing-kde-neon)了一个新项目:KDE neon](http://neon.kde.org.uk/)。根据Riddell的声明,“Neon将会在发布时提供最新的KDE软件。”
+
+在看了声明何网站后,**neon似乎主要是一个“快速的软件更新仓库”,它让KDE粉丝可以用上最新的软件**。除了等上数月来等到开发者在他们的仓库中发布新的KDE,你还可以从新闻中了解最新消息。
+
+KDE的确在[noen FAQ](http://neon.kde.org.uk/faq)中声明过这不是一个KDE创建的发行版。事实上,他们说“KDE相信与许多发行版协作是很重要的,因为它们每个都能给用户提供独特的价值和专长。这是KDE成千上万项目中的一个。”
+
+![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448830870.jpg)
+
+然而,网站和公告显示neon会运行在Ubuntu 15.10中(直到有下个长期支持版本)并很快会有让我惊奇的镜像。KDE可能要让Canonical看到此项目是Kubuntu的竞争对手。如果他们有KDE neon的需求,他们将把它拆开作为一个完整的发行版。网站和通告声称这是一个KDE孵化项目,因此未来可能会包含任何东西。
+
+[KDE neon](http://neon.kde.org.uk/)
+
+neon听上去对你有用么,或者你是否对现在的KDE发行版的发布速度满意?你认为是否还有其他KDE发行版的空间(如果KDE决定超这个方向进发)?让我在评论栏知道你们的想法。
+
+------------------------------------------------------------------------------
+
+via: http://itsfoss.com/kde-neon-unveiled/
+
+作者:[JOHN PAUL][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/john/
+

From 84be4eb1384dbad2d4dda3c1a8b48d0d47da0e02 Mon Sep 17 00:00:00 2001
From: miaolin 
Date: Thu, 24 Mar 2016 16:57:51 +0800
Subject: [PATCH 304/582] Update and rename Getting to Know Linux File
 Permissions to 20160218 Getting to Know Linux File Permissions

---
 ...missions => 20160218 Getting to Know Linux File Permissions} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename translated/tech/{Getting to Know Linux File Permissions => 20160218 Getting to Know Linux File Permissions} (99%)

diff --git a/translated/tech/Getting to Know Linux File Permissions b/translated/tech/20160218 Getting to Know Linux File Permissions
similarity index 99%
rename from translated/tech/Getting to Know Linux File Permissions
rename to translated/tech/20160218 Getting to Know Linux File Permissions
index 72edbed84e..77b3ed099f 100644
--- a/translated/tech/Getting to Know Linux File Permissions	
+++ b/translated/tech/20160218 Getting to Know Linux File Permissions	
@@ -1,4 +1,4 @@
-初识Linux文件系统
+初识Linux文件权限
 ================================================================================
 
 ![](http://www.linux.com/images/stories/66866/files_a.png)

From 619b6c5fabe4bbdcc56c5b4ec54bbe1eb9a145ad Mon Sep 17 00:00:00 2001
From: Ezio 
Date: Thu, 24 Mar 2016 23:27:07 +0800
Subject: [PATCH 305/582] =?UTF-8?q?20160324-1=20=E9=80=89=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...uBSD Brings Ubuntu And FreeBSD Together.md | 66 +++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md

diff --git a/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md b/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md
new file mode 100644
index 0000000000..cca9a74a90
--- /dev/null
+++ b/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md	
@@ -0,0 +1,66 @@
+UbuntuBSD Brings Ubuntu And FreeBSD Together
+=================================================
+
+![](http://itsfoss.com/wp-content/uploads/2016/03/UbuntuBSD.jpg)
+
+Move over [Linux][1], people. UbuntuBSD is bringing the experience of Ubuntu on the top of a FreeBSD kernel.
+
+Quite unsurprisingly, UbuntuBSD has taglined itself as ‘Unix for human beings’. If you remember, Ubuntu uses the tagline ‘Linux for human beings’ and have actually made it possible for a ‘normal human’ to use Linux in last 11 years.
+
+UbuntuBSD aims to do the same. Which is to make Unix accessible and usable by beginners, if I may put it that way. At least, this is what it aims.
+
+### What’s BSD? How is Linux different from it?
+
+If you are a beginner, then you should know the [difference between Unix and Linux][2].
+
+Way before Linux, Unix operating systems was desgined at [AT&T][3] by [Ken Thompson][4], [Denis Ricthie][5] and team. This was back in 1970. You might be surprised to know that Unix is a closed source, properitry operating system. AT&T licensed Unix to various thrid parties, both academic and commercial vendors.
+
+One of the academic vendors is University of California, Berkeley. The Unix operating system developed here is known as [BSD (Berkeley Software Distribution)][6]. One of the most popular open source derivative of BSD is [FreeBSD][7]. Another most popular closed source BSD derviative is Apple’s Mac OS X.
+
+In 1991, Finnish computer science student Linus Torvalds developed his own Unix clone from scratch. This is what we know today as Linux Kernel. Linux distributions add GUI system, GNU utilities (such as cp, mv, ls,date, bash etc), installation & management tools, GNU c/c++ Compilers and various applications on top of the Linux kernel.
+
+### UbuntuBSD is not the first of its kind
+
+When you have get the difference between Unix, Linux and FreeBSD, let me tell you that UbuntuBSD is not the first Linux-ish experience on the top of FreeBSD kernel.
+
+When Debian opted out for [systemd][8], this resulted in the birth of [Debian GNU/kFreeBSD][9] operating system. It is a port of Debian that run on the top of FreeBSD rather than the usual Linux kernel.
+
+UbuntuBSD is a similar implementation of Ubuntu on FreeBSD kernel.
+
+### UbuntuBSD Beta codenamed Escape From SystemD
+
+The first beta release of UbuntuBSD is out and it has been codenamed “Escape from SystemD”. It is based on Ubuntu 15.10 and FreeBSD kernel 10.1.
+
+It ships with [Xfce][10] desktop and is designed for both desktop and server. [ZFS][11] support is included as well. It has text based installer.
+
+### Wanna try?
+
+I won’t suggest that everyone start trying it in excitement. It is still under development and the installer is text based. If you are confident enough, go ahead and download it from the link below but beginners, please stay out, at least for now:
+
+[UbuntuBSD][12]
+
+What do you think of UbuntuBSD?
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/ubuntubsd-ubuntu-freebsd/
+
+作者:[ABHISHEK][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/abhishek/
+[1]: http://itsfoss.com/tag/linux/
+[2]: http://www.cyberciti.biz/faq/what-is-the-difference-between-linux-and-unix/
+[3]: https://en.wikipedia.org/wiki/AT%26T
+[4]: https://en.wikipedia.org/wiki/Ken_Thompson
+[5]: https://en.wikipedia.org/wiki/Dennis_Ritchie
+[6]: http://www.bsd.org/
+[7]: https://www.freebsd.org/
+[8]: https://www.freedesktop.org/wiki/Software/systemd/
+[9]: https://www.debian.org/ports/kfreebsd-gnu/
+[10]: http://www.xfce.org/
+[11]: https://en.wikipedia.org/wiki/ZFS
+[12]: https://sourceforge.net/projects/ubuntubsd/

From b944a1c397674fc212d481dfd36d8110da4baa02 Mon Sep 17 00:00:00 2001
From: KS 
Date: Fri, 25 Mar 2016 16:00:44 +0800
Subject: [PATCH 306/582] Translated

Translated Two Outstanding All-in-One Linux Servers
---
 ...wo Outstanding All-in-One Linux Servers.md | 105 ------------------
 ...wo Outstanding All-in-One Linux Servers.md | 103 +++++++++++++++++
 2 files changed, 103 insertions(+), 105 deletions(-)
 delete mode 100644 sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md
 create mode 100644 translated/tech/20160228 Two Outstanding All-in-One Linux Servers.md

diff --git a/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md b/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md
deleted file mode 100644
index 4d6f369aa5..0000000000
--- a/sources/tech/20160228 Two Outstanding All-in-One Linux Servers.md	
+++ /dev/null
@@ -1,105 +0,0 @@
-wyangsun translating
-Two Outstanding All-in-One Linux Servers
-================================================
-
-keywords: Linux Server , SMB , clearos , Zentyal
-
-![](http://www.linux.com/images/stories/66866/jack-clear_a.png)
-
->Figure 1: The ClearOS setup wizard.
-
-Back in 2000, Microsoft released their Small Business Server. This product changed the way many people viewed how technology could function within the realm of business. Instead of having multiple machines handle different tasks, you could deploy a single server which would handle email, calendaring, file sharing, directory services, VPN, and a whole lot more. For many of small businesses, this was a serious boon, but for some the cost of the Windows SMB was prohibitive. For yet others, the idea of relying on such a server, designed by Microsoft, simply wasn’t an option.
-
-For that last group, there are alternatives. In fact, within the realm of Linux and open source, you can choose from several solid platforms that can serve your small business as a one-stop server shop. If your small business has between 10 and 50 employees, the all-in-one server might be the ideal solution to meet your needs.
-
-Here, I’ll look at two Linux all-in-one servers, so you can see if one of them is the perfect match for your company.
-
-Remember, these servers are not, in any way, suited for big business or enterprise. Larger companies cannot rely on the all-in-one server simply because a single server cannot take the load expected within the realm of enterprise needs. With that said, here’s what SMBs can expect from a Linux all in one.
-
-### ClearOS
-
-[ClearOS][1] was originally released in 2009, under the name ClarkConnect, as a router and gateway distribution. Since then, ClearOS has added all the features necessary to define it as an all-in-one server. ClearOS offers more than just a piece of software. You can also purchase a [ClearBox 100][2] or [ClearBox 300][3]. These servers ship complete with ClearOS and are marketed as IT in a box. Check out the feature comparison/price matrix [here][4].
-
-For those with hardware already in-house, you can download one of the following:
-
-- [ClearOS Community][5] — The community (free) edition of ClearOS
-
-- [ClearOS Home][6] — Ideal for home offices (details on features and subscription costs, see here)
-
-- [ClearOS Business][7] — Ideal for small businesses (details on features and subscription costs, see here)
-
-What do you get with ClearOS? You get a business-class server with a single, elegantly designed web interface. What is unique about ClearOS is that you will get plenty of features in the base server; beyond that, you must add on features from the [Clear Marketplace][8]. From within the Marketplace, you can install free or paid apps that extend the feature set of the ClearOS server. Here you’ll find add-ons for Windows Server Active Directory, OpenLDAP, Flexshares, Antimalware, Cloud, Web access control, Content filtering, and much more. You’ll even find some third-party add-ons such as Google Apps Synchronization, Zarafa Collaboration Platform, and Kaspersky Anti-virus.
-
-ClearOS is installed like any other Linux distribution (based on Red Hat’s Anaconda installer). Once the install is complete, you will be prompted to set up the networking interface as well as presented with the address to point your browser (on the same network as the ClearOS server). The address will be in the form:
-
-[https://IP_OF_CLEAROS_SERVER:81][9]
-
-Where IP_OF_CLEAROS_SERVER is the actual IP address of the server. NOTE: When you first point your browser to the server, you will receive a “Connection is not private” warning. Proceed on to the address so you can continue the setup.
-
-When the browser finally connects, you will be prompted for the root user credentials (you set the root user password up during initial installation). Once authenticated, you will be presented with the ClearOS setup wizard (Figure 1 above).
-
-Click the Next button to begin the process of setting up your ClearOS server. The wizard is self-explanatory and, in the end, you will be asked which version of ClearOS you want to use. Click either Community, Home, or Business. Once selected, you will be required to register for an account. Once you’ve created an account and registered the server, you can then move on to updating the server, configuring the server, and adding modules from the marketplace (Figure 2).
-
-![](http://www.linux.com/images/stories/66866/jack-clear_b.png)
-
->Figure 2: Installing modules from the marketplace.
-
-At this point, you are ready to start digging deep into the configuration of your ClearOS small business server.
-
-### Zentyal
-
-[Zentyal][10] is a Ubuntu-based small business server that was, at one point, distributed under the name eBox. Zentyal offers plenty of servers/services to fit your SMB needs:
-
-- Email — Webmail; Native MS Exchange protocols and Active Directory support; Calendars and contacts; Mobile device email sync; Antivirus/antispam; IMAP, POP, SMTP, CalDAV, and CardDAV support
-
-- Domain & Directory — Central domain directory management; Multiple organization units; Single sign-on authentication; File sharing; ACLs, Advanced domain management, Printer management
-
-- Networking & Firewall — Static and DHCP interfaces; Objects & services; Packet filter; Port forwarding
-
-- Infrastructure — DNS; DHCP; NTP; Certification authority; VPN
-
-- Firewall
-
-The installation of Zentyal is very much like that of Ubuntu Server—it’s text based and quite simple: Boot up the install media, make a few quick selections, and wait for the installation to complete. Once the initial, text-based, installation is finished, you are presented with the GUI desktop where a wizard will appear for package selection. Select all the packages you want to install and allow the installer to finish the job.
-
-Finally, you can log into your Zentyal server via the web interface (point your browser to [https://IP_OF_SERVER:8443][11] — where IP_OF_SERVER is the LAN address of the Zentyal server) or use the standalone, desktop GUI to administer the server (Zentyal includes quick access to an Administrator and User console as well as a Zentyal Administration console). When all systems have been saved and started, you will be presented with the Zentyal Dashboard (Figure 3).
-
-![](http://www.linux.com/images/stories/66866/jack-zentyal_a.png)
-
->Figure 3: The Zentyal Dashboard in action.
-
-The Dashboard allows you to control all aspects of the server, such as updating, managing servers/services, and getting a quick status update of the server. You can also go into the Components area and install components that you opted out of during installation or update the current package list. Click on Software Management > System Updates and select what you want to update (Figure 4), then click the UPDATE button at the bottom of the screen.
-
-![](http://www.linux.com/images/stories/66866/jack-zentyal_b.png)
-
->Figure 4: Updating your Zentyal server is simple.
-
-### Which Server Is Right for You?
-
-The answer to this question depends on what you need. Zentyal is an amazing server that does a great job running your SMB network. If you need a bit more, such as groupware, your best bet is to go with ClearOS. If you don’t need groupware, either server will do an outstanding job.
-
-I highly recommend installing both of these all-in-one servers to see which will best serve your small company needs.
-
-
-------------------------------------------------------------------------------
-
-via: http://www.linux.com/learn/tutorials/882146-two-outstanding-all-in-one-linux-servers
-
-作者:[Jack Wallen][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: http://www.linux.com/community/forums/person/93
-[1]: http://www.linux.com/learn/tutorials/882146-two-outstanding-all-in-one-linux-servers#clearfoundation-overview
-[2]: https://www.clearos.com/products/hardware/clearbox-100-series
-[3]: https://www.clearos.com/products/hardware/clearbox-300-series
-[4]: https://www.clearos.com/products/hardware/clearbox-overview
-[5]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso
-[6]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso
-[7]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso
-[8]: https://www.clearos.com/products/purchase/clearos-marketplace-overview
-[9]: https://ip_of_clearos_server:81/
-[10]: http://www.zentyal.org/server/
-[11]: https://ip_of_server:8443/
diff --git a/translated/tech/20160228 Two Outstanding All-in-One Linux Servers.md b/translated/tech/20160228 Two Outstanding All-in-One Linux Servers.md
new file mode 100644
index 0000000000..a60b23aea1
--- /dev/null
+++ b/translated/tech/20160228 Two Outstanding All-in-One Linux Servers.md	
@@ -0,0 +1,103 @@
+两个杰出的一体化Linux服务器
+================================================
+
+关键词:Linux服务器,SMB,clearos,Zentyal
+
+![](http://www.linux.com/images/stories/66866/jack-clear_a.png)
+
+>图1: ClearOS安装向导。
+
+回到2000年,微软发布小型商务服务器。这个产品改变了很多人们对科技在商务领域的看法。你可以部署一个单独的服务器,它能处理邮件,日历,文件共享,目录服务,VPN,以及更多,而不是很多机器处理不同的任务。对很多小型商务来说,这是非常好的恩惠,但是Windows SMB的一些花费是昂贵的。对于其他人,微软设计的依赖于一个服务器的想法,根本不是一个选项。
+
+对于最近的用户群,有些替代品。事实上,在Linux和开源领域里,你可以选择许多稳定的平台,它可以作为一站式服务商店服务于你的小型企业。如果你的小型企业有10到50员工,一体化服务器也许是你所需的理想方案。
+
+这里,我将要看看两个Linux一体化服务器,所以你可以查看他们哪个能完美适用于你的公司。
+
+记住,这些服务器不能,以任何方式,适用于大型商务或企业。大公司无法依靠一体化服务器,仅仅是因为一台服务器不能负荷在企业内所需的企望。除此之外,这就是小型企业可以从Linux一体化服务器期待什么。
+
+### ClearOS
+
+[ClearOS][1]是在2009年在ClarkConnect下发行的,作为一个路由和网关的分支。从那以后,ClearOS已经增加了所有一体化服务器必要的特性。CearOS提供的不仅仅是一个软件。你可以购买一个[ClearBox 100][2] 或[ClearBox 300][3]。这些服务器搭载完整的ClearOS作为一个IT设备被销售。在[这里][4]查看特性比对/价格矩阵。
+
+家里已经有这些硬件,你可以下载这些之一:
+
+- [ClearOS社区][5] — 社区(免费)版的ClearOS
+
+- [ClearOS家庭][6] — 理想的家庭办公室(详细的功能和订阅费用,见这里)
+
+- [ClearOS商务][7] — 理想的小型商务(详细的功能和订阅费用,见这里)
+
+使用ClearOS你得到了什么?你得到了一个单机的业务合作服务器,设计精美的网页。ClearOS独特的是什么?你可以在基础服务中得到很多特性。除了这个,你必须从 [Clear Marketplace][8]增加特性。在市场上,你可以安装免费或付费的应用程序,扩展集的ClearOS服务器的特性。这里你可以找到附加的Windows服务器活动目录,OpenLDAP,Flexshares,Antimalware,云,Web访问控制,内容过滤,还有更多。你甚至可以找到一些第三方组件像谷歌应用同步,Zarafa合作平台,卡巴斯基杀毒。
+
+ClearOS的安装像其他Linux发行版(基于红帽的Anaconda安装程序)。安装完成后,系统将提示您设置网络接口就是提供你浏览器访问的地址(与ClearOS服务器在同一个网络里)。地址格式如下:
+
+[https://IP_OF_CLEAROS_SERVER:81][9]
+
+IP_OF_CLEAROS_SERVER就是服务器的真实IP地址。注:当你第一次在浏览器访问这个服务器时,你将收到一个“Connection is not private”的警告。继续访问这个地址你才能继续设置。
+
+当浏览器连接上,就会提示你root用户认证(在初始化安装中你设置的root用户密码)。一通过认证,你将看到ClearOS的安装向导(上图1)
+
+点击下一步按钮,开始设置你的ClearOS服务器。这个向导无需加以说明,在最后还会问你想用那个版本的ClearOS。点击社区,家庭,或者商业。一旦选择,你就需要注册一个账户。创建了一个账户注册了服务器后,你可以开始更新服务器,配置服务器,从市场添加模块(图2)。
+
+![](http://www.linux.com/images/stories/66866/jack-clear_b.png)
+
+>图2: 从市场安装模块。
+
+此时,你已经准备开始深入挖掘配置你的ClearOS小型商务服务器了。
+
+### Zentyal
+
+[Zentyal][10]是一个基于Ubuntu的小型商务服务器,现在,发布在eBox域名下。Zentyal提供了大量的服务器/服务来适应你的小型商务需求:
+
+- 电子邮件 — 网页邮件;原生微软邮件协议和活动目录支持;日历和通讯录;手机设备电子邮件同步;反病毒/反垃圾;IMAP,POP,SMTP,CalDAV,和CardDAV支持。
+
+- 域和目录 — 核心域目录管理;多个组织单元;单点登录身份验证;文件共享;ACLs,高级域名管理,打印机管理。
+
+- 网络和防火墙 — 静态和DHCP接口;对象和服务;包过滤;端口转发。
+
+- 基础设施 — DNS;DHCP;NTP;认证中心;VPN。
+
+- 防火墙
+
+安装Zentyal很像Ubuntu服务器的文本安装而且很简单:启动安装镜像,做一些选择,等待安装完成。一旦初始化,完成基于文本安装,就提供给你桌面GUI,向导程序提供选择包。选择所有你想安装的包,让安装程序完成这些工作。
+
+最终,你可以通过网页接口来访问Zentyal服务器(浏览器访问[https://IP_OF_SERVER:8443][11] - IP_OF_SERVER是Zentyal服务器的内网地址)或使用独立的桌面GUI来管理服务器(Zentyal包括快速访问管理员和用户控制台就像Zentyal管理控制台)。当全部系统已经保存开启,你将看到Zentyal面板(图3)。
+
+![](http://www.linux.com/images/stories/66866/jack-zentyal_a.png)
+
+>图3: Zentyal活动面板.
+
+这个面板允许你控制服务器所有方面,比如更新,管理服务器/服务,获取服务器的敏捷状态更新。您也可以进入组件领域,然后安装部署过程中选择出来的组件或更新当前的软件包列表。点击 软件管理 > 系统更新 并选择你想更新的(图4),然后在屏幕最底端点击更新按钮。
+
+![](http://www.linux.com/images/stories/66866/jack-zentyal_b.png)
+
+>图4: 更新你的Zentyal服务器很简单。
+
+### 那个服务器适合你?
+
+回答这个问题要看你有什么需求。Zentyal是一个不可思议的服务器,它很好的胜任于你的小型商务网络中。如果你需要更多,如组合软件,你最好赌在ClearOS上。如果你不需要组合软件,任意的服务器将表现杰出的工作。
+
+我强烈建议安装这两个一体化的服务器,看看哪个是你的小公司所需的最好服务。
+
+------------------------------------------------------------------------------
+
+via: http://www.linux.com/learn/tutorials/882146-two-outstanding-all-in-one-linux-servers
+
+作者:[Jack Wallen][a]
+译者:[wyangsun](https://github.com/wyangsun)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: http://www.linux.com/community/forums/person/93
+[1]: http://www.linux.com/learn/tutorials/882146-two-outstanding-all-in-one-linux-servers#clearfoundation-overview
+[2]: https://www.clearos.com/products/hardware/clearbox-100-series
+[3]: https://www.clearos.com/products/hardware/clearbox-300-series
+[4]: https://www.clearos.com/products/hardware/clearbox-overview
+[5]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso
+[6]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso
+[7]: http://mirror.clearos.com/clearos/7/iso/x86_64/ClearOS-DVD-x86_64.iso
+[8]: https://www.clearos.com/products/purchase/clearos-marketplace-overview
+[9]: https://ip_of_clearos_server:81/
+[10]: http://www.zentyal.org/server/
+[11]: https://ip_of_server:8443/

From e27b7b8402b0038b60b1ba51b5621f75d31beec2 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Sat, 26 Mar 2016 04:49:40 +0800
Subject: [PATCH 307/582] PUB:20160316 What we learned in Seoul with AlphaGo

@martin2011qi
---
 .../20160316 What we learned in Seoul with AlphaGo.md       | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
 rename {translated/news => published}/20160316 What we learned in Seoul with AlphaGo.md (97%)

diff --git a/translated/news/20160316 What we learned in Seoul with AlphaGo.md b/published/20160316 What we learned in Seoul with AlphaGo.md
similarity index 97%
rename from translated/news/20160316 What we learned in Seoul with AlphaGo.md
rename to published/20160316 What we learned in Seoul with AlphaGo.md
index ab3c92b4c9..d4e40ab488 100644
--- a/translated/news/20160316 What we learned in Seoul with AlphaGo.md	
+++ b/published/20160316 What we learned in Seoul with AlphaGo.md	
@@ -1,4 +1,4 @@
-我们和 AlphaGo 在首尔学到了什么
+AlphaGo 的首尔之战带来的启示
 ================================================================================
 围棋并不仅仅是一个游戏——她是一伙活生生的玩家们,分析家们,爱好者们以及传奇大师们。在过去的十天里,在韩国首尔,我们有幸亲眼目睹那份难以置信的激动。我们也有幸也目睹了那前所未有的场景:[DeepMind][1] 的 AlphaGo 迎战并战胜了传奇围棋大师,李世石(职业9段,身负 18 个世界头衔),这是人工智能的里程碑。
 
@@ -6,7 +6,7 @@
 
 虽说围棋可能是存世的最为悠久的游戏之一了,但对于这五盘比赛的关注度还是大大的超出了我们的想象。搜索围棋规则和围棋盘的用户在美国迅速飙升。在中国,数以千万计的用户通过直播观看了这场比赛,并且新浪微博“人机围棋大战”话题的浏览量破 2 亿。韩国的围棋盘也销量[激增][2]。
 
-然而我们如此公然的测试 AlphaGo,并不仅仅是为了赢棋而已。我们自 2010 年成立 DeepMind,为的是创造出具有独立学习能力的通用型人工智能(AI),并致力于将其作为工具协助解决,从气候变化到诊断疾病,这类最为棘手且急迫的问题为最终目标。 
+然而我们如此公开的测试 AlphaGo,并不仅仅是为了赢棋而已。我们自 2010 年成立 DeepMind,为的是创造出具有独立学习能力的通用型人工智能(AI),并致力于将其作为工具协助解决,从气候变化到诊断疾病,这类最为棘手且急迫的问题为最终目标。 
 
 亦如许多前辈学者们一样,我们也是通过游戏来开发并测试我们的算法的。在一月份,我们第一次披露了 [AlphaGo][3]——作为第一个通过使用 [深度学习][4] 和 [强化学习][5],可以在人类发明的最为复杂的棋盘类游戏中击败职业选手的 AI 程序。而 AlphaGo 迎战过去十年间最厉害的围棋选手——李世石,绝对称得上是 [终极挑战][6]。
 
@@ -28,7 +28,7 @@ via: https://googleblog.blogspot.com/2016/03/what-we-learned-in-seoul-with-alpha
 
 作者:[Demis Hassabis][a]
 译者:[martin2011qi](https://github.com/martin2011qi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From 78d74229ce512eb12b191f5eded8911ea8d64e50 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Sat, 26 Mar 2016 04:50:51 +0800
Subject: [PATCH 308/582] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=A9=E5=B1=95?=
 =?UTF-8?q?=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

@ynmlml
---
 ...sions => 20160218 Getting to Know Linux File Permissions.md} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename translated/tech/{20160218 Getting to Know Linux File Permissions => 20160218 Getting to Know Linux File Permissions.md} (99%)

diff --git a/translated/tech/20160218 Getting to Know Linux File Permissions b/translated/tech/20160218 Getting to Know Linux File Permissions.md
similarity index 99%
rename from translated/tech/20160218 Getting to Know Linux File Permissions
rename to translated/tech/20160218 Getting to Know Linux File Permissions.md
index 77b3ed099f..b38cef6f32 100644
--- a/translated/tech/20160218 Getting to Know Linux File Permissions	
+++ b/translated/tech/20160218 Getting to Know Linux File Permissions.md	
@@ -152,7 +152,7 @@ Linux文件权限从早期到现在没有太大变化,而且很可能以后也
 via: http://www.linux.com/learn/tutorials/885268-getting-to-know-linux-file-permissions
 
 作者:[Jack Wallen][a]
-译者:[译者ID](https://github.com/ynmlml)
+译者:[ynmlml](https://github.com/ynmlml)
 校对:[校对者ID](https://github.com/校对者ID)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

From 95157c34d73b0fef9ddfb0ecc493c069a7556808 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Sat, 26 Mar 2016 05:10:33 +0800
Subject: [PATCH 309/582] PUB:20160220 Former Kubuntu Head Unveils New KDE
 Project

@geekpi
---
 ...er Kubuntu Head Unveils New KDE Project.md | 33 +++++++++++++++++
 ...er Kubuntu Head Unveils New KDE Project.md | 35 -------------------
 2 files changed, 33 insertions(+), 35 deletions(-)
 create mode 100644 published/20160220 Former Kubuntu Head Unveils New KDE Project.md
 delete mode 100644 translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md

diff --git a/published/20160220 Former Kubuntu Head Unveils New KDE Project.md b/published/20160220 Former Kubuntu Head Unveils New KDE Project.md
new file mode 100644
index 0000000000..2d57885d46
--- /dev/null
+++ b/published/20160220 Former Kubuntu Head Unveils New KDE Project.md	
@@ -0,0 +1,33 @@
+前 Kubuntu 领袖发起了新的 KDE 项目
+==============================================
+
+如果你经常阅读 Linux 和[开源新闻](http://itsfoss.com/category/news/)的话应该会对 Jonathan Riddell 这人很熟悉。它是 [Kubuntu](http://www.kubuntu.org/) 发行版的创建者及长期的开发领导。他由于敢于质询 Canonical 基金会对 Kubuntu 的资金筹集情况[而被 Ubuntu 的老板 Mark Shuttleworth 所驱逐](http://www.cio.com/article/2926838/linux/mark-shuttleworth-ubuntu-community-council-ask-kubuntu-developer-to-step-down-as-leader.html) (据我所知,Canonical 从来没有真正回答过他的这个关于财务的问题。)
+
+![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448724263.png)
+
+*KDE neon 标志*
+
+在周日,Riddell [宣布](https://dot.kde.org/2016/01/30/fosdem-announcing-kde-neon)了一个新项目:[KDE neon](http://neon.kde.org.uk/)。根据 Riddell 的声明,“Neon 将会提供一个在最新的 KDE 软件一发布就可以获得的途径。”
+
+在看了声明和网站后,**neon 似乎主要是一个“快速的软件更新仓库”,它让 KDE 粉丝可以用上最新的软件**。除了等上数月来等到开发者在他们的仓库中发布新的 KDE 软件外,你将可以在软件一出来就得到它。
+
+KDE 的确在 [noen FAQ](http://neon.kde.org.uk/faq) 中声明过这不是一个 KDE 创建的发行版。事实上,他们说“KDE 相信与许多发行版协作是很重要的,因为它们每个都能给用户提供独特的价值和专长。这是 KDE 成千上万项目中的一个。”
+
+![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448830870.jpg)
+
+然而,网站和公告显示 neon 会运行在 Ubuntu 15.10 中(直到有下个长期支持版本)并很快会有让我惊奇的情景。KDE 可能要让 Canonical 把此项目视作 Kubuntu 的竞争对手。如果他们发现 KDE neon 有前景,他们就能把它变成一个完整的发行版。网站和通告声称这是一个 KDE 孵化项目,因此未来可能会包含任何东西。
+
+neon 听上去对你有用么,或者你是否对你当前的发行版的 KDE 发布速度满意?你认为是否还有其他 KDE 发行版的空间(如果 KDE 决定朝这个方向进发)?让我在评论栏知道你们的想法。
+
+------------------------------------------------------------------------------
+
+via: http://itsfoss.com/kde-neon-unveiled/
+
+作者:[JOHN PAUL][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/john/
+
diff --git a/translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md b/translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md
deleted file mode 100644
index 44dc94b9f0..0000000000
--- a/translated/tech/20160220 Former Kubuntu Head Unveils New KDE Project.md	
+++ /dev/null
@@ -1,35 +0,0 @@
-前Kubuntu领袖发起了新的KDE项目
-==============================================
-
-如果你阅读Linux和[开源新闻](http://itsfoss.com/category/news/)的话应该会对Jonathan Riddell这人很熟悉。它是[Kubuntu](http://www.kubuntu.org/)发行版的创建者及长期的开发领导。他由于敢于询问Canonical基金会对Kubuntu的资金筹集情况[而被Ubuntu的老板Mark Shuttleworth驱逐](http://www.cio.com/article/2926838/linux/mark-shuttleworth-ubuntu-community-council-ask-kubuntu-developer-to-step-down-as-leader.html) (据我所知,Canonical从来没有真正回答过他的这个关于财务的问题。)
-
-![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448724263.png)
-
-## KDE neon 标志
-
-在周日,Riddell[宣布](https://dot.kde.org/2016/01/30/fosdem-announcing-kde-neon)了一个新项目:KDE neon](http://neon.kde.org.uk/)。根据Riddell的声明,“Neon将会在发布时提供最新的KDE软件。”
-
-在看了声明何网站后,**neon似乎主要是一个“快速的软件更新仓库”,它让KDE粉丝可以用上最新的软件**。除了等上数月来等到开发者在他们的仓库中发布新的KDE,你还可以从新闻中了解最新消息。
-
-KDE的确在[noen FAQ](http://neon.kde.org.uk/faq)中声明过这不是一个KDE创建的发行版。事实上,他们说“KDE相信与许多发行版协作是很重要的,因为它们每个都能给用户提供独特的价值和专长。这是KDE成千上万项目中的一个。”
-
-![](http://itsfoss.com/wp-content/uploads/2016/02/kde-neon-e1454448830870.jpg)
-
-然而,网站和公告显示neon会运行在Ubuntu 15.10中(直到有下个长期支持版本)并很快会有让我惊奇的镜像。KDE可能要让Canonical看到此项目是Kubuntu的竞争对手。如果他们有KDE neon的需求,他们将把它拆开作为一个完整的发行版。网站和通告声称这是一个KDE孵化项目,因此未来可能会包含任何东西。
-
-[KDE neon](http://neon.kde.org.uk/)
-
-neon听上去对你有用么,或者你是否对现在的KDE发行版的发布速度满意?你认为是否还有其他KDE发行版的空间(如果KDE决定超这个方向进发)?让我在评论栏知道你们的想法。
-
-------------------------------------------------------------------------------
-
-via: http://itsfoss.com/kde-neon-unveiled/
-
-作者:[JOHN PAUL][a]
-译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://itsfoss.com/author/john/
-

From 87a63e99503f80c205ea13c578284f808559f5a4 Mon Sep 17 00:00:00 2001
From: Name1e5s <836401406@qq.com>
Date: Sat, 26 Mar 2016 09:37:54 +0800
Subject: [PATCH 310/582] name1e5s translating ...

---
 .../20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md     | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md b/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md
index cca9a74a90..0c07d3982e 100644
--- a/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md	
+++ b/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md	
@@ -1,3 +1,4 @@
+name1e5s translating...
 UbuntuBSD Brings Ubuntu And FreeBSD Together
 =================================================
 

From 4612965c57c32bd7bc1147606a0754f3c1e44029 Mon Sep 17 00:00:00 2001
From: Name1e5s <836401406@qq.com>
Date: Sat, 26 Mar 2016 10:44:13 +0800
Subject: [PATCH 311/582] [translated]UbuntuBSD Brings Ubuntu And FreeBSD
 Together

---
 ...uBSD Brings Ubuntu And FreeBSD Together.md | 67 -------------------
 ...uBSD Brings Ubuntu And FreeBSD Together.md | 66 ++++++++++++++++++
 2 files changed, 66 insertions(+), 67 deletions(-)
 delete mode 100644 sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md
 create mode 100644 translated/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md

diff --git a/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md b/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md
deleted file mode 100644
index 0c07d3982e..0000000000
--- a/sources/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md	
+++ /dev/null
@@ -1,67 +0,0 @@
-name1e5s translating...
-UbuntuBSD Brings Ubuntu And FreeBSD Together
-=================================================
-
-![](http://itsfoss.com/wp-content/uploads/2016/03/UbuntuBSD.jpg)
-
-Move over [Linux][1], people. UbuntuBSD is bringing the experience of Ubuntu on the top of a FreeBSD kernel.
-
-Quite unsurprisingly, UbuntuBSD has taglined itself as ‘Unix for human beings’. If you remember, Ubuntu uses the tagline ‘Linux for human beings’ and have actually made it possible for a ‘normal human’ to use Linux in last 11 years.
-
-UbuntuBSD aims to do the same. Which is to make Unix accessible and usable by beginners, if I may put it that way. At least, this is what it aims.
-
-### What’s BSD? How is Linux different from it?
-
-If you are a beginner, then you should know the [difference between Unix and Linux][2].
-
-Way before Linux, Unix operating systems was desgined at [AT&T][3] by [Ken Thompson][4], [Denis Ricthie][5] and team. This was back in 1970. You might be surprised to know that Unix is a closed source, properitry operating system. AT&T licensed Unix to various thrid parties, both academic and commercial vendors.
-
-One of the academic vendors is University of California, Berkeley. The Unix operating system developed here is known as [BSD (Berkeley Software Distribution)][6]. One of the most popular open source derivative of BSD is [FreeBSD][7]. Another most popular closed source BSD derviative is Apple’s Mac OS X.
-
-In 1991, Finnish computer science student Linus Torvalds developed his own Unix clone from scratch. This is what we know today as Linux Kernel. Linux distributions add GUI system, GNU utilities (such as cp, mv, ls,date, bash etc), installation & management tools, GNU c/c++ Compilers and various applications on top of the Linux kernel.
-
-### UbuntuBSD is not the first of its kind
-
-When you have get the difference between Unix, Linux and FreeBSD, let me tell you that UbuntuBSD is not the first Linux-ish experience on the top of FreeBSD kernel.
-
-When Debian opted out for [systemd][8], this resulted in the birth of [Debian GNU/kFreeBSD][9] operating system. It is a port of Debian that run on the top of FreeBSD rather than the usual Linux kernel.
-
-UbuntuBSD is a similar implementation of Ubuntu on FreeBSD kernel.
-
-### UbuntuBSD Beta codenamed Escape From SystemD
-
-The first beta release of UbuntuBSD is out and it has been codenamed “Escape from SystemD”. It is based on Ubuntu 15.10 and FreeBSD kernel 10.1.
-
-It ships with [Xfce][10] desktop and is designed for both desktop and server. [ZFS][11] support is included as well. It has text based installer.
-
-### Wanna try?
-
-I won’t suggest that everyone start trying it in excitement. It is still under development and the installer is text based. If you are confident enough, go ahead and download it from the link below but beginners, please stay out, at least for now:
-
-[UbuntuBSD][12]
-
-What do you think of UbuntuBSD?
-
---------------------------------------------------------------------------------
-
-via: http://itsfoss.com/ubuntubsd-ubuntu-freebsd/
-
-作者:[ABHISHEK][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://itsfoss.com/author/abhishek/
-[1]: http://itsfoss.com/tag/linux/
-[2]: http://www.cyberciti.biz/faq/what-is-the-difference-between-linux-and-unix/
-[3]: https://en.wikipedia.org/wiki/AT%26T
-[4]: https://en.wikipedia.org/wiki/Ken_Thompson
-[5]: https://en.wikipedia.org/wiki/Dennis_Ritchie
-[6]: http://www.bsd.org/
-[7]: https://www.freebsd.org/
-[8]: https://www.freedesktop.org/wiki/Software/systemd/
-[9]: https://www.debian.org/ports/kfreebsd-gnu/
-[10]: http://www.xfce.org/
-[11]: https://en.wikipedia.org/wiki/ZFS
-[12]: https://sourceforge.net/projects/ubuntubsd/
diff --git a/translated/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md b/translated/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md
new file mode 100644
index 0000000000..19b1118194
--- /dev/null
+++ b/translated/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md	
@@ -0,0 +1,66 @@
+将 Ubuntu 和 FreeBSD 融合在一起的发行版 :UbuntuBSD
+========================================================
+
+![](http://itsfoss.com/wp-content/uploads/2016/03/UbuntuBSD.jpg)
+
+不止是在 [Linux][1] 的内核上面你才能体验到 Ubuntu 的快捷方便,伙计们。UbuntuBSD 可以让你在 FreeBSD 的内核上面也能体验到那种方便快捷。
+
+UbuntuBSD 称自己是‘Unix for human beings’,这一点也不人惊讶。如过你能想起来的话,Ubuntu 使用的标语是‘Linux for human beings’并且在过去的 11 年里它确实让一个‘正常人’有可能用上 Linux。
+
+UbuntuBSD 有着同样的想法。它想让新手能够接触到 Unix ,以及能使用它,如果我能这样说的话。至少,这就是它的目标。
+
+### 什么是BSD ? 它和 Linux 有哪些不同? ###
+
+如果你是新手,那么你需要知道 [Unix和Linux的区别][2].
+
+在 Linux 出现之前,Unix 由 [AT&T][3] 的  [Ken Thompson][4], [Denis Ricthie][5] 以及他们的团队设计。这是在可以算作上古时期的 1970 发生的事。当你知道 Unix 是一个闭源的,有产权的操作系统时你可能会感到惊讶。AT&T  给了很多第三方许可,无论是学术机构还是企业。
+
+美国加州大学伯克利分校是其中一个拿到许可的学术机构。在那里开发的 Unix 系统叫做  [BSD (Berkeley Software Distribution)][6]。BSD 的最出名的开源分支是  [FreeBSD][7],另一个最流行的闭源分支是苹果的 Mac OS X。
+
+在 1991 年。芬兰的计算机系大学生 Linus Torvalds 从头写了自己的 Unix 系统的复制品。这就是我们今天熟知的 Linux 内核。Linux 的发行版在内核的基础上添加了图形界面,GNU 的那一套(cp, mv, ls,date, bash 什么的),安装/管理工具,GNU C/C++ 编译器以及很多应用。
+
+### UbuntuBSD 不是这种发行版的开端
+
+在你知道了 Linux,Unix,FreeBSD 之间的区别之后。我要告诉你的是 UbuntuBSD 不是第一个要在 FreeBSD 内核上作出类似 Linux 的感觉的发行版。
+
+当 Debian 选择使用 [systemd][8] 之后,[Debian GNU/kFreeBSD][9]诞生了。它使用的不是通常的Linux内核,而是 Debian 在 FreeBSD 内核上的移植。
+
+与Debian GNU/kFreeBSD 类似,UbuntuBSD 是 Ubuntu 在 FreeBSD 内核上的移植。
+
+### UbuntuBSD Beta 版代号: Escape From SystemD 
+
+UbuntuBSD 的第一个版本已经发布,代号为“Escape From SystemD ”。它基于 Ubuntu 15.10 和 FreeBSD 10.1.
+
+它的默认桌面环境为 [Xfce][10] ,桌面以及服务器均可使用。 对于 [ZFS][11] 的支持也包含在这个版本中。开发者还提供了一个文本界面的安装器。
+
+### 想试试?
+
+我不建议任何人马上就去高兴的尝试这个系统。它仍在开发并且安装器还是文本界面的。如果你足够自信的话,直接去下载体验吧。但是如果你是新手的话,请等一段时间,至少不要现在就去尝试:
+
+[UbuntuBSD][12]
+
+你认为 UbuntuBSD 怎么样? 兹瓷不兹瓷它?
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/ubuntubsd-ubuntu-freebsd/
+
+作者:[ABHISHEK][a]
+译者:[name1e5s](https://github.com/name1e5s)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/abhishek/
+[1]: http://itsfoss.com/tag/linux/
+[2]: http://www.cyberciti.biz/faq/what-is-the-difference-between-linux-and-unix/
+[3]: https://en.wikipedia.org/wiki/AT%26T
+[4]: https://en.wikipedia.org/wiki/Ken_Thompson
+[5]: https://en.wikipedia.org/wiki/Dennis_Ritchie
+[6]: http://www.bsd.org/
+[7]: https://www.freebsd.org/
+[8]: https://www.freedesktop.org/wiki/Software/systemd/
+[9]: https://www.debian.org/ports/kfreebsd-gnu/
+[10]: http://www.xfce.org/
+[11]: https://en.wikipedia.org/wiki/ZFS
+[12]: https://sourceforge.net/projects/ubuntubsd/

From 0ea8507d5d43b9aa9599fabea594fd5cbc13677d Mon Sep 17 00:00:00 2001
From: Ray 
Date: Sun, 27 Mar 2016 16:12:06 +0800
Subject: [PATCH 312/582] =?UTF-8?q?WingCuengRay=E7=BF=BB=E8=AF=91=E4=B8=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ... Startup Process and Services SysVinit Systemd and Upstart.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md
index 2a822e8a45..ecd47794b0 100644
--- a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md	
+++ b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md	
@@ -1,3 +1,4 @@
+WingCuengRay翻译中
 Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart)
 ================================================================================
 A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams.

From 49a468e9ce12458be05d2138e84fb835fbe24631 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Mon, 28 Mar 2016 05:54:24 +0800
Subject: [PATCH 313/582] PUB:Part 1 - LFCS--How to use GNU 'sed' Command to
 Create Edit and Manipulate files in Linux.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

@Xuanwo 翻译的很细致
---
 ...eate Edit and Manipulate files in Linux.md | 226 ++++++++++++++++++
 ...eate Edit and Manipulate files in Linux.md | 220 -----------------
 2 files changed, 226 insertions(+), 220 deletions(-)
 create mode 100644 published/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md
 delete mode 100644 translated/tech/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md

diff --git a/published/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md b/published/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md
new file mode 100644
index 0000000000..dd19d6dc69
--- /dev/null
+++ b/published/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md	
@@ -0,0 +1,226 @@
+LFCS 系列第一讲:如何在 Linux 上使用 GNU sed 等命令来创建、编辑和操作文件
+================================================================================
+Linux 基金会宣布了一个全新的 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证计划。这一计划旨在帮助遍布全世界的人们获得其在处理 Linux 系统管理任务上能力的认证。这些能力包括支持运行的系统服务,以及第一手的故障诊断、分析,以及为工程师团队在升级时提供明智的决策。
+
+![Linux Foundation Certified Sysadmin](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-1.png)
+
+*Linux 基金会认证系统管理员——第一讲*
+
+请观看下面关于 Linux 基金会认证计划的演示:
+
+
+
+该系列将命名为《LFCS 系列第一讲》至《LFCS 系列第十讲》并覆盖关于 Ubuntu、CentOS 以及 openSUSE 的下列话题。
+
+- 第一讲:如何在 Linux 上使用 GNU sed 等命令来创建、编辑和操作文件
+- 第二讲:如何安装和使用 vi/m 全功能文字编辑器
+- 第三讲:归档文件/目录并在文件系统中寻找文件
+- 第四讲:为存储设备分区,格式化文件系统和配置交换分区
+- 第五讲:在 Linux 中挂载/卸载本地和网络(Samba & NFS)文件系统
+- 第六讲:组合分区作为 RAID 设备——创建&管理系统备份
+- 第七讲:管理系统启动进程和服务(使用 SysVinit, Systemd 和 Upstart)
+- 第八讲:管理用户和组,文件权限和属性以及启用账户的 sudo 权限
+- 第九讲:用 Yum,RPM,Apt,Dpkg,Aptitude,Zypper 进行 Linux 软件包管理
+- 第十讲:学习简单的 Shell 脚本编程和文件系统故障排除
+
+	重要提示:由于自 2016/2 开始 LFCS 认证要求有所变化,我们增加发布了下列必需的内容。要准备这个考试,推荐你也看看我们的 LFCE 系列。
+
+- 第十一讲:怎样使用 vgcreate、lvcreate 和 lvextend  命令创建和管理 LVM
+- 第十二讲:怎样安装帮助文档和工具来探索 Linux
+- 第十三讲:怎样配置和排错 GRUB
+
+本文是覆盖这个参加 LFCS 认证考试的所必需的范围和技能的十三个教程的第一讲。话说了那么多,快打开你的终端,让我们开始吧!
+
+### 处理 Linux 中的文本流 ###
+
+Linux 将程序中的输入和输出当成字符流或者字符序列。在开始理解重定向和管道之前,我们必须先了解三种最重要的I/O(Input and Output,输入和输出)流,事实上,它们都是特殊的文件(根据 UNIX 和 Linux 中的约定,数据流和外围设备(设备文件)也被视为普通文件)。
+
+在 \> (重定向操作符) 和 | (管道操作符)之间的区别是:前者将命令与文件相连接,而后者将命令的输出和另一个命令相连接。
+
+    # command > file
+    # command1 | command2
+
+由于重定向操作符会静默地创建或覆盖文件,我们必须特别小心谨慎地使用它,并且永远不要把它和管道混淆起来。在 Linux 和 UNIX 系统上管道的优势是:第一个命令的输出不会写入一个文件而是直接被第二个命令读取。
+
+在下面的操作练习中,我们将会使用这首诗——《A happy child》(作者未知)
+
+![cat command](http://www.tecmint.com/wp-content/uploads/2014/10/cat-command.png)
+
+*cat 命令样例*
+
+#### 使用 sed ####
+
+sed 是流编辑器(stream editor)的缩写。为那些不懂术语的人额外解释一下,流编辑器是用来在一个输入流(文件或者管道中的输入)执行基本的文本转换的工具。
+
+sed 最基本的用法是字符替换。我们将通过把每个出现的小写 y 改写为大写 Y 并且将输出重定向到 ahappychild2.txt 开始。g 标志表示 sed 应该替换文件每一行中所有应当替换的实例。如果这个标志省略了,sed 将会只替换每一行中第一次出现的实例。
+
+**基本语法:**
+
+    # sed 's/term/replacement/flag' file
+
+**我们的样例:**
+
+    # sed 's/y/Y/g' ahappychild.txt > ahappychild2.txt
+
+![sed command](http://www.tecmint.com/wp-content/uploads/2014/10/sed-command.png)
+
+*sed 命令样例*
+
+如果你要在替换文本中搜索或者替换特殊字符(如 /,\,&),你需要使用反斜杠对它进行转义。
+
+例如,我们要用一个符号来替换一个文字,与此同时我们将把一行最开始出现的第一个 I 替换为 You。
+
+    # sed 's/and/\&/g;s/^I/You/g' ahappychild.txt
+
+![sed replace string](http://www.tecmint.com/wp-content/uploads/2014/10/sed-replace-string.png)
+
+*sed 替换字符串*
+
+在上面的命令中,众所周知 \^(插入符号)是正则表达式中用来表示一行开头的符号。
+
+正如你所看到的,我们可以通过使用分号分隔以及用括号包裹来把两个或者更多的替换命令(并在它们中使用正则表达式)连接起来。
+
+另一种 sed 的用法是显示或者删除文件中选中的一部分。在下面的样例中,将会显示 /var/log/messages 中从6月8日开始的头五行。
+
+    # sed -n '/^Jun  8/ p' /var/log/messages | sed -n 1,5p
+
+请注意,在默认的情况下,sed 会打印每一行。我们可以使用 -n 选项来覆盖这一行为并且告诉 sed 只需要打印(用 p来表示)文件(或管道)中匹配的部分(第一个命令中指定以“Jun  8” 开头的行,第二个命令中指定一到五行)。
+
+最后,可能有用的技巧是当检查脚本或者配置文件的时候可以保留文件本身并且删除注释。下面的单行 sed 命令删除(d)空行或者是开头为`#`的行(| 字符对两个正则表达式进行布尔 OR 操作)。
+
+    # sed '/^#\|^$/d' apache2.conf
+
+![sed match string](http://www.tecmint.com/wp-content/uploads/2014/10/sed-match-string.png)
+
+*sed 匹配字符串*
+
+#### uniq 命令 ####
+
+uniq 命令允许我们返回或者删除文件中重复的行,默认写到标准输出。我们必须注意到,除非两个重复的行相邻,否则uniq 命令不会删除他们。因此,uniq 经常和一个前置的 sort 命令(一种用来对文本行进行排序的算法)搭配使用。默认情况下,sort 使用第一个字段(用空格分隔)作为关键字段。要指定一个不同的关键字段,我们需要使用 -k 选项。
+
+**样例**
+
+du –sch /path/to/directory/* 命令将会以人类可读的格式返回在指定目录下每一个子文件夹和文件的磁盘空间使用情况(也会显示每个目录总体的情况),而且不是按照大小输出,而是按照子文件夹和文件的名称。我们可以使用下面的命令来让它通过大小排序。
+
+    # du -sch /var/* | sort -h
+
+![sort command](http://www.tecmint.com/wp-content/uploads/2014/10/sort-command.jpg)
+
+*sort 命令样例*
+
+你可以通过使用下面的命令告诉 uniq 比较每一行的前6个字符(-w 6)(这里是指定的日期)来统计日志事件的个数,而且在每一行的开头输出出现的次数(-c)。
+
+
+    # cat /var/log/mail.log | uniq -c -w 6
+
+![Count Numbers in File](http://www.tecmint.com/wp-content/uploads/2014/10/count-numbers-in-file.jpg)
+
+*文件中的统计数字*
+
+最后,你可以组合使用 sort 和 uniq 命令(通常如此)。看看下面文件中捐助者、捐助日期和金额的列表。假设我们想知道有多少个捐助者。我们可以使用下面的命令来分隔第一字段(字段由冒号分隔),按名称排序并且删除重复的行。
+
+    # cat sortuniq.txt | cut -d: -f1 | sort | uniq
+
+![Find Unique Records in File](http://www.tecmint.com/wp-content/uploads/2014/10/find-uniqu-records-in-file.jpg)
+
+*寻找文件中不重复的记录*
+
+- 也可阅读: [13个“cat”命令样例][1]
+
+#### grep 命令 ####
+
+grep 在文件(或命令输出)中搜索指定正则表达式,并且在标准输出中输出匹配的行。
+
+**样例**
+
+显示文件 /etc/passwd 中用户 gacanepa 的信息,忽略大小写。
+
+    # grep -i gacanepa /etc/passwd
+
+![grep Command](http://www.tecmint.com/wp-content/uploads/2014/10/grep-command.jpg)
+
+*grep 命令样例*
+
+显示 /etc 文件夹下所有 rc 开头并跟随任意数字的内容。
+
+    # ls -l /etc | grep rc[0-9]
+
+![List Content Using grep](http://www.tecmint.com/wp-content/uploads/2014/10/list-content-using-grep.jpg)
+
+*使用 grep 列出内容*
+
+- 也可阅读: [12个“grep”命令样例][2]
+
+#### tr 命令使用技巧 ####
+
+tr 命令可以用来从标准输入中转换(改变)或者删除字符,并将结果写入到标准输出中。
+
+**样例**
+
+把 sortuniq.txt 文件中所有的小写改为大写。
+
+    # cat sortuniq.txt | tr [:lower:] [:upper:]
+
+![Sort Strings in File](http://www.tecmint.com/wp-content/uploads/2014/10/sort-strings.jpg)
+
+*排序文件中的字符串*
+
+压缩`ls –l`输出中的分隔符为一个空格。
+
+    # ls -l | tr -s ' '
+
+![Squeeze Delimiter](http://www.tecmint.com/wp-content/uploads/2014/10/squeeze-delimeter.jpg)
+
+*压缩分隔符*
+
+#### cut 命令使用方法 ####
+
+cut 命令可以基于字节(-b选项)、字符(-c)或者字段(-f)提取部分输入(从标准输入或者文件中)并且将结果输出到标准输出。在最后一种情况下(基于字段),默认的字段分隔符是一个制表符,但可以由 -d 选项来指定不同的分隔符。
+
+**样例**
+
+从 /etc/passwd 中提取用户账户和他们被分配的默认 shell(-d 选项允许我们指定分界符,-f 选项指定那些字段将被提取)。
+
+    # cat /etc/passwd | cut -d: -f1,7
+
+![Extract User Accounts](http://www.tecmint.com/wp-content/uploads/2014/10/extract-user-accounts.jpg)
+
+*提取用户账户*
+
+将以上命令结合起来,我们将使用 last 命令的输出中第一和第三个非空文件创建一个文本流。我们将使用 grep 作为第一过滤器来检查用户 gacanepa 的会话,然后将分隔符压缩至一个空格(tr -s ' ')。下一步,我们将使用 cut 来提取第一和第三个字段,最后使用第二个字段(本样例中,指的是IP地址)来排序之后,再用 uniq 去重。
+
+    # last | grep gacanepa | tr -s ‘ ‘ | cut -d’ ‘ -f1,3 | sort -k2 | uniq
+
+![last command](http://www.tecmint.com/wp-content/uploads/2014/10/last-command.png)
+
+*last 命令样例*
+
+上面的命令显示了如何将多个命令和管道结合起来,以便根据我们的要求得到过滤后的数据。你也可以逐步地使用它以帮助你理解输出是如何从一个命令传输到下一个命令的(顺便说一句,这是一个非常好的学习经验!)
+
+### 总结 ###
+
+尽管这个例子(以及在当前教程中的其他实例)第一眼看上去可能不是非常有用,但是他们是体验在 Linux 命令行中创建、编辑和操作文件的一个非常好的开始。请随时留下你的问题和意见——不胜感激!
+
+#### 参考链接 ####
+
+- [关于 LFCS][3]
+- [为什么需要 Linux 基金会认证?][4]
+- [注册 LFCS 考试][5]
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/
+
+作者:[Gabriel Cánepa][a]
+译者:[Xuanwo](https://github.com/Xuanwo)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/gacanepa/
+[1]:https://linux.cn/article-2336-1.html
+[2]:https://linux.cn/article-2250-1.html
+[3]:https://training.linuxfoundation.org/certification/LFCS
+[4]:https://training.linuxfoundation.org/certification/why-certify-with-us
+[5]:https://identity.linuxfoundation.org/user?destination=pid/1
+[6]:http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/
\ No newline at end of file
diff --git a/translated/tech/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md b/translated/tech/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md
deleted file mode 100644
index 79e263d7e0..0000000000
--- a/translated/tech/LFCS/Part 1 - LFCS--How to use GNU 'sed' Command to Create Edit and Manipulate files in Linux.md	
+++ /dev/null
@@ -1,220 +0,0 @@
-Translating by Xuanwo
-
-LFCS系列第一讲:如何在Linux上使用GNU'sed'命令来创建、编辑和操作文件
-================================================================================
-Linux基金会宣布了一个全新的LFCS(Linux Foundation Certified Sysadmin,Linux基金会认证系统管理员)认证计划。这一计划旨在帮助遍布全世界的人们获得其在处理Linux系统管理任务上能力的认证。这些能力包括支持运行的系统服务,以及第一手的故障诊断和分析和为工程师团队在升级时提供智能决策。
-
-![Linux Foundation Certified Sysadmin](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-1.png)
-
-Linux基金会认证系统管理员——第一讲
-
-请观看下面关于Linux基金会认证计划的演示:
-
-
-
-该系列将命名为《LFCS系列第一讲》至《LFCS系列第十讲》并覆盖关于Ubuntu,CentOS以及openSUSE的下列话题。
-
-- 第一讲:如何在Linux上使用GNU'sed'命令来创建、编辑和操作文件
-- 第二讲:如何安装和使用vi/m全功能文字编辑器
-- 第三讲:归档文件/目录和在文件系统中寻找文件
-- 第四讲:为存储设备分区,格式化文件系统和配置交换分区
-- 第五讲:在Linux中挂载/卸载本地和网络(Samba & NFS)文件系统
-- 第六讲:组合分区作为RAID设备——创建&管理系统备份
-- 第七讲:管理系统启动进程和服务(使用SysVinit, Systemd 和 Upstart)
-- 第八讲:管理用户和组,文件权限和属性以及启用账户的sudo权限
-- 第九讲:Linux包管理与Yum,RPM,Apt,Dpkg,Aptitude,Zypper
-- 第十讲:学习简单的Shell脚本和文件系统故障排除
-
-本文是覆盖这个参加LFCS认证考试的所必需的范围和能力的十个教程的第一讲。话说了那么多,快打开你的终端,让我们开始吧!
-
-### 处理Linux中的文本流 ###
-
-Linux将程序中的输入和输出当成字符流或者字符序列。在开始理解重定向和管道之前,我们必须先了解三种最重要的I/O(Input and Output,输入和输出)流,事实上,它们都是特殊的文件(根据UNIX和Linux中的约定,数据流和外围设备或者设备文件也被视为普通文件)。
-
-> (重定向操作符) 和 | (管道操作符)之间的区别是:前者将命令与文件相连接,而后者将命令的输出和另一个命令相连接。
-
-    # command > file
-    # command1 | command2
-
-由于重定向操作符静默创建或覆盖文件,我们必须特别小心谨慎地使用它,并且永远不要把它和管道混淆起来。在Linux和UNIX系统上管道的优势是:第一个命令的输出不会写入一个文件而是直接被第二个命令读取。
-
-在下面的操作练习中,我们将会使用这首诗——《A happy child》(匿名作者)
-
-![cat command](http://www.tecmint.com/wp-content/uploads/2014/10/cat-command.png)
-
-cat 命令样例
-
-#### 使用 sed ####
-
-sed是流编辑器(stream editor)的缩写。为那些不懂术语的人额外解释一下,流编辑器是用来在一个输入流(文件或者管道中的输入)执行基本的文本转换的工具。
-
-sed最基本的用法是字符替换。我们将通过把每个出现的小写y改写为大写Y并且将输出重定向到ahappychild2.txt开始。g标志表示sed应该替换文件每一行中所有应当替换的实例。如果这个标志省略了,sed将会只替换每一行中第一次出现的实例。
-
-**基本语法:**
-
-    # sed ‘s/term/replacement/flag’ file
-
-**我们的样例:**
-
-    # sed ‘s/y/Y/g’ ahappychild.txt > ahappychild2.txt
-
-![sed command](http://www.tecmint.com/wp-content/uploads/2014/10/sed-command.png)
-
-sed 命令样例
-
-如果你要在替换文本中搜索或者替换特殊字符(如/,\,&),你需要使用反斜杠对它进行转义。
-
-例如,我们将会用一个符号来替换一个文字。与此同时,我们将把一行最开始出现的第一个I替换为You。
-
-    # sed 's/and/\&/g;s/^I/You/g' ahappychild.txt
-
-![sed replace string](http://www.tecmint.com/wp-content/uploads/2014/10/sed-replace-string.png)
-
-sed 替换字符串
-
-在上面的命令中,^(插入符号)是众所周知用来表示一行开头的正则表达式。
-
-正如你所看到的,我们可以通过使用分号分隔以及用括号包裹来把两个或者更多的替换命令(并在他们中使用正则表达式)链接起来。
-
-另一种sed的用法是显示或者删除文件中选中的一部分。在下面的样例中,将会显示/var/log/messages中从6月8日开始的头五行。
-
-    # sed -n '/^Jun  8/ p' /var/log/messages | sed -n 1,5p
-
-请注意,在默认的情况下,sed会打印每一行。我们可以使用-n选项来覆盖这一行为并且告诉sed只需要打印(用p来表示)文件(或管道)中匹配的部分(第一种情况下行开头的第一个6月8日以及第二种情况下的一到五行*此处翻译欠妥,需要修正*)。
-
-最后,可能有用的技巧是当检查脚本或者配置文件的时候可以保留文件本身并且删除注释。下面的单行sed命令删除(d)空行或者是开头为`#`的行(|字符返回两个正则表达式之间的布尔值)。
-
-    # sed '/^#\|^$/d' apache2.conf
-
-![sed match string](http://www.tecmint.com/wp-content/uploads/2014/10/sed-match-string.png)
-
-sed 匹配字符串
-
-#### uniq C命令 ####
-
-uniq命令允许我们返回或者删除文件中重复的行,默认写入标准输出。我们必须注意到,除非两个重复的行相邻,否则uniq命令不会删除他们。因此,uniq经常和前序排序(此处翻译欠妥)(一种用来对文本行进行排序的算法)搭配使用。默认情况下,排序使用第一个字段(用空格分隔)作为关键字段。要指定一个不同的关键字段,我们需要使用-k选项。
-
-**样例**
-
-du –sch /path/to/directory/* 命令将会以人类可读的格式返回在指定目录下每一个子文件夹和文件的磁盘空间使用情况(也会显示每个目录总体的情况),而且不是按照大小输出,而是按照子文件夹和文件的名称。我们可以使用下面的命令来让它通过大小排序。
-
-    # du -sch /var/* | sort –h
-
-![sort command](http://www.tecmint.com/wp-content/uploads/2014/10/sort-command.jpg)
-
-sort 命令样例
-
-你可以通过使用下面的命令告诉uniq比较每一行的前6个字符(-w 6)(指定了不同的日期)来统计日志事件的个数,而且在每一行的开头输出出现的次数(-c)。
-
-
-    # cat /var/log/mail.log | uniq -c -w 6
-
-![Count Numbers in File](http://www.tecmint.com/wp-content/uploads/2014/10/count-numbers-in-file.jpg)
-
-统计文件中数字
-
-最后,你可以组合使用sort和uniq命令(通常如此)。考虑下面文件中捐助者,捐助日期和金额的列表。假设我们想知道有多少个捐助者。我们可以使用下面的命令来分隔第一字段(字段由冒号分隔),按名称排序并且删除重复的行。
-
-    # cat sortuniq.txt | cut -d: -f1 | sort | uniq
-
-![Find Unique Records in File](http://www.tecmint.com/wp-content/uploads/2014/10/find-uniqu-records-in-file.jpg)
-
-寻找文件中不重复的记录
-
-- 也可阅读: [13个“cat”命令样例][1]
-
-#### grep 命令 ####
-
-grep在文件(或命令输出)中搜索指定正则表达式并且在标准输出中输出匹配的行。
-
-**样例**
-
-显示文件/etc/passwd中用户gacanepa的信息,忽略大小写。
-
-    # grep -i gacanepa /etc/passwd
-
-![grep Command](http://www.tecmint.com/wp-content/uploads/2014/10/grep-command.jpg)
-
-grep 命令样例
-
-显示/etc文件夹下所有rc开头并跟随任意数字的内容。
-
-    # ls -l /etc | grep rc[0-9]
-
-![List Content Using grep](http://www.tecmint.com/wp-content/uploads/2014/10/list-content-using-grep.jpg)
-
-使用grep列出内容
-
-- 也可阅读: [12个“grep”命令样例][2]
-
-#### tr 命令使用技巧 ####
-
-tr命令可以用来从标准输入中翻译(改变)或者删除字符并将结果写入到标准输出中。
-
-**样例**
-
-把sortuniq.txt文件中所有的小写改为大写。
-
-    # cat sortuniq.txt | tr [:lower:] [:upper:]
-
-![Sort Strings in File](http://www.tecmint.com/wp-content/uploads/2014/10/sort-strings.jpg)
-
-排序文件中的字符串
-
-压缩`ls –l`输出中的定界符至一个空格。
-    # ls -l | tr -s ' '
-
-![Squeeze Delimiter](http://www.tecmint.com/wp-content/uploads/2014/10/squeeze-delimeter.jpg)
-
-压缩分隔符
-
-#### cut 命令使用方法 ####
-
-cut命令可以基于字节数(-b选项),字符(-c)或者字段(-f)提取部分输入(从标准输入或者文件中)并且将结果输出到标准输出。在最后一种情况下(基于字段),默认的字段分隔符是一个tab,但不同的分隔符可以由-d选项来指定。
-
-**样例**
-
-从/etc/passwd中提取用户账户和他们被分配的默认shell(-d选项允许我们指定分界符,-f选项指定那些字段将被提取)。
-
-    # cat /etc/passwd | cut -d: -f1,7
-
-![Extract User Accounts](http://www.tecmint.com/wp-content/uploads/2014/10/extract-user-accounts.jpg)
-
-提取用户账户
-
-总结一下,我们将使用最后一个命令的输出中第一和第三个非空文件创建一个文本流。我们将使用grep作为第一过滤器来检查用户gacanepa的会话,然后将分隔符压缩至一个空格(tr -s ' ')。下一步,我们将使用cut来提取第一和第三个字段,最后使用第二个字段(本样例中,指的是IP地址)来排序之后再用uniq去重。
-
-    # last | grep gacanepa | tr -s ‘ ‘ | cut -d’ ‘ -f1,3 | sort -k2 | uniq
-
-![last command](http://www.tecmint.com/wp-content/uploads/2014/10/last-command.png)
-
-last 命令样例
-
-上面的命令显示了如何将多个命令和管道结合起来以便根据我们的愿望得到过滤后的数据。你也可以逐步地使用它以帮助你理解输出是如何从一个命令传输到下一个命令的(顺便说一句,这是一个非常好的学习经验!)
-
-### 总结 ###
-
-尽管这个例子(以及在当前教程中的其他实例)第一眼看上去可能不是非常有用,但是他们是体验在Linux命令行中创建,编辑和操作文件的一个非常好的开始。请随时留下你的问题和意见——不胜感激!
-
-#### 参考链接 ####
-
-- [关于LFCS][3]
-- [为什么需要Linux基金会认证?][4]
-- [注册LFCS考试][5]
-
---------------------------------------------------------------------------------
-
-via: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/
-
-作者:[Gabriel Cánepa][a]
-译者:[Xuanwo](https://github.com/Xuanwo)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://www.tecmint.com/author/gacanepa/
-[1]:http://www.tecmint.com/13-basic-cat-command-examples-in-linux/
-[2]:http://www.tecmint.com/12-practical-examples-of-linux-grep-command/
-[3]:https://training.linuxfoundation.org/certification/LFCS
-[4]:https://training.linuxfoundation.org/certification/why-certify-with-us
-[5]:https://identity.linuxfoundation.org/user?destination=pid/1
\ No newline at end of file

From d23e599510f4a3bcf4f7edc8ced1f65f942410ff Mon Sep 17 00:00:00 2001
From: wxy 
Date: Mon, 28 Mar 2016 09:49:42 +0800
Subject: [PATCH 314/582] PUB:20151109 Install Android On BQ Aquaris Ubuntu
 Phone In Linux

@zpl1025
---
 ...oid On BQ Aquaris Ubuntu Phone In Linux.md | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
 rename {translated/tech => published}/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md (83%)

diff --git a/translated/tech/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md b/published/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md
similarity index 83%
rename from translated/tech/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md
rename to published/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md
index 73397819cd..59946de678 100644
--- a/translated/tech/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md	
+++ b/published/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md	
@@ -4,7 +4,7 @@
 
 如果你正好拥有全球第一支运行 Ubuntu 的手机并且希望将 **BQ Aquaris E4.5 自带的 Ubuntu 系统换成 Android **,那这篇文章能帮你点小忙。
 
-有一万种理由来解释为什么要将 Ubuntu 换成主流 Android OS。其中最主要的一个,就是这个系统本身仍然处于非常早期的阶段,针对的目标用户仍然是开发者和爱好者。不管你的理由是什么,要谢谢 bq 提供的工具,让我们能非常轻松地在 BQ Aquaris 上安装 Android OS。
+有一万种理由来解释为什么要将 Ubuntu 换成主流 Android OS。其中最主要的一个,就是这个系统本身仍然处于非常早期的阶段,针对的目标用户仍然是开发者和爱好者。不管你的理由是什么,要谢谢 BQ 提供的工具,让我们能非常轻松地在 BQ Aquaris 上安装 Android OS。
 
 下面让我们一起看下在 BQ Aquaris 上安装 Android 需要做哪些事情。
 
@@ -20,7 +20,7 @@
 
 #### 第一步:下载 Android 固件 ####
 
-首先是下载可以在 BQ Aquaris E4.5 上运行的 Android 固件。幸运的是我们可以在 bq 的技术支持网站找到。可以从下面的链接直接下载,差不多 650 MB:
+首先是下载可以在 BQ Aquaris E4.5 上运行的 Android 固件。幸运的是我们可以在 BQ 的技术支持网站找到。可以从下面的链接直接下载,差不多 650 MB:
 
 - [下载为 BQ Aquaris E4.5 制作的 Android][1]
 
@@ -28,21 +28,21 @@
 
 我建议去[ bq 的技术支持网站][2]下载最新的固件。
 
-下载完成后解压。在解压后的目录里,找到一个名字是 **MT6582_Android_scatter.txt** 的文件。后面将要用到它。
+下载完成后解压。在解压后的目录里,找到一个名字是 **MT6582\_Android\_scatter.txt** 的文件。后面将要用到它。
 
 #### 第二步:下载刷机工具 ####
 
-bq 已经提供了自己的刷机工具,Herramienta MTK Flash Tool,可以轻松地给设备安装 Andriod 或者 Ubuntu 系统。你可以从下面的链接下载工具:
+BQ 已经提供了自己的刷机工具,Herramienta MTK Flash Tool,可以轻松地给设备安装 Andriod 或者 Ubuntu 系统。你可以从下面的链接下载工具:
 
 - [下载 MTK Flash Tool][3]
 
-考虑到刷机工具在以后可能会升级,你总是可以从[bq 技术支持网站][4]上找到最新的版本。
+考虑到刷机工具在以后可能会升级,你总是可以从 [BQ 技术支持网站][4]上找到最新的版本。
 
 下载完后解压。之后应该可以在目录里找到一个叫 **flash_tool** 的可执行文件。我们稍后会用到。
 
 #### 第三步:移除冲突的软件包(可选) ####
 
-如果你正在用最新版本的 Ubuntu 或 基于 Ubuntu 的 Linux 发行版,稍后可能会碰到 “BROM ERROR : S_UNDEFINED_ERROR (1001)” 错误。
+如果你正在用最新版本的 Ubuntu 或 基于 Ubuntu 的 Linux 发行版,稍后可能会碰到 “BROM ERROR : S\_UNDEFINED\_ERROR (1001)” 错误。
 
 要避免这个错误,你需要卸载有冲突的软件包。可以使用下面的命令:
 
@@ -52,7 +52,7 @@ bq 已经提供了自己的刷机工具,Herramienta MTK Flash Tool,可以轻
 
     sudo service udev restart
 
-检查一下内核模块 cdc_acm 可能存在的边际效应,运行下面的命令:
+检查一下内核模块 cdc_acm 可能存在的副作用,运行下面的命令:
 
     lsmod | grep cdc_acm
 
@@ -76,7 +76,7 @@ bq 已经提供了自己的刷机工具,Herramienta MTK Flash Tool,可以轻
 
 ![Replace Ubuntu with Android](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/11/Install-Android-bq-aquaris-Ubuntu-1.jpeg)
 
-还记得之前第一步里提到的 **MT6582_Android_scatter.txt** 文件吗?这个文本文件就在你第一步中下载的 Android 固件解压后的目录里。点击 Scatter-loading(上图中)然后选中 MT6582_Android_scatter.txt 文件。
+还记得之前第一步里提到的 **MT6582\_Android\_scatter.txt** 文件吗?这个文本文件就在你第一步中下载的 Android 固件解压后的目录里。点击 Scatter-loading(上图中)然后选中 MT6582\_Android\_scatter.txt 文件。
 
 之后,你将看到类似下面图片里的一些绿色线条:
 
@@ -104,7 +104,7 @@ bq 已经提供了自己的刷机工具,Herramienta MTK Flash Tool,可以轻
 
 ### 总结 ###
 
-要感谢厂商提供的工具,让我们可以轻松地 **在 bq Ubuntu 手机上刷 Android**。当然,你可以使用相同的步骤将 Android 替换回 Ubuntu。只是下载的时候选 Ubuntu 固件而不是 Android。
+要感谢厂商提供的工具,让我们可以轻松地 **在  BQ Ubuntu 手机上刷 Android**。当然,你可以使用相同的步骤将 Android 替换回 Ubuntu。只是下载的时候选 Ubuntu 固件而不是 Android。
 
 希望这篇文章可以帮你将你的 bq 手机上的 Ubuntu 刷成 Android。如果有什么问题或建议,可以在下面留言区里讨论。
 
@@ -114,7 +114,7 @@ via: http://itsfoss.com/install-android-ubuntu-phone/
 
 作者:[Abhishek][a]
 译者:[zpl1025](https://github.com/zpl1025)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
 
 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
 

From 15f4d736e0c18c1a7b92edb4c35263b996e4b243 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Mon, 28 Mar 2016 09:58:39 +0800
Subject: [PATCH 315/582] PUB:20151123 How to Install Cockpit in Fedora or
 CentOS or RHEL or Arch Linux

@ictlyh
---
 ... Fedora or CentOS or RHEL or Arch Linux.md | 148 ------------------
 1 file changed, 148 deletions(-)
 delete mode 100644 translated/tech/20151123 How to Install Cockpit in Fedora or CentOS or RHEL or Arch Linux.md

diff --git a/translated/tech/20151123 How to Install Cockpit in Fedora or CentOS or RHEL or Arch Linux.md b/translated/tech/20151123 How to Install Cockpit in Fedora or CentOS or RHEL or Arch Linux.md
deleted file mode 100644
index 38a89dcbc2..0000000000
--- a/translated/tech/20151123 How to Install Cockpit in Fedora or CentOS or RHEL or Arch Linux.md	
+++ /dev/null
@@ -1,148 +0,0 @@
-如何在 Fedora/CentOS/RHEL 或 Arch Linux 上安装 Cockpit
-================================================================================
-Cockpit 是一个免费开源的服务器管理软件,它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器。Cockpit 使得 linux 系统管理员、系统维护员和开发者能轻松地管理他们的服务器并执行一些简单的任务,例如管理存储、检测日志、启动或停止服务以及一些其它任务。它的报告界面添加了一些很好的功能使得可以轻松地在终端和 web 界面之间切换。另外,它不仅使得管理一台服务器变得简单,更重要的是只需要一个单击就可以在一个地方同时管理多个通过网络连接的服务器。它非常轻量级,web 界面也非常简单易用。在这篇博文中,我们会学习如何安装 Cockpit 并用它管理我们的运行着 Fedora、CentOS、Arch Linux 以及 RHEL 发行版操作系统的服务器。下面是 Cockpit 在我们的 GNU/Linux 服务器中一些非常棒的功能:
-
-1. 它包含 systemd 服务管理器。
-2. 有一个用于故障排除和日志分析的 Journal 日志查看器。
-3. 包括 LVM 在内的存储配置比以前任何时候都要简单。
-4. 用 Cockpit 可以进行基本的网络配置。
-5. 可以轻松地添加和删除用户以及管理多台服务器。
-
-### 1. 安装 Cockpit ###
-
-首先,我们需要在我们基于 linux 的服务器上安装 Cockpit。大部分发行版的官方软件仓库中都有可用的 cockpit 安装包。这篇博文中,我们会在 Fedora 22、CentOS 7、Arch Linux 和 RHEL 7 中通过它们的官方软件仓库安装 Cockpit。
-
-#### CentOS / RHEL ####
-
-CentOS 和 RHEL 官方软件库中有可用的 Cockpit。我们只需要用 yum 管理器就可以安装。只需要以 sudo/root 权限运行下面的命令就可以安装它。
-
-    # yum install cockpit
-
-![Centos 上安装 Cockpit](http://blog.linoxide.com/wp-content/uploads/2015/10/install-cockpit-centos.png)
-
-#### Fedora 22/21 ####
-
-和 CentOS 一样, Fedora 的官方软件库默认也有可用的 Cockpit。我们只需要用 dnf 软件包管理器就可以安装 Cockpit。
-
-    # dnf install cockpit
-
-![Fedora 上安装 Cockpit](http://blog.linoxide.com/wp-content/uploads/2015/10/install-cockpit-fedora.png)
-
-#### Arch Linux ####
-
-现在 Arch Linux 官方软件库中还没有可用的 Cockpit,但 Arch 用户库(Arch User Repository,AUR)有。只需要运行下面的 yaourt 命令就可以安装。
-
-    # yaourt cockpit
-
-![Arch linux 上安装 Cockpit](http://blog.linoxide.com/wp-content/uploads/2015/10/install-cockpit-archlinux.png)
-
-### 2. 启动并启用 Cockpit ###
-
-成功安装完 Cockpit,我们就要用服务/守护进程管理器启动 Cockpit 服务。到了 2015 年,尽管一些 linux 发行版仍然运行 SysVinit 管理守护进程,但大部分 linux 发行版都采用了 Systemd,Cockpit 使用 systemd 完成从运行守护进程到服务几乎所有的功能。因此,我们只能在运行着 Systemd 的最新的 linux 发行版中安装 Cockpit。要启动 Cockpit 并让它在每次系统重启时自动启动,我们需要在终端或控制台中运行下面的命令。
-    # systemctl start cockpit
-
-    # systemctl enable cockpit.socket
-
-	创建从 /etc/systemd/system/sockets.target.wants/cockpit.socket 到 /usr/lib/systemd/system/cockpit.socket 的符号链接。
-
-### 3. 允许通过防火墙 ###
-
-启动 Cockpit 并使得它能在每次系统重启时自动启动后,我们现在要给它配置防火墙。由于我们的服务器上运行着防火墙程序,我们需要允许它通过某些端口使得从服务器外面可以访问 Cockpit。
-
-#### Firewalld ####
-
-    # firewall-cmd --add-service=cockpit --permanent
-
-    success
-
-    # firewall-cmd --reload
-
-    success
-
-![允许 Cockpit 通过 Firewalld](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-allowing-firewalld.png)
-
-#### Iptables ####
-
-    # iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-
-    # service iptables save
-
-### 4. 访问 Cockpit Web 界面 ###
-
-下面,我们终于要通过 web 浏览器访问 Cockpit web 界面了。根据配置,我们只需要用浏览器打开 https://ip-address:9090 或 https://server.domain.com:9090。在我们这篇博文中,我们用浏览器打开 https://128.199.114.17:9090,正如下图所示。
-
-![通过 SSL 访问 Cockpit Web 服务](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-webserver-ssl-proceed.png)
-
-此时会出现一个 SSL 认证警告,因为我们正在使用一个自签名认证。我们只需要忽略这个警告并进入到登录页面,在 chrome/chromium 中,我们需要点击 Show Advanced 然后点击 **Proceed to 128.199.114.17 (unsafe)**。
-
-![Cockpit 登录界面](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-login-screen.png)
-
-现在,要进入仪表盘,我们需要输入详细的登录信息。这里,用户名和密码和用于登录我们的 linux 服务器的用户名和密码相同。当我们输入登录信息并点击 Log In 按钮后,我们就会进入到 Cockpit 仪表盘。
-
-![Cockpit 仪表盘](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-dashboard.png)
-
-这里我们可以看到所有的菜单以及 CPU、磁盘、网络、存储使用情况的可视化结果。仪表盘正如上图所示。
-
-#### 服务 ####
-
-要管理服务,我们需要点击 web 页面右边菜单中的 Services 按钮。然后,我们会看到服务被分成了 5 个类别,目标、系统服务、套接字、计时器和路径。
-
-![Cockpit 服务](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-services.png)
- 
-#### Docker 容器 ####
-
-我们甚至可以用 Cockpit 管理 docker 容器。用 Cockpit 监控和管理 Docker 容器非常简单。由于我们的服务器中没有安装运行 docker,我们需要点击 Start Docker。
-
-
-![Cockpit 容器](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-container.png)
-
-Cockpit 会自动在我们的服务器上安装和运行 docker。启动之后,我们就会看到下面的截图。然后我们就可以按照需求管理 docker 镜像、容器。
-
-![Cockpit 容器管理](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-containers-mangement.png)
-
-#### Journal 日志查看器 ####
-
-Cockpit 有个日志查看器,它把错误、警告、注意分到不同的标签页。我们也有一个 All 标签页,在这里可以看到所有的日志信息。
-
-![Cockpit Journal 日志](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-journal-logs.png)
-
-#### 网络 ####
-
-在网络部分,我们可以看到两个可视化发送和接收速度的图。我们可以看到这里有一个可用网卡的列表,还有 Add Bond、Bridge、VLAN 的选项。如果我们需要配置一个网卡,我们只需要点击网卡名称。在下面,我们可以看到网络的 Journal 日志信息。
-
-![Cockpit Network](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-network.png)
-
-#### 存储 ####
-
-现在,用 Cockpit 可以方便地查看硬盘的读写速度。我们可以查看存储的 Journal 日志以便进行故障排除和修复。在页面中还有一个已用空间的可视化图。我们甚至可以卸载、格式化、删除一块硬盘的某个分区。它还有类似创建 RAID 设备、卷组等攻能。
-
-![Cockpit Storage](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-storage.png)
-
-#### 用户管理 ####
-
-通过 Cockpit Web 界面我们可以方便地创建新用户。在这里创建的账户会应用到系统用户账户。我们可以用它更改密码、指定角色、以及删除用户账户。
-
-![Cockpit Accounts](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-accounts.png)
-
-#### 实时终端 ####
-
-Cockpit 还有一个很棒的特性。是的,我们可以执行命令,用 Cockpit 界面提供的实时终端执行任务。这使得我们可以根据我们的需求在 web 界面和终端之间自由切换。
-
-![Cockpit 终端](http://blog.linoxide.com/wp-content/uploads/2015/10/cockpit-terminal.png)
-
-### 总结 ###
-
-Cockpit 是由 [Red Hat][1] 开发的使得管理服务器变得轻松简单的免费开源软件。它非常适合于进行简单的系统管理任务和新手系统管理员。它仍然处于开发阶段,还没有稳定版发行。因此不适合于生产环境。它是针对最新的默认安装了 systemd 的 Fedora、CentOS、Arch Linux、RHEL 系统开发的。如果你想在 Ubuntu 上安装 Cockpit,你可以通过 PPA 访问,但现在已经过期了。如果你有任何疑问、建议,请在下面的评论框中反馈给我们,这样我们可以改进和更新我们的内容。非常感谢 ! 
-
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/linux-how-to/install-cockpit-fedora-centos-rhel-arch-linux/
-
-作者:[Arun Pyasi][a]
-译者:[ictlyh](http://mutouxiaogui.cn/blog/)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/arunp/
-[1]:http://www.redhat.com/
\ No newline at end of file

From da1e4e1140dad46bd2546efcb16d80ee1afa28e0 Mon Sep 17 00:00:00 2001
From: wxy 
Date: Tue, 29 Mar 2016 05:36:33 +0800
Subject: [PATCH 316/582] PUB:Part 2 - LFCS--How to Install and Use vi or vim
 as a Full Text Editor.md

@GHLandy
---
 ...and Use vi or vim as a Full Text Editor.md | 251 +++++++++++
 ...and Use vi or vim as a Full Text Editor.md | 392 ------------------
 2 files changed, 251 insertions(+), 392 deletions(-)
 create mode 100644 published/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md
 delete mode 100644 translated/tech/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md

diff --git a/published/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md b/published/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md
new file mode 100644
index 0000000000..d7d962de0f
--- /dev/null
+++ b/published/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md	
@@ -0,0 +1,251 @@
+LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim
+================================================================================
+
+几个月前, Linux 基金会发起了 LFCS (Linux Foundation Certified System administrator,Linux 基金会认证系统管理员)认证,以帮助世界各地的人来验证他们能够在 Linux 系统上做从基础的到中级的系统管理任务:如系统支持、第一手的故障诊断和处理、以及何时向上游支持团队提出问题的智能决策。
+
+![Learning VI Editor in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/LFCS-Part-2.png)
+
+*在 Linux 中学习 vi 编辑器*
+
+请简要看看一下视频,里边介绍了 Linux 基金会认证的程序。
+
+注:youtube 视频
+
+
+
+这篇文章是系列教程的第二讲,在这个部分中,我们会介绍 vi/vim 基本的文件编辑操作,帮助读者理解编辑器中的三个模式,这是 LFCS 认证考试中必须掌握的。
+
+### 使用 vi/vim 执行基本的文件编辑操作 ###
+
+vi 是为 Unix 而生的第一个全屏文本编辑器。它的设计小巧简单,对于仅仅使用过诸如 NotePad++ 或 gedit 等图形界面的文本编辑器的用户来说,使用起来可能存在一些困难。
+
+为了使用 vi,我们必须首先理解这个强大的程序操作中的三种模式,方便我们后边学习这个强大的文本处理软件的相关操作。
+
+请注意,大多数的现代 Linux 发行版都集成了 vi 的变种——— vim(Vi IMproved,改进版 VI),相比于 vi,它有更多新功能。所以,我们会在本教程中交替使用 vi 和 vim。
+
+如果你的发行版还没有安装 vim,你可以通过以下方法来安装:
+
+- Ubuntu 及其衍生版:apt-get update && apt-get install vim
+- 以 Red-Hat 为基础的发行版:yum update && yum install vim
+- openSUSE :zypper update && zypper install vim
+
+### 我为什么要学习 vi ###
+
+至少有以下两个理由:
+
+1. 因为它是 POSIX 标准的一部分,所以不管你使用什么发行版 vi 总是可用的。
+
+2. vi 基本不消耗多少系统资源,并且允许我们仅仅通过键盘来完成任何可能的任务。
+
+此外,vi 有着非常丰富的内置帮助手册,程序打开后就可以通过 `:help` 命令来查看。这个内置帮助手册比 vi/vim 的 man 页面包含了更多信息。
+
+![vi Man Pages](http://www.tecmint.com/wp-content/uploads/2014/10/vi-man-pages.png)
+
+*vi Man 页面*
+
+#### 启动 vi ####
+
+可以通过在命令提示符下输入 vi 来启动。
+
+![Start vi Editor](http://www.tecmint.com/wp-content/uploads/2014/10/start-vi-editor.png)
+
+*使用 vi 编辑器*
+
+然后按下字母 i,你就可以开始输入了。或者通过下面的方法来启动 vi:
+
+    # vi filename
+
+这样会打开一个名为 filename 的缓存区(buffer)(稍后会详细介绍缓存区),在你编辑完成之后就可以存储在磁盘中了。
+
+#### 理解 vi 的三个模式 ####
+
+1. 在命令(command)模式中,vi 允许用户浏览该文件并输入由一个或多个字母组成的、简短的、大小写敏感的 vi 命令。这些命令的大部分都可以增加一个前缀数字表示执行次数。
+
+	比如:`yy`(或`Y`) 复制当前的整行,`3yy`(或`3Y`) 复制当前整行和下边紧接着的两行(总共3行)。通过 `Esc` 键可以随时进入命令模式(而不管当前工作在什么模式下)。事实上,在命令模式下,键盘上所有的输入都被解释为命令而非文本,这往往使得初学者困惑不已。
+
+2. 在末行(ex)模式中,我们可以处理文件(包括保存当前文件和运行外部程序)。我们必须在命令模式下输入一个冒号(`:`),才能进入这个模式,紧接着是要在末行模式下使用的命令。执行之后 vi 自动回到命令模式。
+
+3. 在文本输入(insert)模式(通常在命令模式下使用字母 `i` 进入这个模式)中,我们可以随意输入文本。大多数的键入将以文本形式输出到屏幕(一个重要的例外是`Esc`键,它将退出文本编辑模式并回到命令模式)。
+
+![vi Insert Mode](http://www.tecmint.com/wp-content/uploads/2014/10/vi-insert-mode.png)
+
+*vi 文本插入模式*
+
+#### vi 命令 ####
+
+下面的表格列出常用的 vi 命令。文件编辑的命令可以通过添加叹号的命令强制执行(如,`:q!` 命令强制退出编辑器而不保存文件)。
+
+|关键命令|描述|
+|------|:--:|
+|`h` 或 ←|光标左移一个字符|
+|`j` 或 ↓|光标下移一行|
+|`k` 或 ↑|光标上移一行|
+|`l` (小写字母 L) 或 →|光标右移一个字符|
+|`H`|光标移至屏幕顶行|
+|`L`|光标移至屏幕末行|
+|`G`|光标移至文件末行|
+|`w`|光标右移一个词|
+|`b`|光标左移一个词|
+|`0` (数字零)|光标移至行首|
+|`^`|光标移至当前行第一个非空格字符|
+|`$`|光标移至当前行行尾|
+|`Ctrl-B`|向后翻页|
+|`Ctrl-F`|向前翻页|
+|`i`|在光标所在位置插入文本|
+|`I` (大写字母 i)|在当前行首插入文本|
+|`J` (大写字母 j)|将下一行与当前行合并(下一行上移到当前行)|
+|`a`|在光标所在位置后追加文本|
+|`o` (小写字母 O)|在当前行下边插入空白行|
+|`O` (大写字母 O)|在当前行上边插入空白行|
+|`r`|替换光标所在位置的一个字符|
+|`R`|从光标所在位置开始覆盖插入文本|
+|`x`|删除光标所在位置的字符|
+|`X`|立即删除光标所在位置之前(左边)的一个字符|
+|`dd`|剪切当前整行文本(为了之后进行粘贴)|
+|`D`|剪切光标所在位置到行末的文本(该命令等效于 `d$`)|
+|`yX`|给出一个移动命令 X (如 `h`、`j`、`H`、`L` 等),复制适当数量的字符、单词或者从光标开始到一定数量的行|
+|`yy` 或 `Y`|复制当前整行|
+|`p`|粘贴在光标所在位置之后(下一行)|
+|`P`|粘贴在光标所在位置之前(上一行)
+|`.` (句点)|重复最后一个命令|
+|`u`|撤销最后一个命令|
+|`U`|撤销最后一行的最后一个命令,只有光标仍在最后一行才能执行。|
+|`n`|在查找中跳到下一个匹配项|
+|`N`|在查找中跳到前一个匹配项|
+|`:n`|下一个文件,编辑多个指定文件时,该命令加载下一个文件。|
+|`:e file`|加载新文件来替代当前文件|
+|`:r file`|将新文件的内容插入到光标所在位置的下一行|
+|`:q`|退出并放弃更改|
+|`:w file`|将当期打开的缓存区保存为file。如果是追加到已存在的文件中,则使用 :`w >> file` 命令|
+|`:wq`|保存当前文件的内容并退出。等效于 `x!` 和 `ZZ`|
+|`:r! command`|执行 command 命令,并将命令的输出插入到光标所在位置的下一行|
+
+#### vi 选项 ####
+
+下列选项可以让你在运行 Vim 的时候很方便(需要写入到 `~/.vimrc` 文件):
+
+    # echo set number >> ~/.vimrc
+    # echo syntax on >> ~/.vimrc
+    # echo set tabstop=4 >> ~/.vimrc
+    # echo set autoindent >> ~/.vimrc
+
+![vi Editor Options](http://www.tecmint.com/wp-content/uploads/2014/10/vi-options.png)
+
+*vi编辑器选项*
+
+- set number 当 vi 打开或新建文件时,显示行号。
+- syntax on 打开语法高亮(对应多个文件扩展名),以便源码文件和配置文件更具可读性。
+- set tabstop=4 设置制表符间距为 4 个空格(默认为 8)。
+- set autoindent 将前一行的缩进应用于下一行。 
+
+#### 查找和替换 ####
+
+vi 具有通过查找将光标移动到(在单独一行或者整个文件中的)指定位置。它还可自动或者通过用户确认来执行文本替换。
+
+a) 在行内查找。`f` 命令在当前行查找指定字符,并将光标移动到指定字符出现的位置。
+
+例如,命令 `fh` 会在本行中将光标移动到字母`h`下一次出现的位置。注意,字母 `f` 和你要查找的字符都不会出现在屏幕上,但是当你按下回车的时候,要查找的字符会被高亮显示。
+
+比如,以下是在命令模式按下 `f4` 之后的结果。
+
+![Search String in Vi](http://www.tecmint.com/wp-content/uploads/2014/10/vi-search-string.png)
+
+*在 vi 中查找字符*
+
+b) 在整个文件内查找。使用 `/` 命令,紧接着需要查找的单词或短语。这个查找可以通过使用 `n` 命令或者 `N` 重复查找上一个查找的字符串。以下是在命令模式键入 `/Jane` 的查找结果。
+
+![Vi Search String in File](http://www.tecmint.com/wp-content/uploads/2014/10/vi-search-line.png)
+
+*在 vi 中查找字符*
+
+c) vi 通过使用命令来完成多行或者整个文件的替换操作(类似于 sed)。我们可以使用以下命令,使得整个文件中的单词 “old” 替换为 “young”。
+
+    :%s/old/young/g
+
+**注意**:冒号位于命令的最前面。
+
+![Vi Search and Replace](http://www.tecmint.com/wp-content/uploads/2014/10/vi-search-and-replace.png)
+
+*vi 的查找和替换*
+
+冒号 (`:`) 进入末行模式,在本例中 `s` 表示替换,`%` 是从第一行到最后一行的表示方式(也可以使用 nm 表示范围,即第 n 行到第 m 行),old 是查找模式,young 是用来替换的文本,`g` 表示在每个查找出来的字符串都进行替换。
+
+另外,在命令最后增加一个 `c`,可以在每一个匹配项替换前进行确认。
+
+    :%s/old/young/gc
+
+将旧文本替换为新文本前,vi/vim 会向我们显示以下信息:
+
+![Replace String in Vi](http://www.tecmint.com/wp-content/uploads/2014/10/vi-replace-old-with-young.png)
+
+*vi 中替换字符串*
+
+- `y`: 执行替换(yes)
+- `n`: 跳过这个匹配字符的替换并转到下一个(no)
+- `a`: 在当前匹配字符及后边的相同项全部执行替换
+- `q` 或 `Esc`: 取消替换
+- `l` (小写 L): 执行本次替换并退出
+- `Ctrl-e`, `Ctrl-y`: 下翻页,上翻页,查看相应的文本来进行替换
+
+#### 同时编辑多个文件 ####
+
+我们在命令提示符输入 vim file1 file2 file3 如下:
+
+    # vim file1 file2 file3
+
+vim 会首先打开 file1,要跳到 file2 需用 :n 命令。当需要打开前一个文件时,:N 就可以了。
+
+为了从 file1 跳到 file3
+
+a) `:buffers` 命令会显示当前正在编辑的文件列表
+
+    :buffers
+
+![Edit Multiple Files](http://www.tecmint.com/wp-content/uploads/2014/10/vi-edit-multiple-files.png)
+
+*编辑多个文件*
+
+b) `:buffer 3` 命令(后边没有 s)会打开第三个文件 file3 进行编辑。
+
+在上边的图片中,标记符号 `#` 表示该文件当前已被打开,但是是在后台,而 `%a` 标记的文件是正在被编辑的。另外,文件号(如上边例子的 3)后边的空格表示该文件还没有被打开。
+
+#### vi 的临时缓存区 ####
+
+为了复制连续的多行(比如,假设为 4 行)到一个名为 a 的临时缓存区(与文件无关),并且还要将这些行粘贴到在当前 vi 会话文件中的其它位置,我们需要:
+
+1. 按下 `Esc` 键以确认 vi 处在命令模式
+
+2. 将光标放在我们希望复制的第一行文本
+
+3. 输入 `a4yy` 复制当前行和接下来的 3 行,进入一个名为 a 的缓存区。我们可以继续编辑我们的文件————我们不需要立即插入刚刚复制的行。
+
+4. 当到了需要使用刚刚复制的那些行的位置,在 `p`(小写)或 `P`(大写)命令前使用`a`来将复制行插入到名为 a 的 缓存区:
+	- 输入 `ap`,复制行将插入到光标位置所在行的下一行。
+	- 输入 `aP`,复制行将插入到光标位置所在行的上一行。
+
+如果愿意,我们可以重复上述步骤,将缓存区 a 中的内容插入到我们文件的多个位置。像本节中这样的一个临时缓存区,会在当前窗口关闭时释放掉。
+
+### 总结 ###
+
+像我们看到的一样,vi/vim 在命令接口下是一个强大而灵活的文本编辑器。通过以下链接,随时分享你自己的技巧和评论。
+
+#### 参考链接 ####
+
+- [关于 LFCS][1]
+- [为什么需要 Linux 基金会认证?][2]
+- [注册 LFCS 考试][3]
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/vi-editor-usage/
+
+作者:[Gabriel Cánepa][a]
+译者:[GHLandy](https://github.com/GHLandy)
+校对:[东风唯笑](https://github.com/dongfengweixiao), [wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/gacanepa/
+[1]:https://training.linuxfoundation.org/certification/LFCS
+[2]:https://training.linuxfoundation.org/certification/why-certify-with-us
+[3]:https://identity.linuxfoundation.org/user?destination=pid/1
diff --git a/translated/tech/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md b/translated/tech/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md
deleted file mode 100644
index c7f3d5140c..0000000000
--- a/translated/tech/LFCS/Part 2 - LFCS--How to Install and Use vi or vim as a Full Text Editor.md	
+++ /dev/null
@@ -1,392 +0,0 @@
-GHLandy Translated
-
-LFCS系列第二讲:如何安装和使用纯文本编辑器vi/vim
-
-================================================================================
-
-几个月前, Linux 基金会发起了 LFCS (Linux Foundation Certified System administrator,Linux 基金会认证系统管理员)认证,以帮助世界各地的人来验证他们能够在 Linux 系统上做基本的中间系统管理任务:如系统支持,第一手的故障诊断和处理,以及何时向上游支持团队提出问题的智能决策。
-
-![Learning VI Editor in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/LFCS-Part-2.png)
-
-在 Linux 中学习 vi 编辑器
-
-请简要看看一下视频,里边介绍了 Linux 基金会认证的程序。
-
-注:youtube 视频
-
-
-
-这篇文章是《十个教程》系列的第二部分,在这个部分,我们会介绍 vi/vim 基本的文件编辑操作,帮助读者理解编辑器中的三个模式,这是LFCS认证考试中必须掌握的。
-
-### 使用 vi/vim 执行基本的文件编辑操作 ###
-
-vi 是为 Unix 而生的第一个全屏文本编辑器。它的设计小巧简单,对于仅仅使用过诸如 NotePad++ 或 gedit 等图形界面的文本编辑器的用户来说,使用起来可能存在一些困难。
-
-为了使用 vi,我们必须首先理解这个强大的程序操作中的三种模式,方便我们后边学习这个强大的文本处理软件的相关操作。
-
-请注意,大多数的现代 Linux 发行版都集成了 vi 的变种——— vim(Vi IMproved,VI 的改进),相比于 vi,它有更多新功能。所以,我们会在本教程中交替使用 vi 和 vim。
-
-如果你的发行版还没有安装 vim,你可以通过以下方法来安装:
-
-- Ubuntu 及其衍生版:apt-get update && apt-get install vim
-- 以 Red-Hat 为基础的发行版:yum update && yum install vim
-- openSUSE :zypper update && zypper install vim
-
-### 我为什么要学习 vi ###
-
-至少有以下两个理由:
-
-1.因为它是 POSIX 标准的一部分,所以不管你使用什么发行版 vi 总是可用的。
-
-2.vi 基本不消耗多少系统资源,并且允许我们仅仅通过键盘来完成任何可能的任务。
-
-此外,vi 有的非常丰富的内置帮助手册,程序打开后就可以通过 :help 命令来查看。这个内置帮助手册比 vi/vim 的 man 页面包含了更多信息。
-
-![vi Man Pages](http://www.tecmint.com/wp-content/uploads/2014/10/vi-man-pages.png)
-
-vi Man 页面
-
-#### 启动 vi ####
-
-可以通过在命令提示符下输入 vi 来启动。
-
-![Start vi Editor](http://www.tecmint.com/wp-content/uploads/2014/10/start-vi-editor.png)
-
-使用 vi 编辑器
-
-然后按下字母 i,你就可以开始输入了。或者通过下面的方法来启动 vi:
-
-    # vi filename
-
-这样会打开一个名为 filename 的 buffer(稍后详细介绍 buffer),在你编辑完成之后就可以存储在磁盘中了。
-
-#### 理解 vi 的三个模式 ####
-
-1.在命令模式中,vi 允许用户浏览该文件并输入由一个或多个字母组成简短的、大小写敏感的 vi 命令。这些命令的大部分都可以增加一个前缀数字表示执行次数。
-
-比如:yy(或Y) 复制当前的整行,3yy(或3Y) 复制当前整行和下边紧接着的两行(总共3行)。通过 Esc 键可以随时进入命令模式(而不管当前工作在什么模式下)。事实上,在命令模式下,键盘上所有的输入都被解释为命令而非文本,这往往使得初学者困惑不已。
-
-2.在末行模式中,我们可以处理文件(包括保存当前文件和运行外部程序)。我们必须在命令模式下输入一个冒号(:),才能进入这个模式,紧接着是需要使用的末行模式下的命令。执行之后 vi 自动回到命令模式。
-
-3.在文本输入模式(通常使用字母  i 进入这个模式)中,我们可以随意输入文本。大多数的键入将以文本形式输出到屏幕(一个重要的例外是Esc键,它将退出文本编辑模式并回到命令模式)。
-
-![vi Insert Mode](http://www.tecmint.com/wp-content/uploads/2014/10/vi-insert-mode.png)
-
-vi 文本插入模式
-
-#### vi 命令 ####
-
-下面的表格列出常用的 vi 命令。文件版本的命令可以通过添加叹号的命令强制执行(如,:q! 命令强制退出编辑器而不保存文件)。
-
-注:表格
-
-  -  
-  -  
-  
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-    
-      
-      
-    
-  
-
 关键命令 描述
 h 或 ← 光标左移一个字符
 j 或 ↓ 光标下移一行
 k 或 ↑ 光标上移一行
 l (小写 L) 或 → 光标右移一个字符
 H 光标移至屏幕顶行
 L 光标移至屏幕末行
 G 光标移至文件末行
 w 光标右移一个词
 b 光标左移一个词
 0 (零) 光标移至行首
 ^ 光标移至当前行第一个非空格字符
 $ 光标移至当前行行尾
 Ctrl-B 向后翻页
 Ctrl-F 向前翻页
 i 在光标所在位置插入文本
 I (大写 i) 在当前行首插入文本
 J (大写 j) 将下一行与当前行合并(下一行上移到当前行)
 a 在光标所在位置后追加文本
 o (小写 O) 在当前行下边插入空白行
 O (大写 o) 在当前行上边插入空白行
 r 替换光标所在位置的字符
 R 光标所在位置覆盖插入文本
 x 删除光标所在位置的字符
 X 立即删除光标所在位置之前(左边)的一个字符
 dd 剪切当前整行文本(为了之后进行粘贴)
 D 剪切光标所在位置到行末的文本(该命令等效于 d$)
 yX 给 X 命令一个移动长度,复制适当数量的字符、单词或者从光标开始到一定数量的行
 yy 或 Y 复制当前整行
 p 粘贴在光标所在位置之后(下一行)
 P 粘贴在光标所在位置之前(上一行)
 . (句点) 重复最后一个命令
 u 撤销最后一个命令
 U 撤销最后一行的最后一个命令,只有光标仍在最后一行才能执行。
 n 在查找中跳到下一个匹配项
 N 在查找中跳到前一个匹配项
 :n 下一个文件,编辑多个指定文件时,该命令加载下一个文件。
 :e file 加载新文件来替代当前文件
 :r file 将新文件的内容插入到光标所在位置的下一行
 :q 退出并放弃更改
 :w file 将当期打开的buffer保存为file。如果是追加到已存在的文件中,则使用 :w >> file 命令
 :wq 保存当前文件的内容并退出。等效于 x! 和 ZZ
 :r! command 执行 command 命令,并将命令的输出插入到光标所在位置的下一行
- -#### vi 选项 #### - -下列选项将会在启动 Vim 的时候进行加载(需要写入到~/.vimrc文件): - - # echo set number >> ~/.vimrc - # echo syntax on >> ~/.vimrc - # echo set tabstop=4 >> ~/.vimrc - # echo set autoindent >> ~/.vimrc - -![vi Editor Options](http://www.tecmint.com/wp-content/uploads/2014/10/vi-options.png) - -vi编辑器选项 - -- set number 当 vi 打开或新建文件时,显示行号。 -- syntax on 打开语法高亮(对应多个文件扩展名),以便源码文件和配置文件更具可读性。 -- set tabstop=4 设置制表符间距为 4 个空格(默认为 8)。 -- set autoindent 将前一行的缩进应用于下一行。 - -#### 查找和替换 #### - -vi 具有通过查找将光标移动到(在单独一行或者整个文件中的)指定位置。它还可自动或者通过用户确认来执行文本替换。 - -a) 在行内查找。f 命令在当前行查找指定字符,并将光标移动到指定字符出现的位置。 - -例如,命令 fh 会在本行中将光标实例字母h出现的位置。注意,字母 f 和你要查找的字符都不会出现在屏幕上,但是当你按下回车的时候,要查找的字符会被高亮显示。 - -比如,以下是在命令模式按下 f4 之后的结果。 - -![Search String in Vi](http://www.tecmint.com/wp-content/uploads/2014/10/vi-search-string.png) - -在 vi 中查找字符。 - -b) 在整个文件内查找。使用 / 命令,紧接着需要查找的单词或短语。这个查找可以通过使用 n 命令或者 N 重复查找上一个查找的字符串。以下是在命令模式键入 /Jane 的查找结果。 - -![Vi Search String in File](http://www.tecmint.com/wp-content/uploads/2014/10/vi-search-line.png) - -在vi中查找字符 - -c) vi 通过使用命令来完成多行或者整个文件的替换操作(类似于 sed)。我们可以使用以下命令,使得整个文件中的单词 “old” 替换为 “young”。 - - :%s/old/young/g - -**注意**:冒号位于命令的最前面。 - -![Vi Search and Replace](http://www.tecmint.com/wp-content/uploads/2014/10/vi-search-and-replace.png) - -vi 的查找和替换 - -冒号 (:) 进入末行模式,在本例中 s 表示替换,% 是从第一行到最后一行的表示方式(也可以使用 nm 表示范围,即第 n 行到第 m 行),old 是查找模式,young 是用来替换的文本,g 表示在每个查找出来的字符串都进行替换。 - -另外,在命令最后增加一个 c,可以在每一个匹配项替换前进行确认。 - - :%s/old/young/gc - -将就文本替换为新文本前,vi/vim 会想我们显示一下信息: - -![Replace String in Vi](http://www.tecmint.com/wp-content/uploads/2014/10/vi-replace-old-with-young.png) - -vi 中替换字符串 - -- y: 执行替换(yes) -- n: 跳过这个匹配字符的替换并转到下一个(no) -- a: 在当前匹配字符及后边的相同项全部执行替换 -- q 或 Esc: 取消替换 -- l (小写 L): 执行本次替换并退出 -- Ctrl-e, Ctrl-y: 下翻页,上翻页,查看相应的文本来进行替换 - -#### 同时编辑多个文件 #### - -我们在命令提示符输入 vim file1 file2 file3 如下: - - # vim file1 file2 file3 - -vim 会首先打开 file1,要跳到 file2 需用 :n 命令。当需要打开前一个文件时,:N 就可以了。 - -为了从 file1 跳到 file3 - -a) :buffers 命令会显示当前正在编辑的文件列表 - - :buffers - -![Edit Multiple Files](http://www.tecmint.com/wp-content/uploads/2014/10/vi-edit-multiple-files.png) - -编辑多个文件 - -b) :buffer 3 命令(后边没有 s)会打开 file 进行编辑。 - -在上边的图片中,标记符号 # 表示该文件当前已被打开在后台,而 %a 标记的文件是正在被编辑的。另外,文件号(如上边例子的 3)后边的空格表示该文件还没有被打开。 - -#### vi 的临时 buffers #### - -为了复制连续的多行(比如,假设为 4 行)到一个名为 a 的临时 buffer(与文件无关),并且还要将这些行粘贴到在当前 vi 会话文件中的其它位置,我们需要: - -1. 按下 Esc 键以确认 vi 处在命令模式 - -2. 将光标放在我们希望复制的第一行文本 - -3. 输入 a4yy 复制当前行和接下来的 3 行,进入一个名为 a 的 buffer。我们一继续编辑我们的文件————我们不需要立即插入刚刚复制的行。 - -4. 当到了需要使用刚刚复制行的位置,在 p(小写)或 P(大写)命令来讲复制行插入到名为 a 的 buffer: - -- 输入 ap,复制行将插入到光标位置所在行的下一行。 -- 输入 aP,复制行将插入到光标位置所在行的上一行。 - -如果愿意,我们可以重复上述步骤,将 buffer a 中的内容插入到我们文件的多个位置。一个临时 buffer,像本次会话中的一样,会在当前窗口关闭时释放掉。 - -### 总结 ### - -像我们看到的一样,vi/vim 在命令接口下是一个强大而灵活的文本编辑器。通过以下链接,随时分享你自己的技巧和评论。 - -#### 参考链接 #### - -- [About the LFCS][1] -- [Why get a Linux Foundation Certification?][2] -- [Register for the LFCS exam][3] - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/vi-editor-usage/ - -作者:[Gabriel Cánepa][a] -译者:[GHLandy](https://github.com/GHLandy) -校对:[东风唯笑](https://github.com/dongfengweixiao) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.tecmint.com/author/gacanepa/ -[1]:https://training.linuxfoundation.org/certification/LFCS -[2]:https://training.linuxfoundation.org/certification/why-certify-with-us -[3]:https://identity.linuxfoundation.org/user?destination=pid/1 From 0f4e053413e6ba48b212bdb3a66a575a2e236c2b Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 30 Mar 2016 06:02:14 +0800 Subject: [PATCH 317/582] PUB:Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md @GHLandy --- ...e Attributes and Finding Files in Linux.md | 216 +++++------------- 1 file changed, 62 insertions(+), 154 deletions(-) rename {translated/tech => published}/LFCS/Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md (52%) diff --git a/translated/tech/LFCS/Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md b/published/LFCS/Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md similarity index 52% rename from translated/tech/LFCS/Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md rename to published/LFCS/Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md index 876fa4d3af..d99008cc29 100644 --- a/translated/tech/LFCS/Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md +++ b/published/LFCS/Part 3 - LFCS--How to Archive or Compress Files and Directories Setting File Attributes and Finding Files in Linux.md @@ -1,165 +1,72 @@ -GHLandy Translated - -LFCS 系列第三讲:如何在 Linux 中归档/压缩文件及目录、设置文件属性和搜索文件 - +LFCS 系列第三讲:归档/压缩文件及目录、设置文件属性和搜索文件 ================================================================================ -最近,Linux 基金会发起了 一个全新的 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证,旨在让遍布全世界的人都有机会参加该认证的考试,并且通过考试的人将会得到关于他们有能力在 Linux 上执行基本的中间系统管理任务的认证证书。这项认证包括了对已运行的系统和服务的支持、一流水平的问题解决和分析以及决定何时将问题反映给工程师团队的能力。 + +最近,Linux 基金会发起了一个全新的 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证,旨在让遍布全世界的人都有机会参加该认证的考试,通过考试的人将表明他们有能力在 Linux 上执行基本的中级系统管理任务。这项认证包括了对已运行的系统和服务的支持、一流水平的问题解决和分析以及决定何时将问题反映给工程师团队的能力。 ![Linux Foundation Certified Sysadmin – Part 3](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-3.png) -LFCS 系列第三讲 +*LFCS 系列第三讲* 请看以下视频,这里边讲给出 Linux 基金会认证程序的一些想法。 注:youtube 视频 -本讲是《十套教程》系列中的第三讲,在这一讲中,我们会涵盖如何在文件系统中归档/压缩文件及目录、设置文件属性和搜索文件等内容,这些都是 LFCS 认证中必须掌握的知识。 +本讲是系列教程中的第三讲,在这一讲中,我们会涵盖如何在文件系统中归档/压缩文件及目录、设置文件属性和搜索文件等内容,这些都是 LFCS 认证中必须掌握的知识。 ### 归档和压缩的相关工具 ### -文件归档工具将一堆文件整合到一个单独的归档文件之后,我们可以将归档文件备份到不同类型的媒介或者通过网络传输和发送 Email 来备份。在 Linux 中使用频率最高的归档实用工具是 tar。当归档工具和压缩工具一起使用的时候,可以减少同一文件和信息在硬盘中的存储空间。 +文件归档工具将一堆文件整合到一个单独的归档文件之后,我们可以将归档文件备份到不同类型的介质或者通过网络传输和发送 Email 来备份。在 Linux 中使用频率最高的归档实用工具是 tar。当归档工具和压缩工具一起使用的时候,可以减少同一文件和信息在硬盘中的存储空间。 #### tar 使用工具 #### -tar 将一组文件打包到一个单独的归档文件(通常叫做 tar 文件或者 tarball)。tar 这个名称最初代表磁带存档程序(tape archiver),但现在我们可以用它来归档任意类型的可读写媒介上边的数据,而不是只能归档磁带数据。tar 通常与 gzip、bzip2 或者 xz 等压缩工具一起使用,生成一个压缩的 tarball。 +tar 将一组文件打包到一个单独的归档文件(通常叫做 tar 文件或者 tarball)。tar 这个名称最初代表磁带存档程序(tape archiver),但现在我们可以用它来归档任意类型的可读写介质上边的数据,而不是只能归档磁带数据。tar 通常与 gzip、bzip2 或者 xz 等压缩工具一起使用,生成一个压缩的 tarball。 **基本语法:** # tar [选项] [路径名 ...] -其中 ... 代表指定那些文件进行归档操作的表达式 +其中 ... 代表指定哪些文件进行归档操作的表达式 #### tar 的常用命令 #### -注:表格 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
长选项简写描述
 –create c 创建 tar 归档文件
 –concatenate A 将一存档与已有的存档合并
 –append r 把要存档的文件追加到归档文件的末尾
 –update u 更新新文件到归档文件中去
 –diff 或 –compare d 比较存档与当前文件的不同之处
 –file archive f 使用档案文件或设备
 –list t 列出 tarball 中的内容
 –extract 或 –get x 从归档文件中释放文件
+ +|长选项|简写|描述| +|-----|:---:|:---| +| -create| c| 创建 tar 归档文件| +| -concatenate| A| 将一存档与已有的存档合并| +| -append| r| 把要存档的文件追加到归档文件的末尾| +| -update| u| 更新新文件到归档文件中去| +| -diff 或 -compare| d| 比较存档与当前文件的不同之处| +| -file archive| f| 使用档案文件或归档设备| +| -list| t| 列出 tarball 中的内容| +| -extract 或 -get| x| 从归档文件中释放文件| + #### 常用的操作修饰符 #### 注:表格 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
长选项缩写描述
 –directory dir C 执行归档操作前,先转到指定目录
 –same-permissions p 保持原始的文件权限
 –verbose v 列出所有的读取或提取文件。但这个标识符与 –list 一起使用的时候,还会显示出文件大小、属主和时间戳的信息
 –verify W 写入存档后进行校验
 –exclude file — 不把指定文件包含在内
 –exclude=pattern X 以PATTERN模式排除文件
 –gzip 或 –gunzip z 通过gzip压缩归档
 –bzip2 j 通过bzip2压缩归档
 –xz J 通过xz压缩归档
-Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高一点。另外,xz是最新的压缩工具,压缩率最好。xz 具有最佳压缩率的代价是:完成压缩操作花费最多时间,压缩过程中占有较多系统资源。 +|长选项|缩写|描述| +|-----|:--:|:--| +| -directory dir| C| 执行归档操作前,先转到指定目录| +| -same-permissions| p| 保持原始的文件权限| +| -verbose| v| 列出所有的读取或提取的文件。但这个标识符与 -list 一起使用的时候,还会显示出文件大小、属主和时间戳的信息| +| -verify| W| 写入存档后进行校验| +| -exclude file| | 不把指定文件包含在内| +| -exclude=pattern| X| 以PATTERN模式排除文件| +| -gzip 或 -gunzip| z| 通过gzip压缩归档| +| -bzip2| j| 通过bzip2压缩归档| +| -xz| J| 通过xz压缩归档| + + +Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高一点。另外,xz 是最新的压缩工具,压缩率最好。xz 具有最佳压缩率的代价是:完成压缩操作花费最多时间,压缩过程中占有较多系统资源。 通常,通过这些工具压缩的 tar 文件相应的具有 .gz、.bz2 或 .xz的扩展名。在下列的例子中,我们使用 file1、file2、file3、file4 和 file5 进行演示。 **通过 gzip、bzip2 和 xz 压缩归档** -归档当前工作目录的所有文件,并以 gzip、bzip2 和 xz 压缩刚刚的归档文件(请注意,用正则表达式来指定那些文件应该归档——这是为了防止归档工具包前一步生成的文件打包进来)。 +归档当前工作目录的所有文件,并以 gzip、bzip2 和 xz 压缩刚刚的归档文件(请注意,用正则表达式来指定哪些文件应该归档——这是为了防止将归档工具包前一步生成的文件打包进来)。 # tar czf myfiles.tar.gz file[0-9] # tar cjf myfiles.tar.bz2 file[0-9] @@ -167,7 +74,7 @@ Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高 ![Compress Multiple Files Using tar](http://www.tecmint.com/wp-content/uploads/2014/10/Compress-Multiple-Files.png) -压缩多个文件 +*压缩多个文件* **列举 tarball 中的内容和更新/追加文件到归档文件中** @@ -177,7 +84,7 @@ Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高 ![Check Files in tar Archive](http://www.tecmint.com/wp-content/uploads/2014/10/List-Archive-Content.png) -列举归档文件中的内容 +*列举归档文件中的内容* 运行一下任意一条命令: @@ -206,19 +113,19 @@ Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高 假设你现在需要备份用户的家目录。一个有经验的系统管理员会选择忽略所有视频和音频文件再备份(也可能是公司规定)。 -可能你最先想到的方法是在备份是时候,忽略扩展名为 .mp3 和 .mp4(或者其他格式)的文件。但如果你有些自作聪明的用户将扩展名改为 .txt 或者 .bkp,那你的方法就不灵了。为了发现并排除音频或者视频文件,你需要先检查文件类型。以下 shell 脚本可以代你完成类型检查: +可能你最先想到的方法是在备份的时候,忽略扩展名为 .mp3 和 .mp4(或者其他格式)的文件。但如果你有些自作聪明的用户将扩展名改为 .txt 或者 .bkp,那你的方法就不灵了。为了发现并排除音频或者视频文件,你需要先检查文件类型。以下 shell 脚本可以代你完成类型检查: #!/bin/bash # 把需要进行备份的目录传递给 $1 参数. DIR=$1 - #排除文件类型中包含了 mpeg 字符串的文件,然后创建 tarball 并进行压缩。 + # 排除文件类型中包含了 mpeg 字符串的文件,然后创建 tarball 并进行压缩。 # -若文件类型中包含 mpeg 字符串, $?(最后执行的命令的退出状态)返回 0,然后文件名被定向到排除选项。否则返回 1。 # -若 $? 等于 0,该文件从需要备份文件的列表排除。 tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/* ![Exclude Files in tar Archive](http://www.tecmint.com/wp-content/uploads/2014/10/Exclude-Files-in-Tar.png) -排除文件进行备份 +*排除文件进行备份* **使用 tar 保持文件的原有权限进行恢复** @@ -228,7 +135,7 @@ Gzip 是最古老的压缩工具,压缩率最小,bzip2 的压缩率稍微高 ![Restore Files from tar Archive](http://www.tecmint.com/wp-content/uploads/2014/10/Restore-tar-Backup-Files.png) -从归档文件中恢复 +*从归档文件中恢复* **扩展阅读:** @@ -243,31 +150,31 @@ find 命令用于递归搜索目录树中包含指定字符的文件和目录, #### 基本语法:#### -# find [需搜索的目录] [表达式] + # find [需搜索的目录] [表达式] **通过文件大小递归搜索文件** -以下命令会搜索当前目录(.)及其下两层子目录(-maxdepth 3,包含当前目录及往下两层的子目录)大于 2 MB(-size +2M)的所有文件(-f)。 +以下命令会搜索当前目录(.)及其下两层子目录(-maxdepth 3,包含当前目录及往下两层的子目录)中大于 2 MB(-size +2M)的所有文件(-f)。 # find . -maxdepth 3 -type f -size +2M ![Find Files by Size in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Find-Files-Based-on-Size.png) - -通过文件大小搜索文件 +* +通过文件大小搜索文件* **搜索符合一定规则的文件并将其删除** -有时候,777 权限的文件通常为外部攻击者打开便利之门。不管是以何种方式,让所有人都可以对文件进行任意操作都是不安全的。对此,我们采取一个相对激进的方法——删除这些文件(‘{ }’用来“聚集”搜索的结果)。 +有时候,777 权限的文件通常为外部攻击者打开便利之门。不管是以何种方式,让所有人都可以对文件进行任意操作都是不安全的。对此,我们采取一个相对激进的方法——删除这些文件('{}' + 用来“聚集”搜索的结果)。 # find /home/user -perm 777 -exec rm '{}' + ![Find all 777 Permission Files](http://www.tecmint.com/wp-content/uploads/2014/10/Find-Files-with-777-Permission.png) -搜索 777 权限的文件 +*搜索 777 权限的文件* **按访问时间和修改时间搜索文件** -搜索 /etc 目录下访问时间(-atime)或修改时间(-mtime)大于或小于 6 个月或者刚好 6 个月的配置文件。 +搜索 /etc 目录下访问时间(-atime)或修改时间(-mtime)大于(+180)或小于(-180) 6 个月或者刚好(180) 6 个月的配置文件。 按照下面例子对命令进行修改: @@ -275,7 +182,7 @@ find 命令用于递归搜索目录树中包含指定字符的文件和目录, ![Find Files by Modification Time](http://www.tecmint.com/wp-content/uploads/2014/10/Find-Modified-Files.png) -按修改时间搜索文件 +*按修改时间搜索文件* - 扩展阅读: [35 Practical Examples of Linux ‘find’ Command][3] @@ -301,11 +208,11 @@ new_mode 可以是 3 位八进制数值或者对应权限的表达式。 八进制数值可以从二进制数值进行等值转换,通过下列方法来计算文件属主、同组用户和其他用户权限对应的二进制数值: -一个确定权限的二进制数值表现为 2 的幂(r=2^2,w=2^1,x=2^0),当权限省缺时,二进制数值为 0。如下: +一个确定权限的二进制数值表现为 2 的幂(r=2\^2,w=2\^1,x=2\^0),当权限省缺时,二进制数值为 0。如下: ![Linux File Permissions](http://www.tecmint.com/wp-content/uploads/2014/10/File-Permissions.png) -文件权限 +*文件权限* 使用八进制数值设置上图的文件权限,请输入: @@ -313,7 +220,6 @@ new_mode 可以是 3 位八进制数值或者对应权限的表达式。 通过 u、g 和 o 分别代表用户、同组用户和其他用户,然后你也可以使用权限表达式来单独对用户设置文件的权限模式。也可以通过 a 代表所有用户,然后设置文件权限。通过 + 号或者 - 号相应的赋予或移除文件权限。 - **为所有用户撤销一个 shell 脚本的执行权限** 正如之前解释的那样,我们可以通过 - 号为需要移除权限的属主、同组用户、其他用户或者所有用户去掉指定的文件权限。下面命令中的短横线(-)可以理解为:移除(-)所有用户(a)的 backup.sh 文件执行权限(x)。 @@ -324,11 +230,13 @@ new_mode 可以是 3 位八进制数值或者对应权限的表达式。 当我们使用 3 位八进制数值为文件设置权限的时候,第一位数字代表属主权限,第二位数字代表同组用户权限,第三位数字代表其他用户的权限: -- 属主:(r=2^2 + w=2^1 + x=2^0 = 7) -- 同组用户:(r=2^2 + w=2^1 + x=2^0 = 7) -- 其他用户:(r=2^2 + w=0 + x=0 = 4), +- 属主:(r=2\^2 + w=2\^1 + x=2\^0 = 7) +- 同组用户:(r=2\^2 + w=2\^1 + x=2\^0 = 7) +- 其他用户:(r=2\^2 + w=0 + x=0 = 4) - # chmod 774 myfile +命令如下: + + # chmod 774 myfile 随着练习时间的推移,你会知道何种情况下使用哪种方式来更改文件的权限模式的效果最好。 @@ -336,7 +244,7 @@ new_mode 可以是 3 位八进制数值或者对应权限的表达式。 ![Linux File Listing](http://www.tecmint.com/wp-content/uploads/2014/10/Linux-File-Listing.png) -列举 Linux 文件 +*列举 Linux 文件* 通过 chown 命令可以对文件的归属权进行更改,可以同时或者分开更改属主和属组。其基本语法为: @@ -367,9 +275,9 @@ new_mode 可以是 3 位八进制数值或者对应权限的表达式。 先行感谢! 参考链接 -- [About the LFCS][4] -- [Why get a Linux Foundation Certification?][5] -- [Register for the LFCS exam][6] +- [关于 LFCS][4] +- [为什么需要 Linux 基金会认证?][5] +- [注册 LFCS 考试][6] -------------------------------------------------------------------------------- @@ -377,7 +285,7 @@ via: http://www.tecmint.com/compress-files-and-finding-files-in-linux/ 作者:[Gabriel Cánepa][a] 译者:[GHLandy](https://github.com/GHLandy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 85227effb82d67a9591f2805c36f037bc5e5f0be Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 30 Mar 2016 08:25:36 +0800 Subject: [PATCH 318/582] PUB:20151116 Linux FAQs with Answers--How to install Node.js on Linux @strugglingyouth --- ...s with Answers--How to install Node.js on Linux.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) rename {translated/tech => published}/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md (76%) diff --git a/translated/tech/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md b/published/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md similarity index 76% rename from translated/tech/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md rename to published/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md index 8ccca22632..6482a87d2c 100644 --- a/translated/tech/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md +++ b/published/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md @@ -1,12 +1,12 @@ -Linux 有问必答 - 如何在 Linux 上安装 Node.js +Linux 有问必答:如何在 Linux 上安装 Node.js ================================================================================ > **问题**: 如何在你的 Linux 发行版上安装 Node.js? -[Node.js][1] 是建立在谷歌的 V8 JavaScript 引擎服务器端的软件平台上。在构建高性能的服务器端应用程序上,Node.js 在 JavaScript 中已是首选方案。是什么让使用 Node.js 库和应用程序的 [庞大生态系统][2] 来开发服务器后台变得如此流行。Node.js 自带一个被称为 npm 的命令行工具可以让你轻松地安装它,进行版本控制并使用 npm 的在线仓库来管理 Node.js 库和应用程序的依赖关系。 +[Node.js][1] 是建立在谷歌的 V8 JavaScript 引擎服务器端的软件平台上。在构建高性能的服务器端应用程序上,Node.js 在 JavaScript 中已是首选方案。是什么让使用 Node.js 库和应用程序的[庞大生态系统][2]来开发服务器后台变得如此流行。Node.js 自带一个被称为 npm 的命令行工具可以让你轻松地安装它,进行版本控制并使用 npm 的在线仓库来管理 Node.js 库和应用程序的依赖关系。 -在本教程中,我将介绍 **如何在主流 Linux 发行版上安装 Node.js,包括Debian,Ubuntu,Fedora 和 CentOS** 。 +在本教程中,我将介绍 **如何在主流 Linux 发行版上安装 Node.js,包括 Debian,Ubuntu,Fedora 和 CentOS** 。 -Node.js 在一些发行版上作为预构建的程序包(如,Fedora 或 Ubuntu),而在其他发行版上你需要源码安装。由于 Node.js 发展比较快,建议从源码安装最新版而不是安装一个过时的预构建的程序包。最新的 Node.js 自带 npm(Node.js 的包管理器),让你可以轻松的安装 Node.js 的外部模块。 +Node.js 在一些发行版上有预构建的程序包(如,Fedora 或 Ubuntu),而在其他发行版上你需要通过源码安装。由于 Node.js 发展比较快,建议从源码安装最新版而不是安装一个过时的预构建的程序包。最新的 Node.js 自带 npm(Node.js 的包管理器),让你可以轻松的安装 Node.js 的外部模块。 ### 在 Debian 上安装 Node.js on ### @@ -64,7 +64,6 @@ Node.js 被包含在 Fedora 的 base 仓库中。因此,你可以在 Fedora ### 在 Arch Linux 上安装 Node.js ### -Node.js is available in the Arch Linux community repository. Thus installation is as simple as running: Node.js 在 Arch Linux 的社区库中可以找到。所以安装很简单,只要运行: @@ -82,7 +81,7 @@ via: http://ask.xmodulo.com/install-node-js-linux.html 作者:[Dan Nanni][a] 译者:[strugglingyou](https://github.com/strugglingyou) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From fdaa767a4ccf3ae2b0e7bc701c299ba57165fb91 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 30 Mar 2016 08:36:10 +0800 Subject: [PATCH 319/582] PUB:20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3 @geekpi --- ...buntu Core 16.04 LTS and Raspberry Pi 3.md | 36 ++++++++++++++++++ ...buntu Core 16.04 LTS and Raspberry Pi 3.md | 37 ------------------- 2 files changed, 36 insertions(+), 37 deletions(-) create mode 100644 published/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md delete mode 100644 translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md diff --git a/published/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md b/published/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md new file mode 100644 index 0000000000..d49e0ef0f7 --- /dev/null +++ b/published/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md @@ -0,0 +1,36 @@ +ownCloud Pi 设备将运行在 Snappy Ubuntu Core 16.04 LTS 及树莓派3上 +=============================================================================== + + +我们去年[报道了][1] ownCloud 正与西部数据(Western Digital)实验室沟通,帮助他们开发一个社区项目,将给用户带来可以在家中自托管的云存储设备。 + +自托管设备背后的理念,是由 ownCloud 服务端软件承载的,它结合了树莓派和西数硬盘到一个易安装和开箱即用的容器中。 + +社区的反应看上去很积极,ownCloud Pi 项目收到了许多好的提议和点子。今天,我们收到了一个更好的消息,首个镜像可以[下载][2]了。 + +ownCloud Pi 基于最新的 Snappy Ubuntu Core 16.04 LTS 系统,它由 Canonical 为嵌入式和 物联网(Internet of Things)设备所设计,包括新的树莓派3 Model B。 + +ownCloud 的开发者在今天的[声明][3]中称:“我们正在寻求来自 ownCloud、Ubuntu、树莓派和西数实验室等社区的帮助来测试和提高它们,并且可以在下周发布首批30台设备”。 + +### 目前的阻碍、挑战及前进的路 + +目前团队正致力于在基于 Xenial Xerus 版本的 Snappy Ubuntu 内核上完成他们的 ownCloud Pi 设备方案。这样,新的64位树莓派3可以帮助它们克服之前在树莓派2上遇到的阻碍,比如支持大于2GB的文件。 + +由此看来,最终的 ownCloud Pi 将在今年春天发布预览版,它将会在树莓派3上运行。之后,我们应该就可以购买首批可用于产品环境版本的 ownCloud Pi 设备了。 + +-------------------------------------------------------------------------------- + +via: http://news.softpedia.com/news/owncloud-pi-device-to-run-on-snappy-ubuntu-core-16-04-lts-and-raspberry-pi-3-501904.shtml + +作者:[Marius Nestor][a] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://news.softpedia.com/news/owncloud-partnerships-with-wd-to-bring-self-hosted-cloud-storage-in-users-homes-497512.shtml +[2]: http://people.canonical.com/~kyrofa/owncloud-pi/ +[3]: https://owncloud.org/blog/wd-labs-raspberry-pi-owncloud-and-ubuntu/ + + diff --git a/translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md b/translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md deleted file mode 100644 index 7b65226250..0000000000 --- a/translated/tech/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md +++ /dev/null @@ -1,37 +0,0 @@ -ownCloud Pi设备将在Snappy Ubuntu Core 16.04 LTS及树莓派3中运行 -=============================================================================== - -关键词 : ownCloud Pi , Snappy Ubuntu Core 16.04 LTS , Raspberry Pi 3 , Western Digital , PiDrive - -### 我们去年[报道了][1] ownCloud正与西部数据(ownCloud)实验室交谈帮助他们开发一个社区项目,可以在家自托管的云存储设备。 - -自托管设备背后的理念,是由ownCloud服务端软件承载的,它结合了树莓派和西数硬盘到一个易安装和开箱即用的容器中。 - -社区的反应看上去很积极,ownCloud Pi收到了许多好的提议和点子。今天,我们收到了一个更好的消息,首个镜像可以[下载][2]了。 - -ownCloud Pi基于最新的Snappy Ubuntu Core 16.04 LTS系统,它由Canonical为嵌入式和IoT(Internet of Things)及新的树莓派3 Model B设计。 - -ownCloud的开发者在今天的[声明][3]中称:“我们正在寻求ownCloud、Ubuntu、树莓派和西数实验室的帮助来帮助测试和提高它们,并且可以在下周发布首批30台设备”。 - -### 目前的阻碍、挑战及前进的路 - -目前团队正致力于在基于Xenial Xerus版本的Snappy Ubuntu内核上完成他们的ownCloud Pi设备方案。那么,新的64位树莓派3可以帮助它们克服之前在树莓派2上遇到的阻碍,比如支持大于2GB的文件。 - -由此看来决定已经有了,最终的ownCloud Pi将在今年春天发布预览版,它将会在树莓派3上运行。之后,我们应该就可以购买首批生产就绪版本的ownCloud Pi设备了。 - --------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/owncloud-pi-device-to-run-on-snappy-ubuntu-core-16-04-lts-and-raspberry-pi-3-501904.shtml - -作者:[Marius Nestor][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://news.softpedia.com/editors/browse/marius-nestor -[1]: http://news.softpedia.com/news/owncloud-partnerships-with-wd-to-bring-self-hosted-cloud-storage-in-users-homes-497512.shtml -[2]: http://people.canonical.com/~kyrofa/owncloud-pi/ -[3]: https://owncloud.org/blog/wd-labs-raspberry-pi-owncloud-and-ubuntu/ - - From 0275663dda81c2ffded4966a4617bbe27bce7051 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 30 Mar 2016 08:47:34 +0800 Subject: [PATCH 320/582] PUB:20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together @name1e5s --- ...uBSD Brings Ubuntu And FreeBSD Together.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) rename {translated/tech => published}/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md (59%) diff --git a/translated/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md b/published/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md similarity index 59% rename from translated/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md rename to published/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md index 19b1118194..259fc347d1 100644 --- a/translated/tech/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md +++ b/published/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md @@ -3,29 +3,29 @@ ![](http://itsfoss.com/wp-content/uploads/2016/03/UbuntuBSD.jpg) -不止是在 [Linux][1] 的内核上面你才能体验到 Ubuntu 的快捷方便,伙计们。UbuntuBSD 可以让你在 FreeBSD 的内核上面也能体验到那种方便快捷。 +不止是在 Linux 的内核上面你才能体验到 Ubuntu 的快捷方便,伙计们。UbuntuBSD 可以让你在 FreeBSD 的内核上面也能体验到那种方便快捷。 -UbuntuBSD 称自己是‘Unix for human beings’,这一点也不人惊讶。如过你能想起来的话,Ubuntu 使用的标语是‘Linux for human beings’并且在过去的 11 年里它确实让一个‘正常人’有可能用上 Linux。 +UbuntuBSD 称自己是 ‘Unix for human beings’,这一点也不人惊讶。如过你能想起来的话,Ubuntu 使用的标语是 ‘Linux for human beings’ 并且在过去的 11 年里它确实让一个‘正常人’有可能用上 Linux。 -UbuntuBSD 有着同样的想法。它想让新手能够接触到 Unix ,以及能使用它,如果我能这样说的话。至少,这就是它的目标。 +UbuntuBSD 有着同样的想法。它想让新手能够接触到 Unix ,以及能使用它——如果我能这样说的话。至少,这就是它的目标。 -### 什么是BSD ? 它和 Linux 有哪些不同? ### +### 什么是 BSD ? 它和 Linux 有哪些不同? ### -如果你是新手,那么你需要知道 [Unix和Linux的区别][2]. +如果你是新手,那么你需要知道 [Unix 和 Linux 的区别][2]. -在 Linux 出现之前,Unix 由 [AT&T][3] 的 [Ken Thompson][4], [Denis Ricthie][5] 以及他们的团队设计。这是在可以算作上古时期的 1970 发生的事。当你知道 Unix 是一个闭源的,有产权的操作系统时你可能会感到惊讶。AT&T 给了很多第三方许可,无论是学术机构还是企业。 +在 Linux 出现之前,Unix 由 [AT&T][3] 的 [Ken Thompson][4]、 [Denis Ricthie][5] 以及他们的团队设计。这是在可以算作计算机上古时期的 1970 发生的事。当你知道 Unix 是一个闭源的,有产权的操作系统时你可能会感到惊讶。AT&T 给了很多第三方许可,包括学术机构和企业。 美国加州大学伯克利分校是其中一个拿到许可的学术机构。在那里开发的 Unix 系统叫做 [BSD (Berkeley Software Distribution)][6]。BSD 的最出名的开源分支是 [FreeBSD][7],另一个最流行的闭源分支是苹果的 Mac OS X。 -在 1991 年。芬兰的计算机系大学生 Linus Torvalds 从头写了自己的 Unix 系统的复制品。这就是我们今天熟知的 Linux 内核。Linux 的发行版在内核的基础上添加了图形界面,GNU 的那一套(cp, mv, ls,date, bash 什么的),安装/管理工具,GNU C/C++ 编译器以及很多应用。 +在 1991 年。芬兰的计算机系大学生 Linus Torvalds 从头写了自己的 Unix 系统的复制品。这就是我们今天熟知的 Linux 内核。Linux 的发行版在内核的基础上添加了图形界面、GNU 的那一套(cp, mv, ls,date, bash 什么的)、安装/管理工具,GNU C/C++ 编译器以及很多应用。 ### UbuntuBSD 不是这种发行版的开端 在你知道了 Linux,Unix,FreeBSD 之间的区别之后。我要告诉你的是 UbuntuBSD 不是第一个要在 FreeBSD 内核上作出类似 Linux 的感觉的发行版。 -当 Debian 选择使用 [systemd][8] 之后,[Debian GNU/kFreeBSD][9]诞生了。它使用的不是通常的Linux内核,而是 Debian 在 FreeBSD 内核上的移植。 +当 Debian 选择使用 [systemd][8] 之后,[Debian GNU/kFreeBSD][9]诞生了。它使用的不是通常的 Linux 内核,而是 将 Debian 移植到了 FreeBSD 内核上。 -与Debian GNU/kFreeBSD 类似,UbuntuBSD 是 Ubuntu 在 FreeBSD 内核上的移植。 +与 Debian GNU/kFreeBSD 类似,UbuntuBSD 是将 Ubuntu 移植到了 FreeBSD 内核上。 ### UbuntuBSD Beta 版代号: Escape From SystemD @@ -35,7 +35,7 @@ UbuntuBSD 的第一个版本已经发布,代号为“Escape From SystemD ” ### 想试试? -我不建议任何人马上就去高兴的尝试这个系统。它仍在开发并且安装器还是文本界面的。如果你足够自信的话,直接去下载体验吧。但是如果你是新手的话,请等一段时间,至少不要现在就去尝试: +我不建议任何人马上就去开心地去尝试这个系统。它仍在开发并且安装器还是文本界面的。不过如果你足够自信的话,直接去下载体验吧。但是如果你是新手的话,请等一段时间,至少不要现在就去尝试: [UbuntuBSD][12] @@ -47,13 +47,13 @@ via: http://itsfoss.com/ubuntubsd-ubuntu-freebsd/ 作者:[ABHISHEK][a] 译者:[name1e5s](https://github.com/name1e5s) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:http://itsfoss.com/author/abhishek/ [1]: http://itsfoss.com/tag/linux/ -[2]: http://www.cyberciti.biz/faq/what-is-the-difference-between-linux-and-unix/ +[2]: https://linux.cn/article-3159-1.html [3]: https://en.wikipedia.org/wiki/AT%26T [4]: https://en.wikipedia.org/wiki/Ken_Thompson [5]: https://en.wikipedia.org/wiki/Dennis_Ritchie From a3ade2a9582d2364c045af11a1c607c822a8778a Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 1 Apr 2016 09:46:55 +0800 Subject: [PATCH 321/582] translating --- ... a tiny 64-bit ARM processor for the Internet of Things.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md b/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md index 2acebc8473..1740b261e2 100644 --- a/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md +++ b/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md @@ -1,3 +1,5 @@ +Translating---geekpi + NXP unveils a tiny 64-bit ARM processor for the Internet of Things ========================================================================= @@ -35,3 +37,5 @@ via: http://venturebeat.com/2016/02/21/nxp-unveils-a-small-and-tiny-64-bit-arm-p [3]:http://venturebeat.com/tag/nxp/ [4]:http://venturebeat.com/tag/nxp-semiconductors/ [5]:http://www.nxp.com/ + + From b4c41e07069d2a30d687bdc0bc4735d58225849d Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 1 Apr 2016 10:25:52 +0800 Subject: [PATCH 322/582] translated --- ...RM processor for the Internet of Things.md | 41 ------------------- ...RM processor for the Internet of Things.md | 39 ++++++++++++++++++ 2 files changed, 39 insertions(+), 41 deletions(-) delete mode 100644 sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md create mode 100644 translated/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md diff --git a/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md b/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md deleted file mode 100644 index 1740b261e2..0000000000 --- a/sources/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md +++ /dev/null @@ -1,41 +0,0 @@ -Translating---geekpi - -NXP unveils a tiny 64-bit ARM processor for the Internet of Things -========================================================================= - -**TAGS**:[ARM][1], [INTERNET OF THINGS][2], [NXP][3], [NXP SEMICONDUCTORS][4] - -![](http://1u88jj3r4db2x4txp44yqfj1.wpengine.netdna-cdn.com/wp-content/uploads/2016/02/nxp-930x556.jpg) - -[NXP Semiconductors][5] has unveiled what it calls the world’s smallest and lowest-power 64-bit ARM processor for the Internet of Things (IoT). - -The tiny QorIQ LS1012A delivers networking-grade security and performance acceleration to battery-powered, space-constrained applications. This includes powering applications for Internet of Things, or everyday objects that are smart and connected. If IoT is to reach its potential of $1.7 trillion by 2020 (as estimated by market researcher IDC), it’s going to need processors like the new one from NXP, which was unveiled at the Embedded World 2016 event in Nuremberg, Germany. - -The chip has a 64-bit ARMv8 processor with network packet acceleration and built-in security. It fits in a 9.6 mm-square space and draws about 1 watt of power. Potential applications include next-generation IoT gateways, portable entertainment platforms, high-performance portable storage applications, mobile hard disk drives, and mobile storage for cameras, tablets, and other rechargeable devices. - -Additionally, the LS1012A is the first processor designed specifically for an emerging new storage solution, dubbed object-based storage. Object-based storage relies on a smart hard disk drive that is directly connected to the data center’s Ethernet network. The processor must be small enough to be integrated directly on the circuit board for a hard disk drive. - -“The groundbreaking combination of low power, tiny footprint and networking-grade performance of NXP’s LS1012 processor is ideal for consumer, networking and Internet of Things applications alike,” said Tareq Bustami, senior vice president and general manager of NXP’s Digital Networking division, in a statement. “This unique blend of capabilities unleashes embedded systems designers and developers to imagine and create radically innovative end-products across a broad spectrum of high-growth markets.” - -NXP said it is the only 1-watt, 64-bit processor in the market to combine such a comprehensive set of high-speed peripherals in a single chip, thus enabling lower system-level costs. And due to innovative packaging, the processor can be routed on low-cost circuit boards. - -NXP’s LS1012A will be available in April 2016 and can be ordered now. NXP has more than 45,000 employees in 35 countries. - --------------------------------------------------------------------------------- - -via: http://venturebeat.com/2016/02/21/nxp-unveils-a-small-and-tiny-64-bit-arm-processor-for-the-internet-of-things/ - -作者:[DEAN TAKAHASHI][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://venturebeat.com/author/dean-takahashi/ -[1]:http://venturebeat.com/tag/arm/ -[2]:http://venturebeat.com/tag/internet-of-things/ -[3]:http://venturebeat.com/tag/nxp/ -[4]:http://venturebeat.com/tag/nxp-semiconductors/ -[5]:http://www.nxp.com/ - - diff --git a/translated/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md b/translated/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md new file mode 100644 index 0000000000..6711f5d4a6 --- /dev/null +++ b/translated/tech/20160221 NXP unveils a tiny 64-bit ARM processor for the Internet of Things.md @@ -0,0 +1,39 @@ +NXP 揭幕了一块超小型物联网64位ARM处理器 +========================================================================= + +**标签**:[ARM][1], [物联网][2], [NXP][3], [NXP 半导体][4] + +![](http://1u88jj3r4db2x4txp44yqfj1.wpengine.netdna-cdn.com/wp-content/uploads/2016/02/nxp-930x556.jpg) + +[NXP 半导体][5]揭幕了一块声称世界上最小的用于物联网(IoT)的低功耗64位ARM处理器。 + +这片小型的QorIQ LS1012A为电池供电,大小受限的应用提供了网络级的安全和性能加速。这包括了运行物联网应用,或者任何智能及可连接的设备。如果物联网能在2020达到1.7万亿美金的潜力(由IDC研究员估算市场得出),那么它将需要像NXP这样的处理器,该处理器在德国纽伦堡的Embedded World 2016 上揭开了什么的面纱。 + +该芯片带有64位ARMv8芯片,拥有网络包加速及内置的安全。它占用9.6平方毫米的空间,并且大约消耗1瓦特的电力。潜在的应用包括下一代的物联网网关、可携带娱乐平台、高性能可携带存储应用、移动硬盘、相机的移动存储、平板及其他可充电的设备。 + +除此之外,LS1012A是第一款为新起的基于对象的存储方案设计的处理器,基于对象存储基于智能硬盘,它直接连接到以太网数据中心。处理器必须足够小才能直接集成在硬盘的集成电路上。 + +NXP的高级副总裁及数字网络部的经理Tareq Bustami说:“低功耗、占用空间小及网络级性能这些突破性组合的NXP LS1012处理器是消费者、物联网相关应用的理想选择。独有的混合能力解放了物联网设计者及开发者使得他们可以在这个高增长的市场中想象并创造更多创新产品。” + +NXP说这是唯一一个能够结合全面的高速外围在一个芯片中的1瓦特、64位处理器,这意味着低系统功耗。归功于创新的封装,该处理器可以在低成本的电路板中布线。 + +NXP的LS1012A可以在2016年4月开始发货,并且现在可以订货。NXP在全球35个国家拥有超过4,5000名员工。 + +-------------------------------------------------------------------------------- + +via: http://venturebeat.com/2016/02/21/nxp-unveils-a-small-and-tiny-64-bit-arm-processor-for-the-internet-of-things/ + +作者:[DEAN TAKAHASHI][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://venturebeat.com/author/dean-takahashi/ +[1]:http://venturebeat.com/tag/arm/ +[2]:http://venturebeat.com/tag/internet-of-things/ +[3]:http://venturebeat.com/tag/nxp/ +[4]:http://venturebeat.com/tag/nxp-semiconductors/ +[5]:http://www.nxp.com/ + + From 4f36bd62ed0417cc5a63a287020b131f0c6129cc Mon Sep 17 00:00:00 2001 From: alim0x Date: Fri, 1 Apr 2016 23:53:36 +0800 Subject: [PATCH 323/582] [translated]23 - The history of Android --- .../23 - The history of Android.md | 61 ------------------- .../23 - The history of Android.md | 57 +++++++++++++++++ 2 files changed, 57 insertions(+), 61 deletions(-) delete mode 100644 sources/talk/The history of Android/23 - The history of Android.md create mode 100644 translated/talk/The history of Android/23 - The history of Android.md diff --git a/sources/talk/The history of Android/23 - The history of Android.md b/sources/talk/The history of Android/23 - The history of Android.md deleted file mode 100644 index f140949d7b..0000000000 --- a/sources/talk/The history of Android/23 - The history of Android.md +++ /dev/null @@ -1,61 +0,0 @@ -alim0x translating - -The history of Android -================================================================================ -![Another Play Store redesign! This one is very close to the current design and uses cards that make layout changes a piece of cake.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/get-em-Kirill.jpg) -Another Play Store redesign! This one is very close to the current design and uses cards that make layout changes a piece of cake. -Photo by Ron Amadeo - -### Out-of-cycle updates—who needs a new OS? ### - -In between Android 4.2 and 4.3, Google went on an out-of-cycle update tear and showed just how much Android could be improved without having to fire up the arduous OTA update process. Thanks to the [Google Play Store and Play Services][1], all of these updates were able to be delivered without updating any core system components. - -In April 2013, Google released a major redesign to the Google Play Store. Like most redesigns from here on out, the new Play Store fully adopted the Google Now aesthetic, with white cards on a gray background. The action bar changed color based on the current content section, and since the first screen featured content from all sections of the store, the action bar was a neutral gray. Buttons to navigate to the content sections were now given top billing, and below that was usually a promotional block or rows of recommended apps. - -In April 2013, Google released a major redesign to the Google Play Store. Like most redesigns from here on out, the new Play Store fully adopted the Google Now aesthetic, with white cards on a gray background. The action bar changed color based on the current content section, and since the first screen featured content from all sections of the store, the action bar was a neutral gray. Buttons to navigate to the content sections were now given top billing, and below that was usually a promotional block or rows of recommended apps. - -![The individual content sections are beautifully color-coded.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/content-rainbow.jpg) -The individual content sections are beautifully color-coded. -Photo by Ron Amadeo - -The new Play Store showed off the real power of Google’s card design language, which enabled a fully responsive layout across all screen sizes. One large card could be stuck next to several little cards, larger-screened devices could show more cards, and rather than stretch things in horizontal mode, more cards could just be added to a row. The Play Store content editors were free to play with the layout of the cards, too; a big release that needed to be highlighted could get a larger card. This design would eventually trickle down to the other Google Play content apps, finally resulting in a unified design. - -![Hangouts replaced Google Talk and is now continually developed by the Google+ team.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/talkvhangouts2.jpg) -Hangouts replaced Google Talk and is now continually developed by the Google+ team. -Photo by Ron Amadeo - -Google I/O, the company's annual developer conference, was usually where a new Android version was announced. But at the 2013 edition, Google made just as many improvements without having to update the OS. - -One of the biggest things announced at the show was an update to Google Talk, Google's instant messaging platform. For a long time, Google shipped four text communication apps for Android: Google Talk, Google+ Messenger, Messaging (the SMS app), and Google Voice. Having four apps that accomplished the same task—sending a text message to someone—was very confusing for users. At I/O, Google killed Google Talk and started their messaging product over from scratch, creating [Google Hangouts][2]. While initially it only replaced Google Talk, the plan for Hangouts was to unify all of Google's various messaging apps into a single interface. - -The layout of the Hangouts UI really wasn't drastically different from Google Talk. The main page contained your open conversations, and tapping on one opened a chat page. The design was updated, the chat page now used a card-style display for each paragraph, and the chat list was now a "drawer"-style interface, meaning you could open it with a horizontal swipe. Hangouts had read receipts and a typing status indicator, and group chat was now a primary feature. - -Google+ was the center of Hangouts now, so much so that the full name of the product was actually "Google+ Hangouts." Hangouts was completely integrated with the Google+ desktop site so that video and chats could be made from one to the other. Identity and avatars were pulled from Google+, and tapping on an avatar would open that person's Google+ profile. And much like the change from Browser to Google Chrome, core Android functionality was passed off to a separate team—the Google+ team—as opposed to being a side product of the very busy Android engineers. With the Google+ takeover, Android's main IM client now became a continually developed application. It was placed into the Play Store and received fairly regular updates. - -![The new navigation drawer interface.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/navigation_drawer_overview1.png) -The new navigation drawer interface. -Photo by [developer.android.com][3] - -Google also introduced a new design element for the action bar: the navigation drawer. This drawer was shown as a set of three lines next to the app icon in the top-right corner. By tapping on it or dragging from the edge of the screen to the right, a side-mounted menu would appear. As the name implies, this was used to navigate around the app, and it would show several top-level locations within the app. This allowed the first screen to show content, and it gave users a consistent, easy-to-access place for navigation elements. The nav drawer was basically a super-sized version of the normal menu, scrollable and docked to the right side. - ----------- - -![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) - -[Ron Amadeo][a] / Ron is the Reviews Editor at Ars Technica, where he specializes in Android OS and Google products. He is always on the hunt for a new gadget and loves to rip things apart to see how they work. - -[@RonAmadeo][t] - --------------------------------------------------------------------------------- - -via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/23/ - -译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:http://arstechnica.com/gadgets/2013/09/balky-carriers-and-slow-oems-step-aside-google-is-defragging-android/ -[2]:http://arstechnica.com/information-technology/2013/05/hands-on-with-hangouts-googles-new-text-and-video-chat-architecture/ -[3]:https://developer.android.com/design/patterns/navigation-drawer.html -[a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo diff --git a/translated/talk/The history of Android/23 - The history of Android.md b/translated/talk/The history of Android/23 - The history of Android.md new file mode 100644 index 0000000000..a6693ee6ec --- /dev/null +++ b/translated/talk/The history of Android/23 - The history of Android.md @@ -0,0 +1,57 @@ +安卓编年史 +================================================================================ +![Play 商店又一次重新设计!这一版非常接近现在的设计,卡片结构让改变布局变得易如反掌。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/get-em-Kirill.jpg) +Play 商店又一次重新设计!这一版非常接近现在的设计,卡片结构让改变布局变得易如反掌。 +Ron Amadeo 供图 + +### 周期外更新——谁需要一个新系统? ### + +在安卓 4.2 和安卓 4.3 之间,谷歌进行了一次周期外更新,显示了有多少安卓可以不经过费力的 OTA 更新而得到改进。得益于[谷歌 Play 商店和 Play 服务][1],这些更新可以在不更新任何系统核心组件的前提下送达。 + +2013 年 4 月,谷歌发布了谷歌 Play 商店的一个主要设计改动。就如同在这之后的大多数重新设计,新的 Play 商店完全接受了 Google Now 审美,即在灰色背景上的白色卡片。操作栏基于当前页面内容部分更改颜色,由于首屏内容以商店的各部分为主,操作栏颜色是中性的灰色。导航至内容部分的按钮指向热门付费,在那下面通常是一块促销内容或一组推荐应用。 + +![独立的内容部分有漂亮的颜色。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/content-rainbow.jpg) +独立的内容部分有漂亮的颜色。 +Ron Amadeo 供图 + +新的 Play 商店展现了谷歌卡片设计语言的真正力量,在所有的屏幕尺寸上能够拥有响应式布局。一张大的卡片能够和若干小卡片组合,大屏幕设备能够显示更多的卡片,而且相对于拉伸来适应横屏模式,可以通过在一行显示更多卡片来适应。Play 商店的内容编辑们也可以自由地使用卡片布局;需要关注的大更新可以获得更大的卡片。这个设计最终会慢慢渗透向其它谷歌 Play 内容应用,最后拥有一个统一的设计。 + +![Hangouts 取代了 Google Talk,现在仍由 Google+ 团队继续开发。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/talkvhangouts2.jpg) +Hangouts 取代了 Google Talk,现在仍由 Google+ 团队继续开发。 +Ron Amadeo 供图 + +Google I/O,谷歌的年度开发者会议,通常会宣布一个新的安卓版本。但是 2013 年的会议,谷歌只是发布了一些改进而没有系统更新。 + +谷歌宣布的大事件之一是 Google Talk 的更新,谷歌的即时消息平台。在很长一段时间里,谷歌随安卓附四个文本交流应用:Google Talk,Google+ Messenger,信息(短信应用),Google Voice。拥有四个应用来完成相同的任务——给某人发送文本消息——对用户来说很混乱。在 I/O 上,谷歌结束了 Google Talk 并且从头开始创建全新的消息产品 [Google Hangouts][2]。虽然最初只是想替代 Google Talk,Hangouts 的计划是统一所有谷歌的不同的消息应用到统一的界面下。 + +Hangouts 的用户界面布局真的和 Google Talk 没什么大的差别。主页面包含你的聊天会话,点击某一项就能进入聊天页面。界面设计上有所更新,聊天页面现在使用了卡片风格来显示每个段落,并且聊天列表是个“抽屉”风格的界面,这意味着你可以通过水平滑动打开它。Hangouts 有已读回执和输入状态指示,并且群聊现在是个主要特性。 + +Google+ 是 Hangouts 的中心,所以产品的全名实际上是“Google+ Hangouts”。Hangouts 完全整合到了 Google+ 桌面站点。身份和头像直接从 Google+ 拉取,点击头像会打开用户的 Google+ 资料。和将浏览器换为 Google Chrome 类似,核心安卓功能交给了一个单独的团队——Google+ 团队——作为对应用成为繁忙的安卓工程师的副产品的反对。随着 Google+ 团队的接手,安卓的主要即时通讯客户端现在成为一个持续开发的应用。它被放进了 Play 商店并且有稳定的更新频率。 + +![新导航抽屉界面。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/navigation_drawer_overview1.png) +新导航抽屉界面。 +图片来自 [developer.android.com][3] + +谷歌还给操作栏引入了新的设计元素:导航抽屉。这个抽屉显示为在左上角应用图标旁的三道横线。点击或从屏幕左边缘向右滑动,会出现一个侧边菜单目录。就像名字所指明的,这个是用来应用内导航的,它会显示若干应用内的顶层位置。这使得应用首屏可以用来显示内容,也给了用户一致的,易于访问的导航元素。导航抽屉基本上就是个大号的菜单,可以滚动并且固定在左侧。 + +---------- + +![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) + +[Ron Amadeo][a] / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。 + +[@RonAmadeo][t] + +-------------------------------------------------------------------------------- + +via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/23/ + +译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://arstechnica.com/gadgets/2013/09/balky-carriers-and-slow-oems-step-aside-google-is-defragging-android/ +[2]:http://arstechnica.com/information-technology/2013/05/hands-on-with-hangouts-googles-new-text-and-video-chat-architecture/ +[3]:https://developer.android.com/design/patterns/navigation-drawer.html +[a]:http://arstechnica.com/author/ronamadeo +[t]:https://twitter.com/RonAmadeo From 2a8397bcbce8d617486ce0fdce55025c8a69789b Mon Sep 17 00:00:00 2001 From: alim0x Date: Fri, 1 Apr 2016 23:55:33 +0800 Subject: [PATCH 324/582] [translating]24 - The history of Android --- .../The history of Android/24 - The history of Android.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/talk/The history of Android/24 - The history of Android.md b/sources/talk/The history of Android/24 - The history of Android.md index b95ceb29c7..3ed860adca 100644 --- a/sources/talk/The history of Android/24 - The history of Android.md +++ b/sources/talk/The history of Android/24 - The history of Android.md @@ -1,3 +1,5 @@ +alim0x traslating + The history of Android ================================================================================ ![The slick new Google Play Music app, which changed from Tron to a perfect match for the Play Store.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/Goooogleplaymusic.jpg) @@ -79,4 +81,4 @@ via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-histor [1]:http://live.arstechnica.com/liveblog-google-io-2013-keynote/ [2]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ [a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo \ No newline at end of file +[t]:https://twitter.com/RonAmadeo From 0a73e6b607dd6a28d93421df08da9860f94d61aa Mon Sep 17 00:00:00 2001 From: XIAOYU <1136299502@qq.com> Date: Sat, 2 Apr 2016 13:31:57 +0800 Subject: [PATCH 325/582] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=AE=A4=E9=A2=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 最近没空翻译了,取消认领。 --- ...151208 10 tools for visual effects in Linux with Kdenlive.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md b/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md index 690b2c8186..c017d22de2 100644 --- a/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md +++ b/sources/talk/yearbook2015/20151208 10 tools for visual effects in Linux with Kdenlive.md @@ -1,5 +1,3 @@ -translating by xiaoyu33 - 10 tools for visual effects in Linux with Kdenlive ================================================================================ ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life-uploads/kdenlivetoolssummary.png) From 8f57057b4957b609ae223973b0adc034198b3426 Mon Sep 17 00:00:00 2001 From: alim0x Date: Sat, 2 Apr 2016 23:55:41 +0800 Subject: [PATCH 326/582] [translating]24 - The history of Android - Part I --- .../24 - The history of Android.md | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/sources/talk/The history of Android/24 - The history of Android.md b/sources/talk/The history of Android/24 - The history of Android.md index 3ed860adca..fa6750d427 100644 --- a/sources/talk/The history of Android/24 - The history of Android.md +++ b/sources/talk/The history of Android/24 - The history of Android.md @@ -1,36 +1,34 @@ -alim0x traslating - -The history of Android +安卓编年史 ================================================================================ -![The slick new Google Play Music app, which changed from Tron to a perfect match for the Play Store.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/Goooogleplaymusic.jpg) -The slick new Google Play Music app, which changed from Tron to a perfect match for the Play Store. -Photo by Ron Amadeo +![漂亮的新 Google Play Music 应用,从电子风格转向完美契合 Play 商店的风格。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/Goooogleplaymusic.jpg) +漂亮的新 Google Play Music 应用,从电子风格转向完美契合 Play 商店的风格。 +Ron Amadeo 供图 -Another app update pushed out at I/O was a new Google Music app. The app was completely redesigned, finally doing away with the blue-on-blue design introduced in Honeycomb. Play Music's design was unified with the new Play Store released a few months earlier, with a responsive white card layout. Music was also one of the first major apps to take advantage of the new navigation drawer style. Along with the new app, Google launched Google Play Music All Access, an all-you-can-eat subscription service for $10 a month. Google Music now had a subscription plan, à la carte purchasing, and a cloud music locker. This version also introduced "Instant Mix," a mode where Google would cloud-compute a playlist of similar songs. +在 I/O 大会推出的另一个应用更新是 Google Music 应用。音乐应用经过了完全的重新设计,最终摆脱了蜂巢中引入的蓝底蓝色调的设计。Play Music 的设计和几个月前发布的 Play 商店一致,有着响应式的白色卡片布局。Music 同时还是最早采用新抽屉导航样式的主要应用之一。谷歌还随新应用发布了 Google Play Music All Access,每月 10 美元的包月音乐订阅服务。Google Music 现在拥有订阅计划,音乐购买,以及云端音乐存储空间。这个版本还引入了“Instant Mix”,谷歌会在云端给相似的歌曲计算出一份歌单。 -![A game showing support for Google Play Games. This lineup shows the Play Store game feature descriptions, the permissions box triggered by signing into the game, a Play Games notification, and the achievements screen.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/gooooogleplaygames.jpg) -A game showing support for Google Play Games. This lineup shows the Play Store game feature descriptions, the permissions box triggered by signing into the game, a Play Games notification, and the achievements screen. -Photo by Ron Amadeo +![一个展示对 Google Play Games 支持的游戏。上面是 Play 商店游戏特性描述,登陆游戏触发的权限对话框,Play Games 通知,以及成就界面。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/gooooogleplaygames.jpg) +一个展示对 Google Play Games 支持的游戏。上面是 Play 商店游戏特性描述,登陆游戏触发的权限对话框,Play Games 通知,以及成就界面。 +Ron Amadeo 供图 -Google also introduced "Google Play Games," a back-end service that developers could plug into their games. The service was basically an Android version of Xbox Live or Apple's Game Center. Developers could build Play Games support into their game, which would easily let them integrate achievements, leaderboards, multiplayer, matchmaking, user accounts, and cloud saves by using Google's back-end services. +谷歌还引入了“Google Play Games”,一个后端服务,开发者可以将其附加到游戏中。这项服务简单说就是安卓版的 Xbox Live 或苹果的 Game Center。开发者可以给游戏添加 Play Games 支持,这样就能通过使用谷歌的后端服务,更简单地集成成就,多人游戏,游戏匹配,用户账户以及云端存档到游戏中。 -Play Games was the start of Google's big push into gaming. Just like standalone GPS units, flip phones, and MP3 players, smartphone makers were hoping standalone gaming devices would be turned into nothing more than a smartphone feature bullet point. Why buy a Nintendo DS or PS Vita when you had a smartphone with you? An easy-to-use multiplayer service would be a big part of this, and we've still yet to see the final consequence of this move. Today, Google and Apple are both rumored to be planning living room gaming devices. +Play Games 是谷歌在游戏方面推进的开始。就像单独的 GPS 设备,翻盖手机,以及 MP3 播放器,智能手机的生产者希望游戏设备能够变成智能手机的一个功能点。当你有部智能手机的时候你为什么还有买个任天堂 DS 或 PS Vita 呢?一个易于使用的多人游戏服务是这项计划的重要部分,我们仍能看到这个决定最后的成果。在今天,坊间都在传言谷歌和苹果有关于客厅游戏设备的计划。 -![Google Keep, Google's first note taking service since Google Notebook.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/goooglekeep.jpg) -Google Keep, Google's first note taking service since Google Notebook. -Photo by Ron Amadeo +![Google Keep,谷歌自 Google Notebook 以来第一个笔记服务。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/goooglekeep.jpg) +Google Keep,谷歌自 Google Notebook 以来第一个笔记服务。 +Ron Amadeo 供图 -It was clear some products were developed in time for presentation at Google I/O, [but the three-and-a-half hour keynote][1] was already so massive, some things were cut from being announced. Once the smoke cleared three days after Google I/O, Google introduced Google Keep, a note taking app for Android and the Web. Keep was a fairly straightforward affair, applying the responsive Google Now-style design to a note taking app. Users could change the size of the cards from a multi-column layout to a single column view. Notes could consist of plain text, checklists, voice note with automatic transcription, or pictures. Note cards could be dragged around and rearranged on the main screen, and you could even assign a color to a note. +毫无疑问一些产品为了赶上 Google I/O 大会的发布准时开发完成了,[但是三个半小时内的主题][1]已经够多了,一些产品在大会的发布上忽略了。Google I/O 大会的三天后一切都清楚了,谷歌带来了 Google Keep,一个用于安卓和在线的笔记应用。Keep 看起来很简单,就是一个用上了响应式 Google-Now 风格设计的笔记应用。用户可以改变卡片的尺寸,从多栏布局改为单列视图。笔记可以由文本,清单,自动转文本的语音或者图片组成。笔记卡片可以拖动并在主界面重新组织,你甚至可以给笔记换个颜色。 -![Gmail 4.5, which switched to the new navigation drawer design and merged the action bars, thanks to some clever button elimination.](http://cdn.arstechnica.net/wp-content/uploads/2014/05/gmail.png) -Gmail 4.5, which switched to the new navigation drawer design and merged the action bars, thanks to some clever button elimination. -Photo by Ron Amadeo +![Gmail 4.5,换上了新的导航抽屉设计,去掉了几个按钮并将操作栏合并到了抽屉里。](http://cdn.arstechnica.net/wp-content/uploads/2014/05/gmail.png) +Gmail 4.5,换上了新的导航抽屉设计,去掉了几个按钮并将操作栏合并到了抽屉里。 +Ron Amadeo 供图 -After I/O, not much was safe from Google's out-of-cycle updating. In June 2013, Google released a redesigned version of Gmail. The headline feature of the new design was the new navigation drawer interface that was introduced a month earlier at Google I/O. The most eye catching change was the addition of Google+ profile pictures instead of checkboxes. While the checkboxes were visibly removed, they were still there, just tap on a picture. +在 I/O 大会之后,没有哪些应用不在谷歌的周期外更新里。2013 年 6 月,谷歌发布了新版设计的 Gmail。最显眼的变化就是一个月前 Google I/O 大会引入的新导航抽屉界面。最吸引眼球的变化是用上了 Google+ 资料图片来取代复选框。虽然复选框看起来被去掉了,它们其实还在那,点击邮件左边的图片就是了。 -![The new Google Maps, which switched to an all-white Google Now-style theme.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/newmaps11.png.) -The new Google Maps, which switched to an all-white Google Now-style theme. -Photo by Ron Amadeo +![新谷歌地图,换上了全白的 Google-Now 风格主题。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/newmaps11.png) +新谷歌地图,换上了全白的 Google-Now 风格主题。 +Ron Amadeo 供图 One month later, Google released a completely overhauled version of Google Maps to the Play Store. It was the first ground-up redesign of Google Maps since Ice Cream Sandwich. The new version fully adopted the Google Now white card aesthetic, and it greatly reduced the amount of stuff on the screen. The new Google Maps seemed to have a design mandate to always show a map on the screen somewhere, as you’ll be hard pressed to find something other than the settings that fully covers the map. @@ -38,7 +36,7 @@ This version of Google Maps seemed to live in its own little design world. The w ![The new Google Maps cut a lot of fat and displayed more information on a single screen.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/newmaps21.png) The new Google Maps cut a lot of fat and displayed more information on a single screen. -Photo by Ron Amadeo +Ron Amadeo 供图 The left picture shows what popped up when you tapped on the search bar (along with the keyboard, which had been closed). In the past, Google would show an empty page below a blank search bar, but in Maps, Google used that space to link to the new “Local" page. The “blank" search results displayed links to common, browsable results like restaurant listings, gas stations, and attractions. At the bottom of the results page was a list of nearby results from your search history and an option to manually cache parts of the map. @@ -52,7 +50,7 @@ Android 4.3 would have been an incredible update if Google had done the traditio ![Android Wear plugging into Android 4.3's Notification access screen.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/2014-03-28-12.231.jpg) Android Wear plugging into Android 4.3's Notification access screen. -Photo by Ron Amadeo +Ron Amadeo 供图 Google made no qualms about the low importance of 4.3, calling the newest release "Jelly Bean" (the third one in a row). Android 4.3's feature list read like a laundry list of things Google couldn't update from the Play Store or through Google Play Services, mostly consisting of low-level framework changes for developers. From ffc516007ccc80ba70825bf172b34f80d485c162 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 3 Apr 2016 00:25:40 +0800 Subject: [PATCH 327/582] =?UTF-8?q?=E9=83=A8=E5=88=86=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=EF=BC=8C=E6=9C=AA=E5=AE=8C=E6=88=90=E4=BD=9C=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d Services SysVinit Systemd and Upstart.md | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md diff --git a/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md new file mode 100644 index 0000000000..34e08ec0f7 --- /dev/null +++ b/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md @@ -0,0 +1,230 @@ +WingCuengRay翻译中 +翻译部分,未经自校验 +Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart) +============================================================== +几个月前,Linux 基金会发布了 LFCS (Linux Foundation Certified Sysadmin) 认证,这是一则振奋人心的消息,它的目标是让全世界各地的人们的的中级 Linux 系统管理能力得到认证。这能力包括了对处于运行状态的系统和服务的支持,发现并分析实际问题,并且知道何时向开发团队提交问题。 + +![Linux Foundation Certified Sysadmin – Part 7](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-7.png) + +Linux Foundation Certified Sysadmin - Part7 + +下面的视频简单地介绍了 Linux 基金认证的流程。 + +注:youtube 视频 + +本章是10个系列教程中的第7章,在这个部分,我们会解释如何去管理 Linux 系统启动进程和服务,这是 LFCS 认证考试中必须的。 + +### Linux 启动进程的管理 ### +Linux 系统的启动进程包括了几个阶段,每一个阶段都代表了一个不同的**component**。下图简单概括了启动的流程并且展示了所有阶段的主要组成部分。 + +![Linux Boot Process](http://www.tecmint.com/wp-content/uploads/2014/10/Linux-Boot-Process.png) + + +Linux 启动流程 + +当你按下电脑上的开机按钮,装载在主板电可擦写只读存储器 (EEPROM) 中的固件 (BIOS) 会执行开机自检 (Power-On Self Test) 检查系统的硬件状态。当开机自检完成后,固件会寻找并载入位于第一块硬盘中的主引导记录 (MBR) 或者 EFI 分区中的 boot loader stage1,然后将控制权转交给它。第一阶段的 boot loader 在第一块硬盘中的主引导记录 (MBR 或者 EFI 分区中。 + +#### MBR 引导启动 #### +MBR 在 BIOS 设置的可启动硬盘的第一扇区,其大小是 512 字节。 + +- 起始 446 字节: bootloader 包括了可执行代码与错误消息文本。 +- 随后 64 字节: 分区表包括了四条硬盘分区(主分区或扩展分区)的记录。此外,每条分区记录指出了分区的状态(有效/无效),大小和每个分区的开始/结束扇区。 +- 最后 2 字节: 用于MBR校验检查的幻数 (magic number)。 + +**MBR 备份** + + # dd if=/dev/sda of=mbr.bkp bs=512 count=1 + +![Backup MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Backup-MBR-in-Linux.png) + +**恢复 MBR** + + # dd if=mbr.bkp of=/dev/sda bs=512 count=1 + +![Restore MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Restore-MBR-in-Linux.png) + +在 Linux 的 MBR 恢复 + +### EFI/UFEFI 引导启动 ### +在 EFI/UEFI 引导的系统中,UEFI固件会读取其配置,根据配置决定启动哪一个 UEFI appliction,并且从哪里启动(例如,在 EFI 分区所在的磁盘)。 + +然后,第二阶段的引导程序被加载运行。GRUB[GRand Unified Boot] 是 Linux 上最流行的启动管理器。**如今有两个不同的版本供大多数的系统使用**。 + +- GRUB Legacy 配置文件: /boot/grub/menu.lst (旧版本,EFI/UEFI 不支持) +- GRUB2 配置文件: 大多数为 /etc/default/grub + +虽然 LFCS 资格认证没有明确要求了解关于 GRUB 内部知识,但如果你能勇敢地承受系统崩溃的风险(为了保险,你可能希望先在虚拟机上尝试),你可以尝试自己去修改这些文件。 + + # update-grub + +在修改完 GRUB 的配置文件后,需要以 root 权限运行以上指令让修改生效。 + +GRUB 主要加载了默认的内核和 initrd 或 initramfs 镜像。简单来说,initrd 和 initramfs 帮助进行了硬件的检测,内核模块的加载和设备的探查,**这对于挂载真正的根文件系统来说是必须的**。 + +为了得到一个用户交互界面,一旦根文件系统被挂载,内核便执行系统服务管进程 (init 或者 systemd,其进程标识或者 PID 通常是 1 )来启动正常的用户空间进程。 + +init 和 systemd 都是守护进程,因为它们是系统那个第一个启动的服务(在启动期间)和最后一个终止的服务(在关机时)。 + +![Systemd and Init](http://www.tecmint.com/wp-content/uploads/2014/10/systemd-and-init.png) + +Systemd and Init + +### 服务的启动 (SysVinit) ### +Linux 中的运行级别机制通过控制不同服务的运行来指定系统的不同使用方式。换言之,运行级别决定在当前的运行模式下哪些任务能够运行(哪些不能)。 + +基于 System V Unix 继承下来的传统,当计算机进入一个指定的运行级别时(或者说,进入一个与当前系统不同的运行级别时),系统通过传递用于控制启动和停止服务的执行脚本来执行启动进程。 + +在每一个运行级别,每一个服务能被设置为运行状态或者关闭状态(如果正在运行)。大多数发行版在最新版本中抛弃了System V的标准,支持一种新的被称为systemd的系统服务管理进程(也就是系统守护进程),不过出于兼容性考虑,systemd通常支持 sysv 命令。这意味着你能够在基本systemd发行版上运行大多数sysv int工具。 + +- 参考: [Why ‘systemd’ replaces ‘init’ in Linux][1] + +除了启动系统进程,init 还根据 /etc/inittab 文件决定必须进入哪一个运行级别。 + +注:表格 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Runlevel Description
0 挂起系统。运行级别 0 是一个用于快速关闭系统的特殊过渡态。
1 该模式也被称为 s 或 S。这个运行模式有时被叫作维护模式。根据发行版的不同,在这个运行级别启动的服务也不同。这通常用于可能被正常系统操作损坏的**low-level system maintenance(低级别系统维护)**
2 多用户模式。在 Debian 及其衍生版中,这是默认的运行级别,包括了可用的图形登陆。在基于红帽 (Red-Hat 的系统中,这是没有网络功能的多用户模式。
3  在基于 Red-Hat 的系统中,这是默认的多用户模式,此模式会运行除图形环境之外的所有东西。基于 Debian 的系统通常不使用此运行级别 4,5 和此级别。
4 默认不使用,因此可用于用户定制。
5 在基于红帽的系统,这是完整的带图形界面的多用户模式。此运行级别类似于运行级别 3,不过多了 GUI 的登陆界面。
6 重启系统
+ +我们能够使用`init` 命令在不同运行级别之间切换: `init N` (N是上面列出的运行级别之一)。注意并不推荐使用这种方法改变一个运行中系统的运行级别,因为它没有发出警告信息给已登陆用户(这会令他们工作丢失,任务异常终止)。 + +相反,应该使用`shutdown`命令重启系统(发送一条警告信息给所有的登陆用户,并阻止另外的用户登陆);然而,必须先在 /etc/inittab 文件中编辑系统启动的默认运行级别。 + +因此,以 root 权限寻找 /etc/inittab 中的下行,然后按照下列步骤正确地在运行级别之间切换: + + id:2:initdefault: + +然后使用 vim 之类文本编辑器(在本系列的第二章介绍了如何在 Linux 中使用 vi/vim 编辑器)将数字 2 改变成你想要的运行级别。 + +接下来以 root 权限运行: + + # shutdown -r now + +最后一条命令会重启系统并让其在下一次启动期间以指定的运行级别启动,然后系统会运行在 /etc/rc[runlevel].d 目录下的脚本以决定哪些服务会被启动哪些不会。例如,下图处于运行级别2的系统. + +![Change Runlevels in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Change-Runlevels-in-Linux.jpeg) + +Linux 运行级别的变更 + +## 使用 chkconfig 管理服务 + +为了在引导时启动/禁止系统服务,我们需要使用`chkconfig`(在 CentOS/openSUSE)和`sys-rc-conf`(在 Debian 及其衍生版中)命令。这工具能够告诉我们在一个特定运行级别的服务预配置状态。 + +- 参考: [How to Stop and Disable Unwanted Services in Linux][4] + +**列出一个服务的运行级别配置(Listing the runlevel configuration for a service)** + + # chkconfig --list [service name] + # chkconfig --list postfix + # chkconfig --list mysqld + +![Listing Runlevel Configuration](http://www.tecmint.com/wp-content/uploads/2014/10/Listing-Runlevel-Configuration.png) + +**运行级别配置列表(Listing Runlevel Configuration)** + +在上图中我们能够看到 `postfix` 被设置为当系统进入级别 2~5 时启动,而 `mysqld` 默认是在级别 2~4 时运行。假设这些不是我们期望的行为。 + +例如,我们也需要在运行级别 5 启动`mysqld`,并且在级别 4 和 5 中关闭 `postfix`。这是我们要做的(以 root 权限执行以下命令) + +**为一个特定的运行级别启动服务** + + # chkconfig --level [level(s)] service on + # chkconfig --level 5 mysqld on + +**为一个特定的运行级别禁止服务** + + # chkconfig --level [level(s)] service off + # chkconfig --level 45 posifix off + +![Enable Disable Services in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Enable-Disable-Services.png) + +启动禁止服务 + +我们可以使用 `sysv-rc-conf` 在基于 Debian 的系统执行类似的操作。 + +#### 使用 `sysv-rc-conf` 管理服务 + +设置一个服务使其能在一个特定的运行级别启动,禁止在其他运行级别启动。 + + +1. 我们用以下命令查看 `mdadm` 服务在哪些运行级别上启动。 +```c +# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' +``` + + ![Check Runlevel of Service Running](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Runlevel.png) + + 查看服务的运行级别 + +2. 我们使用 `sysv-rc-conf` 命令禁止 `mdadm` 在除了 2 以外的运行级别中启动。根据需要(使用空格键)选择或取消(可以使用上下左右方向键移动)。 +``` +# sys-rc-conf +``` + ![SysV Runlevel Config](http://www.tecmint.com/wp-content/uploads/2014/10/SysV-Runlevel-Config.png) + + Sys Runlevel Config + + 然后按 q 退出 + +3. 重启系统并运行第一步中的命令 + + ``` + # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' + ``` + ![Verify Service Runlevel](http://www.tecmint.com/wp-content/uploads/2014/10/Verify-Service-Runlevel.png) + + 验证服务运行级别 + + 在上图中我们可以看到 `mdadm` 被修改为只在运行级别 2 上启动。 + +### 什么是 systemd ?### + +systemd 是较多 Linux 发行版采用的另一种系统服务管理软件。它允许系统启动期间进程并行启动(不像 sysinit 那么慢。因为 sysint 只能逐个启动进程,检查进程间依赖关系然后等待守护工作以启动更多服务),并且为系统动态管理资源。 + +因此,服务仅当需要时才被启动(以免浪费系统资源)而不是在引导时启动。 + +运行以下命令,查看系统中所有运行中服务进程的状态,**包括systemd native和SysV services**。 + +``` +# systemctl +``` + +![Check All Running Processes in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Check-All-Running-Processes.png) + +查看所有运行中的服务进程 From 4bf0057cc851cf87468966976916dc197233e013 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 3 Apr 2016 10:42:51 +0800 Subject: [PATCH 328/582] =?UTF-8?q?=E5=BD=92=E6=A1=A3201603?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- published/{ => 201603}/20150820 Why did you start using Linux.md | 0 ... Years of GNOME Design and Software Evolution--Step by Step.md | 0 .../20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md | 0 ...2015--The best open source networking and security software.md | 0 ...20151104 Optimize Web Delivery with these Open Source Tools.md | 0 ... with Answers--How to install Ubuntu desktop behind a proxy.md | 0 ...o send email notifications using Gmail SMTP server on Linux.md | 0 ...0151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md | 0 ...16 Linux FAQs with Answers--How to install Node.js on Linux.md | 0 .../20151125 20 Years of GIMP Evolution--Step by Step.md | 0 published/{ => 201603}/20151204 Review EXT4 vs. Btrfs vs. XFS.md | 0 ...51215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md | 0 ... Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md | 0 .../20160218 Best Linux Desktop Environments for 2016.md | 0 ...160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md | 0 ...8 LTS Is the Biggest in the Series with Hundreds of Changes.md | 0 ...Mozilla contributor creates diabetes project for the masses.md | 0 .../20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md | 0 .../20160220 Former Kubuntu Head Unveils New KDE Project.md | 0 .../20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md | 0 .../20160220 [Free Download] Vi Cheat Sheet For Beginners.md | 0 .../20160226 Development Release- Xubuntu 16.04 Beta 1.md | 0 ...with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md | 0 ...1 Million HTTPS Websites Imperiled by New Decryption Attack.md | 0 .../20160316 What we learned in Seoul with AlphaGo.md | 0 ...e to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md | 0 .../20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md | 0 27 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 201603}/20150820 Why did you start using Linux.md (100%) rename published/{ => 201603}/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md (100%) rename published/{ => 201603}/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md (100%) rename published/{ => 201603}/20151028 Bossie Awards 2015--The best open source networking and security software.md (100%) rename published/{ => 201603}/20151104 Optimize Web Delivery with these Open Source Tools.md (100%) rename published/{ => 201603}/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md (100%) rename published/{ => 201603}/20151109 How to send email notifications using Gmail SMTP server on Linux.md (100%) rename published/{ => 201603}/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md (100%) rename published/{ => 201603}/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md (100%) rename published/{ => 201603}/20151125 20 Years of GIMP Evolution--Step by Step.md (100%) rename published/{ => 201603}/20151204 Review EXT4 vs. Btrfs vs. XFS.md (100%) rename published/{ => 201603}/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md (100%) rename published/{ => 201603}/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md (100%) rename published/{ => 201603}/20160218 Best Linux Desktop Environments for 2016.md (100%) rename published/{ => 201603}/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md (100%) rename published/{ => 201603}/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md (100%) rename published/{ => 201603}/20160218 Mozilla contributor creates diabetes project for the masses.md (100%) rename published/{ => 201603}/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md (100%) rename published/{ => 201603}/20160220 Former Kubuntu Head Unveils New KDE Project.md (100%) rename published/{ => 201603}/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md (100%) rename published/{ => 201603}/20160220 [Free Download] Vi Cheat Sheet For Beginners.md (100%) rename published/{ => 201603}/20160226 Development Release- Xubuntu 16.04 Beta 1.md (100%) rename published/{ => 201603}/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md (100%) rename published/{ => 201603}/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md (100%) rename published/{ => 201603}/20160316 What we learned in Seoul with AlphaGo.md (100%) rename published/{ => 201603}/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md (100%) rename published/{ => 201603}/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md (100%) diff --git a/published/20150820 Why did you start using Linux.md b/published/201603/20150820 Why did you start using Linux.md similarity index 100% rename from published/20150820 Why did you start using Linux.md rename to published/201603/20150820 Why did you start using Linux.md diff --git a/published/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md b/published/201603/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md similarity index 100% rename from published/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md rename to published/201603/20151020 18 Years of GNOME Design and Software Evolution--Step by Step.md diff --git a/published/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md b/published/201603/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md similarity index 100% rename from published/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md rename to published/201603/20151027 How to Install Ghost with Nginx on FreeBSD 10.2.md diff --git a/published/20151028 Bossie Awards 2015--The best open source networking and security software.md b/published/201603/20151028 Bossie Awards 2015--The best open source networking and security software.md similarity index 100% rename from published/20151028 Bossie Awards 2015--The best open source networking and security software.md rename to published/201603/20151028 Bossie Awards 2015--The best open source networking and security software.md diff --git a/published/20151104 Optimize Web Delivery with these Open Source Tools.md b/published/201603/20151104 Optimize Web Delivery with these Open Source Tools.md similarity index 100% rename from published/20151104 Optimize Web Delivery with these Open Source Tools.md rename to published/201603/20151104 Optimize Web Delivery with these Open Source Tools.md diff --git a/published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md b/published/201603/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md similarity index 100% rename from published/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md rename to published/201603/20151105 Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy.md diff --git a/published/20151109 How to send email notifications using Gmail SMTP server on Linux.md b/published/201603/20151109 How to send email notifications using Gmail SMTP server on Linux.md similarity index 100% rename from published/20151109 How to send email notifications using Gmail SMTP server on Linux.md rename to published/201603/20151109 How to send email notifications using Gmail SMTP server on Linux.md diff --git a/published/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md b/published/201603/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md similarity index 100% rename from published/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md rename to published/201603/20151109 Install Android On BQ Aquaris Ubuntu Phone In Linux.md diff --git a/published/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md b/published/201603/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md similarity index 100% rename from published/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md rename to published/201603/20151116 Linux FAQs with Answers--How to install Node.js on Linux.md diff --git a/published/20151125 20 Years of GIMP Evolution--Step by Step.md b/published/201603/20151125 20 Years of GIMP Evolution--Step by Step.md similarity index 100% rename from published/20151125 20 Years of GIMP Evolution--Step by Step.md rename to published/201603/20151125 20 Years of GIMP Evolution--Step by Step.md diff --git a/published/20151204 Review EXT4 vs. Btrfs vs. XFS.md b/published/201603/20151204 Review EXT4 vs. Btrfs vs. XFS.md similarity index 100% rename from published/20151204 Review EXT4 vs. Btrfs vs. XFS.md rename to published/201603/20151204 Review EXT4 vs. Btrfs vs. XFS.md diff --git a/published/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md b/published/201603/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md similarity index 100% rename from published/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md rename to published/201603/20151215 How to Install Light Table 0.8 in Ubuntu 14.04, 15.10.md diff --git a/published/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md b/published/201603/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md similarity index 100% rename from published/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md rename to published/201603/20151215 Linux Desktop Fun--Summon Swarms Of Penguins To Waddle About The Desktop.md diff --git a/published/20160218 Best Linux Desktop Environments for 2016.md b/published/201603/20160218 Best Linux Desktop Environments for 2016.md similarity index 100% rename from published/20160218 Best Linux Desktop Environments for 2016.md rename to published/201603/20160218 Best Linux Desktop Environments for 2016.md diff --git a/published/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md b/published/201603/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md similarity index 100% rename from published/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md rename to published/201603/20160218 Canonical's ZFS Plans Are Lining Up For Ubuntu 16.04.md diff --git a/published/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md b/published/201603/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md similarity index 100% rename from published/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md rename to published/201603/20160218 Linux Kernel 4.1.18 LTS Is the Biggest in the Series with Hundreds of Changes.md diff --git a/published/20160218 Mozilla contributor creates diabetes project for the masses.md b/published/201603/20160218 Mozilla contributor creates diabetes project for the masses.md similarity index 100% rename from published/20160218 Mozilla contributor creates diabetes project for the masses.md rename to published/201603/20160218 Mozilla contributor creates diabetes project for the masses.md diff --git a/published/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md b/published/201603/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md similarity index 100% rename from published/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md rename to published/201603/20160218 ST Releases Free Linux IDE for 32-Bit MCUs.md diff --git a/published/20160220 Former Kubuntu Head Unveils New KDE Project.md b/published/201603/20160220 Former Kubuntu Head Unveils New KDE Project.md similarity index 100% rename from published/20160220 Former Kubuntu Head Unveils New KDE Project.md rename to published/201603/20160220 Former Kubuntu Head Unveils New KDE Project.md diff --git a/published/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md b/published/201603/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md similarity index 100% rename from published/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md rename to published/201603/20160220 Manjaro Linux Is Coming To ARM With Manjaro-ARM.md diff --git a/published/20160220 [Free Download] Vi Cheat Sheet For Beginners.md b/published/201603/20160220 [Free Download] Vi Cheat Sheet For Beginners.md similarity index 100% rename from published/20160220 [Free Download] Vi Cheat Sheet For Beginners.md rename to published/201603/20160220 [Free Download] Vi Cheat Sheet For Beginners.md diff --git a/published/20160226 Development Release- Xubuntu 16.04 Beta 1.md b/published/201603/20160226 Development Release- Xubuntu 16.04 Beta 1.md similarity index 100% rename from published/20160226 Development Release- Xubuntu 16.04 Beta 1.md rename to published/201603/20160226 Development Release- Xubuntu 16.04 Beta 1.md diff --git a/published/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md b/published/201603/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md similarity index 100% rename from published/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md rename to published/201603/20160229-OpenSSH-7.2-Out-Now-with-Support-for-RSA-Signatures-Using-SHA-256512 Algorithms.md diff --git a/published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md b/published/201603/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md similarity index 100% rename from published/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md rename to published/201603/20160301 More than 11 Million HTTPS Websites Imperiled by New Decryption Attack.md diff --git a/published/20160316 What we learned in Seoul with AlphaGo.md b/published/201603/20160316 What we learned in Seoul with AlphaGo.md similarity index 100% rename from published/20160316 What we learned in Seoul with AlphaGo.md rename to published/201603/20160316 What we learned in Seoul with AlphaGo.md diff --git a/published/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md b/published/201603/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md similarity index 100% rename from published/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md rename to published/201603/20160318 ownCloud Pi Device to Run on Snappy Ubuntu Core 16.04 LTS and Raspberry Pi 3.md diff --git a/published/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md b/published/201603/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md similarity index 100% rename from published/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md rename to published/201603/20160320 UbuntuBSD Brings Ubuntu And FreeBSD Together.md From cd089a6ed71ab30a3c501cd1babc58716aca88e3 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 3 Apr 2016 10:43:10 +0800 Subject: [PATCH 329/582] PUB:20151109 How to Configure Tripwire IDS on Debian @geekpi --- ...How to Configure Tripwire IDS on Debian.md | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) rename {translated/tech => published}/20151109 How to Configure Tripwire IDS on Debian.md (79%) diff --git a/translated/tech/20151109 How to Configure Tripwire IDS on Debian.md b/published/20151109 How to Configure Tripwire IDS on Debian.md similarity index 79% rename from translated/tech/20151109 How to Configure Tripwire IDS on Debian.md rename to published/20151109 How to Configure Tripwire IDS on Debian.md index 23bf8eef65..b9f134c361 100644 --- a/translated/tech/20151109 How to Configure Tripwire IDS on Debian.md +++ b/published/20151109 How to Configure Tripwire IDS on Debian.md @@ -1,39 +1,38 @@ -如何在Debian中配置Tripewire IDS +如何在 Debian 中配置 Tripewire IDS ================================================================================ -本文是一篇关于Debian中安装和配置Tripewire的文章。它是Linux环境下基于主机的入侵检测系统(IDS)。tripwire的高级功能有检测并报告任何Linux中未授权的更改(文件和目录)。tripewire安装之后,会先创建一个基本的数据库,tripewire监控并检测新文件的创建修改和谁修改了它等等。如果修改过是合法的,你可以接受修改并更新tripwire的数据库。 +本文是一篇关于 Debian 中安装和配置 Tripewire 的文章。它是 Linux 环境下基于主机的入侵检测系统(IDS)。tripwire 的高级功能有检测并报告任何 Linux 中未授权的(文件和目录)的更改。tripewire 安装之后,会先创建一个基本的数据库,tripewire 监控并检测新文件的创建修改和谁修改了它等等。如果修改是合法的,你可以接受修改并更新 tripwire 的数据库。 ### 安装和配置 ### -tripwire在Debian VM中的安装如下。 +tripwire 在 Debian VM 中的安装如下。 # apt-get install tripwire ![installation](http://blog.linoxide.com/wp-content/uploads/2015/11/installation.png) -安装中,tripwire会有下面的配置提示。 +安装中,tripwire 会有下面的配置提示。 #### 站点密钥创建 #### -tripwire需要一个站点口令来加密tripwire的配置文件tw.cfg和策略文件tw.pol。tripewire使用指定的密码加密两个文件。一个tripewire实例必须指定站点口令。 - +tripwire 需要一个站点口令(site passphrase)来加密 tripwire 的配置文件 tw.cfg 和策略文件 tw.pol。tripewire 使用指定的密码加密两个文件。一个 tripewire 实例必须指定站点口令。 ![site key1](http://blog.linoxide.com/wp-content/uploads/2015/11/site-key1.png) #### 本地密钥口令 #### -本地口令用来保护tripwire数据库和报告文件。本地密钥用于阻止非授权的tripewire数据库修改。 +本地口令用来保护 tripwire 数据库和报告文件。本地密钥用于阻止非授权的 tripewire 数据库修改。 ![local key1](http://blog.linoxide.com/wp-content/uploads/2015/11/local-key1.png) -#### Tripwire配置路径 #### +#### tripwire 配置路径 #### -tripewire配置存储在/etc/tripwire/twcfg.txt。它用于生成加密的配置文件tw.cfg。 +tripewire 配置存储在 /etc/tripwire/twcfg.txt。它用于生成加密的配置文件 tw.cfg。 ![configuration file](http://blog.linoxide.com/wp-content/uploads/2015/11/configuration-file.png) -**Tripwire策略路径** +**tripwire 策略路径** -tripwire在/etc/tripwire/twpol.txt中保存策略文件。它用于生成加密的策略文件tw.pol。 +tripwire 在 /etc/tripwire/twpol.txt 中保存策略文件。它用于生成加密的策略文件 tw.pol。 ![tripwire policy](http://blog.linoxide.com/wp-content/uploads/2015/11/tripwire-policy.png) @@ -41,9 +40,9 @@ tripwire在/etc/tripwire/twpol.txt中保存策略文件。它用于生成加密 ![installed tripewire1](http://blog.linoxide.com/wp-content/uploads/2015/11/installed-tripewire1.png) -#### Tripwire配置文件 (twcfg.txt) #### +#### tripwire 配置文件 (twcfg.txt) #### -tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件(tw.pol),站点密钥(site.key)和本地密钥(hostname-local.key)如下所示。 +tripewire 配置文件(twcfg.txt)细节如下图所示。加密策略文件(tw.pol)、站点密钥(site.key)和本地密钥(hostname-local.key)在后面展示。 ROOT =/usr/sbin @@ -79,9 +78,9 @@ tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件 TEMPDIRECTORY =/tmp -#### Tripwire策略配置 #### +#### tripwire 策略配置 #### -在生成基础数据库之前先配置tripwire配置。有必要经用一些策略如/dev、 /proc 、/root/mail等。详细的twpol.txt策略文件如下所示。 +在生成基础数据库之前先配置 tripwire 配置。有必要经用一些策略如 /dev、 /proc 、/root/mail 等。详细的 twpol.txt 策略文件如下所示。 @@section GLOBAL TWBIN = /usr/sbin; @@ -121,10 +120,10 @@ tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件 # vulnerability # - # Tripwire Binaries + # tripwire Binaries # ( - rulename = "Tripwire Binaries", + rulename = "tripwire Binaries", severity = $(SIG_HI) ) { @@ -237,9 +236,9 @@ tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件 #/proc -> $(Device) ; } -#### Tripwire 报告 #### +#### tripwire 报告 #### -**tripwire –check** 命令检查twpol.txt文件并基于此文件生成tripwire报告如下。如果twpol.txt中有任何错误,tripwire不会生成报告。 +**tripwire-check** 命令检查 twpol.txt 文件并基于此文件生成 tripwire 报告如下。如果 twpol.txt 中有任何错误,tripwire 不会生成报告。 ![tripwire report](http://blog.linoxide.com/wp-content/uploads/2015/11/tripwire-report.png) @@ -255,7 +254,7 @@ tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件 Wrote report file: /var/lib/tripwire/report/VMdebian-20151024-122322.twr - Open Source Tripwire(R) 2.4.2.2 Integrity Check Report + Open Source tripwire(R) 2.4.2.2 Integrity Check Report Report generated by: root @@ -299,13 +298,13 @@ tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件 Other binaries 66 0 0 0 - Tripwire Binaries 100 0 0 0 + tripwire Binaries 100 0 0 0 Other libraries 66 0 0 0 Root file-system executables 100 0 0 0 - Tripwire Data Files 100 0 0 0 + tripwire Data Files 100 0 0 0 System boot changes 100 0 0 0 @@ -351,9 +350,9 @@ tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件 *** End of report *** - Open Source Tripwire 2.4 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered + Open Source tripwire 2.4 Portions copyright 2000 tripwire, Inc. tripwire is a registered - trademark of Tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY; + trademark of tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY; for details use --version. This is free software which may be redistributed @@ -365,7 +364,7 @@ tripewire配置文件(twcfg.txt)细节如下图所示。加密策略文件 ### 总结 ### -本篇中,我们学习安装配置开源入侵检测软件tripwire。首先生成基础数据库并通过比较检测出任何改动(文件/文件夹)。然而,tripwire并不是实时监测的IDS。 +本篇中,我们学习安装配置开源入侵检测软件 tripwire。首先生成基础数据库并通过比较检测出任何改动(文件/文件夹)。然而,tripwire 并不是实时监测的 IDS。 -------------------------------------------------------------------------------- @@ -373,7 +372,7 @@ via: http://linoxide.com/security/configure-tripwire-ids-debian/ 作者:[nido][a] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 689a64448665ef81e649a1346ea8686ba7d3137b Mon Sep 17 00:00:00 2001 From: alim0x Date: Mon, 4 Apr 2016 00:03:58 +0800 Subject: [PATCH 330/582] [translated]24 - The history of Android --- .../24 - The history of Android.md | 82 ------------------ .../24 - The history of Android.md | 83 +++++++++++++++++++ 2 files changed, 83 insertions(+), 82 deletions(-) delete mode 100644 sources/talk/The history of Android/24 - The history of Android.md create mode 100644 translated/talk/The history of Android/24 - The history of Android.md diff --git a/sources/talk/The history of Android/24 - The history of Android.md b/sources/talk/The history of Android/24 - The history of Android.md deleted file mode 100644 index fa6750d427..0000000000 --- a/sources/talk/The history of Android/24 - The history of Android.md +++ /dev/null @@ -1,82 +0,0 @@ -安卓编年史 -================================================================================ -![漂亮的新 Google Play Music 应用,从电子风格转向完美契合 Play 商店的风格。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/Goooogleplaymusic.jpg) -漂亮的新 Google Play Music 应用,从电子风格转向完美契合 Play 商店的风格。 -Ron Amadeo 供图 - -在 I/O 大会推出的另一个应用更新是 Google Music 应用。音乐应用经过了完全的重新设计,最终摆脱了蜂巢中引入的蓝底蓝色调的设计。Play Music 的设计和几个月前发布的 Play 商店一致,有着响应式的白色卡片布局。Music 同时还是最早采用新抽屉导航样式的主要应用之一。谷歌还随新应用发布了 Google Play Music All Access,每月 10 美元的包月音乐订阅服务。Google Music 现在拥有订阅计划,音乐购买,以及云端音乐存储空间。这个版本还引入了“Instant Mix”,谷歌会在云端给相似的歌曲计算出一份歌单。 - -![一个展示对 Google Play Games 支持的游戏。上面是 Play 商店游戏特性描述,登陆游戏触发的权限对话框,Play Games 通知,以及成就界面。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/gooooogleplaygames.jpg) -一个展示对 Google Play Games 支持的游戏。上面是 Play 商店游戏特性描述,登陆游戏触发的权限对话框,Play Games 通知,以及成就界面。 -Ron Amadeo 供图 - -谷歌还引入了“Google Play Games”,一个后端服务,开发者可以将其附加到游戏中。这项服务简单说就是安卓版的 Xbox Live 或苹果的 Game Center。开发者可以给游戏添加 Play Games 支持,这样就能通过使用谷歌的后端服务,更简单地集成成就,多人游戏,游戏匹配,用户账户以及云端存档到游戏中。 - -Play Games 是谷歌在游戏方面推进的开始。就像单独的 GPS 设备,翻盖手机,以及 MP3 播放器,智能手机的生产者希望游戏设备能够变成智能手机的一个功能点。当你有部智能手机的时候你为什么还有买个任天堂 DS 或 PS Vita 呢?一个易于使用的多人游戏服务是这项计划的重要部分,我们仍能看到这个决定最后的成果。在今天,坊间都在传言谷歌和苹果有关于客厅游戏设备的计划。 - -![Google Keep,谷歌自 Google Notebook 以来第一个笔记服务。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/goooglekeep.jpg) -Google Keep,谷歌自 Google Notebook 以来第一个笔记服务。 -Ron Amadeo 供图 - -毫无疑问一些产品为了赶上 Google I/O 大会的发布准时开发完成了,[但是三个半小时内的主题][1]已经够多了,一些产品在大会的发布上忽略了。Google I/O 大会的三天后一切都清楚了,谷歌带来了 Google Keep,一个用于安卓和在线的笔记应用。Keep 看起来很简单,就是一个用上了响应式 Google-Now 风格设计的笔记应用。用户可以改变卡片的尺寸,从多栏布局改为单列视图。笔记可以由文本,清单,自动转文本的语音或者图片组成。笔记卡片可以拖动并在主界面重新组织,你甚至可以给笔记换个颜色。 - -![Gmail 4.5,换上了新的导航抽屉设计,去掉了几个按钮并将操作栏合并到了抽屉里。](http://cdn.arstechnica.net/wp-content/uploads/2014/05/gmail.png) -Gmail 4.5,换上了新的导航抽屉设计,去掉了几个按钮并将操作栏合并到了抽屉里。 -Ron Amadeo 供图 - -在 I/O 大会之后,没有哪些应用不在谷歌的周期外更新里。2013 年 6 月,谷歌发布了新版设计的 Gmail。最显眼的变化就是一个月前 Google I/O 大会引入的新导航抽屉界面。最吸引眼球的变化是用上了 Google+ 资料图片来取代复选框。虽然复选框看起来被去掉了,它们其实还在那,点击邮件左边的图片就是了。 - -![新谷歌地图,换上了全白的 Google-Now 风格主题。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/newmaps11.png) -新谷歌地图,换上了全白的 Google-Now 风格主题。 -Ron Amadeo 供图 - -One month later, Google released a completely overhauled version of Google Maps to the Play Store. It was the first ground-up redesign of Google Maps since Ice Cream Sandwich. The new version fully adopted the Google Now white card aesthetic, and it greatly reduced the amount of stuff on the screen. The new Google Maps seemed to have a design mandate to always show a map on the screen somewhere, as you’ll be hard pressed to find something other than the settings that fully covers the map. - -This version of Google Maps seemed to live in its own little design world. The white search bar “floated" above the map, with maps showing on the sides and top of the bar. That didn't really make it seem like the traditional Action Bar design. The navigation drawer, in the top left on every other app, was in the bottom left. There was no up button, app icon, or overflow button on the main screen. - -![The new Google Maps cut a lot of fat and displayed more information on a single screen.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/newmaps21.png) -The new Google Maps cut a lot of fat and displayed more information on a single screen. -Ron Amadeo 供图 - -The left picture shows what popped up when you tapped on the search bar (along with the keyboard, which had been closed). In the past, Google would show an empty page below a blank search bar, but in Maps, Google used that space to link to the new “Local" page. The “blank" search results displayed links to common, browsable results like restaurant listings, gas stations, and attractions. At the bottom of the results page was a list of nearby results from your search history and an option to manually cache parts of the map. - -The right set of images shows location page. The map shown in the top of the Maps 7 screenshot isn’t a thumbnail; that’s the full map view. In the new version of Google Maps, a location was displayed as a card that “floats" overtop of the main map, and the map was repositioned to center on the location. Scrolling up would move the card up and cover the map, and scrolling down would show the whole map with the result reduced to a small strip at the bottom. If the location was part of a list of search results, swiping left and right would move through the results. - -The location pages were redesigned to be much more useful at a glance. On the first page, the new version added critical information, like the location on a map, the review score, and the number of reviews. Since this is a phone, and the software will be dialing for you, the phone number was deemed pointless and was removed. The old version showed the distance to the location in miles, while the new version of Google Maps showed the distance in terms of time, based on traffic and preferred mode of transportation—a much more useful metric. The new version also put a share button front and center, which made coordination over IM or text messaging a lot easier. - -### Android 4.3, Jelly Bean—getting wearable support out early ### - -Android 4.3 would have been an incredible update if Google had done the traditional thing and not released updates between 4.3 and 4.2 through the Play Store. If the new Play Store, Gmail, Maps, Books, Music, Hangouts, Keep, and Play Games were bundled into a big brick as a new version of Android, it would have been hailed as the biggest release ever. Google didn't need to do hold back features anymore though. With very little left that required an OS update, at the end of July 2013, Google released the seemingly insignificant update called "Android 4.3." - -![Android Wear plugging into Android 4.3's Notification access screen.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/2014-03-28-12.231.jpg) -Android Wear plugging into Android 4.3's Notification access screen. -Ron Amadeo 供图 - -Google made no qualms about the low importance of 4.3, calling the newest release "Jelly Bean" (the third one in a row). Android 4.3's feature list read like a laundry list of things Google couldn't update from the Play Store or through Google Play Services, mostly consisting of low-level framework changes for developers. - -Many of the additions seemed to fit a singular purpose, though—Android 4.3 was Google's trojan horse for wearable computing support. 4.3 added support for Bluetooth Low Energy, a way to wirelessly connect Android to another device and pass data back and forth while using a very small amount of power—an integral feature to a wearable device. Android 4.3 also added a "Notification Access" API, which allowed apps to completely replicate and control the notification panel. Apps could display notification text and pictures and interact with the notification the same way users do—namely pressing action buttons and dismissing notifications. Doing this from an on-board app when you have the notification panel is useless, but on a device that is separate from your phone, replicating the information in the notification panel becomes much more useful. One of the few apps that plugged into this was "Android Wear Preview," which used the notification API to power most of the interface for Android Wear. - -The "4.3 is for wearables" theory explained the relatively low number of features in 4.3: it was pushed out the door to give OEMs time to update devices in time for the launch of [Android Wear][2]. The plan seems to have worked. Android Wear requires Android 4.3 and up, which has been out for so long now that most major flagships have updated. - -Android 4.3 was not all that exciting, but Android releases from here on out didn't need to be all that exciting. Everything became so modularized that Google could push updates out as soon as they were done through Google Play, rather than drop everything in one huge brick as an OS update. - ----------- - -![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) - -[Ron Amadeo][a] / Ron is the Reviews Editor at Ars Technica, where he specializes in Android OS and Google products. He is always on the hunt for a new gadget and loves to rip things apart to see how they work. - -[@RonAmadeo][t] - --------------------------------------------------------------------------------- - -via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/24/ - -译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:http://live.arstechnica.com/liveblog-google-io-2013-keynote/ -[2]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ -[a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo diff --git a/translated/talk/The history of Android/24 - The history of Android.md b/translated/talk/The history of Android/24 - The history of Android.md new file mode 100644 index 0000000000..71d1736a12 --- /dev/null +++ b/translated/talk/The history of Android/24 - The history of Android.md @@ -0,0 +1,83 @@ +安卓编年史 +================================================================================ +![漂亮的新 Google Play Music 应用,从电子风格转向完美契合 Play 商店的风格。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/Goooogleplaymusic.jpg) +漂亮的新 Google Play Music 应用,从电子风格转向完美契合 Play 商店的风格。 +Ron Amadeo 供图 + +在 I/O 大会推出的另一个应用更新是 Google Music 应用。音乐应用经过了完全的重新设计,最终摆脱了蜂巢中引入的蓝底蓝色调的设计。Play Music 的设计和几个月前发布的 Play 商店一致,有着响应式的白色卡片布局。Music 同时还是最早采用新抽屉导航样式的主要应用之一。谷歌还随新应用发布了 Google Play Music All Access,每月 10 美元的包月音乐订阅服务。Google Music 现在拥有订阅计划,音乐购买,以及云端音乐存储空间。这个版本还引入了“Instant Mix”,谷歌会在云端给相似的歌曲计算出一份歌单。 + +![一个展示对 Google Play Games 支持的游戏。上面是 Play 商店游戏特性描述,登陆游戏触发的权限对话框,Play Games 通知,以及成就界面。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/gooooogleplaygames.jpg) +一个展示对 Google Play Games 支持的游戏。上面是 Play 商店游戏特性描述,登陆游戏触发的权限对话框,Play Games 通知,以及成就界面。 +Ron Amadeo 供图 + +谷歌还引入了“Google Play Games”,一个后端服务,开发者可以将其附加到游戏中。这项服务简单说就是安卓版的 Xbox Live 或苹果的 Game Center。开发者可以给游戏添加 Play Games 支持,这样就能通过使用谷歌的后端服务,更简单地集成成就,多人游戏,游戏匹配,用户账户以及云端存档到游戏中。 + +Play Games 是谷歌在游戏方面推进的开始。就像单独的 GPS 设备,翻盖手机,以及 MP3 播放器,智能手机的生产者希望游戏设备能够变成智能手机的一个功能点。当你有部智能手机的时候你为什么还有买个任天堂 DS 或 PS Vita 呢?一个易于使用的多人游戏服务是这项计划的重要部分,我们仍能看到这个决定最后的成果。在今天,坊间都在传言谷歌和苹果有关于客厅游戏设备的计划。 + +![Google Keep,谷歌自 Google Notebook 以来第一个笔记服务。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/goooglekeep.jpg) +Google Keep,谷歌自 Google Notebook 以来第一个笔记服务。 +Ron Amadeo 供图 + +毫无疑问一些产品为了赶上 Google I/O 大会的发布准时开发完成了,[但是三个半小时内的主题][1]已经够多了,一些产品在大会的发布上忽略了。Google I/O 大会的三天后一切都清楚了,谷歌带来了 Google Keep,一个用于安卓和在线的笔记应用。Keep 看起来很简单,就是一个用上了响应式 Google-Now 风格设计的笔记应用。用户可以改变卡片的尺寸,从多栏布局改为单列视图。笔记可以由文本,清单,自动转文本的语音或者图片组成。笔记卡片可以拖动并在主界面重新组织,你甚至可以给笔记换个颜色。 + +![Gmail 4.5,换上了新的导航抽屉设计,去掉了几个按钮并将操作栏合并到了抽屉里。](http://cdn.arstechnica.net/wp-content/uploads/2014/05/gmail.png) +Gmail 4.5,换上了新的导航抽屉设计,去掉了几个按钮并将操作栏合并到了抽屉里。 +Ron Amadeo 供图 + +在 I/O 大会之后,没有哪些应用不在谷歌的周期外更新里。2013 年 6 月,谷歌发布了新版设计的 Gmail。最显眼的变化就是一个月前 Google I/O 大会引入的新导航抽屉界面。最吸引眼球的变化是用上了 Google+ 资料图片来取代复选框。虽然复选框看起来被去掉了,它们其实还在那,点击邮件左边的图片就是了。 + +![新谷歌地图,换上了全白的 Google-Now 风格主题。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/newmaps11.png) +新谷歌地图,换上了全白的 Google-Now 风格主题。 +Ron Amadeo 供图 + +一个月后,谷歌在 Play 商店发布了全新的谷歌地图。这是谷歌地图自冰淇淋三明治以来第一个经过细致地重新设计的版本。新版本完全适配了 Google Now 白色卡片审美,还大大减少了屏幕上显示的元素。新版谷歌地图似乎设计时有意使地图总是显示在屏幕上,你很难找到除了设置页面之外还能完全覆盖地图显示的选项。 + +这个版本的谷歌地图看起来活在它自己的小小设计世界中。白色的搜索栏“浮动”在地图之上,地图显示部分在它旁边和上面都有。这和传统的操作栏设计有所不同。一般在应用左上角的导航抽屉,在这里是在左下角。这里的主界面没有向上按钮,应用图标,也没有浮动按钮。 + +![新谷歌地图轻量化了许多,在一屏内能够显示更多的信息。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/newmaps21.png) +新谷歌地图轻量化了许多,在一屏内能够显示更多的信息。 +Ron Amadeo 供图 + +左边的图片显示的是点击了搜索栏后的效果(带键盘,这里关闭了)。过去谷歌在空搜索栏下面显示一个空页面,但在地图中,谷歌利用这些空间链接到新的“本地”页面。搜索结果页显示一般信息的结果,比如餐馆,加油站,以及景点。在结果页的底部是个列表,显示你的搜索历史和手动缓存部分地图的选项。 + +右侧图片显示的是地点页面。上面地图 7.0 的截图里显示的地图不是略缩图,它是完整的地图视图。在新版的谷歌地图中,地点作为卡片浮动显示在主地图之上,地图重新居中显示该地点。向上滑动可以让卡片覆盖地图,向下滑动可以显示带有底部一小条结果的完整地图。如果该地点是搜索结果列表中的一个,左右滑动可以在结果之间切换。 + +地点页面重新设计以显示更有用的信息概览。在第一页,新版添加了重要信息,比如地图上的位置,点评得分,以及点评数目。因为这是个手机,所以软件内可以直接拨打电话,电话号码的显示被认为是毫无意义的,被去掉了。旧版地点显示到那里的距离,新版谷歌地图显示到那里的时间,基于交通状况和偏好的交通方式——一个更加实用的衡量方式。新版还在中间放了个分享按钮,这使得通过即时通讯或短信协调的时候更加方便。 + +### Android 4.3,果冻豆——早早支持可穿戴设备 ### + +如果谷歌没有在安卓 4.3 和安卓 4.2 之间通过 Play 商店发布更新的话,安卓 4.3 会是个不可思议的更新。如果新版 Play 商店,Gmail,地图,书籍,音乐,Hangouts 环聊,以及 Play Games 打包作为新版安卓的一部分,它将会作为有史以来最大的发布受到欢呼。虽然谷歌没必要延后新功能的发布。有了 Play 服务框架,只剩很少的部分需要系统更新,2013 年 7 月底谷歌发布了看似无关紧要的“安卓 4.3”。 + +![安卓 4.3 通知访问权限界面的可穿戴设备选项。 +](http://cdn.arstechnica.net/wp-content/uploads/2014/03/2014-03-28-12.231.jpg) +安卓 4.3 通知访问权限界面的可穿戴设备选项。 +Ron Amadeo 供图 + +谷歌也毫无疑问地认为 4.3 的重要性不高,将新版也叫做“果冻豆”(第三个叫果冻豆的版本了)。安卓 4.3 的新功能列表像是谷歌无法通过 Play 商店或谷歌 Play 服务更新的部分的细目清单,大部分包含了为开发者作出的底层架构改动。 + +但许多新增功能似乎只为了一个目的——安卓 4.3 是谷歌对可穿戴计算支持的特洛伊木马。4.3 加入了低功耗蓝牙支持,使用很少的能耗将安卓和其它设备连接到一起并传输数据——可穿戴设备的必要特性。安卓 4.3 还添加了“通知访问权限”API,允许应用完全复制和控制通知面板。应用可以显示通知文本以及和用户操作一样地和通知交互——也就是点击操作按钮和消除通知。当你有个通知面板时从本机应用做这个操作没什么意义,但是在一个独立于你手机的设备上,复制通知面板的消息就显得很有用了。为数不多的接入的应用是 “Android Wear Preview(安卓可穿戴预览)”,使用了通知 API 驱动大部分的 Android Wear 界面。 + +“4.3 是给可穿戴设备准备的”这个理论解释了 4.3 相对较少的新特性:它的推出是为了给 OEM 厂商时间去升级设备,为 [Android Wear][2] 的发布做准备。这个计划看起来起作用了。Android Wear 要求 安卓 4.3 及以上版本,安卓 4.3 已经发布很长时间了,大部分主要的旗舰设备都已经升级了。 + +安卓并没有那么激动人心,但安卓从现在起的新版也不需要那么激动人心了。一切都变得那么模块化了,谷歌可以通过 Google Play 在它们完成时随时推送更新,不用再作为一个大系统更新来更新这么多组件。 + +---------- + +![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) + +[Ron Amadeo][a] / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。 + +[@RonAmadeo][t] + +-------------------------------------------------------------------------------- + +via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/24/ + +译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://live.arstechnica.com/liveblog-google-io-2013-keynote/ +[2]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ +[a]:http://arstechnica.com/author/ronamadeo +[t]:https://twitter.com/RonAmadeo From b8b94f4ca73048a7a2a2c53e119bd4df3e7f5bee Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 4 Apr 2016 05:24:12 +0800 Subject: [PATCH 331/582] PUB:Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition @GHLandy --- ...esystems and Configuring Swap Partition.md | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) rename {translated/tech => published}/LFCS/Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition.md (82%) diff --git a/translated/tech/LFCS/Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition.md b/published/LFCS/Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition.md similarity index 82% rename from translated/tech/LFCS/Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition.md rename to published/LFCS/Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition.md index 987ea4a7f8..77bd84087c 100644 --- a/translated/tech/LFCS/Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition.md +++ b/published/LFCS/Part 4 - LFCS--Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition.md @@ -1,13 +1,11 @@ -GHLandy Translated - -LFCS 系列第四讲:分区存储设备、格式化文件系统和配置交换分区 - +LFCS 系列第四讲:对存储设备分区、格式化文件系统和配置交换分区 ================================================================================ + 去年八月份,Linux 基金会发起了 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证,给所有系统管理员一个展现自己的机会。通过基础考试后,他们可以胜任在 Linux 上的整体运维工作:包括系统支持、一流水平的诊断和监控以及在必要之时向其他支持团队提交帮助请求等。 ![Linux Foundation Certified Sysadmin – Part 4](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-4.png) -LFCS 系列第四讲 +*LFCS 系列第四讲* 需要注意的是,Linux 基金会认证是非常严格的,通过与否完全要看个人能力。通过在线链接,你可以随时随地参加 Linux 基金会认证考试。所以,你再也不用到考试中心了,只需要不断提高自己的专业技能和经验就可去参加考试了。 @@ -16,13 +14,13 @@ LFCS 系列第四讲 注:youtube 视频 -本讲是《十套教程》系列中的第四讲。在本讲中,我们将涵盖分区存储设备、格式化文件系统和配置交换分区等内容,这些都是 LFCS 认证中的必备知识。 +本讲是系列教程中的第四讲。在本讲中,我们将涵盖对存储设备进行分区、格式化文件系统和配置交换分区等内容,这些都是 LFCS 认证中的必备知识。 -### 分区存储设备 ### +### 对存储设备分区 ### 分区是一种将单独的硬盘分成一个或多个区的手段。一个分区只是硬盘的一部分,我们可以认为这部分是独立的磁盘,里边包含一个单一类型的文件系统。分区表则是将硬盘上这些分区与分区标识符联系起来的索引。 -在 Linux 中,IBM PC 兼容系统里边用于管理传统 MBR(最新到2009年)分区的工具是 fdisk。对于 GPT(2010年至今)分区,我们使用 gdisk。这两个工具都可以通过程序名后面加上设备名称(如 /dev/sdb)进行调用。 +在 Linux 上,IBM PC 兼容系统里边用于管理传统 MBR(用到2009年)分区的工具是 fdisk。对于 GPT(2010年至今)分区,我们使用 gdisk。这两个工具都可以通过程序名后面加上设备名称(如 /dev/sdb)进行调用。 #### 使用 fdisk 管理 MBR 分区 #### @@ -34,17 +32,17 @@ LFCS 系列第四讲 ![fdisk Help Menu](http://www.tecmint.com/wp-content/uploads/2014/10/fdisk-help.png) -fdisk 帮助菜单 +*fdisk 帮助菜单* 上图中,使用频率最高的选项已高亮显示。你可以随时按下 “p” 显示分区表。 ![Check Partition Table in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Show-Partition-Table.png) -显示分区表 +*显示分区表* Id 列显示由 fdisk 分配给每个分区的分区类型(分区 id)。一个分区类型代表一种文件系统的标识符,简单来说,包括该分区上数据的访问方法。 -请注意,每个分区类型的全面都全面讲解将超出了本教程的范围——本系列教材主要专注于 LFCS 测试,因能力为主。 +请注意,每个分区类型的全面讲解将超出了本教程的范围——本系列教材主要专注于 LFCS 测试,以考试为主。 **下面列出一些 fdisk 常用选项:** @@ -58,25 +56,25 @@ Id 列显示由 fdisk 分配给每个分区的分区类型(分区 id)。一 ![fdisk Command Options](http://www.tecmint.com/wp-content/uploads/2014/10/fdisk-options.png) -fdisk 命令选项 +*fdisk 命令选项* 按下 “n” 后接着按下 “p” 会创建新一个主分区。最后,你可以使用所有的默认值(这将占用所有的可用空间),或者像下面一样自定义分区大小。 ![Create New Partition in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Create-New-Partition.png) -创建新分区 +*创建新分区* 若 fdisk 分配的分区 Id 并不是我们想用的,可以按下 “t” 来更改。 ![Change Partition Name in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Change-Partition-Name.png) -更改分区类型 +*更改分区类型* 全部设置好分区后,按下 “w” 将更改保存到硬盘分区表上。 ![Save Partition Changes](http://www.tecmint.com/wp-content/uploads/2014/10/Save-Partition-Changes.png) -保存分区更改 +*保存分区更改* #### 使用 gdisk 管理 GPT 分区 #### @@ -88,7 +86,7 @@ fdisk 命令选项 ![Create GPT Partitions in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Create-GPT-Partitions.png) -创建 GPT 分区 +*创建 GPT 分区* 使用 GPT 分区方案,我们可以在同一个硬盘上创建最多 128 个分区,单个分区最大以 PB 为单位,而 MBR 分区方案最大的只能 2TB。 @@ -96,7 +94,7 @@ fdisk 命令选项 ![gdisk Command Options](http://www.tecmint.com/wp-content/uploads/2014/10/gdisk-options.png) -gdisk 命令选项 +*gdisk 命令选项* ### 格式化文件系统 ### @@ -106,14 +104,14 @@ gdisk 命令选项 ![Check Filesystems Type in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Filesystems.png) -检查文件系统类型 +*检查文件系统类型* 选择文件系统取决于你的需求。你应该考虑到每个文件系统的优缺点以及其特点。选择文件系统需要看的两个重要属性: - 日志支持,允许从系统崩溃事件中快速恢复数据。 -- 安全增强式 Linux(SELinux)支持,按照项目 wiki 所说,“安全增强式 Linux 允许用户和管理员更好的把握访问控制权限”。 +- 安全增强式 Linux(SELinux)支持,按照项目 wiki 所说,“安全增强式 Linux 允许用户和管理员更好的控制访问控制权限”。 -在接下来的例子中,我们通过 mkfs 在 /dev/sdb1上创建 ext4 文件系统(支持日志和 SELinux),标卷为 Tecmint。mkfs 基本语法如下: +在接下来的例子中,我们通过 mkfs 在 /dev/sdb1 上创建 ext4 文件系统(支持日志和 SELinux),标卷为 Tecmint。mkfs 基本语法如下: # mkfs -t [filesystem] -L [label] device 或者 @@ -121,7 +119,7 @@ gdisk 命令选项 ![Create ext4 Filesystems in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Create-ext4-Filesystems.png) -创建 ext4 文件系统 +*创建 ext4 文件系统* ### 创建并启用交换分区 ### @@ -129,7 +127,7 @@ gdisk 命令选项 下面列出选择交换分区大小的经验法则: -物理内存不高于 2GB 时,取两倍物理内存大小即可;物理内存在 2GB 以上时,取一倍物理内存大小即可;并且所取大小应该大于 32MB。 +> 物理内存不高于 2GB 时,取两倍物理内存大小即可;物理内存在 2GB 以上时,取一倍物理内存大小即可;并且所取大小应该大于 32MB。 所以,如果: @@ -142,7 +140,7 @@ M为物理内存大小,S 为交换分区大小,单位 GB,那么: 记住,这只是基本的经验。对于作为系统管理员的你,才是决定是否使用交换分区及其大小的关键。 -要配置交换分区,首先要划分一个常规分区,大小像我们之前演示的那样来选取。然后添加以下条目到 /etc/fstab 文件中(其中的X要更改为对应的 b 或 c)。 +要配置交换分区,首先要划分一个常规分区,大小像我们之前演示的那样来选取。然后添加以下条目到 /etc/fstab 文件中(其中的 X 要更改为对应的 b 或 c)。 /dev/sdX1 swap swap sw 0 0 @@ -163,15 +161,15 @@ M为物理内存大小,S 为交换分区大小,单位 GB,那么: ![Create-Swap-Partition in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Create-Swap-Partition.png) -创建交换分区 +*创建交换分区* ![Add Swap Partition in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Enable-Swap-Partition.png) -启用交换分区 +*启用交换分区* ### 结论 ### -在你的系统管理员之路上,创建分区(包括交换分区)和格式化文件系统是非常重要的一部。我希望本文中所给出的技巧指导你到达你的管理员目标。随时在本讲评论区中发表你的技巧和想法,一起为社区做贡献。 +在你的系统管理员之路上,创建分区(包括交换分区)和格式化文件系统是非常重要的一步。我希望本文中所给出的技巧指导你到达你的管理员目标。随时在本讲评论区中发表你的技巧和想法,一起为社区做贡献。 参考链接 @@ -185,7 +183,7 @@ via: http://www.tecmint.com/create-partitions-and-filesystems-in-linux/ 作者:[Gabriel Cánepa][a] 译者:[GHLandy](https://github.com/GHLandy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 3a8eb74434953ed2da4745089da5253d0a32383c Mon Sep 17 00:00:00 2001 From: alim0x Date: Mon, 4 Apr 2016 14:57:28 +0800 Subject: [PATCH 332/582] [translating]25 - The history of Android --- .../The history of Android/25 - The history of Android.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/talk/The history of Android/25 - The history of Android.md b/sources/talk/The history of Android/25 - The history of Android.md index 39eeb55768..779aa31ce2 100644 --- a/sources/talk/The history of Android/25 - The history of Android.md +++ b/sources/talk/The history of Android/25 - The history of Android.md @@ -1,3 +1,5 @@ +alim0x translating + The history of Android ================================================================================ ![The LG-made Nexus 5, the launch device for KitKat.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/nexus56.jpg) @@ -67,4 +69,4 @@ via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-histor [4]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ [5]:http://arstechnica.com/gadgets/2013/11/google-just-pulled-a-facebook-home-kitkats-primary-interface-is-google-search/ [a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo \ No newline at end of file +[t]:https://twitter.com/RonAmadeo From 96cce3d9a7b9e051498db2cbcc0f6004049099ea Mon Sep 17 00:00:00 2001 From: alim0x Date: Mon, 4 Apr 2016 17:52:03 +0800 Subject: [PATCH 333/582] [translated]25 - The history of Android --- .../25 - The history of Android.md | 72 ------------------- .../25 - The history of Android.md | 71 ++++++++++++++++++ 2 files changed, 71 insertions(+), 72 deletions(-) delete mode 100644 sources/talk/The history of Android/25 - The history of Android.md create mode 100644 translated/talk/The history of Android/25 - The history of Android.md diff --git a/sources/talk/The history of Android/25 - The history of Android.md b/sources/talk/The history of Android/25 - The history of Android.md deleted file mode 100644 index 779aa31ce2..0000000000 --- a/sources/talk/The history of Android/25 - The history of Android.md +++ /dev/null @@ -1,72 +0,0 @@ -alim0x translating - -The history of Android -================================================================================ -![The LG-made Nexus 5, the launch device for KitKat.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/nexus56.jpg) -The LG-made Nexus 5, the launch device for KitKat. - -Android 4.4, KitKat—more polish; less memory usage - -Google got really cute with the launch of Android 4.4. The company [teamed up with Nestlé][1] to name the OS "KitKat," and it launched on Halloween, October 31, 2013. Nestlé produced limited-edition Android-shaped KitKat bars, and KitKat packaging in stores promoted the new OS while offering a chance to win a Nexus 7. - -KitKat launched with a new Nexus device, the Nexus 5. The new flagship had the biggest display yet: a five-inch, 1920x1080 LCD. Despite the bigger screen size, LG—again the manufacturer for the device—was able to fit the Nexus 5 into the same dimensions as a Galaxy Nexus or Nexus 4. - -The Nexus 5 was specced comparatively to the highest-end phones at the time, with a 2.3Ghz Snapdragon 800 processor and 2GB of RAM. The phone was again sold unlocked on the Play Store, but while most phones with specs like this would go for $600-$700, Google sold the Nexus 5 for only $350. - -One of the most important improvements in KitKat was one you couldn't see: significantly lower memory usage. For KitKat, Google started a concerted effort to lower memory usage across the OS and bundled apps called "Project Svelte." After tons of optimization work and a "low memory" mode that disabled expensive graphical effects, Android could now run on as little as 340MB of RAM. Lower memory requirements were a big deal, because devices in the developing world—the biggest growth markets for smartphones—often ran on only 512MB of RAM. Ice Cream Sandwich's more advanced UI significantly raised the system requirements of Android devices, which left many low-end devices—even newly released low-end devices—stuck on Gingerbread. The lower system requirements of KitKat meant to bring these cheap devices back into the fold. With KitKat, Google hoped to finally kill Gingerbread (which, at the time of writing, is around 20 percent of the market). Just in case the lower system requirements weren't enough, there have even been reports that Google will [no longer license][2] the Google apps to Gingerbread devices. - -Besides bringing low-end phones to a modern version of the OS, Project Svelte's lower memory requirements were to be a boon to wearable computers, too. Google Glass [announced][3] it was also switching to the slimmer OS, and [Android Wear][4] ran on KitKat, too. The lower memory requirements in Android 4.4 and the notification API and Bluetooth LE support in 4.3 came together nicely to support wearable computing. - -KitKat also featured a lot of polish to the core OS interfaces that couldn't be updated via the Play Store. The System UI, Dialer, Clock, and Settings all saw updates. - -![KitKat's transparent bars on the Google Now Launcher.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/1homescreenz.png) -KitKat's transparent bars on the Google Now Launcher. -Photo by Ron Amadeo - -KitKat not only got rid of the unpopular lines to the left and right sides of the lock screen—it completely disabled lock screen widgets by default! Google obviously felt multiple lock screens and multiple home screens were a little to complicated for new users, so lock screen widgets now needed to be enabled in the settings. The lopsided time here and in the clock app was switched to a symmetrical weight, which looked a lot nicer. - -In KitKat, apps had the ability to make the system and status bars transparent, which significantly changed the look of the OS. The bars now blended into the wallpaper and any other app that chose to enable transparent bars. The bars could also be completely hidden by any app via a new feature called “immersive" mode. - -KitKat was the final nail in the “Tron" coffin, removing almost all traces of blue from the operating system. The status bar icons were changed from a blue to a neutral white. The status and system bars on the home screen weren’t completely transparent; a dark gradient was added to the top and bottom of the screen so that the white icons would still be visible on a light background. - -![Tweaks to Google Now and the folders.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/nowfolders.png) -Tweaks to Google Now and the folders. -Photo by Ron Amadeo - -The home screen that shipped with KitKat on the Nexus 5 was actually exclusive to the Nexus 5 for a few months, but it could now be on any Nexus device. The new home screen was called the "Google Now Launcher," and it was actually [the Google Search app][5]. Yes, Google Search grew from a simple search box to an entire home screen, and in KitKat, it drew the wallpaper, icons, app drawer, widgets, home screen settings, Google Now, and, of course, the search box. Thanks to Search now running the entire home screen, any time the home screen was open and the screen was on, voice commands could be activated by saying “OK Google." This was pointed out to the user with introductory “Say 'OK Google' text in the search bar, which would fade away after a few uses. - -Google Now was more integrated, too. Besides the usual swipe up from the system bar, Google Now was also the leftmost home screen. The new version brought some design tweaks as well. The Google logo was moved into the search bar, and the whole top area was compacted. A few card designs were cleaned up, and a new set of buttons at the bottom led to reminders, customization options, and an overflow button with settings, feedback, and help. Since Google Now was part of the home screen, it got transparent system and status bars, too. - -Transparency and “brightening up" certain parts of the OS were design themes in KitKat. Black was removed in the status and system bars by switching to transparent, and the black background of the folders was switched to white. - -![A screenshot showing the new, cleaner app screen layout, and a composite image of the app lineup.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/apps.png) -A screenshot showing the new, cleaner app screen layout, and a composite image of the app lineup. -Photo by Ron Amadeo - -The KitKat icon lineup changed significantly from 4.3. To be more dramatic, it was a bloodbath, with Google removing seven icons over the 4.3 loadout. Google Hangouts could handle SMS now, so the Messaging app was removed. Hangouts also took over Google+ Messenger duties, so that app shortcut was cut. Google Currents was removed as a default app, as it would soon be killed—along with Google Play Magazines—in favor of Google Play Newsstand. Google Maps was beaten back into a single icon, which meant Local and Navigation shortcuts were removed. The impossible-to-understand Movie Studio was cut, too—Google must have realized no one wants to edit movies on a phone. Thanks to the home screen “OK Google" hotword detection, the Voice Search icon was rendered redundant and removed. Depressingly, the long abandoned News & Weather app remained. - -There was a new app called “Photos"—really the Google+ app—which took over picture management duties. On the Nexus 5, the Gallery and Google+ Photos were pretty similar, but in newer builds of KitKat present on Google Play Edition devices, the Gallery was completely replaced by Google+ photos. Play Games was an interface for Google’s back-end multiplayer service—a Googly version of Xbox Live or Apple’s Game Center. Google Drive, which existed for years as a Play Store app, was finally made a default app. Google bought Quickoffice back in June 2012, now finally deeming the app acceptable for inclusion by default. While Drive opened Google Documents, Quickoffice opened Microsoft Office Documents. If keeping track, that was two document editing apps and two photo editing apps included on most KitKat loadouts. - ----------- - -![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) - -[Ron Amadeo][a] / Ron is the Reviews Editor at Ars Technica, where he specializes in Android OS and Google products. He is always on the hunt for a new gadget and loves to rip things apart to see how they work. - -[@RonAmadeo][t] - --------------------------------------------------------------------------------- - -via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/25/ - -译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:http://arstechnica.com/gadgets/2013/09/official-the-next-edition-of-android-is-kitkat-version-4-4/ -[2]:http://www.androidpolice.com/2014/02/10/rumor-google-to-begin-forcing-oems-to-certify-android-devices-with-a-recent-os-version-if-they-want-google-apps/ -[3]:http://www.androidpolice.com/2014/03/01/glass-xe14-delayed-until-its-ready-promises-big-changes-and-a-move-to-kitkat/ -[4]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ -[5]:http://arstechnica.com/gadgets/2013/11/google-just-pulled-a-facebook-home-kitkats-primary-interface-is-google-search/ -[a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo diff --git a/translated/talk/The history of Android/25 - The history of Android.md b/translated/talk/The history of Android/25 - The history of Android.md new file mode 100644 index 0000000000..01b93c71a9 --- /dev/null +++ b/translated/talk/The history of Android/25 - The history of Android.md @@ -0,0 +1,71 @@ +安卓编年史 +================================================================================ +![LG 制造的 Nexus 5,奇巧(KitKat)的首发设备。 +](http://cdn.arstechnica.net/wp-content/uploads/2014/03/nexus56.jpg) +LG 制造的 Nexus 5,奇巧(KitKat)的首发设备。 + +Android 4.4,奇巧——更完美;更少的内存占用 + +谷歌安卓 4.4 的发布确实很讨巧。谷歌和[雀巢公司合作][1],新版系统的代号是“奇巧(KitKat)”,并且它是在 2013 年 10 月 31 日发布的,也就是万圣节。雀巢公司推出了限量版带安卓机器人的奇巧巧克力,它的包装也帮助新版系统推广,消费者有机会赢取一台 Nexus 7。 + +一部新的 Nexus 设备也随奇巧一同发布,就是 Nexus 5。新旗舰拥有迄今最大的显示屏:一块五英寸,1920x1080 分辨率的 LCD 显示屏。除了更大尺寸的屏幕,LG——Nexus 5 的制造商——还将 Nexus 5 的机器大小控制得和 Galaxy Nexus 或 Nexus 4 差不多。 + +Nexus 5 相对同时期的高端手机配置算是标准了,拥有 2.3Ghz 骁龙 800 处理器和 2GB 内存。手机再次在 Play 商店销售无锁版,相同配置的大多数手机价格都在 600 到 700 美元之间,但 Nexus 5 的售价仅为 350 美元。 + +奇巧最重要的改进之一你并不能看到:显著减少的内存占用。对奇巧而言,谷歌齐心协力开始了降低系统和预装应用内存占用的努力,称作“Project Svelte”。经过了无数的优化工作和通过一个“低内存模式”(禁用图形开销大的特效),安卓现在可以在 340MB 内存下运行。低内存需求是件了不起的事,因为在发展中国家的设备——智能手机增长最快的市场——许多设备的内存仅有 512MB。冰淇淋三明治更高级的 UI 显著提高了对安卓设备的系统配置要求,这使得很多低端设备——甚至是新发布的低端设备——的安卓版本停留在姜饼。奇巧更低的配置需求意味着这些廉价设备能够跟上脚步。有了奇巧,谷歌希望完全消灭姜饼(写下本文时姜饼的市场占有率还在 20% 左右)。为了防止更低的系统需求还不够有效,甚至有报道称谷歌将[不再授权][2]谷歌应用给姜饼设备。 + +除了给低端设备带来更现代版本的系统,Project Svelte 更低的内存需求同样对可穿戴设备也是个好消息。Google Glass [宣布][3]它会切换到这个更精简的系统,[Android Wear][4] 同样也运行在奇巧之上。安卓 4.4 带来的更低的内存需求以及 4.3 中的通知消息 API 和低功耗蓝牙支持给了可穿戴计算漂亮的支持。 + +奇巧的亮点还有无数精心打磨过的核心系统界面,它们无法通过 Play 商店升级。系统界面,拨号盘,时钟还有设置都能看到升级。 + +![奇巧在 Google Now 启动器下的透明系统栏。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/1homescreenz.png) +奇巧在 Google Now 启动器下的透明系统栏。 +Ron Amadeo 供图 + +奇巧不仅去掉了讨人厌的锁屏左右屏的线框——它还默认完全禁用了锁屏小部件!谷歌明显感觉到了多屏锁屏和锁屏主屏对新用户来说有点复杂,所以锁屏小部件现在需要从设置里启用。锁屏和时钟里不平衡的时间字体换成了一个对称的字重,看起来好看多了。 + +在奇巧中,应用拥有将系统栏和状态栏透明的能力,显著地改变了系统的外观。系统栏和状态栏现在混合到壁纸和启用透明栏的应用中去了。这些栏还能通过新功能“沉浸”模式完全被应用隐藏。 + +奇巧是“电子”科幻风格棺材上的最后一颗钉子,几乎完全移除了系统的蓝色痕迹。状态栏图标由蓝色变成中性的白色。主屏的状态栏和系统栏并不是完全透明的;它们有深色的渐变,这样在使用浅色壁纸的时候白色的图标还能轻易地识别出来。 + +![Google Now 和文件夹的调整。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/nowfolders.png) +Google Now 和文件夹的调整。 +Ron Amadeo 供图 + +在 Nexus 5 上随奇巧到来的主屏实际上由 Nexus 5 独占了几个月,但现在任何 Nexus 设备都能拥有它了。新的主屏叫做“Google Now Launcher”,它实际上是[谷歌搜索应用][5]。是的,谷歌搜索从一个简单的搜索框成长到了整个主屏幕,并且在奇巧中,它涉及了壁纸,图标,应用抽屉,小部件,主屏设置,Google Now,当然,还有搜索框。由于搜索现在运行在整个主屏幕,任何时候只要打开了主屏并且屏幕是点亮的,就可以通过说“OK Google”激活语音命令。在搜索栏有引导用户说出“OK Google”的文本,在几次使用后这个介绍会隐去。 + +Google Now 的集成度现在更高了。除了通常的系统栏上滑激活,Google Now 还占据了最左侧的主屏。新版还引入了一些设计上的调整。谷歌的 logo 移到了搜索栏内,整个顶部区域更紧凑了。显示更多卡片的设计被去除了,新添加的一组底部按钮指向备忘录,自定义选项,以及一个更多操作按钮,里面由设置,反馈,以及帮助。因为 Google Now 是主屏幕的一部分,所以它也拥有透明 的系统栏和状态栏。 + +透明以及让系统的特定部分“更明亮”是奇巧的设计主题。黑色调通过透明化从状态栏和系统栏移除了,文件夹的黑色背景也换为了白色。 + +![新的,更加干净的应用列表,以及完整的应用阵容。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/apps.png) +新的,更加清爽的应用列表,以及完整的应用阵容。 +Ron Amadeo 供图 + +奇巧的图标阵容相对 4.3 有显著的变化。更戏剧化地说,这是一场大屠杀,谷歌从 4.3 的配置中移除了七个图标。谷歌 Hangouts 现在能够处理短信,所以信息应用被去除了。Hangouts 同时还接手了 Google Messenger 的职责,所以它的图标也不见了。Google Currents 不再作为默认应用预装,因为它不久后就会被终结——和它一起的还有 Google Play Magazines(Play 杂志),取代它们的是 Google Play Newsstand(Play 报刊亭)。谷歌地图被打回一个图标,这意味着本地和导航的快捷方式被去掉了。难以理解的 Movie Studio 也被去除了——谷歌肯定已经意识到了没人想在手机上剪辑电影。有了主屏的“OK Google”关键词检测,语音搜索图标的呈现就显得多余了,因而将其移除。令人沮丧的是,没人用的新闻和天气应用还在。 + +有个新应用“Photos(相片)”——实际上是 Google+ 的一部分——接手了图片管理的工作。在 Nexus 5 上,相册和 Google+ 相片十分相似,但在 Google Play 版设备上更新版的奇巧中,相册已经完全被 Google+ 相片所取代。Play Games 是谷歌的后端多用户游戏服务——谷歌版的 Xbox Live 或苹果的 Game Center。Google Drive,已经在 Play 商店存在数年的应用,终于成为了内置应用。谷歌 2012 年 6 月收购的 Quickoffice 也进入了内置应用阵容。Drive 可以打开 Google 文档,Quickoffice 可以打开微软 Office 文档。如果细细追究起来,在大多数奇巧中包含了两个文档编辑应用和两个相片编辑应用。 + +---------- + +![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) + +[Ron Amadeo][a] / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。 + +[@RonAmadeo][t] + +-------------------------------------------------------------------------------- + +via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/25/ + +译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://arstechnica.com/gadgets/2013/09/official-the-next-edition-of-android-is-kitkat-version-4-4/ +[2]:http://www.androidpolice.com/2014/02/10/rumor-google-to-begin-forcing-oems-to-certify-android-devices-with-a-recent-os-version-if-they-want-google-apps/ +[3]:http://www.androidpolice.com/2014/03/01/glass-xe14-delayed-until-its-ready-promises-big-changes-and-a-move-to-kitkat/ +[4]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ +[5]:http://arstechnica.com/gadgets/2013/11/google-just-pulled-a-facebook-home-kitkats-primary-interface-is-google-search/ +[a]:http://arstechnica.com/author/ronamadeo +[t]:https://twitter.com/RonAmadeo From f1d4a3b9d524317ffae005560455c7eaa5597d4c Mon Sep 17 00:00:00 2001 From: alim0x Date: Mon, 4 Apr 2016 17:53:35 +0800 Subject: [PATCH 334/582] [translating]26 - The history of Android --- .../The history of Android/26 - The history of Android.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/talk/The history of Android/26 - The history of Android.md b/sources/talk/The history of Android/26 - The history of Android.md index 3f9e1427ba..ed0ff30fb3 100644 --- a/sources/talk/The history of Android/26 - The history of Android.md +++ b/sources/talk/The history of Android/26 - The history of Android.md @@ -1,3 +1,5 @@ +alim0x translating + The history of Android ================================================================================ ![The new "add to home screen" interface was definitely inspired by Honeycomb.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/homesetupthrowback.png) @@ -84,4 +86,4 @@ via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-histor [5]:http://userexperienceawards.com/uxa2012/ [6]:http://arstechnica.com/gadgets/2014/04/googles-next-design-challenge-unify-app-design-across-platforms/ [a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo \ No newline at end of file +[t]:https://twitter.com/RonAmadeo From cc421b59aa76db532e215be9a4c20c79fe03a37f Mon Sep 17 00:00:00 2001 From: alim0x Date: Mon, 4 Apr 2016 21:13:14 +0800 Subject: [PATCH 335/582] [translated]26 - The history of Android --- .../26 - The history of Android.md | 89 ------------------- .../26 - The history of Android.md | 87 ++++++++++++++++++ 2 files changed, 87 insertions(+), 89 deletions(-) delete mode 100644 sources/talk/The history of Android/26 - The history of Android.md create mode 100644 translated/talk/The history of Android/26 - The history of Android.md diff --git a/sources/talk/The history of Android/26 - The history of Android.md b/sources/talk/The history of Android/26 - The history of Android.md deleted file mode 100644 index ed0ff30fb3..0000000000 --- a/sources/talk/The history of Android/26 - The history of Android.md +++ /dev/null @@ -1,89 +0,0 @@ -alim0x translating - -The history of Android -================================================================================ -![The new "add to home screen" interface was definitely inspired by Honeycomb.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/homesetupthrowback.png) -The new "add to home screen" interface was definitely inspired by Honeycomb. -Photo by Ron Amadeo - -KitKat added a nice throwback to Honeycomb with the home screen configuration screen. On the massive 10-inch screen of a Honeycomb tablet (right picture, above), long pressing on the home screen background would present you with a zoomed-out view of all your home screens. Widgets could be dragged from the bottom widget drawer into any home screen—it was very handy. When it came time to bring the Honeycomb interface to phones, from Android 4.0 all the way to 4.3, Google skipped this design and left it to the larger screened devices, presenting only a list of options after a long press (center picture). - -For KitKat though, Google finally came up with a solution. After a long press, 4.4 presented a slightly zoomed out view—you could see the current home screen and the screens to the left and right of it. Tapping on the “widgets" button would open a full screen list of widget thumbnails, but after long-pressing on a widget, you were thrown back into the zoomed-out view and could scroll through home screen pages and place the icon where you wanted. By dragging an icon or widget all the way past the rightmost home page, you could create a new home page. - -![Contacts and the Keyboard both removed any trace of blue.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/RIP33B5E5.png) -Contacts and the Keyboard both removed any trace of blue. -Photo by Ron Amadeo - -KitKat was the end of the line for the Tron design. In most parts of the OS, any remaining blue highlights were removed in favor of gray. In the People app, blue was sucked out of the header and the letter separators in the contact list. The pictures swapped sides and the bottom bar was changed to a light gray to match the top. The Keyboard, which injected the color blue into nearly every app, was changed to gray-on-gray-on-gray. That wasn't a bad thing. Apps should be allowed to have their own color scheme—forcing a potentially clashing color on them via the keyboard wasn’t good design. - -![The first three screenshots show KitKat's dialer, and the last one is 4.3.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/phone.png) -The first three screenshots show KitKat's dialer, and the last one is 4.3. -Photo by Ron Amadeo - -Google completely revamped the dialer in KitKat, creating a wild new design that changed the way users thought about a phone. Actual numbers in the new dialer were hidden as much as possible—there wasn’t even a dial pad on the main screen. The primary interface for making a phone call was now a search bar! If you wanted to call someone in your contacts, just type their name in; if you wanted to call a business, just type the business name in and the dialer would search through Google Maps’ extensive database of phone numbers. It worked incredibly well and was something only Google could pull off. - -If searching for numbers wasn’t your thing, the app also intelligently displayed a listing for the previous phone call, your most-contacted people, and a link to all contacts. At the bottom were links to your call history, the now old school number pad, and the usual overflow button containing a settings page. - -![Office stuff: Google Drive, which was now packed in, and the printing support.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/googledrive-and-printing.png) -Office stuff: Google Drive, which was now packed in, and the printing support. -Photo by Ron Amadeo - -It was amazing it took this long, but in KitKat, Google Drive was finally included as a default app. Drive allowed users to create and edit Google Docs spreadsheets and documents, scan documents with the camera and upload them as PDFs, or view (but not edit) presentations. Drive, by this point, had a great, modern design with a slide-out navigation drawer and a Google Now-style card design. - -For even more mobile office fun, KitKat included an OS-level printing framework. At the bottom of the settings was a "Printing" screen, and any printer OEM could make a plugin for it. Google Cloud Print was, of course, one of the first supporters. Once your printer was hooked up to Cloud Print, either natively or through a computer with Chrome installed, you could print to it over the Internet. Apps needed to support the printing framework, too. Pressing the little "i" button on Google Drive would show information about the document and give you the option to print it. Just like a desktop OS, a print dialog would pop up with settings like copies, paper size, and page selection. - -![The "Photos" section of the Google+ app, which replaced the Gallery.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/that-is-one-dead-gallery.png) -The "Photos" section of the Google+ app, which replaced the Gallery. -Photo by Ron Amadeo - -Google+ Photos and the Gallery initially shipped together on the Nexus 5, but in a later build of KitKat on Google Play devices, the Gallery was axed and Google+ completely took over photo duties. The new app changed the photo app from a light theme to a dark theme, and Google+ Photos brought a modern navigation drawer design. - -Android had long included an instant upload feature, which would automatically backup all pictures on Google’s cloud storage, first on Picasa and later on Google+. The big benefit of G+ Photos over the Gallery was that it could finally manage those cloud-stored photos. Little cloud icons in the lower right of a photo indicated backup status, and it would fill from right to left to indicate an upload-in-progress. G+ photos brought its own photo editor along with support for a million of other Google+ photo features, like highlights, auto awesome, and, of course, sharing to Google+. - -![Tweaks to the Clock app, which added an alarms tab and changed the time input dialog.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/clocks.png) -Tweaks to the Clock app, which added an alarms tab and changed the time input dialog. -Photo by Ron Amadeo - -Google changed the excellent time picker that was introduced in 4.2 to this strange clock interface, which was both slower and less precise than the old interface. First you were presented with a one-handed clock which you used to choose the hour, then that clock went away and another one-handed clock allowed you to choose the minute. Having to spin the minute hand or tap a spot on the clock face made it very difficult to pick times in non-five-minute increments. Unlike the old time picker, which required you to pick a time period, this just defaulted to AM (again making it possible to accidentally be off by 12 hours). - -### Today—Android everywhere ### - -![](http://cdn.arstechnica.net/wp-content/uploads/2014/05/android-everywhere2.png) -Photo by Google/Sony/Motorola/Ron Amadeo - -What started out as a curious BlackBerry clone from a search engine company became the most popular OS in the world from one of the biggest titans in the tech industry. Android has become Google's de-facto consumer operating system, and it powers phones, tablets, Google Glass, Google TV, and more. [Parts of it][1] are even used in the Chromecast. In the future, Google will be bringing Android to watches and wearables with [Android Wear][2], and the [Open Automotive Alliance][3] will be bringing Android to cars. Google will be making a renewed commitment to the living room soon, too, with [Android TV][4]. The OS is such a core pillar of Google, that events that are supposed to cover company-wide products, like Google I/O, end up becoming Android launch parties. - -![Top row: the Google Play content stores. Bottom row: the Google Play Apps.](http://cdn.arstechnica.net/wp-content/uploads/2014/03/2014-03-30-03.08.jpg) -Top row: the Google Play content stores. Bottom row: the Google Play Apps. -Photo by Ron Amadeo - -What was once the ugly duckling of the mobile industry has transformed so much it now [wins design awards][5] for its user interface. The design of things like Google Now have affected everything the company produces, with even the desktop sites like Search, Google+, YouTube, and Maps getting in on the card design unity. The design keeps evolving as well. Google's next plan is to [unify design][6] across not just Android, but all of its products. The goal is to take something like Gmail and make it feel the same, whether you're using it on Android, a desktop browser, or a watch. - -Google outsourced so many pieces of Android to the Play Store, that version releases are becoming less and less necessary. Google decided the best way to beat carrier and OEM update issues was to sidestep those roadblocks completely. From here on out, there isn't much left to include in an Android update other than core under-the-hood changes—but even many APIs have been pushed to Google Play Services. If you just look at version releases, it seems like Android development has slowed down from the peak 2.5-month release cycle. But the reality is Google can now continually push out improvements to the Play Store in a never-ending, somewhat subtler stream of updates. - -With 1.5 million activations per day, Android has no where to go but up. In the future, Android will be headed from phones and tablets to cars and watches, and the lower system requirements of KitKat will drive phones to even lower prices in the developing world. The bottom line? More and more people will get online. And for many of those people, Android will be not just their phone but their primary computing device. With Android leading the charge for Google in so many areas, the OS that started off as a tiny acquisition has become one of Google's most important products. - ----------- - -![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) - -[Ron Amadeo][a] / Ron is the Reviews Editor at Ars Technica, where he specializes in Android OS and Google products. He is always on the hunt for a new gadget and loves to rip things apart to see how they work. - -[@RonAmadeo][t] - --------------------------------------------------------------------------------- - -via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/26/ - -译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 - -[1]:http://blog.gtvhacker.com/2013/chromecast-exploiting-the-newest-device-by-google/ -[2]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ -[3]:http://arstechnica.com/information-technology/2014/01/open-automotive-alliance-aims-to-bring-android-inside-the-car/ -[4]:http://arstechnica.com/gadgets/2014/04/documents-point-to-android-tv-googles-latest-bid-for-the-living-room/ -[5]:http://userexperienceawards.com/uxa2012/ -[6]:http://arstechnica.com/gadgets/2014/04/googles-next-design-challenge-unify-app-design-across-platforms/ -[a]:http://arstechnica.com/author/ronamadeo -[t]:https://twitter.com/RonAmadeo diff --git a/translated/talk/The history of Android/26 - The history of Android.md b/translated/talk/The history of Android/26 - The history of Android.md new file mode 100644 index 0000000000..2abd7a9a70 --- /dev/null +++ b/translated/talk/The history of Android/26 - The history of Android.md @@ -0,0 +1,87 @@ +安卓编年史 +================================================================================ +![新的“添加到主屏幕”界面无疑受到了蜂巢的启发。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/homesetupthrowback.png) +新的“添加到主屏幕”界面无疑受到了蜂巢的启发。 +Ron Amadeo 供图 + +奇巧的主屏幕配置界面漂亮地对蜂巢进行了复古。在有巨大的 10 英寸屏幕的蜂巢平板上(上方右侧图片),长按主屏背景会向你展现一个所有主屏幕的缩放视图。可以从下面的小部件抽屉里将它们拖放到任意主屏上——这很方便。在将蜂巢的界面带到手机上时,从安卓 4.0 直到 4.3,谷歌都跳过了这个设计,把它留给了大屏幕设备,在手机上长按后只显示一个选项列表(中间的图片)。 + +但在奇巧上,谷歌最终给出了解决方案。在长按后,4.4 呈现一个略微缩放的视图——你可以看到当前主屏以及它左右侧的屏幕。点击“小部件”按钮会打开一个小部件略缩图的完整列表,但是长按一个小部件后,你会回到缩放视图,并且你可以在主屏页面之间滚动,将图标放在你想要的位置。将图标或者小部件拖动过最右侧的主屏页面,你可以创建一个新的主屏页面。 + +![联系人和去掉所有蓝色痕迹的键盘。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/RIP33B5E5.png) +联系人和去掉所有蓝色痕迹的键盘。 +Ron Amadeo 供图 + +奇巧是电子风格设计的完结。在系统的大多数部分,剩下的蓝色高亮都被换成了灰色。在联系人应用中,头部和联系人列表字母分割线的蓝色都移除掉了。图片的位置换了一侧,底栏变成了浅灰色以和顶部相称。几乎将蓝色渗透进每个应用的键盘,现在是灰底灰色灰高亮。这可不是件坏事。应用应该允许有它们自己的配色方案——在键盘上强迫存在潜在的颜色冲突可不是个好设计。 + +![前三张是奇巧的拨号盘,最后一张是 4.3 的。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/phone.png) +前三张是奇巧的拨号盘,最后一张是 4.3 的。 +Ron Amadeo 供图 + +谷歌完全重制了奇巧中的拨号,创造了一个疯狂的设计,改变了用户对手机的思考方式。实际上新版拨号中的数字都被尽可能地隐藏了——在首屏上甚至没有拨号盘。打电话的主要界面现在是个搜索栏!如果你想给你的联系人打电话,只要在搜索栏输入他的名字;如果你想给一个公司打电话,只要输入公司的名字,拨号会通过谷歌地图庞大的数据库找到号码。它工作得令人难以置信的好,这是只有谷歌才能完成的事情。 + +如果搜索不是你的菜的话,应用还会智能地显示通话记录列表,最常联系人,还有指向所有联系人的链接。底部的链接指向你的通话记录,传统的拨号盘,以及常规的更多操作按钮,包含一个设置页面。 + +![Office 相关:新的内置应用 Google Drive,以及打印支持。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/googledrive-and-printing.png) +Office 相关:新的内置应用 Google Drive,以及打印支持。 +Ron Amadeo 供图 + +在奇巧中 Google Drive 终于作为内置应用包含了进来,令人惊奇的是这居然用了这么长时间。Drive 允许用户创建和编辑 Google Docs 表格和文档,用相机扫描文档并作为 PDF 上传,或者查看(不能编辑)演示文稿。Drive 的设计十分现代,侧面拥有滑出式导航抽屉,并且是 Google Now 风格卡片式设计。 + +为了有更多的移动办公乐趣,奇巧包含了系统级打印框架。在设置的底部有“打印”设置界面,任何打印机 OEM 厂商都可以为它写个插件。谷歌云打印自然是首批支持者之一。只要你的打印机和云打印相连接,无论是本地或通过一台装有 Chrome 浏览器的电脑,你都可以借助网络进行打印。应用同样也需要支持打印框架。点击 Google Drive 里的“i”按钮会显示文档信息,并且给你打印的选项。就像桌面系统那样,会弹出一个设置对话框,有打印份数,纸张尺寸,以及页面选择等选项。 + +![Google+ 应用的“相片”部分,它取代了相册。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/that-is-one-dead-gallery.png) +Google+ 应用的“相片”部分,它取代了相册。 +Ron Amadeo 供图 + +Google+ 相片和相册最初都在 Nexus 5 上随附,但在 Google Play 设备稍晚版本的奇巧上,相册被砍掉了,Google+ 完全接手了相片管理。新应用的主题从深色变成了浅色,Google+ 相片还带来了现代的导航抽屉设计。 + +安卓一直以来都有即时上传功能,它会自动备份所有图片到谷歌的云存储,开始是 Picasa 后来是 Google+。G+ 相片相比相册最大的好处是它可以管理那些云端存储的图片。图片右下角的云图标指示备份状态,它会从右到左地填满来指示正在上传。G+ 相片带来了它自己的照片编辑器,还有许多其它的 Google+ 图片功能,比如高亮,自动美化,当然,还有分享到 Google+。 + +![时钟应用的调整,添加了一个闹钟页面并修改了时间输入框。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/clocks.png) +时钟应用的调整,添加了一个闹钟页面并修改了时间输入框。 +Ron Amadeo 供图 + +谷歌将 4.2 引入的优秀时间选择器换成了一个奇怪的时钟界面,操作起来比旧界面更慢了也更不精确了。首先是个可以选择小时的单指针时钟,然后显示的是另一个选择分钟的单指针时钟。选择的时候要转动分针或点击数字,这让用用户很难选择不是整五分钟的时间增量。不像之前的时间选择器需要选择一个时间段,这里默认时间段是 AM(重复一下,这样设置的时候容易不小心偏差 12 小时)。 + +### 今日安卓无处不在 ### + +![](http://cdn.arstechnica.net/wp-content/uploads/2014/05/android-everywhere2.png) +图片来自 Google/Sony/Motorola/Ron Amadeo + +一开始从一家搜索引擎公司的古怪的黑莓复制品,一步一步到如今科技界巨头之一在世界上最流行的系统。安卓已经成为谷歌的实际消费者操作系统,它驱动着手机,平板,Google Glass,Google TV,甚至更多。[它的一部分][1]甚至还用到了 Chromecast 中。在未来,谷歌还会将 [Android Wear][2] 带到手表和可穿戴设备上,[开放汽车联盟][3] 要将安卓带到汽车上。不久后会谷歌再次承诺对客厅的计划,带上 [Android TV][4]。这个系统对谷歌是如此重要的支柱,原本应该覆盖全公司产品的大会活动,比如 Google I/O,俨然成为了安卓发布派对。 + +![上排:谷歌 Play 内容商店。下排:谷歌 Play 应用。](http://cdn.arstechnica.net/wp-content/uploads/2014/03/2014-03-30-03.08.jpg) +上排:谷歌 Play 内容商店。下排:谷歌 Play 应用。 +Ron Amadeo 供图 + +移动产业曾经的的丑小鸭脱胎换骨,它的用户界面还[赢得了设计奖项][5]。像 Google Now 一样的设计风格影响了整个公司的产品,甚至连像搜索,Google+,Youtube,以及地图这样的桌面站点都加入了卡片式设计中。设计也在不断地演进。谷歌下一步[统一设计][6]的计划不仅是面对安卓,也包括了所有的产品。谷歌的目标是让你不管在安卓,还是桌面浏览器,或是一个手表上,使用像 Gmail 这样的服务时都能有一样的体验。 + +谷歌将很多安卓的组件转移到 Play 商店,这样版本发布就越来越不重要了。谷歌决定了解决运营商和 OEM 厂商更新问题的最佳途径,就是完全绕开这些绊脚石。从这里开始,在一个安卓更新里除了核心底层变动外就没什么内容了——但是更多的 API 被加入了谷歌 Play 服务。如果你只看版本更新的话,相对安卓高峰期 2.5 个月的发布周期来说开发已经放缓了。但实际情况是谷歌现在可以持续将改进推送到 Play 商店,从周期发布变成了永无止境,有些微妙的更新流。 + +每天 150 万台设备激活,安卓除了增长就是增长。在未来,安卓会是手机和平板到汽车和手表的领军者,奇巧更低的系统配置要求也会让发展中国家的手机价格更低。结果呢?越来越多的人会来到线上。对那里的大多数人来说,安卓不止是他们的手机,也是他们首要的计算设备。随着安卓为谷歌领导掌管众多领域,从一个小收购而来的系统逐渐成长为了谷歌最重要的产品。 + +---------- + +![Ron Amadeo](http://cdn.arstechnica.net/wp-content//uploads/authors/ron-amadeo-sq.jpg) + +[Ron Amadeo][a] / Ron是Ars Technica的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。 + +[@RonAmadeo][t] + +-------------------------------------------------------------------------------- + +via: http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/26/ + +译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 + +[1]:http://blog.gtvhacker.com/2013/chromecast-exploiting-the-newest-device-by-google/ +[2]:http://arstechnica.com/gadgets/2014/03/in-depth-with-android-wear-googles-quantum-leap-of-a-smartwatch-os/ +[3]:http://arstechnica.com/information-technology/2014/01/open-automotive-alliance-aims-to-bring-android-inside-the-car/ +[4]:http://arstechnica.com/gadgets/2014/04/documents-point-to-android-tv-googles-latest-bid-for-the-living-room/ +[5]:http://userexperienceawards.com/uxa2012/ +[6]:http://arstechnica.com/gadgets/2014/04/googles-next-design-challenge-unify-app-design-across-platforms/ +[a]:http://arstechnica.com/author/ronamadeo +[t]:https://twitter.com/RonAmadeo From 1373c5195086d0c99e9f7e6d898a16675e13f041 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 5 Apr 2016 09:37:13 +0800 Subject: [PATCH 336/582] PUB:20151126 Microsoft and Linux--True Romance or Toxic Love @sonofelice --- ...t and Linux--True Romance or Toxic Love.md | 77 +++++++++++++++++++ ...t and Linux--True Romance or Toxic Love.md | 77 ------------------- 2 files changed, 77 insertions(+), 77 deletions(-) create mode 100644 published/20151126 Microsoft and Linux--True Romance or Toxic Love.md delete mode 100644 translated/talk/20151126 Microsoft and Linux--True Romance or Toxic Love.md diff --git a/published/20151126 Microsoft and Linux--True Romance or Toxic Love.md b/published/20151126 Microsoft and Linux--True Romance or Toxic Love.md new file mode 100644 index 0000000000..4499e7273f --- /dev/null +++ b/published/20151126 Microsoft and Linux--True Romance or Toxic Love.md @@ -0,0 +1,77 @@ +微软和 Linux :真正的浪漫还是有毒的爱情? +================================================================================ +时不时的我们会读到一个能让你喝咖啡呛到或者把热拿铁喷到你显示器上的新闻故事。微软最近宣布的对 Linux 的钟爱就是这样一个鲜明的例子。 + +从常识来讲,微软和自由开源软件(FOSS)运动就是恒久的敌人。在很多人眼里,微软体现了过分的贪婪,而这正为自由开源软件运动(FOSS)所拒绝。另外,之前微软就已经给自由开源软件社区贴上了"一伙强盗"的标签。 + +我们能够理解为什么微软一直以来都害怕免费的操作系统。免费操作系统结合挑战微软核心产品线的开源应用时,就威胁到了微软在台式机和笔记本电脑市场的控制地位。 + +尽管微软有对在台式机主导地位的担忧,在网络服务器市场 Linux 却有着最高的影响力。今天,大多数的服务器都是 Linux 系统。包括世界上最繁忙的站点服务器。对微软来说,看到这么多无法装到兜里的许可证的营收一定是非常痛苦的。 + +掌上设备是微软输给自由软件的另一个领域。曾几何时,微软的 Windows CE 和 Pocket PC 操作系统走在移动计算的前沿。Windows PDA 设备是最闪亮的和豪华的产品。但是这一切在苹果公司发布了iphone之后都结束了。从那时起,安卓就开始进入公众视野,Windows 的移动产品开始被忽略被遗忘。而安卓平台是建立在自由开源的组件的基础上的。 + +由于安卓平台的开放性,安卓的市场份额在迅速扩大。不像 IOS,任何一个手机制造商都可以发布安卓手机。也不像Windows 手机,安卓没有许可费用。这对消费者来说是件好事。这也导致了许多强大却又价格低廉的手机制造商在世界各地涌现。这非常明确的证明了自由开源软件(FOSS)的价值。 + +在服务器和移动计算的角逐中失利对微软来说是非常惨重的损失。考虑一下服务器和移动计算这两个加起来所占有的市场大小,台式机市场似乎是死水一潭。没有人喜欢失败,尤其是涉及到金钱。并且,微软确实有许多东西正在慢慢失去。你可能期望着微软自尝苦果。在过去,确实如此。 + +微软使用了各种可以支配的手段来对 Linux 和自由开源软件(FOSS)进行反击,从宣传到专利威胁。尽管这种攻击确实减慢了适配 Linux 的步伐,但却从来没有让 Linux 的脚步停下。 + +所以,当微软在开源大会和重大事件上拿出印有“Microsoft Loves Linux”的T恤和徽章时,请原谅我们表现出来的震惊。这是真的吗?微软真的爱 Linux ? + +当然,公关的口号和免费的T恤并不代表真理。行动胜于雄辩。当你思考一下微软的行动时,微软的立场就变得有点模棱两可了。 + +一方面,微软招募了几百名 Linux 开发者和系统管理员。将 .NET 核心框架作为一个开源的项目进行了发布,并提供了跨平台的支持(这样 .NET 就可以跑在 OS X 和 Linux 上了)。并且,微软与 Linux 公司合作把最流行的发行版本放到了 Azure 平台上。事实上,微软已经走的如此之远以至于要为 Azure 数据中心开发自己的 Linux 发行版了。 + +另一方面,微软继续直接通过法律或者傀儡公司来对开源项目进行攻击。很明显,微软在与自由软件的所有权较量上并没有发自内心的进行大的道德转变。那为什么要公开申明对 Linux 的钟爱之情呢? + +一个显而易见的事实:微软是一个经营性实体。对股东来说是一个投资工具,对雇员来说是收入来源。微软所做的只有一个终极目标:盈利。微软并没有表现出来爱或者恨(尽管这是一个最常见的指控)。 + +所以问题不应该是"微软真的爱 Linux 吗?"相反,我们应该问,微软是怎么从这一切中获利的。 + +让我们以 .NET 核心框架的开源发行为例。这一举动使得 .NET 的运行时环境移植到任何平台都很轻松。这使得微软的 .NET 框架所涉及到的范围远远大于 Windows 平台。 + +开放 .NET 的核心包,最终使得 .NET 开发者开发跨平台的 app 成为可能,比如 OS X、Linux 甚至安卓——都基于同一个核心代码库。 + +从开发者角度来讲,这使得 .NET 框架比之前更有吸引力了。能够从单一的代码库触及到多个平台,使得使用 .NET 框架开发的任何 app 戏剧性的扩大了潜在的目标市场。 + +另外,一个强大的开源社区能够提供给开发者一些代码来在他们自己的项目中进行复用。所以,开源项目的可利用性也将会成就 .NET 框架。 + +更进一步讲,开放 .NET 的核心代码能够减少跨越不同平台所产生的碎片,意味着对消费者来说有对 app 更广的选择。无论是开源软件还是专用的 app,都有更多的选择。 + +从微软的角度来讲,会得到一队开发者大军。微软可以通过销售培训、证书、技术支持、开发者工具(包括 Visual Studio)和应用扩展来获利。 + +我们应该自问的是,这对自由软件社区有利还是有弊? + +.NET 框架的大范围适用意味着许多参与竞争的开源项目的消亡,迫使我们会跟着微软的节奏走下去。 + +先抛开 .NET 不谈,微软正在花费大量的精力在 Azure 云计算平台对 Linux 的支持上。要记得,Azure 最初是 Windows 的 Azure。Windows 服务器是唯一能够支持 Azure 的操作系统。今天,Azure 也提供了对多个 Linux 发行版的支持。 + +关于此,有一个原因:付费给需要或者想要 Linux 服务的顾客。如果微软不提供 Linux 虚拟机,那些顾客就会跟别人合作了。 + +看上去好像是微软意识到“Linux 就在这里”的这样一个现实。微软不能真正的消灭它,所以必须接收它。 + +这又把我们带回到那个问题:关于微软和 Linux 为什么有这么多的流言?我们在谈论这个问题,因为微软希望我们思考这个问题。毕竟,所有这些谈资都会追溯到微软,不管是在新闻稿、博客还是会议上的公开声明。微软在努力吸引大家对其在 Linux 专业知识方面的注意力。 + +首席架构师 Kamala Subramaniam 的博文声明 Azure Cloud Switch 背后的其他企图会是什么?ACS 是一个定制的 Linux 发行版。微软用它来对 Azure 数据中心的交换机硬件进行自动配置。 + +ACS 不是公开的。它是用于 Azure 内部使用的。别人也不太可能找到这个发行版其他的用途。事实上,Subramaniam 在她的博文中也表述了同样的观点。 + +所以,微软不会通过卖 ACS 来获利,也不会通过赠送它而增加用户基数。相反,微软在 Linux 和 Azure 上花费精力,以加强其在 Linux 云计算平台方面的地位。 + +微软最近迷上 Linux 对社区来说是好消息吗? + +我们不应该慢慢忘记微软的“拥抱、扩展、消灭(Embrace, Extend and Exterminate)”的诅咒。现在,微软处在拥抱 Linux 的初期阶段。微软会通过定制扩展和专有“标准”来分裂社区吗? + +发表评论吧,让我们知道你是怎么想的。 + +-------------------------------------------------------------------------------- + +via: http://www.linuxjournal.com/content/microsoft-and-linux-true-romance-or-toxic-love-0 + +作者:[James Darvell][a] +译者:[sonofelice](https://github.com/sonofelice) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.linuxjournal.com/users/james-darvell \ No newline at end of file diff --git a/translated/talk/20151126 Microsoft and Linux--True Romance or Toxic Love.md b/translated/talk/20151126 Microsoft and Linux--True Romance or Toxic Love.md deleted file mode 100644 index d16ed99114..0000000000 --- a/translated/talk/20151126 Microsoft and Linux--True Romance or Toxic Love.md +++ /dev/null @@ -1,77 +0,0 @@ -微软和 Linux :真正的浪漫还是有毒的爱情? -================================================================================ -时不时的我们会读到一个能让你喝咖啡呛到或者把热拿铁喷到你显示器上的新闻故事。微软最近宣布的对 Linux 的钟爱就是这样一个鲜明的例子。 - -从常识来讲,微软和自由开源软件(FOSS)运动就是恒久的敌人。在很多人眼里,微软体现了过分的贪婪,而这正为自由开源软件运动(FOSS)所拒绝。另外,之前微软就已经给自由开源软件社区贴上了"一伙强盗"的标签。 - -我们能够理解为什么微软一直以来都害怕免费的操作系统。免费操作系统结合挑战微软核心产品线的开源应用时,就威胁到了微软在台式机和笔记本电脑市场的控制地位。 - -尽管微软有对在台式机主导地位的担忧,在网络服务器市场 Linux 却有着最高的影响力。今天,大多数的服务器都是 Linux 系统。包括世界上最繁忙的站点服务器。对微软来说,看到这么多没有被声明的许可证收入一定是非常痛苦的。 - -掌上设备是微软输给免费软件的另一个领域。曾几何时,微软的 Windows CE 和 Pocket PC 操作系统走在移动计算的前沿。Windows PDA 设备是最闪亮的和豪华的产品。但是这一切在苹果公司发布了iphone之后都结束了。从那时起,安卓已经开始进入公众视野,Windows的移动产品开始被忽略被遗忘。而安卓平台是建立在免费开源的组件的基础上的。 - -由于安卓平台的开放性,安卓的市场份额在迅速扩大。不像 IOS,任何一个手机制造商都可以发布安卓手机。也不像Windows手机,安卓没有许可费用。这对消费者来说是件好事。这也导致了许多强大却又价格低廉的手机制造商在世界各地涌现。这非常明确的证明了自由开源软件(FOSS)的价值。 - -在服务器和移动计算的角逐中失利对微软来说是非常惨重的损失。考虑一下服务器和移动计算这两个加起来所占有的市场大小,台式机市场似乎是死水一潭。没有人喜欢失败,尤其是涉及到金钱。并且,微软确实有许多正在慢慢失去。你可能期望着微软自尝苦果。在过去,确实如此。 - -微软使用了各种可以支配的手段来对 Linux 和自由开源软件(FOSS)进行反击,从宣传到专利威胁。尽管这种攻击确实减慢了适配 Linux 的步伐,但却从来没有让 Linux 的脚步停下。 - -所以,当微软在开源大会和重大事件上拿出印有"Microsoft Loves Linux"的T-恤和徽章时,请原谅我们表现出来的震惊。这是真的吗?微软真的爱 Linux ? - -当然,公关的口号和免费的T-恤并不代表真理。行动胜于雄辩。当你思考一下微软的行动时,微软的立场就变得有点模棱两可了。 - -一方面,微软招募了几百名 Linux 开发者和系统管理员。将 .NET 核心框架作为一个开源的项目进行了发布,并提供了跨平台的支持(这样 .NET 就可以跑在 OS X 和 Linux 上了)。并且,微软与 Linux 公司合作把最流行的发型版本放到了Azure平台上。事实上,微软已经走的如此之远以至于要为Azure数据中心开发自己的Linux发行版了。 - -另一方面,微软继续直接通过法律或者傀儡公司来对开源项目进行攻击。很明显,微软在与自由软件的所有权较量上并没有发自内心的进行大的道德转变。那为什么要公开生命对Linux的钟爱之情呢? - -一个显而易见的事实:微软是一个经营性实体。对股东来说是一个投资工具,对雇员来说是收入来源。微软所做的只有一个终极目标:盈利。微软并没有表现出来爱或者恨(尽管这是一个最常见的指控)。 - -所以问题不应该是"微软真的爱 Linux 吗?"相反,我们应该问,微软是怎么从这一切中获利的。 - -让我们以 .NET 核心框架的开源发行为例。这一举动使得任何平台都很容易进入 .NET 的运行时环境。这使得微软的.NET框架所涉及到的范围远远大于Windows平台。 - -开放 .NET 的核心包,最终使得 .NET 开发者开发跨平台的app成为可能,比如OS X,Linux甚至安卓——都基于同一个核心代码库。 - -从开发者角度来讲,这使得.NET框架比之前更有吸引力了。能够从单一的代码库就可以触及到多个平台,使得使用.NET框架开发的任何app戏剧性的扩大了潜在的目标市场。 - -另外,一个强大的开源社区能够提供给开发者一些代码来在他们自己的项目中进行服用。所以,开源项目的可利用性也将会成就.NET框架。 - -更进一步讲,开放 .NET 的核心代码能够减少跨越不同平台锁产生的碎片,意味着对消费者来说有对app更广的选择。无论是开源软件还是专用的app,都有更多的选择。 - -从微软的角度来讲,会得到一队开发者大军。微软可以通过销售培训、证书、技术支持、开发者工具(包括Visual Studio)和应用扩展来获利。 - -我们应该自问的是,这对自由软件社区有利还是有弊? - -.NET 框架的大范围适用意味着许多参与竞争的开源项目的消亡,迫使我们会跟着微软的节奏走下去。 - -先抛开.NET不谈,微软正在花费大量的精力在Linux对Azure云计算平台的支持上。要记得,Azure最初是Windows的Azure。Windows服务器是唯一能够支持Azure的操作系统。今天,Azure也提供了对多个Linux发行版的支持。 - -关于此,有一个原因:付费给需要或者想要Linux服务的顾客。如果微软不提供Linux虚拟机,那些顾客就会跟别人合作了。 - -看上去好像是微软意识到"Linux就在这里"的这样一个现实。微软不能真正的消灭它,所以必须接收它。 - -这又把我们带回到那个问题:关于微软和Linux为什么有这么多的流言?我们在谈论这个问题,因为微软希望我们思考这个问题。毕竟,所有这些谈资都会追溯到微软,不管是在新闻稿、博客还是会议上的公开声明。微软在努力吸引大家对其在Linux专业知识方面的注意力。 - -首席架构师 Kamala Subramaniam 的博文声明Azure Cloud Switch背后的其他企图会是什么?ACS是一个定制的Linux发行版。微软用它来对Azure数据中心的开关硬件进行自动配置。 - -ACS不是公开的。它是用于Azure内部使用的。别人也不太可能找到这个发行版其他的用途。事实上,Subramaniam 在她的博文中也表述了同样的观点。 - -所以,微软不会通过卖ACS来获利,也不会因为放弃使用而获得一个用户基础。相反,微软在Linux和Azure上花费经历,加强其在Linux云计算平台方面的地位。 - -微软最近迷上Linux对社区来说是好消息吗? - -我们不应该慢慢忘记微软的"拥抱、扩展、消灭"的诅咒。现在,微软处在拥抱Linux的初期阶段。微软会通过定制扩展和专有标准来分裂社区吗? - -赶紧评论吧,让我们知道你是怎么想的。 - --------------------------------------------------------------------------------- - -via: http://www.linuxjournal.com/content/microsoft-and-linux-true-romance-or-toxic-love-0 - -作者:[James Darvell][a] -译者:[sonofelice](https://github.com/sonofelice) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.linuxjournal.com/users/james-darvell \ No newline at end of file From ba4100d39716ccde39113ca3ac7d8f693f6837a9 Mon Sep 17 00:00:00 2001 From: alim0x Date: Tue, 5 Apr 2016 09:44:30 +0800 Subject: [PATCH 337/582] [translating]8 things to do after installing openSUSE Leap --- ...151202 8 things to do after installing openSUSE Leap 42.1.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md b/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md index b941c3d611..8456c9c46a 100644 --- a/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md +++ b/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md @@ -1,3 +1,5 @@ +alim0x translating + 8 things to do after installing openSUSE Leap 42.1 ================================================================================ ![Credit: Metropolitan Transportation/Flicrk](http://images.techhive.com/images/article/2015/11/things-to-do-100626947-primary.idge.jpg) From 15bb9c838be97deee426b5d3fac707e34e785772 Mon Sep 17 00:00:00 2001 From: pengkai Date: Tue, 5 Apr 2016 12:38:43 +0800 Subject: [PATCH 338/582] kylepeng93 is translating --- .../20160225 How to add open source experience to your resume.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160225 How to add open source experience to your resume.md b/sources/tech/20160225 How to add open source experience to your resume.md index 73e22c2b8b..8a3a3e09cf 100644 --- a/sources/tech/20160225 How to add open source experience to your resume.md +++ b/sources/tech/20160225 How to add open source experience to your resume.md @@ -1,3 +1,4 @@ +kylepeng93 is translating!!! How to add open source experience to your resume ================================================== From 2469f5580888e36b1934243e0da51a7d8bb038ea Mon Sep 17 00:00:00 2001 From: Zhengyu_Li Date: Tue, 5 Apr 2016 21:33:55 +0800 Subject: [PATCH 339/582] Update 20160218 A Linux-powered microwave oven.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [翻译中]20160218 A Linux-powered microwave oven.md --- sources/tech/20160218 A Linux-powered microwave oven.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 A Linux-powered microwave oven.md b/sources/tech/20160218 A Linux-powered microwave oven.md index 109212ad14..47db1ae9d6 100644 --- a/sources/tech/20160218 A Linux-powered microwave oven.md +++ b/sources/tech/20160218 A Linux-powered microwave oven.md @@ -1,3 +1,4 @@ +translating by yuba0604 A Linux-powered microwave oven ================================================================================ From 0bdd4580470df8a137f28f55bd04699a87213b80 Mon Sep 17 00:00:00 2001 From: alim0x Date: Wed, 6 Apr 2016 21:38:24 +0800 Subject: [PATCH 340/582] [translated]8 things to do after installing openSUSE Leap --- ... do after installing openSUSE Leap 42.1.md | 110 ------------------ ... do after installing openSUSE Leap 42.1.md | 108 +++++++++++++++++ 2 files changed, 108 insertions(+), 110 deletions(-) delete mode 100644 sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md create mode 100644 translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md diff --git a/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md b/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md deleted file mode 100644 index 8456c9c46a..0000000000 --- a/sources/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md +++ /dev/null @@ -1,110 +0,0 @@ -alim0x translating - -8 things to do after installing openSUSE Leap 42.1 -================================================================================ -![Credit: Metropolitan Transportation/Flicrk](http://images.techhive.com/images/article/2015/11/things-to-do-100626947-primary.idge.jpg) -Credit: [Metropolitan Transportation/Flicrk][1] - -> You've installed openSUSE on your PC. Here's what to do next. - -[openSUSE Leap is indeed a huge leap][2], allowing users to run a distro that has the same DNA of SUSE Linux Enterprise. Like any other operating system, some work is needed to get it set up for optimal use. - -Following are some of the things that I did after installing openSUSE Leap on my PC (these are not applicable for server installations). None of them are mandatory, and you may be fine with the basic install. But if you need more out of your openSUSE Leap, follow me. - -### 1. Adding Packman repository ### - -Due to software patents and licences, openSUSE, like many Linux distributions, doesn't offer many applications, codecs, and drivers through official repositories (repos). Instead, these are made available through 3rd party or community repos. The first and most important repository is 'Packman'. Since these repos are not enabled by default, we have to add them. You can do so either using YaST (one of the gems of openSUSE) or by command line (instructions below). - -![o42 yast repo](http://images.techhive.com/images/article/2015/11/o42-yast-repo-100626952-large970.idge.png) -Adding Packman repositories. - -Using YaST, go to the Software Repositories section. Click on the 'Add’ button and select 'Community Repositories.' Click 'next.' And once the repos are loaded, select the Packman Repository. Click 'OK,' then import the trusted GnuPG key by clicking on the 'Trust' button. - -Or, using the terminal you can add and enable the Packman repo using the following command: - - zypper ar -f -n packmanhttp://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/ packman - -Once the repo is added, you have access to many more packages. To install any application or package, open YaST Software Manager, search for the package and install it. - -### 2. Install VLC ### - -VLC is the Swiss Army knife of media players and can play virtually any media file. You can install VLC from YaST Software Manager or from software.opensuse.org. You will need to install two packages: vlc and vlc-codecs. - -If using terminal, run the following command: - - sudo zypper install vlc vlc-codecs - -### 3. Install Handbrake ### - -If you need to transcode or convert your video files from one format to another, [Handbrake is the tools for you][3]. Handbrake is available through repositories we enabled, so just search for it in YaST and install. - -If you are using the terminal, run the following command: - - sudo zypper install handbrake-cli handbrake-gtk - -(Pro tip: VLC can also transcode audio and video files.) - -### 4. Install Chrome ### - -OpenSUSE comes with Firefox as the default browser. But since Firefox isn't capable of playing restricted media such as Netflix, I recommend installing Chrome. This takes some extra work. First you need to import the trusted key from Google. Open the terminal app and run the 'wget' command to download the key: - - wget https://dl.google.com/linux/linux_signing_key.pub - -Then import the key: - - sudo rpm --import linux_signing_key.pub - -Now head over to the [Google Chrome website][4] and download the 64 bit .rpm file. Once downloaded run the following command to install the browser: - - sudo zypper install /PATH_OF_GOOGLE_CHROME.rpm - -### 5. Install Nvidia drivers ### - -OpenSUSE Leap will work out of the box even if you have Nvidia or ATI graphics cards. However, if you do need the proprietary drivers for gaming or any other purpose, you can install such drivers, but some extra work is needed. - -First you need to add the Nvidia repositories; it's the same procedure we used to add Packman repositories using YaST. The only difference is that you will choose Nvidia from the Community Repositories section. Once it's added, go to **Software Management > Extras** and select 'Extras/Install All Matching Recommended Packages'. - -![o42 nvidia](http://images.techhive.com/images/article/2015/11/o42-nvidia-100626950-large.idge.png) - -It will open a dialogue box showing all the packages it's going to install, click OK and follow the instructions. You can also run the following command after adding the Nvidia repository to install the needed Nvidia drivers: - - sudo zypper inr - -(Note: I have never used AMD/ATI cards so I have no experience with them.) - -### 6. Install media codecs ### - -Once you have VLC installed you won't need to install media codecs, but if you are using other apps for media playback you will need to install such codecs. Some developers have written scripts/tools which makes it a much easier process. Just go to [this page][5] and install the entire pack by clicking on the appropriate button. It will open YaST and install the packages automatically (of source you will have to give the root password and trust the GnuPG key, as usual). - -### 7. Install your preferred email client ### - -OpenSUSE comes with Kmail or Evolution, depending on the Desktop Environment you installed on the system. I run Plasma, which comes with Kmail, and this email client leaves a lot to be desired. I suggest trying Thunderbird or Evolution mail. All major email clients are available through official repositories. You can also check my [handpicked list of the best email clients for Linux][7]. - -### 8. Enable Samba services from Firewall ### - -OpenSUSE offers a much more secure system out of the box, compared to other distributions. But it also requires a little bit more work for a new user. If you are using Samba protocol to share files within your local network then you will have to allow that service from the Firewall. - -![o42 firewall](http://images.techhive.com/images/article/2015/11/o42-firewall-100626948-large970.idge.png) -Allow Samba Client and Server from Firewall settings. - -Open YaST and search for Firewall. Once in Firewall settings, go to 'Allowed Services' where you will see a drop down list under 'Service to allow.' Select 'Samba Client,' then click 'Add.' Do the same with the 'Samba Server' option. Once both are added, click 'Next,' then click 'Finish,' and now you will be able to share folders from your openSUSE system and also access other machines over the local network. - -That's pretty much all that I did on my new openSUSE system to set it up just the way I like it. If you have any questions, please feel free to ask in the comments below. - --------------------------------------------------------------------------------- - -via: http://www.itworld.com/article/3003865/open-source-tools/8-things-to-do-after-installing-opensuse-leap-421.html - -作者:[Swapnil Bhartiya][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.itworld.com/author/Swapnil-Bhartiya/ -[1]:https://www.flickr.com/photos/mtaphotos/11200079265/ -[2]:https://www.linux.com/news/software/applications/865760-opensuse-leap-421-review-the-most-mature-linux-distribution -[3]:https://www.linux.com/learn/tutorials/857788-how-to-convert-videos-in-linux-using-the-command-line -[4]:https://www.google.com/intl/en/chrome/browser/desktop/index.html#brand=CHMB&utm_campaign=en&utm_source=en-ha-na-us-sk&utm_medium=ha -[5]:http://opensuse-community.org/ -[6]:http://www.itworld.com/article/2875981/the-5-best-open-source-email-clients-for-linux.html diff --git a/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md b/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md new file mode 100644 index 0000000000..109bf6c11d --- /dev/null +++ b/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md @@ -0,0 +1,108 @@ +装好 openSUSE Leap 42.1 之后要做的 8 件事 +================================================================================ +![Credit: Metropolitan Transportation/Flicrk](http://images.techhive.com/images/article/2015/11/things-to-do-100626947-primary.idge.jpg) +致谢:[Metropolitan Transportation/Flicrk][1] + +> 你已经在你的电脑上安装了 openSUSE。这是你接下来要做的。 + +[openSUSE Leap 确实是个巨大的飞跃][2],它允许用户运行一个和 SUSE Linux 企业版拥有一样基因的发行版。和其它系统一样,在使用它之前需要做些优化设置。 + +下面是一些我在安装 openSUSE 到我的电脑上之后做的一些事情(不适用于服务器)。这里面没有强制性要求的设置,基本安装对来说你也可能足够了。但如果你想获得更好的 openSUSE Leap 体验,那就跟着我往下看吧。 + +### 1. 添加 Packman 仓库 ### + +由于专利和授权等原因,openSUSE 和许多 Linux 发行版一样,不通过官方仓库(repos)提供一些软件,解码器,以及驱动等。取而代之的是通过第三方或社区仓库来提供。第一个也是最重要的仓库是“Packman”。因为这些仓库不是默认启用的,我们需要添加它们。你可以通过 YaST (openSUSE 的特色之一)或者命令行完成(如下方介绍)。 + +![o42 yast repo](http://images.techhive.com/images/article/2015/11/o42-yast-repo-100626952-large970.idge.png) +添加 Packman 仓库。 + +使用 YsST,打开软件源部分。点击“添加”按钮并选择“社区仓库(Community Repositories)”。点击“下一步”。一旦仓库列表加载出来了,选择 Packman 仓库。点击“确认”,然后点击“信任”导入信任的 GnuPG 密钥。 + +或者在终端里使用以下命令添加并启用 Packman 仓库: + + zypper ar -f -n packmanhttp://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/ packman + +仓库添加之后,你就能接触到更多的包了。想安装任意软件或包,打开 YaST 软件管理器,搜索并安装即可。 + +### 2. 安装 VLC ### + +VLC 是媒体播放器里的瑞士军刀,几乎可以播放任何媒体文件。你可以从 YaST 软件管理器 或 software.opensuse.org 安装 VLC。你需要安装两个包:vlc 和 vlc-codecs。 + +如果你用终端,运行以下命令: + + sudo zypper install vlc vlc-codecs + +### 3. 安装 Handbrake ### + +如果你需要转码或转换视频文件格式,[Handbrake 是你的不二之选][3]。Handbrake 就在我们启用的仓库中,所以只要在 YaST 中搜索并安装它。 + +如果你用终端,运行以下命令: + + sudo zypper install handbrake-cli handbrake-gtk + +(提示:VLC 也能转码音频和视频文件。) + +### 4. 安装 Chrome ### + +openSUSE 的默认浏览器是 Firefox。但是因为 Firefox 不能胜任播放专有媒体,比如 Netflix,我推荐安装 Chrome。这需要额外的工作。首先你需要从谷歌导入信任密钥。打开终端执行“wget”命令下载密钥: + + wget https://dl.google.com/linux/linux_signing_key.pub + +然后导入密钥: + + sudo rpm --import linux_signing_key.pub + +现在到 [Google Chrome 网站][4] 去,下载 64 位 .rpm 文件。下载完成后执行以下命令安装浏览器: + + sudo zypper install /PATH_OF_GOOGLE_CHROME.rpm + +### 5. 安装 Nvidia 驱动 ### + +即便你有 Nvidia 或 ATI 显卡,openSUSE Leap 也能够开箱即用。但是,如果你需要专有驱动来游戏或其它目的,你可以安装这些驱动,但需要一点额外的工作。 + +首先你需要添加 Nvidia 源;它的步骤和使用 YaST 添加 Packman 仓库是一样的。唯一的不同是你需要在社区仓库部分选择 Nvidia。添加好了之后,到 **软件管理 > 附加** 去并选择“附加/安装所有匹配的推荐包”。 + +![o42 nvidia](http://images.techhive.com/images/article/2015/11/o42-nvidia-100626950-large.idge.png) + +它会打开一个对话框,显示所有将要安装的包,点击确认后按介绍操作。添加了 Nvidia 源之后你也可以通过命令安装需要的 Nvidia 驱动: + + sudo zypper inr + +(注:我没使用过 AMD/ATI 显卡,所以这方面我没有经验。) + +### 6. 安装媒体解码器 ### + +你安装 VLC 之后就不需要安装媒体解码器了,但如果你要使用其它软件来播放媒体的话就需要安装了。一些开发者写了脚本/工具来简化这个过程。打开[这个页面][5]并点击合适的按钮安装完整的包。他会打开 YaST 并自动安装包(当然通常你还需要提供 root 权限密码并信任 GnuPG 密钥)。 + +### 7. 安装你偏好的电子邮件客户端 ### + +openSUSE 自带 Kmail 或 Evolution,这取决于你安装的桌面环境。我用的是 Plasma,自带 Kmail,这个邮件客户端还有许多地方有待改进。我建议可以试试 Thunderbird 或 Evolution。所有主要的邮件客户端都能在官方仓库找到。你还可以看看我的[精心挑选的 Linux 最佳邮件客户端][7]。 + +### 8. 在防火墙允许 Samba 服务 ### + +相比于其它发行版,openSUSE 默认提供了更加安全的系统。但对新用户来说它也需要一点设置。如果你正在使用 Samba 协议分享文件到本地网络的话,你需要在防火墙允许该服务。 + +![o42 firewall](http://images.techhive.com/images/article/2015/11/o42-firewall-100626948-large970.idge.png) +在防火墙设置里允许 Samba 客户端和服务端 + +打开 YaST 并搜索 Firewall。在防火墙设置里,到“允许的服务”那里你会在“要允许的服务”下面看到一个下拉列表。选择“Samba 客户端”,然后点击“添加”。对“Samba 服务端”也一样地添加。都添加了之后,点击“下一步”,然后点击“完成”,现在你就可以通过本地网络从你的 openSUSE 分享文件以及访问其它机器了。 + +这差不多就是我以我喜欢的方式对我的新 openSUSE 系统做的所有设置了。如果你有任何问题,欢迎在评论区提问。 + +-------------------------------------------------------------------------------- + +via: http://www.itworld.com/article/3003865/open-source-tools/8-things-to-do-after-installing-opensuse-leap-421.html + +作者:[Swapnil Bhartiya][a] +译者:[alim0x](https://github.com/alim0x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.itworld.com/author/Swapnil-Bhartiya/ +[1]:https://www.flickr.com/photos/mtaphotos/11200079265/ +[2]:https://www.linux.com/news/software/applications/865760-opensuse-leap-421-review-the-most-mature-linux-distribution +[3]:https://www.linux.com/learn/tutorials/857788-how-to-convert-videos-in-linux-using-the-command-line +[4]:https://www.google.com/intl/en/chrome/browser/desktop/index.html#brand=CHMB&utm_campaign=en&utm_source=en-ha-na-us-sk&utm_medium=ha +[5]:http://opensuse-community.org/ +[6]:http://www.itworld.com/article/2875981/the-5-best-open-source-email-clients-for-linux.html From 7ee00c44b04f30c5b7c3f08fbd82e9310aaa4b54 Mon Sep 17 00:00:00 2001 From: alim0x Date: Thu, 7 Apr 2016 22:38:15 +0800 Subject: [PATCH 341/582] =?UTF-8?q?[=E9=80=89=E9=A2=98=E5=B9=B6=E7=BF=BB?= =?UTF-8?q?=E8=AF=91]20160405=20Ubuntu=20Budgie=20Could=20Be=20the=20New?= =?UTF-8?q?=20Flavor=20of=20Ubuntu=20Linux,=20as=20Part=20of=20Ubuntu=2016?= =?UTF-8?q?.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...f Ubuntu Linux, as Part of Ubuntu 16.10.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md diff --git a/sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md b/sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md new file mode 100644 index 0000000000..de815c9f67 --- /dev/null +++ b/sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md @@ -0,0 +1,44 @@ +alim0x translating + +Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10 +=== + +> The Beta 2 of Budgie-Remix is now ready for testing. + +Last month we told you about a new GNU/Linux distribution called [Budgie-Remix][1], whose ultimate goal is to become an official Ubuntu Linux flavor, possibly under the name of Ubuntu Budgie. + +Today, Budgie-Remix developer David Mohammed informs Softpedia about the progress made with the project, which Canonical founder [Mark Shuttleworth said][2] that it would definitely support if there were a community around the packaging, as well as the availability of the second Beta build for the upcoming 16.04 release. + +Since our [initial report][3], it looks like David Mohammed managed to get in contact with the Ubuntu MATE project leader Martin Wimpress, who urged him to target Ubuntu 16.10 for an official status of his soon-to-be-named Ubuntu flavor built on top of the Budgie desktop environment created by the amazing team of developers from [Solus][4]. + +"We've hit Beta 2 this week with lots of goodies and also we have the support of Martin Wimpress (Ubuntu MATE project leader)," said David Mohammed exclusively for Softpedia. "He has urged us to target 16.10 for official status - that is certainly a major challenge - and we need the community to help out/join us to make this happen!" + +### Ubuntu Budgie 16.10 might see the light of day in October 2016 ### + +On April 21, Canonical will release the next LTS (Long Term Support) release of Ubuntu Linux, the Xenial Xerus a.k.a. Ubuntu 16.04, and we might be able to get an early taste of what could become the official Ubuntu Budgie flavor, as Budgie-Remix 16.04. But until then, you can help the developer [test drive the Beta 2 release][5]. + +Immediately after the release of Ubuntu 16.04 LTS (Xenial Xerus), the Ubuntu developers will concentrate all of their efforts on the next version, Ubuntu 16.10, which should arrive later this year, sometimes at the end of October, and Ubuntu Budgie 16.10 might also be announced as an official Ubuntu flavor. + +![Budgie-Remix 16.04 Beta 2](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-2.jpg) + +![Budgie Applications Menu](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-3.jpg) + +![Budgie Raven notification and customization center](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-4.jpg) + +![Nautilus file manager](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-5.jpg) + +---------------------------------- + +via: http://news.softpedia.com/news/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573.shtml + +作者:Marius Nestor +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]: https://launchpad.net/budgie-remix +[2]: https://plus.google.com/+programmerslab/posts/CSvbSvgcdcv +[3]: http://news.softpedia.com/news/budgie-remix-could-become-ubuntu-budgie-download-and-test-it-501231.shtml +[4]: https://solus-project.com/ +[5]: https://sourceforge.net/projects/budgie-remix/files/beta2/ From dcf3d4c941a30731a1f164a36968c8b4a883216e Mon Sep 17 00:00:00 2001 From: alim0x Date: Fri, 8 Apr 2016 21:50:21 +0800 Subject: [PATCH 342/582] [translated]buntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10 --- ...f Ubuntu Linux, as Part of Ubuntu 16.10.md | 44 ------------------- ...f Ubuntu Linux, as Part of Ubuntu 16.10.md | 43 ++++++++++++++++++ 2 files changed, 43 insertions(+), 44 deletions(-) delete mode 100644 sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md create mode 100644 translated/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md diff --git a/sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md b/sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md deleted file mode 100644 index de815c9f67..0000000000 --- a/sources/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md +++ /dev/null @@ -1,44 +0,0 @@ -alim0x translating - -Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10 -=== - -> The Beta 2 of Budgie-Remix is now ready for testing. - -Last month we told you about a new GNU/Linux distribution called [Budgie-Remix][1], whose ultimate goal is to become an official Ubuntu Linux flavor, possibly under the name of Ubuntu Budgie. - -Today, Budgie-Remix developer David Mohammed informs Softpedia about the progress made with the project, which Canonical founder [Mark Shuttleworth said][2] that it would definitely support if there were a community around the packaging, as well as the availability of the second Beta build for the upcoming 16.04 release. - -Since our [initial report][3], it looks like David Mohammed managed to get in contact with the Ubuntu MATE project leader Martin Wimpress, who urged him to target Ubuntu 16.10 for an official status of his soon-to-be-named Ubuntu flavor built on top of the Budgie desktop environment created by the amazing team of developers from [Solus][4]. - -"We've hit Beta 2 this week with lots of goodies and also we have the support of Martin Wimpress (Ubuntu MATE project leader)," said David Mohammed exclusively for Softpedia. "He has urged us to target 16.10 for official status - that is certainly a major challenge - and we need the community to help out/join us to make this happen!" - -### Ubuntu Budgie 16.10 might see the light of day in October 2016 ### - -On April 21, Canonical will release the next LTS (Long Term Support) release of Ubuntu Linux, the Xenial Xerus a.k.a. Ubuntu 16.04, and we might be able to get an early taste of what could become the official Ubuntu Budgie flavor, as Budgie-Remix 16.04. But until then, you can help the developer [test drive the Beta 2 release][5]. - -Immediately after the release of Ubuntu 16.04 LTS (Xenial Xerus), the Ubuntu developers will concentrate all of their efforts on the next version, Ubuntu 16.10, which should arrive later this year, sometimes at the end of October, and Ubuntu Budgie 16.10 might also be announced as an official Ubuntu flavor. - -![Budgie-Remix 16.04 Beta 2](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-2.jpg) - -![Budgie Applications Menu](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-3.jpg) - -![Budgie Raven notification and customization center](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-4.jpg) - -![Nautilus file manager](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-5.jpg) - ----------------------------------- - -via: http://news.softpedia.com/news/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573.shtml - -作者:Marius Nestor -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[1]: https://launchpad.net/budgie-remix -[2]: https://plus.google.com/+programmerslab/posts/CSvbSvgcdcv -[3]: http://news.softpedia.com/news/budgie-remix-could-become-ubuntu-budgie-download-and-test-it-501231.shtml -[4]: https://solus-project.com/ -[5]: https://sourceforge.net/projects/budgie-remix/files/beta2/ diff --git a/translated/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md b/translated/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md new file mode 100644 index 0000000000..899d8b5920 --- /dev/null +++ b/translated/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md @@ -0,0 +1,43 @@ +Ubuntu Budgie 将在 Ubuntu 16.10 中成为新官方分支发行版 +=== + +> Budgie-Remix Beta 2 已经就绪以供测试。 + +上个月我们介绍了一个新 GNU/Linux 发行版 [Budgie-Remix][1],它的终极目标是成为一个 Ubuntu 官方分支发行版,可能会使用 Ubuntu Budgie 这个名字。 + +![Budgie-Remix 16.04 Beta 2](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-2.jpg) + +今天,Budgie-Remix 的开发者 David Mohammed 向 Softpedia 通报了项目进度,以及为即将到来的 16.04 发布的第二个 Beta 版本。Cononical 的创始人 [Mark Shuttleworth 说过][2]如果能够有围绕这个包的社区,它肯定会得到支持。 + +自我们[最初的报道][3]以来,David Mohammed 似乎与 Ubuntu MATE 项目的领导者 Martin Wimpress 取得了联系,后者敦促他以 Ubuntu 16.10 作为他还未正式命名的 Ubuntu 分支的官方版本目标。这个分支发行版构建于 Budgie 桌面环境之上,它是超赞的 [Solus][4] 开发者团队创建的。 + +“我们本周完成了 Beta 2 版本的开发以及很多其它东西,而且我们还有 Martin Wimpress (Ubuntu MATE 项目领导者)的支持,”David Mohammed 对 Softpedia 独家爆料。”他还敦促我们以 16.10 作为成为官方版本的目标——那当然是个主要的挑战——并且我们还需要社区的帮助/加入我们来让这一切成为现实!” + +### Ubuntu Budgie 16.10 可能在 2016 年 10 月到来 ### + +4 月 21 日,Canonical 将会发布 Ubuntu Linux 的下一个 LTS(Long Term Support,长期支持)版本,Xenial Xerus 好客的非洲地松鼠,也就是 Ubuntu 16.04,并且我们有可能能够以 Budgie-Remix 16.04 的名义提前尝试将成为官方分支的 Ubuntu Budgie。但在那之前,你可以帮助开发者[测试 Beta 2 版本][5]。 + +在 Ubuntu 16.04 LTS(Xenial Xerus)发布之后,Ubuntu 的开发者们就会立即将注意力转移到下一个版本的开发上。下一个版本 Ubuntu 16.10 应该会在 10 月底到来,并且 Ubuntu Budgie 也可能宣布成为 Ubuntu 官方分支发行版。 + + +![Budgie Applications Menu](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-3.jpg) + +![Budgie Raven notification and customization center](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-4.jpg) + +![Nautilus file manager](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-5.jpg) + +---------------------------------- + +via: http://news.softpedia.com/news/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573.shtml + +作者:Marius Nestor +译者:[alim0x](https://github.com/alim0x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]: https://launchpad.net/budgie-remix +[2]: https://plus.google.com/+programmerslab/posts/CSvbSvgcdcv +[3]: http://news.softpedia.com/news/budgie-remix-could-become-ubuntu-budgie-download-and-test-it-501231.shtml +[4]: https://solus-project.com/ +[5]: https://sourceforge.net/projects/budgie-remix/files/beta2/ From fd96b979145bf084aeaefc9d3bd5724e4a1bc1c0 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 10 Apr 2016 21:28:22 +0800 Subject: [PATCH 343/582] =?UTF-8?q?20160410-1=20=E9=80=89=E9=A2=98LFCS?= =?UTF-8?q?=E4=B8=93=E9=A2=9811?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...gcreate, lvcreate and lvextend Commands.md | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 sources/tech/LFCS/Part 11 - How to Manage and Create LVM Using vgcreate, lvcreate and lvextend Commands.md diff --git a/sources/tech/LFCS/Part 11 - How to Manage and Create LVM Using vgcreate, lvcreate and lvextend Commands.md b/sources/tech/LFCS/Part 11 - How to Manage and Create LVM Using vgcreate, lvcreate and lvextend Commands.md new file mode 100644 index 0000000000..4d2a9d7a13 --- /dev/null +++ b/sources/tech/LFCS/Part 11 - How to Manage and Create LVM Using vgcreate, lvcreate and lvextend Commands.md @@ -0,0 +1,206 @@ +Part 11 - How to Manage and Create LVM Using vgcreate, lvcreate and lvextend Commands +============================================================================================ + +Because of the changes in the LFCS exam requirements effective Feb. 2, 2016, we are adding the necessary topics to the [LFCS series][1] published here. To prepare for this exam, your are highly encouraged to use the [LFCE series][2] as well. + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Manage-LVM-and-Create-LVM-Partition-in-Linux.png) +>LFCS: Manage LVM and Create LVM Partition – Part 11 + +One of the most important decisions while installing a Linux system is the amount of storage space to be allocated for system files, home directories, and others. If you make a mistake at that point, growing a partition that has run out of space can be burdensome and somewhat risky. + +**Logical Volumes Management** (also known as **LVM**), which have become a default for the installation of most (if not all) Linux distributions, have numerous advantages over traditional partitioning management. Perhaps the most distinguishing feature of LVM is that it allows logical divisions to be resized (reduced or increased) at will without much hassle. + +The structure of the LVM consists of: + +* One or more entire hard disks or partitions are configured as physical volumes (PVs). +* A volume group (**VG**) is created using one or more physical volumes. You can think of a volume group as a single storage unit. +* Multiple logical volumes can then be created in a volume group. Each logical volume is somewhat equivalent to a traditional partition – with the advantage that it can be resized at will as we mentioned earlier. + +In this article we will use three disks of **8 GB** each (**/dev/sdb**, **/dev/sdc**, and **/dev/sdd**) to create three physical volumes. You can either create the PVs directly on top of the device, or partition it first. + +Although we have chosen to go with the first method, if you decide to go with the second (as explained in [Part 4 – Create Partitions and File Systems in Linux][3] of this series) make sure to configure each partition as type `8e`. + +### Creating Physical Volumes, Volume Groups, and Logical Volumes + +To create physical volumes on top of **/dev/sdb**, **/dev/sdc**, and **/dev/sdd**, do: + +``` +# pvcreate /dev/sdb /dev/sdc /dev/sdd +``` + +You can list the newly created PVs with: + +``` +# pvs +``` + +and get detailed information about each PV with: + +``` +# pvdisplay /dev/sdX +``` + +(where **X** is b, c, or d) + +If you omit `/dev/sdX` as parameter, you will get information about all the PVs. + +To create a volume group named `vg00` using `/dev/sdb` and `/dev/sdc` (we will save `/dev/sdd` for later to illustrate the possibility of adding other devices to expand storage capacity when needed): + +``` +# vgcreate vg00 /dev/sdb /dev/sdc +``` + +As it was the case with physical volumes, you can also view information about this volume group by issuing: + +``` +# vgdisplay vg00 +``` + +Since `vg00` is formed with two **8 GB** disks, it will appear as a single **16 GB** drive: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/List-LVM-Volume-Groups.png) +>List LVM Volume Groups + +When it comes to creating logical volumes, the distribution of space must take into consideration both current and future needs. It is considered good practice to name each logical volume according to its intended use. + +For example, let’s create two LVs named `vol_projects` (**10 GB**) and `vol_backups` (remaining space), which we can use later to store project documentation and system backups, respectively. + +The `-n` option is used to indicate a name for the LV, whereas `-L` sets a fixed size and `-l` (lowercase L) is used to indicate a percentage of the remaining space in the container VG. + +``` +# lvcreate -n vol_projects -L 10G vg00 +# lvcreate -n vol_backups -l 100%FREE vg00 +``` + +As before, you can view the list of LVs and basic information with: + +``` +# lvs +``` + +and detailed information with + +``` +# lvdisplay +``` + +To view information about a single **LV**, use **lvdisplay** with the **VG** and **LV** as parameters, as follows: + +``` +# lvdisplay vg00/vol_projects +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/List-Logical-Volume.png) +>List Logical Volume + +In the image above we can see that the LVs were created as storage devices (refer to the LV Path line). Before each logical volume can be used, we need to create a filesystem on top of it. + +We’ll use ext4 as an example here since it allows us both to increase and reduce the size of each LV (as opposed to xfs that only allows to increase the size): + +``` +# mkfs.ext4 /dev/vg00/vol_projects +# mkfs.ext4 /dev/vg00/vol_backups +``` + +In the next section we will explain how to resize logical volumes and add extra physical storage space when the need arises to do so. + +### Resizing Logical Volumes and Extending Volume Groups + +Now picture the following scenario. You are starting to run out of space in `vol_backups`, while you have plenty of space available in `vol_projects`. Due to the nature of LVM, we can easily reduce the size of the latter (say **2.5 GB**) and allocate it for the former, while resizing each filesystem at the same time. + +Fortunately, this is as easy as doing: + +``` +# lvreduce -L -2.5G -r /dev/vg00/vol_projects +# lvextend -l +100%FREE -r /dev/vg00/vol_backups +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Resize-Reduce-Logical-Volume-and-Volume-Group.png) +>Resize Reduce Logical Volume and Volume Group + +It is important to include the minus `(-)` or plus `(+)` signs while resizing a logical volume. Otherwise, you’re setting a fixed size for the LV instead of resizing it. + +It can happen that you arrive at a point when resizing logical volumes cannot solve your storage needs anymore and you need to buy an extra storage device. Keeping it simple, you will need another disk. We are going to simulate this situation by adding the remaining PV from our initial setup (`/dev/sdd`). + +To add `/dev/sdd` to `vg00`, do + +``` +# vgextend vg00 /dev/sdd +``` + +If you run vgdisplay `vg00` before and after the previous command, you will see the increase in the size of the VG: + +``` +# vgdisplay vg00 +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/List-Volume-Group-Size.png) +>Check Volume Group Disk Size + +Now you can use the newly added space to resize the existing LVs according to your needs, or to create additional ones as needed. + +### Mounting Logical Volumes on Boot and on Demand + +Of course there would be no point in creating logical volumes if we are not going to actually use them! To better identify a logical volume we will need to find out what its `UUID` (a non-changing attribute that uniquely identifies a formatted storage device) is. + +To do that, use blkid followed by the path to each device: + +``` +# blkid /dev/vg00/vol_projects +# blkid /dev/vg00/vol_backups +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Logical-Volume-UUID.png) +>Find Logical Volume UUID + +Create mount points for each LV: + +``` +# mkdir /home/projects +# mkdir /home/backups +``` + +and insert the corresponding entries in `/etc/fstab` (make sure to use the UUIDs obtained before): + +``` +UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects ext4 defaults 0 0 +UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults 0 0 +``` + +Then save the changes and mount the LVs: + +``` +# mount -a +# mount | grep home +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Logical-Volume-UUID.png) +>Find Logical Volume UUID + +When it comes to actually using the LVs, you will need to assign proper `ugo+rwx` permissions as explained in [Part 8 – Manage Users and Groups in Linux][4] of this series. + +### Summary + +In this article we have introduced [Logical Volume Management][5], a versatile tool to manage storage devices that provides scalability. When combined with RAID (which we explained in [Part 6 – Create and Manage RAID in Linux][6] of this series), you can enjoy not only scalability (provided by LVM) but also redundancy (offered by RAID). + +In this type of setup, you will typically find `LVM` on top of `RAID`, that is, configure RAID first and then configure LVM on top of it. + +If you have questions about this article, or suggestions to improve it, feel free to reach us using the comment form below. + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ + +作者:[Gabriel Cánepa][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.tecmint.com/author/gacanepa/ +[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ +[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ +[3]: http://www.tecmint.com/create-partitions-and-filesystems-in-linux/ +[4]: http://www.tecmint.com/manage-users-and-groups-in-linux/ +[5]: http://www.tecmint.com/create-lvm-storage-in-linux/ +[6]: http://www.tecmint.com/creating-and-managing-raid-backups-in-linux/ From 6fc8994f8a28d1849acc1c29dacfc2f678f14394 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 10 Apr 2016 21:42:46 +0800 Subject: [PATCH 344/582] =?UTF-8?q?20160410-2=20=E9=80=89=E9=A2=98LFCS?= =?UTF-8?q?=E4=B8=93=E9=A2=9812?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Installed Help Documentations and Tools.md | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md diff --git a/sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md b/sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md new file mode 100644 index 0000000000..45ccb57f95 --- /dev/null +++ b/sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md @@ -0,0 +1,180 @@ +Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools +================================================================================== + +Because of the changes in the LFCS exam requirements effective Feb. 2, 2016, we are adding the necessary topics to the [LFCS series][1] published here. To prepare for this exam, your are highly encouraged to use the [LFCE series][2] as well. + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Explore-Linux-with-Documentation-and-Tools.png) +>LFCS: Explore Linux with Installed Documentations and Tools – Part 12 + +Once you get used to working with the command line and feel comfortable doing so, you realize that a regular Linux installation includes all the documentation you need to use and configure the system. + +Another good reason to become familiar with command line help tools is that in the [LFCS][3] and [LFCE][4] exams, those are the only sources of information you can use – no internet browsing and no googling. It’s just you and the command line. + +For that reason, in this article we will give you some tips to effectively use the installed docs and tools in order to prepare to pass the **Linux Foundation Certification** exams. + +### Linux Man Pages + +A man page, short for manual page, is nothing less and nothing more than what the word suggests: a manual for a given tool. It contains the list of options (with explanation) that the command supports, and some man pages even include usage examples as well. + +To open a man page, use the **man command** followed by the name of the tool you want to learn more about. For example: + +``` +# man diff +``` + +will open the manual page for `diff`, a tool used to compare text files line by line (to exit, simply hit the q key.). + +Let’s say we want to compare two text files named `file1` and `file2` in Linux. These files contain the list of packages that are installed in two Linux boxes with the same distribution and version. + +Doing a `diff` between `file1` and `file2` will tell us if there is a difference between those lists: + +``` +# diff file1 file2 +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Compare-Two-Text-Files-in-Linux.png) +>Compare Two Text Files in Linux + +where the `<` sign indicates lines missing in `file2`. If there were lines missing in `file1`, they would be indicated by the `>` sign instead. + +On the other hand, **7d6** means line **#7** in file should be deleted in order to match `file2` (same with **24d22** and **41d38**), and 65,67d61 tells us we need to remove lines **65** through **67** in file one. If we make these corrections, both files will then be identical. + +Alternatively, you can display both files side by side using the `-y` option, according to the man page. You may find this helpful to more easily identify missing lines in files: + +``` +# diff -y file1 file2 +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Compare-and-List-Difference-of-Two-Files.png) +>Compare and List Difference of Two Files + +Also, you can use `diff` to compare two binary files. If they are identical, `diff` will exit silently without output. Otherwise, it will return the following message: “**Binary files X and Y differ**”. + +### The –help Option + +The `--help` option, available in many (if not all) commands, can be considered a short manual page for that specific command. Although it does not provide a comprehensive description of the tool, it is an easy way to obtain information on the usage of a program and a list of its available options at a quick glance. + +For example, + +``` +# sed --help +``` + +shows the usage of each option available in sed (the stream editor). + +One of the classic examples of using `sed` consists of replacing characters in files. Using the `-i` option (described as “**edit files in place**”), you can edit a file without opening it. If you want to make a backup of the original contents as well, use the `-i` option followed by a SUFFIX to create a separate file with the original contents. + +For example, to replace each occurrence of the word `Lorem` with `Tecmint` (case insensitive) in `lorem.txt` and create a new file with the original contents of the file, do: + +``` +# less lorem.txt | grep -i lorem +# sed -i.orig 's/Lorem/Tecmint/gI' lorem.txt +# less lorem.txt | grep -i lorem +# less lorem.txt.orig | grep -i lorem +``` + +Please note that every occurrence of `Lorem` has been replaced with `Tecmint` in `lorem.txt`, and the original contents of `lorem.txt` has been saved to `lorem.txt.orig`. + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Replace-A-String-in-File.png) +>Replace A String in Files + +### Installed Documentation in /usr/share/doc + +This is probably my favorite pick. If you go to `/usr/share/doc` and do a directory listing, you will see lots of directories with the names of the installed tools in your Linux system. + +According to the [Filesystem Hierarchy Standard][5], these directories contain useful information that might not be in the man pages, along with templates and configuration files to make configuration easier. + +For example, let’s consider `squid-3.3.8` (version may vary from distribution to distribution) for the popular HTTP proxy and [squid cache server][6]. + +Let’s `cd` into that directory: + +``` +# cd /usr/share/doc/squid-3.3.8 +``` + +and do a directory listing: + +``` +# ls +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/List-Files-in-Linux.png) +>Linux Directory Listing with ls Command + +You may want to pay special attention to `QUICKSTART` and `squid.conf.documented`. These files contain an extensive documentation about Squid and a heavily commented configuration file, respectively. For other packages, the exact names may differ (as **QuickRef** or **00QUICKSTART**, for example), but the principle is the same. + +Other packages, such as the Apache web server, provide configuration file templates inside `/usr/share/doc`, that will be helpful when you have to configure a standalone server or a virtual host, to name a few cases. + +### GNU info Documentation + +You can think of info documents as man pages on steroids. As such, they not only provide help for a specific tool, but also they do so with hyperlinks (yes, hyperlinks in the command line!) that allow you to navigate from a section to another using the arrow keys and Enter to confirm. + +Perhaps the most illustrative example is: + +``` +# info coreutils +``` + +Since coreutils contains the [basic file, shell and text manipulation utilities][7] which are expected to exist on every operating system, you can reasonably expect a detailed description for each one of those categories in info **coreutils**. + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Info-Coreutils.png) +>Info Coreutils + +As it is the case with man pages, you can exit an info document by pressing the `q` key. + +Additionally, GNU info can be used to display regular man pages as well when followed by the tool name. For example: + +``` +# info tune2fs +``` + +will return the man page of **tune2fs**, the ext2/3/4 filesystems management tool. + +And now that we’re at it, let’s review some of the uses of **tune2fs**: + +Display information about the filesystem on top of **/dev/mapper/vg00-vol_backups**: + +``` +# tune2fs -l /dev/mapper/vg00-vol_backups +``` + +Set a filesystem volume name (Backups in this case): + +``` +# tune2fs -L Backups /dev/mapper/vg00-vol_backups +``` + +Change the check intervals and `/` or mount counts (use the `-c` option to set a number of mount counts and `/` or the `-i` option to set a check interval, where **d=days, w=weeks, and m=months**). + +``` +# tune2fs -c 150 /dev/mapper/vg00-vol_backups # Check every 150 mounts +# tune2fs -i 6w /dev/mapper/vg00-vol_backups # Check every 6 weeks +``` + +All of the above options can be listed with the `--help` option, or viewed in the man page. + +### Summary + +Regardless of the method that you choose to invoke help for a given tool, knowing that they exist and how to use them will certainly come in handy in the exam. Do you know of any other tools that can be used to look up documentation? Feel free to share with the Tecmint community using the form below. + +Questions and other comments are more than welcome as well. + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ + +作者:[Gabriel Cánepa][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.tecmint.com/author/gacanepa/ +[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ +[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ +[3]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ +[4]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ +[5]: http://www.tecmint.com/linux-directory-structure-and-important-files-paths-explained/ +[6]: http://www.tecmint.com/configure-squid-server-in-linux/ +[7]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ +[8]: From 7f58906e36bdd46682bfa8712b2a259985a466e8 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 10 Apr 2016 21:59:21 +0800 Subject: [PATCH 345/582] =?UTF-8?q?20160410-3=20=E9=80=89=E9=A2=98LFCS?= =?UTF-8?q?=E4=B8=93=E9=A2=9813?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...leshoot Grand Unified Bootloader (GRUB).md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md diff --git a/sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md b/sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md new file mode 100644 index 0000000000..cf24c51b58 --- /dev/null +++ b/sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md @@ -0,0 +1,185 @@ +Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB) +===================================================================================== + +Because of the changes in the LFCS exam requirements effective Feb. 2, 2016, we are adding the necessary topics to the [LFCS series][1] published here. To prepare for this exam, your are highly encouraged to use the [LFCE series][2] as well. + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Configure-Troubleshoot-Grub-Boot-Loader.png) +>LFCS: Configure and Troubleshoot Grub Boot Loader – Part 13 + +In this article we will introduce you to GRUB and explain why a boot loader is necessary, and how it adds versatility to the system. + +The [Linux boot process][3] from the time you press the power button of your computer until you get a fully-functional system follows this high-level sequence: + +* 1. A process known as **POST** (**Power-On Self Test**) performs an overall check on the hardware components of your computer. +* 2. When **POST** completes, it passes the control over to the boot loader, which in turn loads the Linux kernel in memory (along with **initramfs**) and executes it. The most used boot loader in Linux is the **GRand Unified Boot loader**, or **GRUB** for short. +* 3. The kernel checks and accesses the hardware, and then runs the initial process (mostly known by its generic name “**init**”) which in turn completes the system boot by starting services. + +In Part 7 of this series (“[SysVinit, Upstart, and Systemd][4]”) we introduced the [service management systems and tools][5] used by modern Linux distributions. You may want to review that article before proceeding further. + +### Introducing GRUB Boot Loader + +Two major **GRUB** versions (**v1** sometimes called **GRUB Legacy** and **v2**) can be found in modern systems, although most distributions use **v2** by default in their latest versions. Only **Red Hat Enterprise Linux 6** and its derivatives still use **v1** today. + +Thus, we will focus primarily on the features of **v2** in this guide. + +Regardless of the **GRUB** version, a boot loader allows the user to: + +* 1). modify the way the system behaves by specifying different kernels to use, +* 2). choose between alternate operating systems to boot, and +* 3). add or edit configuration stanzas to change boot options, among other things. + +Today, **GRUB** is maintained by the **GNU** project and is well documented in their website. You are encouraged to use the [GNU official documentation][6] while going through this guide. + +When the system boots you are presented with the following **GRUB** screen in the main console. Initially, you are prompted to choose between alternate kernels (by default, the system will boot using the latest kernel) and are allowed to enter a **GRUB** command line (with `c`) or edit the boot options (by pressing the `e` key). + +![](http://www.tecmint.com/wp-content/uploads/2016/03/GRUB-Boot-Screen.png) +>GRUB Boot Screen + +One of the reasons why you would consider booting with an older kernel is a hardware device that used to work properly and has started “acting up” after an upgrade (refer to [this link][7] in the AskUbuntu forums for an example). + +The **GRUB v2** configuration is read on boot from `/boot/grub/grub.cfg` or `/boot/grub2/grub.cfg`, whereas `/boot/grub/grub.conf` or `/boot/grub/menu.lst` are used in **v1**. These files are NOT to be edited by hand, but are modified based on the contents of `/etc/default/grub` and the files found inside `/etc/grub.d`. + +In a **CentOS 7**, here’s the configuration file that is created when the system is first installed: + +``` +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" +GRUB_DEFAULT=saved +GRUB_DISABLE_SUBMENU=true +GRUB_TERMINAL_OUTPUT="console" +GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet" +GRUB_DISABLE_RECOVERY="true" +``` + +In addition to the online documentation, you can also find the GNU GRUB manual using info as follows: + +``` +# info grub +``` + +If you’re interested specifically in the options available for /etc/default/grub, you can invoke the configuration section directly: + +``` +# info -f grub -n 'Simple configuration' +``` + +Using the command above you will find out that `GRUB_TIMEOUT` sets the time between the moment when the initial screen appears and the system automatic booting begins unless interrupted by the user. When this variable is set to `-1`, boot will not be started until the user makes a selection. + +When multiple operating systems or kernels are installed in the same machine, `GRUB_DEFAULT` requires an integer value that indicates which OS or kernel entry in the GRUB initial screen should be selected to boot by default. The list of entries can be viewed not only in the splash screen shown above, but also using the following command: + +### In CentOS and openSUSE: + +``` +# awk -F\' '$1=="menuentry " {print $2}' /boot/grub2/grub.cfg +``` + +### In Ubuntu: + +``` +# awk -F\' '$1=="menuentry " {print $2}' /boot/grub/grub.cfg +``` + +In the example shown in the below image, if we wish to boot with the kernel version **3.10.0-123.el7.x86_64** (4th entry), we need to set `GRUB_DEFAULT` to `3` (entries are internally numbered beginning with zero) as follows: + +``` +GRUB_DEFAULT=3 +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Boot-System-with-Old-Kernel-Version.png) +>Boot System with Old Kernel Version + +One final GRUB configuration variable that is of special interest is `GRUB_CMDLINE_LINUX`, which is used to pass options to the kernel. The options that can be passed through GRUB to the kernel are well documented in the [Kernel Parameters file][8] and in [man 7 bootparam][9]. + +Current options in my **CentOS 7** server are: + +``` +GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet" +``` + +Why would you want to modify the default kernel parameters or pass extra options? In simple terms, there may be times when you need to tell the kernel certain hardware parameters that it may not be able to determine on its own, or to override the values that it would detect. + +This happened to me not too long ago when I tried **Vector Linux**, a derivative of **Slackware**, on my 10-year old laptop. After installation it did not detect the right settings for my video card so I had to modify the kernel options passed through GRUB in order to make it work. + +Another example is when you need to bring the system to single-user mode to perform maintenance tasks. You can do this by appending the word single to `GRUB_CMDLINE_LINUX` and rebooting: + +``` +GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet single" +``` + +After editing `/etc/defalt/grub`, you will need to run `update-grub` (Ubuntu) or `grub2-mkconfig -o /boot/grub2/grub.cfg` (**CentOS** and **openSUSE**) afterwards to update `grub.cfg` (otherwise, changes will be lost upon boot). + +This command will process the boot configuration files mentioned earlier to update `grub.cfg`. This method ensures changes are permanent, while options passed through GRUB at boot time will only last during the current session. + +### Fixing Linux GRUB Issues + +If you install a second operating system or if your GRUB configuration file gets corrupted due to human error, there are ways you can get your system back on its feet and be able to boot again. + +In the initial screen, press `c` to get a GRUB command line (remember that you can also press `e` to edit the default boot options), and use help to bring the available commands in the GRUB prompt: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Fix-Grub-Issues-in-Linux.png) +>Fix Grub Configuration Issues in Linux + +We will focus on **ls**, which will list the installed devices and filesystems, and we will examine what it finds. In the image below we can see that there are 4 hard drives (`hd0` through `hd3`). + +Only `hd0` seems to have been partitioned (as evidenced by msdos1 and msdos2, where 1 and 2 are the partition numbers and msdos is the partitioning scheme). + +Let’s now examine the first partition on `hd0` (**msdos1**) to see if we can find GRUB there. This approach will allow us to boot Linux and there use other high level tools to repair the configuration file or reinstall GRUB altogether if it is needed: + +``` +# ls (hd0,msdos1)/ +``` + +As we can see in the highlighted area, we found the `grub2` directory in this partition: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Grub-Configuration.png) +>Find Grub Configuration + +Once we are sure that GRUB resides in (**hd0,msdos1**), let’s tell GRUB where to find its configuration file and then instruct it to attempt to launch its menu: + +``` +set prefix=(hd0,msdos1)/grub2 +set root=(hd0,msdos1) +insmod normal +normal +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-and-Launch-Grub-Menu.png) +>Find and Launch Grub Menu + +Then in the GRUB menu, choose an entry and press **Enter** to boot using it. Once the system has booted you can issue the `grub2-install /dev/sdX` command (change `sdX` with the device you want to install GRUB on). The boot information will then be updated and all related files be restored. + +``` +# grub2-install /dev/sdX +``` + +Other more complex scenarios are documented, along with their suggested fixes, in the [Ubuntu GRUB2 Troubleshooting guide][10]. The concepts explained there are valid for other distributions as well. + +### Summary + +In this article we have introduced you to GRUB, indicated where you can find documentation both online and offline, and explained how to approach an scenario where a system has stopped booting properly due to a bootloader-related issue. + +Fortunately, GRUB is one of the tools that is best documented and you can easily find help either in the installed docs or online using the resources we have shared in this article. + +Do you have questions or comments? Don’t hesitate to let us know using the comment form below. We look forward to hearing from you! + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ + +作者:[Gabriel Cánepa][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.tecmint.com/author/gacanepa/ +[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ +[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ +[3]: http://www.tecmint.com/linux-boot-process/ +[4]: http://www.tecmint.com/linux-boot-process-and-manage-services/ +[5]: http://www.tecmint.com/best-linux-log-monitoring-and-management-tools/ +[6]: http://www.gnu.org/software/grub/manual/ +[7]: http://askubuntu.com/questions/82140/how-can-i-boot-with-an-older-kernel-version +[8]: https://www.kernel.org/doc/Documentation/kernel-parameters.txt +[9]: http://man7.org/linux/man-pages/man7/bootparam.7.html +[10]: https://help.ubuntu.com/community/Grub2/Troubleshooting From a83f054b65978f85da496ee08d18961e8b51ae11 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 10 Apr 2016 22:17:13 +0800 Subject: [PATCH 346/582] =?UTF-8?q?20160410-4=20=E9=80=89=E9=A2=98LFCS?= =?UTF-8?q?=E4=B8=93=E9=A2=9814?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Set Process Limits on a Per-User Basis.md | 273 ++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md diff --git a/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md b/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md new file mode 100644 index 0000000000..82bb9b4a74 --- /dev/null +++ b/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md @@ -0,0 +1,273 @@ +Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis +============================================================================================= + +Because of the changes in the LFCS exam requirements effective Feb. 2, 2016, we are adding the necessary topics to the [LFCS series][1] published here. To prepare for this exam, your are highly encouraged to use the [LFCE series][2] as well. + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Linux-Process-Monitoring-Set-Process-Limits-Per-User.png) +>Monitor Linux Processes and Set Process Limits Per User – Part 14 + +Every Linux system administrator needs to know how to verify the integrity and availability of hardware, resources, and key processes. In addition, setting resource limits on a per-user basis must also be a part of his / her skill set. + +In this article we will explore a few ways to ensure that the system both hardware and the software is behaving correctly to avoid potential issues that may cause unexpected production downtime and money loss. + +### Linux Reporting Processors Statistics + +With **mpstat** you can view the activities for each processor individually or the system as a whole, both as a one-time snapshot or dynamically. + +In order to use this tool, you will need to install **sysstat**: + +``` +# yum update && yum install sysstat [On CentOS based systems] +# aptitutde update && aptitude install sysstat [On Ubuntu based systems] +# zypper update && zypper install sysstat [On openSUSE systems] +``` + +Read more about sysstat and it’s utilities at [Learn Sysstat and Its Utilities mpstat, pidstat, iostat and sar in Linux][3] + +Once you have installed **mpstat**, use it to generate reports of processors statistics. + +To display **3** global reports of CPU utilization (`-u`) for all CPUs (as indicated by `-P` ALL) at a 2-second interval, do: + +``` +# mpstat -P ALL -u 2 3 +``` + +### Sample Output + +``` +Linux 3.19.0-32-generic (tecmint.com) Wednesday 30 March 2016 _x86_64_ (4 CPU) + +11:41:07 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:41:09 IST all 5.85 0.00 1.12 0.12 0.00 0.00 0.00 0.00 0.00 92.91 +11:41:09 IST 0 4.48 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 94.53 +11:41:09 IST 1 2.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 97.00 +11:41:09 IST 2 6.44 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 92.57 +11:41:09 IST 3 10.45 0.00 1.99 0.00 0.00 0.00 0.00 0.00 0.00 87.56 + +11:41:09 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:41:11 IST all 11.60 0.12 1.12 0.50 0.00 0.00 0.00 0.00 0.00 86.66 +11:41:11 IST 0 10.50 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 88.50 +11:41:11 IST 1 14.36 0.00 1.49 2.48 0.00 0.00 0.00 0.00 0.00 81.68 +11:41:11 IST 2 2.00 0.50 1.00 0.00 0.00 0.00 0.00 0.00 0.00 96.50 +11:41:11 IST 3 19.40 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 79.60 + +11:41:11 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:41:13 IST all 5.69 0.00 1.24 0.00 0.00 0.00 0.00 0.00 0.00 93.07 +11:41:13 IST 0 2.97 0.00 1.49 0.00 0.00 0.00 0.00 0.00 0.00 95.54 +11:41:13 IST 1 10.78 0.00 1.47 0.00 0.00 0.00 0.00 0.00 0.00 87.75 +11:41:13 IST 2 2.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00 +11:41:13 IST 3 6.93 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 92.57 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 7.71 0.04 1.16 0.21 0.00 0.00 0.00 0.00 0.00 90.89 +Average: 0 5.97 0.00 1.16 0.00 0.00 0.00 0.00 0.00 0.00 92.87 +Average: 1 9.24 0.00 1.16 0.83 0.00 0.00 0.00 0.00 0.00 88.78 +Average: 2 3.49 0.17 1.00 0.00 0.00 0.00 0.00 0.00 0.00 95.35 +Average: 3 12.25 0.00 1.16 0.00 0.00 0.00 0.00 0.00 0.00 86.59 +``` + +To view the same statistics for a specific **CPU** (**CPU 0** in the following example), use: + +``` +# mpstat -P 0 -u 2 3 +``` + +### Sample Output + +``` +Linux 3.19.0-32-generic (tecmint.com) Wednesday 30 March 2016 _x86_64_ (4 CPU) + +11:42:08 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:42:10 IST 0 3.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 96.50 +11:42:12 IST 0 4.08 0.00 0.00 2.55 0.00 0.00 0.00 0.00 0.00 93.37 +11:42:14 IST 0 9.74 0.00 0.51 0.00 0.00 0.00 0.00 0.00 0.00 89.74 +Average: 0 5.58 0.00 0.34 0.85 0.00 0.00 0.00 0.00 0.00 93.23 +``` + +The output of the above commands shows these columns: + +* `CPU`: Processor number as an integer, or the word all as an average for all processors. +* `%usr`: Percentage of CPU utilization while running user level applications. +* `%nice`: Same as `%usr`, but with nice priority. +* `%sys`: Percentage of CPU utilization that occurred while executing kernel applications. This does not include time spent dealing with interrupts or handling hardware. +* `%iowait`: Percentage of time when the given CPU (or all) was idle, during which there was a resource-intensive I/O operation scheduled on that CPU. A more detailed explanation (with examples) can be found [here][4]. +* `%irq`: Percentage of time spent servicing hardware interrupts. +* `%soft`: Same as `%irq`, but with software interrupts. +* `%steal`: Percentage of time spent in involuntary wait (steal or stolen time) when a virtual machine, as guest, is “winning” the hypervisor’s attention while competing for the CPU(s). This value should be kept as small as possible. A high value in this field means the virtual machine is stalling – or soon will be. +* `%guest`: Percentage of time spent running a virtual processor. +* `%idle`: percentage of time when CPU(s) were not executing any tasks. If you observe a low value in this column, that is an indication of the system being placed under a heavy load. In that case, you will need to take a closer look at the process list, as we will discuss in a minute, to determine what is causing it. + +To put the place the processor under a somewhat high load, run the following commands and then execute mpstat (as indicated) in a separate terminal: + +``` +# dd if=/dev/zero of=test.iso bs=1G count=1 +# mpstat -u -P 0 2 3 +# ping -f localhost # Interrupt with Ctrl + C after mpstat below completes +# mpstat -u -P 0 2 3 +``` + +Finally, compare to the output of **mpstat** under “normal” circumstances: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Report-Processors-Related-Statistics.png) +>Report Linux Processors Related Statistics + +As you can see in the image above, **CPU 0** was under a heavy load during the first two examples, as indicated by the `%idle` column. + +In the next section we will discuss how to identify these resource-hungry processes, how to obtain more information about them, and how to take appropriate action. + +### Reporting Linux Processes + +To list processes sorting them by CPU usage, we will use the well known `ps` command with the `-eo` (to select all processes with user-defined format) and `--sort` (to specify a custom sorting order) options, like so: + +``` +# ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu +``` + +The above command will only show the `PID`, `PPID`, the command associated with the process, and the percentage of CPU and RAM usage sorted by the percentage of CPU usage in descending order. When executed during the creation of the .iso file, here’s the first few lines of the output: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Linux-Processes-By-CPU-Usage.png) +>Find Linux Processes By CPU Usage + +Once we have identified a process of interest (such as the one with `PID=2822`), we can navigate to `/proc/PID` (`/proc/2822` in this case) and do a directory listing. + +This directory is where several files and subdirectories with detailed information about this particular process are kept while it is running. + +#### For example: + +* `/proc/2822/io` contains IO statistics for the process (number of characters and bytes read and written, among others, during IO operations). +* `/proc/2822/attr/current` shows the current SELinux security attributes of the process. +* `/proc/2822/cgroup` describes the control groups (cgroups for short) to which the process belongs if the CONFIG_CGROUPS kernel configuration option is enabled, which you can verify with: + +``` +# cat /boot/config-$(uname -r) | grep -i cgroups +``` + +If the option is enabled, you should see: + +``` +CONFIG_CGROUPS=y +``` + +Using `cgroups` you can manage the amount of allowed resource usage on a per-process basis as explained in Chapters 1 through 4 of the [Red Hat Enterprise Linux 7 Resource Management guide][5], in Chapter 9 of the [openSUSE System Analysis and Tuning guide][6], and in the [Control Groups section of the Ubuntu 14.04 Server documentation][7]. + +The `/proc/2822/fd` is a directory that contains one symbolic link for each file descriptor the process has opened. The following image shows this information for the process that was started in tty1 (the first terminal) to create the **.iso** image: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Linux-Process-Information.png) +>Find Linux Process Information + +The above image shows that **stdin** (file descriptor **0**), **stdout** (file descriptor **1**), and **stderr** (file descriptor **2**) are mapped to **/dev/zero**, **/root/test.iso**, and **/dev/tty1**, respectively. + +More information about `/proc` can be found in “The `/proc` filesystem” document kept and maintained by Kernel.org, and in the Linux Programmer’s Manual. + +### Setting Resource Limits on a Per-User Basis in Linux + +If you are not careful and allow any user to run an unlimited number of processes, you may eventually experience an unexpected system shutdown or get locked out as the system enters an unusable state. To prevent this from happening, you should place a limit on the number of processes users can start. + +To do this, edit **/etc/security/limits.conf** and add the following line at the bottom of the file to set the limit: + +``` +* hard nproc 10 +``` + +The first field can be used to indicate either a user, a group, or all of them `(*)`, whereas the second field enforces a hard limit on the number of process (nproc) to **10**. To apply changes, logging out and back in is enough. + +Thus, let’s see what happens if a certain user other than root (either a legitimate one or not) attempts to start a shell fork bomb. If we had not implemented limits, this would initially launch two instances of a function, and then duplicate each of them in a neverending loop. Thus, it would eventually bringing your system to a crawl. + +However, with the above restriction in place, the fork bomb does not succeed but the user will still get locked out until the system administrator kills the process associated with it: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Shell-Fork-Bomb.png) +>Run Shell Fork Bomb + +**TIP**: Other possible restrictions made possible by **ulimit** are documented in the `limits.conf` file. + +### Linux Other Process Management Tools + +In addition to the tools discussed previously, a system administrator may also need to: + +**a)** Modify the execution priority (use of system resources) of a process using **renice**. This means that the kernel will allocate more or less system resources to the process based on the assigned priority (a number commonly known as “**niceness**” in a range from `-20` to `19`). + +The lower the value, the greater the execution priority. Regular users (other than root) can only modify the niceness of processes they own to a higher value (meaning a lower execution priority), whereas root can modify this value for any process, and may increase or decrease it. + +The basic syntax of renice is as follows: + +``` +# renice [-n] identifier +``` + +If the argument after the new priority value is not present (empty), it is set to PID by default. In that case, the niceness of process with **PID=identifier** is set to ``. + +**b)** Interrupt the normal execution of a process when needed. This is commonly known as [“killing” the process][9]. Under the hood, this means sending the process a signal to finish its execution properly and release any used resources in an orderly manner. + +To [kill a process][10], use the **kill** command as follows: + +``` +# kill PID +``` + +Alternatively, you can use [pkill to terminate all processes][11] of a given owner `(-u)`, or a group owner `(-G)`, or even those processes which have a PPID in common `(-P)`. These options may be followed by the numeric representation or the actual name as identifier: + +``` +# pkill [options] identifier +``` + +For example, + +``` +# pkill -G 1000 +``` + +will kill all processes owned by group with `GID=1000`. + +And, + +``` +# pkill -P 4993 +``` + +will kill all processes whose `PPID is 4993`. + +Before running a `pkill`, it is a good idea to test the results with `pgrep` first, perhaps using the `-l` option as well to list the processes’ names. It takes the same options but only returns the PIDs of processes (without taking any further action) that would be killed if `pkill` is used. + +``` +# pgrep -l -u gacanepa +``` + +This is illustrated in the next image: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/List-User-Running-Processes.png) +>Find User Running Processes in Linux + +### Summary + +In this article we have explored a few ways to monitor resource usage in order to verify the integrity and availability of critical hardware and software components in a Linux system. + +We have also learned how to take appropriate action (either by adjusting the execution priority of a given process or by terminating it) under unusual circumstances. + +We hope the concepts explained in this tutorial have been helpful. If you have any questions or comments, feel free to reach us using the contact form below. + + + + + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ + +作者:[Gabriel Cánepa][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.tecmint.com/author/gacanepa/ +[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ +[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ +[3]: http://www.tecmint.com/sysstat-commands-to-monitor-linux/ +[4]: http://veithen.github.io/2013/11/18/iowait-linux.html +[5]: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Resource_Management_Guide/index.html +[6]: https://doc.opensuse.org/documentation/leap/tuning/html/book.sle.tuning/cha.tuning.cgroups.html +[7]: https://help.ubuntu.com/lts/serverguide/cgroups.html +[8]: http://man7.org/linux/man-pages/man5/proc.5.html +[9]: http://www.tecmint.com/kill-processes-unresponsive-programs-in-ubuntu/ +[10]: http://www.tecmint.com/find-and-kill-running-processes-pid-in-linux/ +[11]: http://www.tecmint.com/how-to-kill-a-process-in-linux/ From cd50e7545fa5c1a368c103bdecb66bbf45198d1e Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 11 Apr 2016 09:15:12 +0800 Subject: [PATCH 347/582] PUB:Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux @GHLandy --- ...work Samba and NFS Filesystems in Linux.md | 66 ++++++++----------- 1 file changed, 28 insertions(+), 38 deletions(-) rename {translated/tech => published}/LFCS/Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux.md (76%) diff --git a/translated/tech/LFCS/Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux.md b/published/LFCS/Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux.md similarity index 76% rename from translated/tech/LFCS/Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux.md rename to published/LFCS/Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux.md index 1551f4de0c..50344e5da0 100644 --- a/translated/tech/LFCS/Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux.md +++ b/published/LFCS/Part 5 - LFCS--How to Mount or Unmount Local and Network Samba and NFS Filesystems in Linux.md @@ -1,22 +1,18 @@ -GHLandy Translated - LFCS 系列第五讲:如何在 Linux 中挂载/卸载本地文件系统和网络文件系统(Samba 和 NFS) - ================================================================================ -Linux 基金会已经发起了一个全新的 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证,旨在让来自世界各地的人有机会参加到 LFCS 测试,获得关于有能力在 Linux 系统中执行中间系统管理任务的认证。该认证包括:维护正在运行的系统和服务的能力、全面监控和分析的能力以及何时上游团队请求支持的决策能力。 +Linux 基金会已经发起了一个全新的 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证,旨在让来自世界各地的人有机会参加到 LFCS 测试,获得关于有能力在 Linux 系统中执行中间系统管理任务的认证。该认证包括:维护正在运行的系统和服务的能力、全面监控和分析的能力以及何时向上游团队请求支持的决策能力。 ![Linux Foundation Certified Sysadmin – Part 5](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-5.png) -LFCS 系列第五讲 +*LFCS 系列第五讲* 请看以下视频,这里边介绍了 Linux 基金会认证程序。 注:youtube 视频 -本讲是《十套教程》系列中的第三讲,在这一讲里边,我们会解释如何在 Linux 中挂载/卸载本地和网络文件系统。这些都是 LFCS 认证中的必备知识。 - +本讲是系列教程中的第五讲,在这一讲里边,我们会解释如何在 Linux 中挂载/卸载本地和网络文件系统。这些都是 LFCS 认证中的必备知识。 ### 挂载文件系统 ### @@ -26,20 +22,19 @@ LFCS 系列第五讲 换句话说,管理存储设备的第一步就是把设备关联到文件系统树。要完成这一步,通常可以这样:用 mount 命令来进行临时挂载(用完的时候,使用 umount 命令来卸载),或者通过编辑 /etc/fstab 文件之后重启系统来永久性挂载,这样每次开机都会进行挂载。 - 不带任何选项的 mount 命令,可以显示当前已挂载的文件系统。 # mount ![Check Mounted Filesystem in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/check-mounted-filesystems.png) -检查已挂载的文件系统 +*检查已挂载的文件系统* 另外,mount 命令通常用来挂载文件系统。其基本语法如下: # mount -t type device dir -o options -该命令会指引内核在设备上找到的文件系统(如已格式化为指定类型的文件系统)挂载到指定目录。像这样的形式,mount 命令不会再到 /etc/fstab 文件中进行确认。 +该命令会指引内核将在设备上找到的文件系统(如已格式化为指定类型的文件系统)挂载到指定目录。像这样的形式,mount 命令不会再到 /etc/fstab 文件中进行确认。 除非像下面,挂载指定的目录或者设备: @@ -59,20 +54,17 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 读作: -设备 dev/mapper/debian-home 的格式为 ext4,挂载在 /home 下,并且有以下挂载选项: rw,relatime,user_xattr,barrier=1,data=ordered。 +设备 dev/mapper/debian-home 挂载在 /home 下,它被格式化为 ext4,并且有以下挂载选项: rw,relatime,user_xattr,barrier=1,data=ordered。 **mount 命令选项** 下面列出 mount 命令的常用选项 - -- async:运许在将要挂载的文件系统上进行异步 I/O 操作 -- auto:标志文件系统通过 mount -a 命令挂载,与 noauto 相反。 - -- defaults:该选项为 async,auto,dev,exec,nouser,rw,suid 的一个别名。注意,多个选项必须由逗号隔开并且中间没有空格。倘若你不小心在两个选项中间输入了一个空格,mount 命令会把后边的字符解释为另一个参数。 +- async:允许在将要挂载的文件系统上进行异步 I/O 操作 +- auto:标示该文件系统通过 mount -a 命令挂载,与 noauto 相反。 +- defaults:该选项相当于 `async,auto,dev,exec,nouser,rw,suid` 的组合。注意,多个选项必须由逗号隔开并且中间没有空格。倘若你不小心在两个选项中间输入了一个空格,mount 命令会把后边的字符解释为另一个参数。 - loop:将镜像文件(如 .iso 文件)挂载为 loop 设备。该选项可以用来模拟显示光盘中的文件内容。 - noexec:阻止该文件系统中可执行文件的执行。与 exec 选项相反。 - - nouser:阻止任何用户(除 root 用户外) 挂载或卸载文件系统。与 user 选项相反。 - remount:重新挂载文件系统。 - ro:只读模式挂载。 @@ -91,7 +83,7 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 ![Mount Device in Read Write Mode](http://www.tecmint.com/wp-content/uploads/2014/10/Mount-Device-Read-Write.png) -可读写模式挂载设备 +*可读写模式挂载设备* **以默认模式挂载设备** @@ -102,26 +94,25 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 ![Mount Device in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Mount-Device.png) -挂载设备 +*挂载设备* 在这个例子中,我们发现写入文件和命令都完美执行了。 ### 卸载设备 ### -使用 umount 命令卸载设备,意味着将所有的“在使用”数据全部写入到文件系统了,然后可以安全移除文件系统。请注意,倘若你移除一个没有事先正确卸载的文件系统,就会有造成设备损坏和数据丢失的风险。 +使用 umount 命令卸载设备,意味着将所有的“在使用”数据全部写入到文件系统,然后可以安全移除文件系统。请注意,倘若你移除一个没有事先正确卸载的设备,就会有造成设备损坏和数据丢失的风险。 -也就是说,你必须设备的盘符或者挂载点中退出,才能卸载设备。换言之,当前工作目录不能是需要卸载设备的挂载点。否则,系统将返回设备繁忙的提示信息。 +也就是说,你必须“离开”设备的块设备描述符或者挂载点,才能卸载设备。换言之,你的当前工作目录不能是需要卸载设备的挂载点。否则,系统将返回设备繁忙的提示信息。 ![Unmount Device in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Unmount-Device.png) -卸载设备 +*卸载设备* 离开需卸载设备的挂载点最简单的方法就是,运行不带任何选项的 cd 命令,这样会回到当前用户的家目录。 - ### 挂载常见的网络文件系统 ### -最常用的两种网络文件系统是 SMB(Server Message Block,服务器消息块)和 NFS(Network File System,网络文件系统)。如果你只向类 Unix 客户端提供共享,用 NFS 就可以了,如果是向 Windows 和其他类 Unix客户端提供共享服务,就需要用到 Samba 了。 +最常用的两种网络文件系统是 SMB(Server Message Block,服务器消息块)和 NFS(Network File System,网络文件系统)。如果你只向类 Unix 客户端提供共享,用 NFS 就可以了,如果是向 Windows 和其他类 Unix 客户端提供共享服务,就需要用到 Samba 了。 扩展阅读 @@ -130,13 +121,13 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 下面的例子中,假设 Samba 和 NFS 已经在地址为 192.168.0.10 的服务器上架设好了(请注意,架设 NFS 服务器也是 LFCS 考试中需要考核的能力,我们会在后边中提到)。 - #### 在 Linux 中挂载 Samba 共享 #### 第一步:在 Red Hat 以 Debian 系发行版中安装 samba-client、samba-common 和 cifs-utils 软件包,如下: # yum update && yum install samba-client samba-common cifs-utils # aptitude update && aptitude install samba-client samba-common cifs-utils + 然后运行下列命令,查看服务器上可用的 Samba 共享。 # smbclient -L 192.168.0.10 @@ -145,7 +136,7 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 ![Mount Samba Share in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Mount-Samba-Share.png) -挂载 Samba 共享 +*挂载 Samba 共享* 上图中,已经对可以挂载到我们本地系统上的共享进行高亮显示。你只需要与一个远程服务器上的合法用户名及密码就可以访问共享了。 @@ -164,7 +155,7 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 ![Mount Password Protect Samba Share](http://www.tecmint.com/wp-content/uploads/2014/10/Mount-Password-Protect-Samba-Share.png) -挂载有密码保护的 Samba 共享 +*挂载有密码保护的 Samba 共享* #### 在 Linux 系统中挂载 NFS 共享 #### @@ -185,7 +176,7 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 ![Mount NFS Share in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Mount-NFS-Share.png) -挂载 NFS 共享 +*挂载 NFS 共享* ### 永久性挂载文件系统 ### @@ -197,13 +188,12 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 其中: -- : 第一个字段指定挂载的设备。大多数发行版本都通过分区的标卷(label)或者 UUID 来指定。这样做可以避免分区号改变是带来的错误。 -- : 第二字段指定挂载点。 -- :文件系统的类型代码与 mount 命令挂载文件系统时使用的类型代码是一样的。通过 auto 类型代码可以让内核自动检测文件系统,这对于可移动设备来说非常方便。注意,该选项可能不是对所有文件系统可用。 -- : 一个(或多个)挂载选项。 -- : 你可能把这个字段设置为 0(否则设置为 1),使得系统启动时禁用 dump 工具(dump 程序曾经是一个常用的备份工具,但现在越来越少用了)对文件系统进行备份。 - -- : 这个字段指定启动系统是是否通过 fsck 来检查文件系统的完整性。0 表示 fsck 不对文件系统进行检查。数字越大,优先级越低。因此,根分区(/)最可能使用数字 1,其他所有需要检查的分区则是以数字 2. +- \: 第一个字段指定挂载的设备。大多数发行版本都通过分区的标卷(label)或者 UUID 来指定。这样做可以避免分区号改变时带来的错误。 +- \: 第二个字段指定挂载点。 +- \ :文件系统的类型代码与 mount 命令挂载文件系统时使用的类型代码是一样的。通过 auto 类型代码可以让内核自动检测文件系统,这对于可移动设备来说非常方便。注意,该选项可能不是对所有文件系统可用。 +- \: 一个(或多个)挂载选项。 +- \: 你可能把这个字段设置为 0(否则设置为 1),使得系统启动时禁用 dump 工具(dump 程序曾经是一个常用的备份工具,但现在越来越少用了)对文件系统进行备份。 +- \: 这个字段指定启动系统是是否通过 fsck 来检查文件系统的完整性。0 表示 fsck 不对文件系统进行检查。数字越大,优先级越低。因此,根分区(/)最可能使用数字 1,其他所有需要检查的分区则是以数字 2. **Mount 命令例示** @@ -211,7 +201,7 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 LABEL=TECMINT /mnt ext4 rw,noexec 0 0 -2. 若你想在系统启动时挂载 DVD 光驱中的内容,添加已下语句。 +2. 若你想在系统启动时挂载 DVD 光驱中的内容,添加以下语句。 /dev/sr0 /media/cdrom0 iso9660 ro,user,noauto 0 0 @@ -219,7 +209,7 @@ mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上 ### 总结 ### -可以放心,在命令行中挂载/卸载本地和网络文件系统将是你作为系统管理员的日常责任的一部分。同时,你需要掌握 /etc/fstab 文件的编写。希望本文对你有帮助。随时在下边发表评论(或者提问),并分享本文到你的朋友圈。 +不用怀疑,在命令行中挂载/卸载本地和网络文件系统将是你作为系统管理员的日常责任的一部分。同时,你需要掌握 /etc/fstab 文件的编写。希望本文对你有帮助。随时在下边发表评论(或者提问),并分享本文到你的朋友圈。 参考链接 @@ -234,7 +224,7 @@ via: http://www.tecmint.com/mount-filesystem-in-linux/ 作者:[Gabriel Cánepa][a] 译者:[GHLandy](https://github.com/GHLandy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 6fc772fea1e2a0709021e2b5a1f906437d3ee8a8 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 11 Apr 2016 09:15:47 +0800 Subject: [PATCH 348/582] PUB:20151028 10 Tips for 10x Application Performance @oska874 --- ...10 Tips for 10x Application Performance.md | 199 +++++++++--------- 1 file changed, 98 insertions(+), 101 deletions(-) diff --git a/translated/tech/20151028 10 Tips for 10x Application Performance.md b/translated/tech/20151028 10 Tips for 10x Application Performance.md index 55cd24bd9a..9641a2e546 100644 --- a/translated/tech/20151028 10 Tips for 10x Application Performance.md +++ b/translated/tech/20151028 10 Tips for 10x Application Performance.md @@ -1,208 +1,207 @@ -10 Tips for 10x Application Performance - 将程序性能提高十倍的10条建议 ================================================================================ -提高web 应用的性能从来没有比现在更关键过。网络经济的比重一直在增长;全球经济超过5% 的价值是在因特网上产生的(数据参见下面的资料)。我们的永远在线、超级连接的世界意味着用户的期望值也处于历史上的最高点。如果你的网站不能及时的响应,或者你的app 不能无延时的工作,用户会很快的投奔到你的竞争对手那里。 +提高 web 应用的性能从来没有比现在更重要过。网络经济的比重一直在增长;全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料)。这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上的最高点。如果你的网站不能及时的响应,或者你的 app 不能无延时的工作,用户会很快的投奔到你的竞争对手那里。 -举一个例子,一份亚马逊十年前做过的研究可以证明,甚至在那个时候,网页加载时间每减少100毫秒,收入就会增加1%。另一个最近的研究特别强调一个事实,即超过一半的网站拥有着在调查中说他们会因为应用程序性能的问题流失用户。 +举一个例子,一份亚马逊十年前做过的研究可以证明,甚至在那个时候,网页加载时间每减少100毫秒,收入就会增加1%。另一个最近的研究特别强调一个事实,即超过一半的网站拥有者在调查中承认它们会因为应用程序性能的问题流失用户。 -网站到底需要多块呢?对于页面加载,每增加1秒钟就有4%的用户放弃使用。顶级的电子商务站点的页面在第一次交互时可以做到1秒到3秒加载时间,而这是提供最高舒适度的速度。很明显这种利害关系对于web 应用来说很高,而且在不断的增加。 +网站到底需要多快呢?对于页面加载,每增加1秒钟就有4%的用户放弃使用。顶级的电子商务站点的页面在第一次交互时可以做到1秒到3秒加载时间,而这是提供最高舒适度的速度。很明显这种利害关系对于 web 应用来说很高,而且在不断的增加。 -想要提高效率很简单,但是看到实际结果很难。要在旅途上帮助你,这篇blog 会给你提供10条最高可以10倍的提升网站性能的建议。这是系列介绍提高应用程序性能的第一篇文章,包括测试充分的优化技术和一点NGIX 的帮助。这个系列给出了潜在的提高安全性的帮助。 +想要提高效率很简单,但是看到实际结果很难。为了在你的探索之旅上帮助到你,这篇文章会给你提供10条最高可以提升10倍网站性能的建议。这是系列介绍提高应用程序性能的第一篇文章,包括充分测试的优化技术和一点 NGINX 的帮助。这个系列也给出了潜在的提高安全性的帮助。 ### Tip #1: 通过反向代理来提高性能和增加安全性 ### -如果你的web 应用运行在单个机器上,那么这个办法会明显的提升性能:只需要添加一个更快的机器,更好的处理器,更多的内存,更快的磁盘阵列,等等。然后新机器就可以更快的运行你的WordPress 服务器, Node.js 程序, Java 程序,以及其它程序。(如果你的程序要访问数据库服务器,那么这个办法还是很简单:添加两个更快的机器,以及在两台电脑之间使用一个更快的链路。) +如果你的 web 应用运行在单个机器上,那么这个办法会明显的提升性能:只需要换一个更快的机器,更好的处理器,更多的内存,更快的磁盘阵列,等等。然后新机器就可以更快的运行你的 WordPress 服务器, Node.js 程序, Java 程序,以及其它程序。(如果你的程序要访问数据库服务器,那么解决方法依然很简单:添加两个更快的机器,以及在两台电脑之间使用一个更快的链路。) -问题是,机器速度可能并不是问题。web 程序运行慢经常是因为计算机一直在不同的任务之间切换:和用户的成千上万的连接,从磁盘访问文件,运行代码,等等。应用服务器可能会抖动-内存不足,将内存数据写会磁盘,以及多个请求等待一个任务完成,如磁盘I/O。 +问题是,机器速度可能并不是问题。web 程序运行慢经常是因为计算机一直在不同的任务之间切换:通过成千上万的连接和用户交互,从磁盘访问文件,运行代码,等等。应用服务器可能会抖动(thrashing)-比如说内存不足、将内存数据交换到磁盘,以及有多个请求要等待某个任务完成,如磁盘I/O。 -你可以采取一个完全不同的方案来替代升级硬件:添加一个反向代理服务器来分担部分任务。[反向代理服务器][1] 位于运行应用的机器的前端,是用来处理网络流量的。只有反向代理服务器是直接连接到互联网的;和程序的通讯都是通过一个快速的内部网络完成的。 +你可以采取一个完全不同的方案来替代升级硬件:添加一个反向代理服务器来分担部分任务。[反向代理服务器][1] 位于运行应用的机器的前端,是用来处理网络流量的。只有反向代理服务器是直接连接到互联网的;和应用服务器的通讯都是通过一个快速的内部网络完成的。 -使用反向代理服务器可以将应用服务器从等待用户与web 程序交互解放出来,这样应用服务器就可以专注于为反向代理服务器构建网页,让其能够传输到互联网上。而应用服务器就不需要在能带客户端的响应,可以运行与接近优化过的性能水平。 +使用反向代理服务器可以将应用服务器从等待用户与 web 程序交互解放出来,这样应用服务器就可以专注于为反向代理服务器构建网页,让其能够传输到互联网上。而应用服务器就不需要等待客户端的响应,其运行速度可以接近于优化后的性能水平。 -添加方向代理服务器还可以给你的web 服务器安装带来灵活性。比如,一个已知类型的服务器已经超载了,那么就可以轻松的添加另一个相同的服务器;如果某个机器宕机了,也可以很容易的被替代。 +添加反向代理服务器还可以给你的 web 服务器安装带来灵活性。比如,一个某种类型的服务器已经超载了,那么就可以轻松的添加另一个相同的服务器;如果某个机器宕机了,也可以很容易替代一个新的。 -因为反向代理带来的灵活性,所以方向代理也是一些性能加速功能的必要前提,比如: +因为反向代理带来的灵活性,所以反向代理也是一些性能加速功能的必要前提,比如: -- **负载均衡** (参见 [Tip #2][2]) – 负载均衡运行在方向代理服务器上,用来将流量均衡分配给一批应用。有了合适的负载均衡,你就可以在不改变程序的前提下添加应用服务器。 -- **缓存静态文件** (参见 [Tip #3][3]) – 直接读取的文件,比如图像或者代码,可以保存在方向代理服务器,然后直接发给客户端,这样就可以提高速度、分担应用服务器的负载,可以让应用运行的更快 -- **网站安全** – 反响代理服务器可以提高网站安全性,以及快速的发现和响应攻击,保证应用服务器处于被保护状态。 +- **负载均衡** (参见 [Tip #2][2]) – 负载均衡运行在反向代理服务器上,用来将流量均衡分配给一批应用。有了合适的负载均衡,你就可以添加应用服务器而根本不用修改应用。 +- **缓存静态文件** (参见 [Tip #3][3]) – 直接读取的文件,比如图片或者客户端代码,可以保存在反向代理服务器,然后直接发给客户端,这样就可以提高速度、分担应用服务器的负载,可以让应用运行的更快。 +- **网站安全** – 反向代理服务器可以提高网站安全性,以及快速的发现和响应攻击,保证应用服务器处于被保护状态。 -NGINX 软件是一个专门设计的反响代理服务器,也包含了上述的多种功能。NGINX 使用事件驱动的方式处理问题,着回避传统的服务器更加有效率。NGINX plus 天价了更多高级的反向代理特性,比如程序[健康度检查][4],专门用来处理request 路由,高级缓冲和相关支持。 +NGINX 软件为用作反向代理服务器而专门设计,也包含了上述的多种功能。NGINX 使用事件驱动的方式处理请求,这会比传统的服务器更加有效率。NGINX plus 添加了更多高级的反向代理特性,比如应用的[健康度检查][4],专门用来处理请求路由、高级缓冲和相关支持。 ![NGINX Worker Process helps increase application performance](https://www.nginx.com/wp-content/uploads/2015/10/Graph-11.png) ### Tip #2: 添加负载平衡 ### -添加一个[负载均衡服务器][5] 是一个相当简单的用来提高性能和网站安全性的的方法。使用负载均衡讲流量分配到多个服务器,是用来替代只使用一个巨大且高性能web 服务器的方案。即使程序写的不好,或者在扩容方面有困难,只使用负载均衡服务器就可以很好的提高用户体验。 +添加一个[负载均衡服务器][5] 是一个相当简单的用来提高性能和网站安全性的的方法。与其将核心 Web 服务器变得越来越大和越来越强,不如使用负载均衡将流量分配到多个服务器。即使程序写的不好,或者在扩容方面有困难,仅是使用负载均衡服务器就可以很好的提高用户体验。 -负载均衡服务器首先是一个反响代理服务器(参见[Tip #1][6])——它接收来自互联网的流量,然后转发请求给另一个服务器。小戏法是负载均衡服务器支持两个或多个应用服务器,使用[分配算法][7]将请求转发给不同服务器。最简单的负载均衡方法是轮转法,只需要将新的请求发给列表里的下一个服务器。其它的方法包括将请求发给负载最小的活动连接。NGINX plus 拥有将特定用户的会话分配给同一个服务器的[能力][8]. +负载均衡服务器首先是一个反向代理服务器(参见[Tip #1][6])——它接受来自互联网的流量,然后转发请求给另一个服务器。特别是负载均衡服务器支持两个或多个应用服务器,使用[分配算法][7]将请求转发给不同服务器。最简单的负载均衡方法是轮转法(round robin),每个新的请求都会发给列表里的下一个服务器。其它的复制均衡方法包括将请求发给活动连接最少的服务器。NGINX plus 拥有将特定用户的会话分配给同一个服务器的[能力][8]。 -负载均衡可以很好的提高性能是因为它可以避免某个服务器过载而另一些服务器却没有流量来处理。它也可以简单的扩展服务器规模,因为你可以添加多个价格相对便宜的服务器并且保证它们被充分利用了。 +负载均衡可以很好的提高性能是因为它可以避免某个服务器过载而另一些服务器却没有需要处理的流量。它也可以简单的扩展服务器规模,因为你可以添加多个价格相对便宜的服务器并且保证它们被充分利用了。 -可以进行负载均衡的协议包括HTTP, HTTPS, SPDY, HTTP/2, WebSocket,[FastCGI][9],SCGI,uwsgi, memcached,以及集中其它的应用类型,包括采用TCP 第4层协议的程序。分析你的web 应用来决定那些你要使用以及那些地方的性能不足。 +可以进行负载均衡的协议包括 HTTP、HTTPS、SPDY、HTTP/2、WebSocket、[FastCGI][9]、SCGI、uwsgi、 memcached 等,以及几种其它的应用类型,包括基于 TCP 的应用和其它的第4层协议的程序。分析你的 web 应用来决定你要使用哪些以及哪些地方性能不足。 -相同的服务器或服务器群可以被用来进行负载均衡,也可以用来处理其它的任务,如SSL 终止,提供对客户端使用的HTTP/1/x 和 HTTP/2 ,以及缓存静态文件。 +相同的服务器或服务器群可以被用来进行负载均衡,也可以用来处理其它的任务,如 SSL 末端服务器,支持客户端的 HTTP/1.x 和 HTTP/2 请求,以及缓存静态文件。 -NGINX 经常被用来进行负载均衡;要想了解更多的情况可以访问我们的[overview blog post][10], [configuration blog post][11], [ebook][12] 以及相关网站 [webinar][13], 和 [documentation][14]。我们的商业版本 [NGINX Plus][15] 支持更多优化了的负载均衡特性,如基于服务器响应时间的加载路由和Microsoft’s NTLM 协议上的负载均衡。 +NGINX 经常被用于进行负载均衡;要想了解更多的情况,可以下载我们的电子书 [选择软件负载均衡器的五个理由][10]。你也可以从 [使用 NGINX 和 NGINX Plus 配置负载均衡,第一部分][11] 中了解基本的配置指导,在 NGINX Plus 管理员指南中有完整的 [NGINX 负载均衡][12]的文档。。我们的商业版本 [NGINX Plus][15] 支持更多优化了的负载均衡特性,如基于服务器响应时间的加载路由和Microsoft’s NTLM 协议上的负载均衡。 ### Tip #3: 缓存静态和动态的内容 ### -缓存通过加速内容的传输速度来提高web 应用的性能。它可以采用一下集中策略:当需要的时候预处理要传输的内容,保存数据到速度更快的设备,把数据存储在距离客户端更近的位置,或者结合起来使用。 +缓存可以通过加速内容的传输速度来提高 web 应用的性能。它可以采用以下几种策略:当需要的时候预处理要传输的内容,保存数据到速度更快的设备,把数据存储在距离客户端更近的位置,或者将这几种方法结合起来使用。 -下面要考虑两种不同类型数据的缓冲: +有两种不同类型数据的缓冲: -- **静态内容缓存**。不经常变化的文件,比如图像(JPEG,PNG) 和代码(CSS,JavaScript),可以保存在边缘服务器,这样就可以快速的从内存和磁盘上提取。 -- **动态内容缓存**。很多web 应用回针对每个网页请求生成不同的HTML 页面。在短时间内简单的缓存每个生成HTML 内容,就可以很好的减少要生成的内容的数量,这完全可以达到你的要求。 +- **静态内容缓存**。不经常变化的文件,比如图像(JPEG、PNG) 和代码(CSS,JavaScript),可以保存在外围服务器上,这样就可以快速的从内存和磁盘上提取。 +- **动态内容缓存**。很多 web 应用会针对每次网页请求生成一个新的 HTML 页面。在短时间内简单的缓存生成的 HTML 内容,就可以很好的减少要生成的内容的数量,而且这些页面足够新,可以满足你的需要。 -举个例子,如果一个页面每秒会被浏览10次,你将它缓存1 秒,99%请求的页面都会直接从缓存提取。如果你将将数据分成静态内容,甚至新生成的页面可能都是由这些缓存构成的。 +举个例子,如果一个页面每秒会被浏览10次,你将它缓存 1 秒,90%请求的页面都会直接从缓存提取。如果你分开缓存静态内容,甚至新生成的页面可能都是由这些缓存构成的。 -下面由是web 应用发明的三种主要的缓存技术: +下面由是 web 应用发明的三种主要的缓存技术: -- **缩短数据与用户的距离**。把一份内容的拷贝放的离用户更近点来减少传输时间。 +- **缩短数据与用户的网络距离**。把一份内容的拷贝放的离用户更近的节点来减少传输时间。 - **提高内容服务器的速度**。内容可以保存在一个更快的服务器上来减少提取文件的时间。 -- **从过载服务器拿走数据**。机器经常因为要完成某些其它的任务而造成某个任务的执行速度比测试结果要差。将数据缓存在不同的机器上可以提高缓存资源和非缓存资源的效率,而这知识因为主机没有被过度使用。 +- **从过载服务器上移走数据**。机器经常因为要完成某些其它的任务而造成某个任务的执行速度比测试结果要差。将数据缓存在不同的机器上可以提高缓存资源和非缓存资源的性能,而这是因为主机没有被过度使用。 -对web 应用的缓存机制可以web 应用服务器内部实现。第一,缓存动态内容是用来减少应用服务器加载动态内容的时间。然后,缓存静态内容(包括动态内容的临时拷贝)是为了更进一步的分担应用服务器的负载。而且缓存之后会从应用服务器转移到对用户而言更快、更近的机器,从而减少应用服务器的压力,减少提取数据和传输数据的时间。 +对 web 应用的缓存机制可以在 web 应用服务器内部实现。首先,缓存动态内容是用来减少应用服务器加载动态内容的时间。其次,缓存静态内容(包括动态内容的临时拷贝)是为了更进一步的分担应用服务器的负载。而且缓存之后会从应用服务器转移到对用户而言更快、更近的机器,从而减少应用服务器的压力,减少提取数据和传输数据的时间。 改进过的缓存方案可以极大的提高应用的速度。对于大多数网页来说,静态数据,比如大图像文件,构成了超过一半的内容。如果没有缓存,那么这可能会花费几秒的时间来提取和传输这类数据,但是采用了缓存之后不到1秒就可以完成。 -举一个在实际中缓存是如何使用的例子, NGINX 和NGINX Plus使用了两条指令来[设置缓存机制][16]:proxy_cache_path 和 proxy_cache。你可以指定缓存的位置和大小,文件在缓存中保存的最长时间和其他一些参数。使用第三条(而且是相当受欢迎的一条)指令,proxy_cache_use_stale,如果服务器提供新鲜内容是忙或者挂掉之类的信息,你甚至可以让缓存提供旧的内容,这样客户端就不会一无所得。从用户的角度来看这可以很好的提高你的网站或者应用的上线时间。 +举一个在实际中缓存是如何使用的例子, NGINX 和 NGINX Plus 使用了两条指令来[设置缓存机制][16]:proxy_cache_path 和 proxy_cache。你可以指定缓存的位置和大小、文件在缓存中保存的最长时间和其它一些参数。使用第三条(而且是相当受欢迎的一条)指令 proxy_cache_use_stale,如果提供新鲜内容的服务器忙碌或者挂掉了,你甚至可以让缓存提供较旧的内容,这样客户端就不会一无所得。从用户的角度来看这可以很好的提高你的网站或者应用的可用时间。 -NGINX plus 拥有[高级缓存特性][17],包括对[缓存清除][18]的支持和在[仪表盘][19]上显示缓存状态信息。 +NGINX plus 有个[高级缓存特性][17],包括对[缓存清除][18]的支持和在[仪表盘][19]上显示缓存状态信息。 -要想获得更多关于NGINX 的缓存机制的信息可以浏览NGINX Plus 管理员指南中的 [reference documentation][20] 和 [NGINX Content Caching][21] 。 +要想获得更多关于 NGINX 的缓存机制的信息可以浏览 NGINX Plus 管理员指南中的 [参考文档][20] 和 [NGINX 内容缓存][21] 。 -**注意**:缓存机制分布于应用开发者、投资决策者以及实际的系统运维人员之间。本文提到的一些复杂的缓存机制从[DevOps 的角度][23]来看很具有价值,即对集应用开发者、架构师以及运维操作人员的功能为一体的工程师来说可以满足他们对站点功能性、响应时间、安全性和商业结果,如完成的交易数。 +**注意**:缓存机制分布于应用开发者、投资决策者以及实际的系统运维人员之间。本文提到的一些复杂的缓存机制从[DevOps 的角度][23]来看很具有价值,即对集应用开发者、架构师以及运维操作人员的功能为一体的工程师来说可以满足它们对站点功能性、响应时间、安全性和商业结果(如完成的交易数)等需要。 ### Tip #4: 压缩数据 ### 压缩是一个具有很大潜力的提高性能的加速方法。现在已经有一些针对照片(JPEG 和PNG)、视频(MPEG-4)和音乐(MP3)等各类文件精心设计和高压缩率的标准。每一个标准都或多或少的减少了文件的大小。 -文本数据 —— 包括HTML(包含了纯文本和HTL 标签),CSS和代码,比如Javascript —— 经常是未经压缩就传输的。压缩这类数据会在对应用程序性能的感觉上,特别是处于慢速或受限的移动网络的客户端,产生不成比例的影响。 +文本数据 —— 包括HTML(包含了纯文本和 HTML 标签),CSS 和代码,比如 Javascript —— 经常是未经压缩就传输的。压缩这类数据会在对应用程序性能的感觉上,特别是处于慢速或受限的移动网络的客户端,产生更大的影响。 -这是因为文本数据经常是用户与网页交互的有效数据,而多媒体数据可能更多的是起提供支持或者装饰的作用。聪明的内容压缩可以减少HTML,Javascript,CSS和其他文本内容对贷款的要求,通常可以减少30% 甚至更多的带宽和相应的页面加载时间。 +这是因为文本数据经常是用户与网页交互的有效数据,而多媒体数据可能更多的是起提供支持或者装饰的作用。智能的内容压缩可以减少 HTML,Javascript,CSS和其它文本内容对带宽的要求,通常可以减少 30% 甚至更多的带宽和相应的页面加载时间。 -如果你是用SSL,压缩可以减少需要进行SSL 编码的的数据量,而这些编码操作会占用一些CPU时间而抵消了压缩数据减少的时间。 +如果你使用 SSL,压缩可以减少需要进行 SSL 编码的的数据量,而这些编码操作会占用一些 CPU 时间而抵消了压缩数据减少的时间。 -压缩文本数据的方法很多,举个例子,在定义小说文本压缩模式的[HTTP/2 部分]就专门为适应头数据。另一个例子是可以在NGINX 里打开使用GZIP 压缩文本。你在你的服务里[预压缩文本数据][25]之后,你就可以直接使用gzip_static 指令来处理压缩过的.gz 版本。 +压缩文本数据的方法很多,举个例子,在定义小说文本压缩模式的 [HTTP/2 部分]就对于头数据来特别适合。另一个例子是可以在 NGINX 里打开使用 GZIP 压缩。你在你的服务里[预先压缩文本数据][25]之后,你就可以直接使用 gzip_static 指令来处理压缩过的 .gz 版本。 ### Tip #5: 优化 SSL/TLS ### -安全套接字([SSL][26]) 协议和它的继承者,传输层安全(TLS)协议正在被越来越多的网站采用。SSL/TLS 对从原始服务器发往用户的数据进行加密提高了网站的安全性。影响这个趋势的部分原因是Google 正在使用SSL/TLS,这在搜索引擎排名上是一个正面的影响因素。 +安全套接字([SSL][26]) 协议和它的下一代版本传输层安全(TLS)协议正在被越来越多的网站采用。SSL/TLS 对从原始服务器发往用户的数据进行加密提高了网站的安全性。影响这个趋势的部分原因是 Google 正在使用 SSL/TLS,这在搜索引擎排名上是一个正面的影响因素。 -尽管SSL/TLS 越来越流行,但是使用加密对速度的影响也让很多网站望而却步。SSL/TLS 之所以让网站变的更慢,原因有二: +尽管 SSL/TLS 越来越流行,但是使用加密对速度的影响也让很多网站望而却步。SSL/TLS 之所以让网站变的更慢,原因有二: -1. 任何一个连接第一次连接时的握手过程都需要传递密钥。而采用HTTP/1.x 协议的浏览器在建立多个连接时会对每个连接重复上述操作。 -2. 数据在传输过程中需要不断的在服务器加密、在客户端解密。 +1. 任何一个连接第一次连接时的握手过程都需要传递密钥。而采用 HTTP/1.x 协议的浏览器在建立多个连接时会对每个连接重复上述操作。 +2. 数据在传输过程中需要不断的在服务器端加密、在客户端解密。 -要鼓励使用SSL/TLS,HTTP/2 和SPDY(在[下一章][27]会描述)的作者设计新的协议来让浏览器只需要对一个浏览器会话使用一个连接。这会大大的减少上述两个原因中的一个浪费的时间。然而现在可以用来提高应用程序使用SSL/TLS 传输数据的性能的方法不止这些。 +为了鼓励使用 SSL/TLS,HTTP/2 和 SPDY(在[下一章][27]会描述)的作者设计了新的协议来让浏览器只需要对一个浏览器会话使用一个连接。这会大大的减少上述第一个原因所浪费的时间。然而现在可以用来提高应用程序使用 SSL/TLS 传输数据的性能的方法不止这些。 -web 服务器有对应的机制优化SSL/TLS 传输。举个例子,NGINX 使用[OpenSSL][28]运行在普通的硬件上提供接近专用硬件的传输性能。NGINX [SSL 性能][29] 有详细的文档,而且把对SSL/TLS 数据进行加解密的时间和CPU 占用率降低了很多。 +web 服务器有对应的机制优化 SSL/TLS 传输。举个例子,NGINX 使用 [OpenSSL][28] 运行在普通的硬件上提供了接近专用硬件的传输性能。NGINX 的 [SSL 性能][29] 有详细的文档,而且把对 SSL/TLS 数据进行加解密的时间和 CPU 占用率降低了很多。 -更进一步,在这篇[blog][30]有详细的说明如何提高SSL/TLS 性能,可以总结为一下几点: +更进一步,参考这篇[文章][30]了解如何提高 SSL/TLS 性能的更多细节,可以总结为一下几点: -- **会话缓冲**。使用指令[ssl_session_cache][31]可以缓存每个新的SSL/TLS 连接使用的参数。 -- **会话票据或者ID**。把SSL/TLS 的信息保存在一个票据或者ID 里可以流畅的复用而不需要重新握手。 -- **OCSP 分割**。通过缓存SSL/TLS 证书信息来减少握手时间。 +- **会话缓冲**。使用指令 [ssl_session_cache][31] 可以缓存每个新的 SSL/TLS 连接使用的参数。 +- **会话票据或者 ID**。把 SSL/TLS 的信息保存在一个票据或者 ID 里可以流畅的复用而不需要重新握手。 +- **OCSP 分割**。通过缓存 SSL/TLS 证书信息来减少握手时间。 -NGINX 和NGINX Plus 可以被用作SSL/TLS 终结——处理客户端流量的加密和解密,而同时和其他服务器进行明文通信。使用[这几步][32] 来设置NGINX 和NGINX Plus 处理SSL/TLS 终止。同时,这里还有一些NGINX Plus 和接收TCP 连接的服务器一起使用时的[特有的步骤][33] +NGINX 和 NGINX Plus 可以被用作 SSL/TLS 服务端,用于处理客户端流量的加密和解密,而同时以明文方式和其它服务器进行通信。要设置 NGINX 和 NGINX Plus 作为 SSL/TLS 服务端,参看 [HTTPS 连接][32] 和[加密的 TCP 连接][33] ### Tip #6: 使用 HTTP/2 或 SPDY ### -对于已经使用了SSL/TLS 的站点,HTTP/2 和SPDY 可以很好的提高性能,因为每个连接只需要一次握手。而对于没有使用SSL/TLS 的站点来说,HTTP/2 和SPDY会在响应速度上有些影响(通常会将度效率)。 +对于已经使用了 SSL/TLS 的站点,HTTP/2 和 SPDY 可以很好的提高性能,因为每个连接只需要一次握手。而对于没有使用 SSL/TLS 的站点来说,从响应速度的角度来说 HTTP/2 和 SPDY 将让迁移到 SSL/TLS 没有什么压力(原本会降低效率)。 -Google 在2012年开始把SPDY 作为一个比HTTP/1.x 更快速的协议来推荐。HTTP/2 是目前IETF 标准,他也基于SPDY。SPDY 已经被广泛的支持了,但是很快就会被HTTP/2 替代。 +Google 在2012年开始把 SPDY 作为一个比 HTTP/1.x 更快速的协议来推荐。HTTP/2 是目前 IETF 通过的标准,是基于 SPDY 的。SPDY 已经被广泛的支持了,但是很快就会被 HTTP/2 替代。 -SPDY 和HTTP/2 的关键是用单连接来替代多路连接。单个连接是被复用的,所以它可以同时携带多个请求和响应的分片。 +SPDY 和 HTTP/2 的关键是用单一连接来替代多路连接。单个连接是被复用的,所以它可以同时携带多个请求和响应的分片。 -通过使用一个连接这些协议可以避免过多的设置和管理多个连接,就像浏览器实现了HTTP/1.x 一样。单连接在对SSL 特别有效,这是因为它可以最小化SSL/TLS 建立安全链接时的握手时间。 +通过使用单一连接,这些协议可以避免像在实现了 HTTP/1.x 的浏览器中一样建立和管理多个连接。单一连接在对 SSL 特别有效,这是因为它可以最小化 SSL/TLS 建立安全链接时的握手时间。 -SPDY 协议需要使用SSL/TLS, 而HTTP/2 官方并不需要,但是目前所有支持HTTP/2的浏览器只有在使能了SSL/TLS 的情况下才会使用它。这就意味着支持HTTP/2 的浏览器只有在网站使用了SSL 并且服务器接收HTTP/2 流量的情况下才会启用HTTP/2。否则的话浏览器就会使用HTTP/1.x 协议。 +SPDY 协议需要使用 SSL/TLS,而 HTTP/2 官方标准并不需要,但是目前所有支持 HTTP/2 的浏览器只有在启用了 SSL/TLS 的情况下才能使用它。这就意味着支持 HTTP/2 的浏览器只有在网站使用了 SSL 并且服务器接收 HTTP/2 流量的情况下才会启用 HTTP/2。否则的话浏览器就会使用 HTTP/1.x 协议。 -当你实现SPDY 或者HTTP/2时,你不再需要通常的HTTP 性能优化方案,比如域分隔资源聚合,以及图像登记。这些改变可以让你的代码和部署变得更简单和更易于管理。要了解HTTP/2 带来的这些变化可以浏览我们的[白皮书][34]。 +当你实现 SPDY 或者 HTTP/2 时,你不再需要那些常规的 HTTP 性能优化方案,比如按域分割、资源聚合,以及图像拼合。这些改变可以让你的代码和部署变得更简单和更易于管理。要了解 HTTP/2 带来的这些变化可以浏览我们的[白皮书][34]。 ![NGINX Supports SPDY and HTTP/2 for increased web application performance](https://www.nginx.com/wp-content/uploads/2015/10/http2-27.png) -作为支持这些协议的一个样例,NGINX 已经从一开始就支持了SPDY,而且[大部分使用SPDY 协议的网站][35]都运行的是NGINX。NGINX 同时也[很早][36]对HTTP/2 的提供了支持,从2015 年9月开始开源NGINX 和NGINX Plus 就[支持][37]它了。 +作为支持这些协议的一个样例,NGINX 已经从一开始就支持了 SPDY,而且[大部分使用 SPDY 协议的网站][35]都运行的是 NGINX。NGINX 同时也[很早][36]对 HTTP/2 的提供了支持,从2015 年9月开始,开源版 NGINX 和 NGINX Plus 就[支持][37]它了。 -经过一段时间,我们NGINX 希望更多的站点完全是能SSL 并且向HTTP/2 迁移。这将会提高安全性,同时新的优化手段也会被发现和实现,更简单的代码表现的更加优异。 +经过一段时间,我们 NGINX 希望更多的站点完全启用 SSL 并且向 HTTP/2 迁移。这将会提高安全性,同时也会找到并实现新的优化手段,简化的代码表现的会更加优异。 ### Tip #7: 升级软件版本 ### -一个提高应用性能的简单办法是根据软件的稳定性和性能的评价来选在你的软件栈。进一步说,因为高性能组件的开发者更愿意追求更高的性能和解决bug ,所以值得使用最新版本的软件。新版本往往更受开发者和用户社区的关注。更新的版本往往会利用到新的编译器优化,包括对新硬件的调优。 +一个提高应用性能的简单办法是根据软件的稳定性和性能的评价来选在你的软件栈。进一步说,因为高性能组件的开发者更愿意追求更高的性能和解决 bug ,所以值得使用最新版本的软件。新版本往往更受开发者和用户社区的关注。更新的版本往往会利用到新的编译器优化,包括对新硬件的调优。 -稳定的新版本通常比旧版本具有更好的兼容性和更高的性能。一直进行软件更新,可以非常简单的保持软件保持最佳的优化,解决掉bug,以及安全性的提高。 +稳定的新版本通常比旧版本具有更好的兼容性和更高的性能。一直进行软件更新,可以非常简单的保持软件保持最佳的优化,解决掉 bug,以及提高安全性。 -一直使用旧版软件也会组织你利用新的特性。比如上面说到的HTTP/2,目前要求OpenSSL 1.0.1.在2016 年中期开始将会要求1.0.2 ,而这是在2015年1月才发布的。 +一直使用旧版软件也会阻止你利用新的特性。比如上面说到的 HTTP/2,目前要求 OpenSSL 1.0.1。在2016 年中期开始将会要求1.0.2 ,而它是在2015年1月才发布的。 -NGINX 用户可以开始迁移到[NGINX 最新的开源软件][38] 或者[NGINX Plus][39];他们都包含了罪行的能力,如socket分区和线程池(见下文),这些都已经为性能优化过了。然后好好看看的你软件栈,把他们升级到你能能升级道德最新版本吧。 +NGINX 用户可以开始迁移到 [NGINX 最新的开源软件][38] 或者 [NGINX Plus][39];它们都包含了最新的能力,如 socket 分割和线程池(见下文),这些都已经为性能优化过了。然后好好看看的你软件栈,把它们升级到你能升级到的最新版本吧。 -### Tip #8: linux 系统性能调优 ### +### Tip #8: Linux 系统性能调优 ### -linux 是大多数web 服务器使用操作系统,而且作为你的架构的基础,Linux 表现出明显可以提高性能的机会。默认情况下,很多linux 系统都被设置为使用很少的资源,匹配典型的桌面应用负载。这就意味着web 应用需要最少一些等级的调优才能达到最大效能。 +Linux 是大多数 web 服务器使用的操作系统,而且作为你的架构的基础,Linux 显然有不少提高性能的可能。默认情况下,很多 Linux 系统都被设置为使用很少的资源,以符合典型的桌面应用使用。这就意味着 web 应用需要一些微调才能达到最大效能。 -Linux 优化是转变们针对web 服务器方面的。以NGINX 为例,这里有一些在加速linux 时需要强调的变化: +这里的 Linux 优化是专门针对 web 服务器方面的。以 NGINX 为例,这里有一些在加速 Linux 时需要强调的变化: -- **缓冲队列**。如果你有挂起的连接,那么你应该考虑增加net.core.somaxconn 的值,它代表了可以缓存的连接的最大数量。如果连接线直太小,那么你将会看到错误信息,而你可以逐渐的增加这个参数知道错误信息停止出现。 -- **文件描述符**。NGINX 对一个连接使用最多2个文件描述符。如果你的系统有很多连接,你可能就需要提高sys.fs.file_max ,增加系统对文件描述符数量整体的限制,这样子才能支持不断增加的负载需求。 -- **临时端口**。当使用代理时,NGINX 会为每个上游服务器创建临时端口。你可以设置net.ipv4.ip_local_port_range 来提高这些端口的范围,增加可用的端口。你也可以减少非活动的端口的超时判断来重复使用端口,这可以通过net.ipv4.tcp_fin_timeout 来设置,这可以快速的提高流量。 +- **缓冲队列**。如果你有挂起的连接,那么你应该考虑增加 net.core.somaxconn 的值,它代表了可以缓存的连接的最大数量。如果连接限制太小,那么你将会看到错误信息,而你可以逐渐的增加这个参数直到错误信息停止出现。 +- **文件描述符**。NGINX 对一个连接使用最多2个文件描述符。如果你的系统有很多连接请求,你可能就需要提高sys.fs.file_max ,以增加系统对文件描述符数量整体的限制,这样才能支持不断增加的负载需求。 +- **临时端口**。当使用代理时,NGINX 会为每个上游服务器创建临时端口。你可以设置net.ipv4.ip_local_port_range 来提高这些端口的范围,增加可用的端口号。你也可以减少非活动的端口的超时判断来重复使用端口,这可以通过 net.ipv4.tcp_fin_timeout 来设置,这可以快速的提高流量。 -对于NGINX 来说,可以查阅[NGINX 性能调优指南][40]来学习如果优化你的Linux 系统,这样子它就可以很好的适应大规模网络流量而不会超过工作极限。 +对于 NGINX 来说,可以查阅 [NGINX 性能调优指南][40]来学习如果优化你的 Linux 系统,这样它就可以很好的适应大规模网络流量而不会超过工作极限。 ### Tip #9: web 服务器性能调优 ### -无论你是用哪种web 服务器,你都需要对它进行优化来提高性能。下面的推荐手段可以用于任何web 服务器,但是一些设置是针对NGINX的。关键的优化手段包括: +无论你是用哪种 web 服务器,你都需要对它进行优化来提高性能。下面的推荐手段可以用于任何 web 服务器,但是一些设置是针对 NGINX 的。关键的优化手段包括: -- **f访问日志**。不要把每个请求的日志都直接写回磁盘,你可以在内存将日志缓存起来然后一批写回磁盘。对于NGINX 来说添加给指令*access_log* 添加参数 *buffer=size* 可以让系统在缓存满了的情况下才把日志写到此哦按。如果你添加了参数**flush=time** ,那么缓存内容会每隔一段时间再写回磁盘。 -- **缓存**。缓存掌握了内存中的部分资源知道满了位置,这可以让与客户端的通信更加高效。与内存中缓存不匹配的响应会写回磁盘,而这就会降低效能。当NGINX [启用][42]了缓存机制后,你可以使用指令*proxy_buffer_size* 和 *proxy_buffers* 来管理缓存。 -- **客户端保活**。保活连接可以减少开销,特别是使用SSL/TLS时。对于NGINX 来说,你可以增加*keepalive_requests* 的值,从默认值100 开始修改,这样一个客户端就可以转交一个指定的连接,而且你也可以通过增加*keepalive_timeout* 的值来允许保活连接存活更长时间,结果就是让后来的请求处理的更快速。 -- **上游保活**。上游的连接——即连接到应用服务器、数据库服务器等机器的连接——同样也会收益于连接保活。对于上游连接老说,你可以增加*保活时间*,即每个工人进程的空闲保活连接个数。这就可以提高连接的复用次数,减少需要重新打开全新的连接次数。更多关于保活连接的信息可以参见[blog][41]. -- **限制**。限制客户端使用的资源可以提高性能和安全性。对于NGINX 来说指令*limit_conn* 和 *limit_conn_zone* 限制了每个源的连接数量,而*limit_rate* 限制了带宽。这些限制都可以阻止合法用户*攫取* 资源,同时夜避免了攻击。指令*limit_req* 和 *limit_req_zone* 限制了客户端请求。对于上游服务器来说,可以在上游服务器的配置块里使用max_conns 可以限制连接到上游服务器的连接。 这样可以避免服务器过载。关联的队列指令会创建一个队列来在连接数抵达*max_conn* 限制时在指定的长度的时间内保存特定数量的请求。 -- **工人进程**。工人进程负责处理请求。NGINX 采用事件驱动模型和依赖操作系统的机制来有效的讲请求分发给不同的工人进程。这条建议推荐设置每个CPU 的参数*worker_processes* 。如果需要的话,工人连接的最大数(默认512)可以安全在大部分系统增加,是指找到最适合你的系统的值。 -- **套接字分割**。通常一个套接字监听器会把新连接分配给所有工人进程。套接字分割会未每个工人进程创建一个套接字监听器,这样一来以内核分配连接给套接字就成为可能了。折可以减少锁竞争,并且提高多核系统的性能,要使能[套接字分隔][43]需要在监听指令里面加上复用端口参数。 -- **线程池**。一个计算机进程可以处理一个缓慢的操作。对于web 服务器软件来说磁盘访问会影响很多更快的操作,比如计算或者在内存中拷贝。使用了线程池之后慢操作可以分配到不同的任务集,而主进程可以一直运行快速操作。当磁盘操作完成后结果会返回给主进程的循环。在NGINX理有两个操作——read()系统调用和sendfile() ——被分配到了[线程池][44] +- **访问日志**。不要把每个请求的日志都直接写回磁盘,你可以在内存将日志缓存起来然后批量写回磁盘。对于NGINX 来说,给指令 **access_log** 添加参数 **buffer=size** 可以让系统在缓存满了的情况下才把日志写到磁盘。如果你添加了参数 **flush=time** ,那么缓存内容会每隔一段时间再写回磁盘。 +- **缓存**。缓存会在内存中存放部分响应,直到满了为止,这可以让与客户端的通信更加高效。内存放不下的响应会写回磁盘,而这就会降低效能。当 NGINX [启用][42]了缓存机制后,你可以使用指令 **proxy_buffer_size** 和 **proxy_buffers** 来管理缓存。 +- **客户端保活**。保活连接可以减少开销,特别是使用 SSL/TLS 时。对于 NGINX 来说,你可以从 **keepalive_requests** 的默认值 100 开始增加最大连接数,这样一个客户端就可以在一个指定的连接上请求多次,而且你也可以通过增加 **keepalive_timeout** 的值来允许保活连接存活更长时间,这样就可以让后来的请求处理的更快速。 +- **上游保活**。上游的连接——即连接到应用服务器、数据库服务器等机器的连接——同样也会受益于连接保活。对于上游连接来说,你可以增加 **keepalive**,即每个工人进程的空闲保活连接个数。这就可以提高连接的复用次数,减少需要重新打开全新连接的次数。更多关于保活连接的信息可以参见[这篇“ HTTP 保活连接和性能”][41]。 +- **限制**。限制客户端使用的资源可以提高性能和安全性。对于 NGINX 来说,指令 **limit_conn** 和 **limit_conn_zone** 限制了给定来源的连接数量,而 **limit_rate** 限制了带宽。这些限制都可以阻止合法用户*扒取*资源,同时也避免了攻击。指令 **limit_req** 和 **limit_req_zone** 限制了客户端请求。对于上游服务器来说,可以在 upstream 的配置块里的 server 指令使用 max_conns 参数来限制连接到上游服务器的连接数。 这样可以避免服务器过载。关联的 queue 指令会创建一个队列来在连接数抵达 **max_conn** 限制时在指定长度的时间内保存特定数量的请求。 +- **工人进程**。工人进程负责处理请求。NGINX 采用事件驱动模型和操作系统特定的机制来有效的将请求分发给不同的工人进程。这条建议推荐设置 **worker_processes** 为每个 CPU 一个 。worker_connections 的最大数(默认512)可以在大部分系统上根据需要增加,实验性地找到最适合你的系统的值。 +- **套接字分割**。通常一个套接字监听器会把新连接分配给所有工人进程。套接字分割会为每个工人进程创建一个套接字监听器,这样一来以当套接字监听器可用时,内核就会将连接分配给它。这可以减少锁竞争,并且提高多核系统的性能,要启用[套接字分隔][43]需要在 **listen** 指令里面加上 **reuseport** 参数。 +- **线程池**。计算机进程可能被一个单一的缓慢的操作所占用。对于 web 服务器软件来说,磁盘访问会影响很多更快的操作,比如计算或者在内存中拷贝。使用了线程池之后慢操作可以分配到不同的任务集,而主进程可以一直运行快速操作。当磁盘操作完成后结果会返回给主进程的循环。在 NGINX 里有两个操作——read() 系统调用和 sendfile() ——被分配到了[线程池][44] ![Thread pools help increase application performance by assigning a slow operation to a separate set of tasks](https://www.nginx.com/wp-content/uploads/2015/10/Graph-17.png) -**技巧**。当改变任务操作系统或支持服务的设置时,一次只改变一个参数然后测试性能。如果修改引起问题了,或者不能让你的系统更快那么就改回去。 +**技巧**。当改变任何操作系统或支持服务的设置时,一次只改变一个参数然后测试性能。如果修改引起问题了,或者不能让你的系统更快,那么就改回去。 -在[blog][45]可以看到更详细的NGINX 调优方法。 +在[文章“调优 NGINX 性能”][45]里可以看到更详细的 NGINX 调优方法。 ### Tip #10: 监视系统活动来解决问题和瓶颈 ### -在应用开发中要使得系统变得非常高效的关键是监视你的系统在现实世界运行的性能。你必须能通过特定的设备和你的web 基础设施上监控程序活动。 +在应用开发中要使得系统变得非常高效的关键是监视你的系统在现实世界运行的性能。你必须能通过特定的设备和你的 web 基础设施上监控程序活动。 -监视活动是最积极的——他会告诉你发生了什么,把问题留给你发现和最终解决掉。 +监视活动是最积极的——它会告诉你发生了什么,把问题留给你发现和最终解决掉。 -监视可以发现集中不同的问题。它们包括: +监视可以发现几种不同的问题。它们包括: - 服务器宕机。 - 服务器出问题一直在丢失连接。 - 服务器出现大量的缓存未命中。 - 服务器没有发送正确的内容。 -应用的总体性能监控工具,比如New Relic 和Dynatrace,可以帮助你监控到从远处加载网页的时间,二NGINX 可以帮助你监控到应用发送的时 间。当你需要考虑为基础设施添加容量以满足流量需求时,应用性能数据可以告诉你你的优化措施的确起作用了。 +应用的总体性能监控工具,比如 New Relic 和 Dynatrace,可以帮助你监控到从远程加载网页的时间,而 NGINX 可以帮助你监控到应用交付端。当你需要考虑为基础设施添加容量以满足流量需求时,应用性能数据可以告诉你你的优化措施的确起作用了。 -为了帮助开发者快速的发现、解决问题,NGINX Plus 增加了[应用感知健康度检查][46] ——对重复出现的常规事件进行综合分析并在问题出现时向你发出警告。NGINX Plus 同时提供[会话过滤][47] 功能,折可以组织当前任务未完成之前不接受新的连接,另一个功能是慢启动,允许一个从错误恢复过来的服务器追赶上负载均衡服务器群的速度。当有使用得当时,健康度检查可以让你在问题变得严重到影响用户体验前就发现它,而会话过滤和慢启动可以让你替换服务器,并且这个过程不会对性能和正常运行时间产生负面影响。这个表格就展示了NGINX Plus 内建模块在web 基础设施[监视活活动][48]的仪表盘,包括了服务器群,TCP 连接和缓存等信息。 +为了帮助开发者快速的发现、解决问题,NGINX Plus 增加了[应用感知健康度检查][46] ——对重复出现的常规事件进行综合分析并在问题出现时向你发出警告。NGINX Plus 同时提供[会话过滤][47] 功能,这可以阻止当前任务完成之前接受新的连接,另一个功能是慢启动,允许一个从错误恢复过来的服务器追赶上负载均衡服务器群的进度。当使用得当时,健康度检查可以让你在问题变得严重到影响用户体验前就发现它,而会话过滤和慢启动可以让你替换服务器,并且这个过程不会对性能和正常运行时间产生负面影响。下图就展示了内建的 NGINX Plus 模块[实时活动监视][48]的仪表盘,包括了服务器群,TCP 连接和缓存信息等 Web 架构信息。 ![Use real-time application performance monitoring tools to identify and resolve issues quickly](https://www.nginx.com/wp-content/uploads/2015/10/Screen-Shot-2015-10-05-at-4.16.32-PM.png) ### 总结: 看看10倍性能提升的效果 ### -这些性能提升方案对任何一个web 应用都可用并且效果都很好,而实际效果取决于你的预算,如你能花费的时间,目前实现方案的差距。所以你该如何对你自己的应用实现10倍性能提升? +这些性能提升方案对任何一个 web 应用都可用并且效果都很好,而实际效果取决于你的预算、你能花费的时间、目前实现方案的差距。所以你该如何对你自己的应用实现10倍性能提升? -为了指导你了解每种优化手段的潜在影响,这里是是上面详述的每个优化方法的关键点,虽然你的里程肯定大不相同: +为了指导你了解每种优化手段的潜在影响,这里是上面详述的每个优化方法的关键点,虽然你的情况肯定大不相同: -- **反向代理服务器和负载均衡**。没有负载均衡或者负载均衡很差都会造成间断的极低性能。增加一个反向代理,比如NGINX可以避免web应用程序在内存和磁盘之间抖动。负载均衡可以将过载服务器的任务转移到空闲的服务器,还可以轻松的进行扩容。这些改变都可以产生巨大的性能提升,很容易就可以比你现在的实现方案的最差性能提高10倍,对于总体性能来说可能提高的不多,但是也是有实质性的提升。 -- **缓存动态和静态数据**。如果你又一个web 服务器负担过重,那么毫无疑问肯定是你的应用服务器,只通过缓存动态数据就可以在峰值时间提高10倍的性能。缓存静态文件可以提高个位数倍的性能。 -- **压缩数据**。使用媒体文件压缩格式,比如图像格式JPEG,图形格式PNG,视频格式MPEG-4,音乐文件格式MP3可以极大的提高性能。一旦这些都用上了,然后压缩文件数据可以提高初始页面加载速度提高两倍。 -- **优化SSL/TLS**。安全握手会对性能产生巨大的影响,对他们的优化可能会对初始响应特别是重文本站点产生2倍的提升。优化SSL/TLS 下媒体文件只会产生很小的性能提升。 -- **使用HTTP/2 和SPDY*。当你使用了SSL/TLS,这些协议就可以提高整个站点的性能。 -- **对linux 和web 服务器软件进行调优**。比如优化缓存机制,使用保活连接,分配时间敏感型任务到不同的线程池可以明显的提高性能;举个例子,线程池可以加速对磁盘敏感的任务[近一个数量级][49]. +- **反向代理服务器和负载均衡**。没有负载均衡或者负载均衡很差都会造成间歇的性能低谷。增加一个反向代理,比如 NGINX ,可以避免 web 应用程序在内存和磁盘之间波动。负载均衡可以将过载服务器的任务转移到空闲的服务器,还可以轻松的进行扩容。这些改变都可以产生巨大的性能提升,很容易就可以比你现在的实现方案的最差性能提高10倍,对于总体性能来说可能提高的不多,但是也是有实质性的提升。 +- **缓存动态和静态数据**。如果你有一个负担过重的 web 服务器,那么毫无疑问肯定是你的应用服务器,只通过缓存动态数据就可以在峰值时间提高10倍的性能。缓存静态文件可以提高几倍的性能。 +- **压缩数据**。使用媒体文件压缩格式,比如图像格式 JPEG,图形格式 PNG,视频格式 MPEG-4,音乐文件格式 MP3 可以极大的提高性能。一旦这些都用上了,然后压缩文件数据可以将初始页面加载速度提高两倍。 +- **优化 SSL/TLS**。安全握手会对性能产生巨大的影响,对它们的优化可能会对初始响应产生2倍的提升,特别是对于大量文本的站点。优化 SSL/TLS 下媒体文件只会产生很小的性能提升。 +- **使用 HTTP/2 和 SPDY*。当你使用了 SSL/TLS,这些协议就可以提高整个站点的性能。 +- **对 Linux 和 web 服务器软件进行调优**。比如优化缓存机制,使用保活连接,分配时间敏感型任务到不同的线程池可以明显的提高性能;举个例子,线程池可以加速对磁盘敏感的任务[近一个数量级][49]。 + +我们希望你亲自尝试这些技术。我们希望知道你说取得的各种性能提升案例。请在下面评论栏分享你的结果或者在标签 #NGINX 和 #webperf 下 tweet 你的故事。 -我们希望你亲自尝试这些技术。我们希望这些提高应用性能的手段可以被你实现。请在下面评论栏分享你的结果 或者在标签#NGINX 和#webperf 下tweet 你的故事。 ### 网上资源 ### [Statista.com – Share of the internet economy in the gross domestic product in G-20 countries in 2016][50] @@ -215,11 +214,11 @@ Linux 优化是转变们针对web 服务器方面的。以NGINX 为例,这里 -------------------------------------------------------------------------------- -via: https://www.nginx.com/blog/10-tips-for-10x-application-performance/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io +via: https://www.nginx.com/blog/10-tips-for-10x-application-performance/ 作者:[Floyd Smith][a] -译者:[Ezio]](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +译者:[Ezio](https://github.com/oska874) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -233,11 +232,9 @@ via: https://www.nginx.com/blog/10-tips-for-10x-application-performance/?hmsr=to [7]:https://www.nginx.com/resources/admin-guide/load-balancer/ [8]:https://www.nginx.com/blog/load-balancing-with-nginx-plus/ [9]:https://www.digitalocean.com/community/tutorials/understanding-and-implementing-fastcgi-proxying-in-nginx -[10]:https://www.nginx.com/blog/five-reasons-use-software-load-balancer/ +[10]:https://www.nginx.com/resources/library/five-reasons-choose-software-load-balancer/ [11]:https://www.nginx.com/blog/load-balancing-with-nginx-plus/ -[12]:https://www.nginx.com/resources/ebook/five-reasons-choose-software-load-balancer/ -[13]:https://www.nginx.com/resources/webinars/choose-software-based-load-balancer-45-min/ -[14]:https://www.nginx.com/resources/admin-guide/load-balancer/ +[12]:https://www.nginx.com/resources/admin-guide/load-balancer// [15]:https://www.nginx.com/products/ [16]:https://www.nginx.com/blog/nginx-caching-guide/ [17]:https://www.nginx.com/products/content-caching-nginx-plus/ From f865c5da17df1f0c8fc47835e36d49b280b6dedf Mon Sep 17 00:00:00 2001 From: VicYu Date: Tue, 12 Apr 2016 10:23:31 +0800 Subject: [PATCH 349/582] Translated 20160226 How to use Python to hack your Eclipse IDE.md --- ... to use Python to hack your Eclipse IDE.md | 217 ------------------ ... to use Python to hack your Eclipse IDE.md | 215 +++++++++++++++++ 2 files changed, 215 insertions(+), 217 deletions(-) delete mode 100644 sources/tech/20160226 How to use Python to hack your Eclipse IDE.md create mode 100644 translated/tech/20160226 How to use Python to hack your Eclipse IDE.md diff --git a/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md b/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md deleted file mode 100644 index 9f1b1ed359..0000000000 --- a/sources/tech/20160226 How to use Python to hack your Eclipse IDE.md +++ /dev/null @@ -1,217 +0,0 @@ - Vic020 - -How to use Python to hack your Eclipse IDE -============================================== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/lightbulb_computer_person_general_.png?itok=ZY3UuQQa) - -The Eclipse Advanced Scripting Environment ([EASE][1]) project is a new but powerful set of plugins that enables you to quickly hack your Eclipse IDE. - -Eclipse is a powerful framework that can be extended in many different ways by using its built-in plugin mechanism. However, writing and deploying a new plugin can be cumbersome if all you want is a bit of additional functionality. Now, using EASE, there's a better way to do that, without having to write a single line of Java code. EASE provides a way to easily automate workbench functionality using scripting languages such as Python or Javascript. - -In this article, based on my [talk][2] at EclipseCon North America this year, I'll cover the basics of how to set up your Eclipse environment with Python and EASE and look at a few ideas to supercharge your IDE with the power of Python. - -### Setup and run "Hello World" - -The examples in this article are based on the Java-implementation of Python, Jython. You can install EASE directly into your existing Eclipse IDE. In this example we use Eclipse [Mars][3] and install EASE itself, its modules and the Jython engine. - -From within the Eclipse Install Dialog (`Help>Install New Software`...), install EASE: [http://download.eclipse.org/ease/update/nightly][4] - -And, select the following components: - -- EASE Core feature - -- EASE core UI feature - -- EASE Python Developer Resources - -- EASE modules (Incubation) - -This will give you EASE and its modules. The main one we are interested in is the Resource module that gives you access to the Eclipse workspace, projects, and files API. - -![](https://opensource.com/sites/default/files/1_installease_nightly.png) - - -After those have been successfully installed, next install the EASE Jython engine: [https://dl.bintray.com/pontesegger/ease-jython/][5]. Once the plugins are installed, test EASE out. Create a new project and add in a new file called hello.py with this content: - -``` -print "hello world" -``` - -Select the file, right click, and select 'Run as -> EASE script'. You should see "Hello World" appear in the console. - -Now you can start writing Python scripts that can access the workspace and projects. This power can be used for all sorts of hacks, below are just a few ideas. - -### Improve your code quality - -Maintaining good code quality can be a tiresome job especially when dealing with a large codebase or when lots of developers are involved. Some of this pain can be made easier with a script, such as for batch formatting for a set of files, or even fixing certain files to [remove unix line endings][6] for easy comparison in source control like git. Another nice thing to do is use a script to generate Eclipse markers to highlight code that could do with improving. Here's an example script that you could use to add task markers for all "printStackTrace" methods it detects in Java files. See the source code: [markers.py][7] - -To run, copy the file to your workspace, then right click and select 'Run as -> EASE script'. - -``` -loadModule('/System/Resources') -``` - -from org.eclipse.core.resources import IMarker - -``` -for ifile in findFiles("*.java"): - file_name = str(ifile.getLocation()) - print "Processing " + file_name - with open(file_name) as f: - for line_no, line in enumerate(f, start=1): - if "printStackTrace" in line: - marker = ifile.createMarker(IMarker.TASK) - marker.setAttribute(IMarker.TRANSIENT, True) - marker.setAttribute(IMarker.LINE_NUMBER, line_no) - marker.setAttribute(IMarker.MESSAGE, "Fix in Sprint 2: " + line.strip()) - -``` - -If you have any java files with printStackTraces you will be able to see the newly created markers in the Tasks view and in the editor margin. - -![](https://opensource.com/sites/default/files/2_codequality.png) - -### Automate tedious tasks - -When you are working with several projects you may want to automate some tedious, repetitive tasks. Perhaps you need to add in a copyright header to the beginning of each source file, or update source files when adopting a new framework. For instance, when we first switched to using Tycho and Maven, we had to add a pom.xml to each project. This is easily done using a few lines of Python. Then when Tycho provided support for pom-less builds, we wanted to remove unnecessary pom files. Again, a few lines of Python script enabled this. As an example, here is a script which adds a README.md file to every open project in your workspace, noting if they are Java or Python projects. See the source code: [add_readme.py][8]. - -To run, copy the file to your workspace, then right click and select 'Run as -> EASE script'. - -loadModule('/System/Resources') - -``` -for iproject in getWorkspace().getProjects(): - if not iproject.isOpen(): - continue - - ifile = iproject.getFile("README.md") - - if not ifile.exists(): - contents = "# " + iproject.getName() + "\n\n" - if iproject.hasNature("org.eclipse.jdt.core.javanature"): - contents += "A Java Project\n" - elif iproject.hasNature("org.python.pydev.pythonNature"): - contents += "A Python Project\n" - writeFile(ifile, contents) -``` - -The result should be that every open project will have a README.md file, with Java and Python projects having an additional descriptive line. - -![](https://opensource.com/sites/default/files/3_tedioustask.png) - -### Prototype new features - -You can also use a Python script to hack a quick-fix for some much wanted functionality, or as a prototype to help demonstrate to your team or users how you envision a feature. For instance, one feature Eclipse IDE doesn't currently support is auto-save on the current file you are working on. Although this feature is in the works for future releases, you can have a quick and dirty version that autosaves every 30 seconds or when the editor is deactivated. Below is a snippet of the main method. See the full source: [autosave.py][9] - -``` -def save_dirty_editors(): - workbench = getService(org.eclipse.ui.IWorkbench) - for window in workbench.getWorkbenchWindows(): - for page in window.getPages(): - for editor_ref in page.getEditorReferences(): - part = editor_ref.getPart(False) - if part and part.isDirty(): - print "Auto-Saving", part.getTitle() - part.doSave(None) -``` - -Before running this script you will need to turn on the 'Allow Scripts to run code in UI thread' setting by checking the box under Window > Preferences > Scripting. Then you can add the file to your workspace, right click on it and select 'Run As>EASE Script'. A save message is printed out in the Console view every time an editor is saved. To turn off the autosave just stop the script by pressing the 'Terminate' red square button in the Console view. - -![](https://opensource.com/sites/default/files/4_prototype.png) - -### Quickly extend the user interface with custom buttons, menus, etc - -One of the best things about EASE is that it allows you to take your scripts and quickly hook them into UI elements of the IDE, for example, as a new button or new menu item. No need to write Java or have a new plugin, just add a couple of lines to your script header—it's that simple. - -Here's an example for a simplistic script that creates us three new projects. - -``` -# name : Create fruit projects -# toolbar : Project Explorer -# description : Create fruit projects - -loadModule("/System/Resources") - -for name in ["banana", "pineapple", "mango"]: - createProject(name) -``` - -The comment lines specify to EASE to add a button to the Project Explorer toolbar. Here's another script that adds a button to the same toolbar to delete those three projects. See the source files: [createProjects.py][10] and [deleteProjects.py][11] - -``` -# name :Delete fruit projects -# toolbar : Project Explorer -# description : Get rid of the fruit projects - -loadModule("/System/Resources") - -for name in ["banana", "pineapple", "mango"]: - project = getProject(name) - project.delete(0, None) -``` - -To get the buttons to appear, add the two script files to a new project—let's call it 'ScriptsProject'. Then go to Windows > Preference > Scripting > Script Locations. Click on the 'Add Workspace' button and select the ScriptsProject. This project now becomes a default location for locating script files. You should see the buttons show up in the Project Explorer without needing to restart your IDE. You should be able to quickly create and delete the projects using your newly added buttons. - -![](https://opensource.com/sites/default/files/5_buttons.png) - -### Integrate with third-party tools - -Every now and then you may need to use a tool outside the Eclipse ecosystem (sad but true, it has a lot but it does not do everything). For those occasions it might be quite handy to wrap calling that call to the tool in a script. Here's an example that allows you to integrate with explorer.exe, and add it to the content menu so you could instantly open a file browser using the current selection. See the source code: [explorer.py][12] - -``` -# name : Explore from here -# popup : enableFor(org.eclipse.core.resources.IResource) -# description : Start a file browser using current selection -loadModule("/System/Platform") -loadModule('/System/UI') - -selection = getSelection() -if isinstance(selection, org.eclipse.jface.viewers.IStructuredSelection): - selection = selection.getFirstElement() - -if not isinstance(selection, org.eclipse.core.resources.IResource): - selection = adapt(selection, org.eclipse.core.resources.IResource) - -if isinstance(selection, org.eclipse.core.resources.IFile): - selection = selection.getParent() - -if isinstance(selection, org.eclipse.core.resources.IContainer): - runProcess("explorer.exe", [selection.getLocation().toFile().toString()]) -``` - -To get the menu to appear, add the script to a new project—let's call it 'ScriptsProject'. Then go to Windows > Preference > Scripting > Script Locations. Click on the 'Add Workspace' button and select the ScriptsProject. You should see the new menu item show up in the context menu when you right-click on a file. Select this action to bring up a file browser. (Note this functionality already exists in Eclipse but this example is one you could adapt to other third-party tools). - -![](https://opensource.com/sites/default/files/6_explorer.png) - -The Eclipse Advanced Scripting Environment provides a great way to get more out of your Eclipse IDE by leveraging the power of Python. It is a project in its infancy so there is so much more to come. Learn more [about the project][13] and get involved by signing up for the [forum][14]. - -I'll be talking more about EASE at [Eclipsecon North America][15] 2016. My talk [Scripting Eclipse with Python][16] will go into how you can use not just Jython, but C-Python and how this functionality can be extended specifically for scientific use-cases. - --------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/2/how-use-python-hack-your-ide - -作者:[Tracy Miranda][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://opensource.com/users/tracymiranda -[1]: https://eclipse.org/ease/ -[2]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python -[3]: https://www.eclipse.org/downloads/packages/eclipse-ide-eclipse-committers-451/mars1 -[4]: http://download.eclipse.org/ease/update/nightly -[5]: https://dl.bintray.com/pontesegger/ease-jython/ -[6]: http://code.activestate.com/recipes/66434-change-line-endings/ -[7]: https://gist.github.com/tracymiranda/6556482e278c9afc421d -[8]: https://gist.github.com/tracymiranda/f20f233b40f1f79b1df2 -[9]: https://gist.github.com/tracymiranda/e9588d0976c46a987463 -[10]: https://gist.github.com/tracymiranda/55995daaea9a4db584dc -[11]: https://gist.github.com/tracymiranda/baa218fc2c1a8e898194 -[12]: https://gist.github.com/tracymiranda/8aa3f0fc4bf44f4a5cd3 -[13]: https://eclipse.org/ease/ -[14]: https://dev.eclipse.org/mailman/listinfo/ease-dev -[15]: https://www.eclipsecon.org/na2016 -[16]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python diff --git a/translated/tech/20160226 How to use Python to hack your Eclipse IDE.md b/translated/tech/20160226 How to use Python to hack your Eclipse IDE.md new file mode 100644 index 0000000000..1bf132fe15 --- /dev/null +++ b/translated/tech/20160226 How to use Python to hack your Eclipse IDE.md @@ -0,0 +1,215 @@ +用Python打造你的Eclipse +============================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/lightbulb_computer_person_general_.png?itok=ZY3UuQQa) + +Eclipse高级脚本环境([EASE][1])项目虽然还在开发中,但是不是不得承认它非常强大,让我们可以快速打造自己的Eclipse开发环境. + +依据Eclipse强大的框架,可以通过其内建的插件系统全方面的扩展Eclipse.然而,编写和部署一个新的插件还是十分笨重,即使只是需要一个额外的小功能。但是,现在依托EASE,可以方便实用Python或者Javascript脚本语言来扩展。 + +本文中,根据我在今年北美的EclipseCon大会上的[演讲][2],我介绍包括安装Eclipse的Python和EASE环境,并包括使用强力Python来增压你的IDE。 + +### 安装并运行 "Hello World" + +本文中的例子使用Java实现的Python解释,Jython。Eclipse可以直接安装EASE环境。本例中使用Eclipse[Mars][3],它已经自带了EASE环境,包和Jython引擎。 + +使用Eclipse安装对话框(`Help>Install New Software`...),安装EASE[http://download.eclipse.org/ease/update/nightly][4] + +选择下列组件: + +- EASE Core feature + +- EASE core UI feature + +- EASE Python Developer Resources + +- EASE modules (Incubation) + +包括了EASE和模组。但是我们比较关心Resource包,此包可以访问Eclipse工作空间,项目和文件API。 + +![](https://opensource.com/sites/default/files/1_installease_nightly.png) + + +成功安装后,接下来安装Jython引擎[https://dl.bintray.com/pontesegger/ease-jython/][5].完成后,测试下。新建一个项目并新建一个hello.py文件,输入: + +``` +print "hello world" +``` + +选中这个文件,右击,选中'Run as -> EASE script'.这样就可以在控制台看到"Hello world"的输出. + +配置完成,现在就可以轻松使用Python来控制工作空间和项目了. + +### 提升你的代码质量 + +管理良好的代码质量本身是一件非常烦恼的事情,尤其是当需要处理一个大量代码库和要许多工程师参与的时候.而这些痛苦可以通过脚本来减轻,比如大量文字排版,或者[去掉文件中的unix行结束符][6]来使更容易比较.其他很棒的事情包括使用脚本让Eclipse markers高亮代码.这里有一些例子,你可以加入到task markers ,用"printStackTrace"方法在java文件中探测.请看[源码][7] + +运行,拷贝文件到工作空间,右击运行. + +``` +loadModule('/System/Resources') +``` + +from org.eclipse.core.resources import IMarker + +``` +for ifile in findFiles("*.java"): + file_name = str(ifile.getLocation()) + print "Processing " + file_name + with open(file_name) as f: + for line_no, line in enumerate(f, start=1): + if "printStackTrace" in line: + marker = ifile.createMarker(IMarker.TASK) + marker.setAttribute(IMarker.TRANSIENT, True) + marker.setAttribute(IMarker.LINE_NUMBER, line_no) + marker.setAttribute(IMarker.MESSAGE, "Fix in Sprint 2: " + line.strip()) + +``` + +如果你的任何java文件中包含了printStackTraces,你就可以看见编辑器的侧边栏上自动加上的标记. + +![](https://opensource.com/sites/default/files/2_codequality.png) + +### 自动构建繁琐任务 + +当同时工作在多个项目的时候,肯定需要需要完成许多繁杂,重复的任务.可能你需要在所有源文件头上加入CopyRight, 或者采用新框架时候自动更新文件.例如,当从Tycho迁移到Maven时候,我们给每一个项目必须添加pom.xml文件.使用Python可以很轻松的完成这个任务.只从Tycho提供无pom构建后,我们也需要移除不要的pom文件.同样,只需要几行代码就可以完成这个任务.例如,这里有个脚本可以在每一个打开的工作空间项目上加入README.md.请看源代码[add_readme.py][8]. + +拷贝文件到工作空间,右击并选择"Run as -> EASE script" + +loadModule('/System/Resources') + +``` +for iproject in getWorkspace().getProjects(): + if not iproject.isOpen(): + continue + + ifile = iproject.getFile("README.md") + + if not ifile.exists(): + contents = "# " + iproject.getName() + "\n\n" + if iproject.hasNature("org.eclipse.jdt.core.javanature"): + contents += "A Java Project\n" + elif iproject.hasNature("org.python.pydev.pythonNature"): + contents += "A Python Project\n" + writeFile(ifile, contents) +``` + +脚本结果会在打开的项目中加入README.md,java和Python项目还会自动加上一行描述. + +![](https://opensource.com/sites/default/files/3_tedioustask.png) + +### 构建新功能 + +Python脚本可以快速构建一些需要的附加功能,或者给团队和用户快速构建demo.例如,一个现在Eclipse目前不支持的功能,自动保存工作的文件.即使这个功能将会很快提供,但是你现在就可以马上拥有一个能30秒自动保存的编辑器.以下是主方法的片段.请看下列代码:[autosave.py][9] + +``` +def save_dirty_editors(): + workbench = getService(org.eclipse.ui.IWorkbench) + for window in workbench.getWorkbenchWindows(): + for page in window.getPages(): + for editor_ref in page.getEditorReferences(): + part = editor_ref.getPart(False) + if part and part.isDirty(): + print "Auto-Saving", part.getTitle() + part.doSave(None) +``` + +在运行脚本之前,你需要勾选'Allow Scripts to run code in UI thread'设定,这个设定在Window > Preferences > Scripting中.然后添加脚本到工作空间,右击和选择"Run as > EASE Script".每10秒自动保存的信息就会在控制台输出.关掉自动保存脚本,只需要在点击控制台的红色方框. + +![](https://opensource.com/sites/default/files/4_prototype.png) + +### 快速扩展用户界面 + +EASE最棒的事情是可以通过脚本与UI元素挂钩,可以调整你的IDE,例如,在菜单中新建一个按钮.不需要编写java代码或者新的插件,只需要增加几行代码. + +下面是一个简单的基脚本示例,用来产生三个新项目. + +``` +# name : Create fruit projects +# toolbar : Project Explorer +# description : Create fruit projects + +loadModule("/System/Resources") + +for name in ["banana", "pineapple", "mango"]: + createProject(name) +``` + +上述特别的EASE增加了一个按钮到项目浏览工具条.下面这个脚本是用来删除这三个项目.请看源码[createProjects.py][10]和[deleteProjects.py][11]. + +``` +# name :Delete fruit projects +# toolbar : Project Explorer +# description : Get rid of the fruit projects + +loadModule("/System/Resources") + +for name in ["banana", "pineapple", "mango"]: + project = getProject(name) + project.delete(0, None) +``` + +为了使脚本启动生效按钮,增加脚本到'ScriptsProject'文件夹.然后选择Windows > Preference > Scripting > Script 中定位到文件夹.点击'Add Workspace'按钮和选择ScriptProject项目.这个项目现在将会在启动时默认加载.你可以发现Project Explorer上出现了这两个按钮,这样你就可以通过这两个按钮快速增加删除项目. + +![](https://opensource.com/sites/default/files/5_buttons.png) + +### 整合三方工具 + +无论何时,你可能需要除了Eclipse生态系统以外的工具.这些时候你会发将他们包装在一个脚本来调用会非常方便.这里有一个简单的例子让你整合explorer.exe,并加入它到右键菜单栏,这样点击图标就可以打开浏览器浏览当前文件.请看源码[explorer.py][12] + +``` +# name : Explore from here +# popup : enableFor(org.eclipse.core.resources.IResource) +# description : Start a file browser using current selection +loadModule("/System/Platform") +loadModule('/System/UI') + +selection = getSelection() +if isinstance(selection, org.eclipse.jface.viewers.IStructuredSelection): + selection = selection.getFirstElement() + +if not isinstance(selection, org.eclipse.core.resources.IResource): + selection = adapt(selection, org.eclipse.core.resources.IResource) + +if isinstance(selection, org.eclipse.core.resources.IFile): + selection = selection.getParent() + +if isinstance(selection, org.eclipse.core.resources.IContainer): + runProcess("explorer.exe", [selection.getLocation().toFile().toString()]) +``` + +为了让菜单显示增加,像之前一样加入'ScriptProject'.在文件上右击,你看弹出菜单是不是出现了图标.选择Explore from here. + +![](https://opensource.com/sites/default/files/6_explorer.png) + +Eclipse高级基本环境提供一套很棒的扩展功能,使得Eclipse IDE能使用Python来轻易扩展.虽然这个项目还在婴儿期,但是[关于这个项目][13]更多更棒的功能也正在加紧开发中,如果你想为这个贡献,请到[论坛][14]讨论. + +2016年[Eclipsecon North America][15]会议将会发布更多EASE细节.我的演讲[Scripting Eclipse with Python][16]也会不单介绍Jython,也包括C-Python和其他功能性扩展的实战例子. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/2/how-use-python-hack-your-ide + +作者:[Tracy Miranda][a] +译者:[VicYu/Vic020](http://vicyu.net) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/tracymiranda +[1]: https://eclipse.org/ease/ +[2]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python +[3]: https://www.eclipse.org/downloads/packages/eclipse-ide-eclipse-committers-451/mars1 +[4]: http://download.eclipse.org/ease/update/nightly +[5]: https://dl.bintray.com/pontesegger/ease-jython/ +[6]: http://code.activestate.com/recipes/66434-change-line-endings/ +[7]: https://gist.github.com/tracymiranda/6556482e278c9afc421d +[8]: https://gist.github.com/tracymiranda/f20f233b40f1f79b1df2 +[9]: https://gist.github.com/tracymiranda/e9588d0976c46a987463 +[10]: https://gist.github.com/tracymiranda/55995daaea9a4db584dc +[11]: https://gist.github.com/tracymiranda/baa218fc2c1a8e898194 +[12]: https://gist.github.com/tracymiranda/8aa3f0fc4bf44f4a5cd3 +[13]: https://eclipse.org/ease/ +[14]: https://dev.eclipse.org/mailman/listinfo/ease-dev +[15]: https://www.eclipsecon.org/na2016 +[16]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python From ce273b97cd834b8e9ef48cc9f9300c541f85a226 Mon Sep 17 00:00:00 2001 From: willowyoung <1079902707@qq.com> Date: Tue, 12 Apr 2016 13:34:53 +0800 Subject: [PATCH 350/582] Translating by willowyoung --- ...ocessing at NASA with open source tools.md | 1 + ...Installed Help Documentations and Tools.md | 180 ----------------- ...leshoot Grand Unified Bootloader (GRUB).md | 185 ------------------ 3 files changed, 1 insertion(+), 365 deletions(-) delete mode 100644 sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md delete mode 100644 sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md diff --git a/sources/tech/20160304 Image processing at NASA with open source tools.md b/sources/tech/20160304 Image processing at NASA with open source tools.md index 7bf6d8297d..4833b7bf93 100644 --- a/sources/tech/20160304 Image processing at NASA with open source tools.md +++ b/sources/tech/20160304 Image processing at NASA with open source tools.md @@ -1,3 +1,4 @@ +Translating By willowyoung Image processing at NASA with open source tools ======================================================= diff --git a/sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md b/sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md deleted file mode 100644 index 45ccb57f95..0000000000 --- a/sources/tech/LFCS/Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools.md +++ /dev/null @@ -1,180 +0,0 @@ -Part 12 - LFCS: How to Explore Linux with Installed Help Documentations and Tools -================================================================================== - -Because of the changes in the LFCS exam requirements effective Feb. 2, 2016, we are adding the necessary topics to the [LFCS series][1] published here. To prepare for this exam, your are highly encouraged to use the [LFCE series][2] as well. - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Explore-Linux-with-Documentation-and-Tools.png) ->LFCS: Explore Linux with Installed Documentations and Tools – Part 12 - -Once you get used to working with the command line and feel comfortable doing so, you realize that a regular Linux installation includes all the documentation you need to use and configure the system. - -Another good reason to become familiar with command line help tools is that in the [LFCS][3] and [LFCE][4] exams, those are the only sources of information you can use – no internet browsing and no googling. It’s just you and the command line. - -For that reason, in this article we will give you some tips to effectively use the installed docs and tools in order to prepare to pass the **Linux Foundation Certification** exams. - -### Linux Man Pages - -A man page, short for manual page, is nothing less and nothing more than what the word suggests: a manual for a given tool. It contains the list of options (with explanation) that the command supports, and some man pages even include usage examples as well. - -To open a man page, use the **man command** followed by the name of the tool you want to learn more about. For example: - -``` -# man diff -``` - -will open the manual page for `diff`, a tool used to compare text files line by line (to exit, simply hit the q key.). - -Let’s say we want to compare two text files named `file1` and `file2` in Linux. These files contain the list of packages that are installed in two Linux boxes with the same distribution and version. - -Doing a `diff` between `file1` and `file2` will tell us if there is a difference between those lists: - -``` -# diff file1 file2 -``` - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Compare-Two-Text-Files-in-Linux.png) ->Compare Two Text Files in Linux - -where the `<` sign indicates lines missing in `file2`. If there were lines missing in `file1`, they would be indicated by the `>` sign instead. - -On the other hand, **7d6** means line **#7** in file should be deleted in order to match `file2` (same with **24d22** and **41d38**), and 65,67d61 tells us we need to remove lines **65** through **67** in file one. If we make these corrections, both files will then be identical. - -Alternatively, you can display both files side by side using the `-y` option, according to the man page. You may find this helpful to more easily identify missing lines in files: - -``` -# diff -y file1 file2 -``` - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Compare-and-List-Difference-of-Two-Files.png) ->Compare and List Difference of Two Files - -Also, you can use `diff` to compare two binary files. If they are identical, `diff` will exit silently without output. Otherwise, it will return the following message: “**Binary files X and Y differ**”. - -### The –help Option - -The `--help` option, available in many (if not all) commands, can be considered a short manual page for that specific command. Although it does not provide a comprehensive description of the tool, it is an easy way to obtain information on the usage of a program and a list of its available options at a quick glance. - -For example, - -``` -# sed --help -``` - -shows the usage of each option available in sed (the stream editor). - -One of the classic examples of using `sed` consists of replacing characters in files. Using the `-i` option (described as “**edit files in place**”), you can edit a file without opening it. If you want to make a backup of the original contents as well, use the `-i` option followed by a SUFFIX to create a separate file with the original contents. - -For example, to replace each occurrence of the word `Lorem` with `Tecmint` (case insensitive) in `lorem.txt` and create a new file with the original contents of the file, do: - -``` -# less lorem.txt | grep -i lorem -# sed -i.orig 's/Lorem/Tecmint/gI' lorem.txt -# less lorem.txt | grep -i lorem -# less lorem.txt.orig | grep -i lorem -``` - -Please note that every occurrence of `Lorem` has been replaced with `Tecmint` in `lorem.txt`, and the original contents of `lorem.txt` has been saved to `lorem.txt.orig`. - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Replace-A-String-in-File.png) ->Replace A String in Files - -### Installed Documentation in /usr/share/doc - -This is probably my favorite pick. If you go to `/usr/share/doc` and do a directory listing, you will see lots of directories with the names of the installed tools in your Linux system. - -According to the [Filesystem Hierarchy Standard][5], these directories contain useful information that might not be in the man pages, along with templates and configuration files to make configuration easier. - -For example, let’s consider `squid-3.3.8` (version may vary from distribution to distribution) for the popular HTTP proxy and [squid cache server][6]. - -Let’s `cd` into that directory: - -``` -# cd /usr/share/doc/squid-3.3.8 -``` - -and do a directory listing: - -``` -# ls -``` - -![](http://www.tecmint.com/wp-content/uploads/2016/03/List-Files-in-Linux.png) ->Linux Directory Listing with ls Command - -You may want to pay special attention to `QUICKSTART` and `squid.conf.documented`. These files contain an extensive documentation about Squid and a heavily commented configuration file, respectively. For other packages, the exact names may differ (as **QuickRef** or **00QUICKSTART**, for example), but the principle is the same. - -Other packages, such as the Apache web server, provide configuration file templates inside `/usr/share/doc`, that will be helpful when you have to configure a standalone server or a virtual host, to name a few cases. - -### GNU info Documentation - -You can think of info documents as man pages on steroids. As such, they not only provide help for a specific tool, but also they do so with hyperlinks (yes, hyperlinks in the command line!) that allow you to navigate from a section to another using the arrow keys and Enter to confirm. - -Perhaps the most illustrative example is: - -``` -# info coreutils -``` - -Since coreutils contains the [basic file, shell and text manipulation utilities][7] which are expected to exist on every operating system, you can reasonably expect a detailed description for each one of those categories in info **coreutils**. - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Info-Coreutils.png) ->Info Coreutils - -As it is the case with man pages, you can exit an info document by pressing the `q` key. - -Additionally, GNU info can be used to display regular man pages as well when followed by the tool name. For example: - -``` -# info tune2fs -``` - -will return the man page of **tune2fs**, the ext2/3/4 filesystems management tool. - -And now that we’re at it, let’s review some of the uses of **tune2fs**: - -Display information about the filesystem on top of **/dev/mapper/vg00-vol_backups**: - -``` -# tune2fs -l /dev/mapper/vg00-vol_backups -``` - -Set a filesystem volume name (Backups in this case): - -``` -# tune2fs -L Backups /dev/mapper/vg00-vol_backups -``` - -Change the check intervals and `/` or mount counts (use the `-c` option to set a number of mount counts and `/` or the `-i` option to set a check interval, where **d=days, w=weeks, and m=months**). - -``` -# tune2fs -c 150 /dev/mapper/vg00-vol_backups # Check every 150 mounts -# tune2fs -i 6w /dev/mapper/vg00-vol_backups # Check every 6 weeks -``` - -All of the above options can be listed with the `--help` option, or viewed in the man page. - -### Summary - -Regardless of the method that you choose to invoke help for a given tool, knowing that they exist and how to use them will certainly come in handy in the exam. Do you know of any other tools that can be used to look up documentation? Feel free to share with the Tecmint community using the form below. - -Questions and other comments are more than welcome as well. - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ - -作者:[Gabriel Cánepa][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.tecmint.com/author/gacanepa/ -[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ -[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ -[3]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ -[4]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ -[5]: http://www.tecmint.com/linux-directory-structure-and-important-files-paths-explained/ -[6]: http://www.tecmint.com/configure-squid-server-in-linux/ -[7]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ -[8]: diff --git a/sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md b/sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md deleted file mode 100644 index cf24c51b58..0000000000 --- a/sources/tech/LFCS/Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB).md +++ /dev/null @@ -1,185 +0,0 @@ -Part 13 - LFCS: How to Configure and Troubleshoot Grand Unified Bootloader (GRUB) -===================================================================================== - -Because of the changes in the LFCS exam requirements effective Feb. 2, 2016, we are adding the necessary topics to the [LFCS series][1] published here. To prepare for this exam, your are highly encouraged to use the [LFCE series][2] as well. - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Configure-Troubleshoot-Grub-Boot-Loader.png) ->LFCS: Configure and Troubleshoot Grub Boot Loader – Part 13 - -In this article we will introduce you to GRUB and explain why a boot loader is necessary, and how it adds versatility to the system. - -The [Linux boot process][3] from the time you press the power button of your computer until you get a fully-functional system follows this high-level sequence: - -* 1. A process known as **POST** (**Power-On Self Test**) performs an overall check on the hardware components of your computer. -* 2. When **POST** completes, it passes the control over to the boot loader, which in turn loads the Linux kernel in memory (along with **initramfs**) and executes it. The most used boot loader in Linux is the **GRand Unified Boot loader**, or **GRUB** for short. -* 3. The kernel checks and accesses the hardware, and then runs the initial process (mostly known by its generic name “**init**”) which in turn completes the system boot by starting services. - -In Part 7 of this series (“[SysVinit, Upstart, and Systemd][4]”) we introduced the [service management systems and tools][5] used by modern Linux distributions. You may want to review that article before proceeding further. - -### Introducing GRUB Boot Loader - -Two major **GRUB** versions (**v1** sometimes called **GRUB Legacy** and **v2**) can be found in modern systems, although most distributions use **v2** by default in their latest versions. Only **Red Hat Enterprise Linux 6** and its derivatives still use **v1** today. - -Thus, we will focus primarily on the features of **v2** in this guide. - -Regardless of the **GRUB** version, a boot loader allows the user to: - -* 1). modify the way the system behaves by specifying different kernels to use, -* 2). choose between alternate operating systems to boot, and -* 3). add or edit configuration stanzas to change boot options, among other things. - -Today, **GRUB** is maintained by the **GNU** project and is well documented in their website. You are encouraged to use the [GNU official documentation][6] while going through this guide. - -When the system boots you are presented with the following **GRUB** screen in the main console. Initially, you are prompted to choose between alternate kernels (by default, the system will boot using the latest kernel) and are allowed to enter a **GRUB** command line (with `c`) or edit the boot options (by pressing the `e` key). - -![](http://www.tecmint.com/wp-content/uploads/2016/03/GRUB-Boot-Screen.png) ->GRUB Boot Screen - -One of the reasons why you would consider booting with an older kernel is a hardware device that used to work properly and has started “acting up” after an upgrade (refer to [this link][7] in the AskUbuntu forums for an example). - -The **GRUB v2** configuration is read on boot from `/boot/grub/grub.cfg` or `/boot/grub2/grub.cfg`, whereas `/boot/grub/grub.conf` or `/boot/grub/menu.lst` are used in **v1**. These files are NOT to be edited by hand, but are modified based on the contents of `/etc/default/grub` and the files found inside `/etc/grub.d`. - -In a **CentOS 7**, here’s the configuration file that is created when the system is first installed: - -``` -GRUB_TIMEOUT=5 -GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" -GRUB_DEFAULT=saved -GRUB_DISABLE_SUBMENU=true -GRUB_TERMINAL_OUTPUT="console" -GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet" -GRUB_DISABLE_RECOVERY="true" -``` - -In addition to the online documentation, you can also find the GNU GRUB manual using info as follows: - -``` -# info grub -``` - -If you’re interested specifically in the options available for /etc/default/grub, you can invoke the configuration section directly: - -``` -# info -f grub -n 'Simple configuration' -``` - -Using the command above you will find out that `GRUB_TIMEOUT` sets the time between the moment when the initial screen appears and the system automatic booting begins unless interrupted by the user. When this variable is set to `-1`, boot will not be started until the user makes a selection. - -When multiple operating systems or kernels are installed in the same machine, `GRUB_DEFAULT` requires an integer value that indicates which OS or kernel entry in the GRUB initial screen should be selected to boot by default. The list of entries can be viewed not only in the splash screen shown above, but also using the following command: - -### In CentOS and openSUSE: - -``` -# awk -F\' '$1=="menuentry " {print $2}' /boot/grub2/grub.cfg -``` - -### In Ubuntu: - -``` -# awk -F\' '$1=="menuentry " {print $2}' /boot/grub/grub.cfg -``` - -In the example shown in the below image, if we wish to boot with the kernel version **3.10.0-123.el7.x86_64** (4th entry), we need to set `GRUB_DEFAULT` to `3` (entries are internally numbered beginning with zero) as follows: - -``` -GRUB_DEFAULT=3 -``` - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Boot-System-with-Old-Kernel-Version.png) ->Boot System with Old Kernel Version - -One final GRUB configuration variable that is of special interest is `GRUB_CMDLINE_LINUX`, which is used to pass options to the kernel. The options that can be passed through GRUB to the kernel are well documented in the [Kernel Parameters file][8] and in [man 7 bootparam][9]. - -Current options in my **CentOS 7** server are: - -``` -GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet" -``` - -Why would you want to modify the default kernel parameters or pass extra options? In simple terms, there may be times when you need to tell the kernel certain hardware parameters that it may not be able to determine on its own, or to override the values that it would detect. - -This happened to me not too long ago when I tried **Vector Linux**, a derivative of **Slackware**, on my 10-year old laptop. After installation it did not detect the right settings for my video card so I had to modify the kernel options passed through GRUB in order to make it work. - -Another example is when you need to bring the system to single-user mode to perform maintenance tasks. You can do this by appending the word single to `GRUB_CMDLINE_LINUX` and rebooting: - -``` -GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet single" -``` - -After editing `/etc/defalt/grub`, you will need to run `update-grub` (Ubuntu) or `grub2-mkconfig -o /boot/grub2/grub.cfg` (**CentOS** and **openSUSE**) afterwards to update `grub.cfg` (otherwise, changes will be lost upon boot). - -This command will process the boot configuration files mentioned earlier to update `grub.cfg`. This method ensures changes are permanent, while options passed through GRUB at boot time will only last during the current session. - -### Fixing Linux GRUB Issues - -If you install a second operating system or if your GRUB configuration file gets corrupted due to human error, there are ways you can get your system back on its feet and be able to boot again. - -In the initial screen, press `c` to get a GRUB command line (remember that you can also press `e` to edit the default boot options), and use help to bring the available commands in the GRUB prompt: - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Fix-Grub-Issues-in-Linux.png) ->Fix Grub Configuration Issues in Linux - -We will focus on **ls**, which will list the installed devices and filesystems, and we will examine what it finds. In the image below we can see that there are 4 hard drives (`hd0` through `hd3`). - -Only `hd0` seems to have been partitioned (as evidenced by msdos1 and msdos2, where 1 and 2 are the partition numbers and msdos is the partitioning scheme). - -Let’s now examine the first partition on `hd0` (**msdos1**) to see if we can find GRUB there. This approach will allow us to boot Linux and there use other high level tools to repair the configuration file or reinstall GRUB altogether if it is needed: - -``` -# ls (hd0,msdos1)/ -``` - -As we can see in the highlighted area, we found the `grub2` directory in this partition: - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Grub-Configuration.png) ->Find Grub Configuration - -Once we are sure that GRUB resides in (**hd0,msdos1**), let’s tell GRUB where to find its configuration file and then instruct it to attempt to launch its menu: - -``` -set prefix=(hd0,msdos1)/grub2 -set root=(hd0,msdos1) -insmod normal -normal -``` - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-and-Launch-Grub-Menu.png) ->Find and Launch Grub Menu - -Then in the GRUB menu, choose an entry and press **Enter** to boot using it. Once the system has booted you can issue the `grub2-install /dev/sdX` command (change `sdX` with the device you want to install GRUB on). The boot information will then be updated and all related files be restored. - -``` -# grub2-install /dev/sdX -``` - -Other more complex scenarios are documented, along with their suggested fixes, in the [Ubuntu GRUB2 Troubleshooting guide][10]. The concepts explained there are valid for other distributions as well. - -### Summary - -In this article we have introduced you to GRUB, indicated where you can find documentation both online and offline, and explained how to approach an scenario where a system has stopped booting properly due to a bootloader-related issue. - -Fortunately, GRUB is one of the tools that is best documented and you can easily find help either in the installed docs or online using the resources we have shared in this article. - -Do you have questions or comments? Don’t hesitate to let us know using the comment form below. We look forward to hearing from you! - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ - -作者:[Gabriel Cánepa][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://www.tecmint.com/author/gacanepa/ -[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ -[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ -[3]: http://www.tecmint.com/linux-boot-process/ -[4]: http://www.tecmint.com/linux-boot-process-and-manage-services/ -[5]: http://www.tecmint.com/best-linux-log-monitoring-and-management-tools/ -[6]: http://www.gnu.org/software/grub/manual/ -[7]: http://askubuntu.com/questions/82140/how-can-i-boot-with-an-older-kernel-version -[8]: https://www.kernel.org/doc/Documentation/kernel-parameters.txt -[9]: http://man7.org/linux/man-pages/man7/bootparam.7.html -[10]: https://help.ubuntu.com/community/Grub2/Troubleshooting From 0e78d951d0d2d27d03dc4fdd6f9dee397aeae69c Mon Sep 17 00:00:00 2001 From: Zhengyu_Li Date: Tue, 12 Apr 2016 17:56:11 +0800 Subject: [PATCH 351/582] Delete 20160218 A Linux-powered microwave oven.md --- ...20160218 A Linux-powered microwave oven.md | 51 ------------------- 1 file changed, 51 deletions(-) delete mode 100644 sources/tech/20160218 A Linux-powered microwave oven.md diff --git a/sources/tech/20160218 A Linux-powered microwave oven.md b/sources/tech/20160218 A Linux-powered microwave oven.md deleted file mode 100644 index 47db1ae9d6..0000000000 --- a/sources/tech/20160218 A Linux-powered microwave oven.md +++ /dev/null @@ -1,51 +0,0 @@ -translating by yuba0604 -A Linux-powered microwave oven -================================================================================ - -Scratching an itch is a recurring theme in presentations at [linux.conf.au](http://linux.conf.au/). As the open-hardware movement gains strength, more and more of these itches relate to the physical world, not just the digital. David Tulloh used his [presentation [WebM]](http://mirror.linux.org.au/linux.conf.au/2016/04_Thursday/D4.303_Costa_Theatre/Linux_driven_microwave.webm) on the “Linux Driven Microwave” to discuss how annoying microwave ovens can be and to describe his project to build something less irritating. - -Tulloh's story began when he obtained a microwave oven, admittedly an inexpensive one, with a user interface even worse than the norm. Setting the time required pressing buttons so hard that the microwave tended to get pushed away — a fact that was elegantly balanced by the door handle requiring a sufficiently hard tug to return the oven to its original position. While this is clearly an extreme case, Tulloh lamented that microwave ovens really hadn't improved noticeably in recent decades. They may have gotten a little cheaper and gained a few features that few people could use without poring over the instruction manual — the implied contrast to smartphones, which are widely used with little instruction, was clear. - -This microwave oven was not a lost cause — it gave its life to the greater good and became the prototype for an idea that Tulloh hopes to turn into a crowd-funded project if he can find the right match between features and demand: a Linux-driven microwave oven. - -![](https://static.lwn.net/images/2016/lca-oven-sm.jpg) - -## Adding novelty - -Adding a smartphone-like touchscreen and a network connection and encouraging a community to build innovative apps such as recipe sharing are fairly obvious ideas once you think to put “Linux” and “microwave oven” together, but Tulloh's vision and prototype lead well beyond there. Two novel features that have been fitted are a thermal camera and a scale for measuring weight. - -The thermal camera provides an eight-by-eight-pixel image of the contents of the oven with a precision of about two degrees. This is enough to detect if a glass of milk is about to boil over, or if the steak being thawed is in danger of getting cooked. In either case, the power can be reduced or removed. If appropriate, an alert can be sounded. This would not be the first microwave to be temperature sensitive — GE sold microwave ovens with temperature probes decades ago — but an always-present sensor is much more useful than a manually inserted probe, especially when there is an accessible API behind it. - -The second innovation is a built-in scale to weigh the food (and container) being cooked. Many recipes give cooking-time guidance based on weight and some microwave ovens allow you to enter the weight manually so it can do a calculation for you. With built-in scales, that can become automatic. Placing a scale reliably under the rotating plate typical of many microwave ovens would be a mechanical challenge that Tulloh did not think worth confronting. Instead his design is based on the “flat-plate” or “flat-bed” style of oven — placing a sensor at each of the four corners is mechanically straightforward and gives good results. - - [User interface] -Once you have these extra sensors — weight and temperature — connected to a suitable logic engine, more interesting possibilities can be explored. A cup of cold milk from the fridge will have a particular weight and temperature profile with a modest degree of error. Tulloh suggested that situation could be detected and some relevant options such as “Boil” or “Warm” could be offered for easy selection (a mock up of the interface is at right, a clickable version is [here](http://mwgui.tulloh.id.au/)). Simple machine learning could extend this to create a personalized experience. It would be easy to collect a history of starting profiles and cooking choices; when those patterns are detected, the most likely cooking choices could be made the easiest to select. - -![](https://static.lwn.net/images/2016/lca-ovengui-sm.png) - -## Overcoming staleness - -Beyond just new functionality, Tulloh wants to improve the functionality that already exists. Door handles as stiff as on Tulloh's cheap microwave may not be common, but few microwave oven doors seem designed to make life easy for people with physical handicaps. There are regulatory restrictions, particularly in the US, that require the oven to function only if there is positive confirmation that the door is actually shut. This confirmation must be resilient against simple fraud, so poking a stick in the hole must not trick the oven into working with the door open. In fact, there must be two independent confirmations and, if they disagree, a fuse must be blown so that a service call is required. Tulloh believes that a magnetic latch would provide much greater flexibility (including easy software control) and that magnetic keying similar to that used in a [magnetic keyed lock](https://en.wikipedia.org/wiki/Magnetic_keyed_lock) would allow the magnetic latch to pass certification. - -Another pain point with microwave ovens is the annoying sounds they make. Tulloh has discarded the beeper and hooked up a speaker to the Banana Pi that is controlling his prototype. This allows for more pleasant and configurable alerts as well as for advice and guidance through a text-to-speech system. Adding a microphone for voice control is an obvious next step. - -Many microwave ovens can do more than just set a time and a power level — they provide a range of power profiles for cooking, warming, defrosting, and so on. Adding precise temperature sensing will allow the community to extend this range substantially. A question from Andrew Tridgell in the audience wondered if tempering chocolate — a process that requires very precise temperature control — would be possible. Tulloh had no experience with the process, and couldn't make promises, but thought it was certainly worth looking in to. Even if that doesn't work out, it shows clear potential for value to be gained from community input. - -## Availability - -Tulloh would very much like to get these Linux-enabled microwave ovens out into the world to create a community and see where it goes. Buying existing ovens and replacing the electronics is not seen as a viable option. The result would be ugly and, given that a small-run smart microwave will inevitably cost more, potential buyers are going to want something that doesn't look completely out of place in their kitchen. - -Many components are available off-the-shelf (magnetron, processor board, thermal sensor) and others, such as a USB interface for the thermal sensor, are easily built. Prototype software is, of course, already available on [GitHub](https://github.com/lod?tab=repositories). The case and door are more of a challenge and would need to be made to order. Tulloh wants to turn this adversity into an opportunity by providing the option for left-handed microwave ovens and a variety of colors. - -A quick survey of the audience suggested that few people would hastily commit to his target price of $AU1000 for a new, improved, open oven. Whether a bit more time for reflection and a wider audience might tip the balance is hard to know. The idea is intriguing, so it seems worth watching Tulloh's [blog](http://david.tulloh.id.au/category/microwave/) for updates. - - ------------------------------------------------------------------------------- - -via: https://lwn.net/Articles/674877/ - -作者:Neil Brown -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 5b52719582d612112e7bade6297325b61b3a1a83 Mon Sep 17 00:00:00 2001 From: Zhengyu_Li Date: Tue, 12 Apr 2016 17:58:18 +0800 Subject: [PATCH 352/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/A Linux-powered microwave oven | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 translated/tech/A Linux-powered microwave oven diff --git a/translated/tech/A Linux-powered microwave oven b/translated/tech/A Linux-powered microwave oven new file mode 100644 index 0000000000..57aaace3a7 --- /dev/null +++ b/translated/tech/A Linux-powered microwave oven @@ -0,0 +1,55 @@ +一个Linux驱动的微波炉 +================================================================================ + +[linux.conf.au](http://linux.conf.au/)里的人们都有一种想到什么就动手去实现的想法。随着硬件开源运动不断地发展壮大,这种想法越来越多,与现实世界联系的越来越紧密,而不仅仅存在于数字世界中。David Tulloh用他制作的[Linux驱动的微波炉 [WebM]](http://mirror.linux.org.au/linux.conf.au/2016/04_Thursday/D4.303_Costa_Theatre/Linux_driven_microwave.webm)来展示一个差劲的微波炉会多么难用以及说明他的项目可以改造这些微波炉使得它们不那么讨人厌。 + +Tulloh的故事要从他买到了一个公认很便宜的微波炉开始说起,它的用户界面比其它微波炉默认的还要糟糕。设定时间时必须使劲按按钮以至于把微波炉都向后推了一段距离——而事实上必须要用力拉仓门把手才能把微波炉拖回原来的位置,这形成了一个“优雅”的平衡。当然这只是极端情况。Tulloh很郁闷因为这个微波炉近十年来都没有一丁点明显的改善。他可能买到了一个又小又便宜的微波炉,而且特点是大部分人不研究使用手册就不会使用它——和智能手机的对比更加明显:智能手机只需知道一点点的操作指南并且被广泛使用。 + +改造这个微波炉不一定没有前途,“让微波炉重获新生”——这个想法成为了一个原型,如果Tulloh可以再平衡一下想做的功能和需求之间的关系的话他希望这变成一个众筹项目:一个Linux驱动的微波炉。 + +![](https://static.lwn.net/images/2016/lca-oven-sm.jpg) + +## 加一点新奇的小玩意 + + + +如果你把“Linux”和“微波炉”联系在一起的话就可能想到给微波炉加上一个智能手机式的触摸屏和网络链接,然后再通过社区做一款微波炉的“革命性”的手机应用,想到这些就像做菜想到分享食谱一样显而易见。但Tulloh的目标和他的原型远远超过这些,他做了两个新奇的功能——热感相机和称量物体质量的称重装置。 + +这个热感相机提供一个精确度两自由度的八乘八像素的图片,这足够发现一杯牛奶是否加热到沸腾或者牛排是否解冻到快不能用来烹饪。不论发生哪种情况,功率都可以减小或者关掉。而且在必要的时候会发出警报。这可能不是第一个可以检测温度的微波炉——GE在十年前就开始卖带温度探针的微波炉了——但是一个一直工作的内置传感器比一个手工探针有用多了尤其是有一个可用的API支持的时候。 + +第二个新发明是一个嵌入的称重装置,它可以在加热之前称量食物(和容器)。很多食谱根据质量给出指导的烹饪时间,很多微波炉支持你手动输入质量以便它帮你计算。利用内置的称重装置,这一过程可以变成自动化的。在许多微波炉的转盘下面稳固地放置一个称重装置是一个机械方面的挑战不过Tulloh觉得这个问题不难处理。反而他对微波炉的设计是基于“平板”或者“平板挂车”的风格——在四角各放置一个传感器,这不仅在机械实现上很简单而且很好的达到了要求。 + + +[用户界面] +一旦你有了这些额外添加的并与逻辑引擎相连的质量温度传感器,你可以去尝试更多好玩的可能。一杯刚从冰箱里拿出来的冰牛奶的质量温度分布可能会有适度误差。Tulloh发现这种情况可以被检测到而且提供一些有关的像“煮沸”或者“加热”的选项也是容易做到的(下面有一个模拟的界面,可点击操作的版本请点击右边链接 [here](http://mwgui.tulloh.id.au/)) + +![](https://static.lwn.net/images/2016/lca-ovengui-sm.png) + +## 改造陈旧的东西 + +除了才开发出来的新功能,Tulloh还想要提升那些原本就提供的功能。可能不是所有微波炉的门把手都像Tulloh那个廉价的一样僵硬,但是很少有微波炉将把手设计的让残疾人也能轻松使用。这些缺陷都是可调整的,尤其是在美国,微波炉应该在仓门关闭的时候给出一个确定关闭的提示。这种确认必须是可靠的以预防那些伪劣产品,所以在仓门闭合时固定的槽位里添加一个短杆以确认仓门开闭状态,不误使微波炉在仓门开着的时候工作。事实上,必须要两个相互联系的机关,如果他们提供的结果不一致, +保险丝必须断开以便启动一个呼叫服务。Tulloh认为提供一个磁力门闩有更大的灵活性(包含简单的软件控制)并且像磁控也同样用于[磁性钥匙锁](https://en.wikipedia.org/wiki/Magnetic_keyed_lock),它可以让磁力门闩确认微波炉门是否关闭。 + +微波炉的另一个痛点是它会发出令人厌烦的声音。Tulloh去掉了蜂鸣器并且使用香蕉派(类似于树莓派的单片机开发板)控制他的微波炉。这可以通过一个把文本转换成语音的系统来用令人愉悦而且可配置的警报来提示和引导使用者。显然,下一步就是装上一个用来控制声音的扩音器。 + + +许多微波炉除了定时和设置功率档位之外还可以做更多的事情——它们为烹饪,加热,化冻等提供一系列的功率谱。加上一个精确的温度测量装置感觉会为这个图表大大扩展它们的序列。Andrew Tridgell对一个问题很好奇,加热巧克力——一个需要非常精确的温度控制的过程——是否是可能的。Tulloh没有过这方面的经验,他不敢保证这个一定可以,但是这个实验结果的确值得期待。即使没做成这件事,它也显出了潜在价值——社区接下来可以更进一步去做这件事。 + +## 实用性怎么样? + +Tulloh十分乐意向全世界分享这个linux驱动的微波炉,他希望看到(因为这件事)形成一个社区并且想看到它接下来的走势。买一个现成的微波炉并且替换掉里面的电子元件看起来不是一个可行的点子。最后的结果可能会很糟,而买一个小巧智能的微波炉必然要花掉(比自己改造)更多的钱,但是潜在的顾客不想在他们的厨房里看到乱七八糟又不协调的东西。 + +许多零件都是现成的可以买到的(磁电管,处理器板,热传感器等等),像USB接口的热传感器,而且都很容易安装。软件原型当然也开源在[GitHub](https://github.com/lod?tab=repositories)。这个样例和微波炉门有不小的挑战性并且很可能要定制。Tulloh想要通过提供左侧开仓门的微波炉和颜色多样化的选项来转逆境为机遇。 + +一个对读者的快速调查:很少有人会贸然承诺他会为了一个全新的升级过的烤箱付出1000澳大利亚元。当然,很难知道是否会有充足的时间和足够多的读者来完成这个调查。这整个项目看起来很有趣。所以Tulloh的[博客](http://david.tulloh.id.au/category/microwave/) (点击这里)也很值得一看。 + +------------------------------------------------------------------------------ + +via: https://lwn.net/Articles/674877/ + +作者:Neil Brown +译者:yuba0604(https://github.com/yuba0604) + +译者水平有限,敬请指正。(lizhengyu@gmail.com) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 02d1c429269ad702c1dffc8f82ad7b79242f6849 Mon Sep 17 00:00:00 2001 From: Zhengyu_Li Date: Tue, 12 Apr 2016 18:00:02 +0800 Subject: [PATCH 353/582] Rename A Linux-powered microwave oven to 20160218 A Linux-powered microwave oven.md --- ... microwave oven => 20160218 A Linux-powered microwave oven.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename translated/tech/{A Linux-powered microwave oven => 20160218 A Linux-powered microwave oven.md} (100%) diff --git a/translated/tech/A Linux-powered microwave oven b/translated/tech/20160218 A Linux-powered microwave oven.md similarity index 100% rename from translated/tech/A Linux-powered microwave oven rename to translated/tech/20160218 A Linux-powered microwave oven.md From f910ab4e4be940e36017954a5a87ff58b8e3f24c Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 12 Apr 2016 19:37:50 +0800 Subject: [PATCH 354/582] translating --- ...nter Admin Suite Should Bring Order to Containerization.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md b/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md index 48ea41d7b3..8e33955b14 100644 --- a/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md +++ b/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md @@ -1,3 +1,5 @@ +translating---geekpi + New Docker Data Center Admin Suite Should Bring Order to Containerization =============================================================================== @@ -47,3 +49,5 @@ via: http://linoxide.com/linux-how-to/calico-virtual-private-networking-docker/ [a]:http://techcrunch.com/author/ron-miller/ [1]: https://www.docker.com/ [2]: http://techcrunch.com/2014/08/04/docker-sells-dotcloud-to-cloudcontrol-to-focus-on-core-container-business/ + + From ab521a4767c396498d9fb272341657c2df9ebcae Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 12 Apr 2016 21:07:23 +0800 Subject: [PATCH 355/582] translated --- ... Should Bring Order to Containerization.md | 53 ------------------- ... Should Bring Order to Containerization.md | 50 +++++++++++++++++ 2 files changed, 50 insertions(+), 53 deletions(-) delete mode 100644 sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md create mode 100644 translated/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md diff --git a/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md b/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md deleted file mode 100644 index 8e33955b14..0000000000 --- a/sources/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md +++ /dev/null @@ -1,53 +0,0 @@ -translating---geekpi - -New Docker Data Center Admin Suite Should Bring Order to Containerization -=============================================================================== - -![](https://tctechcrunch2011.files.wordpress.com/2016/02/shutterstock_119411227.jpg?w=738) - -[Docker][1] announced a new container control center today it’s calling the Docker Datacenter (DDC), an integrated administrative console that has been designed to give large and small businesses control over creating, managing and shipping containers. - -The DDC is a new tool made up of various commercial pieces including Docker Universal Control Plane (which also happens to be generally available today) and Docker Trusted Registry. It also includes open source pieces such as Docker Engine. The idea is to give companies the ability to manage the entire lifecycle of Dockerized applications from one central administrative interface. - -Customers actually were the driving force behind this new tool. While companies liked the agility that Docker containers give them, they also wanted management control over administration, security and governance around the containers they were creating and shipping, Scott Johnston, SVP of product management told TechCrunch. - -The company has called this Containers as a Service (CaaS), mostly because when customers came to them asking for this type of administrative control, that’s how they described it, Johnston said. - - -![](https://tctechcrunch2011.files.wordpress.com/2016/02/screen-shot-2016-02-23-at-7-56-54-am.png?w=680&h=401) - ->Image courtesy of Docker - -Like many open source projects, Docker gained a strong following among developers first, but as it grew in popularity, the companies these developers were working for wanted a straight-forward way to track and manage them. - -That’s exactly what DDC is designed to do. It gives developers the agility they need to create containerized applications, while providing operations with the tools they need to bring order to the process. - -In practice this means that developers can create a set of containerized components, have them approved for deployment by operations and then have access to a library of fully certified images. This lets developers pull the pieces they need across a range of applications without having to reinvent the wheel every time. That should speed up application development and deployment (and add to the agility that containers should in theory be providing in the first place). - -This aspect appealed to Beta customer ADP. The payroll services giant particularly liked having this central repository of images available to developers. - -“As part of our initiative to modernize our business-critical applications to microservices, ADP has been investigating solutions that would enable our developers to leverage a central library of IT-vetted and secured core services that they could rapidly iterate on,” said Keith Fulton, Chief Technology Officer at ADP said in a statement. - -Docker was launched in 2010 by founder Solomon Hykes as dotCloud. He pivoted the company to Docker in 2013, [selling dotCloud in August][2], 2014 to focus completely on Docker. - -The company came out of the gate like gangbusters a couple of years ago raising $180 million ($168 million since becoming Docker) over five rounds, according to CrunchBase. What caught the attention of investors was that Docker offered a way to deliver applications for the modern age called containers, a way of building, managing and shipping distributed applications. - -Containerization enables developers to create these distributed applications made up of small discrete pieces that run across multiple servers, as opposed to the large monolithic applications companies used to create running on a single server. - -Pricing for Docker Datacenter starts at $150 per node per month. - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/calico-virtual-private-networking-docker/ - -作者:[ Ron Miller][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://techcrunch.com/author/ron-miller/ -[1]: https://www.docker.com/ -[2]: http://techcrunch.com/2014/08/04/docker-sells-dotcloud-to-cloudcontrol-to-focus-on-core-container-business/ - - diff --git a/translated/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md b/translated/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md new file mode 100644 index 0000000000..147294c547 --- /dev/null +++ b/translated/tech/20160223 New Docker Data Center Admin Suite Should Bring Order to Containerization.md @@ -0,0 +1,50 @@ +新的Docker数据中心管理套件使容器化变得更加井然有序 +=============================================================================== + +![](https://tctechcrunch2011.files.wordpress.com/2016/02/shutterstock_119411227.jpg?w=738) + +[Docker][1]今天宣布了一个新的容器控制中心,称为Docker数据中心(DDC),被设计用于大型和小型企业能够创建、管理和分发容器的一个集成管理控制台。 + +DDC是由包括Docker Universal Control Plane(也是今天发布)和Docker Trusted Registry等不同的商业组件组成。它也包括了开源组件比如Docker Engine。这个主意能让公司能够在一个中心管理界面中就能够管理整个Docker化程序的生命周期。 + +产品SVP Scott Johnston告诉TechCrunch:“客户催使了这个新工具的产生。公司不仅喜欢Docker给他们带来的敏捷性,它们也希望在创建和分发容器的过程中可以进行行政、安全和管理。” + +Johnston说:“公司称这个为容器即服务(Caas),大多是是因为当客户来询问这个管理的类型时,它们是这样描述的。” + +![](https://tctechcrunch2011.files.wordpress.com/2016/02/screen-shot-2016-02-23-at-7-56-54-am.png?w=680&h=401) + +>Docker免费镜像 + +像许多开源项目那样,Docker首先获得了许多开发者的追随,但是它也很快在那些想直接追踪管理它们的开发者的公司中流行。 + +这就是DDC设计的目的。它给开发者创建容器化应用的敏捷性,也让运维变得井井有条。 + +实际中这意味着开发者可以创建一系列容器化的组件,批准部署后就可以获得一个完全认证的镜像。这可以让开发这一系列的程序中拉取他们所需而不必每次重新发明轮子。这可以加速应用的开发和部署(理论上提升了容器提供的灵活性)。 + +这方面吸引了Beta客户ADP。工资服务业巨头特别喜欢让这个中心镜像仓库提供给开发人员。 + +ADP的CTO Keith Fulton在声明中称:“作为我们将关键业务微服务化倡议的一部分,ADP正在研究能够然开发人员可以利用IT审核过的中央库和安全的核心服务进行快速迭代的方案。” + +Docker在2010年由dotcloud的Solomon Hykes发布。他在2013年将公司的重心移到Docker上,并在[8月dotCloud][2],2014年完全聚焦在Docker上。 + +根据CrunchBase的消息,公司几年来在5轮融资后势如破竹般获得了1亿8000万美元融资(自从成为Docker后获得了1亿6千8百万美元)。吸引投资者关注的是Docker提供了一种称为容器的现在分发应用的方式,可以构建、管理何分发分布式应用。 + +容器化可以让开发者创建由多个小的分布在不同服务器上的分布式应用,而不是一个运行在一个单独服务器上的独立应用。 + +DDC每月每节点150美金起。 + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/calico-virtual-private-networking-docker/ + +作者:[ Ron Miller][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://techcrunch.com/author/ron-miller/ +[1]: https://www.docker.com/ +[2]: http://techcrunch.com/2014/08/04/docker-sells-dotcloud-to-cloudcontrol-to-focus-on-core-container-business/ + + From f7f4b9bf2805629699c786860cd07e4c2cd0a677 Mon Sep 17 00:00:00 2001 From: Zhengyu_Li Date: Wed, 13 Apr 2016 20:02:26 +0800 Subject: [PATCH 356/582] Update 20160314 Healthy Open Source.md Translating by yuba0604 --- sources/tech/20160314 Healthy Open Source.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160314 Healthy Open Source.md b/sources/tech/20160314 Healthy Open Source.md index b36b516758..57dd559284 100644 --- a/sources/tech/20160314 Healthy Open Source.md +++ b/sources/tech/20160314 Healthy Open Source.md @@ -1,3 +1,4 @@ +Translating by yuba0604 Healthy Open Source ============================ From 05ccef7a899c85f83a311abc220539e3b7c5849c Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 15 Apr 2016 15:18:37 +0800 Subject: [PATCH 357/582] =?UTF-8?q?=E5=9B=9E=E6=94=B6=E8=B6=85=E6=9C=9F?= =?UTF-8?q?=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @bestony @bioIkke @GHLandy @RickyGong @CoderBOBO @zpl1025 注意,文件丢了一个扩展名。 --- .../news/20160129 Recognizing correct code.md | 53 --- ...rom Facebook, IBM, Yahoo, and more news.md | 72 ---- ...ased ahead of impending OpenSSL updates.md | 42 --- ...nced-Based-on-Debian-GNU-Linux 8 Jessie.md | 40 --- ... open source board games to play online.md | 194 ---------- ...en source application development tools.md | 336 ------------------ ...2015--The best open source applications.md | 238 ------------- ...15--The best open source big data tools.md | 287 --------------- ...n source data center and cloud software.md | 261 -------------- ...open source desktop and mobile software.md | 223 ------------ ...s--Linus Torvalds Answers Your Question.md | 186 ---------- ...cketing System in Fedora 22 or Centos 7.md | 1 - ...tall Pure-FTPd with TLS on FreeBSD 10.2.md | 154 -------- ...0151227 Ubuntu Touch, three years later.md | 68 ---- ...eps to Start Your Linux SysAdmin Career.md | 1 - ...to Best Manage Encryption Keys on Linux.md | 2 - ...Systems Patched for Critical glibc Flaw.md | 2 - ...er Tools With Wercker’s Open Source CLI.md | 1 - ... => 20160314 15 podcasts for FOSS fans.md} | 0 19 files changed, 2161 deletions(-) delete mode 100644 sources/news/20160129 Recognizing correct code.md delete mode 100644 sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md delete mode 100644 sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md delete mode 100644 sources/news/20160318 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md delete mode 100644 sources/share/20150901 5 best open source board games to play online.md delete mode 100644 sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md delete mode 100644 sources/share/20151028 Bossie Awards 2015--The best open source applications.md delete mode 100644 sources/share/20151028 Bossie Awards 2015--The best open source big data tools.md delete mode 100644 sources/share/20151028 Bossie Awards 2015--The best open source data center and cloud software.md delete mode 100644 sources/share/20151028 Bossie Awards 2015--The best open source desktop and mobile software.md delete mode 100644 sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md delete mode 100644 sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md delete mode 100644 sources/tech/20151227 Ubuntu Touch, three years later.md rename sources/tech/{20160314 15 podcasts for FOSS fans => 20160314 15 podcasts for FOSS fans.md} (100%) diff --git a/sources/news/20160129 Recognizing correct code.md b/sources/news/20160129 Recognizing correct code.md deleted file mode 100644 index 60b94b895d..0000000000 --- a/sources/news/20160129 Recognizing correct code.md +++ /dev/null @@ -1,53 +0,0 @@ -# Recognizing correct code - -Automatic bug-repair system fixes 10 times as many errors as its predecessors. ------- -DongShuaike is translating. - -MIT researchers have developed a machine-learning system that can comb through repairs to open-source computer programs and learn their general properties, in order to produce new repairs for a different set of programs. - -The researchers tested their system on a set of programming errors, culled from real open-source applications, that had been compiled to evaluate automatic bug-repair systems. Where those earlier systems were able to repair one or two of the bugs, the MIT system repaired between 15 and 18, depending on whether it settled on the first solution it found or was allowed to run longer. - -While an automatic bug-repair tool would be useful in its own right, professor of electrical engineering and computer science Martin Rinard, whose group developed the new system, believes that the work could have broader ramifications. - -“One of the most intriguing aspects of this research is that we’ve found that there are indeed universal properties of correct code that you can learn from one set of applications and apply to another set of applications,” Rinard says. “If you can recognize correct code, that has enormous implications across all software engineering. This is just the first application of what we hope will be a brand-new, fabulous technique.” - -Fan Long, a graduate student in electrical engineering and computer science at MIT, presented a paper describing the new system at the Symposium on Principles of Programming Languages last week. He and Rinard, his advisor, are co-authors. - -Users of open-source programs catalogue bugs they encounter on project websites, and contributors to the projects post code corrections, or “patches,” to the same sites. So Long was able to write a computer script that automatically extracted both the uncorrected code and patches for 777 errors in eight common open-source applications stored in the online repository GitHub. - -**Feature performance** - -As with [all][1] machine-learning systems, the crucial aspect of Long and Rinard’s design was the selection of a “[feature set][2]” that the system would analyze. The researchers concentrated on values stored in memory — either variables, which can be modified during a program’s execution, or constants, which can’t. They identified 30 prime characteristics of a given value: It might be involved in an operation, such as addition or multiplication, or a comparison, such as greater than or equal to; it might be local, meaning it occurs only within a single block of code, or global, meaning that it’s accessible to the program as a whole; it might be the variable that represents the final result of a calculation; and so on. - -Long and Rinard wrote a computer program that evaluated all the possible relationships between these characteristics in successive lines of code. More than 3,500 such relationships constitute their feature set. Their machine-learning algorithm then tried to determine what combination of features most consistently predicted the success of a patch. - -“All the features we’re trying to look at are relationships between the patch you insert and the code you are trying to patch,” Long says. “Typically, there will be good connections in the correct patches, corresponding to useful or productive program logic. And there will be bad patterns that mean disconnections in program logic or redundant program logic that are less likely to be successful.” - -**Ranking candidates** - -In earlier work, Long had developed an algorithm that attempts to repair program bugs by systematically modifying program code. The modified code is then subjected to a suite of tests designed to elicit the buggy behavior. This approach may find a modification that passes the tests, but it could take a prohibitively long time. Moreover, the modified code may still contain errors that the tests don’t trigger. - -Long and Rinard’s machine-learning system works in conjunction with this earlier algorithm, ranking proposed modifications according to the probability that they are correct before subjecting them to time-consuming tests. - -The researchers tested their system, which they call Prophet, on a set of 69 program errors that had cropped up in eight popular open-source programs. Of those, 19 are amenable to the type of modifications that Long’s algorithm uses; the other 50 have more complicated problems that involve logical inconsistencies across larger swaths of code. - -When Long and Rinard configured their system to settle for the first solution that passed the bug-eliciting tests, it was able to correctly repair 15 of the 19 errors; when they allowed it to run for 12 hours per problem, it repaired 18. - -Of course, that still leaves the other 50 errors in the test set untouched. In ongoing work, Long is working on a machine-learning system that will look at more coarse-grained manipulation of program values across larger stretches of code, in the hope of producing a bug-repair system that can handle more complex errors. - -“A revolutionary aspect of Prophet is how it leverages past successful patches to learn new ones,” says Eran Yahav, an associate professor of computer science at the Technion in Israel. “It relies on the insight that despite differences between software projects, fixes — patches — applied to projects often have commonalities that can be learned from. Using machine learning to learn from ‘big code’ holds the promise to revolutionize many programming tasks — code completion, reverse-engineering, et cetera.” - --------------------------------------------------------------------------------- - -via: http://news.mit.edu/2016/faster-automatic-bug-repair-code-errors-0129 - -作者:Larry Hardesty -译者:[译者ID](https://github.com/翻译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[1]:http://news.mit.edu/2013/teaching-computers-to-see-by-learning-to-see-like-computers-0919 -[2]:http://news.mit.edu/2015/automating-big-data-analysis-1016 - diff --git a/sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md b/sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md deleted file mode 100644 index 518256d0e9..0000000000 --- a/sources/news/20160227 Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news.md +++ /dev/null @@ -1,72 +0,0 @@ -Zephyr Project for Internet of Things, releases from Facebook, IBM, Yahoo, and more news -=========================================================================================== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/weekly_news_roundup_tv.png?itok=eqUoW1gU) - -In this week's edition of our open source news roundup, we take a look at the new IoT project from the Linux Foundation, three big corporations releasing open source, and more. - -**News roundup for February 21 - 26, 2016** - -### Linux Foundation unveils the Zephyr Project - -The Internet of Things (IoT) is shaping up to be the next big thing in consumer technology. At the moment, most IoT solutions are proprietary and closed source. Open source is making numerous in-roads into the IoT world, and that's undoubtedly going to accelerate now that the Linux Foundation has [announced the Zephyr Project][1]. - -The Zephyr Project, according to ZDNet, "hopes to bring vendors and developers together under a single operating system which could make the development of connected devices an easier, less expensive and more stable process." The Project "aims to incorporate input from the open source and embedded developer communities and to encourage collaboration on the RTOS (real-time operating system)," according to the [Linux Foundation's press release][2]. - -Currently, Intel Corporation, NXP Semiconductors N.V., Synopsys, Inc., and UbiquiOS Technology Limited are the main supporters of the project. The Linux Foundation intends to attract other IoT vendors to this effort as well. - -### Releases from Facebook, IBM, Yahoo - -As we all know, open source isn't just about individuals or small groups hacking on code and hardware. Quite a few large corporations have significant investments in open source. This past week, three of them affirmed their commitment to open source. - -Yahoo again waded into open source waters this week with the [release of CaffeOnSpark][3] artificial intelligence software under an Apache 2.0 license. CaffeOnSpark performs "a popular type of AI called 'deep learning' on the vast swaths of data kept in its Hadoop open-source file system for storing big data," according to VentureBeat. If you're curious, you can [find the source code on GitHub][4]. - -Earlier this week, Facebook "[unveiled a new project that seeks not only to accelerate the evolution of technologies that drive our mobile networks, but to freely share this work with the world’s telecoms][5]," according to Wired. The company plans to build "everything from new wireless radios to nee optical fiber equipment." The designs, according to Facebook, will be open source so any telecom firm can use them. - -As part of the [Open Mainframe Project][6], IBM has open sourced the code for its Anomaly Detection Engine (ADE) for Linux logs. [According to IBM][7], "ADE detects anomalous time slices and messages in Linux logs using statistical learning" to detect suspicious behaviour. You can grab the [source code for ADE][8] from GitHub. - -### European Union to fund research - -The European Research Council, the European Union's science and technology funding body, is [funding four open source research projects][9] to the tune of about €2 million. According to joinup.ec.europa.eu, the projects being funded are: - -- A code audit of Mozilla's open source Rust programming language - -- An initiative at INRIA (France's national computer science research center) studying secure programming - -- A project at Austria's Technische Universitat Graz testing "ways to secure code against attacks that exploit certain properties of the computer hardware" - -- The "development of techniques to prove popular cryptographic protocols and schemes" at IST Austria - -### In other news - -- [Infosys' newest weapon: open source][10] - -- [Intel demonstrates Android smartphone running a Linux desktop][11] - -- [BeeGFS file system goes open source][12] - -A big thanks, as always, to the Opensource.com moderators and staff for their help this week. - --------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/2/weekly-news-feb-26 - -作者:[Scott Nesbitt][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/scottnesbitt -[1]: http://www.zdnet.com/article/the-linux-foundations-zephyr-project-building-an-operating-system-for-iot-devices/ -[2]: http://www.linuxfoundation.org/news-media/announcements/2016/02/linux-foundation-announces-project-build-real-time-operating-system -[3]: http://venturebeat.com/2016/02/24/yahoo-open-sources-caffeonspark-deep-learning-framework-for-hadoop/ -[4]: https://github.com/yahoo/CaffeOnSpark -[5]: http://www.wired.com/2016/02/facebook-open-source-wireless-gear-forge-5g-world/ -[6]: https://www.openmainframeproject.org/ -[7]: http://openmainframeproject.github.io/ade/ -[8]: https://github.com/openmainframeproject/ade -[9]: https://joinup.ec.europa.eu/node/149541 -[10]: http://www.businessinsider.in/Exclusive-Infosys-is-using-Open-Source-as-its-mostlethal-weapon-yet/articleshow/51109129.cms -[11]: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ -[12]: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/ diff --git a/sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md b/sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md deleted file mode 100644 index 659df2e1f3..0000000000 --- a/sources/news/20160229 Node.js 5.7 released ahead of impending OpenSSL updates.md +++ /dev/null @@ -1,42 +0,0 @@ -Node.js 5.7 released ahead of impending OpenSSL updates -============================================================= - -![](http://images.techhive.com/images/article/2014/09/nodejs-100449932-primary.idge.jpg) - ->Once again, OpenSSL fixes must be evaluated by keepers of the popular server-side JavaScript platform - -The Node.js Foundation is gearing up this week for fixes to OpenSSL that could mean updates to Node.js itself. - -Releases to OpenSSL due on Tuesday will fix defects deemed to be of "high" severity, Rod Vagg, foundation technical steering committee director, said [in a blog post][1] on Monday. Within a day of the OpenSSL releases, the Node.js crypto team will assess their impacts, saying, "Please be prepared for the possibility of important updates to Node.js v0.10, v0.12, v4 and v5 soon after Tuesday, the 1st of March." - -[ Deep Dive: [How to rethink security for the new world of IT][2]. | Discover how to secure your systems with InfoWorld's [Security newsletter][3]. ] - -The high severity status actually means the issues are of lower risks than critical, perhaps affecting less-common configurations or less likely to be exploitable. Due to an embargo, the exact nature of these fixes and their impact on Node.js remain uncertain, said Vagg. "Node.js v0.10 and v0.12 both use OpenSSL v1.0.1, and Node.js v4 and v5 both use OpenSSL v1.0.2, and releases from nodejs.org and some other popular distribution sources are statically compiled. Therefore, all active release lines are impacted by this update." OpenSSL also impacted Node.js in December, [when two critical vulnerabilities were fixed][4]. - -The latest OpenSSL developments follow [the release of Node.js 5.7.0][5], which is clearing a path for the upcoming Node.js 6. Version 5 is the main focus for active development, said foundation representative Mikeal Rogers, "However, v5 won't be supported long-term, and most users will want to wait for v6, which will be released by the end of April, for the new features that are landing in v5." - -Release 5.7 has more predictability for C++ add-ons' interactions with JavaScript. Node.js can invoke JavaScript code from C++ code, and in version 5.7, the C++ node::MakeCallback() API is now re-entrant; calling it from inside another MakeCallback() call no longer causes the nextTick queue or Promises microtask queue to be processed out of order, [according to release notes][6]. - -Also fixed is an HTTP bug where handling headers mistakenly trigger an "upgrade" event where the server just advertises protocols. The bug can prevent HTTP clients from communicating with HTTP2-enabled servers. Version 5.7 performance improvements are featured in the path, querystring, streams, and process.nextTick modules. - -This story, "Node.js 5.7 released ahead of impending OpenSSL updates" was originally published by [InfoWorld][7]. - - --------------------------------------------------------------------------------- - -via: http://www.itworld.com/article/3039005/security/nodejs-57-released-ahead-of-impending-openssl-updates.html - -作者:[Paul Krill][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.itworld.com/author/Paul-Krill/ -[1]: https://nodejs.org/en/blog/vulnerability/openssl-march-2016/ -[2]: http://www.infoworld.com/resources/17273/security-management/how-to-rethink-security-for-the-new-world-of-it#tk.ifw-infsb -[3]: http://www.infoworld.com/newsletters/signup.html#tk.ifw-infsb -[4]: http://www.infoworld.com/article/3012157/security/why-nodejs-waited-for-openssl-security-update-before-patching.html -[5]: https://nodejs.org/en/blog/release/v5.7.0/ -[6]: https://nodejs.org/en/blog/release/v5.7.0/ -[7]: http://www.infoworld.com/ diff --git a/sources/news/20160318 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md b/sources/news/20160318 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md deleted file mode 100644 index 059ea0cfe1..0000000000 --- a/sources/news/20160318 Robolinux-8.4-LTS-Raptor-Series-Announced-Based-on-Debian-GNU-Linux 8 Jessie.md +++ /dev/null @@ -1,40 +0,0 @@ -Robolinux 8.4 LTS "Raptor" Series Announced, Based on Debian GNU/Linux 8 Jessie -==================================================================================== - -keyword : Robolinux 8.4 LTS , Robolinux 8.4 Cinnamon , Robolinux 8.4 MATE , Robolinux 8.4 Xfce , Debian 8 - -> It runs Windows 7 and 10 virus-free in stealth VMs - -### The developer of the Robolinux project has announced the release of his latest Robolinux 8.4 LTS "Raptor" series of Debian-based operating systems, which includes numerous software updates and performance improvements. - -Usually, the Robolinux developer [announces][1] only one edition at a time for a new major release of the GNU/Linux distribution, but today's announcement includes details about the availability for download of the Robolinux 8.4 LTS Cinnamon, MATE, Xfce, and LXDE editions, as both 64-bit and 32-bit variants. - -The long-term supported Robolinux 8.4 series of distributions has been in development for the last three and a half months, during which it has been synchronized with the upstream Debian GNU/Linux 8 (Jessie) repositories, thus adding all the latest security patches and software updates. - -"Three and a half months of hard work went into finding every way possible to optimize and speed up our series 8 Robolinux 'Raptor' operating systems," say the devs. "The result is we have significantly decreased the time it takes to load applications, bootup and shutdown all four of our upgraded Robolinux Raptor series versions. - -### The Raptor series is supported until 2020 - -Powered by Debian GNU/Linux 8's Linux 3.16 kernel, all the Robolinux 8.4 LTS "Raptor" editions have been rebased on the current stable Debian 8.3 source code, including over 180 upstream security and application updates. As Google ended support for the 32-bit version of its Google Chrome web browser, Robolinux now switches to Chromium. - -Other important software updates include the Mozilla Firefox 45.0 web browser, Mozilla Thunderbird 38.7.0 email and news client, Tor Browser 5.5, and VirtualBox 5.0. As usual, all Robolinux flavors come with numerous popular apps, including but not limited to Google Earth, Skype, Tor, I2P, Kazam, and a collection of useful security and privacy apps. - -Robolinux is a distribution targeted at new Linux users, so as expected, it includes the stealth virtual machine technology that lets them run the Microsoft Windows XP, Windows 7, and Windows 10 operating systems virus-free. Best of all, the Robolinux 8 "Raptor" LTS series is supported with software updates and security patches until the year 2020. - -While newcomers can [download the Robolinux 8.4 LTS Cinnamon, MATE][2], [Xfce][3], and [LXDE][4] editions right now from our website, current Robolinux 8 users can upgrade to the 8.4 release using the built-in "Robolinux Auto Upgrade" button in the Applications Menu. - --------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/robolinux-8-4-lts-raptor-series-announced-based-on-debian-gnu-linux-8-jessie-501899.shtml - -作者:[Marius Nestor][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://news.softpedia.com/editors/browse/marius-nestor -[1]: https://robolinux.org/downloads/v8.4-details.html -[2]: http://linux.softpedia.com/get/System/Operating-Systems/Linux-Distributions/Robolinux-102332.shtml -[3]: http://linux.softpedia.com/get/Linux-Distributions/Robolinux-Xfce-103540.shtml -[4]: http://linux.softpedia.com/get/Linux-Distributions/Robolinux-LXDE-103691.shtml diff --git a/sources/share/20150901 5 best open source board games to play online.md b/sources/share/20150901 5 best open source board games to play online.md deleted file mode 100644 index c14fecc697..0000000000 --- a/sources/share/20150901 5 best open source board games to play online.md +++ /dev/null @@ -1,194 +0,0 @@ -5 best open source board games to play online -================================================================================ -I have always had a fascination with board games, in part because they are a device of social interaction, they challenge the mind and, most importantly, they are great fun to play. In my misspent youth, myself and a group of friends gathered together to escape the horrors of the classroom, and indulge in a little escapism. The time provided an outlet for tension and rivalry. Board games help teach diplomacy, how to make and break alliances, bring families and friends together, and learn valuable lessons. - -I had a panache for abstract strategy games such as chess and draughts, as well as word games. I can still never resist a game of Escape from Colditz, a strategy card and dice-based board game, or Risk; two timeless multi-player strategy board games. But Catan remains my favourite board game. - -Board games have seen a resurgence in recent years, and Linux has a good range of board games to choose from. There is a credible implementation of Catan called Pioneers. But for my favourite implementations of classic board games to play online, check out the recommendations below. - ----------- - -### TripleA ### - -![TripleA in action](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-TripleA.png) - -TripleA is an open source online turn based strategy game. It allows people to implement and play various strategy board games (ie. Axis & Allies). The TripleA engine has full networking support for online play, support for sounds, XML support for game files, and has its own imaging subsystem that allows for customized user editable maps to be used. TripleA is versatile, scalable and robust. - -TripleA started out as a World War II simulation, but now includes different conflicts, as well as variations and mods of popular games and maps. TripleA comes with multiple games and over 100 more games can be downloaded from the user community. - -Features include: - -- Good interface and attractive graphics -- Optional scenarios -- Multiplayer games -- TripleA comes with the following supported games that uses its game engine (just to name a few): - - Axis & Allies : Classic edition (2nd, 3rd with options enabled) - - Axis & Allies : Revised Edition - - Pact of Steel A&A Variant - - Big World 1942 A&A Variant - - Four if by Sea - - Battle Ship Row - - Capture The Flag - - Minimap -- Hot-seat -- Play By EMail mode allows persons to play a game via EMail without having to be connected to each other online - - More time to think out moves - - Only need to come online to send your turn to the next player - - Dice rolls are done by a dedicated dice server that is independent of TripleA - - All dice rolls are PGP Verified and email to every player - - Every move and every dice roll is logged and saved in TripleA's History Window - - An online game can be later continued under PBEM mode - - Hard for others to cheat -- Hosted online lobby -- Utilities for editing maps -- Website: [triplea.sourceforge.net][1] -- Developer: Sean Bridges (original developer), Mark Christopher Duncan -- License: GNU GPL v2 -- Version Number: 1.8.0.7 - ----------- - -### Domination ### - -![Domination in action](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Domination.png) - -Domination is an open source game that shares common themes with the hugely popular Risk board game. It has many game options and includes many maps. - -In the classic “World Domination” game of military strategy, you are battling to conquer the world. To win, you must launch daring attacks, defend yourself to all fronts, and sweep across vast continents with boldness and cunning. But remember, the dangers, as well as the rewards, are high. Just when the world is within your grasp, your opponent might strike and take it all away! - -Features include: - -- Simple to learn - - Domination - you must occupy all countries on the map, and thereby eliminate all opponents. These can be long, drawn out games - - Capital - each player has a country they have selected as a Capital. To win the game, you must occupy all Capitals - - Mission - each player draws a random mission. The first to complete their mission wins. Missions may include the elimination of a certain colour, occupation of a particular continent, or a mix of both -- Map editor -- Simple map format -- Multiplayer network play -- Single player -- Hotseat -- 5 user interfaces -- Game types: -- Play online -- Website: [domination.sourceforge.net][2] -- Developer: Yura Mamyrin, Christian Weiske, Mike Chaten, and many others -- License: GNU GPL v3 -- Version Number: 1.1.1.5 - ----------- - -### PyChess ### - -![Micro-Max in action](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-Pychess.jpg) - -PyChess is a Gnome inspired chess client written in Python. - -The goal of PyChess, is to provide a fully featured, nice looking, easy to use chess client for the gnome-desktop. - -The client should be usable both to those totally new to chess, those who want to play an occasional game, and those who wants to use the computer to further enhance their play. - -Features include: - -- Attractive interface -- Chess Engine Communication Protocol (CECP) and Univeral Chess Interface (UCI) Engine support -- Free online play on the Free Internet Chess Server (FICS) -- Read and writes PGN, EPD and FEN chess file formats -- Built-in Python based engine -- Undo and pause functions -- Board and piece animation -- Drag and drop -- Tabbed interface -- Hints and spyarrows -- Opening book sidepanel using sqlite -- Score plot sidepanel -- "Enter game" in pgn dialog -- Optional sounds -- Legal move highlighting -- Internationalised or figure pieces in notation -- Website: [www.pychess.org][3] -- Developer: Thomas Dybdahl Ahle -- License: GNU GPL v2 -- Version Number: 0.12 Anderssen rc4 - ----------- - -### Scrabble ### - -![Scrabble in action](http://www.linuxlinks.com/portal/content/reviews/Games2/Screenshot-Scrabble3D.png) - -Scrabble3D is a highly customizable Scrabble game that not only supports Classic Scrabble and Superscrabble but also 3D games and own boards. You can play local against the computer or connect to a game server to find other players. - -Scrabble is a board game with the goal to place letters crossword like. Up to four players take part and get a limited amount of letters (usually 7 or 8). Consecutively, each player tries to compose his letters to one or more word combining with the placed words on the game array. The value of the move depends on the letters (rare letter get more points) and bonus fields which multiply the value of a letter or the whole word. The player with most points win. - -This idea is extended with Scrabble3D to the third dimension. Of course, a classic game with 15x15 fields or Superscrabble with 21x21 fields can be played and you may configure any field setting by yourself. The game can be played by the provided freeware program against Computer, other local players or via internet. Last but not least it's possible to connect to a game server to find other players and to obtain a rating. Most options are configurable, including the number and valuation of letters, the used dictionary, the language of dialogs and certainly colors, fonts etc. - -Features include: - -- Configurable board, letterset and design -- Board in OpenGL graphics with user-definable wavefront model -- Game against computer with support of multithreading -- Post-hoc game analysis with calculation of best move by computer -- Match with other players connected on a game server -- NSA rating and highscore at game server -- Time limit of games -- Localization; use of non-standard digraphs like CH, RR, LL and right to left reading -- Multilanguage help / wiki -- Network games are buffered and asynchronous games are possible -- Running games can be kibitzed -- International rules including italian "Cambio Secco" -- Challenge mode, What-if-variant, CLABBERS, etc -- Website: [sourceforge.net/projects/scrabble][4] -- Developer: Heiko Tietze -- License: GNU GPL v3 -- Version Number: 3.1.3 - ----------- - -### Backgammon ### - -![Backgammon in action](http://www.linuxlinks.com/portal/content/reviews/Games/Screenshot-gnubg.png) - -GNU Backgammon (gnubg) is a strong backgammon program (world-class with a bearoff database installed) usable either as an engine by other programs or as a standalone backgammon game. It is able to play and analyze both money games and tournament matches, evaluate and roll out positions, and more. - -In addition to supporting simple play, it also has extensive analysis features, a tutor mode, adjustable difficulty, and support for exporting annotated games. - -It currently plays at about the level of a championship flight tournament player and is gradually improving. - -gnubg can be played on numerous on-line backgammon servers, such as the First Internet Backgammon Server (FIBS). - -Features include: - -- A command line interface (with full command editing features if GNU readline is available) that lets you play matches and sessions against GNU Backgammon with a rough ASCII representation of the board on text terminals -- Support for a GTK+ interface with a graphical board window. Both 2D and 3D graphics are available -- Tournament match and money session cube handling and cubeful play -- Support for both 1-sided and 2-sided bearoff databases: 1-sided bearoff database for 15 checkers on the first 6 points and optional 2-sided database kept in memory. Optional larger 1-sided and 2-sided databases stored on disk -- Automated rollouts of positions, with lookahead and race variance reduction where appropriate. Rollouts may be extended -- Functions to generate legal moves and evaluate positions at varying search depths -- Neural net functions for giving cubeless evaluations of all other contact and race positions -- Automatic and manual annotation (analysis and commentary) of games and matches -- Record keeping of statistics of players in games and matches (both native inside GNU Backgammon and externally using relational databases and Python) -- Loading and saving analyzed games and matches as .sgf files (Smart Game Format) -- Exporting positions, games and matches to: (.eps) Encapsulated Postscript, (.gam) Jellyfish Game, (.html) HTML, (.mat) Jellyfish Match, (.pdf) PDF, (.png) Portable Network Graphics, (.pos) Jellyfish Position, (.ps) PostScript, (.sgf) Gnu Backgammon File, (.tex) LaTeX, (.txt) Plain Text, (.txt) Snowie Text -- Import of matches and positions from a number of file formats: (.bkg) Hans Berliner's BKG Format, (.gam) GammonEmpire Game, (.gam) PartyGammon Game, (.mat) Jellyfish Match, (.pos) Jellyfish Position, (.sgf) Gnu Backgammon File, (.sgg) GamesGrid Save Game, (.tmg) TrueMoneyGames, (.txt) Snowie Text -- Python Scripting -- Native language support; 10 languages complete or in progress -- Website: [www.gnubg.org][5] -- Developer: Joseph Heled, Oystein Johansen, Jonathan Kinsey, David Montgomery, Jim Segrave, Joern Thyssen, Gary Wong and contributors -- License: GPL v2 -- Version Number: 1.05.000 - --------------------------------------------------------------------------------- - -via: http://www.linuxlinks.com/article/20150830011533893/BoardGames.html - -作者:Frazer Kline -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[1]:http://triplea.sourceforge.net/ -[2]:http://domination.sourceforge.net/ -[3]:http://www.pychess.org/ -[4]:http://sourceforge.net/projects/scrabble/ -[5]:http://www.gnubg.org/ diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md b/sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md deleted file mode 100644 index b99752ea7b..0000000000 --- a/sources/share/20151028 Bossie Awards 2015--The best open source application development tools.md +++ /dev/null @@ -1,336 +0,0 @@ -Bossie Awards 2015: The best open source application development tools -================================================================================ -InfoWorld's top picks among platforms, frameworks, databases, and all the other tools that programmers use - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-app-dev-100613767-orig.jpg) - -### The best open source development tools ### - -There must be a better way, right? The developers are the ones who find it. This year's winning projects in the application development category include client-side frameworks, server-side frameworks, mobile frameworks, databases, languages, libraries, editors, and yeah, Docker. These are our top picks among all of the tools that make it faster and easier to build better applications. - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-docker-100613773-orig.jpg) - -### Docker ### - -The darling of container fans almost everywhere, [Docker][2] provides a low-overhead way to isolate an application or service’s environment, which serves its stated goal of being an open platform for building, shipping, and running distributed applications. Docker has been widely supported, even among those seeking to replace the Docker container format with an alternative, more secure runtime and format, specifically Rkt and AppC. Heck, Microsoft Visual Studio now supports deploying into a Docker container too. - -Docker’s biggest impact has been on virtual machine environments. Since Docker containers run inside the operating system, many more Docker containers than virtual machines can run in a given amount of RAM. This is important because RAM is usually the scarcest and most expensive resource in a virtualized environment. - -There are hundreds of thousands of runnable public images on Docker Hub, of which a few hundred are official, and the rest are from the community. You describe Docker images with a Dockerfile and build images locally from the Docker command line. You can add both public and private image repositories to Docker Hub. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-nodejs-iojs-100613778-orig.jpg) - -### Node.js and io.js ### - -[Node.js][2] -- and its recently reunited fork [io.js][3] -- is a platform built on [Google Chrome's V8 JavaScript runtime][4] for building fast, scalable, network applications. Node uses an event-driven, nonblocking I/O model without threads. In general, Node tends to take less memory and CPU resources than other runtime engines, such as Java and the .Net Framework. For example, a typical Node.js Web server can run well in a 512MB instance on Cloud Foundry or a 512MB Docker container. - -The Node repository on GitHub has more than 35,000 stars and more than 8,000 forks. The project, sponsored primarily by Joyent, has more than 600 contributors. Some of the more famous Node applications are 37Signals, [Ancestry.com][5], Chomp, the Wall Street Journal online, FeedHenry, [GE.com][6], Mockingbird, [Pearson.com][7], Shutterstock, and Uber. The popular IoT back-end Node-RED is built on Node, as are many client apps, such as Brackets and Nuclide. - --- Martin Heller - -![](rticle/2015/09/bossies-2015-angularjs-100613766-orig.jpg) - -### AngularJS ### - -[AngularJS][8] (or simply Angular, among friends) is a Model-View-Whatever (MVW) JavaScript AJAX framework that extends HTML with markup for dynamic views and data binding. Angular is especially good for developing single-page Web applications and linking HTML forms to models and JavaScript controllers. - -The weird sounding Model-View-Whatever pattern is an attempt to include the Model-View-Controller, Model-View-ViewModel, and Model-View-Presenter patterns under one moniker. The differences among these three closely related patterns are the sorts of topics that programmers love to argue about fiercely; the Angular developers decided to opt out of the discussion. - -Basically, Angular automatically synchronizes data from your UI (view) with your JavaScript objects (model) through two-way data binding. To help you structure your application better and make it easy to test, AngularJS teaches the browser how to do dependency injection and inversion of control. - -Angular was created by Google and open-sourced under the MIT license; there are currently more than 1,200 contributors to the project on GitHub, and the repository has more than 40,000 stars and 18,000 forks. The Angular site lists [210 “neat things” built with Angular][9]. - --- Martin Heller - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-react-100613782-orig.jpg) - -### React ### - -[React][10] is a JavaScript library for building a UI or view, typically for single-page applications. Note that React does not implement anything having to do with a model or controller. React pages can render on the server or the client; rendering on the server (with Node.js) is typically much faster. People often combine React with AngularJS to create complete applications. - -React combines JavaScript and HTML in a single file, optionally a JSX component. React fans like the way JSX components combine views and their related functionality in one file, though that flies in the face of the last decade of Web development trends, which were all about separating the markup and the code. React fans also claim that you can’t understand it until you’ve tried it. Perhaps you should; the React repository on GitHub has 26,000 stars. - -[React Native][11] implements React with native iOS controls; the React Native command line uses Node and Xcode. [ReactJS.Net][12] integrates React with [ASP.Net][13] and C#. React is available under a BSD license with a patent license grant from Facebook. - --- Martin Heller - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-atom-100613768-orig.jpg) - -### Atom ### - -[Atom][14] is an open source, hackable desktop editor from GitHub, based on Web technologies. It’s a full-featured tool with a fuzzy finder; fast projectwide search and replace; multiple cursors and selections; multiple panes, snippets, code folding; and the ability to import TextMate grammars and themes. Out of the box, Atom displayed proper syntax highlighting for every programming language on which I tried it, except for F# and C#; I fixed that easily by loading those packages from within Atom. Not surprising, Atom has tight integration with GitHub. - -The skeleton of Atom has been separated from the guts and called the Electron shell, providing an open source way to build cross-platform desktop apps with Web technologies. Visual Studio Code is built on the Electron shell, as are a number of proprietary and open source apps, including Slack and Kitematic. Facebook Nuclide adds significant functionality to Atom, including remote development and support for Flow, Hack, and Mercurial. - -On the downside, updating Atom packages can become painful, especially if you have many of them installed. The Nuclide packages seem to be the worst offenders -- they not only take a long time to update, they run CPU-intensive Node processes to do so. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-brackets-100613769-orig.jpg) - -### Brackets ### - -[Brackets][15] is a lightweight editor for Web design that Adobe developed and open-sourced, drawing heavily on other open source projects. The idea is to build better tooling for JavaScript, HTML, CSS, and related open Web technologies. Brackets itself is written in JavaScript, HTML, and CSS, and the developers use Brackets to build Brackets. The editor portion is based on another open source project, CodeMirror, and the Brackets native shell is based on Google’s Chromium Embedded Framework. - -Brackets features a clean UI, with the ability to open a quick inline editor that displays all of the related CSS for some HTML, or all of the related JavaScript for some scripting, and a live preview for Web pages that you are editing. New in Brackets 1.4 is instant search in files, easier preferences editing, the ability to enable and disable extensions individually, improved text rendering on Macs, and Greek and Cyrillic character support. Last November, Adobe started shipping a preview version of Extract for Brackets, which can pull out design information from Photoshop files, as part of the default download for Brackets. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-typescript-100613786-orig.jpg) - -### TypeScript ### - -[TypeScript][16] is a portable, duck-typed superset of JavaScript that compiles to plain JavaScript. The goal of the project is to make JavaScript usable for large applications. In pursuit of that goal, TypeScript adds optional types, classes, and modules to JavaScript, and it supports tools for large-scale JavaScript applications. Typing gets rid of some of the nonsensical and potentially buggy default behavior in JavaScript, for example: - - > 1 + "1" - '11' - -“Duck” typing means that the type checking focuses on the shape of the data values; TypeScript describes basic types, interfaces, and classes. While the current version of JavaScript does not support traditional, class-based, object-oriented programming, the ECMAScript 6 specification does. TypeScript compiles ES6 classes into plain, compatible JavaScript, with prototype-based objects, unless you enable ES6 output using the `--target` compiler option. - -Visual Studio includes TypeScript in the box, starting with Visual Studio 2013 Update 2. You can also edit TypeScript in Visual Studio Code, WebStorm, Atom, Sublime Text, and Eclipse. - -When using an external JavaScript library, or new host API, you'll need to use a declaration file (.d.ts) to describe the shape of the library. You can often find declaration files in the [DefinitelyTyped][17] repository, either by browsing, using the [TSD definition manager][18], or using NuGet. - -TypeScript’s GitHub repository has more than 6,000 stars. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-swagger-100613785-orig.jpg) - -### Swagger ### - -[Swagger][19] is a language-agnostic interface to RESTful APIs, with tooling that gives you interactive documentation, client SDK generation, and discoverability. It’s one of several recent attempts to codify the description of RESTful APIs, in the spirit of WSDL for XML Web Services (2000) and CORBA for distributed object interfaces (1991). - -The tooling makes Swagger especially interesting. [Swagger-UI][20] automatically generates beautiful documentation and a live API sandbox from a Swagger-compliant API. The [Swagger codegen][21] project allows generation of client libraries automatically from a Swagger-compliant server. - -[Swagger Editor][22] lets you edit Swagger API specifications in YAML inside your browser and preview documentations in real time. Valid Swagger JSON descriptions can then be generated and used with the full Swagger tooling. - -The [Swagger JS][23] library is a fast way to enable a JavaScript client to communicate with a Swagger-enabled server. Additional clients exist for Clojure, Go, Java, .Net, Node.js, Perl, PHP, Python, Ruby, and Scala. - -The [Amazon API Gateway][24] is a managed service for API management at scale. It can import Swagger specifications using an open source [Swagger Importer][25] tool. - -Swagger and friends use the Apache 2.0 license. - --- Martin Heller - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-polymer-100613781-orig.jpg) - -### Polymer ### - -The [Polymer][26] library is a lightweight, “sugaring” layer on top of the Web components APIs to help in building your own Web components. It adds several features for greater ease in building complex elements, such as creating custom element registration, adding markup to your element, configuring properties on your element, setting the properties with attributes, data binding with mustache syntax, and internal styling of elements. - -Polymer also includes libraries of prebuilt elements. The Iron library includes elements for working with layout, user input, selection, and scaffolding apps. The Paper elements implement Google's Material Design. The Gold library includes elements for credit card input fields for e-commerce, the Neon elements implement animations, the Platinum library implements push messages and offline caching, and the Google Web Components library is exactly what it says; it includes wrappers for YouTube, Firebase, Google Docs, Hangouts, Google Maps, and Google Charts. - -Polymer Molecules are elements that wrap other JavaScript libraries. The only Molecule currently implemented is for marked, a Markdown library. The Polymer repository on GitHub currently has 12,000 stars. The software is distributed under a BSD-style license. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-ionic-100613775-orig.jpg) - -### Ionic ### - -The [Ionic][27] framework is a front-end SDK for building hybrid mobile apps, using Angular.js and Cordova, PhoneGap, or Trigger.io. Ionic was designed to be similar in spirit to the Android and iOS SDKs, and to do a minimum of DOM manipulation and use hardware-accelerated transitions to keep the rendering speed high. Ionic is focused mainly on the look and feel and UI interaction of your app. - -In addition to the framework, Ionic encompasses an ecosystem of mobile development tools and resources. These include Chrome-based tools, Angular extensions for Cordova capabilities, back-end services, a development server, and a shell View App to enable testers to use your Ionic code on their devices without the need for you to distribute beta apps through the App Store or Google Play. - -Appery.io integrated Ionic into its low-code builder in July 2015. Ionic’s GitHub repository has more than 18,000 stars and more than 3,000 forks. Ionic is distributed under an MIT license and currently runs in UIWebView for iOS 7 and later, and in Android 4.1 and up. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-cordova-100613771-orig.jpg) - -### Cordova ### - -[Apache Cordova][28] is the open source project spun off when Adobe acquired PhoneGap from Nitobi. Cordova is a set of device APIs, plus some tooling, that allows a mobile app developer to access native device functionality like the camera and accelerometer from JavaScript. When combined with a UI framework like Angular, it allows a smartphone app to be developed with only HTML, CSS, and JavaScript. By using Cordova plug-ins for multiple devices, you can generate hybrid apps that share a large portion of their code but also have access to a wide range of platform capabilities. The HTML5 markup and code runs in a WebView hosted by the Cordova shell. - -Cordova is one of the cross-platform mobile app options supported by Visual Studio 2015. Several companies offer online builders for Cordova apps, similar to the Adobe PhoneGap Build service. Online builders save you from having to install and maintain most of the device SDKs on which Cordova relies. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-famous-100613774-orig.jpg) - -### Famous Engine ### - -The high-performance Famo.us JavaScript framework introduced last year has become the [Famous Engine][29] and [Famous Framework][30]. The Famous Engine runs in a mixed mode, with the DOM and WebGL under a single coordinate system. As before, Famous structures applications in a scene graph hierarchy, but now it produces very little garbage (reducing the garbage collector overhead) and sustains 60FPS animations. - -The Famous Physics engine has been refactored to its own, fine-grained module so that you can load only the features you need. Other improvements since last year include streamlined eventing, improved sizing, decoupling the scene graph from the rendering pipeline by using a draw command buffer, and switching to a fully open MIT license. - -The new Famous Framework is an alpha-stage developer preview built on the Famous Engine; its goal is creating reusable, composable, and interchangeable UI widgets and applications. Eventually, Famous hopes to replace the jQuery UI widgets with Famous Framework widgets, but while it's promising, the Famous Framework is nowhere near production-ready. - --- Martin Heller - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-mongodb-rev-100614248-orig.jpg) - -### MongoDB ### - -[MongoDB][31] is no stranger to the Bossies or to the ever-growing and ever-competitive NoSQL market. If you still aren't familiar with this very popular technology, here's a brief overview: MongoDB is a cross-platform document-oriented database, favoring JSON-like documents with dynamic schemas that make data integration easier and faster. - -MongoDB has attractive features, including but not limited to ad hoc queries, flexible indexing, replication, high availability, automatic sharding, load balancing, and aggregation. - -The big, bold move with [version 3.0 this year][32] was the new WiredTiger storage engine. We can now have document-level locking. This makes “normal” applications a whole lot more scalable and makes MongoDB available to more use cases. - -MongoDB has a growing open source ecosystem with such offerings as the [TokuMX engine][33], from the famous MySQL bad boys Percona. The long list of MongoDB customers includes heavy hitters such as Craigslist, eBay, Facebook, Foursquare, Viacom, and the New York Times. - --- Andrew Oliver - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-couchbase-100614851-orig.jpg) - -### Couchbase ### - -[Couchbase][34] is another distributed, document-oriented database that has been making waves in the NoSQL world for quite some time now. Couchbase and MongoDB often compete, but they each have their sweet spots. Couchbase tends to outperform MongoDB when doing more in memory is possible. - -Additionally, Couchbase’s mobile features allow you to disconnect and ship a database in compact format. This allows you to scale down as well as up. This is useful not just for mobile devices but also for specialized applications, like shipping medical records across radio waves in Africa. - -This year Couchbase added N1QL, a SQL-based query language that did away with Couchbase’s biggest obstacle, requiring static views. The new release also introduced multidimensional scaling. This allows individual scaling of services such as querying, indexing, and data storage to improve performance, instead of adding an entire, duplicate node. - --- Andrew C. Oliver - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-cassandra-100614852-orig.jpg) - -### Cassandra ### - -[Cassandra][35] is the other white meat of column family databases. HBase might be included with your favorite Hadoop distribution, but Cassandra is the one people deliberately deploy for specialized applications. There are good reasons for this. - -Cassandra was designed for high workloads of both writes and reads where millisecond consistency isn't as important as throughput. HBase is optimized for reads and greater write consistency. To a large degree, Cassandra tends to be used for operational systems and HBase more for data warehouse and batch-system-type use cases. - -While Cassandra has not received as much attention as other NoSQL databases and slipped into a quiet period a couple years back, it is widely used and deployed, and it's a great fit for time series, product catalog, recommendations, and other applications. If you want to keep a cluster up “no matter what” with multiple masters and multiple data centers, and you need to scale with lots of reads and lots of writes, Cassandra might just be your Huckleberry. - --- Andrew C. Oliver - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-orientdb-100613780-orig.jpg) - -### OrientDB ### - -[OrientDB][36] is an interesting hybrid in the NoSQL world, combining features from a document database, where individual documents can have multiple fields without necessarily defining a schema, and a graph database, which consists of a set of nodes and edges. At a basic level, OrientDB considers the document as a vertex, and relationships between fields as graph edges. Because the relationships between elements are part of the record, no costly joins are required when querying data. - -Like most databases today, OrientDB offers linear scalability via a distributed architecture. Adding capacity is a matter of simply adding more nodes to the cluster. Queries are written in a variant of SQL that is extended to support graph concepts. It's not exactly SQL, but data analysts shouldn't have too much trouble adapting. Language bindings are available for most commonly used languages, such as R, Scala, .Net, and C, and those integrating OrientDB into their applications will find an active user community to get help from. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-rethinkdb-100613783-orig.jpg) - -### RethinkDB ### - -[RethinkDB][37] is a scalable, real-time JSON database with the ability to continuously push updated query results to applications that subscribe to changes. There are official RethinkDB drivers for Ruby, Python, and JavaScript/Node.js, and community-supported drivers for more than a dozen other languages, including C#, Go, and PHP. - -It’s temping to confuse RethinkDB with real-time sync APIs, such as Firebase and PubNub. RethinkDB can be run as a cloud service like Firebase and PubNub, but you can also install it on your own hardware or Docker containers. RethinkDB does more than synchronize: You can run arbitrary RethinkDB queries, including table joins, subqueries, geospatial queries, and aggregation. Finally, RethinkDB is designed to be accessed from an application server, not a browser. - -Where MongoDB requires you to poll the database to see changes, RethinkDB lets you subscribe to a stream of changes to a query result. You can shard and scale RethinkDB easily, unlike MongoDB. Also unlike relational databases, RethinkDB does not give you full ACID support or strong schema enforcement, although it can perform joins. - -The RethinkDB repository has 10,000 stars on GitHub, a remarkably high number for a database. It is licensed with the Affero GPL 3.0; the drivers are licensed with Apache 2.0. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-rust-100613784-orig.jpg) - -### Rust ### - -[Rust][38] is a syntactically C-like systems programming language from Mozilla Research that guarantees memory safety and offers painless concurrency (that is, no data races). It does not have a garbage collector and has minimal runtime overhead. Rust is strongly typed with type inference. This is all promising. - -Rust was designed for performance. It doesn’t yet demonstrate great performance, however, so now the mantra seems to be that it runs as fast as C++ code that implements all the safety checks built into Rust. I’m not sure whether I believe that, as in many cases the strictest safety checks for C/C++ code are done by static and dynamic analysis and testing, which don’t add any runtime overhead. Perhaps Rust performance will come with time. - -So far, the only tools for Rust are the Cargo package manager and the rustdoc documentation generator, plus a couple of simple Rust plug-ins for programming editors. As far as we have heard, there is no shipping software that was actually built with Rust. Now that Rust has reached the 1.0 milestone, we might expect that to change. - -Rust is distributed with a dual Apache 2.0 and MIT license. With 13,000 stars on its GitHub repository, Rust is certainly attracting attention, but when and how it will deliver real benefits remains to be seen. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opencv-100613779-orig.jpg) - -### OpenCV ### - -[OpenCV][39] (Open Source Computer Vision Library) is a computer vision and machine learning library that contains about 500 algorithms, such as face detection, moving object tracking, image stitching, red-eye removal, machine learning, and eye movement tracking. It runs on Windows, Mac OS X, Linux, Android, and iOS. - -OpenCV has official C++, C, Python, Java, and MATLAB interfaces, and wrappers in other languages such as C#, Perl, and Ruby. CUDA and OpenCL interfaces are under active development. OpenCV was originally (1999) an Intel Research project in Russia; from there it moved to the robotics research lab Willow Garage (2008) and finally to [OpenCV.org][39] (2012) with a core team at Itseez, current source on GitHub, and stable snapshots on SourceForge. - -Users of OpenCV include Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, and Toyota. There are currently more than 6,000 stars and 5,000 forks on the GitHub repository. The project uses a BSD license. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-llvm-100613777-orig.jpg) - -### LLVM ### - -The [LLVM Project][40] is a collection of modular and reusable compiler and tool chain technologies, which originated at the University of Illinois. LLVM has grown to include a number of subprojects, several of which are interesting in their own right. LLVM is distributed with Debian, Ubuntu, and Apple Xcode, among others, and it’s used in commercial products from the likes of Adobe (including After Effects), Apple (including Objective-C and Swift), Cray, Intel, NVIDIA, and Siemens. A few of the open source projects that depend on LLVM are PyPy, Mono, Rubinius, Pure, Emscripten, Rust, and Julia. Microsoft has recently contributed LLILC, a new LLVM-based compiler for .Net, to the .Net Foundation. - -The main LLVM subprojects are the core libraries, which provide optimization and code generation; Clang, a C/C++/Objective-C compiler that’s about three times faster than GCC; LLDB, a much faster debugger than GDB; libc++, an implementation of the C++ 11 Standard Library; and OpenMP, for parallel programming. - --- Martin Heller - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-main-100613823-orig.jpg) - -### Read about more open source winners ### - -InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners: - -[Bossie Awards 2015: The best open source applications][41] - -[Bossie Awards 2015: The best open source application development tools][42] - -[Bossie Awards 2015: The best open source big data tools][43] - -[Bossie Awards 2015: The best open source data center and cloud software][44] - -[Bossie Awards 2015: The best open source desktop and mobile software][45] - -[Bossie Awards 2015: The best open source networking and security software][46] - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2982920/open-source-tools/bossie-awards-2015-the-best-open-source-application-development-tools.html - -作者:[InfoWorld staff][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/InfoWorld-staff/ -[1]:https://www.docker.com/ -[2]:https://nodejs.org/en/ -[3]:https://iojs.org/en/ -[4]:https://developers.google.com/v8/?hl=en -[5]:http://www.ancestry.com/ -[6]:http://www.ge.com/ -[7]:https://www.pearson.com/ -[8]:https://angularjs.org/ -[9]:https://builtwith.angularjs.org/ -[10]:https://facebook.github.io/react/ -[11]:https://facebook.github.io/react-native/ -[12]:http://reactjs.net/ -[13]:http://asp.net/ -[14]:https://atom.io/ -[15]:http://brackets.io/ -[16]:http://www.typescriptlang.org/ -[17]:http://definitelytyped.org/ -[18]:http://definitelytyped.org/tsd/ -[19]:http://swagger.io/ -[20]:https://github.com/swagger-api/swagger-ui -[21]:https://github.com/swagger-api/swagger-codegen -[22]:https://github.com/swagger-api/swagger-editor -[23]:https://github.com/swagger-api/swagger-js -[24]:http://aws.amazon.com/cn/api-gateway/ -[25]:https://github.com/awslabs/aws-apigateway-importer -[26]:https://www.polymer-project.org/ -[27]:http://ionicframework.com/ -[28]:https://cordova.apache.org/ -[29]:http://famous.org/ -[30]:http://famous.org/framework/ -[31]:https://www.mongodb.org/ -[32]:http://www.infoworld.com/article/2878738/nosql/first-look-mongodb-30-for-mature-audiences.html -[33]:http://www.infoworld.com/article/2929772/nosql/mongodb-crossroads-growth-or-openness.html -[34]:http://www.couchbase.com/nosql-databases/couchbase-server -[35]:https://cassandra.apache.org/ -[36]:http://orientdb.com/ -[37]:http://rethinkdb.com/ -[38]:https://www.rust-lang.org/ -[39]:http://opencv.org/ -[40]:http://llvm.org/ -[41]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html -[42]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html -[43]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html -[44]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html -[45]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html -[46]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source applications.md b/sources/share/20151028 Bossie Awards 2015--The best open source applications.md deleted file mode 100644 index 29fced5cc9..0000000000 --- a/sources/share/20151028 Bossie Awards 2015--The best open source applications.md +++ /dev/null @@ -1,238 +0,0 @@ -Bossie Awards 2015: The best open source applications -================================================================================ -InfoWorld's top picks in open source business applications, enterprise integration, and middleware - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-applications-100614669-orig.jpg) - -### The best open source applications ### - -Applications -- ERP, CRM, HRM, CMS, BPM -- are not only fertile ground for three-letter acronyms, they're the engines behind every modern business. Our top picks in the category include back- and front-office solutions, marketing automation, lightweight middleware, heavyweight middleware, and other tools for moving data around, mixing it together, and magically transforming it into smarter business decisions. - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-xtuple-100614684-orig.jpg) - -### xTuple ### - -Small and midsize companies with light manufacturing or distribution needs have a friend in [xTuple][1]. This modular ERP/CRM combo bundles operations and financial control, product and inventory management, and CRM and sales support. Its relatively simple install lets you deploy all of the modules or only what you need today -- helping trim support costs without sacrificing customization later. - -This summer’s release brought usability improvements to the UI and a generous number of bug fixes. Recent updates also yielded barcode scanning and label printing for mobile warehouse workers, an enhanced workflow module (built with Plv8, a wrapper around Google’s V8 JavaScript engine that lets you write stored procedures for PostgreSQL in JavaScript), and quality management tools that are sure to get mileage on shop floors. - -The xTuple codebase is JavaScript from stem to stern. The server components can all be installed locally, in xTuple’s cloud, or deployed as an appliance. A mobile Web client, and mobile CRM features, augment a good native desktop client. - --- James R. Borck - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-odoo-100614678-orig.jpg) - -### Odoo ### - -[Odoo][2] used to be known as OpenERP. Last year the company raised private capital and broadened its scope. Today Odoo is a one-stop shop for back office and customer-facing applications -- replete with content management, business intelligence, and e-commerce modules. - -Odoo 8 fronts accounting, invoicing, project management, resource planning, and customer relationship management tools with a flexible Web interface that can be tailored to your company’s workflow. Add-on modules for warehouse management and HR, as well as for live chat and analytics, round out the solution. - -This year saw Odoo focused primarily on usability updates. A recently released sales planner helps sales groups track KPIs, and a new tips feature lends in-context help. Odoo 9 is right around the corner with alpha builds showing customer portals, Web form creation tools, mobile and VoIP services, and integration hooks to eBay and Amazon. - -Available for Windows and Linux, and as a SaaS offering, Odoo gives small and midsized companies an accessible set of tools to manage virtually every aspect of their business. - --- James R. Borck - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-idempiere-100614673-orig.jpg) - -### iDempiere ### - -Small and midsize companies have great choices in Odoo and xTuple. Larger manufacturing and distribution companies will need something more. For them, there’s [iDempiere][3] -- a well maintained offshoot of ADempiere with OSGi modularity. - -iDempiere implements a fully loaded ERP, supply chain, and CRM suite right out of the box. Built with Java, iDempiere supports both PostgreSQL and Oracle Database, and it can be customized extensively through modules built to the OSGi specification. iDempiere is perfectly suited to managing complex business scenarios involving multiple partners, requiring dynamic reporting, or employing point-of-sale and warehouse services. - -Being enterprise-ready comes with a price. iDempiere’s feature-rich tools and complexity impose a steep learning curve and require a commitment to integration support. Of course, those costs are offset by savings from the software’s free GPL2 licensing. iDempiere’s easy install script, small resource footprint, and clean interface also help alleviate some of the startup pains. There’s even a virtual appliance available on Sourceforge to get you started. - --- James R. Borck - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-suitecrm-100614680-orig.jpg) - -### SuiteCRM ### - -SugarCRM held the sweet spot in open source CRM since, well, forever. Then last year Sugar announced it would no longer contribute to the open source Community Edition. Into the ensuing vacuum rushed [SuiteCRM][4] – a fork of the final Sugar code. - -SuiteCRM 7.2 creates an experience on a par with SugarCRM Professional’s marketing, sales, and service tools. With add-on modules for workflow, reporting, and security, as well as new innovations like Lucene-driven search, taps for social media, and a beta reveal of new desktop notifications, SuiteCRM is on solid footing. - -The Advanced Open Sales module provides a familiar migration path from Sugar, while commercial support is available from the likes of [SalesAgility][5], the company that forked SuiteCRM in the first place. In little more than a year, SuiteCRM rescued the code, rallied an inspired community, and emerged as a new leader in open source CRM. Who needs Sugar? - --- James R. Borck - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-civicrm-100614671-orig.jpg) - -### CiviCRM ### - -We typically focus attention on CRM vis-à-vis small and midsize business requirements. But nonprofit and advocacy groups need to engage with their “customers” too. Enter [CiviCRM][6]. - -CiviCRM addresses the needs of nonprofits with tools for fundraising and donation processing, membership management, email tracking, and event planning. Granular access control and security bring role-based permissions to views, keeping paid staff and volunteers partitioned and productive. This year CiviCRM continued to develop with new features like simple A/B testing and monitoring for email campaigns. - -CiviCRM deploys as a plug-in to your WordPress, Drupal, or Joomla content management system -- a dead-simple install if you already have one of these systems in place. If you don’t, CiviCRM is an excellent reason to deploy the CMS. It’s a niche-filling solution that allows nonprofits to start using smarter, tailored tools for managing constituencies, without steep hurdles and training costs. - --- James R. Borck - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-mautic-100614677-orig.jpg) - -### Mautic ### - -For marketers, the Internet -- Web, email, social, all of it -- is the stuff dreams are made on. [Mautic][7] allows you to create Web and email campaigns that track and nurture customer engagement, then roll all of the data into detailed reports to gain insight into customer needs and wants and how to meet them. - -Open source options in marketing automation are few, but Mautic’s extensibility stands out even against closed solutions like IBM’s Silverpop. Mautic even integrates with popular third-party email marketing solutions (MailChimp, Constant Contact) and social media platforms (Facebook, Twitter, Google+, Instagram) with quick-connect widgets. - -The developers of Mautic could stand to broaden the features for list segmentation and improve the navigability of their UI. Usability is also hindered by sparse documentation. But if you’re willing to rough it out long enough to learn your way, you’ll find a gem -- and possibly even gold -- in Mautic. - --- James R. Borck - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-orangehrm-100614679-orig.jpg) - -### OrangeHRM ### - -The commercial software market in the human resource management space is rather fragmented, with Talent, HR, and Workforce Management startups all vying for a slice of the pie. It’s little wonder the open source world hasn’t found much direction either, with the most ambitious HRM solutions often locked inside larger ERP distributions. [OrangeHRM][8] is a standout. - -OrangeHRM tackles employee administration from recruitment and applicant tracking to performance reviews, with good audit trails throughout. An employee portal provides self-serve access to personal employment information, time cards, leave requests, and personnel documents, helping reduce demands on HR staff. - -OrangeHRM doesn’t yet address niche aspects like talent management (social media, collaboration, knowledge banks), but it’s remarkably full-featured. Professional and Enterprise options offer more advanced functionality (in areas such as recruitment, training, on/off-boarding, document management, and mobile device access), while community modules are available for the likes of Active Directory/LDAP integration, advanced reporting, and even insurance benefit management. - --- James R. Borck - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-libreoffice-100614675-orig.jpg) - -### LibreOffice ### - -[LibreOffice][9] is the easy choice for best open source office productivity suite. Originally forked from OpenOffice, Libre has been moving at a faster clip than OpenOffice ever since, drawing more developers and producing more new features than its rival. - -LibreOffice 5.0, released only last month, offers UX improvements that truly enhance usability (like visual previews to style changes in the sidebar), brings document editing to Android devices (previously a view-only prospect), and finally delivers on a 64-bit Windows codebase. - -LibreOffice still lacks a built-in email client and a personal information manager, not to mention the real-time collaborative document editing available in Microsoft Office. But Libre can run off of a USB flash disk for portability, natively supports a greater number of graphic and file formats, and creates hybrid PDFs with embedded ODF files for full-on editing. Libre even imports Apple Pages documents, in addition to opening and saving all Microsoft Office formats. - -LibreOffice has done a solid job of tightening its codebase and delivering enhancements at a regular clip. With a new cloud version under development, LibreOffice will soon be more liberating than ever. - --- James R. Borck - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-bonita-100614672-orig.jpg) - -### Bonita BPM ### - -Open source BPM has become a mature, cost-effective alternative to the top proprietary solutions. Having led the charge since 2009, Bonitasoft continues to raise the bar. The new [Bonita BPM 7][10] release impresses with innovative features that simplify code generation and shorten development cycles for BPM app creation. - -Most important to the new version, though, is better abstraction of underlying core business logic from UI and data components, allowing UIs and processes to be developed independently. This new MVC approach reduces downtime for live upgrades (no more recompilation!) and eases application maintenance. - -Bonita contains a winning set of connectors to a broad range of enterprise systems (ERP, CRM, databases) as well as to Web services. Complementing its process weaving tools, a new form designer (built on AngularJS/Bootstrap) goes a long way toward improving UI creation for the Web-centric and mobile workforce. - --- James R. Borck - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-camunda-100614670-orig.jpg) - -### Camunda BPM ### - -Many open source solutions, like Bonita BPM, offer solid, drop-in functionality. Dig into the code base, though, and you may find it’s not the cleanest to build upon. Enterprise Java developers who hang out under the hood should check out [Camunda BPM][11]. - -Forked from Alfresco Activiti (a creation of former Red Hat jBPM developers), Camunda BPM delivers a tight, Java-based BPMN 2.0 engine in support of human workflow activities, case management, and systems process automation that can be embedded in your Java apps or run as a container service in Tomcat. Camunda’s ecosystem offers an Eclipse plug-in for process modeling and the Cockpit dashboard brings real-time monitoring and management over running processes. - -The Enterprise version adds WebSphere and WebLogic Server support. Additional incentives for the Enterprise upgrade include Saxon-driven XSLT templating (sidestepping the scripting engine) and add-ons to improve process management and exception handling. - -Camunda is a solid BPM engine ready for build-out and one of the first open source process managers to introduce DMN (Decision Model and Notation) support, which helps to simplify complex rules-based modeling alongside BPMN. DMN support is currently at the alpha stage. - --- James R. Borck - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-talend-100614681-orig.jpg) - -### Talend Open Studio ### - -No open source ETL or EAI solution comes close to [Talend Open Studio][12] in functionality, performance, or support of modern integration trends. This year Talend unleashed Open Studio 6, a new version with a streamlined UI and smarter tooling that brings it more in line with Talend’s cloud-based offering. - -Using Open Studio you can visually design, test, and debug orchestrations that connect, transform, and synchronize data across a broad range of real-time applications and data resources. Talend’s wealth of connectors provides support for most any endpoint -- from flat files to Hadoop to Amazon S3. Packaged editions focus on specific scenarios such as big data integration, ESB, and data integrity monitoring. - -New support for Java 8 brings a speed boost. The addition of support for MariaDB and for in-memory processing with MemSQL, as well as updates to the ESB engine, keep Talend in step with the community’s needs. Version 6 was a long time coming, but no less welcome for that. Talend Open Studio is still first in managing complex data integration -- in-house, in the cloud, or increasingly, a combination of the two. - --- James R. Borck - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-warewolf-100614683-orig.jpg) - -### Warewolf ESB ### - -Complex integration patterns may demand the strengths of a Talend to get the job done. But for many lightweight microservices, the overhead of a full-fledged enterprise integration solution is extreme overkill. - -[Warewolf ESB][13] combines a streamlined .Net-based process engine with visual development tools to provide for dead simple messaging and application payload routing in a native Windows environment. The Warewolf ESB is an “easy service bus,” not an enterprise service bus. - -Drag-and-drop tooling in the design studio makes quick work of configuring connections and logic flows. Built-in wizardry handles Web services definitions and database calls, and it can even tap Windows DLLs and the command line directly. Using the visual debugger, you can inspect execution streams (if not yet actually step through them), then package everything for remote deployment. - -Warewolf is still a .40.5 release and undergoing major code changes. It also lacks native connectors, easy transforms, and any means of scalability management. Be aware that the precompiled install demands collection of some usage statistics (I wish they would stop that). But Warewolf ESB is fast, free, and extensible. It’s a quirky, upstart project that offers definite benefits to Windows integration architects. - --- James R. Borck - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-knime-100614674-orig.jpg) - -### KNIME ### - -[KNIME][14] takes a code-free approach to predictive analytics. Using a graphical workbench, you wire together workflows from an abundant library of processing nodes, which handle data access, transformation, analysis, and visualization. With KNIME, you can pull data from databases and big data platforms, run ETL transformations, perform data mining with R, and produce custom reports in the end. - -The company was busy this year rolling out the KNIME 2.12 update. The new release introduces MongoDB support, XPath nodes with autoquery creation, and a new view controller (based on the D3 JavaScript library) that creates interactive data visualizations on the fly. It also includes additional statistical nodes and a REST interface (KNIME Server edition) that provides services-based access to workflows. - -KNIME’s core analytics engine is free open source. The company offers several fee-based extensions for clustering and collaboration. (A portion of your licensing fee actually funds the open source project.) KNIME Server (on-premise or cloud) ups the ante with security, collaboration, and workflow repositories -- all serving to inject analytics more productively throughout your business lines. - --- James R. Borck - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-teiid-100614682-orig.jpg) - -### Teiid ### - -[Teiid][15] is a data virtualization system that allows applications to use data from multiple, heterogeneous data stores. Currently a JBoss project, Teiid is backed by years of development from MetaMatrix and a long history of addressing the data access needs of the largest enterprise environments. I even see [uses for Teiid in Hadoop and big data environments][16]. - -In essence, Teiid allows you to connect all of your data sources into a “virtual” mega data source. You can define caching semantics, transforms, and other “configuration not code” transforms to load from multiple data sources using plain old SQL, XQuery, or procedural queries. - -Teiid is primarily accessible through JBDC and has built-in support for Web services. Red Hat sells Teiid as [JBoss Data Virtualization][17]. - --- Andrew C. Oliver - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100614676-orig.jpg) - -### Read about more open source winners ### - -InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners: - -[Bossie Awards 2015: The best open source applications][18] - -[Bossie Awards 2015: The best open source application development tools][19] - -[Bossie Awards 2015: The best open source big data tools][20] - -[Bossie Awards 2015: The best open source data center and cloud software][21] - -[Bossie Awards 2015: The best open source desktop and mobile software][22] - -[Bossie Awards 2015: The best open source networking and security software][23] - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2982622/open-source-tools/bossie-awards-2015-the-best-open-source-applications.html - -作者:[InfoWorld staff][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/InfoWorld-staff/ -[1]:http://xtuple.org/ -[2]:http://odoo.com/ -[3]:http://idempiere.org/ -[4]:http://suitecrm.com/ -[5]:http://salesagility.com/ -[6]:http://civicrm.org/ -[7]:https://www.mautic.org/ -[8]:http://www.orangehrm.com/ -[9]:http://libreoffice.org/ -[10]:http://www.bonitasoft.com/ -[11]:http://camunda.com/ -[12]:http://talend.com/ -[13]:http://warewolf.io/ -[14]:http://www.knime.org/ -[15]:http://teiid.jboss.org/ -[16]:http://www.infoworld.com/article/2922180/application-development/database-virtualization-or-i-dont-want-to-do-etl-anymore.html -[17]:http://www.jboss.org/products/datavirt/overview/ -[18]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html -[19]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html -[20]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html -[21]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html -[22]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html -[23]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html \ No newline at end of file diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source big data tools.md b/sources/share/20151028 Bossie Awards 2015--The best open source big data tools.md deleted file mode 100644 index 0cf65ea3a8..0000000000 --- a/sources/share/20151028 Bossie Awards 2015--The best open source big data tools.md +++ /dev/null @@ -1,287 +0,0 @@ -Bossie Awards 2015: The best open source big data tools -================================================================================ -InfoWorld's top picks in distributed data processing, streaming analytics, machine learning, and other corners of large-scale data analytics - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-big-data-100613944-orig.jpg) - -### The best open source big data tools ### - -How many Apache projects can sit on a pile of big data? Fire up your Hadoop cluster, and you might be able to count them. Among this year's Bossies in big data, you'll find the fastest, widest, and deepest newfangled solutions for large-scale SQL, stream processing, sort-of stream processing, and in-memory analytics, not to mention our favorite maturing members of the Hadoop ecosystem. It seems everyone has a nail to drive into MapReduce's coffin. - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-spark-100613962-orig.jpg) - -### Spark ### - -With hundreds of contributors, [Spark][1] is one of the most active and fastest-growing Apache projects, and with heavyweights like IBM throwing their weight behind the project and major corporations bringing applications into large-scale production, the momentum shows no signs of letting up. - -The sweet spot for Spark continues to be machine learning. Highlights since last year include the replacement of the SchemaRDD with a Dataframes API, similar to those found in R and Pandas, making data access much simpler than with the raw RDD interface. Also new are ML pipelines for building repeatable machine learning workflows, expanded and optimized support for various storage formats, simpler interfaces to machine learning algorithms, improvements in the display of cluster resources usage, and task tracking. - -On by default in Spark 1.5 is the off-heap memory manager, Tungsten, which offers much faster processing by fine-tuning data structure layout in memory. Finally, the new website, [spark-packages.org][2], with more than 100 third-party libraries, adds many useful features from the community. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-storm-100614149-orig.jpg) - -### Storm ### - -[Apache Storm][3] is a Clojure-based distributed computation framework primarily for streaming real-time analytics. Storm is based on the [disruptor pattern][4] for low-latency complex event processing created LMAX. Unlike Spark, Storm can do single events as opposed to “micro-batches,” and it has a lower memory footprint. In my experience, it scales better for streaming, especially when you’re mainly streaming to ingest data into other data sources. - -Storm’s profile has been eclipsed by Spark, but Spark is inappropriate for many streaming applications. Storm is frequently used with Apache Kafka. - --- Andrew C. Oliver - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-h2o-100613950-orig.jpg) - -### H2O ### - -[H2O][5] is a distributed, in-memory processing engine for machine learning that boasts an impressive array of algorithms. Previously only available for R users, version 3.0 adds Python and Java language bindings, as well as a Spark execution engine for the back end. The best way to view H20 is as a very large memory extension of your R environment. Instead of working directly on large data sets, the R extensions communicate via a REST API with the H2O cluster, where H2O does the heavy lifting. - -Several useful R packages such as ddply have been wrapped, allowing you to use them on data sets larger than the amount of RAM on the local machine. You can run H2O on EC2, on a Hadoop/YARN cluster, and on Docker containers. With Sparkling Water (Spark plus H2O) you can access Spark RDDs on the cluster side by side to, for example, process a data frame with Spark before passing it to an H2O machine learning algorithm. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-apex-100613943-orig.jpg) - -### Apex ### - -[Apex][6] is an enterprise-grade, big data-in-motion platform that unifies stream processing as well as batch processing. A native YARN application, Apex processes streaming data in a scalable, fault-tolerant manner and provides all the common stream operators out of the box. One of the best things about Apex is that it natively supports the common event processing guarantees (exactly once, at least once, at most once). Formerly a commercial product by DataTorrent, Apex's roots show in the quality of the documentation, examples, code, and design. Devops and application development are cleanly separated, and user code generally doesn't have to be aware that it is running in a streaming cluster. - -A related project, [Malhar][7], offers more than 300 commonly used operators and application templates that implement common business logic. The Malhar libraries significantly reduce the time it takes to develop an Apex application, and there are connectors (operators) for storage, file systems, messaging systems, databases, and nearly anything else you might want to connect to from an application. The operators can all be extended or customized to meet individual business's requirements. All Malhar components are available under the Apache license. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-druid-100613947-orig.jpg) - -### Druid ### - -[Druid][8], which moved to a commercially friendly Apache license in February of this year, is best described as a hybrid, “event streams meet OLAP” solution. Originally developed to analyze online events for ad markets, Druid allows users to do arbitrary and interactive exploration of time series data. Some of the key features include low-latency ingest of events, fast aggregations, and approximate and exact calculations. - -At the heart of Druid is a custom data store that uses specialized nodes to handle each part of the problem. Real-time ingest is managed by real-time nodes (JVMs) that eventually flush data to historical nodes that are responsible for data that has aged. Broker nodes direct queries in a scatter-gather fashion to both real-time and historical nodes to give the user a complete picture of events. Benchmarked at a sustained 500K events per second and 1 million events per second peak, Druid is ideal as a real-time dashboard for ad-tech, network traffic, and other activity streams. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-flink-100613949-orig.jpg) - -### Flink ### - -At its core, [Flink][9] is a data flow engine for event streams. Although superficially similar to Spark, Flink takes a different approach to in-memory processing. First, Flink was designed from the start as a stream processor. Batch is simply a special case of a stream with a beginning and an end, and Flink offers APIs for dealing with each case, the DataSet API (batch) and the DataStream API. Developers coming from the MapReduce world should feel right at home working with the DataSet API, and porting applications to Flink should be straightforward. In many ways Flink mirrors the simplicity and consistency that helped make Spark so popular. Like Spark, Flink is written in Scala. - -The developers of Flink clearly thought out usage and operations too: Flink works natively with YARN and Tez, and it uses an off-heap memory management scheme to work around some of the JVM limitations. A peek at the Flink JIRA site shows a healthy pace of development, and you’ll find an active community on the mailing lists and on StackOverflow as well. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-elastic-100613948-orig.jpg) - -### Elasticsearch ### - -[Elasticsearch][10] is a distributed document search server based on [Apache Lucene][11]. At its heart, Elasticsearch builds indices on JSON-formatted documents in nearly real time, enabling fast, full-text, schema-free queries. Combined with the open source Kibana dashboard, you can create impressive visualizations of your real-time data in a simple point-and-click fashion. - -Elasticsearch is easy to set up and easy to scale, automatically making use of new hardware by rebalancing shards as required. The query syntax isn't at all SQL-like, but it is intuitive enough for anyone familiar with JSON. Most users won't be interacting at that level anyway. Developers can use the native JSON-over-HTTP interface or one of the several language bindings available, including Ruby, Python, PHP, Perl, .Net, Java, and JavaScript. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-slamdata-100613961-orig.jpg) - -### SlamData ### - -If you are seeking a user-friendly tool to visualize and understand your newfangled NoSQL data, take a look at [SlamData][12]. SlamData allows you to query nested JSON data using familiar SQL syntax, without relocation or transformation. - -One of the technology’s main features is its connectors. From MongoDB to HBase, Cassandra, and Apache Spark, SlamData taps external data sources with the industry's most advanced “pushdown” processing technology, performing transformations and analytics close to the data. - -While you might ask, “Wouldn’t I be better off building a data lake or data warehouse?” consider the companies that were born in NoSQL. Skipping the ETL and simply connecting a visualization tool to a replica offers distinct advantages -- not only in terms of how up-to-date the data is, but in how many moving parts you have to maintain. - --- Andrew C. Oliver - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-drill-100613946-orig.jpg) - -### Drill ### - -[Drill][13] is a distributed system for interactive analysis of large-scale data sets, inspired by [Google's Dremel][14]. Designed for low-latency analysis of nested data, Drill has a stated design goal of scaling to 10,000 servers and querying petabytes of data and trillions of records. - -Nested data can be obtained from a variety of data sources (such as HDFS, HBase, Amazon S3, and Azure Blobs) and in multiple formats (including JSON, Avro, and protocol buffers), and you don't need to specify a schema up front (“schema on read”). - -Drill uses ANSI SQL:2003 for its query language, so there's no learning curve for data engineers to overcome, and it allows you to join data across multiple data sources (for example, joining a table in HBase with logs in HDFS). Finally, Drill offers ODBC and JDBC interfaces to connect your favorite BI tools. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-hbase-100613951-orig.jpg) - -### HBase ### - -[HBase][15] reached the 1.x milestone this year and continues to improve. Like other nonrelational distributed datastores, HBase excels at returning search results very quickly and for this reason is often used to back search engines, such as the ones at eBay, Bloomberg, and Yahoo. As a stable and mature software offering, HBase does not get fresh features as frequently as newer projects, but that's often good for enterprises. - -Recent improvements include the addition of high-availability region servers, support for rolling upgrades, and YARN compatibility. Features in the works include scanner updates that promise to improve performance and the ability to use HBase as a persistent store for streaming applications like Storm and Spark. HBase can also be queried SQL style via the [Phoenix][16] project, now out of incubation, whose SQL compatibility is steadily improving. Phoenix recently added a Spark connector and the ability to add custom user-defined functions. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-hive-100613952-orig.jpg) - -### Hive ### - -Although stable and mature for several years, [Hive][17] reached the 1.0 version milestone this year and continues to be the best solution when really heavy SQL lifting (many petabytes) is required. The community continues to focus on improving the speed, scale, and SQL compliance of Hive. Currently at version 1.2, significant improvements since its last Bossie include full ACID semantics, cross-data center replication, and a cost-based optimizer. - -Hive 1.2 also brought improved SQL compliance, making it easier for organizations to use it to off-load ETL jobs from their existing data warehouses. In the pipeline are speed improvements with an in-memory cache called LLAP (which, from the looks of the JIRAs, is about ready for release), the integration of Spark machine learning libraries, and improved SQL constructs like nonequi joins, interval types, and subqueries. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-kylin-100613955-orig.jpg) - -### Kylin ### - -[Kylin][18] is an application developed at eBay for processing very large OLAP cubes via ANSI SQL, a task familiar to most data analysts. If you think about how many items are on sale now and in the past at eBay, and all the ways eBay might want to slice and dice data related to those items, you will begin to understand the types of queries Kylin was designed for. - -Like most other analysis applications, Kylin supports multiple access methods, including JDBC, ODBC, and a REST API for programmatic access. Although Kylin is still in incubation at Apache, and the community nascent, the project is well documented and the developers are responsive and eager to understand customer use cases. Getting up and running with a starter cube was a snap. If you have a need for analysis of extremely large cubes, you should take a look at Kylin. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-cdap-100613945-orig.jpg) - -### CDAP ### - -[CDAP][19] (Cask Data Access Platform) is a framework running on top of Hadoop that abstracts away the complexity of building and running big data applications. CDAP is organized around two core abstractions: data and applications. CDAP Datasets are logical representations of data that behave uniformly regardless of the underlying storage layer; CDAP Streams provide similar support for real-time data. - -Applications use CDAP services for things such as distributed transactions and service discovery to shield developers from the low-level details of Hadoop. CDAP comes with a data ingestion framework and a few prebuilt applications and “packs” for common tasks like ETL and website analytics, along with support for testing, debugging, and security. Like most formerly commercial (closed source) projects, CDAP benefits from good documentation, tutorials, and examples. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-ranger-100613960-orig.jpg) - -### Ranger ### - -Security has long been a sore spot with Hadoop. It isn’t (as is frequently reported) that Hadoop is “insecure” or “has no security.” Rather, the truth was more that Hadoop had too much security, though not in a good way. I mean that every component had its own authentication and authorization implementation that wasn’t integrated with the rest of platform. - -Hortonworks acquired XA/Secure in May, and [a few renames later][20] we have [Ranger][21]. Ranger pulls many of the key components of Hadoop together under one security umbrella, allowing you to set a “policy” that ties your Hadoop security to your existing ACL-based Active Directory authentication and authorization. Ranger gives you one place to manage Hadoop access control, one place to audit, one place to manage the encryption, and a pretty Web page to do it from. - --- Andrew C. Oliver - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-mesos-100613957-orig.jpg) - -### Mesos ### - -[Mesos][22], developed at the [AMPLab][23] at U.C. Berkeley that also brought us Spark, takes a different approach to managing cluster computing resources. The best way to describe Mesos is as a distributed microkernel for the data center. Mesos provides a minimal set of operating system mechanisms like inter-process communications, disk access, and memory to higher-level applications, called “frameworks” in Mesos-speak, that run in what is analogous to user space. Popular frameworks for Mesos include [Chronos][24] and [Aurora][25] for building ETL pipelines and job scheduling, and a few big data processing applications including Hadoop, Storm, and Spark, which have been ported to run as Mesos frameworks. - -Mesos applications (frameworks) negotiate for cluster resources using a two-level scheduling mechanism, so writing a Mesos application is unlikely to feel like a familiar experience to most developers. Although Mesos is a young project, momentum is growing, and with Spark being an exceptionally good fit for Mesos, we're likely to see more from Mesos in the coming years. - --- Steven Nunez - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-nifi-100613958-orig.jpg) - -### NiFi ### - -[NiFi][26] is an incubating Apache project to automate the flow of data between systems. It doesn't operate in the traditional space that Kafka and Storm do, but rather in the space between external devices and the data center. NiFi was originally developed by the NSA and donated to the open source community in 2014. It has a strong community of developers and users within various government agencies. - -NiFi isn't like anything else in the current big data ecosystem. It is much closer to a tradition EAI (enterprise application integration) tool than a data processing platform, although simple transformations are possible. One interesting feature is the ability to debug and change data flows in real time. Although not quite a REPL (read, eval, print loop), this kind of paradigm dramatically shortens the development cycle by not requiring a compile-deploy-test-debug workflow. Other interesting features include a strong “chain of custody,” where each piece of data can be tracked from beginning to end, along with any changes made along the way. You can also prioritize data flows so that time-sensitive information can be received as quickly as possible, bypassing less time-critical events. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-kafka-100613954-orig.jpg) - -### Kafka ### - -[Kafka][27] has emerged as the de-facto standard for distributed publish-subscribe messaging in the big data space. Its design allows brokers to support thousands of clients at high rates of sustained message throughput, while maintaining durability through a distributed commit log. Kafka does this by maintaining what is essentially a single log file in HDFS. Since HDFS is a distributed storage system that keeps redundant copies, Kafka is protected. - -When consumers want to read messages, Kafka looks up their offset in the central log and sends them. Because messages are not deleted immediately, adding consumers or replaying historical messages does not impose additional costs. Kafka has been benchmarked at 2 million writes per second by its developers at LinkedIn. Despite Kafka’s sub-1.0 version number, Kafka is a mature and stable product, in use in some of the largest clusters in the world. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-opentsdb-100613959-orig.jpg) - -### OpenTSDB ### - -[OpenTSDB][28] is a time series database built on HBase. It was designed specifically for analyzing data collected from applications, mobile devices, networking equipment, and other hardware devices. The custom HBase schema used to store the time series data has been designed for fast aggregations and minimal storage requirements. - -By using HBase as the underlying storage layer, OpenTSDB gains the distributed and reliable characteristics of that system. Users don't interact with HBase directly; instead events are written to the system via the time series daemon (TSD), which can be scaled out as required to handle high-throughput situations. There are a number of prebuilt connectors to publish data to OpenTSDB, and clients to read data from Ruby, Python, and other languages. OpenTSDB isn't strong on creating interactive graphics, but several third-party tools fill that gap. If you are already using HBase and want a simple way to store event data, OpenTSDB might be just the thing. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-jupyter-100613953-orig.jpg) - -### Jupyter ### - -Everybody's favorite notebook application went generic. [Jupyter][29] is “the language-agnostic parts of IPython” spun out into an independent package. Although Jupyter itself is written in Python, the system is modular. Now you can have an IPython-like interface, along with notebooks for sharing code, documentation, and data visualizations, for nearly any language you like. - -At least [50 language][30] kernels are already supported, including LISP, R, Ruby, F#, Perl, and Scala. In fact, even IPython itself is simply a Python module for Jupyter. Communication with the language kernel is via a REPL (read, eval, print loop) protocol, similar to [nREPL][31] or [Slime][32]. It is nice to see such a useful piece of software receiving significant [nonprofit funding][33] to further its development, such as parallel execution and multi-user notebooks. Behold, open source at its best. - --- Steven Nunez - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-zeppelin-100613963-orig.jpg) - -### Zeppelin ### - -While still in incubation, [Apache Zeppelin][34] is nevertheless stirring the data analytics and visualization pot. The Web-based notebook enables users to ingest, discover, analyze, and visualize their data. The notebook also allows you to collaborate with others to make data-driven, interactive documents incorporating a growing number of programming languages. - -This technology also boasts an integration with Spark and an interpreter concept allowing any language or data processing back end to be plugged into Zeppelin. Currently Zeppelin supports interpreters such as Scala, Python, SparkSQL, Hive, Markdown, and Shell. - -Zeppelin is still immature. I wanted to put a demo up but couldn’t find an easy way to disable “shell” as an execution option (among other things). However, it already looks better visually than IPython Notebook, which is the popular incumbent in this space. If you don’t want to spring for DataBricks Cloud or need something open source and extensible, this is the most promising distributed computing notebook around -- especially if you’re a Sparky type. - --- Andrew C. Oliver - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-main-100613956-orig.jpg) - -### Read about more open source winners ### - -InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners: - -[Bossie Awards 2015: The best open source applications][35] - -[Bossie Awards 2015: The best open source application development tools][36] - -[Bossie Awards 2015: The best open source big data tools][37] - -[Bossie Awards 2015: The best open source data center and cloud software][38] - -[Bossie Awards 2015: The best open source desktop and mobile software][39] - -[Bossie Awards 2015: The best open source networking and security software][40] - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2982429/open-source-tools/bossie-awards-2015-the-best-open-source-big-data-tools.html - -作者:[InfoWorld staff][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/InfoWorld-staff/ -[1]:https://spark.apache.org/ -[2]:http://spark-packages.org/ -[3]:https://storm.apache.org/ -[4]:https://lmax-exchange.github.io/disruptor/ -[5]:http://h2o.ai/product/ -[6]:https://www.datatorrent.com/apex/ -[7]:https://github.com/DataTorrent/Malhar -[8]:https://druid.io/ -[9]:https://flink.apache.org/ -[10]:https://www.elastic.co/products/elasticsearch -[11]:http://lucene.apache.org/ -[12]:http://teiid.jboss.org/ -[13]:https://drill.apache.org/ -[14]:http://research.google.com/pubs/pub36632.html -[15]:http://hbase.apache.org/ -[16]:http://phoenix.apache.org/ -[17]:https://hive.apache.org/ -[18]:https://kylin.incubator.apache.org/ -[19]:http://cdap.io/ -[20]:http://www.infoworld.com/article/2973381/application-development/apache-ranger-chuck-norris-hadoop-security.html -[21]:https://ranger.incubator.apache.org/ -[22]:http://mesos.apache.org/ -[23]:https://amplab.cs.berkeley.edu/ -[24]:http://nerds.airbnb.com/introducing-chronos/ -[25]:http://aurora.apache.org/ -[26]:http://nifi.apache.org/ -[27]:https://kafka.apache.org/ -[28]:http://opentsdb.net/ -[29]:http://jupyter.org/ -[30]:http://https//github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages -[31]:https://github.com/clojure/tools.nrepl -[32]:https://github.com/slime/slime -[33]:http://blog.jupyter.org/2015/07/07/jupyter-funding-2015/ -[34]:https://zeppelin.incubator.apache.org/ -[35]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html -[36]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html -[37]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html -[38]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html -[39]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html -[40]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html \ No newline at end of file diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source data center and cloud software.md b/sources/share/20151028 Bossie Awards 2015--The best open source data center and cloud software.md deleted file mode 100644 index 5640c75137..0000000000 --- a/sources/share/20151028 Bossie Awards 2015--The best open source data center and cloud software.md +++ /dev/null @@ -1,261 +0,0 @@ -Bossie Awards 2015: The best open source data center and cloud software -================================================================================ -InfoWorld's top picks of the year in open source platforms, infrastructure, management, and orchestration software - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-data-center-cloud-100613986-orig.jpg) - -### The best open source data center and cloud software ### - -You might have heard about this new thing called Docker containers. Developers love them because you can build them with a script, add services in layers, and push them right from your MacBook Pro to a server for testing. It works because they're superlightweight, unlike those now-archaic virtual machines. Containers -- and other lightweight approaches to deliver services -- are changing the shape of operating systems, applications, and the tools to manage them. Our Bossie winners in data center and cloud are leading the charge. - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-docker-100613987-orig.jpg) - -### Docker Machine, Compose, and Swarm ### - -Docker’s open source container technology has been adopted by the major public clouds and is being built into the next version of Windows Server. Allowing developers and operations teams to separate applications from infrastructure, Docker is a powerful data center automation tool. - -However, containers are only part of the Docker story. Docker also provides a series of tools that allow you to use the Docker API to automate the entire container lifecycle, as well as handling application design and orchestration. - -[Machine][1] allows you to automate the provisioning of Docker Containers. Starting with a command line, you can use a single line of code to target one or more hosts, deploy the Docker engine, and even join it to a Swarm cluster. There’s support for most hypervisors and cloud platforms – all you need are your access credentials. - -[Swarm][2] handles clustering and scheduling, and it can be integrated with Mesos for more advanced scheduling capabilities. You can use Swarm to build a pool of container hosts, allowing your apps to scale out as demand increases. Applications and all of their dependencies can be defined with [Compose][3], which lets you link containers together into a distributed application and launch them as a group. Compose descriptions work across platforms, so you can take a developer configuration and quickly deploy in production. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-coreos-rkt-100613985-orig.jpg) - -### CoreOS and Rkt ### - -A thin, lightweight server OS, [CoreOS][4] is based on Google’s Chromium OS. Instead of using a package manager to install functions, it’s designed to be used with Linux containers. By using containers to extend a thin core, CoreOS allows you to quickly deploy applications, working well on cloud infrastructures. - -CoreOS’s container management tooling, fleet, is designed to treat a cluster of CoreOS servers as a single unit, with tools for managing high availability and for deploying containers to the cluster based on resource availability. A cross-cluster key/value store, etcd, handles device management and supports service discovery. If a node fails, etcd can quickly restore state on a new replica, giving you a distributed configuration management platform that’s linked to CoreOS’s automated update service. - -While CoreOS is perhaps best known for its Docker support, the CoreOS team is developing its own container runtime, rkt, with its own container format, the App Container Image. Also compatible with Docker containers, rkt has a modular architecture that allows different containerization systems (even hardware virtualization, in a proof of concept from Intel) to be plugged in. However, rkt is still in the early stages of development, so isn’t quite production ready. - --- Simon Bisson - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-rancheros-100613997-orig.jpg) - -### RancherOS ### - -As we abstract more and more services away from the underlying operating system using containers, we can start thinking about what tomorrow’s operating system will look like. Similar to our applications, it’s going to be a modular set of services running on a thin kernel, self-configuring to offer only the services our applications need. - -[RancherOS][5] is a glimpse of what that OS might look like. Blending the Linux kernel with Docker, RancherOS is a minimal OS suitable for hosting container-based applications in cloud infrastructures. Instead of using standard Linux packaging techniques, RancherOS leverages Docker to host Linux user-space services and applications in separate container layers. A low-level Docker instance is first to boot, hosting system services in their own containers. Users' applications run in a higher-level Docker instance, separate from the system containers. If one of your containers crashes, the host keeps running. - -RancherOS is only 20MB in size, so it's easy to replicate across a data center. It’s also designed to be managed using automation tools, not manually, with API-level access that works with Docker’s management tools as well as with Rancher Labs’ own cloud infrastructure and management tools. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-kubernetes-100613991-orig.jpg) - -### Kubernetes ### - -Google’s [Kubernetes][6] container orchestration system is designed to manage and run applications built in Docker and Rocket containers. Focused on managing microservice applications, Kubernetes lets you distribute your containers across a cluster of hosts, while handling scaling and ensuring managed services run reliably. - -With containers providing an application abstraction layer, Kubernetes is an application-centric management service that supports many modern development paradigms, with a focus on user intent. That means you launch applications, and Kubernetes will manage the containers to run within the parameters you set, using the Kubernetes scheduler to make sure it gets the resources it needs. Containers are grouped into pods and managed by a replication engine that can recover failed containers or add more pods as applications scale. - -Kubernetes powers Google’s own Container Engine, and it runs on a range of other cloud and data center services, including AWS and Azure, as well as vSphere and Mesos. Containers can be either loosely or tightly coupled, so applications not designed for cloud PaaS operations can be migrated to the cloud as a tightly coupled set of containers. Kubernetes also supports rapid deployment of applications to a cluster, giving you an endpoint for a continuous delivery process. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-mesos-100613993-orig.jpg) - -### Mesos ### - -Turning a data center into a private or public cloud requires more than a hypervisor. It requires a new operating layer that can manage the data center resources as if they were a single computer, handling resources and scheduling. Described as a “distributed systems kernel,” [Apache Mesos][7] allows you to manage thousands of servers, using containers to host applications and APIs to support parallel application development. - -At the heart of Mesos is a set of daemons that expose resources to a central scheduler. Tasks are distributed across nodes, taking advantage of available CPU and memory. One key approach is the ability for applications to reject offered resources if they don’t meet requirements. It’s an approach that works well for big data applications, and you can use Mesos to run Hadoop and Cassandra distributed databases, as well as Apache’s own Spark data processing engine. There’s also support for the Jenkins continuous integration server, allowing you to run build and test workers in parallel on a cluster of servers, dynamically adjusting the tasks depending on workload. - -Designed to run on Linux and Mac OS X, Mesos has also recently been ported to Windows to support the development of scalable parallel applications on Azure. - --- Simon Bisson - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-smartos-100614849-orig.jpg) - -### SmartOS and SmartDataCenter ### - -Joyent’s [SmartDataCenter][8] is the software that runs its public cloud, adding a management platform on top of its [SmartOS][9] thin server OS. A descendent of OpenSolaris that combines Zones containers and the KVM hypervisor, SmartOS is an in-memory operating system, quick to boot from a USB stick and run on bare-metal servers. - -Using SmartOS, you can quickly deploy a set of lightweight servers that can be programmatically managed via a set of JSON APIs, with functionality delivered via virtual machines, downloaded by built-in image management tools. Through the use of VMs, all userland operations are isolated from the underlying OS, reducing the security exposure of both the host and guests. - -SmartDataCenter runs on SmartOS servers, with one server running as a dedicated management node, and the rest of a cluster operating as compute nodes. You can get started with a Cloud On A Laptop build (available as a VMware virtual appliance) that lets you experiment with the management server. In a live data center, you’ll deploy SmartOS on your servers, using ZFS to handle storage – which includes your local image library. Services are deployed as images, with components stored in an object repository. - -The combination of SmartDataCenter and SmartOS builds on the experience of Joyent’s public cloud, giving you a tried and tested set of tools that can help you bootstrap your own cloud data center. It’s an infrastructure focused on virtual machines today, but laying the groundwork for tomorrow. A related Joyent project, [sdc-docker][10], exposes an entire SmartDataCenter cluster as a single Docker host, driven by native Docker commands. - --- Simon Bisson - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-sensu-100614850-orig.jpg) - -### Sensu ### - -Managing large-scale data centers isn’t about working with server GUIs, it’s about automating scripts based on information from monitoring tools and services, routing information from sensors and logs, and then delivering actions to applications. One tool that’s beginning to offer this functionality is [Sensu][11], often described as a “monitoring router.” - -Scripts running across your data center deliver information to Sensu, which then routes it to the appropriate handler, using a publish-and-subscribe architecture based on RabbitMQ. Servers can be distributed, delivering published check results to handler code. You might see results in email, or in a Slack room, or in Sensu’s own dashboards. Message formats are defined in JSON files, or mutators used to format data on the fly, and messages can be filtered to one or more event handlers. - -Sensu is still a relatively young tool, but it’s one that shows a lot of promise. If you’re going to automate your data center, you’re going to need a tool like this not only to show you what’s happening, but to deliver that information where it’s most needed. A commercial option adds support for integration with third-party applications, but much of what you need to manage a data center is in the open source release. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-prometheus-100613996-orig.jpg) - -### Prometheus ### - -Managing a modern data center is a complex task. Racks of servers need to be treated like cattle rather than pets, and you need a monitoring system designed to handle hundreds and thousands of nodes. Monitoring applications presents special challenges, and that’s where [Prometheus][12] comes in to play. A service monitoring system designed to deliver alerts to operators, Prometheus can run on everything from a single laptop to a highly available cluster of monitoring servers. - -Time series data is captured and stored, then compared against patterns to identify faults and problems. You’ll need to expose data on HTTP endpoints, using a YAML file to configure the server. A browser-based reporting tool handles displaying data, with an expression console where you can experiment with queries. Dashboards can be created with a GUI builder, or written using a series of templates, letting you deliver application consoles that can be managed using version control systems such as Git. - -Captured data can be managed using expressions, which make it easy to aggregate data from several sources -- for example, letting you bring performance data from a series of Web endpoints into one store. An experimental alert manager module delivers alerts to common collaboration and devops tools, including Slack and PagerDuty. Official client libraries for common languages like Go and Java mean it’s easy to add Prometheus support to your applications and services, while third-party options extend Prometheus to Node.js and .Net. - --- Simon Bisson - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-elk-100613988-orig.jpg) - -### Elasticsearch, Logstash, and Kibana ### - -Running a modern data center generates a lot of data, and it requires tools to get information out of that data. That’s where the combination of Elasticsearch, Logstash, and Kibana, often referred to as the ELK stack, comes into play. - -Designed to handle scalable search across a mix of content types, including structured and unstructured documents, [Elasticsearch][13] builds on Apache’s Lucene information retrieval tools, with a RESTful JSON API. It’s used to provide search for sites like Wikipedia and GitHub, using a distributed index with automated load balancing and routing. - -Under the fabric of a modern cloud is a physical array of servers, running as VM hosts. Monitoring many thousands of servers needs centralized logs. [Logstash][14] harvests and filters the logs generated by those servers (and by the applications running on them), using a forwarder on each physical and virtual machine. Logstash-formatted data is then delivered to Elasticsearch, giving you a search index that can be quickly scaled as you add more servers. - -At a higher level, [Kibana][15] adds a visualization layer to Elasticsearch, providing a Web dashboard for exploring and analyzing the data. Dashboards can be created around custom searches and shared with your team, providing a quick, easy-to-digest devops information feed. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-ansible-100613984-orig.jpg) - -### Ansible ### - -Managing server configuration is a key element of any devops approach to managing a modern data center or a cloud infrastructure. Configuration management tooling that takes a desired state approach to simplifies systems management at cloud scale, using server and application descriptions to handle server and application deployment. - -[Ansible][16] offers a minimal management service, using SSH to manage Unix nodes and PowerShell to work with Windows servers, with no need to deploy agents. An Ansible Playbook describes the state of a server or service in YAML, deploying Ansible modules to servers that handle configuration and removing them once the service is running. You can use Playbooks to orchestrate tasks -- for example, deploying several Web endpoints with a single script. - -It’s possible to make module creation and Playbook delivery part of a continuous delivery process, using build tools to deliver configurations and automate deployment. Ansible can pull in information from cloud service providers, simplifying management of virtual machines and networks. Monitoring tools in Ansible are able to trigger additional deployments automatically, helping manage and control cloud services, as well as working to manage resources used by large-scale data platforms like Hadoop. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-jenkins-100613990-orig.jpg) - -### Jenkins ### - -Getting continuous delivery right requires more than a structured way of handling development; it also requires tools for managing test and build. That’s where the [Jenkins][17] continuous integration server comes in. Jenkins works with your choice of source control, your test harnesses, and your build server. It’s a flexible tool, initially designed for working with Java but now extended to support Web and mobile development and even to build Windows applications. - -Jenkins is perhaps best thought of as a switching network, shunting files through a test and build process, and responding to signals from the various tools you’re using – thanks to a library of more than 1,000 plug-ins. These include tools for integrating Jenkins with both local Git instances and GitHub so that it's possible to extend a continuous development model into your build and delivery processes. - -Using an automation tool like Jenkins is as much about adopting a philosophy as it is about implementing a build process. Once you commit to continuous integration as part of a continuous delivery model, you’ll be running test and build cycles as soon as code is delivered to your source control release branch – and delivering it to users as soon as it’s in the main branch. - --- Simon Bisson - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-nodejs-iojs-100613995-orig.jpg) - -### Node.js and io.js ### - -Modern cloud applications are built using different design patterns from the familiar n-tier enterprise and Web apps. They’re distributed, event-driven collections of services that can be quickly scaled and can support many thousands of simultaneous users. One key technology in this new paradigm is [Node.js][18], used by many major cloud platforms and easy to install as part of a thin server or container on cloud infrastructure. - -Key to the success of Node.js is the Npm package format, which allows you to quickly install extensions to the core Node.js service. These include frameworks like Express and Seneca, which help build scalable applications. A central registry handles package distribution, and dependencies are automatically installed. - -While the [io.js][19] fork exposed issues with project governance, it also allowed a group of developers to push forward adding ECMAScript 6 support to an Npm-compatible engine. After reconciliation between the two teams, the Node.js and io.js codebases have been merged, with new releases now coming from the io.js code repository. - -Other forks, like Microsoft’s io.js fork to add support for its 64-bit Chakra JavaScript engine alongside Google’s V8, are likely to be merged back into the main branch over the next year, keeping the Node.js platform evolving and cementing its role as the preferred host for cloud-scale microservices. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-seneca-100613998-orig.jpg) - -### Seneca ### - -The developers of the [Seneca][20] microservice framework have a motto: “Build it now, scale it later!” It’s an apt maxim for anyone thinking about developing microservices, as it allows you to start small, then add functionality as your service grows. - -Seneca is at heart an implementation of the [actor/message design pattern][21], focused on using Node.js as a switching engine that takes in messages, processes their contents, and sends an appropriate response, either to the message originator or to another service. By focusing on the message patterns that map to business use cases, it’s relatively easy to take Seneca and quickly build a minimum viable product for your application. A plug-in architecture makes it easy to integrate Seneca with other tools and to quickly add functionality to your services. - -You can easily add new patterns to your codebase or break existing patterns into separate services as the needs of your application grow or change. One pattern can also call another, allowing quick code reuse. It’s also easy to add Seneca to a message bus, so you can use it as a framework for working with data from Internet of things devices, as all you need to do is define a listening port where JSON data is delivered. - -Services may not be persistent, and Seneca gives you the option of using a built-in object relational mapping layer to handle data abstraction, with plug-ins for common databases. - --- Simon Bisson - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-netcore-aspnet-100613994-orig.jpg) - -### .Net Core and ASP.Net vNext ### - -Microsoft’s [open-sourcing of .Net][22] is bringing much of the company’s Web platform into the open. The new [.Net Core][23] release runs on Windows, on OS X, and on Linux. Currently migrating from Microsoft’s Codeplex repository to GitHub, .Net Core offers a more modular approach to .Net, allowing you to install the functions you need as you need them. - -Currently under development is [ASP.Net 5][24], an open source version of the Web platform, which runs on .Net Core. You can work with it as the basis of Web apps using Microsoft’s MVC 6 framework. There’s also support for the new SignalR libraries, which add support for WebSockets and other real-time communications protocols. - -If you’re planning on using Microsoft’s new Nano server, you’ll be writing code against .Net Core, as it’s designed for thin environments. The new DNX, the .Net Execution environment, simplifies deployment of ASP.Net applications on a wide range of platforms, with tools for packaging code and for booting a runtime on a host. Features are added using the NuGet package manager, letting you use only the libraries you want. - -Microsoft’s open source .Net is still very young, but there’s a commitment in Redmond to ensure it’s successful. Support in Microsoft’s own next-generation server operating systems means it has a place in both the data center and the cloud. - --- Simon Bisson - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-glusterfs-100613989-orig.jpg) - -### GlusterFS ### - -[GlusterFS][25] is a distributed file system. Gluster aggregates various storage servers into one large parallel network file system. You can [even use it in place of HDFS in a Hadoop cluster][26] or in place of an expensive SAN system -- or both. While HDFS is great for Hadoop, having a general-purpose distributed file system that doesn’t require you to transfer data to another location to analyze it is a key advantage. - -In an era of commoditized hardware, commoditized computing, and increased performance and latency requirements, buying a big, fat expensive EMC SAN and hoping it fits all of your needs (it won’t) is no longer your sole viable option. GlusterFS was acquired by Red Hat in 2011. - --- Andrew C. Oliver - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-main-100613992-orig.jpg) - -### Read about more open source winners ### - -InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners: - -[Bossie Awards 2015: The best open source applications][27] - -[Bossie Awards 2015: The best open source application development tools][28] - -[Bossie Awards 2015: The best open source big data tools][29] - -[Bossie Awards 2015: The best open source data center and cloud software][30] - -[Bossie Awards 2015: The best open source desktop and mobile software][31] - -[Bossie Awards 2015: The best open source networking and security software][32] - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2982923/open-source-tools/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html - -作者:[InfoWorld staff][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/InfoWorld-staff/ -[1]:https://www.docker.com/docker-machine -[2]:https://www.docker.com/docker-swarm -[3]:https://www.docker.com/docker-compose -[4]:https://coreos.com/ -[5]:http://rancher.com/rancher-os/ -[6]:http://kubernetes.io/ -[7]:https://mesos.apache.org/ -[8]:https://github.com/joyent/sdc -[9]:https://smartos.org/ -[10]:https://github.com/joyent/sdc-docker -[11]:https://sensuapp.org/ -[12]:http://prometheus.io/ -[13]:https://www.elastic.co/products/elasticsearch -[14]:https://www.elastic.co/products/logstash -[15]:https://www.elastic.co/products/kibana -[16]:http://www.ansible.com/home -[17]:https://jenkins-ci.org/ -[18]:https://nodejs.org/en/ -[19]:https://iojs.org/en/ -[20]:http://senecajs.org/ -[21]:http://www.infoworld.com/article/2976422/application-development/how-to-use-actors-in-distributed-applications.html -[22]:http://www.infoworld.com/article/2846450/microsoft-net/microsoft-open-sources-server-side-net-launches-visual-studio-2015-preview.html -[23]:https://dotnet.github.io/core/ -[24]:http://www.asp.net/vnext -[25]:http://www.gluster.org/ -[26]:http://www.gluster.org/community/documentation/index.php/Hadoop -[27]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html -[28]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html -[29]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html -[30]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html -[31]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html -[32]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html \ No newline at end of file diff --git a/sources/share/20151028 Bossie Awards 2015--The best open source desktop and mobile software.md b/sources/share/20151028 Bossie Awards 2015--The best open source desktop and mobile software.md deleted file mode 100644 index 83b2b24a2e..0000000000 --- a/sources/share/20151028 Bossie Awards 2015--The best open source desktop and mobile software.md +++ /dev/null @@ -1,223 +0,0 @@ -Bossie Awards 2015: The best open source desktop and mobile software -================================================================================ -InfoWorld's top picks in open source productivity tools, desktop utilities, and mobile apps - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-desktop-mobile-100614439-orig.jpg) - -### The best open source desktop and mobile software ### - -Open source on the desktop has a long and distinguished history, and many of our Bossie winners in this category go back many years. Packed with features and still improving, some of these tools offer compelling alternatives to pricey commercial software. Others are utilities that we lean on daily for one reason or another -- the can openers and potato peelers of desktop productivity. One or two of them either plug holes in Windows, or they go the distance where Windows falls short. - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-libreoffice-100614436-orig.jpg) - -### LibreOffice ### - -With the major release of version 5 in August, the Document Foundation’s [LibreOffice][1] offers a completely redesigned user interface, better compatibility with Microsoft Office (including good-but-not-great DOCX, XLSX, and PPTX file format support), and significant improvements to Calc, the spreadsheet application. - -Set against a turbulent background, the LibreOffice effort split from OpenOffice.org in 2010. In 2011, Oracle announced it would no longer support OpenOffice.org, and handed the trademark to the Apache Software Foundation. Since then, it has become [increasingly clear][2] that LibreOffice is winning the race for developers, features, and users. - --- Woody Leonhard - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-firefox-100614426-orig.jpg) - -### Firefox ### - -In the battle of the big browsers, [Firefox][3] gets our vote over its longtime open source rival Chromium for two important reasons: - -• **Memory use**. Chromium, like its commercial cousin Chrome, has a nasty propensity to glom onto massive amounts of memory. - -• **Privacy**. Witness the [recent controversy][4] over Chromium automatically downloading a microphone snooping program to respond to “OK, Google.” - -Firefox may not have the most features or the down-to-the-millisecond fastest rendering engine. But it’s solid, stingy with resources, highly extensible, and most of all, it comes with no strings attached. There’s no ulterior data-gathering motive. - --- Woody Leonhard - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-thunderbird-100614433-orig.jpg) - -### Thunderbird ### - -A longtime favorite email client, Mozilla’s [Thunderbird][5], may be getting a bit long in the tooth, but it’s still supported and showing signs of life. The latest version, 38.2, arrived in August, and there are plans for more development. - -Mozilla officially pulled its people off the project back in July 2012, but a hardcore group of volunteers, led by Kent James and the all-volunteer Thunderbird Council, continues to toil away. While you won’t find the latest email innovations in Thunderbird, you will find a solid core of basic functions based on local storage. If having mail in the cloud spooks you, it’s a good, private alternative. And if James goes ahead with his idea of encrypting Thunderbird mail end-to-end, there may be significant new life in the old bird. - --- Woody Leonhard - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-notepad-100614432-orig.jpg) - -### Notepad++ ### - -If Windows Notepad handles all of your text editing (and source code editing and HTML editing) needs, more power to ya. For Windows users who yearn for a little bit more in a text editor, there’s Don Ho’s [Notepad++][6], which is the editor I turn to, over and over again. - -With tabbed views, drag-and-drop, color-coded hints for completing HTML commands, bookmarks, macro recording, shortcut keys, and every text encoding format you’re likely to encounter, Notepad++ takes text to a new level. We get frequent updates, too, with the latest in August. - --- Woody Leonhard - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-vlc-100614435-orig.jpg) - -### VLC ### - -The stalwart [VLC][7] (formerly known as VideoLan Client) runs almost any kind of media file on almost any platform. Yes, it even works as a remote control on Apple Watch. - -The tiled Universal app version for Windows 10, in the Windows Store, draws some criticism for instability and lack of control, but in most cases VLC works, and it works well -- without external codecs. It even supports Blu-ray formats with two new libraries. - -The desktop version is a must-have for Windows 10, unless you’re ready to run the advertising gauntlets that are the Universal Groove Music and Movies & TV apps from Microsoft. VLC received a major [feature update][8] in February and a comprehensive bug fix in April. - --- Woody Leonhard - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-7-zip-100614429-orig.jpg) - -### 7-Zip ### - -Long recognized as the preeminent open source ZIP archive manager for Windows, [7-Zip][9] works like a champ, even on the Windows 10 desktop. Full coverage for RAR files, which can be problematic in Windows, combine with password-protected file creation and support for self-extracting ZIPs. It’s one of those programs that just works. - -Yes, it would be nice to get a more modern file picker. Yes, it would be interesting to see a tiled Universal app version. But even without the fancy bells and whistles, 7-Zip deserves a place on every Windows desktop. - --- Woody Leonhard - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-handbrake-100614427-orig.jpg) - -### Handbrake ### - -If you want to convert your DVDs (or video files in any commonly used format) into a file in some other format, or simply scrape them off a silver coaster, [Handbrake][10] is the way to do it. If you’re a Windows user, Handbrake is almost indispensible, since Microsoft doesn’t believe in ripping DVDs. - -Handbrake presents a number of handy presets for optimizing conversions for your target device (iPod, iPad, Android Tablet, and so on) It’s simple, and it’s fast. With the latest round of bug fixes released in June, Handbrake’s keeping up on maintenance -- and it works fine on the Windows 10 desktop. - --- Woody Leonhard - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-keepass-100614430-orig.jpg) - -### KeePass ### - -I’ll confess that I almost gave up on [KeePass][11] because the primary download site goes to Sourceforge. That means you have to be extremely careful which boxes are checked and what you click on (and when) as you attempt to download and install the software. While KeePass itself is 100 percent clean open source (GNU GPL), Sourceforge doesn’t feel so constrained, and its [installers reek of crapware][12]. - -One of many local-file password storage programs, KeePass distinguishes itself with broad scope, as well as its ability to run on all sorts of platforms, no installation required. KeePass will save not only passwords, but also credit card information and freely structured information. It provides a strong random password generator, and the database itself is locked with AES and Twofish, so nobody’s going to crack it. And it’s kept up to date, with a new stable release last month. - --- Woody Leonhard - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-virtualbox-100614434-orig.jpg) - -### VirtualBox ### - -With a major release published in July, Oracle’s open source [VirtualBox][13] -- available for Windows, OS X, Linux, even Solaris --continues to give commercial counterparts VMware Workstation, VMware Fusion, Parallels Desktop, and Microsoft’s Hyper-V a hard run for their money. The Oracle team is still getting the final Windows 10 bugs ironed out, but come to think of it, so is Microsoft. - -VirtualBox doesn’t quite match the performance or polish of the VMware and Parallels products, but it’s getting closer. Version 5 brought long-awaited drag-and-drop support, making it easier to move files between VMs and host. - -I prefer VirtualBox over Hyper-V because it’s easy to control external devices. In Hyper-V, for example, getting sound to work is a pain in the neck, but in VirtualBox it only takes a click in setup. The shared clipboard between VM and host works wonders. Running speed on both is roughly the same, with a slight advantage to Hyper-V. But managing VirtualBox machines is much easier. - --- Woody Leonhard - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-inkscape-100614428-orig.jpg) - -### Inkscape ### - -If you stand in awe of the designs created with Adobe Illustrator (or even CorelDraw), take a close look at [Inkscape][14]. Scalable vector images never looked so good. - -Version 0.91, released in January, uses a new internal graphics rendering engine called Cairo, sponsored by Google, to make the app run faster and allow for more accurate rendering. Inkscape will read and write SVG, PNG, PDF, even EPS, and many other formats. It can export Flash XML Graphics, HTML5 Canvas, and XAML, among others. - -There’s a strong community around Inkscape, and it’s built for easy extensibility. It’s available for Windows, OS X, and Linux. - --- Woody Leonhard - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-keepassdroid-100614431-orig.jpg) - -### KeePassDroid ### - -Trying to remember all of the passwords we need today is impossible, and creating new ones to meet stringent password policy requirements can be agonizing. A port of KeePass for Android, [KeePassDroid][15] brings sanity preserving password management to mobile devices. - -Like KeyPass, KeyPassDroid makes creating and accessing passwords easy, requiring you to recall only a single master password. It supports both DES and Twofish algorithms for encrypting all passwords, and it goes a step further by encrypting the entire password database, not only the password fields. Notes and other password pertinent information are encrypted too. - -While KeePassDroid's interface is minimal -- dated, some would say -- it gets the job done with bare-bones efficiency. Need to generate passwords that have certain character sets and lengths? KeePassDroid can do that with ease. With more than a million downloads on the Google Play Store, you could say this app definitely fills a need. - --- Victor R. Garza - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-prey-100615300-orig.jpg) - -### Prey ### - -Loss or theft of mobile devices is all too common these days. While there are many tools in the enterprise to manage and erase data either misplaced or stolen from an organization, [Prey][16] facilitates the recovery of the phone, laptop, or tablet, and not just the wiping of potentially sensitive information from the device. - -Prey is a Web service that works with an open source installed agent for Linux, OS X, Windows, Android, and iOS devices. Prey tracks your lost or stolen device by using either the device's GPS, the native geolocation provided by newer operating systems, or an associated Wi-Fi hotspot to home in on the location. - -If your smartphone is lost or stolen, send a text message to the device to activate Prey. For stolen tablets or laptops, use the Prey Project's cloud-based control panel to select the device as missing. The Prey agent on any device can then take a screenshot of the active applications, turn on the camera to catch a thief's image, reset the device to the factory settings, or fully lock down the device. - -Should you want to retrieve your lost items, the Prey Project strongly suggests you contact your local police to have them assist you. - --- Victor R. Garza - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-orbot-100615299-orig.jpg) - -### Orbot ### - -The premiere proxy application for Android, [Orbot][17] leverages the volunteer-operated network of virtual tunnels called Tor (The Onion Router) to keep all communications private. Orbot works with companion applications [Orweb][18] for secure Web browsing and [ChatSecure][19] for secure chat. In fact, any Android app that allows its proxy settings to be changed can be secured with Orbot. - -One thing to remember about the Tor network is that it's designed for secure, lightweight communications, not for pulling down torrents or watching YouTube videos. Surfing media-rich sites like Facebook can be painfully slow. Your Orbot communications won't be blazing fast, but they will stay private and confidential. - --- Victor R. Garza - -![](http://images.techhive.com/images/article/2015/09/bossies-2015-tails-100615301-orig.jpg) - -### Tails ### - -[Tails][20], or The Amnesic Incognito Live System, is a Linux Live OS that can be booted from a USB stick, DVD, or SD card. It’s often used covertly in the Deep Web to secure traffic when purchasing illicit substances, but it can also be used to avoid tracking, support freedom of speech, circumvent censorship, and promote liberty. - -Leveraging Tor (The Onion Router), Tails keeps all communications secure and private and promises to leave no trace on any computer after it’s used. It performs disk encryption with LUKS, protects instant messages with OTR, encrypts Web traffic with the Tor Browser and HTTPS Everywhere, and securely deletes files via Nautilus Wipe. Tails even has an office suite, image editor, and the like. - -Now, it's always possible to be traced while using any system if you're not careful, so be vigilant when using Tails and follow good privacy practices, like turning off JavaScript while using Tor. And be aware that Tails isn't necessarily going to be speedy, even while using a fiber connect, but that's what you pay for anonymity. - --- Victor R. Garza - -![](http://core0.staticworld.net/images/article/2015/09/bossies-2015-main-100614438-orig.jpg) - -### Read about more open source winners ### - -InfoWorld's Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open source winners: - -[Bossie Awards 2015: The best open source applications][21] - -[Bossie Awards 2015: The best open source application development tools][22] - -[Bossie Awards 2015: The best open source big data tools][23] - -[Bossie Awards 2015: The best open source data center and cloud software][24] - -[Bossie Awards 2015: The best open source desktop and mobile software][25] - -[Bossie Awards 2015: The best open source networking and security software][26] - --------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/2982630/open-source-tools/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html - -作者:[InfoWorld staff][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.infoworld.com/author/InfoWorld-staff/ -[1]:https://www.libreoffice.org/download/libreoffice-fresh/ -[2]:http://lwn.net/Articles/637735/ -[3]:https://www.mozilla.org/en-US/firefox/new/ -[4]:https://nakedsecurity.sophos.com/2015/06/24/not-ok-google-privacy-advocates-take-on-the-chromium-team-and-win/ -[5]:https://www.mozilla.org/en-US/thunderbird/ -[6]:https://notepad-plus-plus.org/ -[7]:http://www.videolan.org/vlc/index.html -[8]:http://www.videolan.org/press/vlc-2.2.0.html -[9]:http://www.7-zip.org/ -[10]:https://handbrake.fr/ -[11]:http://keepass.info/ -[12]:http://www.infoworld.com/article/2931753/open-source-software/sourceforge-the-end-cant-come-too-soon.html -[13]:https://www.virtualbox.org/ -[14]:https://inkscape.org/en/download/windows/ -[15]:http://www.keepassdroid.com/ -[16]:http://preyproject.com/ -[17]:https://www.torproject.org/docs/android.html.en -[18]:https://guardianproject.info/apps/orweb/ -[19]:https://guardianproject.info/apps/chatsecure/ -[20]:https://tails.boum.org/ -[21]:http://www.infoworld.com/article/2982622/bossie-awards-2015-the-best-open-source-applications.html -[22]:http://www.infoworld.com/article/2982920/bossie-awards-2015-the-best-open-source-application-development-tools.html -[23]:http://www.infoworld.com/article/2982429/bossie-awards-2015-the-best-open-source-big-data-tools.html -[24]:http://www.infoworld.com/article/2982923/bossie-awards-2015-the-best-open-source-data-center-and-cloud-software.html -[25]:http://www.infoworld.com/article/2982630/bossie-awards-2015-the-best-open-source-desktop-and-mobile-software.html -[26]:http://www.infoworld.com/article/2982962/bossie-awards-2015-the-best-open-source-networking-and-security-software.html \ No newline at end of file diff --git a/sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md b/sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md deleted file mode 100644 index c27e90fd7d..0000000000 --- a/sources/talk/20150709 Interviews--Linus Torvalds Answers Your Question.md +++ /dev/null @@ -1,186 +0,0 @@ -[translating by ray] - -Interviews: Linus Torvalds Answers Your Question -================================================================================ -Last Thursday you had a chance to [ask Linus Torvalds][1] about programming, hardware, and all things Linux. You can read his answers to those questions below. If you'd like to see what he had to say the last time we sat down with him, [you can do so here][2]. - -**Productivity** -by DoofusOfDeath - -> You've somehow managed to originate two insanely useful pieces of software: Linux, and Git. Do you think there's anything in your work habits, your approach to choosing projects, etc., that have helped you achieve that level of productivity? Or is it just the traditional combination of talent, effort, and luck? - -**Linus**: I'm sure it's pretty much always that "talent, effort and luck". I'll leave it to others to debate how much of each... - -I'd love to point out some magical work habit that makes it all happen, but I doubt there really is any. Especially as the work habits I had wrt the kernel and Git have been so different. - -With Git, I think it was a lot about coming at a problem with fresh eyes (not having ever really bought into the traditional SCM mindset), and really trying to think about the issues, and spending a fair amount of time thinking about what the real problems were and what I wanted the design to be. And then the initial self-hosting code took about a day to write (ok, that was "self-hosting" in only the weakest sense, but still). - -And with Linux, obviously, things were very different - the big designs came from the outside, and it took half a year to host itself, and it hadn't even started out as a kernel to begin with. Clearly not a lot of thinking ahead and planning involved ;). So very different circumstances indeed. - -What both the kernel and Git have, and what I think is really important (and I guess that counts as a "work habit"), is a maintainer that stuck to it, and was responsive, responsible and sane. Too many projects falter because they don't have people that stick with them, or have people who have an agenda that doesn't match reality or the user expectations. - -But it's very important to point out that for Git, that maintainer was not me. Junio Hamano really should get pretty much all the credit for Git. Credit where credit is due. I'll take credit for the initial implementation and design of Git - it may not be perfect, but ten years on it still is very solid and very clearly the same basic design. But I'll take even _more_ credit for recognizing that Junio had his head screwed on right, and was the person to drive the project. And all the rest of the credit goes to him. - -Of course, that kind of segues into something else the kernel and Git do have in common: while I still maintain the kernel, I did end up finding a lot of smart people to maintain all the different parts of it. So while one important work habit is that "stick to it" persistence that you need to really take a project from a not-quite-usable prototype to something bigger and better, another important work-habit is probably to also "let go" and not try to own and control the project too much. Let other people really help you - guide the process but don't get in their way. - -**init system** -by lorinc - -> There wasn't a decent unix-like kernel, you wrote one which ultimately became the most used. There wasn't a decent version control software, you wrote one which ultimately became the most love. Do you think we already have a decent init system, or do you have plan to write one that will ultimately settle the world on that hot topic? - -**Linus**: You can say the word "systemd", It's not a four-letter word. Seven letters. Count them. - -I have to say, I don't really get the hatred of systemd. I think it improves a lot on the state of init, and no, I don't see myself getting into that whole area. - -Yeah, it may have a few odd corners here and there, and I'm sure you'll find things to despise. That happens in every project. I'm not a huge fan of the binary logging, for example. But that's just an example. I much prefer systemd's infrastructure for starting services over traditional init, and I think that's a much bigger design decision. - -Yeah, I've had some personality issues with some of the maintainers, but that's about how you handle bug reports and accept blame (or not) for when things go wrong. If people thought that meant that I dislike systemd, I will have to disappoint you guys. - -**Can Valve change the Linux gaming market?** -by Anonymous Coward - -> Do you think Valve is capable of making Linux a primary choice for gamers? - -**Linus**: "Primary"? Probably not where it's even aiming. I think consoles (and all those handheld and various mobile platforms that "real gamers" seem to dismiss as toys) are likely much more primary, and will stay so. - -I think Valve wants to make sure they can control their own future, and Linux and ValveOS is probably partly to explore a more "console-like" Valve experience (ie the whole "get a box set up for a single main purpose", as opposed to a more PC-like experience), and partly as a "second source" against Microsoft, who is a competitor in the console area. Keeping your infrastructure suppliers honest by making sure you have alternatives sounds like a good strategy, and particularly so when those suppliers may be competing with you directly elsewhere. - -So I don't think the aim is really "primary". "Solid alternative" is I think the aim. Of course, let's see where it goes after that. - -But I really have not been involved. People like Greg and the actual graphics driver guys have been in much more direct contact with Valve. I think it's great to see gaming on Linux, but at the same time, I'm personally not really much of a gamer. - -**The future of RT-Linux?** -by nurhussein - -> According to Thomas Gleixner, [the future of the realtime patchset to Linux is in doubt][2], as it is difficult to secure funding from interested parties on this functionality even though it is both useful and important: What are your thoughts on this, and what do you think we need to do to get more support behind the RT patchset, especially considering Linux's increasing use in embedded systems where realtime functionality is undoubtedly useful. - -**Linus**: So I think this is one of those things where the markets decide how important rtLinux ends up being, and I suspect there are more than enough companies who end up wanting and using rtLinux that the project isn't really going anywhere. The complaints by Thomas were - I think - a wake-up call to the companies who end up wanting the extended hard realtime patches. - -So I suspect there are companies and groups like OSADL that end up funding and helping with rtLinux, and that it isn't going away. - -**Rigor and developments** -by hcs_$reboot - -> The most complex program running on a machine is arguably its OS, especially the kernel. Linux (kernel) reached the top level in terms of performance, reliability and versatility. You have been criticized quite a few times for some virulent mails addressed to developers. Do you think Linux would be where it is without managing the project with an iron fist? To go further, do you think some other main OSS project would benefit from a more rigorous management approach? - -**Linus**: One of the nice things about open source is how it allows people to really concentrate on what they are good at, and it has been a huge advantage for Linux that we've had people who are interested in the marketing side and selling Linux, as well as the legal side etc. - -And that is all in addition, of course, to the original "we're motivated by the technology" people like me. And even within that "we're motivated by technology" group, you most certainly don't need to find _everything_ interesting, you can find the area you are passionate about and really care about and want to work on. - -That's _fundamentally_ how open source works. - -Now, if somebody is passionate about some "good management" thing, go wild, and try to get involved, and try to manage things. It's not what _I_ am interested in, but hey, the proof is in the pudding - anybody who thinks they have a new rigorous management approach that they think will help some part of the process, go wild. - -Now, I personally suspect that it wouldn't work - not only are tech people an ornery lot to begin with (that whole "herding cats" thing), just look at all the crazy arguments on the internet. And ask yourself what actually holds an open source project like the kernel together? I think you need to be very oriented towards the purely technical solutions, simply because then you have tangible and real issues you can discuss (and argue about) with fairly clear-cut hard answers. It's the only thing people can really agree on in the big picture. - -So the Linux approach to "management" has been to put technology first. That's rigorous enough for me. But as mentioned, it's a free-for-all. Anybody can come in and try to do better. Really. - -And btw, it's worth noting that there are obviously specific smaller development teams where other management models work fine. Most of the individual developers are parts of teams inside particular companies, and within the confines of that company, there may well be a very strict rigorous management model. Similarly, within the confines of a particular productization effort there may be particular goals and models for that particular team that transcend that general "technical issues" thing. - -Just to give a concrete example, the "development kernel" tree that I maintain works fundamentally differently and with very different rules from the "stable tree" that Greg does, which in turn is maintained very differently from what a distribution team within a Linux company does inside its maintenance kernel team. - -So there's certainly room for different approaches to managing those very different groups. But do I think you can "rigorously manage" people on the internet? No. - -**Functional languages?** -by EmeraldBot - -> While historically you've been a C and Assembly guy (and the odd shell scripting and such), what do you think of functional languages such as Lisp, Closure, Haskell, etc? Do you see any advantages to them, or do you view them as frivolous and impractical? If you decide to do so, thanks for taking the time to answer my question! You're a legend at what you do, and I think it's awesome that the significantly less interesting me can ask you a question like this. - -**Linus**: I may be a fan of C (with a certain fondness for assembly, just because it's so close to the machine), but that's very much about a certain context. I work at a level where those languages make sense. I certainly don't think that tools like Haskell etc are "frivolous and impractical" in general, although on a kernel level (or in a source control management system) I suspect they kind of are. - -Many moons ago I worked on sparse (the C parser and analyzer), and one of my coworkers was a Haskell fan, and did incredible example transformations in very simple (well, to him) code - stuff that is just nasty to write in C because it's pretty high-level, there's tons of memory management, and you're really talking about implementing fairly abstract and high-level rules with pattern matching etc. - -So I'm definitely not a functional language kind of guy - it's not how I learnt programming, and it really isn't very relevant to what I do, and I wouldn't recognize Haskell code if it bit me in the ass and called me names. But no, I wouldn't call them frivolous. - -**Critical software to the use of Linux** -by TWX - -> Mr. Torvalds, For many uses of Linux such as on the desktop, other software beyond the kernel and the base GNU tools are required. What other projects would you like to see given priority, and what would you like to see implemented or improved? Admittedly I thought most about X-Windows when asking this question; but I don't doubt that other daemons or systems can be just as important to the user experience. Thank you for your efforts all these years. - -**Linus**: Hey, I don't really have any particular project I would want to champion, largely because we all have so different requirements on the desktop. There's just no single thing that stands out as being hugely more important than others to me. - -What I do wish particularly desktop developers cared about is "consistency of experience". And by that I don't mean some kind of enforced visual consistency between different applications to make things "look coherent". No, I'm just talking about the pain and uncertainty users go through with upgrades, and understanding that while your project may be the most important project to *you* (because it's what you do), to your users, your project is likely just a fairly small and irrelevant part of their experience, and it's not very central at all, and they've learnt the quirks about that thing they don't even care about, and you really shouldn't break their expectations. Because it turns out that that is how you really make people hate their desktop. - -This is not at all Linux-specific, of course - just look at the less than enthusiastic reception that other operating system redesigns have received. But I really wish that we hadn't had *both* of the major Linux desktop environments have to learn this (well, I hope they learnt) the hard way, and both of them ending up blaming their users rather than themselves. - -**"anykernel"-style portable drivers?** -by staalmannen - -> What do you think about the "anykernel" concept (invented by another Finn btw) used in NetBSD? Basically, they have modularized the code so that a driver can be built either in a monolithic kernel or for user space without source code changes ( rumpkernel.org ). The drivers are highly portable and used in Genode os (L4 type kernels), minix etc... Would this be possible or desirable for Linux? Apparently there is one attempt called "libos"... - -**Linus**: So I have bad experiences with "portable" drivers. Writing drivers to some common environment tends to force some ridiculously nasty impedance matching abstractions that just get in the way and make things really hard to read and modify. It gets particularly nasty when everybody ends up having complicated - and differently so - driver subsystems to handle a lot of commonalities for a certain class of drivers (say a network driver, or a USB driver), and the different operating systems really have very different approaches and locking rules etc. - -I haven't seen anykernel drivers, but from past experience my reaction to "portable device drivers" is to run away, screaming like little girl. As they say in Swedish "Bränt barn luktar illa". - -**Processor Architecture** -by swv3752 - -> Several years ago, you were employed by Transmeta designing the Crusoe processor. I understand you are quite knowledgeable about cpu architecture. What are your thoughts on the Current Intel and AMD x86 CPUs particularly in comparison with ARM and IBM's Power8 CPUs? Where do you see the advantages of each one? - -**Linus**: I'm no CPU architect, I just play one on TV. - -But yes, I've been close to the CPU both as part of my kernel work, and as part of a processor company, and working at that level for a long time just means that you end up having fairly strong opinions. One of the things that my experiences at Transmeta convinced me of, for example, was that there's definitely very much a limit to what software should care about. I loved working at Transmeta, I loved the whole startup company environment, I loved working with really smart people, but in the end I ended up absolutely *not* loving to work with overly simple hardware (I also didn't love the whole IPO process, and what that did to the company culture, but that's a different thing). - -Because there's only so much that software can do to compensate. - -Something similar happened with my kernel work on the alpha architecture, which also started out as being an overly simplified implementation in the name of being small and supposedly running really fast. While I really started out liking the alpha architecture for being so clean, I ended up detesting how fragile the architecture implementations were (and by the time that got fixed in the 21264, I had given up on alpha). - -So I've come to absolutely detest CPU's that need a lot of compiler smarts or special tuning to go fast. Life is too short to waste on in-order CPU's, or on hardware designers who think software should take care of the pieces that they find to be too complicated to handle themselves, and as a result just left undone. "Weak memory ordering" is just another example. - -Thankfully, most of the industry these days seems to agree. Yes, there are still in-order cores, but nobody tries to make excuses for them any more: they are for the truly cheap and low-end market. - -I tend to really like the modern Intel cores in particular, which tend to take that "let's not be stupid" really to heart. With the kernel being so threaded, I end up caring a lot about things like memory ordering etc, and the Intel big-core CPU's tend to be in a class of their own there. As a software person who cares about performance and looks at instruction profiles etc, it's just so *nice* to see that the CPU doesn't have some crazy glass jaw where you have to be very careful. - -**GPU kernels** -by maraist - -> Is there any inspiration that a GPU based kernel / scheduler has for you? How might Linux be improved to better take advantage of GPU-type batch execution models. Given that you worked transmeta and JIT compiled host-targeted runtimes. GPUs 1,000-thread schedulers seem like the next great paradigm for the exact type of machines that Linux does best on. - -**Linus**: I don't think we'll see the kernel ever treat GPU threads the way we treat CPU threads. Not with the current model of GPU's (and that model doesn't really seem to be changing all that much any more). - -Yes, GPU's are getting much better, and now generally have virtual memory and the ability to preempt execution, and you could run an OS on them. But the scheduling latencies are pretty high, and the threads are not really "independent" (ie they tend to share a lot of state - like the virtual address space and a large shared register set), so GPU "threads" don't tend to work like CPU threads. You'd schedule them all-or-nothing, so if you were to switch processes, you'd treat the GPU as one entity where you switch all the threads at once. - -So it really wouldn't look like a thousand threads to the kernel. The GPU would still be scheduled as one single entity (or maybe a couple of entities depending on how the GPU is partitioned). The fact that that single entity works by doing a lot of things in massive parallelism is kind of immaterial for the kernel that doesn't end up seeing that parallelism as separate threads. - -**alleged danger of Artificial Intelligence** -by peter303 - -> Some computer experts like Marvin Minsky, Larry Page, Ray Kuzweil think A.I. will be a great gift to Mankind. Others like Bill Joy and Elon Musk are fearful of potential danger. Where do you stand, Linus? - -**Linus**: I just don't see the thing to be fearful of. - -We'll get AI, and it will almost certainly be through something very much like recurrent neural networks. And the thing is, since that kind of AI will need training, it won't be "reliable" in the traditional computer sense. It's not the old rule-based prolog days, when people thought they'd *understand* what the actual decisions were in an AI. - -And that all makes it very interesting, of course, but it also makes it hard to productize. Which will very much limit where you'll actually find those neural networks, and what kinds of network sizes and inputs and outputs they'll have. - -So I'd expect just more of (and much fancier) rather targeted AI, rather than anything human-like at all. Language recognition, pattern recognition, things like that. I just don't see the situation where you suddenly have some existential crisis because your dishwasher is starting to discuss Sartre with you. - -The whole "Singularity" kind of event? Yeah, it's science fiction, and not very good SciFi at that, in my opinion. Unending exponential growth? What drugs are those people on? I mean, really.. - -It's like Moore's law - yeah, it's very impressive when something can (almost) be plotted on an exponential curve for a long time. Very impressive indeed when it's over many decades. But it's _still_ just the beginning of the "S curve". Anybody who thinks any different is just deluding themselves. There are no unending exponentials. - -**Is the kernel basically a finished project?** -by NaCh0 - -> Aside from adding drivers and refactoring algorithms when performance limits are discovered, is there anything left for the kernel? Maybe it's a failure of tech journalism but we never hear about the next big thing in kernel land anymore. - -**Linus**: I don't think there's much of a "next big thing" in the kernel. - -I wouldn't say that there is nothing but drivers (and architectures are kind of "CPU drivers) and improving scalability left, because I'm constantly amazed by how many new things people figure out are still good ideas. But they tend to still be pretty incremental improvements. An OS kernel doesn't look *that* radically different from what it was 40 years ago, and that's fine. I think radical new ideas are often overrated, and the thing that really matters in the end is that plodding detail work. That's how technology evolves. - -And judging by how our kernel releases are going, there's no end in sight for that "plodding detail work". And it's still as interesting as it ever was. - --------------------------------------------------------------------------------- - -via: http://linux.slashdot.org/story/15/06/30/0058243/interviews-linus-torvalds-answers-your-question - -作者:[samzenpus][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:samzenpus@slashdot.org -[1]:http://interviews.slashdot.org/story/15/06/24/1718247/interview-ask-linus-torvalds-a-question -[2]:http://meta.slashdot.org/story/12/10/11/0030249/linus-torvalds-answers-your-questions -[3]:https://lwn.net/Articles/604695/ diff --git a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md b/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md index 49244c96d2..6624a3c590 100644 --- a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md +++ b/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md @@ -1,4 +1,3 @@ -translated by bestony How to Install OsTicket Ticketing System in Fedora 22 / Centos 7 ================================================================================ In this article, we'll learn how to setup help desk ticketing system with osTicket in our machine or server running Fedora 22 or CentOS 7 as operating system. osTicket is a free and open source popular customer support ticketing system developed and maintained by [Enhancesoft][1] and its contributors. osTicket is the best solution for help and support ticketing system and management for better communication and support assistance with clients and customers. It has the ability to easily integrate with inquiries created via email, phone and web based forms into a beautiful multi-user web interface. osTicket makes us easy to manage, organize and log all our support requests and responses in one single place. It is a simple, lightweight, reliable, open source, web-based and easy to setup and use help desk ticketing system. diff --git a/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md b/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md deleted file mode 100644 index 19ddcf0e97..0000000000 --- a/sources/tech/20151104 How to Install Pure-FTPd with TLS on FreeBSD 10.2.md +++ /dev/null @@ -1,154 +0,0 @@ -How to Install Pure-FTPd with TLS on FreeBSD 10.2 -================================================================================ -FTP or File Transfer Protocol is application layer standard network protocol used to transfer file from the client to the server, after user logged in to the FTP server over the TCP-Network, such as internet. FTP has been round long time ago, much longer then P2P Program, or World Wide Web, and until this day it was a primary method for sharing file with other over the internet and it it remain very popular even today. FTP provide an secure transmission, that protect username, password and encrypt the content with SSL/TLS. - -Pure-FTPd is free FTP Server with strong and focus on the software security. It was great choice for you if you want to provide a fast, secure, lightweight with feature rich FTP Services. Pure-FTPd can be install on variety of Unix-like operating system, include Linux and FreeBSD. Pure-FTPd is created by Frank Dennis in 2001, based on Troll-FTPd, and until now is actively developed by a team led by Dennis. - -In this tutorial we will provide about installation and configuration of "**Pure-FTPd**" with Unix-like operating system FreeBSD 10.2. - -### Step 1 - Update system ### - -The first thing you must do is to install and update the freebsd repository, please connect to your server with SSH and then type command below as sudo/root : - - freebsd-update fetch - freebsd-update install - -### Step 2 - Install Pure-FTPd ### - -You can install Pure-FTPd from the ports method, but in this tutorial we will install from the freebsd repository with "**pkg**" command. So, now let's install : - - pkg install pure-ftpd - -Once installation is finished, please add pure-ftpd to the start at the boot time with sysrc command below : - - sysrc pureftpd_enable=yes - -### Step 3 - Configure Pure-FTPd ### - -Configuration file for Pure-FTPd is located at directory "/usr/local/etc/", please go to the directory and copy the sample configuration for pure-ftpd to "**pure-ftpd.conf**". - - cd /usr/local/etc/ - cp pure-ftpd.conf.sample pure-ftpd.conf - -Now edit the file configuration with nano editor : - - nano -c pure-ftpd.conf - -Note : -c option to show line number on nano. - -Go to line 59 and change the value of "VerboseLog" to "**yes**". This option is allow you as administrator to see the log all command used by the users. - - VerboseLog yes - -And now look at line 126 "PureDB" for virtual-users configuration. Virtual users is a simple mechanism to store a list of users, with their password, name, uid, directory, etc. It's just like /etc/passwd. But it's not /etc/passwd. It's a different file and only for FTP. In this tutorial we will store the list of user to the file "**/usr/local/etc/pureftpd.passwd**" and "**/usr/local/etc/pureftpd.pdb**". Please uncomment that line and change the path for the file to "/usr/local/etc/pureftpd.pdb". - - PureDB /usr/local/etc/pureftpd.pdb - -Next, uncomment on the line 336 "**CreateHomeDir**", this option make you easy to add the virtual users, allow automatically create home directories if they are missing. - - CreateHomeDir yes - -Save and exit. - -Next, start pure-ftpd with service command : - - service pure-ftpd start - -### Step 4 - Adding New Users ### - -At this step FTP server is started without error, but you can not log in to the FTP Server, because the default configuration of pure-ftpd is disabled for anonymous users. We need to create new users with home directory, and then give it the password for login. - -On thing you must do befere you add new user to pure-ftpd virtual-user is to create a system user for this, lets create new system user "**vftp**" and the default group is same as username, with home directory "**/home/vftp/**". - - pw useradd vftp -s /sbin/nologin -w no -d /home/vftp \ - -c "Virtual User Pure-FTPd" -m - -Now you can add the new user for the FTP Server with "**pure-pw**" command. For an example here, we will create new user named "**akari**", so please see command below : - - pure-pw useradd akari -u vftp -g vftp -d /home/vftp/akari - Password: TYPE YOUR PASSWORD - -that command will create user "**akari**" and the data stored at the file "**/usr/local/etc/pureftpd.passwd**", not at /etc/passwd file, so this means is that you can easily create FTP-only accounts without messing up your system accounts. - -Next, you must generate the PureDB user database with this command : - - pure-pw mkdb - -Now restart the pure-ftpd services and try connect with user "akari" : - - service pure-ftpd restart - -Trying to connect with user akari : - - ftp SERVERIP - -![FTP Connect user akari](http://blog.linoxide.com/wp-content/uploads/2015/10/FTP-Connect-user-akari.png) - -**NOTE :** - -If you want to add new user again, you can use "**pure-pw**" command. And if you want to delete the current user, you can use this : - - pure-pw userdel useryouwanttodelete - pure-pw mkdb - -### Step 5 - Add SSL/TLS to Pure-FTPd ### - -Pure-FTPd supports encryption using TLS security mechanisms. To support for TLS/SSL, make sure the OpenSSL library is already installed on your freebsd system. - -Now you must generate new "**self-signed certificate**" on the directory "**/etc/ssl/private**". Before you generate the certificate, please create new directory there called "private". - - cd /etc/ssl/ - mkdir private - cd private/ - -Now generate "self-signed certificate" with openssl command below : - - openssl req -x509 -nodes -newkey rsa:2048 -sha256 -keyout \ - /etc/ssl/private/pure-ftpd.pem \ - -out /etc/ssl/private/pure-ftpd.pem - -FILL ALL WITH YOUR PERSONAL INFO. - -![Generate Certificate pem](http://blog.linoxide.com/wp-content/uploads/2015/10/Generate-Certificate-pem.png) - -Next, change the certificate permission : - - chmod 600 /etc/ssl/private/*.pem - -Once the certifcate is generated, Edit the pure-ftpd configuration file : - - nano -c /usr/local/etc/pure-ftpd.conf - -Uncomment on line **423** to enable the TLS : - - TLS 1 - -And line **439** for the certificate file path : - - CertFile /etc/ssl/private/pure-ftpd.pem - -Save and exit, then restart the pure-ftpd services : - - service pure-ftpd restart - -Now let's test the Pure-FTPd that work with TLS/SSL. I'm here use "**FileZilla**" to connect to the FTP Server, and use user "**akari**" that have been created. - -![Pure-FTPd with TLS SUpport](http://blog.linoxide.com/wp-content/uploads/2015/10/Pure-FTPd-with-TLS-SUpport.png) - -Pure-FTPd with TLS on FreeBSD 10.2 successfully. - -### Conclusion ### - -FTP or File Transfer Protocol is standart protocol used to transfer file between users and the server. One of the best, lightweight and secure FTP Server Software is Pure-FTPd. It is secure and support for TLS/SSL encryption mechanism. Pure-FTPd is easy to to install and configure, you can manage the user with virtual user support, and it is make you as sysadmin is easy to manage the user if you have a much user ftp server. - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/install-pure-ftpd-tls-freebsd-10-2/ - -作者:[Arul][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/arulm/ diff --git a/sources/tech/20151227 Ubuntu Touch, three years later.md b/sources/tech/20151227 Ubuntu Touch, three years later.md deleted file mode 100644 index 3d467163cf..0000000000 --- a/sources/tech/20151227 Ubuntu Touch, three years later.md +++ /dev/null @@ -1,68 +0,0 @@ -Back in early 2013, your editor [dedicated a sacrificial handset][2] to the testing of the then-new Ubuntu Touch distribution. At that time, things were so unbaked that the distribution came with mocked-up data for unready apps; it even came with a set of fake tweets. Nearly three years later, it seemed time to give Ubuntu Touch another try on another sacrificial device. This distribution has certainly made some progress in those years, but, sadly, it still seems far from being a competitive offering in this space. -In particular, your editor tested version 16.04r3 from the testing channel on a Nexus 4 handset. The Nexus 4 is certainly past its prime at the end of 2015, but it still functions as a credible Android device. It is, in any case, the only phone handset on [the list of supported devices][1] other than the three that were sold (in locations far from your editor's home) with Ubuntu Touch pre-installed. It is a bit discouraging that Ubuntu Touch is not supported on a more recent device; the Nexus 4 was discontinued over two years ago. - -People who are accustomed to putting strange systems on Nexus devices know the drill fairly well: unlock the bootloader, install a new recovery image if necessary, then use the **fastboot** tool to flash a new image. Ubuntu Touch does not work that way; instead, one must use a set of tools available only on the Ubuntu desktop distribution. Your editor's current menagerie of systems does not include any of those, but, fortunately, running the Ubuntu 15.10 distribution off a USB drive works just fine. It must be said, though, that Ubuntu appears not to have gotten the memo regarding high-DPI laptop displays; 15.10 is an exercise in eyestrain on such a device. - -Once the requisite packages have been installed, the **ubuntu-device-flash** command can be used to install Ubuntu Touch on the phone. It finds the installation image wherever Canonical hides them (it's not obvious where that is) and puts it onto the phone; the process, on the Nexus 4, took about three hours — a surprisingly long time. Among other things, it installs a Ubuntu-specific recovery image, regardless of whether that should be necessary or not. The installation takes up about 4.5GB of space on the device. At the end, the phone reboots and comes up with the Ubuntu Touch lock screen, which has changed little in the last three years. The first boot takes a discouragingly long time, but subsequent reboots are faster, perhaps faster than Android on the same device. - -Alas, that's about the only thing that is faster than Android. The phone starts sluggish and gets worse as time goes on. At one point it took a solid minute to get the dialer screen up on the running device. Scrolling can be jerky and unpleasant to work with. At least once, the phone bogged down to the point that there was little alternative to shutting it down and starting over. - -Logging into the device over the USB connection offers some clues as to why that might be. There were no less than 258 processes running on the system. A number of them have "evolution" in their name, which is never a good sign even on a heftier system. Daemons like NetworkManager and pulseaudio are running. In general, Ubuntu Touch seems to have a large number of relatively large moving parts, leading, seemingly, to memory pressure and a certain amount of thrashing. - -Three years ago, Ubuntu Touch was built on an Android chassis. There are still bits of Android that show up here and there (it uses binder, for example), but a number of those components have been replaced. This release runs an Android-derived kernel that identifies itself as "3.4.0-7 #39-Ubuntu". 3.4.0 was released in May 2012, so it is getting a bit long in the tooth; the 3.4.0 number suggests this kernel hasn't even gotten the stable updates that followed that release. Finding the source for the kernel in this distribution is not easy; it must almost certainly be hidden somewhere in this Gerrit repository, but your editor ran out of time while trying to find it. The SurfaceFlinger display manager has been replaced by Ubuntu's own Mir, with Unity providing the interface. Upstart is the init system, despite the fact that Ubuntu has moved to systemd on desktop systems. - -When one moves beyond the command-line interface and starts playing with the touchscreen, one finds that the basics of the interface resemble what was demonstrated three years ago. Swiping from the left edge brings the [Overview screen] Unity icon bar (but no longer switches to a home screen; the "home screen" concept doesn't really seem to exist anymore). Swiping from the right will either switch to another application or produce an overview of running applications; it's not clear how it decides which. The overview provides a cute oblique view of the running applications; it's sufficient to choose one, but seems somewhat wasteful of screen space. Swiping up from the bottom produces an application-specific menu — usually. - -![][3] - - -The swipe gestures work well enough once one gets used to them, but there is scope for confusion. The camera app, for example, will instruct the user to "swipe left for photo roll," but, unless one is careful to avoid [Swipe left] the right edge of the screen, that gesture will yield the overview screen instead. One can learn subtleties like "swipes involving the edge" and "swipes avoiding the edge," but one could argue that such an interface is more difficult than it needs to be and less discoverable than it could be. - -![][4] - -Speaking of the camera app, it takes pictures as one might expect, and it has gained a high-dynamic-range mode in recent years. It still has no support for stitching together photos in a panorama or "photo sphere" mode, though. - -![][5] - -The base distribution comes with a fairly basic set of apps. Many of them appear to be interfaces to an associated web page; the Amazon, GMail, and Facebook apps, for example. Something called "Shorts" appears to be an RSS reader, though it seems impervious to the addition of arbitrary feeds. There is a terminal app, but it prompts for a password — a bit surprising [Terminal emulator] given that no password had ever been supplied for the device (it turns out that one should use the screen-lock PIN here). It's not clear that this extra level of "security" is helpful, given that the user involved is already able to install, launch, and run applications on the device, but so it goes. - -Despite the presence of all those evolution processes, there is no IMAP-capable email app; there are also no mapping apps. There is a rudimentary web browser with Ubuntu branding; it appears that this browser is based on Chromium. The weather app is limited to a few dozen hardwired locations worldwide; the closest supported location to LWN headquarters was Houston, which, one assumes, is unlikely to be dealing with the foot of snow your editor had to shovel while partway through this article. One suspects we would have heard about that. - -![][6] - -Inevitably, there is a store from which one can obtain other apps. There are, for example, a couple of seemingly capable, OpenStreetMap-based mapping apps there, including one that claims turn-by-turn navigation, but nothing requiring GPS access worked in your editor's tests. Games abound, of course, but [Maps] there is little in the way of apps that are well known in the Android or iOS worlds. The store will refuse to allow the installation of apps until one creates a "Ubuntu One" account; that is unfortunate, but most Android users never get anywhere near that far before having to create or supply a Google account. - -![][7] - -Canonical puts a fair amount of energy into promoting its "scopes," which are said to be better than apps for the aggregation of content. In truth, they seem to just be another type of app with a focus on gathering information from more than one source. Although, with "branded scopes," the "more than one source" part is often deliberately put by the wayside. Your editor played around with scopes for a while, but, in truth, could not find what was supposed to make them special. - -Permissions management in Ubuntu Touch resembles that found in recent Android releases: the user will be prompted the first time an application tries to exercise a specific privilege. As with Android, the number of [Permissions request] actions requiring privilege is relatively small, and "connect to any arbitrary site on the Internet" is not among them. Access to location information or the camera, though, will generate a prompt. There is also, again as with Android, a way to control which applications are allowed to place notifications on the screen. - -Ubuntu Touch still seems to drain the battery far more quickly than Android does on the same device. Indeed, it is barely able to get through the night while sitting idle. There is a cute battery app that offers a couple of "ways to reduce battery use," but it lacks Android's ability to say which apps are actually draining the battery (though, it must be said, that information from Android is often less helpful than one might hope). - -![][8] - -The keyboard now has proper multi-lingual support (though there is no visual indication of which language is currently in effect) and, as with Android, one can switch between languages on the fly. It offers word suggestions, does [Keyboard] spelling correction, and all the usual things. One missing feature, though, is "swipe" typing which, your editor has found, can speed the process of inputting text on a small keyboard considerably. There is also no voice input; no major loss from your editor's point of view, but others will probably see that differently. - -There is a lot to like in Ubuntu Touch. There is some appeal to running something that looks like a proper Linux system, even if it still has a number of Ubuntu-specific components. One does not get the sense that the device is watching quite as closely as Android devices do, though it's not entirely clear, for example, what happens with location data or where it might be stored. In any case, a Ubuntu device clearly has more free software on it than most alternatives do; there is no proprietary "play services" layer maintaining control over the system. - -Sadly, though, this distribution still is not up to the capabilities and the performance of the big alternatives. Switching to Ubuntu Touch means settling for a much slower system, running on a severely limited set of devices, with a relative scarcity of apps to choose from. Your editor would very much like to see a handset distribution that is more free and more open than the alternatives, but that distribution must also be competitive with those alternatives, and that does not seem to be the case here. Unless Canonical can find a way to close the performance and feature gaps with Android, it seems unlikely to have much hope of achieving uptake that is within a few orders of magnitude of Android's. - --------------------------------------- - -via: https://lwn.net/Articles/667983/ - -作者:Jonathan Corbet -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[1]: https://developer.ubuntu.com/en/start/ubuntu-for-devices/devices/ -[2]: https://lwn.net/Articles/540138/ -[3]: https://static.lwn.net/images/2015/utouch/overview-sm.png -[4]: https://static.lwn.net/images/2015/utouch/camera-swipe-sm.png -[5]: https://static.lwn.net/images/2015/utouch/terminal.png -[6]: https://static.lwn.net/images/2015/utouch/gps-sm.png -[7]: https://static.lwn.net/images/2015/utouch/camera-perm.png -[8]: https://static.lwn.net/images/2015/utouch/schifo.png diff --git a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md index 6df151f9f6..60b8f7fc75 100644 --- a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md +++ b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md @@ -1,4 +1,3 @@ -bioIkke 翻译中 7 Steps to Start Your Linux SysAdmin Career =============================================== diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md index 468414fdfa..19aab96541 100644 --- a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md +++ b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md @@ -1,5 +1,3 @@ -GHLandy Translating - How to Best Manage Encryption Keys on Linux ============================================= diff --git a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md index 14e950a611..19c654e27e 100644 --- a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md +++ b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md @@ -1,5 +1,3 @@ -Ricky Gong 翻译中 - Linux Systems Patched for Critical glibc Flaw ================================================= diff --git a/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md b/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md index 2f7d6f7f8d..81f7467719 100644 --- a/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md +++ b/sources/tech/20160222 Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI.md @@ -1,6 +1,5 @@ Achieving Enterprise-Ready Container Tools With Wercker’s Open Source CLI =========================================== -#CoderBOBO translating For enterprises, containers offer more efficient build environments, cloud-native applications and migration from legacy systems to the cloud. But enterprise adoption of the technology -- Docker specifically -- has been hampered by, among other issues, [a lack of mature developer tools][1]. diff --git a/sources/tech/20160314 15 podcasts for FOSS fans b/sources/tech/20160314 15 podcasts for FOSS fans.md similarity index 100% rename from sources/tech/20160314 15 podcasts for FOSS fans rename to sources/tech/20160314 15 podcasts for FOSS fans.md From 5fdbcb365c2efdc99463254201319d4745853958 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 15 Apr 2016 15:42:56 +0800 Subject: [PATCH 358/582] PUB:20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10 @alim0x --- ...New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename {translated/news => published}/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md (82%) diff --git a/translated/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md b/published/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md similarity index 82% rename from translated/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md rename to published/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md index 899d8b5920..0470818ba6 100644 --- a/translated/news/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md +++ b/published/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md @@ -7,15 +7,15 @@ Ubuntu Budgie 将在 Ubuntu 16.10 中成为新官方分支发行版 ![Budgie-Remix 16.04 Beta 2](http://i1-news.softpedia-static.com/images/news2/ubuntu-budgie-could-be-the-new-flavor-of-ubuntu-linux-as-part-of-ubuntu-16-10-502573-2.jpg) -今天,Budgie-Remix 的开发者 David Mohammed 向 Softpedia 通报了项目进度,以及为即将到来的 16.04 发布的第二个 Beta 版本。Cononical 的创始人 [Mark Shuttleworth 说过][2]如果能够有围绕这个包的社区,它肯定会得到支持。 +今天,Budgie-Remix 的开发者 David Mohammed 向 Softpedia 通报了项目进度,以及为即将到来的 16.04 发布了第二个 Beta 版本。Cononical 的创始人 [Mark Shuttleworth 说过][2]如果能够有围绕这个发行版的社区,它肯定会得到支持。 -自我们[最初的报道][3]以来,David Mohammed 似乎与 Ubuntu MATE 项目的领导者 Martin Wimpress 取得了联系,后者敦促他以 Ubuntu 16.10 作为他还未正式命名的 Ubuntu 分支的官方版本目标。这个分支发行版构建于 Budgie 桌面环境之上,它是超赞的 [Solus][4] 开发者团队创建的。 +自我们[最初的报道][3]以来,David Mohammed 似乎与 Ubuntu MATE 项目的领导者 Martin Wimpress 取得了联系,后者敦促他以 Ubuntu 16.10 作为他还未正式命名的 Ubuntu 分支的官方版本目标。这个分支发行版构建于 Budgie 桌面环境之上,该桌面环境是由超赞的 [Solus][4] 开发者团队创建的。 “我们本周完成了 Beta 2 版本的开发以及很多其它东西,而且我们还有 Martin Wimpress (Ubuntu MATE 项目领导者)的支持,”David Mohammed 对 Softpedia 独家爆料。”他还敦促我们以 16.10 作为成为官方版本的目标——那当然是个主要的挑战——并且我们还需要社区的帮助/加入我们来让这一切成为现实!” ### Ubuntu Budgie 16.10 可能在 2016 年 10 月到来 ### -4 月 21 日,Canonical 将会发布 Ubuntu Linux 的下一个 LTS(Long Term Support,长期支持)版本,Xenial Xerus 好客的非洲地松鼠,也就是 Ubuntu 16.04,并且我们有可能能够以 Budgie-Remix 16.04 的名义提前尝试将成为官方分支的 Ubuntu Budgie。但在那之前,你可以帮助开发者[测试 Beta 2 版本][5]。 +4 月 21 日,Canonical 将会发布 Ubuntu Linux 的下一个 LTS(Long Term Support,长期支持)版本:Xenial Xerus——好客的非洲地松鼠——也就是 Ubuntu 16.04。我们有可能能够提前体验到 Budgie-Remix 16.04,以后它也许成为了官方分支的 Ubuntu Budgie 。但在那之前,你可以帮助开发者[测试 Beta 2 版本][5]。 在 Ubuntu 16.04 LTS(Xenial Xerus)发布之后,Ubuntu 的开发者们就会立即将注意力转移到下一个版本的开发上。下一个版本 Ubuntu 16.10 应该会在 10 月底到来,并且 Ubuntu Budgie 也可能宣布成为 Ubuntu 官方分支发行版。 @@ -32,7 +32,7 @@ via: http://news.softpedia.com/news/ubuntu-budgie-could-be-the-new-flavor-of-ubu 作者:Marius Nestor 译者:[alim0x](https://github.com/alim0x) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6cd34d0ae02fee6d46bfeb8f1e32cfbb8684fc12 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 15 Apr 2016 21:17:57 +0800 Subject: [PATCH 359/582] PUB:20151028 10 Tips for 10x Application Performance --- .../20151028 10 Tips for 10x Application Performance.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20151028 10 Tips for 10x Application Performance.md (100%) diff --git a/translated/tech/20151028 10 Tips for 10x Application Performance.md b/published/20151028 10 Tips for 10x Application Performance.md similarity index 100% rename from translated/tech/20151028 10 Tips for 10x Application Performance.md rename to published/20151028 10 Tips for 10x Application Performance.md From a0d545db329a175f9bbf40d3dee76dad5cc4640d Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 15 Apr 2016 21:36:16 +0800 Subject: [PATCH 360/582] PUB:20160220 Make Sudo Insult User For Each Incorrect Password Attempt @geekpi --- ...ser For Each Incorrect Password Attempt.md | 58 +++++++++++++++++++ ...ser For Each Incorrect Password Attempt.md | 58 ------------------- 2 files changed, 58 insertions(+), 58 deletions(-) create mode 100644 published/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md delete mode 100644 translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md diff --git a/published/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md b/published/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md new file mode 100644 index 0000000000..973c95b666 --- /dev/null +++ b/published/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md @@ -0,0 +1,58 @@ +输错密码?这个 sudo 会“嘲讽”你 +=========================================================== + +你在 Linux 终端中会有很多的乐趣。我今天要讲的不是在[终端中跑火车](http://itsfoss.com/ubuntu-terminal-train/)。 + +我今天要讲的技巧可以放松你的心情。前面一篇文章中,你学习了[如何在命令行中增加 sudo 命令的超时](http://itsfoss.com/change-sudo-password-timeout-ubuntu/)。今天的文章中,我会向你展示如何让 sudo 在输错密码的时候“嘲讽”你(或者其他人)。 + +对我讲的感到疑惑?这里,让我们看下这张 gif 来了解下 sudo 是如何在你输错密码之后“嘲讽”你的。 + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux.gif) + +那么,为什么要这么做?毕竟,“嘲讽”不会让你的一天开心,不是么? + +对我来说,一点小技巧都是有趣的,并且要比以前的“密码错误”的错误提示更有趣。另外,我可以向我的朋友展示来逗弄他们(这个例子中是通过自由开源软件)。我很肯定你有你自己的理由来使用这个技巧的。 + +## 在 sudo 中启用“嘲讽” + +你可以在`sudo`配置中增加下面的行来启用“嘲讽”功能: + +``` +Defaults insults +``` + +让我们看看该如何做。打开终端并使用下面的命令: + +``` +sudo visudo +``` + +这会在 [nano](http://www.nano-editor.org/)中打开配置文件。 + +> 是的,我知道传统的 ‘visudo’ 应该在 vi 中打开 `/etc/sudoers` 文件,但是 Ubuntu 及基于它的发行版会使用 nano 打开。由于我们在讨论vi,这里有一份 [vi 速查表](http://itsfoss.com/download-vi-cheat-sheet)可以在你决定使用 vi 的时候使用。 + +回到编辑 sudeors 文件界面,你需要找出 Defaults 所在的行。简单的很,只需要在文件的开头加上`Defaults insults`,就像这样: + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint.png) + +如果你正在使用 nano,使用`Ctrl+X`来退出编辑器。在退出的时候,它会询问你是否保存更改。要保存更改,按下“Y”。 + +一旦你保存了 sudoers 文件之后,打开终端并使用 sudo 运行各种命令。故意输错密码并享受嘲讽吧:) + +sudo 可能会生气的。看见没,他甚至在我再次输错之后威胁我。哈哈。 + +![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint-1.jpeg) + +如果你喜欢这个终端技巧,你也可以查看[其他终端技巧的文章](http://itsfoss.com/category/terminal-tricks/)。如果你有其他有趣的技巧,在评论中分享。 + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/sudo-insult-linux/ + +作者:[ABHISHEK][a] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ diff --git a/translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md b/translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md deleted file mode 100644 index 0a0008ab8d..0000000000 --- a/translated/tech/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md +++ /dev/null @@ -1,58 +0,0 @@ -让sudo在用户输错密码时侮辱用户 -=========================================================== - -你在Linux终端中会有很多的乐趣。我今天要讲的不是在[终端中跑火车](http://itsfoss.com/ubuntu-terminal-train/)。 - -我今天要讲的技巧可以放松你的心情。前面一篇文章中,你学习了[如何在命令行中增加sudo命令的超时](http://itsfoss.com/change-sudo-password-timeout-ubuntu/)。今天的文章中,我会向你展示如让sudo在输错密码的时候侮辱你(或者其他人)。 - - -对我讲的感到疑惑?这里,让我们看下这张gif来了解sudo如何在你输错密码之后侮辱你的。 - -![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux.gif) - -现在,你为什要这么做?毕竟,侮辱不会让你的一天开心,不是么? - -对我来说,一点小技巧都是有趣的,并且要比以前的“密码错误”的错误提示更有趣。另外,我可以向我的朋友展示娱乐(这个例子中是通过自由开源软件)。我很肯定你有你自己的里有来使用这个技巧的。 - -## 在sudo中启用侮辱 - -你可以在`sudo`配置中增加下面的行来启用侮辱功能: - -``` -Defaults insults -``` - -让我们看看该如何做。打开终端并使用下面的命令: - -``` -sudo visudo -``` - -这会在[nano](http://www.nano-editor.org/)中打开配置文件。使得,我知道传统的‘visudo’应该在vi中打开`/etc/sudoers` 文件,但是Ubuntu及基于它的发行版会使用nano打开。由于我们再讨论vi,这里有一份[vi速查表](http://itsfoss.com/download-vi-cheat-sheet)可以在你决定使用vi的时候使用。 - -回到编辑sudeors文件界面,你需要找出Defaults所在的行。幸运的是,只需要在文件的开头加上“Defaults insults”,就像这样: - -![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint.png) - -如果你正在使用nano,使用`Ctrl+X`来退出编辑器。在退出的时候,它会询问你是否保存更改。要保存更改,按下“Y”。 - -一旦你保存了sudoers文件之后,打开终端并在任何命令中使用sudo。故意输错密码病享受辱骂:) - -sudo可能会讨厌的。看见没,他甚至在我再次输错之后威胁我。哈哈 - -![](http://itsfoss.com/wp-content/uploads/2016/02/sudo-insults-Linux-Mint-1.jpeg) - -如果你喜欢这个终端技巧,你也可以查看[其他终端技巧的文章](http://itsfoss.com/category/terminal-tricks/)。如果你有其他有趣的技巧,在评论中分享。 - - ------------------------------------------------------------------------------- - -via: http://itsfoss.com/sudo-insult-linux/ - -作者:[ABHISHEK][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/abhishek/ From 5948bf19ffbe7410a9b53bd82b1ec3b59c063973 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 15 Apr 2016 21:47:12 +0800 Subject: [PATCH 361/582] PUB:20160223 BeeGFS Parallel File System Goes Open Source @name1e5s --- ...3 BeeGFS Parallel File System Goes Open Source.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename {translated/tech => published}/20160223 BeeGFS Parallel File System Goes Open Source.md (57%) diff --git a/translated/tech/20160223 BeeGFS Parallel File System Goes Open Source.md b/published/20160223 BeeGFS Parallel File System Goes Open Source.md similarity index 57% rename from translated/tech/20160223 BeeGFS Parallel File System Goes Open Source.md rename to published/20160223 BeeGFS Parallel File System Goes Open Source.md index 2aeadbc3fb..6c9691b5c6 100644 --- a/translated/tech/20160223 BeeGFS Parallel File System Goes Open Source.md +++ b/published/20160223 BeeGFS Parallel File System Goes Open Source.md @@ -3,25 +3,25 @@ ![](http://insidehpc.com/wp-content/uploads/2015/08/beegfs.jpg) -今天(2月23日) ThinkParQ 宣布完整的 [BeeGFS 并行文件系统][1] 的源码现已开源。由于 BeeGFS 是专为要求性能的环境开发的,所以它在开发时十分注重安装的简单以及高度的灵活性,包括融合了在存储服务器同时做计算任务时需要的设置。随着系统中的服务器以及存储设备的增加,文件系统的容量以及性能将是需求的拓展点,无论是小型集群还是多达上千个节点的企业级系统。 +2月23日 ThinkParQ 宣布完整的 [BeeGFS 并行文件系统][1] 的源码现已开源。由于 BeeGFS 是专为要求性能的环境开发的,所以它在开发时十分注重安装的简易性以及高度灵活性,包括融合了在存储服务器同时做计算任务时需要的设置。随着系统中的服务器以及存储设备的增加,文件系统的容量以及性能将是需求的拓展点,无论是小型集群还是多达上千个节点的企业级系统。 -第一次官方声明开放 BeeGFS 的源码是在 2013 年的国际超级计算大会上发布的。这个声明是在欧洲的百亿亿次级超算项目 [DEEP-ER][2] 的背景下做出的,在这个项目里为了得到更好的 I/O 要求,一些微小的进步被设计并应用。对于运算量高达百亿亿次的系统,不同的软硬件必须有效的协同工作才能得到最佳的拓展性。因此,开源 BeeGFS 是让一个百亿亿次的集群的所有组成部分高效的发挥作用的一步。 +官方第一次声明开放 BeeGFS 的源码是在 2013 年的国际超级计算大会上发布的。这个声明是在欧洲的百亿亿次级超算项目 [DEEP-ER][2] 的背景下做出的,在这个项目里为了得到更好的 I/O 要求,做出了一些新的改进。对于运算量高达百亿亿次的系统,不同的软硬件必须有效的协同工作才能得到最佳的拓展性。因此,开源 BeeGFS 是让一个百亿亿次的集群的所有组成部分高效的发挥作用的一步。 -“当我们的一些用户对于 BeeGFS 十分容易安装并且不用费心管理而感到高兴时,另外一些用户则想要知道它是如何运行的以便于更好的优化他们的应用,使得他们可以监控它或者把它移植到其他的平台上,比如 BSD,” Sven Breuner 说道,他是 ThinkParQ (BeeGFS 背后的公司)的 CEO,“而且,把 BeeGFS 移植到其他的非 X86 架构,比如 ARM 或者 Power,也是社区等着要做的一件事。” +“当我们的一些用户对于 BeeGFS 十分容易安装并且不用费心管理而感到高兴时,另外一些用户则想要知道它是如何运行的以便于更好的优化他们的应用,使得他们可以监控它或者把它移植到其他的平台上,比如 BSD,” Sven Breuner 说道,他是 ThinkParQ (BeeGFS 背后的公司)的 CEO,“而且,把 BeeGFS 移植到其他的非 X86 架构,比如 ARM 或者 Power,也是社区即将要做的一件事。” 对于未来的采购来说,ARM 技术的稳步发展确实使得它成为了一个越来越有趣的技术。因此, BeeGFS 的团队也参与了 [ExaNeSt][3],一个来自欧洲的新的百亿亿次级超算计划,这个计划致力于使 ARM 的生态能为高性能的工作负载做好准备。“尽管现在 BeeGFS 在 ARM 处理器上可以算是开箱即用,这个项目也将给我们机会来证明我们在这个架构上也能完全发挥其性能。”, Bernd Lietzow , BeeGFS 中 ExaNeSt 的领导者补充道。 - 作为一个有着 25 K 行 C++ 代码的元数据服务以及约 15 K 行存储服务的项目,BeeGFS 相对比较容易理解和拓展,不只是对于大神,对于对文件系统有兴趣的大学生也是这样。在 GitHub 上已经有很多的为 BeeGFS 写的项目,比如基于浏览器的监控或者 Docker 一体化。 +作为一个有着 25 K 行 C++ 代码的元数据服务以及约 15 K 行存储服务的项目,BeeGFS 相对比较容易理解和拓展,不只是对于大神,对于对文件系统有兴趣的大学生也是这样。在 GitHub 上已经有很多的为 BeeGFS 写的项目,比如基于浏览器的监控或者 Docker 一体化。 有关新闻显示, [BeeGFS 用户大会][4]将于 5 月 18-19 日在德国凯泽斯劳滕举行。 ----------------------------------------------------------------------------------------- -via: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+InsideHPC+%28insideHPC.com%29 +via: http://insidehpc.com/2016/02/beegfs-parallel-file-system-now-open-source/ 作者:[staff][a] 译者:[name1e5s](https://github.com/name1e5s) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From fe3b69eda7cf3ef2580f899de3cfd588694f9e21 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 15 Apr 2016 21:51:06 +0800 Subject: [PATCH 362/582] =?UTF-8?q?=E5=9B=9E=E6=94=B6Part=207=20-=20LFCS--?= =?UTF-8?q?Managing=20System=20Startup=20Process=20and=20Services=20SysVin?= =?UTF-8?q?it=20Systemd=20and=20Upstart.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d Services SysVinit Systemd and Upstart.md | 1 - ...d Services SysVinit Systemd and Upstart.md | 230 ------------------ 2 files changed, 231 deletions(-) delete mode 100644 translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md diff --git a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md index ecd47794b0..2a822e8a45 100644 --- a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md +++ b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md @@ -1,4 +1,3 @@ -WingCuengRay翻译中 Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart) ================================================================================ A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams. diff --git a/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md deleted file mode 100644 index 34e08ec0f7..0000000000 --- a/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md +++ /dev/null @@ -1,230 +0,0 @@ -WingCuengRay翻译中 -翻译部分,未经自校验 -Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart) -============================================================== -几个月前,Linux 基金会发布了 LFCS (Linux Foundation Certified Sysadmin) 认证,这是一则振奋人心的消息,它的目标是让全世界各地的人们的的中级 Linux 系统管理能力得到认证。这能力包括了对处于运行状态的系统和服务的支持,发现并分析实际问题,并且知道何时向开发团队提交问题。 - -![Linux Foundation Certified Sysadmin – Part 7](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-7.png) - -Linux Foundation Certified Sysadmin - Part7 - -下面的视频简单地介绍了 Linux 基金认证的流程。 - -注:youtube 视频 - -本章是10个系列教程中的第7章,在这个部分,我们会解释如何去管理 Linux 系统启动进程和服务,这是 LFCS 认证考试中必须的。 - -### Linux 启动进程的管理 ### -Linux 系统的启动进程包括了几个阶段,每一个阶段都代表了一个不同的**component**。下图简单概括了启动的流程并且展示了所有阶段的主要组成部分。 - -![Linux Boot Process](http://www.tecmint.com/wp-content/uploads/2014/10/Linux-Boot-Process.png) - - -Linux 启动流程 - -当你按下电脑上的开机按钮,装载在主板电可擦写只读存储器 (EEPROM) 中的固件 (BIOS) 会执行开机自检 (Power-On Self Test) 检查系统的硬件状态。当开机自检完成后,固件会寻找并载入位于第一块硬盘中的主引导记录 (MBR) 或者 EFI 分区中的 boot loader stage1,然后将控制权转交给它。第一阶段的 boot loader 在第一块硬盘中的主引导记录 (MBR 或者 EFI 分区中。 - -#### MBR 引导启动 #### -MBR 在 BIOS 设置的可启动硬盘的第一扇区,其大小是 512 字节。 - -- 起始 446 字节: bootloader 包括了可执行代码与错误消息文本。 -- 随后 64 字节: 分区表包括了四条硬盘分区(主分区或扩展分区)的记录。此外,每条分区记录指出了分区的状态(有效/无效),大小和每个分区的开始/结束扇区。 -- 最后 2 字节: 用于MBR校验检查的幻数 (magic number)。 - -**MBR 备份** - - # dd if=/dev/sda of=mbr.bkp bs=512 count=1 - -![Backup MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Backup-MBR-in-Linux.png) - -**恢复 MBR** - - # dd if=mbr.bkp of=/dev/sda bs=512 count=1 - -![Restore MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Restore-MBR-in-Linux.png) - -在 Linux 的 MBR 恢复 - -### EFI/UFEFI 引导启动 ### -在 EFI/UEFI 引导的系统中,UEFI固件会读取其配置,根据配置决定启动哪一个 UEFI appliction,并且从哪里启动(例如,在 EFI 分区所在的磁盘)。 - -然后,第二阶段的引导程序被加载运行。GRUB[GRand Unified Boot] 是 Linux 上最流行的启动管理器。**如今有两个不同的版本供大多数的系统使用**。 - -- GRUB Legacy 配置文件: /boot/grub/menu.lst (旧版本,EFI/UEFI 不支持) -- GRUB2 配置文件: 大多数为 /etc/default/grub - -虽然 LFCS 资格认证没有明确要求了解关于 GRUB 内部知识,但如果你能勇敢地承受系统崩溃的风险(为了保险,你可能希望先在虚拟机上尝试),你可以尝试自己去修改这些文件。 - - # update-grub - -在修改完 GRUB 的配置文件后,需要以 root 权限运行以上指令让修改生效。 - -GRUB 主要加载了默认的内核和 initrd 或 initramfs 镜像。简单来说,initrd 和 initramfs 帮助进行了硬件的检测,内核模块的加载和设备的探查,**这对于挂载真正的根文件系统来说是必须的**。 - -为了得到一个用户交互界面,一旦根文件系统被挂载,内核便执行系统服务管进程 (init 或者 systemd,其进程标识或者 PID 通常是 1 )来启动正常的用户空间进程。 - -init 和 systemd 都是守护进程,因为它们是系统那个第一个启动的服务(在启动期间)和最后一个终止的服务(在关机时)。 - -![Systemd and Init](http://www.tecmint.com/wp-content/uploads/2014/10/systemd-and-init.png) - -Systemd and Init - -### 服务的启动 (SysVinit) ### -Linux 中的运行级别机制通过控制不同服务的运行来指定系统的不同使用方式。换言之,运行级别决定在当前的运行模式下哪些任务能够运行(哪些不能)。 - -基于 System V Unix 继承下来的传统,当计算机进入一个指定的运行级别时(或者说,进入一个与当前系统不同的运行级别时),系统通过传递用于控制启动和停止服务的执行脚本来执行启动进程。 - -在每一个运行级别,每一个服务能被设置为运行状态或者关闭状态(如果正在运行)。大多数发行版在最新版本中抛弃了System V的标准,支持一种新的被称为systemd的系统服务管理进程(也就是系统守护进程),不过出于兼容性考虑,systemd通常支持 sysv 命令。这意味着你能够在基本systemd发行版上运行大多数sysv int工具。 - -- 参考: [Why ‘systemd’ replaces ‘init’ in Linux][1] - -除了启动系统进程,init 还根据 /etc/inittab 文件决定必须进入哪一个运行级别。 - -注:表格 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Runlevel Description
0 挂起系统。运行级别 0 是一个用于快速关闭系统的特殊过渡态。
1 该模式也被称为 s 或 S。这个运行模式有时被叫作维护模式。根据发行版的不同,在这个运行级别启动的服务也不同。这通常用于可能被正常系统操作损坏的**low-level system maintenance(低级别系统维护)**
2 多用户模式。在 Debian 及其衍生版中,这是默认的运行级别,包括了可用的图形登陆。在基于红帽 (Red-Hat 的系统中,这是没有网络功能的多用户模式。
3  在基于 Red-Hat 的系统中,这是默认的多用户模式,此模式会运行除图形环境之外的所有东西。基于 Debian 的系统通常不使用此运行级别 4,5 和此级别。
4 默认不使用,因此可用于用户定制。
5 在基于红帽的系统,这是完整的带图形界面的多用户模式。此运行级别类似于运行级别 3,不过多了 GUI 的登陆界面。
6 重启系统
- -我们能够使用`init` 命令在不同运行级别之间切换: `init N` (N是上面列出的运行级别之一)。注意并不推荐使用这种方法改变一个运行中系统的运行级别,因为它没有发出警告信息给已登陆用户(这会令他们工作丢失,任务异常终止)。 - -相反,应该使用`shutdown`命令重启系统(发送一条警告信息给所有的登陆用户,并阻止另外的用户登陆);然而,必须先在 /etc/inittab 文件中编辑系统启动的默认运行级别。 - -因此,以 root 权限寻找 /etc/inittab 中的下行,然后按照下列步骤正确地在运行级别之间切换: - - id:2:initdefault: - -然后使用 vim 之类文本编辑器(在本系列的第二章介绍了如何在 Linux 中使用 vi/vim 编辑器)将数字 2 改变成你想要的运行级别。 - -接下来以 root 权限运行: - - # shutdown -r now - -最后一条命令会重启系统并让其在下一次启动期间以指定的运行级别启动,然后系统会运行在 /etc/rc[runlevel].d 目录下的脚本以决定哪些服务会被启动哪些不会。例如,下图处于运行级别2的系统. - -![Change Runlevels in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Change-Runlevels-in-Linux.jpeg) - -Linux 运行级别的变更 - -## 使用 chkconfig 管理服务 - -为了在引导时启动/禁止系统服务,我们需要使用`chkconfig`(在 CentOS/openSUSE)和`sys-rc-conf`(在 Debian 及其衍生版中)命令。这工具能够告诉我们在一个特定运行级别的服务预配置状态。 - -- 参考: [How to Stop and Disable Unwanted Services in Linux][4] - -**列出一个服务的运行级别配置(Listing the runlevel configuration for a service)** - - # chkconfig --list [service name] - # chkconfig --list postfix - # chkconfig --list mysqld - -![Listing Runlevel Configuration](http://www.tecmint.com/wp-content/uploads/2014/10/Listing-Runlevel-Configuration.png) - -**运行级别配置列表(Listing Runlevel Configuration)** - -在上图中我们能够看到 `postfix` 被设置为当系统进入级别 2~5 时启动,而 `mysqld` 默认是在级别 2~4 时运行。假设这些不是我们期望的行为。 - -例如,我们也需要在运行级别 5 启动`mysqld`,并且在级别 4 和 5 中关闭 `postfix`。这是我们要做的(以 root 权限执行以下命令) - -**为一个特定的运行级别启动服务** - - # chkconfig --level [level(s)] service on - # chkconfig --level 5 mysqld on - -**为一个特定的运行级别禁止服务** - - # chkconfig --level [level(s)] service off - # chkconfig --level 45 posifix off - -![Enable Disable Services in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Enable-Disable-Services.png) - -启动禁止服务 - -我们可以使用 `sysv-rc-conf` 在基于 Debian 的系统执行类似的操作。 - -#### 使用 `sysv-rc-conf` 管理服务 - -设置一个服务使其能在一个特定的运行级别启动,禁止在其他运行级别启动。 - - -1. 我们用以下命令查看 `mdadm` 服务在哪些运行级别上启动。 -```c -# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' -``` - - ![Check Runlevel of Service Running](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Runlevel.png) - - 查看服务的运行级别 - -2. 我们使用 `sysv-rc-conf` 命令禁止 `mdadm` 在除了 2 以外的运行级别中启动。根据需要(使用空格键)选择或取消(可以使用上下左右方向键移动)。 -``` -# sys-rc-conf -``` - ![SysV Runlevel Config](http://www.tecmint.com/wp-content/uploads/2014/10/SysV-Runlevel-Config.png) - - Sys Runlevel Config - - 然后按 q 退出 - -3. 重启系统并运行第一步中的命令 - - ``` - # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' - ``` - ![Verify Service Runlevel](http://www.tecmint.com/wp-content/uploads/2014/10/Verify-Service-Runlevel.png) - - 验证服务运行级别 - - 在上图中我们可以看到 `mdadm` 被修改为只在运行级别 2 上启动。 - -### 什么是 systemd ?### - -systemd 是较多 Linux 发行版采用的另一种系统服务管理软件。它允许系统启动期间进程并行启动(不像 sysinit 那么慢。因为 sysint 只能逐个启动进程,检查进程间依赖关系然后等待守护工作以启动更多服务),并且为系统动态管理资源。 - -因此,服务仅当需要时才被启动(以免浪费系统资源)而不是在引导时启动。 - -运行以下命令,查看系统中所有运行中服务进程的状态,**包括systemd native和SysV services**。 - -``` -# systemctl -``` - -![Check All Running Processes in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Check-All-Running-Processes.png) - -查看所有运行中的服务进程 From a3f5ca650e47004417a15af60bacb33f0a723a1d Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 15 Apr 2016 22:24:06 +0800 Subject: [PATCH 363/582] =?UTF-8?q?PUB:Part=206=20-=20LFCS--Assembling=20P?= =?UTF-8?q?artitions=20as=20RAID=20Devices=20=E2=80=93=20Creating=20&=20Ma?= =?UTF-8?q?naging=20System=20Backups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @cpsoture --- ...es – Creating & Managing System Backups.md | 283 +++++++++++++++++ ...es – Creating & Managing System Backups.md | 284 ------------------ 2 files changed, 283 insertions(+), 284 deletions(-) create mode 100644 published/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md delete mode 100644 translated/tech/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md diff --git a/published/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md b/published/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md new file mode 100644 index 0000000000..ff480868ac --- /dev/null +++ b/published/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md @@ -0,0 +1,283 @@ +LFCS 系列第六讲:组装分区为RAID设备——创建和管理系统备份 +========================================================= +Linux 基金会已经发起了一个全新的 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证,旨在让来自世界各地的人有机会参加到 LFCS 测试,获得关于有能力在 Linux 系统中执行中级系统管理任务的认证。该认证包括:维护正在运行的系统和服务的能力、全面监控和分析的能力以及何时向上游团队请求支持的决策能力。 + +![Linux Foundation Certified Sysadmin – Part 6](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-6.png) + +*LFCS 系列第六讲* + +以下视频介绍了 Linux 基金会认证程序。 + +注:youtube 视频 + + +本讲是系列教程中的第六讲,在这一讲里,我们将会解释如何将分区组装为 RAID 设备——创建和管理系统备份。这些都是 LFCS 认证中的必备知识。 + +### 了解RAID ### + +这种被称为独立磁盘冗余阵列(Redundant Array of Independent Disks)(RAID)的技术是将多个硬盘组合成一个单独逻辑单元的存储解决方案,它提供了数据冗余功能并且改善硬盘的读写操作性能。 + +然而,实际的容错和磁盘 I/O 性能硬盘取决于如何将多个硬盘组装成磁盘阵列。根据可用的设备和容错/性能的需求,RAID 被分为不同的级别,你可以参考 RAID 系列文章以获得每个 RAID 级别更详细的解释。 + +- [在 Linux 下使用 RAID(一):介绍 RAID 的级别和概念][1] + +我们选择用于创建、组装、管理、监视软件 RAID 的工具,叫做 mdadm (multiple disk admin 的简写)。 + +``` +---------------- Debian 及衍生版 ---------------- +# aptitude update && aptitude install mdadm +``` + +``` +---------------- Red Hat 和基于 CentOS 的系统 ---------------- +# yum update && yum install mdadm +``` + +``` +---------------- openSUSE 上 ---------------- +# zypper refresh && zypper install mdadm # +``` + +#### 将分区组装成 RAID 设备 #### + +组装已有分区作为 RAID 设备的过程由以下步骤组成。 + +**1. 使用 mdadm 创建阵列** + +如果先前其中一个分区已经格式化,或者作为了另一个 RAID 阵列的一部分,你会被提示以确认创建一个新的阵列。假设你已经采取了必要的预防措施以避免丢失重要数据,那么可以安全地输入 Y 并且按下回车。 + +``` +# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1 +``` + +![Creating RAID Array](http://www.tecmint.com/wp-content/uploads/2014/10/Creating-RAID-Array.png) + +*创建 RAID 阵列* + +**2. 检查阵列的创建状态** + +在创建了 RAID 阵列之后,你可以检查使用以下命令检查阵列的状态。 + + + # cat /proc/mdstat + or + # mdadm --detail /dev/md0 [More detailed summary] + +![Check RAID Array Status](http://www.tecmint.com/wp-content/uploads/2014/10/Check-RAID-Array-Status.png) + +*检查 RAID 阵列的状态* + +**3. 格式化 RAID 设备** + +如本系列[第四讲][2]所介绍的,按照你的需求/要求采用某种文件系统格式化你的设备。 + +**4. 监控 RAID 阵列服务** + +让监控服务时刻监视你的 RAID 阵列。把`# mdadm --detail --scan`命令输出结果添加到 `/etc/mdadm/mdadm.conf`(Debian及其衍生版)或者`/etc/mdadm.conf`(Cent0S/openSUSE),如下。 + + # mdadm --detail --scan + + +![Monitor RAID Array](http://www.tecmint.com/wp-content/uploads/2014/10/Monitor-RAID-Array.png) + +*监控 RAID 阵列* + + # mdadm --assemble --scan [Assemble the array] + +为了确保服务能够开机启动,需要以 root 权限运行以下命令。 + +**Debian 及其衍生版** + +Debian 及其衍生版能够通过下面步骤使服务默认开机启动: + + # update-rc.d mdadm defaults + +在 `/etc/default/mdadm` 文件中添加下面这一行 + + AUTOSTART=true + + +**CentOS 和 openSUSE(systemd-based)** + + # systemctl start mdmonitor + # systemctl enable mdmonitor + +**CentOS 和 openSUSE(SysVinit-based)** + + # service mdmonitor start + # chkconfig mdmonitor on + +**5. 检查RAID磁盘故障** + +在支持冗余的的 RAID 级别中,在需要时会替换故障的驱动器。当磁盘阵列中的设备出现故障时,仅当存在我们第一次创建阵列时预留的备用设备时,磁盘阵列会将自动启动重建。 + +![Check RAID Faulty Disk](http://www.tecmint.com/wp-content/uploads/2014/10/Check-RAID-Faulty-Disk.png) + +*检查 RAID 故障磁盘* + +否则,我们需要手动将一个额外的物理驱动器插入到我们的系统,并且运行。 + + # mdadm /dev/md0 --add /dev/sdX1 + +/dev/md0 是出现了问题的阵列,而 /dev/sdx1 是新添加的设备。 + +**6. 拆解一个工作阵列** + +如果你需要使用工作阵列的设备创建一个新的阵列,你可能不得不去拆解已有工作阵列——(可选步骤) + + # mdadm --stop /dev/md0 # Stop the array + # mdadm --remove /dev/md0 # Remove the RAID device + # mdadm --zero-superblock /dev/sdX1 # Overwrite the existing md superblock with zeroes + +**7. 设置邮件通知** + +你可以配置一个用于发送通知的有效邮件地址或者系统账号(确保在 mdadm.conf 文件中有下面这一行)。——(可选步骤) + + MAILADDR root + +在这种情况下,来自 RAID 后台监控程序所有的通知将会发送到你的本地 root 账号的邮件箱中。其中一个类似的通知如下。 + +说明:此次通知事件和第5步中的例子相关。此处一个设备被标志为错误,并且一个空闲的设备自动地被 mdadm 加入到阵列。我们用完了所有“健康的”空闲设备,因此我们得到了通知。 + +![RAID Monitoring Alerts](http://www.tecmint.com/wp-content/uploads/2014/10/RAID-Monitoring-Alerts.png) + +*RAID 监控通知* + +#### 了解 RAID 级别 #### + +**RAID 0** + +阵列总大小是最小分区大小的 n 倍,n 是阵列中独立磁盘的个数(你至少需要两个驱动器/磁盘)。运行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 0 阵列。 + + # mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1 + +常见用途:用于支持性能比容错更重要的实时应用程序的设置 + +**RAID 1 (又名镜像)** + +阵列总大小等于最小分区大小(你至少需要两个驱动器/磁盘)。运行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 1 阵列。 + + # mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 + +常见用途:操作系统的安装或者重要的子文件夹,例如 /home + +**RAID 5 (又名奇偶校验码盘)** + +阵列总大小将是最小分区大小的 (n-1) 倍。所减少的大小用于奇偶校验(冗余)计算(你至少需要3个驱动器/磁盘)。 + +说明:你可以指定一个空闲设备 (/dev/sde1) 替换问题出现时的故障部分(分区)。运行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1,/dev/sde1 组装一个 RAID 5 阵列,其中 /dev/sde1 作为空闲分区。 + + # mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1 + +常见用途:Web 和文件服务 + +**RAID 6 (又名双重奇偶校验码盘)** + +阵列总大小为(n*s)-2*s,其中n为阵列中独立磁盘的个数,s为最小磁盘大小。 + +说明:你可以指定一个空闲分区(在这个例子为 /dev/sdf1)替换问题出现时的故障部分(分区)。 + +运行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 和 /dev/sdf1 组装 RAID 6 阵列,其中 /dev/sdf1 作为空闲分区。 + + # mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1 + +常见用途:大容量、高可用性要求的文件服务器和备份服务器。 + +**RAID 1+0 (又名镜像条带)** + +因为 RAID 1+0 是 RAID 0 和 RAID 1 的组合,所以阵列总大小是基于两者的公式计算的。首先,计算每一个镜像的大小,然后再计算条带的大小。 + + # mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1 + +常见用途:需要快速 IO 操作的数据库和应用服务器 + +#### 创建和管理系统备份 #### + +记住, RAID 其所有的价值不是在于备份的替换者!在黑板上写上1000次,如果你需要的话,但无论何时一定要记住它。在我们开始前,我们必须注意的是,没有一个放之四海皆准的针对所有系统备份的解决方案,但这里有一些东西,是你在规划一个备份策略时需要考虑的。 + +- 你的系统将用于什么?(桌面或者服务器?如果系统是应用于后者,那么最重要的服务是什么?哪个配置是痛点?) +- 你每隔多久备份你的系统? +- 你需要备份的数据是什么(比如文件/文件夹/数据库转储)?你还可以考虑是否需要备份大型文件(比如音频和视频文件)。 +- 这些备份将会存储在哪里(物理位置和媒体)? + +**备份你的数据** + +方法1:使用 dd 命令备份整个磁盘。你可以在任意时间点通过创建一个准确的镜像来备份一整个硬盘或者是分区。注意当设备是离线时,这种方法效果最好,也就是说它没有被挂载并且没有任何进程的 I/O 操作访问它。 + +这种备份方法的缺点是镜像将具有和磁盘或分区一样的大小,即使实际数据占用的是一个很小的比例。比如,如果你想要为只使用了10%的20GB的分区创建镜像,那么镜像文件将仍旧是20GB。换句话来讲,它不仅包含了备份的实际数据,而且也包含了整个分区。如果你想完整备份你的设备,那么你可以考虑使用这个方法。 + +**从现有的设备创建一个镜像文件** + + # dd if=/dev/sda of=/system_images/sda.img + 或者 + --------------------- 可选地,你可以压缩镜像文件 ------------------- + # dd if=/dev/sda | gzip -c > /system_images/sda.img.gz + +**从镜像文件恢复备份** + + # dd if=/system_images/sda.img of=/dev/sda + 或者 + --------------------- 根据你创建镜像文件时的选择(译者注:比如压缩) ---------------- + # gzip -dc /system_images/sda.img.gz | dd of=/dev/sda + +方法2:使用 tar 命令备份确定的文件/文件夹——已经在本系列[第三讲][3]中讲了。如果你想要备份指定的文件/文件夹(配置文件,用户主目录等等),你可以使用这种方法。 + +方法3:使用 rsync 命令同步文件。rsync 是一种多功能远程(和本地)文件复制工具。如果你想要从网络设备备份或同步文件,rsync 是一种选择。 + + +无论是你是正在同步两个本地文件夹还是本地 < — > 挂载在本地文件系统的远程文件夹,其基本语法是一样的。 + + # rsync -av source_directory destination_directory + +在这里,-a 递归遍历子目录(如果它们存在的话),维持符号链接、时间戳、权限以及原本的属主/属组,-v 显示详细过程。 + +![rsync Synchronizing Files](http://www.tecmint.com/wp-content/uploads/2014/10/rsync-synchronizing-Files.png) + +*rsync 同步文件* + +除此之外,如果你想增加在网络上传输数据的安全性,你可以通过 ssh 协议使用 rsync。 + +**通过 ssh 同步本地到远程文件夹** + + # rsync -avzhe ssh backups root@remote_host:/remote_directory/ + +这个示例,本地主机上的 backups 文件夹将与远程主机上的 /root/remote_directory 的内容同步。 + +在这里,-h 选项以易读的格式显示文件的大小,-e 标志用于表示一个 ssh 连接。 + +![rsync Synchronize Remote Files](http://www.tecmint.com/wp-content/uploads/2014/10/rsync-synchronize-Remote-Files.png) + +*rsync 同步远程文件* + +**通过ssh同步远程到本地文件夹** + +在这种情况下,交换前面示例中的 source 和 destination 文件夹。 + + # rsync -avzhe ssh root@remote_host:/remote_directory/ backups + +请注意这些只是 rsync 用法的三个示例而已(你可能遇到的最常见的情形)。对于更多有关 rsync 命令的示例和用法 ,你可以查看下面的文章。 + +- [在 Linux 下同步文件的10个 rsync命令][4] + +### 总结 ### + +作为一个系统管理员,你需要确保你的系统表现得尽可能好。如果你做好了充分准备,并且如果你的数据完整性能被诸如 RAID 和系统日常备份的存储技术支持,那你将是安全的。 + +如果你有有关完善这篇文章的问题、评论或者进一步的想法,可以在下面畅所欲言。除此之外,请考虑通过你的社交网络简介分享这系列文章。 + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/creating-and-managing-raid-backups-in-linux/ + +作者:[Gabriel Cánepa][a] +译者:[cpsoture](https://github.com/cposture) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.tecmint.com/author/gacanepa/ +[1]:https://linux.cn/article-6085-1.html +[2]:https://linux.cn/article-7187-1.html +[3]:https://linux.cn/article-7171-1.html +[4]:http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/ + diff --git a/translated/tech/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md b/translated/tech/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md deleted file mode 100644 index 5de5004424..0000000000 --- a/translated/tech/LFCS/Part 6 - LFCS--Assembling Partitions as RAID Devices – Creating & Managing System Backups.md +++ /dev/null @@ -1,284 +0,0 @@ -LFCS 系列第六讲:组装分区为RAID设备——创建和管理系统备份 -========================================================= -Linux 基金会已经发起了一个全新的 LFCS(Linux Foundation Certified Sysadmin,Linux 基金会认证系统管理员)认证,旨在让来自世界各地的人有机会参加到 LFCS 测试,获得关于有能力在 Linux 系统中执行中间系统管理任务的认证。该认证包括:维护正在运行的系统和服务的能力、全面监控和分析的能力以及何时上游团队请求支持的决策能力。 - -![Linux Foundation Certified Sysadmin – Part 6](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-6.png) - -LFCS 系列第六讲 - -以下视频介绍了 Linux 基金会认证程序。 - -注:youtube 视频 - - -本讲是《十套教程》系列中的第六讲,在这一讲里,我们将会解释如何组装分区为RAID设备——创建和管理系统备份。这些都是 LFCS 认证中的必备知识。 - -### 了解RAID ### - -一种被称为独立磁盘冗余阵列(RAID)的技术是将多个硬盘组合成一个单独逻辑单元的存储解决方案,它提供了数据冗余功能并且改善硬盘的读写操作性能。 - -然而,实际的容错和磁盘I/O性能硬盘取决于如何将多个硬盘组装成磁盘阵列。根据可用的设备和容错/性能的需求,RAID被分为不同的级别,你可以在Tecmint.com上参考RAID系列文章以获得每个RAID级别更详细的解释。 - -- RAID Guide: [What is RAID, Concepts of RAID and RAID Levels Explained][1] - -我们选择用于创建、组装、管理、监视软件RAID的工具,叫做mdadm(multiple disk admin的简写)。 - -``` ----------------- Debian and Derivatives ---------------- -# aptitude update && aptitude install mdadm -``` - -``` ----------------- Red Hat and CentOS based Systems ---------------- -# yum update && yum install mdadm -``` - -``` ----------------- On openSUSE ---------------- -# zypper refresh && zypper install mdadm # -``` - -#### 组装分区作为RAID设备 #### - -组装已有分区作为RAID设备的过程由以下步骤组成。 - -**1. 使用mdadm创建阵列** - -如果先前其中一个分区被格式化,或者作为了另一个RAID阵列的一部分,你会被提示以确认创建一个新的阵列。假设你已经采取了必要的预防措施以避免丢失重要数据,那么可以安全地输入Y并且按下回车。 - -``` -# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1 -``` - -![Creating RAID Array](http://www.tecmint.com/wp-content/uploads/2014/10/Creating-RAID-Array.png) - -创建RAID阵列 - -**2. 检查阵列的创建状态** - -在创建了RAID阵列之后,你可以检查使用以下命令检查阵列的状态。 - - - # cat /proc/mdstat - or - # mdadm --detail /dev/md0 [More detailed summary] - -![Check RAID Array Status](http://www.tecmint.com/wp-content/uploads/2014/10/Check-RAID-Array-Status.png) - -检查RAID阵列的状态 - -**3. 格式化RAID设备** - -如本系列[Part 4][2]所介绍的,按照你的需求/要求采用某种文件系统格式化你的设备。 - -4. 监控RAID阵列服务 - -指示监控服务时刻监视你的RAID阵列。把```# mdadm --detail --scan```命令输出结果添加到/etc/mdadm/mdadm.conf(Debian和derivatives)或者/etc/mdadm.conf(Cent0S/openSUSE),如下。 - - # mdadm --detail --scan - - -![Monitor RAID Array](http://www.tecmint.com/wp-content/uploads/2014/10/Monitor-RAID-Array.png) - -监控RAID阵列 - - # mdadm --assemble --scan [Assemble the array] - -为了确保服务能够开机启动,需要以root权限运行以下命令。 - -**Debian 和 Derivatives** - -Debian 和 Derivatives能够通过下面步骤使服务默认开机启动 - - # update-rc.d mdadm defaults - -在/etc/default/mdadm文件中添加下面这一行 - - AUTOSTART=true - - -**CentOS 和 openSUSE(systemd-based)** - - # systemctl start mdmonitor - # systemctl enable mdmonitor - -**CentOS 和 openSUSEi(SysVinit-based)** - - # service mdmonitor start - # chkconfig mdmonitor on - -**5. 检查RAID磁盘故障** - -在支持冗余的的RAID级别中,在需要时会替换故障的驱动器。当磁盘阵列中的设备出现故障时,仅当存在我们第一次创建阵列时预留的备用设备时,磁盘阵列会将自动启动重建。 - -![Check RAID Faulty Disk](http://www.tecmint.com/wp-content/uploads/2014/10/Check-RAID-Faulty-Disk.png) - -检查RAID故障磁盘 - -否则,我们需要手动连接一个额外的物理驱动器到我们的系统,并且运行。 - - # mdadm /dev/md0 --add /dev/sdX1 - -/dev/md0是出现了问题的阵列,而/dev/sdx1是新添加的设备。 - -**6. 分解一个工作阵列** - -如果你需要使用工作阵列的设备创建一个新的阵列,你可能不得不去分解已有工作阵列——(可选步骤) - - # mdadm --stop /dev/md0 # Stop the array - # mdadm --remove /dev/md0 # Remove the RAID device - # mdadm --zero-superblock /dev/sdX1 # Overwrite the existing md superblock with zeroes - -**7. 设置邮件通知** - -你可以配置一个用于发送通知的有效邮件地址或者系统账号(确保在mdadm.conf文件中有下面这一行)。——(可选步骤) - - MAILADDR root - -在这种情况下,来自RAID后台监控程序所有的通知将会发送到你的本地root账号的邮件箱中。其中一个类似的通知如下。 - -说明:此次通知事件和第5步中的例子相关。一个设备被标志为错误并且一个空闲的设备自动地被mdadm加入到阵列。我们用完了所有"健康的"空闲设备,因此我们得到了通知。 - -![RAID Monitoring Alerts](http://www.tecmint.com/wp-content/uploads/2014/10/RAID-Monitoring-Alerts.png) - -RAID监控通知 - -#### 了解RAID级别 #### - -** RAID 0 ** - -阵列总大小是最小分区大小的n倍,n是阵列中独立磁盘的个数(你至少需要两个驱动器/磁盘)。运行下面命令,使用/dev/sdb1和/dev/sdc1分区组装一个RAID 0 阵列。 - - # mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1 - -常见用途:用于支持性能比容错更重要的实时应用程序的设置 - -**RAID 1 (又名镜像/Mirroring)** - -阵列总大小等于最小分区大小(你至少需要两个驱动器/磁盘)。运行下面命令,使用/dev/sdb1和/dev/sdc1分区组装一个RAID 1 阵列。 - - # mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 - -常见用途:操作系统的安装或者重要的子文件夹,例如 /home - -**RAID 5 (又名奇偶校验码盘/drives with Parity)** - -阵列总大小将是最小分区大小的(n-1)倍。//用于奇偶校验(冗余)计算(你至少需要3个驱动器/磁盘)。 - -说明:你可以指定一个空闲设备(/dev/sde1)替换问题出现时的故障部分(分区)。运行下面命令,使用/dev/sdb1, /dev/sdc1, /dev/sdd1,/dev/sde1组装一个RAID 5 阵列,其中/dev/sde1作为空闲分区。 - - # mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1 - -常见用途:Web和文件服务 - -**RAID 6 (又名双重奇偶校验码盘/drives with double Parity)** - -阵列总大小为(n*s)-2*s,其中n为阵列中独立磁盘的个数,s为最小磁盘大小。 - -说明:你可以指定一个空闲分区(在这个例子为/dev/sdf1)替换问题出现时的故障部分(分区)。 - -运行下面命令,使用/dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1和/dev/sdf1组装RAID 6阵列,其中/dev/sdf1作为空闲分区。 - - # mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1 - -常见用途:大容量、高可用性要求的文件服务器和备份服务器。 - -**RAID 1+0 (又名镜像条带/stripe of mirrors)** - -因为RAID 1+0是RAID 0 和 RAID 1的组合,所以阵列总大小是基于两者的公式计算的。首先,计算每一个镜像的大小,然后再计算条带的大小。 - - - # mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1 - -常见用途:需要快速IO操作的数据库和应用服务器 - -#### 创建和管理系统备份 #### - -记住RAID其所有的价值不是在于备份的替换者是对你有益的!在黑板上写上1000次,如果你需要的话,但无论何时一定要记住它。在我们开始前,我们必须注意的是,没有一个放之四海皆准的针对所有系统备份的解决方案,但这里有一些东西,是你在规划一个备份策略时需要考虑的。 - -- 你的系统将用于什么?(桌面或者服务器?如果系统是应用于后者,那么最重要的服务是什么——//其配置?) -- 你每隔多久备份你的系统? -- 你需要备份的数据是什么(比如 文件/文件夹/数据库转储)?你还可以考虑是否需要备份大型文件(比如音频和视频文件)。 -- 这些备份将会存储在哪里(物理位置和媒体)? - -**备份你的数据** - -方法1:使用dd命令备份整个磁盘。你可以在任意时间点通过创建一个准确的镜像来备份一整个硬盘或者是分区。注意当设备是离线时,这种方法效果最好,也就是说它没有被挂载并且没有任何进程的I/O操作访问它。 - -这种备份方法的缺点是镜像将具有和磁盘或分区一样的大小,即使实际数据占用的是一个很小的比例。比如,如果你想要为只使用了10%的20GB的分区创建镜像,那么镜像文件将仍旧是20GB。换句话来讲,它不仅包含了备份的实际数据,而且也包含了整个分区。如果你想完整备份你的设备,那么你可以考虑使用这个方法。 - -**从现有的设备创建一个镜像文件** - - # dd if=/dev/sda of=/system_images/sda.img - 或者 - --------------------- 可选地,你可以压缩镜像文件 ------------------- - # dd if=/dev/sda | gzip -c > /system_images/sda.img.gz - -**从镜像文件恢复备份** - - # dd if=/system_images/sda.img of=/dev/sda - 或者 - --------------------- 根据你创建镜像文件时的选择(译者注:比如压缩) ---------------- - # gzip -dc /system_images/sda.img.gz | dd of=/dev/sda - -方法2:使用tar命令备份确定的文件/文件夹——已经在本系列[Part 3][3]中讲了。如果你想要备份指定的文件/文件夹(配置文件,用户主目录等等),你可以使用这种方法。 - -方法3:使用rsync命令同步文件。rsync是一种多功能远程(和本地)文件复制工具。如果你想要从网络设备备份或同步文件,rsync是一种选择。 - - -无论是你是正在同步两个本地文件夹还是本地 < — > 挂载在本地文件系统的远程文件夹,其基本语法是一样的。 - - # rsync -av source_directory destination directory - -在这里,-a 递归遍历子目录(如果它们存在的话),维持符号链接、时间戳、权限以及原本的属主/属组,-v 显示详细过程。 - -![rsync Synchronizing Files](http://www.tecmint.com/wp-content/uploads/2014/10/rsync-synchronizing-Files.png) - -rsync 同步文件 - -除此之外,如果你想增加在网络上传输数据的安全性,你可以通过rsync使用ssh协议。 - -**通过ssh同步本地 → 远程文件夹** - - # rsync -avzhe ssh backups root@remote_host:/remote_directory/ - -这个示例,本地主机上的backups文件夹将与远程主机上的/root/remote_directory的内容同步。 - -在这里,-h 选项以人可读的格式显示文件的大小,-e 标志用于表示一个ssh连接。 - -![rsync Synchronize Remote Files](http://www.tecmint.com/wp-content/uploads/2014/10/rsync-synchronize-Remote-Files.png) - -rsync 同步远程文件 - -**通过ssh同步远程 → 本地 文件夹** - -在这种情况下,交换前面示例中的source和destination文件夹。 - - # rsync -avzhe ssh root@remote_host:/remote_directory/ backups - -请注意这些只是rsync用法的三个示例而已(你可能遇到的最常见的情形)。对于更多有关rsync命令的示例和用法 ,你可以查看下面的文章。 - -- Read Also: [10 rsync Commands to Sync Files in Linux][4] - -### Summary ### - -作为一个系统管理员,你需要确保你的系统表现得尽可能好。如果你做好了充分准备,并且如果你的数据完整性能被诸如RAID和系统日常备份的存储技术支持,那你将是安全的。 - -如果你有有关完善这篇文章的问题、评论或者进一步的想法,可以在下面畅所欲言。除此之外,请考虑通过你的社交网络简介分享这系列文章。 - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/creating-and-managing-raid-backups-in-linux/ - -作者:[Gabriel Cánepa][a] -译者:[cpsoture](https://github.com/cposture) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.tecmint.com/author/gacanepa/ -[1]:http://www.tecmint.com/understanding-raid-setup-in-linux/ -[2]:http://www.tecmint.com/create-partitions-and-filesystems-in-linux/ -[3]:http://www.tecmint.com/compress-files-and-finding-files-in-linux/ -[4]:http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/ - From e5f0d14989cbc509908229c7e197b8ecd0224087 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 16 Apr 2016 21:07:28 +0800 Subject: [PATCH 364/582] =?UTF-8?q?20160416-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...dopts Open Container Project Components.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md diff --git a/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md b/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md new file mode 100644 index 0000000000..b10e13fe95 --- /dev/null +++ b/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md @@ -0,0 +1,48 @@ +Docker 1.11 Adopts Open Container Project Components +======================================================= + +![](http://images.techhive.com/images/article/2015/01/docker-620x465-100559026-primary.idge.jpg) + +>Docker's participation in the Open Container project has come full circle, as the latest version of Docker is now built with components donated by Docker to the OCP + +The biggest news about [Docker 1.11][1] isn't features in the application, but that it uses component versions standardized under the aegis of the Open Container Project. + +Last year, Docker donated the core of its [runC][2] runtime to the OCP as a basis for building container tools. The same went for [containerd][3], a daemon or server used to control instances of runC. Docker 1.11 now uses the donated and publicly worked-on versions of those projects. + +>[ Dig into the the red-hot open source framework in InfoWorld's [beginner's guide to Docker][4]. Pick it up today! | Get a digest of the day's top tech stories in the [InfoWorld Daily newsletter][5]. ] + +>Docker is making this move to challenge the narrative that its container ecosystem is still [dictated chiefly by Docker itself][6]. It isn't donating its container specs and runtime details to the OCP merely for show; it wants the future development of the project to be as open-ended and inclusive as possible. + +![](http://images.techhive.com/images/article/2016/04/docker-runc-100656060-large.idge.png) + +>Docker 1.11 has been reworked to use the runC and containerd components contributed to the Open Container Project. The runC engine can be swapped out and replaced if needed. + +[Two chief committers][7] on runC are Docker employees, but committers from Virtuozzo (of Parallels fame), Red Hat's OpenShift and Project Atomic projects, Huawei, GE Healthcare, and Suse Linux have all been regulars as well. + +The more visible changes in Docker 1.11 reflect this. Previously, the Docker runtime was the only one available within Docker, and critics felt this limited users' choices. The runc runtime is now swappable; while Docker ships with runc as the default engine, any other compatible engine can be swapped in. (Docker also wants it to be possible to do this without having to kill and restart currently running containers, but that's an improvement scheduled for later.) + +Docker is making a case for this OCP-based development process as an inherently better method to create its product. "Splitting Docker up into focused independent tools means more focused maintainers, and ultimately better quality software," stated Docker in its [official blog post][8] announcing 1.11. + +Aside from fixing long-standing bugs and ensuring the runC/containerd version of Docker didn't slow down, Docker has rolled a slew of improvements into Docker 1.11. Docker Engine now supports VLANs and IPv6 service discovery, and it automatically performs DNS round-robin load balancing across multiple containers that have the same alias. + + + +------------------------------------------------------------------------------ + +via: http://www.infoworld.com/article/3055966/open-source-tools/docker-111-adopts-open-container-project-components.html + +作者:[Serdar Yegulalp][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.infoworld.com/author/Serdar-Yegulalp/ +[1]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ +[2]: http://runc.io/ +[3]: https://containerd.tools/ +[4]: http://www.infoworld.com/resources/16373/application-virtualization/the-beginners-guide-to-docker#tk.ifw-infsb +[5]: http://www.infoworld.com/newsletters/signup.html#tk.ifw-infsb +[6]: http://www.infoworld.com/article/2876801/application-virtualization/docker-reorganization-grows-up.html +[7]: https://github.com/opencontainers/runc/graphs/contributors +[8]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ From 3cebe0a33a79b0cb0afa119be3feefbddf9a58c2 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 16 Apr 2016 21:13:08 +0800 Subject: [PATCH 365/582] =?UTF-8?q?20160416-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ith Extensive File Control Capabilities.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md diff --git a/sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md b/sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md new file mode 100644 index 0000000000..6249163578 --- /dev/null +++ b/sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md @@ -0,0 +1,32 @@ +ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities +================================================================================== + +>ownCloud, Inc. has had the great pleasure of [announcing][1] the availability of the Enterprise Edition (EE) of its powerful ownCloud 9.0 self-hosting cloud server solution. + +Engineered exclusively for small- and medium-sized business, as well as major organizations and enterprises, [ownCloud 9.0 Enterprise Edition][2] is now available with extensive file control capabilities and all the cool new features that made the open-source version of the project famous amongst Linux users. + +Prominent new features in ownCloud 9.0 Enterprise Edition are built-in Auto-Tagging and File Firewall apps, which have been based on some of the new features of ownCloud 9.0, such as file tags, file comments, as well as notifications and activities enhancements. This offers system administrators the ability to set rules and classifications for shared documents based on user- or system-applied tags. + +"To illustrate how this can work, imagine working in a publicly traded company which has to be very careful not to release financial information ahead of official disclosure," reads the [announcement][3]. "While sharing this information internally it could end up in a folder which is shared through a public link. By assigning a special system tag, admins can configure the system to ensure the files are not available for download despite this mistake." + +### Used by over 8 million people around the globe + +ownCloud 9.0 is the best release of the open-source self-hosting cloud server software so far, which is currently used by over 8 million users around the globe. The release has brought a huge number of new features, such as code signing, as well as dozens of under-the-hood improvements and cosmetic changes. ownCloud 9.0 also got its first point release, version 9.0.1, last week, which [introduced even more enhancements][4]. + +And now, enterprises can take advantage of ownCloud 9.0's new features to differentiate between storage type and location, as well as the location of users, groups, and clients. ownCloud 9.0 Enterprise Edition gives them extensive access control, which is perfect if they have strict company guidelines or work with all sorts of regulations and rules. Below, you can see the File Firewall and Auto-Tagging apps in action. + +------------------------------------------------------------------------------ + +via: http://news.softpedia.com/news/owncloud-9-0-enterprise-edition-arrives-with-extensive-file-control-capabilities-502985.shtml + +作者:[Marius Nestor][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://news.softpedia.com/editors/browse/marius-nestor +[1]: https://owncloud.com/blog-introducing-owncloud-9-enterprise-edition/ +[2]: https://owncloud.com/ +[3]: https://owncloud.org/blog/owncloud-9-0-enterprise-edition-is-now-available/ +[4]: http://news.softpedia.com/news/owncloud-9-0-gets-its-first-point-release-over-120-improvements-introduced-502698.shtml From 9f99323e3b9302b931d48401633c5a102099bf2f Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 16 Apr 2016 21:16:38 +0800 Subject: [PATCH 366/582] =?UTF-8?q?20160416-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...017 Because of SUSE Linux Enterprise 12.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md diff --git a/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md b/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md new file mode 100644 index 0000000000..5f8bf0a944 --- /dev/null +++ b/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md @@ -0,0 +1,31 @@ +Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12 +================================================================================== + +>Linux kernel developer Jiri Slaby has announced the release of the fifty-eighth maintenance build of the long-term supported Linux 3.12 kernel series, as well as a modification to its EOL status. + +Linux kernel 3.12.58 LTS is now available, and those running it on their Linux kernel-based operating system must update as soon as possible. And the good news is that the Linux 3.12 branch is here to stay for one more year, until 2017, because SUSE Linux Enterprise (SLE) 12 Service Pack 1 is based on it. + +"Since SLE12-SP1 is based upon 3.12 and its EOL is in 2017, move the EOL of 3.12 to 2017 too," said Jiri Slaby in a [patch announcement][1] sent to one of Linux kernel's mailing lists, where he has also revealed the "end of life" statuses for other kernel branches, such as August 2016 for Linux 3.14, January 2017 for Linux 3.18, or September 2017 for Linux 4.1. + +### What's new in Linux kernel 3.12.58 LTS + +If you're wondering what's new in Linux kernel 3.12.58 LTS, we can tell you that, according to the [appended shortlog][2], it is a pretty healthy update that changes a total of 114 files, with 835 insertions and 298 deletions. Among the changes, we can notice the usual sound and networking stack improvements, and many updated drivers. + +There are also multiple improvements to the x86 hardware architecture, along with small fixes for the Xtensa and s390 ones. Filesystems like NFS, OCFS2, Btrfs, JBD2, and XFS have also received various fixes, and among the updated drivers, we can mention USB, Xen, MD, MTD, media, SCSI, TTY, networking, ATA, Bluetooth, hwmon, EDAC, and CPUFreq. + +As usual, you can [download the Linux kernel 3.12.58 LTS sources][3] right now via our website or directly from kernel.org. Please update your GNU/Linux operating system as soon as possible if it is powered by a kernel from the Linux 3.12 series. + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/featured-blogs/191-linux-training/834644-7-steps-to-start-your-linux-sysadmin-career + +作者:[Marius Nestor][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://lkml.iu.edu/hypermail/linux/kernel/1604.1/00792.html +[2]: http://www.spinics.net/lists/stable/msg128634.html +[3]: http://linux.softpedia.com/get/System/Operating-Systems/Kernels/Linux-Kernel-Stable-1960.shtml From 9b9327a507fda1635d6c70170d17b6e075cef693 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 16 Apr 2016 21:30:27 +0800 Subject: [PATCH 367/582] =?UTF-8?q?20160416-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... to navigating OpenStack Infrastructure.md | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md diff --git a/sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md b/sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md new file mode 100644 index 0000000000..5a12f7a3d1 --- /dev/null +++ b/sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md @@ -0,0 +1,76 @@ +A newcomer's guide to navigating OpenStack Infrastructure +=========================================================== + +New contributors to OpenStack are welcome, but having a road map for navigating within this maturing, fast-paced open source community doesn't hurt. At OpenStack Summit in Austin, [Paul Belanger][1] (Red Hat, Inc.), [Elizabeth K. Joseph][2] (HPE), and [Christopher Aedo][3] (IBM) will lead a session on [OpenStack Infrastructure for Beginners][4]. In this interview, they offer tips and resources to help onboard new OpenStack contributors. + +![](https://opensource.com/sites/default/files/images/life/Interview%20banner%20Q%26A.png) + +**Your talk description says you'll be "diving into the heart of infrastructure and explain everything you need to know about the systems that keep OpenStack working." That's a tall order for a 40-minute time slot. What are the top things beginners should know about OpenStack infrastructure?** + +**Elizabeth K. Joseph (EKJ)**: We don't use GitHub for OpenStack patches. This is something that trips up a lot of new contributors because we do maintain mirrors of all our repositories on GitHub for historical reasons. Instead we use a fully open source code review and continuous integration (CI) system maintained by the OpenStack Infrastructure team. Relatedly, since we run a CI system, every change proposed to OpenStack is tested before merging. + +**Paul Belanger (PB)**: A lot of passionate people in the project, so don't get discouraged if your patch gets a -1. + +**Christopher Aedo (CA)**: The community wants to help you succeed, don't be afraid to ask questions or ask for pointers to more information to improve your understanding. + +### Which online resources would you recommend for beginners to fill in the holes for what you can't cover in your talk? + +**PB**: Definitely our [OpenStack Project Infrastructure documentation][5]. At lot of effort has been taken to keep it up to date as much as possible. Every system used in running OpenStack as a project has a dedicated page, even the OpenStack cloud the Infrastructure teams is bringing online. + +**EKJ**: I'll echo what Paul said about the Infrastructure documentation, and add that we love seeing patches from folks who are learning. We often don't realize what we're missing in terms of documentation until someone asks. So read, learn, and then help us fill in the gaps. You can ask questions on the [openstack-infra mailing list][6] or in our IRC channel at #openstack-infra on Freenode. + +**CA**: I love [this detailed post][7] about building images, by Ian Wienand. + +### Which "gotchas" should new OpenStack contributors look out for? + +**EKJ**: Contributing is not just about submitting new code and new features; the OpenStack community places a very high value on doing code reviews. If you want people to look at a patch you submitted, consider reviewing some of the work of others and providing clear and constructive feedback. The more your fellow contributors know about your work and see you doing reviews, the more likely you'll get your code reviewed in a timely manner. + +**CA**: I see a lot of newcomers getting tripped up with [Gerrit][8]. Read through the [developer workflow][9] in the Developers Guide, and then maybe read through it one more time. If you're not used to Gerrit, it can seem confusing and overwhelming at first, but walking through a few code reviews usually makes it all come together. Also, I'm a big fan of IRC. It can be a great place to get help, but it's best if you can maintain a persistent presence so people can answer your questions even if you're not "there" at that particular moment. (Read [IRC, the secret to success in open source][10].) You don't need to be "always on," but the ability to easily scroll back in a channel and catch up on a conversation can be invaluable. + +**PB**: I agree with both Elizabeth and Chris—Gerrit is what to look out for. It is going to be the hub of your development effort. Not only will you be submitting code for people to review, but you'll also be reviewing other contributors' code. Watch out for the Gerrit UI; it can be confusing at times. I'd recommend trying out [Gertty][11], which is a console-based interface to the Gerrit Code Review system, which happens to be a project driven by OpenStack Infrastructure. + +### What resources do you recommend for beginners to help them network with other OpenStack contributors? + +**PB**: For me, it was using IRC and joining the #openstack-infra channel on Freenode ([IRC logs][12]). There is a lot of fantastic information and people in that channel. You get to see the day-to-day operations of the OpenStack project, and once you know how the project works, you'll have a better understanding on how to contribute to its future. + +**CA**: I want to second that note for IRC; staying on IRC throughout the day made a huge difference for me in terms of feeling informed and connected. It's also such a great way to get help when you're stuck with someone on one of the projects—the ones with active IRC channels always have someone around willing to get your issues sorted out. + +**EKJ**: The [openstack-dev mailing list][13] is quite important for staying up to date with news about projects you're working on inside of OpenStack, so I recommend subscribing to that. The mailing list uses subject tags to separate projects, so you can instruct your email client to use those and focus on threads that impact projects you care about. Beyond online resources, many OpenStack groups have popped up all over the world that serve the needs of both users and contributors to OpenStack, and many of them routinely have talks and events with key OpenStack contributors. You can search on Meetup.com in your area, or search on [groups.openstack.org][14] to see if there is an OpenStack group in your area. Finally, there are the [OpenStack Summits][15], which happen every six months, and where we'll be giving our Infrastructure talk. In their current format, the summits consist of both a user conference and a developer conference in one space to talk about everything related to OpenStack, past, present, and future. + +### In which areas does OpenStack need to improve to become more beginner-friendly? + +**PB**: I think our [account-setup][16] process could be made easier for new contributors, especially how many steps are needed to submit your first patch. There is a large cost to enroll into OpenStack development model, which maybe be too much for contributors; however, once enrolled, the model works fantastic for developers. + +**CA**: We have a very pro-developer community, but the focus is on developing OpenStack itself, with less consideration given to the users of OpenStack clouds. We need to bring in application developers and encourage more people to develop things that run beautifully on OpenStack clouds, and encourage them to share those apps in the [Community App Catalog][17]. We can do this by continuing to improve our API standards and by ensuring different libraries (like libcloud, phpopencloud, and others) continue to work reliably for developers. Oh, also by sponsoring more OpenStack hackathons! All these things can ease entry for newcomers, which will lead to them sticking around. + +**EKJ**: I've worked on open source software for many years, but for a large number of OpenStack developers, this is the first open source project they've every worked on. I've found that their proprietary software background doesn't prepare them for the open source ideals, methodologies, and collaboration techniques used in an open source project. I'd love to see us do a better job of welcoming people who have this proprietary software background and working with them so they can truly understand the value of what they're working on in the open source software community. + +### I think 2016 is shaping up to be the Year of the Open Source Haiku. Explain OpenStack to beginners via Haiku. + +**PB**: OpenStack runs clouds If you enjoy free software Submit your first patch + +**CA**: In the near future OpenStack will rule the world Help make it happen! + +**EKJ**: OpenStack is free Deploy on your own servers And run your own cloud! + +*Paul, Elizabeth*, and Christopher will be [speaking at OpenStack Summit][18] in Austin on Monday, April 25, starting at 11:15am. + + +[1]: https://twitter.com/pabelanger +[2]: https://twitter.com/pleia2 +[3]: https://twitter.com/docaedo +[4]: https://www.openstack.org/summit/austin-2016/summit-schedule/events/7337 +[5]: http://docs.openstack.org/infra/system-config/ +[6]: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra +[7]: https://www.technovelty.org/openstack/image-building-in-openstack-ci.html +[8]: https://code.google.com/p/gerrit/ +[9]: http://docs.openstack.org/infra/manual/developers.html#development-workflow +[10]: https://developer.ibm.com/opentech/2015/12/20/irc-the-secret-to-success-in-open-source/ +[11]: https://pypi.python.org/pypi/gertty +[12]: http://eavesdrop.openstack.org/irclogs/%23openstack-infra/ +[13]: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev +[14]: https://groups.openstack.org/ +[15]: https://www.openstack.org/summit/ +[16]: http://docs.openstack.org/infra/manual/developers.html#account-setup +[17]: https://apps.openstack.org/ +[18]: https://www.openstack.org/summit/austin-2016/summit-schedule/events/7337 From 44632443306f0c6008903afe9b9bae2ba8ef0cd8 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 16 Apr 2016 21:31:43 +0800 Subject: [PATCH 368/582] =?UTF-8?q?update=2020160416-4=20=E9=80=89?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...'s guide to navigating OpenStack Infrastructure.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md b/sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md index 5a12f7a3d1..4fa50b0a45 100644 --- a/sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md +++ b/sources/tech/20160416 A newcomer's guide to navigating OpenStack Infrastructure.md @@ -56,6 +56,17 @@ New contributors to OpenStack are welcome, but having a road map for navigating *Paul, Elizabeth*, and Christopher will be [speaking at OpenStack Summit][18] in Austin on Monday, April 25, starting at 11:15am. +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/4/interview-openstack-infrastructure-beginners + +作者:[linux.com][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://rikkiendsley.com/ [1]: https://twitter.com/pabelanger [2]: https://twitter.com/pleia2 [3]: https://twitter.com/docaedo From 4a2537b44507c57b797dd27f0493c639ba0a8aa6 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 17 Apr 2016 08:34:06 +0800 Subject: [PATCH 369/582] PUB:20151114 How to Setup Drone - a Continuous Integration Service in Linux @oska874 --- ...Continuous Integration Service in Linux.md | 317 ++++++++++++++++++ ...Continuous Integration Service in Linux.md | 317 ------------------ 2 files changed, 317 insertions(+), 317 deletions(-) create mode 100644 published/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md delete mode 100644 translated/tech/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md diff --git a/published/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md b/published/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md new file mode 100644 index 0000000000..a22718badc --- /dev/null +++ b/published/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md @@ -0,0 +1,317 @@ +如何在 linux 上配置持续集成服务 - Drone +============================================================== + +如果你对一次又一次的克隆、构建、测试和部署代码感到厌倦了,可以考虑一下持续集成。持续集成简称 CI,是一种像我们一样的频繁提交的代码库,构建、测试和部署的软件工程实践。CI 可以帮助我们快速的集成新代码到已有的代码库。如果这个过程是自动化进行的,那么就会提高开发的速度,因为这可以减少开发人员手工构建和测试的时间。[Drone][1] 是一个自由开源项目,用来提供一个非常棒的持续集成服务的环境,采用 Apache 2.0 协议发布。它已经集成近很多代码库提供商,比如 Github、Bitbucket 以及 Google Code,它可以从代码库提取代码,使我们可以对包括 PHP, Node, Ruby, Go, Dart, Python, C/C++, JAVA 等等在内的各种语言编译构建。它是如此一个强大的平台,它使用了容器和 docker 技术,这让用户每次构建都可以在保证隔离的条件下完全控制他们自己的构建环境。 + +### 1. 安装 Docker ### + +首先,我们要安装 docker,因为这是 Drone 的工作流的最关键的元素。Drone 合理的利用了 docker 来构建和测试应用。容器技术提高了应用部署的效率。要安装 docker ,我们需要在不同的 linux 发行版本运行下面对应的命令,我们这里会说明 Ubuntu 14.04 和 CentOS 7 两个版本。 + +#### Ubuntu #### + +要在 Ubuntu 上安装 Docker ,我们只需要运行下面的命令。 + + # apt-get update + # apt-get install docker.io + +安装之后我们需要使用`service` 命令重启 docker 引擎。 + + # service docker restart + +然后我们让 docker 在系统启动时自动启动。 + + # update-rc.d docker defaults + + Adding system startup for /etc/init.d/docker ... + /etc/rc0.d/K20docker -> ../init.d/docker + /etc/rc1.d/K20docker -> ../init.d/docker + /etc/rc6.d/K20docker -> ../init.d/docker + /etc/rc2.d/S20docker -> ../init.d/docker + /etc/rc3.d/S20docker -> ../init.d/docker + /etc/rc4.d/S20docker -> ../init.d/docker + /etc/rc5.d/S20docker -> ../init.d/docker + +#### CentOS #### + +第一,我们要更新机器上已经安装的软件包。我们可以使用下面的命令。 + + # sudo yum update + +要在 centos 上安装 docker,我们可以简单的运行下面的命令。 + + # curl -sSL https://get.docker.com/ | sh + +安装好 docker 引擎之后我么只需要简单使用下面的`systemd` 命令启动 docker,因为 centos 7 的默认初始化系统是 systemd。 + + # systemctl start docker + +然后我们要让 docker 在系统启动时自动启动。 + + # systemctl enable docker + + ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service' + +### 2. 安装 SQlite 驱动 ### + +Drone 默认使用 SQlite3 数据库服务器来保存数据和信息。它会在 /var/lib/drone/ 自动创建名为 drone.sqlite 的数据库来处理数据库模式的创建和迁移。要安装 SQlite3 我们要完成以下几步。 + +#### Ubuntu 14.04 #### + +因为 SQlite3 存在于 Ubuntu 14.04 的默认软件库,我们只需要简单的使用 apt 命令安装它。 + + # apt-get install libsqlite3-dev + +#### CentOS 7 #### + +要在 Centos 7 上安装需要使用下面的 yum 命令。 + + # yum install sqlite-devel + +### 3. 安装 Drone ### + +最后,我们安装好依赖的软件,我们现在更进一步的接近安装 Drone。在这一步里我们只简单的从官方链接下载对应的二进制软件包,然后使用默认软件包管理器安装 Drone。 + +#### Ubuntu #### + +我们将使用 wget 从官方的 [Debian 文件下载链接][2]下载 drone 的 debian 软件包。下面就是下载命令。 + + # wget downloads.drone.io/master/drone.deb + + Resolving downloads.drone.io (downloads.drone.io)... 54.231.48.98 + Connecting to downloads.drone.io (downloads.drone.io)|54.231.48.98|:80... connected. + HTTP request sent, awaiting response... 200 OK + Length: 7722384 (7.4M) [application/x-debian-package] + Saving to: 'drone.deb' + 100%[======================================>] 7,722,384 1.38MB/s in 17s + 2015-11-06 14:09:28 (456 KB/s) - 'drone.deb' saved [7722384/7722384] + +下载好之后,我们将使用 dpkg 软件包管理器安装它。 + + # dpkg -i drone.deb + + Selecting previously unselected package drone. + (Reading database ... 28077 files and directories currently installed.) + Preparing to unpack drone.deb ... + Unpacking drone (0.3.0-alpha-1442513246) ... + Setting up drone (0.3.0-alpha-1442513246) ... + Your system ubuntu 14: using upstart to control Drone + drone start/running, process 9512 + +#### CentOS #### + +在 CentOS 机器上我们要使用 wget 命令从[下载链接][3]下载 RPM 包。 + + # wget downloads.drone.io/master/drone.rpm + + --2015-11-06 11:06:45-- http://downloads.drone.io/master/drone.rpm + Resolving downloads.drone.io (downloads.drone.io)... 54.231.114.18 + Connecting to downloads.drone.io (downloads.drone.io)|54.231.114.18|:80... connected. + HTTP request sent, awaiting response... 200 OK + Length: 7763311 (7.4M) [application/x-redhat-package-manager] + Saving to: ‘drone.rpm’ + 100%[======================================>] 7,763,311 1.18MB/s in 20s + 2015-11-06 11:07:06 (374 KB/s) - ‘drone.rpm’ saved [7763311/7763311] + +然后我们使用 yum 安装 rpm 包。 + + # yum localinstall drone.rpm + +### 4. 配置端口 ### + +安装完成之后,我们要先进行配置才能工作起来。drone 的配置文件在**/etc/drone/drone.toml** 。默认情况下 drone 的 web 接口使用的是80,而这也是 http 默认的端口,如果我们修改它,请按下面所示的修改配置文件里 server 块对应的值。 + + [server] + port=":80" + +### 5. 集成 Github ### + +为了运行 Drone 我们必须设置最少一个和 GitHub、GitHub 企业版,Gitlab,Gogs,Bitbucket 关联的集成点。在本文里我们只集成了 github,但是如果我们要集成其他的服务,我们可以在配置文件做修改。为了集成 github 我们需要在github 的设置里创建一个新的应用:https://github.com/settings/developers 。 + +![Registering App Github](http://blog.linoxide.com/wp-content/uploads/2015/11/registering-app-github.png) + +要创建一个应用,我们需要在 `New Application` 页面点击 `Register`,然后如下所示填表。 + +![Registering OAuth app github](http://blog.linoxide.com/wp-content/uploads/2015/11/registering-OAuth-app-github.png) + +我们应该保证在应用的配置项里设置了**授权回调链接**,链接看起来类似 `http://drone.linoxide.com/api/auth/github.com`。然后我们点击注册应用。所有都做好之后我们会看到我们需要在我们的 Drone 配置文件里配置的客户端 ID 和客户端密钥。 + +![Client ID and Secret Token](http://blog.linoxide.com/wp-content/uploads/2015/11/client-id-secret-token.png) + +在这些都完成之后我们需要使用文本编辑器编辑 drone 配置文件,比如使用下面的命令。 + + # nano /etc/drone/drone.toml + +然后我们会在 drone 的配置文件里面找到`[github]` 部分,紧接着的是下面所示的配置内容 + + [github] + client="3dd44b969709c518603c" + secret="4ee261abdb431bdc5e96b19cc3c498403853632a" + # orgs=[] + # open=false + +![Configuring Github Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-github-drone-e1446835124465.png) + +### 6. 配置 SMTP 服务器 ### + +如果我们想让 drone 使用 email 发送通知,那么我们需要在 SMTP 配置里面设置我们的 SMTP 服务器。如果我们已经有了一个 SMTP 服务,那就只需要简单的使用它的配置文件就行了,但是因为我们没有一个 SMTP 服务器,我们需要安装一个 MTA 比如 Postfix,然后在 drone 配置文件里配置好 SMTP。 + +#### Ubuntu #### + +在 ubuntu 里使用下面的 apt 命令安装 postfix。 + + # apt-get install postfix + +#### CentOS #### + +在 CentOS 里使用下面的 yum 命令安装 postfix。 + + # yum install postfix + +安装好之后,我们需要编辑我们的 postfix 配置文件。 + + # nano /etc/postfix/main.cf + +然后我们要把 myhostname 的值替换为我们自己的 FQDN,比如 drone.linoxide.com。 + + myhostname = drone.linoxide.com + +现在开始配置 drone 配置文件里的 SMTP 部分。 + + # nano /etc/drone/drone.toml + +找到`[smtp]` 部分补充上下面的内容。 + + [smtp] + host = "drone.linoxide.com" + port = "587" + from = "root@drone.linoxide.com" + user = "root" + pass = "password" + +![Configuring SMTP Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-smtp-drone.png) + +注意:这里的 **user** 和 **pass** 参数强烈推荐一定要改成某个具体用户的配置。 + +### 7. 配置 Worker ### + +如我们所知的 drone 利用了 docker 完成构建、测试任务,我们需要把 docker 配置为 drone 的 worker。要完成这些需要修改 drone 配置文件里的`[worker]` 部分。 + + # nano /etc/drone/drone.toml + +然后取消底下几行的注释并且补充上下面的内容。 + + [worker] + nodes=[ + "unix:///var/run/docker.sock", + "unix:///var/run/docker.sock" + ] + +这里我们只设置了两个节点,这意味着上面的配置文件只能同时执行2 个构建操作。要提高并发性可以增大节点的值。 + + [worker] + nodes=[ + "unix:///var/run/docker.sock", + "unix:///var/run/docker.sock", + "unix:///var/run/docker.sock", + "unix:///var/run/docker.sock" + ] + +使用上面的配置文件 drone 被配置为使用本地的 docker 守护程序可以同时构建4个任务。 + +### 8. 重启 Drone ### + +最后,当所有的安装和配置都准备好之后,我们现在要在本地的 linux 机器上启动 drone 服务器。 + +#### Ubuntu #### + +因为 ubuntu 14.04 使用了 sysvinit 作为默认的初始化系统,所以只需要简单执行下面的 service 命令就可以启动 drone 了。 + + # service drone restart + +要让 drone 在系统启动时也自动运行,需要运行下面的命令。 + + # update-rc.d drone defaults + +#### CentOS #### + +因为 CentOS 7使用 systemd 作为初始化系统,所以只需要运行下面的 systemd 命令就可以重启 drone。 + + # systemctl restart drone + +要让 drone 自动运行只需要运行下面的命令。 + + # systemctl enable drone + +### 9. 添加防火墙例外规则 ### + +众所周知 drone 默认使用了80 端口而我们又没有修改它,所以我们需要配置防火墙程序允许80 端口(http)开放并允许其他机器可以通过网络连接。 + +#### Ubuntu 14.04 #### + +iptables 是最流行的防火墙程序,并且 ubuntu 默认安装了它。我们需要修改 iptable 以暴露端口80,这样我们才能让 drone 的 web 界面在网络上被大家访问。 + + # iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT + # /etc/init.d/iptables save + +#### CentOS 7 #### + +因为 CentOS 7 默认安装了 systemd,它使用 firewalld 作为防火墙程序。为了在 firewalld 上打开80端口(http 服务),我们需要执行下面的命令。 + + # firewall-cmd --permanent --add-service=http + + success + + # firewall-cmd --reload + + success + +### 10. 访问 web 界面 ### + +现在我们将在我们最喜欢的浏览器上通过 web 界面打开 drone。要完成这些我们要把浏览器指向运行 drone 的服务器。因为 drone 默认使用80 端口而我们有没有修改过,所以我们只需要在浏览器里根据我们的配置输入`http://ip-address/` 或 `http://drone.linoxide.com` 就行了。在我们正确的完成了上述操作后,我们就可以看到登录界面了。 + +![Login Github Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/login-github-drone-e1446834688394.png) + +因为在上面的步骤里配置了 Github,我们现在只需要简单的选择 github 然后进入应用授权步骤,这些完成后我们就可以进入工作台了。 + +![Drone Dashboard](http://blog.linoxide.com/wp-content/uploads/2015/11/drone-dashboard.png) + +这里它会同步我们在 github 上的代码库,然后询问我们要在 drone 上构建那个代码库。 + +![Activate Repository](http://blog.linoxide.com/wp-content/uploads/2015/11/activate-repository-e1446835574595.png) + +这一步完成后,它会询问我们在代码库里添加`.drone.yml` 文件的新名称,并且在这个文件里定义构建的过程和配置项,比如使用那个 docker 镜像,执行那些命令和脚本来编译,等等。 + +我们按照下面的内容来配置我们的`.drone.yml`。 + + image: python + script: + - python helloworld.py + - echo "Build has been completed." + +这一步完成后我们就可以使用 drone 应用里的 YAML 格式的配置文件来构建我们的应用了。所有对代码库的提交和改变此时都会同步到这个仓库。一旦提交完成了,drone 就会自动开始构建。 + +![Building Application Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/building-application-drone.png) + +所有操作都完成后,我们就能在终端看到构建的结果了。 + +![Build Success Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/build-success-drone.png) + +### 总结 ### + +在本文中我们学习了如何安装一个可以工作的使用 drone 的持续集成平台。如果我们愿意我们甚至可以从 drone.io 官方提供的服务开始工作。我们可以根据自己的需求从免费的服务或者收费服务开始。它通过漂亮的 web 界面和强大的功能改变了持续集成的世界。它可以集成很多第三方应用和部署平台。如果你有任何问题、建议可以直接反馈给我们,谢谢。 + +-------------------------------------------------------------------------------- + +via: http://linoxide.com/linux-how-to/setup-drone-continuous-integration-linux/ + +作者:[Arun Pyasi][a] +译者:[ezio](https://github.com/oska874) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://linoxide.com/author/arunp/ +[1]:https://drone.io/ +[2]:http://downloads.drone.io/master/drone.deb +[3]:http://downloads.drone.io/master/drone.rpm +[4]:https://github.com/settings/developers diff --git a/translated/tech/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md b/translated/tech/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md deleted file mode 100644 index 077c945b9c..0000000000 --- a/translated/tech/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md +++ /dev/null @@ -1,317 +0,0 @@ -如何在linux 上配置持续集成服务 - Drone -============================================================== - -如果你对一次又一次的克隆、构建、测试和部署代码感到厌倦了,可以考虑一下持续集成。持续集成也就是CI,是软件工程的像我们一样的频繁提交的代码库,构建、测试和部署的实践。CI 帮助我们快速的集成新代码到已有的代码基线。如果这个过程是自动化进行的,那么就会提高开发的速度,因为这可以减少开发人员手工构建和测试的时间。[Drone][1] 是一个免费的开源项目,用来提供一个非常棒的持续集成服务的环境,采用了Apache 2.0 协议。它已经集成近很多代码库提供商,比如Github、Bitbucket 以及Google COde,并且它可以从代码库提取代码,使我们可以编译多种语言,包括PHP, Node, Ruby, Go, Dart, Python, C/C++, JAVA 等等。它是如此一个强大的平台是因为它每次构建都使用了容器和docker 技术,这让用户可以在保证隔离的条件下完全控制他们自己的构建环境。 - -### 1. 安装 Docker ### - -首先,我们要安装docker,因为这是Drone 的工作流的最关键的元素。Drone 合理的利用了docker 来构建和测试应用。容器技术提高了应用部署的效率。要安装docker ,我们需要在不同的linux 发行版本运行下面对应的命令,我们这里会说明Ubuntu 14.04 和CentOS 7 两个版本。 - -#### Ubuntu #### - -要在Ubuntu 上安装Docker ,我们只需要运行下面的命令。 - - # apt-get update - # apt-get install docker.io - -安装之后我们需要使用`service` 命令重启docker 引擎。 - - # service docker restart - -然后我们让docker 在系统启动时自动启动。 - - # update-rc.d docker defaults - - Adding system startup for /etc/init.d/docker ... - /etc/rc0.d/K20docker -> ../init.d/docker - /etc/rc1.d/K20docker -> ../init.d/docker - /etc/rc6.d/K20docker -> ../init.d/docker - /etc/rc2.d/S20docker -> ../init.d/docker - /etc/rc3.d/S20docker -> ../init.d/docker - /etc/rc4.d/S20docker -> ../init.d/docker - /etc/rc5.d/S20docker -> ../init.d/docker - -#### CentOS #### - -第一,我们要更新机器上已经安装的软件包。我们可以使用下面的命令。 - - # sudo yum update - -要在centos 上安装docker,我们可以简单的运行下面的命令。 - - # curl -sSL https://get.docker.com/ | sh - -安装好docker 引擎之后我么只需要简单实用下面的`systemd` 命令启动docker,因为centos 7 的默认init 系统是systemd。 - - # systemctl start docker - -然后我们要让docker 在系统启动时自动启动。 - - # systemctl enable docker - - ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service' - -### 2. 安装 SQlite 驱动 ### - -Drone 默认使用SQLite3 数据库服务器来保存数据和信息。它会在/var/lib/drone/ 自动创建名为drone.sqlite 的数据库来处理数据库模式的创建和迁移。要安装SQLite3 我们要完成以下几步。 - -#### Ubuntu 14.04 #### - -因为SQLite3 存在于Ubuntu 14.04 的默认软件库,我们只需要简单的使用apt 命令安装它。 - - # apt-get install libsqlite3-dev - -#### CentOS 7 #### - -要在Centos 7 上安装选哟使用下面的yum 命令。 - - # yum install sqlite-devel - -### 3. 安装 Drone ### - -最后,我们安装好依赖的软件,我们现在更进一步的接近安装Drone。在这一步里我们值简单的从官方链接下载对应的二进制软件包,然后使用默认软件包管理器安装Drone。 - -#### Ubuntu #### - -我们将使用wget 从官方的[Debian 文件下载链接][2]下载drone 的debian 软件包。下面就是下载命令。 - - # wget downloads.drone.io/master/drone.deb - - Resolving downloads.drone.io (downloads.drone.io)... 54.231.48.98 - Connecting to downloads.drone.io (downloads.drone.io)|54.231.48.98|:80... connected. - HTTP request sent, awaiting response... 200 OK - Length: 7722384 (7.4M) [application/x-debian-package] - Saving to: 'drone.deb' - 100%[======================================>] 7,722,384 1.38MB/s in 17s - 2015-11-06 14:09:28 (456 KB/s) - 'drone.deb' saved [7722384/7722384] - -下载好之后,我们将使用dpkg 软件包管理器安装它。 - - # dpkg -i drone.deb - - Selecting previously unselected package drone. - (Reading database ... 28077 files and directories currently installed.) - Preparing to unpack drone.deb ... - Unpacking drone (0.3.0-alpha-1442513246) ... - Setting up drone (0.3.0-alpha-1442513246) ... - Your system ubuntu 14: using upstart to control Drone - drone start/running, process 9512 - -#### CentOS #### - -在CentOS 机器上我们要使用wget 命令从[下载链接][3]下载RPM 包。 - - # wget downloads.drone.io/master/drone.rpm - - --2015-11-06 11:06:45-- http://downloads.drone.io/master/drone.rpm - Resolving downloads.drone.io (downloads.drone.io)... 54.231.114.18 - Connecting to downloads.drone.io (downloads.drone.io)|54.231.114.18|:80... connected. - HTTP request sent, awaiting response... 200 OK - Length: 7763311 (7.4M) [application/x-redhat-package-manager] - Saving to: ‘drone.rpm’ - 100%[======================================>] 7,763,311 1.18MB/s in 20s - 2015-11-06 11:07:06 (374 KB/s) - ‘drone.rpm’ saved [7763311/7763311] - -然后我们使用yum 安装rpm 包。 - - # yum localinstall drone.rpm - -### 4. 配置端口 ### - -安装完成之后,我们要使它工作要先进行配置。drone 的配置文件在**/etc/drone/drone.toml** 。默认情况下drone 的web 接口使用的是80,而这也是http 默认的端口,如果我们要下面所示的修改配置文件里server 块对应的值。 - - [server] - port=":80" - -### 5. 集成 Github ### - -为了运行Drone 我们必须设置最少一个和GitHub、GitHub 企业版,Gitlab,Gogs,Bitbucket 关联的集成点。在本文里我们只集成了github,但是如果哦我们要集成其他的我们可以在配置文件做修改。为了集成github 我们需要在[github setting] 创建一个新的应用。 - -![Registering App Github](http://blog.linoxide.com/wp-content/uploads/2015/11/registering-app-github.png) - -要创建一个应用,我们需要在`New Application` 页面点击`Register`,然后如下所示填表。 - -![Registering OAuth app github](http://blog.linoxide.com/wp-content/uploads/2015/11/registering-OAuth-app-github.png) - -我们应该保证在应用的配置项里设置了**授权了的回调链接**,链接看起来像`http://drone.linoxide.com/api/auth/github.com`。然后我们点击注册应用。所有都做好之后我们会看到我们需要在我们的Drone 配置文件里配置的客户端ID 和客户端密钥。 - -![Client ID and Secret Token](http://blog.linoxide.com/wp-content/uploads/2015/11/client-id-secret-token.png) - -在这些都完成之后我们需要使用文本编辑器编辑drone 配置文件,比如使用下面的命令。 - - # nano /etc/drone/drone.toml - -然后我们会在drone 的配置文件里面找到`[github]` 部分,紧接着的是下面所示的配置内容 - - [github] - client="3dd44b969709c518603c" - secret="4ee261abdb431bdc5e96b19cc3c498403853632a" - # orgs=[] - # open=false - -![Configuring Github Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-github-drone-e1446835124465.png) - -### 6. 配置 SMTP 服务器 ### - -如果我们想让drone 使用email 发送通知,那么我们需要在SMTP 配置里面设置我们的SMTP 服务器。如果我们已经有了一个SMTP 服务,那就只需要简单的使用它的配置文件就行了,但是因为我们没有一个SMTP 服务器,我们需要安装一个MTA 比如Postfix,然后在drone 配置文件里配置好SMTP。 - -#### Ubuntu #### - -在ubuntu 里使用下面的apt 命令安装postfix。 - - # apt-get install postfix - -#### CentOS #### - -在CentOS 里使用下面的yum 命令安装postfix。 - - # yum install postfix - -安装好之后,我们需要编辑我们的postfix 配置文件。 - - # nano /etc/postfix/main.cf - -然后我们要把myhostname 的值替换为我们自己的FQDN,比如drone.linoxide.com。 - - myhostname = drone.linoxide.com - -现在开始配置drone 配置文件里的SMTP 部分。 - - # nano /etc/drone/drone.toml - -找到`[smtp]` 部分补充上下面的内容。 - - [smtp] - host = "drone.linoxide.com" - port = "587" - from = "root@drone.linoxide.com" - user = "root" - pass = "password" - -![Configuring SMTP Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/configuring-smtp-drone.png) - -注意:这里的**user** 和 **pass** 参数强烈推荐一定要改成一个用户的配置。 - -### 7. 配置 Worker ### - -如我们所知的drone 利用了docker 完成构建、测试任务,我们需要把docker 配置为drone 的worker。要完成这些需要修改drone 配置文件里的`[worker]` 部分。 - - # nano /etc/drone/drone.toml - -然后取消底下几行的注释并且补充上下面的内容。 - - [worker] - nodes=[ - "unix:///var/run/docker.sock", - "unix:///var/run/docker.sock" - ] - -这里我们只设置了两个节点,这意味着上面的配置文件只能同时执行2 个构建操作。要提高并发性可以增大节点的值。 - - [worker] - nodes=[ - "unix:///var/run/docker.sock", - "unix:///var/run/docker.sock", - "unix:///var/run/docker.sock", - "unix:///var/run/docker.sock" - ] - -使用上面的配置文件drone 被配置为使用本地的docker 守护程序可以同时构建4个任务。 - -### 8. 重启 Drone ### - -最后,当所有的安装和配置都准备好之后,我们现在要在本地的linux 机器上启动drone 服务器。 - -#### Ubuntu #### - -因为ubuntu 14.04 使用了sysvinit 作为默认的init 系统,所以只需要简单执行下面的service 命令就可以启动drone 了。 - - # service drone restart - -要让drone 在系统启动时也自动运行,需要运行下面的命令。 - - # update-rc.d drone defaults - -#### CentOS #### - -因为CentOS 7使用systemd 作为init 系统,所以只需要运行下面的systemd 命令就可以重启drone。 - - # systemctl restart drone - -要让drone 自动运行只需要运行下面的命令。 - - # systemctl enable drone - -### 9. 添加防火墙例外 ### - -众所周知drone 默认使用了80 端口而我们又没有修改他,所以我们需要配置防火墙程序允许80 端口(http)开发并允许其他机器可以通过网络连接。 - -#### Ubuntu 14.04 #### - -iptables 是最流行的防火墙程序,并且ubuntu 默认安装了它。我们需要修改iptable 暴露端口80,这样我们才能让drone 的web 界面在网络上被大家访问。 - - # iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT - # /etc/init.d/iptables save - -#### CentOS 7 #### - -因为CentOS 7 默认安装了systemd,它使用firewalld 作为防火墙程序。为了在firewalld 上打开80端口(http 服务),我们需要执行下面的命令。 - - # firewall-cmd --permanent --add-service=http - - success - - # firewall-cmd --reload - - success - -### 10. 访问web 界面 ### - -现在我们将在我们最喜欢的浏览器上通过web 界面打开drone。要完成这些我们要把浏览器指向运行drone 的服务器。因为drone 默认使用80 端口而我们有没有修改过,所以我们只需要在浏览器里根据我们的配置输入`http://ip-address/` 或 `http://drone.linoxide.com` 就行了。在我们正确的完成了上述操作后,我们就可以看到登陆界面了。 - -![Login Github Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/login-github-drone-e1446834688394.png) - -因为在上面的步骤里配置了Github,我们现在只需要简单的选择github然后进入应用授权步骤,这些完成后我们就可以进入工作台了。 - -![Drone Dashboard](http://blog.linoxide.com/wp-content/uploads/2015/11/drone-dashboard.png) - -这里它会同步我们在github 上的代码库,然后询问我们要在drone 上构建那个代码库。 - -![Activate Repository](http://blog.linoxide.com/wp-content/uploads/2015/11/activate-repository-e1446835574595.png) - -这一步完成后,它会询问我们在代码库里添加`.drone.yml` 文件的新名称,并且在这个文件里定义构建的过程和配置项,比如使用那个docker 镜像,执行那些命令和脚本来编译,等等。 - -我们按照下面的内容来配置我们的`.drone.yml`。 - - image: python - script: - - python helloworld.py - - echo "Build has been completed." - -这一步完成后我们就可以使用drone 应用里的YAML 格式的配置文件来构建我们的应用了。所有对代码库的提交和改变此时都会同步到这个仓库。一旦提交完成了,drone 就会自动开始构建。 - -![Building Application Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/building-application-drone.png) - -所有操作都完成后,我们就能在终端看到构建的结果了。 - -![Build Success Drone](http://blog.linoxide.com/wp-content/uploads/2015/11/build-success-drone.png) - -### 总结 ### - -在本文中我们学习了如何安装一个可以工作的使用drone 的持续集成平台。如果我们愿意我们甚至可以从drone.io 官方提供的服务开始工作。我们可以根据自己的需求从免费的服务或者收费服务开始。它通过漂亮的web界面和强大的功能改变了持续集成的世界。它可以集成很多第三方应用和部署平台。如果你有任何问题、建议可以直接反馈给我们,谢谢。 - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/setup-drone-continuous-integration-linux/ - -作者:[Arun Pyasi][a] -译者:[ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/arunp/ -[1]:https://drone.io/ -[2]:http://downloads.drone.io/master/drone.deb -[3]:http://downloads.drone.io/master/drone.rpm -[4]:https://github.com/settings/developers From 58fbdaae45f8565aab62de591ebb9efda3828c70 Mon Sep 17 00:00:00 2001 From: alim0x Date: Sun, 17 Apr 2016 14:05:04 +0800 Subject: [PATCH 370/582] [translating]20160414 Linux Kernel 3.12 to Be Supported Until 2017 --- ... Supported Until 2017 Because of SUSE Linux Enterprise 12.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md b/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md index 5f8bf0a944..efe01db4ef 100644 --- a/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md +++ b/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md @@ -1,3 +1,5 @@ +alim0x translating + Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12 ================================================================================== From 6f35d8678f5716e3984f0d736f6b7f31249cdfba Mon Sep 17 00:00:00 2001 From: alim0x Date: Sun, 17 Apr 2016 14:48:54 +0800 Subject: [PATCH 371/582] [translated]20160414 Linux Kernel 3.12 to Be Supported Until 2017 --- ...017 Because of SUSE Linux Enterprise 12.md | 33 ------------------- ...017 Because of SUSE Linux Enterprise 12.md | 31 +++++++++++++++++ 2 files changed, 31 insertions(+), 33 deletions(-) delete mode 100644 sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md create mode 100644 translated/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md diff --git a/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md b/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md deleted file mode 100644 index efe01db4ef..0000000000 --- a/sources/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md +++ /dev/null @@ -1,33 +0,0 @@ -alim0x translating - -Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12 -================================================================================== - ->Linux kernel developer Jiri Slaby has announced the release of the fifty-eighth maintenance build of the long-term supported Linux 3.12 kernel series, as well as a modification to its EOL status. - -Linux kernel 3.12.58 LTS is now available, and those running it on their Linux kernel-based operating system must update as soon as possible. And the good news is that the Linux 3.12 branch is here to stay for one more year, until 2017, because SUSE Linux Enterprise (SLE) 12 Service Pack 1 is based on it. - -"Since SLE12-SP1 is based upon 3.12 and its EOL is in 2017, move the EOL of 3.12 to 2017 too," said Jiri Slaby in a [patch announcement][1] sent to one of Linux kernel's mailing lists, where he has also revealed the "end of life" statuses for other kernel branches, such as August 2016 for Linux 3.14, January 2017 for Linux 3.18, or September 2017 for Linux 4.1. - -### What's new in Linux kernel 3.12.58 LTS - -If you're wondering what's new in Linux kernel 3.12.58 LTS, we can tell you that, according to the [appended shortlog][2], it is a pretty healthy update that changes a total of 114 files, with 835 insertions and 298 deletions. Among the changes, we can notice the usual sound and networking stack improvements, and many updated drivers. - -There are also multiple improvements to the x86 hardware architecture, along with small fixes for the Xtensa and s390 ones. Filesystems like NFS, OCFS2, Btrfs, JBD2, and XFS have also received various fixes, and among the updated drivers, we can mention USB, Xen, MD, MTD, media, SCSI, TTY, networking, ATA, Bluetooth, hwmon, EDAC, and CPUFreq. - -As usual, you can [download the Linux kernel 3.12.58 LTS sources][3] right now via our website or directly from kernel.org. Please update your GNU/Linux operating system as soon as possible if it is powered by a kernel from the Linux 3.12 series. - ------------------------------------------------------------------------------- - -via: http://www.linux.com/news/featured-blogs/191-linux-training/834644-7-steps-to-start-your-linux-sysadmin-career - -作者:[Marius Nestor][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://news.softpedia.com/editors/browse/marius-nestor -[1]: http://lkml.iu.edu/hypermail/linux/kernel/1604.1/00792.html -[2]: http://www.spinics.net/lists/stable/msg128634.html -[3]: http://linux.softpedia.com/get/System/Operating-Systems/Kernels/Linux-Kernel-Stable-1960.shtml diff --git a/translated/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md b/translated/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md new file mode 100644 index 0000000000..ea71e0512b --- /dev/null +++ b/translated/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md @@ -0,0 +1,31 @@ +因 SUSE Linux Enterprise 12,Linux Kernel 3.12 的支持延长至 2017 年 +================================================================================== + +>Linux 内核开发者 Jiri Slaby 已经宣布了 Linux 3.12 系列内核的第 58 个长期支持维护版本,以及关于生命周期状态的一些修改。 + +Linux Kernel 3.12.58 LTS(长期支持版)已经可用,那些运行该版本内核的 Linux 操作系统应尽快升级。有个好消息是 Linux 3.12 分支的支持将延长一年至 2017 年,因为 SUSE Linux Enterprise (SLE) 12 Service Pack 1 正是基于该分支。 + +“因为 SLE12-SP1 基于 3.12 之上,并且它的生命周期持续到 2017 年,所以将 3.12 的生命周期结束也修改到 2017 年,”Jiri Slaby 在发到 Linux 内核邮件列表的一个[补丁声明][1]中说道,同时他还公布了其它内核分支的生命周期结束时间(EOL,end of life),比如 Linux 3.14 为 2016 年 8 月,Linux 3.18 为 2017 年 1 月,Linux 4.1 是 2017 年 9 月。 + +### Linux kernel 3.12.58 LTS 改动 + +如果你想知道 Linux kernel 3.12.58 LTS 中有哪些改动,我们能告诉你的是,通过[附加的短日志][2]可知,这是一个健康的更新,改动涉及 114 个文件,有 835 行插入和 298 行删除。在这些改动之中,我们注意到多数是声音和网络栈的改进,以及许多驱动的更新。 + +更新中还有多个对 x86 硬件架构的改进,以及一些对 Xtensa 和 s390 的小修复。文件系统,如 NFS,OCFS2,Btrfs,JBD2 还有 XFS 也都收到了不同的修复,在驱动的更新中可以提到的还有 USB,Xen,MD,MTD,媒体,SCSI,TTY,网络,ATA,蓝牙,hwmon,EDAC 以及 CPUFreq。 + +和往常一样,你现在就可以从我们网站(linux.com)或直接从 kernel.org [下载 Linux kernel 3.12.58 LTS 的源码][3]。如果您的 GNU/Linux 操作系统运行的是 Linux 3.12 系列内核,请尽快升级您的内核。 + +------------------------------------------------------------------------------ + +via: http://www.linux.com/news/featured-blogs/191-linux-training/834644-7-steps-to-start-your-linux-sysadmin-career + +作者:[Marius Nestor][a] +译者:[alim0x](https://github.com/alim0x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://news.softpedia.com/editors/browse/marius-nestor +[1]: http://lkml.iu.edu/hypermail/linux/kernel/1604.1/00792.html +[2]: http://www.spinics.net/lists/stable/msg128634.html +[3]: http://linux.softpedia.com/get/System/Operating-Systems/Kernels/Linux-Kernel-Stable-1960.shtml From a6ba3c6523327cf2245cb3d8966af21729dec7a1 Mon Sep 17 00:00:00 2001 From: Ping Date: Mon, 18 Apr 2016 08:42:34 +0800 Subject: [PATCH 372/582] [Translating] 20160303 Top 5 open source command shells for Linux.md --- .../tech/20160303 Top 5 open source command shells for Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20160303 Top 5 open source command shells for Linux.md b/sources/tech/20160303 Top 5 open source command shells for Linux.md index b9bf5e2e87..8705ad2981 100644 --- a/sources/tech/20160303 Top 5 open source command shells for Linux.md +++ b/sources/tech/20160303 Top 5 open source command shells for Linux.md @@ -1,4 +1,4 @@ -翻译中;by ![zky001] +翻译中;by ping Top 5 open source command shells for Linux =============================================== From 29d7787654b118631607399d534f6a5022a746e6 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 18 Apr 2016 16:00:04 +0800 Subject: [PATCH 373/582] translating --- ...15 Docker 1.11 Adopts Open Container Project Components.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md b/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md index b10e13fe95..3c4f860e49 100644 --- a/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md +++ b/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md @@ -1,3 +1,5 @@ +Translating---geekpi + Docker 1.11 Adopts Open Container Project Components ======================================================= @@ -46,3 +48,5 @@ via: http://www.infoworld.com/article/3055966/open-source-tools/docker-111-adopt [6]: http://www.infoworld.com/article/2876801/application-virtualization/docker-reorganization-grows-up.html [7]: https://github.com/opencontainers/runc/graphs/contributors [8]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ + + From 57e6d3d644285c6bb08d6ad9592ba2eb8f978006 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 18 Apr 2016 17:48:06 +0800 Subject: [PATCH 374/582] translated --- ...dopts Open Container Project Components.md | 52 ------------------- ...dopts Open Container Project Components.md | 50 ++++++++++++++++++ 2 files changed, 50 insertions(+), 52 deletions(-) delete mode 100644 sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md create mode 100644 translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md diff --git a/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md b/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md deleted file mode 100644 index 3c4f860e49..0000000000 --- a/sources/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md +++ /dev/null @@ -1,52 +0,0 @@ -Translating---geekpi - -Docker 1.11 Adopts Open Container Project Components -======================================================= - -![](http://images.techhive.com/images/article/2015/01/docker-620x465-100559026-primary.idge.jpg) - ->Docker's participation in the Open Container project has come full circle, as the latest version of Docker is now built with components donated by Docker to the OCP - -The biggest news about [Docker 1.11][1] isn't features in the application, but that it uses component versions standardized under the aegis of the Open Container Project. - -Last year, Docker donated the core of its [runC][2] runtime to the OCP as a basis for building container tools. The same went for [containerd][3], a daemon or server used to control instances of runC. Docker 1.11 now uses the donated and publicly worked-on versions of those projects. - ->[ Dig into the the red-hot open source framework in InfoWorld's [beginner's guide to Docker][4]. Pick it up today! | Get a digest of the day's top tech stories in the [InfoWorld Daily newsletter][5]. ] - ->Docker is making this move to challenge the narrative that its container ecosystem is still [dictated chiefly by Docker itself][6]. It isn't donating its container specs and runtime details to the OCP merely for show; it wants the future development of the project to be as open-ended and inclusive as possible. - -![](http://images.techhive.com/images/article/2016/04/docker-runc-100656060-large.idge.png) - ->Docker 1.11 has been reworked to use the runC and containerd components contributed to the Open Container Project. The runC engine can be swapped out and replaced if needed. - -[Two chief committers][7] on runC are Docker employees, but committers from Virtuozzo (of Parallels fame), Red Hat's OpenShift and Project Atomic projects, Huawei, GE Healthcare, and Suse Linux have all been regulars as well. - -The more visible changes in Docker 1.11 reflect this. Previously, the Docker runtime was the only one available within Docker, and critics felt this limited users' choices. The runc runtime is now swappable; while Docker ships with runc as the default engine, any other compatible engine can be swapped in. (Docker also wants it to be possible to do this without having to kill and restart currently running containers, but that's an improvement scheduled for later.) - -Docker is making a case for this OCP-based development process as an inherently better method to create its product. "Splitting Docker up into focused independent tools means more focused maintainers, and ultimately better quality software," stated Docker in its [official blog post][8] announcing 1.11. - -Aside from fixing long-standing bugs and ensuring the runC/containerd version of Docker didn't slow down, Docker has rolled a slew of improvements into Docker 1.11. Docker Engine now supports VLANs and IPv6 service discovery, and it automatically performs DNS round-robin load balancing across multiple containers that have the same alias. - - - ------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/3055966/open-source-tools/docker-111-adopts-open-container-project-components.html - -作者:[Serdar Yegulalp][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://www.infoworld.com/author/Serdar-Yegulalp/ -[1]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ -[2]: http://runc.io/ -[3]: https://containerd.tools/ -[4]: http://www.infoworld.com/resources/16373/application-virtualization/the-beginners-guide-to-docker#tk.ifw-infsb -[5]: http://www.infoworld.com/newsletters/signup.html#tk.ifw-infsb -[6]: http://www.infoworld.com/article/2876801/application-virtualization/docker-reorganization-grows-up.html -[7]: https://github.com/opencontainers/runc/graphs/contributors -[8]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ - - diff --git a/translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md b/translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md new file mode 100644 index 0000000000..98e8d49c06 --- /dev/null +++ b/translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md @@ -0,0 +1,50 @@ +Docker 1.11采纳了开源容器项目组件 +======================================================= + +![](http://images.techhive.com/images/article/2015/01/docker-620x465-100559026-primary.idge.jpg) + +>Docker参与的开源项目完成了一个闭环,最新构建的Docker采用了Docker贡献给OCP的组件。 + +[Docker 1.11][1]最大的新闻并不是它的功能,而是它使用了在OCP支持下的标准化的组件版本。 + +去年,Docker贡献了它的[runC][2]核心给OCP作为构建构建容器工具的基础。同样还有[containerd][3],作为守护进程或者服务端用于控制runC的实例。Docker 1.11现在使用的是捐赠和公开的版本。 + +>在InfoWorld的[Docker初学者指南][4]中深入这个热门开源框架。今天就拿来看!|在[InfoWorld每日简讯][5]中获取今日的技术新闻。 + +>Docker此举挑战了它的容器生态仍[主要由Docker自身决定][6]的传说。它并不是为了作秀才将容器规范和运行时细节贡献给OCP。它希望项目将来的开发越开放和广泛越好。 + +![](http://images.techhive.com/images/article/2016/04/docker-runc-100656060-large.idge.png) + +>Docker 1.11已经用贡献给OCP的runC和containerd进行了重构。runC如果需要可以被交换出去并被替换。 + +runC的[两位主要提交者][7]来自Docker,但是来自Virtuozzo(Parallels fame)、OpenShift、Project Atomic、华为、GE Healthcare、Suse Linux也都是提交的常客。 + +Docker 1.11中一个更明显的变化是先前Docker运行时在Docker中是唯一可用的,并且评论家认为这个会限制用户的选择。runC运行时现在是可交换的;虽然Docker在发布时将runC作为默认的引擎,但是任何兼容的引擎都可以被交换进入。(Docker同样希望它可以不用杀死并重启现在运行的容器,但是这个作为今后的改进规划。) + +Docker正在将基于OCP开发流程作为内部更好的方式去创建它的产品。在它的发布1.11的[官方博客中称][8]:“将Docker切分成独立的工具意味着更专注的维护者,最终有更好的软件质量。” + +除了修复长期以来存在的问题何确保Docker的runC/containerd跟上步伐,Docker还在Docker 1.11中加入了一些改进。Docker Engine现在支持VLAN和IPv6服务发现,并且会自动在多个相同别名容器间执行DNS轮询负载均衡。 + + + +------------------------------------------------------------------------------ + +via: http://www.infoworld.com/article/3055966/open-source-tools/docker-111-adopts-open-container-project-components.html + +作者:[Serdar Yegulalp][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.infoworld.com/author/Serdar-Yegulalp/ +[1]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ +[2]: http://runc.io/ +[3]: https://containerd.tools/ +[4]: http://www.infoworld.com/resources/16373/application-virtualization/the-beginners-guide-to-docker#tk.ifw-infsb +[5]: http://www.infoworld.com/newsletters/signup.html#tk.ifw-infsb +[6]: http://www.infoworld.com/article/2876801/application-virtualization/docker-reorganization-grows-up.html +[7]: https://github.com/opencontainers/runc/graphs/contributors +[8]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ + + From e7141ee257ce8e48a89a19c261847816ca0bf08b Mon Sep 17 00:00:00 2001 From: willowyoung <1079902707@qq.com> Date: Mon, 18 Apr 2016 23:37:53 +0800 Subject: [PATCH 375/582] Translated by willowyoung --- ...ocessing at NASA with open source tools.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 translated/tech/20160304 Image processing at NASA with open source tools.md diff --git a/translated/tech/20160304 Image processing at NASA with open source tools.md b/translated/tech/20160304 Image processing at NASA with open source tools.md new file mode 100644 index 0000000000..e3d59b0f51 --- /dev/null +++ b/translated/tech/20160304 Image processing at NASA with open source tools.md @@ -0,0 +1,71 @@ +# 在NASA中使用开源工具进行图像处理 + +关键词:NASA,图像处理,Node.js,OpenCV + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/nasa_spitzer_space_pink_spiral.jpg?itok=3XEUstkl) + +这个已逝的夏天,我是位于格伦的 [NASA](http://www.nasa.gov/centers/glenn/home/index.html) [GVIS](https://ocio.grc.nasa.gov/gvis/) 实验室的研究生,我将我对开源的热情带到了那里。我的任务是提高我们实验室对 Dan Schroeder 开发的一个开源流体动力学模拟器的贡献。原本的模拟器为用户呈现出可以用鼠标绘制的障碍,用来计算流体动力学模型。我们团队的贡献是加入图像处理的代码,这些代码分析实况视频的每一帧以显示一个物体如何与液体相互作用。而且,我们还要做更多事情。 + +我们想要让图像处理部分更加健全,所以我致力于改善图像处理库。 + +基于新的库,模拟器可以检测轮廓、进行空间坐标变换以及找到物体的质心。图像处理并不直接与流体动力学模拟器物理相关。它用摄像头检测物体,并且获取物体轮廓,为流体模拟器创建一个障碍物。然后,流体模拟器启动,输出结果会被投射到真实物体上。 + +我的目标是通过以下三种方式改进模拟器: + +1. 找寻物体的轮廓 +2. 找寻物体的质心 +3. 能对物体中心进行相关的精确转换 + +我的导师建议我安装 [Node.js](http://nodejs.org/), [OpenCV](http://opencv.org/), 和 [Node.js bindings for OpenCV](https://github.com/peterbraden/node-opencv).。在等待软件安装的过程中,我查看了 OpenCV 的 [GitHub 主页](https://github.com/peterbraden/node-opencv) 上的示例源码。我发现示例源码使用 JavaScript 写的,而我还不懂 JavaScript ,所以我在 Codecademy 上学了一些课程。两天后,我对 JavaScript 依旧生疏,不过我还是开始了我的项目。。。它包含了更多的JavaScript。 + +示例的轮廓检测代码工作得很好。事实上,它使得我用几个小时就完成了第一个目标!为了获取一幅图片的轮廓,它看起来像这样: + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_1-520x293.jpg) + +> 包括所有轮廓的原始图, + +示例的检测轮廓的代码工作得有点好过头了。不仅物体的轮廓被检测到了,整个图片中的轮廓都检测到了。这会导致模拟器要与那些没用的轮廓打交道。这是一个严重的问题,因为它会返回错误的数据。为了避免模拟器接触到不想要的轮廓,我加了一个区域约束。轮廓要位于一定的区域范围内才会被画出来。区域约束使得轮廓变干净了。 + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_2-520x293.jpg) + +> 过滤后的轮廓,包含了阴影轮廓 + +虽然无关的轮廓没有了,但是图像还有个问题。图像本该只有一个轮廓,但是它来回绕了自己两次,没有完整地圈起来。区域在这里不能作为决定因素,所以必须试试其他方式。 + +这一次,我不是直接去找寻轮廓,而是先将图片转换成二值图。二值图是转换之后只有黑白像素的图片。为了获取到二值图我先把彩色图转成灰度图。转换之后我再用阈值函数对图片进行处理。阈值函数遍历图片每个像素点的值,如果值小于 30 ,像素的颜色就会改成黑色。否则则反。在原始图片转换成二值图之后,结果变成这样: + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_3-520x293.jpg) + +> 二值图。 + +然后我获取了二值图的轮廓,结果是一个更干净的轮廓,没有了阴影轮廓。 + +![](https://opensource.com/sites/default/files/image_processing_nasa_4.jpg) + +> 最后的干净轮廓。 + +这个时候,我可以获取干净的轮廓、计算质心了。可惜的是,我没有足够的时间去完成质心的相关变换。因为我的实习时间不多了,我开始考虑我在这段有限时间内能做的其它事情。其中一个就是边界矩形。边界矩形是包含了图片轮廓的最小四边形。边界矩形很重要,因为它是在页面上缩放轮廓的关键。虽然很遗憾我没时间利用边界矩形做更多事情,但是我仍然想去了解更多,因为这是个很有用的工具。 + +最后,经过以上的努力,我完成了对图像的处理! + +![](https://opensource.com/sites/default/files/resize/image_processing_nasa_5-521x293.jpg) + +> 最后图像,红色的边界矩形和质心。 + +当这些图像处理代码写完之后,我用我的代码替代了模拟器中的老代码。非常意外的,它可以工作。 + +嗯,基本可以。 + +程序有内存泄露,每 1/10 秒泄露 100MB 。我很高兴原因不是我的代码。坏消息是修复它并不是我能控制的。好消息是有个解决方法我可以使用。它并不是最理想的,方法是不断检查模拟器使用的内存,当使用内存超过 1 GB,重新启动模拟器。 + +在 NASA 实验室,我们使用很多的开源软件,没有这些开源软件的帮助,我不可能完成这些工作。 + +* * * + +via: [https://opensource.com/life/16/3/image-processing-nasa](https://opensource.com/life/16/3/image-processing-nasa) + +作者:[Lauren Egts](https://opensource.com/users/laurenegts) +译者:[willowyoung](https://github.com/willowyoung) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e2fb125a7a0433d498bcb4e636efbb229c967e9b Mon Sep 17 00:00:00 2001 From: cposture Date: Tue, 19 Apr 2016 15:49:19 +0800 Subject: [PATCH 376/582] Translated by cposture --- .../20151220 GCC-Inline-Assembly-HOWTO.md | 632 ++++++++++++++++++ ...loud Services For Linux To Replace Copy.md | 135 ++++ 2 files changed, 767 insertions(+) create mode 100644 translated/tech/20151220 GCC-Inline-Assembly-HOWTO.md create mode 100644 translated/tech/20160220 Best Cloud Services For Linux To Replace Copy.md diff --git a/translated/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/translated/tech/20151220 GCC-Inline-Assembly-HOWTO.md new file mode 100644 index 0000000000..e0e1fc6d50 --- /dev/null +++ b/translated/tech/20151220 GCC-Inline-Assembly-HOWTO.md @@ -0,0 +1,632 @@ +* * * + +# GCC 内联汇编 HOWTO + +v0.1, 01 March 2003. +* * * + +_本 HOWTO 文档将讲解 GCC 提供的内联汇编特性的用途和用法。对于阅读这篇文章,这里只有两个前提要求,很明显,就是 x86 汇编语言和 C 语言的基本认识。_ + +* * * + +## 1. 简介 + +## 1.1 版权许可 + +Copyright (C)2003 Sandeep S. + +本文档自由共享;你可以重新发布它,并且/或者在遵循自由软件基金会发布的 GNU 通用公共许可证下修改它;或者该许可证的版本 2 ,或者(按照你的需求)更晚的版本。 + +发布这篇文档是希望它能够帮助别人,但是没有任何保证;甚至不包括可售性和适用于任何特定目的的保证。关于更详细的信息,可以查看 GNU 通用许可证。 + +## 1.2 反馈校正 + +请将反馈和批评一起提交给 [Sandeep.S](mailto:busybox@sancharnet.in) 。我将感谢任何一个指出本文档中错误和不准确之处的人;一被告知,我会马上改正它们。 + +## 1.3 致谢 + +我对提供如此棒的特性的 GNU 人们表示真诚的感谢。感谢 Mr.Pramode C E 所做的所有帮助。感谢在 Govt Engineering College 和 Trichur 的朋友们的精神支持和合作,尤其是 Nisha Kurur 和 Sakeeb S 。 感谢在 Gvot Engineering College 和 Trichur 的老师们的合作。 + +另外,感谢 Phillip , Brennan Underwood 和 colin@nyx.net ;这里的许多东西都厚颜地直接取自他们的工作成果。 + +* * * + +## 2. 概览 + +在这里,我们将学习 GCC 内联汇编。这内联表示的是什么呢? + +我们可以要求编译器将一个函数的代码插入到调用者代码中函数被实际调用的地方。这样的函数就是内联函数。这听起来和宏差不多?这两者确实有相似之处。 + +内联函数的优点是什么呢? + +这种内联方法可以减少函数调用开销。同时如果所有实参的值为常量,它们的已知值可以在编译期允许简化,因此并非所有的内联函数代码都需要被包含。代码大小的影响是不可预测的,这取决于特定的情况。为了声明一个内联函数,我们必须在函数声明中使用 `inline` 关键字。 + +现在我们正处于一个猜测内联汇编到底是什么的点上。它只不过是一些写为内联函数的汇编程序。在系统编程上,它们方便、快速并且极其有用。我们主要集中学习(GCC)内联汇编函数的基本格式和用法。为了声明内联汇编函数,我们使用 `asm` 关键词。 + +内联汇编之所以重要,主要是因为它可以操作并且使其输出通过 C 变量显示出来。正是因为此能力, "asm" 可以用作汇编指令和包含它的 C 程序之间的接口。 + +* * * + +## 3. GCC 汇编语法 + +GCC , Linux上的 GNU C 编译器,使用 **AT&T** / **UNIX** 汇编语法。在这里,我们将使用 AT&T 语法 进行汇编编码。如果你对 AT&T 语法不熟悉的话,请不要紧张,我会教你的。AT&T 语法和 Intel 语法的差别很大。我会给出主要的区别。 + +1. 源操作数和目的操作数顺序 + + AT&T 语法的操作数方向和 Intel 语法的刚好相反。在Intel 语法中,第一操作数为目的操作数,第二操作数为源操作数,然而在 AT&T 语法中,第一操作数为源操作数,第二操作数为目的操作数。也就是说, + + Intel 语法中的 "Op-code dst src" 变为 + + AT&T 语法中的 "Op-code src dst"。 + +2. 寄存器命名 + + 寄存器名称有 % 前缀,即如果必须使用 eax,它应该用作 %eax。 + +3. 立即数 + + AT&T 立即数以 ’$’ 为前缀。静态 "C" 变量 也使用 ’$’ 前缀。在 Intel 语法中,十六进制常量以 ’h’ 为后缀,然而AT&T不使用这种语法,这里我们给常量添加前缀 ’0x’。所以,对于十六进制,我们首先看到一个 ’$’,然后是 ’0x’,最后才是常量。 + +4. 操作数大小 + + 在 AT&T 语法中,存储器操作数的大小取决于操作码名字的最后一个字符。操作码后缀 ’b’ 、’w’、’l’分别指明了字节(byte)(8位)、字(word)(16位)、长型(long)(32位)存储器引用。Intel 语法通过给存储器操作数添加’byte ptr’、 ’word ptr’ 和 ’dword ptr’前缀来实现这一功能。 + + 因此,Intel的 "mov al, byte ptr foo" 在 AT&T 语法中为 "movb foo, %al"。 + +5. 存储器操作数 + + 在 Intel 语法中,基址寄存器包含在 ’[’ 和 ’]’ 中,然而在 AT&T 中,它们变为 ’(’ 和 ’)’。另外,在 Intel 语法中, 间接内存引用为 + + section:[base + index*scale + disp], 在 AT&T中变为 + + section:disp(base, index, scale)。 + + 需要牢记的一点是,当一个常量用于 disp 或 scale,不能添加’$’前缀。 + +现在我们看到了 Intel 语法和 AT&T 语法之间的一些主要差别。我仅仅写了它们差别的一部分而已。关于更完整的信息,请参考 GNU 汇编文档。现在为了更好地理解,我们可以看一些示例。 + +> ` +> +>
+------------------------------+------------------------------------+
+> |       Intel Code             |      AT&T Code                     |
+> +------------------------------+------------------------------------+
+> | mov     eax,1                |  movl    $1,%eax                   |   
+> | mov     ebx,0ffh             |  movl    $0xff,%ebx                |   
+> | int     80h                  |  int     $0x80                     |   
+> | mov     ebx, eax             |  movl    %eax, %ebx                |
+> | mov     eax,[ecx]            |  movl    (%ecx),%eax               |
+> | mov     eax,[ebx+3]          |  movl    3(%ebx),%eax              | 
+> | mov     eax,[ebx+20h]        |  movl    0x20(%ebx),%eax           |
+> | add     eax,[ebx+ecx*2h]     |  addl    (%ebx,%ecx,0x2),%eax      |
+> | lea     eax,[ebx+ecx]        |  leal    (%ebx,%ecx),%eax          |
+> | sub     eax,[ebx+ecx*4h-20h] |  subl    -0x20(%ebx,%ecx,0x4),%eax |
+> +------------------------------+------------------------------------+
+> 
+> +> ` + +* * * + +## 4. 基本内联 + +基本内联汇编的格式非常直接了当。它的基本格式为 + +`asm("汇编代码");` + +示例 + +> ` +> +> * * * +> +>
asm("movl %ecx %eax"); /* 将 ecx 寄存器的内容移至 eax  */
+> __asm__("movb %bh (%eax)"); /* 将 bh 的一个字节数据 移至 eax 寄存器指向的内存 */
+> 
+> +> * * * +> +> ` + +你可能注意到了这里我使用了 `asm ` 和 `__asm__`。这两者都是有效的。如果关键词 `asm` 和我们程序的一些标识符冲突了,我们可以使用 `__asm__`。如果我们的指令多余一条,我们可以写成一行,并用括号括起,也可以为每条指令添加 ’\n’ 和 ’\t’ 后缀。这是因为gcc将每一条当作字符串发送给 **as**(GAS)( GAS 即 GNU 汇编器 ——译者注),并且通过使用换行符/制表符发送正确地格式化行给汇编器。 + +示例 + +> ` +> +> * * * +> +>
 __asm__ ("movl %eax, %ebx\n\t"
+>           "movl $56, %esi\n\t"
+>           "movl %ecx, $label(%edx,%ebx,$4)\n\t"
+>           "movb %ah, (%ebx)");
+> 
+> +> * * * +> +> ` + +如果在代码中,我们涉及到一些寄存器(即改变其内容),但在没有固定这些变化的情况下从汇编中返回,这将会导致一些不好的事情。这是因为 GCC 并不知道寄存器内容的变化,这会导致问题,特别是当编译器做了某些优化。在没有告知 GCC 的情况下,它将会假设一些寄存器存储了我们可能已经改变的变量的值,它会像什么事都没发生一样继续运行(什么事都没发生一样是指GCC不会假设寄存器装入的值是有效的,当退出改变了寄存器值的内联汇编后,寄存器的值不会保存到相应的变量或内存空间 ——译者注)。我们所可以做的是使用这些没有副作用的指令,或者当我们退出时固定这些寄存器,或者等待程序崩溃。这是为什么我们需要一些扩展功能。扩展汇编正好给我们提供了那样的功能。 + +* * * + +## 5. 扩展汇编 + +在基本内联汇编中,我们只有指令。然而在扩展汇编中,我们可以同时指定操作数。它允许我们指定输入寄存器、输出寄存器以及修饰寄存器列表。GCC 不强制用户必须指定使用的寄存器。我们可以把头疼的事留给 GCC ,这可能可以更好地适应 GCC 的优化。不管怎樣,基本格式为: + +> ` +> +> * * * +> +>
       asm ( 汇编程序模板 
+>            : 输出操作数					/* 可选的 */
+>            : 输入操作数                   /* 可选的 */
+>            : 修饰寄存器列表			    /* 可选的 */
+>            );
+> 
+> +> * * * +> +> ` + +汇编程序模板由汇编指令组成.每一个操作数由一个操作数约束字符串所描述,其后紧接一个括弧括起的 C 表达式。冒号用于将汇编程序模板和第一个输出操作数分开,另一个(冒号)用于将最后一个输出操作数和第一个输入操作数分开,如果存在的话。逗号用于分离每一个组内的操作数。总操作数的数目限制在10个,或者机器描述中的任何指令格式中的最大操作数数目,以较大者为准。 + +如果没有输出操作数但存在输入操作数,你必须将两个连续的冒号放置于输出操作数原本会放置的地方周围。 + +示例: + +> ` +> +> * * * +> +>
        asm ("cld\n\t"
+>              "rep\n\t"
+>              "stosl"
+>              : /* 无输出寄存器 */
+>              : "c" (count), "a" (fill_value), "D" (dest)
+>              : "%ecx", "%edi" 
+>              );
+> 
+> +> * * * +> +> ` + +现在,这段代码是干什么的?以上的内联汇编是将 `fill_value` 值 连续 `count` 次 拷贝到 寄存器 `edi` 所指位置(每执行stosl一次,寄存器 edi 的值会递增或递减,这取决于是否设置了 direction 标志,因此以上代码实则初始化一个内存块 ——译者注)。 它也告诉 gcc 寄存器 `ecx` 和 `edi` 一直无效(原文为 eax ,但代码修饰寄存器列表中为 ecx,因此这可能为作者的纰漏 ——译者注)。为了使扩展汇编更加清晰,让我们再看一个示例。 + +> ` +> +> * * * +> +>
        
+>         int a=10, b;
+>         asm ("movl %1, %%eax; 
+>               movl %%eax, %0;"
+>              :"=r"(b)        /* 输出 */
+>              :"r"(a)         /* 输入 */
+>              :"%eax"         /* 修饰寄存器 */
+>              );       
+> 
+> +> * * * +> +> ` + +这里我们所做的是使用汇编指令使 ’b’ 变量的值等于 ’a’ 变量的值。一些有意思的地方是: + +* "b" 为输出操作数,用 %0 引用,并且 "a" 为输入操作数,用 %1 引用。 +* "r" 为操作数约束。之后我们会更详细地了解约束(字符串)。目前,"r" 告诉 GCC 可以使用任一寄存器存储操作数。输出操作数约束应该有一个约束修饰符 "=" 。这修饰符表明它是一个只读的输出操作数。 +* 寄存器名字以两个%为前缀。这有利于 GCC 区分操作数和寄存器。操作数以一个 % 为前缀。 +* 第三个冒号之后的修饰寄存器 %eax 告诉 GCC %eax的值将会在 "asm" 内部被修改,所以 GCC 将不会使用此寄存器存储任何其他值。 + +当 "asm" 执行完毕, "b" 变量会映射到更新的值,因为它被指定为输出操作数。换句话说, "asm" 内 "b" 变量的修改 应该会被映射到 "asm" 外部。 + +现在,我们可以更详细地看看每一个域。 + +## 5.1 汇编程序模板 + +汇编程序模板包含了被插入到 C 程序的汇编指令集。其格式为:每条指令用双引号圈起,或者整个指令组用双引号圈起。同时每条指令应以分界符结尾。有效的分界符有换行符(\n)和逗号(;)。’\n’ 可以紧随一个制表符(\t)。我们应该都明白使用换行符或制表符的原因了吧?和 C 表达式对应的操作数使用 %0、%1 ... 等等表示。 + +## 5.2 操作数 + +C 表达式用作 "asm" 内的汇编指令操作数。作为第一双引号内的操作数约束,写下每一操作数。对于输出操作数,在引号内还有一个约束修饰符,其后紧随一个用于表示操作数的 C 表达式。即, + +"约束字符串"(C 表达式),它是一个通用格式。对于输出操作数,还有一个额外的修饰符。约束字符串主要用于决定操作数的寻找方式,同时也用于指定使用的寄存器。 + +如果我们使用的操作数多于一个,那么每一个操作数用逗号隔开。 + +在汇编程序模板,每个操作数用数字引用。编号方式如下。如果总共有 n 个操作数(包括输入和输出操作数),那么第一个输出操作数编号为 0 ,逐项递增,并且最后一个输入操作数编号为 n - 1 。操作数的最大数目为前一节我们所看到的那样。 + +输出操作数表达式必须为左值。输入操作数的要求不像这样严格。它们可以为表达式。扩展汇编特性常常用于编译器自己不知道其存在的机器指令 ;-)。如果输出表达式无法直接寻址(例如,它是一个位域),我们的约束字符串必须给定一个寄存器。在这种情况下,GCC 将会使用该寄存器作为汇编的输出,然后存储该寄存器的内容到输出。 + +正如前面所陈述的一样,普通的输出操作数必须为只写的; GCC 将会假设指令前的操作数值是死的,并且不需要被(提前)生成。扩展汇编也支持输入-输出或者读-写操作数。 + +所以现在我们来关注一些示例。我们想要求一个数的5次方结果。为了计算该值,我们使用 `lea` 指令。 + +> ` +> +> * * * +> +>
        asm ("leal (%1,%1,4), %0"
+>              : "=r" (five_times_x)
+>              : "r" (x) 
+>              );
+> 
+> +> * * * +> +> ` + +这里我们的输入为x。我们不指定使用的寄存器。 GCC 将会选择一些输入寄存器,一个输出寄存器,并且做我们期望的事。如果我们想要输入和输出存在于同一个寄存器里,我们可以要求 GCC 这样做。这里我们使用那些读-写操作数类型。这里我们通过指定合适的约束来实现它。 + +> ` +> +> * * * +> +>
        asm ("leal (%0,%0,4), %0"
+>              : "=r" (five_times_x)
+>              : "0" (x) 
+>              );
+> 
+> +> * * * +> +> ` + +现在输出和输出操作数位于同一个寄存器。但是我们无法得知是哪一个寄存器。现在假如我们也想要指定操作数所在的寄存器,这里有一种方法。 + +> ` +> +> * * * +> +>
        asm ("leal (%%ecx,%%ecx,4), %%ecx"
+>              : "=c" (x)
+>              : "c" (x) 
+>              );
+> 
+> +> * * * +> +> ` + +在以上三个示例中,我们并没有添加任何寄存器到修饰寄存器里,为什么?在头两个示例, GCC 决定了寄存器并且它知道发生了什么改变。在最后一个示例,我们不必将 'ecx' 添加到修饰寄存器列表(原文修饰寄存器列表拼写有错,这里已修正 ——译者注), gcc 知道它表示x。因此,因为它可以知道 `ecx` 的值,它就不被当作修饰的(寄存器)了。 + +## 5.3 修饰寄存器列表 + +一些指令会破坏一些硬件寄存器。我们不得不在修饰寄存器中列出这些寄存器,即汇编函数内第三个 ’**:**’ 之后的域。这可以通知 gcc 我们将会自己使用和修改这些寄存器。所以 gcc 将不会假设存入这些寄存器的值是有效的。我们不用在这个列表里列出输入输出寄存器。因为 gcc 知道 "asm" 使用了它们(因为它们被显式地指定为约束了)。如果指令隐式或显式地使用了任何其他寄存器,(并且寄存器不能出现在输出或者输出约束列表里),那么不得不在修饰寄存器列表中指定这些寄存器。 + +如果我们的指令可以修改状态寄存器,我们必须将 "cc" 添加进修饰寄存器列表。 + +如果我们的指令以不可预测的方式修改了内存,那么需要将 "memory" 添加进修饰寄存器列表。这可以使 GCC 不会在汇编指令间保持缓存于寄存器的内存值。如果被影响的内存不在汇编的输入或输出列表中,我们也必须添加 **volatile** 关键词。 + +我们可以按我们的需求多次读写修饰寄存器。考虑一个模板内的多指令示例;它假设子例程 _foo 接受寄存器 `eax` 和 `ecx` 里的参数。 + +> ` +> +> * * * +> +>
        asm ("movl %0,%%eax;
+>               movl %1,%%ecx;
+>               call _foo"
+>              : /* no outputs */
+>              : "g" (from), "g" (to)
+>              : "eax", "ecx"
+>              );
+> 
+> +> * * * +> +> ` + +## 5.4 Volatile ...? + +如果你熟悉内核源码或者其他像内核源码一样漂亮的代码,你一定见过许多声明为 `volatile` 或者 `__volatile__`的函数,其跟着一个 `asm` 或者 `__asm__`。我之前提过关键词 `asm` 和 `__asm__`。那么什么是 `volatile`呢? + +如果我们的汇编语句必须在我们放置它的地方执行(即,不能作为一种优化被移出循环语句),将关键词 `volatile` 放置在 asm 后面,()的前面。因为为了防止它被移动、删除或者其他操作,我们将其声明为 + +`asm volatile ( ... : ... : ... : ...);` + +当我们必须非常谨慎时,请使用 `__volatile__`。 + +如果我们的汇编只是用于一些计算并且没有任何副作用,不使用 `volatile` 关键词会更好。不使用 `volatile` 可以帮助 gcc 优化代码并使代码更漂亮。 + + +在 `Some Useful Recipes` 一节中,我提供了多个内联汇编函数的例子。这儿我们详细查看修饰寄存器列表。 + +* * * + +## 6. 更多关于约束 + +到这个时候,你可能已经了解到约束和内联汇编有很大的关联。但我们很少说到约束。约束用于表明一个操作数是否可以位于寄存器和位于哪个寄存器;是否操作数可以为一个内存引用和哪种地址;是否操作数可以为一个立即数和为哪一个可能的值(即值的范围)。它可以有...等等。 + +## 6.1 常用约束 + +在许多约束中,只有小部分是常用的。我们将看看这些约束。 + +1. **寄存器操作数约束(r)** + + 当使用这种约束指定操作数时,它们存储在通用寄存器(GPR)中。请看下面示例: + + `asm ("movl %%eax, %0\n" :"=r"(myval));` + + 这里,变量 myval 保存在寄存器中,寄存器 eax 的值被复制到该寄存器中,并且myval的值从寄存器更新到了内存。当指定 "r" 约束时, gcc 可以将变量保存在任何可用的 GPR 中。为了指定寄存器,你必须使用特定寄存器约束直接地指定寄存器的名字。它们为: + + > ` + > + >
+---+--------------------+
+    > | r |    Register(s)     |
+    > +---+--------------------+
+    > | a |   %eax, %ax, %al   |
+    > | b |   %ebx, %bx, %bl   |
+    > | c |   %ecx, %cx, %cl   |
+    > | d |   %edx, %dx, %dl   |
+    > | S |   %esi, %si        |
+    > | D |   %edi, %di        |
+    > +---+--------------------+
+    > 
+ > + > ` + +2. **内存操作数约束(m)** + + 当操作数位于内存时,任何对它们的操作将直接发生在内存位置,这与寄存器约束相反,后者首先将值存储在要修改的寄存器中,然后将它写回到内存位置。但寄存器约束通常用于一个指令必须使用它们或者它们可以大大提高进程速度的地方。当需要在 "asm" 内更新一个 C 变量,而又不想使用寄存器去保存它的只,使用内存最为有效。例如, idtr 的值存储于内存位置: + + `asm("sidt %0\n" : :"m"(loc));` + +3. **匹配(数字)约束** + + 在某些情况下,一个变量可能既充当输入操作数,也充当输出操作数。可以通过使用匹配约束在 "asm" 中指定这种情况。 + + `asm ("incl %0" :"=a"(var):"0"(var));` + + 在操作数子节中,我们也看到了一些类似的示例。在这个匹配约束的示例中,寄存器 "%eax" 既用作输入变量,也用作输出变量。 var 输入被读进 %eax ,并且更新的 %eax 再次被存储进 var。这里的 "0" 用于指定与第0个输出变量相同的约束。也就是,它指定 var 输出实例应只被存储在 "%eax" 中。该约束可用于: + + * 在输入从变量读取或变量修改后,修改被写回同一变量的情况 + * 在不需要将输入操作数实例和输出操作数实例分开的情况 + + 使用匹配约束最重要的意义在于它们可以导致有效地使用可用寄存器。 + +其他一些约束: + +1. "m" : 允许一个内存操作数使用机器普遍支持的任一种地址。 +2. "o" : 允许一个内存操作数,但只有当地址是可偏移的。即,该地址加上一个小的偏移量可以得到一个地址。 +3. "V" : A memory operand that is not offsettable. In other words, anything that would fit the `m’ constraint but not the `o’constraint. +4. "i" : 允许一个(带有常量)的立即整形操作数。这包括其值仅在汇编时期知道的符号常量。 +5. "n" : 允许一个带有已知数字的立即整形操作数。许多系统不支持汇编时期的常量,因为操作数少于一个字宽。对于此种操作数,约束应该使用 'n' 而不是'i'。 +6. "g" : 允许任一寄存器、内存或者立即整形操作数,不包括通用寄存器之外的寄存器。 + + +以下约束为x86特有。 + +1. "r" : 寄存器操作数约束,查看上面给定的表格。 +2. "q" : 寄存器 a、b、c 或者 d。 +3. "I" : 范围从 0 到 31 的常量(对于 32 位移位)。 +4. "J" : 范围从 0 到 63 的常量(对于 64 位移位)。 +5. "K" : 0xff。 +6. "L" : 0xffff。 +7. "M" : 0, 1, 2, or 3 (lea 指令的移位)。 +8. "N" : 范围从 0 到 255 的常量(对于 out 指令)。 +9. "f" : 浮点寄存器 +10. "t" : 第一个(栈顶)浮点寄存器 +11. "u" : 第二个浮点寄存器 +12. "A" : 指定 `a` 或 `d` 寄存器。这主要用于想要返回 64 位整形数,使用 `d` 寄存器保存最高有效位和 `a` 寄存器保存最低有效位。 + +## 6.2 约束修饰符 + +当使用约束时,对于更精确的控制超越了约束作用的需求,GCC 给我们提供了约束修饰符。最常用的约束修饰符为: + +1. "=" : 意味着对于这条指令,操作数为只写的;旧值会被忽略并被输出数据所替换。 +2. "&" : 意味着这个操作数为一个早期的改动操作数,其在该指令完成前通过使用输入操作数被修改了。因此,这个操作数不可以位于一个被用作输出操作数或任何内存地址部分的寄存器。如果在旧值被写入之前它仅用作输入而已,一个输入操作数可以为一个早期改动操作数。 + + 约束的列表和解释是决不完整的。示例可以给我们一个关于内联汇编的用途和用法的更好的理解。在下一节,我们会看到一些示例,在那里我们会发现更多关于修饰寄存器列表的东西。 + +* * * + +## 7. 一些实用的诀窍 + +现在我们已经介绍了关于 GCC 内联汇编的基础理论,现在我们将专注于一些简单的例子。将内联汇编函数写成宏的形式总是非常方便的。我们可以在内核代码里看到许多汇编函数。(usr/src/linux/include/asm/*.h)。 + +1. 首先我们从一个简单的例子入手。我们将写一个两个数相加的程序。 + + > ` + > + > * * * + > + >
int main(void)
+    > {
+    >         int foo = 10, bar = 15;
+    >         __asm__ __volatile__("addl  %%ebx,%%eax"
+    >                              :"=a"(foo)
+    >                              :"a"(foo), "b"(bar)
+    >                              );
+    >         printf("foo+bar=%d\n", foo);
+    >         return 0;
+    > }
+    > 
+ > + > * * * + > + > ` + + 这里我们要求 GCC 将 foo 存放于 %eax,将 bar 存放于 %ebx,同时我们也想要在 %eax 中存放结果。'=' 符号表示它是一个输出寄存器。现在我们可以以其他方式将一个整数加到一个变量。 + + > ` + > + > * * * + > + >
 __asm__ __volatile__(
+    >                       "   lock       ;\n"
+    >                       "   addl %1,%0 ;\n"
+    >                       : "=m"  (my_var)
+    >                       : "ir"  (my_int), "m" (my_var)
+    >                       :                                 /* 无修饰寄存器列表 */
+    >                       );
+    > 
+ > + > * * * + > + > ` + + 这是一个原子加法。为了移除原子性,我们可以移除指令 'lock'。在输出域中,"=m" 表明 my_var 是一个输出且位于内存。类似地,"ir" 表明 my_int 是一个整型,并应该存在于其他寄存器(回想我们上面看到的表格)。没有寄存器位于修饰寄存器列表中。 + +2. 现在我们将在一些寄存器/变量上展示一些操作,并比较值。 + + > ` + > + > * * * + > + >
 __asm__ __volatile__(  "decl %0; sete %1"
+    >                       : "=m" (my_var), "=q" (cond)
+    >                       : "m" (my_var) 
+    >                       : "memory"
+    >                       );
+    > 
+ > + > * * * + > + > ` + + 这里,my_var 的值减 1 ,并且如果结果的值为 0,则变量 cond 置 1。我们可以通过添加指令 "lock;\n\t" 作为汇编模板的第一条指令来添加原子性。 + + 以类似的方式,为了增加 my_var,我们可以使用 "incl %0" 而不是 "decl %0"。 + + 这里需要注意的点为(i)my_var 是一个存储于内存的变量。(ii)cond 位于任何一个寄存器 eax、ebx、ecx、edx。约束 "=q" 保证这一点。(iii)同时我们可以看到 memory 位于修饰寄存器列表中。也就是说,代码将改变内存中的内容。 + +3. 如何置1或清0寄存器中的一个比特位。作为下一个诀窍,我们将会看到它。 + + > ` + > + > * * * + > + >
__asm__ __volatile__(   "btsl %1,%0"
+    >                       : "=m" (ADDR)
+    >                       : "Ir" (pos)
+    >                       : "cc"
+    >                       );
+    > 
+ > + > * * * + > + > ` + + 这里,ADDR 变量(一个内存变量)的 'pos' 位置上的比特被设置为 1。我们可以使用 'btrl' 来清楚由 'btsl' 设置的比特位。pos 的约束 "Ir" 表明 pos 位于寄存器并且它的值为 0-31(x86 相关约束)。也就是说,我们可以设置/清除 ADDR 变量上第 0 到 31 位的任一比特位。因为条件码会被改变,所以我们将 "cc" 添加进修饰寄存器列表。 + +4. 现在我们看看一些更为复杂而有用的函数。字符串拷贝。 + + > ` + > + > * * * + > + >
static inline char * strcpy(char * dest,const char *src)
+    > {
+    > int d0, d1, d2;
+    > __asm__ __volatile__(  "1:\tlodsb\n\t"
+    >                        "stosb\n\t"
+    >                        "testb %%al,%%al\n\t"
+    >                        "jne 1b"
+    >                      : "=&S" (d0), "=&D" (d1), "=&a" (d2)
+    >                      : "0" (src),"1" (dest) 
+    >                      : "memory");
+    > return dest;
+    > }
+    > 
+ > + > * * * + > + > ` + + 源地址存放于 esi,目标地址存放于 edi,同时开始拷贝,当我们到达 **0** 时,拷贝完成。约束 "&S"、"&D"、"&a" 表明寄存器 esi、edi和 eax 早期的修饰寄存器,也就是说,它们的内容在函数完成前会被改变。这里很明显可以知道为什么 "memory" 会放在修饰寄存器列表。 + + 我们可以看到一个类似的函数,它能移动双字块数据。注意函数被声明为一个宏。 + + > ` + > + > * * * + > + >
#define mov_blk(src, dest, numwords) \
+    > __asm__ __volatile__ (                                          \
+    >                        "cld\n\t"                                \
+    >                        "rep\n\t"                                \
+    >                        "movsl"                                  \
+    >                        :                                        \
+    >                        : "S" (src), "D" (dest), "c" (numwords)  \
+    >                        : "%ecx", "%esi", "%edi"                 \
+    >                        )
+    > 
+ > + > * * * + > + > ` + + 这里我们没有输出,所以寄存器 ecx、esi和 edi 的内容发生改变,这是块移动的副作用。因此我们必须将它们添加进修饰寄存器列表。 + +5. 在 Linux 中,系统调用使用 GCC 内联汇编实现。让我们看看如何实现一个系统调用。所有的系统调用被写成宏(linux/unistd.h)。例如,带有三个参数的系统调用被定义为如下所示的宏。 + + > ` + > + > * * * + > + > type name(type1 arg1,type2 arg2,type3 arg3) \ + > { \ + > long __res; \ + > __asm__ volatile ( "int $0x80" \ + > : "=a" (__res) \ + > : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ + > "d" ((long)(arg3))); \ + > __syscall_return(type,__res); \ + > } + >
+ > + > * * * + > + > ` + + 无论何时调用带有三个参数的系统调用,以上展示的宏用于执行调用。系统调用号位于 eax 中,每个参数位于 ebx、ecx、edx 中。最后 "int 0x80" 是一条用于执行系统调用的指令。返回值被存储于 eax 中。 + + 每个系统调用都以类似的方式实现。Exit 是一个单一参数的系统调用,让我们看看它的代码看起来会是怎样。它如下所示。 + + > ` + > + > * * * + > + >
{
+    >         asm("movl $1,%%eax;         /* SYS_exit is 1 */
+    >              xorl %%ebx,%%ebx;      /* Argument is in ebx, it is 0 */
+    >              int  $0x80"            /* Enter kernel mode */
+    >              );
+    > }
+    > 
+ > + > * * * + > + > ` + + Exit 的系统调用号是 1 同时它的参数是 0。因此我们分配 eax 包含 1,ebx 包含 0,同时通过 `int $0x80` 执行 `exit(0)`。这就是 exit 的工作原理。 + +* * * + +## 8. 结束语 + +这篇文档已经将 GCC 内联汇编过了一遍。一旦你理解了基本概念,你便不难采取自己的行动。我们看了许多例子,它们有助于理解 GCC 内联汇编的常用特性。 + +GCC 内联是一个极大的主题,这篇文章是不完整的。更多关于我们讨论过的语法细节可以在 GNU 汇编器的官方文档上获取。类似地,对于一个完整的约束列表,可以参考 GCC 的官方文档。 + +当然,Linux 内核 大规模地使用 GCC 内联。因此我们可以在内核源码中发现许多各种各样的例子。它们可以帮助我们很多。 + +如果你发现任何的错别字,或者本文中的信息已经过时,请告诉我们。 + +* * * + +## 9. 参考 + +1. [Brennan’s Guide to Inline Assembly](http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html) +2. [Using Assembly Language in Linux](http://linuxassembly.org/articles/linasm.html) +3. [Using as, The GNU Assembler](http://www.gnu.org/manual/gas-2.9.1/html_mono/as.html) +4. [Using and Porting the GNU Compiler Collection (GCC)](http://gcc.gnu.org/onlinedocs/gcc_toc.html) +5. [Linux Kernel Source](http://ftp.kernel.org/) + +* * * +via: http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html + + 作者:[Sandeep.S](mailto:busybox@sancharnet.in) 译者:[cposture](https://github.com/cposture) 校对:[]() + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 diff --git a/translated/tech/20160220 Best Cloud Services For Linux To Replace Copy.md b/translated/tech/20160220 Best Cloud Services For Linux To Replace Copy.md new file mode 100644 index 0000000000..ce9380b600 --- /dev/null +++ b/translated/tech/20160220 Best Cloud Services For Linux To Replace Copy.md @@ -0,0 +1,135 @@ +替代 Copy 的 Linux 最佳云服务 +=============================================== + +![](http://itsfoss.com/wp-content/uploads/2016/02/Linux-cloud-services.jpg) + +云存储服务 Copy 即将关闭,我们 Linux 用户是时候该寻找其他优秀的** Copy 之外的 Linux 云存储服务**。 + +全部文件将会在 2016年5月1号 被删除。如果你是 Copy 的用户,你应该保存你的文件并将它们移至其他地方。 + +在过去的两年里,Copy 已经成为了我最喜爱的云存储。它为我提供了大量的免费空间并且带有桌面平台的原生应用程序,包括 Linux 和移动平台如 iOS 和 Android。 + +对我来说,它是一个非常棒的云存储,在应用中我获得了大量的免费存储空间(380 GB)并且享受着桌面系统和移动系统之间的无缝体验。但是这些'方便免费的存储',15 GB 为注册,5 GB 为每次推荐,使我想到如果 Copy 没有获得商业用户,他们将会马上停业。如此巨大的免费存储空间仅意味着他们没有像 Dropbox 所做的一样针对个别用户。 + +当我从 Copy.com 看到它即将关闭的消息,我的担忧成真了。事实上,Copy 并不孤独。它的母公司 [Barracuda Networks](https://www.barracuda.com/)正经历一段困难时期并且已经[雇佣 Morgan Stanely 寻找 合适的卖家](http://www.bloomberg.com/news/articles/2016-02-01/barracuda-networks-said-to-work-with-morgan-stanley-to-seek-sale)(s) + +无论什么理由,我们所知道的是 Copy 将会成为历史,我们需要寻找相似的**优秀的 Linux 云服务**。我之所以强调 Linux 是因为其他流行的云存储服务,如[微软的OneDrive](https://onedrive.live.com/about/en-us/) 和 [Google Drive](https://www.google.com/drive/) 都没有提供本地 Linux 客户端。这是微软预计的事情,但是谷歌对 Linux 的冷漠令人震惊。 + +## Linux 下 Copy 的最佳替代者 + +现在,作为一个 Linux 存储,在云存储中你需要什么?让我们猜猜: + +- 大量的免费空间。毕竟,个人用户无法每月支付巨额款项。 +- 原生的 Linux 客户端。因此你能够使用提供的服务,方便地同步文件,而不用做一些特殊的调整或者定时执行脚本。 +- 其他桌面系统的客户端,比如 Windows 和 OS X。便携性是必要的,并且同步设备间的文件是一种很好的缓解。 +- Android 和 iOS 的移动应用程序。在今天的现代世界里,你需要连接所有设备。 + +我不将自托管的云服务计算在内,比如 OwnCloud 或 [Seafile](https://www.seafile.com/en/home/) ,因为它们需要自己建立和运行一个服务器。这不适合所有想要类似 Copy 的云服务的家庭用户。 + +让我们看看可以用于替代 Linux 下 Copy.com 的服务有什么。 + +## Mega + +![](http://itsfoss.com/wp-content/uploads/2016/02/Mega-Linux.jpg) + +如果你是一个 It’s FOSS 的普通读者,你可能已经看过我之前的一篇有关[Mega on Linux](http://itsfoss.com/install-mega-cloud-storage-linux/)的文章。这种云服务由[Megaupload scandal](https://en.wikipedia.org/wiki/Megaupload) 公司下臭名昭著的[Kim Dotcom](https://en.wikipedia.org/wiki/Kim_Dotcom)提供。这也使一些用户怀疑它,因为 Kim Dotcom 已经很长一段时间成为美国当局的目标。 + +Mega 拥有方便免费云服务下你所期望的一切。它给每个个人用户提供 50 GB 的免费存储空间。提供Linux 和其他平台下的原生客户端,并带有端到端的加密。原生的 Linux 客户端运行良好,可以无缝地跨平台同步。你也能在浏览器上查看操作你的文件。 + +### 优点: + +- 50 GB 的免费存储空间 +- 端到端的加密 +- Linux 和其他平台下的原生客户端,例如 Windows,Mac OS X,Android,iOS + +### 缺点: + +- Mega 拥有者见不得人的过去 + +[Mega](https://mega.nz/) + +## Hubic + +![](http://itsfoss.com/wp-content/uploads/2016/02/hubic.jpeg) + +Hubic 是一个来自法国公司的云服务。Hubic 在注册时也提供了 25 GB 免费存储空间。你可以通过推荐Hubic给朋友将空间扩大至 50 GB (对免费用户来说)。 + +Hubic 提供 Linux 客户端,其还是 beta 版本(至今已经两年了)。Hubic 拥有官方的 Linux 客户端,但是它局限在命令行。我没有去测试移动版本。 + +Hubic 拥有一些不错的功能。除了简单的用户界面、文件共享等等,它还有备份的功能,你可以定期地归档你的重要文件。 + +### 优点: + +- 25 GB 免费存储空间,可扩大至 50 GB +- 支持多个平台 +- 备份功能 + +### 缺点: + +- beta 版本的 Linux 客户端,只支持命令行 + +[Hubic](https://hubic.com/) + +## pCloud + +![](http://itsfoss.com/wp-content/uploads/2016/02/pCloud-Linux.jpeg) + +pCloud 是另一款欧洲的发行软件,但这一次从瑞士横跨法国边境。专注于加密和安全,pCloud 为每一个注册者提供 10 GB 的免费存储空间。你可以通过邀请好友、在社交媒体上分享链接等方式将空间增加至 20 GB。 + +它拥有云服务的所有标准特性,例如文件共享、同步、选择性同步等等。pCloud 也有跨平台原生客户端,当然包括 Linux。 + +Linux 客户端 容易使用,并在 Linux Mint 17.3 下的有限测试中表现良好。 + +### 优点: + +- 10 GB 免费存储空间,可扩大至 20 GB +- 运行良好的带有 GUI 的 Linux 客户端 + +### 缺点: + +- 加密是一个付费功能 + +[pCloud](https://www.pcloud.com/) + +## Yandex Disk + +![](http://itsfoss.com/wp-content/uploads/2016/02/Yandex.jpg) + +俄罗斯互联网巨人 Yandex 拥有 Google 所拥有的一切东西。搜索引擎、分析学、网站管理工具、邮箱、网页浏览器和云存储服务。 + +Yandex Disk 在注册时提供了 10 GB 的免费云存储空间。它有多平台的原生客户端,包括 Linux。然而,官方的 Linux 客户端只是命令行而已。你可以获取[非官方的 GUI 版本的 Yandex Disk 客户端](https://mintguide.org/tools/265-yd-tools-gui-indicator-for-yandexdisk-free-cloud-storage-in-linux-mint.html)。Yandex Disk 支持文件共享链接,同时带有其他标准的云存储特性。 + +### 优点: + +- 10 GB 的免费存储空间,可通过推荐的方式扩大至 20 GB + +### 缺点: + +- 只有命令行客户端 + +[Yandex Disk](https://disk.yandex.com/) + +## 公正而深思熟虑的删节 + +我从列表中删减了[Dropbox](https://www.dropbox.com/)、[SpiderOak](https://spideroak.com/)。Dropbox 对 Linux 来说非常优秀,但是它的免费存储空间限制在 2 GB。在过去的几年里,我已设法将其扩大超过 21 GB,但那又是另一件事了。 + +SpiderOak 也仅提供了 2 GB 的免费存储空间,你无法在网页浏览器上操作文件。 + +OwnCloud 需要属于自己的服务器包括建立,因此它并非人见人爱。并且它确切不符合一个典型云服务的标准。 + +## 结论 + +如果你问我应该使用什么替代 Copy,我的答案是 Mega。它带有大量的免费云存储空间和优秀的 Linux 客户端。在** Linux 下最佳云存储服务**的列表中,你的选择是什么?你更喜欢哪一个呢? + + +------------------------------------------------------------------------------ + +via: http://itsfoss.com/cloud-services-linux/ + +作者:[ABHISHEK][a] +译者:[cposture](https://github.com/cposture) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/abhishek/ From 4eef1eb5b7f74dfaab41084831c45e5c2ab3d2d0 Mon Sep 17 00:00:00 2001 From: cposture Date: Tue, 19 Apr 2016 16:02:36 +0800 Subject: [PATCH 377/582] Translating by cposture --- .../20151220 GCC-Inline-Assembly-HOWTO.md | 633 ------------------ ...to Best Manage Encryption Keys on Linux.md | 1 + ...loud Services For Linux To Replace Copy.md | 136 ---- 3 files changed, 1 insertion(+), 769 deletions(-) delete mode 100644 sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md delete mode 100644 sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md diff --git a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md b/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md deleted file mode 100644 index b60ccad1f3..0000000000 --- a/sources/tech/20151220 GCC-Inline-Assembly-HOWTO.md +++ /dev/null @@ -1,633 +0,0 @@ -【Translating by cposture 2016-03-01】 -* * * - -# GCC 内联汇编 HOWTO - -v0.1, 01 March 2003. -* * * - -_本 HOWTO 文档将讲解 GCC 提供的内联汇编特性的用途和用法。对于阅读这篇文章,这里只有两个前提要求,很明显,就是 x86 汇编语言和 C 语言的基本认识。_ - -* * * - -## 1. 简介 - -## 1.1 版权许可 - -Copyright (C)2003 Sandeep S. - -本文档自由共享;你可以重新发布它,并且/或者在遵循自由软件基金会发布的 GNU 通用公共许可证下修改它;或者该许可证的版本 2 ,或者(按照你的需求)更晚的版本。 - -发布这篇文档是希望它能够帮助别人,但是没有任何保证;甚至不包括可售性和适用于任何特定目的的保证。关于更详细的信息,可以查看 GNU 通用许可证。 - -## 1.2 反馈校正 - -请将反馈和批评一起提交给 [Sandeep.S](mailto:busybox@sancharnet.in) 。我将感谢任何一个指出本文档中错误和不准确之处的人;一被告知,我会马上改正它们。 - -## 1.3 致谢 - -我对提供如此棒的特性的 GNU 人们表示真诚的感谢。感谢 Mr.Pramode C E 所做的所有帮助。感谢在 Govt Engineering College 和 Trichur 的朋友们的精神支持和合作,尤其是 Nisha Kurur 和 Sakeeb S 。 感谢在 Gvot Engineering College 和 Trichur 的老师们的合作。 - -另外,感谢 Phillip , Brennan Underwood 和 colin@nyx.net ;这里的许多东西都厚颜地直接取自他们的工作成果。 - -* * * - -## 2. 概览 - -在这里,我们将学习 GCC 内联汇编。这内联表示的是什么呢? - -我们可以要求编译器将一个函数的代码插入到调用者代码中函数被实际调用的地方。这样的函数就是内联函数。这听起来和宏差不多?这两者确实有相似之处。 - -内联函数的优点是什么呢? - -这种内联方法可以减少函数调用开销。同时如果所有实参的值为常量,它们的已知值可以在编译期允许简化,因此并非所有的内联函数代码都需要被包含。代码大小的影响是不可预测的,这取决于特定的情况。为了声明一个内联函数,我们必须在函数声明中使用 `inline` 关键字。 - -现在我们正处于一个猜测内联汇编到底是什么的点上。它只不过是一些写为内联函数的汇编程序。在系统编程上,它们方便、快速并且极其有用。我们主要集中学习(GCC)内联汇编函数的基本格式和用法。为了声明内联汇编函数,我们使用 `asm` 关键词。 - -内联汇编之所以重要,主要是因为它可以操作并且使其输出通过 C 变量显示出来。正是因为此能力, "asm" 可以用作汇编指令和包含它的 C 程序之间的接口。 - -* * * - -## 3. GCC 汇编语法 - -GCC , Linux上的 GNU C 编译器,使用 **AT&T** / **UNIX** 汇编语法。在这里,我们将使用 AT&T 语法 进行汇编编码。如果你对 AT&T 语法不熟悉的话,请不要紧张,我会教你的。AT&T 语法和 Intel 语法的差别很大。我会给出主要的区别。 - -1. 源操作数和目的操作数顺序 - - AT&T 语法的操作数方向和 Intel 语法的刚好相反。在Intel 语法中,第一操作数为目的操作数,第二操作数为源操作数,然而在 AT&T 语法中,第一操作数为源操作数,第二操作数为目的操作数。也就是说, - - Intel 语法中的 "Op-code dst src" 变为 - - AT&T 语法中的 "Op-code src dst"。 - -2. 寄存器命名 - - 寄存器名称有 % 前缀,即如果必须使用 eax,它应该用作 %eax。 - -3. 立即数 - - AT&T 立即数以 ’$’ 为前缀。静态 "C" 变量 也使用 ’$’ 前缀。在 Intel 语法中,十六进制常量以 ’h’ 为后缀,然而AT&T不使用这种语法,这里我们给常量添加前缀 ’0x’。所以,对于十六进制,我们首先看到一个 ’$’,然后是 ’0x’,最后才是常量。 - -4. 操作数大小 - - 在 AT&T 语法中,存储器操作数的大小取决于操作码名字的最后一个字符。操作码后缀 ’b’ 、’w’、’l’分别指明了字节(byte)(8位)、字(word)(16位)、长型(long)(32位)存储器引用。Intel 语法通过给存储器操作数添加’byte ptr’、 ’word ptr’ 和 ’dword ptr’前缀来实现这一功能。 - - 因此,Intel的 "mov al, byte ptr foo" 在 AT&T 语法中为 "movb foo, %al"。 - -5. 存储器操作数 - - 在 Intel 语法中,基址寄存器包含在 ’[’ 和 ’]’ 中,然而在 AT&T 中,它们变为 ’(’ 和 ’)’。另外,在 Intel 语法中, 间接内存引用为 - - section:[base + index*scale + disp], 在 AT&T中变为 - - section:disp(base, index, scale)。 - - 需要牢记的一点是,当一个常量用于 disp 或 scale,不能添加’$’前缀。 - -现在我们看到了 Intel 语法和 AT&T 语法之间的一些主要差别。我仅仅写了它们差别的一部分而已。关于更完整的信息,请参考 GNU 汇编文档。现在为了更好地理解,我们可以看一些示例。 - -> ` -> ->
+------------------------------+------------------------------------+
-> |       Intel Code             |      AT&T Code                     |
-> +------------------------------+------------------------------------+
-> | mov     eax,1                |  movl    $1,%eax                   |   
-> | mov     ebx,0ffh             |  movl    $0xff,%ebx                |   
-> | int     80h                  |  int     $0x80                     |   
-> | mov     ebx, eax             |  movl    %eax, %ebx                |
-> | mov     eax,[ecx]            |  movl    (%ecx),%eax               |
-> | mov     eax,[ebx+3]          |  movl    3(%ebx),%eax              | 
-> | mov     eax,[ebx+20h]        |  movl    0x20(%ebx),%eax           |
-> | add     eax,[ebx+ecx*2h]     |  addl    (%ebx,%ecx,0x2),%eax      |
-> | lea     eax,[ebx+ecx]        |  leal    (%ebx,%ecx),%eax          |
-> | sub     eax,[ebx+ecx*4h-20h] |  subl    -0x20(%ebx,%ecx,0x4),%eax |
-> +------------------------------+------------------------------------+
-> 
-> -> ` - -* * * - -## 4. 基本内联 - -基本内联汇编的格式非常直接了当。它的基本格式为 - -`asm("汇编代码");` - -示例 - -> ` -> -> * * * -> ->
asm("movl %ecx %eax"); /* 将 ecx 寄存器的内容移至 eax  */
-> __asm__("movb %bh (%eax)"); /* 将 bh 的一个字节数据 移至 eax 寄存器指向的内存 */
-> 
-> -> * * * -> -> ` - -你可能注意到了这里我使用了 `asm ` 和 `__asm__`。这两者都是有效的。如果关键词 `asm` 和我们程序的一些标识符冲突了,我们可以使用 `__asm__`。如果我们的指令多余一条,我们可以写成一行,并用括号括起,也可以为每条指令添加 ’\n’ 和 ’\t’ 后缀。这是因为gcc将每一条当作字符串发送给 **as**(GAS)( GAS 即 GNU 汇编器 ——译者注),并且通过使用换行符/制表符发送正确地格式化行给汇编器。 - -示例 - -> ` -> -> * * * -> ->
 __asm__ ("movl %eax, %ebx\n\t"
->           "movl $56, %esi\n\t"
->           "movl %ecx, $label(%edx,%ebx,$4)\n\t"
->           "movb %ah, (%ebx)");
-> 
-> -> * * * -> -> ` - -如果在代码中,我们涉及到一些寄存器(即改变其内容),但在没有固定这些变化的情况下从汇编中返回,这将会导致一些不好的事情。这是因为 GCC 并不知道寄存器内容的变化,这会导致问题,特别是当编译器做了某些优化。在没有告知 GCC 的情况下,它将会假设一些寄存器存储了我们可能已经改变的变量的值,它会像什么事都没发生一样继续运行(什么事都没发生一样是指GCC不会假设寄存器装入的值是有效的,当退出改变了寄存器值的内联汇编后,寄存器的值不会保存到相应的变量或内存空间 ——译者注)。我们所可以做的是使用这些没有副作用的指令,或者当我们退出时固定这些寄存器,或者等待程序崩溃。这是为什么我们需要一些扩展功能。扩展汇编正好给我们提供了那样的功能。 - -* * * - -## 5. 扩展汇编 - -在基本内联汇编中,我们只有指令。然而在扩展汇编中,我们可以同时指定操作数。它允许我们指定输入寄存器、输出寄存器以及修饰寄存器列表。GCC 不强制用户必须指定使用的寄存器。我们可以把头疼的事留给 GCC ,这可能可以更好地适应 GCC 的优化。不管怎樣,基本格式为: - -> ` -> -> * * * -> ->
       asm ( 汇编程序模板 
->            : 输出操作数					/* 可选的 */
->            : 输入操作数                   /* 可选的 */
->            : 修饰寄存器列表			    /* 可选的 */
->            );
-> 
-> -> * * * -> -> ` - -汇编程序模板由汇编指令组成.每一个操作数由一个操作数约束字符串所描述,其后紧接一个括弧括起的 C 表达式。冒号用于将汇编程序模板和第一个输出操作数分开,另一个(冒号)用于将最后一个输出操作数和第一个输入操作数分开,如果存在的话。逗号用于分离每一个组内的操作数。总操作数的数目限制在10个,或者机器描述中的任何指令格式中的最大操作数数目,以较大者为准。 - -如果没有输出操作数但存在输入操作数,你必须将两个连续的冒号放置于输出操作数原本会放置的地方周围。 - -示例: - -> ` -> -> * * * -> ->
        asm ("cld\n\t"
->              "rep\n\t"
->              "stosl"
->              : /* 无输出寄存器 */
->              : "c" (count), "a" (fill_value), "D" (dest)
->              : "%ecx", "%edi" 
->              );
-> 
-> -> * * * -> -> ` - -现在,这段代码是干什么的?以上的内联汇编是将 `fill_value` 值 连续 `count` 次 拷贝到 寄存器 `edi` 所指位置(每执行stosl一次,寄存器 edi 的值会递增或递减,这取决于是否设置了 direction 标志,因此以上代码实则初始化一个内存块 ——译者注)。 它也告诉 gcc 寄存器 `ecx` 和 `edi` 一直无效(原文为 eax ,但代码修饰寄存器列表中为 ecx,因此这可能为作者的纰漏 ——译者注)。为了使扩展汇编更加清晰,让我们再看一个示例。 - -> ` -> -> * * * -> ->
        
->         int a=10, b;
->         asm ("movl %1, %%eax; 
->               movl %%eax, %0;"
->              :"=r"(b)        /* 输出 */
->              :"r"(a)         /* 输入 */
->              :"%eax"         /* 修饰寄存器 */
->              );       
-> 
-> -> * * * -> -> ` - -这里我们所做的是使用汇编指令使 ’b’ 变量的值等于 ’a’ 变量的值。一些有意思的地方是: - -* "b" 为输出操作数,用 %0 引用,并且 "a" 为输入操作数,用 %1 引用。 -* "r" 为操作数约束。之后我们会更详细地了解约束(字符串)。目前,"r" 告诉 GCC 可以使用任一寄存器存储操作数。输出操作数约束应该有一个约束修饰符 "=" 。这修饰符表明它是一个只读的输出操作数。 -* 寄存器名字以两个%为前缀。这有利于 GCC 区分操作数和寄存器。操作数以一个 % 为前缀。 -* 第三个冒号之后的修饰寄存器 %eax 告诉 GCC %eax的值将会在 "asm" 内部被修改,所以 GCC 将不会使用此寄存器存储任何其他值。 - -当 "asm" 执行完毕, "b" 变量会映射到更新的值,因为它被指定为输出操作数。换句话说, "asm" 内 "b" 变量的修改 应该会被映射到 "asm" 外部。 - -现在,我们可以更详细地看看每一个域。 - -## 5.1 汇编程序模板 - -汇编程序模板包含了被插入到 C 程序的汇编指令集。其格式为:每条指令用双引号圈起,或者整个指令组用双引号圈起。同时每条指令应以分界符结尾。有效的分界符有换行符(\n)和逗号(;)。’\n’ 可以紧随一个制表符(\t)。我们应该都明白使用换行符或制表符的原因了吧?和 C 表达式对应的操作数使用 %0、%1 ... 等等表示。 - -## 5.2 操作数 - -C 表达式用作 "asm" 内的汇编指令操作数。作为第一双引号内的操作数约束,写下每一操作数。对于输出操作数,在引号内还有一个约束修饰符,其后紧随一个用于表示操作数的 C 表达式。即, - -"约束字符串"(C 表达式),它是一个通用格式。对于输出操作数,还有一个额外的修饰符。约束字符串主要用于决定操作数的寻找方式,同时也用于指定使用的寄存器。 - -如果我们使用的操作数多于一个,那么每一个操作数用逗号隔开。 - -在汇编程序模板,每个操作数用数字引用。编号方式如下。如果总共有 n 个操作数(包括输入和输出操作数),那么第一个输出操作数编号为 0 ,逐项递增,并且最后一个输入操作数编号为 n - 1 。操作数的最大数目为前一节我们所看到的那样。 - -输出操作数表达式必须为左值。输入操作数的要求不像这样严格。它们可以为表达式。扩展汇编特性常常用于编译器自己不知道其存在的机器指令 ;-)。如果输出表达式无法直接寻址(例如,它是一个位域),我们的约束字符串必须给定一个寄存器。在这种情况下,GCC 将会使用该寄存器作为汇编的输出,然后存储该寄存器的内容到输出。 - -正如前面所陈述的一样,普通的输出操作数必须为只写的; GCC 将会假设指令前的操作数值是死的,并且不需要被(提前)生成。扩展汇编也支持输入-输出或者读-写操作数。 - -所以现在我们来关注一些示例。我们想要求一个数的5次方结果。为了计算该值,我们使用 `lea` 指令。 - -> ` -> -> * * * -> ->
        asm ("leal (%1,%1,4), %0"
->              : "=r" (five_times_x)
->              : "r" (x) 
->              );
-> 
-> -> * * * -> -> ` - -这里我们的输入为x。我们不指定使用的寄存器。 GCC 将会选择一些输入寄存器,一个输出寄存器,并且做我们期望的事。如果我们想要输入和输出存在于同一个寄存器里,我们可以要求 GCC 这样做。这里我们使用那些读-写操作数类型。这里我们通过指定合适的约束来实现它。 - -> ` -> -> * * * -> ->
        asm ("leal (%0,%0,4), %0"
->              : "=r" (five_times_x)
->              : "0" (x) 
->              );
-> 
-> -> * * * -> -> ` - -现在输出和输出操作数位于同一个寄存器。但是我们无法得知是哪一个寄存器。现在假如我们也想要指定操作数所在的寄存器,这里有一种方法。 - -> ` -> -> * * * -> ->
        asm ("leal (%%ecx,%%ecx,4), %%ecx"
->              : "=c" (x)
->              : "c" (x) 
->              );
-> 
-> -> * * * -> -> ` - -在以上三个示例中,我们并没有添加任何寄存器到修饰寄存器里,为什么?在头两个示例, GCC 决定了寄存器并且它知道发生了什么改变。在最后一个示例,我们不必将 'ecx' 添加到修饰寄存器列表(原文修饰寄存器列表拼写有错,这里已修正 ——译者注), gcc 知道它表示x。因此,因为它可以知道 `ecx` 的值,它就不被当作修饰的(寄存器)了。 - -## 5.3 修饰寄存器列表 - -一些指令会破坏一些硬件寄存器。我们不得不在修饰寄存器中列出这些寄存器,即汇编函数内第三个 ’**:**’ 之后的域。这可以通知 gcc 我们将会自己使用和修改这些寄存器。所以 gcc 将不会假设存入这些寄存器的值是有效的。我们不用在这个列表里列出输入输出寄存器。因为 gcc 知道 "asm" 使用了它们(因为它们被显式地指定为约束了)。如果指令隐式或显式地使用了任何其他寄存器,(并且寄存器不能出现在输出或者输出约束列表里),那么不得不在修饰寄存器列表中指定这些寄存器。 - -如果我们的指令可以修改状态寄存器,我们必须将 "cc" 添加进修饰寄存器列表。 - -如果我们的指令以不可预测的方式修改了内存,那么需要将 "memory" 添加进修饰寄存器列表。这可以使 GCC 不会在汇编指令间保持缓存于寄存器的内存值。如果被影响的内存不在汇编的输入或输出列表中,我们也必须添加 **volatile** 关键词。 - -我们可以按我们的需求多次读写修饰寄存器。考虑一个模板内的多指令示例;它假设子例程 _foo 接受寄存器 `eax` 和 `ecx` 里的参数。 - -> ` -> -> * * * -> ->
        asm ("movl %0,%%eax;
->               movl %1,%%ecx;
->               call _foo"
->              : /* no outputs */
->              : "g" (from), "g" (to)
->              : "eax", "ecx"
->              );
-> 
-> -> * * * -> -> ` - -## 5.4 Volatile ...? - -如果你熟悉内核源码或者其他像内核源码一样漂亮的代码,你一定见过许多声明为 `volatile` 或者 `__volatile__`的函数,其跟着一个 `asm` 或者 `__asm__`。我之前提过关键词 `asm` 和 `__asm__`。那么什么是 `volatile`呢? - -如果我们的汇编语句必须在我们放置它的地方执行(即,不能作为一种优化被移出循环语句),将关键词 `volatile` 放置在 asm 后面,()的前面。因为为了防止它被移动、删除或者其他操作,我们将其声明为 - -`asm volatile ( ... : ... : ... : ...);` - -当我们必须非常谨慎时,请使用 `__volatile__`。 - -如果我们的汇编只是用于一些计算并且没有任何副作用,不使用 `volatile` 关键词会更好。不使用 `volatile` 可以帮助 gcc 优化代码并使代码更漂亮。 - - -在 `Some Useful Recipes` 一节中,我提供了多个内联汇编函数的例子。这儿我们详细查看修饰寄存器列表。 - -* * * - -## 6. 更多关于约束 - -到这个时候,你可能已经了解到约束和内联汇编有很大的关联。但我们很少说到约束。约束用于表明一个操作数是否可以位于寄存器和位于哪个寄存器;是否操作数可以为一个内存引用和哪种地址;是否操作数可以为一个立即数和为哪一个可能的值(即值的范围)。它可以有...等等。 - -## 6.1 常用约束 - -在许多约束中,只有小部分是常用的。我们将看看这些约束。 - -1. **寄存器操作数约束(r)** - - 当使用这种约束指定操作数时,它们存储在通用寄存器(GPR)中。请看下面示例: - - `asm ("movl %%eax, %0\n" :"=r"(myval));` - - 这里,变量 myval 保存在寄存器中,寄存器 eax 的值被复制到该寄存器中,并且myval的值从寄存器更新到了内存。当指定 "r" 约束时, gcc 可以将变量保存在任何可用的 GPR 中。为了指定寄存器,你必须使用特定寄存器约束直接地指定寄存器的名字。它们为: - - > ` - > - >
+---+--------------------+
-    > | r |    Register(s)     |
-    > +---+--------------------+
-    > | a |   %eax, %ax, %al   |
-    > | b |   %ebx, %bx, %bl   |
-    > | c |   %ecx, %cx, %cl   |
-    > | d |   %edx, %dx, %dl   |
-    > | S |   %esi, %si        |
-    > | D |   %edi, %di        |
-    > +---+--------------------+
-    > 
- > - > ` - -2. **内存操作数约束(m)** - - 当操作数位于内存时,任何对它们的操作将直接发生在内存位置,这与寄存器约束相反,后者首先将值存储在要修改的寄存器中,然后将它写回到内存位置。但寄存器约束通常用于一个指令必须使用它们或者它们可以大大提高进程速度的地方。当需要在 "asm" 内更新一个 C 变量,而又不想使用寄存器去保存它的只,使用内存最为有效。例如, idtr 的值存储于内存位置: - - `asm("sidt %0\n" : :"m"(loc));` - -3. **匹配(数字)约束** - - 在某些情况下,一个变量可能既充当输入操作数,也充当输出操作数。可以通过使用匹配约束在 "asm" 中指定这种情况。 - - `asm ("incl %0" :"=a"(var):"0"(var));` - - 在操作数子节中,我们也看到了一些类似的示例。在这个匹配约束的示例中,寄存器 "%eax" 既用作输入变量,也用作输出变量。 var 输入被读进 %eax ,并且更新的 %eax 再次被存储进 var。这里的 "0" 用于指定与第0个输出变量相同的约束。也就是,它指定 var 输出实例应只被存储在 "%eax" 中。该约束可用于: - - * 在输入从变量读取或变量修改后,修改被写回同一变量的情况 - * 在不需要将输入操作数实例和输出操作数实例分开的情况 - - 使用匹配约束最重要的意义在于它们可以导致有效地使用可用寄存器。 - -其他一些约束: - -1. "m" : 允许一个内存操作数使用机器普遍支持的任一种地址。 -2. "o" : 允许一个内存操作数,但只有当地址是可偏移的。即,该地址加上一个小的偏移量可以得到一个地址。 -3. "V" : A memory operand that is not offsettable. In other words, anything that would fit the `m’ constraint but not the `o’constraint. -4. "i" : 允许一个(带有常量)的立即整形操作数。这包括其值仅在汇编时期知道的符号常量。 -5. "n" : 允许一个带有已知数字的立即整形操作数。许多系统不支持汇编时期的常量,因为操作数少于一个字宽。对于此种操作数,约束应该使用 'n' 而不是'i'。 -6. "g" : 允许任一寄存器、内存或者立即整形操作数,不包括通用寄存器之外的寄存器。 - - -以下约束为x86特有。 - -1. "r" : 寄存器操作数约束,查看上面给定的表格。 -2. "q" : 寄存器 a、b、c 或者 d。 -3. "I" : 范围从 0 到 31 的常量(对于 32 位移位)。 -4. "J" : 范围从 0 到 63 的常量(对于 64 位移位)。 -5. "K" : 0xff。 -6. "L" : 0xffff。 -7. "M" : 0, 1, 2, or 3 (lea 指令的移位)。 -8. "N" : 范围从 0 到 255 的常量(对于 out 指令)。 -9. "f" : 浮点寄存器 -10. "t" : 第一个(栈顶)浮点寄存器 -11. "u" : 第二个浮点寄存器 -12. "A" : 指定 `a` 或 `d` 寄存器。这主要用于想要返回 64 位整形数,使用 `d` 寄存器保存最高有效位和 `a` 寄存器保存最低有效位。 - -## 6.2 约束修饰符 - -当使用约束时,对于更精确的控制超越了约束作用的需求,GCC 给我们提供了约束修饰符。最常用的约束修饰符为: - -1. "=" : 意味着对于这条指令,操作数为只写的;旧值会被忽略并被输出数据所替换。 -2. "&" : 意味着这个操作数为一个早期的改动操作数,其在该指令完成前通过使用输入操作数被修改了。因此,这个操作数不可以位于一个被用作输出操作数或任何内存地址部分的寄存器。如果在旧值被写入之前它仅用作输入而已,一个输入操作数可以为一个早期改动操作数。 - - 约束的列表和解释是决不完整的。示例可以给我们一个关于内联汇编的用途和用法的更好的理解。在下一节,我们会看到一些示例,在那里我们会发现更多关于修饰寄存器列表的东西。 - -* * * - -## 7. Some Useful Recipes. - -Now we have covered the basic theory about GCC inline assembly, now we shall concentrate on some simple examples. It is always handy to write inline asm functions as MACRO’s. We can see many asm functions in the kernel code. (/usr/src/linux/include/asm/*.h). - -1. First we start with a simple example. We’ll write a program to add two numbers. - - > ` - > - > * * * - > - >
int main(void)
-    > {
-    >         int foo = 10, bar = 15;
-    >         __asm__ __volatile__("addl  %%ebx,%%eax"
-    >                              :"=a"(foo)
-    >                              :"a"(foo), "b"(bar)
-    >                              );
-    >         printf("foo+bar=%d\n", foo);
-    >         return 0;
-    > }
-    > 
- > - > * * * - > - > ` - - Here we insist GCC to store foo in %eax, bar in %ebx and we also want the result in %eax. The ’=’ sign shows that it is an output register. Now we can add an integer to a variable in some other way. - - > ` - > - > * * * - > - >
 __asm__ __volatile__(
-    >                       "   lock       ;\n"
-    >                       "   addl %1,%0 ;\n"
-    >                       : "=m"  (my_var)
-    >                       : "ir"  (my_int), "m" (my_var)
-    >                       :                                 /* no clobber-list */
-    >                       );
-    > 
- > - > * * * - > - > ` - - This is an atomic addition. We can remove the instruction ’lock’ to remove the atomicity. In the output field, "=m" says that my_var is an output and it is in memory. Similarly, "ir" says that, my_int is an integer and should reside in some register (recall the table we saw above). No registers are in the clobber list. - -2. Now we’ll perform some action on some registers/variables and compare the value. - - > ` - > - > * * * - > - >
 __asm__ __volatile__(  "decl %0; sete %1"
-    >                       : "=m" (my_var), "=q" (cond)
-    >                       : "m" (my_var) 
-    >                       : "memory"
-    >                       );
-    > 
- > - > * * * - > - > ` - - Here, the value of my_var is decremented by one and if the resulting value is `0` then, the variable cond is set. We can add atomicity by adding an instruction "lock;\n\t" as the first instruction in assembler template. - - In a similar way we can use "incl %0" instead of "decl %0", so as to increment my_var. - - Points to note here are that (i) my_var is a variable residing in memory. (ii) cond is in any of the registers eax, ebx, ecx and edx. The constraint "=q" guarantees it. (iii) And we can see that memory is there in the clobber list. ie, the code is changing the contents of memory. - -3. How to set/clear a bit in a register? As next recipe, we are going to see it. - - > ` - > - > * * * - > - >
__asm__ __volatile__(   "btsl %1,%0"
-    >                       : "=m" (ADDR)
-    >                       : "Ir" (pos)
-    >                       : "cc"
-    >                       );
-    > 
- > - > * * * - > - > ` - - Here, the bit at the position ’pos’ of variable at ADDR ( a memory variable ) is set to `1` We can use ’btrl’ for ’btsl’ to clear the bit. The constraint "Ir" of pos says that, pos is in a register, and it’s value ranges from 0-31 (x86 dependant constraint). ie, we can set/clear any bit from 0th to 31st of the variable at ADDR. As the condition codes will be changed, we are adding "cc" to clobberlist. - -4. Now we look at some more complicated but useful function. String copy. - - > ` - > - > * * * - > - >
static inline char * strcpy(char * dest,const char *src)
-    > {
-    > int d0, d1, d2;
-    > __asm__ __volatile__(  "1:\tlodsb\n\t"
-    >                        "stosb\n\t"
-    >                        "testb %%al,%%al\n\t"
-    >                        "jne 1b"
-    >                      : "=&S" (d0), "=&D" (d1), "=&a" (d2)
-    >                      : "0" (src),"1" (dest) 
-    >                      : "memory");
-    > return dest;
-    > }
-    > 
- > - > * * * - > - > ` - - The source address is stored in esi, destination in edi, and then starts the copy, when we reach at **0**, copying is complete. Constraints "&S", "&D", "&a" say that the registers esi, edi and eax are early clobber registers, ie, their contents will change before the completion of the function. Here also it’s clear that why memory is in clobberlist. - - We can see a similar function which moves a block of double words. Notice that the function is declared as a macro. - - > ` - > - > * * * - > - >
#define mov_blk(src, dest, numwords) \
-    > __asm__ __volatile__ (                                          \
-    >                        "cld\n\t"                                \
-    >                        "rep\n\t"                                \
-    >                        "movsl"                                  \
-    >                        :                                        \
-    >                        : "S" (src), "D" (dest), "c" (numwords)  \
-    >                        : "%ecx", "%esi", "%edi"                 \
-    >                        )
-    > 
- > - > * * * - > - > ` - - Here we have no outputs, so the changes that happen to the contents of the registers ecx, esi and edi are side effects of the block movement. So we have to add them to the clobber list. - -5. In Linux, system calls are implemented using GCC inline assembly. Let us look how a system call is implemented. All the system calls are written as macros (linux/unistd.h). For example, a system call with three arguments is defined as a macro as shown below. - - > ` - > - > * * * - > - > type name(type1 arg1,type2 arg2,type3 arg3) \ - > { \ - > long __res; \ - > __asm__ volatile ( "int $0x80" \ - > : "=a" (__res) \ - > : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ - > "d" ((long)(arg3))); \ - > __syscall_return(type,__res); \ - > } - >
- > - > * * * - > - > ` - - Whenever a system call with three arguments is made, the macro shown above is used to make the call. The syscall number is placed in eax, then each parameters in ebx, ecx, edx. And finally "int 0x80" is the instruction which makes the system call work. The return value can be collected from eax. - - Every system calls are implemented in a similar way. Exit is a single parameter syscall and let’s see how it’s code will look like. It is as shown below. - - > ` - > - > * * * - > - >
{
-    >         asm("movl $1,%%eax;         /* SYS_exit is 1 */
-    >              xorl %%ebx,%%ebx;      /* Argument is in ebx, it is 0 */
-    >              int  $0x80"            /* Enter kernel mode */
-    >              );
-    > }
-    > 
- > - > * * * - > - > ` - - The number of exit is "1" and here, it’s parameter is 0\. So we arrange eax to contain 1 and ebx to contain 0 and by `int $0x80`, the `exit(0)` is executed. This is how exit works. - -* * * - -## 8. Concluding Remarks. - -This document has gone through the basics of GCC Inline Assembly. Once you have understood the basic concept it is not difficult to take steps by your own. We saw some examples which are helpful in understanding the frequently used features of GCC Inline Assembly. - -GCC Inlining is a vast subject and this article is by no means complete. More details about the syntax’s we discussed about is available in the official documentation for GNU Assembler. Similarly, for a complete list of the constraints refer to the official documentation of GCC. - -And of-course, the Linux kernel use GCC Inline in a large scale. So we can find many examples of various kinds in the kernel sources. They can help us a lot. - -If you have found any glaring typos, or outdated info in this document, please let us know. - -* * * - -## 9. References. - -1. [Brennan’s Guide to Inline Assembly](http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html) -2. [Using Assembly Language in Linux](http://linuxassembly.org/articles/linasm.html) -3. [Using as, The GNU Assembler](http://www.gnu.org/manual/gas-2.9.1/html_mono/as.html) -4. [Using and Porting the GNU Compiler Collection (GCC)](http://gcc.gnu.org/onlinedocs/gcc_toc.html) -5. [Linux Kernel Source](http://ftp.kernel.org/) - -* * * -via: http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html - - 作者:[Sandeep.S](mailto:busybox@sancharnet.in) 译者:[](https://github.com/) 校对:[]() - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md index 19aab96541..1648ac6263 100644 --- a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md +++ b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md @@ -1,3 +1,4 @@ +[Translating by cposture] How to Best Manage Encryption Keys on Linux ============================================= diff --git a/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md b/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md deleted file mode 100644 index 8e178b856e..0000000000 --- a/sources/tech/20160220 Best Cloud Services For Linux To Replace Copy.md +++ /dev/null @@ -1,136 +0,0 @@ -[Translating by cposture 2016-03-12] -Best Cloud Services For Linux To Replace Copy -=============================================== - -![](http://itsfoss.com/wp-content/uploads/2016/02/Linux-cloud-services.jpg) - -Cloud storage service Copy is shutting down and it is time for us Linux users to look for a worthy **cloud storage alternative to Copy for Linux**. - -All files will be deleted on May 1st, 2016. If you are a Copy user, you should save your files and move it to other - -Copy has been my favorite cloud storage for past couple of years. It gave me plenty of free storage and came with native apps for desktop platforms including Linux and mobile platforms as iOS and Android. - -It was a perfect Cloud storage for me where I get plenty of free storage (380 GB) with a seamless experience between desktop and mobile OSes. But this ‘easy free storage’, 15GB for signup and 5Gb for each referral, had me thinking that if Copy doesn’t get business customers, they will be running out of business soon. Such huge free storage only meant that they were not targeting individual customers like Dropbox do. - -My fear came true when I read about the shutting down of Copy.com. In fact, Copy is not alone. Its parent company [Barracuda Networks](https://www.barracuda.com/) is going through a rough patch and has [hired Morgan Stanely to look for suitable buyer](http://www.bloomberg.com/news/articles/2016-02-01/barracuda-networks-said-to-work-with-morgan-stanley-to-seek-sale)(s). - -Whatever be the reason, all we know is that Copy will soon be history and we need to find similarly **good cloud services for Linux**. I am putting emphasis on Linux because other popular cloud storage services like [Microsoft’s OneDrive](https://onedrive.live.com/about/en-us/) and [Google Drive](https://www.google.com/drive/) do not provide native Linux client. This is something expected out of Microsoft but [Google’s apathy towards Linux](http://itsfoss.com/google-hates-desktop-linux/) is shocking. - -## Best Copy alternatives for Linux - -Now, what do you want in a cloud storage services as a Linux storage? Let me guess: - -- Lots of free storage. After all, individuals cannot pay hefty amounts every month. -- Native Linux client. So that you can synchronize files easily with the server without doing special tweaking or running scripts at regular intervals. -- Desktop clients for other desktop OSes i.e. Windows and OS X. Portability is a necessity and syncing files between devices is such a good relief. -- Mobile apps for Android and iOS. In today’s modern world, you need to be connected across all the devices. - -I am not counting the self-hosted cloud services like OwnCloud or [Seafile](https://www.seafile.com/en/home/) because they require set-up and run a server. This is not apt for all home users who want a Copy like cloud service. - -Let’s see what are the services that you could use to replace Copy.com on Linux. - -## Mega - -![](http://itsfoss.com/wp-content/uploads/2016/02/Mega-Linux.jpg) - -If you are a regular It’s FOSS reader, you might have come across my earlier article about [Mega on Linux](http://itsfoss.com/install-mega-cloud-storage-linux/). This cloud service is an offering by the infamous [Kim Dotcom](https://en.wikipedia.org/wiki/Kim_Dotcom) of [Megaupload scandal](https://en.wikipedia.org/wiki/Megaupload). This also makes some users skeptical about it because Kim Dotcom has been a target by US authorities for a long time. - -Mega has everything that you would expect in a hassle free cloud service. It provides 50 GB of free storage to individual users. Provide native clients for Linux and other platforms and also has end to end encryption. The native Linux client works fine and the sync across the device is seamless. You can also view and access your files in a web browser. - -### Pros: - -- 50 GB of free storage -- End to end encryption -- Native clients for Linux and other platforms such as Windows, Mac OS X, Android, iOS - -### Cons: - -- Shady past of the owner - -[Mega](https://mega.nz/) - -## Hubic - -![](http://itsfoss.com/wp-content/uploads/2016/02/hubic.jpeg) - -Hubic is a cloud service from French company [OVH](https://www.ovh.com/fr/). Hubic also offers 25 GB of free cloud storage at sign up. You can further extend it to 50GB (for free users) by referring it to friends. - -Hubic has a Linux client which is in beta (for over two years now). Hubic has an official Linux client but it is limited to command line. I did not go on to test the mobile versions. - -Hubic boasts of some nice features though. Apart from simple to use interface, file sharing etc, it has a Backup feature where you can archive your important files regularly. - -### Pros: - -- 25 GB of free storage, extendable up to 50 GB -- Available on multiple platforms -- Backup feature - -### Cons: - -- Linux client in beta, only available in command line - -[Hubic](https://hubic.com/) - -## pCloud - -![](http://itsfoss.com/wp-content/uploads/2016/02/pCloud-Linux.jpeg) - -pCloud is another European offering but this time across the French border, from Switzerland. Focused on encryption and security, pCloud offers 10 GB of free storage for each signup. You can further increase it up to 20 GB by inviting friends, sharing links on social media etc. - -It has all the standard features of a cloud service such as file sharing and synchronization, selective syncing etc. pCloud also has native clients across platforms, including Linux of course. - -Linux client is easy to use and worked well in my limited testing on Linux Mint 17.3. - -### Pros: - -- 10 GB of free storage, extendable up to 20 GB -- A good working Linux client with GUI - -### Cons: - -- Encryption is a premium feature - -[pCloud](https://www.pcloud.com/) - -## Yandex Disk - -![](http://itsfoss.com/wp-content/uploads/2016/02/Yandex.jpg) - -Russian internet giant Yandex has everything that Google has. A search engine, analytics and webmaster tool, email, web browser and cloud storage service. - -Yandex Disk offers 10 GB of free cloud storage on sign up. It has native clients for multiple platforms, including Linux. However, the official Linux client is only command line. You can get [unofficial GUI client for Yandex disk](https://mintguide.org/tools/265-yd-tools-gui-indicator-for-yandexdisk-free-cloud-storage-in-linux-mint.html) though. File sharing via links is available as along with other standard cloud storage feature. - -### Pros: - -- 10 GB of free storage, extendable up to 20 GB via referrals. - -### Cons: - -- Only command line client available - -[Yandex Disk](https://disk.yandex.com/) - -## Honorable and deliberate omissions - -I have deliberately skipped [Dropbox](https://www.dropbox.com/), [SpiderOak](https://spideroak.com/) from the list. Dropbox is excellent for Linux but the free storage is limited to 2 GB. Over the past several years, I have managed to increase it to over 21 GB, but that’s another story. - -SpiderOak also provides only 2 GB of free storage and you cannot access it in a web browser. - -OwnCloud needs its own server and set-up and thus it is not everyone’s cup of tea. And it certainly doesn’t fit the criteria of a typical cloud service. - -## Verdict - -If you ask me what I am going to use in place of Copy, my answer is Mega. It has plenty of free cloud storage and a great Linux desktop client. What is your choice among this list of **best cloud storage services for Linux**? Which one do you prefer? - - ------------------------------------------------------------------------------- - -via: http://itsfoss.com/cloud-services-linux/ - -作者:[ABHISHEK][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/abhishek/ From a01e028699f47f8592a2a72753ef44c78de4f529 Mon Sep 17 00:00:00 2001 From: cposture Date: Tue, 19 Apr 2016 16:10:38 +0800 Subject: [PATCH 378/582] as --- .../tech/20160218 How to Best Manage Encryption Keys on Linux.md | 1 - 1 file changed, 1 deletion(-) diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md index 1648ac6263..19aab96541 100644 --- a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md +++ b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md @@ -1,4 +1,3 @@ -[Translating by cposture] How to Best Manage Encryption Keys on Linux ============================================= From e0627f1cc11a5217de54b8a42266286d0c073ca9 Mon Sep 17 00:00:00 2001 From: willowyoung <1079902707@qq.com> Date: Tue, 19 Apr 2016 17:06:29 +0800 Subject: [PATCH 379/582] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=B7=B2=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ocessing at NASA with open source tools.md | 82 ------------------- 1 file changed, 82 deletions(-) delete mode 100644 sources/tech/20160304 Image processing at NASA with open source tools.md diff --git a/sources/tech/20160304 Image processing at NASA with open source tools.md b/sources/tech/20160304 Image processing at NASA with open source tools.md deleted file mode 100644 index 4833b7bf93..0000000000 --- a/sources/tech/20160304 Image processing at NASA with open source tools.md +++ /dev/null @@ -1,82 +0,0 @@ -Translating By willowyoung -Image processing at NASA with open source tools -======================================================= - -keyword: NASA , Image Process , Node.js , OpenCV - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/nasa_spitzer_space_pink_spiral.jpg?itok=3XEUstkl) - -This past summer, I was an intern at the [GVIS][1] Lab at [NASA][2] Glenn, where I brought my passion for open source into the lab. My task was to improve our lab's contributions to an open source fluid flow dynamics [simulation][3] developed by Dan Schroeder. The original simulation presents obstacles that users can draw in with their mouse to model computational fluid dynamics. My team contributed by adding image processing code that analyzes each frame of a live video feed to show how a physical object interacts with a fluid. But, there was more for us to do. - -We wanted to make the image processing more robust, so I worked on improving the image processing library. - -With the new library, the simulation would be able to detect contours, perform coordinate transformations in place, and find the center of mass of an object. The image processing doesn't directly relate to the physics of the fluid flow dynamics simulation. It detects the object with a camera and creates a barrier for the fluid flow simulation by getting the outline of the object. Then, the fluid flow simulation runs, and the output is projected down onto the actual object. - -My goal was to improve the simulation in three ways: - -1. to find accurate contours of an object -2. to find the center of mass of an object -3. to be able to perform accurate transformations about the center of an object - -My mentor recommended that I install [Node.js][4], [OpenCV][5], and the [Node.js bindings for OpenCV][6]. While I was waiting for those to install, I looked at the example code on the OpenCV bindings on their [GitHub page][7]. I discovered that the example code was in JavaScript, so because I didn’t know JavaScript, I started a short course from Codecademy. Two days later, I was sick of JavaScript but ready to start my project... which involved yet more JavaScript. - -The example contour-finding code worked well. In fact, it allowed me to accomplish my first goal in a matter of hours! To get the contours of an image, here's what it looked like: - -![](https://opensource.com/sites/default/files/resize/image_processing_nasa_1-520x293.jpg) ->The original image with all of the contours. - -The example contour-finding code worked a bit too well. Instead of the contour of the object being detected, all of the contours in the image were detected. This would have resulted in the simulation interacting with all of the unwanted contours. This is a problem because it would return incorrect data. To keep the simulation from interacting with the unwanted contours, I added an area constraint. If the contour was in a certain area range, then it would be drawn. The area constraint resulted in a much cleaner contour. - -![](https://opensource.com/sites/default/files/resize/image_processing_nasa_2-520x293.jpg) ->The filtered contour with the shadow contour. - -Though the extraneous contours weren't detected, there was still a problem with the image. There was only one contour in the image, but it doubled back on itself and wasn't complete. Area couldn't be a deciding factor here, so it was time to try something else. - -This time around, instead of immediately finding the contours, I first converted the image into a binary image. A binary image is an image where each pixel is either black or white. To get a binary image I first converted the color image to grayscale. Once the image was in grayscale, I called the threshold method on the image. The threshold method went through the image pixel by pixel and if the color value of the pixel was less than 30, the pixel color would be changed to black. Otherwise, the pixel value would be turned to white. After the original image was converted to a binary image, the resulting image looked like this: - -![](https://opensource.com/sites/default/files/resize/image_processing_nasa_3-520x293.jpg) ->The binary image. - -Then I got the contours from the binary image, which resulted in a much cleaner contour, without the shadow contour. - -![](https://opensource.com/sites/default/files/image_processing_nasa_4.jpg) ->The final clean contour. - -At this point, I was able to get clean contours and detect the center of mass. Unfortunately, I didn't have enough time to be able to complete transformations about the center of mass. Since I only had a few days left in my internship, I started to think about other things I could do within a limited time span. One of those things was the bounding rectangle. The bounding rectangle is a quadrilateral with the smallest area that contains the entire contour of an image. The bounding rectangle is important because it is key in scaling the contour on the page. Unfortunately I didn't have time to do much with the bounding rectangle, but I still wanted to learn about it because it's a useful tool. - -Finally, after all of that, I was able to finish processing the image! - -![](https://opensource.com/sites/default/files/resize/image_processing_nasa_5-521x293.jpg) ->The final image with bounding rectangle and center of mass in red. - -Once the image processing code was complete, I replaced the old image processing code in the simulation with my code. To my surprise, it worked! - -Well, mostly. - -The program had a memory leak in it, which leaked 100MB every 1/10 of a second. I was glad that it wasn’t because of my code. The bad thing was that fixing it was out of my control. The good thing was that there was a workaround that I could use. It was less than ideal, but it checked the amount of memory the simulation was using and when it used more than 1 GiB, the simulation restarted. - -At the NASA lab, we use a lot of open source software, and my work there isn't possible without it. - --------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/3/image-processing-nasa - -作者:[Lauren Egts][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://opensource.com/users/laurenegts -[1]: https://ocio.grc.nasa.gov/gvis/ -[2]: http://www.nasa.gov/centers/glenn/home/index.html -[3]: http://physics.weber.edu/schroeder/fluids/ -[4]: http://nodejs.org/ -[5]: http://opencv.org/ -[6]: https://github.com/peterbraden/node-opencv -[7]: https://github.com/peterbraden/node-opencv - - - - - From 5265e6fca4f562a9fdd2740d0bebf672df8d8a6c Mon Sep 17 00:00:00 2001 From: vim-kakali <1799225723@qq.com> Date: Wed, 20 Apr 2016 00:53:04 +0800 Subject: [PATCH 380/582] vim-kakali translating --- sources/talk/20151227 Upheaval in the Debian Live project.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/talk/20151227 Upheaval in the Debian Live project.md b/sources/talk/20151227 Upheaval in the Debian Live project.md index d663d09b17..3fa8179aa3 100644 --- a/sources/talk/20151227 Upheaval in the Debian Live project.md +++ b/sources/talk/20151227 Upheaval in the Debian Live project.md @@ -1,3 +1,5 @@ +vim-kakali is translating. + While the event had a certain amount of drama surrounding it, the [announcement][1] of the end for the [Debian Live project][2] seems likely to have less of an impact than it first appeared. The loss of the lead developer will certainly be felt—and the treatment he and the project received seems rather baffling—but the project looks like it will continue in some form. So Debian will still have tools to create live CDs and other media going forward, but what appears to be a long-simmering dispute between project founder and leader Daniel Baumann and the Debian CD and installer teams has been "resolved", albeit in an unfortunate fashion. The November 9 announcement from Baumann was titled "An abrupt End to Debian Live". In that message, he pointed to a number of different events over the nearly ten years since the [project was founded][3] that indicated to him that his efforts on Debian Live were not being valued, at least by some. The final straw, it seems, was an "intent to package" (ITP) bug [filed][4] by Iain R. Learmonth that impinged on the namespace used by Debian Live. From 0ff459f46f10652a78884c74b4a44ee9ed516d5a Mon Sep 17 00:00:00 2001 From: pengkai Date: Wed, 20 Apr 2016 22:30:55 +0800 Subject: [PATCH 381/582] translated --- ...d open source experience to your resume.md | 92 ------------------- ...d open source experience to your resume.md | 56 +++++++++++ 2 files changed, 56 insertions(+), 92 deletions(-) delete mode 100644 sources/tech/20160225 How to add open source experience to your resume.md create mode 100644 translated/tech/20160225 How to add open source experience to your resume.md diff --git a/sources/tech/20160225 How to add open source experience to your resume.md b/sources/tech/20160225 How to add open source experience to your resume.md deleted file mode 100644 index 8a3a3e09cf..0000000000 --- a/sources/tech/20160225 How to add open source experience to your resume.md +++ /dev/null @@ -1,92 +0,0 @@ -kylepeng93 is translating!!! -How to add open source experience to your resume -================================================== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/lightning-test.png?itok=aMceg0Vg) - - -In this article, I'll share my technique for leveraging open source contributions to stand out as a great candidate for a job in the technology field. - -No goal can be accomplished without first being set. Before jumping into a new commitment or spending the evening overhauling your resume, it pays to clearly define the traits of the job you're seeking. Your resume is a piece of persuasive writing, so you have to know your audience for it to reach its full potential. Your resume's audience is anyone with the need for your skills and the budget to hire you. When editing, read your resume while imagining what it's like to be in their position. Do you look like a candidate that you would hire? - -I personally find it helpful to make a list of the key traits that the ideal candidate for my target job displays. I gather this list from a combination of personal experience, reading job postings, and asking colleagues in similar roles. LinkedIn and conferences are great places to find people happy to offer this sort of advice. Many people enjoy talking about themselves, and inviting them to tell part of their own story to help you expand your knowledge makes everyone feel good. As you talk to others about their career paths, you'll gain insights not only into how to land the jobs you want, but also into which traits or behaviors correspond to ending up in situations you'd rather avoid. - -For example, the list of key traits for a junior role might look like this: - -### Technical: - -- Experience with CI, Jenkins preferred - -- Strong scripting background in Python and Ruby - -- Familiarity with Eclipse IDE - -- Basic Git and Bash - -### Personal: - -- Self-directed learner - -- Clear communication and documentation skills - -- Experience working on a multi-person development team ("team player") - -- Familiarity with issue tracker workflow - -### Apply anyway - -Remember, you don't have to meet every single criterion listed in a job description to get an interview. - -The job description describes whoever left the role, and if you start out knowing everything you've likely signed yourself up for a few years that don't challenge or expand your skill set. If you're nervous about missing a particular technology on the list, do some research into it to see whether comparable skills from another experience would apply. For example, someone who's never used [Jenkins][1] might still understand the principles of continuous integration testing from working on a project that uses [Buildbot][2] or [Travis CI][3]. - -If you're applying at a larger company, they probably have an entire department and comprehensive screening process to make sure they don't hire any candidate unable to succeed in a role. That means it's your job to apply and their job to decide whether to reject you. Don't prematurely reject yourself from the job by refusing to apply. - -Now you have an idea of what job you want and what skills you'll need to impress your interviewers. The next steps to take will vary based on how much experience you've already got. - -### Tailoring existing involvement - -Start by making a list of all the projects you've been involved with in the past few years. One way to get a quick list of things you've worked on lately is to navigate to the **Repositories** tab of your GitHub profile and filter the list by clicking on **Forks**. Additionally, look down your [Organizations][4] list for places you might have been engaging in leadership roles. If you already have a resume, make sure you've included everything from these lists under experience. - -Consider any IRC channel where you have special permissions as a potential leadership experience. Check your Meetup and Eventbrite accounts and add any events that you organize or volunteer at to your list. Skim your calendar for the past year and note any volunteering, mentoring, or public speaking engagements. - -Now for the hard part: Map the list of required skills onto the list of experiences. I like to assign a letter or number to each trait needed for the job, then mark the same symbol next to every piece of experience or involvement where you demonstrated the trait. When in doubt, claim it anyway—your problem is more likely a reluctance to brag than actual incompetence. - -This is the point in the process at which resume writers are often fettered by reluctance to risk overselling their own skills. It often helps to re-frame the question as: "Did someone who organized a meetup show leadership and planning skills?" Rather than: "Did I personally show these skills when I organized that meetup?". - -If you've been sufficiently thorough at figuring out where your free time has gone for the past year or two and you code a lot, you might now be facing a surprising problem: Too many items to fit on a single-page resume! If anything on your list of experiences didn't demonstrate any of the skills you're trying to showcase, cross it off. If an item demonstrates few skills and you don't have any stories that you enjoy telling about it, cross it off. If this abridged list of things you've done still won't fit in the format of a resume, prioritize the experiences from which you gained a relevant story or extensive experience with a desired technology. - -At this point, it should be obvious if you need a better piece of experience to hone a particular skill. Consider using an issue aggregator like OpenHatch to find an open source project where you build and practice your skills with the tool or technology that you're missing. - -### Make your resume beautiful - -A resume's beauty comes from conciseness, clarity, and layout. Each piece of experience should be accompanied by enough information for a reader to immediately know why you included it, but no more. Each type of information should be formatted consistently throughout the document—it's distracting to have some dates italicized or right-aligned and others not. - -Typeset your resume using a tool that makes these goals easy to achieve. I enjoy using [LaTeX][5], since its macro system makes visual consistency easy and most interviewers recognize it immediately. Your tool of choice might be [LibreOffice][6] or HTML, depending on your skills and how you want to distribute your resume. - -Remember that a digitally submitted resume might be scanned for keywords, so it can help to use the same acronyms as the job posting when describing your experiences. To make your resume easy for your interviewer to use, place the most important information first. - -Coders often struggle to quantify balance and layout when typesetting a document. My favorite technique for stepping back and assessing whether my document's whitespace is in the right place is to fullscreen the PDF or print it out, then look at it in a mirror. If you're using LibreOffice Writer, save a copy of your resume then change the font to that of a language you can't read. Both of these techniques forcibly pull you out of reading the content, and allow you to see the overall layout of the document in a new light. They take you from a "That sentence is poorly worded!" critique to noticing things like "It looks funny to have only a single word on that line." - -Finally, double check that your resume displays correctly in the media where it will be seen. If you're distributing it as a web page, test it at different screen widths in multiple browsers. If it's a PDF, open it on your phone or a friend's computer to make sure all the fonts it needs are available. - -### Next steps - -Finally, don't let the content that you worked so hard on for your resume go to waste! Mirror it to your LinkedIn account—complete with the buzzwords from the job posting—and don't be surprised if recruiters start reaching out to you. Even if the jobs they're describing aren't a good fit right now, you can leverage their time and interest to get feedback on what's working well about your resume and what isn't. - --------------------------------------------------------------------------------- - -via: https://opensource.com/business/16/2/add-open-source-to-your-resume - -作者:[edunham][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/edunham -[1]: https://jenkins-ci.org/ -[2]: http://buildbot.net/ -[3]: https://travis-ci.org/ -[4]: https://github.com/settings/organizations -[5]: https://www.latex-project.org/ -[6]: https://www.libreoffice.org/download/libreoffice-fresh/ diff --git a/translated/tech/20160225 How to add open source experience to your resume.md b/translated/tech/20160225 How to add open source experience to your resume.md new file mode 100644 index 0000000000..234038f878 --- /dev/null +++ b/translated/tech/20160225 How to add open source experience to your resume.md @@ -0,0 +1,56 @@ +怎样将开源经历添加到你的简历中去 +================================================== +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/lightning-test.png?itok=aMceg0Vg) +在这篇文章中,我将会分享我的一些方法,目的是让你因为曾经为开源事业作出贡献的经历使得你在技术领域的求职中脱颖而出。 +凡事预则立,不预则废。在你即将进入一个新的领域或者正准备花费整个晚上来彻底完善你的简历之前,先来定义你正在寻找的工作的特征是值得的。你的简历是一张有说服力的作品,因此你必须了解你的观众,从而让它发挥出所有的潜力。看你简历的可能是任何需要你的技能并且恰好能在预算之内聘用你的人。当编辑简历的时候,读一读你的简历上的内容,同时想象一下它们最应该被书写的位置。你看起来像是一个你将会聘用的候选人吗? + +在我看来,我发现对于我所要求的目标职位的所有理想候选人,针对他们每个人的特点列出一张清单有时候是很有帮助的。我将他们每个人的特点清单合并到他们的个人经历中,并阅读工作记录,然后以同样的角色询问同事们。人际关系网和会议是很好的地方去寻求一些乐意提供这种建议的人。一些人喜欢谈论他们自己,并且邀请他们去讲述他们自己的故事的一部分来帮助你去拓展你的知识面,通过这样方式可以使每个人感觉更好。当你和其他人谈论他们的职业路线时,你不仅将会明白怎样去得到你想要从事的工作,而且还能知道你应该避免哪些容易让你失去工作机会的情况和行为。 +例如,对于一个差劲的角色,有关于他的关键特性列表可能看起来像下面这样: +###技术: +- 拥有计算机从业方面的经验,更加容易受到Jenkins的青睐。 +- 深厚的脚本编写背景,如Python和Ruby +- 精通eclipse的使用 +- 基本的git和bash知识 +###个人而言: +- 自我学习者 +- 良好的交流和文档技巧 +- 在团队开发方面富有经验 +- 精通事件捕捉工作流 +###以任意方式应用 +记住,你没有必要为了得到一份工作而去满足上面的工作描述列表中列出的每个标准。工作细节描述了任何人都可以离开这个角色,如果你已经知道你即将签约并为之工作几年的公司的全部信息,并且这份工作并不会让你觉得有什么挑战性,或者要求你去拓展你你的技能。如果你对你无法满足清单上的技能列表而感到紧张,那么检查一下自己是否有来自其他经历并能与之媲美的技能。 +例如,即使有些人从来没有使用过Jenkins,那他也可能从之前使用过Buildbot或者travis CI的项目经验中明白持续集成测试的原则。 +如果你正在申请一家大型公司,而他们可能拥有一个专门的部门和一套完整的筛选过程来确保他们不会聘用任何不能胜任职位的候选人。也就是说,在你求职的过程中,你所能做的只是提交申请,而决定是否拒绝你是公司管理层的工作。不要过早的将工作拒之门外。 +现在你已经知道了你的任务是什么,并且还知道你将需要哪些技能去完成这次面试。下一步要做的取决与你已经获取到的经验。 +### 制造已经存在的事物之间的关联 +列出一张你过去几年曾经参与过的所有项目。下面是一条快速得到这张清单的方式,生成一个跳转到你的github上的库的导航器,但是需要过滤掉你从其他地方复制过来的项目。除此之外,检查下你的清单上是否有曾经处于领导地位的项目。如果你已经有了一份简历,那么请确保你已经将你所有的经历都列在了上面。 +考虑下任何一个你曾经作为一个潜在的领导经历并拥有过特权的IRC项目。检查你的会唔和聚会并将你曾经组织过或者作为志愿者参与过的事情添加到你的清单上面。略过你前几年的日程并且标注所有志愿行动或者有作为导师的经历又或者有接触过的公共演讲. +现在进入了比较艰难的环节了,将清单上列出的必备技能与个人经历列表上的内容一一对照,我喜欢给工作需要的每个特性用一个字母或者数字作为标记,然后在每一段你经历或参与过并表现出了某一特性的地方标记相同的符号。当你产生怀疑的时候,无论如何也要加上它,尽管这样做更像是在吹嘘,但也好过显示出你的无能。 +在我们写简历的时候常常被这样的情况所困扰,就是我们不愿冒着过分吹嘘自己的技能的风险。这通常会帮助我们重新考虑这个问题,比如我们会考虑那些组织了会晤的人会表现出更好的领导才能和计划技巧吗?而不是当我组织这个会晤的时候我是否展示出了这些技巧。 +如果你已经充分了解了你在过去的几年里的业余时间都是怎么度过的或者你写了很多代码,那么你可能现在正面临着一个令人奇怪的问题,你已经拥有了太多的经验以至于一张纸的简历已经无法容纳下这些经验了。那么,如果那些列在你的清单上的经验无法证明你尝试去表现的任何技能的话,那么请扔掉它们吧。如果这份已经被缩短的简历清单上的内容仍然超过一张单页纸的容量的话,那么将你的经验按照一定的优先级排序,例如根据你获得了相关的故事或丰富的经验与所需的技术。 +在这一方面,显而易见,如果你想要磨练一个独特的技能,那么你就需要一个不错的经历。考虑使用一个类似OpenHatch的问题聚合器,并用它来寻找一个通过使用你从没使用过的工具和技术来锻炼你的技能的开源项目。 +让你的简历更加漂亮 +一份简历是否美观取决于它的简洁度,清晰度和布局。每一段经历都应该通过足够的信息来展示给读者并让他们立刻就能明白为什么你要将它包含进去,而且恰到好处。每种类型的信息都应该使用一致的文档格式来表示,一份含有斜体格式或者右对齐格式的或者其他与整体风格不协调的数据绝对会让看的人十分反感。 +使用工具来给你的简历排版会使之前设定的目标更加容易实现。我喜欢使用LaTeX,因为它 +的宏系统能够使可视化一致性变得更加容易,并且大量的面试官都能一眼就认出他。你的工具的选择可能是LibreOffice或者HTML,这取决于你的技能和你希望怎样去发布你的简历。 +记住一点,一份以数字方式提交的简历可以通过关键字被浏览到。因此,当你需要描述你的工作经历的时候使用和工作招聘告示一样的英文缩写对你的求职会有很大的帮助。为了让你的简历更加容易被面试官所使用,首先就要放上最重要的信息。 +程序员通常难以在为文档排版时量化平衡和布局。我最喜欢的技术是回退并评估我的文档的空格是否处于正确的位置,而这样做的目的就是我的PDF可以全屏显示或者打印出来,然后 +在镜像里面查看它。如果你正在使用LibreOffice Writer,保存一份你的简历的副本,然后将你的简历中的字体换成一种你无法阅读的语言。这两种技术都强制将你从阅读的内容中脱离出来,让你以一种新的方式查看文档的整体布局。他们把你从一个”那句话措辞不当!”对注意到的事物的批评,比如“在这条线上只有一个字,看起来很有趣”。 +最后,再次检查你的简历是否在它将要的展示的多媒体上看起来完全正确。如果你以网页的形式发布它,那么在不同屏幕大小的浏览器中测试它的效果。如果它是一份PDF文档,那么在你的手机或者你的朋友的电脑上面打开它,并确保它所需要的字体都是可用的。 +接下来的步骤 +最后,不要让你辛苦做出来的简历被浪费了,利用你的LinkedIn帐号把它做成一个镜像。当招聘人员找到你的时候也不要感到奇怪。尽管他们描述的工作内容并不是恰好适合你,但是你可以利用他们的时间和兴趣来得到关于你的简历中有哪些地方好与不好的反馈信息。 +-------------------------------------------------------------------------------- +via: https://opensource.com/business/16/2/add-open-source-to-your-resume + +作者:[edunham][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/edunham +[1]: https://jenkins-ci.org/ +[2]: http://buildbot.net/ +[3]: https://travis-ci.org/ +[4]: https://github.com/settings/organizations +[5]: https://www.latex-project.org/ +[6]: https://www.libreoffice.org/download/libreoffice-fresh/ From d756dfb5f16c36a9b09c894647e5efae50ebd1f8 Mon Sep 17 00:00:00 2001 From: wxy Date: Thu, 21 Apr 2016 06:27:08 +0800 Subject: [PATCH 382/582] PUB:20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting @runningwater --- ...isk in Linux CentOS 7 Without Rebooting.md | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) rename {translated/tech => published}/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md (77%) diff --git a/translated/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md b/published/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md similarity index 77% rename from translated/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md rename to published/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md index adfb7f556f..cc4d031bc1 100644 --- a/translated/tech/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md +++ b/published/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md @@ -1,11 +1,11 @@ -如何在CentOS 7 中添加新磁盘而不用重启系统 +如何在 CentOS 7 中添加新磁盘而不用重启系统 ================================================================================ -对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一。因此这篇文章会在通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器。关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,所以可按您所需选择最适用的一种。 +对大多数系统管理员来说扩充 Linux 服务器的磁盘空间是日常的工作之一。因此这篇文章会通过使用 Linux 命令,在 CentOS 7 系统上演示一些简单的操作步骤来扩充您的磁盘空间而不需要重启您的生产服务器。关于扩充和增加新的磁盘到 Linux 系统,我们会提及多种方法和多种可行性,可按您所需选择最适用的一种。 -### 1. 为虚拟机客户端扩充磁盘空间: ### +### 1. 在虚拟机客户端扩充磁盘空间: ### -在为 Linux 系统增加磁盘卷之前,您需要添加一块新的物理磁盘或是从正使用的 VMware vShere、工作站或着其它的基础虚拟环境软件中进行设置,从而扩充一块系统正使用的虚拟磁盘空间。 +在为 Linux 系统增加磁盘卷之前,您首先需要添加一块新的物理磁盘,或在 VMware vShere、VMware 工作站以及你使用的其它虚拟环境软件中进行设置来增加一块虚拟磁盘的容量。 ![Increase disk](http://blog.linoxide.com/wp-content/uploads/2016/02/1.png) @@ -22,7 +22,7 @@ ### 3. 扩展空间而无需重启虚拟机 ### -现在运行如下命令就可以来扩展操作系统的物理卷磁盘空间,而且不需要重启虚拟机,系统会重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并添加 SCSI 设备。 +现在运行如下命令,通过重新扫描 SCSI (注:Small Computer System Interface 小型计算机系统接口)总线并添加 SCSI 设备,系统就可以扩展操作系统的物理卷磁盘空间,而且不需要重启虚拟机。 # ls /sys/class/scsi_host/ # echo "- - -" > /sys/class/scsi_host/host0/scan @@ -35,7 +35,7 @@ # echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan -如下图所示,会重新扫描 SCSI 总线,随后我们从虚拟机客户端设置的磁盘大小会正常显示。 +如下图所示,会重新扫描 SCSI 总线,随后我们在虚拟机客户端设置的磁盘大小会正常显示。 ![Rescan disk device](http://blog.linoxide.com/wp-content/uploads/2016/02/3.png) @@ -85,7 +85,7 @@ ### 5. 创建物理卷: ### -根据提示运行 'partprob' 或 'kpartx' 命令以使分区表被真正使用,然后使用如下的命令来创建新的物理卷。 +根据上述提示,运行 'partprob' 或 'kpartx' 命令以使分区表生效,然后使用如下的命令来创建新的物理卷。 # partprobe # pvresize /dev/sda3 @@ -107,7 +107,7 @@ # xfs_growfs /dev/mapper/centos-root -'/' 分区的大小已经成功的增加了,可以使用 'df' 命令来检查您磁盘驱动的大小。如图示。 +'/' 分区的大小已经成功的增加了,可以使用 'df' 命令来检查您磁盘驱动器的大小。如图示。 ![Increase disk space](http://blog.linoxide.com/wp-content/uploads/2016/02/3C.png) @@ -129,7 +129,7 @@ # echo "- - -" > /sys/class/scsi_host/host1/scan # echo "- - -" > /sys/class/scsi_host/host2/scan -列出您的 SCSI 设备的名称 +列出您的 SCSI 设备的名称: # ls /sys/class/scsi_device/ # echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/rescan @@ -139,7 +139,7 @@ ![Scanning new disk](http://blog.linoxide.com/wp-content/uploads/2016/02/3F.png) -一旦新增的磁盘可见就可以运行下面的命令来创建新的物理卷,然后增加到卷组,如下示。 +一旦新增的磁盘可见,就可以运行下面的命令来创建新的物理卷,然后增加到卷组,如下示。 # pvcreate /dev/sdb # vgextend centos /dev/sdb @@ -157,16 +157,15 @@ ### 结论: ### -在 Linux CentOS 7 系统上,使用这篇文章所述的操作步骤来扩充您的任意逻辑卷的磁盘空间,此管理磁盘分区的操作过程是非常简单的。您不需要重启生产线上的服务器,只是简单的重扫描下 SCSI 设备,和扩展您想要的 LVM(逻辑卷管理)。我们希望这文章对您有用。可自由的发表有用的评论和建议。 +在 Linux CentOS 7 系统上管理磁盘分区的操作过程是非常简单的,可以使用这篇文章所述的操作步骤来扩充您的任意逻辑卷的磁盘空间。您不需要重启生产线上的服务器,只是简单的重扫描下 SCSI 设备,和扩展您想要的 LVM(逻辑卷管理)。我们希望这文章对您有用。请随意的发表有用的评论和建议。 -------------------------------------------------------------------------------- via: http://linoxide.com/linux-how-to/add-new-disk-centos-7-without-rebooting/ 作者:[Kashif S][a] -译者:[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中国](https://linux.cn/) 荣誉推出 From afd71510e1f3bca5b8a45cf48d2ec2083d44b268 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 25 Apr 2016 19:21:39 +0800 Subject: [PATCH 383/582] PUB:20160226 How to use Python to hack your Eclipse IDE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Vic020 翻译的有点随意。 --- ... to use Python to hack your Eclipse IDE.md | 209 +++++++++++++++++ ... to use Python to hack your Eclipse IDE.md | 215 ------------------ 2 files changed, 209 insertions(+), 215 deletions(-) create mode 100644 published/20160226 How to use Python to hack your Eclipse IDE.md delete mode 100644 translated/tech/20160226 How to use Python to hack your Eclipse IDE.md diff --git a/published/20160226 How to use Python to hack your Eclipse IDE.md b/published/20160226 How to use Python to hack your Eclipse IDE.md new file mode 100644 index 0000000000..ab2e21d5fa --- /dev/null +++ b/published/20160226 How to use Python to hack your Eclipse IDE.md @@ -0,0 +1,209 @@ +用 Python 打造你的 Eclipse +============================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/lightbulb_computer_person_general_.png?itok=ZY3UuQQa) + +Eclipse 高级脚本环境([EASE][1])项目虽然还在开发中,但是必须要承认它非常强大,它让我们可以快速打造自己的Eclipse 开发环境。 + +依据 Eclipse 强大的框架,可以通过其内建的插件系统全方面的扩展 Eclipse。然而,编写和部署一个新的插件还是十分麻烦,即使你只是需要一个额外的小功能。不过,现在依托于 EASE,你可以不用写任何一行 Java 代码就可以方便的做到这点。EASE 是一种使用 Python 或者 Javascript 这样的脚本语言自动实现这些功能的平台。 + +本文中,根据我在今年北美的 EclipseCon 大会上的[演讲][2],我将介绍如何用 Python 和 EASE 设置你的 Eclipse 环境,并告诉如何发挥 Python 的能量让你的 IDE 跑的飞起。 + +### 安装并运行 "Hello World" + +本文中的例子使用 Python 的 Java 实现 Jython。你可以将 EASE 直接安装到你已有的 Eclipse IDE 中。本例中使用[Eclipse Mars][3],并安装 EASE 环境本身以及它的模块和 Jython 引擎。 + +使用 Eclipse 安装对话框(`Help>Install New Software`...),安装 EASE[http://download.eclipse.org/ease/update/nightly][4], + +选择下列组件: + +- EASE Core feature +- EASE core UI feature +- EASE Python Developer Resources +- EASE modules (Incubation) + +这会安装 EASE 及其模块。这里我们要注意一下 Resource 模块,此模块可以访问 Eclipse 工作空间、项目和文件 API。 + +![](https://opensource.com/sites/default/files/1_installease_nightly.png) + +成功安装后,接下来安装 EASE Jython 引擎 [https://dl.bintray.com/pontesegger/ease-jython/][5] 。完成后,测试下。新建一个项目并新建一个 hello.py 文件,输入: + +``` +print "hello world" +``` + +选中这个文件,右击并选择“Run as -> EASE script”。这样就可以在控制台看到“Hello world”的输出。 + +现在就可以编写 Python 脚本来访问工作空间和项目了。这种方法可以用于各种定制,下面只是一些思路。 + +### 提升你的代码质量 + +管理良好的代码质量本身是一件非常烦恼的事情,尤其是当需要处理一个大型代码库或者要许多工程师参与的时候。而这些痛苦可以通过脚本来减轻,比如批量格式化一些文件,或者[去掉文件中的 unix 式的行结束符][6]来使得在 git 之类的源代码控制系统中比较差异更加容易。另外一个更好的用途是使用脚本来生成 Eclipse markers 以高亮你可以改善的代码。这里有一些示例脚本,你可以用来在 java 文件中所有找到的“printStackTrace”方法中加入task markers 。请看[源码][7]。 + +拷贝该文件到工作空间来运行,右击并选择“Run as -> EASE script”。 + +``` +loadModule('/System/Resources') + +from org.eclipse.core.resources import IMarker + +for ifile in findFiles("*.java"): + file_name = str(ifile.getLocation()) + print "Processing " + file_name + with open(file_name) as f: + for line_no, line in enumerate(f, start=1): + if "printStackTrace" in line: + marker = ifile.createMarker(IMarker.TASK) + marker.setAttribute(IMarker.TRANSIENT, True) + marker.setAttribute(IMarker.LINE_NUMBER, line_no) + marker.setAttribute(IMarker.MESSAGE, "Fix in Sprint 2: " + line.strip()) + +``` + +如果你的 java 文件中包含了 printStackTraces,你就可以看见任务视图和编辑器侧边栏上自动新加的标记。 + +![](https://opensource.com/sites/default/files/2_codequality.png) + +### 自动构建繁琐任务 + +当同时工作在多个项目的时候,肯定需要完成许多繁杂、重复的任务。可能你需要在所有源文件头上加入版权信息,或者采用新框架时候自动更新文件。例如,当首次切换到 Tycho 和 Maven 的时候,我们需要 giel每个项目添加 pom.xml 文件。使用几行 Python 代码可以很轻松的完成这个任务。然后当 Tycho 支持无 pom 构建后,我们需要移除不要的 pom 文件。同样,几行代码就可以搞定这个任务,例如,这里有个脚本可以在每一个打开的工作空间项目上加入 README.md。请看源代码 [add_readme.py][8]。 + +拷贝该文件到工作空间来运行,右击并选择“Run as -> EASE script”。 + +``` +loadModule('/System/Resources') + +for iproject in getWorkspace().getProjects(): + if not iproject.isOpen(): + continue + + ifile = iproject.getFile("README.md") + + if not ifile.exists(): + contents = "# " + iproject.getName() + "\n\n" + if iproject.hasNature("org.eclipse.jdt.core.javanature"): + contents += "A Java Project\n" + elif iproject.hasNature("org.python.pydev.pythonNature"): + contents += "A Python Project\n" + writeFile(ifile, contents) +``` + +脚本运行的结果会在每个打开的项目中加入 README.md,java 和 Python 的项目还会自动加上一行描述。 + +![](https://opensource.com/sites/default/files/3_tedioustask.png) + +### 构建新功能 + +你可以使用 Python 脚本来快速构建一些急需的功能,或者做个原型给团队和用户演示你想要的功能。例如,一个 Eclipse 目前不支持的功能是自动保存你正在工作的文件。即使这个功能将会很快提供,但是你现在就可以马上拥有一个能每隔 30 秒或处于后台时自动保存的编辑器。以下是主要方法的片段。请看下列代码:[autosave.py][9]。 + +``` +def save_dirty_editors(): + workbench = getService(org.eclipse.ui.IWorkbench) + for window in workbench.getWorkbenchWindows(): + for page in window.getPages(): + for editor_ref in page.getEditorReferences(): + part = editor_ref.getPart(False) + if part and part.isDirty(): + print "Auto-Saving", part.getTitle() + part.doSave(None) +``` + +在运行脚本之前,你需要勾选 'Allow Scripts to run code in UI thread' 设定,这个设定在 Window > Preferences > Scripting 中。然后添加该脚本到工作空间,右击并选择“Run as > EASE Script”。每次编辑器自动保存时,控制台就会输出一个保存的信息。要关掉自动保存脚本,只需要点击控制台的红色方块的停止按钮即可。 + +![](https://opensource.com/sites/default/files/4_prototype.png) + +### 快速扩展用户界面 + +EASE 最棒的事情是可以将你的脚本与 IDE 界面上元素(比如一个新的按钮或菜单)结合起来。不需要编写 java 代码或者安装新的插件,只需要在你的脚本前面增加几行代码。 + +下面是一个简单的脚本示例,用来创建三个新项目。 + +``` +# name : Create fruit projects +# toolbar : Project Explorer +# description : Create fruit projects + +loadModule("/System/Resources") + +for name in ["banana", "pineapple", "mango"]: + createProject(name) +``` + +上述注释会专门告诉 EASE 增加了一个按钮到 Project Explorer 工具条。下面这个脚本是用来增加一个删除这三个项目的按钮的。请看源码 [createProjects.py][10] 和 [deleteProjects.py][11]。 + +``` +# name :Delete fruit projects +# toolbar : Project Explorer +# description : Get rid of the fruit projects + +loadModule("/System/Resources") + +for name in ["banana", "pineapple", "mango"]: + project = getProject(name) + project.delete(0, None) +``` + +为了使按钮显示出来,增加这两个脚本到一个新的项目,假如叫做 'ScriptsProject'。然后到 Windows > Preference > Scripting > Script Location,点击 'Add Workspace' 按钮并选择 ScriptProject 项目。这个项目现在会成为放置脚本的默认位置。你可以发现 Project Explorer 上出现了这两个按钮,这样你就可以通过这两个新加的按钮快速增加和删除项目。 + +![](https://opensource.com/sites/default/files/5_buttons.png) + +### 整合第三方工具 + +不管怎么说,你可能需要除了 Eclipse 生态系统以外的工具(这是真的,虽然 Eclipse 已经很丰富了,但是不是什么都有)。这些时候你会发现将他们包装在一个脚本来调用会非常方便。这里有一个简单的例子让你整合资源管理器,并将它加入到右键菜单栏,这样点击图标就可以打开资源管理器浏览当前文件。请看源码 [explorer.py][12]。 + +``` +# name : Explore from here +# popup : enableFor(org.eclipse.core.resources.IResource) +# description : Start a file browser using current selection +loadModule("/System/Platform") +loadModule('/System/UI') + +selection = getSelection() +if isinstance(selection, org.eclipse.jface.viewers.IStructuredSelection): + selection = selection.getFirstElement() + +if not isinstance(selection, org.eclipse.core.resources.IResource): + selection = adapt(selection, org.eclipse.core.resources.IResource) + +if isinstance(selection, org.eclipse.core.resources.IFile): + selection = selection.getParent() + +if isinstance(selection, org.eclipse.core.resources.IContainer): + runProcess("explorer.exe", [selection.getLocation().toFile().toString()]) +``` + +为了让这个菜单显示出来,像之前一样将该文件加入一个新项目,比如说 'ScriptProject'。然后到 Windows > Preference > Scripting > Script Locations,点击“Add Workspace”并选择 'ScriptProject' 项目。当你在文件上右击鼠标键,你会看到弹出菜单出现了新的菜单项。点击它就会出现资源管理器。(注意,这个功能已经出现在 Eclipse 中了,但是你可以在这个例子中换成其它第三方工具。) + +![](https://opensource.com/sites/default/files/6_explorer.png) + +Eclipse 高级基本环境 (EASE)提供一套很棒的扩展功能,使得 Eclipse IDE 能使用 Python 来轻松扩展。虽然这个项目还在早期,但是[关于这个项目][13]更多更棒的功能也正在加紧开发中,如果你想为它做出贡献,请到[论坛][14]讨论。 + +我会在 2016 年的 [Eclipsecon North America][15] 会议上发布更多 EASE 细节。我的演讲 [Scripting Eclipse with Python][16] 也会不单会介绍 Jython,也包括 C-Python 和这个功能在科学领域是如何扩展的。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/2/how-use-python-hack-your-ide + +作者:[Tracy Miranda][a] +译者:[VicYu/Vic020](http://vicyu.net) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/tracymiranda +[1]: https://eclipse.org/ease/ +[2]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python +[3]: https://www.eclipse.org/downloads/packages/eclipse-ide-eclipse-committers-451/mars1 +[4]: http://download.eclipse.org/ease/update/nightly +[5]: https://dl.bintray.com/pontesegger/ease-jython/ +[6]: http://code.activestate.com/recipes/66434-change-line-endings/ +[7]: https://gist.github.com/tracymiranda/6556482e278c9afc421d +[8]: https://gist.github.com/tracymiranda/f20f233b40f1f79b1df2 +[9]: https://gist.github.com/tracymiranda/e9588d0976c46a987463 +[10]: https://gist.github.com/tracymiranda/55995daaea9a4db584dc +[11]: https://gist.github.com/tracymiranda/baa218fc2c1a8e898194 +[12]: https://gist.github.com/tracymiranda/8aa3f0fc4bf44f4a5cd3 +[13]: https://eclipse.org/ease/ +[14]: https://dev.eclipse.org/mailman/listinfo/ease-dev +[15]: https://www.eclipsecon.org/na2016 +[16]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python diff --git a/translated/tech/20160226 How to use Python to hack your Eclipse IDE.md b/translated/tech/20160226 How to use Python to hack your Eclipse IDE.md deleted file mode 100644 index 1bf132fe15..0000000000 --- a/translated/tech/20160226 How to use Python to hack your Eclipse IDE.md +++ /dev/null @@ -1,215 +0,0 @@ -用Python打造你的Eclipse -============================================== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/lightbulb_computer_person_general_.png?itok=ZY3UuQQa) - -Eclipse高级脚本环境([EASE][1])项目虽然还在开发中,但是不是不得承认它非常强大,让我们可以快速打造自己的Eclipse开发环境. - -依据Eclipse强大的框架,可以通过其内建的插件系统全方面的扩展Eclipse.然而,编写和部署一个新的插件还是十分笨重,即使只是需要一个额外的小功能。但是,现在依托EASE,可以方便实用Python或者Javascript脚本语言来扩展。 - -本文中,根据我在今年北美的EclipseCon大会上的[演讲][2],我介绍包括安装Eclipse的Python和EASE环境,并包括使用强力Python来增压你的IDE。 - -### 安装并运行 "Hello World" - -本文中的例子使用Java实现的Python解释,Jython。Eclipse可以直接安装EASE环境。本例中使用Eclipse[Mars][3],它已经自带了EASE环境,包和Jython引擎。 - -使用Eclipse安装对话框(`Help>Install New Software`...),安装EASE[http://download.eclipse.org/ease/update/nightly][4] - -选择下列组件: - -- EASE Core feature - -- EASE core UI feature - -- EASE Python Developer Resources - -- EASE modules (Incubation) - -包括了EASE和模组。但是我们比较关心Resource包,此包可以访问Eclipse工作空间,项目和文件API。 - -![](https://opensource.com/sites/default/files/1_installease_nightly.png) - - -成功安装后,接下来安装Jython引擎[https://dl.bintray.com/pontesegger/ease-jython/][5].完成后,测试下。新建一个项目并新建一个hello.py文件,输入: - -``` -print "hello world" -``` - -选中这个文件,右击,选中'Run as -> EASE script'.这样就可以在控制台看到"Hello world"的输出. - -配置完成,现在就可以轻松使用Python来控制工作空间和项目了. - -### 提升你的代码质量 - -管理良好的代码质量本身是一件非常烦恼的事情,尤其是当需要处理一个大量代码库和要许多工程师参与的时候.而这些痛苦可以通过脚本来减轻,比如大量文字排版,或者[去掉文件中的unix行结束符][6]来使更容易比较.其他很棒的事情包括使用脚本让Eclipse markers高亮代码.这里有一些例子,你可以加入到task markers ,用"printStackTrace"方法在java文件中探测.请看[源码][7] - -运行,拷贝文件到工作空间,右击运行. - -``` -loadModule('/System/Resources') -``` - -from org.eclipse.core.resources import IMarker - -``` -for ifile in findFiles("*.java"): - file_name = str(ifile.getLocation()) - print "Processing " + file_name - with open(file_name) as f: - for line_no, line in enumerate(f, start=1): - if "printStackTrace" in line: - marker = ifile.createMarker(IMarker.TASK) - marker.setAttribute(IMarker.TRANSIENT, True) - marker.setAttribute(IMarker.LINE_NUMBER, line_no) - marker.setAttribute(IMarker.MESSAGE, "Fix in Sprint 2: " + line.strip()) - -``` - -如果你的任何java文件中包含了printStackTraces,你就可以看见编辑器的侧边栏上自动加上的标记. - -![](https://opensource.com/sites/default/files/2_codequality.png) - -### 自动构建繁琐任务 - -当同时工作在多个项目的时候,肯定需要需要完成许多繁杂,重复的任务.可能你需要在所有源文件头上加入CopyRight, 或者采用新框架时候自动更新文件.例如,当从Tycho迁移到Maven时候,我们给每一个项目必须添加pom.xml文件.使用Python可以很轻松的完成这个任务.只从Tycho提供无pom构建后,我们也需要移除不要的pom文件.同样,只需要几行代码就可以完成这个任务.例如,这里有个脚本可以在每一个打开的工作空间项目上加入README.md.请看源代码[add_readme.py][8]. - -拷贝文件到工作空间,右击并选择"Run as -> EASE script" - -loadModule('/System/Resources') - -``` -for iproject in getWorkspace().getProjects(): - if not iproject.isOpen(): - continue - - ifile = iproject.getFile("README.md") - - if not ifile.exists(): - contents = "# " + iproject.getName() + "\n\n" - if iproject.hasNature("org.eclipse.jdt.core.javanature"): - contents += "A Java Project\n" - elif iproject.hasNature("org.python.pydev.pythonNature"): - contents += "A Python Project\n" - writeFile(ifile, contents) -``` - -脚本结果会在打开的项目中加入README.md,java和Python项目还会自动加上一行描述. - -![](https://opensource.com/sites/default/files/3_tedioustask.png) - -### 构建新功能 - -Python脚本可以快速构建一些需要的附加功能,或者给团队和用户快速构建demo.例如,一个现在Eclipse目前不支持的功能,自动保存工作的文件.即使这个功能将会很快提供,但是你现在就可以马上拥有一个能30秒自动保存的编辑器.以下是主方法的片段.请看下列代码:[autosave.py][9] - -``` -def save_dirty_editors(): - workbench = getService(org.eclipse.ui.IWorkbench) - for window in workbench.getWorkbenchWindows(): - for page in window.getPages(): - for editor_ref in page.getEditorReferences(): - part = editor_ref.getPart(False) - if part and part.isDirty(): - print "Auto-Saving", part.getTitle() - part.doSave(None) -``` - -在运行脚本之前,你需要勾选'Allow Scripts to run code in UI thread'设定,这个设定在Window > Preferences > Scripting中.然后添加脚本到工作空间,右击和选择"Run as > EASE Script".每10秒自动保存的信息就会在控制台输出.关掉自动保存脚本,只需要在点击控制台的红色方框. - -![](https://opensource.com/sites/default/files/4_prototype.png) - -### 快速扩展用户界面 - -EASE最棒的事情是可以通过脚本与UI元素挂钩,可以调整你的IDE,例如,在菜单中新建一个按钮.不需要编写java代码或者新的插件,只需要增加几行代码. - -下面是一个简单的基脚本示例,用来产生三个新项目. - -``` -# name : Create fruit projects -# toolbar : Project Explorer -# description : Create fruit projects - -loadModule("/System/Resources") - -for name in ["banana", "pineapple", "mango"]: - createProject(name) -``` - -上述特别的EASE增加了一个按钮到项目浏览工具条.下面这个脚本是用来删除这三个项目.请看源码[createProjects.py][10]和[deleteProjects.py][11]. - -``` -# name :Delete fruit projects -# toolbar : Project Explorer -# description : Get rid of the fruit projects - -loadModule("/System/Resources") - -for name in ["banana", "pineapple", "mango"]: - project = getProject(name) - project.delete(0, None) -``` - -为了使脚本启动生效按钮,增加脚本到'ScriptsProject'文件夹.然后选择Windows > Preference > Scripting > Script 中定位到文件夹.点击'Add Workspace'按钮和选择ScriptProject项目.这个项目现在将会在启动时默认加载.你可以发现Project Explorer上出现了这两个按钮,这样你就可以通过这两个按钮快速增加删除项目. - -![](https://opensource.com/sites/default/files/5_buttons.png) - -### 整合三方工具 - -无论何时,你可能需要除了Eclipse生态系统以外的工具.这些时候你会发将他们包装在一个脚本来调用会非常方便.这里有一个简单的例子让你整合explorer.exe,并加入它到右键菜单栏,这样点击图标就可以打开浏览器浏览当前文件.请看源码[explorer.py][12] - -``` -# name : Explore from here -# popup : enableFor(org.eclipse.core.resources.IResource) -# description : Start a file browser using current selection -loadModule("/System/Platform") -loadModule('/System/UI') - -selection = getSelection() -if isinstance(selection, org.eclipse.jface.viewers.IStructuredSelection): - selection = selection.getFirstElement() - -if not isinstance(selection, org.eclipse.core.resources.IResource): - selection = adapt(selection, org.eclipse.core.resources.IResource) - -if isinstance(selection, org.eclipse.core.resources.IFile): - selection = selection.getParent() - -if isinstance(selection, org.eclipse.core.resources.IContainer): - runProcess("explorer.exe", [selection.getLocation().toFile().toString()]) -``` - -为了让菜单显示增加,像之前一样加入'ScriptProject'.在文件上右击,你看弹出菜单是不是出现了图标.选择Explore from here. - -![](https://opensource.com/sites/default/files/6_explorer.png) - -Eclipse高级基本环境提供一套很棒的扩展功能,使得Eclipse IDE能使用Python来轻易扩展.虽然这个项目还在婴儿期,但是[关于这个项目][13]更多更棒的功能也正在加紧开发中,如果你想为这个贡献,请到[论坛][14]讨论. - -2016年[Eclipsecon North America][15]会议将会发布更多EASE细节.我的演讲[Scripting Eclipse with Python][16]也会不单介绍Jython,也包括C-Python和其他功能性扩展的实战例子. - --------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/2/how-use-python-hack-your-ide - -作者:[Tracy Miranda][a] -译者:[VicYu/Vic020](http://vicyu.net) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://opensource.com/users/tracymiranda -[1]: https://eclipse.org/ease/ -[2]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python -[3]: https://www.eclipse.org/downloads/packages/eclipse-ide-eclipse-committers-451/mars1 -[4]: http://download.eclipse.org/ease/update/nightly -[5]: https://dl.bintray.com/pontesegger/ease-jython/ -[6]: http://code.activestate.com/recipes/66434-change-line-endings/ -[7]: https://gist.github.com/tracymiranda/6556482e278c9afc421d -[8]: https://gist.github.com/tracymiranda/f20f233b40f1f79b1df2 -[9]: https://gist.github.com/tracymiranda/e9588d0976c46a987463 -[10]: https://gist.github.com/tracymiranda/55995daaea9a4db584dc -[11]: https://gist.github.com/tracymiranda/baa218fc2c1a8e898194 -[12]: https://gist.github.com/tracymiranda/8aa3f0fc4bf44f4a5cd3 -[13]: https://eclipse.org/ease/ -[14]: https://dev.eclipse.org/mailman/listinfo/ease-dev -[15]: https://www.eclipsecon.org/na2016 -[16]: https://www.eclipsecon.org/na2016/session/scripting-eclipse-python From 4b832efeff0bf90f06a6f625cd7ef4a38769311f Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 25 Apr 2016 23:12:44 +0800 Subject: [PATCH 384/582] Create 20151207 5 great Raspberry Pi projects for the classroom.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 请校对 --- ...Raspberry Pi projects for the classroom.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md diff --git a/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md new file mode 100644 index 0000000000..6c86172f7a --- /dev/null +++ b/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md @@ -0,0 +1,94 @@ +5 个很适合在课堂上演示的树莓派项目 +===================================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png?itok=fSUS0fIt) + +### 1. 我的世界: Pi + +![](https://opensource.com/sites/default/files/lava.png) +>Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1]. + +我的世界是世界上很多青少年最喜欢的一个游戏,而且他也是目前最能激发年轻人创造力的一款游戏。这个树莓派版上自带的我的世界不仅仅是一个具有创造性的建筑游戏,他还是一个具有编程接口、可以通过 Python 与之交互的版本。 + +我的世界:Pi 版对于老师来说是一个非常好的教授学生解决问题和编写代码完成任务的途径。你可以使用 Python API 创建一个房子,并且一直跟随这你的脚步移动,当你需要桥梁的时候给你建造一座桥,让老天呀下雨,显示天空的温度,以及其它你可以想象到的一切东西。 + +详情请见 "[Getting Started with Minecraft Pi][2]." + +### 2. 反应游戏和交通灯 + +![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg) +>源于 [Low Voltage Labs][3]. [CC BY-SA 4.0][1]. + +使用树莓派可以很轻松的进行物理计算——只需要连接几个 LED 和按钮到 开发板上的 GPIO 接口,再用几行代码你就可以按下按钮来开灯。一旦你指导了如何使用代码来做这些基本的东西,接下来就可以根据你的想象来做其它事情了。 + +如果你知道如何让一个灯闪烁,你就可以让三个灯开始闪烁。挑选三个和交通灯一样颜色的 LED 灯,然后编写控制交通灯的代码。如果你知道如何使用按钮触发实践,那么你就可以模拟行人过马路。同时你可以参考其它已经完成的交通灯附件,比如[PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6],等等。 + +代码并不是全部——这些联系只是让你理解真是世界里使如何完成这些事的。计算思维是一个在你一生中都会很有用的技能。 + +![](https://opensource.com/sites/default/files/reaction-game.png) +>源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. + + +接下来试着接通两个按钮和 LED 灯的电源,实现一个反应游戏 —— 让 LED 灯随机的点亮,然后看是最先按下按钮。 + + +要想了解更多可以看看 [GPIO Zero recipes][7]。你所需要的资料都可以在 [CamJam EduKit 1][8] 找到。 + +### 3. 电子宠物 + +Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是你并没有错过亲手把玩这个硬件的机会。Sense HAT 是 Astro Pi 的一个传感器扩展板,现在已经开放购买了。你可以使用它来进行数据搜集,科学实验,游戏和其它很多事。可以看看下面树莓派的 Carrie Anne 拍摄的 Gurl Geek Diaries 的视频,里面演示了一种很棒的入门途径——给生活添加一个你自己创造的生动的像素宠物: + +[video](https://youtu.be/gfRDFvEVz-w) + +>详见 "[探索 Sense HAT][9]." + +### 4. 红外鸟笼 + +![](https://opensource.com/sites/default/files/ir-bird-box.png) +>源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. + +让整个班级都可以参与进来的好主意是在鸟笼立方一个树莓派和夜视镜头,以及一些红外线灯,这样子你就可以在黑暗中看见鸟笼里的情况了,然后使用树莓派通过网络串流视频。然后就可以等待小鸟归笼了,你可以在不干扰小鸟习惯的情况下观察他们了。 + +要了解更多有关红外线和光谱的知识,以及如何调校摄像头和使用软件控制摄像头,可以访问 [Make an infrared bird box][10]。 + + + +### 5. 机器人 + +![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg) +>源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. + +只需要一个树莓派和很少几个电机和电机控制器,你就可以制作一个你自己的机器人。你可以制作的机器人有很多种,从简单的由几个轮子和自制底盘拼凑小车,到由游戏控制器驱动的、具有自我意识、配备了传感器、装配了摄像头的金属种马。 + +要学习如何控制不同的电机,可以使用 RTK 电机驱动开发板入门或者使用配置了电机、轮子和传感器的 CamJam 机器人开发套件——具有很大的价值和大量的学习潜力——深入学习。 + +或者,如果你还想了解更多核心内容,可以试试 PiBorg 的 [4Borg][11] 和 [DiddyBorg][12],或者购买 Metal 版 DoodleBorg ,然后构建一个最小版本的 [DoodleBorg tank][13]。 + +详情可见 [机器人装备表][14]。 + + +------------------------------------------------------------------------------ + +via: https://opensource.com/education/15/12/5-great-raspberry-pi-projects-classroom + +作者:[Ben Nuttall][a] +译者:[ezio](https://github.com/oska874) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/bennuttall +[1]: https://creativecommons.org/licenses/by-sa/4.0/ +[2]: https://opensource.com/life/15/5/getting-started-minecraft-pi +[3]: http://lowvoltagelabs.com/ +[4]: http://lowvoltagelabs.com/products/pi-traffic/ +[5]: http://4tronix.co.uk/store/index.php?rt=product/product&product_id=390 +[6]: https://ryanteck.uk/hats/1-traffichat-0635648607122.html +[7]: http://pythonhosted.org/gpiozero/recipes/ +[8]: http://camjam.me/?page_id=236 +[9]: https://opensource.com/life/15/10/exploring-raspberry-pi-sense-hat +[10]: https://www.raspberrypi.org/learning/infrared-bird-box/ +[11]: https://www.piborg.org/4borg +[12]: https://www.piborg.org/diddyborg +[13]: https://www.piborg.org/doodleborg +[14]: http://camjam.me/?page_id=1035#worksheets From 092ee100c8cc2ec3a51c58cc1a90ebd15884ef48 Mon Sep 17 00:00:00 2001 From: alim0x Date: Tue, 26 Apr 2016 23:42:21 +0800 Subject: [PATCH 385/582] [translating]7 Steps to Start Your Linux SysAdmin Career --- ...0160218 7 Steps to Start Your Linux SysAdmin Career.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md index 60b8f7fc75..df4989eba9 100644 --- a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md +++ b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md @@ -1,9 +1,11 @@ +alim0x translating + 7 Steps to Start Your Linux SysAdmin Career =============================================== Linux is hot right now. Everybody is looking for Linux talent. Recruiters are knocking down the doors of anybody with Linux experience, and there are tens of thousands of jobs waiting to be filled. But what if you want to take advantage of this trend and you’re new to Linux? How do you get started? -1. Install Linux +1. Install Linux It should almost go without saying, but the first key to learning Linux is to install Linux. Both the LFS101x and the LFS201 courses include detailed sections on installing and configuring Linux for the first time. @@ -43,7 +45,7 @@ Linux is hot right now. Everybody is looking for Linux talent. Recruiters are kn - [https://forums.opensuse.org/forum.php](https://forums.opensuse.org/forum.php) - - [http://wiki.centos.org/Documentation](http://wiki.centos.org/Documentation) + - [http://wiki.centos.org/Documentation](http://wiki.centos.org/Documentation) 7. Learn To Love The Documentation @@ -64,5 +66,3 @@ via: http://www.linux.com/news/featured-blogs/191-linux-training/834644-7-steps- 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:linux.com - - From 8bf56f8751173c30d9f3d1a4350513decc93e5fc Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 27 Apr 2016 05:58:00 +0800 Subject: [PATCH 386/582] PUB:20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 通过而不发布(过期) --- ...Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/news => published}/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md (100%) diff --git a/translated/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md b/published/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md similarity index 100% rename from translated/news/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md rename to published/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md From d7d07724a23b265a55219e5f64856d39556a640e Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 27 Apr 2016 05:58:54 +0800 Subject: [PATCH 387/582] =?UTF-8?q?=E6=92=A4=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ith Extensive File Control Capabilities.md | 32 ------------------- 1 file changed, 32 deletions(-) delete mode 100644 sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md diff --git a/sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md b/sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md deleted file mode 100644 index 6249163578..0000000000 --- a/sources/news/20160415 ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities.md +++ /dev/null @@ -1,32 +0,0 @@ -ownCloud 9.0 Enterprise Edition Arrives with Extensive File Control Capabilities -================================================================================== - ->ownCloud, Inc. has had the great pleasure of [announcing][1] the availability of the Enterprise Edition (EE) of its powerful ownCloud 9.0 self-hosting cloud server solution. - -Engineered exclusively for small- and medium-sized business, as well as major organizations and enterprises, [ownCloud 9.0 Enterprise Edition][2] is now available with extensive file control capabilities and all the cool new features that made the open-source version of the project famous amongst Linux users. - -Prominent new features in ownCloud 9.0 Enterprise Edition are built-in Auto-Tagging and File Firewall apps, which have been based on some of the new features of ownCloud 9.0, such as file tags, file comments, as well as notifications and activities enhancements. This offers system administrators the ability to set rules and classifications for shared documents based on user- or system-applied tags. - -"To illustrate how this can work, imagine working in a publicly traded company which has to be very careful not to release financial information ahead of official disclosure," reads the [announcement][3]. "While sharing this information internally it could end up in a folder which is shared through a public link. By assigning a special system tag, admins can configure the system to ensure the files are not available for download despite this mistake." - -### Used by over 8 million people around the globe - -ownCloud 9.0 is the best release of the open-source self-hosting cloud server software so far, which is currently used by over 8 million users around the globe. The release has brought a huge number of new features, such as code signing, as well as dozens of under-the-hood improvements and cosmetic changes. ownCloud 9.0 also got its first point release, version 9.0.1, last week, which [introduced even more enhancements][4]. - -And now, enterprises can take advantage of ownCloud 9.0's new features to differentiate between storage type and location, as well as the location of users, groups, and clients. ownCloud 9.0 Enterprise Edition gives them extensive access control, which is perfect if they have strict company guidelines or work with all sorts of regulations and rules. Below, you can see the File Firewall and Auto-Tagging apps in action. - ------------------------------------------------------------------------------- - -via: http://news.softpedia.com/news/owncloud-9-0-enterprise-edition-arrives-with-extensive-file-control-capabilities-502985.shtml - -作者:[Marius Nestor][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://news.softpedia.com/editors/browse/marius-nestor -[1]: https://owncloud.com/blog-introducing-owncloud-9-enterprise-edition/ -[2]: https://owncloud.com/ -[3]: https://owncloud.org/blog/owncloud-9-0-enterprise-edition-is-now-available/ -[4]: http://news.softpedia.com/news/owncloud-9-0-gets-its-first-point-release-over-120-improvements-introduced-502698.shtml From c582d5ddbe0b2f1bb26e2137659d334149def5a5 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 27 Apr 2016 07:52:54 +0800 Subject: [PATCH 388/582] PUB:20151119 Going Beyond Hello World Containers is Hard Stuff @oska874 --- ...nd Hello World Containers is Hard Stuff.md | 101 +++++++++--------- 1 file changed, 48 insertions(+), 53 deletions(-) rename {translated/tech => published}/20151119 Going Beyond Hello World Containers is Hard Stuff.md (59%) diff --git a/translated/tech/20151119 Going Beyond Hello World Containers is Hard Stuff.md b/published/20151119 Going Beyond Hello World Containers is Hard Stuff.md similarity index 59% rename from translated/tech/20151119 Going Beyond Hello World Containers is Hard Stuff.md rename to published/20151119 Going Beyond Hello World Containers is Hard Stuff.md index c42b278787..f4e7b89720 100644 --- a/translated/tech/20151119 Going Beyond Hello World Containers is Hard Stuff.md +++ b/published/20151119 Going Beyond Hello World Containers is Hard Stuff.md @@ -1,42 +1,41 @@ -要超越Hello World 容器是件困难的事情 +从 Hello World 容器进阶是件困难的事情 ================================================================================ -在[我的上一篇文章里][1], 我介绍了Linux 容器背后的技术的概念。我写了我知道的一切。容器对我来说也是比较新的概念。我写这篇文章的目的就是鼓励我真正的来学习这些东西。 +在[我的上一篇文章里][1], 我介绍了 Linux 容器背后的技术的概念。我写了我知道的一切。容器对我来说也是比较新的概念。我写这篇文章的目的就是鼓励我真正的来学习这些东西。 -我打算在使用中学习。首先实践,然后上手并记录下我是怎么走过来的。我假设这里肯定有很多想"Hello World" 这种类型的知识帮助我快速的掌握基础。然后我能够更进一步,构建一个微服务容器或者其它东西。 +我打算在使用中学习。首先实践,然后上手并记录下我是怎么走过来的。我假设这里肯定有很多像 "Hello World" 这种类型的知识帮助我快速的掌握基础。然后我能够更进一步,构建一个微服务容器或者其它东西。 -我的意思是还会比着更难吗,对吧? +我想,它应该不会有多难的。 -错了。 +但是我错了。 -可能对某些人来说这很简单,因为他们会耗费大量的时间专注在操作工作上。但是对我来说实际上是很困难的,可以从我在Facebook 上的状态展示出来的挫折感就可以看出了。 +可能对某些人来说这很简单,因为他们在运维工作方面付出了大量的时间。但是对我来说实际上是很困难的,可以从我在Facebook 上的状态展示出来的挫折感就可以看出了。 -但是还有一个好消息:我最终让它工作了。而且他工作的还不错。所以我准备分享向你分享我如何制作我的第一个微服务容器。我的痛苦可能会节省你不少时间呢。 +但是还有一个好消息:我最终搞定了。而且它工作的还不错。所以我准备分享向你分享我如何制作我的第一个微服务容器。我的痛苦可能会节省你不少时间呢。 -如果你曾经发现或者从来都没有发现自己处在这种境地:像我这样的人在这里解决一些你不需要解决的问题。 +如果你曾经发现你也处于过这种境地,不要害怕:像我这样的人都能搞定,所以你也肯定行。 让我们开始吧。 - ### 一个缩略图微服务 ### -我设计的微服务在理论上很简单。以JPG 或者PNG 格式在HTTP 终端发布一张数字照片,然后获得一个100像素宽的缩略图。 +我设计的微服务在理论上很简单。以 JPG 或者 PNG 格式在 HTTP 终端发布一张数字照片,然后获得一个100像素宽的缩略图。 -下面是它实际的效果: +下面是它的流程: ![container-diagram-0](https://deis.com/images/blog-images/containers-hard-0.png) -我决定使用NodeJS 作为我的开发语言,使用[ImageMagick][2] 来转换缩略图。 +我决定使用 NodeJS 作为我的开发语言,使用 [ImageMagick][2] 来转换缩略图。 我的服务的第一版的逻辑如下所示: ![container-diagram-1](https://deis.com/images/blog-images/containers-hard-1.png) -我下载了[Docker Toolbox][3],用它安装了Docker 的快速启动终端。Docker 快速启动终端使得创建容器更简单了。终端会启动一个装好了Docker 的Linux 虚拟机,它允许你在一个终端里运行Docker 命令。 +我下载了 [Docker Toolbox][3],用它安装了 Docker 的快速启动终端(Docker Quickstart Terminal)。Docker 快速启动终端使得创建容器更简单了。终端会启动一个装好了 Docker 的 Linux 虚拟机,它允许你在一个终端里运行 Docker 命令。 -虽然在我的例子里,我的操作系统是Mac OS X。但是Windows 下也有相同的工具。 +虽然在我的例子里,我的操作系统是 Mac OS X。但是 Windows 下也有相同的工具。 -我准备使用Docker 快速启动终端里为我的微服务创建一个容器镜像,然后从这个镜像运行容器。 +我准备使用 Docker 快速启动终端里为我的微服务创建一个容器镜像,然后从这个镜像运行容器。 Docker 快速启动终端就运行在你使用的普通终端里,就像这样: @@ -44,11 +43,11 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 ### 第一个小问题和第一个大问题### -所以我用NodeJS 和ImageMagick 瞎搞了一通然后让我的服务在本地运行起来了。 +我用 NodeJS 和 ImageMagick 瞎搞了一通,然后让我的服务在本地运行起来了。 -然后我创建了Dockerfile,这是Docker 用来构建容器的配置脚本。(我会在后面深入介绍构建和Dockerfile) +然后我创建了 Dockerfile,这是 Docker 用来构建容器的配置脚本。(我会在后面深入介绍构建过程和 Dockerfile) -这是我运行Docker 快速启动终端的命令: +这是我运行 Docker 快速启动终端的命令: $ docker build -t thumbnailer:0.1 @@ -58,32 +57,31 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 呃。 -我估摸着过了15分钟:我忘记了在末尾参数输入一个点`.`。 +我估摸着过了15分钟我才反应过来:我忘记了在末尾参数输入一个点`.`。 正确的指令应该是这样的: $ docker build -t thumbnailer:0.1 . +但是这不是我遇到的最后一个问题。 -但是这不是我最后一个问题。 - -我让这个镜像构建好了,然后我Docker 快速启动终端输入了[`run` 命令][4]来启动容器,名字叫`thumbnailer:0.1`: +我让这个镜像构建好了,然后我在 Docker 快速启动终端输入了 [`run` 命令][4]来启动容器,名字叫 `thumbnailer:0.1`: $ docker run -d -p 3001:3000 thumbnailer:0.1 -参数`-p 3001:3000` 让NodeJS 微服务在Docker 内运行在端口3000,而在主机上则是3001。 +参数 `-p 3001:3000` 让 NodeJS 微服务在 Docker 内运行在端口3000,而绑定在宿主主机上的3001。 -到目前卡起来都很好,对吧? +到目前看起来都很好,对吧? 错了。事情要马上变糟了。 -我指定了在Docker 快速启动中端里用命令`docker-machine` 运行的Docker 虚拟机的ip地址: +我通过运行 `docker-machine` 命令为这个 Docker 快速启动终端里创建的虚拟机指定了 ip 地址: $ docker-machine ip default -这句话返回了默认虚拟机的IP地址,即运行docker 的虚拟机。对于我来说,这个ip 地址是192.168.99.100。 +这句话返回了默认虚拟机的 IP 地址,它运行在 Docker 快速启动终端里。在我这里,这个 ip 地址是 192.168.99.100。 -我浏览网页http://192.168.99.100:3001/ ,然后找到了我创建的上传图片的网页: +我浏览网页 http://192.168.99.100:3001/ ,然后找到了我创建的上传图片的网页: ![container-diagram-3](https://deis.com/images/blog-images/containers-hard-3.png) @@ -91,13 +89,13 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 但是它并没有工作。 -终端告诉我他无法找到我的微服务需要的`/upload` 目录。 +终端告诉我他无法找到我的微服务需要的 `/upload` 目录。 -现在开始记住,我已经在此耗费了将近一天的时间-从浪费时间到研究问题。我此时感到了一些挫折感。 +现在,你要知道,我已经在此耗费了将近一天的时间-从浪费时间到研究问题。我此时感到了一些挫折感。 然后灵光一闪。某人记起来微服务不应该自己做任何数据持久化的工作!保存数据应该是另一个服务的工作。 -所以容器找不到目录`/upload` 的原因到底是什么?这个问题的根本就是我的微服务在基础设计上就有问题。 +所以容器找不到目录 `/upload` 的原因到底是什么?这个问题的根本就是我的微服务在基础设计上就有问题。 让我们看看另一幅图: @@ -109,7 +107,7 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 ![container-diagram-5](https://deis.com/images/blog-images/containers-hard-5.png) -这是我用NodeJS 写的在内存工作、生成缩略图的代码: +这是我用 NodeJS 写的在内存运行、生成缩略图的代码: // Bind to the packages var express = require('express'); @@ -171,19 +169,19 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 module.exports = router; -好了,回到正轨,已经可以在我的本地机器正常工作了。我该去休息了。 +好了,一切回到了正轨,已经可以在我的本地机器正常工作了。我该去休息了。 -但是,在我测试把这个微服务当作一个普通的Node 应用运行在本地时... +但是,在我测试把这个微服务当作一个普通的 Node 应用运行在本地时... ![Containers Hard](https://deis.com/images/blog-images/containers-hard-6.png) -它工作的很好。现在我要做的就是让他在容器里面工作。 +它工作的很好。现在我要做的就是让它在容器里面工作。 第二天我起床后喝点咖啡,然后创建一个镜像——这次没有忘记那个"."! $ docker build -t thumbnailer:01 . -我从缩略图工程的根目录开始构建。构建命令使用了根目录下的Dockerfile。它是这样工作的:把Dockerfile 放到你想构建镜像的地方,然后系统就默认使用这个Dockerfile。 +我从缩略图项目的根目录开始构建。构建命令使用了根目录下的 Dockerfile。它是这样工作的:把 Dockerfile 放到你想构建镜像的地方,然后系统就默认使用这个 Dockerfile。 下面是我使用的Dockerfile 的内容: @@ -209,7 +207,7 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 ### 第二个大问题 ### -我运行了`build` 命令,然后出了这个错: +我运行了 `build` 命令,然后出了这个错: Do you want to continue? [Y/n] Abort. @@ -217,7 +215,7 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 我猜测微服务出错了。我回到本地机器,从本机启动微服务,然后试着上传文件。 -然后我从NodeJS 获得了这个错误: +然后我从 NodeJS 获得了这个错误: Error: spawn convert ENOENT @@ -225,25 +223,25 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 我搜索了我能想到的所有的错误原因。差不多4个小时后,我想:为什么不重启一下机器呢? -重启了,你猜猜结果?错误消失了!(译注:万能的重启) +重启了,你猜猜结果?错误消失了!(LCTT 译注:万能的“重启试试”) 继续。 -### 将精灵关进瓶子 ### +### 将精灵关进瓶子里 ### 跳回正题:我需要完成构建工作。 -我使用[`rm` 命令][5]删除了虚拟机里所有的容器。 +我使用 [`rm` 命令][5]删除了虚拟机里所有的容器。 $ docker rm -f $(docker ps -a -q) `-f` 在这里的用处是强制删除运行中的镜像。 -然后删除了全部Docker 镜像,用的是[命令`rmi`][6]: +然后删除了全部 Docker 镜像,用的是[命令 `rmi`][6]: $ docker rmi if $(docker images | tail -n +2 | awk '{print $3}') -我重新执行了命令构建镜像,安装容器,运行微服务。然后过了一个充满自我怀疑和沮丧的一个小时,我告诉我自己:这个错误可能不是微服务的原因。 +我重新执行了重新构建镜像、安装容器、运行微服务的整个过程。然后过了一个充满自我怀疑和沮丧的一个小时,我告诉我自己:这个错误可能不是微服务的原因。 所以我重新看到了这个错误: @@ -251,19 +249,17 @@ Docker 快速启动终端就运行在你使用的普通终端里,就像这样 The command '/bin/sh -c apt-get install imagemagick libmagickcore-dev libmagickwand-dev' returned a non-zero code: 1 -这太打击我了:构建脚本好像需要有人从键盘输入Y! 但是,这是一个非交互的Dockerfile 脚本啊。这里并没有键盘。 +这太打击我了:构建脚本好像需要有人从键盘输入 Y! 但是,这是一个非交互的 Dockerfile 脚本啊。这里并没有键盘。 -回到Dockerfile,脚本元来时这样的: +回到 Dockerfile,脚本原来是这样的: RUN apt-get update RUN apt-get install -y nodejs nodejs-legacy npm RUN apt-get install imagemagick libmagickcore-dev libmagickwand-dev RUN apt-get clean -The second `apt-get` command is missing the `-y` flag which causes "yes" to be given automatically where usually it would be prompted for. -第二个`apt-get` 忘记了`-y` 标志,这才是错误的根本原因。 +第二个`apt-get` 忘记了`-y` 标志,它用于自动应答提示所需要的“yes”。这才是错误的根本原因。 -I added the missing `-y` to the command: 我在这条命令后面添加了`-y` : RUN apt-get update @@ -281,7 +277,6 @@ I added the missing `-y` to the command: $ docker run -d -p 3001:3000 thumbnailer:0.1 -Got the IP address of the Virtual Machine: 获取了虚拟机的IP 地址: $ docker-machine ip default @@ -298,11 +293,11 @@ Got the IP address of the Virtual Machine: 在容器里面工作了,我的第一次啊! -### 这意味着什么? ### +### 这让我学到了什么? ### -很久以前,我接受了这样一个道理:当你刚开始尝试某项技术时,即使是最简单的事情也会变得很困难。因此,我压抑了要成为房间里最聪明的人的欲望。然而最近几天尝试容器的过程就是一个充满自我怀疑的旅程。 +很久以前,我接受了这样一个道理:当你刚开始尝试某项技术时,即使是最简单的事情也会变得很困难。因此,我不会把自己当成最聪明的那个人,然而最近几天尝试容器的过程就是一个充满自我怀疑的旅程。 -但是你想知道一些其它的事情吗?这篇文章是我在凌晨2点完成的,而每一个折磨的小时都值得了。为什么?因为这段时间你将自己全身心投入了喜欢的工作里。这件事很难,对于所有人来说都不是很容易就获得结果的。但是不要忘记:你在学习技术,运行世界的技术。 +但是你想知道一些其它的事情吗?这篇文章是我在凌晨2点完成的,而每一个受折磨的时刻都值得了。为什么?因为这段时间你将自己全身心投入了喜欢的工作里。这件事很难,对于所有人来说都不是很容易就获得结果的。但是不要忘记:你在学习技术,运行世界的技术。 P.S. 了解一下Hello World 容器的两段视频,这里会有 [Raziel Tabib’s][7] 的精彩工作内容。 @@ -320,12 +315,12 @@ via: https://deis.com/blog/2015/beyond-hello-world-containers-hard-stuff 作者:[Bob Reselman][a] 译者:[Ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:https://deis.com/blog -[1]:http://deis.com/blog/2015/developer-journey-linux-containers +[1]:https://linux.cn/article-6594-1.html [2]:https://github.com/rsms/node-imagemagick [3]:https://www.docker.com/toolbox [4]:https://docs.docker.com/reference/commandline/run/ From 3e4188e4790184fede01f36d7b58029e3511304a Mon Sep 17 00:00:00 2001 From: alim0x Date: Wed, 27 Apr 2016 21:16:36 +0800 Subject: [PATCH 389/582] [translated]7 Steps to Start Your Linux SysAdmin Career --- ...eps to Start Your Linux SysAdmin Career.md | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md index df4989eba9..e6b4fa62ab 100644 --- a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md +++ b/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md @@ -1,39 +1,38 @@ -alim0x translating - -7 Steps to Start Your Linux SysAdmin Career +七步开始你的 Linux 系统管理员生涯 =============================================== -Linux is hot right now. Everybody is looking for Linux talent. Recruiters are knocking down the doors of anybody with Linux experience, and there are tens of thousands of jobs waiting to be filled. But what if you want to take advantage of this trend and you’re new to Linux? How do you get started? -1. Install Linux +Linux 现在是个大热门。每个人都在寻求 Linux 才能。招聘人员对有 Linux 经验的人求贤若渴,还有无数的职位虚位以待。但是如果你是 Linux 新手,又想要赶上这波热潮,该从何开始下手呢? - It should almost go without saying, but the first key to learning Linux is to install Linux. Both the LFS101x and the LFS201 courses include detailed sections on installing and configuring Linux for the first time. +1. 安装 Linux -2. Take LFS101x + 这应该是不言而喻的,但学习 Linux 的第一关键就是安装 Linux。LFS101x 和 LFS201 课程都包含第一次安装和配置 Linux 的详细内容。 - If you are completely new to Linux, the best place to start is our free [LFS101x Introduction](https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-2) to Linux course. This online course is hosted by edX.org, and explores the various tools and techniques commonly used by Linux system administrators and end users to achieve their day-to-day work in a Linux environment. It is designed for experienced computer users who have limited or no previous exposure to Linux, whether they are working in an individual or enterprise environment. This course will give you a good working knowledge of Linux from both a graphical and command line perspective, allowing you to easily navigate through any of the major Linux distributions. +2. 完成 LFS101x 课程 -3. Look into LFS201 + 如果你是 Linux 完完全全的新手,最佳的起点是免费的 Linux 课程 [LFS101x Introduction](https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-2)。这个在线课程在 edX.org,探索 Linux 系统管理员和终端用户常用的各种工具和技能以及日常 Linux 工作环境。该课程是为有一定经验但较少或没有接触过 Linux 的电脑用户设计的,不论他们是在个人还是企业环境中工作。这个课程会从图形界面和命令行教会你有用的 Linux 知识,让你能够了解主流的 Linux 发行版。 - Once you’ve completed LFS101x, you’re ready to start diving into the more complicated tasks in Linux that will be required of you as a professional sysadmin. To gain those skills, you’ll want to take [LFS201 Essentials of Linux System Administration](http://training.linuxfoundation.org/linux-courses/system-administration-training/essentials-of-system-administration). The course gives you in-depth explanations and instructions for each topic, along with plenty of exercises and labs to help you get real, hands-on experience with the subject matter. +3. 看看 LFS201 课程 - If you would rather have a live instructor teach you or you have an employer who is interested in helping you become a Linux sysadmin, you might also be interested in LFS220 Linux System Administration. This course includes all the same topics as the LFS201 course, but is taught by an expert instructor who can guide you through the labs and answer any questions you have on the topics covered in the course. + 在你完成 LFS101x 之后,你就准备好开始进入 Linux 更加复杂的任务了,这是成为一名专业的系统管理员所必须的。为了掌握这些技能,你应该看看 [LFS201 Essentials of Linux System Administration](http://training.linuxfoundation.org/linux-courses/system-administration-training/essentials-of-system-administration) 这个课程。该课程对每个话题进行了深度的解释和介绍,还有大量的练习和实验,帮助你获得相关主题实际的上手经验。 -4. Practice! + 如果你更愿意有个教练或者你的雇主对将你培养成 Linux 系统管理员有兴趣,你可能会对 LFS220 Linux System Administration 有兴趣。这个课程有 LFS201 中所有的主题,但是它是由专家专人教授的,帮助你进行实验以及解答你在课程主题中的问题。 - Practice makes perfect, and that’s as true for Linux as it is for any musical instrument or sport. Once you’ve installed Linux, use it regularly. Perform key tasks over and over again until you can do them easily without reference material. Learn the ins and outs of the command line as well as the GUI. This practice will ensure that you’ve got the skills and knowledge to be successful as a professional Linux sysadmin. +4. 练习! -5. Get Certified + 熟能生巧,和对任何乐器或运动适用一样,这对 Linux 来说也一样适用。在你安装 Linux 之后,经常使用它。一遍遍地练习关键任务,直到你不需要参考材料也能轻而易举地完成。练习命令行和图形界面的输入输出。这些练习能够保证你掌握成为成功的 Linux 系统管理员所必需的知识和技能。 - After you’ve taken LFS201 or LFS220 and you’ve gotten some practice, you are now ready to get certified as a system administrator. You’ll need this certification because this is how you will prove to employers that you have the necessary skills to be a professional Linux sysadmin. +5. 获得认证 - There are several Linux certifications on the market today, and all of them have their place. However, most of these certifications are either centered on a specific distro (like Red Hat) or are purely knowledge-based and don’t demonstrate actual skill with Linux. The Linux Foundation Certified System Administrator certification is an excellent alternative for someone looking for a flexible, meaningful entry-level certification. + 在你完成 LFS201 或 LFS220 并且充分练习之后,你现在已经准备好获得系统管理员的认证了。你需要这个证书,因为你需要向雇主证明你拥有一名专业 Linux 系统管理员必需的技能。 -6. Get Involved + 现在有一些不同的 Linux 证书,它们有它们的独到之处。但是,它们里大部分不是在特定发行版(如红帽)上认证,就是纯粹的知识测试,没有演示 Linux 的实际技能。Linux 基金会认证系统管理员(Linux Foundation Certified System Administrator)证书对想要一个灵活的,有意义的初级证书的人来说是个优秀的替代。 - At this point you may also want to consider joining up with a local Linux Users Group (or LUG), if there’s one in your area. These groups are usually composed of people of all ages and experience levels, so regardless of where you are at with your Linux experience, you can find people with similar skill levels to bond with, or more advanced Linux users who can help answer questions and point you towards helpful resources. To find out if there’s a LUG near you, try looking on meetup.com, check with a nearby university, or just do a simple Internet search. +6. 参与进来 - There are also many online communities available to you as you learn Linux. These sites and communities provide help and support to both individuals new to Linux or experienced administrators: + 如果你所在的地方有本地 Linux 用户组(Linux Users Group,LUG)的话,这时候你可能还想要考虑加入他们。这些组织通常由各种年龄和经验水平的人组成,所以不管你的 Linux 经验水平如何,你都能找到和你类似技能水平的人互助,或是更高水平的 Linux 用户来解答你的问题以及介绍有用的资源。要想知道你附近有没有 LUG,上 meet.com 看看,或是附近的大学,又或是上网搜索一下。 + + 还有不少在线社区可以在你学习 Linux 的时候帮助你。这些站点和社区向 Linux 新手和有经验的管理员都能够提供帮助和支持: - [Linux Admin subreddit](https://www.reddit.com/r/linuxadmin) @@ -47,20 +46,20 @@ Linux is hot right now. Everybody is looking for Linux talent. Recruiters are kn - [http://wiki.centos.org/Documentation](http://wiki.centos.org/Documentation) -7. Learn To Love The Documentation +7. 学会热爱文档 - Last but not least, if you ever get stuck on something within Linux, don’t forget about Linux’s included documentation. Using the commands man (for manual), info and help, you can find information on virtually every aspect of Linux, right from within the operating system. The usefulness of these built-in resources cannot be overstated, and you’ll find yourself using them throughout your career, so you might as well get familiar with them early on. + 最后但同样重要的是,如果你困在 Linux 的某些地方,别忘了 Linux 包含的文档。使用命令 man(manual,手册),info 和 help,你从系统内就可以找到 Linux 几乎所有方面的信息。这些内置资源的用处再夸大也不为过,你会发现你在生涯中始终会用到,所以你可能最好早点掌握使用它们。 - Interested in learning more about starting your IT career with Linux? Check out our free ebook “[A Brief Guide To Starting Your IT Career In Linux](http://training.linuxfoundation.org/sysadmin-it-career-guide).” + 想要了解更多开始你 Linux IT 生涯的信息?查看我们免费的电子书“[开始你 Linux IT 生涯的简短指南](http://training.linuxfoundation.org/sysadmin-it-career-guide)”。 -[Download Now](http://training.linuxfoundation.org/sysadmin-it-career-guide) +[立刻下载](http://training.linuxfoundation.org/sysadmin-it-career-guide) ------------------------------------------------------------------------------ via: http://www.linux.com/news/featured-blogs/191-linux-training/834644-7-steps-to-start-your-linux-sysadmin-career 作者:[linux.com][a] -译者:[译者ID](https://github.com/译者ID) +译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From b9fc96145465e2ec995d2a4dfa23438f626f4f3e Mon Sep 17 00:00:00 2001 From: alim0x Date: Wed, 27 Apr 2016 22:40:14 +0800 Subject: [PATCH 390/582] move file --- .../tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md (100%) diff --git a/sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md b/translated/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md similarity index 100% rename from sources/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md rename to translated/tech/20160218 7 Steps to Start Your Linux SysAdmin Career.md From 29c3cbd844400c94192658565576ee4a2836328e Mon Sep 17 00:00:00 2001 From: vim-kakali <1799225723@qq.com> Date: Thu, 28 Apr 2016 12:32:00 +0800 Subject: [PATCH 391/582] translated --- ...227 Upheaval in the Debian Live project.md | 68 --------------- ...227 Upheaval in the Debian Live project.md | 83 +++++++++++++++++++ 2 files changed, 83 insertions(+), 68 deletions(-) delete mode 100644 sources/talk/20151227 Upheaval in the Debian Live project.md create mode 100644 translated/20151227 Upheaval in the Debian Live project.md diff --git a/sources/talk/20151227 Upheaval in the Debian Live project.md b/sources/talk/20151227 Upheaval in the Debian Live project.md deleted file mode 100644 index 3fa8179aa3..0000000000 --- a/sources/talk/20151227 Upheaval in the Debian Live project.md +++ /dev/null @@ -1,68 +0,0 @@ -vim-kakali is translating. - -While the event had a certain amount of drama surrounding it, the [announcement][1] of the end for the [Debian Live project][2] seems likely to have less of an impact than it first appeared. The loss of the lead developer will certainly be felt—and the treatment he and the project received seems rather baffling—but the project looks like it will continue in some form. So Debian will still have tools to create live CDs and other media going forward, but what appears to be a long-simmering dispute between project founder and leader Daniel Baumann and the Debian CD and installer teams has been "resolved", albeit in an unfortunate fashion. - -The November 9 announcement from Baumann was titled "An abrupt End to Debian Live". In that message, he pointed to a number of different events over the nearly ten years since the [project was founded][3] that indicated to him that his efforts on Debian Live were not being valued, at least by some. The final straw, it seems, was an "intent to package" (ITP) bug [filed][4] by Iain R. Learmonth that impinged on the namespace used by Debian Live. - -Given that one of the main Debian Live packages is called "live-build", the new package's name, "live-build-ng", was fairly confrontational in and of itself. Live-build-ng is meant to be a wrapper around the [vmdebootstrap][5] tool for creating live media (CDs and USB sticks), which is precisely the role Debian Live is filling. But when Baumann [asked][6] Learmonth to choose a different name for his package, he got an "interesting" [reply][7]: - -``` -It is worth noting that live-build is not a Debian project, it is an external project that claims to be an official Debian project. This is something that needs to be fixed. -There is no namespace issue, we are building on the existing live-config and live-boot packages that are maintained and bringing these into Debian as native projects. If necessary, these will be forks, but I'm hoping that won't have to happen and that we can integrate these packages into Debian and continue development in a collaborative manner. -live-build has been deprecated by debian-cd, and live-build-ng is replacing it. In a purely Debian context at least, live-build is deprecated. live-build-ng is being developed in collaboration with debian-cd and D-I [Debian Installer]. -``` - -Whether or not Debian Live is an "official" Debian project (or even what "official" means in this context) has been disputed in the thread. Beyond that, though, Neil Williams (who is the maintainer of vmdebootstrap) [provided some][8] explanation for the switch away from Debian Live: - -``` -vmdebootstrap is being extended explicitly to provide support for a replacement for live-build. This work is happening within the debian-cd team to be able to solve the existing problems with live-build. These problems include reliability issues, lack of multiple architecture support and lack of UEFI support. vmdebootstrap has all of these, we do use support from live-boot and live-config as these are out of the scope for vmdebootstrap. -``` - -Those seem like legitimate complaints, but ones that could have been fixed within the existing project. Instead, though, something of a stealth project was evidently undertaken to replace live-build. As Baumann [pointed out][9], nothing was posted to the debian-live mailing list about the plans. The ITP was the first notice that anyone from the Debian Live project got about the plans, so it all looks like a "secret plan"—something that doesn't sit well in a project like Debian. - -As might be guessed, there were multiple postings that supported Baumann's request to rename "live-build-ng", followed by many that expressed dismay at his decision to stop working on Debian Live. But Learmonth and Williams were adamant that replacing live-build is needed. Learmonth did [rename][10] live-build-ng to a perhaps less confrontational name: live-wrapper. He noted that his aim had been to add the new tool to the Debian Live project (and "bring the Debian Live project into Debian"), but things did not play out that way. - -``` -I apologise to everyone that has been upset by the ITP bug. The software is not yet ready for use as a full replacement for live-build, and it was filed to let people know that the work was ongoing and to collect feedback. This sort of worked, but the feedback wasn't the kind I was looking for. -``` - -The backlash could perhaps have been foreseen. Communication is a key aspect of free-software communities, so a plan to replace the guts of a project seems likely to be controversial—more so if it is kept under wraps. For his part, Baumann has certainly not been perfect—he delayed the "wheezy" release by [uploading an unsuitable syslinux package][11] and [dropped down][12] from a Debian Developer to a Debian Maintainer shortly thereafter—but that doesn't mean he deserves this kind of treatment. There are others involved in the project as well, of course, so it is not just Baumann who is affected. - -One of those other people is Ben Armstrong, who has been something of a diplomat during the event and has tried to smooth the waters. He started with a [post][13] that celebrated the project and what Baumann and the team had accomplished over the years. As he noted, the [list of downstream projects][14] for Debian Live is quite impressive. In another post, he also [pointed out][15] that the project is not dead: - -``` -If the Debian CD team succeeds in their efforts and produces a replacement that is viable, reliable, well-tested, and a suitable candidate to replace live-build, this can only be good for Debian. If they are doing their job, they will not "[replace live-build with] an officially improved, unreliable, little-tested alternative". I've seen no evidence so far that they operate that way. And in the meantime, live-build remains in the archive -- there is no hurry to remove it, so long as it remains in good shape, and there is not yet an improved successor to replace it. -``` - -On November 24, Armstrong also [posted][16] an update (and to [his blog][17]) on Debian Live. It shows some good progress made in the two weeks since Baumann's exit; there are even signs of collaboration between the project and the live-wrapper developers. There is also a [to-do list][18], as well as the inevitable call for more help. That gives reason to believe that all of the drama surrounding the project was just a glitch—avoidable, perhaps, but not quite as dire as it might have seemed. - - ---------------------------------- - -via: https://lwn.net/Articles/665839/ - -作者:Jake Edge -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - - -[1]: https://lwn.net/Articles/666127/ -[2]: http://live.debian.net/ -[3]: https://www.debian.org/News/weekly/2006/08/ -[4]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804315 -[5]: http://liw.fi/vmdebootstrap/ -[6]: https://lwn.net/Articles/666173/ -[7]: https://lwn.net/Articles/666176/ -[8]: https://lwn.net/Articles/666181/ -[9]: https://lwn.net/Articles/666208/ -[10]: https://lwn.net/Articles/666321/ -[11]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699808 -[12]: https://nm.debian.org/public/process/14450 -[13]: https://lwn.net/Articles/666336/ -[14]: http://live.debian.net/project/downstream/ -[15]: https://lwn.net/Articles/666338/ -[16]: https://lwn.net/Articles/666340/ -[17]: http://syn.theti.ca/2015/11/24/debian-live-after-debian-live/ -[18]: https://wiki.debian.org/DebianLive/TODO diff --git a/translated/20151227 Upheaval in the Debian Live project.md b/translated/20151227 Upheaval in the Debian Live project.md new file mode 100644 index 0000000000..7d03ce831a --- /dev/null +++ b/translated/20151227 Upheaval in the Debian Live project.md @@ -0,0 +1,83 @@ +Debian Live项目的剧变 + +围绕Debian Live 项目发生了很多戏剧性事件,但是有一个关于Debian Live项目][1]结束的[公告][2],它比项目第一次出现的时候影响力还小。这个项目的创始人退出必定是有原因的,社区对他的待遇和项目的收效是很令人沮丧的,但是这个项目还是会以其他的形式继续下去。所以Debian仍然会有很多的工具去在创造启动光盘和其他介质的道路上继续向前。项目创始人Dabiel Baumann和Debian CD团队以及安装检测团队之间出现的长期争论已经被"解决"了,尽管是用这样一种有遗憾的方式。                                      + +在11月9日,Baumann发表了题为"Dabian Live项目的突然结束"的一篇公告。在那篇短文中,他一一列举出了自从这个和他有关的[项目被发起][3]以来10间发生的不同的事件,可以表明他在Debian Live项目上的努力一直没有被重视,至少从这些方面。最具决定性的因素是因为在"包的含义"上存在冲突,R.Learmonth[申请][4]了新的包名,而这却侵犯了在Debian Live上使用的命名空间。 + +考虑到最主要的Debian Live包之一被命名为"live-build",而新的包名却叫"live-build-ng",这简直是对"live-build"的挑战。live-build-ng意为一种围绕[vmdebootstrap][5]【译者注:创造真实的和虚拟机Debian的磁盘映像】工具的外部包装,这种包装是为了创造live介质(光盘和USB的插入),也是Debian Live最需要的的部分。但是当 Baumann Learmonth[要求][6]为他的包换一个不同的名字的时候,他得到了一个“有趣”的[回复][7]: + +``` + +live-build不是一个Debian项目,这件事应该受到我们的关注,它是一个外部的项目。但是社区要求它成为一个官方的Debian项目,这件事需要我们敲定。 +这不是命名空间的问题,我们要将以目前维护的live配置和live启动包为基础,把它加入到Debian的本地项目。如果迫不得已的话,这将会有很多分支,但是我希望它不要发生,这样的话我们就可以把这些包整合到Debian中继续以一种协作的方式去开发。 +live-build已经被debian-cd放弃,live-build-ng将会取代它。至少在一个精简的Debian环境中,live-build会被放弃。live-build-ng将要通过debian-cd和Debian安装者合作的方式去开发。 +``` + + + +Debian Live 是一个“官方的”Debian项目(或者可以狭义的"官方"),尽管它因为思路上的不同产生过争论.除此之外,vmdebootstrap的维护者Neil Willians为脱离Debian Live项目[提供了如下的解释][8]: + +``` + +为了更好的支持live-build的代替者,vmdebootstrap肯定会被推广。这项工作会由debian-cd团队来负责,debian-cd能够用live-build解决目前存在的问题。 这些问题包括可靠性问题,以及不能很好的支持多种机器和UEFI等。 vmdebootstrap也存在着这些问题,我们用来自于对live-boot和live-config的支持情况来确定vmdebootstrap的功能。 +``` + + + +这些想要取代"live-build"的说辞看起来有道理,但是目前的项目存在的上述问题已经得到了初步解决。相反的,一些秘密的项目很明显的意图是取代live-build。正如Baumann[指出][9]的,这些计划没有被加入到debian-live的邮件列表中。人们可以从Debian Live项目中得到这些计划的信息也是因为这一次的ITP事件。所以它看起来像是一个"秘密计划"—有些东西在一个像Debian这样的项目中不能很好的安排。 + +人们可能已经猜到了,有很多帖子都支持Baumann[重命名][10]"live-build-ng"的请求,但是紧跟着,人们就因为他要停止在Debian Live 上继续工作的决定而变得沮丧。但是Learmonth 和 Williams却坚定不移,他们两人都是取代live-build所需要的开发者。Learmonth 给“live-build-ng”换了一个新的有很少争议性的名字:Live-wrapper。他说他的目标是为Debian Live项目加入新的工具(并且“把Debian Live 项目引入Debian里面),但是完成这件事还需要很大的努力。 + + +``` + +我向已经被ITP问题所困扰的每个人道歉。作为live-build的取代者,live-wrapper这个软件的稳定性还很差,为了让人们知道工作的进展同时收集反馈,它已经被存档。虽然有了这部分的工作,但是收到的反馈并不是我所需要的。 +``` + +这种对于取代live-build的强烈的反对或许已经被预知到了。自由软件社区的沟通和交流很关键,所以,替换一个项目核心的计划是很有争议的——更何况这个计划一直不被人们所知。从Banumann的角度来说,他当然不是完美的,他通过上传和下载一个不合适的[syslinux包][11]来延迟“wheezy”的发布,并且从那以后他从一个Debian发起人[成为][12]了一个Debian维护者。——但是他也不应该受到这种对待。当然,这个项目还有其他人参与,所以不仅仅是Baumann受到了影响。 + +Ben Armstrong是这些人中的其中之一,在这个事件中,他很圆滑地处理了一些事,并且想从这个事件中全身而退。他从一个邮件[13]开始,这个邮件是为了庆祝这个项目以及他和他的团队在过去几年完成的一些工作。正如他所说,这种基于Debian Live的[下流项目列表][14]是很令人振奋的。在另一个邮件中,他也[指出][15]了这个项目不是没有生命力的: + + +``` + +如果Debian CD开发团队通过他们的努力获得成功,这样产品的替换就会是可行的、可靠的、利于测试的,同时有一个合适的候选者去取代live-build,这对于Debian项目有利无害。如果他们继续做这件事,他们不会“用一个官方改良的,不可靠的,几乎没有测试的待选者取代live-build”。到目前为止,我还没有看到他们那样做。其间,live-build仍在存档,没有很快删除,它仍然处于良好状态,并没有一种改进的继任者来取代它。 +``` + + +11月24号,Armstrong也在[他的博客][16]上[发布][17]了一个有关Debian Live的新消息。它展示了自从 Baumann退出后两周内的让人高兴的进展。可以说是在这个项目和live-wrapper开发者之间产生合作的里程碑。博客上也有了一个[计划表][18],同时不可避免地寻求更多的帮助。他也列举了一些理由,试图让人们相信围绕项目发生的戏剧性事件仅仅是一个可以避免的小问题,而不是像现在这样。 + + + + + + +--------------------------------- + +via: https://lwn.net/Articles/665839/ + +作者:Jake Edge +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + + +[1]: https://lwn.net/Articles/666127/ +[2]: http://live.debian.net/ +[3]: https://www.debian.org/News/weekly/2006/08/ +[4]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804315 +[5]: http://liw.fi/vmdebootstrap/ +[6]: https://lwn.net/Articles/666173/ +[7]: https://lwn.net/Articles/666176/ +[8]: https://lwn.net/Articles/666181/ +[9]: https://lwn.net/Articles/666208/ +[10]: https://lwn.net/Articles/666321/ +[11]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699808 +[12]: https://nm.debian.org/public/process/14450 +[13]: https://lwn.net/Articles/666336/ +[14]: http://live.debian.net/project/downstream/ +[15]: https://lwn.net/Articles/666338/ +[16]: https://lwn.net/Articles/666340/ +[17]: http://syn.theti.ca/2015/11/24/debian-live-after-debian-live/ +[18]: https://wiki.debian.org/DebianLive/TODO From a73783565ee232e15ebaaf91e4d84c5dd7867032 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 30 Apr 2016 23:28:56 +0800 Subject: [PATCH 392/582] =?UTF-8?q?20160430-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...9 Master OpenStack with 5 new tutorials.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sources/tech/20160429 Master OpenStack with 5 new tutorials.md diff --git a/sources/tech/20160429 Master OpenStack with 5 new tutorials.md b/sources/tech/20160429 Master OpenStack with 5 new tutorials.md new file mode 100644 index 0000000000..34ef86c06a --- /dev/null +++ b/sources/tech/20160429 Master OpenStack with 5 new tutorials.md @@ -0,0 +1,37 @@ +Master OpenStack with 5 new tutorials +======================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/education/EDUCATION_tools.png?itok=ybxr0Qe9) + + +Returning from OpenStack Summit this week, I am reminded of just how vast the open source cloud ecosystem is and just how many different projects and concepts you need to be familiar with in order to succeed. Although, we're actually quite fortunate with the resources available for keeping up. In addition to the [official documentation][1], many great educational tools are out there, from third party training and certification, to in-person events, and many community-contributed tutorials as well. + +To help you stay on top of things, every month we round up a collection of new tutorials, how-tos, guides, and tips created by the OpenStack community. Here are some of the great pieces published this past month. + +- First up, if you're looking for a (reasonably) affordable home OpenStack test lab, the Intel NUC is a great platform to consider. Small in form factor, but reasonably well-powered, you can get a literal stack of them running OpenStack pretty quickly with this guide to using [TripleO to deploy OpenStack][2] on the NUC, and read about some common quirks to watch out for. +- After you've been running OpenStack for a while, the various processes keeping your cloud alive have probably generated quite a pile of log files. While some are probably safe to purge, you still need to have a plan for managing them. Here are some [quick thoughts][3] on managing logs in Ceilometer after nine-months in to a production deployment. +- The OpenStack infrastructure project can be an intimidating place for a newcomer just trying to land a patch. What's a gate job, what's a test, and what are all of these steps my commit is going through? Get a quick overview of the whole process from Arie Bregman in this [handy blog post][4]. +- Compute hosts fail occasionally, and whether the cause is hardware or software, the good news is that OpenStack makes it easy to migrate your running instance to another host. However, some people have found the commands to perform this migration a little confusing. Learn the difference between the migrate and evacuate commands in plain English in [this great writeup][5]. +- Network Functions Virtualization technologies require some functionality from OpenStack that are outside of what other users might be familiar with. For example, SR-IOV and PCI passthrough are ways of exposing physical hardware directly for maximizing performance. Learn the [steps involved][6] to make this happen within an OpenStack deployment. + +That wraps up our collection for this month, but if you're still looking for more, be sure to check out our past archive of [OpenStack tutorials][7] for even more learning resources. And if there's a tutorial or guide you think we ought to include in our next roundup, be sure to let us know in the comments below. + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/4/master-openstack-new-tutorials + +作者:[Jason Baker][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jason-baker + +[1]: http://docs.openstack.org/ +[2]: http://acksyn.org/posts/2016/03/tripleo-on-nucs/ +[3]: http://silverskysoft.com/open-stack-xwrpr/2016/03/long-term-openstack-usage-summary/ +[4]: http://abregman.com/2016/03/05/openstack-infra-jenkins-jobs/ +[5]: http://www.danplanet.com/blog/2016/03/03/evacuate-in-nova-one-command-to-confuse-us-all/ +[6]: https://trickycloud.wordpress.com/2016/03/28/openstack-for-nfv-applications-sr-iov-and-pci-passthrough/ +[7]: https://opensource.com/resources/openstack-tutorials From bd6963ce0ed88f5e6fae09708d719fe0f243d5ab Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 30 Apr 2016 23:37:32 +0800 Subject: [PATCH 393/582] =?UTF-8?q?20160430-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hy and how I became a software engineer.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sources/tech/20160429 Why and how I became a software engineer.md diff --git a/sources/tech/20160429 Why and how I became a software engineer.md b/sources/tech/20160429 Why and how I became a software engineer.md new file mode 100644 index 0000000000..722464168f --- /dev/null +++ b/sources/tech/20160429 Why and how I became a software engineer.md @@ -0,0 +1,101 @@ +Why and how I became a software engineer +========================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) + +The year was 1989. The city was Kampala, Uganda. + +In their infinite wisdom, my parents decided that instead of all the troublemaking I was getting into at home, they would send me off to my uncle's office to learn how to use a computer. A few days later, I found myself on the 21st floor in a cramped room with six or seven other teens and a brand new computer on a desk perpendicular to the teacher's desk. It was made abundantly clear that we were not skilled enough to touch it. After three frustrating weeks of writing and perfecting DOS commands, the magic moment happened. It was my turn to type **copy doc.txt d:**. + +The alien scratching noises that etched a simple text file onto the five-inch floppy sounded like beautiful music. For a while, that floppy disk was my most prized possession. I copied everything I could onto it. However, in 1989, Ugandans tended to take life pretty seriously, and messing around with computers, copying files, and formatting disks did not count as serious. I had to focus on my education, which led me away from computer science and into architectural engineering. + +Like any young person of my generation, a multitude of job titles and skills acquisition filled the years in between. I taught kindergarten, taught adults how to use software, worked in a clothing store, and served as a paid usher in a church. While I earned my degree at the University of Kansas, I worked as a tech assistant to the technical administrator, which is really just a fancy title for someone who messes around with the student database. + +By the time I graduated in 2007, technology had become inescapable. Every aspect of architectural engineering was deeply intertwined with computer science, so we all inadvertently learned simple programming skills. For me, that part was always more fascinating. But because I had to be a serious engineer, I developed a secret hobby: writing science fiction. + +In my stories, I lived vicariously through the lives of my heroines. They were scientists with amazing programming skills who were always getting embroiled in adventures and fighting tech scallywags with technology they invented, sometimes inventing them on the spot. Sometimes the new tech I came up with was based on real-world inventions. Other times it was the stuff I read about or saw in the science fiction I consumed. This meant that I had to understand how the tech worked and my research led me to some interesting subreddits and e-zines. + +### Open source: The ultimate goldmine + +Throughout my experiences, the fascinating weeks I'd spent writing out DOS commands remained a prominent influence, bleeding into little side projects and occupying valuable study time. As soon as Geocities became available to all Yahoo! Users, I created a website where I published blurry pictures that I'd taken on a tiny digital camera. I created websites for free, helped friends and family fix issues they had with their computers, and created a library database for a church. + +This meant that I was always researching and trying to find more information about how things could be made better. The Internet gods blessed me and open source fell into my lap. Suddenly, 30-day trials and restrictive licenses became a ghost of computing past. I could continue to create using GIMP, Inkscape, and OpenOffice. + +### Time to get serious + +I was fortunate to have a business partner who saw the magic in my stories. She too is a dreamer and visionary who imagines a better connected world that functions efficiently and conveniently. Together, we came up with several solutions to pain points we experienced in the journey to success, but implementation had been a problem. We both lacked the skills to make our products come to life, something that was made evident every time we approached investors with our ideas. + +We needed to learn to program. So, at the end of the summer in 2015, we embarked on a journey that would lead us right to the front steps of Holberton School, a community-driven, project-based school in San Francisco. + +My business partner came to me one morning and started a conversation the way she does when she has a new crazy idea that I'm about to get sucked into. + +**Zee**: Gloria, I'm going to tell you something and I want you to listen first before you say no. + +**Me**: No. + +**Zee**: We're going to be applying to go to a school for full-stack engineers. + +**Me**: What? + +**Zee**: Here, look! We're going to learn how to program by applying to this school. + +**Me**: I don't understand. We're doing online courses in Python and... + +**Zee**: This is different. Trust me. + +**Me**: What about the... + +**Zee**: That's not trusting me. + +**Me**: Fine. Show me. + +### Removing the bias + +What I read sounded similar to something we had seen online. It was too good to be true, but we decided to give it a try, jump in with both feet, and see what would come out of it. + +To become students, we had to go through a four-step selection process based solely on talent and motivation, not on the basis of educational degree or programming experience. The selection process is the beginning of the curriculum, so we started learning and collaborating through it. + +It has been my experience—and that of my business partner—that the process of applying for anything was an utter bore compared to the application process Holberton School created. It was like a game. If you completed a challenge, you got to go to the next level, where another fascinating challenge awaited. We created Twitter accounts, blogged on Medium, learned HTML and CSS in order to create a website, and created a vibrant community online even before we knew who was going to get to go. + +The most striking thing about the online community was how varied our experience with computers was, and how our background and gender did not factor into the choices that were being made by the founders (who we secretly called "The Trinity"). We just enjoyed being together and talking to each other. We were all smart people on a journey to increasing our nerd cred by learning how to code. + +For much of the application process, our identities were not very evident. For example, my business partner's name does not indicate her gender or race. It was during the final step, a video chat, that The Trinity even knew she was a woman of color. Thus far, only her enthusiasm and talent had propelled her through the levels. The color of her skin and her gender did not hinder nor help her. How cool is that? + +The night we got our acceptance letters, we knew our lives were about to change in ways we had only dreamt of. On the 22nd of January 2016, we walked into 98 Battery Street to meet our fellow [Hippokampoiers][2] for the first time. It was evident then, as it had been before, that the Trinity had started something amazing. They had assembled a truly diverse collection of passionate and enthusiastic people who had dedicated themselves to become full-stack engineers. + +The school is an experience like no other. Every day is an intense foray into some facet of programming. We're handed a project and, with a little guidance, we use every resource available to us to find the solution. The premise that [Holberton School][1] is built upon is that information is available to us in more places than we've ever had before. MOOCs, tutorials, the availability of open source software and projects, and online communities are all bursting at the seams with knowledge that shakes up some of the projects we have to complete. And with the support of the invaluable team of mentors to guide us to solutions, the school becomes more than just a school; we've become a community of learners. I would highly recommend this school for anyone who is interested in software engineering and is also interested in the learning style. The next class is in October 2016 and is accepting new applications. It's both terrifying and exhilarating, but so worth it. + +### Open source matters + +My earliest experience with an open source operating system was [Fedora][3], a [Red Hat][4]-sponsored project. During a panicked conversation with an IRC member, she recommended this free OS. I had never installed my own OS before, but it sparked my interest in open source and my dependence on open source software for my computing needs. We are advocates for open source contribution, creation, and use. Our projects are on GitHub where anyone can use or contribute to them. We also have the opportunity to access existing open source projects to use or contribute to in our own way. Many of the tools that we use at school are open source, such as Fedora, [Vagrant][5], [VirtualBox][6], [GCC][7], and [Discourse][8], to name a few. + +As I continue on my journey to becoming a software engineer, I still dream of a time when I will be able to contribute to the open source community and be able to share my knowledge with others. + +### Diversity Matters + +Standing in the room and talking to 29 other bright-eyed learners was intoxicating. 40% of the people there were women and 44% were people of color. These numbers become very important when you are a woman of color in a field that has been famously known for its lack of diversity. It was an oasis in the tech Mecca of the world. I knew I had arrived. + +The notion of becoming a full-stack engineer is daunting, and you may even struggle to know what that means. It is a challenging road to travel with immeasurable rewards to reap. The future is run by technology, and you are an important part of that bright future. While the media continues to trip over handling the issue of diversity in tech companies, know that whoever you are, whatever your background is, whatever your reasons might be for becoming a full-stack engineer, you can find a place to thrive. + +But perhaps most importantly, a strong reminder of the role of women in the history of computing can help more women return to the tech world, and they can be fully engaged without hesitation due to their gender or their capabilities as women. Their talents will help shape the future not just of tech, but of the world. + + +------------------------------------------------------------------------------ + +via: https://opensource.com/life/16/4/my-open-source-story-gloria-bwandungi + +作者:[Gloria Bwandungi][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/nappybrain +[1]: https://www.holbertonschool.com/ +[2]: https://twitter.com/hippokampoiers +[3]: https://en.wikipedia.org/wiki/Fedora_(operating_system) +[4]: https://www.redhat.com/ +[5]: https://www.vagrantup.com/ +[6]: https://www.virtualbox.org/ +[7]: https://gcc.gnu.org/ +[8]: https://www.discourse.org/ From 7a63d4d8ae261a266b71bd30f08101e2dc8cafc3 Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sun, 1 May 2016 13:52:31 +0800 Subject: [PATCH 394/582] Translating sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md --- ... Resource Usage and Set Process Limits on a Per-User Basis.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md b/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md index 82bb9b4a74..877a3ee12f 100644 --- a/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md +++ b/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md @@ -1,3 +1,4 @@ +ictlyh Translating Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis ============================================================================================= From 9c36452fa1f917f1423771db805c7521ab12160f Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sun, 1 May 2016 18:24:25 +0800 Subject: [PATCH 395/582] Translated translated/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md --- ... Set Process Limits on a Per-User Basis.md | 274 ----------------- ... Set Process Limits on a Per-User Basis.md | 275 ++++++++++++++++++ 2 files changed, 275 insertions(+), 274 deletions(-) delete mode 100644 sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md create mode 100644 translated/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md diff --git a/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md b/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md deleted file mode 100644 index 877a3ee12f..0000000000 --- a/sources/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md +++ /dev/null @@ -1,274 +0,0 @@ -ictlyh Translating -Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis -============================================================================================= - -Because of the changes in the LFCS exam requirements effective Feb. 2, 2016, we are adding the necessary topics to the [LFCS series][1] published here. To prepare for this exam, your are highly encouraged to use the [LFCE series][2] as well. - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Linux-Process-Monitoring-Set-Process-Limits-Per-User.png) ->Monitor Linux Processes and Set Process Limits Per User – Part 14 - -Every Linux system administrator needs to know how to verify the integrity and availability of hardware, resources, and key processes. In addition, setting resource limits on a per-user basis must also be a part of his / her skill set. - -In this article we will explore a few ways to ensure that the system both hardware and the software is behaving correctly to avoid potential issues that may cause unexpected production downtime and money loss. - -### Linux Reporting Processors Statistics - -With **mpstat** you can view the activities for each processor individually or the system as a whole, both as a one-time snapshot or dynamically. - -In order to use this tool, you will need to install **sysstat**: - -``` -# yum update && yum install sysstat [On CentOS based systems] -# aptitutde update && aptitude install sysstat [On Ubuntu based systems] -# zypper update && zypper install sysstat [On openSUSE systems] -``` - -Read more about sysstat and it’s utilities at [Learn Sysstat and Its Utilities mpstat, pidstat, iostat and sar in Linux][3] - -Once you have installed **mpstat**, use it to generate reports of processors statistics. - -To display **3** global reports of CPU utilization (`-u`) for all CPUs (as indicated by `-P` ALL) at a 2-second interval, do: - -``` -# mpstat -P ALL -u 2 3 -``` - -### Sample Output - -``` -Linux 3.19.0-32-generic (tecmint.com) Wednesday 30 March 2016 _x86_64_ (4 CPU) - -11:41:07 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle -11:41:09 IST all 5.85 0.00 1.12 0.12 0.00 0.00 0.00 0.00 0.00 92.91 -11:41:09 IST 0 4.48 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 94.53 -11:41:09 IST 1 2.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 97.00 -11:41:09 IST 2 6.44 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 92.57 -11:41:09 IST 3 10.45 0.00 1.99 0.00 0.00 0.00 0.00 0.00 0.00 87.56 - -11:41:09 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle -11:41:11 IST all 11.60 0.12 1.12 0.50 0.00 0.00 0.00 0.00 0.00 86.66 -11:41:11 IST 0 10.50 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 88.50 -11:41:11 IST 1 14.36 0.00 1.49 2.48 0.00 0.00 0.00 0.00 0.00 81.68 -11:41:11 IST 2 2.00 0.50 1.00 0.00 0.00 0.00 0.00 0.00 0.00 96.50 -11:41:11 IST 3 19.40 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 79.60 - -11:41:11 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle -11:41:13 IST all 5.69 0.00 1.24 0.00 0.00 0.00 0.00 0.00 0.00 93.07 -11:41:13 IST 0 2.97 0.00 1.49 0.00 0.00 0.00 0.00 0.00 0.00 95.54 -11:41:13 IST 1 10.78 0.00 1.47 0.00 0.00 0.00 0.00 0.00 0.00 87.75 -11:41:13 IST 2 2.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00 -11:41:13 IST 3 6.93 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 92.57 - -Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle -Average: all 7.71 0.04 1.16 0.21 0.00 0.00 0.00 0.00 0.00 90.89 -Average: 0 5.97 0.00 1.16 0.00 0.00 0.00 0.00 0.00 0.00 92.87 -Average: 1 9.24 0.00 1.16 0.83 0.00 0.00 0.00 0.00 0.00 88.78 -Average: 2 3.49 0.17 1.00 0.00 0.00 0.00 0.00 0.00 0.00 95.35 -Average: 3 12.25 0.00 1.16 0.00 0.00 0.00 0.00 0.00 0.00 86.59 -``` - -To view the same statistics for a specific **CPU** (**CPU 0** in the following example), use: - -``` -# mpstat -P 0 -u 2 3 -``` - -### Sample Output - -``` -Linux 3.19.0-32-generic (tecmint.com) Wednesday 30 March 2016 _x86_64_ (4 CPU) - -11:42:08 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle -11:42:10 IST 0 3.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 96.50 -11:42:12 IST 0 4.08 0.00 0.00 2.55 0.00 0.00 0.00 0.00 0.00 93.37 -11:42:14 IST 0 9.74 0.00 0.51 0.00 0.00 0.00 0.00 0.00 0.00 89.74 -Average: 0 5.58 0.00 0.34 0.85 0.00 0.00 0.00 0.00 0.00 93.23 -``` - -The output of the above commands shows these columns: - -* `CPU`: Processor number as an integer, or the word all as an average for all processors. -* `%usr`: Percentage of CPU utilization while running user level applications. -* `%nice`: Same as `%usr`, but with nice priority. -* `%sys`: Percentage of CPU utilization that occurred while executing kernel applications. This does not include time spent dealing with interrupts or handling hardware. -* `%iowait`: Percentage of time when the given CPU (or all) was idle, during which there was a resource-intensive I/O operation scheduled on that CPU. A more detailed explanation (with examples) can be found [here][4]. -* `%irq`: Percentage of time spent servicing hardware interrupts. -* `%soft`: Same as `%irq`, but with software interrupts. -* `%steal`: Percentage of time spent in involuntary wait (steal or stolen time) when a virtual machine, as guest, is “winning” the hypervisor’s attention while competing for the CPU(s). This value should be kept as small as possible. A high value in this field means the virtual machine is stalling – or soon will be. -* `%guest`: Percentage of time spent running a virtual processor. -* `%idle`: percentage of time when CPU(s) were not executing any tasks. If you observe a low value in this column, that is an indication of the system being placed under a heavy load. In that case, you will need to take a closer look at the process list, as we will discuss in a minute, to determine what is causing it. - -To put the place the processor under a somewhat high load, run the following commands and then execute mpstat (as indicated) in a separate terminal: - -``` -# dd if=/dev/zero of=test.iso bs=1G count=1 -# mpstat -u -P 0 2 3 -# ping -f localhost # Interrupt with Ctrl + C after mpstat below completes -# mpstat -u -P 0 2 3 -``` - -Finally, compare to the output of **mpstat** under “normal” circumstances: - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Report-Processors-Related-Statistics.png) ->Report Linux Processors Related Statistics - -As you can see in the image above, **CPU 0** was under a heavy load during the first two examples, as indicated by the `%idle` column. - -In the next section we will discuss how to identify these resource-hungry processes, how to obtain more information about them, and how to take appropriate action. - -### Reporting Linux Processes - -To list processes sorting them by CPU usage, we will use the well known `ps` command with the `-eo` (to select all processes with user-defined format) and `--sort` (to specify a custom sorting order) options, like so: - -``` -# ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu -``` - -The above command will only show the `PID`, `PPID`, the command associated with the process, and the percentage of CPU and RAM usage sorted by the percentage of CPU usage in descending order. When executed during the creation of the .iso file, here’s the first few lines of the output: - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Linux-Processes-By-CPU-Usage.png) ->Find Linux Processes By CPU Usage - -Once we have identified a process of interest (such as the one with `PID=2822`), we can navigate to `/proc/PID` (`/proc/2822` in this case) and do a directory listing. - -This directory is where several files and subdirectories with detailed information about this particular process are kept while it is running. - -#### For example: - -* `/proc/2822/io` contains IO statistics for the process (number of characters and bytes read and written, among others, during IO operations). -* `/proc/2822/attr/current` shows the current SELinux security attributes of the process. -* `/proc/2822/cgroup` describes the control groups (cgroups for short) to which the process belongs if the CONFIG_CGROUPS kernel configuration option is enabled, which you can verify with: - -``` -# cat /boot/config-$(uname -r) | grep -i cgroups -``` - -If the option is enabled, you should see: - -``` -CONFIG_CGROUPS=y -``` - -Using `cgroups` you can manage the amount of allowed resource usage on a per-process basis as explained in Chapters 1 through 4 of the [Red Hat Enterprise Linux 7 Resource Management guide][5], in Chapter 9 of the [openSUSE System Analysis and Tuning guide][6], and in the [Control Groups section of the Ubuntu 14.04 Server documentation][7]. - -The `/proc/2822/fd` is a directory that contains one symbolic link for each file descriptor the process has opened. The following image shows this information for the process that was started in tty1 (the first terminal) to create the **.iso** image: - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Linux-Process-Information.png) ->Find Linux Process Information - -The above image shows that **stdin** (file descriptor **0**), **stdout** (file descriptor **1**), and **stderr** (file descriptor **2**) are mapped to **/dev/zero**, **/root/test.iso**, and **/dev/tty1**, respectively. - -More information about `/proc` can be found in “The `/proc` filesystem” document kept and maintained by Kernel.org, and in the Linux Programmer’s Manual. - -### Setting Resource Limits on a Per-User Basis in Linux - -If you are not careful and allow any user to run an unlimited number of processes, you may eventually experience an unexpected system shutdown or get locked out as the system enters an unusable state. To prevent this from happening, you should place a limit on the number of processes users can start. - -To do this, edit **/etc/security/limits.conf** and add the following line at the bottom of the file to set the limit: - -``` -* hard nproc 10 -``` - -The first field can be used to indicate either a user, a group, or all of them `(*)`, whereas the second field enforces a hard limit on the number of process (nproc) to **10**. To apply changes, logging out and back in is enough. - -Thus, let’s see what happens if a certain user other than root (either a legitimate one or not) attempts to start a shell fork bomb. If we had not implemented limits, this would initially launch two instances of a function, and then duplicate each of them in a neverending loop. Thus, it would eventually bringing your system to a crawl. - -However, with the above restriction in place, the fork bomb does not succeed but the user will still get locked out until the system administrator kills the process associated with it: - -![](http://www.tecmint.com/wp-content/uploads/2016/03/Shell-Fork-Bomb.png) ->Run Shell Fork Bomb - -**TIP**: Other possible restrictions made possible by **ulimit** are documented in the `limits.conf` file. - -### Linux Other Process Management Tools - -In addition to the tools discussed previously, a system administrator may also need to: - -**a)** Modify the execution priority (use of system resources) of a process using **renice**. This means that the kernel will allocate more or less system resources to the process based on the assigned priority (a number commonly known as “**niceness**” in a range from `-20` to `19`). - -The lower the value, the greater the execution priority. Regular users (other than root) can only modify the niceness of processes they own to a higher value (meaning a lower execution priority), whereas root can modify this value for any process, and may increase or decrease it. - -The basic syntax of renice is as follows: - -``` -# renice [-n] identifier -``` - -If the argument after the new priority value is not present (empty), it is set to PID by default. In that case, the niceness of process with **PID=identifier** is set to ``. - -**b)** Interrupt the normal execution of a process when needed. This is commonly known as [“killing” the process][9]. Under the hood, this means sending the process a signal to finish its execution properly and release any used resources in an orderly manner. - -To [kill a process][10], use the **kill** command as follows: - -``` -# kill PID -``` - -Alternatively, you can use [pkill to terminate all processes][11] of a given owner `(-u)`, or a group owner `(-G)`, or even those processes which have a PPID in common `(-P)`. These options may be followed by the numeric representation or the actual name as identifier: - -``` -# pkill [options] identifier -``` - -For example, - -``` -# pkill -G 1000 -``` - -will kill all processes owned by group with `GID=1000`. - -And, - -``` -# pkill -P 4993 -``` - -will kill all processes whose `PPID is 4993`. - -Before running a `pkill`, it is a good idea to test the results with `pgrep` first, perhaps using the `-l` option as well to list the processes’ names. It takes the same options but only returns the PIDs of processes (without taking any further action) that would be killed if `pkill` is used. - -``` -# pgrep -l -u gacanepa -``` - -This is illustrated in the next image: - -![](http://www.tecmint.com/wp-content/uploads/2016/03/List-User-Running-Processes.png) ->Find User Running Processes in Linux - -### Summary - -In this article we have explored a few ways to monitor resource usage in order to verify the integrity and availability of critical hardware and software components in a Linux system. - -We have also learned how to take appropriate action (either by adjusting the execution priority of a given process or by terminating it) under unusual circumstances. - -We hope the concepts explained in this tutorial have been helpful. If you have any questions or comments, feel free to reach us using the contact form below. - - - - - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ - -作者:[Gabriel Cánepa][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://www.tecmint.com/author/gacanepa/ -[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ -[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ -[3]: http://www.tecmint.com/sysstat-commands-to-monitor-linux/ -[4]: http://veithen.github.io/2013/11/18/iowait-linux.html -[5]: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Resource_Management_Guide/index.html -[6]: https://doc.opensuse.org/documentation/leap/tuning/html/book.sle.tuning/cha.tuning.cgroups.html -[7]: https://help.ubuntu.com/lts/serverguide/cgroups.html -[8]: http://man7.org/linux/man-pages/man5/proc.5.html -[9]: http://www.tecmint.com/kill-processes-unresponsive-programs-in-ubuntu/ -[10]: http://www.tecmint.com/find-and-kill-running-processes-pid-in-linux/ -[11]: http://www.tecmint.com/how-to-kill-a-process-in-linux/ diff --git a/translated/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md b/translated/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md new file mode 100644 index 0000000000..c6db6be7cc --- /dev/null +++ b/translated/tech/LFCS/Part 14 - Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis.md @@ -0,0 +1,275 @@ +LFCS 系列第十四讲: Linux 进程资源使用监控和基于每个用户的进程限制设置 +============================================================================================= + +由于 2016 年 2 月 2 号开始启用了新的 LFCS 考试要求,我们在已经发表的 [LFCS 系列][1] 基础上增加了一些必要的主题。为了准备考试,同时也建议你看看 [LFCE 系列][2] 文章。 + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Linux-Process-Monitoring-Set-Process-Limits-Per-User.png) +>第十四讲: 监控 Linux 进程并为每个用户设置进程限制 + +每个 Linux 系统管理员都应该知道如何验证硬件、资源和主要进程的完整性和可用性。另外,基于每个用户设置资源限制也是其中一项必备技能。 + +在这篇文章中,我们会介绍一些能够确保系统硬件和软件正常工作的方法,这些方法能够避免潜在的会导致生产环境下线或钱财损失的问题发生。 + +### 报告 Linux 进程统计信息 + +你可以使用 **mpstat** 单独查看每个处理器或者系统整体的活动,可以是每次一个快照或者动态更新。 + +为了使用这个工具,你首先需要安装 **sysstat**: + +``` +# yum update && yum install sysstat [基于 CentOS 的系统] +# aptitutde update && aptitude install sysstat [基于 Ubuntu 的系统] +# zypper update && zypper install sysstat [基于 openSUSE 的系统] +``` + +你可以在 [在 Linux 中学习 Sysstat 和其中的工具 mpstat、pidstat、iostat 和 sar][3] 了解更多和 sysstat 和其中的工具相关的信息。 + +安装完 **mpstat** 之后,就可以使用它生成处理器统计信息的报告。 + +你可以使用下面的命令每隔 2 秒显示所有 CPU(用 `-P` ALL 表示) 的 CPU 利用率(`-u`),共显示 **3** 次。 + +``` +# mpstat -P ALL -u 2 3 +``` + +### 事例输出 + +``` +Linux 3.19.0-32-generic (tecmint.com) Wednesday 30 March 2016 _x86_64_ (4 CPU) + +11:41:07 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:41:09 IST all 5.85 0.00 1.12 0.12 0.00 0.00 0.00 0.00 0.00 92.91 +11:41:09 IST 0 4.48 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 94.53 +11:41:09 IST 1 2.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 97.00 +11:41:09 IST 2 6.44 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 92.57 +11:41:09 IST 3 10.45 0.00 1.99 0.00 0.00 0.00 0.00 0.00 0.00 87.56 + +11:41:09 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:41:11 IST all 11.60 0.12 1.12 0.50 0.00 0.00 0.00 0.00 0.00 86.66 +11:41:11 IST 0 10.50 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 88.50 +11:41:11 IST 1 14.36 0.00 1.49 2.48 0.00 0.00 0.00 0.00 0.00 81.68 +11:41:11 IST 2 2.00 0.50 1.00 0.00 0.00 0.00 0.00 0.00 0.00 96.50 +11:41:11 IST 3 19.40 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 79.60 + +11:41:11 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:41:13 IST all 5.69 0.00 1.24 0.00 0.00 0.00 0.00 0.00 0.00 93.07 +11:41:13 IST 0 2.97 0.00 1.49 0.00 0.00 0.00 0.00 0.00 0.00 95.54 +11:41:13 IST 1 10.78 0.00 1.47 0.00 0.00 0.00 0.00 0.00 0.00 87.75 +11:41:13 IST 2 2.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00 +11:41:13 IST 3 6.93 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 92.57 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 7.71 0.04 1.16 0.21 0.00 0.00 0.00 0.00 0.00 90.89 +Average: 0 5.97 0.00 1.16 0.00 0.00 0.00 0.00 0.00 0.00 92.87 +Average: 1 9.24 0.00 1.16 0.83 0.00 0.00 0.00 0.00 0.00 88.78 +Average: 2 3.49 0.17 1.00 0.00 0.00 0.00 0.00 0.00 0.00 95.35 +Average: 3 12.25 0.00 1.16 0.00 0.00 0.00 0.00 0.00 0.00 86.59 +``` + +要查看指定的 **CPU**(在下面的例子中是 **CPU 0**),可以使用: + +``` +# mpstat -P 0 -u 2 3 +``` + +### 事例输出 + +``` +Linux 3.19.0-32-generic (tecmint.com) Wednesday 30 March 2016 _x86_64_ (4 CPU) + +11:42:08 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +11:42:10 IST 0 3.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 96.50 +11:42:12 IST 0 4.08 0.00 0.00 2.55 0.00 0.00 0.00 0.00 0.00 93.37 +11:42:14 IST 0 9.74 0.00 0.51 0.00 0.00 0.00 0.00 0.00 0.00 89.74 +Average: 0 5.58 0.00 0.34 0.85 0.00 0.00 0.00 0.00 0.00 93.23 +``` + +上面命令的输出包括这些列: + +* `CPU`: 整数表示的处理器号或者 all 表示所有处理器的平局值。 +* `%usr`: 运行在用户级别的应用的 CPU 利用率百分数。 +* `%nice`: 和 `%usr` 相同,但有 nice 优先级。 +* `%sys`: 执行内核应用的 CPU 利用率百分比。这不包括用于处理中断或者硬件请求的时间。 +* `%iowait`: 指定(或所有) CPU 的空闲时间百分比,这表示当前 CPU 处于 I/O 操作密集的状态。更详细的解释(附带示例)可以查看[这里][4]。 +* `%irq`: 用于处理硬件中断的时间所占百分比。 +* `%soft`: 和 `%irq` 相同,但是软中断。 +* `%steal`: 当一个客户虚拟机在竞争 CPU 时,非自主等待(时间片窃取)所占时间的百分比。应该保持这个值尽可能小。如果这个值很大,意味着虚拟机正在或者将要停止运转。 +* `%guest`: 运行虚拟处理器所用的时间百分比。 +* `%idle`: CPU(s) 没有运行任何任务所占时间的百分比。如果你观察到这个值很小,意味着系统负载很重。在这种情况下,你需要查看详细的进程列表、以及下面将要讨论的内容来确定这是什么原因导致的。 + +运行下面的命令使处理器处于极高负载,然后在另一个终端执行 mpstat 命令: + +``` +# dd if=/dev/zero of=test.iso bs=1G count=1 +# mpstat -u -P 0 2 3 +# ping -f localhost # Interrupt with Ctrl + C after mpstat below completes +# mpstat -u -P 0 2 3 +``` + +最后,和 “正常” 情况下 **mpstat** 的输出作比较: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Report-Processors-Related-Statistics.png) +> Linux 处理器相关统计信息报告 + +正如你在上面图示中看到的,在前面两个例子中,根据 `%idle` 的值可以判断 **CPU 0** 负载很高。 + +在下一部分,我们会讨论如何识别资源饥饿型进程,如何获取更多和它们相关的信息,以及如何采取恰当的措施。 + +### Linux 进程报告 + +我们可以使用有名的 `ps` 命令,用 `-eo` 选项(根据用户定义格式选中所有进程) 和 `--sort` 选项(指定自定义排序顺序)按照 CPU 使用率排序列出进程,例如: + +``` +# ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu +``` + +上面的命令只会显示 `PID`、`PPID`、和进程相关的命令、 CPU 使用率以及 RAM 使用率,并按照 CPU 使用率降序排序。创建 .iso 文件的时候运行上面的命令,下面是输出的前面几行: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Linux-Processes-By-CPU-Usage.png) +>根据 CPU 使用率查找进程 + +一旦我们找到了感兴趣的进程(例如 `PID=2822` 的进程),我们就可以进入 `/proc/PID`(本例中是 `/proc/2822`) 列出目录内容。 + +这个目录就是进程运行的时候保存多个关于该进程详细信息的文件和子目录的目录。 + +#### 例如: + +* `/proc/2822/io` 包括该进程的 IO 统计信息( IO 操作时的读写字符数)。 +* `/proc/2822/attr/current` 显示了进程当前的 SELinux 安全属性。 +* `/proc/2822/attr/current` shows the current SELinux security attributes of the process. +* `/proc/2822/cgroup` 如果启用了 CONFIG_CGROUPS 内核设置选项,这会显示该进程所属的控制组(简称 cgroups),你可以使用下面命令验证是否启用了 CONFIG_CGROUPS: + +``` +# cat /boot/config-$(uname -r) | grep -i cgroups +``` + +如果启用了该选项,你应该看到: + +``` +CONFIG_CGROUPS=y +``` + +根据 [红帽企业版 Linux 7 资源管理指南][5] 第一到四章的内容、[openSUSE 系统分析和调优指南][6] 第九章、[Ubuntu 14.04 服务器文档 Control Groups 章节][7],你可以使用 `cgroups` 管理每个进程允许使用的资源数目。 + +`/proc/2822/fd` 这个目录包含每个打开的描述进程的文件的符号链接。下面的截图显示了 tty1(第一个终端) 中创建 **.iso** 镜像进程的相关信息: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Find-Linux-Process-Information.png) +>查找 Linux 进程信息 + +上面的截图显示 **stdin**(文件描述符 **0**)、**stdout**(文件描述符 **1**)、**stderr**(文件描述符 **2**) 相应地被映射到 **/dev/zero**、 **/root/test.iso** 和 **/dev/tty1**。 + +更多关于 `/proc` 信息的可以查看 Kernel.org 维护的 “`/proc` 文件系统” 和 Linux 开发者手册。 + +### 在 Linux 中为每个用户设置资源限制 + +如果你不够小心、让任意用户使用不受限制的进程数,最终你可能会遇到意外的系统关机或者由于系统进入不可用的状态而被锁住。为了防止这种情况发生,你应该为用户可以启动的进程数目设置上限。 + +你可以在 **/etc/security/limits.conf** 文件末尾添加下面一行来设置限制: + +``` +* hard nproc 10 +``` + +第一个字段可以用来表示一个用户、组或者所有`(*)`, 第二个字段强制限制可以使用的进程数目(nproc) 为 **10**。退出并重新登录就可以使设置生效。 + +然后,让我们来看看非 root 用户(合法用户或非法用户) 试图引起 shell fork bomb[WiKi][12] 时会发生什么。如果我们没有设置限制, shell fork bomb 会无限制地启动函数的两个实例,然后无限循环地复制任意一个实例。最终导致你的系统卡死。 + +但是,如果使用了上面的限制,fort bomb 就不会成功,但用户仍然会被锁在外面直到系统管理员杀死相关的进程。 + +![](http://www.tecmint.com/wp-content/uploads/2016/03/Shell-Fork-Bomb.png) +>运行 Shell Fork Bomb + +**提示**: `limits.conf` 文件中可以查看其它 **ulimit** 可以更改的限制。 + +### 其它 Linux 进程管理工具 + +除了上面讨论的工具, 一个系统管理员还可能需要: + +**a)** 通过使用 **renice** 调整执行优先级(系统资源使用)。这意味着内核会根据分配的优先级(众所周知的 “**niceness**”,它是一个范围从 `-20` 到 `19` 的整数)给进程分配更多或更少的系统资源。 + +这个值越小,执行优先级越高。普通用户(而非 root)只能调高他们所有的进程的 niceness 值(意味着更低的优先级),而 root 用户可以调高或调低任何进程的 niceness 值。 + +renice 命令的基本语法如下: + +``` +# renice [-n] identifier +``` + +如果没有 new priority 后面的参数(为空),默认就是 PID。在这种情况下, **PID=identifier** 的进程的 niceness 值会被设置为 ``。 + +**b)** 需要的时候中断一个进程的正常执行。这也就是通常所说的 [“杀死”进程][9]。实质上,这意味着给进程发送一个信号使它恰当地结束运行并以有序的方式释放任何占用的资源。 + +按照下面的方式使用 **kill** 命令[杀死进程][10]: + +``` +# kill PID +``` + +另外,你也可以使用 [pkill][11] 结束指定用户`(-u)`、指定组`(-G)` 甚至有共同 PPID`(-P)` 的所有进程。这些选项后面可以使用数字或者名称表示的标识符。 + +``` +# pkill [options] identifier +``` + +例如: + +``` +# pkill -G 1000 +``` + +会杀死组 `GID=1000` 的所有进程。 + +而 + +``` +# pkill -P 4993 +``` + +会杀死 `PPID 是 4993` 的所有进程。 + +在运行 `pkill` 之前,先用 `pgrep` 测试结果、或者使用 `-l` 选项列出进程名称是一个很好的办法。它需要和 `pkill` 相同的参数、但是只会返回进程的 PID(而不会有其它操作),而 `pkill` 会杀死进程。 + +``` +# pgrep -l -u gacanepa +``` + +用下面的图片说明: + +![](http://www.tecmint.com/wp-content/uploads/2016/03/List-User-Running-Processes.png) +>在 Linux 中查找用户运行的进程 + +### 总结 + +在这篇文章中我们探讨了一些监控资源使用的方法,以便验证 Linux 系统中重要硬件和软件组件的完整性和可用性。 + +我们也学习了如何在特殊情况下采取恰当的措施(通过调整给定进程的执行优先级或者结束进程)。 + +我们希望本篇中介绍的概念能对你有所帮助。如果你有任何疑问或者评论,可以使用下面的联系方式联系我们。 + + + + + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ + +作者:[Gabriel Cánepa][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.tecmint.com/author/gacanepa/ +[1]: http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/ +[2]: http://www.tecmint.com/installing-network-services-and-configuring-services-at-system-boot/ +[3]: http://www.tecmint.com/sysstat-commands-to-monitor-linux/ +[4]: http://veithen.github.io/2013/11/18/iowait-linux.html +[5]: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Resource_Management_Guide/index.html +[6]: https://doc.opensuse.org/documentation/leap/tuning/html/book.sle.tuning/cha.tuning.cgroups.html +[7]: https://help.ubuntu.com/lts/serverguide/cgroups.html +[8]: http://man7.org/linux/man-pages/man5/proc.5.html +[9]: http://www.tecmint.com/kill-processes-unresponsive-programs-in-ubuntu/ +[10]: http://www.tecmint.com/find-and-kill-running-processes-pid-in-linux/ +[11]: http://www.tecmint.com/how-to-kill-a-process-in-linux/ +[12]: https://en.wikipedia.org/wiki/Fork_bomb From 7350ee58828b7c8dc93e6f22ecb0670ccbe63544 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 1 May 2016 22:01:02 +0800 Subject: [PATCH 396/582] =?UTF-8?q?20160501-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lxd --- ... 3 - LXD 2.0 - Your first LXD container.md | 559 ++++++++++++++++++ 1 file changed, 559 insertions(+) create mode 100644 sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md diff --git a/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md b/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md new file mode 100644 index 0000000000..6dac73d080 --- /dev/null +++ b/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md @@ -0,0 +1,559 @@ +Part 3 - LXD 2.0: Your first LXD container +========================================== + +This is the third blog post in this series about LXD 2.0. + +As there are a lot of commands involved with managing LXD containers, this post is rather long. If you’d instead prefer a quick step-by-step tour of those same commands, you can [try our online demo instead][1]! + +![](https://linuxcontainers.org/static/img/containers.png) + +### Creating and starting a new container + +As I mentioned in the previous posts, the LXD command line client comes pre-configured with a few image sources. Ubuntu is the best covered with official images for all its releases and architectures but there also are a number of unofficial images for other distributions. Those are community generated and maintained by LXC upstream contributors. + +### Ubuntu + +If all you want is the best supported release of Ubuntu, all you have to do is: + +``` +lxc launch ubuntu: +``` + +Note however that the meaning of this will change as new Ubuntu LTS releases are released. So for scripting use, you should stick to mentioning the actual release you want (see below). + +### Ubuntu 14.04 LTS + +To get the latest, tested, stable image of Ubuntu 14.04 LTS, you can simply run: + +``` +lxc launch ubuntu:14.04 +``` + +In this mode, a random container name will be picked. +If you prefer to specify your own name, you may instead do: + +``` +lxc launch ubuntu:14.04 c1 +``` + +Should you want a specific (non-primary) architecture, say a 32bit Intel image, you can do: + +``` +lxc launch ubuntu:14.04/i386 c2 +``` + +### Current Ubuntu development release + +The “ubuntu:” remote used above only provides official, tested images for Ubuntu. If you instead want untested daily builds, as is appropriate for the development release, you’ll want to use the “ubuntu-daily:” remote instead. + +``` +lxc launch ubuntu-daily:devel c3 +``` + +In this example, whatever the latest Ubuntu development release is will automatically be picked. + +You can also be explicit, for example by using the code name: + +``` +lxc launch ubuntu-daily:xenial c4 +``` + +### Latest Alpine Linux + +Alpine images are available on the “images:” remote and can be launched with: + +``` +lxc launch images:alpine/3.3/amd64 c5 +``` + +### And many more + +A full list of the Ubuntu images can be obtained with: + +``` +lxc image list ubuntu: +lxc image list ubuntu-daily: +``` + +And of all the unofficial images: + +``` +lxc image list images: +``` + +A list of all the aliases (friendly names) available on a given remote can also be obtained with (for the “ubuntu:” remote): + +``` +lxc image alias list ubuntu: +``` + +### Creating a container without starting it + +If you want to just create a container or a batch of container but not also start them immediately, you can just replace “lxc launch” by “lxc init”. All the options are identical, the only different is that it will not start the container for you after creation. + +``` +lxc init ubuntu: +``` + +### Information about your containers + +#### Listing the containers + +To list all your containers, you can do: + +``` +lxc list +``` + +There are a number of options you can pass to change what columns are displayed. On systems with a lot of containers, the default columns can be a bit slow (due to having to retrieve network information from the containers), you may instead want: + +``` +lxc list --fast +``` + +Which shows a different set of columns that require less processing on the server side. + +You can also filter based on name or properties: + +``` +stgraber@dakara:~$ lxc list security.privileged=true ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +| suse | RUNNING | 172.17.0.105 (eth0) | 2607:f2c0:f00f:2700:216:3eff:fef2:aff4 (eth0) | PERSISTENT | 0 | ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +``` + +In this example, only containers that are privileged (user namespace disabled) are listed. + +``` +stgraber@dakara:~$ lxc list --fast alpine ++-------------+---------+--------------+----------------------+----------+------------+ +| NAME | STATE | ARCHITECTURE | CREATED AT | PROFILES | TYPE | ++-------------+---------+--------------+----------------------+----------+------------+ +| alpine | RUNNING | x86_64 | 2016/03/20 02:11 UTC | default | PERSISTENT | ++-------------+---------+--------------+----------------------+----------+------------+ +| alpine-edge | RUNNING | x86_64 | 2016/03/20 02:19 UTC | default | PERSISTENT | ++-------------+---------+--------------+----------------------+----------+------------+ +``` + +And in this example, only the containers which have “alpine” in their names (complex regular expressions are also supported). + +#### Getting detailed information from a container + +As the list command obviously can’t show you everything about a container in a nicely readable way, you can query information about an individual container with: + +``` +lxc info +``` + +For example: + +``` +stgraber@dakara:~$ lxc info zerotier +Name: zerotier +Architecture: x86_64 +Created: 2016/02/20 20:01 UTC +Status: Running +Type: persistent +Profiles: default +Pid: 31715 +Processes: 32 +Ips: + eth0: inet 172.17.0.101 + eth0: inet6 2607:f2c0:f00f:2700:216:3eff:feec:65a8 + eth0: inet6 fe80::216:3eff:feec:65a8 + lo: inet 127.0.0.1 + lo: inet6 ::1 + lxcbr0: inet 10.0.3.1 + lxcbr0: inet6 fe80::c0a4:ceff:fe52:4d51 + zt0: inet 29.17.181.59 + zt0: inet6 fd80:56c2:e21c:0:199:9379:e711:b3e1 + zt0: inet6 fe80::79:e7ff:fe0d:5123 +Snapshots: + zerotier/blah (taken at 2016/03/08 23:55 UTC) (stateless) + ``` + +### Life-cycle management commands + +Those are probably the most obvious commands of any container or virtual machine manager but they still need to be covered. + +Oh and all of them accept multiple container names for batch operation. + +#### start + +Starting a container is as simple as: + +``` +lxc start +``` + +#### stop + +Stopping a container can be done with: + +``` +lxc stop +``` + +If the container isn’t cooperating (not responding to SIGPWR), you can force it with: + +``` +lxc stop --force +``` + +#### restart + +Restarting a container is done through: + +``` +lxc restart +``` + +And if not cooperating (not responding to SIGINT), you can force it with: + +``` +lxc restart --force +``` + +#### pause + +You can also “pause” a container. In this mode, all the container tasks will be sent the equivalent of a SIGSTOP which means that they will still be visible and will still be using memory but they won’t get any CPU time from the scheduler. + +This is useful if you have a CPU hungry container that takes quite a while to start but that you aren’t constantly using. You can let it start, then pause it, then start it again when needed. + +``` +lxc pause +``` + +#### delete + +Lastly, if you want a container to go away, you can delete it for good with: + +``` +lxc delete +``` + +Note that you will have to pass “–force” if the container is currently running. + +### Container configuration + +LXD exposes quite a few container settings, including resource limitation, control of container startup and a variety of device pass-through options. The full list is far too long to cover in this post but it’s available [here][2]. + +As far as devices go, LXD currently supports the following device types: + +- disk +This can be a physical disk or partition being mounted into the container or a bind-mounted path from the host. +- nic +A network interface. It can be a bridged virtual ethernet interrface, a point to point device, an ethernet macvlan device or an actual physical interface being passed through to the container. +- unix-block +A UNIX block device, e.g. /dev/sda +- unix-char +A UNIX character device, e.g. /dev/kvm +- none +This special type is used to hide a device which would otherwise be inherited through profiles. + +#### Configuration profiles + +The list of all available profiles can be obtained with: + +``` +lxc profile list +``` + +To see the content of a given profile, the easiest is to use: + +``` +lxc profile show +``` + +And should you want to change anything inside it, use: + +``` +lxc profile edit +``` + +You can change the list of profiles which apply to a given container with: + +``` +lxc profile apply ,,,... +``` + +#### Local configuration + +For things that are unique to a container and so don’t make sense to put into a profile, you can just set them directly against the container: + +``` +lxc config edit +``` + +This behaves the exact same way as “profile edit” above. + +Instead of opening the whole thing in a text editor, you can also modify individual keys with: + +``` +lxc config set +``` +Or add devices, for example: + +``` +lxc config device add my-container kvm unix-char path=/dev/kvm +``` + +Which will setup a /dev/kvm entry for the container named “my-container”. + +The same can be done for a profile using “lxc profile set” and “lxc profile device add”. + +#### Reading the configuration + +You can read the container local configuration with: + +``` +lxc config show +``` + +Or to get the expanded configuration (including all the profile keys): + +``` +lxc config show --expanded +``` + +For example: + +``` +stgraber@dakara:~$ lxc config show --expanded zerotier +name: zerotier +profiles: +- default +config: + security.nesting: "true" + user.a: b + volatile.base_image: a49d26ce5808075f5175bf31f5cb90561f5023dcd408da8ac5e834096d46b2d8 + volatile.eth0.hwaddr: 00:16:3e:ec:65:a8 + volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]' +devices: + eth0: + name: eth0 + nictype: macvlan + parent: eth0 + type: nic + limits.ingress: 10Mbit + limits.egress: 10Mbit + root: + path: / + size: 30GB + type: disk + tun: + path: /dev/net/tun + type: unix-char +ephemeral: false +``` + +That one is very convenient to check what will actually be applied to a given container. + +#### Live configuration update + +Note that unless indicated in the documentation, all configuration keys and device entries are applied to affected containers live. This means that you can add and remove devices or alter the security profile of running containers without ever having to restart them. + +### Getting a shell + +LXD lets you execute tasks directly into the container. The most common use of this is to get a shell in the container or to run some admin tasks. + +The benefit of this compared to SSH is that you’re not dependent on the container being reachable over the network or on any software or configuration being present inside the container. + +Execution environment + +One thing that’s a bit unusual with the way LXD executes commands inside the container is that it’s not itself running inside the container, which means that it can’t know what shell to use, what environment variables to set or what path to use for your home directory. + +Commands executed through LXD will always run as the container’s root user (uid 0, gid 0) with a minimal PATH environment variable set and a HOME environment variable set to /root. + +Additional environment variables can be passed through the command line or can be set permanently against the container through the “environment.” configuration options. + +#### Executing commands + +Getting a shell inside a container is typically as simple as: + +``` +lxc exec bash +``` + +That’s assuming the container does actually have bash installed. + + +More complex commands require the use of a separator for proper argument parsing: + +``` +lxc exec -- ls -lh / +``` + +To set or override environment variables, you can use the “–env” argument, for example: + +``` +stgraber@dakara:~$ lxc exec zerotier --env mykey=myvalue env | grep mykey +mykey=myvalue +``` + +### Managing files + +Because LXD has direct access to the container’s file system, it can directly read and write any file inside the container. This can be very useful to pull log files or exchange files with the container. + +#### Pulling a file from the container + +To get a file from the container, simply run: + +``` +lxc file pull / +``` + +For example: + +``` +stgraber@dakara:~$ lxc file pull zerotier/etc/hosts hosts +``` + +Or to read it to standard output: + +``` +stgraber@dakara:~$ lxc file pull zerotier/etc/hosts - +127.0.0.1 localhost + +# The following lines are desirable for IPv6 capable hosts +::1 ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +ff02::3 ip6-allhosts +``` + +#### Pushing a file to the container + +Push simply works the other way: + +``` +lxc file push / +``` + +#### Editing a file directly + +Edit is a convenience function which simply pulls a given path, opens it in your default text editor and then pushes it back to the container when you close it: + +``` +lxc file edit / +``` + +### Snapshot management + +LXD lets you snapshot and restore containers. Snapshots include the entirety of the container’s state (including running state if –stateful is used), which means all container configuration, container devices and the container file system. + +#### Creating a snapshot + +You can snapshot a container with: + +``` +lxc snapshot +``` + +It’ll get named snapX where X is an incrementing number. + +Alternatively, you can name your snapshot with: + +``` +lxc snapshot +``` + +#### Listing snapshots + +The number of snapshots a container has is listed in “lxc list”, but the actual snapshot list is only visible in “lxc info”. + +``` +lxc info +``` + +#### Restoring a snapshot + +To restore a snapshot, simply run: + +``` +lxc restore +``` + +#### Renaming a snapshot + +Renaming a snapshot can be done by moving it with: + +``` +lxc move / / +``` + +#### Creating a new container from a snapshot + +You can create a new container which will be identical to another container’s snapshot except for the volatile information being reset (MAC address): + +``` +lxc copy / +``` + +#### Deleting a snapshot + +And finally, to delete a snapshot, just run: + +``` +lxc delete / +``` + +### Cloning and renaming + +Getting clean distribution images is all nice and well, but sometimes you want to install a bunch of things into your container, configure it and then branch it into a bunch of other containers. + +#### Copying a container + +To copy a container and effectively clone it into a new one, just run: + +``` +lxc copy +``` + +The destination container will be identical in every way to the source one, except it won’t have any snapshot and volatile keys (MAC address) will be reset. + +#### Moving a container + +LXD lets you copy and move containers between hosts, but that will get covered in a later post. + +For now, the “move” command can be used to rename a container with: + +``` +lxc move +``` + +The only requirement is that the container be stopped, everything else will be kept exactly as it was, including the volatile information (MAC address and such). + +### Conclusion + +This pretty long post covered most of the commands you’re likely to use in day to day operation. + +Obviously a lot of those commands have extra arguments that let you be more efficient or tweak specific aspects of your LXD containers. The best way to learn about all of those is to go through the help for those you care about (–help). + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net + +And if you don’t want or can’t install LXD on your own machine, you can always [try it online instead][1]! + + +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.stgraber.org/author/stgraber/ +[1]: https://linuxcontainers.org/lxd/try-it +[2]: https://github.com/lxc/lxd/blob/master/doc/configuration.md From 2bb5c6a2c30540a40df2fc16c1c9aca18b451b9e Mon Sep 17 00:00:00 2001 From: alim0x Date: Mon, 2 May 2016 15:25:45 +0800 Subject: [PATCH 397/582] [translating]An Introduction to SELinux --- sources/tech/20160204 An Introduction to SELinux.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sources/tech/20160204 An Introduction to SELinux.md b/sources/tech/20160204 An Introduction to SELinux.md index dc5968ad00..dbf579c461 100644 --- a/sources/tech/20160204 An Introduction to SELinux.md +++ b/sources/tech/20160204 An Introduction to SELinux.md @@ -1,3 +1,5 @@ +alim0x translating + An Introduction to SELinux =============================== @@ -37,7 +39,7 @@ Sounds relatively simple, right? There’s actually more to it than that, but fo ### The Modes -SELinux has three modes (which can be set by the user). These modes will dictate how SELinux acts upon subject request. The modes are: +SELinux has three modes (which can be set by the user). These modes will dictate how SELinux acts upon subject request. The modes are: - Enforcing — SELinux policy is enforced and subjects will be denied or granted access to objects based on the SELinux policy rules @@ -57,7 +59,7 @@ You can change the SELinux mode from the command line or in the /etc/selinux/con 3. Issue the command setenforce 1 -4. Issue the command getenforce to ensure the mode has been set (Figure 2) +4. Issue the command getenforce to ensure the mode has been set (Figure 2) ![](https://www.linux.com/images/stories/66866/jack-selinux_b.png) From 0a465a9535c95e36475929d8585db99f03559961 Mon Sep 17 00:00:00 2001 From: ictlyh Date: Mon, 2 May 2016 16:01:03 +0800 Subject: [PATCH 398/582] Translating sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md --- ... Startup Process and Services SysVinit Systemd and Upstart.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md index 2a822e8a45..af3ac034be 100644 --- a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md +++ b/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md @@ -1,3 +1,4 @@ +ictlyh Translating Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart) ================================================================================ A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams. From f1259934f8af8b592b957f207416b753b5dcdbed Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 2 May 2016 21:35:38 +0800 Subject: [PATCH 399/582] =?UTF-8?q?20160502-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Part 1 - LXD 2.0: Introduction to LXD.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md new file mode 100644 index 0000000000..bc25ecc57c --- /dev/null +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -0,0 +1,156 @@ +Part 1 - LXD 2.0: Introduction to LXD +====================================== + +This is the first blog post [in this series about LXD 2.0][1]. + +![](https://linuxcontainers.org/static/img/containers.png) + +### A few common questions about LXD + +#### What’s LXD? + +At its simplest, LXD is a daemon which provides a REST API to drive LXC containers. + +Its main goal is to provide a user experience that’s similar to that of virtual machines but using Linux containers rather than hardware virtualization. + + +#### How does LXD relate to Docker/Rkt? + +This is by far the question we get the most, so lets address it immediately! + +LXD focuses on system containers, also called infrastructure containers. That is, a LXD container runs a full Linux system, exactly as it would be when run on metal or in a VM. + +Those containers will typically be long running and based on a clean distribution image. Traditional configuration management tools and deployment tools can be used with LXD containers exactly as you would use them for a VM, cloud instance or physical machine. + +In contrast, Docker focuses on ephemeral, stateless, minimal containers that won’t typically get upgraded or re-configured but instead just be replaced entirely. That makes Docker and similar projects much closer to a software distribution mechanism than a machine management tool. + +The two models aren’t mutually exclusive either. You can absolutely use LXD to provide full Linux systems to your users who can then install Docker inside their LXD container to run the software they want. + +#### Why LXD? + +We’ve been working on LXC for a number of years now. LXC is great at what it does, that is, it provides a very good set of low-level tools and a library to create and manage containers. + +However that kind of low-level tools aren’t necessarily very user friendly. They require a lot of initial knowledge to understand what they do and how they work. Keeping backward compatibility with older containers and deployment methods has also prevented LXC from using some security features by default, leading to more manual configuration for users. + +We see LXD as the opportunity to address those shortcomings. On top of being a long running daemon which lets us address a lot of the LXC limitations like dynamic resource restrictions, container migration and efficient live migration, it also gave us the opportunity to come up with a new default experience, that’s safe by default and much more user focused. + +### The main LXD components + +There are a number of main components that make LXD, those are typically visible in the LXD directory structure, in its command line client and in the API structure itself. + +#### Containers + +Containers in LXD are made of: + +- A filesystem (rootfs) +- A list of configuration options, including resource limits, environment, security options and more +- A bunch of devices like disks, character/block unix devices and network interfaces +- A set of profiles the container inherits configuration from (see below) +- Some properties (container architecture, ephemeral or persistent and the name) +- Some runtime state (when using CRIU for checkpoint/restore) + +#### Snapshots + +Container snapshots are identical to containers except for the fact that they are immutable, they can be renamed, destroyed or restored but cannot be modified in any way. + +It is worth noting that because we allow storing the container runtime state, this effectively gives us the concept of “stateful” snapshots. That is, the ability to rollback the container including its cpu and memory state at the time of the snapshot. + +#### Images + +LXD is image based, all LXD containers come from an image. Images are typically clean Linux distribution images similar to what you would use for a virtual machine or cloud instance. + +It is possible to “publish” a container, making an image from it which can then be used by the local or remote LXD hosts. + +Images are uniquely identified by their sha256 hash and can be referenced by using their full or partial hash. Because typing long hashes isn’t particularly user friendly, images can also have any number of properties applied to them, allowing for an easy search through the image store. Aliases can also be set as a one to one mapping between a unique user friendly string and an image hash. + +LXD comes pre-configured with three remote image servers (see remotes below): + +- “ubuntu:” provides stable Ubuntu images +- “ubunt-daily:” provides daily builds of Ubuntu +- “images:” is a community run image server providing images for a number of other Linux distributions using the upstream LXC templates +Remote images are automatically cached by the LXD daemon and kept for a number of days (10 by default) since they were last used before getting expired. + +Additionally LXD also automatically updates remote images (unless told otherwise) so that the freshest version of the image is always available locally. + +#### Profiles + +Profiles are a way to define container configuration and container devices in one place and then have it apply to any number of containers. + +A container can have multiple profiles applied to it. When building the final container configuration (known as expanded configuration), the profiles will be applied in the order they were defined in, overriding each other when the same configuration key or device is found. Then the local container configuration is applied on top of that, overriding anything that came from a profile. + +LXD ships with two pre-configured profiles: + +- “default” is automatically applied to all containers unless an alternative list of profiles is provided by the user. This profile currently does just one thing, define a “eth0” network device for the container. +- “docker” is a profile you can apply to a container which you want to allow to run Docker containers. It requests LXD load some required kernel modules, turns on container nesting and sets up a few device entries. + +#### Remotes + +As I mentioned earlier, LXD is a networked daemon. The command line client that comes with it can therefore talk to multiple remote LXD servers as well as image servers. + +By default, our command line client comes with the following remotes defined + +local: (default remote, talks to the local LXD daemon over a unix socket) +ubuntu: (Ubuntu image server providing stable builds) +ubuntu-daily: (Ubuntu image server providing daily builds) +images: (images.linuxcontainers.org image server) +Any combination of those remotes can be used with the command line client. + +You can also add any number of remote LXD hosts that were configured to listen to the network. Either anonymously if they are a public image server or after going through authentication when managing remote containers. + +It’s that remote mechanism that makes it possible to interact with remote image servers as well as copy or move containers between hosts. + +### Security + +One aspect that was core to our design of LXD was to make it as safe as possible while allowing modern Linux distributions to run inside it unmodified. + +The main security features used by LXD through its use of the LXC library are: + +- Kernel namespaces. Especially the user namespace as a way to keep everything the container does separate from the rest of the system. LXD uses the user namespace by default (contrary to LXC) and allows for the user to turn it off on a per-container basis (marking the container “privileged”) when absolutely needed. +- Seccomp. To filter some potentially dangerous system calls. +- AppArmor: To provide additional restrictions on mounts, socket, ptrace and file access. Specifically restricting cross-container communication. +- Capabilities. To prevent the container from loading kernel modules, altering the host system time, … +- CGroups. To restrict resource usage and prevent DoS attacks against the host. +Rather than exposing those features directly to the user as LXC would, we’ve built a new configuration language which abstracts most of those into something that’s more user friendly. For example, one can tell LXD to pass any host device into the container without having to also lookup its major/minor numbers to manually update the cgroup policy. + +Communications with LXD itself are secured using TLS 1.2 with a very limited set of allowed ciphers. When dealing with hosts outside of the system certificate authority, LXD will prompt the user to validate the remote fingerprint (SSH style), then cache the certificate for future use. + +### The REST API + +Everything that LXD does is done over its REST API. There is no other communication channel between the client and the daemon. + +The REST API can be access over a local unix socket, only requiring group membership for authentication or over a HTTPs socket using a client certificate for authentication. + +The structure of the REST API matches the different components described above and is meant to be very simple and intuitive to use. + +When a more complex communication mechanism is required, LXD will negotiate websockets and use those for the rest of the communication. This is used for interactive console session, container migration and for event notification. + +With LXD 2.0, comes the /1.0 stable API. We will not break backward compatibility within the /1.0 API endpoint however we may add extra features to it, which we’ll signal by declaring additional API extensions that the client can look for. + +### Containers at scale + +While LXD provides a good command line client, that client isn’t meant to manage thousands of containers on multiple hosts. For that kind of use cases, we have nova-lxd which is an OpenStack plugin that makes OpenStack treat LXD containers in the exact same way it would treat VMs. + +This allows for very large deployments of LXDs on a large number of hosts, using the OpenStack APIs to manage network, storage and load-balancing. + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net + +And if you can’t wait until the next few posts to try LXD, you can [take our guided tour online][2] and try it for free right from your web browser! + +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[1]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[2]: https://linuxcontainers.org/lxd/try-it From cfb84eb18396ae0bd4ed0c45127940d48a10abbe Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 2 May 2016 21:37:42 +0800 Subject: [PATCH 400/582] Update Part 3 - LXD 2.0 - Your first LXD container.md --- .../tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md b/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md index 6dac73d080..7bf9ba5b16 100644 --- a/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md +++ b/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md @@ -1,7 +1,7 @@ Part 3 - LXD 2.0: Your first LXD container ========================================== -This is the third blog post in this series about LXD 2.0. +This is the third blog post [in this series about LXD 2.0][0]. As there are a lot of commands involved with managing LXD containers, this post is rather long. If you’d instead prefer a quick step-by-step tour of those same commands, you can [try our online demo instead][1]! @@ -554,6 +554,7 @@ via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 -[a]:https://www.stgraber.org/author/stgraber/ +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ [1]: https://linuxcontainers.org/lxd/try-it [2]: https://github.com/lxc/lxd/blob/master/doc/configuration.md From 3ade3e75864c23dda26cea71bbe892735e7f62fa Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 2 May 2016 21:45:27 +0800 Subject: [PATCH 401/582] Update Part 1 - LXD 2.0: Introduction to LXD.md --- sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index bc25ecc57c..a80ad34453 100644 --- a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -143,7 +143,7 @@ And if you can’t wait until the next few posts to try LXD, you can [take our g -------------------------------------------------------------------------------- -via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ +via: https://www.stgraber.org/2016/03/11/lxd-2-0-introduction-to-lxd-112/ 作者:[Stéphane Graber][a] 译者:[译者ID](https://github.com/译者ID) From af4beaa4758365ad79ff2b2fac710dff0a983714 Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 2 May 2016 21:52:39 +0800 Subject: [PATCH 402/582] =?UTF-8?q?20160502-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...LXD 2.0: Installing and configuring LXD.md | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md diff --git a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md new file mode 100644 index 0000000000..56dc7ba607 --- /dev/null +++ b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md @@ -0,0 +1,230 @@ +Part 2 - LXD 2.0: Installing and configuring LXD +================================================= + +This is the second blog post in this series about LXD 2.0. + +![](https://linuxcontainers.org/static/img/containers.png) + +### Where to get LXD and how to install it + +There are many ways to get the latest and greatest LXD. We recommend you use LXD with the latest LXC and Linux kernel to benefit from all its features but we try to degrade gracefully where possible to support older Linux distributions. + +#### The Ubuntu archive + +All new releases of LXD get uploaded to the Ubuntu development release within a few minutes of the upstream release. That package is then used to seed all the other source of packages for Ubuntu users. + +If you are using the Ubuntu development release (16.04), you can simply do: + +``` +sudo apt install lxd +``` + +If you are running Ubuntu 14.04, we have backport packages available for you with: + +``` +sudo apt -t trusty-backports install lxd +``` + +#### The Ubuntu Core store + +Users of Ubuntu Core on the stable release can install LXD with: + +``` +sudo snappy install lxd.stgraber +``` + +#### The official Ubuntu PPA + +Users of other Ubuntu releases such as Ubuntu 15.10 can find LXD packages in the following PPA (Personal Package Archive): + +``` +sudo apt-add-repository ppa:ubuntu-lxc/stable +sudo apt update +sudo apt dist-upgrade +sudo apt install lxd +``` + +#### The Gentoo archive + +Gentoo has pretty recent LXD packages available too, you can install those with: + +``` +sudo emerge --ask lxd +``` + +#### From source + +Building LXD from source isn’t very difficult if you are used to building Go projects. Note however that you will need the LXC development headers. In order to run LXD, your distribution also needs a recent Linux kernel (3.13 at least), recent LXC (1.1.5 or higher), LXCFS and a version of shadow that supports user sub-uid/gid allocations. + +The latest instructions on building LXD from source can be found in the [upstream README][2]. + +### Networking on Ubuntu + +The Ubuntu packages provide you with a “lxdbr0” bridge as a convenience. This bridge comes unconfigured by default, offering only IPv6 link-local connectivity through an HTTP proxy. + +To reconfigure the bridge and add some IPv4 or IPv6 subnet to it, you can run: + +``` +sudo dpkg-reconfigure -p medium lxd +``` + +Or go through the whole LXD step by step setup (see below) with: + +``` +sudo lxd init +``` + +### Storage backends + +LXD supports a number of storage backends. It’s best to know what backend you want to use prior to starting to use LXD as we do not support moving existing containers or images between backends. + +A feature comparison table of the different backends can be found [here][3]. + +#### ZFS + +Our recommendation is ZFS as it supports all the features LXD needs to offer the fastest and most reliable container experience. This includes per-container disk quotas, immediate snapshot/restore, optimized migration (send/receive) and instant container creation from an image. It is also considered more mature than btrfs. + +To use ZFS with LXD, you first need ZFS on your system. + +If using Ubuntu 16.04, simply install it with: + +``` +sudo apt install zfsutils-linux +``` + +On Ubuntu 15.10, you can install it with: + +``` +sudo apt install zfsutils-linux zfs-dkms +``` + +And on older releases, you can use the zfsonlinux PPA: + +``` +sudo apt-add-repository ppa:zfs-native/stable +sudo apt update +sudo apt install ubuntu-zfs +``` + +To configure LXD to use it, simply run: + +``` +sudo lxd init +``` + +This will ask you a few questions about what kind of zfs configuration you’d like for your LXD and then configure it for you. + +#### btrfs + +If ZFS isn’t available, then btrfs offers the same level of integration with the exception that it doesn’t properly report disk usage inside the container (quotas do apply though). +btrfs also has the nice property that it can nest properly which ZFS doesn’t yet. That is, if you plan on using LXD inside LXD, btrfs is worth considering. + +LXD doesn’t need any configuration to use btrfs, you just need to make sure that /var/lib/lxd is stored on a btrfs filesystem and LXD will automatically make use of it for you. + +#### LVM + +If ZFS and btrfs aren’t an option for you, you can still get some of their benefits by using LVM instead. LXD uses LVM with thin provisioning, creating an LV for each image and container and using LVM snapshots as needed. + +To configure LXD to use LVM, create a LVM VG and run: + +``` +lxc config set storage.lvm_vg_name "THE-NAME-OF-YOUR-VG" +``` + +By default LXD uses ext4 as the filesystem for all the LVs. You can change that to XFS if you’d like: + +``` +lxc config set storage.lvm_fstype xfs +``` + +#### Simple directory + +If none of the above are an option for you, LXD will still work but without any of those advanced features. It will simply create a directory for each container, unpack the image tarballs for each container creation and do a full filesystem copy on container copy or snapshot. + +All features are supported except for disk quotas, but this is very wasteful of disk space and also very slow. If you have no other choice, it will work, but you should really consider one of the alternatives above. + + + +### More daemon configuration + +The complete list of configuration options for the LXD daemon can be found [here][4]. + +#### Network configuration + +By default LXD doesn’t listen to the network. The only way to talk to it is over a local unix socket at /var/lib/lxd/unix.socket. + +To have it listen to the network, there are two useful keys to set: + +``` +lxc config set core.https_address [::] +lxc config set core.trust_password some-secret-string +``` + +The first instructs LXD to bind the “::” IPv6 address, namely, all addresses on the machine. You can obviously replace this by a specific IPv4 or IPv6 address and can append the TCP port you’d like it to bind (defaults to 8443). + +The second sets a password which is used for remote clients to add themselves to the LXD certificate trust store. When adding the LXD host, they will be prompted for the password, if the password matches, the LXD daemon will store their client certificate and they’ll be trusted, never needing the password again (it can be changed or unset entirely at that point). + +You can also choose not to set a password and instead manually trust each new client by having them give you their “client.crt” file (from ~/.config/lxc) and add it to the trust store yourself with: + +``` +lxc config trust add client.crt +``` + +#### Proxy configuration + +In most setups, you’ll want the LXD daemon to fetch images from remote servers. + +If you are in an environment where you must go through a HTTP(s) proxy to reach the outside world, you’ll want to set a few configuration keys or alternatively make sure that the standard PROXY environment variables are set in the daemon’s environment. + +``` +lxc config set core.proxy_http http://squid01.internal:3128 +lxc config set core.proxy_https http://squid01.internal:3128 +lxc config set core.proxy_ignore_hosts image-server.local +``` + +With those, all transfers initiated by LXD will use the squid01.internal HTTP proxy, except for traffic to the server at image-server.local + +#### Image management + +LXD does dynamic image caching. When instructed to create a container from a remote image, it will download that image into its image store, mark it as cached and record its origin. After a number of days without seeing any use (10 by default), the image is automatically removed. Every few hours (6 by default), LXD also goes looking for a newer version of the image and updates its local copy. + +All of that can be configured through the following configuration options: + +``` +lxc config set images.remote_cache_expiry 5 +lxc config set images.auto_update_interval 24 +lxc config set images.auto_update_cached false +``` + +Here we are instructing LXD to override all of those defaults and instead cache images for up to 5 days since they were last used, look for image updates every 24 hours and only update images which were directly marked as such (–auto-update flag in lxc image copy) but not the images which were automatically cached by LXD. + +### Conclusion + +At this point you should have a working version of the latest LXD release, you can now start playing with it on your own or wait for the next blog post where we’ll create our first container and play with the LXD command line tool. + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net + +And if you don’t want or can’t install LXD on your own machine, you can always [try it online instead][1]! + + +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://linuxcontainers.org/lxd/try-it +[2]: https://github.com/lxc/lxd/blob/master/README.md +[3]: https://github.com/lxc/lxd/blob/master/doc/storage-backends.md +[4]: https://github.com/lxc/lxd/blob/master/doc/configuration.md From 4f1b1dc3c47ebbf402712202095ddf7b3574d610 Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 2 May 2016 21:53:48 +0800 Subject: [PATCH 403/582] Rename Part 3 - LXD 2.0 - Your first LXD container.md to Part 3 - LXD 2.0: Your first LXD container.md --- ...container.md => Part 3 - LXD 2.0: Your first LXD container.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/LXD/{Part 3 - LXD 2.0 - Your first LXD container.md => Part 3 - LXD 2.0: Your first LXD container.md} (100%) diff --git a/sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md b/sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md similarity index 100% rename from sources/tech/LXD/Part 3 - LXD 2.0 - Your first LXD container.md rename to sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md From 8246b259c4895eb1dd807f6a759c70df6721f3a8 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 3 May 2016 09:54:32 +0800 Subject: [PATCH 404/582] translating by ezio --- sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index a80ad34453..b228894c75 100644 --- a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -1,3 +1,5 @@ +translating by ezio + Part 1 - LXD 2.0: Introduction to LXD ====================================== From 4a07b2e0b8fbb460c4e063466c1be13064c352cc Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 3 May 2016 10:21:17 +0800 Subject: [PATCH 405/582] Update Part 1 - LXD 2.0: Introduction to LXD.md --- .../Part 1 - LXD 2.0: Introduction to LXD.md | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index b228894c75..4c33d2fc8f 100644 --- a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -1,46 +1,52 @@ translating by ezio -Part 1 - LXD 2.0: Introduction to LXD +Part 1 - LXD 2.0: LXD 入门 ====================================== -This is the first blog post [in this series about LXD 2.0][1]. +这是 [LXD 2.0 系列介绍文章][1]的第一篇。 ![](https://linuxcontainers.org/static/img/containers.png) -### A few common questions about LXD -#### What’s LXD? +### 关于 LXD 几个常见问题 + +#### 什么是 LXD ? At its simplest, LXD is a daemon which provides a REST API to drive LXC containers. Its main goal is to provide a user experience that’s similar to that of virtual machines but using Linux containers rather than hardware virtualization. +简单来说 LXD 就是一个提供了 REST API 的 LXC 容器管理器。 -#### How does LXD relate to Docker/Rkt? +LXD 最主要的目标就是使用 Linux 容器而不是硬件虚拟化向用户提供一种接近虚拟机的使用体验。 -This is by far the question we get the most, so lets address it immediately! +#### LXD 和 Docker/Rkt 又有什么关系呢 ? -LXD focuses on system containers, also called infrastructure containers. That is, a LXD container runs a full Linux system, exactly as it would be when run on metal or in a VM. +这是一个最常被问起的问题,现在就让我们直接指出其中的不同吧。 -Those containers will typically be long running and based on a clean distribution image. Traditional configuration management tools and deployment tools can be used with LXD containers exactly as you would use them for a VM, cloud instance or physical machine. +LXD 聚焦于系统容器,通常也被称为架构容器。这就是说 LXD 容器实际上运行了一个完整的 Linux 操作系统,就像在裸机或虚拟机上运行的一样。 -In contrast, Docker focuses on ephemeral, stateless, minimal containers that won’t typically get upgraded or re-configured but instead just be replaced entirely. That makes Docker and similar projects much closer to a software distribution mechanism than a machine management tool. +这些容器一般都是基于一个干净的发布镜像,会长时间运行。传统的配置管理工具和发布工具可以和 LXD 一起使用,就像你在虚拟机、云或者物理机器上使用一样。 -The two models aren’t mutually exclusive either. You can absolutely use LXD to provide full Linux systems to your users who can then install Docker inside their LXD container to run the software they want. +相对的, Docker 关注于短视的、无状态的最小容器,这些容器通常并不会升级或者重新配置,它们一般都是作为一个整体被替换掉。这就使得 Docker 和类似的项目更像是一种软件发布机制,而不是一个机器管理工具。 -#### Why LXD? +这两种模型并不是完全互斥的。你完全可以使用 LXD 为你的用户提供一个完整的 Linux 系统,而他们可以在 LXD 上面安装 Docker 来运行他们想要的软件。 -We’ve been working on LXC for a number of years now. LXC is great at what it does, that is, it provides a very good set of low-level tools and a library to create and manage containers. -However that kind of low-level tools aren’t necessarily very user friendly. They require a lot of initial knowledge to understand what they do and how they work. Keeping backward compatibility with older containers and deployment methods has also prevented LXC from using some security features by default, leading to more manual configuration for users. +#### 为什么要用 LXD? -We see LXD as the opportunity to address those shortcomings. On top of being a long running daemon which lets us address a lot of the LXC limitations like dynamic resource restrictions, container migration and efficient live migration, it also gave us the opportunity to come up with a new default experience, that’s safe by default and much more user focused. +我们已经在 LXC 上工作了好几个年头了。 LXC 成功的实现了它的目标,它提供了一系列很棒的底层工具和库来创建、管理容器。 -### The main LXD components +然而这些底层工具的使用界面对用户并不是很友好。他们需要用户有很多的基础知识来理解他们要干什么和怎么去干。同时向后兼容旧的容器和部署策略已经阻止 LXC 默认使用一些安全特性,这导致用户需要进行更多人工操作来实现本可以自动完成的工作。 + +我们把 LXD 作为解决这些缺陷的一个很好的机会。作为一个长时间运行的守护进程可以让我们定位到很多 LXC 的限制,比如动态资源限制,容器迁移和有效的进行在线迁移,它同时也给了我们机会来提供一个新的默认体验:默认开启安全特性,对用户更加友好。 + + +### LXD 的主要组件 There are a number of main components that make LXD, those are typically visible in the LXD directory structure, in its command line client and in the API structure itself. -#### Containers +#### 容器 Containers in LXD are made of: @@ -51,13 +57,13 @@ Containers in LXD are made of: - Some properties (container architecture, ephemeral or persistent and the name) - Some runtime state (when using CRIU for checkpoint/restore) -#### Snapshots +#### 快照 Container snapshots are identical to containers except for the fact that they are immutable, they can be renamed, destroyed or restored but cannot be modified in any way. It is worth noting that because we allow storing the container runtime state, this effectively gives us the concept of “stateful” snapshots. That is, the ability to rollback the container including its cpu and memory state at the time of the snapshot. -#### Images +#### 镜像 LXD is image based, all LXD containers come from an image. Images are typically clean Linux distribution images similar to what you would use for a virtual machine or cloud instance. @@ -74,7 +80,7 @@ Remote images are automatically cached by the LXD daemon and kept for a number o Additionally LXD also automatically updates remote images (unless told otherwise) so that the freshest version of the image is always available locally. -#### Profiles +#### 配置 Profiles are a way to define container configuration and container devices in one place and then have it apply to any number of containers. @@ -85,7 +91,7 @@ LXD ships with two pre-configured profiles: - “default” is automatically applied to all containers unless an alternative list of profiles is provided by the user. This profile currently does just one thing, define a “eth0” network device for the container. - “docker” is a profile you can apply to a container which you want to allow to run Docker containers. It requests LXD load some required kernel modules, turns on container nesting and sets up a few device entries. -#### Remotes +#### 远程 As I mentioned earlier, LXD is a networked daemon. The command line client that comes with it can therefore talk to multiple remote LXD servers as well as image servers. @@ -101,7 +107,7 @@ You can also add any number of remote LXD hosts that were configured to listen t It’s that remote mechanism that makes it possible to interact with remote image servers as well as copy or move containers between hosts. -### Security +### 安全性 One aspect that was core to our design of LXD was to make it as safe as possible while allowing modern Linux distributions to run inside it unmodified. @@ -116,7 +122,7 @@ Rather than exposing those features directly to the user as LXC would, we’ve b Communications with LXD itself are secured using TLS 1.2 with a very limited set of allowed ciphers. When dealing with hosts outside of the system certificate authority, LXD will prompt the user to validate the remote fingerprint (SSH style), then cache the certificate for future use. -### The REST API +### REST 接口 Everything that LXD does is done over its REST API. There is no other communication channel between the client and the daemon. @@ -128,13 +134,13 @@ When a more complex communication mechanism is required, LXD will negotiate webs With LXD 2.0, comes the /1.0 stable API. We will not break backward compatibility within the /1.0 API endpoint however we may add extra features to it, which we’ll signal by declaring additional API extensions that the client can look for. -### Containers at scale +### 容器规模化 While LXD provides a good command line client, that client isn’t meant to manage thousands of containers on multiple hosts. For that kind of use cases, we have nova-lxd which is an OpenStack plugin that makes OpenStack treat LXD containers in the exact same way it would treat VMs. This allows for very large deployments of LXDs on a large number of hosts, using the OpenStack APIs to manage network, storage and load-balancing. -### Extra information +### 额外信息 The main LXD website is at: Development happens on Github at: From cc2a52290c4381863422aacc022e7a3a9a96a427 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 3 May 2016 10:43:24 +0800 Subject: [PATCH 406/582] translating by ezio --- .../LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md index 56dc7ba607..5f6f492ce1 100644 --- a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md +++ b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md @@ -1,3 +1,5 @@ +translating by ezio + Part 2 - LXD 2.0: Installing and configuring LXD ================================================= From 860c74a8234c5c14253664161bdca1e377ee7761 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 3 May 2016 11:13:26 +0800 Subject: [PATCH 407/582] Update Part 2 - LXD 2.0: Installing and configuring LXD.md --- ...LXD 2.0: Installing and configuring LXD.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md index 5f6f492ce1..079b91c429 100644 --- a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md +++ b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md @@ -1,43 +1,43 @@ translating by ezio -Part 2 - LXD 2.0: Installing and configuring LXD +Part 2 - LXD 2.0: 安装与配置 ================================================= -This is the second blog post in this series about LXD 2.0. +这是 LXD 2.0 [系列介绍文章][2]的第二篇。 ![](https://linuxcontainers.org/static/img/containers.png) -### Where to get LXD and how to install it +### 安装篇 There are many ways to get the latest and greatest LXD. We recommend you use LXD with the latest LXC and Linux kernel to benefit from all its features but we try to degrade gracefully where possible to support older Linux distributions. -#### The Ubuntu archive +#### Ubuntu 标准版 All new releases of LXD get uploaded to the Ubuntu development release within a few minutes of the upstream release. That package is then used to seed all the other source of packages for Ubuntu users. -If you are using the Ubuntu development release (16.04), you can simply do: +如果使用 Ubuntu 16.04 则可以直接安装: ``` sudo apt install lxd ``` -If you are running Ubuntu 14.04, we have backport packages available for you with: +如果运行的是 Ubuntu 14.04,可以这样安装: ``` sudo apt -t trusty-backports install lxd ``` -#### The Ubuntu Core store +#### Ubuntu Core -Users of Ubuntu Core on the stable release can install LXD with: +使用Ubuntu Core 稳定版的用户可以使用下面的命令安装 LXD: ``` sudo snappy install lxd.stgraber ``` -#### The official Ubuntu PPA +#### ubuntu 官方 PPA -Users of other Ubuntu releases such as Ubuntu 15.10 can find LXD packages in the following PPA (Personal Package Archive): +是哟个其他 Ubuntu 发布版 —— 比如 Ubuntu 15.10 —— 的用户可以添加下面的 PPA (Personal Package Archive) 来安装: ``` sudo apt-add-repository ppa:ubuntu-lxc/stable @@ -46,21 +46,21 @@ sudo apt dist-upgrade sudo apt install lxd ``` -#### The Gentoo archive +#### Gentoo -Gentoo has pretty recent LXD packages available too, you can install those with: +Gentoo 已经有了最新的 LXD 安装包,你可以直接安装: ``` sudo emerge --ask lxd ``` -#### From source +#### 源代码 Building LXD from source isn’t very difficult if you are used to building Go projects. Note however that you will need the LXC development headers. In order to run LXD, your distribution also needs a recent Linux kernel (3.13 at least), recent LXC (1.1.5 or higher), LXCFS and a version of shadow that supports user sub-uid/gid allocations. The latest instructions on building LXD from source can be found in the [upstream README][2]. -### Networking on Ubuntu +### ubuntu 上的网络配置 The Ubuntu packages provide you with a “lxdbr0” bridge as a convenience. This bridge comes unconfigured by default, offering only IPv6 link-local connectivity through an HTTP proxy. @@ -76,7 +76,7 @@ Or go through the whole LXD step by step setup (see below) with: sudo lxd init ``` -### Storage backends +### 存储系统 LXD supports a number of storage backends. It’s best to know what backend you want to use prior to starting to use LXD as we do not support moving existing containers or images between backends. @@ -86,21 +86,22 @@ A feature comparison table of the different backends can be found [here][3]. Our recommendation is ZFS as it supports all the features LXD needs to offer the fastest and most reliable container experience. This includes per-container disk quotas, immediate snapshot/restore, optimized migration (send/receive) and instant container creation from an image. It is also considered more mature than btrfs. -To use ZFS with LXD, you first need ZFS on your system. -If using Ubuntu 16.04, simply install it with: +要和 LXD 一起使用 ZFS ,你需要首先在你的系统上安装 ZFS。 + +如果你是用的是 Ubuntu 16.04 , 你只需要简单的使用命令安装: ``` sudo apt install zfsutils-linux ``` -On Ubuntu 15.10, you can install it with: +在 Ubuntu 15.10 上你可以这样安装: ``` sudo apt install zfsutils-linux zfs-dkms ``` -And on older releases, you can use the zfsonlinux PPA: +如果是更旧的版本,你需要这样安装: ``` sudo apt-add-repository ppa:zfs-native/stable @@ -108,7 +109,7 @@ sudo apt update sudo apt install ubuntu-zfs ``` -To configure LXD to use it, simply run: +配置 LXD 只需要简单的执行下面的命令: ``` sudo lxd init @@ -139,7 +140,7 @@ By default LXD uses ext4 as the filesystem for all the LVs. You can change that lxc config set storage.lvm_fstype xfs ``` -#### Simple directory +#### 简单目录 If none of the above are an option for you, LXD will still work but without any of those advanced features. It will simply create a directory for each container, unpack the image tarballs for each container creation and do a full filesystem copy on container copy or snapshot. @@ -147,11 +148,11 @@ All features are supported except for disk quotas, but this is very wasteful of -### More daemon configuration +### 配置篇 The complete list of configuration options for the LXD daemon can be found [here][4]. -#### Network configuration +#### 网络配置 By default LXD doesn’t listen to the network. The only way to talk to it is over a local unix socket at /var/lib/lxd/unix.socket. @@ -172,7 +173,7 @@ You can also choose not to set a password and instead manually trust each new cl lxc config trust add client.crt ``` -#### Proxy configuration +#### 代理配置 In most setups, you’ll want the LXD daemon to fetch images from remote servers. @@ -186,7 +187,7 @@ lxc config set core.proxy_ignore_hosts image-server.local With those, all transfers initiated by LXD will use the squid01.internal HTTP proxy, except for traffic to the server at image-server.local -#### Image management +#### 镜像管理 LXD does dynamic image caching. When instructed to create a container from a remote image, it will download that image into its image store, mark it as cached and record its origin. After a number of days without seeing any use (10 by default), the image is automatically removed. Every few hours (6 by default), LXD also goes looking for a newer version of the image and updates its local copy. @@ -200,19 +201,18 @@ lxc config set images.auto_update_cached false Here we are instructing LXD to override all of those defaults and instead cache images for up to 5 days since they were last used, look for image updates every 24 hours and only update images which were directly marked as such (–auto-update flag in lxc image copy) but not the images which were automatically cached by LXD. -### Conclusion +### 总结 At this point you should have a working version of the latest LXD release, you can now start playing with it on your own or wait for the next blog post where we’ll create our first container and play with the LXD command line tool. -### Extra information +### 额外信息 -The main LXD website is at: -Development happens on Github at: -Mailing-list support happens on: -IRC support happens in: #lxcontainers on irc.freenode.net - -And if you don’t want or can’t install LXD on your own machine, you can always [try it online instead][1]! +LXD 的主站在: +LXD 的 GitHub 仓库: +LXD 的邮件列表: +LXD 的 IRC 频道: #lxcontainers on irc.freenode.net +如果你不想或者不能在你的机器上安装 LXD ,你可以[试试在线版的 LXD][1] 。 -------------------------------------------------------------------------------- From 981b20fbd4060aa3aab0382361abba76b45102b0 Mon Sep 17 00:00:00 2001 From: alim0x Date: Tue, 3 May 2016 21:52:36 +0800 Subject: [PATCH 408/582] [translated]20160204 An Introduction to SELinux --- .../20160204 An Introduction to SELinux.md | 138 ----------------- .../20160204 An Introduction to SELinux.md | 139 ++++++++++++++++++ 2 files changed, 139 insertions(+), 138 deletions(-) delete mode 100644 sources/tech/20160204 An Introduction to SELinux.md create mode 100644 translated/tech/20160204 An Introduction to SELinux.md diff --git a/sources/tech/20160204 An Introduction to SELinux.md b/sources/tech/20160204 An Introduction to SELinux.md deleted file mode 100644 index dbf579c461..0000000000 --- a/sources/tech/20160204 An Introduction to SELinux.md +++ /dev/null @@ -1,138 +0,0 @@ -alim0x translating - -An Introduction to SELinux -=============================== - -![](https://www.linux.com/images/stories/66866/jack2-selinux_a.png) - ->Figure 1: The getenforce command reporting SELinux is set to Enforcing. - -Way back in kernel 2.6, a new security system was introduced to provide a mechanism for supporting access control security policies. This system was [Security Enhanced Linux (SELinux)][1] and was introduced by the [National Security Administration (NSA)][2] to incorporate a strong Mandatory Access Control architecture into the subsystems of the Linux kernel. - -If you’ve spent your entire Linux career either disabling or ignoring SELinux, this article is dedicated to you — an introduction to the system that lives “under the hood” of your Linux desktop or server to limit privilege or even eliminate the possibility of damage should programs or daemons become compromised. - -Before I begin, you should know that SELinux is primarily a tool for Red Hat Linux and its derivatives. The likes of Ubuntu and SUSE (and their derivatives) make use of AppArmor. SELinux and AppArmor are significantly different. You can install SELinux on SUSE, openSUSE, Ubuntu, etc., but it’s an incredibly challenging task unless you’re very well versed in Linux. - -With that said, let me introduce you to SELinux. - -### DAC vs. MAC - -The old-guard standard form of access control on Linux was Discretionary Access Control (DAC). With this form, an application or daemon runs under either User ID (UID) or Set owner User ID (SUID) and holds object permissions (for files, sockets, and other processes) of that user. This made it easier for malicious code to be run with a permission set that would grant it access to crucial subsystems. - -Mandatory Access Control (MAC), on the other hand, enforces the separation of information based on both confidentiality and integrity to enable the confinement of damage. The confinement unit operates independently of the traditional Linux security mechanisms and has no concept of a superuser. - -### How SELinux Works - -Consider these pieces of the SELinux puzzle: - -- Subjects - -- Objects - -- Policy - -- Mode - -When a subject (such as an application) attempts to access an object (such as a file), the SELinux Security Server (inside the kernel) runs a check against the Policy Database. Depending on the current mode, if the SELinux Security Server grants permission, the subject is given access to the object. If the SELinux Security Server denies permission, a denied message is logged in /var/log/messages. - -Sounds relatively simple, right? There’s actually more to it than that, but for the sake of introduction, those are the important steps. - -### The Modes - -SELinux has three modes (which can be set by the user). These modes will dictate how SELinux acts upon subject request. The modes are: - -- Enforcing — SELinux policy is enforced and subjects will be denied or granted access to objects based on the SELinux policy rules - -- Permissive — SELinux policy is not enforced and does not deny access, although denials are logged - -- Disabled — SELinux is completely disabled - -Out of the box, most systems have SELinux set to Enforcing. How do you know what mode your system is currently running? You can use a simple command to report the mode; that command is getenforce. This command is incredibly simple to use (as it has the singular purpose of reporting the SELinux mode). To use this tool, open up a terminal window and issue the command getenforce. The report will come back with either, Enforcing, Permissive, or Disabled (see Figure 1 above). - -Setting the SELinux mode is actually quite simple — depending upon the mode you want to set. Understand this: It is never recommended to set SELinux to Disable. Why? When you do this, you open up the possibility that files on your disk will be mislabeled and require a re-label to fix. It is also not possible to change the mode of a system when it has been booted in Disabled mode. Your best modes are either Enabled or Permissive. - -You can change the SELinux mode from the command line or in the /etc/selinux/config file. To set the mod via command line, you use the setenforce tool. To set the mode to Enforcing, do the following: - -1. Open up a terminal window - -2. Issue the command su and then enter your administrator password - -3. Issue the command setenforce 1 - -4. Issue the command getenforce to ensure the mode has been set (Figure 2) - -![](https://www.linux.com/images/stories/66866/jack-selinux_b.png) - ->Figure 2: Setting the SELinux mode to Enforcing. - -To set the mode to Permissive, do this: - -1. Open up a terminal window - -2. Issue the command su and then enter your administrator password - -3. Issue the command setenforce 0 - -4. Issue the command getenforce to ensure the mode has been set (Figure 3) - -![](https://www.linux.com/images/stories/66866/jack-selinux_c.png) - ->Figure 3: Setting the SELinux mode to Permissive. - -NOTE: Setting the mode via command line overrides the setting in the SELinux config file. - -If you’d prefer to set the mode in the SELinux command file, open up that particular file in your favorite text editor and look for the line: - ->SELINUX=permissive - -You can change the mode to suit your preference and then save the file. - -There is also a third method of changing the SELinux mode (via the bootloader), but I don’t recommend it for a beginning user. - -### Policy Type - -There are two types of SELinux policies: - -- Targeted — only targeted network daemons (dhcpd, httpd, named, nscd, ntpd, portmap, snmpd, squid, and syslogd) are protected - -- Strict — full SELinux protection for all daemons - -You can change the policy type within the /etc/selinux/config file. Open the file in your favorite text editor and look for the line: - ->SELINUXTYPE=targeted - -Change the option in that line to either targeted or strict to match your needs. - -### Checking the Full SELinux Status - -There is a handy SELinux tool you might want to know about that will display a detailed status report of your SELinux-enabled system. The command is run from a terminal window like this: - ->sestatus -v - -You should see output similar to that shown in Figure 4. - -![](https://www.linux.com/images/stories/66866/jack-selinux_d.png) - ->Figure 4: The output of the sestatus -v command. - -### Just Scratching the Surface - -As you might expect, I have only scratched the surface of SELinux. It is quite a complex system and will require diving much deeper to obtain a solid understanding of how it works for you and how you can make it better work for your desktops and servers. I still have yet to cover troubleshooting and creating custom SELinux policies. - -SELinux is a powerful tool that any Linux administrator should know. Now that you’ve been introduced, I highly recommend you return to Linux.com (when more tutorials on the subject are posted) or take a look at the [NSA SELinux documentation][3] for very in-depth tutorials. - - --------------------------------------------------------------------------------- - -via: https://www.linux.com/learn/docs/ldp/883671-an-introduction-to-selinux - -作者:[Jack Wallen][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://www.linux.com/community/forums/person/93 -[1]: http://selinuxproject.org/page/Main_Page -[2]: https://www.nsa.gov/research/selinux/ -[3]: https://www.nsa.gov/research/selinux/docs.shtml diff --git a/translated/tech/20160204 An Introduction to SELinux.md b/translated/tech/20160204 An Introduction to SELinux.md new file mode 100644 index 0000000000..bc82106189 --- /dev/null +++ b/translated/tech/20160204 An Introduction to SELinux.md @@ -0,0 +1,139 @@ +An Introduction to SELinux +=============================== + +![](https://www.linux.com/images/stories/66866/jack2-selinux_a.png) + +>图 1:getenforce 命令显示 SELinux 的状态是 Enforcing 启用状态。 + +回到 Kernel 2.6 时代,那时候引入了一个新的安全系统,用以提供访问控制安全策略的机制。这个系统就是 [Security Enhanced Linux (SELinux)][1],它是由[美国国家安全局(NSA)][2]引入的,合并进 Linux 内核子系统的强制控制访问架构实现。 + +如果你在你整个 Linux 生涯中禁用或忽略 SELinux,这篇文章就是为你量身定制的——对存在于你的 Linux 桌面或服务器之下的 SELinux 系统的介绍,它能够限制权限,甚至消除程序或守护进程的妥协而造成破坏的可能性。 + +在我开始之前,你应该了解的是 SELinux 主要是红帽 Red Hat Linux 以及它的衍生发行版的一个工具。这就类似 Ubuntu 和 SUSE(以及它们的衍生发行版)使用 AppArmor 一样。SELinux 和 AppArmor 有显著的不同。你可以在 SUSE,openSUSE,Ubuntu 等等发行版上安装 SELinux,但这是项难以置信的挑战,除非你十分精通 Linux。 + +说了这么多,让我来向你介绍 SELinux。 + +### DAC vs. MAC + +Linux 上保守的访问控制标准是自主访问控制(Discretionary Access Control,DAC)。在这种形式下,一个软件或守护进程运行在 User ID(UID)或 Set User ID(SUID)下,并且拥有该用户的目标权限(文件,套接字,以及其它进程)。这使得恶意代码很容易运行在特定权限之下,从而取得访问关键的子系统的权限。 + +另一方面,强制访问控制(Mandatory Access Control,MAC)基于保密性和完整性强制信息的隔离以限制破坏。限制单元相对于传统的 Linux 安全机制独立运作,并且没有超级用户的概念。 + +### SELinux 如何工作 + +考虑一下 SELinux 的相关概念: + +- Subjects 主体 + +- Objects 目标 + +- Policy 策略 + +- Mode 模式 + +当一个主体(Subject,如一个程序)尝试访问一个目标(Object,如一个文件),SELinux 安全服务器(SELinux Security Server,在内核中)从策略数据库中运行一个检查。基于当前的模式,如果 SELinux 安全服务器授予权限,该主体就能够访问该目标。如果 SELinux 安全服务器拒绝了权限,一条拒绝信息会被记录到 /var/log/messages。 + +听起来相对比较简单是不是?实际上过程要更加复杂,但为了简单介绍,这些是重要的步骤。 + +### 模式 + +SELinux 有三个模式(可以由用户设置)。这些模式将规定 SELinux 在主体请求时如何应对。这些模式是: + +- Enforcing — SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的访问 + +- Permissive — SELinux 策略不强制执行,不实际拒绝访问,但会有警告信息且拒绝会写入日志 + +- Disabled — 完全禁用 SELinux + +默认情况下,大部分系统的 SELinux 设置为 Enforcing。你要如何知道你的系统当前是什么模式?你可以使用一条简单的命令来查看,这条命令就是 getenforce。这个命令用起来难以置信的简单(因为它仅仅用来报告 SELinux 的模式)。要使用这个工具,打开一个终端窗口并执行 getenforce 命令。命令会返回 Enforcing,Permissive,或者 Disabled(见上方图 1)。 + +设置 SELinux 的模式实际上很简单——取决于你想设置什么模式。记住:永远不推荐关闭 SELinux。为什么?当你这么做了,你就有了这种可能性:你磁盘上的文件可能会被打上错误的标签,需要你重新标签来修复。而且你无法修改一个以 Disabled 模式启动的系统的模式。你的最佳模式是 Enforcing 或者 Permissive。 + +你可以从命令行或 /etc/selinux/config 文件更改 SELinux 的模式。要从命令行设置模式,你可以使用 setenforce 工具。要设置 Enforcing 模式,按下面这么做: + +1. 打开一个终端窗口 + +2. 执行 su 然后输入你的管理员密码 + +3. 执行 setenforce 1 + +4. 执行 getenforce 确定模式已经正确设置(图 2) + +![](https://www.linux.com/images/stories/66866/jack-selinux_b.png) + +>图 2:设置 SELinux 模式为 Enforcing。 + +要设置模式为 Permissive,这么做: + +1. 打开一个终端窗口 + +2. 执行 su 然后输入你的管理员密码 + +3. 执行 setenforce 0 + +4. 执行 getenforce 确定模式已经正确设置(图 3) + +![](https://www.linux.com/images/stories/66866/jack-selinux_c.png) + +>图 3:设置 SELinux 模式为 Permissive. + +注:通过命令行设置模式会覆盖 SELinux 配置文件中的设置。 + +如果你更愿意在 SELinux 命令文件中设置模式,用你喜欢的编辑器打开那个文件找到这一行: + +>SELINUX=permissive + +你可以按你的偏好设置模式,然后保存文件。 + +还有第三种方法修改 SELinux 的模式(通过 bootloader),但我不推荐新用户这么做。 + +### 策略类型 + +SELinux 策略有两种: + +- Targeted — 只有目标网络进程(dhcpd,httpd,named,nscd,ntpd,portmap,snmpd,squid,以及 syslogd)受保护 + +- Strict — 对所有进程完全的 SELinux 保护 + +你可以在 /etc/selinux/config 文件中修改策略类型。用你喜欢的编辑器打开这个文件找到这一行: + +>SELINUXTYPE=targeted + +修改这个选项为 targeted 或 strict 以满足你的需求。 + +### 检查完整的 SELinux 状态 + +有个方便的 SELinux 工具,你可能想要用它来获取你启用了 SELinux 的系统的详细状态报告。这个命令在终端像这样运行: + +>sestatus -v + +你可以看到像图 4 那样的输出。 + +![](https://www.linux.com/images/stories/66866/jack-selinux_d.png) + +>图 4:sestatus -v 命令的输出。 + +### 仅是皮毛 + +和你预想的一样,我只介绍了 SELinux 的一点皮毛。SELinux 的确是个复杂的系统,想要更扎实地理解它是如何工作的,以及了解如何让它更好地为你的桌面或服务器工作需要更加地深入。我的内容还没有覆盖到疑难解答和创建自定义 SELinux 策略。 + +SELinux 是所有 Linux 管理员都应该知道的强大工具。现在已经向你介绍了 SELinux,我强烈推荐你回到 Linux.com(当有更多关于此话题的文章发表的时候)或看看 [NSA SELinux 文档][3] 获得更加深入的指南。 + +LCTT - 相关阅读:[鸟哥的 Linux 私房菜——程序管理与 SELinux 初探][4] + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/learn/docs/ldp/883671-an-introduction-to-selinux + +作者:[Jack Wallen][a] +译者:[alim0x](https://github.com/alim0x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.linux.com/community/forums/person/93 +[1]: http://selinuxproject.org/page/Main_Page +[2]: https://www.nsa.gov/research/selinux/ +[3]: https://www.nsa.gov/research/selinux/docs.shtml +[4]: http://vbird.dic.ksu.edu.tw/linux_basic/0440processcontrol_5.php From c5bb7de061f2d89b27edf38ca4b64479cec5b750 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Wed, 4 May 2016 02:39:22 +0800 Subject: [PATCH 409/582] Proofread 20151227 Upheaval in the Debian Live project Moved original file to news folder though it's a little bit obsolete. --- ...227 Upheaval in the Debian Live project.md | 83 ------------------- ...227 Upheaval in the Debian Live project.md | 67 +++++++++++++++ 2 files changed, 67 insertions(+), 83 deletions(-) delete mode 100644 translated/20151227 Upheaval in the Debian Live project.md create mode 100644 translated/news/20151227 Upheaval in the Debian Live project.md diff --git a/translated/20151227 Upheaval in the Debian Live project.md b/translated/20151227 Upheaval in the Debian Live project.md deleted file mode 100644 index 7d03ce831a..0000000000 --- a/translated/20151227 Upheaval in the Debian Live project.md +++ /dev/null @@ -1,83 +0,0 @@ -Debian Live项目的剧变 - -围绕Debian Live 项目发生了很多戏剧性事件,但是有一个关于Debian Live项目][1]结束的[公告][2],它比项目第一次出现的时候影响力还小。这个项目的创始人退出必定是有原因的,社区对他的待遇和项目的收效是很令人沮丧的,但是这个项目还是会以其他的形式继续下去。所以Debian仍然会有很多的工具去在创造启动光盘和其他介质的道路上继续向前。项目创始人Dabiel Baumann和Debian CD团队以及安装检测团队之间出现的长期争论已经被"解决"了,尽管是用这样一种有遗憾的方式。                                      - -在11月9日,Baumann发表了题为"Dabian Live项目的突然结束"的一篇公告。在那篇短文中,他一一列举出了自从这个和他有关的[项目被发起][3]以来10间发生的不同的事件,可以表明他在Debian Live项目上的努力一直没有被重视,至少从这些方面。最具决定性的因素是因为在"包的含义"上存在冲突,R.Learmonth[申请][4]了新的包名,而这却侵犯了在Debian Live上使用的命名空间。 - -考虑到最主要的Debian Live包之一被命名为"live-build",而新的包名却叫"live-build-ng",这简直是对"live-build"的挑战。live-build-ng意为一种围绕[vmdebootstrap][5]【译者注:创造真实的和虚拟机Debian的磁盘映像】工具的外部包装,这种包装是为了创造live介质(光盘和USB的插入),也是Debian Live最需要的的部分。但是当 Baumann Learmonth[要求][6]为他的包换一个不同的名字的时候,他得到了一个“有趣”的[回复][7]: - -``` - -live-build不是一个Debian项目,这件事应该受到我们的关注,它是一个外部的项目。但是社区要求它成为一个官方的Debian项目,这件事需要我们敲定。 -这不是命名空间的问题,我们要将以目前维护的live配置和live启动包为基础,把它加入到Debian的本地项目。如果迫不得已的话,这将会有很多分支,但是我希望它不要发生,这样的话我们就可以把这些包整合到Debian中继续以一种协作的方式去开发。 -live-build已经被debian-cd放弃,live-build-ng将会取代它。至少在一个精简的Debian环境中,live-build会被放弃。live-build-ng将要通过debian-cd和Debian安装者合作的方式去开发。 -``` - - - -Debian Live 是一个“官方的”Debian项目(或者可以狭义的"官方"),尽管它因为思路上的不同产生过争论.除此之外,vmdebootstrap的维护者Neil Willians为脱离Debian Live项目[提供了如下的解释][8]: - -``` - -为了更好的支持live-build的代替者,vmdebootstrap肯定会被推广。这项工作会由debian-cd团队来负责,debian-cd能够用live-build解决目前存在的问题。 这些问题包括可靠性问题,以及不能很好的支持多种机器和UEFI等。 vmdebootstrap也存在着这些问题,我们用来自于对live-boot和live-config的支持情况来确定vmdebootstrap的功能。 -``` - - - -这些想要取代"live-build"的说辞看起来有道理,但是目前的项目存在的上述问题已经得到了初步解决。相反的,一些秘密的项目很明显的意图是取代live-build。正如Baumann[指出][9]的,这些计划没有被加入到debian-live的邮件列表中。人们可以从Debian Live项目中得到这些计划的信息也是因为这一次的ITP事件。所以它看起来像是一个"秘密计划"—有些东西在一个像Debian这样的项目中不能很好的安排。 - -人们可能已经猜到了,有很多帖子都支持Baumann[重命名][10]"live-build-ng"的请求,但是紧跟着,人们就因为他要停止在Debian Live 上继续工作的决定而变得沮丧。但是Learmonth 和 Williams却坚定不移,他们两人都是取代live-build所需要的开发者。Learmonth 给“live-build-ng”换了一个新的有很少争议性的名字:Live-wrapper。他说他的目标是为Debian Live项目加入新的工具(并且“把Debian Live 项目引入Debian里面),但是完成这件事还需要很大的努力。 - - -``` - -我向已经被ITP问题所困扰的每个人道歉。作为live-build的取代者,live-wrapper这个软件的稳定性还很差,为了让人们知道工作的进展同时收集反馈,它已经被存档。虽然有了这部分的工作,但是收到的反馈并不是我所需要的。 -``` - -这种对于取代live-build的强烈的反对或许已经被预知到了。自由软件社区的沟通和交流很关键,所以,替换一个项目核心的计划是很有争议的——更何况这个计划一直不被人们所知。从Banumann的角度来说,他当然不是完美的,他通过上传和下载一个不合适的[syslinux包][11]来延迟“wheezy”的发布,并且从那以后他从一个Debian发起人[成为][12]了一个Debian维护者。——但是他也不应该受到这种对待。当然,这个项目还有其他人参与,所以不仅仅是Baumann受到了影响。 - -Ben Armstrong是这些人中的其中之一,在这个事件中,他很圆滑地处理了一些事,并且想从这个事件中全身而退。他从一个邮件[13]开始,这个邮件是为了庆祝这个项目以及他和他的团队在过去几年完成的一些工作。正如他所说,这种基于Debian Live的[下流项目列表][14]是很令人振奋的。在另一个邮件中,他也[指出][15]了这个项目不是没有生命力的: - - -``` - -如果Debian CD开发团队通过他们的努力获得成功,这样产品的替换就会是可行的、可靠的、利于测试的,同时有一个合适的候选者去取代live-build,这对于Debian项目有利无害。如果他们继续做这件事,他们不会“用一个官方改良的,不可靠的,几乎没有测试的待选者取代live-build”。到目前为止,我还没有看到他们那样做。其间,live-build仍在存档,没有很快删除,它仍然处于良好状态,并没有一种改进的继任者来取代它。 -``` - - -11月24号,Armstrong也在[他的博客][16]上[发布][17]了一个有关Debian Live的新消息。它展示了自从 Baumann退出后两周内的让人高兴的进展。可以说是在这个项目和live-wrapper开发者之间产生合作的里程碑。博客上也有了一个[计划表][18],同时不可避免地寻求更多的帮助。他也列举了一些理由,试图让人们相信围绕项目发生的戏剧性事件仅仅是一个可以避免的小问题,而不是像现在这样。 - - - - - - ---------------------------------- - -via: https://lwn.net/Articles/665839/ - -作者:Jake Edge -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - - -[1]: https://lwn.net/Articles/666127/ -[2]: http://live.debian.net/ -[3]: https://www.debian.org/News/weekly/2006/08/ -[4]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804315 -[5]: http://liw.fi/vmdebootstrap/ -[6]: https://lwn.net/Articles/666173/ -[7]: https://lwn.net/Articles/666176/ -[8]: https://lwn.net/Articles/666181/ -[9]: https://lwn.net/Articles/666208/ -[10]: https://lwn.net/Articles/666321/ -[11]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699808 -[12]: https://nm.debian.org/public/process/14450 -[13]: https://lwn.net/Articles/666336/ -[14]: http://live.debian.net/project/downstream/ -[15]: https://lwn.net/Articles/666338/ -[16]: https://lwn.net/Articles/666340/ -[17]: http://syn.theti.ca/2015/11/24/debian-live-after-debian-live/ -[18]: https://wiki.debian.org/DebianLive/TODO diff --git a/translated/news/20151227 Upheaval in the Debian Live project.md b/translated/news/20151227 Upheaval in the Debian Live project.md new file mode 100644 index 0000000000..9b3d4dc2f0 --- /dev/null +++ b/translated/news/20151227 Upheaval in the Debian Live project.md @@ -0,0 +1,67 @@ +Debian Live项目的剧变 +================================================================================== + +尽管围绕 Debian Live 项目发生了很多戏剧性事件,关于 [Debian Live 项目][1]结束的[公告][2]的影响力甚至小于该项目首次出现时的公告。主要开发者的离开是最显而易见的损失,而社区对他本人及其项目的态度是很令人困惑的,但是这个项目也许还是会以其他的形式继续下去。所以 Debian 仍然会有更多的工具去创造启动光盘和其他介质。尽管是用这样一种有遗憾的方式,项目创始人 Dabiel Baumann 和 Debian CD 团队以及安装检测团队之间出现的长期争论已经被「解决」了。                                      +在 11 月 9 日, Baumann 发表了题为「 Debian Live 项目的突然结束」的一篇公告。在那篇短文中,他一一列举出了自从这个和他有关的[项目被发起][3]以来近 10 年间发生的不同的事件,这些事件可以表明他在 Debian Live 项目上的努力一直没有被重视或没有被足够重视。最具决定性的因素是因为在「包的含义」上存在冲突, R.Learmonth [申请][4]了新的包名,而这侵犯了在 Debian Live 上使用的命名空间。 + +考虑到最主要的 Debian Live 包之一被命名为 live-build ,而 R.Learmonth 申请的新包名却是 live-build-ng ,这简直是对 live-build 的挑战。 live-build-ng 意为一种围绕 [vmdebootstrap][5]【译者注:创造真实的和虚拟机Debian的磁盘映像】工具的外部包装,这种包装是为了创造 live 介质(光盘和USB的插入),也是 Debian Live 最需要的的部分。但是当 Baumann Learmonth [要求][6]为他的包换一个不同的名字的时候,他得到了一个「有趣」的[回复][7]: + +``` +应该注意到, live-build 不是一个 Debian 项目,它是一个声称自己是官方 Debian 项目的外部项目,这是一个需要我们解决的问题。 +这不是命名空间的问题,我们要将以目前维护的 live-config 和 live-boot 包为基础,把它们加入到 Debian 的本地项目。如果迫不得已的话,这将会有很多分支,但是我希望它不要发生,这样的话我们就可以把这些包整合到 Debian 中并继续以一种协作的方式去开发。 +live-build 已经被 debian-cd 放弃,live-build-ng 将会取代它。至少在一个精简的 Debian 环境中,live-build 会被放弃。我们(开发团队)正在与 debian-cd 和 Debian Installer 团队合作开发 live-build-ng 。 +``` + +Debian Live 是一个「官方的」 Debian 项目(也可以是狭义的「官方」),尽管它因为思路上的不同产生过争论。除此之外, vmdebootstrap 的维护者 Neil Willians 为脱离 Debian Live 项目[提供了如下的解释][8]: + +``` +为了更好的支持 live-build 的代替者, vmdebootstrap 肯定会被推广。为了能够用 live-build 解决目前存在的问题,这项工作会由 debian-cd 团队来负责。这些问题包括可靠性问题,以及不能很好的支持多种机器和 UEFI 等。 vmdebootstrap 也存在着这些问题,我们用来自于对 live-boot 和 live-config 的支持情况来确定 vmdebootstrap 的功能。 +``` + +这些抱怨听起来合情合理,但是它们可能已经在目前的项目中得到了解决。然而一些秘密的项目有很明显的取代 live-build 的意图。正如 Baumann [指出][9]的,这些计划没有被发布到 debian-live 的邮件列表中。人们首次从 Debian Live 项目中获知这些计划正是因为这一次的ITP事件,所以它看起来像是一个「秘密计划」——有些事情在像 Debian 这样的项目中得不到很好的安排。 + +人们可能已经猜到了,有很多帖子都支持 Baumann [重命名][10] live-build-ng 的请求,但是紧接着,人们就因为他要停止继续在 Debian Live 上工作的决定而变得沮丧。然而 Learmonth 和 Williams 却坚持认为取代 live-build 很有必要。Learmonth 给 live-build-ng 换了一个争议性也许小一些的名字: live-wrapper 。他说他的目标是为 Debian Live 项目加入新的工具(并且「把 Debian Live 项目引入 Debian 里面」),但是完成这件事还需要很大的努力。 + +``` +我向已经被 ITP 问题所困扰的每个人道歉。我们已经告知大家 live-wrapper 还不足以完全替代 live-build 且开发工作仍在进行以收集反馈。尽管有了这部分的工作,我们收到的反馈缺并不是我们所需要的。 +``` + +这种对于取代 live-build 的强烈反对或许已经被预知到了。自由软件社区的沟通和交流很关键,所以,计划去替换一个项目的核心很容易引起争议——更何况是一个一直不为人所知的计划。从 Banumann 的角度来说,他当然不是完美的,他因为上传个不合适的 [syslinux 包][11]导致了 wheezy 的延迟发布,并且从那以后他被从 Debian 开发者暂时[降级][12]为 Debian 维护者。但是这不意味着他应该受到这种对待。当然,这个项目还有其他人参与,所以不仅仅是 Baumann 受到了影响。 + +Ben Armstrong 是其他参与者中的一位,在这个事件中,他很圆滑地处理了一些事,并且想从这个事件中全身而退。他从一封邮件[13]开始,这个邮件是为了庆祝这个项目,以及他和他的团队在过去几年取得的成果。正如他所说, Debian Live 的[下游项目列表][14]是很令人振奋的。在另一封邮件中,他也[指出][15]了这个项目不是没有生命力的: + +``` +如果 Debian CD 开发团队通过他们的努力开发出可行的、可靠的、经过完善测试替代品,以及一个合适的取代 live-build 的候选者,这对于 Debian 项目有利无害。如果他们继续做这件事,他们不会「用一个官方改良,但不可靠且几乎没有经过测试的待选者取代 live-build 」。到目前为止,我还没有看到他们那样做的迹象。其间, live-build 仍保留在存档中——它仍然处于良好状态,且没有一种经过改良的继任者来取代它,因此开发团队没有必要尽快删除它。 +``` + +11 月 24 号, Armstrong 也在[他的博客][16]上[发布][17]了一个有关 Debian Live 的新消息。它展示了从 Baumann 退出起两周内的令人高兴的进展。甚至有迹象表明 Debian Live 项目与 live-wrapper 开发者开展了合作。博客上也有了一个[计划表][18],同时不可避免地寻求更多的帮助。这让人们有理由相信围绕项目发生的戏剧性事件仅仅是一个小摩擦——也许不可避免,但绝不是像现在看起来这么糟糕。 + +--------------------------------- + +via: https://lwn.net/Articles/665839/ + +作者:Jake Edge +译者:[vim-kakali](https://github.com/vim-kakali) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + + +[1]: https://lwn.net/Articles/666127/ +[2]: http://live.debian.net/ +[3]: https://www.debian.org/News/weekly/2006/08/ +[4]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804315 +[5]: http://liw.fi/vmdebootstrap/ +[6]: https://lwn.net/Articles/666173/ +[7]: https://lwn.net/Articles/666176/ +[8]: https://lwn.net/Articles/666181/ +[9]: https://lwn.net/Articles/666208/ +[10]: https://lwn.net/Articles/666321/ +[11]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699808 +[12]: https://nm.debian.org/public/process/14450 +[13]: https://lwn.net/Articles/666336/ +[14]: http://live.debian.net/project/downstream/ +[15]: https://lwn.net/Articles/666338/ +[16]: https://lwn.net/Articles/666340/ +[17]: http://syn.theti.ca/2015/11/24/debian-live-after-debian-live/ +[18]: https://wiki.debian.org/DebianLive/TODO From 2e120295fef699836401cd1f359ab774e444a0fc Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 09:43:47 +0800 Subject: [PATCH 410/582] Update Part 1 - LXD 2.0: Introduction to LXD.md --- .../Part 1 - LXD 2.0: Introduction to LXD.md | 72 +++++++++---------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index 4c33d2fc8f..373a8c03dc 100644 --- a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -12,10 +12,6 @@ Part 1 - LXD 2.0: LXD 入门 #### 什么是 LXD ? -At its simplest, LXD is a daemon which provides a REST API to drive LXC containers. - -Its main goal is to provide a user experience that’s similar to that of virtual machines but using Linux containers rather than hardware virtualization. - 简单来说 LXD 就是一个提供了 REST API 的 LXC 容器管理器。 LXD 最主要的目标就是使用 Linux 容器而不是硬件虚拟化向用户提供一种接近虚拟机的使用体验。 @@ -44,68 +40,70 @@ LXD 聚焦于系统容器,通常也被称为架构容器。这就是说 LXD ### LXD 的主要组件 -There are a number of main components that make LXD, those are typically visible in the LXD directory structure, in its command line client and in the API structure itself. +LXD 是由几个主要组件构成的,在它的命令行客户端和 API结构体里,这些组件都是 LXD 目录结构下可见的。 #### 容器 -Containers in LXD are made of: +LXD 中的容器包括以下及部分: -- A filesystem (rootfs) -- A list of configuration options, including resource limits, environment, security options and more -- A bunch of devices like disks, character/block unix devices and network interfaces -- A set of profiles the container inherits configuration from (see below) -- Some properties (container architecture, ephemeral or persistent and the name) -- Some runtime state (when using CRIU for checkpoint/restore) +- 根文件系统 +- 设备:包括磁盘、unix 字符/块设备、网络接口 +- 一组继承而来的容器配置文件 +- 属性(容器架构,暂时的或持久的,容器名) +- 运行时状态(当时为了记录检查点、恢复时用到了 CRIU时) #### 快照 -Container snapshots are identical to containers except for the fact that they are immutable, they can be renamed, destroyed or restored but cannot be modified in any way. +容器快照和容器是一回事,只不过快照是不可修改的,只能被重命名,销毁或者用来恢复系统,但是无论如何都不能被修改。 -It is worth noting that because we allow storing the container runtime state, this effectively gives us the concept of “stateful” snapshots. That is, the ability to rollback the container including its cpu and memory state at the time of the snapshot. +值得注意的是,因为我们允许用户保存容器的运行时状态,这就有效的为我们提供了“有状态”的快照的功能。这就是说我们可以使用快照回滚容器的 cpu 和内存。 #### 镜像 -LXD is image based, all LXD containers come from an image. Images are typically clean Linux distribution images similar to what you would use for a virtual machine or cloud instance. +LXD 是基于镜像实现的,所有的 LXD 容器都是来自于镜像。容器镜像经常是一些干净的 Linux 发布版的镜像,类似于你们在虚拟机和云实例上使用的镜像。 -It is possible to “publish” a container, making an image from it which can then be used by the local or remote LXD hosts. +所以就可以“发布”容器:使用容器制作一个镜像,然后可以在本地或者远程 LXD 主机上使用。 -Images are uniquely identified by their sha256 hash and can be referenced by using their full or partial hash. Because typing long hashes isn’t particularly user friendly, images can also have any number of properties applied to them, allowing for an easy search through the image store. Aliases can also be set as a one to one mapping between a unique user friendly string and an image hash. +镜像通常使用 sha256 来区分,同时也可以使用它的全部或部分哈希码。因为输入长长的哈希码对用户来说不好,所以镜像可以使用几个自身的属性来区分,这就允许让用户在镜像商店里方便搜索镜像。别名也可以用来把对用户友好的字符串 1 比 1 的映射成镜像的哈希码。 -LXD comes pre-configured with three remote image servers (see remotes below): +LXD 安装时已经配置好了三个远程镜像服务器(参见下面的远程一节): -- “ubuntu:” provides stable Ubuntu images -- “ubunt-daily:” provides daily builds of Ubuntu -- “images:” is a community run image server providing images for a number of other Linux distributions using the upstream LXC templates -Remote images are automatically cached by the LXD daemon and kept for a number of days (10 by default) since they were last used before getting expired. +- “ubuntu:” 提供稳定版的 Ubuntu 镜像 +- “ubuntu-daily:” 提供每天构建出来的 Ubuntu +- “images:” 社区维护的镜像服务器,提供一系列的 Linux 发布版,使用的是上游 LXC 的模板 + +LXD 守护进程会从镜像上次被使用开始自动缓存远程镜像一段时间(默认是 10 天),然后这些镜像才会失效。 + +此外 LXD 还会自动更新远程镜像(除非指明不更新),所以本地的镜像会一直是最新版的。 -Additionally LXD also automatically updates remote images (unless told otherwise) so that the freshest version of the image is always available locally. #### 配置 -Profiles are a way to define container configuration and container devices in one place and then have it apply to any number of containers. +配置文件是一种在一处定义容器配置和容器设备,然后应用到一系列容器的方法。 -A container can have multiple profiles applied to it. When building the final container configuration (known as expanded configuration), the profiles will be applied in the order they were defined in, overriding each other when the same configuration key or device is found. Then the local container configuration is applied on top of that, overriding anything that came from a profile. +一个容器可以被应用多个配置文件。当构建最终容器配置时(即通常的扩展配置),这些配置文件都会按照他们定义顺序被应用到容器上,当有重名的配置,新的会覆盖掉旧的。然后本地容器配置会应用在这些之上,覆盖所有来自配置文件的选项。 -LXD ships with two pre-configured profiles: +LXD 自带两种预配置的配置文件: -- “default” is automatically applied to all containers unless an alternative list of profiles is provided by the user. This profile currently does just one thing, define a “eth0” network device for the container. -- “docker” is a profile you can apply to a container which you want to allow to run Docker containers. It requests LXD load some required kernel modules, turns on container nesting and sets up a few device entries. +- “default” 配置是自动应用在所有容器之上,除非用户提供了一系列替代的配置文件。目前这个配置文件只做一件事,为容器定义 “eth0” 网络设备。 +- “docker” 配置是一个允许你在容器里运行 Docker 容器的配置文件。它会要求 LXD 加载一些需要的内核模块,这样就能允许容器嵌套,并且创建一些设备入口。 #### 远程 -As I mentioned earlier, LXD is a networked daemon. The command line client that comes with it can therefore talk to multiple remote LXD servers as well as image servers. +如我之前提到的, LXD 是一个基于网络的守护进程。附带的命令行客户端可以与多个远程 LXD 服务器、镜像服务器通信。 -By default, our command line client comes with the following remotes defined +默认情况下我们的命令行客户端会与下面几个预定义的远程服务器通信: -local: (default remote, talks to the local LXD daemon over a unix socket) -ubuntu: (Ubuntu image server providing stable builds) -ubuntu-daily: (Ubuntu image server providing daily builds) -images: (images.linuxcontainers.org image server) -Any combination of those remotes can be used with the command line client. +- local:(默认的远程服务器,使用 UNIX socket 和本地的 LXD 守护进程通信) +- ubuntu:(buntu 镜像服务器,提供稳定版的 Ubuntu 镜像) +- ubuntu-daily:(Ubuntu 镜像服务器,提供每天构建出来的 Ubuntu) +- images:(images.linuxcontainers.org 镜像服务器) -You can also add any number of remote LXD hosts that were configured to listen to the network. Either anonymously if they are a public image server or after going through authentication when managing remote containers. +所有这些远程服务器的组合都可以在命令行客户端里使用。 -It’s that remote mechanism that makes it possible to interact with remote image servers as well as copy or move containers between hosts. +你也可以添加任意数量的远程 LXD 主机来监听网络。匿名服务器如果是开放镜像服务器,或者通过认证可以管理远程容器的镜像服务器,都可以添加进来。 + +正是这种远程机制使得和远程镜像服务器交互就像在主机间复制、移动容器成为可能。 ### 安全性 From d596b5ea8972d4df070601da4a39ff3743071306 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 10:08:45 +0800 Subject: [PATCH 411/582] Update Part 1 - LXD 2.0: Introduction to LXD.md --- .../Part 1 - LXD 2.0: Introduction to LXD.md | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index 373a8c03dc..2e748d098c 100644 --- a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -107,18 +107,20 @@ LXD 自带两种预配置的配置文件: ### 安全性 -One aspect that was core to our design of LXD was to make it as safe as possible while allowing modern Linux distributions to run inside it unmodified. +我们设计 LXD 时的一个核心要求就当现代 Linux 发布版运行在容器里的时候要尽可能的安全。 -The main security features used by LXD through its use of the LXC library are: +LXD 使用的主要安全特是通过使用 LXC 库实现的: -- Kernel namespaces. Especially the user namespace as a way to keep everything the container does separate from the rest of the system. LXD uses the user namespace by default (contrary to LXC) and allows for the user to turn it off on a per-container basis (marking the container “privileged”) when absolutely needed. -- Seccomp. To filter some potentially dangerous system calls. -- AppArmor: To provide additional restrictions on mounts, socket, ptrace and file access. Specifically restricting cross-container communication. -- Capabilities. To prevent the container from loading kernel modules, altering the host system time, … -- CGroups. To restrict resource usage and prevent DoS attacks against the host. -Rather than exposing those features directly to the user as LXC would, we’ve built a new configuration language which abstracts most of those into something that’s more user friendly. For example, one can tell LXD to pass any host device into the container without having to also lookup its major/minor numbers to manually update the cgroup policy. +- 内核名字空间。特别是用户名字空间是一种让容器和系统剩余部分完全分割的方法。LXD 默认使用用户名字空间(和 LXC 相反),允许用户在需要的时候以容器为单位进行打开、关闭。 +- Seccomp 系统调用。用来隔离潜在危险的系统调用。 +- AppArmor:对 mount、socket、ptrace 和文件访问提供额外的限制。特别是限制跨容器通信。 +- Capabilities。组织容器加载内核模块,修改主机系统时间,等等。 +- CGroups。限制资源使用,防止对主机的 DoS 攻击。 -Communications with LXD itself are secured using TLS 1.2 with a very limited set of allowed ciphers. When dealing with hosts outside of the system certificate authority, LXD will prompt the user to validate the remote fingerprint (SSH style), then cache the certificate for future use. + +和 LXC 直接将这些特性暴露出来不同, 为了对用户友好 ,LXD 构建了一个新的配置语言把大部分的这些特性都抽象封装起来。举了例子,一个用户可以告诉 LXD 把主机设备放进容器而不需要手动检查他们的主/次设备号来更新 CGroup 策略。 + +和 LXD 本身通信是基于使用 TLS 1.2 的链路,这些链路只允许使用有限的几个被允许的密钥。当和那些经过系统证书认证之外的主机通信时, LXD 会提示用户验证主机的远程足迹(SSH 方式),然后把足迹缓存起来以供以后使用。 ### REST 接口 From 9054c17dfc98486580d48ccb1e39ab49ac059b80 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 12:50:12 +0800 Subject: [PATCH 412/582] Update Part 1 - LXD 2.0: Introduction to LXD.md --- .../tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index 2e748d098c..750dce0e43 100644 --- a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -124,15 +124,15 @@ LXD 使用的主要安全特是通过使用 LXC 库实现的: ### REST 接口 -Everything that LXD does is done over its REST API. There is no other communication channel between the client and the daemon. +LXD 的工作都是通过 REST 接口实现的。在客户端和守护进程之间并没有其他的通讯手段。 -The REST API can be access over a local unix socket, only requiring group membership for authentication or over a HTTPs socket using a client certificate for authentication. +REST 接口可以通过本地的 unix socket 访问,这只需要经过组认证,或者经过 HTTP 套接字使用客户端认证进行通信。 -The structure of the REST API matches the different components described above and is meant to be very simple and intuitive to use. +REST 接口的结构能够和上文所说的不同的组件匹配,是一种简单、直观的使用方法。 -When a more complex communication mechanism is required, LXD will negotiate websockets and use those for the rest of the communication. This is used for interactive console session, container migration and for event notification. +当需要一种复杂的通信机制时, LXD 将会进行websocket 协商完成剩余的通信工作。主要用于交互式终端会话,容器迁移和事件通知。 -With LXD 2.0, comes the /1.0 stable API. We will not break backward compatibility within the /1.0 API endpoint however we may add extra features to it, which we’ll signal by declaring additional API extensions that the client can look for. +LXD 2.0 附带了 1.0 版的 API。我们虽然在 1.0 版 API 添加了额外的特性,但是这不会在 1.0 版 API 的端点里破坏向后兼容性,我们会声明额外的 API 扩展使得客户端可以找到新的接口。 ### 容器规模化 From 461c872ae0de43bbc52537ef77b2b04ee6fb16ad Mon Sep 17 00:00:00 2001 From: VicYu Date: Wed, 4 May 2016 13:00:31 +0800 Subject: [PATCH 413/582] Update 20160429 Master OpenStack with 5 new tutorials.md --- sources/tech/20160429 Master OpenStack with 5 new tutorials.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160429 Master OpenStack with 5 new tutorials.md b/sources/tech/20160429 Master OpenStack with 5 new tutorials.md index 34ef86c06a..b43952bc2f 100644 --- a/sources/tech/20160429 Master OpenStack with 5 new tutorials.md +++ b/sources/tech/20160429 Master OpenStack with 5 new tutorials.md @@ -1,3 +1,5 @@ + Vic020 + Master OpenStack with 5 new tutorials ======================================= From 17f0cbff3d5b55190b0b54a92dea7e3892a9f067 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 13:28:58 +0800 Subject: [PATCH 414/582] translated --- .../LXD/Part 1 - LXD 2.0: Introduction to LXD.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index 750dce0e43..9e21eb1aa7 100644 --- a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -1,5 +1,3 @@ -translating by ezio - Part 1 - LXD 2.0: LXD 入门 ====================================== @@ -136,18 +134,18 @@ LXD 2.0 附带了 1.0 版的 API。我们虽然在 1.0 版 API 添加了额外 ### 容器规模化 -While LXD provides a good command line client, that client isn’t meant to manage thousands of containers on multiple hosts. For that kind of use cases, we have nova-lxd which is an OpenStack plugin that makes OpenStack treat LXD containers in the exact same way it would treat VMs. +虽然 LXD 提供了一个很好的命令行客户端,但是这个客户端并不能管理多个主机的大量的容器。在这种使用情况下,我们可以使用 OpenStack 的插件 nova-lxd ,它可以使得 OpenStack 像使用虚拟机一样使用 LXD 容器。 -This allows for very large deployments of LXDs on a large number of hosts, using the OpenStack APIs to manage network, storage and load-balancing. +这就允许在大量的主机上部署大量的 LXD 容器,然后使用 OpenStack 的 API 来管理网络、存储以及负载均衡。 ### 额外信息 -The main LXD website is at: -Development happens on Github at: -Mailing-list support happens on: -IRC support happens in: #lxcontainers on irc.freenode.net +LXD 的主站在: +LXD 的 GitHub 仓库: +LXD 的邮件列表: +LXD 的 IRC 频道: #lxcontainers on irc.freenode.net -And if you can’t wait until the next few posts to try LXD, you can [take our guided tour online][2] and try it for free right from your web browser! +如果你不想或者不能在你的机器上安装 LXD ,你可以在 web 上[试试在线版的 LXD][2] 。 -------------------------------------------------------------------------------- From 3d85a8e67d707c631659ce19208aa67badc0d788 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 13:30:13 +0800 Subject: [PATCH 415/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=8C=E8=AF=B7=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md (100%) diff --git a/sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md similarity index 100% rename from sources/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md rename to translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md From 8dd41c4263fe47f0fee73de6e7d33d1ce721d5db Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 13:33:08 +0800 Subject: [PATCH 416/582] =?UTF-8?q?=E8=AF=B7=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index 9e21eb1aa7..f8ed83a482 100644 --- a/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -141,8 +141,11 @@ LXD 2.0 附带了 1.0 版的 API。我们虽然在 1.0 版 API 添加了额外 ### 额外信息 LXD 的主站在: + LXD 的 GitHub 仓库: + LXD 的邮件列表: + LXD 的 IRC 频道: #lxcontainers on irc.freenode.net 如果你不想或者不能在你的机器上安装 LXD ,你可以在 web 上[试试在线版的 LXD][2] 。 @@ -152,7 +155,7 @@ LXD 的 IRC 频道: #lxcontainers on irc.freenode.net via: https://www.stgraber.org/2016/03/11/lxd-2-0-introduction-to-lxd-112/ 作者:[Stéphane Graber][a] -译者:[译者ID](https://github.com/译者ID) +译者:[ezio](https://github.com/oska874) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 36d702e61788254b29969d2eee4a80b369a01964 Mon Sep 17 00:00:00 2001 From: pengkai Date: Wed, 4 May 2016 13:58:39 +0800 Subject: [PATCH 417/582] kylepeng93 is translating --- sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md b/sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md index 7bf9ba5b16..1da7e4ec62 100644 --- a/sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md +++ b/sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md @@ -1,3 +1,4 @@ +kylepeng93 is translating Part 3 - LXD 2.0: Your first LXD container ========================================== From 9a8784ec08034a071030b0f09f36e263643558ef Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 4 May 2016 00:32:25 -0700 Subject: [PATCH 418/582] =?UTF-8?q?=E5=BD=92=E6=A1=A3201605?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20151028 10 Tips for 10x Application Performance.md | 0 .../20151109 How to Configure Tripwire IDS on Debian.md | 0 ... to Setup Drone - a Continuous Integration Service in Linux.md | 0 .../20151119 Going Beyond Hello World Containers is Hard Stuff.md | 0 .../20151126 Microsoft and Linux--True Romance or Toxic Love.md | 0 ...212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md | 0 ...0 Make Sudo Insult User For Each Incorrect Password Attempt.md | 0 .../20160223 BeeGFS Parallel File System Goes Open Source.md | 0 .../20160226 How to use Python to hack your Eclipse IDE.md | 0 ... Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md | 0 ...Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 201604}/20151028 10 Tips for 10x Application Performance.md (100%) rename published/{ => 201604}/20151109 How to Configure Tripwire IDS on Debian.md (100%) rename published/{ => 201604}/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md (100%) rename published/{ => 201604}/20151119 Going Beyond Hello World Containers is Hard Stuff.md (100%) rename published/{ => 201604}/20151126 Microsoft and Linux--True Romance or Toxic Love.md (100%) rename published/{ => 201604}/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md (100%) rename published/{ => 201604}/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md (100%) rename published/{ => 201604}/20160223 BeeGFS Parallel File System Goes Open Source.md (100%) rename published/{ => 201604}/20160226 How to use Python to hack your Eclipse IDE.md (100%) rename published/{ => 201604}/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md (100%) rename published/{ => 201604}/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md (100%) diff --git a/published/20151028 10 Tips for 10x Application Performance.md b/published/201604/20151028 10 Tips for 10x Application Performance.md similarity index 100% rename from published/20151028 10 Tips for 10x Application Performance.md rename to published/201604/20151028 10 Tips for 10x Application Performance.md diff --git a/published/20151109 How to Configure Tripwire IDS on Debian.md b/published/201604/20151109 How to Configure Tripwire IDS on Debian.md similarity index 100% rename from published/20151109 How to Configure Tripwire IDS on Debian.md rename to published/201604/20151109 How to Configure Tripwire IDS on Debian.md diff --git a/published/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md b/published/201604/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md similarity index 100% rename from published/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md rename to published/201604/20151114 How to Setup Drone - a Continuous Integration Service in Linux.md diff --git a/published/20151119 Going Beyond Hello World Containers is Hard Stuff.md b/published/201604/20151119 Going Beyond Hello World Containers is Hard Stuff.md similarity index 100% rename from published/20151119 Going Beyond Hello World Containers is Hard Stuff.md rename to published/201604/20151119 Going Beyond Hello World Containers is Hard Stuff.md diff --git a/published/20151126 Microsoft and Linux--True Romance or Toxic Love.md b/published/201604/20151126 Microsoft and Linux--True Romance or Toxic Love.md similarity index 100% rename from published/20151126 Microsoft and Linux--True Romance or Toxic Love.md rename to published/201604/20151126 Microsoft and Linux--True Romance or Toxic Love.md diff --git a/published/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md b/published/201604/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md similarity index 100% rename from published/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md rename to published/201604/20160212 How to Add New Disk in Linux CentOS 7 Without Rebooting.md diff --git a/published/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md b/published/201604/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md similarity index 100% rename from published/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md rename to published/201604/20160220 Make Sudo Insult User For Each Incorrect Password Attempt.md diff --git a/published/20160223 BeeGFS Parallel File System Goes Open Source.md b/published/201604/20160223 BeeGFS Parallel File System Goes Open Source.md similarity index 100% rename from published/20160223 BeeGFS Parallel File System Goes Open Source.md rename to published/201604/20160223 BeeGFS Parallel File System Goes Open Source.md diff --git a/published/20160226 How to use Python to hack your Eclipse IDE.md b/published/201604/20160226 How to use Python to hack your Eclipse IDE.md similarity index 100% rename from published/20160226 How to use Python to hack your Eclipse IDE.md rename to published/201604/20160226 How to use Python to hack your Eclipse IDE.md diff --git a/published/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md b/published/201604/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md similarity index 100% rename from published/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md rename to published/201604/20160405 Ubuntu Budgie Could Be the New Flavor of Ubuntu Linux, as Part of Ubuntu 16.10.md diff --git a/published/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md b/published/201604/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md similarity index 100% rename from published/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md rename to published/201604/20160414 Linux Kernel 3.12 to Be Supported Until 2017 Because of SUSE Linux Enterprise 12.md From b46148b4a26d087fb8b9edbe88ffc273e4587f1b Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 4 May 2016 00:33:06 -0700 Subject: [PATCH 419/582] PUB:20151202 KDE vs GNOME vs XFCE Desktop @kylepeng93 --- .../20151202 KDE vs GNOME vs XFCE Desktop.md | 53 +++++++++++++++++++ .../20151202 KDE vs GNOME vs XFCE Desktop.md | 47 ---------------- 2 files changed, 53 insertions(+), 47 deletions(-) create mode 100644 published/20151202 KDE vs GNOME vs XFCE Desktop.md delete mode 100644 translated/talk/20151202 KDE vs GNOME vs XFCE Desktop.md diff --git a/published/20151202 KDE vs GNOME vs XFCE Desktop.md b/published/20151202 KDE vs GNOME vs XFCE Desktop.md new file mode 100644 index 0000000000..4eb3044958 --- /dev/null +++ b/published/20151202 KDE vs GNOME vs XFCE Desktop.md @@ -0,0 +1,53 @@ +KDE、GNOME 和 XFCE 桌面比较 +================================================================================ +![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2013/07/300px-Xfce_logo.svg_.png) + +这么多年来,很多人一直都在他们的 linux 桌面端使用 KDE 或者 GNOME 桌面环境。在这两个桌面环境多年不断发展的同时,其它的桌面也在持续增加它们的用户规模。举个例子说,在轻量级桌面环境下,XFCE 一举成为了最受欢迎的桌面环境,相较于 LXDE 缺少的优美视觉效果,默认配置下的 XFCE 在这方面就可以打败前者。XFCE 提供的功能特性都能在 GNOME2 下得到,然而,在一些较老的计算机上,它的轻量级的特性却能取得更好的效果。 + +### 桌面主题定制 ### + +用户完成安装之后,XFCE 看起来可能会有一点无趣,因为它在视觉上还缺少一些吸引力。但是,请不要误解我的话, XFCE 仍然拥有漂亮的桌面,但是对于大多数刚刚接触 XFCE 桌面环境的人来说,可能它看起来像香草一样普普通通。不过好消息是当我们想要给 XFCE 安装新的主题的时候,这会是一个十分轻松的过程,因为你能够快速的找到你喜欢的 XFCE 主题,之后你就可以将它解压到一个合适的目录中。从这一点上来说,XFCE 自带的一个放在“外观”下的重要的图形界面工具可以帮助用户更加容易的选择中意的主题,这可能是目前在 XFCE 上这方面最好用的工具了。如果用户按照上面的建议去做的话,对于想要尝试使用 XFCE 的任何用户来说都将不存在困难。 + +在 GNOME 桌面上,用户也可以按照类似上面的方法去做。不过,其中最主要的不同点就是在你做之前,用户必须手动下载并安装 GNOME Tweak Tool。当然,对于使用来说都不会有什么障碍,但是对于用户来说,使用 XFCE 安装和激活主题并不需要去额外去下载安装各种调整工具,这可能是他们无法忽略的一个优势。而在 GNOME 上,尤其是在用户已经下载并安装了 GNOME Tweak tool 之后,你仍将必须确保你已经安装了“用户主题扩展”。 + +同 XFCE 一样,用户需要去搜索并下载自己喜欢的主题,然后,用户可以再次使用 GNOME Tweak tool,并点击该工具界面左边的“外观”按钮,接着用户便可以直接查看页面底部并点击文件浏览按钮,然后浏览到那个压缩的文件夹并打开。当完成这些之后,用户将会看到一个告诉用户已经成功应用了主题的对话框,这样你的主题便已经安装完成。然后用户就可以简单的使用下拉菜单来选择他们想要的主题。和 XFCE 一样,主题激活的过程也是十分简单的,然而,对于因为要使用一个新的主题而去下载一个没有预先安装到系统里面的应用,这种情况也是需要考虑的。 + +最后,就是 KDE 桌面主题定制的过程了。和 XFCE 一样,不需要去下载额外的工具来安装主题。从这点来看,让人有种XFCE 可能要被 KDE 战胜了的感觉。不仅在 KDE 上可以完全使用图形用户界面来安装主题,而且甚至只需要用户点击获取新主题的按钮就可以找到、查看新的主题,并且最后自动安装。 + +然而,我们应该注意到 KDE 相比 XFCE 而言,是一个更加健壮完善的桌面环境。当然,对于主要以极简设计为目的的桌面来说,缺失一些更多的功能是有一定的道理的。为此,我们要为这样优秀的功能给 KDE 加分。 + +### MATE 不是一个轻量级的桌面环境 ### + +在继续比较 XFCE、GNOME3 和 KDE 之前,对于老手我们需要澄清一下,我们没有将 MATE 桌面环境加入到我们的比较中。MATE 可被看作是 GNOME2 的另一个衍生品,但是它并没有主要作为一款轻量级或者快捷桌面出现。相反,它的主要目的是成为一款更加传统和舒适的桌面环境,并使它的用户在使用它时就像在家里一样舒适。 + +另一方面,XFCE 生来就是要实现他自己的一系列使命。XFCE 给它的用户提供了一个更轻量而仍保持吸引人的视觉体验的桌面环境。然后,对于一些认为 MATE 也是一款轻量级的桌面环境的人来说,其实 MATE 真正的目标并不是成为一款轻量级的桌面环境。这两种选择在各自安装了一款好的主题之后看起来都会让人觉得非常具有吸引力。 + +### 桌面导航 ### + +XFCE 除了桌面,还提供了一个醒目的导航器。任何使用过传统的 Windows 或者 GNOME 2/MATE 桌面环境的用户都可以在没有任何帮助的情况下自如的使用新安装的 XFCE 桌面环境的导航器。紧接着,添加小程序到面板中也是很显眼的。就像找一个已经安装的应用程序一样,直接使用启动器并点击你想要运行的应用程序图标就行。除了 LXDE 和 MATE 之外,还没有其他的桌面的导航器可以做到如此简单。不仅如此,更好的是控制面板的使用是非常容易使用的,对于刚刚使用这个新桌面的用户来说这是一个非常大的好处。如果用户更喜欢通过老式的方法去使用他们的桌面,那么 GNOME 就不合适。通过热角而取代了最小化按钮,加上其他的应用排布方式,这可以让大多数新用户易于使用它。 + +如果用户来自类似 Windows 这样的桌面环境,那么这些用户需要摒弃这些习惯,不能简单的通过鼠标右击一下就将一个小程序添加到他们的工作空间顶部。与此相反,它可以通过使用扩展来实现。GNOME 是可以安装拓展的,并且是非常的容易,这些容易之处体现在只需要用户简单的使用位于 GNOME 扩展页面上的 on/off 开关即可。不过,用户必须知道这个东西,才能真正使用上这个功能。 + +另一方面,GNOME 正在它的外观中体现它的设计理念,即为用户提供一个直观和易用的控制面板。你可能认为那并不是什么大事,但是,在我看来,它确实是我认为值得称赞并且有必要被提及的方面。KDE 给它的用户提供了更多的传统桌面使用体验,并通过提供相似的启动器和一种更加类似的获取软件的方式的能力来迎合来自 Windows 的用户。添加小部件或者小程序到 KDE 桌面是件非常简单的事情,只需要在桌面上右击即可。唯一的问题是 KDE 中这个功能不好发现,就像 KDE 中的其它东西一样,对于用户来说好像是隐藏的。KDE 的用户可能不同意我的观点,但我仍然坚持我的说法。 + +要增加一个小部件,只要在“我的面板”上右击就可以看见面板选项,但是并不是安装小部件的一个直观的方法。你并不能看见“添加部件”,除非你选择了“面板选项”,然后才能看见“添加部件”。这对我来说不是个问题,但是对于一些用户来说,它变成了不必要的困惑。而使事情变得更复杂的是,在用户能够找到部件区域后,他们后来发现一种称为“活动”的新术语。它和部件在同一个地方,可是它在自己的区域却是另外一种行为。 + +现在请不要误解我,KDE 中的活动特性是很不错的,也是很有价值的,但是从可用性的角度看,为了不让新手感到困惑,它更加适合于放在另一个菜单项。用户各有不同,但是让新用户多测试一段时间可以让它不断改进。对“活动”的批评先放一边,KDE 添加新部件的方法的确很棒。与 KDE 的主题一样,用户不能通过使用提供的图形用户界面浏览和自动安装部件。这是一个有点神奇的功能,但是它这样也可以工作。KDE 的控制面板可能和用户希望的样子不一样,它不是足够的简单。但是有一点很清楚,这将是他们致力于改进的地方。 + +### 因此,XFCE 是最好的桌面环境,对吗? ### + +就我自己而言,我在我的计算机上使用 GNOME、KDE,并在我的办公室和家里的电脑上使用 Xfce。我也有一些老机器在使用 Openbox 和 LXDE。每一个桌面的体验都可以给我提供一些有用的东西,可以帮助我以适合的方式使用每台机器。对我来说,Xfce 是我的心中的挚爱,因为 Xfce 是一个我使用了多年的桌面环境。但对于这篇文章,我是用我日常使用的机器来撰写的,事实上,它用的是 GNOME。 + +这篇文章的主要思想是,对于那些正在寻找稳定的、传统的、容易理解的桌面环境的用户来说,我还是觉得 Xfce 能提供好一点的用户体验。欢迎您在评论部分和我们分享你的意见。 + +-------------------------------------------------------------------------------- + +via: http://www.unixmen.com/kde-vs-gnome-vs-xfce-desktop/ + +作者:[M.el Khamlichi][a] +译者:[kylepeng93](https://github.com/kylepeng93) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.unixmen.com/author/pirat9/ diff --git a/translated/talk/20151202 KDE vs GNOME vs XFCE Desktop.md b/translated/talk/20151202 KDE vs GNOME vs XFCE Desktop.md deleted file mode 100644 index bdbaf2cdbd..0000000000 --- a/translated/talk/20151202 KDE vs GNOME vs XFCE Desktop.md +++ /dev/null @@ -1,47 +0,0 @@ -translating by kylepeng93 -KDE,GNOME和XFCE的较量 -================================================================================ -![](http://1426826955.rsc.cdn77.org/wp-content/uploads/2013/07/300px-Xfce_logo.svg_.png) -这么多年来,很多人一直都在他们的linux桌面端使用KDE或者GNOME桌面环境。这两个桌面环境经过多年的发展之后仍然在继续增加他们的用户基数。然而,在轻量级桌面环境下,XFCE一举成为了最受欢迎的桌面环境,相较于LXDE缺少的优美视觉效果,默认配置下的XFCE就可以在这方面打败前者。XFCE提供了用户能在GNOME2下使用的所有功能特性。但是,必须承认,在一些太老的计算机上,它的轻量级的特性并不能得到很好的效果。 - -### 桌面主题定制 ### -用户完成安装之后,XFCE看起来可能会有一点无聊,因为它在视觉上还缺少一些吸引力。但是,请不要误解我的话,XFCE仍然拥有漂亮的桌面,可能看起来像是用户眼中的香草,正如大多数刚刚接触XFCE桌面环境的人。好消息是当我们给XFCE安装新的主题的时候,这会是一个十分容易的过程,因为你能够快速的找到你喜欢的XFCE主题,之后,你可以将它解压到一个合适的目录中。从这一点上来说,XFCE自带的一个重要的图形界面工具可以帮助用户更加容易的选中你已经选好的主题,这可能是目前在XFCE上最好用的工具了。如果用户按照上面的指示去做的话,对于任何想要尝试使用XFCE的用户来说将不存在任何困难。 - -在GNOME桌面上,用户也可以按照上面的方法去做。不过,其中最主要的不同点就是用户必须手动下载并安装GNOME Tweak Tool,这样才能继续你想做的事。当然,对于使用任何一种方式都不会有什么障碍,但是对于用户来说,使用XFCE安装和激活主题并不需要去额外的下载并安装任何tweak tool可能是他们无法忽略的一个优势。而在GNOME上,尤其是在用户已经下载并安装了GNOME Tweak tool之后,你仍将必须确保你已经安装了用户主题拓展。 - -在XFCE一样,用户将会去搜索并下载自己喜欢的主题,然后,用户可以重新使用GNOME Tweak tool,并点击该工具界面左边的Appearance按钮,接着用户便可以简单的通过点击相应的按钮并选择自己已经下载好的主题来使用自己的主题,当一切都完成之后,用户将会看到一个告诉用户已经成功应用了主题的对话框,这样,你的主题便已经安装完成。对于这一点,用户可以简单的使用滚动条来选择他们想要的主题。和XFCE一样,主题激活的过程也是十分简单的,然而,对于因为要使用一个新的主题而下载一个不被包含的应用的需求也是需要考虑的。 - -最后,就是KDE桌面主题定制的过程了。和XFCE一样,不需要去下载额外的工具来安装主题。从这点来看,让人有种XFCE必将使KDE成为最后的赢家的感觉。不仅在KDE上可以完全使用图形用户界面来安装主题,而且甚至只需要用户点击获取新主题的按钮就可以定位,查看,并且最后自动安装新的主题。 - -然而,我们不应该认为KDE相比XFCE是一个更加稳定的桌面环境。因此,现在正是我们思考为什么一些额外的功能可能会从桌面环境中移除来达到最小化的目的。为此,我们都必须为拥有这样出色的功能而给予KDE更多的支持。 - -### MATE不是一个轻量级的桌面环境 ### -在继续比较XFCE,GNOME3和KDE之前,必须对这方面的老手作一个事先说明,我们不会将MATE桌面环境加入到我们的比较中。MATE可被认为是GNOME2的另一个衍生品,但是它并没有声称是作为一款轻量级或者快捷桌面。相反,它的主要目的是成为一款更加传统和舒适的桌面环境,并使它的用户感觉就像在家里使用它一样。 - -另一方面,XFCE生来就是要实现他自己的一系列使命。XFCE给它的用户提供一个更加轻量级的桌面环境,至今仍然有着吸引人的桌面视觉体验。然后,对于一些认为MATE也是一款轻量级的桌面环境的人来说,其实MATE真正的目标并不是成为一款轻量级的桌面环境。这两个选择在各自安装了一款好的主题之后看起来都会让人觉得非常具有吸引力。 - -### 桌面导航 ### -XFCE在窗口之外提供了一个显眼的导航器。任何使用过传统的windows或者GNOME 2/MATE桌面环境的用户都可以在没有任何帮助的情况下自如的使用新安装的XFCE桌面环境的导航器。紧接着,添加小程序到面板中也是很明显的。和找到已经安装的应用程序一样,直接使用启动器并点击你想要运行的应用程序图标。除了LXDE和MATE之外,还没有其他的桌面的导航器可以做到如此简单。不仅如此,更加简单的是对控制面板的使用,对于刚刚使用这个新桌面的每个用户来说这是一个非常大的好处。如果用户更喜欢通过老式的方法去使用他们的桌面,对于GNOME来说,这不是一个问题。和没有最小化按钮形成的用户关注热点一样,加上其他应用布局方法,这将使新用户更加容易习惯这个风格设计。 - -如果用户来自windows桌面环境,那么这些用户将要放弃这些习惯,因为,他们将不能简单的通过鼠标右击一下就可以将一个小程序添加到他们的工作空间的顶部。与此相反,它可以通过使用拓展来实现。GNOME中的KDE拓展是可用的,并且是非常的容易,这些容易之处体现在只需要用户简单的使用位于GNOME拓展页面上的on/off开关。用户必须清楚,只能通过访问该页面才能使用这个功能。 - -另一方面,GNOME正在它的外观中体现它的设计理念,即为用户提供一个直观和易用的控制面板。你可能认为那并不是什么大事,但是,在我看来,它确实是我认为值得称赞并且有必要被提及的方面。KDE提供给它的用户大量传统的桌面使用体验,并通过提供相似的启动器和一种更加类似的获取软件的方式的能力来迎合来自windows的用户。添加小图标或者小程序到KDE桌面是件非常简单的事情,只需要在桌面的底部右击即可。只有在KDE的使用中才会存在的的问题,对于KDE用户寻找的很多KDE的特性实际上都是隐藏的。KDE的用户可能会指责这我的观点,但我仍然坚持我的说法。 - -为了增加小部件,仅仅在我的面板上右击就可以看见面板选项,但是并不是安装小部件的一个快速的方法。通常在你选择面板选项之前你都不会看到添加的小部件,然后,就添加小部件吧。这对我来说不是个问题,但是后来对于一些用户来说,它变成了不必要的困惑。而使事情变得更加复杂,用户管理定位部件区域后,他们后来发现一种称为“Activities”的品牌新术语。在同一地区的小部件,但它是在自己的领域是什么。 - -现在请不要误解我,KDE中的活动特性是很不错的,也是很有价值的,但是从可用性的角度看,为了不让新手感到困惑,它更加适合于应用在另一个目录选项。欢迎来自用户的分歧,,但为了测试这个新手对一些长时间的可以一遍又一遍的证明它是正确的。责骂放在一边,KDE添加新部件的方法的确很棒。与KDE的主题一样,用户不能通过使用提供的图形用户界面浏览和自动安装部件。这是一个神奇的功能,也可以是这样的方式去庆祝。KDE的控制面板可能和用户希望的样子不一样,它不是足够的简单。但是有一点很清楚,这将是他们致力于改进的地方。 - -### 因此,XFCE是最好的桌面环境,对吗? ### -我在我的计算机上使用GNOME,KDE,并在我的办公室和家里的电脑上使用Xfce。我也有一些老机器在使用Openbox和LXDE。每一个使用桌面的经验都可以给我提供一些有用的东西,可以帮助我使用每台机器,因为我认为它是合适的。对我来说,在我的心里有一个柔软的地方,因为Xfce作为一个桌面环境,我坚持使用了很多年。但在这篇文章中,我只是在写我使用电脑的日常,事实上,它是GNOME。 -这篇文章的主要思想是我还是觉得Xfce能提供好一点的用户体验,对于那些正在寻找稳定的、传统的、容易理解的桌面环境的用户来说,XFCE是理想的。欢迎您在评论部分和我们分享你的意见。 --------------------------------------------------------------------------------- - -via: http://www.unixmen.com/kde-vs-gnome-vs-xfce-desktop/ - -作者:[M.el Khamlichi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.unixmen.com/author/pirat9/ From 00ccc5e744f6017240b18d82330ba4309869a2e4 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 4 May 2016 00:34:07 -0700 Subject: [PATCH 420/582] PUB:20151227 Upheaval in the Debian Live project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @vim-kakali 请参考 @PurlingNayuki 的校对,包括内容和格式的调整。@PurlingNayuki 你速度好快! --- .../20151227 Upheaval in the Debian Live project.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/news => published}/20151227 Upheaval in the Debian Live project.md (100%) diff --git a/translated/news/20151227 Upheaval in the Debian Live project.md b/published/20151227 Upheaval in the Debian Live project.md similarity index 100% rename from translated/news/20151227 Upheaval in the Debian Live project.md rename to published/20151227 Upheaval in the Debian Live project.md From 6b7e639eb9531017916f3b8acef16b6572a363bb Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:00:19 +0800 Subject: [PATCH 421/582] =?UTF-8?q?20160504-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LXD/Part 4 - LXD 2.0: Resource control.md | 405 ++++++++++++++++++ 1 file changed, 405 insertions(+) create mode 100644 sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md diff --git a/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md b/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md new file mode 100644 index 0000000000..178c46ea32 --- /dev/null +++ b/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md @@ -0,0 +1,405 @@ +Part 4 - LXD 2.0: Resource control +====================================== + +This is the fourth blog post [in this series about LXD 2.0][0]. + +As there are a lot of commands involved with managing LXD containers, this post is rather long. If you’d instead prefer a quick step-by-step tour of those same commands, you can [try our online demo instead][1]! + +![](https://linuxcontainers.org/static/img/containers.png) + +### Available resource limits + +LXD offers a variety of resource limits. Some of those are tied to the container itself, like memory quotas, CPU limits and I/O priorities. Some are tied to a particular device instead, like I/O bandwidth or disk usage limits. + +As with all LXD configuration, resource limits can be dynamically changed while the container is running. Some may fail to apply, for example if setting a memory value smaller than the current memory usage, but LXD will try anyway and report back on failure. + +All limits can also be inherited through profiles in which case each affected container will be constrained by that limit. That is, if you set limits.memory=256MB in the default profile, every container using the default profile (typically all of them) will have a memory limit of 256MB. + +We don’t support resource limits pooling where a limit would be shared by a group of containers, there is simply no good way to implement something like that with the existing kernel APIs. + +#### Disk + +This is perhaps the most requested and obvious one. Simply setting a size limit on the container’s filesystem and have it enforced against the container. + +And that’s exactly what LXD lets you do! +Unfortunately this is far more complicated than it sounds. Linux doesn’t have path-based quotas, instead most filesystems only have user and group quotas which are of little use to containers. + +This means that right now LXD only supports disk limits if you’re using the ZFS or btrfs storage backend. It may be possible to implement this feature for LVM too but this depends on the filesystem being used with it and gets tricky when combined with live updates as not all filesystems allow online growth and pretty much none of them allow online shrink. + +#### CPU + +When it comes to CPU limits, we support 4 different things: + +* Just give me X CPUs + + In this mode, you let LXD pick a bunch of cores for you and then load-balance things as more containers and CPUs go online/offline. + + The container only sees that number of CPU. +* Give me a specific set of CPUs (say, core 1, 3 and 5) + + Similar to the first mode except that no load-balancing is happening, you’re stuck with those cores no matter how busy they may be. +* Give me 20% of whatever you have + + In this mode, you get to see all the CPUs but the scheduler will restrict you to 20% of the CPU time but only when under load! So if the system isn’t busy, your container can have as much fun as it wants. When containers next to it start using the CPU, then it gets capped. +* Out of every measured 200ms, give me 50ms (and no more than that) + + This mode is similar to the previous one in that you get to see all the CPUs but this time, you can only use as much CPU time as you set in the limit, no matter how idle the system may be. On a system without over-commit this lets you slice your CPU very neatly and guarantees constant performance to those containers. + +It’s also possible to combine one of the first two with one of the last two, that is, request a set of CPUs and then further restrict how much CPU time you get on those. + +On top of that, we also have a generic priority knob which is used to tell the scheduler who wins when you’re under load and two containers are fighting for the same resource. + +#### Memory + +Memory sounds pretty simple, just give me X MB of RAM! + +And it absolutely can be that simple. We support that kind of limits as well as percentage based requests, just give me 10% of whatever the host has! + +Then we support some extra stuff on top. For example, you can choose to turn swap on and off on a per-container basis and if it’s on, set a priority so you can choose what container will have their memory swapped out to disk first! + +Oh and memory limits are “hard” by default. That is, when you run out of memory, the kernel out of memory killer will start having some fun with your processes. + +Alternatively you can set the enforcement policy to “soft”, in which case you’ll be allowed to use as much memory as you want so long as nothing else is. As soon as something else wants that memory, you won’t be able to allocate anything until you’re back under your limit or until the host has memory to spare again. + +#### Network I/O + +Network I/O is probably our simplest looking limit, trust me, the implementation really isn’t simple though! + +We support two things. The first is a basic bit/s limits on network interfaces. You can set a limit of ingress and egress or just set the “max” limit which then applies to both. This is only supported for “bridged” and “p2p” type interfaces. + +The second thing is a global network I/O priority which only applies when the network interface you’re trying to talk through is saturated. + +#### Block I/O + +I kept the weirdest for last. It may look straightforward and feel like that to the user but there are a bunch of cases where it won’t exactly do what you think it should. + +What we support here is basically identical to what I described in Network I/O. + +You can set IOps or byte/s read and write limits directly on a disk device entry and there is a global block I/O priority which tells the I/O scheduler who to prefer. + +The weirdness comes from how and where those limits are applied. Unfortunately the underlying feature we use to implement those uses full block devices. That means we can’t set per-partition I/O limits let alone per-path. + +It also means that when using ZFS or btrfs which can use multiple block devices to back a given path (with or without RAID), we effectively don’t know what block device is providing a given path. + +This means that it’s entirely possible, in fact likely, that a container may have multiple disk entries (bind-mounts or straight mounts) which are coming from the same underlying disk. + +And that’s where things get weird. To make things work, LXD has logic to guess what block devices back a given path, this does include interrogating the ZFS and btrfs tools and even figures things out recursively when it finds a loop mounted file backing a filesystem. + +That logic while not perfect, usually yields a set of block devices that should have a limit applied. LXD then records that and moves on to the next path. When it’s done looking at all the paths, it gets to the very weird part. It averages the limits you’ve set for every affected block devices and then applies those. + +That means that “in average” you’ll be getting the right speed in the container, but it also means that you can’t have a “/fast” and a “/slow” directory both coming from the same physical disk and with differing speed limits. LXD will let you set it up but in the end, they’ll both give you the average of the two values. + +### How does it all work? + +Most of the limits described above are applied through the Linux kernel Cgroups API. That’s with the exception of the network limits which are applied through good old “tc”. + +LXD at startup time detects what cgroups are enabled in your kernel and will only apply the limits which your kernel support. Should you be missing some cgroups, a warning will also be printed by the daemon which will then get logged by your init system. + +On Ubuntu 16.04, everything is enabled by default with the exception of swap memory accounting which requires you pass the “swapaccount=1” kernel boot parameter. + +### Applying some limits + +All the limits described above are applied directly to the container or to one of its profiles. Container-wide limits are applied with: + +``` +lxc config set CONTAINER KEY VALUE +``` + +or for a profile: + +``` +lxc profile set PROFILE KEY VALUE +``` + +while device-specific ones are applied with: + +``` +lxc config device set CONTAINER DEVICE KEY VALUE +``` + +or for a profile: + +``` +lxc profile device set PROFILE DEVICE KEY VALUE +``` + +The complete list of valid configuration keys, device types and device keys can be [found here][1]. + +#### CPU + +To just limit a container to any 2 CPUs, do: + +``` +lxc config set my-container limits.cpu 2 +``` + +To pin to specific CPU cores, say the second and fourth: + +``` +lxc config set my-container limits.cpu 1,3 +``` + +More complex pinning ranges like this works too: + +``` +lxc config set my-container limits.cpu 0-3,7-11 +``` + +The limits are applied live, as can be seen in this example: + +``` +stgraber@dakara:~$ lxc exec zerotier -- cat /proc/cpuinfo | grep ^proces +processor : 0 +processor : 1 +processor : 2 +processor : 3 +stgraber@dakara:~$ lxc config set zerotier limits.cpu 2 +stgraber@dakara:~$ lxc exec zerotier -- cat /proc/cpuinfo | grep ^proces +processor : 0 +processor : 1 +``` + +Note that to avoid utterly confusing userspace, lxcfs arranges the /proc/cpuinfo entries so that there are no gaps. + +As with just about everything in LXD, those settings can also be applied in profiles: + +``` +stgraber@dakara:~$ lxc exec snappy -- cat /proc/cpuinfo | grep ^proces +processor : 0 +processor : 1 +processor : 2 +processor : 3 +stgraber@dakara:~$ lxc profile set default limits.cpu 3 +stgraber@dakara:~$ lxc exec snappy -- cat /proc/cpuinfo | grep ^proces +processor : 0 +processor : 1 +processor : 2 +``` + +To limit the CPU time of a container to 10% of the total, set the CPU allowance: + +``` +lxc config set my-container limits.cpu.allowance 10% +``` + +Or to give it a fixed slice of CPU time: + +``` +lxc config set my-container limits.cpu.allowance 25ms/200ms +``` + +And lastly, to reduce the priority of a container to a minimum: + +``` +lxc config set my-container limits.cpu.priority 0 +``` + +#### Memory + +To apply a straightforward memory limit run: + +``` +lxc config set my-container limits.memory 256MB +``` + +(The supported suffixes are kB, MB, GB, TB, PB and EB) + +To turn swap off for the container (defaults to enabled): + +``` +lxc config set my-container limits.memory.swap false +``` + +To tell the kernel to swap this container’s memory first: + +``` +lxc config set my-container limits.memory.swap.priority 0 +``` + +And finally if you don’t want hard memory limit enforcement: + +``` +lxc config set my-container limits.memory.enforce soft +``` + +#### Disk and block I/O + +Unlike CPU and memory, disk and I/O limits are applied to the actual device entry, so you either need to edit the original device or mask it with a more specific one. + +To set a disk limit (requires btrfs or ZFS): + +``` +lxc config device set my-container root size 20GB +``` + +For example: + +``` +stgraber@dakara:~$ lxc exec zerotier -- df -h / +Filesystem Size Used Avail Use% Mounted on +encrypted/lxd/containers/zerotier 179G 542M 178G 1% / +stgraber@dakara:~$ lxc config device set zerotier root size 20GB +stgraber@dakara:~$ lxc exec zerotier -- df -h / +Filesystem Size Used Avail Use% Mounted on +encrypted/lxd/containers/zerotier 20G 542M 20G 3% / +``` + +To restrict speed you can do the following: + +``` +lxc config device set my-container root limits.read 30MB +lxc config device set my-container root.limits.write 10MB +``` + +Or to restrict IOps instead: + +``` +lxc config device set my-container root limits.read 20Iops +lxc config device set my-container root limits.write 10Iops +``` + +And lastly, if you’re on a busy system with over-commit, you may want to also do: + +``` +lxc config set my-container limits.disk.priority 10 +``` + +To increase the I/O priority for that container to the maximum. + +#### Network I/O + +Network I/O is basically identical to block I/O as far the knobs available. + +For example: + +``` +stgraber@dakara:~$ lxc exec zerotier -- wget http://speedtest.newark.linode.com/100MB-newark.bin -O /dev/null +--2016-03-26 22:17:34-- http://speedtest.newark.linode.com/100MB-newark.bin +Resolving speedtest.newark.linode.com (speedtest.newark.linode.com)... 50.116.57.237, 2600:3c03::4b +Connecting to speedtest.newark.linode.com (speedtest.newark.linode.com)|50.116.57.237|:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 104857600 (100M) [application/octet-stream] +Saving to: '/dev/null' + +/dev/null 100%[===================>] 100.00M 58.7MB/s in 1.7s + +2016-03-26 22:17:36 (58.7 MB/s) - '/dev/null' saved [104857600/104857600] + +stgraber@dakara:~$ lxc profile device set default eth0 limits.ingress 100Mbit +stgraber@dakara:~$ lxc profile device set default eth0 limits.egress 100Mbit +stgraber@dakara:~$ lxc exec zerotier -- wget http://speedtest.newark.linode.com/100MB-newark.bin -O /dev/null +--2016-03-26 22:17:47-- http://speedtest.newark.linode.com/100MB-newark.bin +Resolving speedtest.newark.linode.com (speedtest.newark.linode.com)... 50.116.57.237, 2600:3c03::4b +Connecting to speedtest.newark.linode.com (speedtest.newark.linode.com)|50.116.57.237|:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 104857600 (100M) [application/octet-stream] +Saving to: '/dev/null' + +/dev/null 100%[===================>] 100.00M 11.4MB/s in 8.8s + +2016-03-26 22:17:56 (11.4 MB/s) - '/dev/null' saved [104857600/104857600] +``` + +And that’s how you throttle an otherwise nice gigabit connection to a mere 100Mbit/s one! + +And as with block I/O, you can set an overall network priority with: + +``` +lxc config set my-container limits.network.priority 5 +``` + +### Getting the current resource usage + +The [LXD API][2] exports quite a bit of information on current container resource usage, you can get: + +* Memory: current, peak, current swap and peak swap +* Disk: current disk usage +* Network: bytes and packets received and transferred for every interface + +And now if you’re running a very recent LXD (only in git at the time of this writing), you can also get all of those in “lxc info”: + +``` +stgraber@dakara:~$ lxc info zerotier +Name: zerotier +Architecture: x86_64 +Created: 2016/02/20 20:01 UTC +Status: Running +Type: persistent +Profiles: default +Pid: 29258 +Ips: + eth0: inet 172.17.0.101 + eth0: inet6 2607:f2c0:f00f:2700:216:3eff:feec:65a8 + eth0: inet6 fe80::216:3eff:feec:65a8 + lo: inet 127.0.0.1 + lo: inet6 ::1 + lxcbr0: inet 10.0.3.1 + lxcbr0: inet6 fe80::f0bd:55ff:feee:97a2 + zt0: inet 29.17.181.59 + zt0: inet6 fd80:56c2:e21c:0:199:9379:e711:b3e1 + zt0: inet6 fe80::79:e7ff:fe0d:5123 +Resources: + Processes: 33 + Disk usage: + root: 808.07MB + Memory usage: + Memory (current): 106.79MB + Memory (peak): 195.51MB + Swap (current): 124.00kB + Swap (peak): 124.00kB + Network usage: + lxcbr0: + Bytes received: 0 bytes + Bytes sent: 570 bytes + Packets received: 0 + Packets sent: 0 + zt0: + Bytes received: 1.10MB + Bytes sent: 806 bytes + Packets received: 10957 + Packets sent: 10957 + eth0: + Bytes received: 99.35MB + Bytes sent: 5.88MB + Packets received: 64481 + Packets sent: 64481 + lo: + Bytes received: 9.57kB + Bytes sent: 9.57kB + Packets received: 81 + Packets sent: 81 +Snapshots: + zerotier/blah (taken at 2016/03/08 23:55 UTC) (stateless) +``` + +### Conclusion + +The LXD team spent quite a few months iterating over the language we’re using for those limits. It’s meant to be as simple as it can get while remaining very powerful and specific when you want it to. + +Live application of those limits and inheritance through profiles makes it a very powerful tool to live manage the load on your servers without impacting the running services. + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net + +And if you don’t want or can’t install LXD on your own machine, you can always [try it online instead][3]! + + +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://github.com/lxc/lxd/blob/master/doc/configuration.md +[2]: https://github.com/lxc/lxd/blob/master/doc/rest-api.md +[3]: https://linuxcontainers.org/lxd/try-it From f1094fc9f4b6bf9932d0d970bcda6e4be4e1bad5 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:10:47 +0800 Subject: [PATCH 422/582] =?UTF-8?q?20160504-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/LXD/Part 5 - LXD 2.0: Image management.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 sources/tech/LXD/Part 5 - LXD 2.0: Image management.md diff --git a/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md b/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md new file mode 100644 index 0000000000..3a69aadd00 --- /dev/null +++ b/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md @@ -0,0 +1,7 @@ +Part 5 - LXD 2.0: Image management +================================== +<正文待补充> + + + +原文:https://www.stgraber.org/2016/03/30/lxd-2-0-image-management-512/ From f110d02330299f58652ddba71ccbc14d73814c65 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:11:43 +0800 Subject: [PATCH 423/582] =?UTF-8?q?20160306-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rt 6 - LXD 2.0: Remote hosts and container migration.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md diff --git a/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md b/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md new file mode 100644 index 0000000000..95c825a30e --- /dev/null +++ b/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md @@ -0,0 +1,7 @@ +Part 6 - LXD 2.0: Remote hosts and container migration +======================================================= + +<正文待补充> + + +https://www.stgraber.org/2016/04/12/lxd-2-0-remote-hosts-and-container-migration-612/ From 12949d4661238b4aadb5affd73978d487a528a5a Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:12:39 +0800 Subject: [PATCH 424/582] =?UTF-8?q?20160306-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/LXD/Part 7 - LXD 2.0: Docker in LXD.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sources/tech/LXD/Part 7 - LXD 2.0: Docker in LXD.md diff --git a/sources/tech/LXD/Part 7 - LXD 2.0: Docker in LXD.md b/sources/tech/LXD/Part 7 - LXD 2.0: Docker in LXD.md new file mode 100644 index 0000000000..60bb3883df --- /dev/null +++ b/sources/tech/LXD/Part 7 - LXD 2.0: Docker in LXD.md @@ -0,0 +1,6 @@ +Part 7 - LXD 2.0: Docker in LXD +================================== + +<正文待补充> + +原文: https://www.stgraber.org/2016/04/13/lxd-2-0-docker-in-lxd-712/ From 81de00207daa9d689bde2d5c4b7d4f9104f6a59d Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:13:27 +0800 Subject: [PATCH 425/582] =?UTF-8?q?20160306-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md diff --git a/sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md b/sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md new file mode 100644 index 0000000000..bdb26be75d --- /dev/null +++ b/sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md @@ -0,0 +1,6 @@ +Part 7 - LXD 2.0: LXD in LXD +============================== + +<原文待补充> + +原文:https://www.stgraber.org/2016/04/14/lxd-2-0-lxd-in-lxd-812/ From b146d488a2323fa086324d10dac9e29fb65e5e00 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:14:16 +0800 Subject: [PATCH 426/582] =?UTF-8?q?20160306-6=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/LXD/Part 9 - LXD 2.0: Live migration.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 sources/tech/LXD/Part 9 - LXD 2.0: Live migration.md diff --git a/sources/tech/LXD/Part 9 - LXD 2.0: Live migration.md b/sources/tech/LXD/Part 9 - LXD 2.0: Live migration.md new file mode 100644 index 0000000000..7be46f6a00 --- /dev/null +++ b/sources/tech/LXD/Part 9 - LXD 2.0: Live migration.md @@ -0,0 +1,6 @@ +Part 9 - LXD 2.0: Live migration +================================= + +<正文待补充> + +原文:https://www.stgraber.org/2016/04/25/lxd-2-0-live-migration-912/ From 1058b3399606e06dc1e541d72627dc9924d5e10f Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:15:11 +0800 Subject: [PATCH 427/582] =?UTF-8?q?20160504-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md b/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md index 178c46ea32..e404cccffa 100644 --- a/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md +++ b/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md @@ -390,7 +390,7 @@ And if you don’t want or can’t install LXD on your own machine, you can alwa -------------------------------------------------------------------------------- -via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ +via: https://www.stgraber.org/2016/03/26/lxd-2-0-resource-control-412/ 作者:[Stéphane Graber][a] 译者:[译者ID](https://github.com/译者ID) From 6564cc0aaaef3f0f67124665031a15d2a686eca1 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:16:12 +0800 Subject: [PATCH 428/582] =?UTF-8?q?20160504-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From 2177dbc5a3c9d69f9dae4e880c61f7730d990b89 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 4 May 2016 16:17:57 +0800 Subject: [PATCH 429/582] =?UTF-8?q?20160504-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...- LXD 2.0: LXD in LXD.md => Part 8 - LXD 2.0: LXD in LXD.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename sources/tech/LXD/{Part 7 - LXD 2.0: LXD in LXD.md => Part 8 - LXD 2.0: LXD in LXD.md} (80%) diff --git a/sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md b/sources/tech/LXD/Part 8 - LXD 2.0: LXD in LXD.md similarity index 80% rename from sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md rename to sources/tech/LXD/Part 8 - LXD 2.0: LXD in LXD.md index bdb26be75d..76c361e517 100644 --- a/sources/tech/LXD/Part 7 - LXD 2.0: LXD in LXD.md +++ b/sources/tech/LXD/Part 8 - LXD 2.0: LXD in LXD.md @@ -1,4 +1,4 @@ -Part 7 - LXD 2.0: LXD in LXD +Part 8 - LXD 2.0: LXD in LXD ============================== <原文待补充> From 772cba3035747d49f6e5ed838bf11cfd369d41b4 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Wed, 4 May 2016 17:24:07 +0800 Subject: [PATCH 430/582] Proofread LXD/Part 1 - LXD 2.0: Introduction to LXD --- .../Part 1 - LXD 2.0: Introduction to LXD.md | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md index f8ed83a482..011f385881 100644 --- a/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md +++ b/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md @@ -10,7 +10,7 @@ Part 1 - LXD 2.0: LXD 入门 #### 什么是 LXD ? -简单来说 LXD 就是一个提供了 REST API 的 LXC 容器管理器。 +简单地说, LXD 就是一个提供了 REST API 的 LXC 容器管理器。 LXD 最主要的目标就是使用 Linux 容器而不是硬件虚拟化向用户提供一种接近虚拟机的使用体验。 @@ -18,27 +18,27 @@ LXD 最主要的目标就是使用 Linux 容器而不是硬件虚拟化向用户 这是一个最常被问起的问题,现在就让我们直接指出其中的不同吧。 -LXD 聚焦于系统容器,通常也被称为架构容器。这就是说 LXD 容器实际上运行了一个完整的 Linux 操作系统,就像在裸机或虚拟机上运行的一样。 +LXD 聚焦于系统容器,通常也被称为架构容器。这就是说 LXD 容器实际上如在裸机或虚拟机上运行一般运行了一个完整的 Linux 操作系统。 -这些容器一般都是基于一个干净的发布镜像,会长时间运行。传统的配置管理工具和发布工具可以和 LXD 一起使用,就像你在虚拟机、云或者物理机器上使用一样。 +这些容器一般基于一个干净的发布镜像并会长时间运行。传统的配置管理工具和部署工具可以如在虚拟机、云和物理机器上一样与 LXD 一起使用。 -相对的, Docker 关注于短视的、无状态的最小容器,这些容器通常并不会升级或者重新配置,它们一般都是作为一个整体被替换掉。这就使得 Docker 和类似的项目更像是一种软件发布机制,而不是一个机器管理工具。 +相对的, Docker 关注于短期的、无状态的最小容器,这些容器通常并不会升级或者重新配置,而是作为一个整体被替换掉。这就使得 Docker 及类似项目更像是一种软件发布机制,而不是一个机器管理工具。 -这两种模型并不是完全互斥的。你完全可以使用 LXD 为你的用户提供一个完整的 Linux 系统,而他们可以在 LXD 上面安装 Docker 来运行他们想要的软件。 +这两种模型并不是完全互斥的。你完全可以使用 LXD 为你的用户提供一个完整的 Linux 系统,而他们可以在 LXD 内安装 Docker 来运行他们想要的软件。 #### 为什么要用 LXD? -我们已经在 LXC 上工作了好几个年头了。 LXC 成功的实现了它的目标,它提供了一系列很棒的底层工具和库来创建、管理容器。 +我们已经持续开发并改进 LXC 好几年了。 LXC 成功的实现了它的目标,它提供了一系列很棒的用于创建和管理容器的底层工具和库。 -然而这些底层工具的使用界面对用户并不是很友好。他们需要用户有很多的基础知识来理解他们要干什么和怎么去干。同时向后兼容旧的容器和部署策略已经阻止 LXC 默认使用一些安全特性,这导致用户需要进行更多人工操作来实现本可以自动完成的工作。 +然而这些底层工具的使用界面对用户并不是很友好。使用它们需要用户有很多的基础知识以理解它们的工作方式和目的。同时,向后兼容旧的容器和部署策略也使得 LXC 无法默认使用一些安全特性,这导致用户需要进行更多人工操作来实现本可以自动完成的工作。 -我们把 LXD 作为解决这些缺陷的一个很好的机会。作为一个长时间运行的守护进程可以让我们定位到很多 LXC 的限制,比如动态资源限制,容器迁移和有效的进行在线迁移,它同时也给了我们机会来提供一个新的默认体验:默认开启安全特性,对用户更加友好。 +我们把 LXD 作为解决这些缺陷的一个很好的机会。作为一个长时间运行的守护进程, LXD 可以绕开 LXC 的许多限制,比如动态资源限制、无法进行容器迁移和高效的在线迁移;同时,它也为创造新的默认体验提供了机会:默认开启安全特性,对用户更加友好。 ### LXD 的主要组件 -LXD 是由几个主要组件构成的,在它的命令行客户端和 API结构体里,这些组件都是 LXD 目录结构下可见的。 +LXD 是由几个主要组件构成的,这些组件都是 LXD 目录结构、命令行客户端和 API 结构体里下可见的。 #### 容器 @@ -54,15 +54,15 @@ LXD 中的容器包括以下及部分: 容器快照和容器是一回事,只不过快照是不可修改的,只能被重命名,销毁或者用来恢复系统,但是无论如何都不能被修改。 -值得注意的是,因为我们允许用户保存容器的运行时状态,这就有效的为我们提供了“有状态”的快照的功能。这就是说我们可以使用快照回滚容器的 cpu 和内存。 +值得注意的是,因为我们允许用户保存容器的运行时状态,这就有效的为我们提供了“有状态”的快照的功能。这就是说我们可以使用快照回滚容器的 CPU 和内存。 #### 镜像 -LXD 是基于镜像实现的,所有的 LXD 容器都是来自于镜像。容器镜像经常是一些干净的 Linux 发布版的镜像,类似于你们在虚拟机和云实例上使用的镜像。 +LXD 是基于镜像实现的,所有的 LXD 容器都是来自于镜像。容器镜像通常是一些纯净的 Linux 发行版的镜像,类似于你们在虚拟机和云实例上使用的镜像。 -所以就可以“发布”容器:使用容器制作一个镜像,然后可以在本地或者远程 LXD 主机上使用。 +所以就可以「发布」容器:使用容器制作一个镜像并在本地或者远程 LXD 主机上使用。 -镜像通常使用 sha256 来区分,同时也可以使用它的全部或部分哈希码。因为输入长长的哈希码对用户来说不好,所以镜像可以使用几个自身的属性来区分,这就允许让用户在镜像商店里方便搜索镜像。别名也可以用来把对用户友好的字符串 1 比 1 的映射成镜像的哈希码。 +镜像通常使用全部或部分 sha256 哈希码来区分。因为输入长长的哈希码对用户来说不好,所以镜像可以使用几个自身的属性来区分,这就使得用户在镜像商店里方便搜索镜像。别名也可以用来 1 对 1 地把对用户友好的名字映射到某个镜像的哈希码。 LXD 安装时已经配置好了三个远程镜像服务器(参见下面的远程一节): @@ -70,55 +70,55 @@ LXD 安装时已经配置好了三个远程镜像服务器(参见下面的远 - “ubuntu-daily:” 提供每天构建出来的 Ubuntu - “images:” 社区维护的镜像服务器,提供一系列的 Linux 发布版,使用的是上游 LXC 的模板 -LXD 守护进程会从镜像上次被使用开始自动缓存远程镜像一段时间(默认是 10 天),然后这些镜像才会失效。 +LXD 守护进程会从镜像上次被使用开始自动缓存远程镜像一段时间(默认是 10 天),超过时限后这些镜像才会失效。 -此外 LXD 还会自动更新远程镜像(除非指明不更新),所以本地的镜像会一直是最新版的。 +此外, LXD 还会自动更新远程镜像(除非指明不更新),所以本地的镜像会一直是最新版的。 #### 配置 配置文件是一种在一处定义容器配置和容器设备,然后应用到一系列容器的方法。 -一个容器可以被应用多个配置文件。当构建最终容器配置时(即通常的扩展配置),这些配置文件都会按照他们定义顺序被应用到容器上,当有重名的配置,新的会覆盖掉旧的。然后本地容器配置会应用在这些之上,覆盖所有来自配置文件的选项。 +一个容器可以被应用多个配置文件。当构建最终容器配置时(即通常的扩展配置),这些配置文件都会按照他们定义顺序被应用到容器上,当有重名的配置时,新的会覆盖掉旧的。然后本地容器设置会在这些基础上应用,覆盖所有来自配置文件的选项。 LXD 自带两种预配置的配置文件: -- “default” 配置是自动应用在所有容器之上,除非用户提供了一系列替代的配置文件。目前这个配置文件只做一件事,为容器定义 “eth0” 网络设备。 -- “docker” 配置是一个允许你在容器里运行 Docker 容器的配置文件。它会要求 LXD 加载一些需要的内核模块,这样就能允许容器嵌套,并且创建一些设备入口。 +- 「 default 」配置是自动应用在所有容器之上,除非用户提供了一系列替代的配置文件。目前这个配置文件只做一件事,为容器定义 eth0 网络设备。 +- 「 docker” 」配置是一个允许你在容器里运行 Docker 容器的配置文件。它会要求 LXD 加载一些需要的内核模块以支持容器嵌套并创建一些设备入口。 #### 远程 如我之前提到的, LXD 是一个基于网络的守护进程。附带的命令行客户端可以与多个远程 LXD 服务器、镜像服务器通信。 -默认情况下我们的命令行客户端会与下面几个预定义的远程服务器通信: +默认情况下,我们的命令行客户端会与下面几个预定义的远程服务器通信: - local:(默认的远程服务器,使用 UNIX socket 和本地的 LXD 守护进程通信) -- ubuntu:(buntu 镜像服务器,提供稳定版的 Ubuntu 镜像) -- ubuntu-daily:(Ubuntu 镜像服务器,提供每天构建出来的 Ubuntu) -- images:(images.linuxcontainers.org 镜像服务器) +- ubuntu:( Ubuntu 镜像服务器,提供稳定版的 Ubuntu 镜像) +- ubuntu-daily:( Ubuntu 镜像服务器,提供每天构建出来的 Ubuntu ) +- images:( images.linuxcontainers.org 镜像服务器) 所有这些远程服务器的组合都可以在命令行客户端里使用。 -你也可以添加任意数量的远程 LXD 主机来监听网络。匿名服务器如果是开放镜像服务器,或者通过认证可以管理远程容器的镜像服务器,都可以添加进来。 +你也可以添加任意数量的远程 LXD 主机来监听网络。匿名的开放镜像服务器,或者通过认证可以管理远程容器的镜像服务器,都可以添加进来。 -正是这种远程机制使得和远程镜像服务器交互就像在主机间复制、移动容器成为可能。 +正是这种远程机制使得与远程镜像服务器交互及在主机间复制、移动容器成为可能。 ### 安全性 -我们设计 LXD 时的一个核心要求就当现代 Linux 发布版运行在容器里的时候要尽可能的安全。 +我们设计 LXD 时的一个核心要求,就是在不修改现代 Linux 发行版的前提下,使容器尽可能的安全。 -LXD 使用的主要安全特是通过使用 LXC 库实现的: +LXD 使用的、通过使用 LXC 库实现的主要安全特性有: -- 内核名字空间。特别是用户名字空间是一种让容器和系统剩余部分完全分割的方法。LXD 默认使用用户名字空间(和 LXC 相反),允许用户在需要的时候以容器为单位进行打开、关闭。 +- 内核名字空间。尤其是用户名字空间,它让容器和系统剩余部分完全分离。LXD 默认使用用户名字空间(和 LXC 相反),并允许用户在需要的时候以容器为单位打开或关闭。 - Seccomp 系统调用。用来隔离潜在危险的系统调用。 - AppArmor:对 mount、socket、ptrace 和文件访问提供额外的限制。特别是限制跨容器通信。 -- Capabilities。组织容器加载内核模块,修改主机系统时间,等等。 +- Capabilities。阻止容器加载内核模块,修改主机系统时间,等等。 - CGroups。限制资源使用,防止对主机的 DoS 攻击。 -和 LXC 直接将这些特性暴露出来不同, 为了对用户友好 ,LXD 构建了一个新的配置语言把大部分的这些特性都抽象封装起来。举了例子,一个用户可以告诉 LXD 把主机设备放进容器而不需要手动检查他们的主/次设备号来更新 CGroup 策略。 +为了对用户友好 , LXD 构建了一个新的配置语言把大部分的这些特性都抽象封装起来,而不是如 LXC 一般直接将这些特性暴露出来。举了例子,一个用户可以告诉 LXD 把主机设备放进容器而不需要手动检查他们的主/次设备号来更新 CGroup 策略。 -和 LXD 本身通信是基于使用 TLS 1.2 的链路,这些链路只允许使用有限的几个被允许的密钥。当和那些经过系统证书认证之外的主机通信时, LXD 会提示用户验证主机的远程足迹(SSH 方式),然后把足迹缓存起来以供以后使用。 +和 LXD 本身通信是基于使用 TLS 1.2 保护的链路,这些链路只允许使用有限的几个被允许的密钥。当和那些经过系统证书认证之外的主机通信时, LXD 会提示用户验证主机的远程足迹(SSH 方式),然后把足迹缓存起来以供以后使用。 ### REST 接口 @@ -128,13 +128,13 @@ REST 接口可以通过本地的 unix socket 访问,这只需要经过组认 REST 接口的结构能够和上文所说的不同的组件匹配,是一种简单、直观的使用方法。 -当需要一种复杂的通信机制时, LXD 将会进行websocket 协商完成剩余的通信工作。主要用于交互式终端会话,容器迁移和事件通知。 +当需要一种复杂的通信机制时, LXD 将会进行 websocket 协商完成剩余的通信工作。这主要用于交互式终端会话、容器迁移和事件通知。 -LXD 2.0 附带了 1.0 版的 API。我们虽然在 1.0 版 API 添加了额外的特性,但是这不会在 1.0 版 API 的端点里破坏向后兼容性,我们会声明额外的 API 扩展使得客户端可以找到新的接口。 +LXD 2.0 附带了 1.0 版的稳定 API。虽然我们在 1.0 版 API 添加了额外的特性,但是这不会在 1.0 版 API 的端点里破坏向后兼容性,因为我们会声明额外的 API 扩展使得客户端可以找到新的接口。 ### 容器规模化 -虽然 LXD 提供了一个很好的命令行客户端,但是这个客户端并不能管理多个主机的大量的容器。在这种使用情况下,我们可以使用 OpenStack 的插件 nova-lxd ,它可以使得 OpenStack 像使用虚拟机一样使用 LXD 容器。 +虽然 LXD 提供了一个很好的命令行客户端,但是这个客户端并不能管理多个主机上大量的容器。在这种使用情况下,我们可以使用 OpenStack 的 nova-lxd 插件,它可以使 OpenStack 像使用虚拟机一样使用 LXD 容器。 这就允许在大量的主机上部署大量的 LXD 容器,然后使用 OpenStack 的 API 来管理网络、存储以及负载均衡。 @@ -148,7 +148,7 @@ LXD 的邮件列表: LXD 的 IRC 频道: #lxcontainers on irc.freenode.net -如果你不想或者不能在你的机器上安装 LXD ,你可以在 web 上[试试在线版的 LXD][2] 。 +如果你不想或者不能在你的机器上安装 LXD ,你可以在 web 上[试试在线版的 LXD] [2] 。 -------------------------------------------------------------------------------- @@ -156,7 +156,7 @@ via: https://www.stgraber.org/2016/03/11/lxd-2-0-introduction-to-lxd-112/ 作者:[Stéphane Graber][a] 译者:[ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 654aed05cd8c243bddd89fabc64cfe878363ff40 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 5 May 2016 10:00:00 +0800 Subject: [PATCH 431/582] Update Part 2 - LXD 2.0: Installing and configuring LXD.md --- ...LXD 2.0: Installing and configuring LXD.md | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md index 079b91c429..9f00e4eed2 100644 --- a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md +++ b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md @@ -9,11 +9,11 @@ Part 2 - LXD 2.0: 安装与配置 ### 安装篇 -There are many ways to get the latest and greatest LXD. We recommend you use LXD with the latest LXC and Linux kernel to benefit from all its features but we try to degrade gracefully where possible to support older Linux distributions. +获得 LXD 有很多种办法。我们推荐你是用配合最新版的 LXC 和 Linux 内核使用 LXD,这样就可以享受到它的全部特性,但是注意,我们现在也在慢慢的降低对旧版本 Linux 发布版的支持。 #### Ubuntu 标准版 -All new releases of LXD get uploaded to the Ubuntu development release within a few minutes of the upstream release. That package is then used to seed all the other source of packages for Ubuntu users. +所有新发布的 LXD 都会在发布几分钟后上传到 Ubuntu 开发版的安装源里。这个安装包然后就会当作种子给全部其他的安装包源,供 Ubuntu 用户使用。 如果使用 Ubuntu 16.04 则可以直接安装: @@ -56,21 +56,21 @@ sudo emerge --ask lxd #### 源代码 -Building LXD from source isn’t very difficult if you are used to building Go projects. Note however that you will need the LXC development headers. In order to run LXD, your distribution also needs a recent Linux kernel (3.13 at least), recent LXC (1.1.5 or higher), LXCFS and a version of shadow that supports user sub-uid/gid allocations. +如果你曾经编译过 Go 工程,那么从源代码编译 LXD 并不是十分困难。然而要住你的是你需要 LXC 的开发头文件。为了运行 LXD , 你的 发布版铜须也需要使用比较新的内核(最起码是 3.13),比较新的 LXC (1.1.4 或更高版本) ,LXCFS 以及支持用户子 uid/gid 分配的 shadow 。 -The latest instructions on building LXD from source can be found in the [upstream README][2]. +从源代码编译 LXD 的最新指令可以在[上游 README][2]里找到。 ### ubuntu 上的网络配置 -The Ubuntu packages provide you with a “lxdbr0” bridge as a convenience. This bridge comes unconfigured by default, offering only IPv6 link-local connectivity through an HTTP proxy. +Ubuntu 的安装包会很方便的给你提供一个 "lxdbr0" 网桥。这个网桥默认是没有配置过的,只提供通过 HTTP 代理的 IPV6 的本地连接。 -To reconfigure the bridge and add some IPv4 or IPv6 subnet to it, you can run: +要配置这个网桥和添加 IPV4 、 IPV6 子网,你可以运行下面的命令: ``` sudo dpkg-reconfigure -p medium lxd ``` -Or go through the whole LXD step by step setup (see below) with: +或者直接通过 LXD 初始化命令一步一步的配置: ``` sudo lxd init @@ -78,14 +78,13 @@ sudo lxd init ### 存储系统 -LXD supports a number of storage backends. It’s best to know what backend you want to use prior to starting to use LXD as we do not support moving existing containers or images between backends. +LXD 提供了集中存储后端。在开始使用 LXD 之前,你最好直到自己想要的后端,因为我们不支持在后端之间迁移已经生成的容器。 -A feature comparison table of the different backends can be found [here][3]. +各个[后端特性的比较表格][3]可以在这里找到。 #### ZFS -Our recommendation is ZFS as it supports all the features LXD needs to offer the fastest and most reliable container experience. This includes per-container disk quotas, immediate snapshot/restore, optimized migration (send/receive) and instant container creation from an image. It is also considered more mature than btrfs. - +我们的推荐是 ZFS , 因为他能支持 LXD 的全部特性,同时提供最快和最可靠的容器体验。它包括了以容器为单位的磁盘配额,直接快照和恢复,优化了的迁移(发送/接收),以及快速从镜像创建容器。它同时也被认为要比 btrfs 更成熟。 要和 LXD 一起使用 ZFS ,你需要首先在你的系统上安装 ZFS。 @@ -115,26 +114,28 @@ sudo apt install ubuntu-zfs sudo lxd init ``` -This will ask you a few questions about what kind of zfs configuration you’d like for your LXD and then configure it for you. +这条命令接下来会想你提问一下你想要的 ZFS 的配置,然后为你配置好 ZFS 。 #### btrfs -If ZFS isn’t available, then btrfs offers the same level of integration with the exception that it doesn’t properly report disk usage inside the container (quotas do apply though). -btrfs also has the nice property that it can nest properly which ZFS doesn’t yet. That is, if you plan on using LXD inside LXD, btrfs is worth considering. +如果 ZFS 不可用,那么 btrfs 可以提供相同级别的集成,除了不会合理的报告容器内的磁盘使用情况(虽然配额还是可以用的)。 -LXD doesn’t need any configuration to use btrfs, you just need to make sure that /var/lib/lxd is stored on a btrfs filesystem and LXD will automatically make use of it for you. +btrfs 同时拥有很好的嵌套属性,而这时 ZFS 所不具有的。也就是说如果你计划在 LXD 中再使用 LXD ,那么 btrfs 就很值得你考虑一下。 + +使用 btrfs 的话,LXD 不需要进行任何的配置,你只需要保证 `/var/lib/lxd` 是保存在 btrfs 文件系统中,然后 LXD 就会自动为你使用 btrfs 了。 #### LVM -If ZFS and btrfs aren’t an option for you, you can still get some of their benefits by using LVM instead. LXD uses LVM with thin provisioning, creating an LV for each image and container and using LVM snapshots as needed. +如果 ZFS 和 btrfs 都不是你想要的,你仍然可以考虑使用 LVM。 LXD 会以自动精简配置的方式使用 LVM,为每个镜像和容器创建 LV,如果需要的话也会使用 LVM 的快照功能。 + +要配置 LXD 使用 LVM,需要创建一个 LVM 的 VG ,然后运行: -To configure LXD to use LVM, create a LVM VG and run: ``` lxc config set storage.lvm_vg_name "THE-NAME-OF-YOUR-VG" ``` -By default LXD uses ext4 as the filesystem for all the LVs. You can change that to XFS if you’d like: +默认情况下 LXD 使用 ext4 作为全部 LV 的文件系统。如果你喜欢的话可以改成 XFS: ``` lxc config set storage.lvm_fstype xfs @@ -142,21 +143,19 @@ lxc config set storage.lvm_fstype xfs #### 简单目录 -If none of the above are an option for you, LXD will still work but without any of those advanced features. It will simply create a directory for each container, unpack the image tarballs for each container creation and do a full filesystem copy on container copy or snapshot. +如果上面全部方案你都不打算使用, LXD 还可以工作,但是不会使用任何高级特性。它只会为每个容器创建一个目录,然后在创建每个容器时解压缩镜像的压缩包,在容器拷贝和快照时会进行一次完整的文件系统拷贝。 -All features are supported except for disk quotas, but this is very wasteful of disk space and also very slow. If you have no other choice, it will work, but you should really consider one of the alternatives above. - - +除了磁盘配额以外的特性都是支持的,但是很浪费磁盘空间,并且非常慢。如果你没有其他选择,这还是可以工作的,但是你还是需要认真的考虑一下上面的几个方案。 ### 配置篇 -The complete list of configuration options for the LXD daemon can be found [here][4]. +LXD 守护进程的完整配置项列表可以在[这里找到][4]。 #### 网络配置 -By default LXD doesn’t listen to the network. The only way to talk to it is over a local unix socket at /var/lib/lxd/unix.socket. +默认情况下 LXD 不会监听网络。和它通信的唯一办法是使用本地 unix socket 通过 `/var/lib/lxd/unix.socket` 进行通信。 -To have it listen to the network, there are two useful keys to set: +要让 LXD 监听网络,下面有两个有用的命令: ``` lxc config set core.https_address [::] @@ -208,8 +207,11 @@ At this point you should have a working version of the latest LXD release, you c ### 额外信息 LXD 的主站在: + LXD 的 GitHub 仓库: + LXD 的邮件列表: + LXD 的 IRC 频道: #lxcontainers on irc.freenode.net 如果你不想或者不能在你的机器上安装 LXD ,你可以[试试在线版的 LXD][1] 。 @@ -219,7 +221,7 @@ LXD 的 IRC 频道: #lxcontainers on irc.freenode.net via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ 作者:[Stéphane Graber][a] -译者:[译者ID](https://github.com/译者ID) +译者:[ezio](https://github.com/oska874) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From fc97797762024265989ba4393e9cca85f3652901 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 5 May 2016 11:58:32 +0800 Subject: [PATCH 432/582] Update Part 2 - LXD 2.0: Installing and configuring LXD.md --- .../LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md index 9f00e4eed2..2f30288a2d 100644 --- a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md +++ b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md @@ -162,11 +162,11 @@ lxc config set core.https_address [::] lxc config set core.trust_password some-secret-string ``` -The first instructs LXD to bind the “::” IPv6 address, namely, all addresses on the machine. You can obviously replace this by a specific IPv4 or IPv6 address and can append the TCP port you’d like it to bind (defaults to 8443). +第一条命令将 LXD 绑定到 IPV6 地址 “::”,也就是监听机器的所有 IPV6 地址。你可以显式的使用一个特定的 IPV4 或者 IPV6 地址替代默认地址,如果你想绑定 TCP 端口(默认是 8443)的话可以在地址后面添加端口号即可。 -The second sets a password which is used for remote clients to add themselves to the LXD certificate trust store. When adding the LXD host, they will be prompted for the password, if the password matches, the LXD daemon will store their client certificate and they’ll be trusted, never needing the password again (it can be changed or unset entirely at that point). +第二条命令设置了密码,可以让远程客户端用来把自己添加到 LXD 可信证书中心。如果已经给主机设置了密码,当添加 LXD 主机时会提示输入密码, LXD 守护进程会保存他们的客户端的证书以确保客户端是可信的,这样就不需要再次输入密码(可以随时设置和取消) -You can also choose not to set a password and instead manually trust each new client by having them give you their “client.crt” file (from ~/.config/lxc) and add it to the trust store yourself with: +你也可以选择不设置密码,然后通过给每个客户端发送 "client.crt" (来自于 `~/.config/lxc`)文件,然后把它添加到你自己的可信中信来实现人工验证每个新客户端是否可信,可以使用下面的命令: ``` lxc config trust add client.crt From d759e47fa5f18fafdc2968ae1957110a1e20a204 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 5 May 2016 12:45:30 +0800 Subject: [PATCH 433/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...art 2 - LXD 2.0: Installing and configuring LXD.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md index 2f30288a2d..8e405254d3 100644 --- a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md +++ b/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md @@ -188,9 +188,9 @@ With those, all transfers initiated by LXD will use the squid01.internal HTTP pr #### 镜像管理 -LXD does dynamic image caching. When instructed to create a container from a remote image, it will download that image into its image store, mark it as cached and record its origin. After a number of days without seeing any use (10 by default), the image is automatically removed. Every few hours (6 by default), LXD also goes looking for a newer version of the image and updates its local copy. +LXD 使用动态镜像缓存。当从远程镜像创建容器的时候,它会自动把镜像下载到本地镜像商店,同时标志为已缓存并记录来源。几天后(默认10天)如果没有再被使用,那么这个镜像就会自动被删除。每个几小时(默认是6小时) LXD 还会检查一下这个镜像是否有新版本,然后更新镜像的本地拷贝。 -All of that can be configured through the following configuration options: +所有这些都可以通过下面的配置选项进行配置: ``` lxc config set images.remote_cache_expiry 5 @@ -198,11 +198,12 @@ lxc config set images.auto_update_interval 24 lxc config set images.auto_update_cached false ``` -Here we are instructing LXD to override all of those defaults and instead cache images for up to 5 days since they were last used, look for image updates every 24 hours and only update images which were directly marked as such (–auto-update flag in lxc image copy) but not the images which were automatically cached by LXD. +这些命令让 LXD 修改了它的默认属性,缓存期替换为 5 天,更新间隔为 24 小时,而且只更新那些标志为自动更新的镜像(lxc 镜像拷贝有标志 `–auto-update`)而不是 LXD 自动缓存的镜像。 + ### 总结 -At this point you should have a working version of the latest LXD release, you can now start playing with it on your own or wait for the next blog post where we’ll create our first container and play with the LXD command line tool. +到这里为止,你就应该有了一个可以工作的、最新版的 LXD ,现在你可以开始用 LXD 了,或者等待我们的下一条博文,那时我们会介绍如何创建第一个容器以及使用 LXD 命令行工具操作容器。 ### 额外信息 @@ -218,7 +219,7 @@ LXD 的 IRC 频道: #lxcontainers on irc.freenode.net -------------------------------------------------------------------------------- -via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ +via: https://www.stgraber.org/2016/03/15/lxd-2-0-installing-and-configuring-lxd-212/ 作者:[Stéphane Graber][a] 译者:[ezio](https://github.com/oska874) From 0187ce4c5c35355cacd3aced0aa99920bc876dc2 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 5 May 2016 12:46:52 +0800 Subject: [PATCH 434/582] Rename sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md to translated/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md --- .../tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md (100%) diff --git a/sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/translated/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md similarity index 100% rename from sources/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md rename to translated/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md From 4d00e7e90f044cedf31e149f8a96c954b348a0ce Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Thu, 5 May 2016 15:36:32 +0800 Subject: [PATCH 435/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... do after installing openSUSE Leap 42.1.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md b/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md index 109bf6c11d..ef5434da3d 100644 --- a/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md +++ b/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md @@ -1,28 +1,28 @@ -装好 openSUSE Leap 42.1 之后要做的 8 件事 +安装 openSUSE Leap 42.1 之后要做的 8 件事 ================================================================================ ![Credit: Metropolitan Transportation/Flicrk](http://images.techhive.com/images/article/2015/11/things-to-do-100626947-primary.idge.jpg) 致谢:[Metropolitan Transportation/Flicrk][1] -> 你已经在你的电脑上安装了 openSUSE。这是你接下来要做的。 +> 你已经在你的电脑上安装了 openSUSE,这是你接下来要做的。 -[openSUSE Leap 确实是个巨大的飞跃][2],它允许用户运行一个和 SUSE Linux 企业版拥有一样基因的发行版。和其它系统一样,在使用它之前需要做些优化设置。 +[openSUSE Leap 确实是个巨大的飞跃][2],它允许用户运行一个和 SUSE Linux 企业版拥有一样基因的发行版。和其它系统一样,为了实现最佳的使用效果,在使用它之前需要做些优化设置。 -下面是一些我在安装 openSUSE 到我的电脑上之后做的一些事情(不适用于服务器)。这里面没有强制性要求的设置,基本安装对来说你也可能足够了。但如果你想获得更好的 openSUSE Leap 体验,那就跟着我往下看吧。 +下面是一些我在我的电脑上安装 openSUSE Leap 之后做的一些事情(不适用于服务器)。这里面没有强制性要求的设置,基本安装对你来说也可能足够了。但如果你想获得更好的 openSUSE Leap 体验,那就跟着我往下看吧。 ### 1. 添加 Packman 仓库 ### -由于专利和授权等原因,openSUSE 和许多 Linux 发行版一样,不通过官方仓库(repos)提供一些软件,解码器,以及驱动等。取而代之的是通过第三方或社区仓库来提供。第一个也是最重要的仓库是“Packman”。因为这些仓库不是默认启用的,我们需要添加它们。你可以通过 YaST (openSUSE 的特色之一)或者命令行完成(如下方介绍)。 +由于专利和授权等原因,openSUSE 和许多 Linux 发行版一样,不通过官方仓库(repos)提供一些软件、解码器,以及驱动等。取而代之的是通过第三方或社区仓库来提供。第一个也是最重要的仓库是“Packman”。因为这些仓库不是默认启用的,我们需要添加它们。你可以通过 YaST(openSUSE 的特色之一)或者命令行完成(如下方介绍)。 ![o42 yast repo](http://images.techhive.com/images/article/2015/11/o42-yast-repo-100626952-large970.idge.png) 添加 Packman 仓库。 -使用 YsST,打开软件源部分。点击“添加”按钮并选择“社区仓库(Community Repositories)”。点击“下一步”。一旦仓库列表加载出来了,选择 Packman 仓库。点击“确认”,然后点击“信任”导入信任的 GnuPG 密钥。 +使用 YaST,打开软件源部分。点击“添加”按钮并选择“社区仓库(Community Repositories)”。点击“下一步”。一旦仓库列表加载出来了,选择 Packman 仓库。点击“确认”,然后点击“信任”导入信任的 GnuPG 密钥。 或者在终端里使用以下命令添加并启用 Packman 仓库: zypper ar -f -n packmanhttp://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/ packman -仓库添加之后,你就能接触到更多的包了。想安装任意软件或包,打开 YaST 软件管理器,搜索并安装即可。 +仓库添加之后,你就可以使用更多的包了。想安装任意软件或包,打开 YaST 软件管理器,搜索并安装即可。 ### 2. 安装 VLC ### @@ -34,7 +34,7 @@ VLC 是媒体播放器里的瑞士军刀,几乎可以播放任何媒体文件 ### 3. 安装 Handbrake ### -如果你需要转码或转换视频文件格式,[Handbrake 是你的不二之选][3]。Handbrake 就在我们启用的仓库中,所以只要在 YaST 中搜索并安装它。 +如果你需要转码或转换视频文件格式,[Handbrake 是你的不二之选][3]。Handbrake 就在我们启用的仓库中,所以只需要在 YaST 中搜索并安装它即可。 如果你用终端,运行以下命令: @@ -44,7 +44,7 @@ VLC 是媒体播放器里的瑞士军刀,几乎可以播放任何媒体文件 ### 4. 安装 Chrome ### -openSUSE 的默认浏览器是 Firefox。但是因为 Firefox 不能胜任播放专有媒体,比如 Netflix,我推荐安装 Chrome。这需要额外的工作。首先你需要从谷歌导入信任密钥。打开终端执行“wget”命令下载密钥: +openSUSE 的默认浏览器是 Firefox。但是因为 Firefox 不能够播放专有媒体,比如 Netflix,我推荐安装 Chrome。这需要额外的工作。首先你需要从谷歌导入信任密钥。打开终端执行“wget”命令下载密钥: wget https://dl.google.com/linux/linux_signing_key.pub @@ -72,11 +72,11 @@ openSUSE 的默认浏览器是 Firefox。但是因为 Firefox 不能胜任播放 ### 6. 安装媒体解码器 ### -你安装 VLC 之后就不需要安装媒体解码器了,但如果你要使用其它软件来播放媒体的话就需要安装了。一些开发者写了脚本/工具来简化这个过程。打开[这个页面][5]并点击合适的按钮安装完整的包。他会打开 YaST 并自动安装包(当然通常你还需要提供 root 权限密码并信任 GnuPG 密钥)。 +你安装 VLC 之后就不需要安装媒体解码器了,但如果你要使用其它软件来播放媒体的话就需要安装了。一些开发者写了脚本/工具来简化这个过程。打开[这个页面][5]并点击合适的按钮安装完整的包。它会打开 YaST 并自动安装包(当然通常你还需要提供 root 权限密码并信任 GnuPG 密钥)。 -### 7. 安装你偏好的电子邮件客户端 ### +### 7. 安装你喜欢的电子邮件客户端 ### -openSUSE 自带 Kmail 或 Evolution,这取决于你安装的桌面环境。我用的是 Plasma,自带 Kmail,这个邮件客户端还有许多地方有待改进。我建议可以试试 Thunderbird 或 Evolution。所有主要的邮件客户端都能在官方仓库找到。你还可以看看我的[精心挑选的 Linux 最佳邮件客户端][7]。 +openSUSE 自带 Kmail 或 Evolution,这取决于你安装的桌面环境。我用的是 Plasma,自带 Kmail,这个邮件客户端还有许多地方有待改进。我建议可以试试 Thunderbird 或 Evolution。所有主要的邮件客户端都能在官方仓库找到。你还可以看看我[精心挑选的 Linux 最佳邮件客户端][7]。 ### 8. 在防火墙允许 Samba 服务 ### @@ -85,7 +85,7 @@ openSUSE 自带 Kmail 或 Evolution,这取决于你安装的桌面环境。我 ![o42 firewall](http://images.techhive.com/images/article/2015/11/o42-firewall-100626948-large970.idge.png) 在防火墙设置里允许 Samba 客户端和服务端 -打开 YaST 并搜索 Firewall。在防火墙设置里,到“允许的服务”那里你会在“要允许的服务”下面看到一个下拉列表。选择“Samba 客户端”,然后点击“添加”。对“Samba 服务端”也一样地添加。都添加了之后,点击“下一步”,然后点击“完成”,现在你就可以通过本地网络从你的 openSUSE 分享文件以及访问其它机器了。 +打开 YaST 并搜索 Firewall。在防火墙设置里,进入到“允许的服务(Allowed Services)”,你会在“要允许的服务(Service to allow)”下面看到一个下拉列表。选择“Samba 客户端”,然后点击“添加”。同样方法添加“Samba 服务器”。都添加了之后,点击“下一步”,然后点击“完成”,现在你就可以通过本地网络从你的 openSUSE 分享文件以及访问其它机器了。 这差不多就是我以我喜欢的方式对我的新 openSUSE 系统做的所有设置了。如果你有任何问题,欢迎在评论区提问。 @@ -95,7 +95,7 @@ via: http://www.itworld.com/article/3003865/open-source-tools/8-things-to-do-aft 作者:[Swapnil Bhartiya][a] 译者:[alim0x](https://github.com/alim0x) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ea79a2f555eda7d7c74d54737ade5be163b87115 Mon Sep 17 00:00:00 2001 From: vim-kakali <1799225723@qq.com> Date: Thu, 5 May 2016 17:32:04 +0800 Subject: [PATCH 436/582] vim-kakal --- ...rce Linux Distributions Would Presidential Hopefuls Run.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md index 2a850a7468..cfb653f702 100644 --- a/sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md +++ b/sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md @@ -1,3 +1,5 @@ +vim-kakali translating + Which Open Source Linux Distributions Would Presidential Hopefuls Run? ================================================================================ ![Republican presidential candidate Donald Trump @@ -50,4 +52,4 @@ via: http://thevarguy.com/open-source-application-software-companies/081715/whic [4]:http://relax-and-recover.org/ [5]:http://thevarguy.com/open-source-application-software-companies/061614/hps-machine-open-source-os-truly-revolutionary [6]:http://hp.com/ -[7]:http://ubuntu.com/ \ No newline at end of file +[7]:http://ubuntu.com/ From d4d536b295605d2f24b797d66fdb0c6f54083aea Mon Sep 17 00:00:00 2001 From: alim0x Date: Thu, 5 May 2016 22:10:30 +0800 Subject: [PATCH 437/582] [translating]20160301 The Evolving Markrt for ... --- ...lving Market for Commercial Software Built On Open Source.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md b/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md index 85ba752bfa..5cd6a2f1c1 100644 --- a/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md +++ b/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md @@ -1,3 +1,5 @@ +alim0x translating + The Evolving Market for Commercial Software Built On Open Source ===================================================================== From dfad964c88a4ff6bb7ccbcbe5f624d125444c328 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 6 May 2016 10:04:18 +0800 Subject: [PATCH 438/582] =?UTF-8?q?20160504-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit update --- .../LXD/Part 5 - LXD 2.0: Image management.md | 453 +++++++++++++++++- 1 file changed, 452 insertions(+), 1 deletion(-) diff --git a/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md b/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md index 3a69aadd00..1e2e9ace01 100644 --- a/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md +++ b/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md @@ -1,7 +1,458 @@ Part 5 - LXD 2.0: Image management ================================== -<正文待补充> +This is the fifth blog post [in this series about LXD 2.0][0]. + +As there are a lot of commands involved with managing LXD containers, this post is rather long. If you’d instead prefer a quick step-by-step tour of those same commands, you can [try our online demo instead][1]! + +![](https://linuxcontainers.org/static/img/containers.png) + +### Container images + +If you’ve used LXC before, you probably remember those LXC “templates”, basically shell scripts that spit out a container filesystem and a bit of configuration. + +Most templates generate the filesystem by doing a full distribution bootstrapping on your local machine. This may take quite a while, won’t work for all distributions and may require significant network bandwidth. + +Back in LXC 1.0, I wrote a “download” template which would allow users to download pre-packaged container images, generated on a central server from the usual template scripts and then heavily compressed, signed and distributed over https. A lot of our users switched from the old style container generation to using this new, much faster and much more reliable method of creating a container. + +With LXD, we’re taking this one step further by being all-in on the image based workflow. All containers are created from an image and we have advanced image caching and pre-loading support in LXD to keep the image store up to date. + +### Interacting with LXD images + +Before digging deeper into the image format, lets quickly go through what LXD lets you do with those images. + +#### Transparently importing images + +All containers are created from an image. The image may have come from a remote image server and have been pulled using its full hash, short hash or an alias, but in the end, every LXD container is created from a local image. + +Here are a few examples: + +``` +lxc launch ubuntu:14.04 c1 +lxc launch ubuntu:75182b1241be475a64e68a518ce853e800e9b50397d2f152816c24f038c94d6e c2 +lxc launch ubuntu:75182b1241be c3 +``` + +All of those refer to the same remote image (at the time of this writing), the first time one of those is run, the remote image will be imported in the local LXD image store as a cached image, then the container will be created from it. + +The next time one of those commands are run, LXD will only check that the image is still up to date (when not referring to it by its fingerprint), if it is, it will create the container without downloading anything. + +Now that the image is cached in the local image store, you can also just start it from there without even checking if it’s up to date: + +``` +lxc launch 75182b1241be c4 +``` + +And lastly, if you have your own local image under the name “myimage”, you can just do: + +``` +lxc launch my-image c5 +``` + +If you want to change some of that automatic caching and expiration behavior, there are instructions in an earlier post in this series. + +#### Manually importing images + +##### Copying from an image server + +If you want to copy some remote image into your local image store but not immediately create a container from it, you can use the “lxc image copy” command. It also lets you tweak some of the image flags, for example: + +``` +lxc image copy ubuntu:14.04 local: +``` + +This simply copies the remote image into the local image store. + +If you want to be able to refer to your copy of the image by something easier to remember than its fingerprint, you can add an alias at the time of the copy: + +``` +lxc image copy ubuntu:12.04 local: --alias old-ubuntu +lxc launch old-ubuntu c6 +``` + +And if you would rather just use the aliases that were set on the source server, you can ask LXD to copy the for you: + +lxc image copy ubuntu:15.10 local: --copy-aliases +lxc launch 15.10 c7 +All of the copies above were one-shot copy, so copying the current version of the remote image into the local image store. If you want to have LXD keep the image up to date, as it does for the ones stored in its cache, you need to request it with the `–auto-update` flag: + +``` +lxc image copy images:gentoo/current/amd64 local: --alias gentoo --auto-update +``` + +##### Importing a tarball + +If someone provides you with a LXD image as a single tarball, you can import it with: + +``` +lxc image import +``` + +If you want to set an alias at import time, you can do it with: + +``` +lxc image import --alias random-image +``` + +Now if you were provided with two tarballs, identify which contains the LXD metadata. Usually the tarball name gives it away, if not, pick the smallest of the two, metadata tarballs are tiny. Then import them both together with: + +``` +lxc image import +``` + +##### Importing from a URL + +“lxc image import” also works with some special URLs. If you have an https web server which serves a path with the LXD-Image-URL and LXD-Image-Hash headers set, then LXD will pull that image into its image store. + +For example you can do: + +``` +lxc image import https://dl.stgraber.org/lxd --alias busybox-amd64 +``` + +When pulling the image, LXD also sets some headers which the remote server could check to return an appropriate image. Those are LXD-Server-Architectures and LXD-Server-Version. + +This is meant as a poor man’s image server. It can be made to work with any static web server and provides a user friendly way to import your image. + +#### Managing the local image store + +Now that we have a bunch of images in our local image store, lets see what we can do with them. We’ve already covered the most obvious, creating containers from them but there are a few more things you can do with the local image store. + +##### Listing images + +To get a list of all images in the store, just run “lxc image list”: + +``` +stgraber@dakara:~$ lxc image list ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| alpine-32 | 6d9c131efab3 | yes | Alpine edge (i386) (20160329_23:52) | i686 | 2.50MB | Mar 30, 2016 at 4:36am (UTC) | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| busybox-amd64 | 74186c79ca2f | no | Busybox x86_64 | x86_64 | 0.79MB | Mar 30, 2016 at 4:33am (UTC) | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| gentoo | 1a134c5951e0 | no | Gentoo current (amd64) (20160329_14:12) | x86_64 | 232.50MB | Mar 30, 2016 at 4:34am (UTC) | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| my-image | c9b6e738fae7 | no | Scientific Linux 6 x86_64 (default) (20160215_02:36) | x86_64 | 625.34MB | Mar 2, 2016 at 4:56am (UTC) | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| old-ubuntu | 4d558b08f22f | no | ubuntu 12.04 LTS amd64 (release) (20160315) | x86_64 | 155.09MB | Mar 30, 2016 at 4:30am (UTC) | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| w (11 more) | d3703a994910 | no | ubuntu 15.10 amd64 (release) (20160315) | x86_64 | 153.35MB | Mar 30, 2016 at 4:31am (UTC) | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +| | 75182b1241be | no | ubuntu 14.04 LTS amd64 (release) (20160314) | x86_64 | 118.17MB | Mar 30, 2016 at 4:27am (UTC) | ++---------------+--------------+--------+------------------------------------------------------+--------+----------+------------------------------+ +``` + +You can filter based on the alias or fingerprint simply by doing: + +``` +stgraber@dakara:~$ lxc image list amd64 ++---------------+--------------+--------+-----------------------------------------+--------+----------+------------------------------+ +| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | ++---------------+--------------+--------+-----------------------------------------+--------+----------+------------------------------+ +| busybox-amd64 | 74186c79ca2f | no | Busybox x86_64 | x86_64 | 0.79MB | Mar 30, 2016 at 4:33am (UTC) | ++---------------+--------------+--------+-----------------------------------------+--------+----------+------------------------------+ +| w (11 more) | d3703a994910 | no | ubuntu 15.10 amd64 (release) (20160315) | x86_64 | 153.35MB | Mar 30, 2016 at 4:31am (UTC) | ++---------------+--------------+--------+-----------------------------------------+--------+----------+------------------------------+ +``` + +Or by specifying a key=value filter of image properties: + +``` +stgraber@dakara:~$ lxc image list os=ubuntu ++-------------+--------------+--------+---------------------------------------------+--------+----------+------------------------------+ +| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | ++-------------+--------------+--------+---------------------------------------------+--------+----------+------------------------------+ +| old-ubuntu | 4d558b08f22f | no | ubuntu 12.04 LTS amd64 (release) (20160315) | x86_64 | 155.09MB | Mar 30, 2016 at 4:30am (UTC) | ++-------------+--------------+--------+---------------------------------------------+--------+----------+------------------------------+ +| w (11 more) | d3703a994910 | no | ubuntu 15.10 amd64 (release) (20160315) | x86_64 | 153.35MB | Mar 30, 2016 at 4:31am (UTC) | ++-------------+--------------+--------+---------------------------------------------+--------+----------+------------------------------+ +| | 75182b1241be | no | ubuntu 14.04 LTS amd64 (release) (20160314) | x86_64 | 118.17MB | Mar 30, 2016 at 4:27am (UTC) | ++-------------+--------------+--------+---------------------------------------------+--------+----------+------------------------------+ +``` + +To see everything LXD knows about a given image, you can use “lxc image info”: + +``` +stgraber@castiana:~$ lxc image info ubuntu +Fingerprint: e8a33ec326ae7dd02331bd72f5d22181ba25401480b8e733c247da5950a7d084 +Size: 139.43MB +Architecture: i686 +Public: no +Timestamps: + Created: 2016/03/15 00:00 UTC + Uploaded: 2016/03/16 05:50 UTC + Expires: 2017/04/26 00:00 UTC +Properties: + version: 12.04 + aliases: 12.04,p,precise + architecture: i386 + description: ubuntu 12.04 LTS i386 (release) (20160315) + label: release + os: ubuntu + release: precise + serial: 20160315 +Aliases: + - ubuntu +Auto update: enabled +Source: + Server: https://cloud-images.ubuntu.com/releases + Protocol: simplestreams + Alias: precise/i386 +``` + +##### Editing images + +A convenient way to edit image properties and some of the flags is to use: + +lxc image edit +This opens up your default text editor with something like this: + +autoupdate: true +properties: + aliases: 14.04,default,lts,t,trusty + architecture: amd64 + description: ubuntu 14.04 LTS amd64 (release) (20160314) + label: release + os: ubuntu + release: trusty + serial: "20160314" + version: "14.04" +public: false +You can change any property you want, turn auto-update on and off or mark an image as publicly available (more on that later). + +##### Deleting images + +Remove an image is a simple matter of running: + +``` +lxc image delete +``` + +Note that you don’t have to remove cached entries, those will automatically be removed by LXD after they expire (by default, after 10 days since they were last used). + +##### Exporting images + +If you want to get image tarballs from images currently in your image store, you can use “lxc image export”, like: + +``` +stgraber@dakara:~$ lxc image export old-ubuntu . +Output is in . +stgraber@dakara:~$ ls -lh *.tar.xz +-rw------- 1 stgraber domain admins 656 Mar 30 00:55 meta-ubuntu-12.04-server-cloudimg-amd64-lxd.tar.xz +-rw------- 1 stgraber domain admins 156M Mar 30 00:55 ubuntu-12.04-server-cloudimg-amd64-lxd.tar.xz +``` + +#### Image formats + +LXD right now supports two image layouts, unified or split. Both of those are effectively LXD-specific though the latter makes it easier to re-use the filesystem with other container or virtual machine runtimes. + +LXD being solely focused on system containers, doesn’t support any of the application container “standard” image formats out there, nor do we plan to. + +Our images are pretty simple, they’re made of a container filesystem, a metadata file describing things like when the image was made, when it expires, what architecture its for, … and optionally a bunch of file templates. + +See this document for up to date details on the [image format][1]. + +##### Unified image (single tarball) + +The unified image format is what LXD uses when generating images itself. They are a single big tarball, containing the container filesystem inside a “rootfs” directory, have the metadata.yaml file at the root of the tarball and any template goes into a “templates” directory. + +Any compression (or none at all) can be used for that tarball. The image hash is the sha256 of the resulting compressed tarball. + +##### Split image (two tarballs) + +This format is most commonly used by anyone rolling their own images and who already have a compressed filesystem tarball. + +They are made of two distinct tarball, the first contains just the metadata bits that LXD uses, so the metadata.yaml file at the root and any template in the “templates” directory. + +The second tarball contains only the container filesystem directly at its root. Most distributions already produce such tarballs as they are common for bootstrapping new machines. This image format allows re-using them unmodified. + +Any compression (or none at all) can be used for either tarball, they can absolutely use different compression algorithms. The image hash is the sha256 of the concatenation of the metadata and rootfs tarballs. + +##### Image metadata + +A typical metadata.yaml file looks something like: + +``` +architecture: "i686" +creation_date: 1458040200 +properties: + architecture: "i686" + description: "Ubuntu 12.04 LTS server (20160315)" + os: "ubuntu" + release: "precise" +templates: + /var/lib/cloud/seed/nocloud-net/meta-data: + when: + - start + template: cloud-init-meta.tpl + /var/lib/cloud/seed/nocloud-net/user-data: + when: + - start + template: cloud-init-user.tpl + properties: + default: | + #cloud-config + {} + /var/lib/cloud/seed/nocloud-net/vendor-data: + when: + - start + template: cloud-init-vendor.tpl + properties: + default: | + #cloud-config + {} + /etc/init/console.override: + when: + - create + template: upstart-override.tpl + /etc/init/tty1.override: + when: + - create + template: upstart-override.tpl + /etc/init/tty2.override: + when: + - create + template: upstart-override.tpl + /etc/init/tty3.override: + when: + - create + template: upstart-override.tpl + /etc/init/tty4.override: + when: + - create + template: upstart-override.tpl +``` + +##### Properties + +The two only mandatory fields are the creation date (UNIX EPOCH) and the architecture. Everything else can be left unset and the image will import fine. + +The extra properties are mainly there to help the user figure out what the image is about. The “description” property for example is what’s visible in “lxc image list”. The other properties can be used by the user to search for specific images using key/value search. + +Those properties can then be edited by the user through “lxc image edit” in contrast, the creation date and architecture fields are immutable. + +##### Templates + +The template mechanism allows for some files in the container to be generated or re-generated at some point in the container lifecycle. + +We use the pongo2 templating engine for those and we export just about everything we know about the container to the template. That way you can have custom images which use user-defined container properties or normal LXD properties to change the content of some specific files. + +As you can see in the example above, we’re using those in Ubuntu to seed cloud-init and to turn off some init scripts. + +### Creating your own images + +LXD being focused on running full Linux systems means that we expect most users to just use clean distribution images and not spin their own image. + +However there are a few cases where having your own images is useful. Such as having pre-configured images of your production servers or building your own images for a distribution or architecture that we don’t build images for. + +#### Turning a container into an image + +The easiest way by far to build an image with LXD is to just turn a container into an image. + +This can be done with: + +``` +lxc launch ubuntu:14.04 my-container +lxc exec my-container bash + +lxc publish my-container --alias my-new-image +``` + +You can even turn a past container snapshot into a new image: + +``` +lxc publish my-container/some-snapshot --alias some-image +``` + +#### Manually building an image + +Building your own image is also pretty simple. + +1. Generate a container filesystem. This entirely depends on the distribution you’re using. For Ubuntu and Debian, it would be by using debootstrap. +2. Configure anything that’s needed for the distribution to work properly in a container (if anything is needed). +3. Make a tarball of that container filesystem, optionally compress it. +4. Write a new metadata.yaml file based on the one described above. +5. Create another tarball containing that metadata.yaml file. +6. Import those two tarballs as a LXD image with: + ``` + lxc image import --alias some-name + ``` + +You will probably need to go through this a few times before everything works, tweaking things here and there, possibly adding some templates and properties. + +### Publishing your images + +All LXD daemons act as image servers. Unless told otherwise all images loaded in the image store are marked as private and so only trusted clients can retrieve those images, but should you want to make a public image server, all you have to do is tag a few images as public and make sure you LXD daemon is listening to the network. + +#### Just running a public LXD server + +The easiest way to share LXD images is to run a publicly visible LXD daemon. + +You typically do that by running: + +``` +lxc config set core.https_address "[::]:8443" +``` + +Remote users can then add your server as a public image server with: + +``` +lxc remote add --public +``` + +They can then use it just as they would any of the default image servers. As the remote server was added with “–public”, no authentication is required and the client is restricted to images which have themselves been marked as public. + +To change what images are public, just “lxc image edit” them and set the public flag to true. + +#### Use a static web server + +As mentioned above, “lxc image import” supports downloading from a static http server. The requirements are basically: + +* The server must support HTTPs with a valid certificate, TLS1.2 and EC ciphers +* When hitting the URL provided to “lxc image import”, the server must return an answer including the LXD-Image-Hash and LXD-Image-URL HTTP headers + +If you want to make this dynamic, you can have your server look for the LXD-Server-Architectures and LXD-Server-Version HTTP headers which LXD will provide when fetching the image. This allows you to return the right image for the server’s architecture. + +#### Build a simplestreams server + +The “ubuntu:” and “ubuntu-daily:” remotes aren’t using the LXD protocol (“images:” is), those are instead using a different protocol called simplestreams. + +simplestreams is basically an image server description format, using JSON to describe a list of products and files related to those products. + +It is used by a variety of tools like OpenStack, Juju, MAAS, … to find, download or mirror system images and LXD supports it as a native protocol for image retrieval. + +While certainly not the easiest way to start providing LXD images, it may be worth considering if your images can also be used by some of those other tools. + +More information can be found here. + +### Conclusion + +I hope this gave you a good idea of how LXD manages its images and how to build and distribute your own. The ability to have the exact same image easily available bit for bit on a bunch of globally distributed system is a big step up from the old LXC days and leads the way to more reproducible infrastructure. + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net + +And if you don’t want or can’t install LXD on your own machine, you can always [try it online instead][3]! +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/03/30/lxd-2-0-image-management-512/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://github.com/lxc/lxd/blob/master/doc/image-handling.md +[2]: https://launchpad.net/simplestreams +[3]: https://linuxcontainers.org/lxd/try-it 原文:https://www.stgraber.org/2016/03/30/lxd-2-0-image-management-512/ From 4634a12411cce1ea4ec8caeef4c39e32b126f1c7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 6 May 2016 10:29:16 +0800 Subject: [PATCH 439/582] =?UTF-8?q?20160506-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nfessions of a cross-platform developer.md | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 sources/talk/20160505 Confessions of a cross-platform developer.md diff --git a/sources/talk/20160505 Confessions of a cross-platform developer.md b/sources/talk/20160505 Confessions of a cross-platform developer.md new file mode 100644 index 0000000000..807dfd544b --- /dev/null +++ b/sources/talk/20160505 Confessions of a cross-platform developer.md @@ -0,0 +1,72 @@ +Confessions of a cross-platform developer +============================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/business_clouds.png?itok=cucHuJnU) + +[Andreia Gaita][1] is giving a talk at this year's OSCON, titled [Confessions of a cross-platform developer][2]. She's a long-time open source and [Mono][3] contributor, and develops primarily in C#/C++. Andreia works at GitHub, where she's focused on building the GitHub Extension manager for Visual Studio. + +I caught up with Andreia ahead of her talk to ask about cross-platform development and what she's learned in her 16 years as a cross-platform developer. + +![](https://opensource.com/sites/default/files/images/life/Interview%20banner%20Q%26A.png) + +**What languages have you found easiest and hardest to develop cross-platform code for?** + +It's less about which languages are good and more about the libraries and tooling available for those languages. The compilers/interpreters/build systems available for languages determine how easy it is to do cross-platform work with them (or whether it's even possible), and the libraries available for UI and native system access determine how deep you can integrate with the OS. With that in mind, I found C# to be the best for cross-platform work. The language itself includes features that allow fast native calls and accurate memory mapping, which you really need if you want your code to talk to the OS and native libraries. When I need very specific OS integration, I switch to C or C++. + +**What cross-platform toolkits/abstractions have you used?** + +Most of my cross-platform work has been developing tools, libraries and bindings for other people to develop cross-platform applications with, mostly in Mono/C# and C/C++. I don't get to use a lot of abstractions at that level, beyond glib and friends. I mostly rely on Mono for any cross-platform app that includes a UI, and Unity3D for the occasional game development. I play with Electron every now and then. + +**What has been your approach to build systems, and how does this vary by language or platform?** + +I try to pick the build system that is most suited for the language(s) I'm using. That way, it'll (hopefully) give me less headaches. It needs to allow for platform and architecture selection, be smart about build artifact locations (for multiple parallel builds), and be decently configurable. Most of the time I have projects combining C/C++ and C# and I want to build all the different configurations at the same time from the same source tree (Debug, Release, Windows, OSX, Linux, Android, iOS, etc, etc.), and that usually requires selecting and invoking different compilers with different flags per output build artifact. So the build system has to let me do all of this without getting (too much) in my way. I try out different build systems every now and then, just to see what's new, but in the end, I end up going back to makefiles and a combination of either shell and batch scripts or Perl scripts for driving them (because if I want users to build my things, I'd better pick a command line script language that is available everywhere). + +**How do you balance the desire for native look and feel with the need for uniform user interfaces?** + +Cross-platform UI is hard! I've implemented several cross-platform GUIs over the years, and it's the one thing for which I don't think there's an optimal solution. There's basically two options. You can pick a cross-platform GUI toolkit and do a UI that doesn't feel quite right in all the platforms you support, with a small codebase and low maintenance cost. Or you can choose to develop platform-specific UIs that will look and feel native and well integrated with a larger codebase and higher maintenance cost. The decision really depends on the type of app, how many features it has, how many resources you have, and how many platforms you're shipping to. + +In the end, I think there's an increase in users' tolerance for "One UI To Rule Them All" with frameworks like Electron. I have a Chromium+C+C# framework side project that will one day hopefully allow me build Electron-style apps in C#, giving me the best of both worlds. + +**Has building/packaging dependencies been an issue for you?** + +I'm very conservative about my use of dependencies, having been bitten so many times by breaking ABIs, clashing symbols, and missing packages. I decide which OS version(s) I'm targeting and pick the lowest common denominator release available of a dependency to minimize issues. That usually means having five different copies of Xcode and OSX Framework libraries, five different versions of Visual Studio installed side-to-side on the same machine, multiple clang and gcc versions, and a bunch of VMs running various other distros. If I'm unsure of the state of packages in the OS I'm targeting, I will sometimes link statically and sometimes submodule dependencies to make sure they're always available. And most of all, I avoid the bleeding edge unless I really, really need something there. + +**Do you use continuous integration, code review, and related tools?** + +All the time! It's the only way to keep sane. The first thing I do on a project is set up cross-platform build scripts to ensure everything is automateable as early as possible. When you're targeting multiple platforms, CI is essential. It's impossible for everyone to build all the different combinations of platforms in one machine, and as soon as you're not building all of them you're going to break something without being aware of it. In a shared multi-platform codebase, different people own different platforms and features, so the only way to guarantee quality is to have cross-team code reviews combined with CI and other analysis tools. It's no different than other software projects, there's just more points of failure. + +**Do you rely on automated build testing, or do you tend to build on each platform and test locally?** + +For tools and libraries that don't include UIs, I can usually get away with automated build testing. If there's a UI, then I need to do both—reliable, scriptable UI automation for existing GUI toolkits is rare to non-existent, so I would have to either invest in creating UI automation tools that work across all the platforms I want to support, or I do it manually. If a project uses a custom UI toolkit (like, say, an OpenGL UI like Unity3D does), then it's fairly easy to develop scriptable automation tools and automate most of that stuff. Still, there's nothing like the human ability to break things with a couple of clicks! + +**If you are developing cross-platform, do you support cross-editor build systems so that you can use Visual Studio on Windows, Qt Creator on Linux, and XCode on Mac? Or do you tend toward supporting one platform such as Eclipse on all platforms?** + +I favor cross-editor build systems. I prefer generating project files for different IDEs (preferably in a way that makes it easier to add more IDEs), with build scripts that can drive builds from the IDEs for the platform they're on. Editors are the most important tool for a developer. It takes time and effort to learn them, and they're not interchangeable. I have my favorite editors and tools, and everyone else should be able to use their favorite tool, too. + +**What is your preferred editor/development environment/IDE for cross-platform development?** + +The cross-platform developer is cursed with having to pick the lowest common denominator editor that works across the most platforms. I love Visual Studio, but I can't rely on it for anything except Windows work (and you really don't want to make Windows your primary cross-compiling platform), so I can't make it my primary IDE. Even if I could, an essential skill of cross-platform development is to know and use as many platforms as possible. That means really knowing them—using the platform's editors and libraries, getting to know the OS and its assumptions, behaviors, and limitations, etc. To do that and keep my sanity (and my shortcut muscle memory), I have to rely on cross-platform editors. So, I use Emacs and Sublime. + +**What are some of your favorite past and current cross-platform projects?** + +Mono is my all-time favorite, hands down, and most of the others revolve around it in some way. Gluezilla was a Mozilla binding I did years ago to allow C# apps to embed web browser views, and that one was a doozy. At one point I had a Winforms app, built on Linux, running on Windows with an embedded GTK view in it that was running a Mozilla browser view. The CppSharp project (formerly Cxxi, formerly CppInterop) is a project I started to generate C# bindings for C++ libraries so that you could call, create instances of, and subclass C++ classes from C#. It was done in such a way that it would detect at runtime what platform you'd be running on and what compiler was used to create the native library and generate the correct C# bindings for it. That was fun! + +**Where do you see cross-platform development heading in the future?** + +The way we build native applications is already changing, and I feel like the visual differences between the various desktop operating systems are going to become even more blurred so that it will become easier to build cross-platform apps that integrate reasonably well without being fully native. Unfortunately, that might mean applications will be worse in terms of accessibility and less innovative when it comes to using the OS to its full potential. Cross-platform development of tools, libraries, and runtimes is something that we know how to do well, but there's still a lot of work to do with cross-platform application development. + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/business/16/5/oscon-interview-andreia-gaita + +作者:[Marcus D. Hanwell ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/mhanwell +[1]: https://twitter.com/sh4na +[2]: http://conferences.oreilly.com/oscon/open-source-us/public/schedule/detail/48702 +[3]: http://www.mono-project.com/ From 27cb03f2a78329851f4f7608176decef769dff94 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 6 May 2016 11:39:44 +0800 Subject: [PATCH 440/582] =?UTF-8?q?20160506-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ction of Drupal, IoT, and open hardware.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md diff --git a/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md b/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md new file mode 100644 index 0000000000..751024fb3a --- /dev/null +++ b/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md @@ -0,0 +1,52 @@ +The intersection of Drupal, IoT, and open hardware +======================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/drupal_blue_gray_lead.jpeg?itok=t7W_KD-D) + + +Meet [Amber Matz][1], a Production Manager and Trainer at [Drupalize.Me][3], a service of Lullabot Education. When she's not tinkering around with Arduinos, Raspberry Pis, and electronic wearables, you can find her wrangling presenters for the Portland Drupal User Group. + +Coming up at [DrupalCon NOLA][3], Amber will host a session about Drupal and IoT. If you're attending and want to learn about the intersection of open hardware, IoT, and Drupal, this session is for you. If you're not able to join us in New Orleans, Amber has some pretty cool things to share. In this interview, she tells us how she got involved with Drupal, a few of her favorite open hardware projects, and what the future holds for IoT and Drupal. + +![](https://opensource.com/sites/default/files/images/life/Interview%20banner%20Q%26A.png) + +**How did you get involved with the Drupal community?** + +Back in the day, I was working at a large nonprofit in the "webmaster's office" of the marketing department and was churning out custom PHP/MySQL forms like nobody's business. I finally got weary of that and starting hunting around the web for a better way. I found Drupal 6 and starting diving in on my own. Years later, after a career shift and a move, I discovered the Portland Drupal User Group and landed a job as a full-time Drupal developer. I continued to regularly attend the meetups in Portland, which I found to be a great source of community, friendships, and professional development. Eventually, I landed a job with Lullabot as a trainer creating content for Drupalize.Me. Now, I'm managing the Drupalize.Me content pipeline, creating Drupal 8 content, and am very much involved in the Portland Drupal community. I'm this year's coordinator, finding and scheduling speakers. + +**We have to know: What is Arduino prototyping, how did you discover it, and what's the coolest thing you've done with an Arduino?** + +Arduino, Raspberry Pi, and wearable electronics have been these terms that I've heard thrown around for years. I found [Adafruit's Wearable Electronics][4] with Becky Stern YouTube show years ago (which, up until recently, when Becky moved on, aired every Wednesday). I was fascinated by wearables and even ordered an LED sewing kit but never did anything with it. I just didn't get it. I had no background in electronics whatsoever, and while I was fascinated by the projects I was finding, I didn't see how I could ever make anything like that. It seemed so out of reach. + +Finally, I found a Coursera "Internet of Things" specialization. (So trendy, right?) But I was immediately hooked! I finally got an explanation of what an Arduino was, along with all these other important terms and concepts. I ordered the recommended Arduino starter kit, which came with a getting started booklet. When I made that first LED blink, it was pure delight. I had two weeks' vacation over the holidays and after Christmas, and I did nothing but make and program Arduino circuits from the getting started booklet. It was oddly so relaxing! I enjoyed it so much. + +In January, I started creating my own prototypes. When I found out I was emceeing our company retreat's lightning talks, I created a Lightning Talk Visual Timer prototype with five LEDs and an Arduino. + +![](https://opensource.com/sites/default/files/resize/amber-arduino-lightning-talk-timer-400x400.jpg) + +It was a huge hit. I also made my first wearable project, a glowing hoodie, using the Arduino IDE compatible Gemma microcontroller, a tiny round sewable component, to which I sewed using conductive thread, a conductive slider connected to a hoodie's drawstring, which controlled the colors of five NeoPixels sewn around the inside of the hood. So that's what I mean by prototyping: Making crazy projects that are fun and maybe even a little practical. + +**What are the biggest opportunities for Drupal and IoT?** + +IoT isn't that much different than the web services and decoupling Drupal trends. It's the movement of data from thing one to thing two and the rendering of that data into something useful. But how does it get there? And what do you do with it? You think there are a lot of solutions, and apps, and frameworks, and APIs out there now? With IoT, that's only going to continue to increase—exponentially. What I've found is that given any device or any "thing", there is a way to connect it to the Internet—many ways. And there are plenty of code libraries out there to help makers get their data from thing one to thing two. + +So where does Drupal fit in? Web services, for one, is going to be the first obvious place. But as a maker, I don't want to spend my time coding custom modules in Drupal. I want to plug and play! So I would love to see modules emerge that connect with IoT Cloud APIs and services like ThingSpeak and Adafruit.io and IFTTT and others. I think there's an opportunity, too, for a business to build an IoT cloud service in Drupal that allows people to send and store their sensor data, visualize it charts and graphs, and build widgets that react to certain values or thresholds. Each of these IoT Cloud API services fill a slightly different niche, and there's plenty of room for others. + +**What are a few things you're looking forward to at DrupalCon?** + +I love reconnecting with Drupal friends, meeting new people, and also seeing Lullabot and Drupalize.Me co-workers (we're distributed companies)! There's so much to learn with Drupal 8 and it's been overwhelming at times to put together training materials for our customers. So, I'm looking forward to attending Drupal 8-related sessions and getting up-to-speed on the latest developments. Finally, I'm really curious about New Orleans! I haven't been there since 2004 and I'm excited to see what's changed. + +**Tell us about your DrupalCon talk Beyond the blink: Add Drupal to your IoT playground. Why should someone attend? What are the major takeaways?** + +My session title, Beyond the blink: Add Drupal to your IoT playground, in itself is so full of assumptions that first off I'm going to get everyone up to speed and on the same page. You don't need to know anything about Arduino, the Internet of Things, or even Drupal to follow along. We'll start with making an LED blink with an Arduino, and then I want to talk about what the main takeaways have been for me: Play, learn, teach, and make. I'll show examples that have inspired me and that will hopefully inspire and encourage others in the audience to give it a try. Then, it's demo time! + +First, thing one. Thing one is a Build Notifier Tower Light. In this demo, I'll show how I connected the Tower Light to the Internet and how I got it to respond to data received from a Cloud API service. Next, Thing two. Thing two is a "weather watch" in the form of a steampunk iPhone case. It's got small LED matrix that displays an icon of the local-to-me weather, a barometric pressure and temperature sensor, a GPS module, and a Bluetooth LE module, all connected and controlled with an Adafruit Flora microcontroller. Thing two sends weather and location data to Adafruit.io by connecting to an app on my iPhone over Bluetooth and sends it up to the cloud using an MQTT protocol! Then, on the Drupal side, I'm pulling down that data from the cloud, updating a block with the weather, and updating a map. So folks will get a taste of what you can do with web services, maps, and blocks in Drupal 8, too. + +It's been a brain-melting adventure learning and making these demo prototypes, and I hope others will come to the session and catch a little of this contagious enthusiasm I have for this intersection of technologies! I'm very excited to share what I've discovered. + + + +[1]: https://www.drupal.org/u/amber-himes-matz +[2]: https://drupalize.me/ +[3]: https://events.drupal.org/neworleans2016/ +[4]: https://www.adafruit.com/beckystern From 268194d76dd61c84886d9c79647512905169b815 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 6 May 2016 11:45:30 +0800 Subject: [PATCH 441/582] =?UTF-8?q?20160506-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 开启 “我的开源路” 系列 --- .../20160429 Why and how I became a software engineer.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk/my-open-source-story}/20160429 Why and how I became a software engineer.md (100%) diff --git a/sources/tech/20160429 Why and how I became a software engineer.md b/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md similarity index 100% rename from sources/tech/20160429 Why and how I became a software engineer.md rename to sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md From e8506bf62ab616d18895a4c40ae48224728294ae Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 6 May 2016 11:49:18 +0800 Subject: [PATCH 442/582] =?UTF-8?q?20160506-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Silicon Valley shares her 'nerd' story.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md diff --git a/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md b/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md new file mode 100644 index 0000000000..afb210298d --- /dev/null +++ b/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md @@ -0,0 +1,82 @@ +A daughter of Silicon Valley shares her 'nerd' story +======================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) + +Back in 2014, my colleague [Crystal Beasley][1] started a thread of women in tech/hackers posting their "nerd stories" in response to some comments out there on the Internet about the lack of women in tech. This is my nerd story, shared with you because I do believe in role models, and I do believe that there are many paths one can take to a satisfying challenging career and a life that helps one fulfill their goals. + +### Growing up with computers + +I am, among other things, a daughter of Silicon Valley. Mine is not a story of arriving at tech from the sidelines, or of dedication from childhood. It is more a story of how exposure shapes you—of the power of being marinated in a culture, if you will. This is not the story of a straight path or a clear dedication from childhood to one goal. It is a story of intense privilege, I am aware. + +I was born in Manhattan, but we lived in New Jersey while my dad was working on a PhD in computer science at Rutgers on the GI Bill. When I was four, someone at school asked me what my dad did for a living and I said, "He watches TV and hunts for bugs, but I never seen 'em." He had a dumb terminal at home, presumably for his job at Bolt Beranek Newman working on the artificial intelligence aspects of the early Internet. I was watching. + +I did not get to play with dad's bug hunting TV, but I was steeped in tech from an early age, and I value the gift of that early exposure. Early exposure is one of the things we must give to the future nerds—take time to talk to the kids you know about what you do! + +![](https://opensource.com/sites/default/files/resize/moss-520x433.png) + +>My dad's terminal was similar, if not identical, to this one. CC BY-SA 4.0 + +When I was six, we moved to California. Dad was taking a job at Xerox PARC. I remember thinking that the city would be full of bears, because there was a bear on the flag. In 1979, Palo Alto was a college town and still had orchards and open space. + +After a year of public school in Palo Alto, my sisters and I were sent to Peninsula School, a "democratic model" school that shaped me deeply. Curiosity and creativity were considered central curriculum values, and education was led substantively by group decisions of the students ourselves. We rarely saw anything one would call a computer at school, but home was another story. + +After his days at Xerox PARC, dad went to Apple, where he worked on and brought home the first computers I played with: the Apple II and the LISA. My dad was on the original LISA development team, and I vividly remember that he made us "play" the mousing tutorial over and over because he wanted my 3 year-old sister to be comfortable with it... and she was. + +![](https://opensource.com/sites/default/files/resize/600px-apple_lisa-520x520.jpg) + +>Our LISA computer pretty much looked like this. See the mouse? CC BY-SA 4.0 + +At the same time in school, while I was great at conceptual math, I floundered in basic computation. One teacher at my first school told my parents, and me, that I was bad at math and "stupid." While I excelled in our "regular" math program, understanding logical puzzles beyond what one expects of a 7 year-old, I could not successfully complete the math "drills" we had to do at the beginning of each day. She called me stupid, and I didn't forget it. I didn't get back to believing in my own logical and algorithmic mental capabilities for more than 10 years after that. Do not underestimate the power of the words you say to children. + +Years of playing with dad's computers followed. He went from Apple to EA to SGI, and I played with all his machines. This led to us having what we thought was the coolest house in town, because we had an SGI machine on which to play Doom in our garage. I didn't code much at all, but what I got from those years, I see now, was a measure of fearlessness about trying out new technologies. At the same time, my mom, whose background was literature and education, became a technical writer and showed me both that careers can change and that it is possible to manage a technical career and motherhood together. I would not say that was easy for her, but she made it look easy to me. You'd think that all of this early exposure might send me straight into a technical degree and career. It did not. + +### Undergrad years + +I thought I wanted to be an elementary school teacher, and I enrolled at Mills College with every intention of doing that. Instead, I moved toward women's studies and later theology, primarily driven by one of my great desires in life: to understand human motivation and work for a better world. + +At the same time, I was for the first time being exposed to the full power of the Internet. In 1991, it was a very heady thing to have your own unix shell account and a world of people to talk to. I learned a lot from just "playing" online, and more from having people around willing to answer my many questions. It turned out that these same explorations led me down my career path at least as much as any formal academic education. All information is useful. I do not think it is any accident that this critical period of learning and exposure happened at a women's college where a brilliant woman ran the CS department. We were not just allowed, but encouraged to explore many paths in that rarified atmosphere of empowerment (we had access to lots and lots of technology and to smart people who wanted to help), and I did. I've always been grateful for it. It was also where I learned about geek culture. + +I went to grad school to study feminist theology, but technology was in my blood by then. When I realized I didn't want to be a professor or an academic ethicist, I left academia and came home with a lot of school debt and not a lot of ideas. + +### A new beginning + +I was stunned, in 1995, at the power I saw in the World Wide Web to connect people and share thoughts and information (I still am). I wanted in on it. It occurred to me that I could go into the "family business," but not really how. I started working as a temporary contractor at offices in the valley and tried a few things (writing very basic databases on semiconductor data, pre-press work for technical manuals, filing payroll stubs) before I landed my first "real" tech job at Sun Microsystems. It was a very exciting place to be. (We were, after all, "the dot in dot-com.") + +At Sun, I stuck my neck out, trying as many new things as I could. I worked firsthand at HTMLing (What? It's a word!) white papers, then hacking basic surveying tools (Perl, mostly) for beta programs. Then I became a program manager for Solaris beta programs, and at last got my first whiff of open source in running beta programs for Open Solaris. + +The biggest thing I did was learn. I found it to be an atmosphere where engineering and education were both valued, and where my questions were not "stupid." I was lucky in my choices of mentors and friends. I took every class I could, read every book I could, and tried to give myself the technical, business, and project management skill sets I hadn't obtained in school before deciding to take the oft-discussed "mommy break" to prepare for the birth of my second child. + +### Getting back to work + +When I was ready to go back to work, Sun was no longer a viable place to go. So, I gathered my contacts (networking is your friend) and my consulting skills and ended up with a rather long-term contract release managing a web "portal" (in 2005, everything was a portal) and exposing myself to everything I could about CRMs, release methodology, localization, networking, and more. I explain all of this background mostly because my biggest lesson was that the education I got was in what I tried and in what I failed to do, as much as in what I succeeded at. I think we need role models for that, too. + +In many respects, the entire first part of my career was my technical education. It was a different time and place—I worked on supporting women and other underrepresented minorities in the organization, but it was not as overtly difficult to be a woman in tech then. I was undoubtedly blind to some issues at the time, but there's also a case to be made that our industry has become more misogynistic, not less. + +After all of this, I still did not see myself as a role model, or as highly technical. I was quite shocked when a geek friend I knew from parenting circles encouraged me to apply for a job as product manager at a very obscure seeming and highly technical nonprofit open source infrastructure shop (Internet Systems Consortium, makers of BIND, the widely deployed open source DNS nameserver, and operators of one of the 13 root nameservers). For the longest time, I couldn't figure out why they hired me! I knew very little about DNS, infrastructure, or protocol development, but I found my mentors again and flourished. I spent my time traveling, working on critical processes, figuring out how to work with highly international teams, solving hairy problems, and most of all, embracing open source and the vibrant community that loved and supported our efforts so very much. I learned most of all, again, by making mistakes. I learned what it takes to build a vision for a product, and how building things in the open and in community takes all sorts of specific skills, talent, and patience, but adds so much value. + +### Becoming a mentor + +It was while I was at ISC that, through the amazing [TechWomen program][2] (which brings technical women from the Middle East and North Africa to Silicon Valley for mentoring), I got hooked on mentoring and supporting other women in tech, particularly in open source and open culture. It was when I started mentoring that I started believing in my own abilities, too. That was a long lesson to learn. + +When I first read the advert for TechWomen mentors, I didn't think they would even want to talk to me! My impostor syndrome was so strong. I was so shocked when I was asked to mentor the first cohort (and every one after that for six years), but I am learning to believe that I earned these things. Impostor Syndrome is real, but over time it can be overcome. + +### Today + +In the end, I had to leave my job at ISC. Luckily, my work and my values brought me to Mozilla, where I've been both perseverant and lucky enough to have several meaningful roles. Today, I'm the senior program manager of diversity and inclusion. I work full-time on building a more diverse and inclusive Mozilla, standing on the shoulders of giants who did the same before me and in partnership with many of the smartest and kindest people I know. I've followed my passion for empowering people to find meaningful ways to contribute to the Internet I believe the world needs: an expansion of the one that excited me so long ago. And I get to see a lot of the world while I do it! + +Taking a new approach to changing culture through organizational and behavioral interventions is such an incredible way to connect my entire trajectory—from my early academics through my career to now. It's a new challenge every day, and I guess that's what I love most about working in tech and in particular on the open web. The very pluralistic nature of the web that first drew me in is the same possibility I still seek—a world where there is opportunity for all and where there are resources for people no matter their backgrounds. Role models, mentors, resources, and, above all, respect are essential components of evolving tech and open source culture to be all that I believe it can be—including access and opportunity for all of us. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/5/my-open-source-story-larissa-shapiro + +作者:[Larissa Shapiro][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/larissa-shapiro +[1]: http://skinnywhitegirl.com/blog/my-nerd-story/1101/ +[2]: https://www.techwomen.org/mentorship/why-i-keep-coming-back-to-mentor-with-techwomen From b92c14255c44c0ef0f161fe91dbfa2d4417693a2 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 6 May 2016 12:41:09 +0800 Subject: [PATCH 443/582] translating by martin2011qi @martin2011qi --- .../20160429 Why and how I became a software engineer.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md b/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md index 722464168f..0fb8b3d549 100644 --- a/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md +++ b/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md @@ -1,3 +1,5 @@ +translating by martin2011qi + Why and how I became a software engineer ========================================== From 636f491cba43d65ca19e3b53418735a691ec7d02 Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Fri, 6 May 2016 16:45:00 +0800 Subject: [PATCH 444/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Raspberry Pi projects for the classroom.md | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md index 6c86172f7a..490708355d 100644 --- a/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md +++ b/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md @@ -8,9 +8,9 @@ ![](https://opensource.com/sites/default/files/lava.png) >Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1]. -我的世界是世界上很多青少年最喜欢的一个游戏,而且他也是目前最能激发年轻人创造力的一款游戏。这个树莓派版上自带的我的世界不仅仅是一个具有创造性的建筑游戏,他还是一个具有编程接口、可以通过 Python 与之交互的版本。 +我的世界是世界上几乎每一个青少年都特别喜欢的一款游戏,而且它成功抓住了年轻人眼球,成为目前最能激发年轻人创造力的游戏之一。这个树莓派版本自带的我的世界不仅仅是一个具有创造性的建筑游戏,还是一个具有编程接口,可以通过 Python 与之交互的版本。 -我的世界:Pi 版对于老师来说是一个非常好的教授学生解决问题和编写代码完成任务的途径。你可以使用 Python API 创建一个房子,并且一直跟随这你的脚步移动,当你需要桥梁的时候给你建造一座桥,让老天呀下雨,显示天空的温度,以及其它你可以想象到的一切东西。 +我的世界:Pi 版对于老师来说是一个教授学生解决问题和编写代码完成任务的好方式。你可以使用 Python API 创建一个房子,并且一直跟随这你的脚步移动,在所到之处建造一座桥,让天空落下熔岩雨滴,在空中显示温度,以及其它你可以想象到的一切东西。 详情请见 "[Getting Started with Minecraft Pi][2]." @@ -19,24 +19,22 @@ ![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg) >源于 [Low Voltage Labs][3]. [CC BY-SA 4.0][1]. -使用树莓派可以很轻松的进行物理计算——只需要连接几个 LED 和按钮到 开发板上的 GPIO 接口,再用几行代码你就可以按下按钮来开灯。一旦你指导了如何使用代码来做这些基本的东西,接下来就可以根据你的想象来做其它事情了。 +使用树莓派可以很轻松地进行物理计算,只需要连接几个 LED 和按钮到开发板上的 GPIO 接口,再用几行代码你就可以按下按钮来开灯。一旦你了解了如何使用代码来完成这些基本的操作,接下来就可以根据你的想象来做其它事情了。 -如果你知道如何让一个灯闪烁,你就可以让三个灯开始闪烁。挑选三个和交通灯一样颜色的 LED 灯,然后编写控制交通灯的代码。如果你知道如何使用按钮触发实践,那么你就可以模拟行人过马路。同时你可以参考其它已经完成的交通灯附件,比如[PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6],等等。 +如果你知道如何让一个灯闪烁,你就可以控制三个灯闪烁。挑选三个和交通灯一样颜色的 LED 灯,然后编写控制交通灯的代码。如果你知道如何使用按钮触发事件,那么你就可以模拟一个行人过马路。同时你可以参考其它已经完成的交通灯附件,比如[PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6],等等。 -代码并不是全部——这些联系只是让你理解真是世界里使如何完成这些事的。计算思维是一个在你一生中都会很有用的技能。 +代码并不是全部——这只是一个演练,让你理解现实世界里系统是如何完成设计的。计算思维是一个让你终身受用的技能。 ![](https://opensource.com/sites/default/files/reaction-game.png) >源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. - -接下来试着接通两个按钮和 LED 灯的电源,实现一个反应游戏 —— 让 LED 灯随机的点亮,然后看是最先按下按钮。 - +接下来试着接通两个按钮和 LED 灯的电源,实现一个双玩家的反应游戏 —— 让 LED 灯随机时间点亮,然后看是谁抢先按下按钮。 要想了解更多可以看看 [GPIO Zero recipes][7]。你所需要的资料都可以在 [CamJam EduKit 1][8] 找到。 -### 3. 电子宠物 +### 3. Sense HAT 电子宠物 -Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是你并没有错过亲手把玩这个硬件的机会。Sense HAT 是 Astro Pi 的一个传感器扩展板,现在已经开放购买了。你可以使用它来进行数据搜集,科学实验,游戏和其它很多事。可以看看下面树莓派的 Carrie Anne 拍摄的 Gurl Geek Diaries 的视频,里面演示了一种很棒的入门途径——给生活添加一个你自己创造的生动的像素宠物: +Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是你并没有错过亲手把玩这个硬件的机会。Sense HAT 是使用在 Astro Pi 的一个传感器扩展板,现在已经开放购买了。你可以使用它来进行数据搜集、科学实验,游戏等等。可以看看下面树莓派的 Carrie Anne 拍摄的 Gurl Geek Diaries 的视频,里面演示了一种很棒的入门途径——在 Sense HAT 屏幕上自己设计一个生动的像素宠物: [video](https://youtu.be/gfRDFvEVz-w) @@ -47,9 +45,9 @@ Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是 ![](https://opensource.com/sites/default/files/ir-bird-box.png) >源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. -让整个班级都可以参与进来的好主意是在鸟笼立方一个树莓派和夜视镜头,以及一些红外线灯,这样子你就可以在黑暗中看见鸟笼里的情况了,然后使用树莓派通过网络串流视频。然后就可以等待小鸟归笼了,你可以在不干扰小鸟习惯的情况下观察他们了。 +让整个班级都可以参与进来的好主意是在鸟笼里放置一个树莓派和夜视镜头,以及一些红外线灯,这样子你就可以在黑暗中看见鸟笼里的情况了,然后使用树莓派通过网络串流视频。然后就可以等待小鸟归笼了,你可以在不打扰的情况下近距离观察小窝里的它们了。 -要了解更多有关红外线和光谱的知识,以及如何调校摄像头和使用软件控制摄像头,可以访问 [Make an infrared bird box][10]。 +要了解更多有关红外线和光谱的知识,以及如何校准摄像头焦点和使用软件控制摄像头,可以访问 [Make an infrared bird box][10]。 @@ -58,22 +56,21 @@ Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是 ![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg) >源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. -只需要一个树莓派和很少几个电机和电机控制器,你就可以制作一个你自己的机器人。你可以制作的机器人有很多种,从简单的由几个轮子和自制底盘拼凑小车,到由游戏控制器驱动的、具有自我意识、配备了传感器、装配了摄像头的金属种马。 +只需要一个树莓派、很少的几个电机和电机控制器,你就可以自己动手制作一个机器人。可以制作的机器人有很多种,从简单的由几个轮子和自制底盘拼凑的简单小车,到由游戏控制器驱动、具有自我意识、配备了传感器,安装了摄像头的金属种马。 -要学习如何控制不同的电机,可以使用 RTK 电机驱动开发板入门或者使用配置了电机、轮子和传感器的 CamJam 机器人开发套件——具有很大的价值和大量的学习潜力——深入学习。 +要学习如何控制不同的电机,可以使用 RTK 电机驱动开发板入门或者使用配置了电机、轮子和传感器的 CamJam 机器人开发套件——具有很大的价值和大量的学习潜力。 -或者,如果你还想了解更多核心内容,可以试试 PiBorg 的 [4Borg][11] 和 [DiddyBorg][12],或者购买 Metal 版 DoodleBorg ,然后构建一个最小版本的 [DoodleBorg tank][13]。 +或者,如果你还想了解更多核心内容,可以试试 PiBorg 的 [4Borg][11](£99/$150)和 [DiddyBorg][12](£180/$273),或者购买 Metal 版 DoodleBorg (£250/$380),然后构建一个最小版本的 [DoodleBorg tank][13](非卖品)。 详情可见 [机器人装备表][14]。 - ------------------------------------------------------------------------------ via: https://opensource.com/education/15/12/5-great-raspberry-pi-projects-classroom 作者:[Ben Nuttall][a] 译者:[ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Caroline](https://github.com/carolinewuyan) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 404762e335a82c1d98f941bf28cb8736f739ccec Mon Sep 17 00:00:00 2001 From: carolinewuyan <309866211@qq.com> Date: Fri, 6 May 2016 16:48:18 +0800 Subject: [PATCH 445/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20151207 5 great Raspberry Pi projects for the classroom.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md index 490708355d..5204511c1d 100644 --- a/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md +++ b/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md @@ -6,7 +6,7 @@ ### 1. 我的世界: Pi ![](https://opensource.com/sites/default/files/lava.png) ->Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1]. +>源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. 我的世界是世界上几乎每一个青少年都特别喜欢的一款游戏,而且它成功抓住了年轻人眼球,成为目前最能激发年轻人创造力的游戏之一。这个树莓派版本自带的我的世界不仅仅是一个具有创造性的建筑游戏,还是一个具有编程接口,可以通过 Python 与之交互的版本。 From bc37fb186a2b31d92f08817ce54231a55a7e5503 Mon Sep 17 00:00:00 2001 From: Name1e5s <836401406@qq.com> Date: Sat, 7 May 2016 18:03:12 +0800 Subject: [PATCH 446/582] Name1e5s translating... --- ...60505 A daughter of Silicon Valley shares her 'nerd' story.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md b/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md index afb210298d..2ef0f680b0 100644 --- a/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md +++ b/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md @@ -1,3 +1,4 @@ +Name1e5s translating... A daughter of Silicon Valley shares her 'nerd' story ======================================================= From 2313cbf811230a018b470101ab219c5b055197fe Mon Sep 17 00:00:00 2001 From: sonofelice Date: Sat, 7 May 2016 18:21:50 +0800 Subject: [PATCH 447/582] =?UTF-8?q?sonofelice=20=E7=BF=BB=E8=AF=919=20Key?= =?UTF-8?q?=20Trends=20in=20Hybrid=20Cloud=20Computing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sonofelice 翻译9 Key Trends in Hybrid Cloud Computing --- sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md b/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md index 003405b4b7..4c6e74ed2d 100644 --- a/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md +++ b/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md @@ -1,3 +1,4 @@ +sonofelice translating 9 Key Trends in Hybrid Cloud Computing ======================================== From 08398858f2cfeec2c5dc815c4622e097f86b4c15 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Sun, 8 May 2016 01:06:36 +0800 Subject: [PATCH 448/582] Proofread 20151019 Gaming On Linux--All You Need To Know --- ...9 Gaming On Linux--All You Need To Know.md | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/translated/talk/20151019 Gaming On Linux--All You Need To Know.md b/translated/talk/20151019 Gaming On Linux--All You Need To Know.md index d43b548f7c..b58f822c72 100644 --- a/translated/talk/20151019 Gaming On Linux--All You Need To Know.md +++ b/translated/talk/20151019 Gaming On Linux--All You Need To Know.md @@ -4,27 +4,27 @@ Linux上的游戏:所有你需要知道的 ** 我能在 Linux 上玩游戏吗 ?** -这是打算[投奔 Linux 阵营][1]的人最经常问的问题之一。毕竟,在 Linux 上面玩游戏经常被认为有点难以实现。事实上,一些人甚至考虑他们能不能在 Linux 上看电影或者听音乐。考虑到这些,关于 Linux 的平台的游戏的问题是很现实的。「 +这是打算[投奔 Linux 阵营][1]的人最经常问的问题之一。毕竟,在 Linux 上面玩游戏经常被认为有点难以实现。事实上,一些人甚至考虑他们能不能在 Linux 上看电影或者听音乐。考虑到这些,关于 Linux 的平台的游戏的问题是很现实的。 -在本文中,我将解答大多数 Linux 新手关于在 Linux 打游戏的问题。例如 Linux 下能不能玩游戏,如果能的话,在**哪里下载游戏**或者如何获取有关游戏的信息。 +在本文中,我将解答大多数 Linux 新手关于在 Linux 中打游戏的问题。例如 Linux 下能不能玩游戏,如果能的话,在哪里**下载游戏**或者如何获取有关游戏的信息。 -但是在此之前,我需要说明一下。我不是一个 PC 上的玩家或者说我不认为我是一个在 Linux 桌面上完游玩戏的家伙。我更喜欢在 PS4 上玩游戏并且我不关心 PC 上的游戏甚至也不关心手机上的游戏(我没有给我的任何一个朋友安利糖果传奇)。这也就是你很少在 It's FOSS 上很少看见关于 [Linux 上的游戏][2]的部分。 +但是在此之前,我需要说明一下。我不是一个 PC 上的玩家或者说我不认为我是一个在 Linux 桌面游戏玩家。我更喜欢在 PS4 上玩游戏并且我不关心 PC 上的游戏甚至也不关心手机上的游戏(我没有给我的任何一个朋友安利糖果传奇)。这也就是你很少能在 It's FOSS 上很少看见关于 [Linux 上的游戏][2]的原因。 -所以我为什么要写这个主题? +所以我为什么要提到这个主题? -因为别人问过我几次有关 Linux 上的游戏的问题并且我想要写出来一个能解答这些问题的 Linux 上的游戏指南。注意,在这里我不只是讨论 Ubuntu 上的游戏。我讨论的是在所有的 Linux 上的游戏。 +因为别人问过我几次有关 Linux 上的游戏的问题并且我想要写出来一个能解答这些问题的 Linux 游戏指南。注意,在这里我不只是讨论在 Ubuntu 上玩游戏。我讨论的是在所有的 Linux 上的游戏。 ### 我能在 Linux 上玩游戏吗 ? ### 是,但不是完全是。 -“是”,是指你能在Linux上玩游戏;“不完全是”,是指你不能在 Linux 上玩 ’所有的游戏‘。 +“是”,是指你能在Linux上玩游戏;“不完全是”,是指你不能在 Linux 上玩 ‘所有的游戏’。 -什么?你是拒绝的?不必这样。我的意思是你能在 Linux 上玩很多流行的游戏,比如[反恐精英以及地铁:最后的曙光][3]等。但是你可能不能玩到所有在 Windows 上流行的最新游戏,比如[实况足球2015][4]。 +感到迷惑了吗?不必这样。我的意思是你能在 Linux 上玩很多流行的游戏,比如[反恐精英以及地铁:最后的曙光][3]等。但是你可能不能玩到所有在 Windows 上流行的最新游戏,比如[实况足球 2015 ][4]。 -在我看来,造成这种情况的原因是 Linux 在桌面系统中仅占不到 2%,这占比使得大多数开发者没有在 Linux 上发布他们的游戏的打算。 +在我看来,造成这种情况的原因是 Linux 在桌面系统中仅占不到 2%,这样的占比使得大多数开发者没有开发其游戏的 Linux 版的动力。 -这就意味指大多数近年来被提及的比较多的游戏很有可能不能在 Linux 上玩。不要灰心。我们能以某种方式在 Linux 上玩这些游戏,我们将在下面的章节中讨论这些方法。但是,在此之前,让我们看看在 Linux 上能玩的游戏的种类。 +这就意味指大多数近年来被提及的比较多的游戏很有可能不能在 Linux 上玩。不要灰心。还有别的方式在 Linux 上玩这些游戏,我们将在下面的章节中讨论这些方法。但是,在此之前,让我们看看在 Linux 上能玩的游戏的种类。 要我说的话,我会把那些游戏分为四类: @@ -33,7 +33,7 @@ Linux上的游戏:所有你需要知道的 3. 浏览器里的游戏 4. 终端里的游戏 -让我们以最重要的 Linux 的原生游戏开始。 +让我们以最重要的一类, Linux 的原生游戏开始。 --------- @@ -41,15 +41,15 @@ Linux上的游戏:所有你需要知道的 原生游戏指的是官方支持 Linux 的游戏。这些游戏有原生的 Linux 客户端并且能像在 Linux 上的其他软件一样不需要附加的步骤就能安装在 Linux 上面(我们将在下一节讨论)。 -所以,如你所见,这里有一些为 Linux 开发的游戏,下一个问题就是在哪能找到这些游戏以及如何安装。我将列出来一些让你玩到游戏的渠道了。 +所以,如你所见,有一些为 Linux 开发的游戏,下一个问题就是在哪能找到这些游戏以及如何安装。我将列出一些让你玩到游戏的渠道。 #### Steam #### ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/09/Install-Steam-Ubuntu-11.jpeg) -“[Steam][5] 是一个游戏的分发平台。就如同 Kindle 是电子书的分发平台,iTunes 是音乐的分发平台一样,Steam 也具有那样的功能。它给了你购买和安装游戏,玩多人游戏以及在它的平台上关注其他游戏的选项。这些游戏被[ DRM ][6]所保护。” +“[Steam][5] 是一个游戏的分发平台。就如同 Kindle 是电子书的分发平台, iTunes 是音乐的分发平台一样, Steam 也具有那样的功能。它提供购买和安装游戏,玩多人游戏以及在它的平台上关注其他游戏的选项。其上的游戏被[ DRM ][6]所保护。” -两年以前,游戏平台 Steam 宣布支持 Linux,这在当时是一个大新闻。这是 Linux 上玩游戏被严肃的对待的一个迹象。尽管这个决定更多地影响了他们自己的基于 Linux 游戏平台[ Steam OS][7]。这仍然是令人欣慰的事情,因为它给 Linux 带来了一大堆游戏。 +两年以前,游戏平台 Steam 宣布支持 Linux ,这在当时是一个大新闻。这是 Linux 上玩游戏被严肃对待的一个迹象。尽管这个决定更多地影响了他们自己的基于 Linux 游戏平台以及一个独立 Linux 发行版[ Steam OS][7] ,这仍然是令人欣慰的事情,因为它给 Linux 带来了一大堆游戏。 我已经写了一篇详细的关于安装以及使用 Steam 的文章。如果你想开始使用 Steam 的话,读读那篇文章。 @@ -57,23 +57,23 @@ Linux上的游戏:所有你需要知道的 #### GOG.com #### -[GOG.com][9] 失灵一个与 Steam 类似的平台。与 Steam 一样,你能在这上面找到数以百计的 Linux 游戏,你可以购买和安装它们。如果游戏支持好几个平台,尼卡一在多个操作系统上安装他们。你买到你账户的游戏你可以随时玩。捏可以在你想要下载的任何时间下载。 +[GOG.com][9] 是另一个与 Steam 类似的平台。与 Steam 一样,你能在这上面找到数以百计的 Linux 游戏,并购买和安装它们。如果游戏支持好几个平台,你可以在多个操作系统上安装他们。你可以随时游玩使用你的账户购买的游戏。你也可以在任何时间下载。 GOG.com 与 Steam 不同的是前者仅提供没有 DRM 保护的游戏以及电影。而且,GOG.com 完全是基于网页的,所以你不需要安装类似 Steam 的客户端。你只需要用浏览器下载游戏然后安装到你的系统上。 #### Portable Linux Games #### -[Portable Linux Games][10] 是一个集聚了不少 Linux 游戏的网站。这家网站最特别以及最好的就是你能离线安装这些游戏。 +[Portable Linux Games][10] 是一个集聚了不少 Linux 游戏的网站。这家网站最特别以及最好的点就是你能离线安装这些游戏。 -你下载到的文件包含所有的依赖(仅需 Wine 以及 Perl)并且他们也是与平台无关的。你所需要的仅仅是下载文件并且双击来启动安装程序。你也可以把文件储存起来以用于将来的安装,如果你网速不够快的话我很推荐您这样做。 +你下载到的文件包含所有的依赖(仅需 Wine 以及 Perl)并且他们也是与平台无关的。你所需要的仅仅是下载文件并且双击来启动安装程序。你也可以把文件储存起来以用于将来的安装。如果你网速不够快的话,我很推荐你这样做。 #### Game Drift 游戏商店 #### -[Game Drift][11] 是一个只专注于游戏的基于 Ubuntu 的 Linux 发行版。但是如果你不想只为游戏就去安装这个发行版的话,你也可以经常上线看哪个游戏可以在 Linux 上运行并且安装他们。 +[Game Drift][11] 是一个只专注于游戏的基于 Ubuntu 的 Linux 发行版。但是如果你不想只为游戏就去安装这个发行版的话,你也可以经常去它的在线游戏商店去看哪个游戏可以在 Linux 上运行并且安装他们。 #### Linux Game Database #### -如其名字所示,[Linux Game Database][12]是一个收集了很多 Linux 游戏的网站。你能在这里浏览诸多类型的游戏并从游戏开发者的网站下载/安装这些游戏。作为这家网站的会员,你甚至可以为游戏打分。LGDB,有点像 Linux 游戏界的 IMDB 或者 IGN. +如其名字所示,[Linux Game Database][12]是一个收集了很多 Linux 游戏的网站。你能在这里浏览诸多类型的游戏并从游戏开发者的网站下载/安装这些游戏。作为这家网站的会员,你甚至可以为游戏打分。 LGDB 有点像 Linux 游戏界的 IMDB 或者 IGN. #### Penguspy #### @@ -81,7 +81,7 @@ GOG.com 与 Steam 不同的是前者仅提供没有 DRM 保护的游戏以及电 #### 软件源 #### -看看你自己的发行版的软件源。那里可能有一些游戏。如果你用 Ubuntu 的话,它的软件中心里有一个游戏的分类。在一些其他的发行版里也有,比如 Liux Mint 等。 +看看你自己的发行版的软件源。其中可能有一些游戏。如果你用 Ubuntu 的话,它的软件中心里有一个游戏的分类。在一些其他的发行版里也有,比如 Linux Mint 等。 ---------- @@ -89,19 +89,19 @@ GOG.com 与 Steam 不同的是前者仅提供没有 DRM 保护的游戏以及电 ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Wine-Linux.png) -到现在为止,我们一直在讨论 Linux 的原生游戏。但是并没有很多 Linux 上的原生游戏,或者说,火的不要不要的游戏大多不支持 Linux,但是都支持 Windows PC。所以,如何在 Linux 上玩 Wendows 的游戏? +到现在为止,我们一直在讨论 Linux 的原生游戏。但是并没有很多 Linux 上的原生游戏,或者更准确地说,火的不要不要的游戏大多不支持 Linux,但是都支持 Windows PC 。所以,如何在 Linux 上玩 Windows 的游戏? -幸好,由于我们有 Wine, PlayOnLinux 和 CrossOver 等工具,我们能在 Linux 上玩不少的 Wendows 游戏。 +幸好,由于我们有 Wine 、 PlayOnLinux 和 CrossOver 等工具,我们能在 Linux 上玩不少的 Windows 游戏。 #### Wine #### -Wine 是一个能使 Wendows 应用在类似 Linux, BSD 和 OS X 上运行的兼容层。在 Wine 的帮助下,你可以在 Linux 下安装以及使用很多 Windows 下的应用。 +Wine 是一个能使 Windows 应用在类似 Linux , BSD 和 OS X 上运行的兼容层。在 Wine 的帮助下,你可以在 Linux 下安装以及使用很多 Windows 下的应用。 [在 Ubuntu 上安装 Wine][14]或者在其他 Linux 上安装 Wine 是很简单的,因为大多数发行版的软件源里都有它。这里也有一个很大的[ Wine 支持的应用的数据库][15]供您浏览。 #### CrossOver #### -[CrossOver][16] 是 Wine 的增强版,它给 Wine 提供了专业的技术上的支持。但是与 Wine 不同, CrossOver 不是免费的。你需要购买许可。好消息是它会把更新也贡献到 Wine 的开发者那里并且事实上加速了 Wine 的开发使得 Wine 能支持更多的 Windows 上的游戏和应用。如果你可以一年支付 48 美元,你可以购买 CrossOver 并得到他们提供的技术支持。 +[CrossOver][16] 是 Wine 的增强版,它给 Wine 提供了专业的技术上的支持。但是与 Wine 不同, CrossOver 不是免费的。你需要购买许可。好消息是它会把更新也贡献到 Wine 的开发者那里并且事实上加速了 Wine 的开发使得 Wine 能支持更多的 Windows 上的游戏和应用。如果你可以接受每年支付 48 美元,你可以购买 CrossOver 并得到他们提供的技术支持。 ### PlayOnLinux ### @@ -113,9 +113,9 @@ PlayOnLinux 也基于 Wine 但是执行程序的方式略有不同。它有着 ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Chrome-Web-Store.jpeg) -不必说你也应该知道有非常多的基于网页的游戏,这些游戏都可以在任何操作系统里运行,无论是 Windows,Linux,还是 OS X。大多数让人上瘾的手机游戏,比如[帝国之战][18]就有官方的网页版。 +不必说你也应该知道有非常多的基于网页的游戏,这些游戏都可以在任何操作系统里运行,无论是 Windows ,Linux ,还是 OS X 。大多数让人上瘾的手机游戏,比如[帝国之战][18]就有官方的网页版。 -除了这些,还有 [Google Chrome在线商店][19],你可以在 Linux 上玩更多的这些游戏。这些 Chrome 上的游戏可以像一个单独的应用一样安装并从应用菜单中打开,一些游戏就算是离线也能运行。 +除了这些,还有 [Google Chrome 在线商店][19],你可以在 Linux 上玩更多的这些游戏。这些 Chrome 上的游戏可以像一个单独的应用一样安装并从应用菜单中打开,一些游戏就算是离线也能运行。 ---------- @@ -123,7 +123,7 @@ PlayOnLinux 也基于 Wine 但是执行程序的方式略有不同。它有着 ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/03/nSnake_Linux_terminal_game.jpeg) -使用 Linux 的一个附加优势就是可以使用命令行终端玩游戏。我知道这不是最好的玩游戏的 方法,但是在终端里玩[贪吃蛇][20]或者 [2048][21] 很有趣。在[这个博客][21]中有一些好玩的的终端游戏。你可以浏览并安装你喜欢的游戏。 +使用 Linux 的一个附加优势就是可以使用命令行终端玩游戏。我知道这不是最好的玩游戏的方法,但是在终端里玩[贪吃蛇][20]或者 [2048][21] 很有趣。在[这个博客][21]中有一些好玩的的终端游戏。你可以浏览并安装你喜欢的游戏。 ---------- @@ -131,21 +131,21 @@ PlayOnLinux 也基于 Wine 但是执行程序的方式略有不同。它有着 当你了解了不少的在 Linux 上你可以玩到的游戏以及你如何使用他们,下一个问题就是如何保持游戏的版本是最新的。对于这件事,我建议你看看下面的博客,这些博客能告诉你 Linux 游戏世界的最新消息: -- [Gaming on Linux][23]:我认为我把它叫做 Linux 游戏的门户并没有错误。在这你可以得到关于 Linux 的游戏的最新的传言以及新闻。最近, Gaming on Linux 有了一个由 Linux 游戏爱好者组成的漂亮的社区。 +- [Gaming on Linux][23]:我认为我把它叫做 Linux 游戏专业门户并没有错误。在这你可以得到关于 Linux 的游戏的最新的传言以及新闻。它经常更新, 还有由 Linux 游戏爱好者组成的优秀社区。 - [Free Gamer][24]:一个专注于免费开源的游戏的博客。 - [Linux Game News][25]:一个提供很多的 Linux 游戏的升级的 Tumbler 博客。 #### 还有别的要说的吗? #### -我认为让你知道如何开始在 Linux 上的游戏人生是一个好事。如果你仍然不能被说服。我推荐你做个[双系统][26],把 Linux 作为你的主要桌面系统,当你想玩游戏时,重启到 Windows。这是一个对游戏妥协的解决办法。 +我认为让你知道如何开始在 Linux 上的游戏人生是一个好事。如果你仍然不能被说服,我推荐你做个[双系统][26],把 Linux 作为你的主要桌面系统,当你想玩游戏时,重启到 Windows。这是一个对游戏妥协的解决办法。 -现在,这里是你说出你自己的状况的时候了。你在 Linux 上玩游戏吗?你最喜欢什么游戏?你关注了哪些游戏博客? +现在,这里是你说出你自己的想法的时候了。你在 Linux 上玩游戏吗?你最喜欢什么游戏?你关注了哪些游戏博客? 投票项目: 你怎样在 Linux 上玩游戏? -- 我玩原生 Linux 游戏,我也用 Wine 以及 PlayOnLinux 运行 Windows 游戏 +- 我玩原生 Linux 游戏,也用 Wine 以及 PlayOnLinux 运行 Windows 游戏 - 我喜欢网页游戏 - 我喜欢终端游戏 - 我只玩原生 Linux 游戏 @@ -167,7 +167,7 @@ via: http://itsfoss.com/linux-gaming-guide/ 作者:[Abhishek][a] 译者:[name1e5s](https://github.com/name1e5s) -校对:[校对者ID](https://github.com/校对者ID) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 3ef908138d5ddb3497d022c3c047219a14ebf7e8 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 8 May 2016 08:29:31 +0800 Subject: [PATCH 449/582] =?UTF-8?q?20160508-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...action-packed experience with Wikipedia.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md diff --git a/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md b/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md new file mode 100644 index 0000000000..c40a7dafa3 --- /dev/null +++ b/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md @@ -0,0 +1,74 @@ +A four year, action-packed experience with Wikipedia +======================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/wikipedia_checkuser_lead.jpg?itok=4lVDjSSM) + + +I consider myself to be an Odia Wikimedian. I contribute [Odia][1] knowledge (the predominant language of the Indian state of [Odisha][2]) to many Wikimedia projects, like Wikipedia and Wikisource, by writing articles and correcting mistakes in articles. I also contribute to Hindi and English Wikipedia articles. + +![](https://opensource.com/sites/default/files/resize/1st_day_at_odia_wikipedia_workshop_image_source_facebook-200x133.jpg) + +My love for Wikimedia started while I was reading an article about the [Bangladesh Liberation war][3] on the English Wikipedia after my 10th board exam (like, an annual exam for 10th grade students in America). By mistake I clicked on a link that took me to an India Wikipedia article, and I started reading. Something was written in Odia on the lefthand side of the article, so I clicked on that, and reached a [ଭାରତ/Bhārat][4] article on the Odia Wikipedia. I was excited to find a Wikipedia article in my native language! + +![](https://opensource.com/sites/default/files/resize/introducing_wikipedia_at_google_io_image_by_gdg_bhubaneswar-251x166.png) + +A banner inviting readers to be part of the 2nd Bhubaneswar workshop on April 1, 2012 sparked my curiousity. I had never contributed to Wikipedia before, only used it for research, and I wasn't familiar with open source and the community contribution process. Plus, I was only 15 years old. I registered. There were many language enthusiasts at the workshop, and all older than me. My father encouraged me to the participate despite my fear; he has played an important role—he's not a Wikimedian, like me, but his encouragement has helped me change Odia Wikipedia and participate in community activities. + +I believe that knowledge about Odia language and literature needs to improve—there are many misconceptions and knowledge gaps—so, I help organize events and workshops for Odia Wikipedia. On my accomplished list at the point, I have: + +* initiated three major edit-a-thons in Odia Wikipedia: Women's Day 2015, Women's Day 2016, abd [Nabakalebara edit-a-thon 2015][5] +* initiated a photograph contest to get more [Rathyatra][6] images from all over the India +* represented Odia Wikipedia during two events by Google ([Google I/O extended][7] and Google Dev Fest) +* spoke at [Perception][8] 2015 and the first [Open Access India][9] meetup + +![](https://opensource.com/sites/default/files/resize/bengali_wikipedia_10th_anniversary_cc-by-sa4.0_biswaroop_ganguly-251x166.jpg) + +I was just an editor to Wikipedia projects until last year, in January 2015, when I attended [Bengali Wikipedia's 10th anniversary conference][10] and [Vishnu][11], the director of the [Center for Internet and Society][12] at the time, invited me to attend the [Train the Trainer][13] Program. I was inspired to start doing outreach for Odia Wikipedia and hosting meetups for [GLAM]14] activities and training new Wikimedians. These experience taught me how to work with a community of contributors. + +[Ravi][15], the director of Wikimedia India at the time, also played an important role in my journey. He trusted me and made me a part of [Wiki Loves Food][16], a public photo competition on Wikimedia Commons, and the organizing committee of [Wikiconference India 2016][17]. During Wiki Loves Food 2015, my team helped add 10,000+ CC BY-SA images on Wikimedia Commons. Ravi further solidified my commitment by sharing a lot of information with me about the Wikimedia movement, and his own journey, during [Odia Wikipedia's 13th anniversary][18]. + +Less than a year later, in December 2015, I became a Program Associate at the Center for Internet and Society's [Access to Knowledge program][19] (CIS-A2K). One of my proud moments was at a workshop in Puri, India where we helped bring 20 new Wikimedian editors to the Odia Wikimedia community. Now, I mentor Wikimedians during an informal meetup called [WikiTungi][20] Puri. I am working with this group to make Odia Wikiquotes a live project. I am also dedicated to bridging the gender gap in Odia Wikipedia. [Eight female editors][21] are now helping to organize meetups and workshops, and participate in the [Women's History month edit-a-thon][22]. + +During my brief but action-packed journey during the four years since, I have also been involved in the [Wikipedia Education Program][23], the [newsletter team][24], and two global edit-a-thons: [Art and Feminsim][25] and [Menu Challenge][26]. I look forward to the many more to come! + +I would also like to thank [Sameer][27] and [Anna][28] (both previous members of the Wikipedia Education Program). + +------------------------------------------------------------------------------ + +via: https://opensource.com/life/16/4/my-open-source-story-gloria-bwandungi + +作者:[Sailesh Patnaik][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/saileshpat +[1]: https://en.wikipedia.org/wiki/Odia_language +[2]: https://en.wikipedia.org/wiki/Odisha +[3]: https://en.wikipedia.org/wiki/Bangladesh_Liberation_War +[4]: https://or.wikipedia.org/s/d2 +[5]: https://or.wikipedia.org/s/toq +[6]: https://commons.wikimedia.org/wiki/Commons:The_Rathyatra_Challenge +[7]: http://cis-india.org/openness/blog-old/odia-wikipedia-meets-google-developer-group +[8]: http://perception.cetb.in/events/odia-wikipedia-event/ +[9]: https://opencon2015kolkata.sched.org/speaker/sailesh.patnaik007 +[10]: https://meta.wikimedia.org/wiki/Bengali_Wikipedia_10th_Anniversary_Celebration_Kolkata +[11]: https://www.facebook.com/vishnu.vardhan.50746?fref=ts +[12]: http://cis-india.org/ +[13]: https://meta.wikimedia.org/wiki/CIS-A2K/Events/Train_the_Trainer_Program/2015 +[14]: https://en.wikipedia.org/wiki/Wikipedia:GLAM +[15]: https://www.facebook.com/ravidreams?fref=ts +[16]: https://commons.wikimedia.org/wiki/Commons:Wiki_Loves_Food +[17]: https://meta.wikimedia.org/wiki/WikiConference_India_2016 +[18]: https://or.wikipedia.org/s/sml +[19]: https://meta.wikimedia.org/wiki/CIS-A2K +[20]: https://or.wikipedia.org/s/xgx +[21]: https://or.wikipedia.org/s/ysg +[22]: https://or.wikipedia.org/s/ynj +[23]: https://outreach.wikimedia.org/wiki/Education +[24]: https://outreach.wikimedia.org/wiki/Talk:Education/News#Call_for_volunteers +[25]: https://en.wikipedia.org/wiki/User_talk:Saileshpat#Barnstar_for_Art_.26_Feminism_Challenge +[26]: https://opensource.com/life/15/11/tasty-translations-the-open-source-way +[27]: https://www.facebook.com/samirsharbaty?fref=ts +[28]: https://www.facebook.com/anna.koval.737?fref=ts From 1da9cd9bc2403cd394fd4403e1f6204e22a9c0ac Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 8 May 2016 08:30:37 +0800 Subject: [PATCH 450/582] =?UTF-8?q?20160508-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0415 A four year, action-packed experience with Wikipedia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md b/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md index c40a7dafa3..9c45c209e9 100644 --- a/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md +++ b/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md @@ -35,7 +35,7 @@ I would also like to thank [Sameer][27] and [Anna][28] (both previous members of ------------------------------------------------------------------------------ -via: https://opensource.com/life/16/4/my-open-source-story-gloria-bwandungi +via: https://opensource.com/life/16/4/my-open-source-story-sailesh-patnaik 作者:[Sailesh Patnaik][a] 译者:[译者ID](https://github.com/译者ID) From 424b0a635ee82bfbd76d5383de9d927c0bc5eedb Mon Sep 17 00:00:00 2001 From: Name1e5s <836401406@qq.com> Date: Sun, 8 May 2016 13:06:22 +0800 Subject: [PATCH 451/582] [Translated]20160505 A daughter of Silicon Valley shares her 'nerd' story --- ... Silicon Valley shares her 'nerd' story.md | 83 ------------------- ... Silicon Valley shares her 'nerd' story.md | 82 ++++++++++++++++++ 2 files changed, 82 insertions(+), 83 deletions(-) delete mode 100644 sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md create mode 100644 translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md diff --git a/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md b/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md deleted file mode 100644 index 2ef0f680b0..0000000000 --- a/sources/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md +++ /dev/null @@ -1,83 +0,0 @@ -Name1e5s translating... -A daughter of Silicon Valley shares her 'nerd' story -======================================================= - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) - -Back in 2014, my colleague [Crystal Beasley][1] started a thread of women in tech/hackers posting their "nerd stories" in response to some comments out there on the Internet about the lack of women in tech. This is my nerd story, shared with you because I do believe in role models, and I do believe that there are many paths one can take to a satisfying challenging career and a life that helps one fulfill their goals. - -### Growing up with computers - -I am, among other things, a daughter of Silicon Valley. Mine is not a story of arriving at tech from the sidelines, or of dedication from childhood. It is more a story of how exposure shapes you—of the power of being marinated in a culture, if you will. This is not the story of a straight path or a clear dedication from childhood to one goal. It is a story of intense privilege, I am aware. - -I was born in Manhattan, but we lived in New Jersey while my dad was working on a PhD in computer science at Rutgers on the GI Bill. When I was four, someone at school asked me what my dad did for a living and I said, "He watches TV and hunts for bugs, but I never seen 'em." He had a dumb terminal at home, presumably for his job at Bolt Beranek Newman working on the artificial intelligence aspects of the early Internet. I was watching. - -I did not get to play with dad's bug hunting TV, but I was steeped in tech from an early age, and I value the gift of that early exposure. Early exposure is one of the things we must give to the future nerds—take time to talk to the kids you know about what you do! - -![](https://opensource.com/sites/default/files/resize/moss-520x433.png) - ->My dad's terminal was similar, if not identical, to this one. CC BY-SA 4.0 - -When I was six, we moved to California. Dad was taking a job at Xerox PARC. I remember thinking that the city would be full of bears, because there was a bear on the flag. In 1979, Palo Alto was a college town and still had orchards and open space. - -After a year of public school in Palo Alto, my sisters and I were sent to Peninsula School, a "democratic model" school that shaped me deeply. Curiosity and creativity were considered central curriculum values, and education was led substantively by group decisions of the students ourselves. We rarely saw anything one would call a computer at school, but home was another story. - -After his days at Xerox PARC, dad went to Apple, where he worked on and brought home the first computers I played with: the Apple II and the LISA. My dad was on the original LISA development team, and I vividly remember that he made us "play" the mousing tutorial over and over because he wanted my 3 year-old sister to be comfortable with it... and she was. - -![](https://opensource.com/sites/default/files/resize/600px-apple_lisa-520x520.jpg) - ->Our LISA computer pretty much looked like this. See the mouse? CC BY-SA 4.0 - -At the same time in school, while I was great at conceptual math, I floundered in basic computation. One teacher at my first school told my parents, and me, that I was bad at math and "stupid." While I excelled in our "regular" math program, understanding logical puzzles beyond what one expects of a 7 year-old, I could not successfully complete the math "drills" we had to do at the beginning of each day. She called me stupid, and I didn't forget it. I didn't get back to believing in my own logical and algorithmic mental capabilities for more than 10 years after that. Do not underestimate the power of the words you say to children. - -Years of playing with dad's computers followed. He went from Apple to EA to SGI, and I played with all his machines. This led to us having what we thought was the coolest house in town, because we had an SGI machine on which to play Doom in our garage. I didn't code much at all, but what I got from those years, I see now, was a measure of fearlessness about trying out new technologies. At the same time, my mom, whose background was literature and education, became a technical writer and showed me both that careers can change and that it is possible to manage a technical career and motherhood together. I would not say that was easy for her, but she made it look easy to me. You'd think that all of this early exposure might send me straight into a technical degree and career. It did not. - -### Undergrad years - -I thought I wanted to be an elementary school teacher, and I enrolled at Mills College with every intention of doing that. Instead, I moved toward women's studies and later theology, primarily driven by one of my great desires in life: to understand human motivation and work for a better world. - -At the same time, I was for the first time being exposed to the full power of the Internet. In 1991, it was a very heady thing to have your own unix shell account and a world of people to talk to. I learned a lot from just "playing" online, and more from having people around willing to answer my many questions. It turned out that these same explorations led me down my career path at least as much as any formal academic education. All information is useful. I do not think it is any accident that this critical period of learning and exposure happened at a women's college where a brilliant woman ran the CS department. We were not just allowed, but encouraged to explore many paths in that rarified atmosphere of empowerment (we had access to lots and lots of technology and to smart people who wanted to help), and I did. I've always been grateful for it. It was also where I learned about geek culture. - -I went to grad school to study feminist theology, but technology was in my blood by then. When I realized I didn't want to be a professor or an academic ethicist, I left academia and came home with a lot of school debt and not a lot of ideas. - -### A new beginning - -I was stunned, in 1995, at the power I saw in the World Wide Web to connect people and share thoughts and information (I still am). I wanted in on it. It occurred to me that I could go into the "family business," but not really how. I started working as a temporary contractor at offices in the valley and tried a few things (writing very basic databases on semiconductor data, pre-press work for technical manuals, filing payroll stubs) before I landed my first "real" tech job at Sun Microsystems. It was a very exciting place to be. (We were, after all, "the dot in dot-com.") - -At Sun, I stuck my neck out, trying as many new things as I could. I worked firsthand at HTMLing (What? It's a word!) white papers, then hacking basic surveying tools (Perl, mostly) for beta programs. Then I became a program manager for Solaris beta programs, and at last got my first whiff of open source in running beta programs for Open Solaris. - -The biggest thing I did was learn. I found it to be an atmosphere where engineering and education were both valued, and where my questions were not "stupid." I was lucky in my choices of mentors and friends. I took every class I could, read every book I could, and tried to give myself the technical, business, and project management skill sets I hadn't obtained in school before deciding to take the oft-discussed "mommy break" to prepare for the birth of my second child. - -### Getting back to work - -When I was ready to go back to work, Sun was no longer a viable place to go. So, I gathered my contacts (networking is your friend) and my consulting skills and ended up with a rather long-term contract release managing a web "portal" (in 2005, everything was a portal) and exposing myself to everything I could about CRMs, release methodology, localization, networking, and more. I explain all of this background mostly because my biggest lesson was that the education I got was in what I tried and in what I failed to do, as much as in what I succeeded at. I think we need role models for that, too. - -In many respects, the entire first part of my career was my technical education. It was a different time and place—I worked on supporting women and other underrepresented minorities in the organization, but it was not as overtly difficult to be a woman in tech then. I was undoubtedly blind to some issues at the time, but there's also a case to be made that our industry has become more misogynistic, not less. - -After all of this, I still did not see myself as a role model, or as highly technical. I was quite shocked when a geek friend I knew from parenting circles encouraged me to apply for a job as product manager at a very obscure seeming and highly technical nonprofit open source infrastructure shop (Internet Systems Consortium, makers of BIND, the widely deployed open source DNS nameserver, and operators of one of the 13 root nameservers). For the longest time, I couldn't figure out why they hired me! I knew very little about DNS, infrastructure, or protocol development, but I found my mentors again and flourished. I spent my time traveling, working on critical processes, figuring out how to work with highly international teams, solving hairy problems, and most of all, embracing open source and the vibrant community that loved and supported our efforts so very much. I learned most of all, again, by making mistakes. I learned what it takes to build a vision for a product, and how building things in the open and in community takes all sorts of specific skills, talent, and patience, but adds so much value. - -### Becoming a mentor - -It was while I was at ISC that, through the amazing [TechWomen program][2] (which brings technical women from the Middle East and North Africa to Silicon Valley for mentoring), I got hooked on mentoring and supporting other women in tech, particularly in open source and open culture. It was when I started mentoring that I started believing in my own abilities, too. That was a long lesson to learn. - -When I first read the advert for TechWomen mentors, I didn't think they would even want to talk to me! My impostor syndrome was so strong. I was so shocked when I was asked to mentor the first cohort (and every one after that for six years), but I am learning to believe that I earned these things. Impostor Syndrome is real, but over time it can be overcome. - -### Today - -In the end, I had to leave my job at ISC. Luckily, my work and my values brought me to Mozilla, where I've been both perseverant and lucky enough to have several meaningful roles. Today, I'm the senior program manager of diversity and inclusion. I work full-time on building a more diverse and inclusive Mozilla, standing on the shoulders of giants who did the same before me and in partnership with many of the smartest and kindest people I know. I've followed my passion for empowering people to find meaningful ways to contribute to the Internet I believe the world needs: an expansion of the one that excited me so long ago. And I get to see a lot of the world while I do it! - -Taking a new approach to changing culture through organizational and behavioral interventions is such an incredible way to connect my entire trajectory—from my early academics through my career to now. It's a new challenge every day, and I guess that's what I love most about working in tech and in particular on the open web. The very pluralistic nature of the web that first drew me in is the same possibility I still seek—a world where there is opportunity for all and where there are resources for people no matter their backgrounds. Role models, mentors, resources, and, above all, respect are essential components of evolving tech and open source culture to be all that I believe it can be—including access and opportunity for all of us. - --------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/5/my-open-source-story-larissa-shapiro - -作者:[Larissa Shapiro][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/larissa-shapiro -[1]: http://skinnywhitegirl.com/blog/my-nerd-story/1101/ -[2]: https://www.techwomen.org/mentorship/why-i-keep-coming-back-to-mentor-with-techwomen diff --git a/translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md b/translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md new file mode 100644 index 0000000000..4c4463df63 --- /dev/null +++ b/translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md @@ -0,0 +1,82 @@ +A daughter of Silicon Valley shares her 'nerd' story +======================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) + +在 2014 年,为了对网上一些关于女性在科技行业的缺失的评论作出回应,我的同事 [Crystal Beasley][1] 建立了一个能让在科技/信息安全方面工作的女性在网络上分享自己的“天才之路”。这篇文章就是我的故事。我把我的故事与你们分享是因为我相信榜样的力量,我也相信有一个人有很多的方式进入一个让自己满意的有挑战性的工作和一个实现了所有目标的人生。 + +### 和电脑相伴的童年 + +我,在其他的光环之下,是硅谷的女儿。我的故事不是一个观众变成舞台的主角的故事。也不是从小就为这份事业做贡献的故事。这个故事更多的是关于环境如何塑造你 — 通过它的那种已然存在的文化来改变你,如果你想要被改变的话。这不是从小就看是努力并为一个明确的目标而奋斗的故事,我知道这是关于特权的故事。 + +我出生在曼哈顿,但是我在新泽西州长大,因为我的爸爸作为一个退伍军人在那里的罗格斯大学攻读计算机科学的博士学位。当我四岁时,学校里有人问我我的爸爸干什么谋生时,我说,“他就是看电视和捕捉小虫子,但是我从没有见过那些小虫子”(译者注:小虫子,bug)。他在家里有一台哑终端,这大概与他在博尔特-贝拉尼克-纽曼公司的工作有关,他会通过早期的互联网来进行它在人工智能方面的工作。我就在旁边看着。 + +我没能玩上父亲的会抓小虫子的电视,但是我很早就接触到了技术领域,我很珍惜这个礼物。提早的熏陶对于一个未来的天才是十分必要的 — 所以,请花时间和你的小孩谈谈他以后要做什么! + +![](https://opensource.com/sites/default/files/resize/moss-520x433.png) + +>我父亲的终端和这个很类似——如果不是这个的话 CC BY-SA 4.0 + +当我六岁时,我们搬到了加州。父亲在施乐的研究中心找到了一个工作。我记得那时我认为这个城市一定有很多熊,因为在它的旗帜上都有一个熊。在1979年,帕洛阿尔托还是一个大学城,还有果园和开阔地带。 + +在帕洛阿尔托的公立学校待了一年之后,我的姐姐和我被送到了“半岛学校”,这个“模范学校”对我造成了深刻的影响。在那里,好奇心和创新意识是被推崇的,教育也是有学生自己决定的。我们很少在学校看到能叫做电脑的东西,但是在家就不同了。 + +在父亲从施乐辞职之后,他就去了苹果,在那里他帮助研发——以及带回家让我玩的第一批电脑就是:Apple II 和 LISA。我的父亲在原先的 LISA 的研发团队。我直到现在还深刻的记得他让我们一次又一次的“玩鼠标”场景,因为他想让我的 3 岁大的妹妹对这个东西感到舒服——她也确实那样。 + +![](https://opensource.com/sites/default/files/resize/600px-apple_lisa-520x520.jpg) + +>我们的 LISA 看起来就像这样,看到鼠标了吗?CC BY-SA 4.0 + +在学校,我的数学的概念学得不错,但是基本计算却惨不忍睹。我的第一个学校的老师告诉我的家长,还有我,说我的数学很差以及我很“笨”。虽然我在“常规的”数学项目中表现出色,能理解一个 7 岁的孩子能理解的逻辑谜题,但是我不能完成我们每天早上都要做的“练习”。她说我傻,这事我不会忘记。在那之后的十年我都没能相信自己的逻辑能力和算法的水平。不要 低估你给孩子的说的话的力量。 + +在我玩了几年爸爸的电脑之后,他从苹果跳到了 EA 又跳到了 SGI,我又体验了他带回来的新玩意。这让我们认为我们家的房子是镇里最酷的,因为我们在车库里有一个能玩 Doom 的 SGI 的机器。我不会太多的编程,但是现在我发现,在那些年里我对尝试新的科技不再恐惧。同时,我的学文学和教育的母亲,成为了一个科技行业的作家,她向我证实了一个人的职业可以改变以及科技行业的人也可以做母亲。我不是说这对她来说很简单,但是她让我认为这件是看起来很简单。你可能回想这些早期的熏陶能把我带到科技行业,但是它没有。 + +### 本科时光 + +我想我要成为一个小学教师,我就读米尔斯学院就是想要做这个。但是后来我开始研究女性,后来有研究神学,我这样做仅仅是由于我自己的一个渴求:我希望能理解人类的意志以及为更好的世界而努力。 + +同时,我也感受到了互联网的巨大力量。在 1991 年,拥有你自己的 UNIX 的账户是很令人高兴的事,这件事值得你向全世界的人吹嘘。我仅仅从在互联网中“玩”就学到了不少,从那些愿意回答我提出的问题的人那里学到的就更多了。这些学习对我的职业生涯的影响不亚于我在学校教育部之中学到的知识。没有没有用的信息。我在一个女子学院度过了影响我一生的关键时期,然后那个女子学院的一个辉煌的女人跑进了计算机院,我不忍为这是一个事故。在那个老师的权力不算太大的学院,我们不止是被允许,甚至是被鼓励去尝试很多的道路(我们能接触到很多很多的科技,还能有聪明人来供我们求助),我也确实那样做了。我十分感激当年的教育。在那个学院,我也了解了什么是极客文化。 + +之后我去了研究生院去学习 女权主义神学,但是技术行业的气息已经渗入我的灵魂。当我知道我不能成为一个教授或者一个专家时,我离开了学术圈,带着债务和很多点子回到了家。 + +### 新的开端 + +在 1995 年,我被我看见的万维网连接 人们以及分享想法和信息的能力所震惊(直到现在仍是如此)。我想要进入这个行业。看起来我好像要“女承父业”,但是我不知道我会用什么方式来这样做。我开始在硅谷做临时工,在我在太阳微系统公司得到我的第一个“技术”职位前做一些事情(为数据写最基础的数据库,技术手册印发钱的事务,备份工资单的存跟)。这些事很让人激动。(毕竟,我们是“点 com”的那个”点“)。 + +在 Sun ,我努力学习,尽可能多的尝试我新事物。我的第一个工作是网页化(啥?这是一个单独的词汇)论文以及为测试中的 Solaris 修改一些基础的服务工具(大多数是Perl写的)。在那里最终在 Open Solaris 的测试版运行时我感受到了开源的力量。 + +在那里我学到了一个很重要的事情。我发现在同样重视工程和教育的地方有一种气氛,在那里我的问题不再显得“傻”。我很庆幸我选对了导师和朋友。在决定为第二个孩子的出生产假之前,我上每一堂我能上的课程,读每一本我能读的书,尝试自学我在学校没有学习过的技术,商业以及项目管理方面的技能。 + +### 重回工作 + +当我准备重新工作时,Sun 已经不是一个值得回去的地方。所以,我收集了很多人的信息(网络是你的朋友),利用我的沟通技能最终建立了一个互联网门户(2005 年时,一切皆门户),并且开始了解 CRM,发布产品的方式,本地化,网络等知识。我这么做是基于我过去的尝试以及失败的经历所得出的教训,也是这个教训让我成功。我也认为我们需要这个方面的榜样。 + +从很多方面来看,我的职业生涯的第一部分是 我的技术上的自我教育。这事发生的时间和地点都和现在不一样——我在帮助女性和其他弱势群体的组织工作,但是我之后成为一个技术行业的女性。当时我无疑,没有看到这个行业的缺陷,现在这个行业更加的厌恶女性,而不是更加喜欢她们。 + +在这些事情之后,我还没有把自己当作一个榜样,或者一个高级技术人员。当我的一个在父母的圈子里认识极客朋友鼓励我申请一个看起来定位十分模糊且技术性很强的开源的非盈利基础设施商店(互联网系统协会,BIND,一个广泛部署的开源服务器的开发商,13 台 DNS 根域名服务器之一的运营商)的项目经理时,我很震惊。有很长一段时间,我都不知道他们为什么要雇佣我!我对 DNS ,基础设备,以及协议的开发知之甚少,但是我再次遇到了老师,并再度开始飞速发展。我花时间旅行,在关键流程攻关,搞清楚如何与高度国际化的团队合作,解决麻烦的问题,最重要的是,拥抱支持我们的开源和充满活力的社区。我几乎重新学了一切,通过试错的方式。我学习如何构思一个产品。如何通过建设开源社区,领导那些有这特定才能,技能和耐心的人,是他们给了产品价值。 + +### 成为别人的导师 + +当我在 ISC 工作时,我通过 [TechWomen 项目][2] (一个让来自中东和北非的技术行业的女性带到硅谷来接受教育的计划),我开始喜欢教学生以及支持那些女性,特别是在开源行业中奋斗的。这也就是我开始相信自己的能力的开端。我还需要学很多。 + +当我第一次读 TechWomen 的广告时,我认为那些导师甚至都不会想要和我说话!我有冒名顶替综合征。当他们邀请我成为第一批导师(以及以后 6 年的导师)时,我很震惊,但是现在我学会了相信这些都是我努力得到的待遇。冒名顶替综合征是真实的,但是它能被时间冲淡。 + +### 现在 + +最后,我不得不离开我在 ISC 的工作。幸运的是,我的工作以及我的价值让我进入了 Mozilla ,在这里我的努力和我的幸运让我在这里有着重要的作用。现在,我是一名支持多样性的包容的高级项目经理。我致力于构建一个更多样化,更有包容性的 Mozilla ,站在之前的做同样事情的巨人的肩膀上,与最聪明友善的人们一起工作。我用我的激情来让人们找到贡献一个世界需要的互联网的有意义的方式:这让我兴奋了很久。我能看见,我做到了! + +通过对组织和个人行为的干预来用一种新的方法来改变一种文化这件事情和我的人生有着十分奇怪的联系 —— 从我的早期的学术生涯,到职业生涯再到现在。每天都是一个新的挑战,我想我最喜欢的就是在科技行业的工作,尤其是在开放互联网的工作。互联网天然的多元性是它最开始吸引我的原因,也是我还在寻求的——一个所有人都有获取的资源可能性,无论背景如何。榜样,导师,资源,以及最重要的,对不断发展的技术和开源文化的尊重能实现我相信它能实现的事 —— 包括给任何的平等的接入权和机会。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/5/my-open-source-story-larissa-shapiro + +作者:[Larissa Shapiro][a] +译者:[name1e5s](https://github.com/name1e5s) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/larissa-shapiro +[1]: http://skinnywhitegirl.com/blog/my-nerd-story/1101/ +[2]: https://www.techwomen.org/mentorship/why-i-keep-coming-back-to-mentor-with-techwomen From 36e44067607e34fc17afed464f4b0f808cb7198b Mon Sep 17 00:00:00 2001 From: Name1e5s <836401406@qq.com> Date: Sun, 8 May 2016 13:12:32 +0800 Subject: [PATCH 452/582] Title changed.... --- ...0505 A daughter of Silicon Valley shares her 'nerd' story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md b/translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md index 4c4463df63..279a7fd843 100644 --- a/translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md +++ b/translated/talk/my-open-source-story/20160505 A daughter of Silicon Valley shares her 'nerd' story.md @@ -1,4 +1,4 @@ -A daughter of Silicon Valley shares her 'nerd' story +”硅谷的女儿“的天才故事 ======================================================= ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) From 00c09fb6d37220e0352b46a6f65495fa30e82569 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 8 May 2016 13:29:49 +0800 Subject: [PATCH 453/582] =?UTF-8?q?20160506-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0: Remote hosts and container migration.md | 206 +++++++++++++++++- 1 file changed, 204 insertions(+), 2 deletions(-) diff --git a/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md b/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md index 95c825a30e..bbeb4f3eea 100644 --- a/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md +++ b/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md @@ -1,7 +1,209 @@ Part 6 - LXD 2.0: Remote hosts and container migration ======================================================= -<正文待补充> +This is the third blog post [in this series about LXD 2.0][0]. + +![](https://linuxcontainers.org/static/img/containers.png) + +### Remote protocols + +LXD 2.0 supports two protocols: + +* LXD 1.0 API: That’s the REST API used between the clients and a LXD daemon as well as between LXD daemons when copying/moving images and containers. +* Simplestreams: The Simplestreams protocol is a read-only, image-only protocol used by both the LXD client and daemon to get image information and import images from some public image servers (like the Ubuntu images). + +Everything below will be using the first of those two. + +### Security + +Authentication for the LXD API is done through client certificate authentication over TLS 1.2 using recent ciphers. When two LXD daemons must exchange information directly, a temporary token is generated by the source daemon and transferred through the client to the target daemon. This token may only be used to access a particular stream and is immediately revoked so cannot be re-used. + +To avoid Man In The Middle attacks, the client tool also sends the certificate of the source server to the target. That means that for a particular download operation, the target server is provided with the source server URL, a one-time access token for the resource it needs and the certificate that the server is supposed to be using. This prevents MITM attacks and only give temporary access to the object of the transfer. + +### Network requirements + +LXD 2.0 uses a model where the target of an operation (the receiving end) is connecting directly to the source to fetch the data. + +This means that you must ensure that the target server can connect to the source directly, updating any needed firewall along the way. + +We have [a plan][1] to allow this to be reversed and also to allow proxying through the client itself for those rare cases where draconian firewalls are preventing any communication between the two hosts. + +### Interacting with remote hosts + +Rather than having our users have to always provide hostname or IP addresses and then validating certificate information whenever they want to interact with a remote host, LXD is using the concept of “remotes”. + +By default, the only real LXD remote configured is “local:” which also happens to be the default remote (so you don’t have to type its name). The local remote uses the LXD REST API to talk to the local daemon over a unix socket. + +### Adding a remote + +Say you have two machines with LXD installed, your local machine and a remote host that we’ll call “foo”. + +First you need to make sure that “foo” is listening to the network and has a password set, so get a remote shell on it and run: + +``` +lxc config set core.https_address [::]:8443 +lxc config set core.trust_password something-secure +``` + +Now on your local LXD, we just need to make it visible to the network so we can transfer containers and images from it: + +lxc config set core.https_address [::]:8443 +Now that the daemon configuration is done on both ends, you can add “foo” to your local client with: + +``` +lxc remote add foo 1.2.3.4 +``` + +(replacing 1.2.3.4 by your IP address or FQDN) + +You’ll see something like this: + +``` +stgraber@dakara:~$ lxc remote add foo 2607:f2c0:f00f:2770:216:3eff:fee1:bd67 +Certificate fingerprint: fdb06d909b77a5311d7437cabb6c203374462b907f3923cefc91dd5fce8d7b60 +ok (y/n)? y +Admin password for foo: +Client certificate stored at server: foo +``` + +You can then list your remotes and you’ll see “foo” listed there: + +``` +stgraber@dakara:~$ lxc remote list ++-----------------+-------------------------------------------------------+---------------+--------+--------+ +| NAME | URL | PROTOCOL | PUBLIC | STATIC | ++-----------------+-------------------------------------------------------+---------------+--------+--------+ +| foo | https://[2607:f2c0:f00f:2770:216:3eff:fee1:bd67]:8443 | lxd | NO | NO | ++-----------------+-------------------------------------------------------+---------------+--------+--------+ +| images | https://images.linuxcontainers.org:8443 | lxd | YES | NO | ++-----------------+-------------------------------------------------------+---------------+--------+--------+ +| local (default) | unix:// | lxd | NO | YES | ++-----------------+-------------------------------------------------------+---------------+--------+--------+ +| ubuntu | https://cloud-images.ubuntu.com/releases | simplestreams | YES | YES | ++-----------------+-------------------------------------------------------+---------------+--------+--------+ +| ubuntu-daily | https://cloud-images.ubuntu.com/daily | simplestreams | YES | YES | ++-----------------+-------------------------------------------------------+---------------+--------+--------+ +``` + +### Interacting with it + +Ok, so we have a remote server defined, what can we do with it now? + +Well, just about everything you saw in the posts until now, the only difference being that you must tell LXD what host to run against. + +For example: + +``` +lxc launch ubuntu:14.04 c1 +``` + +Will run on the default remote (“lxc remote get-default”) which is your local host. + +``` +lxc launch ubuntu:14.04 foo:c1 +``` + +Will instead run on foo. + +Listing running containers on a remote host can be done with: + +``` +stgraber@dakara:~$ lxc list foo: ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +| c1 | RUNNING | 10.245.81.95 (eth0) | 2607:f2c0:f00f:2770:216:3eff:fe43:7994 (eth0) | PERSISTENT | 0 | ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +``` + +One thing to keep in mind is that you have to specify the remote host for both images and containers. So if you have a local image called “my-image” on “foo” and want to create a container called “c2” from it, you have to run: + +``` +lxc launch foo:my-image foo:c2 +``` + +Finally, getting a shell into a remote container works just as you would expect: + +``` +lxc exec foo:c1 bash +``` + +### Copying containers + +Copying containers between hosts is as easy as it sounds: + +``` +lxc copy foo:c1 c2 +``` +And you’ll have a new local container called “c2” created from a copy of the remote “c1” container. This requires “c1” to be stopped first, but you could just copy a snapshot instead and do it while the source container is running: + +``` +lxc snapshot foo:c1 current +lxc copy foo:c1/current c3 +``` + +### Moving containers + +Unless you’re doing live migration (which will be covered in a later post), you have to stop the source container prior to moving it, after which everything works as you’d expect. + +``` +lxc stop foo:c1 +lxc move foo:c1 local: +``` + +This example is functionally identical to: + +``` +lxc stop foo:c1 +lxc move foo:c1 c1 +``` + +### How this all works + +Interactions with remote containers work as you would expect, rather than using the REST API over a local Unix socket, LXD just uses the exact same API over a remote HTTPS transport. + +Where it gets a bit trickier is when interaction between two daemons must occur, as is the case for copy and move. + +In those cases the following happens: + +1. The user runs “lxc move foo:c1 c1”. +2. The client contacts the local: remote to check for an existing “c1” container. +3. The client fetches container information from “foo”. +4. The client requests a migration token from the source “foo” daemon. +5. The client sends that migration token as well as the source URL and “foo”‘s certificate to the local LXD daemon alongside the container configuration and devices. +6. The local LXD daemon then connects directly to “foo” using the provided token + A. It connects to a first control websocket + B. It negotiates the filesystem transfer protocol (zfs send/receive, btrfs send/receive or plain rsync) + C. If available locally, it unpacks the image which was used to create the source container. This is to avoid needless data transfer. + D. It then transfers the container and any of its snapshots as a delta. +7. If succesful, the client then instructs “foo” to delete the source container. + +### Try all this online + +Don’t have two machines to try remote interactions and moving/copying containers? + +That’s okay, you can test it all online using our [demo service][2]. +The included step-by-step walkthrough even covers it! + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net -https://www.stgraber.org/2016/04/12/lxd-2-0-remote-hosts-and-container-migration-612/ +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://github.com/lxc/lxd/issues/553 +[2]: https://linuxcontainers.org/lxd/try-it/ From 85ba77f9d3af8d1a826196a5d8419886810cc29a Mon Sep 17 00:00:00 2001 From: sonofelice Date: Sun, 8 May 2016 16:36:25 +0800 Subject: [PATCH 454/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=909?= =?UTF-8?q?=20Key=20Trends=20in=20Hybrid=20Cloud=20Computing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译完成9 Key Trends in Hybrid Cloud Computing --- ... 9 Key Trends in Hybrid Cloud Computing.md | 75 ------------------ ... 9 Key Trends in Hybrid Cloud Computing.md | 76 +++++++++++++++++++ 2 files changed, 76 insertions(+), 75 deletions(-) delete mode 100644 sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md create mode 100644 translated/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md diff --git a/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md b/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md deleted file mode 100644 index 4c6e74ed2d..0000000000 --- a/sources/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md +++ /dev/null @@ -1,75 +0,0 @@ -sonofelice translating -9 Key Trends in Hybrid Cloud Computing -======================================== - -All three forms of cloud computing – public, private, and hybrid – have undergone considerable evolution since the concepts first gained the attention of IT years ago. Hybrid cloud is the overwhelming favorite form of the cloud, with [88% of firms surveyed](https://www.greenhousedata.com/blog/hybrid-continues-to-be-most-popular-cloud-option-adoption-accelerating) rating it as important or critical to their business. - -The lightning-fast evolution of hybrid cloud means the conventional wisdom of a year or two back is already obsolete. So we asked several industry analysts where they saw the hybrid cloud headed in 2016 and got some interesting answers. - -1. **2016 might be the year that we get hybrid cloud to actually work.** - - By its very nature, hybrid cloud relies on private cloud, which has proven elusive for most enterprises. The fact is that the public cloud – Amazon, Google, Microsoft – have had much more investment and a longer head start. The private cloud has hamstrung the hybrid cloud's growth and usability. - - There hasn't been as much investment in the private cloud because by its very nature, the private cloud means keeping and investing in your own data center. And many public cloud providers are pushing enterprises to reduce or eliminate their data center spending all together. - - However, this year will see the private cloud start to catch up thanks to advances in OpenStack and Microsoft's Azure Stack, which is basically a private cloud in a box. The tools, infrastructures, and architectures to support hybrid cloud are also becoming much more robust. - -2. **Containers, microservices, and unikernels will bolster the hybrid cloud.** - - These are all cloud native technologies and will all be more or less mainstream by the end of 2016, analysts predict. They are maturing rapidly and serving as a viable alternative to virtual machines, which require more resources. - - More importantly, they work in an on-premises scenario as well as an off-premises scenario. Containerization and orchestration allow rapid scale up, scale out, and service migration between public and private cloud, making it even easier to move your services around. - -3. **Data and relevance take center stage** - - The cloud, in all its forms, has been in growth mode. That makes it a technology story. But with the cloud shifting into maturity, data and relevance become more important, according to the consultancy [Avoa](http://avoa.com/2016/01/01/2016-is-the-year-of-data-and-relevance/). At first, the cloud and Big Data were all about sucking up as much data as possible. Then they worried about what to do with it. - - In 2016, organizations will hone their craft in how data is collected and used. There is still much progress to be made in the technological and cultural aspects that must be dealt with. But 2016 should bring a renewed focus on the importance of data from all aspects and finding the most relevant information, not just lots of it. - -4. **Cloud services move beyond just on-demand workloads** - - AWS got its start as a place where a programmer/developer could spin up a VM real quick, get some work done, and get off. That's the essence of on-demand use, and given how much it can cost to leave those services constantly running, there is almost a disincentive to keep them running 24/7. - - However, IT organizations are starting to act as service brokers to provide all manner of IT services to their in-house users. This can be anything from in-house IT services, public cloud infrastructure providers, platform-as-a-service, and software-as-a-service. - - They will increasingly recognize the value of tools like cloud management platforms to provide consistent policy-based management over many of these different services. And they will see the value of technology such as containers to enhance portability. However, cloud service brokering in the sense of rapidly moving workloads between clouds for price arbitrage and related reasons will continue to be a non-starter. - -5. **Service providers become cloud service providers** - - Up to now, buying cloud services has been a direct sale model. The user was frequently the buyer of AWS EC2 services, either through officially recognized channels at work or through Shadow IT. But as cloud services become more comprehensive, and the menu of services more confusing, more and more people are turning to resellers and services providers to act as the purchaser of IT services for them. - - A recent survey by 2nd Watch, a Seattle-based cloud services provider, found nearly 85 percent of IT executives in the United States would be willing to pay a small premium to buy public cloud from a channel partner if it were to make it less complex. And about four out of every five within that 85 percent would shell out an extra 15 percent or more, the survey found. One in three executives surveyed said they could use the help in buying, using, and managing public cloud services. - -6. **IoT and cloud is to 2016 what mobile and cloud was to 2012** - - IoT is gaining mindshare and, more importantly, it's moving from test beds to real use cases. The cloud is a vital part for IoT due to its distributed nature, and for industrial IoT, where machinery and heavy equipment talk to back-end systems, a hybrid cloud will be most natural driver because the connection, data collection, and processing will happen in a hybrid cloud environment, due to perceived benefits of the private cloud side, like security and privacy. - -7. **The NIST definition of the cloud begins to break down** - - In 2011, the National Institute of Standards and Technology published "[The NIST Definition of Cloud Computing](http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf)" (PDF) that became the standard definitions of private, public, and hybrid cloud terms and as-a-service models. - - Over time, though, the definitions have changed. IaaS has become much more complex, supporting things like OpenStack, [Swift](https://wiki.openstack.org/wiki/Swift) for object storage and [Neutron networking](https://wiki.openstack.org/wiki/Neutron). PaaS seems to be fading out because there's little that separates it from traditional middleware application development. And SaaS, which was just apps accessed through a browser, is losing steam because with so many cloud APIs for apps and services, you can access them through anything, not just a browser. - -8. **Analytics becomes more important** - - Analytics will be a huge growth opportunity for hybrid cloud because the high volume of data used in analytics is well suited to cloud, with its advantages of large scale and elasticity. For some forms of analytics, like highly sensitive data, then the private cloud will still rule. But the private cloud is part of the hybrid cloud, so either way, hybrid cloud wins. - -9. **Security takes on a new urgency** - - As hybrid cloud grows in 2016 and adds all kinds of new technologies, like IoT and containers, this just adds more vulnerable surface areas for data breaches. Add to it the tendency to rush into a new technology and then secure it later, which happens all the time, along with inexperienced technologists who don't think to secure the system – and you have a recipe for disaster. - - When new technologies come out, management discipline almost always lags and we think about securing the technology later. Containers are a good example. You can download all kinds of sample containers from Docker, but do you know where it came from? Docker had to go back and add security verifications after it started letting people download and run containers without any idea what was really in it. - - Mobile technologies like Path and Snapchat had major security problems a few years back as the smartphone market was taking off. It's inevitable that a new technology will be exploited by the bad guys. So security researchers will have their hands full trying to secure these new technologies. Probably after they get deployed. - ------------------------------------------------------------------------------- - -via: http://www.datamation.com/cloud-computing/9-key-trends-in-hybrid-cloud-computing.html - -作者:[Andy Patrizio][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.datamation.com/author/Andy-Patrizio-90720.html diff --git a/translated/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md b/translated/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md new file mode 100644 index 0000000000..5efec75ec3 --- /dev/null +++ b/translated/tech/20160218 9 Key Trends in Hybrid Cloud Computing.md @@ -0,0 +1,76 @@ +混合云计算的9大关键趋势 +======================================== + +自从几年前云计算的概念受到IT界的关注以来,公有云、私有云和混合云这三种云计算方式都有了可观的演进。其中混合云计算方式是最热门的云计算方式,在接受调查的公司中,有[88%的公司](https://www.greenhousedata.com/blog/hybrid-continues-to-be-most-popular-cloud-option-adoption-accelerating)将混合云计算摆在至关重要的地位。 + +混合云计算的疾速演进意味着一两年前的传统观念已经过时了。为此,我们询问了几个行业分析师,混合云在2016年的走势将会如何,我们得到了几个比较有意思的答案。 + +1. **2016年可能是我们将混合云投入使用的一年。** + + 混合云从本质上来说依赖于私有云,这对企业来说是比较难实现的。事实上,亚马逊,谷歌和微软的公有云已经进行了大量的投资,并且起步也比较早。私有云拖了混合云发展和使用的后腿。 + + 私有云没有得到这么多的投资,这是有私有云的性质决定的。私有云意味着维护和投资你自己的数据中心。许多公有云提供商正在推动企业减少或者消除他们的数据中心。 + + 然而,得益于OpenStack的发展和微软的 Azure Stack ,这两者基本上就是封装在一个盒子里的私有云,我们将会看到私有云慢慢追上公有云的发展步伐。支持混合云的工具、基础设施和架构也变得更加健壮。 + + +2. **容器,微服务和unikernels将会促进混合云的发展。** + + 分析师预言,到2016年底,这些原生云技术会或多或少成为主流的。这些云技术正在快速成熟,将会成为虚拟机的一个替代品,而虚拟机需要更多的资源。 + + 更重要的是,他们既能工作在在线场景,也能工作在离线场景。容器化和编排允许快速的扩大规模,进行公有云和私有云之间的服务迁移,使你能够更容易移动你的服务。 + +3. **数据和相关性占据核心舞台。** + + 所有的云计算方式都处在发展模式。这使得云计算变成了一个技术类的故事。咨询公司[Avoa](http://avoa.com/2016/01/01/2016-is-the-year-of-data-and-relevance/)称,随着云趋于成熟,数据和相关性变得越来越重要。起初,云计算和大数据都是关于怎么吸收尽可能多的数据,然后他们担心如何处理这海量的数据。 + + 2016年,相关组织将会继续锤炼如何进行数据收集和使用的相关技术。在必须处理的技术和文化方面仍然有待提高。但是2016年应该重新将关注点放在从各个方面考虑的数据重要性上,发现最相关的信息,而不只是数据的数量。 + +4. **云服务将超越按需工作负载。** + + AWS(Amazon Web Services)起初是提供给程序员或者是开发人员能够快速启动虚拟机,做一些工作然后离线的一个地方。这就是按需使用的本质。要让这些服务持续运行,几乎需要全天候工作。 + + 然而,IT组织正开始作为服务代理,为内部用户提供各种IT服务。可以是内部IT服务,公有云基础架构提供商,平台服务和软件服务。 + + 他们将越来越多的认识到想云管理平台这样的工具的价值。云管理平台可以提供针对不同服务的基于策略的一致性管理。他们也将看到像提高可移植性的容器等技术的价值。然而,云服务代理,在不同云之间快速移动的工作负载进行价格套利或者相关原因的意义上来讲,仍然是行不通的。 + +5. **服务提供商转变成了云服务提供商。** + + 到目前为止,购买云服务成了直销模式。AWS EC2 服务的使用者通常变成了购买者,通过官方认证渠道或者通过影子IT。但是随着云服务越来越全面,提供的服务菜单越来越复杂,越来越多的人转向了经销商,服务提供商转变成了他们IT服务的购买者。 + + 2nd Watch (2nd Watch是为企业提供云管理的 AWS 的首选合作伙伴)最近的一项调查发现,在美国将近85%的IT高管愿意支付一个小的溢价从渠道商那里购买公有云服务,如果购买过程变得不再那么复杂。根据调查,这85%的高管有五分之四的愿意支付额外的15%或者更多。三分之一的受访高管表示,他们可以使用帮助来购买、使用和管理公有云服务。 + +6. **物联网和云对于2016年的意义好比移动和云对2012年的意义。** + + 物联网获得了广泛的关注,更重要的是,物联网已经从测试场景进行了实际应用。云的分布式特性使得云成为了物联网非常重要的一部分,对于工业物联网,与后端系统交互的机械和重型设备,混合云将会成为最自然的驱动者,连接,数据采集和处理将会发生在混合云环境中,这得益于私有云在安全和隐私方面的好处。 + +7. **NIST 对云的定义开始瓦解。** + + 2011年,美国国家标准与技术研究院发布了“[ NIST 对于云计算的定义](http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf)”(PDF),这个定义成为了私有云、公有云、混合云和 aas模板的标准定义。 + + 然而随着时间的推移,定义开始改变。Iaas变得更加复杂,开始支持OpenStack,[Swift](https://wiki.openstack.org/wiki/Swift) 对象存储和神经网络这样的项目。Paas似乎正在消退,因为Paas和传统的中间件开发几乎无异。Saas,只是通过浏览器进行访问的应用,也正在失去发展动力,因为许多app和服务提供了许多云接口,你可以通过各种手段调用接口,不仅仅通过浏览器。 + +8. **分析变得更加重要** + + 对于混合云计算来说,分析将会成为一个巨大的增长机遇,云计算具有规模大、灵活性高的优势,使得云计算非常适合需要海量数据的分析工作。对于某些分析方式,比如高度敏感的数据,私有云仍然是主导地位但是私有云也是混合云的一部分。因此,无论如何,混合云计算胜出。 + +9. **安全仍然是一个非常紧迫的问题。** + + 随着混合云计算在2016年的发展,以及对物联网和容器等新技术的引进,这同时也增加了更多的脆弱可攻破的地方从而导致数据泄露。先增加使用新技术的趋势,然后再去考虑安全性,这种问题经常发生,同时还有缺少经验的工程师不去考虑系统的安全问题,总有一天你会尝到灾难的后果的。 + + 当一项新技术出来,管理规范总是落后于安全问题产生后,然后我们才考虑去保护技术。容器就是一个很鲜明的例子。你可以从Docker下周各种示例容器,但是你知道你下载的东西来自哪里么?在人们在对容器内容不知情的情况下下载并运行了容器之后,Docker不得不重新加上安全验证。 + + 像Path和Snapchat这样的移动技术在智能手机市场火起来之后也出现了重大的安全问题。一项新技术被恶意利用无可避免。所以安全研究人员需要通过各种手段来保证新技术的安全性。很有可能在部署之后才会发现安全问题。 + + +------------------------------------------------------------------------------ + +via: http://www.datamation.com/cloud-computing/9-key-trends-in-hybrid-cloud-computing.html + +作者:[Andy Patrizio][a] +译者:[棣琦](https://github.com/sonofelice) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.datamation.com/author/Andy-Patrizio-90720.html From 7b9dacc10a469015373582f48aa7ec899c601d16 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Sun, 8 May 2016 18:24:05 +0800 Subject: [PATCH 455/582] Proofread 20151124 Review--5 memory debuggers for Linux coding --- ...ew--5 memory debuggers for Linux coding.md | 150 +++++++++--------- 1 file changed, 75 insertions(+), 75 deletions(-) diff --git a/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md b/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md index b49ba9e40a..2335222ac8 100644 --- a/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md +++ b/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md @@ -3,11 +3,11 @@ ![](http://images.techhive.com/images/article/2015/11/penguinadmin-2400px-100627186-primary.idge.jpg) Credit: [Moini][1] -作为一个程序员,我知道我总在犯错误——事实是,怎么可能会不犯错的!程序员也是人啊。有的错误能在编码过程中及时发现,而有些却得等到软件测试才显露出来。然而,有一类错误并不能在这两个时期被排除,从而导致软件不能正常运行,甚至是提前中止。 +作为一个程序员,我知道我总在犯错误——事实是,怎么可能会不犯错的!程序员也是人啊。有的错误能在编码过程中及时发现,而有些却得等到软件测试才显露出来。然而,还有一类错误并不能在这两个时期被排除,从而导致软件不能正常运行,甚至是提前中止。 -想到了吗?我说的就是内存相关的错误。手动调试这些错误不仅耗时,而且很难发现并纠正。值得一提的是,这种错误非常地常见,特别是在一些软件里,这些软件是用C/C++这类允许[手动管理内存][2]的语言编写的。 +想到了吗?我说的就是内存相关的错误。手动调试这些错误不仅耗时,而且很难发现并纠正。值得一提的是,这种错误非常常见,特别是在用 C/C++ 这类允许[手动管理内存][2]的语言编写的软件里。 -幸运的是,现行有一些编程工具能够帮你找到软件程序中这些内存相关的错误。在这些工具集中,我评定了五款Linux可用的,流行、免费并且开源的内存调试器:Dmalloc、Electric Fence、 Memcheck、 Memwatch以及Mtrace。日常编码过程中我已经把这五个调试器用了个遍,所以这些点评是建立在我的实际体验之上的。 +幸运的是,现行有一些编程工具能够帮你找到软件程序中这些内存相关的错误。在这些工具集中,我评定了五款Linux可用的,流行、免费并且开源的内存调试器: Dmalloc 、 Electric Fence 、 Memcheck 、 Memwatch 以及 Mtrace 。在日常编码中,我已经把这五个调试器用了个遍,所以这些点评是建立在我的实际体验之上的。 ### [Dmalloc][3] ### @@ -15,11 +15,11 @@ Credit: [Moini][1] **点评版本**:5.5.2 -**Linux支持**:所有种类 +**支持的 Linux**:所有种类 -**许可**:知识共享署名-相同方式共享许可证3.0 +**许可**:知识共享署名-相同方式共享许可证 3.0 -Dmalloc是Gray Watson开发的一款内存调试工具。它实现成库,封装了标准内存管理函数如**malloc(), calloc(), free()**等,使得程序员得以检测出有问题的代码。 +Dmalloc 是 Gray Watson 开发的一款内存调试工具。它实现成库,封装了标准内存管理函数如 *malloc() , calloc() , free()* 等,使程序员得以检测出有问题的代码。 ![cw dmalloc output](http://images.techhive.com/images/article/2015/11/cw_dmalloc-output-100627040-large.idge.png) Dmalloc @@ -28,29 +28,29 @@ Dmalloc #### 更新内容 #### -5.5.2版本是一个[bug修复发行版][6],同时修复了构建和安装的问题。 +5.5.2 版本是一个 [bug 修复发行版][6],同时修复了构建和安装的问题。 #### 有何优点 #### -Dmalloc最大的优点是可以进行任意配置。比如说,你可以配置以支持C++程序和多线程应用。Dmalloc还提供一个有用的功能:运行时可配置,这表示在Dmalloc执行时,可以轻易地使能或者禁能它提供的特性。 +Dmalloc 最大的优点就是高度可配置性。比如说,你可以配置以支持 C++ 程序和多线程应用。 Dmalloc 还提供一个有用的功能:运行时可配置,这表示在 Dmalloc 执行时,可以轻易地使能或者禁能它提供的特性。 -你还可以配合[GNU Project Debugger (GDB)][7]来使用Dmalloc,只需要将dmalloc.gdb文件(位于Dmalloc源码包中的contrib子目录里)的内容添加到你的主目录中的.gdbinit文件里即可。 +你还可以配合 [GNU Project Debugger (GDB)][7]来使用 Dmalloc ,只需要将 *dmalloc.gdb* 文件(位于 Dmalloc 源码包中的 contrib 子目录里)的内容添加到你的主目录中的 *.gdbinit* 文件里即可。 -另外一个优点让我对Dmalloc爱不释手的是它有大量的资料文献。前往官网的[Documentation标签][8],可以获取任何内容,有关于如何下载、安装、运行,怎样使用库,和Dmalloc所提供特性的细节描述,及其输入文件的解释。里面还有一个章节介绍了一般问题的解决方法。 +另外一个让我对 Dmalloc 爱不释手的优点是它有大量的资料文献。前往官网的 [Documentation 标签][8],可以获取所有关于如何下载、安装、运行,怎样使用库,和 Dmalloc 所提供特性的细节描述,及其输入文件的解释。其中还有一个章节介绍了一般问题的解决方法。 #### 注意事项 #### -跟Mtrace一样,Dmalloc需要程序员改动他们的源代码。比如说你可以(必须的)添加头文件**dmalloc.h**,工具就能汇报产生问题的调用的文件或行号。这个功能非常有用,因为它节省了调试的时间。 +跟 Mtrace 一样, Dmalloc 需要程序员改动他们的源代码。比如说你可以(必须的)添加头文件 *dmalloc.h* ,工具就能汇报产生问题的调用的文件或行号。这个功能非常有用,因为它节省了调试的时间。 -除此之外,还需要在编译你的程序时,把Dmalloc库(编译源码包时产生的)链接进去。 +除此之外,还需要在编译你的程序时,把 Dmalloc 库(编译源码包时产生的)链接进去。 -然而,还有点更麻烦的事,需要设置一个环境变量,命名为**DMALLOC_OPTION**,以供工具在运行时配置内存调试特性,以及输出文件的路径。可以手动为该环境变量分配一个值,不过初学者可能会觉得这个过程有点困难,因为你想使能的Dmalloc特性是存在于这个值之中的——表示为各自的十六进制值的累加。[这里][9]有详细介绍。 +然而,还有点更麻烦的事,需要设置一个环境变量,命名为 *DMALLOC_OPTION* ,以供工具在运行时配置内存调试特性,以及输出文件的路径。可以手动为该环境变量分配一个值,不过初学者可能会觉得这个过程有点困难,因为该值的一部分用来表示要启用的 Dmalloc 特性——表示为各自的十六进制值的累加。[这里][9]有详细介绍。 -一个比较简单方法设置这个环境变量是使用[Dmalloc实用指令][10],这是专为这个目的设计的方法。 +一个比较简单方法设置这个环境变量是使用 [Dmalloc 实用指令][10],这是专为这个目的设计的方法。 #### 总结 #### -Dmalloc真正的优势在于它的可配置选项。而且高度可移植,曾经成功移植到多种操作系统如AIX、BSD/OS、DG/UX、Free/Net/OpenBSD、GNU/Hurd、HPUX、Irix、Linux、MS-DOG、NeXT、OSF、SCO、Solaris、SunOS、Ultrix、Unixware甚至Unicos(运行在Cray T3E主机上)。虽然Dmalloc有很多东西需要学习,但是它所提供的特性值得为之付出。 +Dmalloc 真正的优势在于它的可配置选项。而且高度可移植,曾经成功移植到多种操作系统如 AIX 、 BSD/OS 、 DG/UX 、 Free/Net/OpenBSD 、 GNU/Hurd 、 HPUX 、 Irix 、 Linux 、 MS-DOG 、 NeXT 、 OSF 、 SCO 、 Solaris 、 SunOS 、 Ultrix 、 Unixware 甚至 Unicos(运行在 Cray T3E 主机上)。虽然使用 Dmalloc 需要学习许多知识,但是它所提供的特性值得为之付出。 ### [Electric Fence][15] ### @@ -58,95 +58,95 @@ Dmalloc真正的优势在于它的可配置选项。而且高度可移植,曾 **点评版本**:2.2.3 -**Linux支持**:所有种类 +**支持的 Linux**:所有种类 **许可**:GNU 通用公共许可证 (第二版) -Electric Fence是Bruce Perens开发的一款内存调试工具,它以库的形式实现,你的程序需要链接它。Electric Fence能检测出[栈][11]内存溢出和访问已经释放的内存。 +Electric Fence 是 Bruce Perens 开发的一款内存调试工具,它以库的形式实现,你的程序需要链接它。Electric Fence 能检测出[栈][11]内存溢出和访问已经释放的内存。 ![cw electric fence output](http://images.techhive.com/images/article/2015/11/cw_electric-fence-output-100627041-large.idge.png) Electric Fence -顾名思义,Electric Fence在每个申请的缓存边界建立了fence(防护),任何非法内存访问都会导致[段错误][12]。这个调试工具同时支持C和C++编程。 +顾名思义, Electric Fence 在每个申请的缓存边界建立了 virtual fence(虚拟围栏),任何非法内存访问都会导致[段错误][12]。这个调试工具同时支持 C 和 C++ 程序。 #### 更新内容 #### -2.2.3版本修复了工具的构建系统,使得-fno-builtin-malloc选项能真正传给[GNU Compiler Collection (GCC)][13]。 +2.2.3 版本修复了工具的构建系统,使得 `-fno-builtin-malloc` 选项能真正传给 [GNU Compiler Collection (GCC)][13]。 #### 有何优点 #### -我喜欢Electric Fence首要的一点是(Memwatch、Dmalloc和Mtrace所不具有的),这个调试工具不需要你的源码做任何的改动,你只需要在编译的时候把它的库链接进你的程序即可。 +我喜欢 Electric Fence 首要的一点是它(不同于 Memwatch 、 Dmalloc 和 Mtrace ,)不需要你的源码做任何的改动,你只需要在编译的时候把它的库链接进你的程序即可。 -其次,Electric Fence实现一个方法,确认导致越界访问(a bounds violation)的第一个指令就是引起段错误的原因。这比在后面再发现问题要好多了。 +其次, Electric Fence 的实现保证了导致越界访问( a bounds violation )的第一个指令就是引起段错误的原因。这比在后面再发现问题要好多了。 -不管是否有检测出错误,Electric Fence经常会在输出产生版权信息。这一点非常有用,由此可以确定你所运行的程序已经启用了Electric Fence。 +不管是否有检测出错误, Electric Fence 都会在输出产生版权信息。这一点非常有用,由此可以确定你所运行的程序已经启用了 Electric Fence 。 #### 注意事项 #### -另一方面,我对Electric Fence真正念念不忘的是它检测内存泄漏的能力。内存泄漏是C/C++软件最常见也是最难隐秘的问题之一。不过,Electric Fence不能检测出堆内存溢出,而且也不是线程安全的。 +另一方面,我对 Electric Fence 真正念念不忘的是它检测内存泄漏的能力。内存泄漏是 C/C++ 软件最常见也是最难隐秘的问题之一。不过, Electric Fence 不能检测出堆内存溢出,而且也不是线程安全的。 -基于Electric Fence会在用户分配内存区的前后分配禁止访问的虚拟内存页,如果你过多的进行动态内存分配,将会导致你的程序消耗大量的额外内存。 +由于 Electric Fence 会在用户分配内存区的前后分配禁止访问的虚拟内存页,如果你过多的进行动态内存分配,将会导致你的程序消耗大量的额外内存。 -Electric Fence还有一个局限是不能明确指出错误代码所在的行号。它所能做只是在监测到内存相关错误时产生段错误。想要定位行号,需要借助[The Gnu Project Debugger (GDB)][14]这样的调试工具来调试你启用了Electric Fence的程序。 +Electric Fence 还有一个局限是不能明确指出错误代码所在的行号。它所能做只是在监测到内存相关错误时产生段错误。想要定位行号,需要借助 [The Gnu Project Debugger ( GDB )][14]这样的调试工具来调试启用了 Electric Fence 的程序。 -最后一点,Electric Fence虽然能检测出大部分的缓冲区溢出,有一个例外是,如果所申请的缓冲区大小不是系统字长的倍数,这时候溢出(即使只有几个字节)就不能被检测出来。 +最后一点,尽管 Electric Fence 能检测出大部分的缓冲区溢出,有一个例外是,如果所申请的缓冲区大小不是系统字长的倍数,这时候溢出(即使只有几个字节)就不能被检测出来。 #### 总结 #### -尽管有那么多的局限,但是Electric Fence的优点却在于它的易用性。程序只要链接工具一次,Electric Fence就可以在监测出内存相关问题的时候报警。不过,如同前面所说,Electric Fence需要配合像GDB这样的源码调试器使用。 +尽管局限性较大, Electric Fence 的易用性仍然是加分项。只要链接一次程序, Electric Fence 就可以在监测出内存相关问题的时候报警。不过,如同前面所说, Electric Fence 需要配合像 GDB 这样的源码调试器使用。 ### [Memcheck][16] ### -**开发者**:[Valgrind开发团队][17] +**开发者**:[Valgrind 开发团队][17] **点评版本**:3.10.1 -**Linux支持**:所有种类 +**支持的 Linux**:所有种类 **许可**:通用公共许可证 -[Valgrind][18]是一个提供好几款调试和Linux程序性能分析工具的套件。虽然Valgrind和编写语言各不相同(有Java、Perl、Python、Assembly code、ortran、Ada等等)的程序配合工作,但是它所提供的工具大部分都意在支持C/C++所编写的程序。 +[Valgrind][18] 是一个提供好几款调试和 Linux 程序性能分析工具的套件。虽然 Valgrind 能和编写语言各不相同(有 Java 、 Perl 、 Python 、 Assembly code 、 ortran 、 Ada等等)的程序配合工作,但是它所提供的工具主要针对用 C/C++ 所编写的程序。 -Memcheck作为内存错误检测器,是一款最受欢迎的Memcheck工具。它能够检测出诸多问题诸如内存泄漏、无效的内存访问、未定义变量的使用以及栈内存分配和释放相关的问题等。 +Memcheck ,一款内存错误检测器,是其中最受欢迎的工具。它能够检测出如内存泄漏、无效的内存访问、未定义变量的使用以及栈内存分配和释放相关的问题等诸多问题。 #### 更新内容 #### -工具套件(3.10.1)的[发行版][19]是一个副版本,主要修复了3.10.0版本发现的bug。除此之外,从主版本backport一些包,修复了缺失的AArch64 ARMv8指令和系统调用。 +工具套件( 3.10.1 )的[发行版][19]是一个副版本,主要修复了 3.10.0 版本发现的 bug 。除此之外,从主版本向后移植(标音: backport )一些包,修复了缺失的 AArch64 ARMv8 指令和系统调用。 #### 有何优点 #### -同其它所有Valgrind工具一样,Memcheck也是基本的命令行实用程序。它的操作非常简单:通常我们会使用诸如prog arg1 arg2格式的命令来运行程序,而Memcheck只要求你多加几个值即可,就像valgrind --leak-check=full prog arg1 arg2。 +同其它所有 Valgrind 工具一样, Memcheck 也是命令行实用程序。它的操作非常简单:通常我们会使用诸如 prog arg1 arg2 格式的命令来运行程序,而 Memcheck 只要求你多加几个值即可,如 valgrind --leak-check=full prog arg1 arg2 。 ![cw memcheck output](http://images.techhive.com/images/article/2015/11/cw_memcheck-output-100627037-large.idge.png) Memcheck -(注意:因为Memcheck是Valgrind的默认工具所以无需提及Memcheck。但是,需要在编译程序之初带上-g参数选项,这一步会添加调试信息,使得Memcheck的错误信息会包含正确的行号。) +(注意:因为 Memcheck 是 Valgrind 的默认工具所以无需提及 Memcheck。但是,需要在编译程序之初带上 -g 参数选项,这一步会添加调试信息,使得 Memcheck 的错误信息会包含正确的行号。) -我真正倾心于Memcheck的是它提供了很多命令行选项(如上所述的--leak-check选项),如此不仅能控制工具运转还可以控制它的输出。 +我真正倾心于 Memcheck 的是它提供了很多命令行选项(如上所述的 *--leak-check* 选项),如此不仅能控制工具运转还可以控制它的输出。 -举个例子,可以开启--track-origins选项,以查看程序源码中未初始化的数据。可以开启--show-mismatched-frees选项让Memcheck匹配内存的分配和释放技术。对于C语言所写的代码,Memcheck会确保只能使用free()函数来释放内存,malloc()函数来申请内存。而对C++所写的源码,Memcheck会检查是否使用了delete或delete[]操作符来释放内存,以及new或者new[]来申请内存。 +举个例子,可以开启 *--track-origins* 选项,以查看程序源码中未初始化的数据;可以开启 *--show-mismatched-frees* 选项让 Memcheck 匹配内存的分配和释放技术。对于 C 语言所写的代码, Memcheck 会确保只能使用 *free()* 函数来释放内存, *malloc()* 函数来申请内存。而对 C++ 所写的源码, Memcheck 会检查是否使用了 *delete* 或 *delete[]* 操作符来释放内存,以及 *new* 或者*new[]* 来申请内存。 -Memcheck最好的特点,尤其是对于初学者来说的,是它会给用户建议使用那个命令行选项能让输出更加有意义。比如说,如果你不使用基本的--leak-check选项,Memcheck会在输出时建议“使用--leak-check=full重新运行,查看更多泄漏内存细节”。如果程序有未初始化的变量,Memcheck会产生信息“使用--track-origins=yes,查看未初始化变量的定位”。 +Memcheck 最好的特点,尤其是对于初学者来说,是它会给用户建议使用哪个命令行选项能让输出更加有意义。比如说,如果你不使用基本的 *--leak-check* 选项, Memcheck 会在输出时建议“使用 --leak-check=full 重新运行以查看更多泄漏内存细节”。如果程序有未初始化的变量, Memcheck 会产生信息“使用 --track-origins=yes 以查看未初始化变量的定位”。 -Memcheck另外一个有用的特性是它可以[创建抑制文件(suppression files)][20],由此可以忽略特定不能修正的错误,这样Memcheck运行时就不会每次都报警了。值得一提的是,Memcheck会去读取默认抑制文件来忽略系统库(比如C库)中的报错,这些错误在系统创建之前就已经存在了。可以选择创建一个新的抑制文件,或是编辑现有的(通常是/usr/lib/valgrind/default.supp)。 +Memcheck 另外一个有用的特性是它可以[创建抑制文件( suppression files )][20],由此可以忽略特定不能修正的错误,这样 Memcheck 运行时就不会每次都报警了。值得一提的是, Memcheck 会去读取默认抑制文件来忽略系统库(比如 C 库)中的报错,这些错误在系统创建之前就已经存在了。可以选择创建一个新的抑制文件,或是编辑现有的文件(通常是*/usr/lib/valgrind/default.supp*)。 -Memcheck还有高级功能,比如可以使用[定制内存分配器][22]来[检测内存错误][21]。除此之外,Memcheck提供[监控命令][23],当用到Valgrind的内置gdbserver,以及[客户端请求][24]机制(不仅能把程序的行为告知Memcheck,还可以进行查询)时可以使用。 +Memcheck 还有高级功能,比如可以使用[定制内存分配器][22]来[检测内存错误][21]。除此之外, Memcheck 提供[监控命令][23],当用到 Valgrind 内置的 gdbserver ,以及[客户端请求][24]机制(不仅能把程序的行为告知 Memcheck ,还可以进行查询)时可以使用。 #### 注意事项 #### -毫无疑问,Memcheck可以节省很多调试时间以及省去很多麻烦。但是它使用了很多内存,导致程序执行变慢([由资料可知][25],大概花上20至30倍时间)。 +毫无疑问, Memcheck 可以节省很多调试时间以及省去很多麻烦。但是它使用了很多内存,导致程序执行变慢([由文档可知][25],大概花上 20 至 30 倍时间)。 -除此之外,Memcheck还有其它局限。根据用户评论,Memcheck明显不是[线程安全][26]的;它不能检测出 [静态缓冲区溢出][27];还有就是,一些Linux程序如[GNU Emacs][28],目前还不能使用Memcheck。 +除此之外, Memcheck 还有其它局限。根据用户评论, Memcheck 明显不是[线程安全][26]的;它不能检测出 [静态缓冲区溢出][27];还有就是,一些 Linux 程序如 [GNU Emacs][28] 目前还不能使用 Memcheck 。 -如果有兴趣,可以在[这里][29]查看Valgrind详尽的局限性说明。 +如果有兴趣,可以在[这里][29]查看 Valgrind 详尽的局限性说明。 #### 总结 #### -无论是对于初学者还是那些需要高级特性的人来说,Memcheck都是一款便捷的内存调试工具。如果你仅需要基本调试和错误核查,Memcheck会非常容易上手。而当你想要使用像抑制文件或者监控指令这样的特性,就需要花一些功夫学习了。 +无论是对于初学者还是那些需要高级特性的人来说, Memcheck 都是一款便捷的内存调试工具。如果你仅需要基本调试和错误核查, Memcheck 会非常容易上手。而当你想要使用像抑制文件或者监控指令这样的特性,就需要花一些功夫学习了。 -虽然罗列了大量的局限性,但是Valgrind(包括Memcheck)在它的网站上声称全球有[成千上万程序员][30]使用了此工具。开发团队称收到来自超过30个国家的用户反馈,而这些用户的工程代码有的高达2.5千万行。 +虽然罗列了大量的局限性,但是 Valgrind(包括 Memcheck )在它的网站上声称全球有[成千上万程序员][30]使用了此工具。开发团队称收到来自超过 30 个国家的用户反馈,而这些用户的工程代码有的高达 2.5 千万行。 ### [Memwatch][31] ### @@ -154,40 +154,40 @@ Memcheck还有高级功能,比如可以使用[定制内存分配器][22]来[ **点评版本**:2.71 -**Linux支持**:所有种类 +**支持的 Linux**:所有种类 **许可**:GNU通用公共许可证 - -Memwatch是由Johan Lindh开发的内存调试工具,虽然它主要扮演内存泄漏检测器的角色,但是它也具有检测其它如[重复释放跟踪和内存错误释放][32]、缓冲区溢出和下溢、[野指针][33]写入等等内存相关问题的能力(根据网页介绍所知)。 -Memwatch支持用C语言所编写的程序。可以在C++程序中使用它,但是这种做法并不提倡(由Memwatch源码包随附的Q&A文件中可知)。 +Memwatch 是由 Johan Lindh 开发的内存调试工具,虽然它主要扮演内存泄漏检测器的角色,但是(根据网页介绍)它也具有检测其它如[重复释放跟踪和内存错误释放][32]、缓冲区溢出和下溢、[野指针][33]写入等等内存相关问题的能力。 + +Memwatch 支持用 C 语言所编写的程序。也可以在 C++ 程序中使用它,但是这种做法并不提倡(由 Memwatch 源码包随附的 Q&A 文件中可知)。 #### 更新内容 #### -这个版本添加了ULONG_LONG_MAX以区分32位和64位程序。 +这个版本添加了 *ULONG_LONG_MAX* 以区分 32 位和 64 位程序。 #### 有何优点 #### -跟Dmalloc一样,Memwatch也有优秀的文献资料。参考USING文件,可以学习如何使用Memwatch,可以了解Memwatch是如何初始化、如何清理以及如何进行I/O操作的,等等不一而足。还有一个FAQ文件,旨在帮助用户解决使用过程遇到的一般问题。最后还有一个test.c文件提供工作案例参考。 +跟 Dmalloc 一样, Memwatch 也有优秀的文档资料。参考 USING 文件,可以学习如何使用 Memwatch ,可以了解 Memwatch 是如何初始化、如何清理以及如何进行 I/O 操作,等等。还有一个 FAQ 文件,旨在帮助用户解决使用过程遇到的一般问题。最后还有一个 *test.c* 文件提供工作案例参考。 ![cw memwatch output](http://images.techhive.com/images/article/2015/11/cw_memwatch_output-100627038-large.idge.png) Memwatch -不同于Mtrace,Memwatch的输出产生的日志文件(通常是memwatch.log)是人类可阅读格式。而且,Memwatch每次运行时总会拼接内存调试输出到此文件末尾,而不是进行覆盖(译改)。如此便可在需要之时,轻松查看之前的输出信息。 +不同于 Mtrace , Memwatch 的输出产生的日志文件(通常是 *memwatch.log* )是人类可阅读格式。而且, Memwatch 每次运行时总会拼接内存调试输出到文件末尾。如此便可在需要之时,轻松查看之前的输出信息。 -同样值得一提的是当你执行了启用Memwatch的程序,Memwatch会在[标准输出][34]中产生一个单行输出,告知发现了错误,然后你可以在日志文件中查看输出细节。如果没有产生错误信息,就可以确保日志文件不会写入任何错误,多次运行的话能实际节省时间。 +同样值得一提的是当你执行了启用 Memwatch 的程序, Memwatch 会在[标准输出][34]中产生一个单行输出,告知发现了错误,然后你可以在日志文件中查看输出细节。如果没有产生错误信息,就可以确保日志文件不会写入任何错误,多次运行的话确实能节省时间。 -另一个我喜欢的优点是Memwatch同样在源码中提供一个方法,你可以据此获取Memwatch的输出信息,然后任由你进行处理(参考Memwatch源码中的mwSetOutFunc()函数获取更多有关的信息)。 +另一个我喜欢的优点是 Memwatch 还提供了在源码中获取其输出信息的方式,你可以获取信息,然后任由你进行处理(参考 Memwatch 源码中的 *mwSetOutFunc()* 函数获取更多有关的信息)。 #### 注意事项 #### -跟Mtrace和Dmalloc一样,Memwatch也需要你往你的源文件里增加代码:你需要把memwatch.h这个头文件包含进你的代码。而且,编译程序的时候,你需要连同memwatch.c一块编译;或者你可以把已经编译好的目标模块包含起来,然后在命令行定义MEMWATCH和MW_STDIO变量。不用说,想要在输出中定位行号,-g编译器选项也少不了。 +跟 Mtrace 和 Dmalloc 一样, Memwatch 也需要你往你的源文件里增加代码:你需要把 *memwatch.h* 这个头文件包含进你的代码。而且,编译程序的时候,你需要连同 *memwatch.c* 一块编译;或者你可以把已经编译好的目标模块包含起来,然后在命令行定义 *MEMWATCH* 和 *MW_STDIO* 变量。不用说,想要在输出中定位行号, -g 编译器选项也少不了。 -还有一些没有具备的特性。比如Memwatch不能检测出往一块已经被释放的内存写入操作,或是在分配的内存块之外的读取操作。而且,Memwatch也不是线程安全的。还有一点,正如我在开始时指出,在C++程序上运行Memwatch的结果是不能预料的。 +此外, Memwatch 缺少一些特性。比如 Memwatch 不能检测出往一块已经被释放的内存写入操作,或是在分配的内存块之外的读取操作。而且, Memwatch 也不是线程安全的。还有一点,正如我在开始时指出,在 C++ 程序上运行 Memwatch 的结果是不能预料的。 #### 总结 #### -Memcheck可以检测很多内存相关的问题,在处理C程序时是非常便捷的调试工具。因为源码小巧,所以可以从中了解Memcheck如何运转,有需要的话可以调试它,甚至可以根据自身需求扩展升级它的功能。 +Memcheck 可以检测很多内存相关的问题,在处理 C 程序时是非常便捷的调试工具。因为源码小巧,所以可以从中了解 Memcheck 如何运转,有需要的话可以调试它,甚至可以根据自身需求扩展升级它的功能。 ### [Mtrace][35] ### @@ -195,60 +195,60 @@ Memcheck可以检测很多内存相关的问题,在处理C程序时是非常 **点评版本**: 2.21 -**Linux支持**:所有种类 +**支持的 Linux**:所有种类 -**许可**:GNU通用公共许可证 +**许可**:GNU 通用公共许可证 -Mtrace是[GNU C库][36]中的一款内存调试工具,同时支持Linux C和C++程序,检测由malloc()和free()函数的不对等调用所引起的内存泄漏问题。 +Mtrace 是 [GNU C 库][36]中的一款内存调试工具,同时支持 Linux 上的 C 和 C++ 程序,检测由 *malloc()* 和 *free()* 函数的不对等调用所引起的内存泄漏问题。 ![cw mtrace output](http://images.techhive.com/images/article/2015/11/cw_mtrace-output-100627039-large.idge.png) Mtrace -Mtrace实现为对mtrace()函数的调用,跟踪程序中所有malloc/free调用,在用户指定的文件中记录相关信息。文件以一种机器可读的格式记录数据,所以有一个Perl脚本(同样命名为mtrace)用来把文件转换并展示为人类可读格式。 +Mtrace 实现为对 *mtrace()* 函数的调用,跟踪程序中所有 malloc/free 调用,并在用户指定的文件中记录相关信息。文件以一种机器可读的格式记录数据,所以有一个 Perl 脚本(同样命名为 mtrace )用来把文件转换并展示为人类可读格式。 #### 更新内容 #### -[Mtrace源码][37]和[Perl文件][38]同GNU C库(2.21版本)一起释出,除了更新版权日期,其它别无改动。 +[Mtrace 源码][37]和 [Perl 文件][38]同 GNU C 库( 2.21 版本)一起释出,除了更新版权日期,其它别无改动。 #### 有何优点 #### -Mtrace最优秀的特点是非常简单易学。你只需要了解在你的源码中如何以及何处添加mtrace()及其对立的muntrace()函数,还有如何使用Mtrace的Perl脚本。后者非常简单,只需要运行指令mtrace (例子见开头截图最后一条指令)。 +Mtrace 最优秀的特点是非常简单易学。你只需要了解在你的源码中如何以及何处添加mtrace()及其对立的muntrace()函数,还有如何使用Mtrace的Perl脚本。后者非常简单,只需要运行指令 *mtrace *(例子见开头截图最后一条指令)。 -Mtrace另外一个优点是它的可收缩性,体现在,不仅可以使用它来调试完整的程序,还可以使用它来检测程序中独立模块的内存泄漏。只需在每个模块里调用mtrace()和muntrace()即可。 +Mtrace 另外一个优点是它的可收缩性,体现在,不仅可以使用它来调试完整的程序,还可以使用它来检测程序中独立模块的内存泄漏。只需在每个模块里调用 *mtrace()* 和 *muntrace()* 即可。 -最后一点,因为Mtrace会在mtace()(在源码中添加的函数)执行时被触发,因此可以很灵活地[使用信号][39]动态地(在程序执行周期内)使能Mtrace。 +最后一点,因为 Mtrace 会在 *mtace()*(在源码中添加的函数)执行时被触发,因此可以很灵活地[使用信号][39]动态地(在程序执行周期内)使能 Mtrace 。 #### 注意事项 #### -因为mtrace()和mauntrace()函数(在mcheck.h文件中声明,所以必须在源码中包含此头文件)的调用是Mtrace运行(mauntrace()函数并非[总是必要][40])的根本,因此Mtrace要求程序员至少改动源码一次。 +因为 *mtrace()* 和 *mauntrace()* 函数(声明在 *mcheck.h* 文件中,所以必须在源码中包含此头文件)的调用是 Mtrace 运行( *mauntrace()* 函数并非[总是必要][40])的根本,因此 Mtrace 要求程序员至少改动源码一次。 -了解需要在编译程序的时候带上-g选项([GCC][41]和[G++][42]编译器均由提供),才能使调试工具在输出展示正确的行号。除此之外,有些程序(取决于源码体积有多大)可能会花很长时间进行编译。最后,带-g选项编译会增加了可执行文件的内存(因为提供了额外的调试信息),因此记得程序需要在测试结束,不带-g选项重新进行编译。 +需要注意的是,在编译程序的时候带上 -g 选项( [GCC][41] 和 [G++][42] 编译器均有提供),才能使调试工具在输出展示正确的行号。除此之外,有些程序(取决于源码体积有多大)可能会花很长时间进行编译。最后,带 -g 选项编译会增加了可执行文件的内存(因为提供了额外的调试信息),因此记得程序需要在测试结束后,不带 -g 选项重新进行编译。 -使用Mtrace,你需要掌握Linux环境变量的基本知识,因为在程序执行之前,需要把用户指定文件(mtrace()函数用以记载全部信息)的路径设置为环境变量MALLOC_TRACE的值。 +使用 Mtrace ,你需要掌握 Linux 环境变量的基本知识,因为在程序执行之前,需要把用户指定的文件( *mtrace()* 函数将会记录全部信息到其中)路径设置为环境变量 *MALLOC_TRACE* 的值。 -Mtrace在检测内存泄漏和尝试释放未经过分配的内存方面存在局限。它不能检测其它内存相关问题如非法内存访问、使用未初始化内存。而且,[有人抱怨][43]Mtrace不是[线程安全][44]的。 +Mtrace 在检测内存泄漏和尝试释放未经过分配的内存方面存在局限。它不能检测其它内存相关问题如非法内存访问、使用未初始化内存。而且,[有人抱怨][43] Mtrace 不是[线程安全][44]的。 ### 总结 ### 不言自明,我在此讨论的每款内存调试器都有其优点和局限。所以,哪一款适合你取决于你所需要的特性,虽然有时候容易安装和使用也是一个决定因素。 -要想捕获软件程序中的内存泄漏,Mtrace最适合不过了。它还可以节省时间。由于Linux系统已经预装了此工具,对于不能联网或者不可以下载第三方调试调试工具的情况,Mtrace也是极有助益的。 +要想捕获软件程序中的内存泄漏, Mtrace 最适合不过了。它还可以节省时间。由于 Linux 系统已经预装了此工具,对于不能联网或者不可以下载第三方调试调试工具的情况, Mtrace 也是极有助益的。 -另一方面,相比Mtrace,,Dmalloc不仅能检测更多错误类型,还你呢个提供更多特性,比如运行时可配置、GDB集成。而且,Dmalloc不像这里所说的其它工具,它是线程安全的。更不用说它的详细资料了,这让Dmalloc成为初学者的理想选择。 +另一方面,相比 Mtrace , Dmalloc 不仅能检测更多错误类型,还提供更多特性,比如运行时可配置、 GDB 集成。而且, Dmalloc 不像这里所说的其它工具,它是线程安全的。更不用说它的详细资料了,这让 Dmalloc 成为初学者的理想选择。 -虽然Memwatch的资料比Dmalloc的更加丰富,而且还能检测更多的错误种类,但是你只能在C语言写就的软件程序上使用它。一个让Memwatch脱颖而出的特性是它允许在你的程序源码中处理它的输出,这对于想要定制输出格式来说是非常有用的。 +虽然 Memwatch 的资料比 Dmalloc 的更加丰富,而且还能检测更多的错误种类,但是你只能在 C 语言写就的程序中使用它。一个让 Memwatch 脱颖而出的特性是它允许在你的程序源码中处理它的输出,这对于想要定制输出格式来说是非常有用的。 -如果改动程序源码非你所愿,那么使用Electric Fence吧。不过,请记住,Electric Fence只能检测两种错误类型,而此二者均非内存泄漏。还有就是,需要了解GDB基础以最大程序发挥这款内存调试工具的作用。 +如果改动程序源码非你所愿,那么使用 Electric Fence 吧。不过,请记住, Electric Fence 只能检测两种错误类型,而此二者均非内存泄漏。还有就是,需要了解 GDB 基础以最大化发挥这款内存调试工具的作用。 -Memcheck可能是这当中综合性最好的了。相比这里所说其它工具,它检测更多的错误类型,提供更多的特性,而且不需要你的源码做任何改动。但请注意,基本功能并不难上手,但是想要使用它的高级特性,就必须学习相关的专业知识了。 +Memcheck 可能是其中综合性最好的了。相比这里提及的其它工具,它能检测更多的错误类型,提供更多的特性,而且不需要你的源码做任何改动。但请注意,基本功能并不难上手,但是想要使用它的高级特性,就必须学习相关的专业知识了。 -------------------------------------------------------------------------------- via: http://www.computerworld.com/article/3003957/linux/review-5-memory-debuggers-for-linux-coding.html 作者:[Himanshu Arora][a] -译者:[译者ID](https://github.com/soooogreen) -校对:[校对者ID](https://github.com/校对者ID) +译者:[soooogreen](https://github.com/soooogreen) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9bd6bcca6268335935b009839ec50bb7b23ad0d8 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 8 May 2016 21:36:04 +0800 Subject: [PATCH 456/582] PUB:20151019 Gaming On Linux--All You Need To Know @name1e5s @PurlingNayuki --- .../20151019 Gaming On Linux--All You Need To Know.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {translated/talk => published}/20151019 Gaming On Linux--All You Need To Know.md (99%) diff --git a/translated/talk/20151019 Gaming On Linux--All You Need To Know.md b/published/20151019 Gaming On Linux--All You Need To Know.md similarity index 99% rename from translated/talk/20151019 Gaming On Linux--All You Need To Know.md rename to published/20151019 Gaming On Linux--All You Need To Know.md index b58f822c72..a7e3e9b91b 100644 --- a/translated/talk/20151019 Gaming On Linux--All You Need To Know.md +++ b/published/20151019 Gaming On Linux--All You Need To Know.md @@ -2,7 +2,7 @@ Linux上的游戏:所有你需要知道的 ================================================================================ ![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/10/Gaming-on-Linux.jpeg) -** 我能在 Linux 上玩游戏吗 ?** +**我能在 Linux 上玩游戏吗 ?** 这是打算[投奔 Linux 阵营][1]的人最经常问的问题之一。毕竟,在 Linux 上面玩游戏经常被认为有点难以实现。事实上,一些人甚至考虑他们能不能在 Linux 上看电影或者听音乐。考虑到这些,关于 Linux 的平台的游戏的问题是很现实的。 From 42b2b4903f45a8ff25317539cd9e76c706e6374a Mon Sep 17 00:00:00 2001 From: alim0x Date: Sun, 8 May 2016 22:17:09 +0800 Subject: [PATCH 457/582] [translated]20160301 The Evolving Markrt for ... --- ...ommercial Software Built On Open Source.md | 42 ------------------- ...ommercial Software Built On Open Source.md | 36 ++++++++++++++++ 2 files changed, 36 insertions(+), 42 deletions(-) delete mode 100644 sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md create mode 100644 translated/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md diff --git a/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md b/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md deleted file mode 100644 index 5cd6a2f1c1..0000000000 --- a/sources/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md +++ /dev/null @@ -1,42 +0,0 @@ -alim0x translating - -The Evolving Market for Commercial Software Built On Open Source -===================================================================== - -![](https://www.linux.com/images/stories/41373/Structure-event-photo.jpg) ->Attendees listen to a presentation during Structure at the UCSF Mission Bay Conference Center, where Structure Data 2016 will take place. Image credit: Structure Events. - -It's really hard to understate the impact of open source projects on the enterprise software market these days; open source integration became the norm so quickly we could be forgiven for missing the turning point. - -Hadoop, for example, changed more than just the world of data analysis. It gave rise to a new generation of data companies that created their own software around open source projects, tweaking and supporting that code as needed, much like how Red Hat embraced Linux in the 1990s and early 2000s. And this software is increasingly delivered over public clouds, rather than run on the buyer's own servers, enabling an amazing degree of operational flexibility but raising all sorts of new questions about licensing, support, and pricing. - -We've been following this closely over the years when putting together the lineup for our Structure Data conference, and Structure Data 2016 is no exception. The CEOs of three of the most important companies in big data operating around Hadoop -- Hortonworks, Cloudera and MapR -- will share the stage to discuss how they sell enterprise software and services around open source projects, generating cash while giving back to that community project at the same time. - -There was a time when making money on enterprise software was easier. Once purchased by a customer, a mega-package of software from an enterprise vendor turned into its own cash register, generating something close to lifetime income from maintenance contracts and periodic upgrades to software that became harder and harder to displace as it became the heart of a customer’s business. Customers grumbled about lock-in, but they didn't really have much of a choice if they wanted to make their workforce more productive. - -That is no longer the case. While an awful lot of companies are still stuck running immense software packages critical to their infrastructure, new projects are being deployed on cloud servers using open source technologies. This makes it much easier to upgrade one's capabilities without having to rip out a huge software package and reinstall something else, and it also allows companies to pay as they go, rather than paying for a bunch of features they'll never use. - -And there are a lot of customers who want to take advantage of open source projects without building and supporting a team of engineers to tweak one of those projects for their own unique needs. Those customers are willing to pay for software packages whose value is based on the delta between the open source projects and the proprietary features laid on top of that project. - -This is especially true for infrastructure-related software. Sure, your customers could install their own tweaks to a project like Hadoop or Spark or Node.js, but there's money to be made helping those customers out with a customizable package that lets them implement some of today's vital open source technologies without having to do all of the heavy lifting themselves. Just look at Structure Data 2016 presenters such as Confluent (Kafka), Databricks (Spark), and the Cloudera-Hortonworks-MapR (Hadoop) trio. - -There's certainly something to be said for having a vendor to yell at when things go wrong. If your engineers botch the implementation of an open source project, you've only yourself to blame. But If you contract with a company that is willing to guarantee certain performance and uptime metrics inside of a service-level agreement, you're willing to pay for support, guidance, and a chance to yell at somebody outside of your organization when inevitable problems crop up. - -The evolving market for commercial software on top of open source projects is something we've been tracking at Structure Data for years, and we urge you to join us in San Francisco March 9 and 10 if this is a topic near and dear to your heart. - - --------------------------------------------------------------------------------- - -via: https://www.linux.com/news/enterprise/cloud-computing/889564-the-evolving-market-for-commercial-software-built-on-open-source- - -作者:[Tom Krazit ][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.linux.com/community/forums/person/70513 - - - - diff --git a/translated/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md b/translated/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md new file mode 100644 index 0000000000..c45b3eb760 --- /dev/null +++ b/translated/tech/20160301 The Evolving Market for Commercial Software Built On Open Source.md @@ -0,0 +1,36 @@ +构建在开源之上的商业软件市场持续成长 +===================================================================== + +![](https://www.linux.com/images/stories/41373/Structure-event-photo.jpg) +> 与会者在 Structure 上听取演讲,Structure Data 2016 也将在 UCSF Mission Bay 会议中心举办。图片来源:Structure Events。 + +如今真的很难低估开源项目对于企业软件市场的影响;开源集成如此快速地形成了规范,我们没能捕捉到转折点也情有可原。 + +举个例子,Hadoop,改变的不止是数据分析的世界。它引领了新一代数据公司,它们围绕开源项目创造自己的软件,按需调整和支持那些代码,更像红帽在 90 年代和 21 世纪早期拥抱 Linux 那样。软件越来越多地通过公有云交付,而不是购买者自己的服务器,拥有了令人惊奇的操作灵活性,但同时也带来了一些关于授权,支持以及价格之类的新问题。 + +我们多年来持续追踪这个趋势,它们组成了我们的 Structure Data 会议,而 Structure Data 2016 也不例外。三家围绕 Hadoop 最重要的大数据公司——Hortonworks,Cloudera 和 MapR——的 CEO 将会共同讨论它们是如何销售他们围绕开源项目的企业软件和服务,获利的同时回报那个社区项目。 + +以前在企业软件上获利是很容易的事情。一个客户购买了之后,企业供应商的一系列大型软件就变成了它自己的收银机,从维护合同和阶段性升级中获得近乎终生的收入,软件也越来越难以被替代,因为它已经成为了客户的业务核心。客户抱怨这种绑定,但如果它们想提高工作队伍的生产力也确实没有多少选择。 + +而现在的情况不再是这样了。尽管无数的公司还陷于在他们的基础设施上运行至关重要的巨大软件包,新的项目被使用开源技术部署到云服务器上。这让升级功能不再需要去掉大量软件包再重新安装别的,同时也让公司按需付费,而不是为一堆永远用不到的特性买单。 + +有很多客户想要利用开源项目的优势,而又不想建立和支持一支工程师队伍来调整开源项目以满足自己的需求。这些客户愿意为开源项目和在这之上的专有特性之间的差异付费。 + +这对于基础设施相关的软件来说格外正确。当然,你的客户们可以安装他们自己对项目的调整,比如 Hadoop,Spark 或 Node.js,但付费可以帮助他们自定义包部署如今重要的开源技术而不用自己干这些活儿。只需看看 Structure Data 2016 的发言者就明白了,比如 Confluent(Kafka),Databricks(Spark),以及 Cloudera-Hortonworks-MapR(Hadoop)三人组。 + +当然还有一个值得提到的是在出错的时候有个供应商给你指责。如果你的工程师弄糟了开源项目的实现,那你只能怪你自己了。但是如果你和一个愿意保证在服务级别的特定性能和正常运行时间指标的公司签订了合同,你就是愿意为支持,指导,以及在突然出现不可避免的问题时朝你公司外的人发火的机会买单。 + +构建在开源之上的商业软件市场的持续成长是我们在 Structure Data 上追踪多年的内容,如果这个话题正合你意,我们鼓励你加入我们,在旧金山,3 月 9 日和 10 日。 + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/enterprise/cloud-computing/889564-the-evolving-market-for-commercial-software-built-on-open-source- + +作者:[Tom Krazit ][a] +译者:[alim0x](https://github.com/alim0x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/community/forums/person/70513 From 024fc67a61b6472a2118833a226d52339379d83b Mon Sep 17 00:00:00 2001 From: ezio Date: Mon, 9 May 2016 10:24:10 +0800 Subject: [PATCH 458/582] rename for windows users --- ...container.md => Part 3 - LXD 2.0--Your first LXD container.md} | 0 ... Resource control.md => Part 4 - LXD 2.0--Resource control.md} | 0 ... Image management.md => Part 5 - LXD 2.0--Image management.md} | 0 ... => Part 6 - LXD 2.0--Remote hosts and container migration.md} | 0 ...D 2.0: Docker in LXD.md => Part 7 - LXD 2.0--Docker in LXD.md} | 0 ...8 - LXD 2.0: LXD in LXD.md => Part 8 - LXD 2.0--LXD in LXD.md} | 0 ...2.0: Live migration.md => Part 9 - LXD 2.0--Live migration.md} | 0 ...duction to LXD.md => Part 1 - LXD 2.0--Introduction to LXD.md} | 0 ...LXD.md => Part 2 - LXD 2.0--Installing and configuring LXD.md} | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename sources/tech/LXD/{Part 3 - LXD 2.0: Your first LXD container.md => Part 3 - LXD 2.0--Your first LXD container.md} (100%) rename sources/tech/LXD/{Part 4 - LXD 2.0: Resource control.md => Part 4 - LXD 2.0--Resource control.md} (100%) rename sources/tech/LXD/{Part 5 - LXD 2.0: Image management.md => Part 5 - LXD 2.0--Image management.md} (100%) rename sources/tech/LXD/{Part 6 - LXD 2.0: Remote hosts and container migration.md => Part 6 - LXD 2.0--Remote hosts and container migration.md} (100%) rename sources/tech/LXD/{Part 7 - LXD 2.0: Docker in LXD.md => Part 7 - LXD 2.0--Docker in LXD.md} (100%) rename sources/tech/LXD/{Part 8 - LXD 2.0: LXD in LXD.md => Part 8 - LXD 2.0--LXD in LXD.md} (100%) rename sources/tech/LXD/{Part 9 - LXD 2.0: Live migration.md => Part 9 - LXD 2.0--Live migration.md} (100%) rename translated/tech/LXD/{Part 1 - LXD 2.0: Introduction to LXD.md => Part 1 - LXD 2.0--Introduction to LXD.md} (100%) rename translated/tech/LXD/{Part 2 - LXD 2.0: Installing and configuring LXD.md => Part 2 - LXD 2.0--Installing and configuring LXD.md} (100%) diff --git a/sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md b/sources/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md similarity index 100% rename from sources/tech/LXD/Part 3 - LXD 2.0: Your first LXD container.md rename to sources/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md diff --git a/sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md b/sources/tech/LXD/Part 4 - LXD 2.0--Resource control.md similarity index 100% rename from sources/tech/LXD/Part 4 - LXD 2.0: Resource control.md rename to sources/tech/LXD/Part 4 - LXD 2.0--Resource control.md diff --git a/sources/tech/LXD/Part 5 - LXD 2.0: Image management.md b/sources/tech/LXD/Part 5 - LXD 2.0--Image management.md similarity index 100% rename from sources/tech/LXD/Part 5 - LXD 2.0: Image management.md rename to sources/tech/LXD/Part 5 - LXD 2.0--Image management.md diff --git a/sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md b/sources/tech/LXD/Part 6 - LXD 2.0--Remote hosts and container migration.md similarity index 100% rename from sources/tech/LXD/Part 6 - LXD 2.0: Remote hosts and container migration.md rename to sources/tech/LXD/Part 6 - LXD 2.0--Remote hosts and container migration.md diff --git a/sources/tech/LXD/Part 7 - LXD 2.0: Docker in LXD.md b/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md similarity index 100% rename from sources/tech/LXD/Part 7 - LXD 2.0: Docker in LXD.md rename to sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md diff --git a/sources/tech/LXD/Part 8 - LXD 2.0: LXD in LXD.md b/sources/tech/LXD/Part 8 - LXD 2.0--LXD in LXD.md similarity index 100% rename from sources/tech/LXD/Part 8 - LXD 2.0: LXD in LXD.md rename to sources/tech/LXD/Part 8 - LXD 2.0--LXD in LXD.md diff --git a/sources/tech/LXD/Part 9 - LXD 2.0: Live migration.md b/sources/tech/LXD/Part 9 - LXD 2.0--Live migration.md similarity index 100% rename from sources/tech/LXD/Part 9 - LXD 2.0: Live migration.md rename to sources/tech/LXD/Part 9 - LXD 2.0--Live migration.md diff --git a/translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md b/translated/tech/LXD/Part 1 - LXD 2.0--Introduction to LXD.md similarity index 100% rename from translated/tech/LXD/Part 1 - LXD 2.0: Introduction to LXD.md rename to translated/tech/LXD/Part 1 - LXD 2.0--Introduction to LXD.md diff --git a/translated/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md b/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md similarity index 100% rename from translated/tech/LXD/Part 2 - LXD 2.0: Installing and configuring LXD.md rename to translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md From 73b06dc23e34ba2afde01eb3288894a06fe33fce Mon Sep 17 00:00:00 2001 From: ezio Date: Mon, 9 May 2016 10:35:29 +0800 Subject: [PATCH 459/582] =?UTF-8?q?=E5=9B=9E=E6=94=B6=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ng List of Raspberry Pi 2 Distributions.md | 68 ----------------- ...e Becomes Real With First Ubuntu Tablet.md | 73 ------------------- 2 files changed, 141 deletions(-) delete mode 100644 sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md delete mode 100644 sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md diff --git a/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md b/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md deleted file mode 100644 index 062fcae483..0000000000 --- a/sources/tech/20160218 Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions.md +++ /dev/null @@ -1,68 +0,0 @@ -Tizen 3.0 Joins Growing List of Raspberry Pi 2 Distributions -============================================================== - -Last week’s news that Tizen 3.0 has been ported to the Raspberry Pi 2 Model B is the latest example of how the year-old ARMv7 version of the Pi is attracting ports from more powerful Linux distributions, most notably Fedora, Ubuntu MATE, and Snappy. The [Samsung Open Source Group’s Tizen for Pi][1] project has been underway for several years, achieving several beta releases, and now the effort has shifted to the new Tizen 3.0. It’s still in beta, but now you can create builds for the Pi 2 using tools from the [Yocto][2] Project and [OpenEmbedded project][3]. - -Tizen 3.0 offers performance and security improvements, multiple-user and 64-bit support, and an Internet of Things (IoT) framework. Samsung, the principal backer of the [Linux Foundation hosted Tizen project][4], is using the Pi port to expand the base of developers using Tizen for IoT projects, according to an [IDG News Service post][5] that reported on the port. - -Although Samsung finally [shipped a Tizen-based][6] phone in India last summer, and Gear smartwatches continue to use Tizen, the main focus now appears to be on IoT. At CES last month, Samsung [announced][7] that all of its Tizen-based, 2016 Smart TVs will be able to act as SmartThings home automation hubs, letting users monitor the household while watching TV. - -### The Growing List of Pi Distros - -[Elinux.org][8] lists some 46 ARMv6-ready distributions that run on all the Raspberry Pi boards. A separate listing notes two ARMv7-only distros that require the ARMv7 Raspberry Pi 2: Ubuntu MATE, which replaces the resource-intensive Unity desktop with the Gnome 2.0 flavored MATE, and Windows 10 IoT Core. The prominent placement of a Microsoft distribution is not as controversial as one might have thought. To many younger Linux developers and casual Pi hackers, Microsoft is just another tech company, not so much the evil empire loathed by old-time Linux hackers. - -Windows 10 IoT Core isn’t the only non-Linux distro running on the Pi. There’s also the Unix-like FreeBSD and NetBSD, as well as the revived RISC OS Pi version of the old Acorn Computers OS. Some of the 48 operating systems on the Elinux.org list are incomplete, out-of-date, or dedicated to limited niches. [DistroWatch][9] offers a more manageable list of 20. - -The [Raspberry Pi Foundation][10] still prominently posts a download page for its homegrown, Debian-based Raspbian, in both standard and NOOBS packages. This lightweight distro is still the most popular and typically the highest rated Linux build for the Pi. The Scratch-ready distro is especially equally suited for desktop use and embedded hacking with home automation gear, robots, and other IoT gizmos. Raspbian recently [received an update][11] with an experimental OpenGL driver for doing hardware acceleration on the VideoCore IV GPU used with the Pi 2’s Broadcom BCM2836 SoC. - -The Pi Foundation also lists several [third-party downloads][12]. In addition to Windows 10 IoT Core and and Ubuntu MATE, the list includes the lightweight, transactionally focused [Snappy Ubuntu Core][13] for the Pi 2. Canonical is aiming Snappy at those who want an app platform and cloud integration in embedded devices like drones and IoT devices. Snappy also came out last week in a version designed for [Intel NUC mini-PCs][14]. The Pi Foundation also posts images for RISC OS and the education-focused PINET. There are also two media center distros related to KODI/XBMC: OSMC and OpenElec. - -In addition to its list of 48 released distros, Elinux.org lists several “announced” distros including Firefox OS, [openSUSE][15], Meego MER & XBMC, Puppy, RPi-Buildroot, and Aros. Missing, however, is Tizen, as well as newly announced ports such as [Manjaro-ARM][16] and the CentOS 7-based [CentOS AltArch 7][17] for the Pi 2, Banana Pi, and CubieTruck SBCs. - -### Android Still Pi in the Sky - -Elinux.org’s “announced” list also includes Android and a Miracast-like program called Android Transporter. People have been trying to port Android to the Pi for years; yet, even with the more suitable [Pi 2][18] shipping for a year now, Android is still pretty much a no-show. Android can run on lower-powered SoCs than the Pi 2’s quad-core, Cortex-A7, but the limited 1GB of RAM and the lack of GPU acceleration are big challenges. Perhaps Raspbian’s OpenGL driver could be ported to Android as well, although the Pi Foundation does not seem very interested in Android. - -There are several Android-for-Pi projects in the works, but without the foundation’s backing, there is still nothing close to a complete port. Projects include an [AOSP Marshmallow][19] patch-set from Peter Yoon, as well as a [RaspAnd][20] release based on the Ubuntu-based RaspEx, which makes use of the Aptoide package manager to load some Android 5.1 apps on a Pi 2. The [Razdroid project][21], which aims to tap into the secrets of Broadcom hardware acceleration, seems to have stalled. - -Most Rasp Pi users, however, appear more interested in [Ubuntu MATE][22], which was never optimized for ARMv6, and Fedora. For years, Pi users have run the lightweight spin-down of Fedora called Pidora, but with the Pi 2, they can now try the real thing. The Raspberry Pi Foundation has yet to post Fedora, but the recent [betas of the Pi 2 port][23] have received high marks. - -Other Linux distributions that regularly make Top Pi distro lists include Arch Linux, which unlike most ports from mature Linux distros, works just fine on ARMv6. A recent [TechRadar Top 5 list][24] includes several more niche distros in addition to Raspbian. These include the OSMC media player environment, RetroPie for playing classic games, OpenMediaVault for turning your Pi into a NAS, and Pi MusicBox, based on the Mopidy music streaming server. - -Beyond Ubuntu, Fedora, and Tizen, other distros, both arcane and general, are heading for the Pi 2, as well. The platform is rapidly expanding the boundaries of, as well as redefining the meaning of, desktop Linux. - ------------------------------------------------------------------------------- - -via: http://www.linux.com/news/embedded-mobile/mobile-linux/886126-tizen-30-joins-growing-list-of-raspberry-pi-2-distros - -作者:[Eric Brown][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.linux.com/community/forums/person/42808 -[1]:http://blogs.s-osg.org/bringing-tizen-to-a-raspberry-pi-2-near-you/ -[2]:https://www.yoctoproject.org/ -[3]:http://www.openembedded.org/wiki/Main_Page -[4]:https://www.tizen.org/ -[5]:http://www.cio.com/article/3031812/samsung-hopes-raspberry-pi-can-spread-tizen-os-adoption.html -[6]:http://www.linux.com/news/embedded-mobile/mobile-linux/837843-samsung-sells-a-million-tizen-phones-as-mozilla-rethinks-firefox-os -[7]:http://www.linux.com/news/embedded-mobile/mobile-linux/877879-linux-based-drones-upstage-other-mobile-gadgets-at-ces -[8]:http://elinux.org/RPi_Distributions -[9]:https://distrowatch.com/search.php?category=Raspberry+Pi -[10]:https://www.raspberrypi.org/ -[11]:http://news.softpedia.com/news/raspbian-gets-experimental-opengl-driver-gpu-now-used-for-acceleration-500152.shtml -[12]:https://www.raspberrypi.org/downloads/ -[13]:http://www.linux.com/news/embedded-mobile/mobile-linux/804659-ubuntu-snappy-leads-mobile-linux-migration-to-iot -[14]:https://insights.ubuntu.com/2016/02/10/ubuntu-core-is-available-for-the-intel-nuc/ -[15]:https://www.reddit.com/r/openSUSE/comments/3hxrz4/opensuse_on_a_raspberry_pi_2_armv7/ -[16]:http://www.linux-arm.info/index.php/1103-hands-on-more-adventures-with-manjaro-arm-for-the-raspberry-pi-2 -[17]:http://www.linux-arm.info/index.php/1054-centos-altarch-7-now-available-for-aarch64-powerpc64-powerpc8-le-and-armhfp -[18]:http://www.linux.com/news/embedded-mobile/mobile-linux/807087-faster-raspberry-pi-2-says-yes-to-ubuntu-and-windows-but-wheres-android -[19]:http://www.linux.com/news/embedded-mobile/mobile-linux/886126-tizen-30-joins-growing-list-of-raspberry-pi-2-distros#!topic/android-rpi/YW_gGr8wZkk -[20]:https://extonlinux.wordpress.com/2015/04/05/run-android-5-1-lollipop-exton-build-on-your-raspberry-pi-2/ -[21]:https://www.raspberrypi.org/forums/viewtopic.php?f=73&t=19106 -[22]:https://ubuntu-mate.org/raspberry-pi/ -[23]:https://chisight.wordpress.com/2015/10/19/fedora-22-or-23-on-raspberry-pi-2/ -[24]:http://www.techradar.com/us/news/software/5-of-the-most-popular-raspberry-pi-distros-1292537 diff --git a/sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md b/sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md deleted file mode 100644 index a7beb58156..0000000000 --- a/sources/tech/20160220 Convergence Becomes Real With First Ubuntu Tablet.md +++ /dev/null @@ -1,73 +0,0 @@ -Convergence Becomes Real With First Ubuntu Tablet -==================================================== - -![](http://itsfoss.com/wp-content/uploads/2016/02/front-landscape-1-e1454624669422.jpg) - -First Ubuntu tablet has been just announced. Canonical, parent company of Ubuntu, and Spanish hardware manufacturer BQ are all set to unveil the first Ubuntu tablet at Mobile World Congress, later this month. - -BQ is also the manufacturer of the [first Ubuntu Phone](http://itsfoss.com/ubuntu-phone-specification-release-date-pricing/). The partnership between Canonical and BQ extends to the tablet as well. - -Ubuntu has been running the [#reinvent campaign on social media](https://business.facebook.com/media/set/?set=a.656637987810305.1073741827.115098615297581&type=3) and the web ahead of the launch to generate curiosity over the tablet. But does an Ubuntu fan really need a dedicated campaign to know about such things? I think not. - -Ahead of this launch, specifications of the Ubuntu tablet and some teasers have been released. No surprises that the main focus has been on [convergence](https://insights.ubuntu.com/2015/10/20/ubuntus-path-to-convergence/). - -[Ubuntu Phone has demonstrated convergence](http://www.omgubuntu.co.uk/2015/02/new-video-shows-off-ubuntu-convergence-demoed-on-tablet-phone) several times in the past. Ubuntu tablet takes it to the next level. Just adding an HDMI cable makes it to a full-fledged desktop. All you need is a keyboard and a mouse. - -![](http://itsfoss.com/wp-content/uploads/2016/02/convergence-ubuntu-e1454624459103.jpg) - -## BQ Ubuntu tablet specification - -BQ will be using its trusted [Aquaris M10](http://www.bq.com/es/aquaris-m10) series to launch an Ubuntu edition. This is a strategy they used earlier with Ubuntu Phone where they launched an Ubuntu edition of their Aquaris e4.5 Android smartphone. - -Aquaris M10 boasts of a decent hardware and an enormous 10 inches screen size. A quick list of specification includes: - -- 10.1 inch multi-touch screen -- MediaTek Quad Core MT8163A processor up to 1.5GHz -- High capacity Li-Po battery (7280mAh) -- Full HD (1080p) camera for super-sharp video recording -- 2GB RAM and 16GB internal memory -- MicroSD slot for extra storage (up to 64GB) -- 12 megapixel camera with autofocus and dual flash -- Frontal speakers -- Micro HDMI slot -- Dimensions: 246 x 171 x 8.2mm -- Lightweight at only 470g - -These proposed specifications have been taken from Ubuntu’s official website which doesn’t match up with the Aquaris M10 specification on BQ website though. Ubuntu website shows a 12 MP camera while BQ website has 8 MP max. - -As you can see, first Ubuntu tablet is not really a power horse. In 2016, 2GB of RAM doesn’t seem to be sufficient. Moreover, the closed source MediaTek processors are another let down of the first Ubuntu Phone. - -However, a supposed price tag of Euro 260 (the Android version costs the same) is a positive factor here and considering its capability to converge into a desktop, 10 inches screen keeps it in the entry level Netbook section. - -The 470 g weight is another plus factor. - -## First look at Ubuntu tablet - -While Ubuntu tablet will be officially unveiled at Mobile World Congress, you can have a glimpse of its looks and functionings in the pictures below: - -![](http://itsfoss.com/wp-content/uploads/2016/02/tablet-overview-hero-300x182.png) - -## Price, availability and release date - -BQ Aquaris M10 Ubuntu edition will go on sale in the second quarter of the year 2016. Guessing from Ubuntu Phone experience, it should be available for Europe and UK first and later in other parts of the world. - -The price should be around 260-270 Euro. This too is an estimate based on the price of the Android version. - -## Up for the grab? - -I was not very convinced at the first Ubuntu Phone. However, I think Ubuntu tablet is a better device than the Ubuntu Phone. With Snappy coming in action, Ubuntu tablet has the potential to become a mobile device cum desktop. - -What do you think of it? - ------------------------------------------------------------------------------- - -via: http://itsfoss.com/ubuntu-tablet/ - -作者:[ABHISHEK][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/abhishek/ - From 30c8e2f46aba4cb58a4e99d7465a6390510c33cf Mon Sep 17 00:00:00 2001 From: tinyeyeser Date: Mon, 9 May 2016 11:30:31 +0800 Subject: [PATCH 460/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=20by?= =?UTF-8?q?=E5=B0=8F=E7=9C=BC=E5=84=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Doubly linked list in the Linux Kernel.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/translated/tech/20151122 Doubly linked list in the Linux Kernel.md b/translated/tech/20151122 Doubly linked list in the Linux Kernel.md index 631d918813..c11e968a18 100644 --- a/translated/tech/20151122 Doubly linked list in the Linux Kernel.md +++ b/translated/tech/20151122 Doubly linked list in the Linux Kernel.md @@ -5,7 +5,7 @@ Linux 内核里的数据结构——双向链表 -------------------------------------------------------------------------------- -Linux 内核自己实现了双向链表,可以在[include/linux/list.h](https://github.com/torvalds/linux/blob/master/include/linux/list.h)找到定义。我们将会从双向链表数据结构开始`内核的数据结构`。为什么?因为它在内核里使用的很广泛,你只需要在[free-electrons.com](http://lxr.free-electrons.com/ident?i=list_head) 检索一下就知道了。 +Linux 内核自己实现了双向链表,可以在[include/linux/list.h](https://github.com/torvalds/linux/blob/master/include/linux/list.h)找到定义。我们将会从双向链表数据结构开始介绍`内核里的数据结构`。为什么?因为它在内核里使用的很广泛,你只需要在[free-electrons.com](http://lxr.free-electrons.com/ident?i=list_head) 检索一下就知道了。 首先让我们看一下在[include/linux/types.h](https://github.com/torvalds/linux/blob/master/include/linux/types.h) 里的主结构体: @@ -25,7 +25,7 @@ struct GList { }; ``` -通常来说一个链表会包含一个指向某个项目的指针。但是内核的实现并没有这样做。所以问题来了:`链表在哪里保存数据呢?`。实际上内核里实现的链表实际上是`侵入式链表`。侵入式链表并不在节点内保存数据-节点仅仅包含指向前后节点的指针,然后把数据是附加到链表的。这就使得这个数据结构是通用的,使用起来就不需要考虑节点数据的类型了。 +通常来说一个链表结构会包含一个指向某个项目的指针。但是Linux内核中的链表实现并没有这样做。所以问题来了:`链表在哪里保存数据呢?`。实际上,内核里实现的链表是`侵入式链表`。侵入式链表并不在节点内保存数据-它的节点仅仅包含指向前后节点的指针,以及指向链表节点数据部分的指针——数据就是这样附加在链表上的。这就使得这个数据结构是通用的,使用起来就不需要考虑节点数据的类型了。 比如: @@ -36,7 +36,7 @@ struct nmi_desc { }; ``` -让我们看几个例子来理解一下在内核里是如何使用`list_head` 的。如上所述,在内核里有实在很多不同的地方用到了链表。我们来看一个在杂项字符驱动里面的使用的例子。在 [drivers/char/misc.c](https://github.com/torvalds/linux/blob/master/drivers/char/misc.c) 的杂项字符驱动API 被用来编写处理小型硬件和虚拟设备的小驱动。这些驱动共享相同的主设备号: +让我们看几个例子来理解一下在内核里是如何使用`list_head` 的。如上所述,在内核里有很多很多不同的地方都用到了链表。我们来看一个在杂项字符驱动里面的使用的例子。在 [drivers/char/misc.c](https://github.com/torvalds/linux/blob/master/drivers/char/misc.c) 的杂项字符驱动API 被用来编写处理小型硬件或虚拟设备的小驱动。这些驱动共享相同的主设备号: ```C #define MISC_MAJOR 10 @@ -84,7 +84,7 @@ struct miscdevice }; ``` -可以看到结构体的第四个变量`list` 是所有注册过的设备的链表。在源代码文件的开始可以看到这个链表的定义: +可以看到结构体`miscdevice`的第四个变量`list` 是所有注册过的设备的链表。在源代码文件的开始可以看到这个链表的定义: ```C static LIST_HEAD(misc_list); @@ -103,7 +103,7 @@ static LIST_HEAD(misc_list); #define LIST_HEAD_INIT(name) { &(name), &(name) } ``` -现在来看看注册杂项设备的函数`misc_register`。它在开始就用 `INIT_LIST_HEAD` 初始化了`miscdevice->list`。 +现在来看看注册杂项设备的函数`misc_register`。它在开始就用函数 `INIT_LIST_HEAD` 初始化了`miscdevice->list`。 ```C INIT_LIST_HEAD(&misc->list); @@ -119,13 +119,13 @@ static inline void INIT_LIST_HEAD(struct list_head *list) } ``` -在函数`device_create` 创建了设备后我们就用下面的语句将设备添加到设备链表: +接下来,在函数`device_create` 创建了设备后,我们就用下面的语句将设备添加到设备链表: ``` list_add(&misc->list, &misc_list); ``` -内核文件`list.h` 提供了项链表添加新项的API 接口。我们来看看它的实现: +内核文件`list.h` 提供了向链表添加新项的API 接口。我们来看看它的实现: ```C @@ -138,8 +138,8 @@ static inline void list_add(struct list_head *new, struct list_head *head) 实际上就是使用3个指定的参数来调用了内部函数`__list_add`: * new - 新项。 -* head - 新项将会被添加到`head`之前. -* head->next - `head` 之后的项。 +* head - 新项将会插在`head`的后面 +* head->next - 插入前,`head` 后面的项。 `__list_add`的实现非常简单: @@ -155,9 +155,9 @@ static inline void __list_add(struct list_head *new, } ``` -我们会在`prev`和`next` 之间添加一个新项。所以我们用宏`LIST_HEAD_INIT`定义的`misc` 链表会包含指向`miscdevice->list` 的向前指针和向后指针。 +这里,我们在`prev`和`next` 之间添加了一个新项。所以我们开始时用宏`LIST_HEAD_INIT`定义的`misc` 链表会包含指向`miscdevice->list` 的向前指针和向后指针。 -这里有一个问题:如何得到列表的内容呢?这里有一个特殊的宏: +这儿还有一个问题:如何得到列表的内容呢?这里有一个特殊的宏: ```C #define list_entry(ptr, type, member) \ @@ -166,7 +166,7 @@ static inline void __list_add(struct list_head *new, 使用了三个参数: -* ptr - 指向链表头的指针; +* ptr - 指向结构 `list_head` 的指针; * type - 结构体类型; * member - 在结构体内类型为`list_head` 的变量的名字; @@ -207,7 +207,7 @@ int main() { 最终会打印`2` -下一点就是`typeof`,它也很简单。就如你从名字所理解的,它仅仅返回了给定变量的类型。当我第一次看到宏`container_of`的实现时,让我觉得最奇怪的就是`container_of`中的0.实际上这个指针巧妙的计算了从结构体特定变量的偏移,这里的`0`刚好就是位宽里的零偏移。让我们看一个简单的例子: +下一点就是`typeof`,它也很简单。就如你从名字所理解的,它仅仅返回了给定变量的类型。当我第一次看到宏`container_of`的实现时,让我觉得最奇怪的就是表达式`((type *)0)`中的0.实际上这个指针巧妙的计算了从结构体特定变量的偏移,这里的`0`刚好就是位宽里的零偏移。让我们看一个简单的例子: ```C #include @@ -226,13 +226,13 @@ int main() { 结果显示`0x5`。 -下一个宏`offsetof` 会计算从结构体的某个变量的相对于结构体起始地址的偏移。它的实现和上面类似: +下一个宏`offsetof`会计算从结构体起始地址到某个给定结构字段的偏移。它的实现和上面类似: ```C #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ``` -现在我们来总结一下宏`container_of`。只需要知道结构体里面类型为`list_head` 的变量的名字和结构体容器的类型,它可以通过结构体的变量`list_head`获得结构体的起始地址。在宏定义的第一行,声明了一个指向结构体成员变量`ptr`的指针`__mptr`,并且把`ptr` 的地址赋给它。现在`ptr` 和`__mptr` 指向了同一个地址。从技术上讲我们并不需要这一行,但是它可以方便的进行类型检查。第一行保证了特定的结构体(参数`type`)包含成员变量`member`。第二行代码会用宏`offsetof`计算成员变量相对于结构体起始地址的偏移,然后从结构体的地址减去这个偏移,最后就得到了结构体。 +现在我们来总结一下宏`container_of`。只需给定结构体中`list_head`类型 字段的地址、名字和结构体容器的类型,它就可以返回结构体的起始地址。在宏定义的第一行,声明了一个指向结构体成员变量`ptr`的指针`__mptr`,并且把`ptr` 的地址赋给它。现在`ptr` 和`__mptr` 指向了同一个地址。从技术上讲我们并不需要这一行,但是它可以方便地进行类型检查。第一行保证了特定的结构体(参数`type`)包含成员变量`member`。第二行代码会用宏`offsetof`计算成员变量相对于结构体起始地址的偏移,然后从结构体的地址减去这个偏移,最后就得到了结构体。 当然了`list_add` 和 `list_entry`不是``提供的唯一功能。双向链表的实现还提供了如下API: From 3db59a8d65e75ee6291c67a556bc9f11494232d9 Mon Sep 17 00:00:00 2001 From: zpl1025 Date: Mon, 9 May 2016 11:44:35 +0800 Subject: [PATCH 461/582] [translating] 20160502 The intersection of Drupal, IoT, and open hardware.md --- ...0160502 The intersection of Drupal, IoT, and open hardware.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md b/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md index 751024fb3a..43ee75fae6 100644 --- a/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md +++ b/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md @@ -1,3 +1,4 @@ +zpl1025 The intersection of Drupal, IoT, and open hardware ======================================================= From bcb7787beec5881741db0cbde0efb7afbfb253cf Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 9 May 2016 10:19:43 +0800 Subject: [PATCH 462/582] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E6=88=90?= =?UTF-8?q?=E5=91=98=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 76 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 46 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 7fbc7a5f36..cfa5aee47e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ 简介 ------------------------------- -LCTT是“Linux中国”([http://linux.cn/](http://linux.cn/))的翻译组,负责从国外优秀媒体翻译Linux相关的技术、资讯、杂文等内容。 +LCTT是“Linux中国”([https://linux.cn/](https://linux.cn/))的翻译组,负责从国外优秀媒体翻译Linux相关的技术、资讯、杂文等内容。 -LCTT已经拥有近百余名活跃成员,并欢迎更多的Linux志愿者加入我们的团队。 +LCTT已经拥有几百名活跃成员,并欢迎更多的Linux志愿者加入我们的团队。 ![logo](http://img.linux.net.cn/static/image/common/lctt_logo.png) @@ -52,13 +52,15 @@ LCTT的组成 * 2015/04/19 发起 LFS-BOOK-7.7-systemd 项目。 * 2015/06/09 提升ictlyh和dongfengweixiao为Core Translators成员。 * 2015/11/10 提升strugglingyouth、FSSlc、Vic020、alim0x为Core Translators成员。 +* 2016/05/09 提升PurlingNayuki为校对。 活跃成员 ------------------------------- 目前 TP 活跃成员有: -- CORE @wxy, -- CORE @DeadFire, +- Leader @wxy, +- Source @oska874, +- Proofreader @PurlingNayuki, - CORE @geekpi, - CORE @GOLinux, - CORE @ictlyh, @@ -71,6 +73,7 @@ LCTT的组成 - CORE @Vic020, - CORE @dongfengweixiao, - CORE @alim0x, +- Senior @DeadFire, - Senior @reinoir, - Senior @tinyeyeser, - Senior @vito-L, @@ -80,41 +83,42 @@ LCTT的组成 - ZTinoZ, - theo-l, - luoxcat, -- disylee, +- martin2011qi, - wi-cuckoo, +- disylee, - haimingfg, - KayGuoWhu, - wwy-hust, -- martin2011qi, -- cvsher, +- felixonmars, - su-kaiyao, +- ivo-wang, +- GHLandy, +- cvsher, +- wyangsun, +- DongShuaike, - flsf, - SPccman, - Stevearzh +- mr-ping, - Linchenguang, -- oska874 - Linux-pdz, - 2q1w2007, -- felixonmars, -- wyangsun, -- MikeCoder, -- mr-ping, -- xiqingongzi - H-mudcup, -- zhangboyue, +- cposture, +- xiqingongzi, - goreliu, -- DongShuaike, +- NearTan, - TxmszLou, - ZhouJ-sh, - wangjiezhe, -- NearTan, - icybreaker, - shipsw, - johnhoow, +- soooogreen, - linuhap, -- boredivan, - blueabysm, -- liaoishere, +- boredivan, +- name1e5s, - yechunxiao19, - l3b2w1, - XLCYun, @@ -122,43 +126,55 @@ LCTT的组成 - tenght, - coloka, - luoyutiantang, -- yupmoon, +- sonofelice, - jiajia9linuxer, - scusjs, - tnuoccalanosrep, - woodboow, - 1w2b3l, +- JonathanKang, - crowner, - mtunique, - dingdongnigetou, - CNprober, -- JonathanKang, -- Medusar, - hyaocuk, - szrlee, +- KnightJoker, - Xuanwo, - nd0104, +- jerryling315, - xiaoyu33, - guodongxiaren, -- zzlyzq, -- yujianxuechuan, -- ailurus1991, +- ynmlml, +- kylepeng93, - ggaaooppeenngg, - Ricky-Gong, +- zky001, +- Flowsnow, - lfzark, - 213edu, - Tanete, - liuaiping, -- jerryling315, +- bestony, +- Timeszoro, +- rogetfan, +- itsang, +- JeffDing, +- Yuking-net, + +- MikeCoder, +- zhangboyue, +- liaoishere, +- yupmoon, +- Medusar, +- zzlyzq, +- yujianxuechuan, +- ailurus1991, - tomatoKiller, - stduolc, - shaohaolin, -- Timeszoro, -- rogetfan, - FineFan, - kingname, -- jasminepeng, -- JeffDing, - CHINAANSHE, (按提交行数排名前百) @@ -173,7 +189,7 @@ LFS 项目活跃成员有: - @KevinSJ - @Yuking-net -(更新于2015/11/29) +(更新于2016/05/09) 谢谢大家的支持! From fa862ff68404f9f1463db5df73edd9a1e2c31682 Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 9 May 2016 11:49:30 +0800 Subject: [PATCH 463/582] PUB:20160204 An Introduction to SELinux @alim0x --- .../20160204 An Introduction to SELinux.md | 127 ++++++++++++++++ .../20160204 An Introduction to SELinux.md | 139 ------------------ 2 files changed, 127 insertions(+), 139 deletions(-) create mode 100644 published/20160204 An Introduction to SELinux.md delete mode 100644 translated/tech/20160204 An Introduction to SELinux.md diff --git a/published/20160204 An Introduction to SELinux.md b/published/20160204 An Introduction to SELinux.md new file mode 100644 index 0000000000..777a4094a0 --- /dev/null +++ b/published/20160204 An Introduction to SELinux.md @@ -0,0 +1,127 @@ +SELinux 入门 +=============================== + +回到 Kernel 2.6 时代,那时候引入了一个新的安全系统,用以提供访问控制安全策略的机制。这个系统就是 [Security Enhanced Linux (SELinux)][1],它是由[美国国家安全局(NSA)][2]贡献的,它为 Linux 内核子系统引入了一个健壮的强制控制访问(Mandatory Access Control)架构。 + +如果你在之前的 Linux 生涯中都禁用或忽略了 SELinux,这篇文章就是专门为你写的:这是一篇对存在于你的 Linux 桌面或服务器之下的 SELinux 系统的介绍,它能够限制权限,甚至消除程序或守护进程的脆弱性而造成破坏的可能性。 + +在我开始之前,你应该已经了解的是 SELinux 主要是红帽 Red Hat Linux 以及它的衍生发行版上的一个工具。类似地, Ubuntu 和 SUSE(以及它们的衍生发行版)使用的是 AppArmor。SELinux 和 AppArmor 有显著的不同。你可以在 SUSE,openSUSE,Ubuntu 等等发行版上安装 SELinux,但这是项难以置信的挑战,除非你十分精通 Linux。 + +说了这么多,让我来向你介绍 SELinux。 + +### DAC vs. MAC + +Linux 上传统的访问控制标准是自主访问控制(Discretionary Access Control,DAC)。在这种形式下,一个软件或守护进程以 User ID(UID)或 Set owner User ID(SUID)的身份运行,并且拥有该用户的目标(文件、套接字、以及其它进程)权限。这使得恶意代码很容易运行在特定权限之下,从而取得访问关键的子系统的权限。 + +另一方面,强制访问控制(Mandatory Access Control,MAC)基于保密性和完整性强制信息的隔离以限制破坏。该限制单元独立于传统的 Linux 安全机制运作,并且没有超级用户的概念。 + +### SELinux 如何工作 + +考虑一下 SELinux 的相关概念: + +- 主体(Subjects) +- 目标(Objects) +- 策略(Policy) +- 模式(Mode) + +当一个主体(Subject,如一个程序)尝试访问一个目标(Object,如一个文件),SELinux 安全服务器(SELinux Security Server,在内核中)从策略数据库(Policy Database)中运行一个检查。基于当前的模式(mode),如果 SELinux 安全服务器授予权限,该主体就能够访问该目标。如果 SELinux 安全服务器拒绝了权限,就会在 /var/log/messages 中记录一条拒绝信息。 + +听起来相对比较简单是不是?实际上过程要更加复杂,但为了简化介绍,只列出了重要的步骤。 + +### 模式 + +SELinux 有三个模式(可以由用户设置)。这些模式将规定 SELinux 在主体请求时如何应对。这些模式是: + +- Enforcing (强制)— SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的访问 +- Permissive (宽容)— SELinux 策略不强制执行,不实际拒绝访问,但会有拒绝信息写入日志 +- Disabled (禁用)— 完全禁用 SELinux + +![](https://www.linux.com/images/stories/66866/jack2-selinux_a.png) + +*图 1:getenforce 命令显示 SELinux 的状态是 Enforcing 启用状态。* + +默认情况下,大部分系统的 SELinux 设置为 Enforcing。你要如何知道你的系统当前是什么模式?你可以使用一条简单的命令来查看,这条命令就是 `getenforce`。这个命令用起来难以置信的简单(因为它仅仅用来报告 SELinux 的模式)。要使用这个工具,打开一个终端窗口并执行 `getenforce` 命令。命令会返回 Enforcing、Permissive,或者 Disabled(见上方图 1)。 + +设置 SELinux 的模式实际上很简单——取决于你想设置什么模式。记住:**永远不推荐关闭 SELinux**。为什么?当你这么做了,就会出现这种可能性:你磁盘上的文件可能会被打上错误的权限标签,需要你重新标记权限才能修复。而且你无法修改一个以 Disabled 模式启动的系统的模式。你的最佳模式是 Enforcing 或者 Permissive。 + +你可以从命令行或 `/etc/selinux/config` 文件更改 SELinux 的模式。要从命令行设置模式,你可以使用 `setenforce` 工具。要设置 Enforcing 模式,按下面这么做: + +1. 打开一个终端窗口 +2. 执行 `su` 然后输入你的管理员密码 +3. 执行 `setenforce 1` +4. 执行 `getenforce` 确定模式已经正确设置(图 2) + +![](https://www.linux.com/images/stories/66866/jack-selinux_b.png) + +*图 2:设置 SELinux 模式为 Enforcing。* + +要设置模式为 Permissive,这么做: + +1. 打开一个终端窗口 +2. 执行 `su` 然后输入你的管理员密码 +3. 执行 `setenforce 0` +4. 执行 `getenforce` 确定模式已经正确设置(图 3) + +![](https://www.linux.com/images/stories/66866/jack-selinux_c.png) + +*图 3:设置 SELinux 模式为 Permissive。* + +注:通过命令行设置模式会覆盖 SELinux 配置文件中的设置。 + +如果你更愿意在 SELinux 命令文件中设置模式,用你喜欢的编辑器打开那个文件找到这一行: + + SELINUX=permissive + +你可以按你的偏好设置模式,然后保存文件。 + +还有第三种方法修改 SELinux 的模式(通过 bootloader),但我不推荐新用户这么做。 + +### 策略类型 + +SELinux 策略有两种: + +- Targeted — 只有目标网络进程(dhcpd,httpd,named,nscd,ntpd,portmap,snmpd,squid,以及 syslogd)受保护 +- Strict — 对所有进程完全的 SELinux 保护 + +你可以在 `/etc/selinux/config` 文件中修改策略类型。用你喜欢的编辑器打开这个文件找到这一行: + + SELINUXTYPE=targeted + +修改这个选项为 targeted 或 strict 以满足你的需求。 + +### 检查完整的 SELinux 状态 + +有个方便的 SELinux 工具,你可能想要用它来获取你启用了 SELinux 的系统的详细状态报告。这个命令在终端像这样运行: + + sestatus -v + +你可以看到像图 4 那样的输出。 + +![](https://www.linux.com/images/stories/66866/jack-selinux_d.png) + +*图 4:sestatus -v 命令的输出。* + +### 仅是皮毛 + +和你预想的一样,我只介绍了 SELinux 的一点皮毛。SELinux 的确是个复杂的系统,想要更扎实地理解它是如何工作的,以及了解如何让它更好地为你的桌面或服务器工作需要更加地深入学习。我的内容还没有覆盖到疑难解答和创建自定义 SELinux 策略。 + +SELinux 是所有 Linux 管理员都应该知道的强大工具。现在已经向你介绍了 SELinux,我强烈推荐你回到 Linux.com(当有更多关于此话题的文章发表的时候)或看看 [NSA SELinux 文档][3] 获得更加深入的指南。 + +LCTT - 相关阅读:[鸟哥的 Linux 私房菜——程序管理与 SELinux 初探][4] + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/learn/docs/ldp/883671-an-introduction-to-selinux + +作者:[Jack Wallen][a] +译者:[alim0x](https://github.com/alim0x) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.linux.com/community/forums/person/93 +[1]: http://selinuxproject.org/page/Main_Page +[2]: https://www.nsa.gov/research/selinux/ +[3]: https://www.nsa.gov/research/selinux/docs.shtml +[4]: http://vbird.dic.ksu.edu.tw/linux_basic/0440processcontrol_5.php diff --git a/translated/tech/20160204 An Introduction to SELinux.md b/translated/tech/20160204 An Introduction to SELinux.md deleted file mode 100644 index bc82106189..0000000000 --- a/translated/tech/20160204 An Introduction to SELinux.md +++ /dev/null @@ -1,139 +0,0 @@ -An Introduction to SELinux -=============================== - -![](https://www.linux.com/images/stories/66866/jack2-selinux_a.png) - ->图 1:getenforce 命令显示 SELinux 的状态是 Enforcing 启用状态。 - -回到 Kernel 2.6 时代,那时候引入了一个新的安全系统,用以提供访问控制安全策略的机制。这个系统就是 [Security Enhanced Linux (SELinux)][1],它是由[美国国家安全局(NSA)][2]引入的,合并进 Linux 内核子系统的强制控制访问架构实现。 - -如果你在你整个 Linux 生涯中禁用或忽略 SELinux,这篇文章就是为你量身定制的——对存在于你的 Linux 桌面或服务器之下的 SELinux 系统的介绍,它能够限制权限,甚至消除程序或守护进程的妥协而造成破坏的可能性。 - -在我开始之前,你应该了解的是 SELinux 主要是红帽 Red Hat Linux 以及它的衍生发行版的一个工具。这就类似 Ubuntu 和 SUSE(以及它们的衍生发行版)使用 AppArmor 一样。SELinux 和 AppArmor 有显著的不同。你可以在 SUSE,openSUSE,Ubuntu 等等发行版上安装 SELinux,但这是项难以置信的挑战,除非你十分精通 Linux。 - -说了这么多,让我来向你介绍 SELinux。 - -### DAC vs. MAC - -Linux 上保守的访问控制标准是自主访问控制(Discretionary Access Control,DAC)。在这种形式下,一个软件或守护进程运行在 User ID(UID)或 Set User ID(SUID)下,并且拥有该用户的目标权限(文件,套接字,以及其它进程)。这使得恶意代码很容易运行在特定权限之下,从而取得访问关键的子系统的权限。 - -另一方面,强制访问控制(Mandatory Access Control,MAC)基于保密性和完整性强制信息的隔离以限制破坏。限制单元相对于传统的 Linux 安全机制独立运作,并且没有超级用户的概念。 - -### SELinux 如何工作 - -考虑一下 SELinux 的相关概念: - -- Subjects 主体 - -- Objects 目标 - -- Policy 策略 - -- Mode 模式 - -当一个主体(Subject,如一个程序)尝试访问一个目标(Object,如一个文件),SELinux 安全服务器(SELinux Security Server,在内核中)从策略数据库中运行一个检查。基于当前的模式,如果 SELinux 安全服务器授予权限,该主体就能够访问该目标。如果 SELinux 安全服务器拒绝了权限,一条拒绝信息会被记录到 /var/log/messages。 - -听起来相对比较简单是不是?实际上过程要更加复杂,但为了简单介绍,这些是重要的步骤。 - -### 模式 - -SELinux 有三个模式(可以由用户设置)。这些模式将规定 SELinux 在主体请求时如何应对。这些模式是: - -- Enforcing — SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的访问 - -- Permissive — SELinux 策略不强制执行,不实际拒绝访问,但会有警告信息且拒绝会写入日志 - -- Disabled — 完全禁用 SELinux - -默认情况下,大部分系统的 SELinux 设置为 Enforcing。你要如何知道你的系统当前是什么模式?你可以使用一条简单的命令来查看,这条命令就是 getenforce。这个命令用起来难以置信的简单(因为它仅仅用来报告 SELinux 的模式)。要使用这个工具,打开一个终端窗口并执行 getenforce 命令。命令会返回 Enforcing,Permissive,或者 Disabled(见上方图 1)。 - -设置 SELinux 的模式实际上很简单——取决于你想设置什么模式。记住:永远不推荐关闭 SELinux。为什么?当你这么做了,你就有了这种可能性:你磁盘上的文件可能会被打上错误的标签,需要你重新标签来修复。而且你无法修改一个以 Disabled 模式启动的系统的模式。你的最佳模式是 Enforcing 或者 Permissive。 - -你可以从命令行或 /etc/selinux/config 文件更改 SELinux 的模式。要从命令行设置模式,你可以使用 setenforce 工具。要设置 Enforcing 模式,按下面这么做: - -1. 打开一个终端窗口 - -2. 执行 su 然后输入你的管理员密码 - -3. 执行 setenforce 1 - -4. 执行 getenforce 确定模式已经正确设置(图 2) - -![](https://www.linux.com/images/stories/66866/jack-selinux_b.png) - ->图 2:设置 SELinux 模式为 Enforcing。 - -要设置模式为 Permissive,这么做: - -1. 打开一个终端窗口 - -2. 执行 su 然后输入你的管理员密码 - -3. 执行 setenforce 0 - -4. 执行 getenforce 确定模式已经正确设置(图 3) - -![](https://www.linux.com/images/stories/66866/jack-selinux_c.png) - ->图 3:设置 SELinux 模式为 Permissive. - -注:通过命令行设置模式会覆盖 SELinux 配置文件中的设置。 - -如果你更愿意在 SELinux 命令文件中设置模式,用你喜欢的编辑器打开那个文件找到这一行: - ->SELINUX=permissive - -你可以按你的偏好设置模式,然后保存文件。 - -还有第三种方法修改 SELinux 的模式(通过 bootloader),但我不推荐新用户这么做。 - -### 策略类型 - -SELinux 策略有两种: - -- Targeted — 只有目标网络进程(dhcpd,httpd,named,nscd,ntpd,portmap,snmpd,squid,以及 syslogd)受保护 - -- Strict — 对所有进程完全的 SELinux 保护 - -你可以在 /etc/selinux/config 文件中修改策略类型。用你喜欢的编辑器打开这个文件找到这一行: - ->SELINUXTYPE=targeted - -修改这个选项为 targeted 或 strict 以满足你的需求。 - -### 检查完整的 SELinux 状态 - -有个方便的 SELinux 工具,你可能想要用它来获取你启用了 SELinux 的系统的详细状态报告。这个命令在终端像这样运行: - ->sestatus -v - -你可以看到像图 4 那样的输出。 - -![](https://www.linux.com/images/stories/66866/jack-selinux_d.png) - ->图 4:sestatus -v 命令的输出。 - -### 仅是皮毛 - -和你预想的一样,我只介绍了 SELinux 的一点皮毛。SELinux 的确是个复杂的系统,想要更扎实地理解它是如何工作的,以及了解如何让它更好地为你的桌面或服务器工作需要更加地深入。我的内容还没有覆盖到疑难解答和创建自定义 SELinux 策略。 - -SELinux 是所有 Linux 管理员都应该知道的强大工具。现在已经向你介绍了 SELinux,我强烈推荐你回到 Linux.com(当有更多关于此话题的文章发表的时候)或看看 [NSA SELinux 文档][3] 获得更加深入的指南。 - -LCTT - 相关阅读:[鸟哥的 Linux 私房菜——程序管理与 SELinux 初探][4] - - --------------------------------------------------------------------------------- - -via: https://www.linux.com/learn/docs/ldp/883671-an-introduction-to-selinux - -作者:[Jack Wallen][a] -译者:[alim0x](https://github.com/alim0x) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://www.linux.com/community/forums/person/93 -[1]: http://selinuxproject.org/page/Main_Page -[2]: https://www.nsa.gov/research/selinux/ -[3]: https://www.nsa.gov/research/selinux/docs.shtml -[4]: http://vbird.dic.ksu.edu.tw/linux_basic/0440processcontrol_5.php From 64d68242cb87e5c4cd87499f8190d40226ec2e0c Mon Sep 17 00:00:00 2001 From: tinyeyeser Date: Mon, 9 May 2016 14:53:51 +0800 Subject: [PATCH 464/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=20by?= =?UTF-8?q?=E5=B0=8F=E7=9C=BC=E5=84=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20151122 Doubly linked list in the Linux Kernel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20151122 Doubly linked list in the Linux Kernel.md b/translated/tech/20151122 Doubly linked list in the Linux Kernel.md index c11e968a18..1a5772320e 100644 --- a/translated/tech/20151122 Doubly linked list in the Linux Kernel.md +++ b/translated/tech/20151122 Doubly linked list in the Linux Kernel.md @@ -253,6 +253,6 @@ int main() { via: https://github.com/0xAX/linux-insides/edit/master/DataStructures/dlist.md 译者:[Ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Mr小眼儿](https://github.com/tinyeyeser) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ea9da368369434f87c40b4f17607c1d477a54379 Mon Sep 17 00:00:00 2001 From: tinyeyeser Date: Mon, 9 May 2016 15:59:42 +0800 Subject: [PATCH 465/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=20by?= =?UTF-8?q?=E5=B0=8F=E7=9C=BC=E5=84=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Tape Managements Commands For Sysadmins.md | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/translated/tech/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md b/translated/tech/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md index f115444665..1985d63960 100644 --- a/translated/tech/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md +++ b/translated/tech/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md @@ -1,6 +1,6 @@ -15条给系统管理员的实用 Linux/Unix 磁带管理命令 +给系统管理员的15条实用 Linux/Unix 磁带管理命令 ================================================================================ -磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台。通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制。你可以将所有的数据备份到磁盘(也许是云中)和磁带设备。在这个教程中你将会了解到: +磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台。通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制。强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中。在本教程中你将会了解到: - 磁带设备名 - 管理磁带驱动器的基本命令 @@ -8,12 +8,13 @@ ### 为什么备份? ### -一个备份设备是很重要的: +一个备份计划对定期备份文件来说很有必要,如果你宁愿选择不备份,那么丢失重要数据的风险会大大增加。有了备份,你就有了从磁盘故障中恢复的能力。备份还可以帮助你抵御: -- 从磁盘故障中恢复的能力 - 意外的文件删除 - 文件或文件系统损坏 - 服务器完全毁坏,包括由于火灾或其他问题导致的同盘备份毁坏 +- 硬盘或SSD崩溃 +- 病毒或勒索软件破坏或删除文件 你可以使用磁带归档备份整个服务器并将其离线存储。 @@ -23,7 +24,7 @@ 图01:磁带文件标记 -每个磁带设备能存储多个备份文件。磁带备份文件通过 cpio,tar,dd 等命令创建。但是,磁带设备可以由各种程序打开,写入数据,并关闭。你可以存储若干备份(磁带文件)到一个物理磁带上。在每个磁带文件之间有个“磁带文件标记”。这个是用来指示一个物理磁带上磁带文件的结尾以及另一个文件的开始。你需要使用 mt 命令来定位磁带(快进,倒带和标记)。 +每个磁带设备能存储多个备份文件。磁带备份文件通过 cpio,tar,dd 等命令创建。同时,磁带设备可以由多种程序打开、写入数据、及关闭。你可以存储若干备份(磁带文件)到一个物理磁带上。在每个磁带文件之间有个“磁带文件标记”。这用来指示一个物理磁带上磁带文件的结尾以及另一个文件的开始。你需要使用 mt 命令来定位磁带(快进,倒带和标记)。 #### 磁带上的数据是如何存储的 #### @@ -87,7 +88,7 @@ 图03:Linux 服务器上已安装的磁带设备 -### mt 命令实例 ### +### mt 命令示例 ### 在 Linux 和类Unix系统上,mt 命令用来控制磁带驱动器的操作,比如查看状态或查找磁带上的文件或写入磁带控制标记。下列大多数命令需要作为 root 用户执行。语法如下: @@ -111,7 +112,7 @@ mt -f /dev/nsa0 status #FreeBSD mt -f /dev/rmt/1 status #Unix unity 1 也就是 tape device no. 1 -你可以像下面一样使用 shell 循环调查系统并定位所有的磁带驱动器: +你可以像下面一样使用 shell 循环语句遍历一个系统并定位其所有的磁带驱动器: for d in 0 1 2 3 4 5 do @@ -133,7 +134,7 @@ mt -f /dev/mt/0 off mt -f /dev/st0 eject -### 4:擦除磁带(倒带,在可以的情况下卸载磁带) ### +### 4:擦除磁带(倒带,在支持的情况下卸载磁带) ### mt erase mt -f /dev/st0 erase #Linux @@ -179,7 +180,7 @@ bsfm 后退指定的文件标记数目。磁带定位在下一个文件的第一块。 - asf The tape is positioned at the beginning of the count file. Positioning is done by first rewinding the tape and then spacing forward over count filemarks.磁带定位在 + asf 磁带定位在指定文件标记数目的开始位置。定位通过先倒带,再前进指定的文件标记数目来实现。 fsr 前进指定的记录数。 @@ -413,7 +414,7 @@ via: http://www.cyberciti.biz/hardware/unix-linux-basic-tape-management-commands 作者:Vivek Gite 译者:[alim0x](https://github.com/alim0x) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Mr小眼儿](https://github.com/tinyeyeser) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 0f73a1098ef6b7a3bc3155d754ebeb72a65cb546 Mon Sep 17 00:00:00 2001 From: hkurj <663831938@qq.com> Date: Mon, 9 May 2016 21:35:09 +0800 Subject: [PATCH 466/582] hkurj translating --- ...60415 A four year, action-packed experience with Wikipedia.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md b/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md index 9c45c209e9..4621c50a97 100644 --- a/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md +++ b/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md @@ -1,3 +1,4 @@ +hkurj translating A four year, action-packed experience with Wikipedia ======================================================= From 9243e460525bcf3a2a99b36df0a77d3445c63c29 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 10 May 2016 05:13:47 +0800 Subject: [PATCH 467/582] PUB:20151202 8 things to do after installing openSUSE Leap 42.1 @alim0x @carolinewuyan --- ... do after installing openSUSE Leap 42.1.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) rename {translated/tech => published}/20151202 8 things to do after installing openSUSE Leap 42.1.md (87%) diff --git a/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md b/published/20151202 8 things to do after installing openSUSE Leap 42.1.md similarity index 87% rename from translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md rename to published/20151202 8 things to do after installing openSUSE Leap 42.1.md index ef5434da3d..38cefbf356 100644 --- a/translated/tech/20151202 8 things to do after installing openSUSE Leap 42.1.md +++ b/published/20151202 8 things to do after installing openSUSE Leap 42.1.md @@ -1,20 +1,22 @@ 安装 openSUSE Leap 42.1 之后要做的 8 件事 ================================================================================ ![Credit: Metropolitan Transportation/Flicrk](http://images.techhive.com/images/article/2015/11/things-to-do-100626947-primary.idge.jpg) -致谢:[Metropolitan Transportation/Flicrk][1] -> 你已经在你的电脑上安装了 openSUSE,这是你接下来要做的。 +*致谢:[Metropolitan Transportation/Flicrk][1]* -[openSUSE Leap 确实是个巨大的飞跃][2],它允许用户运行一个和 SUSE Linux 企业版拥有一样基因的发行版。和其它系统一样,为了实现最佳的使用效果,在使用它之前需要做些优化设置。 +> 如果你已经在你的电脑上安装了 openSUSE,这就是你接下来要做的。 -下面是一些我在我的电脑上安装 openSUSE Leap 之后做的一些事情(不适用于服务器)。这里面没有强制性要求的设置,基本安装对你来说也可能足够了。但如果你想获得更好的 openSUSE Leap 体验,那就跟着我往下看吧。 +[openSUSE Leap 确实是个巨大的飞跃][2],它允许用户运行一个和 SUSE Linux 企业版拥有同样基因的发行版。和其它系统一样,为了实现最佳的使用效果,在使用它之前需要做些优化设置。 + +下面是一些我在我的电脑上安装 openSUSE Leap 之后做的一些事情(不适用于服务器)。这里面没有强制性的设置,基本安装对你来说也可能足够了。但如果你想获得更好的 openSUSE Leap 体验,那就跟着我往下看吧。 ### 1. 添加 Packman 仓库 ### 由于专利和授权等原因,openSUSE 和许多 Linux 发行版一样,不通过官方仓库(repos)提供一些软件、解码器,以及驱动等。取而代之的是通过第三方或社区仓库来提供。第一个也是最重要的仓库是“Packman”。因为这些仓库不是默认启用的,我们需要添加它们。你可以通过 YaST(openSUSE 的特色之一)或者命令行完成(如下方介绍)。 ![o42 yast repo](http://images.techhive.com/images/article/2015/11/o42-yast-repo-100626952-large970.idge.png) -添加 Packman 仓库。 + +*添加 Packman 仓库。* 使用 YaST,打开软件源部分。点击“添加”按钮并选择“社区仓库(Community Repositories)”。点击“下一步”。一旦仓库列表加载出来了,选择 Packman 仓库。点击“确认”,然后点击“信任”导入信任的 GnuPG 密钥。 @@ -58,7 +60,7 @@ openSUSE 的默认浏览器是 Firefox。但是因为 Firefox 不能够播放专 ### 5. 安装 Nvidia 驱动 ### -即便你有 Nvidia 或 ATI 显卡,openSUSE Leap 也能够开箱即用。但是,如果你需要专有驱动来游戏或其它目的,你可以安装这些驱动,但需要一点额外的工作。 +即便你使用 Nvidia 或 ATI 显卡,openSUSE Leap 也能够开箱即用。但是,如果你需要专有驱动来游戏或其它目的,你可以安装这些驱动,但需要一点额外的工作。 首先你需要添加 Nvidia 源;它的步骤和使用 YaST 添加 Packman 仓库是一样的。唯一的不同是你需要在社区仓库部分选择 Nvidia。添加好了之后,到 **软件管理 > 附加** 去并选择“附加/安装所有匹配的推荐包”。 @@ -76,14 +78,15 @@ openSUSE 的默认浏览器是 Firefox。但是因为 Firefox 不能够播放专 ### 7. 安装你喜欢的电子邮件客户端 ### -openSUSE 自带 Kmail 或 Evolution,这取决于你安装的桌面环境。我用的是 Plasma,自带 Kmail,这个邮件客户端还有许多地方有待改进。我建议可以试试 Thunderbird 或 Evolution。所有主要的邮件客户端都能在官方仓库找到。你还可以看看我[精心挑选的 Linux 最佳邮件客户端][7]。 +openSUSE 自带 Kmail 或 Evolution,这取决于你安装的桌面环境。我用的是 KDE Plasma 自带的 Kmail,这个邮件客户端还有许多地方有待改进。我建议可以试试 Thunderbird 或 Evolution。所有主要的邮件客户端都能在官方仓库找到。你还可以看看我[精心挑选的 Linux 最佳邮件客户端][7]。 ### 8. 在防火墙允许 Samba 服务 ### 相比于其它发行版,openSUSE 默认提供了更加安全的系统。但对新用户来说它也需要一点设置。如果你正在使用 Samba 协议分享文件到本地网络的话,你需要在防火墙允许该服务。 ![o42 firewall](http://images.techhive.com/images/article/2015/11/o42-firewall-100626948-large970.idge.png) -在防火墙设置里允许 Samba 客户端和服务端 + +*在防火墙设置里允许 Samba 客户端和服务端* 打开 YaST 并搜索 Firewall。在防火墙设置里,进入到“允许的服务(Allowed Services)”,你会在“要允许的服务(Service to allow)”下面看到一个下拉列表。选择“Samba 客户端”,然后点击“添加”。同样方法添加“Samba 服务器”。都添加了之后,点击“下一步”,然后点击“完成”,现在你就可以通过本地网络从你的 openSUSE 分享文件以及访问其它机器了。 From 1b7fb67c2a58df07ad86c982174d575983fd7bab Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 10 May 2016 05:37:20 +0800 Subject: [PATCH 468/582] PUB:20151122 Doubly linked list in the Linux Kernel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @oska874 @tinyeyeser 可以将译文投递到原项目处 --- ... Doubly linked list in the Linux Kernel.md | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) rename {translated/tech => published}/20151122 Doubly linked list in the Linux Kernel.md (73%) diff --git a/translated/tech/20151122 Doubly linked list in the Linux Kernel.md b/published/20151122 Doubly linked list in the Linux Kernel.md similarity index 73% rename from translated/tech/20151122 Doubly linked list in the Linux Kernel.md rename to published/20151122 Doubly linked list in the Linux Kernel.md index 1a5772320e..d21ae7ded6 100644 --- a/translated/tech/20151122 Doubly linked list in the Linux Kernel.md +++ b/published/20151122 Doubly linked list in the Linux Kernel.md @@ -4,10 +4,9 @@ Linux 内核里的数据结构——双向链表 双向链表 -------------------------------------------------------------------------------- +Linux 内核中自己实现了双向链表,可以在 [include/linux/list.h](https://github.com/torvalds/linux/blob/master/include/linux/list.h) 找到定义。我们将会首先从双向链表数据结构开始介绍**内核里的数据结构**。为什么?因为它在内核里使用的很广泛,你只需要在 [free-electrons.com](http://lxr.free-electrons.com/ident?i=list_head) 检索一下就知道了。 -Linux 内核自己实现了双向链表,可以在[include/linux/list.h](https://github.com/torvalds/linux/blob/master/include/linux/list.h)找到定义。我们将会从双向链表数据结构开始介绍`内核里的数据结构`。为什么?因为它在内核里使用的很广泛,你只需要在[free-electrons.com](http://lxr.free-electrons.com/ident?i=list_head) 检索一下就知道了。 - -首先让我们看一下在[include/linux/types.h](https://github.com/torvalds/linux/blob/master/include/linux/types.h) 里的主结构体: +首先让我们看一下在 [include/linux/types.h](https://github.com/torvalds/linux/blob/master/include/linux/types.h) 里的主结构体: ```C struct list_head { @@ -15,7 +14,7 @@ struct list_head { }; ``` -你可能注意到这和你以前见过的双向链表的实现方法是不同的。举个例子来说,在[glib](http://www.gnu.org/software/libc/) 库里是这样实现的: +你可能注意到这和你以前见过的双向链表的实现方法是不同的。举个例子来说,在 [glib](http://www.gnu.org/software/libc/) 库里是这样实现的: ```C struct GList { @@ -25,7 +24,7 @@ struct GList { }; ``` -通常来说一个链表结构会包含一个指向某个项目的指针。但是Linux内核中的链表实现并没有这样做。所以问题来了:`链表在哪里保存数据呢?`。实际上,内核里实现的链表是`侵入式链表`。侵入式链表并不在节点内保存数据-它的节点仅仅包含指向前后节点的指针,以及指向链表节点数据部分的指针——数据就是这样附加在链表上的。这就使得这个数据结构是通用的,使用起来就不需要考虑节点数据的类型了。 +通常来说一个链表结构会包含一个指向某个项目的指针。但是 Linux 内核中的链表实现并没有这样做。所以问题来了:**链表在哪里保存数据呢?**。实际上,内核里实现的链表是**侵入式链表(Intrusive list)**。侵入式链表并不在节点内保存数据-它的节点仅仅包含指向前后节点的指针,以及指向链表节点数据部分的指针——数据就是这样附加在链表上的。这就使得这个数据结构是通用的,使用起来就不需要考虑节点数据的类型了。 比如: @@ -36,7 +35,7 @@ struct nmi_desc { }; ``` -让我们看几个例子来理解一下在内核里是如何使用`list_head` 的。如上所述,在内核里有很多很多不同的地方都用到了链表。我们来看一个在杂项字符驱动里面的使用的例子。在 [drivers/char/misc.c](https://github.com/torvalds/linux/blob/master/drivers/char/misc.c) 的杂项字符驱动API 被用来编写处理小型硬件或虚拟设备的小驱动。这些驱动共享相同的主设备号: +让我们看几个例子来理解一下在内核里是如何使用 `list_head` 的。如上所述,在内核里有很多很多不同的地方都用到了链表。我们来看一个在杂项字符驱动里面的使用的例子。在 [drivers/char/misc.c](https://github.com/torvalds/linux/blob/master/drivers/char/misc.c) 的杂项字符驱动 API 被用来编写处理小型硬件或虚拟设备的小驱动。这些驱动共享相同的主设备号: ```C #define MISC_MAJOR 10 @@ -68,7 +67,7 @@ crw------- 1 root root 10, 63 Mar 21 12:01 vga_arbiter crw------- 1 root root 10, 137 Mar 21 12:01 vhci ``` -现在让我们看看它是如何使用链表的。首先看一下结构体`miscdevice`: +现在让我们看看它是如何使用链表的。首先看一下结构体 `miscdevice`: ```C struct miscdevice @@ -97,13 +96,13 @@ static LIST_HEAD(misc_list); struct list_head name = LIST_HEAD_INIT(name) ``` -然后使用宏`LIST_HEAD_INIT` 进行初始化,这会使用变量`name` 的地址来填充`prev`和`next` 结构体的两个变量。 +然后使用宏 `LIST_HEAD_INIT` 进行初始化,这会使用变量`name` 的地址来填充`prev`和`next` 结构体的两个变量。 ```C #define LIST_HEAD_INIT(name) { &(name), &(name) } ``` -现在来看看注册杂项设备的函数`misc_register`。它在开始就用函数 `INIT_LIST_HEAD` 初始化了`miscdevice->list`。 +现在来看看注册杂项设备的函数`misc_register`。它在一开始就用函数 `INIT_LIST_HEAD` 初始化了`miscdevice->list`。 ```C INIT_LIST_HEAD(&misc->list); @@ -125,7 +124,7 @@ static inline void INIT_LIST_HEAD(struct list_head *list) list_add(&misc->list, &misc_list); ``` -内核文件`list.h` 提供了向链表添加新项的API 接口。我们来看看它的实现: +内核文件`list.h` 提供了向链表添加新项的 API 接口。我们来看看它的实现: ```C @@ -205,9 +204,9 @@ int main() { } ``` -最终会打印`2` +最终会打印出`2` -下一点就是`typeof`,它也很简单。就如你从名字所理解的,它仅仅返回了给定变量的类型。当我第一次看到宏`container_of`的实现时,让我觉得最奇怪的就是表达式`((type *)0)`中的0.实际上这个指针巧妙的计算了从结构体特定变量的偏移,这里的`0`刚好就是位宽里的零偏移。让我们看一个简单的例子: +下一点就是`typeof`,它也很简单。就如你从名字所理解的,它仅仅返回了给定变量的类型。当我第一次看到宏`container_of`的实现时,让我觉得最奇怪的就是表达式`((type *)0)`中的0。实际上这个指针巧妙的计算了从结构体特定变量的偏移,这里的`0`刚好就是位宽里的零偏移。让我们看一个简单的例子: ```C #include @@ -236,21 +235,23 @@ int main() { 当然了`list_add` 和 `list_entry`不是``提供的唯一功能。双向链表的实现还提供了如下API: -* list_add -* list_add_tail -* list_del -* list_replace -* list_move -* list_is_last -* list_empty -* list_cut_position -* list_splice -* list_for_each -* list_for_each_entry +* list\_add +* list\_add\_tail +* list\_del +* list\_replace +* list\_move +* list\_is\_last +* list\_empty +* list\_cut\_position +* list\_splice +* list\_for\_each +* list\_for\_each\_entry 等等很多其它API。 -via: https://github.com/0xAX/linux-insides/edit/master/DataStructures/dlist.md +---- + +via: https://github.com/0xAX/linux-insides/blob/master/DataStructures/dlist.md 译者:[Ezio](https://github.com/oska874) 校对:[Mr小眼儿](https://github.com/tinyeyeser) From 8b1a24ceab9827616e930d978773f604952034e2 Mon Sep 17 00:00:00 2001 From: tinyeyeser Date: Tue, 10 May 2016 16:20:25 +0800 Subject: [PATCH 469/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=20by?= =?UTF-8?q?=E5=B0=8F=E7=9C=BC=E5=84=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Top 4 open source issue tracking tools.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/translated/tech/20160218 Top 4 open source issue tracking tools.md b/translated/tech/20160218 Top 4 open source issue tracking tools.md index 840a3d80fc..1ffd21a759 100644 --- a/translated/tech/20160218 Top 4 open source issue tracking tools.md +++ b/translated/tech/20160218 Top 4 open source issue tracking tools.md @@ -1,19 +1,19 @@ -排名前4的开源漏洞追踪工具 +开源问题跟踪管理工具Top4 ======================================== -生活充满了漏洞。 +生活充满了bug。 -无论怎样小心计划,无论花多少时间去设计,在执行阶段当轮胎压在路上,任何工程都会有未知的问题。也无妨。也许对于任何一个组织的最佳弹性衡量不是他们如何一切都按计划运行地处理事情,而是,当出现磕磕碰碰时他们处理速度。 +无论怎样小心计划,无论花多少时间去设计,在执行阶段当轮胎压在路上,任何工程都会有未知的问题。也无妨。也许对于任何一个组织的最佳弹性衡量不是他们如何一切都按计划运行地处理事情,而是,当出现磕磕碰碰时他们如何驾驭。 -一个任意工程管理流程的关键工具,特别是在软件开发领域,是一个问题追踪系统。基础很简单;允许漏洞在合作的方式被打开,追踪,和解决,同时很容易跟随进展。除了基本功能,还有很多专注于满足特定需求的选择,和使用案例,包括软件开发和更多。你可能熟悉托管版本的这些工具,像 [GitHub Issues](https://guides.github.com/features/issues/)或者[Launchpad](https://launchpad.net/),这些是他们自己开放的资源。 +对任何一个项目管理流程来说,特别是在软件开发领域,都需要一个关键工具——问题跟踪管理系统。其基本功能很简单:可以对bug进行查看、追踪,并以协作的方式解决bug,有了它,我们更容易跟随整个过程的进展。除了基本功能,还有很多专注于满足特定需求的选项及功能,使用场景不仅限于软件开发。你可能已经熟悉某些托管版本的工具,像 [GitHub Issues](https://guides.github.com/features/issues/)或者[Launchpad](https://launchpad.net/),其中一些工具已经有了自己的开源社区。 -让我们看一看四个管理漏洞和问题的优秀选择,全部开源代码、易于下载和自我托管。要清楚,我们可能没有办法在这里列出每一个问题跟踪工具;然而,这有四个我们偏爱的,基于功能丰富和项目背后的社区项目的规模。还有其他,可以肯定的是,如果你有一个好的理由你喜欢的没有列在这里,一定要让我们知道这是你最喜欢的工具,在下面的评论中使它脱颖而出。 +接下来,这四个bug问题跟踪管理软件的极佳备选,全部开源、易于下载,自己就可以部署。先说好,我们可能没有办法在这里列出每一个问题跟踪工具;相反,我们列出这四个,基于的是其丰富的功能和项目背后的社区规模。当然,肯定还有其他类似软件,如果你喜欢的没有列在这里,如果你有一个好的理由,一定要让我们知道,在下面的评论中使它脱颖而出吧。 ## Redmine -[Redmine](http://www.redmine.org/) 是一个流行的漏洞追踪工具建立在Ruby on Rails和可以追溯到2006年。很多类似于Trac,另一方面我们最爱的是,Redmine可以管理多个项目然后整合了多种版本控制系统。除了基本问题追踪,Redmine也提供论坛,wiki,时间跟踪工具,和生成甘特图和日历的能力来跟踪项目的进展。 +[Redmine](http://www.redmine.org/) 是一个很流行的追踪管理工具,基于Ruby on Rails构建,可以追溯到2006年。很多方面类似于Trac(另一个我们的最爱),Redmine可以管理多个项目,整合了多种版本控制系统。除了基本问题追踪,Redmine也提供论坛,wiki,时间跟踪工具,同时,它还具有生成甘特图表(Gantt charts)和日历的能力,用来跟踪项目的进展。 -Redmine的设置相当灵活,支持多种数据库后端和几十种语言,还是可定制的,可以添加自定义字段到问题,用户,工程和更多。通过社区创建的插件和主题它可以进一步定制。 +Redmine的设置相当灵活,支持多种数据库后端和几十种语言,还是可定制的,可以向问题(issue)、用户、工程等添加自定义字段。通过社区创建的插件和主题它可以进一步定制。 如果你想试一试,一个[在线演示](http://demo.redmine.org/)可提供使用。Redmine在开源[GPL版本2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)下许可;开源代码可以在工程的[svn仓库](https://svn.redmine.org/redmine)或在[GitHub](https://github.com/redmine/redmine)镜像上找到。 @@ -21,19 +21,19 @@ Redmine的设置相当灵活,支持多种数据库后端和几十种语言, ## Bugzilla -[Bugzilla](https://www.bugzilla.org/)是另一个流行的有漏洞追踪功能的开发工具。从名字您可能已经猜到了,Bugzilla最初是[Mozilla基金会](https://www.mozilla.org/en-US/)创建,用来跟踪当时称为网景通信套件开发漏洞的。为了更好的通过性从原来的Tcl移植到Perl路径,Bugzilla是一个比较老的和更广泛采用的问题跟踪系统,因为它用在许多著名的开源项目如GNOME,KDE,Linux内核本身。 +[Bugzilla](https://www.bugzilla.org/)是另一个流行的具备问题跟踪能力的开发工具。从名字您可能已经猜到了,Bugzilla最初是[Mozilla基金会](https://www.mozilla.org/en-US/)创建的,用来跟踪当时称为网景通信套件中的bug。为了更好的可读性,它从原来的Tcl移植到Perl,Bugzilla是一个比较老,但却广泛采用的问题跟踪系统,它被用在许多著名的开源项目如GNOME、KDE,以及Linux内核本身。 -拥有一些先进的工具,从通知到共享搜索重复的漏洞检测,Bugzilla是一个功能更丰富的选项。Bugzilla有高级搜索系统与全面的报表工具,生成图表和自动化计划报告的能力。像Redmine,Bugzilla是可扩展和可定制的,两者在字段本身像能创建自定义漏洞工作流一样。它也支持多种后端数据库,和自带的多语言支持。 +从通知到重复bug检测再到搜索共享,Bugzilla拥有许多高级工具,是一个功能更丰富的选项。Bugzilla拥有一套高级搜索系统以及全面的报表工具,具有生成图表和自动化按计划生成报告的能力。像Redmine一样,Bugzilla是可扩展和可定制的,除了字段本身,还能针对bug创建自定义工作流。它也支持多种后端数据库,和自带的多语言支持。 -Bugzilla在[Mozilla公共许可证](https://en.wikipedia.org/wiki/Mozilla_Public_License)下许可,你可以读取他们[未来路线图](https://www.bugzilla.org/status/roadmap.html)还有在官网尝试一个[示例服务](https://landfill.bugzilla.org/) +Bugzilla在[Mozilla公共许可证](https://en.wikipedia.org/wiki/Mozilla_Public_License)下许可,你可以读取他们的[未来路线图](https://www.bugzilla.org/status/roadmap.html)还有在官网尝试一个[示例服务](https://landfill.bugzilla.org/) ![](https://opensource.com/sites/default/files/images/business-uploads/issues-bugzilla.png) ## Trac -[Trac](http://trac.edgewall.org/browser)自称是使用简单的方法基于web的软件工程管理软件,但不要混淆极简主义与缺乏功能。 +[Trac](http://trac.edgewall.org/browser)自称是基于web的极简主义软件工程管理软件,这里请不要混淆极简主义与缺乏功能。 -python编写,Trac紧密结合它的漏洞跟踪与它的wiki系统和你选择的版本控制系统。项目管理能力突出,如生成的里程碑和路线图,一个可定制的报表系统,大事记,支持多资源库,内置的垃圾邮件过滤,还可以使用很多一般的语言。如其他漏洞追踪软件我们已经看到,有很多插件可进一步扩展其基本特性。 +由python编写的Trac,将其漏洞跟踪能力与它的wiki系统和版本控制系统轻度整合。项目管理能力突出,如生成里程碑和路线图,一个可定制的报表系统,大事记,支持多资源库,内置的垃圾邮件过滤,还可以使用很多通用语言。如其他我们已经看到的漏洞追踪软件,有很多插件可进一步扩展其基本特性。 Trac是在改进的[BSD许可](http://trac.edgewall.org/wiki/TracLicense)下获得开放源码许可,虽然更老的版本发布在GPL下。你可以在一个[自托管仓库](http://trac.edgewall.org/browser)预览Trac的源码或者查看他们的[路线图](http://trac.edgewall.org/wiki/TracRoadmap)对未来的规划。 @@ -41,13 +41,13 @@ Trac是在改进的[BSD许可](http://trac.edgewall.org/wiki/TracLicense)下获 ## Mantis -[Mantis](https://www.mantisbt.org/)是这次收集中我们将看的最后一个工具,一个基于PHP且有16年历史的漏洞跟踪工具。另外漏洞跟踪支持多种不同的版本控制系统和一个事件驱动的通知系统,Mantis有一个与其他工具类似的功能设置。虽然它不本身包含一个wiki,它整合很多流行的wiki平台且本地化到多种语言。 +[Mantis](https://www.mantisbt.org/)是这次合集中我们将看到的最后一个工具,基于PHP,且有16年历史。作为另一个支持多种不同版本控制系统和事件驱动通知系统的bug跟踪管理软件,Mantis有一个与其他工具类似的功能设置。虽然它不本身包含wiki,但它整合了很多流行的wiki平台且本地化到多种语言。 Mantis在[GPL版本2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)下获得开源许可证书;你可以在[GitHub](https://github.com/mantisbt/mantisbt)浏览他的源代码或查看自托管[路线图](https://www.mantisbt.org/bugs/roadmap_page.php?project=mantisbt&version=1.3.x)对未来的规划。一个示例,你可以查看他们的内部[漏洞跟踪](https://www.mantisbt.org/bugs/my_view_page.php)。 ![](https://opensource.com/sites/default/files/images/business-uploads/issues-mantis.png) -正如我们指出的,这四个不是唯一的选项。想要探索更多?[Apache Bloodhound](https://issues.apache.org/bloodhound/),[Fossil](http://fossil-scm.org/index.html/doc/trunk/www/index.wiki),[The Bug Genie](http://www.thebuggenie.com/),还有很多可替换品都有专注的追随者,每个都有不同的优点和缺点。另外,一些工具在我们[项目管理](https://opensource.com/business/15/1/top-project-management-tools-2015)摘要有问题跟踪功能。所以,哪个是你首选的跟踪和挤压漏洞的工具? +正如我们指出的,这四个不是唯一的选项。想要探索更多?[Apache Bloodhound](https://issues.apache.org/bloodhound/),[Fossil](http://fossil-scm.org/index.html/doc/trunk/www/index.wiki),[The Bug Genie](http://www.thebuggenie.com/),还有很多可替换品都有专注的追随者,每个都有不同的优点和缺点。另外,一些工具在我们[项目管理](https://opensource.com/business/15/1/top-project-management-tools-2015)摘要有问题跟踪功能。所以,哪个是你首选的跟踪和碾压bug的工具? ------------------------------------------------------------------------------ @@ -56,7 +56,7 @@ via: https://opensource.com/business/16/2/top-issue-support-and-bug-tracking-too 作者:[Jason Baker][a] 译者:[wyangsun](https://github.com/wyangsun) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Mr小眼儿](https://github.com/tinyeyeser) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From b1c5b451bfeb13a9333a18056925f4f968d90adc Mon Sep 17 00:00:00 2001 From: VicYu Date: Tue, 10 May 2016 17:51:42 +0800 Subject: [PATCH 470/582] Translated 20160429 Master OpenStack with 5 new tutorials.md --- ...9 Master OpenStack with 5 new tutorials.md | 39 ------------------- ...9 Master OpenStack with 5 new tutorials.md | 37 ++++++++++++++++++ 2 files changed, 37 insertions(+), 39 deletions(-) delete mode 100644 sources/tech/20160429 Master OpenStack with 5 new tutorials.md create mode 100644 translated/tech/20160429 Master OpenStack with 5 new tutorials.md diff --git a/sources/tech/20160429 Master OpenStack with 5 new tutorials.md b/sources/tech/20160429 Master OpenStack with 5 new tutorials.md deleted file mode 100644 index b43952bc2f..0000000000 --- a/sources/tech/20160429 Master OpenStack with 5 new tutorials.md +++ /dev/null @@ -1,39 +0,0 @@ - Vic020 - -Master OpenStack with 5 new tutorials -======================================= - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/education/EDUCATION_tools.png?itok=ybxr0Qe9) - - -Returning from OpenStack Summit this week, I am reminded of just how vast the open source cloud ecosystem is and just how many different projects and concepts you need to be familiar with in order to succeed. Although, we're actually quite fortunate with the resources available for keeping up. In addition to the [official documentation][1], many great educational tools are out there, from third party training and certification, to in-person events, and many community-contributed tutorials as well. - -To help you stay on top of things, every month we round up a collection of new tutorials, how-tos, guides, and tips created by the OpenStack community. Here are some of the great pieces published this past month. - -- First up, if you're looking for a (reasonably) affordable home OpenStack test lab, the Intel NUC is a great platform to consider. Small in form factor, but reasonably well-powered, you can get a literal stack of them running OpenStack pretty quickly with this guide to using [TripleO to deploy OpenStack][2] on the NUC, and read about some common quirks to watch out for. -- After you've been running OpenStack for a while, the various processes keeping your cloud alive have probably generated quite a pile of log files. While some are probably safe to purge, you still need to have a plan for managing them. Here are some [quick thoughts][3] on managing logs in Ceilometer after nine-months in to a production deployment. -- The OpenStack infrastructure project can be an intimidating place for a newcomer just trying to land a patch. What's a gate job, what's a test, and what are all of these steps my commit is going through? Get a quick overview of the whole process from Arie Bregman in this [handy blog post][4]. -- Compute hosts fail occasionally, and whether the cause is hardware or software, the good news is that OpenStack makes it easy to migrate your running instance to another host. However, some people have found the commands to perform this migration a little confusing. Learn the difference between the migrate and evacuate commands in plain English in [this great writeup][5]. -- Network Functions Virtualization technologies require some functionality from OpenStack that are outside of what other users might be familiar with. For example, SR-IOV and PCI passthrough are ways of exposing physical hardware directly for maximizing performance. Learn the [steps involved][6] to make this happen within an OpenStack deployment. - -That wraps up our collection for this month, but if you're still looking for more, be sure to check out our past archive of [OpenStack tutorials][7] for even more learning resources. And if there's a tutorial or guide you think we ought to include in our next roundup, be sure to let us know in the comments below. - ------------------------------------------------------------------------------- - -via: https://opensource.com/business/16/4/master-openstack-new-tutorials - -作者:[Jason Baker][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jason-baker - -[1]: http://docs.openstack.org/ -[2]: http://acksyn.org/posts/2016/03/tripleo-on-nucs/ -[3]: http://silverskysoft.com/open-stack-xwrpr/2016/03/long-term-openstack-usage-summary/ -[4]: http://abregman.com/2016/03/05/openstack-infra-jenkins-jobs/ -[5]: http://www.danplanet.com/blog/2016/03/03/evacuate-in-nova-one-command-to-confuse-us-all/ -[6]: https://trickycloud.wordpress.com/2016/03/28/openstack-for-nfv-applications-sr-iov-and-pci-passthrough/ -[7]: https://opensource.com/resources/openstack-tutorials diff --git a/translated/tech/20160429 Master OpenStack with 5 new tutorials.md b/translated/tech/20160429 Master OpenStack with 5 new tutorials.md new file mode 100644 index 0000000000..18cbbf2435 --- /dev/null +++ b/translated/tech/20160429 Master OpenStack with 5 new tutorials.md @@ -0,0 +1,37 @@ +Master OpenStack with 5 new tutorials +5篇文章快速掌握OpenStack +======================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/education/EDUCATION_tools.png?itok=ybxr0Qe9) + +回顾这周的OpenStack峰会,我仍然回味着开源云生态系统的浩瀚无垠,并且需要熟悉多少个不同的项目和概念才能获得成功.但是,我们却如此的幸运有许多资源让我们跟随项目的脚步.不单是[官方文档][1],还包括了许多学习的工具,来自三方的组织的培训和认证,也有个人的分享,以及许多社区贡献的教程. + +为了让我们保持获得最新消息,每一个月我们将会整合发布,penStack社区的最新教程,指导,和小贴士等.下面是我们过去几个月最棒的发布分享. + +- 首先,如果你正在寻找一个靠谱实惠的OpenStack测试实验室,Intel NUC是最值得考虑的平台.麻雀虽小,五脏俱全,通过指导文章,可以很轻松的按照教程在NUC上使用[Triple0部署OpenStack][2],并且还可以轻松预防一些常见的怪异问题. +- 当你已经运行的一段时间OpenStack后,你会发现在你的云系统上许多组件生成了大量日志.其中一些是可以安全删除的,你同样需要一个计划去管理这些日志.参看这篇文章[突然的想法][3]学习在部署9个月后Celiometer上如何管理日志. +- 对于OpenStack基础设施项目的新手,想要提交补丁到OpenStack是相当困难的.入口在哪里,测试怎么做,我的提交步骤是怎么样的?可以通过Arie Bregman的[博客文章][4]快速了解整个提交过程. +- 突发计算节点失效,不知道是硬件还是软件问题,好消息是OpenStack提供了一套非常简单的迁移计划让当机节点迁移到别的主机.然而,许多人发现使用这个命令总会遇到一些问题.可以学习[这篇文章][5]来理解migrate和evacuate命令的不同. +- 网络功能虚拟化技术需要OpenStack的额外用户不熟悉的知识。例如,SR-IOV和PCI直通是最大限度地提高物理硬件性能的方式.学习[部署步骤][6]使OpenStack部署获得更多效能. + +这些文章基本涵盖了本月推送,如果你还需要更多文章,可以检索过去推送的[OpenStack文献][7]来获取更多资源.如果有新的教程或指导,你认为我们应该推荐,请在评论中告诉我们,谢谢. + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/4/master-openstack-new-tutorials + +作者:[Jason Baker][a] +译者:[VicYu/Vic020](http://vicyu.net) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jason-baker + +[1]: http://docs.openstack.org/ +[2]: http://acksyn.org/posts/2016/03/tripleo-on-nucs/ +[3]: http://silverskysoft.com/open-stack-xwrpr/2016/03/long-term-openstack-usage-summary/ +[4]: http://abregman.com/2016/03/05/openstack-infra-jenkins-jobs/ +[5]: http://www.danplanet.com/blog/2016/03/03/evacuate-in-nova-one-command-to-confuse-us-all/ +[6]: https://trickycloud.wordpress.com/2016/03/28/openstack-for-nfv-applications-sr-iov-and-pci-passthrough/ +[7]: https://opensource.com/resources/openstack-tutorials From 2d1473d3a72b7ab2615e820f119b08490263c33b Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 11 May 2016 08:22:23 +0800 Subject: [PATCH 471/582] PUB:20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins @alim0x @tinyeyeser --- ...Tape Managements Commands For Sysadmins.md | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) rename {translated/tech => published}/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md (90%) diff --git a/translated/tech/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md b/published/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md similarity index 90% rename from translated/tech/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md rename to published/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md index 1985d63960..5bf991fef4 100644 --- a/translated/tech/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md +++ b/published/20151130 Useful Linux and Unix Tape Managements Commands For Sysadmins.md @@ -13,7 +13,7 @@ - 意外的文件删除 - 文件或文件系统损坏 - 服务器完全毁坏,包括由于火灾或其他问题导致的同盘备份毁坏 -- 硬盘或SSD崩溃 +- 硬盘或 SSD 崩溃 - 病毒或勒索软件破坏或删除文件 你可以使用磁带归档备份整个服务器并将其离线存储。 @@ -22,7 +22,7 @@ ![Fig.01: Tape file marks](http://s0.cyberciti.org/uploads/cms/2015/10/tape-format.jpg) -图01:磁带文件标记 +*图01:磁带文件标记* 每个磁带设备能存储多个备份文件。磁带备份文件通过 cpio,tar,dd 等命令创建。同时,磁带设备可以由多种程序打开、写入数据、及关闭。你可以存储若干备份(磁带文件)到一个物理磁带上。在每个磁带文件之间有个“磁带文件标记”。这用来指示一个物理磁带上磁带文件的结尾以及另一个文件的开始。你需要使用 mt 命令来定位磁带(快进,倒带和标记)。 @@ -30,7 +30,7 @@ ![Fig.02: How data is stored on a tape](http://s0.cyberciti.org/uploads/cms/2015/10/how-data-is-stored-on-a-tape.jpg) -图02:磁带上的数据是如何存储的 +*图02:磁带上的数据是如何存储的* 所有的数据使用 tar 以连续磁带存储格式连续地存储。第一个磁带归档会从磁带的物理开始端开始存储(tar #0)。接下来的就是 tar #1,以此类推。 @@ -60,22 +60,22 @@ 输入下列命令: - ## Linux(更多信息参阅 man) ## + ### Linux(更多信息参阅 man) ### lsscsi lsscsi -g - ## IBM AIX ## + ### IBM AIX ### lsdev -Cc tape lsdev -Cc adsm lscfg -vl rmt* - ## Solaris Unix ## + ### Solaris Unix ### cfgadm –a cfgadm -al luxadm probe iostat -En - ## HP-UX Unix ## + ### HP-UX Unix ### ioscan Cf ioscan -funC tape ioscan -fnC tape @@ -86,11 +86,11 @@ ![Fig.03: Installed tape devices on Linux server](http://s0.cyberciti.org/uploads/cms/2015/10/linux-find-tape-devices-command.jpg) -图03:Linux 服务器上已安装的磁带设备 +*图03:Linux 服务器上已安装的磁带设备* ### mt 命令示例 ### -在 Linux 和类Unix系统上,mt 命令用来控制磁带驱动器的操作,比如查看状态或查找磁带上的文件或写入磁带控制标记。下列大多数命令需要作为 root 用户执行。语法如下: +在 Linux 和类 Unix 系统上,mt 命令用来控制磁带驱动器的操作,比如查看状态或查找磁带上的文件或写入磁带控制标记。下列大多数命令需要作为 root 用户执行。语法如下: mt -f /tape/device/name operation @@ -98,7 +98,7 @@ 你可以设置 TAPE shell 变量。这是磁带驱动器的路径名。在 FreeBSD 上默认的(如果变量没有设置,而不是 null)是 /dev/nsa0。可以通过 mt 命令的 -f 参数传递变量覆盖它,就像下面解释的那样。 - ## 添加到你的 shell 配置文件 ## + ### 添加到你的 shell 配置文件 ### TAPE=/dev/st1 #Linux TAPE=/dev/rmt/2 #Unix TAPE=/dev/nsa3 #FreeBSD @@ -106,11 +106,11 @@ ### 1:显示磁带/驱动器状态 ### - mt status #Use default - mt -f /dev/rmt/0 status #Unix - mt -f /dev/st0 status #Linux - mt -f /dev/nsa0 status #FreeBSD - mt -f /dev/rmt/1 status #Unix unity 1 也就是 tape device no. 1 + mt status ### Use default + mt -f /dev/rmt/0 status ### Unix + mt -f /dev/st0 status ### Linux + mt -f /dev/nsa0 status ### FreeBSD + mt -f /dev/rmt/1 status ### Unix unity 1 也就是 tape device no. 1 你可以像下面一样使用 shell 循环语句遍历一个系统并定位其所有的磁带驱动器: @@ -208,7 +208,7 @@ mt -f /dev/st0 rewind; dd if=/dev/st0 of=- - ## tar 格式 ## + ### tar 格式 ### tar tvf {DEVICE} {Directory-FileName} tar tvf /dev/st0 tar tvf /dev/st0 desktop @@ -216,40 +216,40 @@ ### 12:使用 dump 或 ufsdump 备份分区 ### - ## Unix 备份 c0t0d0s2 分区 ## + ### Unix 备份 c0t0d0s2 分区 ### ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s2 - ## Linux 备份 /home 分区 ## + ### Linux 备份 /home 分区 ### dump 0uf /dev/nst0 /dev/sda5 dump 0uf /dev/nst0 /home - ## FreeBSD 备份 /usr 分区 ## + ### FreeBSD 备份 /usr 分区 ### dump -0aL -b64 -f /dev/nsa0 /usr ### 12:使用 ufsrestore 或 restore 恢复分区 ### - ## Unix ## + ### Unix ### ufsrestore xf /dev/rmt/0 - ## Unix 交互式恢复 ## + ### Unix 交互式恢复 ### ufsrestore if /dev/rmt/0 - ## Linux ## + ### Linux ### restore rf /dev/nst0 - ## 从磁带媒介上的第6个备份交互式恢复 ## + ### 从磁带媒介上的第6个备份交互式恢复 ### restore isf 6 /dev/nst0 - ## FreeBSD 恢复 ufsdump 格式 ## + ### FreeBSD 恢复 ufsdump 格式 ### restore -i -f /dev/nsa0 ### 13:从磁带开头开始写入(见图02) ### - ## 这会覆盖磁带上的所有数据 ## + ### 这会覆盖磁带上的所有数据 ### mt -f /dev/st1 rewind - ### 备份 home ## + ### 备份 home ### tar cvf /dev/st1 /home - ## 离线并卸载磁带 ## + ### 离线并卸载磁带 ### mt -f /dev/st0 offline 从磁带开头开始恢复: @@ -260,22 +260,22 @@ ### 14:从最后一个 tar 后开始写入(见图02) ### - ## 这会保留之前写入的数据 ## + ### 这会保留之前写入的数据 ### mt -f /dev/st1 eom - ### 备份 home ## + ### 备份 home ### tar cvf /dev/st1 /home - ## 卸载 ## + ### 卸载 ### mt -f /dev/st0 offline ### 15:从 tar number 2 后开始写入(见图02) ### - ## 在 tar number 2 之后写入(应该是 2+1) + ### 在 tar number 2 之后写入(应该是 2+1)### mt -f /dev/st0 asf 3 tar cvf /dev/st0 /usr - ## asf 等效于 fsf ## + ### asf 等效于 fsf ### mt -f /dev/sf0 rewind mt -f /dev/st0 fsf 2 From 4cc38307f7439cc75587efa92a19aa9df6f03832 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Wed, 11 May 2016 15:12:43 +0800 Subject: [PATCH 472/582] Proofread 20160429 Master OpenStack with 5 new tutorials --- ...9 Master OpenStack with 5 new tutorials.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/translated/tech/20160429 Master OpenStack with 5 new tutorials.md b/translated/tech/20160429 Master OpenStack with 5 new tutorials.md index 18cbbf2435..710baacbb3 100644 --- a/translated/tech/20160429 Master OpenStack with 5 new tutorials.md +++ b/translated/tech/20160429 Master OpenStack with 5 new tutorials.md @@ -1,20 +1,20 @@ -Master OpenStack with 5 new tutorials +MMaster OpenStack with 5 new tutorials 5篇文章快速掌握OpenStack ======================================= ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/education/EDUCATION_tools.png?itok=ybxr0Qe9) -回顾这周的OpenStack峰会,我仍然回味着开源云生态系统的浩瀚无垠,并且需要熟悉多少个不同的项目和概念才能获得成功.但是,我们却如此的幸运有许多资源让我们跟随项目的脚步.不单是[官方文档][1],还包括了许多学习的工具,来自三方的组织的培训和认证,也有个人的分享,以及许多社区贡献的教程. +回顾这周的 OpenStack 峰会,我仍然回味着开源云生态系统的浩瀚无垠,并且需要熟悉多少个不同的项目和概念才能获得成功。但是,我们是幸运的,因为有许多资源让我们跟随项目的脚步。除了[官方文档][1]外,我们还有许多来自三方组织的培训和认证、个人分享,以及许多社区贡献的学习资源。 -为了让我们保持获得最新消息,每一个月我们将会整合发布,penStack社区的最新教程,指导,和小贴士等.下面是我们过去几个月最棒的发布分享. +为了让我们保持获得最新消息,每个月我们将会整合发布 OpenStack 社区的最新教程、指导和小贴士等。下面是我们过去几个月最棒的发布分享。 -- 首先,如果你正在寻找一个靠谱实惠的OpenStack测试实验室,Intel NUC是最值得考虑的平台.麻雀虽小,五脏俱全,通过指导文章,可以很轻松的按照教程在NUC上使用[Triple0部署OpenStack][2],并且还可以轻松预防一些常见的怪异问题. -- 当你已经运行的一段时间OpenStack后,你会发现在你的云系统上许多组件生成了大量日志.其中一些是可以安全删除的,你同样需要一个计划去管理这些日志.参看这篇文章[突然的想法][3]学习在部署9个月后Celiometer上如何管理日志. -- 对于OpenStack基础设施项目的新手,想要提交补丁到OpenStack是相当困难的.入口在哪里,测试怎么做,我的提交步骤是怎么样的?可以通过Arie Bregman的[博客文章][4]快速了解整个提交过程. -- 突发计算节点失效,不知道是硬件还是软件问题,好消息是OpenStack提供了一套非常简单的迁移计划让当机节点迁移到别的主机.然而,许多人发现使用这个命令总会遇到一些问题.可以学习[这篇文章][5]来理解migrate和evacuate命令的不同. -- 网络功能虚拟化技术需要OpenStack的额外用户不熟悉的知识。例如,SR-IOV和PCI直通是最大限度地提高物理硬件性能的方式.学习[部署步骤][6]使OpenStack部署获得更多效能. +- 首先,如果你正在寻找一个靠谱实惠的 OpenStack 测试实验室, Intel NUC 是最值得考虑的平台.麻雀虽小,五脏俱全,通过指导文章,可以很轻松的按照教程在 NUC 上使用 [TripleO 部署 OpenStack][2] ,并且还可以轻松预防一些常见的怪异问题。 +- 当你已经运行的一段时间 OpenStack 后,你会发现在你的云系统上许多组件生成了大量日志。其中一些是可以安全删除的,而你需要一个管理这些日志的方案。参考在部署生产 9 个月后使用 Celiometer 管理日志的[一些思考][3]。 +- 对于 OpenStack 基础设施项目的新手,想要提交补丁到 OpenStack 是相当困难的。入口在哪里,测试怎么做,我的提交步骤是怎么样的?可以通过 Arie Bregman 的[博客文章][4]快速了解整个提交过程。 +- 突发计算节点失效,不知道是硬件还是软件问题。好消息是 OpenStack 提供了一套非常简单的迁移计划可以让迁移当机节点到别的主机。然而,迁移过程中使用的命令令许多人感到困惑。可以通过[这篇文章][5]来理解 migrate 和 evacuate 命令的不同。 +- 网络功能虚拟化技术需要 OpenStack 中的额外的功能,而用户可能不熟悉它们。例如, SR-IOV 和 PCI 直通是最大限度地提高物理硬件性能的方式。可以学习[部署步骤][6]以使 OpenStack 的性能最大化。 -这些文章基本涵盖了本月推送,如果你还需要更多文章,可以检索过去推送的[OpenStack文献][7]来获取更多资源.如果有新的教程或指导,你认为我们应该推荐,请在评论中告诉我们,谢谢. +这些文章基本涵盖了本月(译者注: 4 月)推送,如果你还需要更多文章,可以检索过去推送的 [OpenStack 文献][7]来获取更多资源。如果有你认为我们应该推荐的新教程,请在评论中告诉我们,谢谢。 ------------------------------------------------------------------------------ @@ -22,7 +22,7 @@ via: https://opensource.com/business/16/4/master-openstack-new-tutorials 作者:[Jason Baker][a] 译者:[VicYu/Vic020](http://vicyu.net) -校对:[校对者ID](https://github.com/校对者ID) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From b9bff95411ad5f7737e9f1a9e0edf7c1c9165b07 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Wed, 11 May 2016 15:15:24 +0800 Subject: [PATCH 473/582] Proofread: Fix typo in 20160429 Master OpenStack with 5 new tutorials --- .../tech/20160429 Master OpenStack with 5 new tutorials.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20160429 Master OpenStack with 5 new tutorials.md b/translated/tech/20160429 Master OpenStack with 5 new tutorials.md index 710baacbb3..47ad95b663 100644 --- a/translated/tech/20160429 Master OpenStack with 5 new tutorials.md +++ b/translated/tech/20160429 Master OpenStack with 5 new tutorials.md @@ -1,4 +1,4 @@ -MMaster OpenStack with 5 new tutorials +Master OpenStack with 5 new tutorials 5篇文章快速掌握OpenStack ======================================= From 788dcd5af6bf05c70f6c472a45e7de66cb47d2be Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Wed, 11 May 2016 16:00:23 +0800 Subject: [PATCH 474/582] Proofread 20160304 Image processing at NASA with open source tools --- ...ocessing at NASA with open source tools.md | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/translated/tech/20160304 Image processing at NASA with open source tools.md b/translated/tech/20160304 Image processing at NASA with open source tools.md index e3d59b0f51..a26b96936c 100644 --- a/translated/tech/20160304 Image processing at NASA with open source tools.md +++ b/translated/tech/20160304 Image processing at NASA with open source tools.md @@ -4,27 +4,27 @@ ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/nasa_spitzer_space_pink_spiral.jpg?itok=3XEUstkl) -这个已逝的夏天,我是位于格伦的 [NASA](http://www.nasa.gov/centers/glenn/home/index.html) [GVIS](https://ocio.grc.nasa.gov/gvis/) 实验室的研究生,我将我对开源的热情带到了那里。我的任务是提高我们实验室对 Dan Schroeder 开发的一个开源流体动力学模拟器的贡献。原本的模拟器为用户呈现出可以用鼠标绘制的障碍,用来计算流体动力学模型。我们团队的贡献是加入图像处理的代码,这些代码分析实况视频的每一帧以显示一个物体如何与液体相互作用。而且,我们还要做更多事情。 +在刚结束的这个夏天里,我是 [NASA 格伦中心][1] [GVIS][2] 实验室的实习生,我将我对开源的热情带到了那里。我的任务是改进我们实验室对 Dan Schroeder 开发的一个开源流体动力学模拟器的贡献。原本的模拟器可以显示用户用鼠标绘制的障碍物,并建立计算流体动力学模型。我们团队的贡献是加入图像处理的代码,分析实况视频的每一帧以显示特定的物体如何与液体相互作用。而且,我们还要做更多事情。 -我们想要让图像处理部分更加健全,所以我致力于改善图像处理库。 +我们想要让图像处理部分更加健壮,所以我致力于改善图像处理库。 -基于新的库,模拟器可以检测轮廓、进行空间坐标变换以及找到物体的质心。图像处理并不直接与流体动力学模拟器物理相关。它用摄像头检测物体,并且获取物体轮廓,为流体模拟器创建一个障碍物。然后,流体模拟器启动,输出结果会被投射到真实物体上。 +得益于新的库,模拟器可以检测轮廓、进行空间坐标变换以及找到物体的质心。图像处理并不直接与流体动力学模拟器物理相关。它用摄像头检测物体,并且获取物体轮廓,为流体模拟器创建一个障碍物。随后,流体模拟器开始运行,而输出结果会被投射到真实物体上。 -我的目标是通过以下三种方式改进模拟器: +我的目标是通过以下三个方面改进模拟器: 1. 找寻物体的轮廓 2. 找寻物体的质心 3. 能对物体中心进行相关的精确转换 -我的导师建议我安装 [Node.js](http://nodejs.org/), [OpenCV](http://opencv.org/), 和 [Node.js bindings for OpenCV](https://github.com/peterbraden/node-opencv).。在等待软件安装的过程中,我查看了 OpenCV 的 [GitHub 主页](https://github.com/peterbraden/node-opencv) 上的示例源码。我发现示例源码使用 JavaScript 写的,而我还不懂 JavaScript ,所以我在 Codecademy 上学了一些课程。两天后,我对 JavaScript 依旧生疏,不过我还是开始了我的项目。。。它包含了更多的JavaScript。 +我的导师建议我安装 [Node.js](http://nodejs.org/) 、 [OpenCV](http://opencv.org/) 和 [Node.js bindings for OpenCV](https://github.com/peterbraden/node-opencv)。在等待软件安装的过程中,我查看了 OpenCV 的 [GitHub 主页][3]上的示例源码。我发现示例源码使用 JavaScript 写的,而我还不懂 JavaScript ,所以我在 Codecademy 上学了一些课程。两天后,我对 JavaScript 依旧生疏,不过我还是开始了我的项目…它包含了更多的 JavaScript 。 -示例的轮廓检测代码工作得很好。事实上,它使得我用几个小时就完成了第一个目标!为了获取一幅图片的轮廓,它看起来像这样: +检测轮廓的示例代码工作得很好。事实上,它使得我用几个小时就完成了第一个目标!获取一幅图片的轮廓,它看起来像这样: ![](https://opensource.com/sites/default/files/resize/image_processing_nasa_1-520x293.jpg) > 包括所有轮廓的原始图, -示例的检测轮廓的代码工作得有点好过头了。不仅物体的轮廓被检测到了,整个图片中的轮廓都检测到了。这会导致模拟器要与那些没用的轮廓打交道。这是一个严重的问题,因为它会返回错误的数据。为了避免模拟器接触到不想要的轮廓,我加了一个区域约束。轮廓要位于一定的区域范围内才会被画出来。区域约束使得轮廓变干净了。 +检测轮廓的示例代码工作得有点好过头了。不仅物体的轮廓被检测到了,整个图片中的轮廓都检测到了。这会导致模拟器要与那些没用的轮廓打交道。这是一个严重的问题,因为它会返回错误的数据。为了避免模拟器接触到不想要的轮廓,我加了一个区域约束。轮廓要位于一定的区域范围内才会被画出来。区域约束使得轮廓变干净了。 ![](https://opensource.com/sites/default/files/resize/image_processing_nasa_2-520x293.jpg) @@ -44,21 +44,25 @@ > 最后的干净轮廓。 -这个时候,我可以获取干净的轮廓、计算质心了。可惜的是,我没有足够的时间去完成质心的相关变换。因为我的实习时间不多了,我开始考虑我在这段有限时间内能做的其它事情。其中一个就是边界矩形。边界矩形是包含了图片轮廓的最小四边形。边界矩形很重要,因为它是在页面上缩放轮廓的关键。虽然很遗憾我没时间利用边界矩形做更多事情,但是我仍然想去了解更多,因为这是个很有用的工具。 +这个时候,我可以获取干净的轮廓、计算质心了。可惜的是,我没有足够的时间去完成质心的相关变换。由于我的实习时间只剩下几天了,我开始考虑我在这段有限时间内能做的其它事情。其中一个就是边界矩形。边界矩形是包含了图片轮廓的最小四边形。边界矩形很重要,因为它是在页面上缩放轮廓的关键。虽然很遗憾我没时间利用边界矩形做更多事情,但是我仍然想学习它,因为它是个很有用的工具。 最后,经过以上的努力,我完成了对图像的处理! ![](https://opensource.com/sites/default/files/resize/image_processing_nasa_5-521x293.jpg) -> 最后图像,红色的边界矩形和质心。 +> 最终图像,红色的边界矩形和质心。 -当这些图像处理代码写完之后,我用我的代码替代了模拟器中的老代码。非常意外的,它可以工作。 +当这些图像处理代码写完之后,我用我的代码替代了模拟器中的老代码。令我意外的是,它可以工作。 嗯,基本可以。 -程序有内存泄露,每 1/10 秒泄露 100MB 。我很高兴原因不是我的代码。坏消息是修复它并不是我能控制的。好消息是有个解决方法我可以使用。它并不是最理想的,方法是不断检查模拟器使用的内存,当使用内存超过 1 GB,重新启动模拟器。 + -在 NASA 实验室,我们使用很多的开源软件,没有这些开源软件的帮助,我不可能完成这些工作。 +( Youtube 演示视频) + +程序有内存泄露,每 1/10 秒泄露 100MB 。我很高兴原因不是我的代码。坏消息是我并不能修复它。好消息是仍然有解决方法。它并非最理想的,但我可以使用。这个方法是不断检查模拟器使用的内存,当使用内存超过 1GB 时,重新启动模拟器。 + +在 NASA 实验室,我们会使用很多的开源软件,没有这些开源软件的帮助,我不可能完成这些工作。 * * * @@ -66,6 +70,10 @@ via: [https://opensource.com/life/16/3/image-processing-nasa](https://opensource 作者:[Lauren Egts](https://opensource.com/users/laurenegts) 译者:[willowyoung](https://github.com/willowyoung) -校对:[校对者ID](https://github.com/校对者ID) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]: http://www.nasa.gov/centers/glenn/home/index.html +[2]: https://ocio.grc.nasa.gov/gvis/ +[3]: https://github.com/peterbraden/node-opencv From 6040ac9b7d7e1caa5c302d3b39417c2e2d6aae3f Mon Sep 17 00:00:00 2001 From: tinyeyeser Date: Wed, 11 May 2016 16:09:43 +0800 Subject: [PATCH 475/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=20by?= =?UTF-8?q?=E5=B0=8F=E7=9C=BC=E5=84=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...123 Data Structures in the Linux Kernel.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/translated/tech/20151123 Data Structures in the Linux Kernel.md b/translated/tech/20151123 Data Structures in the Linux Kernel.md index 78526e6d94..899a69af3d 100644 --- a/translated/tech/20151123 Data Structures in the Linux Kernel.md +++ b/translated/tech/20151123 Data Structures in the Linux Kernel.md @@ -1,14 +1,14 @@ -Linux内核数据结构 +Linux内核中的数据结构 —— 基数树 ================================================================================ 基数树 Radix tree -------------------------------------------------------------------------------- -正如你所知道的,Linux内核提供了许多不同的库和函数,它们实现了不同的数据结构和算法。在这部分,我们将研究其中一种数据结构——[基数树 Radix tree](http://en.wikipedia.org/wiki/Radix_tree)。在Linux内核中,有两个与基数树实现和API相关的文件: +正如你所知道的,Linux内核提供了许多不同的库和函数,它们实现了不同的数据结构和算法。在这部分,我们将研究其中一种数据结构——[基数树 Radix tree](http://en.wikipedia.org/wiki/Radix_tree)。在 Linux 内核中,有两个文件与基数树的实现和API相关: * [include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h) * [lib/radix-tree.c](https://github.com/torvalds/linux/blob/master/lib/radix-tree.c) -让我们讨论什么是`基数树`吧。基数树是一种`压缩的字典树`,而[字典树](http://en.wikipedia.org/wiki/Trie)是实现了关联数组接口并允许以`键值对`方式存储值的一种数据结构。该键通常是字符串,但能够使用任何数据类型。字典树因为它的节点而与`n叉树`不同。字典树的节点不存储键;相反,字典树的一个节点存储单个字符的标签。与一个给定节点关联的键可以通过从根遍历到该节点获得。举个例子: +让我们先说说什么是 `基数树` 吧。基数树是一种 `压缩的字典树 (compressed trie)` ,而[字典树](http://en.wikipedia.org/wiki/Trie)是实现了关联数组接口并允许以 `键值对` 方式存储值的一种数据结构。这里的键通常是字符串,但可以使用任意数据类型。字典树因为它的节点而与 `n叉树` 不同。字典树的节点不存储键,而是存储单个字符的标签。与一个给定节点关联的键可以通过从根遍历到该节点获得。举个例子: ```                +-----------+ @@ -39,9 +39,9 @@ Linux内核数据结构                             +-----------+ ``` -因此在这个例子中,我们可以看到一个有着两个键`go`和`cat`的`字典树`。压缩的字典树或者`基数树`和`字典树`不同于所有只有一个孩子的中间节点都被删除。 +因此在这个例子中,我们可以看到一个有着两个键 `go` 和 `cat` 的 `字典树` 。压缩的字典树或者说 `基数树` ,它和 `字典树` 的不同之处在于,所有只有一个孩子的中间节点都被删除。 -Linu内核中的基数树是映射值到整形键的一种数据结构。[include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h)文件中的以下结构体表示了基数树: +Linux 内核中的基数树是把值映射到整形键的一种数据结构。[include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h)文件中的以下结构体描述了基数树: ```C struct radix_tree_root { @@ -51,15 +51,15 @@ struct radix_tree_root { }; ``` -这个结构体表示了一个基数树的根,并包含了3个域成员: +这个结构体描述了一个基数树的根,它包含了3个域成员: * `height` - 树的高度; -* `gfp_mask` - 告诉如何执行动态内存分配; +* `gfp_mask` - 告知如何执行动态内存分配; * `rnode` - 孩子节点指针. -我们第一个要讨论的域是`gfp_mask`: +我们第一个要讨论的字段是 `gfp_mask` : -底层内核内存动态分配函数以一组标志作为` gfp_mask `,用于描述如何执行动态内存分配。这些控制分配进程的`GFP_`标志拥有以下值:(`GF_NOIO`标志)意味着睡眠等待内存,(`__GFP_HIGHMEM`标志)意味着高端内存能够被使用,(`GFP_ATOMIC`标志)意味着分配进程拥有高优先级并不能睡眠等等。 +底层内核的内存动态分配函数以一组标志作为 `gfp_mask` ,用于描述如何执行动态内存分配。这些控制分配进程的 `GFP_` 标志拥有以下值:( `GF_NOIO` 标志)意味着睡眠以及等待内存,( `__GFP_HIGHMEM` 标志)意味着高端内存能够被使用,( `GFP_ATOMIC` 标志)意味着分配进程拥有高优先级并不能睡眠等等。 * `GFP_NOIO` - 睡眠等待内存 * `__GFP_HIGHMEM` - 高端内存能够被使用; @@ -67,7 +67,7 @@ struct radix_tree_root { 等等。 -下一个域是`rnode`: +下一个字段是`rnode`: ```C struct radix_tree_node { @@ -86,7 +86,7 @@ struct radix_tree_node { unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS]; }; ``` -这个结构体包含的信息有父节点中的偏移以及到底端(叶节点)的高度、孩子节点的个数以及用于访问和释放节点的域成员。这些域成员描述如下: +这个结构体包含的信息有父节点中的偏移以及到底端(叶节点)的高度、孩子节点的个数以及用于访问和释放节点的字段成员。这些字段成员描述如下: * `path` - 父节点中的偏移和到底端(叶节点)的高度 * `count` - 孩子节点的个数; @@ -95,20 +95,20 @@ struct radix_tree_node { * `rcu_head` - 用于释放节点; * `private_list` - 由树的用户使用; -`radix_tree_node`的最后两个成员——`tags`和`slots`非常重要且令人关注。Linux内核基数树的每个节点都包含一组存储指向数据指针的slots。Linux内核基数树实现的空slots存储`NULL`值。Linux内核中的基数树也支持与`radix_tree_node`结构体的`tags`域相关联的标签。标签允许在基数树存储的记录中设置各个位。 +`radix_tree_node` 的最后两个成员—— `tags` 和 `slots` 非常重要且令人关注。Linux 内核基数树的每个节点都包含了一组指针槽( slots ),槽里存储着指向数据的指针。在Linux内核基数树的实现中,空槽存储的是 `NULL` 。Linux内核中的基数树也支持标签( tags ),它与 `radix_tree_node` 结构体的 `tags` 字段相关联。有了标签,我们就可以对基数树中存储的记录以单个比特位( bit )进行设置。 既然我们了解了基数树的结构,那么该是时候看一下它的API了。 Linux内核基数树API --------------------------------------------------------------------------------- -我们从结构体的初始化开始。有两种方法初始化一个新的基数树。第一种是使用`RADIX_TREE`宏: +我们从结构体的初始化开始。有两种方法初始化一个新的基数树。第一种是使用 `RADIX_TREE` 宏: ```C RADIX_TREE(name, gfp_mask); ```` -正如你所看到的,我们传递`name`参数,所以使用`RADIX_TREE`宏,我们能够定义和初始化基数树为给定的名字。`RADIX_TREE`的实现是简单的: +正如你所看到的,我们传递了 `name` 参数,所以通过 `RADIX_TREE` 宏,我们能够定义和初始化基数树为给定的名字。`RADIX_TREE` 的实现很简单: ```C #define RADIX_TREE(name, mask) \ @@ -121,16 +121,16 @@ RADIX_TREE(name, gfp_mask); } ``` -在`RADIX_TREE`宏的开始,我们使用给定的名字定义`radix_tree_root`结构体实例,并使用给定的mask调用`RADIX_TREE_INIT`宏。`RADIX_TREE_INIT`宏只是初始化`radix_tree_root`结构体为默认值和给定的mask而已。 +在 `RADIX_TREE` 宏的开始,我们使用给定的名字定义 `radix_tree_root` 结构体实例,并使用给定的 mask 调用 `RADIX_TREE_INIT` 宏。 而 `RADIX_TREE_INIT` 宏则是使用默认值和给定的mask对 `radix_tree_root` 结构体进行了初始化。 -第二种方法是亲手定义`radix_tree_root`结构体,并且将它和mask传给`INIT_RADIX_TREE`宏: +第二种方法是手动定义`radix_tree_root`结构体,并且将它和mask传给 `INIT_RADIX_TREE` 宏: ```C struct radix_tree_root my_radix_tree; INIT_RADIX_TREE(my_tree, gfp_mask_for_my_radix_tree); ``` -where: +`INIT_RADIX_TREE` 宏的定义如下: ```C #define INIT_RADIX_TREE(root, mask) \ @@ -141,20 +141,20 @@ do { \ } while (0) ``` -和`RADIX_TREE_INIT`宏所做的初始化一样,初始化为默认值。 +和`RADIX_TREE_INIT`宏所做的初始化工作一样,`INIT_RADIX_TREE` 宏使用默认值和给定的 mask 完成初始化工作。 -接下来是用于从基数树插入和删除数据的两个函数: +接下来是用于向基数树插入和删除数据的两个函数: * `radix_tree_insert`; * `radix_tree_delete`; -第一个函数`radix_tree_insert`需要3个参数: +第一个函数 `radix_tree_insert` 需要3个参数: * 基数树的根; * 索引键; * 插入的数据; -`radix_tree_delete`函数需要和`radix_tree_insert`一样的一组参数,但是没有data。 +`radix_tree_delete` 函数需要和 `radix_tree_insert` 一样的一组参数,但是不需要传入要删除的数据。 基数树的搜索以两种方法实现: @@ -167,7 +167,7 @@ do { \ * 基数树的根; * 索引键; -这个函数尝试在树中查找给定的键,并返回和该键相关联的记录。第二个函数`radix_tree_gang_lookup`有以下的函数签名: +这个函数尝试在树中查找给定的键,并返回和该键相关联的记录。第二个函数 `radix_tree_gang_lookup` 有以下的函数签名: ```C unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, @@ -176,9 +176,9 @@ unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, unsigned int max_items); ``` -和返回记录的个数,(results指向的数据)按键排序并从第一个索引开始。返回的记录个数将不会超过`max_items`。 +它返回的是记录的个数。 `results` 中的结果,按键排序,并从第一个索引开始。返回的记录个数将不会超过 `max_items` 的值。 -最后一个函数`radix_tree_lookup_slot`将会返回包含数据的slot。 +最后一个函数`radix_tree_lookup_slot`将会返回包含数据的指针槽。 链接 --------------------------------------------------------------------------------- @@ -192,7 +192,7 @@ via: https://github.com/0xAX/linux-insides/edit/master/DataStructures/radix-tree 作者:[0xAX] 译者:[cposture](https://github.com/cposture) -校对:[校对者ID](https://github.com/校对者ID) +校对:[Mr小眼儿](https://github.com/tinyeyeser) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From f61b9adc838aa3ca7f37064ea28153b80a337f47 Mon Sep 17 00:00:00 2001 From: vim-kakali <1799225723@qq.com> Date: Wed, 11 May 2016 19:39:23 +0800 Subject: [PATCH 476/582] translated --- ...minism and increasing diversity in tech.md | 2 +- ...butions Would Presidential Hopefuls Run.md | 55 -------------- ...151117 How bad a boss is Linus Torvalds.md | 2 +- ...butions Would Presidential Hopefuls Run.md | 72 +++++++++++++++++++ 4 files changed, 74 insertions(+), 57 deletions(-) delete mode 100644 sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md create mode 100644 translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md diff --git a/sources/talk/20150806 Torvalds 2.0--Patricia Torvalds on computing college feminism and increasing diversity in tech.md b/sources/talk/20150806 Torvalds 2.0--Patricia Torvalds on computing college feminism and increasing diversity in tech.md index 36f5642c10..10a30119e1 100644 --- a/sources/talk/20150806 Torvalds 2.0--Patricia Torvalds on computing college feminism and increasing diversity in tech.md +++ b/sources/talk/20150806 Torvalds 2.0--Patricia Torvalds on computing college feminism and increasing diversity in tech.md @@ -78,4 +78,4 @@ via: http://opensource.com/life/15/8/patricia-torvalds-interview [4]:https://www.facebook.com/guerrillafeminism [5]:https://modelviewculture.com/ [6]:https://www.aspirations.org/ -[7]:https://www.facebook.com/groups/LadiesStormHackathons/ \ No newline at end of file +[7]:https://www.facebook.com/groups/LadiesStormHackathons/ diff --git a/sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md deleted file mode 100644 index cfb653f702..0000000000 --- a/sources/talk/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md +++ /dev/null @@ -1,55 +0,0 @@ -vim-kakali translating - -Which Open Source Linux Distributions Would Presidential Hopefuls Run? -================================================================================ -![Republican presidential candidate Donald Trump -](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/08/donaldtrump.jpg) - -Republican presidential candidate Donald Trump - -If people running for president used Linux or another open source operating system, which distribution would it be? That's a key question that the rest of the press—distracted by issues of questionable relevance such as "policy platforms" and whether it's appropriate to add an exclamation point to one's Christian name—has been ignoring. But the ignorance ends here: Read on for this sometime-journalist's take on presidential elections and Linux distributions. - -If this sounds like a familiar topic to those of you who have been reading my drivel for years (is anyone, other than my dear editor, unfortunate enough to have actually done that?), it's because I wrote a [similar post][1] during the last presidential election cycle. Some kind readers took that article more seriously than I intended, so I'll take a moment to point out that I don't actually believe that open source software and political campaigns have anything meaningful to do with one another. I am just trying to amuse myself at the start of a new week. - -But you can make of this what you will. You're the reader, after all. - -### Linux Distributions of Choice: Republicans ### - -Today, I'll cover just the Republicans. And I won't even discuss all of them, since the candidates hoping for the Republican party's nomination are too numerous to cover fully here in one post. But for starters: - -If **Jeb (Jeb!?) Bush** ran Linux, it would be [Debian][2]. It's a relatively boring distribution designed for serious, grown-up hackers—the kind who see it as their mission to be the adults in the pack and clean up the messes that less-experienced open source fans create. Of course, this also makes Debian relatively unexciting, and its user base remains perennially small as a result. - -**Scott Walker**, for his part, would be a [Damn Small Linux][3] (DSL) user. Requiring merely 50MB of disk space and 16MB of RAM to run, DSL can breathe new life into 20-year-old 486 computers—which is exactly what a cost-cutting guru like Walker would want. Of course, the user experience you get from DSL is damn primitive; the platform barely runs a browser. But at least you won't be wasting money on new computer hardware when the stuff you bought in 1993 can still serve you perfectly well. - -How about **Chris Christie**? He'd obviously be clinging to [Relax-and-Recover Linux][4], which bills itself as a "setup-and-forget Linux bare metal disaster recovery solution." "Setup-and-forget" has basically been Christie's political strategy ever since that unfortunate incident on the George Washington Bridge stymied his political momentum. Disaster recovery may or may not bring back everything for Christie in the end, but at least he might succeed in recovering a confidential email or two that accidentally disappeared when his computer crashed. - -As for **Carly Fiorina**, she'd no doubt be using software developed for "[The Machine][5]" operating system from [Hewlett-Packard][6] (HPQ), the company she led from 1999 to 2005. The Machine actually may run several different operating systems, which may or may not be based on Linux—details remain unclear—and its development began well after Fiorina's tenure at HP came to a conclusion. Still, her roots as a successful executive in the IT world form an important part of her profile today, meaning that her ties to HP have hardly been severed fully. - -Last but not least—and you knew this was coming—there's **Donald Trump**. He'd most likely pay a team of elite hackers millions of dollars to custom-build an operating system just for him—even though he could obtain a perfectly good, ready-made operating system for free—to show off how much money he has to waste. He'd then brag about it being the best operating system ever made, though it would of course not be compliant with POSIX or anything else, because that would mean catering to the establishment. The platform would also be totally undocumented, since, if Trump explained how his operating system actually worked, he'd risk giving away all his secrets to the Islamic State—obviously. - -Alternatively, if Trump had to go with a Linux platform already out there, [Ubuntu][7] seems like the most obvious choice. Like Trump, the Ubuntu developers have taken a we-do-what-we-want approach to building open source software by implementing their own, sometimes proprietary applications and interfaces. Free-software purists hate Ubuntu for that, but plenty of ordinary people like it a lot. Of course, whether playing purely by your own rules—in the realms of either software or politics—is sustainable in the long run remains to be seen. - -### Stay Tuned ### - -If you're wondering why I haven't yet mentioned the Democratic candidates, worry not. I am not leaving them out of today's writing because I like them any more or less than the Republicans. (Personally, I think the peculiar American practice of having only two viable political parties—which virtually no other functioning democracy does—is ridiculous, and I am suspicious of all of these candidates as a result.) - -On the contrary, there's plenty to say about the Linux distributions the Democrats might use, too. And I will, in a future post. Stay tuned. - --------------------------------------------------------------------------------- - -via: http://thevarguy.com/open-source-application-software-companies/081715/which-open-source-linux-distributions-would-presidential- - -作者:[Christopher Tozzi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://thevarguy.com/author/christopher-tozzi -[1]:http://thevarguy.com/open-source-application-software-companies/aligning-linux-distributions-presidential-hopefuls -[2]:http://debian.org/ -[3]:http://www.damnsmalllinux.org/ -[4]:http://relax-and-recover.org/ -[5]:http://thevarguy.com/open-source-application-software-companies/061614/hps-machine-open-source-os-truly-revolutionary -[6]:http://hp.com/ -[7]:http://ubuntu.com/ diff --git a/sources/talk/20151117 How bad a boss is Linus Torvalds.md b/sources/talk/20151117 How bad a boss is Linus Torvalds.md index 76e9f4c244..7ebba90483 100644 --- a/sources/talk/20151117 How bad a boss is Linus Torvalds.md +++ b/sources/talk/20151117 How bad a boss is Linus Torvalds.md @@ -75,4 +75,4 @@ via: http://www.computerworld.com/article/3004387/it-management/how-bad-a-boss-i [1]:http://www.computerworld.com/article/2874475/linus-torvalds-diversity-gaffe-brings-out-the-best-and-worst-of-the-open-source-world.html [2]:http://www.zdnet.com/article/linux-4-3-released-after-linus-torvalds-scraps-brain-damage-code/ [3]:http://lkml.iu.edu/hypermail/linux/kernel/1510.3/02866.html -[4]:http://sarah.thesharps.us/2015/10/05/closing-a-door/ \ No newline at end of file +[4]:http://sarah.thesharps.us/2015/10/05/closing-a-door/ diff --git a/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md new file mode 100644 index 0000000000..a7419bd07a --- /dev/null +++ b/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md @@ -0,0 +1,72 @@ +总统更乐意使用哪种开源Linux分支? +================================================================================ +![Republican presidential candidate Donald Trump +](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/08/donaldtrump.jpg) + + + +共和党总统候选人Donald Trump【译者注:唐纳德·特朗普,美国地产大亨、作家、主持人】 + + +如果人们要竞选总统,而决定因素却是使用Linux或另一个开源操作系统,那么这样的系统会属于哪个分支呢?关键是存在与其他很多事情有关的问题,而这正好使我们很难抉择;比如,一些“政治立场”问题,或者是要判断某一个分支诞生时为它的名字加上感叹号是否合适——而这些问题一直被忽视。而忽视到此就结束了:接下来是时事新闻工作者关于总统大选和Linux分支的报道。 + + +对于那些已经看了很多年我的文字的人来说(除了我亲爱的的编辑之外,他们是不是也不够幸运一直听我的瞎扯?),这些话听起来很熟悉,这是因为我在去年的总统选举期间写了一个[similar post][1]。一些有趣的读者把这里面的内容看的很正式,然而我并不是这样想的,所以我会花点时间阐述我的观点:事实上,我不认为开源软件和政治运动对于一些事情有多大的意义。我写那样的文章仅仅是新的一周的自我消遣罢了。 + + + +当然,你也可以去了解更多的你想知道的东西,毕竟你才是读者。 + +###Linux分支:共和党人的选择### + +今天,我只是谈及一些有关共和主义的话题,我甚至只会谈论他们的其中一部分。因为共和党的期望提名太多了以至于我写满了整篇文章。由此开始: + + +如果**Jeb (Jeb!?) Bush**使用Linux,它定是[Debian][2]。Debian属于一个相当无趣的分支,它是为真正意义上的黑客设计的,这样的黑客通过使用这样的操作系统快速成长,并且乐此不疲。而且他们可以通过攻击一些初级开源爱好者的电脑来大捞一笔。当然,这也使得Debian显得很枯燥,所以它已有的用户基础一直在缩减。 + + + +**Scott Walker**是一个[Damn Small Linux][3] (DSL) 用户。这个系统仅仅需要50MB的硬盘空间和16MB的RAM便可完美运行。DSL可以使一台20年前的486计算机充满活力;而这恰好满足了**Scott Walker**消减硬件成本的需求。当然,你使用DSL的体验也是最原始的;这个系统平台只能够运行一个浏览器。但是至少你在1993年购买的机器现在仍然能很好的工作,这样你也不用浪费钱财购买新的电脑硬件。 + + +**Chris Christie**会使用哪种系统呢?他肯定会依赖于一次设置便可持续工作的逻辑Linux灾难恢复方案,而这就是[Relax-and-Recover Linux][4]。Christie使用它主要是因为他的政治工作,从那次华盛顿大桥事故后,他的政治动力就受到了影响。不管它是否能够让Christie挽回一切事故,但是当他的电脑死机的时候,至少可以找到一些意外丢失的机密邮件。 + + + +对于**Carly Fiorina**,她不否定将要使用来自于[Hewlett-Packard][6] (HPQ)的软件为 "[The Machine][5]"开发操作系统,HPQ是她在1999年到2005年这6年期间所管理的公司。事实上,这种机器可以运行部分不同操作系统,而我不知道这些系统是否是基于Linux的; **Carly Fiorina**被惠普公司辞退后,开发操作系统工作就开始了。尽管如此,她仍然是她研究的计算机领域中的成功管理者。同时这也意味着她和惠普的联系彻底绝。 + + + +这才是重点,你也猜到了,他就是**Donald Trump**。想要拥有免费的、优秀的操作系统,他可能会用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统;同时他也可以向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统。它肯定没有使用POSIX【译者注:可移植操作系统接口】或者采用一些其他的标准,因为那样的话就需要提供一些其他的很多的规则。人们也不知道它的运行方式,因此,如果**Donald Trump**向人们展示了他的系统的运行方式,很明显他可能会把所有的机密都泄露给了伊斯兰国家,这是相当冒险的。 + + + +非此即彼,如果**Donald Trump**非要选择一种已有的类Linux操作系统, [Ubuntu][7]是明智的选择。而**Donald Trump**也是Ubuntu的开发者,他和他的团队通过使用他们已有的应用程序接口去定制他们认为的真正的开源软件。自由软件纯化论者却很不喜欢这种开发模式,他们很反感使用Ubuntu,反而很多其他人更喜欢Ubuntu。当然,用户自己的这种仅仅在软件和政治上的不同立场也是无伤大雅的,即使这样的分歧可能会一直存在。 + + +###敬请期待### + + +如果你想知道为什么我还没有提到民主党候人,别想了。我不会在这篇文章中提及他们,因为我一直对民主党和共和党保持中立观点(我个人认为,像美国这样的的情况,只有两个政党是不合理的;事实上,这种意义上的民主就显得很可笑,所以我不太相信这些党派候选人)。 + + +相反,也可能会有很多人关心民主党候选人使用的Linux分支。后续的帖子中我会提及的,请拭目以待。 + +-------------------------------------------------------------------------------- + +via: http://thevarguy.com/open-source-application-software-companies/081715/which-open-source-linux-distributions-would-presidential- + +作者:[Christopher Tozzi][a] +译者:[vim-kakali](https://github.com/vim-kakali) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://thevarguy.com/author/christopher-tozzi +[1]:http://thevarguy.com/open-source-application-software-companies/aligning-linux-distributions-presidential-hopefuls +[2]:http://debian.org/ +[3]:http://www.damnsmalllinux.org/ +[4]:http://relax-and-recover.org/ +[5]:http://thevarguy.com/open-source-application-software-companies/061614/hps-machine-open-source-os-truly-revolutionary +[6]:http://hp.com/ +[7]:http://ubuntu.com/ From 2a6c3ea7aa165fe0d7e1b8185d40726505ff7761 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Wed, 11 May 2016 21:08:03 +0800 Subject: [PATCH 477/582] Proofread 20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run --- ...butions Would Presidential Hopefuls Run.md | 125 ++++++++---------- 1 file changed, 53 insertions(+), 72 deletions(-) diff --git a/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md index a7419bd07a..30a81a51da 100644 --- a/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md +++ b/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md @@ -1,72 +1,53 @@ -总统更乐意使用哪种开源Linux分支? -================================================================================ -![Republican presidential candidate Donald Trump -](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/08/donaldtrump.jpg) - - - -共和党总统候选人Donald Trump【译者注:唐纳德·特朗普,美国地产大亨、作家、主持人】 - - -如果人们要竞选总统,而决定因素却是使用Linux或另一个开源操作系统,那么这样的系统会属于哪个分支呢?关键是存在与其他很多事情有关的问题,而这正好使我们很难抉择;比如,一些“政治立场”问题,或者是要判断某一个分支诞生时为它的名字加上感叹号是否合适——而这些问题一直被忽视。而忽视到此就结束了:接下来是时事新闻工作者关于总统大选和Linux分支的报道。 - - -对于那些已经看了很多年我的文字的人来说(除了我亲爱的的编辑之外,他们是不是也不够幸运一直听我的瞎扯?),这些话听起来很熟悉,这是因为我在去年的总统选举期间写了一个[similar post][1]。一些有趣的读者把这里面的内容看的很正式,然而我并不是这样想的,所以我会花点时间阐述我的观点:事实上,我不认为开源软件和政治运动对于一些事情有多大的意义。我写那样的文章仅仅是新的一周的自我消遣罢了。 - - - -当然,你也可以去了解更多的你想知道的东西,毕竟你才是读者。 - -###Linux分支:共和党人的选择### - -今天,我只是谈及一些有关共和主义的话题,我甚至只会谈论他们的其中一部分。因为共和党的期望提名太多了以至于我写满了整篇文章。由此开始: - - -如果**Jeb (Jeb!?) Bush**使用Linux,它定是[Debian][2]。Debian属于一个相当无趣的分支,它是为真正意义上的黑客设计的,这样的黑客通过使用这样的操作系统快速成长,并且乐此不疲。而且他们可以通过攻击一些初级开源爱好者的电脑来大捞一笔。当然,这也使得Debian显得很枯燥,所以它已有的用户基础一直在缩减。 - - - -**Scott Walker**是一个[Damn Small Linux][3] (DSL) 用户。这个系统仅仅需要50MB的硬盘空间和16MB的RAM便可完美运行。DSL可以使一台20年前的486计算机充满活力;而这恰好满足了**Scott Walker**消减硬件成本的需求。当然,你使用DSL的体验也是最原始的;这个系统平台只能够运行一个浏览器。但是至少你在1993年购买的机器现在仍然能很好的工作,这样你也不用浪费钱财购买新的电脑硬件。 - - -**Chris Christie**会使用哪种系统呢?他肯定会依赖于一次设置便可持续工作的逻辑Linux灾难恢复方案,而这就是[Relax-and-Recover Linux][4]。Christie使用它主要是因为他的政治工作,从那次华盛顿大桥事故后,他的政治动力就受到了影响。不管它是否能够让Christie挽回一切事故,但是当他的电脑死机的时候,至少可以找到一些意外丢失的机密邮件。 - - - -对于**Carly Fiorina**,她不否定将要使用来自于[Hewlett-Packard][6] (HPQ)的软件为 "[The Machine][5]"开发操作系统,HPQ是她在1999年到2005年这6年期间所管理的公司。事实上,这种机器可以运行部分不同操作系统,而我不知道这些系统是否是基于Linux的; **Carly Fiorina**被惠普公司辞退后,开发操作系统工作就开始了。尽管如此,她仍然是她研究的计算机领域中的成功管理者。同时这也意味着她和惠普的联系彻底绝。 - - - -这才是重点,你也猜到了,他就是**Donald Trump**。想要拥有免费的、优秀的操作系统,他可能会用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统;同时他也可以向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统。它肯定没有使用POSIX【译者注:可移植操作系统接口】或者采用一些其他的标准,因为那样的话就需要提供一些其他的很多的规则。人们也不知道它的运行方式,因此,如果**Donald Trump**向人们展示了他的系统的运行方式,很明显他可能会把所有的机密都泄露给了伊斯兰国家,这是相当冒险的。 - - - -非此即彼,如果**Donald Trump**非要选择一种已有的类Linux操作系统, [Ubuntu][7]是明智的选择。而**Donald Trump**也是Ubuntu的开发者,他和他的团队通过使用他们已有的应用程序接口去定制他们认为的真正的开源软件。自由软件纯化论者却很不喜欢这种开发模式,他们很反感使用Ubuntu,反而很多其他人更喜欢Ubuntu。当然,用户自己的这种仅仅在软件和政治上的不同立场也是无伤大雅的,即使这样的分歧可能会一直存在。 - - -###敬请期待### - - -如果你想知道为什么我还没有提到民主党候人,别想了。我不会在这篇文章中提及他们,因为我一直对民主党和共和党保持中立观点(我个人认为,像美国这样的的情况,只有两个政党是不合理的;事实上,这种意义上的民主就显得很可笑,所以我不太相信这些党派候选人)。 - - -相反,也可能会有很多人关心民主党候选人使用的Linux分支。后续的帖子中我会提及的,请拭目以待。 - --------------------------------------------------------------------------------- - -via: http://thevarguy.com/open-source-application-software-companies/081715/which-open-source-linux-distributions-would-presidential- - -作者:[Christopher Tozzi][a] -译者:[vim-kakali](https://github.com/vim-kakali) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://thevarguy.com/author/christopher-tozzi -[1]:http://thevarguy.com/open-source-application-software-companies/aligning-linux-distributions-presidential-hopefuls -[2]:http://debian.org/ -[3]:http://www.damnsmalllinux.org/ -[4]:http://relax-and-recover.org/ -[5]:http://thevarguy.com/open-source-application-software-companies/061614/hps-machine-open-source-os-truly-revolutionary -[6]:http://hp.com/ -[7]:http://ubuntu.com/ +总统更乐意使用哪种开源Linux分支? +================================================================================ +![Republican presidential candidate Donald Trump +](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/08/donaldtrump.jpg) + +共和党总统候选人 Donald Trump【译者注:唐纳德·特朗普,美国地产大亨、作家、主持人】 + +如果人们要竞选总统,而决定因素却是使用 Linux 或其他的开源操作系统,那么这样的系统会是哪个发行版呢?关键是存在与其他很多事情有关的问题,而这正好使我们很难抉择;比如,一些“政治立场”问题,或者是要判断某一个分支诞生时为它的名字加上感叹号是否合适——而这些问题一直被忽视。而忽视到此就结束了:接下来是时事新闻工作者关于总统大选和 Linux 分支的报道。 + +对于那些已经看了很多年我的文字的人来说(除了我亲爱的的编辑之外,他们一直听我的瞎扯是不是倒霉到家了?),这些话听起来很熟悉,这是因为我在去年的总统选举期间写了一篇[类似的文章][1]。一些有趣的读者把这里面的内容看的很正式,然而我并不是这样想的,所以我会花点时间阐述我的观点:事实上,我不认为开源软件和政治运动对于一些事情有多大的意义。我写那样的文章仅仅是新的一周的自我消遣罢了。 + +当然,你也可以去了解更多的你想知道的东西,毕竟你才是读者。 + +### Linux 分支:共和党人的选择 ### + +今天,我只是谈及一些有关共和主义的话题,我甚至只会谈论他们的其中一部分。因为共和党的期望提名太多了以至于我写满了整篇文章。由此开始: + +如果 **Jeb (Jeb!?) Bush** 使用 Linux,它一定是 [Debian][2]。Debian 属于一个相当无趣的分支,它是为真正意义上的黑客设计的,它们将快速成长起来并清理经验不甚丰富的开源爱好者造成的混乱视为一大使命。当然,这也使得Debian显得很枯燥,所以它已有的用户基础一直在缩减。 + +**Scott Walker** 是一个 [Damn Small Linux][3] (DSL) 用户。这个系统仅仅需要 50MB 的硬盘空间和 16MB 的 RAM 便可完美运行。DSL 可以使一台 20 年前的 486 计算机充满活力;而这恰好满足了 **Scott Walker** 消减硬件成本的需求。当然,你使用 DSL 的体验也是最原始的;这个系统平台只能够运行一个浏览器。但是至少你在 1993 年购买的机器现在仍然能很好的工作,这样你也不用浪费钱财购买新的电脑硬件。 + +**Chris Christie** 会使用哪种系统呢?他肯定会依赖于一次设置便可持续工作的裸机 Linux 灾难恢复方案,而这就是 [Relax-and-Recover Linux][4]。Christie 使用它主要是因为他的政治工作,从那次华盛顿大桥事故后,他的政治动力就受到了影响。不管它是否能够让 Christie 挽回一切事故,但是当他的电脑死机的时候,至少可以找到一些意外丢失的机密邮件。 + +至于 **Carly Fiorina**,她无疑将要使用 [Hewlett-Packard][6] (HPQ)为“[The Machine][5]”操作系统开发的软件,HPQ 是她在 1999 年到 2005 年这 6 年期间所管理的公司。事实上,这种机器可以运行部分不同操作系统,而我们并不清楚这些系统是否基于 Linux;**Carly Fiorina** 被惠普公司辞退后,开发操作系统工作就开始了。尽管如此,她仍然是她研究的计算机领域中的成功管理者。同时这也意味着她很难与惠普的彻底断绝关系。 + +最后——这才是重点,你也猜到了——**Donald Trump**。想要拥有免费的、优秀的操作系统,他可能会用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统;同时他也可以向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统。它肯定没有兼容 POSIX【译者注:可移植操作系统接口】或者采用一些其他的标准,因为那样的话就需要提供一些其他的很多的规则。同时这个系统完全不提供任何文档,因为如果 **Donald Trump** 向人们展示了他的系统的运行方式,很明显他会经受所有机密被泄露至伊斯兰国家的风险。 + +非此即彼,如果 **Donald Trump** 非要选择一种已有的 Linux 操作系统, [Ubuntu][7] 应该是明智的选择。而 **Donald Trump** 也是 Ubuntu 的开发者,他和他的团队按照他们的想法,通过开发他们自由的甚至是专有的应用和接口去打造他们认为的开源软件。自由软件纯化论者却很不喜欢这种开发模式,他们很反感使用 Ubuntu,反而很多其他人更喜欢 Ubuntu。当然,长远来看,关于这种做法的争论(无论是政治领域还是软件领域)还待见分晓。 + +### 敬请期待 ### + +如果你想知道为什么我还没有提到民主党候人,别想了。我不会在这篇文章中提及他们,因为我一直对民主党和共和党保持中立观点(我个人认为,像美国这样的的情况,只有两个政党是不合理的;事实上,这种意义上的民主就显得很可笑,所以我不太相信这些党派候选人)。 + +相反,也可能会有很多人关心民主党候选人使用的Linux分支。后续的帖子中我会提及的,请拭目以待。 + +-------------------------------------------------------------------------------- + +via: http://thevarguy.com/open-source-application-software-companies/081715/which-open-source-linux-distributions-would-presidential- + +作者:[Christopher Tozzi][a] +译者:[vim-kakali](https://github.com/vim-kakali) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://thevarguy.com/author/christopher-tozzi +[1]:http://thevarguy.com/open-source-application-software-companies/aligning-linux-distributions-presidential-hopefuls +[2]:http://debian.org/ +[3]:http://www.damnsmalllinux.org/ +[4]:http://relax-and-recover.org/ +[5]:http://thevarguy.com/open-source-application-software-companies/061614/hps-machine-open-source-os-truly-revolutionary +[6]:http://hp.com/ +[7]:http://ubuntu.com/ From 46b106bb7a390f09a0e80292b30271fb5ed42f71 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 11 May 2016 21:30:43 +0800 Subject: [PATCH 478/582] =?UTF-8?q?20160511-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LXD/Part 7 - LXD 2.0--Docker in LXD.md | 143 +++++++++++++++++- 1 file changed, 141 insertions(+), 2 deletions(-) diff --git a/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md b/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md index 60bb3883df..bf4fe35c4f 100644 --- a/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md +++ b/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md @@ -1,6 +1,145 @@ Part 7 - LXD 2.0: Docker in LXD ================================== -<正文待补充> +This is the third blog post [in this series about LXD 2.0][0]. -原文: https://www.stgraber.org/2016/04/13/lxd-2-0-docker-in-lxd-712/ +![](https://linuxcontainers.org/static/img/containers.png) + +### Why run Docker inside LXD + +As I briefly covered in the [first post of this series][1], LXD’s focus is system containers. That is, we run a full unmodified Linux distribution inside our containers. LXD for all intent and purposes doesn’t care about the workload running in the container. It just sets up the container namespaces and security policies, then spawns /sbin/init and waits for the container to stop. + +Application containers such as those implemented by Docker or Rkt are pretty different in that they are used to distribute applications, will typically run a single main process inside them and be much more ephemeral than a LXD container. + +Those two container types aren’t mutually exclusive and we certainly see the value of using Docker containers to distribute applications. That’s why we’ve been working hard over the past year to make it possible to run Docker inside LXD. + +This means that with Ubuntu 16.04 and LXD 2.0, you can create containers for your users who will then be able to connect into them just like a normal Ubuntu system and then run Docker to install the services and applications they want. + +### Requirements + +There are a lot of moving pieces to make all of this working and we got it all included in Ubuntu 16.04: + +- A kernel with CGroup namespace support (4.4 Ubuntu or 4.6 mainline) +- LXD 2.0 using LXC 2.0 and LXCFS 2.0 +- A custom version of Docker (or one built with all the patches that we submitted) +- A Docker image which behaves when confined by user namespaces, or alternatively make the parent LXD container a privileged container (security.privileged=true) + +### Running a basic Docker workload + +Enough talking, lets run some Docker containers! + +First of all, you need an Ubuntu 16.04 container which you can get with: + +``` +lxc launch ubuntu-daily:16.04 docker -p default -p docker +``` + +The “-p default -p docker” instructs LXD to apply both the “default” and “docker” profiles to the container. The default profile contains the basic network configuration while the docker profile tells LXD to load a few required kernel modules and set up some mounts for the container. The docker profile also enables container nesting. + +Now lets make sure the container is up to date and install docker: + +``` +lxc exec docker -- apt update +lxc exec docker -- apt dist-upgrade -y +lxc exec docker -- apt install docker.io -y +``` + +And that’s it! You’ve got Docker installed and running in your container. +Now lets start a basic web service made of two Docker containers: + +``` +stgraber@dakara:~$ lxc exec docker -- docker run --detach --name app carinamarina/hello-world-app +Unable to find image 'carinamarina/hello-world-app:latest' locally +latest: Pulling from carinamarina/hello-world-app +efd26ecc9548: Pull complete +a3ed95caeb02: Pull complete +d1784d73276e: Pull complete +72e581645fc3: Pull complete +9709ddcc4d24: Pull complete +2d600f0ec235: Pull complete +c4cf94f61cbd: Pull complete +c40f2ab60404: Pull complete +e87185df6de7: Pull complete +62a11c66eb65: Pull complete +4c5eea9f676d: Pull complete +498df6a0d074: Pull complete +Digest: sha256:6a159db50cb9c0fbe127fb038ed5a33bb5a443fcdd925ec74bf578142718f516 +Status: Downloaded newer image for carinamarina/hello-world-app:latest +c8318f0401fb1e119e6c5bb23d1e706e8ca080f8e44b42613856ccd0bf8bfb0d + +stgraber@dakara:~$ lxc exec docker -- docker run --detach --name web --link app:helloapp -p 80:5000 carinamarina/hello-world-web +Unable to find image 'carinamarina/hello-world-web:latest' locally +latest: Pulling from carinamarina/hello-world-web +efd26ecc9548: Already exists +a3ed95caeb02: Already exists +d1784d73276e: Already exists +72e581645fc3: Already exists +9709ddcc4d24: Already exists +2d600f0ec235: Already exists +c4cf94f61cbd: Already exists +c40f2ab60404: Already exists +e87185df6de7: Already exists +f2d249ff479b: Pull complete +97cb83fe7a9a: Pull complete +d7ce7c58a919: Pull complete +Digest: sha256:c31cf04b1ab6a0dac40d0c5e3e64864f4f2e0527a8ba602971dab5a977a74f20 +Status: Downloaded newer image for carinamarina/hello-world-web:latest +d7b8963401482337329faf487d5274465536eebe76f5b33c89622b92477a670f +``` + +With those two Docker containers now running, we can then get the IP address of our LXD container and access the service! + +``` +stgraber@dakara:~$ lxc list ++--------+---------+----------------------+----------------------------------------------+------------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++--------+---------+----------------------+----------------------------------------------+------------+-----------+ +| docker | RUNNING | 172.17.0.1 (docker0) | 2001:470:b368:4242:216:3eff:fe55:45f4 (eth0) | PERSISTENT | 0 | +| | | 10.178.150.73 (eth0) | | | | ++--------+---------+----------------------+----------------------------------------------+------------+-----------+ + +stgraber@dakara:~$ curl http://10.178.150.73 +The linked container said... "Hello World!" +``` + +### Conclusion + +That’s it! It’s really that simple to run Docker containers inside a LXD container. + +Now as I mentioned earlier, not all Docker images will behave as well as my example, that’s typically because of the extra confinement that comes with LXD, specifically the user namespace. + +Only the overlayfs storage driver of Docker works in this mode. That storage driver may come with its own set of limitation which may further limit how many images will work in this environment. + +If your workload doesn’t work properly and you trust the user inside the LXD container, you can try: + +``` +lxc config set docker security.privileged true +lxc restart docker +``` + +That will de-activate the user namespace and will run the container in privileged mode. + +Note however that in this mode, root inside the container is the same uid as root on the host. There are a number of known ways for users to escape such containers and gain root privileges on the host, so you should only ever do that if you’d trust the user inside your LXD container with root privileges on the host. + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net + + +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/04/13/lxd-2-0-docker-in-lxd-712/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://www.stgraber.org/2016/03/11/lxd-2-0-introduction-to-lxd-112/ +[2]: https://linuxcontainers.org/lxd/try-it/ From b54faae06699c6c0b2c7881824fc32019aa12d83 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 11 May 2016 21:36:18 +0800 Subject: [PATCH 479/582] =?UTF-8?q?20150511-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/LXD/Part 8 - LXD 2.0--LXD in LXD.md | 124 +++++++++++++++++- 1 file changed, 122 insertions(+), 2 deletions(-) diff --git a/sources/tech/LXD/Part 8 - LXD 2.0--LXD in LXD.md b/sources/tech/LXD/Part 8 - LXD 2.0--LXD in LXD.md index 76c361e517..85d9873313 100644 --- a/sources/tech/LXD/Part 8 - LXD 2.0--LXD in LXD.md +++ b/sources/tech/LXD/Part 8 - LXD 2.0--LXD in LXD.md @@ -1,6 +1,126 @@ Part 8 - LXD 2.0: LXD in LXD ============================== -<原文待补充> +This is the eighth blog post [in this series about LXD 2.0][0]. -原文:https://www.stgraber.org/2016/04/14/lxd-2-0-lxd-in-lxd-812/ +![](https://linuxcontainers.org/static/img/containers.png) + +### Introduction + +In the previous post I covered how to run [Docker inside LXD][1] which is a good way to get access to the portfolio of application provided by Docker while running in the safety of the LXD environment. + +One use case I mentioned was offering a LXD container to your users and then have them use their container to run Docker. Well, what if they themselves want to run other Linux distributions inside their container using LXD, or even allow another group of people to have access to a Linux system by running a container for them? + +Turns out, LXD makes it very simple to allow your users to run nested containers. + +### Nesting LXD + +The most simple case can be shown by using an Ubuntu 16.04 image. Ubuntu 16.04 cloud images come with LXD pre-installed. The daemon itself isn’t running as it’s socket-activated so it doesn’t use any resources until you actually talk to it. + +So lets start an Ubuntu 16.04 container with nesting enabled: + +``` +lxc launch ubuntu-daily:16.04 c1 -c security.nesting=true +``` + +You can also set the security.nesting key on an existing container with: + +``` +lxc config set security.nesting true +``` + +Or for all containers using a particular profile with: + +``` +lxc profile set security.nesting true +``` + +With that container started, you can now get a shell inside it, configure LXD and spawn a container: + +``` +stgraber@dakara:~$ lxc launch ubuntu-daily:16.04 c1 -c security.nesting=true +Creating c1 +Starting c1 + +stgraber@dakara:~$ lxc exec c1 bash +root@c1:~# lxd init +Name of the storage backend to use (dir or zfs): dir + +We detected that you are running inside an unprivileged container. +This means that unless you manually configured your host otherwise, +you will not have enough uid and gid to allocate to your containers. + +LXD can re-use your container's own allocation to avoid the problem. +Doing so makes your nested containers slightly less safe as they could +in theory attack their parent container and gain more privileges than +they otherwise would. + +Would you like to have your containers share their parent's allocation (yes/no)? yes +Would you like LXD to be available over the network (yes/no)? no +Do you want to configure the LXD bridge (yes/no)? yes +Warning: Stopping lxd.service, but it can still be activated by: + lxd.socket +LXD has been successfully configured. + +root@c1:~# lxc launch ubuntu:14.04 trusty +Generating a client certificate. This may take a minute... +If this is your first time using LXD, you should also run: sudo lxd init + +Creating trusty +Retrieving image: 100% +Starting trusty + +root@c1:~# lxc list ++--------+---------+-----------------------+----------------------------------------------+------------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++--------+---------+-----------------------+----------------------------------------------+------------+-----------+ +| trusty | RUNNING | 10.153.141.124 (eth0) | fd7:f15d:d1d6:da14:216:3eff:fef1:4002 (eth0) | PERSISTENT | 0 | ++--------+---------+-----------------------+----------------------------------------------+------------+-----------+ +root@c1:~# +``` + +It really is that simple! + +### The online demo server + +As this post is pretty short, I figured I would spend a bit of time to talk about the [demo server][2] we’re running. We also just reached the 10000 sessions mark earlier today! + +That server is basically just a normal LXD running inside a pretty beefy virtual machine with a tiny daemon implementing the REST API used by our website. + +When you accept the terms of service, a new LXD container is created for you with security.nesting enabled as we saw above. You are then attached to that container as you would when using “lxc exec” except that we’re doing it using websockets and javascript. + +The containers you then create inside this environment are all nested LXD containers. +You can then nest even further in there if you want to. + +We are using the whole range of [LXD resource limitations][3] to prevent one user’s actions from impacting the others and pretty closely monitor the server for any sign of abuse. + +If you want to run your own similar server, you can grab the code for our website and the daemon with: + +``` +git clone https://github.com/lxc/linuxcontainers.org +git clone https://github.com/lxc/lxd-demo-server +``` + +### Extra information + +The main LXD website is at: +Development happens on Github at: +Mailing-list support happens on: +IRC support happens in: #lxcontainers on irc.freenode.net + + +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/04/14/lxd-2-0-lxd-in-lxd-812/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://www.stgraber.org/2016/04/13/lxd-2-0-docker-in-lxd-712/ +[2]: https://linuxcontainers.org/lxd/try-it/ +[3]: https://www.stgraber.org/2016/03/26/lxd-2-0-resource-control-412/ From be6667966757a8f337dff561873685ce51d65a5c Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 11 May 2016 21:36:49 +0800 Subject: [PATCH 480/582] =?UTF-8?q?20150511-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md b/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md index bf4fe35c4f..d9b35735b8 100644 --- a/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md +++ b/sources/tech/LXD/Part 7 - LXD 2.0--Docker in LXD.md @@ -1,7 +1,7 @@ Part 7 - LXD 2.0: Docker in LXD ================================== -This is the third blog post [in this series about LXD 2.0][0]. +This is the seventh blog post [in this series about LXD 2.0][0]. ![](https://linuxcontainers.org/static/img/containers.png) From 3718792549e28b9f72ee4303db456c481147427d Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 11 May 2016 21:42:57 +0800 Subject: [PATCH 481/582] =?UTF-8?q?20150511-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LXD/Part 9 - LXD 2.0--Live migration.md | 326 +++++++++++++++++- 1 file changed, 324 insertions(+), 2 deletions(-) diff --git a/sources/tech/LXD/Part 9 - LXD 2.0--Live migration.md b/sources/tech/LXD/Part 9 - LXD 2.0--Live migration.md index 7be46f6a00..51f9c8b1a7 100644 --- a/sources/tech/LXD/Part 9 - LXD 2.0--Live migration.md +++ b/sources/tech/LXD/Part 9 - LXD 2.0--Live migration.md @@ -1,6 +1,328 @@ Part 9 - LXD 2.0: Live migration ================================= -<正文待补充> +This is the ninth blog post [in this series about LXD 2.0][0]. -原文:https://www.stgraber.org/2016/04/25/lxd-2-0-live-migration-912/ +![](https://linuxcontainers.org/static/img/containers.png) + +### Introduction + +One of the very exciting feature of LXD 2.0, albeit experimental, is the support for container checkpoint and restore. + +Simply put, checkpoint/restore means that the running container state can be serialized down to disk and then restored, either on the same host as a stateful snapshot of the container or on another host which equates to live migration. + +### Requirements + +To have access to container live migration and stateful snapshots, you need the following: + +- A very recent Linux kernel, 4.4 or higher. +- CRIU 2.0, possibly with some cherry-picked commits depending on your exact kernel configuration. +- Run LXD directly on the host. It’s not possible to use those features with container nesting. +- For migration, the target machine must at least implement the instruction set of the source, the target kernel must at least offer the same syscalls as the source and any kernel filesystem which was mounted on the source must also be mountable on the target. + +All the needed dependencies are provided by Ubuntu 16.04 LTS, in which case, all you need to do is install CRIU itself: + +``` +apt install criu +``` + +### Using the thing + +#### Stateful snapshots + +A normal container snapshot looks like: + +``` +stgraber@dakara:~$ lxc snapshot c1 first +stgraber@dakara:~$ lxc info c1 | grep first + first (taken at 2016/04/25 19:35 UTC) (stateless) + ``` + +A stateful snapshot instead looks like: + +``` +stgraber@dakara:~$ lxc snapshot c1 second --stateful +stgraber@dakara:~$ lxc info c1 | grep second + second (taken at 2016/04/25 19:36 UTC) (stateful) + ``` + +This means that all the container runtime state was serialized to disk and included as part of the snapshot. Restoring one such snapshot is done as you would a stateless one: + +``` +stgraber@dakara:~$ lxc restore c1 second +stgraber@dakara:~$ +``` + +#### Stateful stop/start + +Say you want to reboot your server for a kernel update or similar maintenance. Rather than have to wait for all the containers to start from scratch after reboot, you can do: + +``` +stgraber@dakara:~$ lxc stop c1 --stateful +``` + +The container state will be written to disk and then picked up the next time you start it. + +You can even look at what the state looks like: + +``` +root@dakara:~# tree /var/lib/lxd/containers/c1/rootfs/state/ +/var/lib/lxd/containers/c1/rootfs/state/ +├── cgroup.img +├── core-101.img +├── core-102.img +├── core-107.img +├── core-108.img +├── core-109.img +├── core-113.img +├── core-114.img +├── core-122.img +├── core-125.img +├── core-126.img +├── core-127.img +├── core-183.img +├── core-1.img +├── core-245.img +├── core-246.img +├── core-50.img +├── core-52.img +├── core-95.img +├── core-96.img +├── core-97.img +├── core-98.img +├── dump.log +├── eventfd.img +├── eventpoll.img +├── fdinfo-10.img +├── fdinfo-11.img +├── fdinfo-12.img +├── fdinfo-13.img +├── fdinfo-14.img +├── fdinfo-2.img +├── fdinfo-3.img +├── fdinfo-4.img +├── fdinfo-5.img +├── fdinfo-6.img +├── fdinfo-7.img +├── fdinfo-8.img +├── fdinfo-9.img +├── fifo-data.img +├── fifo.img +├── filelocks.img +├── fs-101.img +├── fs-113.img +├── fs-122.img +├── fs-183.img +├── fs-1.img +├── fs-245.img +├── fs-246.img +├── fs-50.img +├── fs-52.img +├── fs-95.img +├── fs-96.img +├── fs-97.img +├── fs-98.img +├── ids-101.img +├── ids-113.img +├── ids-122.img +├── ids-183.img +├── ids-1.img +├── ids-245.img +├── ids-246.img +├── ids-50.img +├── ids-52.img +├── ids-95.img +├── ids-96.img +├── ids-97.img +├── ids-98.img +├── ifaddr-9.img +├── inetsk.img +├── inotify.img +├── inventory.img +├── ip6tables-9.img +├── ipcns-var-10.img +├── iptables-9.img +├── mm-101.img +├── mm-113.img +├── mm-122.img +├── mm-183.img +├── mm-1.img +├── mm-245.img +├── mm-246.img +├── mm-50.img +├── mm-52.img +├── mm-95.img +├── mm-96.img +├── mm-97.img +├── mm-98.img +├── mountpoints-12.img +├── netdev-9.img +├── netlinksk.img +├── netns-9.img +├── netns-ct-9.img +├── netns-exp-9.img +├── packetsk.img +├── pagemap-101.img +├── pagemap-113.img +├── pagemap-122.img +├── pagemap-183.img +├── pagemap-1.img +├── pagemap-245.img +├── pagemap-246.img +├── pagemap-50.img +├── pagemap-52.img +├── pagemap-95.img +├── pagemap-96.img +├── pagemap-97.img +├── pagemap-98.img +├── pages-10.img +├── pages-11.img +├── pages-12.img +├── pages-13.img +├── pages-1.img +├── pages-2.img +├── pages-3.img +├── pages-4.img +├── pages-5.img +├── pages-6.img +├── pages-7.img +├── pages-8.img +├── pages-9.img +├── pipes-data.img +├── pipes.img +├── pstree.img +├── reg-files.img +├── remap-fpath.img +├── route6-9.img +├── route-9.img +├── rule-9.img +├── seccomp.img +├── sigacts-101.img +├── sigacts-113.img +├── sigacts-122.img +├── sigacts-183.img +├── sigacts-1.img +├── sigacts-245.img +├── sigacts-246.img +├── sigacts-50.img +├── sigacts-52.img +├── sigacts-95.img +├── sigacts-96.img +├── sigacts-97.img +├── sigacts-98.img +├── signalfd.img +├── stats-dump +├── timerfd.img +├── tmpfs-dev-104.tar.gz.img +├── tmpfs-dev-109.tar.gz.img +├── tmpfs-dev-110.tar.gz.img +├── tmpfs-dev-112.tar.gz.img +├── tmpfs-dev-114.tar.gz.img +├── tty.info +├── unixsk.img +├── userns-13.img +└── utsns-11.img + +0 directories, 154 files +``` + +Restoring the container can be done with a simple: + +``` +stgraber@dakara:~$ lxc start c1 +``` + +### Live migration + +Live migration is basically the same as the stateful stop/start above, except that the container directory and configuration happens to be moved to another machine too. + +``` +stgraber@dakara:~$ lxc list c1 ++------+---------+-----------------------+----------------------------------------------+------------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++------+---------+-----------------------+----------------------------------------------+------------+-----------+ +| c1 | RUNNING | 10.178.150.197 (eth0) | 2001:470:b368:4242:216:3eff:fe19:27b0 (eth0) | PERSISTENT | 2 | ++------+---------+-----------------------+----------------------------------------------+------------+-----------+ + +stgraber@dakara:~$ lxc list s-tollana: ++------+-------+------+------+------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++------+-------+------+------+------+-----------+ + +stgraber@dakara:~$ lxc move c1 s-tollana: + +stgraber@dakara:~$ lxc list c1 ++------+-------+------+------+------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++------+-------+------+------+------+-----------+ + +stgraber@dakara:~$ lxc list s-tollana: ++------+---------+-----------------------+----------------------------------------------+------------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++------+---------+-----------------------+----------------------------------------------+------------+-----------+ +| c1 | RUNNING | 10.178.150.197 (eth0) | 2001:470:b368:4242:216:3eff:fe19:27b0 (eth0) | PERSISTENT | 2 | ++------+---------+-----------------------+----------------------------------------------+------------+-----------+ +``` + +### Limitations + +As I said before, checkpoint/restore of containers is still pretty new and we’re still very much working on this feature, fixing issues as we are made aware of them. We do need more people trying this feature and sending us feedback, I would however not recommend using this in production just yet. + +The current list of issues we’re tracking is [available on Launchpad][1]. + +We expect a basic Ubuntu container with a few services to work properly with CRIU in Ubuntu 16.04. However more complex containers, using device passthrough, complex network services or special storage configurations are likely to fail. + +Whenever possible, CRIU will fail at dump time, rather than at restore time. In such cases, the source container will keep running, the snapshot or migration will simply fail and a log file will be generated for debugging. + +In rare cases, CRIU fails to restore the container, in which case the source container will still be around but will be stopped and will have to be manually restarted. + +### Sending bug reports + +We’re tracking bugs related to checkpoint/restore against the CRIU Ubuntu package on Launchpad. Most of the work to fix those bugs will then happen upstream either on CRIU itself or the Linux kernel, but it’s easier for us to track things this way. + +To file a new bug report, head here. + +Please make sure to include: + +The command you ran and the error message as displayed to you + +- Output of “lxc info” (*) +- Output of “lxc info ” +- Output of “lxc config show –expanded ” +- Output of “dmesg” (*) +- Output of “/proc/self/mountinfo” (*) +- Output of “lxc exec — cat /proc/self/mountinfo” +- Output of “uname -a” (*) +- The content of /var/log/lxd.log (*) +- The content of /etc/default/lxd-bridge (*) +- A tarball of /var/log/lxd// (*) + +If reporting a migration bug as opposed to a stateful snapshot or stateful stop bug, please include the data for both the source and target for any of the above which has been marked with a (*). + +### Extra information + +The CRIU website can be found at: + +The main LXD website is at: + +Development happens on Github at: + +Mailing-list support happens on: + +IRC support happens in: #lxcontainers on irc.freenode.net + + +-------------------------------------------------------------------------------- + +via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ + +作者:[Stéphane Graber][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://bugs.launchpad.net/ubuntu/+source/criu/+bugs +[3]: https://launchpad.net/ubuntu/+source/criu/+filebug?no-redirect From 943a78716503f97b05a645b778d511a98d6eac03 Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Thu, 12 May 2016 13:31:42 +0800 Subject: [PATCH 482/582] Fix typos --- ...e Linux Distributions Would Presidential Hopefuls Run.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md index 30a81a51da..e87e93ca32 100644 --- a/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md +++ b/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md @@ -21,11 +21,11 @@ **Chris Christie** 会使用哪种系统呢?他肯定会依赖于一次设置便可持续工作的裸机 Linux 灾难恢复方案,而这就是 [Relax-and-Recover Linux][4]。Christie 使用它主要是因为他的政治工作,从那次华盛顿大桥事故后,他的政治动力就受到了影响。不管它是否能够让 Christie 挽回一切事故,但是当他的电脑死机的时候,至少可以找到一些意外丢失的机密邮件。 -至于 **Carly Fiorina**,她无疑将要使用 [Hewlett-Packard][6] (HPQ)为“[The Machine][5]”操作系统开发的软件,HPQ 是她在 1999 年到 2005 年这 6 年期间所管理的公司。事实上,这种机器可以运行部分不同操作系统,而我们并不清楚这些系统是否基于 Linux;**Carly Fiorina** 被惠普公司辞退后,开发操作系统工作就开始了。尽管如此,她仍然是她研究的计算机领域中的成功管理者。同时这也意味着她很难与惠普的彻底断绝关系。 +至于 **Carly Fiorina**,她无疑将要使用 [Hewlett-Packard][6] (HPQ)为“[The Machine][5]”操作系统开发的软件,HPQ 是她在 1999 年到 2005 年这 6 年期间所管理的公司。事实上,这种机器可以运行部分不同操作系统,而我们并不清楚这些系统是否基于 Linux;**Carly Fiorina** 被惠普公司辞退后,开发操作系统工作就开始了。尽管如此,她仍然是她研究的计算机领域中的成功管理者。同时这也意味着她很难与惠普彻底断绝关系。 -最后——这才是重点,你也猜到了——**Donald Trump**。想要拥有免费的、优秀的操作系统,他可能会用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统;同时他也可以向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统。它肯定没有兼容 POSIX【译者注:可移植操作系统接口】或者采用一些其他的标准,因为那样的话就需要提供一些其他的很多的规则。同时这个系统完全不提供任何文档,因为如果 **Donald Trump** 向人们展示了他的系统的运行方式,很明显他会经受所有机密被泄露至伊斯兰国家的风险。 +最后——这才是重点,你也猜到了——**Donald Trump**。想要拥有免费的、优秀的操作系统的他,可能会用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统;同时他也可以向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统。它肯定没有兼容 POSIX【译者注:可移植操作系统接口】或者采用一些其他的标准,因为那样的话就需要提供一些其他的很多的规则。同时这个系统完全不提供任何文档,因为如果 **Donald Trump** 向人们展示了他的系统的运行方式,很明显他会经受所有机密被泄露至伊斯兰国家的风险。 -非此即彼,如果 **Donald Trump** 非要选择一种已有的 Linux 操作系统, [Ubuntu][7] 应该是明智的选择。而 **Donald Trump** 也是 Ubuntu 的开发者,他和他的团队按照他们的想法,通过开发他们自由的甚至是专有的应用和接口去打造他们认为的开源软件。自由软件纯化论者却很不喜欢这种开发模式,他们很反感使用 Ubuntu,反而很多其他人更喜欢 Ubuntu。当然,长远来看,关于这种做法的争论(无论是政治领域还是软件领域)还待见分晓。 +非此即彼,如果 **Donald Trump** 非要选择一种已有的 Linux 操作系统, [Ubuntu][7] 应该是明智的选择。而 **Donald Trump** 也是 Ubuntu 的开发者,他和他的团队按照他们的想法,通过开发他们自有的甚至是专有的应用和接口去打造他们认为的开源软件。自由软件纯化论者却很不喜欢这种开发模式,他们很反感使用 Ubuntu,反而很多其他人更喜欢 Ubuntu。当然,长远来看,关于这种做法的争论(无论是政治领域还是软件领域)还待见分晓。 ### 敬请期待 ### From 15da08fd841b06edba8d4c79dc5adaaa72d66d1a Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 12 May 2016 21:20:14 +0800 Subject: [PATCH 483/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sources/tech/LXD/Part 4 - LXD 2.0--Resource control.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sources/tech/LXD/Part 4 - LXD 2.0--Resource control.md b/sources/tech/LXD/Part 4 - LXD 2.0--Resource control.md index e404cccffa..736c5b84bc 100644 --- a/sources/tech/LXD/Part 4 - LXD 2.0--Resource control.md +++ b/sources/tech/LXD/Part 4 - LXD 2.0--Resource control.md @@ -1,3 +1,6 @@ +ezio is translating + + Part 4 - LXD 2.0: Resource control ====================================== From e4e812e422e93fd5d4cb0d98598b9ff23169e18a Mon Sep 17 00:00:00 2001 From: vim-kakali <1799225723@qq.com> Date: Fri, 13 May 2016 16:18:24 +0800 Subject: [PATCH 484/582] vim-kakali translating --- .../20160505 Confessions of a cross-platform developer.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/talk/20160505 Confessions of a cross-platform developer.md b/sources/talk/20160505 Confessions of a cross-platform developer.md index 807dfd544b..0f6af84070 100644 --- a/sources/talk/20160505 Confessions of a cross-platform developer.md +++ b/sources/talk/20160505 Confessions of a cross-platform developer.md @@ -1,3 +1,7 @@ +vim-kakali translating + + + Confessions of a cross-platform developer ============================================= From edc75c98c9a9b269823119a29ef1c4f670c5aae8 Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 14 May 2016 18:19:44 +0800 Subject: [PATCH 485/582] PUB:20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @vim-kakali , @PurlingNayuki ,我认为这篇文章的翻译和校对都存在一些问题,因此我做了较大篇幅的修正,请参考比较。可能也有错误或者大家有不同的翻译意见,希望可以展开讨论。 --- ...butions Would Presidential Hopefuls Run.md | 53 +++++++++++++++++++ ...butions Would Presidential Hopefuls Run.md | 53 ------------------- 2 files changed, 53 insertions(+), 53 deletions(-) create mode 100644 published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md delete mode 100644 translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md diff --git a/published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md new file mode 100644 index 0000000000..87c91930b3 --- /dev/null +++ b/published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md @@ -0,0 +1,53 @@ +如果总统候选人们要使用 Linux 发行版,他们会选择哪个? +================================================================================ +![Republican presidential candidate Donald Trump +](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/08/donaldtrump.jpg) + +*共和党总统候选人 Donald Trump【译者注:唐纳德·特朗普,美国地产大亨、作家、主持人】* + +如果要竞选总统的人们使用 Linux 或其他的开源操作系统,那么会使用哪个发行版呢?问题的关键是存在许多其它的因素,比如,一些“政治立场”问题,或者是给一个发行版的名字添加上感叹号是否合适——而这问题一直被忽视。先不管这些忽视:接下来是时事新闻工作者关于总统大选和 Linux 发行版的报道。 + +对于那些已经看了很多年我的文字的人来说(除了我亲爱的的编辑之外,他们一直听我的瞎扯是不是倒霉到家了?),这篇文章听起来很熟悉,这是因为我在去年的总统选举期间写了一篇[类似的文章][1]。一些读者把这篇文章的内容看的比我想象的还要严肃,所以我会花点时间阐述我的观点:事实上,我不认为开源软件和政治运动彼此之间有多大的关系。我写那样的文章仅仅是新的一周的自我消遣罢了。 + +当然,你也可以认为它们彼此相关,毕竟你才是读者。 + +### Linux 发行版之选:共和党人们 ### + +今天,我只是谈及一些有关共和党人们的话题,我甚至只会谈论他们的其中一部分。因为共和党的提名人太多了,以至于我写满了整篇文章。由此开始: + +如果 **Jeb (Jeb!?) Bush** 使用 Linux,它一定是 [Debian][2]。Debian 属于一个相当无趣的分支,它是为真正意义上的、成熟的黑客设计的,这些人将清理那些由经验不甚丰富的开源爱好者所造成的混乱视为一大使命。当然,这也使得 Debian 显得很枯燥,所以它已有的用户基数一直在缩减。 + +**Scott Walker** ,对于他来说,应该是一个 [Damn Small Linux][3] (DSL) 用户。这个系统仅仅需要 50MB 的硬盘空间和 16MB 的 RAM 便可运行。DSL 可以使一台 20 年前的 486 计算机焕发新春,而这恰好符合了 **Scott Walker** 所主张的消减成本计划。当然,你在 DSL 上的用户体验也十分原始,这个系统平台只能够运行一个浏览器。但是至少你你不用浪费钱财购买新的电脑硬件,你那台 1993 年购买的机器仍然可以为你好好的工作。 + +**Chris Christie** 会使用哪种系统呢?他肯定会使用 [Relax-and-Recover Linux][4],它号称“一次搞定(Setup-and-forget)的裸机 Linux 灾难恢复方案” 。从那次不幸的华盛顿大桥事故后,“一次搞定(Setup-and-forget)”基本上便成了 Christie 的政治主张。不管灾难恢复是否能够让 Christie 最终挽回一切,但是当他的电脑死机的时候,至少可以找到一两封意外丢失的机密邮件。 + +至于 **Carly Fiorina**,她无疑将要使用 [惠普][6] (HPQ)为“[The Machine][5]”开发的操作系统,她在 1999 年到 2005 年这 6 年期间管理的这个公司。事实上,The Machine 可以运行几种不同的操作系统,也许是基于 Linux 的,也许不是,我们并不太清楚,它的开发始于 **Carly Fiorina** 在惠普公司的任期结束后。不管怎么说,作为 IT 圈里一个成功的管理者,这是她履历里面重要的组成部分,同时这也意味着她很难与惠普彻底断绝关系。 + +最后,但并不是不重要,你也猜到了——**Donald Trump**。他显然会动用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统——尽管他原本是想要免费获得一个完美的、现成的操作系统——然后还能向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统,虽然它可能没有兼容 POSIX 或者一些其它的标准,因为那样的话就需要花掉更多的钱。同时这个系统也将根本不会提供任何文档,因为如果 **Donald Trump** 向人们解释他的系统的实际运行方式,他会冒着所有机密被泄露至伊斯兰国家的风险,绝对是这样的。 + +另外,如果 **Donald Trump** 非要选择一种已有的 Linux 平台的话, [Ubuntu][7] 应该是明智的选择。就像 **Donald Trump** 一样, Ubuntu 的开发者秉承“我们做自己想要做的”原则,通过他们自己的实现来构建开源软件。自由软件纯化论者却很反感 Ubuntu 这一点,但是很多普通用户却更喜欢一些。当然,无论你是不是一个纯粹论者,无论是在软件领域还是政治领域,还需要时间才能知道分晓。 + +### 敬请期待 ### + +如果你想知道为什么我还没有提到民主党候选人,别想多了。我没有在这篇文章中提及他们,是因为我对民主党并不比共和党喜欢更多或更少一点(我个人认为,这种只有两个政党的美国特色是不荒谬的,根本不能体现民主,我也不相信这些党派候选人)。 + +另一方面,也可能会有很多人关心民主党候选人使用的 Linux 发行版。后续的帖子中我会提及的,请拭目以待。 + +-------------------------------------------------------------------------------- + +via: http://thevarguy.com/open-source-application-software-companies/081715/which-open-source-linux-distributions-would-presidential- + +作者:[Christopher Tozzi][a] +译者:[vim-kakali](https://github.com/vim-kakali) +校对:[PurlingNayuki](https://github.com/PurlingNayuki), [wxy](https://github.com/wxy/) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://thevarguy.com/author/christopher-tozzi +[1]:http://thevarguy.com/open-source-application-software-companies/aligning-linux-distributions-presidential-hopefuls +[2]:http://debian.org/ +[3]:http://www.damnsmalllinux.org/ +[4]:http://relax-and-recover.org/ +[5]:http://thevarguy.com/open-source-application-software-companies/061614/hps-machine-open-source-os-truly-revolutionary +[6]:http://hp.com/ +[7]:http://ubuntu.com/ diff --git a/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md deleted file mode 100644 index e87e93ca32..0000000000 --- a/translated/news/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md +++ /dev/null @@ -1,53 +0,0 @@ -总统更乐意使用哪种开源Linux分支? -================================================================================ -![Republican presidential candidate Donald Trump -](http://thevarguy.com/site-files/thevarguy.com/files/imagecache/medium_img/uploads/2015/08/donaldtrump.jpg) - -共和党总统候选人 Donald Trump【译者注:唐纳德·特朗普,美国地产大亨、作家、主持人】 - -如果人们要竞选总统,而决定因素却是使用 Linux 或其他的开源操作系统,那么这样的系统会是哪个发行版呢?关键是存在与其他很多事情有关的问题,而这正好使我们很难抉择;比如,一些“政治立场”问题,或者是要判断某一个分支诞生时为它的名字加上感叹号是否合适——而这些问题一直被忽视。而忽视到此就结束了:接下来是时事新闻工作者关于总统大选和 Linux 分支的报道。 - -对于那些已经看了很多年我的文字的人来说(除了我亲爱的的编辑之外,他们一直听我的瞎扯是不是倒霉到家了?),这些话听起来很熟悉,这是因为我在去年的总统选举期间写了一篇[类似的文章][1]。一些有趣的读者把这里面的内容看的很正式,然而我并不是这样想的,所以我会花点时间阐述我的观点:事实上,我不认为开源软件和政治运动对于一些事情有多大的意义。我写那样的文章仅仅是新的一周的自我消遣罢了。 - -当然,你也可以去了解更多的你想知道的东西,毕竟你才是读者。 - -### Linux 分支:共和党人的选择 ### - -今天,我只是谈及一些有关共和主义的话题,我甚至只会谈论他们的其中一部分。因为共和党的期望提名太多了以至于我写满了整篇文章。由此开始: - -如果 **Jeb (Jeb!?) Bush** 使用 Linux,它一定是 [Debian][2]。Debian 属于一个相当无趣的分支,它是为真正意义上的黑客设计的,它们将快速成长起来并清理经验不甚丰富的开源爱好者造成的混乱视为一大使命。当然,这也使得Debian显得很枯燥,所以它已有的用户基础一直在缩减。 - -**Scott Walker** 是一个 [Damn Small Linux][3] (DSL) 用户。这个系统仅仅需要 50MB 的硬盘空间和 16MB 的 RAM 便可完美运行。DSL 可以使一台 20 年前的 486 计算机充满活力;而这恰好满足了 **Scott Walker** 消减硬件成本的需求。当然,你使用 DSL 的体验也是最原始的;这个系统平台只能够运行一个浏览器。但是至少你在 1993 年购买的机器现在仍然能很好的工作,这样你也不用浪费钱财购买新的电脑硬件。 - -**Chris Christie** 会使用哪种系统呢?他肯定会依赖于一次设置便可持续工作的裸机 Linux 灾难恢复方案,而这就是 [Relax-and-Recover Linux][4]。Christie 使用它主要是因为他的政治工作,从那次华盛顿大桥事故后,他的政治动力就受到了影响。不管它是否能够让 Christie 挽回一切事故,但是当他的电脑死机的时候,至少可以找到一些意外丢失的机密邮件。 - -至于 **Carly Fiorina**,她无疑将要使用 [Hewlett-Packard][6] (HPQ)为“[The Machine][5]”操作系统开发的软件,HPQ 是她在 1999 年到 2005 年这 6 年期间所管理的公司。事实上,这种机器可以运行部分不同操作系统,而我们并不清楚这些系统是否基于 Linux;**Carly Fiorina** 被惠普公司辞退后,开发操作系统工作就开始了。尽管如此,她仍然是她研究的计算机领域中的成功管理者。同时这也意味着她很难与惠普彻底断绝关系。 - -最后——这才是重点,你也猜到了——**Donald Trump**。想要拥有免费的、优秀的操作系统的他,可能会用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统;同时他也可以向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统。它肯定没有兼容 POSIX【译者注:可移植操作系统接口】或者采用一些其他的标准,因为那样的话就需要提供一些其他的很多的规则。同时这个系统完全不提供任何文档,因为如果 **Donald Trump** 向人们展示了他的系统的运行方式,很明显他会经受所有机密被泄露至伊斯兰国家的风险。 - -非此即彼,如果 **Donald Trump** 非要选择一种已有的 Linux 操作系统, [Ubuntu][7] 应该是明智的选择。而 **Donald Trump** 也是 Ubuntu 的开发者,他和他的团队按照他们的想法,通过开发他们自有的甚至是专有的应用和接口去打造他们认为的开源软件。自由软件纯化论者却很不喜欢这种开发模式,他们很反感使用 Ubuntu,反而很多其他人更喜欢 Ubuntu。当然,长远来看,关于这种做法的争论(无论是政治领域还是软件领域)还待见分晓。 - -### 敬请期待 ### - -如果你想知道为什么我还没有提到民主党候人,别想了。我不会在这篇文章中提及他们,因为我一直对民主党和共和党保持中立观点(我个人认为,像美国这样的的情况,只有两个政党是不合理的;事实上,这种意义上的民主就显得很可笑,所以我不太相信这些党派候选人)。 - -相反,也可能会有很多人关心民主党候选人使用的Linux分支。后续的帖子中我会提及的,请拭目以待。 - --------------------------------------------------------------------------------- - -via: http://thevarguy.com/open-source-application-software-companies/081715/which-open-source-linux-distributions-would-presidential- - -作者:[Christopher Tozzi][a] -译者:[vim-kakali](https://github.com/vim-kakali) -校对:[PurlingNayuki](https://github.com/PurlingNayuki) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://thevarguy.com/author/christopher-tozzi -[1]:http://thevarguy.com/open-source-application-software-companies/aligning-linux-distributions-presidential-hopefuls -[2]:http://debian.org/ -[3]:http://www.damnsmalllinux.org/ -[4]:http://relax-and-recover.org/ -[5]:http://thevarguy.com/open-source-application-software-companies/061614/hps-machine-open-source-os-truly-revolutionary -[6]:http://hp.com/ -[7]:http://ubuntu.com/ From a890ab283011bb733da579e875f3e1e5021909cb Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sat, 14 May 2016 19:44:53 +0800 Subject: [PATCH 486/582] Translated sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md --- ...d Services SysVinit Systemd and Upstart.md | 67 ++++++++++++++++--- 1 file changed, 58 insertions(+), 9 deletions(-) rename {sources => translated}/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md (70%) diff --git a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md similarity index 70% rename from sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md rename to translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md index af3ac034be..b902fd23d9 100644 --- a/sources/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md +++ b/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md @@ -1,92 +1,127 @@ -ictlyh Translating +LFCS 系列第七讲: 通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务 Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart) ================================================================================ +几个月前, Linux 基金会宣布 LFCS(Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证。这其中包括维护已经在运行的系统和服务能力、第一手的问题查找和分析能力、以及决定何时向开发团队提交问题的能力。 A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams. ![Linux Foundation Certified Sysadmin – Part 7](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-7.png) +第七讲: Linux 基金会认证系统管理员 Linux Foundation Certified Sysadmin – Part 7 +下面的视频简要介绍了 Linux 基金会认证计划。 The following video describes an brief introduction to The Linux Foundation Certification Program. 注:youtube 视频 +这篇博文是 10 指南系列中的第七篇,在这篇文章中,我们会介绍如何管理 Linux 系统自启动进程和服务,这是 LFCS 认证考试要求的一部分。 This post is Part 7 of a 10-tutorial series, here in this part, we will explain how to Manage Linux System Startup Process and Services, that are required for the LFCS certification exam. +### 管理 Linux 自启动进程 ### ### Managing the Linux Startup Process ### +Linux 系统的启动程序包括多个阶段,每个阶段由一个不同的组件表示。下面的图示简要总结了启动过程以及所有包括的主要组件。 The boot process of a Linux system consists of several phases, each represented by a different component. The following diagram briefly summarizes the boot process and shows all the main components involved. ![Linux Boot Process](http://www.tecmint.com/wp-content/uploads/2014/10/Linux-Boot-Process.png) +Linux 启动过程 Linux Boot Process +当你按下你机器上的电源键时, 存储在主板 EEPROM 芯片中的固件初始化 POST(通电自检) 检查系统硬件资源的状态。POST 结束后,固件会搜索并加载位于第一块可用磁盘上的 MBR 或 EFI 分区的第一阶段引导程序,并把控制权交给引导程序。 When you press the Power button on your machine, the firmware that is stored in a EEPROM chip in the motherboard initializes the POST (Power-On Self Test) to check on the state of the system’s hardware resources. When the POST is finished, the firmware then searches and loads the 1st stage boot loader, located in the MBR or in the EFI partition of the first available disk, and gives control to it. +#### MBR 方式 #### #### MBR Method #### +MBR 是位于 BISO 设置中标记为可启动磁盘上的第一个扇区,大小是 512 个字节。 The MBR is located in the first sector of the disk marked as bootable in the BIOS settings and is 512 bytes in size. +- 前面 446 个字节:包括可执行代码和错误信息文本的引导程序 +- 接下来的 64 个字节:四个分区(主分区或扩展分区)中每个分区一条记录的分区表。其中,每条记录标示了每个一个分区的状态(是否活跃)、大小以及开始和结束扇区。 +- 最后 2 个字节: MBR 有效性检查的魔数。 - First 446 bytes: The bootloader contains both executable code and error message text. - Next 64 bytes: The Partition table contains a record for each of four partitions (primary or extended). Among other things, each record indicates the status (active / not active), size, and start / end sectors of each partition. - Last 2 bytes: The magic number serves as a validation check of the MBR. +下面的命令对 MBR 进行备份(在本例中,/dev/sda 是第一块硬盘)。结果文件 mbr.bkp 在分区表被破坏、例如系统不可引导时能排上用场。 The following command performs a backup of the MBR (in this example, /dev/sda is the first hard disk). The resulting file, mbr.bkp can come in handy should the partition table become corrupt, for example, rendering the system unbootable. +当然,为了后面需要的时候能使用它,我们需要把它保存到别的地方(例如一个 USB 设备)。该文件能帮助我们重新恢复 MBR,这只在我们操作过程中没有改变硬盘驱动布局时才有效。 Of course, in order to use it later if the need arises, we will need to save it and store it somewhere else (like a USB drive, for example). That file will help us restore the MBR and will get us going once again if and only if we do not change the hard drive layout in the meanwhile. +**备份 MBR** **Backup MBR** # dd if=/dev/sda of=mbr.bkp bs=512 count=1 ![Backup MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Backup-MBR-in-Linux.png) +在 Linux 中备份 MBR Backup MBR in Linux +**恢复 MBR** **Restoring MBR** # dd if=mbr.bkp of=/dev/sda bs=512 count=1 ![Restore MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Restore-MBR-in-Linux.png) +在 Linux 中恢复 MBR Restore MBR in Linux +#### EFI/UEFI 方式 #### #### EFI/UEFI Method #### +对于使用 EFI/UEFI 方式的系统, UEFI 固件读取它的设置来决定从哪里启动哪个 UEFI 应用。(例如, EFI 分区位于哪块磁盘或分区)。 For systems using the EFI/UEFI method, the UEFI firmware reads its settings to determine which UEFI application is to be launched and from where (i.e., in which disk and partition the EFI partition is located). +接下来,加载并运行第二阶段引导程序(又名引导管理器)。GRUB[GRand Unified Boot] 是 Linux 中最常使用的引导管理器。今天大部分使用的系统中都能找到它两个中的其中一个版本。 Next, the 2nd stage boot loader (aka boot manager) is loaded and run. GRUB [GRand Unified Boot] is the most frequently used boot manager in Linux. One of two distinct versions can be found on most systems used today. +- GRUB 有效配置文件: /boot/grub/menu.lst(旧发行版, EFI/UEFI 固件不支持)。 +- GRUB2 配置文件: 通常是 /etc/default/grub。 - GRUB legacy configuration file: /boot/grub/menu.lst (older distributions, not supported by EFI/UEFI firmwares). - GRUB2 configuration file: most likely, /etc/default/grub. +尽管 LFCS 考试目标没有明确要求了解 GRUB 内部知识,但如果你足够大胆并且不怕把你的系统搞乱(为了以防万一,你可以先在虚拟机上进行尝试)你可以运行: Although the objectives of the LFCS exam do not explicitly request knowledge about GRUB internals, if you’re brave and can afford to mess up your system (you may want to try it first on a virtual machine, just in case), you need to run. # update-grub +为了使更改生效,你需要以 root 用户修改 GRUB 的配置。 As root after modifying GRUB’s configuration in order to apply the changes. +首先, GRUB 加载默认的内核以及 initrd 或 initramfs 镜像。补充一句,initrd 或者 initramfs 帮助完成硬件检测、内核模块加载、以及发现挂载根目录文件系统需要的设备。 Basically, GRUB loads the default kernel and the initrd or initramfs image. In few words, initrd or initramfs help to perform the hardware detection, the kernel module loading and the device discovery necessary to get the real root filesystem mounted. +一旦真正的根目录文件系统启动,为了显示用户界面,内核就会执行系统和服务管理器(init 或 systemd,进程号 PID 一般为 1)开始普通用户态的引导程序。 Once the real root filesystem is up, the kernel executes the system and service manager (init or systemd, whose process identification or PID is always 1) to begin the normal user-space boot process in order to present a user interface. +init 和 systemd 都是管理其它守护进程的守护进程(后台进程),它们总是最先启动(系统引导时),最后结束(系统关闭时)。 Both init and systemd are daemons (background processes) that manage other daemons, as the first service to start (during boot) and the last service to terminate (during shutdown). ![Systemd and Init](http://www.tecmint.com/wp-content/uploads/2014/10/systemd-and-init.png) -Systemd and Init +Systemd 和 Init +### 自启动服务(SysVinit) ### ### Starting Services (SysVinit) ### +Linux 中运行等级的概念表示通过控制运行哪些服务来以不同方式使用系统。换句话说,运行等级控制着当前执行状态下可以完成什么任务(以及什么不能完成)。 The concept of runlevels in Linux specifies different ways to use a system by controlling which services are running. In other words, a runlevel controls what tasks can be accomplished in the current execution state = runlevel (and which ones cannot). +传统上,这个启动过程是基于起源于 System V Unix 的形式,通过执行脚本启动或者停止服务从而使机器进入指定的运行等级(换句话说,是一个不同的系统运行模式)。 Traditionally, this startup process was performed based on conventions that originated with System V UNIX, with the system passing executing collections of scripts that start and stop services as the machine entered a specific runlevel (which, in other words, is a different mode of running the system). +在每个运行等级中,独立服务可以设置为运行、或者在运行时关闭。一些主流发行版的最新版本中,已经移除了标准的 System V,而用一个称为 systemd(表示系统守护进程)的新服务和系统管理器代替,但为了兼容性,通常也支持 sysv 命令。这意味着你可以在基于 systemd 的发行版中运行大部分有名的 sysv 初始化工具。 Within each runlevel, individual services can be set to run, or to be shut down if running. Latest versions of some major distributions are moving away from the System V standard in favour of a rather new service and system manager called systemd (which stands for system daemon), but usually support sysv commands for compatibility purposes. This means that you can run most of the well-known sysv init tools in a systemd-based distribution. - Read Also: [Why ‘systemd’ replaces ‘init’ in Linux][1] +- 推荐阅读: [Linux 为什么用 ‘systemd’ 代替 ‘init’][1] +除了启动系统进程,init 还会查看 /etc/inittab 来决定进入哪个运行等级。 Besides starting the system process, init looks to the /etc/inittab file to decide what runlevel must be entered. 注:表格 @@ -102,61 +137,73 @@ Besides starting the system process, init looks to the /etc/inittab file to deci 0 -  Halt the system. Runlevel 0 is a special transitional state used to shutdown the system quickly. +  停止系统。运行等级 0 是一个用于快速关闭系统的特殊过渡状态。Halt the system. Runlevel 0 is a special transitional state used to shutdown the system quickly. 1 -  Also aliased to s, or S, this runlevel is sometimes called maintenance mode. What services, if any, are started at this runlevel varies by distribution. It’s typically used for low-level system maintenance that may be impaired by normal system operation. +  别名为 s 或 S,这个运行等级有时候也称为维护模式。在这个运行等级启动的服务由于发行版不同而不同。通常用于正常系统操作损坏时低级别的系统维护。Also aliased to s, or S, this runlevel is sometimes called maintenance mode. What services, if any, are started at this runlevel varies by distribution. It’s typically used for low-level system maintenance that may be impaired by normal system operation. 2 -  Multiuser. On Debian systems and derivatives, this is the default runlevel, and includes -if available- a graphical login. On Red-Hat based systems, this is multiuser mode without networking. +  多用户。在 Debian 系统及其衍生版中,这是默认的运行等级,还包括了一个图形化登录(如果有的话)。在基于红帽的系统中,这是没有网络的多用户模式。Multiuser. On Debian systems and derivatives, this is the default runlevel, and includes -if available- a graphical login. On Red-Hat based systems, this is multiuser mode without networking. 3 -  On Red-Hat based systems, this is the default multiuser mode, which runs everything except the graphical environment. This runlevel and levels 4 and 5 usually are not used on Debian-based systems. +  在基于红帽的系统中,这是默认的多用户模式,运行除了图形化环境以外的所有东西。基于 Debian 的系统中通常不会使用这个运行等级以及等级 4 和 5。On Red-Hat based systems, this is the default multiuser mode, which runs everything except the graphical environment. This runlevel and levels 4 and 5 usually are not used on Debian-based systems. 4 -  Typically unused by default and therefore available for customization. +  通常默认情况下不使用,可用于自定制。Typically unused by default and therefore available for customization. 5 -  On Red-Hat based systems, full multiuser mode with GUI login. This runlevel is like level 3, but with a GUI login available. +  基于红帽的系统中,支持 GUI 登录的完全多用户模式。这个运行等级和等级 3 类似,但是有可用的 GUI 登录。On Red-Hat based systems, full multiuser mode with GUI login. This runlevel is like level 3, but with a GUI login available. 6 -  Reboot the system. +  重启系统。Reboot the system. +要在运行等级之间切换,我们只需要使用 init 命令更改运行等级:init N(其中 N 是上面列出的一个运行等级)。 +请注意这并不是运行中的系统切换运行等级的推荐方式,因为它不会给已经登录的用户发送警告(因而导致他们丢失工作以及进程异常终结)。 To switch between runlevels, we can simply issue a runlevel change using the init command: init N (where N is one of the runlevels listed above). Please note that this is not the recommended way of taking a running system to a different runlevel because it gives no warning to existing logged-in users (thus causing them to lose work and processes to terminate abnormally). +相反,应该用 shutdown 命令重启系统(它首先发送警告信息给所有已经登录的用户,并锁住任何新的登录;然后再给 init 发送信号切换运行等级)但是,首先要在 /etc/inittab 文件中设置好默认的运行等级(系统引导到的等级)。 Instead, the shutdown command should be used to restart the system (which first sends a warning message to all logged-in users and blocks any further logins; it then signals init to switch runlevels); however, the default runlevel (the one the system will boot to) must be edited in the /etc/inittab file first. +因为这个原因,按照下面的步骤切当地切换运行等级。以 root 用户在 /etc/inittab 中查找下面的行。 For that reason, follow these steps to properly switch between runlevels, As root, look for the following line in /etc/inittab. id:2:initdefault: +并用你喜欢的文本编辑器,例如 vim(本系列的[第二讲 : 如何在 Linux 中使用 vi/vim 编辑器][2]),更改数字 2 为想要的运行等级。 and change the number 2 for the desired runlevel with your preferred text editor, such as vim (described in [How to use vi/vim editor in Linux – Part 2][2] of this series). +然后,以 root 用户执行 Next, run as root. # shutdown -r now +最后一个命令会重启系统,并使它在下一次引导时进入指定的运行等级,并会执行保存在 /etc/rc[runlevel].d 目录中的脚本以决定应该启动什么服务、不应该启动什么服务。例如,在下面的系统中运行等级 2。 That last command will restart the system, causing it to start in the specified runlevel during next boot, and will run the scripts located in the /etc/rc[runlevel].d directory in order to decide which services should be started and which ones should not. For example, for runlevel 2 in the following system. ![Change Runlevels in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Change-Runlevels-in-Linux.jpeg) +在 Linux 中更改运行等级 Change Runlevels in Linux +#### 使用 chkconfig 管理服务 #### #### Manage Services using chkconfig #### +为了在启动时启动或者停用系统服务,我们可以在 CentOS / openSUSE 中使用 [chkconfig 命令][3],在 Debian 及其衍生版中使用 sysv-rc-conf 命令。这个工具还能告诉我们对于一个指定的运行等级预先配置的状态是什么。 To enable or disable system services on boot, we will use [chkconfig command][3] in CentOS / openSUSE and sysv-rc-conf in Debian and derivatives. This tool can also show us what is the preconfigured state of a service for a particular runlevel. +- 推荐阅读: [如何在 Linux 中停止和停用不想要的服务][4] - Read Also: [How to Stop and Disable Unwanted Services in Linux][4] +列出某个服务的运行等级配置。 Listing the runlevel configuration for a service. # chkconfig --list [service name] @@ -165,8 +212,10 @@ Listing the runlevel configuration for a service. ![Listing Runlevel Configuration](http://www.tecmint.com/wp-content/uploads/2014/10/Listing-Runlevel-Configuration.png) +列出运行等级配置 Listing Runlevel Configuration + In the above image we can see that postfix is set to start when the system enters runlevels 2 through 5, whereas mysqld will be running by default for runlevels 2 through 4. Now suppose that this is not the expected behaviour. For example, we need to turn on mysqld for runlevel 5 as well, and turn off postfix for runlevels 4 and 5. Here’s what we would do in each case (run the following commands as root). From 4a8e4315d6b3d1df79bc8d0d9255beed9e652440 Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sat, 14 May 2016 23:21:00 +0800 Subject: [PATCH 487/582] Translated tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md --- ...d Services SysVinit Systemd and Upstart.md | 204 +++++++----------- 1 file changed, 79 insertions(+), 125 deletions(-) diff --git a/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md index b902fd23d9..0c4c1ac766 100644 --- a/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md +++ b/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md @@ -1,128 +1,92 @@ LFCS 系列第七讲: 通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务 -Part 7 - LFCS: Managing System Startup Process and Services (SysVinit, Systemd and Upstart) ================================================================================ 几个月前, Linux 基金会宣布 LFCS(Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证。这其中包括维护已经在运行的系统和服务能力、第一手的问题查找和分析能力、以及决定何时向开发团队提交问题的能力。 -A couple of months ago, the Linux Foundation announced the LFCS (Linux Foundation Certified Sysadmin) certification, an exciting new program whose aim is allowing individuals from all ends of the world to get certified in performing basic to intermediate system administration tasks on Linux systems. This includes supporting already running systems and services, along with first-hand problem-finding and analysis, plus the ability to decide when to raise issues to engineering teams. ![Linux Foundation Certified Sysadmin – Part 7](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-7.png) 第七讲: Linux 基金会认证系统管理员 -Linux Foundation Certified Sysadmin – Part 7 下面的视频简要介绍了 Linux 基金会认证计划。 -The following video describes an brief introduction to The Linux Foundation Certification Program. 注:youtube 视频 这篇博文是 10 指南系列中的第七篇,在这篇文章中,我们会介绍如何管理 Linux 系统自启动进程和服务,这是 LFCS 认证考试要求的一部分。 -This post is Part 7 of a 10-tutorial series, here in this part, we will explain how to Manage Linux System Startup Process and Services, that are required for the LFCS certification exam. ### 管理 Linux 自启动进程 ### -### Managing the Linux Startup Process ### Linux 系统的启动程序包括多个阶段,每个阶段由一个不同的组件表示。下面的图示简要总结了启动过程以及所有包括的主要组件。 -The boot process of a Linux system consists of several phases, each represented by a different component. The following diagram briefly summarizes the boot process and shows all the main components involved. ![Linux Boot Process](http://www.tecmint.com/wp-content/uploads/2014/10/Linux-Boot-Process.png) Linux 启动过程 -Linux Boot Process 当你按下你机器上的电源键时, 存储在主板 EEPROM 芯片中的固件初始化 POST(通电自检) 检查系统硬件资源的状态。POST 结束后,固件会搜索并加载位于第一块可用磁盘上的 MBR 或 EFI 分区的第一阶段引导程序,并把控制权交给引导程序。 -When you press the Power button on your machine, the firmware that is stored in a EEPROM chip in the motherboard initializes the POST (Power-On Self Test) to check on the state of the system’s hardware resources. When the POST is finished, the firmware then searches and loads the 1st stage boot loader, located in the MBR or in the EFI partition of the first available disk, and gives control to it. #### MBR 方式 #### -#### MBR Method #### MBR 是位于 BISO 设置中标记为可启动磁盘上的第一个扇区,大小是 512 个字节。 -The MBR is located in the first sector of the disk marked as bootable in the BIOS settings and is 512 bytes in size. - 前面 446 个字节:包括可执行代码和错误信息文本的引导程序 - 接下来的 64 个字节:四个分区(主分区或扩展分区)中每个分区一条记录的分区表。其中,每条记录标示了每个一个分区的状态(是否活跃)、大小以及开始和结束扇区。 - 最后 2 个字节: MBR 有效性检查的魔数。 -- First 446 bytes: The bootloader contains both executable code and error message text. -- Next 64 bytes: The Partition table contains a record for each of four partitions (primary or extended). Among other things, each record indicates the status (active / not active), size, and start / end sectors of each partition. -- Last 2 bytes: The magic number serves as a validation check of the MBR. 下面的命令对 MBR 进行备份(在本例中,/dev/sda 是第一块硬盘)。结果文件 mbr.bkp 在分区表被破坏、例如系统不可引导时能排上用场。 -The following command performs a backup of the MBR (in this example, /dev/sda is the first hard disk). The resulting file, mbr.bkp can come in handy should the partition table become corrupt, for example, rendering the system unbootable. 当然,为了后面需要的时候能使用它,我们需要把它保存到别的地方(例如一个 USB 设备)。该文件能帮助我们重新恢复 MBR,这只在我们操作过程中没有改变硬盘驱动布局时才有效。 -Of course, in order to use it later if the need arises, we will need to save it and store it somewhere else (like a USB drive, for example). That file will help us restore the MBR and will get us going once again if and only if we do not change the hard drive layout in the meanwhile. **备份 MBR** -**Backup MBR** # dd if=/dev/sda of=mbr.bkp bs=512 count=1 ![Backup MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Backup-MBR-in-Linux.png) 在 Linux 中备份 MBR -Backup MBR in Linux **恢复 MBR** -**Restoring MBR** # dd if=mbr.bkp of=/dev/sda bs=512 count=1 ![Restore MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Restore-MBR-in-Linux.png) 在 Linux 中恢复 MBR -Restore MBR in Linux #### EFI/UEFI 方式 #### -#### EFI/UEFI Method #### -对于使用 EFI/UEFI 方式的系统, UEFI 固件读取它的设置来决定从哪里启动哪个 UEFI 应用。(例如, EFI 分区位于哪块磁盘或分区)。 -For systems using the EFI/UEFI method, the UEFI firmware reads its settings to determine which UEFI application is to be launched and from where (i.e., in which disk and partition the EFI partition is located). +对于使用 EFI/UEFI 方式的系统, UEFI 固件读取它的设置来决定从哪里启动哪个 UEFI 应用。(例如, EFI 分区位于哪块磁盘或分区。 接下来,加载并运行第二阶段引导程序(又名引导管理器)。GRUB[GRand Unified Boot] 是 Linux 中最常使用的引导管理器。今天大部分使用的系统中都能找到它两个中的其中一个版本。 -Next, the 2nd stage boot loader (aka boot manager) is loaded and run. GRUB [GRand Unified Boot] is the most frequently used boot manager in Linux. One of two distinct versions can be found on most systems used today. - GRUB 有效配置文件: /boot/grub/menu.lst(旧发行版, EFI/UEFI 固件不支持)。 - GRUB2 配置文件: 通常是 /etc/default/grub。 -- GRUB legacy configuration file: /boot/grub/menu.lst (older distributions, not supported by EFI/UEFI firmwares). -- GRUB2 configuration file: most likely, /etc/default/grub. 尽管 LFCS 考试目标没有明确要求了解 GRUB 内部知识,但如果你足够大胆并且不怕把你的系统搞乱(为了以防万一,你可以先在虚拟机上进行尝试)你可以运行: -Although the objectives of the LFCS exam do not explicitly request knowledge about GRUB internals, if you’re brave and can afford to mess up your system (you may want to try it first on a virtual machine, just in case), you need to run. # update-grub 为了使更改生效,你需要以 root 用户修改 GRUB 的配置。 -As root after modifying GRUB’s configuration in order to apply the changes. 首先, GRUB 加载默认的内核以及 initrd 或 initramfs 镜像。补充一句,initrd 或者 initramfs 帮助完成硬件检测、内核模块加载、以及发现挂载根目录文件系统需要的设备。 -Basically, GRUB loads the default kernel and the initrd or initramfs image. In few words, initrd or initramfs help to perform the hardware detection, the kernel module loading and the device discovery necessary to get the real root filesystem mounted. 一旦真正的根目录文件系统启动,为了显示用户界面,内核就会执行系统和服务管理器(init 或 systemd,进程号 PID 一般为 1)开始普通用户态的引导程序。 -Once the real root filesystem is up, the kernel executes the system and service manager (init or systemd, whose process identification or PID is always 1) to begin the normal user-space boot process in order to present a user interface. init 和 systemd 都是管理其它守护进程的守护进程(后台进程),它们总是最先启动(系统引导时),最后结束(系统关闭时)。 -Both init and systemd are daemons (background processes) that manage other daemons, as the first service to start (during boot) and the last service to terminate (during shutdown). ![Systemd and Init](http://www.tecmint.com/wp-content/uploads/2014/10/systemd-and-init.png) Systemd 和 Init ### 自启动服务(SysVinit) ### -### Starting Services (SysVinit) ### Linux 中运行等级的概念表示通过控制运行哪些服务来以不同方式使用系统。换句话说,运行等级控制着当前执行状态下可以完成什么任务(以及什么不能完成)。 -The concept of runlevels in Linux specifies different ways to use a system by controlling which services are running. In other words, a runlevel controls what tasks can be accomplished in the current execution state = runlevel (and which ones cannot). 传统上,这个启动过程是基于起源于 System V Unix 的形式,通过执行脚本启动或者停止服务从而使机器进入指定的运行等级(换句话说,是一个不同的系统运行模式)。 -Traditionally, this startup process was performed based on conventions that originated with System V UNIX, with the system passing executing collections of scripts that start and stop services as the machine entered a specific runlevel (which, in other words, is a different mode of running the system). 在每个运行等级中,独立服务可以设置为运行、或者在运行时关闭。一些主流发行版的最新版本中,已经移除了标准的 System V,而用一个称为 systemd(表示系统守护进程)的新服务和系统管理器代替,但为了兼容性,通常也支持 sysv 命令。这意味着你可以在基于 systemd 的发行版中运行大部分有名的 sysv 初始化工具。 -Within each runlevel, individual services can be set to run, or to be shut down if running. Latest versions of some major distributions are moving away from the System V standard in favour of a rather new service and system manager called systemd (which stands for system daemon), but usually support sysv commands for compatibility purposes. This means that you can run most of the well-known sysv init tools in a systemd-based distribution. -- Read Also: [Why ‘systemd’ replaces ‘init’ in Linux][1] - 推荐阅读: [Linux 为什么用 ‘systemd’ 代替 ‘init’][1] 除了启动系统进程,init 还会查看 /etc/inittab 来决定进入哪个运行等级。 -Besides starting the system process, init looks to the /etc/inittab file to decide what runlevel must be entered. 注:表格 @@ -137,74 +101,63 @@ Besides starting the system process, init looks to the /etc/inittab file to deci - + - + - + - + - + - + - +
0 停止系统。运行等级 0 是一个用于快速关闭系统的特殊过渡状态。Halt the system. Runlevel 0 is a special transitional state used to shutdown the system quickly. 停止系统。运行等级 0 是一个用于快速关闭系统的特殊过渡状态。
1 别名为 s 或 S,这个运行等级有时候也称为维护模式。在这个运行等级启动的服务由于发行版不同而不同。通常用于正常系统操作损坏时低级别的系统维护。Also aliased to s, or S, this runlevel is sometimes called maintenance mode. What services, if any, are started at this runlevel varies by distribution. It’s typically used for low-level system maintenance that may be impaired by normal system operation. 别名为 s 或 S,这个运行等级有时候也称为维护模式。在这个运行等级启动的服务由于发行版不同而不同。通常用于正常系统操作损坏时低级别的系统维护。
2 多用户。在 Debian 系统及其衍生版中,这是默认的运行等级,还包括了一个图形化登录(如果有的话)。在基于红帽的系统中,这是没有网络的多用户模式。Multiuser. On Debian systems and derivatives, this is the default runlevel, and includes -if available- a graphical login. On Red-Hat based systems, this is multiuser mode without networking. 多用户。在 Debian 系统及其衍生版中,这是默认的运行等级,还包括了一个图形化登录(如果有的话)。在基于红帽的系统中,这是没有网络的多用户模式。
3 在基于红帽的系统中,这是默认的多用户模式,运行除了图形化环境以外的所有东西。基于 Debian 的系统中通常不会使用这个运行等级以及等级 4 和 5。On Red-Hat based systems, this is the default multiuser mode, which runs everything except the graphical environment. This runlevel and levels 4 and 5 usually are not used on Debian-based systems. 在基于红帽的系统中,这是默认的多用户模式,运行除了图形化环境以外的所有东西。基于 Debian 的系统中通常不会使用这个运行等级以及等级 4 和 5。
4 通常默认情况下不使用,可用于自定制。Typically unused by default and therefore available for customization. 通常默认情况下不使用,可用于自定制。
5 基于红帽的系统中,支持 GUI 登录的完全多用户模式。这个运行等级和等级 3 类似,但是有可用的 GUI 登录。On Red-Hat based systems, full multiuser mode with GUI login. This runlevel is like level 3, but with a GUI login available. 基于红帽的系统中,支持 GUI 登录的完全多用户模式。这个运行等级和等级 3 类似,但是有可用的 GUI 登录。
6 重启系统。Reboot the system. 重启系统。
要在运行等级之间切换,我们只需要使用 init 命令更改运行等级:init N(其中 N 是上面列出的一个运行等级)。 请注意这并不是运行中的系统切换运行等级的推荐方式,因为它不会给已经登录的用户发送警告(因而导致他们丢失工作以及进程异常终结)。 -To switch between runlevels, we can simply issue a runlevel change using the init command: init N (where N is one of the runlevels listed above). Please note that this is not the recommended way of taking a running system to a different runlevel because it gives no warning to existing logged-in users (thus causing them to lose work and processes to terminate abnormally). 相反,应该用 shutdown 命令重启系统(它首先发送警告信息给所有已经登录的用户,并锁住任何新的登录;然后再给 init 发送信号切换运行等级)但是,首先要在 /etc/inittab 文件中设置好默认的运行等级(系统引导到的等级)。 -Instead, the shutdown command should be used to restart the system (which first sends a warning message to all logged-in users and blocks any further logins; it then signals init to switch runlevels); however, the default runlevel (the one the system will boot to) must be edited in the /etc/inittab file first. 因为这个原因,按照下面的步骤切当地切换运行等级。以 root 用户在 /etc/inittab 中查找下面的行。 -For that reason, follow these steps to properly switch between runlevels, As root, look for the following line in /etc/inittab. id:2:initdefault: 并用你喜欢的文本编辑器,例如 vim(本系列的[第二讲 : 如何在 Linux 中使用 vi/vim 编辑器][2]),更改数字 2 为想要的运行等级。 -and change the number 2 for the desired runlevel with your preferred text editor, such as vim (described in [How to use vi/vim editor in Linux – Part 2][2] of this series). 然后,以 root 用户执行 -Next, run as root. # shutdown -r now 最后一个命令会重启系统,并使它在下一次引导时进入指定的运行等级,并会执行保存在 /etc/rc[runlevel].d 目录中的脚本以决定应该启动什么服务、不应该启动什么服务。例如,在下面的系统中运行等级 2。 -That last command will restart the system, causing it to start in the specified runlevel during next boot, and will run the scripts located in the /etc/rc[runlevel].d directory in order to decide which services should be started and which ones should not. For example, for runlevel 2 in the following system. ![Change Runlevels in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Change-Runlevels-in-Linux.jpeg) 在 Linux 中更改运行等级 -Change Runlevels in Linux #### 使用 chkconfig 管理服务 #### -#### Manage Services using chkconfig #### 为了在启动时启动或者停用系统服务,我们可以在 CentOS / openSUSE 中使用 [chkconfig 命令][3],在 Debian 及其衍生版中使用 sysv-rc-conf 命令。这个工具还能告诉我们对于一个指定的运行等级预先配置的状态是什么。 -To enable or disable system services on boot, we will use [chkconfig command][3] in CentOS / openSUSE and sysv-rc-conf in Debian and derivatives. This tool can also show us what is the preconfigured state of a service for a particular runlevel. - 推荐阅读: [如何在 Linux 中停止和停用不想要的服务][4] -- Read Also: [How to Stop and Disable Unwanted Services in Linux][4] 列出某个服务的运行等级配置。 -Listing the runlevel configuration for a service. # chkconfig --list [service name] # chkconfig --list postfix @@ -213,95 +166,95 @@ Listing the runlevel configuration for a service. ![Listing Runlevel Configuration](http://www.tecmint.com/wp-content/uploads/2014/10/Listing-Runlevel-Configuration.png) 列出运行等级配置 -Listing Runlevel Configuration +从上图中我们可以看出,当系统进入运行等级 2 到 5 的时候就会启动 postfix,而默认情况下运行等级 2 到 4 时会运行 mysqld。现在假设我们并不希望如此。 -In the above image we can see that postfix is set to start when the system enters runlevels 2 through 5, whereas mysqld will be running by default for runlevels 2 through 4. Now suppose that this is not the expected behaviour. +例如,我们希望运行等级为 5 时也启动 mysqld,运行等级为 4 或 5 时关闭 postfix。下面分别针对两种情况进行设置(以 root 用户执行以下命令)。 -For example, we need to turn on mysqld for runlevel 5 as well, and turn off postfix for runlevels 4 and 5. Here’s what we would do in each case (run the following commands as root). - -**Enabling a service for a particular runlevel** +**为特定运行等级启用服务** # chkconfig --level [level(s)] service on # chkconfig --level 5 mysqld on -**Disabling a service for particular runlevels** +**为特定运行等级停用服务** # chkconfig --level [level(s)] service off # chkconfig --level 45 postfix off -![Enable Disable Services in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Enable-Disable-Services.png) +![在 Linux 中启用/停用服务Enable Disable Services in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Enable-Disable-Services.png) -Enable Disable Services +启用/停用服务 -We will now perform similar tasks in a Debian-based system using sysv-rc-conf. +我们在基于 Debian 的系统中使用 sysv-rc-conf 完成类似任务。 -#### Manage Services using sysv-rc-conf #### +#### 使用 sysv-rc-conf 管理服务 #### -Configuring a service to start automatically on a specific runlevel and prevent it from starting on all others. +配置服务自动启动时进入指定运行等级,同时禁止启动时进入其它运行等级。 -1. Let’s use the following command to see what are the runlevels where mdadm is configured to start. +1. 我们可以用下面的命令查看启动 mdadm 时的运行等级。 # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' -![Check Runlevel of Service Running](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Runlevel.png) -Check Runlevel of Service Running +![查看运行中服务的运行等级Check Runlevel of Service Running](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Runlevel.png) -2. We will use sysv-rc-conf to prevent mdadm from starting on all runlevels except 2. Just check or uncheck (with the space bar) as desired (you can move up, down, left, and right with the arrow keys). +查看运行中服务的运行等级 + +2. 我们使用 sysv-rc-conf 设置防止 mdadm 在运行等级2 之外的其它等级启动。只需根据需要(你可以使用上下左右按键)选中或取消选中(通过空格键)。 # sysv-rc-conf -![SysV Runlevel Config](http://www.tecmint.com/wp-content/uploads/2014/10/SysV-Runlevel-Config.png) +![Sysv 运行等级配置SysV Runlevel Config](http://www.tecmint.com/wp-content/uploads/2014/10/SysV-Runlevel-Config.png) -SysV Runlevel Config +Sysv 运行等级配置 -Then press q to quit. +然后输入 q 退出。 -3. We will restart the system and run again the command from STEP 1. +3. 重启系统并从步骤 1 开始再操作一遍。 # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' -![Verify Service Runlevel](http://www.tecmint.com/wp-content/uploads/2014/10/Verify-Service-Runlevel.png) +![验证服务运行等级Verify Service Runlevel](http://www.tecmint.com/wp-content/uploads/2014/10/Verify-Service-Runlevel.png) -Verify Service Runlevel +验证服务运行等级 -In the above image we can see that mdadm is configured to start only on runlevel 2. +从上图中我们可以看出 mdadm 配置为只在运行等级 2 上启动。 -### What About systemd? ### +### 那关于 systemd 呢? ### -systemd is another service and system manager that is being adopted by several major Linux distributions. It aims to allow more processing to be done in parallel during system startup (unlike sysvinit, which always tends to be slower because it starts processes one at a time, checks whether one depends on another, and waits for daemons to launch so more services can start), and to serve as a dynamic resource management to a running system. +systemd 是另外一个被多种主流 Linux 发行版采用的服务和系统管理器。它的目标是允许系统启动时多个任务尽可能并行(而 sysvinit 并非如此,sysvinit 一般比较慢,因为它每次只启动一个进程,而且会检查彼此之间是否有依赖,在启动其它服务之前还要等待守护进程启动),充当运行中系统动态资源管理的角色。 -Thus, services are started when needed (to avoid consuming system resources) instead of being launched without a solid reason during boot. +因此,服务只在需要的时候启动,而不是系统启动时毫无缘由地启动(为了防止消耗系统资源)。 -Viewing the status of all the processes running on your system, both systemd native and SysV services, run the following command. +要查看你系统中运行的原生 systemd 服务和 Sysv 服务,可以用以下的命令。 # systemctl -![Check All Running Processes in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Check-All-Running-Processes.png) +![在 Linux 中查看运行中的进程Check All Running Processes in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Check-All-Running-Processes.png) -Check All Running Processes +查看运行中的进程 -The LOAD column shows whether the unit definition (refer to the UNIT column, which shows the service or anything maintained by systemd) was properly loaded, while the ACTIVE and SUB columns show the current status of such unit. -Displaying information about the current status of a service +LOAD 一列显示了单元(UNIT 列,显示服务或者由 systemd 维护的其它进程)是否正确加载,ACTIVE 和 SUB 列则显示了该单元当前的状态。 -When the ACTIVE column indicates that an unit’s status is other than active, we can check what happened using. +显示服务当前状态的信息 + +当 ACTIVE 列显示某个单元状态并非活跃时,我们可以使用以下命令查看具体原因。 # systemctl status [unit] -For example, in the image above, media-samba.mount is in failed state. Let’s run. +例如,上图中 media-samba.mount 处于失败状态。我们可以运行: # systemctl status media-samba.mount -![Check Linux Service Status](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Status.png) +![查看 Linux 服务状态Check Linux Service Status](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Status.png) -Check Service Status +查看服务状态 -We can see that media-samba.mount failed because the mount process on host dev1 was unable to find the network share at //192.168.0.10/gacanepa. +我们可以看到 media-samba.mount 失败的原因是 host dev1 上的挂载进程无法找到 //192.168.0.10/gacanepa 上的共享网络。 -### Starting or Stopping Services ### +### 启动或停止服务 ### -Once the network share //192.168.0.10/gacanepa becomes available, let’s try to start, then stop, and finally restart the unit media-samba.mount. After performing each action, let’s run systemctl status media-samba.mount to check on its status. +一旦 //192.168.0.10/gacanepa 上的共享网络可用,我们可以再来尝试启动、停止以及重启 media-samba.mount 单元。执行每次操作之后,我们都执行 systemctl stats media-samba.mout 来查看它的状态。 # systemctl start media-samba.mount # systemctl status media-samba.mount @@ -309,59 +262,60 @@ Once the network share //192.168.0.10/gacanepa becomes available, let’s try to # systemctl restart media-samba.mount # systemctl status media-samba.mount -![Starting Stoping Services](http://www.tecmint.com/wp-content/uploads/2014/10/Starting-Stoping-Service.jpeg) +![启动停止服务Starting Stoping Services](http://www.tecmint.com/wp-content/uploads/2014/10/Starting-Stoping-Service.jpeg) -Starting Stoping Services +启动停止服务 -**Enabling or disabling a service to start during boot** +**启用或停用某服务随系统启动** -Under systemd you can enable or disable a service when it boots. +使用 systemd 你可以在系统启动时启用或停用某服务 - # systemctl enable [service] # enable a service - # systemctl disable [service] # prevent a service from starting at boot + # systemctl enable [service] # 启用服务 + # systemctl disable [service] # 阻止服务随系统启动 -The process of enabling or disabling a service to start automatically on boot consists in adding or removing symbolic links in the /etc/systemd/system/multi-user.target.wants directory. -![Enabling Disabling Services](http://www.tecmint.com/wp-content/uploads/2014/10/Enabling-Disabling-Services.jpeg) +启用或停用某服务随系统启动包括在 /etc/systemd/system/multi-user.target.wants 目录添加或者删除符号链接。 -Enabling Disabling Services +![启用或停用服务](http://www.tecmint.com/wp-content/uploads/2014/10/Enabling-Disabling-Services.jpeg) -Alternatively, you can find out a service’s current status (enabled or disabled) with the command. +启用或停用服务 + +你也可以用下面的命令查看某个服务的当前状态(启用或者停用)。 # systemctl is-enabled [service] -For example, +例如, # systemctl is-enabled postfix.service -In addition, you can reboot or shutdown the system with. +另外,你可以用下面的命令重启或者关闭系统。 # systemctl reboot # systemctl shutdown ### Upstart ### -Upstart is an event-based replacement for the /sbin/init daemon and was born out of the need for starting services only, when they are needed (also supervising them while they are running), and handling events as they occur, thus surpassing the classic, dependency-based sysvinit system. +基于事件的 Upstart 是 /sbin/init 守护进程的替代品,它仅为在需要那些服务的时候启动服务而生,(或者当它们在运行时管理它们),以及处理发生的实践,因此 Upstart 优于基于依赖的 sysvinit 系统。 -It was originally developed for the Ubuntu distribution, but is used in Red Hat Enterprise Linux 6.0. Though it was intended to be suitable for deployment in all Linux distributions as a replacement for sysvinit, in time it was overshadowed by systemd. On February 14, 2014, Mark Shuttleworth (founder of Canonical Ltd.) announced that future releases of Ubuntu would use systemd as the default init daemon. +一开始它是为 Ubuntu 发行版开发的,但在红帽企业版 Linux 6.0 中得到使用。尽管希望它能在所有 Linux 发行版中替代 sysvinit,但它已经被 systemd 超越。2014 年 2 月 14 日,Mark Shuttleworth(Canonical Ltd. 创建者)发布声明之后的 Ubuntu 发行版采用 systemd 作为默认初始化守护进程。 -Because the SysV startup script for system has been so common for so long, a large number of software packages include SysV startup scripts. To accommodate such packages, Upstart provides a compatibility mode: It runs SysV startup scripts in the usual locations (/etc/rc.d/rc?.d, /etc/init.d/rc?.d, /etc/rc?.d, or a similar location). Thus, if we install a package that doesn’t yet include an Upstart configuration script, it should still launch in the usual way. +由于 Sysv 启动脚本已经流行很长时间了,很多软件包中都包括了 Sysv 启动脚本。为了兼容这些软件, Upstart 提供了兼容模式:它可以运行保存在常用位置(/etc/rc.d/rc?.d, /etc/init.d/rc?.d, /etc/rc?.d或其它类似的位置)的Sysv 启动脚本。因此,如果我们安装了一个还没有 Upstart 配置脚本的软件,仍然可以用原来的方式启动它。 -Furthermore, if we have installed utilities such as [chkconfig][5], you should be able to use them to manage your SysV-based services just as we would on sysvinit based systems. +另外,如果我们还安装了类似 [chkconfig][5] 的工具,你还可以和在基于 sysvinit 的系统中一样用它们管理基于 Sysv 的服务。 -Upstart scripts also support starting or stopping services based on a wider variety of actions than do SysV startup scripts; for example, Upstart can launch a service whenever a particular hardware device is attached. +Upstart 脚本除了支持 Sysv 启动脚本,还支持基于多种方式启动或者停用服务;例如, Upstart 可以在一个特定硬件设备连接上的时候启动一个服务。 -A system that uses Upstart and its native scripts exclusively replaces the /etc/inittab file and the runlevel-specific SysV startup script directories with .conf scripts in the /etc/init directory. +使用 Upstart以及它原生脚本的系统替换了 /etc/inittab 文件和 /etc/init 目录下和运行等级相关的以 .conf 作为后缀的 Sysv 启动脚本目录。 -These *.conf scripts (also known as job definitions) generally consists of the following: +这些 *.conf 脚本(也称为任务定义)通常包括以下几部分: -- Description of the process. -- Runlevels where the process should run or events that should trigger it. -- Runlevels where process should be stopped or events that should stop it. -- Options. -- Command to launch the process. +- 进程描述 +- 进程的运行等级或者应该触发它们的事件 +- 应该停止进程的运行等级或者触发停止进程的事件 +- 选项 +- 启动进程的命令 -For example, +例如, # My test service - Upstart script demo description "Here goes the description of 'My test service'" author "Dave Null " # Stanzas @@ -380,30 +334,30 @@ For example, # Specify the process/command (add arguments if needed) to run exec bash backup.sh arg1 arg2 -To apply changes, you will need to tell upstart to reload its configuration. +要使更改生效,你要让 upstart 重新加载它的配置文件。 # initctl reload-configuration -Then start your job by typing the following command. +然后用下面的命令启动你的任务。 $ sudo start yourjobname -Where yourjobname is the name of the job that was added earlier with the yourjobname.conf script. +其中 yourjobname 是之前 yourjobname.conf 脚本中添加的任务名称。 -A more complete and detailed reference guide for Upstart is available in the project’s web site under the menu “[Cookbook][6]”. +关于 Upstart 更完整和详细的介绍可以参考该项目网站的 “[Cookbook][6]” 栏目。 -### Summary ### +### 总结 ### -A knowledge of the Linux boot process is necessary to help you with troubleshooting tasks as well as with adapting the computer’s performance and running services to your needs. +了解 Linux 启动进程对于你进行错误处理、调整计算机系统以及根据需要运行服务非常有用。 -In this article we have analyzed what happens from the moment when you press the Power switch to turn on the machine until you get a fully operational user interface. I hope you have learned reading it as much as I did while putting it together. Feel free to leave your comments or questions below. We always look forward to hearing from our readers! +在这篇文章中,我们分析了你按下电源键启动机器的一刻到你看到完整的可操作用户界面这段时间发生了什么。我希望你能像我一样把它们放在一起阅读。欢迎在下面留下你的评论或者疑问。我们总是期待听到读者的回复。 -------------------------------------------------------------------------------- via: http://www.tecmint.com/linux-boot-process-and-manage-services/ 作者:[Gabriel Cánepa][a] -译者:[译者ID](https://github.com/译者ID) +译者:[ictlyh](http://mutouxiaogui.cn/blog/) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 8a721cf1f6ea95c1847737dee074efe0c0de266a Mon Sep 17 00:00:00 2001 From: ezio Date: Sun, 15 May 2016 11:20:07 +0800 Subject: [PATCH 488/582] =?UTF-8?q?=E5=9B=9E=E6=94=B6=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cketing System in Fedora 22 or Centos 7.md | 179 ---------- ... How to Configure OpenNMS on CentOS 7.x.md | 219 ------------ ...co Virtual Private Networking on Docker.md | 322 ------------------ ...Raspberry Pi projects for the classroom.md | 119 ------- 4 files changed, 839 deletions(-) delete mode 100644 sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md delete mode 100644 sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md delete mode 100644 sources/tech/20151012 Getting Started to Calico Virtual Private Networking on Docker.md delete mode 100644 sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md diff --git a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md b/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md deleted file mode 100644 index 6624a3c590..0000000000 --- a/sources/tech/20150817 How to Install OsTicket Ticketing System in Fedora 22 or Centos 7.md +++ /dev/null @@ -1,179 +0,0 @@ -How to Install OsTicket Ticketing System in Fedora 22 / Centos 7 -================================================================================ -In this article, we'll learn how to setup help desk ticketing system with osTicket in our machine or server running Fedora 22 or CentOS 7 as operating system. osTicket is a free and open source popular customer support ticketing system developed and maintained by [Enhancesoft][1] and its contributors. osTicket is the best solution for help and support ticketing system and management for better communication and support assistance with clients and customers. It has the ability to easily integrate with inquiries created via email, phone and web based forms into a beautiful multi-user web interface. osTicket makes us easy to manage, organize and log all our support requests and responses in one single place. It is a simple, lightweight, reliable, open source, web-based and easy to setup and use help desk ticketing system. - -Here are some easy steps on how we can setup Help Desk ticketing system with osTicket in Fedora 22 or CentOS 7 operating system. - -### 1. Installing LAMP stack ### - -First of all, we'll need to install LAMP Stack to make osTicket working. LAMP stack is the combination of Apache web server, MySQL or MariaDB database system and PHP. To install a complete suit of LAMP stack that we need for the installation of osTicket, we'll need to run the following commands in a shell or a terminal. - -**On Fedora 22** - -LAMP stack is available on the official repository of Fedora 22. As the default package manager of Fedora 22 is the latest DNF package manager, we'll need to run the following command. - - $ sudo dnf install httpd mariadb mariadb-server php php-mysql php-fpm php-cli php-xml php-common php-gd php-imap php-mbstring wget - -**On CentOS 7** - -As there is LAMP stack available on the official repository of CentOS 7, we'll gonna install it using yum package manager. - - $ sudo yum install httpd mariadb mariadb-server php php-mysql php-fpm php-cli php-xml php-common php-gd php-imap php-mbstring wget - -### 2. Starting Apache Web Server and MariaDB ### - -Next, we'll gonna start MariaDB server and Apache Web Server to get started. - - $ sudo systemctl start mariadb httpd - -Then, we'll gonna enable them to start on every boot of the system. - - $ sudo systemctl enable mariadb httpd - - Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. - Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. - -### 3. Downloading osTicket package ### - -Next, we'll gonna download the latest release of osTicket ie version 1.9.9 . We can download it from the official download page [http://osticket.com/download][2] or from the official github repository. [https://github.com/osTicket/osTicket-1.8/releases][3] . Here, in this tutorial we'll download the tarball of the latest release of osTicket from the github release page using wget command. - - $ cd /tmp/ - $ wget https://github.com/osTicket/osTicket-1.8/releases/download/v1.9.9/osTicket-v1.9.9-1-gbe2f138.zip - - --2015-07-16 09:14:23-- https://github.com/osTicket/osTicket-1.8/releases/download/v1.9.9/osTicket-v1.9.9-1-gbe2f138.zip - Resolving github.com (github.com)... 192.30.252.131 - ... - Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.244.4|:443... connected. - HTTP request sent, awaiting response... 200 OK - Length: 7150871 (6.8M) [application/octet-stream] - Saving to: ‘osTicket-v1.9.9-1-gbe2f138.zip’ - osTicket-v1.9.9-1-gb 100%[========================>] 6.82M 1.25MB/s in 12s - 2015-07-16 09:14:37 (604 KB/s) - ‘osTicket-v1.9.9-1-gbe2f138.zip’ saved [7150871/7150871] - -### 4. Extracting the osTicket ### - -After we have successfully downloaded the osTicket zipped package, we'll now gonna extract the zip. As the default root directory of Apache web server is /var/www/html/ , we'll gonna create a directory called "**support**" where we'll extract the whole directory and files of the compressed zip file. To do so, we'll need to run the following commands in a terminal or a shell. - - $ unzip osTicket-v1.9.9-1-gbe2f138.zip - -Then, we'll move the whole extracted files to it. - - $ sudo mv /tmp/upload /var/www/html/support - -### 5. Fixing Ownership and Permission ### - -Now, we'll gonna assign the ownership of the directories and files under /var/ww/html/support to apache to enable writable access to the apache process owner. To do so, we'll need to run the following command. - - $ sudo chown apache: -R /var/www/html/support - -Then, we'll also need to copy a sample configuration file to its default configuration file. To do so, we'll need to run the below command. - - $ cd /var/www/html/support/ - $ sudo cp include/ost-sampleconfig.php include/ost-config.php - $ sudo chmod 0666 include/ost-config.php - -If you have SELinux enabled on the system, run the following command. - - $ sudo chcon -R -t httpd_sys_content_t /var/www/html/vtigercrm - $ sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/vtigercrm - -### 6. Configuring MariaDB ### - -As this is the first time we're going to configure MariaDB, we'll need to create a password for the root user of mariadb so that we can use it to login and create the database for our osTicket installation. To do so, we'll need to run the following command in a terminal or a shell. - - $ sudo mysql_secure_installation - - ... - Enter current password for root (enter for none): - OK, successfully used password, moving on... - - Setting the root password ensures that nobody can log into the MariaDB - root user without the proper authorisation. - - Set root password? [Y/n] y - New password: - Re-enter new password: - Password updated successfully! - Reloading privilege tables.. - Success! - ... - All done! If you've completed all of the above steps, your MariaDB - installation should now be secure. - - Thanks for using MariaDB! - -Note: Above, we are asked to enter the root password of the mariadb server but as we are setting for the first time and no password has been set yet, we'll simply hit enter while asking the current mariadb root password. Then, we'll need to enter twice the new password we wanna set. Then, we can simply hit enter in every argument in order to set default configurations. - -### 7. Creating osTicket Database ### - -As osTicket needs a database system to store its data and information, we'll be configuring MariaDB for osTicket. So, we'll need to first login into the mariadb command environment. To do so, we'll need to run the following command. - - $ sudo mysql -u root -p - -Now, we'll gonna create a new database "**osticket_db**" with user "**osticket_user**" and password "osticket_password" which will be granted access to the database. To do so, we'll need to run the following commands inside the MariaDB command environment. - - > CREATE DATABASE osticket_db; - > CREATE USER 'osticket_user'@'localhost' IDENTIFIED BY 'osticket_password'; - > GRANT ALL PRIVILEGES on osticket_db.* TO 'osticket_user'@'localhost' ; - > FLUSH PRIVILEGES; - > EXIT; - -**Note**: It is strictly recommended to replace the database name, user and password as your desire for security issue. - -### 8. Allowing Firewall ### - -If we are running a firewall program, we'll need to configure our firewall to allow port 80 so that the Apache web server's default port will be accessible externally. This will allow us to navigate our web browser to osTicket's web interface with the default http port 80. To do so, we'll need to run the following command. - - $ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent - -After done, we'll need to reload our firewall service. - - $ sudo firewall-cmd --reload - -### 9. Web based Installation ### - -Finally, is everything is done as described above, we'll now should be able to navigate osTicket's Installer by pointing our web browser to http://domain.com/support or http://ip-address/support . Now, we'll be shown if the dependencies required by osTicket are installed or not. As we've already installed all the necessary packages, we'll be welcomed with **green colored tick** to proceed forward. - -![osTicket Requirements Check](http://blog.linoxide.com/wp-content/uploads/2015/07/osticket-requirements-check1.png) - -After that, we'll be required to enter the details for our osTicket instance as shown below. We'll need to enter the database name, username, password and hostname and other important account information that we'll require while logging into the admin panel. - -![osticket configuration](http://blog.linoxide.com/wp-content/uploads/2015/07/osticket-configuration.png) - -After the installation has been completed successfully, we'll be welcomed by a Congratulations screen. There we can see two links, one for our Admin Panel and the other for the support center as the homepage of the osTicket Support Help Desk. - -![osticket installation completed](http://blog.linoxide.com/wp-content/uploads/2015/07/osticket-installation-completed.png) - -If we click on http://ip-address/support or http://domain.com/support, we'll be redirected to the osTicket support page which is as shown below. - -![osticket support homepage](http://blog.linoxide.com/wp-content/uploads/2015/07/osticket-support-homepage.png) - -Next, to login into the admin panel, we'll need to navigate our web browser to http://ip-address/support/scp or http://domain.com/support/scp . Then, we'll need to enter the login details we had just created above while configuring the database and other information in the web installer. After successful login, we'll be able to access our dashboard and other admin sections. - -![osticket admin panel](http://blog.linoxide.com/wp-content/uploads/2015/07/osticket-admin-panel.png) - -### 10. Post Installation ### - -After we have finished the web installation of osTicket, we'll now need to secure some of our configuration files. To do so, we'll need to run the following command. - - $ sudo rm -rf /var/www/html/support/setup/ - $ sudo chmod 644 /var/www/html/support/include/ost-config.php - -### Conclusion ### - -osTicket is an awesome help desk ticketing system providing several new features. It supports rich text or HTML emails, ticket filters, agent collision avoidance, auto-responder and many more features. The user interface of osTicket is very beautiful with easy to use control panel. It is a complete set of tools required for a help and support ticketing system. It is the best solution for providing customers a better way to communicate with the support team. It helps a company to make their customers happy with them regarding the support and help desk. If you have any questions, suggestions, feedback please write them in the comment box below so that we can improve or update our contents. Thank you ! Enjoy :-) - ------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/install-osticket-fedora-22-centos-7/ - -作者:[Arun Pyasi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/arunp/ -[1]:http://www.enhancesoft.com/ -[2]:http://osticket.com/download -[3]:https://github.com/osTicket/osTicket-1.8/releases diff --git a/sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md b/sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md deleted file mode 100644 index f209c8e45c..0000000000 --- a/sources/tech/20150906 How to Configure OpenNMS on CentOS 7.x.md +++ /dev/null @@ -1,219 +0,0 @@ -How to Configure OpenNMS on CentOS 7.x -================================================================================ -Systems management and monitoring services are very important that provides information to view important systems management information that allow us to to make decisions based on this information. To make sure the network is running at its best and to minimize the network downtime we need to improve application performance. So, in this article we will make you understand the step by step procedure to setup OpenNMS in your IT infrastructure. OpenNMS is a free open source enterprise level network monitoring and management platform that provides information to allow us to make decisions in regards to future network and capacity planning. - -OpenNMS designed to manage tens of thousands of devices from a single server as well as manage unlimited devices using a cluster of servers. It includes a discovery engine to automatically configure and manage network devices without operator intervention. It is written in Java and is published under the GNU General Public License. OpenNMS is known for its scalability with its main functional areas in services monitoring, data collection using SNMP and event management and notifications. - -### Installing OpenNMS RPM Repository ### - -We will start from the installation of OpenNMS RPM for our CentOs 7.1 operating system as its available for most of the RPM-based distributions through Yum at their official link http://yum.opennms.org/ . - -![OpenNMS RPM](http://blog.linoxide.com/wp-content/uploads/2015/08/18.png) - -Then open your command line interface of CentOS 7.1 and login with root credentials to run the below command with “wget” to get the required RPM. - - [root@open-nms ~]# wget http://yum.opennms.org/repofiles/opennms-repo-stable-rhel7.noarch.rpm - -![Download RPM](http://blog.linoxide.com/wp-content/uploads/2015/08/26.png) - -Now we need to install this repository so that the OpenNMS package information could be available through yum for installation. Let’s run the command below with same root level credentials to do so. - - [root@open-nms ~]# rpm -Uvh opennms-repo-stable-rhel7.noarch.rpm - -![Installing RPM](http://blog.linoxide.com/wp-content/uploads/2015/08/36.png) - -### Installing Prerequisite Packages for OpenNMS ### - -Now before we start installation of OpenNMS, let’s make sure you’ve done the following prerequisites. - -**Install JDK 7** - -Its recommended that you install the latest stable Java 7 JDK from Oracle for the best performance to integrate JDK in our YUM repository as a fallback. Let’s go to the Oracle Java 7 SE JDK download page, accept the license if you agree, choose the platform and architecture. Once it has finished downloading, execute it from the command-line and then install the resulting JDK rpm. - -Else run the below command to install using the Yum from the the available system repositories. - - [root@open-nms ~]# yum install java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1 - -Once you have installed the Java you can confirm its installation using below command and check its installed version. - - [root@open-nms ~]# java -version - -![Java version](http://blog.linoxide.com/wp-content/uploads/2015/08/46.png) - -**Install PostgreSQL** - -Now we will install the PostgreSQL that is a must requirement to setup the database for OpenNMS. PostgreSQL is included in all of the major YUM-based distributions. To install, simply run the below command. - - [root@open-nms ~]# yum install postgresql postgresql-server - -![Installing Postgresql](http://blog.linoxide.com/wp-content/uploads/2015/08/55.png) - -### Prepare the Database for OpenNMS ### - -Once you have installed PostgreSQL, now you'll need to make sure that PostgreSQL is up and active. Let’s run the below command to first initialize the database and then start its services. - - [root@open-nms ~]# /sbin/service postgresql initdb - [root@open-nms ~]# /sbin/service postgresql start - -![start DB](http://blog.linoxide.com/wp-content/uploads/2015/08/64.png) - -Now to confirm the status of your PostgreSQL database you can run the below command. - - [root@open-nms ~]# service postgresql status - -![PostgreSQL status](http://blog.linoxide.com/wp-content/uploads/2015/08/74.png) - -To ensure that PostgreSQL will start after a reboot, use the “systemctl”command to enable start on bootup using below command. - - [root@open-nms ~]# systemctl enable postgresql - ln -s '/usr/lib/systemd/system/postgresql.service' '/etc/systemd/system/multi-user.target.wants/postgresql.service' - -### Configure PostgreSQL ### - -Locate the Postgres “data” directory. Often this is located in /var/lib/pgsql/data directory and Open the postgresql.conf file in text editor and configure the following parameters as shown. - - [root@open-nms ~]# vim /var/lib/pgsql/data/postgresql.conf - ----------- - - #------------------------------------------------------------------------------ - # CONNECTIONS AND AUTHENTICATION - #------------------------------------------------------------------------------ - - listen_addresses = 'localhost' - max_connections = 256 - - #------------------------------------------------------------------------------ - # RESOURCE USAGE (except WAL) - #------------------------------------------------------------------------------ - - shared_buffers = 1024MB - -**User Access to the Database** - -PostgreSQL only allows you to connect if you are logged in to the local account name that matches the PostgreSQL user. Since OpenNMS runs as root, it cannot connect as a "postgres" or "opennms" user by default, so we have to change the configuration to allow user access to the database by opening the below configuration file. - - [root@open-nms ~]# vim /var/lib/pgsql/data/pg_hba.conf - -Update the configuration file as shown below and change the METHOD settings from "ident" to "trust" - -![user access to db](http://blog.linoxide.com/wp-content/uploads/2015/08/84.png) - -Write and quit the file to make saved changes and then restart PostgreSQL services. - - [root@open-nms ~]# service postgresql restart - -### Starting OpenNMS Installation ### - -Now we are ready go with installation of OpenNMS as we have almost don with its prerequisites. Using the YUM packaging system will download and install all of the required components and their dependencies, if they are not already installed on your system. -So let's riun th belwo command to start OpenNMS installation that will pull everything you need to have a working OpenNMS, including the OpenNMS core, web UI, and a set of common plugins. - - [root@open-nms ~]# yum -y install opennms - -![OpenNMS Installation](http://blog.linoxide.com/wp-content/uploads/2015/08/93.png) - -The above command will ends up with successful installation of OpenNMS and its derivative packages. - -### Configure JAVA for OpenNMS ### - -In order to integrate the default version of Java with OpenNMS we will run the below command. - - [root@open-nms ~]# /opt/opennms/bin/runjava -s - -![java integration](http://blog.linoxide.com/wp-content/uploads/2015/08/102.png) - -### Run the OpenNMS installer ### - -Now it's time to start the OpenNMS installer that will create and configure the OpenNMS database, while the same command will be used in case we want to update it to the latest version. To do so, we will run the following command. - - [root@open-nms ~]# /opt/opennms/bin/install -dis - -The above install command will take many options with following mechanism. - --d - to update the database --i - to insert any default data that belongs in the database --s - to create or update the stored procedures OpenNMS uses for certain kinds of data access - - ============================================================================== - OpenNMS Installer - ============================================================================== - - Configures PostgreSQL tables, users, and other miscellaneous settings. - - DEBUG: Platform is IPv6 ready: true - - searching for libjicmp.so: - - trying to load /usr/lib64/libjicmp.so: OK - - searching for libjicmp6.so: - - trying to load /usr/lib64/libjicmp6.so: OK - - searching for libjrrd.so: - - trying to load /usr/lib64/libjrrd.so: OK - - using SQL directory... /opt/opennms/etc - - using create.sql... /opt/opennms/etc/create.sql - 17:27:51.178 [Main] INFO org.opennms.core.schema.Migrator - PL/PgSQL call handler exists - 17:27:51.180 [Main] INFO org.opennms.core.schema.Migrator - PL/PgSQL language exists - - checking if database "opennms" is unicode... ALREADY UNICODE - - Creating imports directory (/opt/opennms/etc/imports... OK - - Checking for old import files in /opt/opennms/etc... DONE - INFO 16/08/15 17:27:liquibase: Reading from databasechangelog - Installer completed successfully! - - ============================================================================== - OpenNMS Upgrader - ============================================================================== - - OpenNMS is currently stopped - Found upgrade task SnmpInterfaceRrdMigratorOnline - Found upgrade task KscReportsMigrator - Found upgrade task JettyConfigMigratorOffline - Found upgrade task DataCollectionConfigMigratorOffline - Processing RequisitionsMigratorOffline: Remove non-ip-snmp-primary and non-ip-interfaces from requisitions: NMS-5630, NMS-5571 - - Running pre-execution phase - Backing up: /opt/opennms/etc/imports - - Running post-execution phase - Removing backup /opt/opennms/etc/datacollection.zip - - Finished in 0 seconds - - Upgrade completed successfully! - -### Firewall configurations to Allow OpenNMS ### - -Here we have to allow OpenNMS management interface port 8980 through firewall or router to access the management web interface from the remote systems. So use the following commands to do so. - - [root@open-nms etc]# firewall-cmd --permanent --add-port=8980/tcp - [root@open-nms etc]# firewall-cmd --reload - -### Start OpenNMS and Login to Web Interface ### - -Let's start OpenNMS service and enable to it start at each bootup by using the below command. - - [root@open-nms ~]#systemctl start opennms - [root@open-nms ~]#systemctl enable opennms - -Once the services are up are ready to go with its web management interface. Open your web browser and access it with your server's IP address and 8980 port. - -http://servers_ip:8980/ - -Give the username and password where as the default username and password is admin/admin. - -![opennms login](http://blog.linoxide.com/wp-content/uploads/2015/08/opennms-login.png) - -After successful authentication with your provided username and password you will be directed towards the the Home page of OpenNMS where you can configure the new monitoring devices/nodes/services etc. - -![opennms home](http://blog.linoxide.com/wp-content/uploads/2015/08/opennms-home.png) - -### Conclusion ### - -Congratulations! we have successfully setup OpenNMS on CentOS 7.1. So, at the end of this tutorial, you are now able to install and configure OpenNMS with its prerequisites that included PostgreSQL and JAVA setup. So let's enjoy with the great network monitoring system with open source roots using OpenNMS that provide a bevy of features at no cost than their high-end competitors, and can scale to monitor large numbers of network nodes. - --------------------------------------------------------------------------------- - -via: http://linoxide.com/monitoring-2/install-configure-opennms-centos-7-x/ - -作者:[Kashif Siddique][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/kashifs/ diff --git a/sources/tech/20151012 Getting Started to Calico Virtual Private Networking on Docker.md b/sources/tech/20151012 Getting Started to Calico Virtual Private Networking on Docker.md deleted file mode 100644 index 27d60729e9..0000000000 --- a/sources/tech/20151012 Getting Started to Calico Virtual Private Networking on Docker.md +++ /dev/null @@ -1,322 +0,0 @@ -Getting Started to Calico Virtual Private Networking on Docker -================================================================================ -Calico is a free and open source software for virtual networking in data centers. It is a pure Layer 3 approach to highly scalable datacenter for cloud virtual networking. It seamlessly integrates with cloud orchestration system such as openstack, docker clusters in order to enable secure IP communication between virtual machines and containers. It implements a highly productive vRouter in each node that takes advantage of the existing Linux kernel forwarding engine. Calico works in such an awesome technology that it has the ability to peer directly with the data center’s physical fabric whether L2 or L3, without the NAT, tunnels on/off ramps, or overlays. Calico makes full utilization of docker to run its containers in the nodes which makes it multi-platform and very easy to ship, pack and deploy. Calico has the following salient features out of the box. - -- It can scale tens of thousands of servers and millions of workloads. -- Calico is easy to deploy, operate and diagnose. -- It is open source software licensed under Apache License version 2 and uses open standards. -- It supports container, virtual machines and bare metal workloads. -- It supports both IPv4 and IPv6 internet protocols. -- It is designed internally to support rich, flexible and secure network policy. - -In this tutorial, we'll perform a virtual private networking between two nodes running Calico in them with Docker Technology. Here are some easy steps on how we can do that. - -### 1. Installing etcd ### - -To get started with the calico virtual private networking, we'll need to have a linux machine running etcd. As CoreOS comes preinstalled and preconfigured with etcd, we can use CoreOS but if we want to configure Calico in other linux distributions, then we'll need to setup it in our machine. As we are running Ubuntu 14.04 LTS, we'll need to first install and configure etcd in our machine. To install etcd in our Ubuntu box, we'll need to add the official ppa repository of Calico by running the following command in the machine which we want to run etcd server. Here, we'll be installing etcd in our 1st node. - - # apt-add-repository ppa:project-calico/icehouse - - The primary source of Ubuntu packages for Project Calico based on OpenStack Icehouse, an open source solution for virtual networking in cloud data centers. Find out more at http://www.projectcalico.org/ - More info: https://launchpad.net/~project-calico/+archive/ubuntu/icehouse - Press [ENTER] to continue or ctrl-c to cancel adding it - gpg: keyring `/tmp/tmpi9zcmls1/secring.gpg' created - gpg: keyring `/tmp/tmpi9zcmls1/pubring.gpg' created - gpg: requesting key 3D40A6A7 from hkp server keyserver.ubuntu.com - gpg: /tmp/tmpi9zcmls1/trustdb.gpg: trustdb created - gpg: key 3D40A6A7: public key "Launchpad PPA for Project Calico" imported - gpg: Total number processed: 1 - gpg: imported: 1 (RSA: 1) - OK - -Then, we'll need to edit /etc/apt/preferences and make changes to prefer Calico-provided packages for Nova and Neutron. - - # nano /etc/apt/preferences - -We'll need to add the following lines into it. - - Package: * - Pin: release o=LP-PPA-project-calico-* - Pin-Priority: 100 - -![Calico PPA Config](http://blog.linoxide.com/wp-content/uploads/2015/10/calico-ppa-config.png) - -Next, we'll also need to add the official BIRD PPA for Ubuntu 14.04 LTS so that bugs fixes are installed before its available on the Ubuntu repo. - - # add-apt-repository ppa:cz.nic-labs/bird - - The BIRD Internet Routing Daemon PPA (by upstream & .deb maintainer) - More info: https://launchpad.net/~cz.nic-labs/+archive/ubuntu/bird - Press [ENTER] to continue or ctrl-c to cancel adding it - gpg: keyring `/tmp/tmphxqr5hjf/secring.gpg' created - gpg: keyring `/tmp/tmphxqr5hjf/pubring.gpg' created - gpg: requesting key F9C59A45 from hkp server keyserver.ubuntu.com - apt-ggpg: /tmp/tmphxqr5hjf/trustdb.gpg: trustdb created - gpg: key F9C59A45: public key "Launchpad Datov� schr�nky" imported - gpg: Total number processed: 1 - gpg: imported: 1 (RSA: 1) - OK - -Now, after the PPA jobs are done, we'll now gonna update the local repository index and then install etcd in our machine. - - # apt-get update - -To install etcd in our ubuntu machine, we'll gonna run the following apt command. - - # apt-get install etcd python-etcd - -### 2. Starting Etcd ### - -After the installation is complete, we'll now configure the etcd configuration file. Here, we'll edit **/etc/init/etcd.conf** using a text editor and append the line exec **/usr/bin/etcd** and make it look like below configuration. - - # nano /etc/init/etcd.conf - exec /usr/bin/etcd --name="node1" \ - --advertise-client-urls="http://10.130.65.71:2379,http://10.130.65.71:4001" \ - --listen-client-urls="http://0.0.0.0:2379,http://0.0.0.0:4001" \ - --listen-peer-urls "http://0.0.0.0:2380" \ - --initial-advertise-peer-urls "http://10.130.65.71:2380" \ - --initial-cluster-token $(uuidgen) \ - --initial-cluster "node1=http://10.130.65.71:2380" \ - --initial-cluster-state "new" - -![Configuring ETCD](http://blog.linoxide.com/wp-content/uploads/2015/10/configuring-etcd.png) - -**Note**: In the above configuration, we'll need to replace 10.130.65.71 and node-1 with the private ip address and hostname of your etcd server box. After done with editing, we'll need to save and exit the file. - -We can get the private ip address of our etcd server by running the following command. - - # ifconfig - -![ifconfig](http://blog.linoxide.com/wp-content/uploads/2015/10/ifconfig1.png) - -As our etcd configuration is done, we'll now gonna start our etcd service in our Ubuntu node. To start etcd daemon, we'll gonna run the following command. - - # service etcd start - -After done, we'll have a check if etcd is really running or not. To ensure that, we'll need to run the following command. - - # service etcd status - -### 3. Installing Docker ### - -Next, we'll gonna install Docker in both of our nodes running Ubuntu. To install the latest release of docker, we'll simply need to run the following command. - - # curl -sSL https://get.docker.com/ | sh - -![Docker Engine Installation](http://blog.linoxide.com/wp-content/uploads/2015/10/docker-engine-installation.png) - -After the installation is completed, we'll gonna start the docker daemon in-order to make sure that its running before we move towards Calico. - - # service docker restart - - docker stop/waiting - docker start/running, process 3056 - -### 3. Installing Calico ### - -We'll now install calico in our linux machine in-order to run the calico containers. We'll need to install Calico in every node which we're wanting to connect into the Calico network. To install Calico, we'll need to run the following command under root or sudo permission. - -#### On 1st Node #### - - # wget https://github.com/projectcalico/calico-docker/releases/download/v0.6.0/calicoctl - - --2015-09-28 12:08:59-- https://github.com/projectcalico/calico-docker/releases/download/v0.6.0/calicoctl - Resolving github.com (github.com)... 192.30.252.129 - Connecting to github.com (github.com)|192.30.252.129|:443... connected. - ... - Resolving github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)... 54.231.9.9 - Connecting to github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)|54.231.9.9|:443... connected. - HTTP request sent, awaiting response... 200 OK - Length: 6166661 (5.9M) [application/octet-stream] - Saving to: 'calicoctl' - 100%[=========================================>] 6,166,661 1.47MB/s in 6.7s - 2015-09-28 12:09:08 (898 KB/s) - 'calicoctl' saved [6166661/6166661] - - # chmod +x calicoctl - -After done with making it executable, we'll gonna make the binary calicoctl available as the command in any directory. To do so, we'll need to run the following command. - - # mv calicoctl /usr/bin/ - -#### On 2nd Node #### - - # wget https://github.com/projectcalico/calico-docker/releases/download/v0.6.0/calicoctl - - --2015-09-28 12:09:03-- https://github.com/projectcalico/calico-docker/releases/download/v0.6.0/calicoctl - Resolving github.com (github.com)... 192.30.252.131 - Connecting to github.com (github.com)|192.30.252.131|:443... connected. - ... - Resolving github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)... 54.231.8.113 - Connecting to github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)|54.231.8.113|:443... connected. - HTTP request sent, awaiting response... 200 OK - Length: 6166661 (5.9M) [application/octet-stream] - Saving to: 'calicoctl' - 100%[=========================================>] 6,166,661 1.47MB/s in 5.9s - 2015-09-28 12:09:11 (1022 KB/s) - 'calicoctl' saved [6166661/6166661] - - # chmod +x calicoctl - -After done with making it executable, we'll gonna make the binary calicoctl available as the command in any directory. To do so, we'll need to run the following command. - - # mv calicoctl /usr/bin/ - -Likewise, we'll need to execute the above commands to install in every other nodes. - -### 4. Starting Calico services ### - -After we have installed calico on each of our nodes, we'll gonna start our Calico services. To start the calico services, we'll need to run the following commands. - -#### On 1st Node #### - - # calicoctl node - - WARNING: Unable to detect the xt_set module. Load with `modprobe xt_set` - WARNING: Unable to detect the ipip module. Load with `modprobe ipip` - No IP provided. Using detected IP: 10.130.61.244 - Pulling Docker image calico/node:v0.6.0 - Calico node is running with id: fa0ca1f26683563fa71d2ccc81d62706e02fac4bbb08f562d45009c720c24a43 - -#### On 2nd Node #### - -Next, we'll gonna export a global variable in order to connect our calico nodes to the same etcd server which is hosted in node1 in our case. To do so, we'll need to run the following command in each of our nodes. - - # export ETCD_AUTHORITY=10.130.61.244:2379 - -Then, we'll gonna run calicoctl container in our every our second node. - - # calicoctl node - - WARNING: Unable to detect the xt_set module. Load with `modprobe xt_set` - WARNING: Unable to detect the ipip module. Load with `modprobe ipip` - No IP provided. Using detected IP: 10.130.61.245 - Pulling Docker image calico/node:v0.6.0 - Calico node is running with id: 70f79c746b28491277e28a8d002db4ab49f76a3e7d42e0aca8287a7178668de4 - -This command should be executed in every nodes in which we want to start our Calico services. The above command start a container in the respective node. To check if the container is running or not, we'll gonna run the following docker command. - - # docker ps - -![Docker Running Containers](http://blog.linoxide.com/wp-content/uploads/2015/10/docker-running-containers.png) - -If we see the output something similar to the output shown below then we can confirm that Calico containers are up and running. - -### 5. Starting Containers ### - -Next, we'll need to start few containers in each of our nodes running Calico services. We'll assign a different name to each of the containers running ubuntu. Here, workload-A, workload-B, etc has been assigned as the unique name for each of the containers. To do so, we'll need to run the following command. - -#### On 1st Node #### - - # docker run --net=none --name workload-A -tid ubuntu - - Unable to find image 'ubuntu:latest' locally - latest: Pulling from library/ubuntu - ... - 91e54dfb1179: Already exists - library/ubuntu:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. - Digest: sha256:73fbe2308f5f5cb6e343425831b8ab44f10bbd77070ecdfbe4081daa4dbe3ed1 - Status: Downloaded newer image for ubuntu:latest - a1ba9105955e9f5b32cbdad531cf6ecd9cab0647d5d3d8b33eca0093605b7a18 - - # docker run --net=none --name workload-B -tid ubuntu - - 89dd3d00f72ac681bddee4b31835c395f14eeb1467300f2b1b9fd3e704c28b7d - -#### On 2nd Node #### - - # docker run --net=none --name workload-C -tid ubuntu - - Unable to find image 'ubuntu:latest' locally - latest: Pulling from library/ubuntu - ... - 91e54dfb1179: Already exists - library/ubuntu:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. - Digest: sha256:73fbe2308f5f5cb6e343425831b8ab44f10bbd77070ecdfbe4081daa4dbe3ed1 - Status: Downloaded newer image for ubuntu:latest - 24e2d5d7d6f3990b534b5643c0e483da5b4620a1ac2a5b921b2ba08ebf754746 - - # docker run --net=none --name workload-D -tid ubuntu - - c6f28d1ab8f7ac1d9ccc48e6e4234972ed790205c9ca4538b506bec4dc533555 - -Similarly, if we have more nodes, we can run ubuntu docker container into it by running the above command with assigning a different container name. - -### 6. Assigning IP addresses ### - -After we have got our docker containers running in each of our hosts, we'll go for adding a networking support to the containers. Now, we'll gonna assign a new ip address to each of the containers using calicoctl. This will add a new network interface to the containers with the assigned ip addresses. To do so, we'll need to run the following commands in the hosts running the containers. - -#### On 1st Node #### - - # calicoctl container add workload-A 192.168.0.1 - # calicoctl container add workload-B 192.168.0.2 - -#### On 2nd Node #### - - # calicoctl container add workload-C 192.168.0.3 - # calicoctl container add workload-D 192.168.0.4 - -### 7. Adding Policy Profiles ### - -After our containers have got networking interfaces and ip address assigned, we'll now need to add policy profiles to enable networking between the containers each other. After adding the profiles, the containers will be able to communicate to each other only if they have the common profiles assigned. That means, if they have different profiles assigned, they won't be able to communicate to eachother. So, before being able to assign. we'll need to first create some new profiles. That can be done in either of the hosts. Here, we'll run the following command in 1st Node. - - # calicoctl profile add A_C - - Created profile A_C - - # calicoctl profile add B_D - - Created profile B_D - -After the profile has been created, we'll simply add our workload to the required profile. Here, in this tutorial, we'll place workload A and workload C in a common profile A_C and workload B and D in a common profile B_D. To do so, we'll run the following command in our hosts. - -#### On 1st Node #### - - # calicoctl container workload-A profile append A_C - # calicoctl container workload-B profile append B_D - -#### On 2nd Node #### - - # calicoctl container workload-C profile append A_C - # calicoctl container workload-D profile append B_D - -### 8. Testing the Network ### - -After we've added a policy profile to each of our containers using Calicoctl, we'll now test whether our networking is working as expected or not. We'll take a node and a workload and try to communicate with the other containers running in same or different nodes. And due to the profile, we should be able to communicate only with the containers having a common profile. So, in this case, workload A should be able to communicate with only C and vice versa whereas workload A shouldn't be able to communicate with B or D. To test the network, we'll gonna ping the containers having common profiles from the 1st host running workload A and B. - -We'll first ping workload-C having ip 192.168.0.3 using workload-A as shown below. - - # docker exec workload-A ping -c 4 192.168.0.3 - -Then, we'll ping workload-D having ip 192.168.0.4 using workload-B as shown below. - - # docker exec workload-B ping -c 4 192.168.0.4 - -![Ping Test Success](http://blog.linoxide.com/wp-content/uploads/2015/10/ping-test-success.png) - -Now, we'll check if we're able to ping the containers having different profiles. We'll now ping workload-D having ip address 192.168.0.4 using workload-A. - - # docker exec workload-A ping -c 4 192.168.0.4 - -After done, we'll try to ping workload-C having ip address 192.168.0.3 using workload-B. - - # docker exec workload-B ping -c 4 192.168.0.3 - -![Ping Test Failed](http://blog.linoxide.com/wp-content/uploads/2015/10/ping-test-failed.png) - -Hence, the workloads having same profiles could ping each other whereas having different profiles couldn't ping to each other. - -### Conclusion ### - -Calico is an awesome project providing an easy way to configure a virtual network using the latest docker technology. It is considered as a great open source solution for virtual networking in cloud data centers. Calico is being experimented by people in different cloud platforms like AWS, DigitalOcean, GCE and more these days. As Calico is currently under experiment, its stable version hasn't been released yet and is still in pre-release. The project consists a well documented documentations, tutorials and manuals in their [official documentation site][2]. - --------------------------------------------------------------------------------- - -via: http://linoxide.com/linux-how-to/calico-virtual-private-networking-docker/ - -作者:[Arun Pyasi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://linoxide.com/author/arunp/ -[1]:http://docs.projectcalico.org/ \ No newline at end of file diff --git a/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md deleted file mode 100644 index b7455d11f7..0000000000 --- a/sources/tech/20151207 5 great Raspberry Pi projects for the classroom.md +++ /dev/null @@ -1,119 +0,0 @@ -ezio - -5 great Raspberry Pi projects for the classroom -===================================================== - - -5 个很适合在课堂上演示的树莓派项目 -===================================================== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc-open-source-yearbook-lead3.png?itok=fSUS0fIt) - -### 1. 我的世界 Pi - -![](https://opensource.com/sites/default/files/lava.png) ->Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1]. - -Minecraft is the favorite game of pretty much every teenager in the world—and it's one of the most creative games ever to capture the attention of young people. The version that comes with every Raspberry Pi is not only a creative thinking building game, but comes with a programming interface allowing for additional interaction with the Minecraft world through Python code. - -我的世界是世界上很多青少年最喜欢的一个游戏,而且他也是目前最能激发年轻人创造力的一款游戏。这个树莓派版上自带的我的世界不仅仅是一个具有创造性的建筑游戏,他还是一个具有编程接口、可以通过 Python 与之交互的版本。 - -Minecraft: Pi Edition is a great way for teachers to engage students with problem solving and writing code to perform tasks. You can use the Python API to build a house and have it follow you wherever you go, build a bridge wherever you walk, make it rain lava, show the temperature in the sky, and anything else your imagination can create. - -我的世界:Pi 版对于老师来说是一个非常好的教授学生解决问题和编写代码完成任务的途径。你可以使用 Python API 创建一个房子,并且一直跟随这你的脚步移动,当你需要桥梁的时候给你建造一座桥,让老天呀下雨,显示天空的温度,以及其它你可以想象到的一切东西。 - -Read more in "[Getting Started with Minecraft Pi][2]." - -详情请见 "[Getting Started with Minecraft Pi][2]." - -### 2. 反应游戏和交通灯 Reaction game and traffic lights - -![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg) ->Courtesy of [Low Voltage Labs][3]. [CC BY-SA 4.0][1]. - -It's really easy to get started with physical computing on Raspberry Pi—just connect up LEDs and buttons to the GPIO pins, and with a few lines of code you can turn lights on and control things with button presses. Once you know the code to do the basics, it's down to your imagination as to what you do next! - -使用树莓派可以很轻松的进行物理计算——只需要连接几个 LED 和按钮到 开发板上的 GPIO 接口,再用几行代码你就可以按下按钮来开灯。一旦你指导了如何使用代码来做这些基本的东西,接下来就可以根据你的想象来做其它事情了。 - -If you know how to flash one light, you can flash three. Pick out three LEDs in traffic light colors and you can code the traffic light sequence. If you know how to use a button to a trigger an event, then you have a pedestrian crossing! Also look out for great pre-built traffic light add-ons like [PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6], and more. - -如果你知道如何让一个灯闪烁,你就可以让三个灯开始闪烁。挑选三个和交通灯一样颜色的 LED 灯,然后编写控制交通灯的代码。如果你知道如何使用按钮触发实践,那么你就可以模拟行人过马路。同时你可以参考其它已经完成的交通灯附件,比如[PI-TRAFFIC][4], [PI-STOP][5], [Traffic HAT][6],等等。 - -It's not always about the code—this can be used as an exercise in understanding how real world systems are devised. Computational thinking is a useful skill in any walk of life. - -代码并不是全部——这些联系只是让你理解真是世界里使如何完成这些事的。计算思维是一个在你一生中都会很有用的技能。 - -![](https://opensource.com/sites/default/files/reaction-game.png) ->Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1]. - -Next, try wiring up two buttons and an LED and making a two-player reaction game—let the light come on after a random amount of time and see who can press the button first! - -接下来试着接通两个按钮和 LED 灯的电源,实现一个反应游戏 —— 让 LED 灯随机的点亮,然后看是最先按下按钮。 - -To learn more, check out [GPIO Zero recipes][7]. Everything you need is in [CamJam EduKit 1][8]. - -要想了解更多可以看看 [GPIO Zero recipes][7]。你所需要的资料都可以在 [CamJam EduKit 1][8] 找到。 - -### 3. 电子宠物 Sense HAT Pixel Pet - -The Astro Pi—an augmented Raspberry Pi—is going to space this December, but you haven't missed your chance to get your hands on the hardware. The Sense HAT is the sensor board add-on used in the Astro Pi mission and it's available for anyone to buy. You can use it for data collection, science experiments, games and more. Watch this Gurl Geek Diaries video from Raspberry Pi's Carrie Anne for a great way to get started—by bringing to life an animated pixel pet of your own design on the Sense HAT display: - -Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是你并没有错过亲手把玩这个硬件的机会。Sense HAT 是 Astro Pi 的一个传感器扩展板,现在已经开放购买了。你可以使用它来进行数据搜集,科学实验,游戏和其它很多事。可以看看下面树莓派的 Carrie Anne 拍摄的 Gurl Geek Diaries 的视频,里面演示了一种很棒的入门途径——给生活添加一个你自己创造的生动的像素宠物: - -[video](https://youtu.be/gfRDFvEVz-w) - ->Learn more in "[Exploring the Sense HAT][9]." ->详见 "[探索 Sense HAT][9]." - -### 4. 红外鸟笼 Infrared bird box - -![](https://opensource.com/sites/default/files/ir-bird-box.png) ->Courtesy of the Raspberry Pi Foundation. [CC BY-SA 4.0][1]. - -A great exercise for the whole class to get involved with—place a Raspberry Pi and the NoIR camera module inside a bird box along with some infra-red lights so you can see in the dark, then stream video from the Pi over the network or on the internet. Wait for birds to nest and you can observe them without disturbing them in their habitat. - - - -Learn all about infrared and the light spectrum, and how to adjust the camera focus and control the camera in software. - -Learn more in "[Make an infrared bird box][10]." - -### 5. 机器人 Robotics - -![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg) ->Courtesy of Low Voltage Labs. [CC BY-SA 4.0][1]. - -With a Raspberry Pi and as little as a couple of motors and a motor controller board, you can build your own robot. There is a vast range of robots you can make, from basic buggies held together by sellotape and a homemade chassis, all the way to self-aware, sensor-laden metallic stallions with camera attachments driven by games controllers. - -Learn how to control individual motors with something straightforward like the RTK Motor Controller Board (£8/$12), or dive into the new CamJam robotics kit (£17/$25) which comes with motors, wheels and a couple of sensors—great value and plenty of learning potential. - -Alternatively, if you'd like something more hardcore, try PiBorg's [4Borg][11] (£99/$150) or [DiddyBorg][12] (£180/$273) or go the whole hog and treat yourself to their DoodleBorg Metal edition (£250/$380)—and build a mini version of their infamous [DoodleBorg tank][13] (unfortunately not for sale). - -Check out the [CamJam robotics kit worksheets][14]. - - ------------------------------------------------------------------------------- - -via: https://opensource.com/education/15/12/5-great-raspberry-pi-projects-classroom - -作者:[Ben Nuttall][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/bennuttall -[1]: https://creativecommons.org/licenses/by-sa/4.0/ -[2]: https://opensource.com/life/15/5/getting-started-minecraft-pi -[3]: http://lowvoltagelabs.com/ -[4]: http://lowvoltagelabs.com/products/pi-traffic/ -[5]: http://4tronix.co.uk/store/index.php?rt=product/product&product_id=390 -[6]: https://ryanteck.uk/hats/1-traffichat-0635648607122.html -[7]: http://pythonhosted.org/gpiozero/recipes/ -[8]: http://camjam.me/?page_id=236 -[9]: https://opensource.com/life/15/10/exploring-raspberry-pi-sense-hat -[10]: https://www.raspberrypi.org/learning/infrared-bird-box/ -[11]: https://www.piborg.org/4borg -[12]: https://www.piborg.org/diddyborg -[13]: https://www.piborg.org/doodleborg -[14]: http://camjam.me/?page_id=1035#worksheets From 849699211b51b3b9b70a6102874f691cbd51e9f7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 11:40:21 +0800 Subject: [PATCH 489/582] =?UTF-8?q?20160515-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ata processing with Cassandra and Spark.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md diff --git a/sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md b/sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md new file mode 100644 index 0000000000..149ab6fbb7 --- /dev/null +++ b/sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md @@ -0,0 +1,50 @@ +An introduction to data processing with Cassandra and Spark +============================================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/osdc_520x292_opendata_0613mm.png?itok=mzC0Tb28) + + +There's been a huge surge of interest around the Apache Cassandra database due to the increasing uptime and performance demands of modern cloud applications. + +So, what is Apache Cassandra? A distributed OLTP database built for high availability and linear scalability. When people ask what Cassandra is used for, think about the type of system you want close to the customer. This is ultimately the system that our users interact with. Applications that must always be available: product catalogs, IoT, medical systems, and mobile applications. In these categories downtime can mean loss of revenue or even more dire outcomes depending on your specific use case. Netflix was one of the earliest adopters of this project, which was open sourced in 2008, and their contributions, along with successes, put it on the radar of the masses. + +Cassandra became a top level Apache Software Foundation project in 2010 and has been riding the wave in popularity since then. Now even knowledge in Cassandra gets you serious returns in the job market. It's both crazy and awesome to consider a NoSQL and open source technology could perform this sort of disruption next to the giants of enterprise SQL. This begs the question, what makes it so popular? + +Cassandra has the ability to be always on in spite of massive hardware and network failures by utilizing a design first widely discussed in [the Dynamo paper from Amazon][1]. By using a peer to peer model, with no single point of failure, we can survive rack failure and even complete network partitions. We can deal with an entire data center failure without impacting our customer's experience. A distributed system that plans for failure is a properly planned distributed system, because frankly, failures are just going to happen. With Cassandra, we accept that cruel fact of life, and bake it into the database's architecture and functionality. + +We know what you’re thinking, "But, I’m coming from a relational background, isn't this going to be a daunting transition?" The answer is somewhat yes and no. Data modeling with Cassandra will feel familiar to developers coming from the relational world. We use tables to model our data, and CQL, the Cassandra Query Language, to query the database. However, unlike SQL, Cassandra supports more complex data structures such as nested and user defined types. For instance, instead of creating a dedicated table to store likes on a cat photo, we can store that data in a collection with the photo itself enabling faster, sequential lookups. That's expressed very naturally in CQL. In our photo table we may want to track the name, URL, and the people that liked the photo. + +![](https://opensource.com/sites/default/files/resize/screen_shot_2016-05-06_at_7.17.33_am-350x198.png) + +In a high performance system milliseconds matter for both user experience and for customer retention. Expensive JOIN operations limit our ability to scale out by adding unpredictable network calls. By denormalizing our data so it can be fetched in as few requests as possible, we profit from the trend of decreasing costs in disk space and in return get predictable, high performance applications. We embrace the concept of denormalization with Cassandra because it offers a pretty appealing tradeoff. + +We're obviously not just limited to storing likes on cat photos. Cassandra is a optimized for high write throughput. This makes it the perfect solution for big data applications where we’re constantly ingesting data. Time series and IoT use cases are growing at a steady rate in both demand and appearance in the market, and we're continuously finding ways to utilize the data we collect to improve our technological application. + +This brings us to the next step, we've talked about storing our data in a modern, cost-effective fashion, but how do we get even more horsepower? Meaning, once we've collected all that data, what do we do with it? How can we analyze hundreds of terabytes efficiently? How can we react to information we're receiving in real-time, making decisions in seconds rather than hours? Enter Apache Spark. + +Spark is the next step in the evolution of big data processing. Hadoop and MapReduce were revolutionary projects, giving the big data world an opportunity to crunch all the data we've collected. Spark takes our big data analysis to the next level by drastically improving performance and massively decreasing code complexity. Through Spark, we can perform massive batch processing calculations, react quickly to stream processing, make smart decisions through machine learning, and understand complex, recursive relationships through graph traversals. It’s not just about offering your customers a fast and reliable connection to their application (which is what Cassandra offers), it's also about being able to leverage insights from the data Cassandra stores to make more intelligent business decisions and better cater to customer needs. + +You can check out the [Spark-Cassandra Connector][2] (open source) and give it a shot. To learn more about both technologies, we highly recommend the free self-paced courses on [DataStax Academy][3]. + +Have fun digging in and learning some killer new technology! If you want to learn more, check out our [OSCON tutorial][4], with a hands on exploration into the worlds of both Cassandra and Spark. + +We also love taking questions on Twitter, so give us a shout and we’ll try to help: [Dani][5] and [Jon][6]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/5/basics-cassandra-and-spark-data-processing + +作者:[Jon Haddad][a],[Dani Traphagen][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://twitter.com/rustyrazorblade +[b]: https://opensource.com/users/dtrapezoid +[1]: http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf +[2]: https://github.com/datastax/spark-cassandra-connector +[3]: https://academy.datastax.com/ +[4]: http://conferences.oreilly.com/oscon/open-source-us/public/schedule/detail/49162 +[5]: https://twitter.com/dtrapezoid +[6]: https://twitter.com/rustyrazorblade From 0f082c887259262d50cfb1109d53a22f87b1f78e Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 11:47:09 +0800 Subject: [PATCH 490/582] =?UTF-8?q?20160515-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rt Devices, Security Concerns, and More.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 sources/talk/20160506 Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More.md diff --git a/sources/talk/20160506 Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More.md b/sources/talk/20160506 Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More.md new file mode 100644 index 0000000000..e17c33bd81 --- /dev/null +++ b/sources/talk/20160506 Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More.md @@ -0,0 +1,46 @@ +Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More[video] +=========================================================================== + +![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/elc-linus-b.jpg?itok=6WwnCSjL) +>Dirk Hohndel interviews Linus Torvalds at ELC. + +For the first time in the 11-year history of the [Embedded Linux Conference (ELC)][0], held in San Diego, April 4-6, the keynotes included a discussion with Linus Torvalds. The creator and lead overseer of the Linux kernel, and “the reason we are all here,” in the words of his interviewer, Intel Chief Linux and Open Source Technologist Dirk Hohndel, seemed upbeat about the state of Linux in embedded and Internet of Things applications. Torvalds very presence signaled that embedded Linux, which has often been overshadowed by Linux desktop, server, and cloud technologies, had come of age. + +![](https://www.linux.com/sites/lcom/files/styles/floated_images/public/elc-linus_0.jpg?itok=FNPIDe8k) +>Linus Torvalds speaking at Embedded Linux Conference. + +IoT was the main topic at ELC, which included an OpenIoT Summit track, and the chief topic in the Torvalds interview. + +“Maybe you won’t see Linux at the IoT leaf nodes, but anytime you have a hub, you will need it,” Torvalds told Hohndel. “You need smart devices especially if you have 23 [IoT standards]. If you have all these stupid devices that don’t necessarily run Linux, and they all talk with slightly different standards, you will need a lot of smart devices. We will never have one completely open standard, one ring to rule them all, but you will have three of four major protocols, and then all these smart hubs that translate.” + +Torvalds remained customarily philosophical when Hohndel asked about the gaping security holes in IoT. “I don’t worry about security because there’s not a lot we can do,” he said. “IoT is unpatchable -- it’s a fact of life.” + +The Linux creator seemed more concerned about the lack of timely upstream contributions from one-off embedded projects, although he noted there have been significant improvements in recent years, partially due to consolidation on hardware. + +“The embedded world has traditionally been hard to interact with as an open source developer, but I think that’s improving,” Torvalds said. “The ARM community has become so much better. Kernel people can now actually keep up with some of the hardware improvements. It’s improving, but we’re not nearly there yet.” + +Torvalds admitted to being more at home on the desktop than in embedded and to having “two left hands” when it comes to hardware. + +“I’ve destroyed things with a soldering iron many times,” he said. “I’m not really set up to do hardware.” On the other hand, Torvalds guessed that if he were a teenager today, he would be fiddling around with a Raspberry Pi or BeagleBone. “The great part is if you’re not great at soldering, you can just buy a new one.” + +Meanwhile, Torvalds vowed to continue fighting for desktop Linux for another 25 years. “I’ll wear them down,” he said with a smile. + +Watch the full video, below. + +Get the Latest on Embedded Linux and IoT. Access 150+ recorded sessions from Embedded Linux Conference 2016. [Watch Now][1]. + +[video](https://youtu.be/tQKUWkR-wtM) + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/linus-torvalds-talks-iot-smart-devices-security-concerns-and-more-video + +作者:[ERIC BROWN][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/users/ericstephenbrown +[0]: http://events.linuxfoundation.org/events/embedded-linux-conference +[1]: http://go.linuxfoundation.org/elc-openiot-summit-2016-videos?utm_source=lf&utm_medium=blog&utm_campaign=linuxcom From db9a8c2bbb36947e80ed72bf6148d70efdf8e5fd Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 11:55:30 +0800 Subject: [PATCH 491/582] =?UTF-8?q?20160515-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...se: Six Unsung Apache Big Data Projects.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md diff --git a/sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md b/sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md new file mode 100644 index 0000000000..76d97b7505 --- /dev/null +++ b/sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md @@ -0,0 +1,80 @@ +On the Rise: Six Unsung Apache Big Data Projects +================================================= + +![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/star-clusters-74052_1920.jpg?itok=HJISFdwo) +>Creative Commons Zero + +Countless organizations around the world are now working with data sets so large and complex that traditional data processing applications can no longer drive optimized analytics and insights. That’s the problem that the new wave of Big Data applications aims to solve, and the Apache Software Foundation (ASF) has recently graduated a slew of interesting open source Big Data projects to Top-Level status. That means that they will get active development and strong community support. + +Most people have heard of Apache Spark, [a Big Data processing framework][1] with built-in modules for streaming, SQL, machine learning and graph processing. IBM and other companies are pouring billions of development dollars into Spark initiatives, and NASA and the [SETI Institute][2] are collaborating to analyze terabytes of complex deep space radio signals using Spark’s machine learning capabilities in a hunt for patterns that might betray the presence of intelligent extraterrestrial life. + +![](https://www.linux.com/sites/lcom/files/styles/floated_images/public/asf.jpg?itok=wtu0hq36) + +However, several other recently elevated Apache Big Data projects deserve attention, too. In fact, some of them may produce ecosystems of activity and development that will rival Spark’s. In conjunction with this week’s [ApacheCon North America conference][3] and Apache: Big Data events, this article will round up the Apache Big Data projects that you should know about. + +Here are six projects on the rise: + +### Kylin + +Apache recently [announced][4] that its Kylin project, an open source Big Data project born at eBay, has graduated to Top-Level status. Kylin is an open source Distributed Analytics Engine designed to provide an SQL interface and multi-dimensional analysis (OLAP) on Apache Hadoop, supporting extremely large datasets. It is still widely used at eBay and at a few other organizations. + +"Apache Kylin's incubation journey has demonstrated the value of Open Source governance at ASF and the power of building an open-source community and ecosystem around the project," said Luke Han, Vice President of Apache Kylin. "Our community is engaging the world's biggest local developer community in alignment with the Apache Way." + +As an OLAP-on-Hadoop solution, Apache Kylin aims to fill the gap between Big Data exploration and human use, "enabling interactive analysis on massive datasets with sub-second latency for analysts, end users, developers, and data enthusiasts," according to developers. "Apache Kylin brings back business intelligence (BI) to Apache Hadoop to unleash the value of Big Data," they added. + +### Lens + +Apache also recently [announced][5] that Apache Lens, an open source Big Data and analytics tool, has graduated from the Apache Incubator to become a Top-Level Project (TLP). According to the announcement: "Apache Lens is a Unified Analytics platform. It provides an optimal execution environment for analytical queries in the unified view. Apache Lens aims to cut the Data Analytics silos by providing a single view of data across multiple tiered data stores." + +"By providing an online analytical processing (OLAP) model on top of data, Lens seamlessly integrates Apache Hadoop with traditional data warehouses to appear as one. It also provides query history and statistics for queries running in the system along with query life cycle management." + +"Incubating Apache Lens has been an amazing experience at the ASF," said Amareshwari Sriramadasu, Vice President of Apache Lens. "Apache Lens solves a very critical problem in Big Data analytics space with respect to end users. It enables business users, analysts, data scientists, developers and other users to do complex analysis with ease, without knowing the underlying data layout." + +### Ignite + +The ASF has also [announced][6] that Apache Ignite has become a top-level project. It's an open source effort to build an in-memory data fabric. + +“Apache Ignite is a high-performance, integrated and distributed In-Memory Data Fabric for computing and transacting on large-scale data sets in real-time, "orders of magnitude faster than possible with traditional disk-based or flash technologies," according to Apache community members. “It is designed to easily power both existing and new applications in a distributed, massively parallel architecture on affordable, industry-standard hardware.” + +### Brooklyn + +The foundation [announced][7] that Apache Brooklyn is now a Top-Level Project (TLP), "signifying that the project's community and products have been well-governed under the ASF's meritocratic process and principles." Brooklyn is an application blueprint and management platform used for integrating services across multiple data centers as well as and a wide range of software in the cloud. + +According to the Brooklyn announcement: "With modern applications being composed of many components, and increasing interest in micro-services architecture, the deployment and ongoing evolution of deployed apps is an increasingly difficult problem. Apache Brooklyn’s blueprints provide a clear, concise way to model an application, its components and their configuration, and the relationships between components, before deploying to public Cloud or private infrastructure. Policy-based management, built on the foundation of autonomic computing theory, continually evaluates the running application and makes modifications to it to keep it healthy and optimize for metrics such as cost and responsiveness." + +Brooklyn is in use at some notable organizations. Cloud service providers Canopy and Virtustream have created product offerings built on Brooklyn. IBM has also made extensive use of Apache Brooklyn in order to migrate large workloads from AWS to IBM Softlayer. + +### Apex + +In April, the Apache Software Foundation [elevated][8] its Apex project to Top-Level status. It is billed as “a large scale, high throughput, low latency, fault tolerant, unified Big Data stream and batch processing platform for the Apache Hadoop ecosystem.” Apex works in conjunction with Apache Hadoop YARN, a resource management platform for working with Hadoop clusters. + +### Tajo + +Finally, Apache Tajo, an advanced open source data warehousing system in Apache Hadoop, is another new Big Data project to know about. Apache claims that Tajo provides the ability to rapidly extract more intelligence for Hadoop deployments, third party databases, and commercial business intelligence tools. + +Clearly, although Apache Spark draws the bulk of the headlines, it is not the only Big Data tool from Apache to keep your eyes on. As this year continues, Apache likely will graduate even more compelling Big Data projects to Top-Level status, where they will benefit from optimized development resources and more. + + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/enterprise/systems-management/887177-achieving-enterprise-ready-container-tools-with-werckers-open-source-cli + +作者:[SAM DEAN][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/users/sam-dean +[1]: https://www.linux.com/news/apache-spark-16-strong-typing-faster-throughput +[2]: http://www.seti.org/ +[3]: http://events.linuxfoundation.org/events/apachecon-north-america +[4]: http://globenewswire.com/news-release/2015/12/08/793713/0/en/The-Apache-Software-Foundation-Announces-Apache-Kylin-as-a-Top-Level-Project.html +[5]: http://globenewswire.com/news-release/2015/08/26/763513/10147133/en/The-Apache-Software-Foundation-Announces-Apache-tm-Lens-tm-as-a-Top-Level-Project.html +[6]: http://globenewswire.com/news-release/2015/08/25/763148/10146997/en/The-Apache-Software-Foundation-Announces-Apache-tm-Ignite-tm-as-a-Top-Level-Project.html +[7]: http://globenewswire.com/news-release/2015/11/23/789504/0/en/The-Apache-Software-Foundation-Announces-Apache-Brooklyn-as-a-Top-Level-Project.html +[8]: https://globenewswire.com/news-release/2016/04/25/832114/0/en/The-Apache-Software-Foundation-Announces-Apache-Apex-as-a-Top-Level-Project.html + + + + From a1d4ad07969ab517b59332f67b2d7587e3072bc7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 12:06:27 +0800 Subject: [PATCH 492/582] =?UTF-8?q?20160511-4=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...11 4 Container Networking Tools to Know.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sources/tech/20160511 4 Container Networking Tools to Know.md diff --git a/sources/tech/20160511 4 Container Networking Tools to Know.md b/sources/tech/20160511 4 Container Networking Tools to Know.md new file mode 100644 index 0000000000..5b80791c6f --- /dev/null +++ b/sources/tech/20160511 4 Container Networking Tools to Know.md @@ -0,0 +1,63 @@ +4 Container Networking Tools to Know +======================================= + +![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/network-crop.jpeg?itok=Na1tb9aR) +>[Creative Commons Zero][1] + +With so many new cloud computing technologies, tools, and techniques to keep track of, it can be hard to know where to start learning new skills. This series on [next-gen cloud technologies][2] aims to help you get up to speed on the important projects and products in emerging and rapidly changing areas such as software-defined networking (SDN) , containers, and the space where they coincide: container networking. + +The relationship between containers and networks remains challenging for enterprise container deployment. Containers need networking functionality to connect distributed applications. Part of the challenge, according to a recent [Enterprise Networking Planet][3] article, is “to deploy containers in a way that provides the isolation they need to function as their own self-contained data environments while still maintaining effective connectivity.” + +[Docker][4], the popular container platform, uses software-defined virtual networks to connect containers with the local network. Additionally, it uses Linux bridging features and virtual extensible LAN (VXLAN) technology so containers can communicate with each other in the same Swarm, or cluster. Docker’s plug-in architecture also allows other network management tools, such as those listed below, to control containers. + +Innovation in container networking has enabled containers to connect with other containers across hosts. This enables developers to start an application in a container on a host in a development environment and transition it across testing and then into a production environment enabling continuous integration, agility, and rapid deployment. + +Container networking tools help accomplish container networking scalability, mainly by: + +1) enabling complex, multi-host systems to be distributed across multiple container hosts. + +2) enabling orchestration for container systems spanning a tremendous number of hosts across multiple public and private cloud platforms. + +![](https://www.linux.com/sites/lcom/files/styles/floated_images/public/john-willis_k.jpg?itok=lTsH9eqI) +>John Willis speaking at Open Networking Summit 2016. + +For more information, check out the [Docker Networking Tutorial][5] video, which was presented by Brent Salisbury and John Willis at the recent [Open Networking Summit (ONS)][6]. This and many other ONS keynotes and presentations can be found [here][7]. + +Container networking tools and projects you should know about include: + +[Calico][8] -- The Calico project (from [Metaswitch][9]) leverages Border Gateway Protocol (BGP) and integrates with cloud orchestration systems for secure IP communication between virtual machines and containers. + +[Flannel][10] -- Flannel (previously called rudder) from [CoreOS][11] provides an overlay network that can be used as an alternative to existing SDN solutions. + +[Weaveworks][12] -- The Weaveworks projects for managing containers include [Weave Net][13], Weave Scope, and Weave Flux. Weave Net is a tool for building and deploying Docker container networks. + +[Canal][14] -- Just this week, CoreOS and Tigera announced the formation of a new open source project called Canal. According to the announcement, the Canal project aims to combine aspects of Calico and Flannel, "weaving security policy into both the network fabric and the cloud orchestrator." + +You can learn more about container management, software-defined networking, and other next-gen cloud technologies through The Linux Foundation’s free “Cloud Infrastructure Technologies” course -- a massively open online course being offered through edX. [Registration for this course is open now][15], and course content will be available in June. + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/news/4-container-networking-tools-know + +作者:[AMBER ANKERHOLZ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.linux.com/users/aankerholz +[1]: https://www.linux.com/licenses/category/creative-commons-zero +[2]: https://www.linux.com/news/5-next-gen-cloud-technologies-you-should-know +[3]: http://www.enterprisenetworkingplanet.com/datacenter/datacenter-blog/container-networking-challenges-for-the-enterprise.html +[4]: https://docs.docker.com/engine/userguide/networking/dockernetworks/ +[5]: https://youtu.be/Le0bEg4taak +[6]: http://events.linuxfoundation.org/events/open-networking-summit +[7]: https://www.linux.com/watch-videos-from-ons2016 +[8]: https://www.projectcalico.org/ +[9]: http://www.metaswitch.com/cloud-network-virtualization +[10]: https://coreos.com/blog/introducing-rudder/ +[11]: https://coreos.com/ +[12]: https://www.weave.works/ +[13]: https://www.weave.works/products/weave-net/ +[14]: https://github.com/tigera/canal +[15]: https://training.linuxfoundation.org/linux-courses/system-administration-training/introduction-to-cloud-infrastructure-technologies?utm_source=linuxcom&utm_medium=article&utm_campaign=cloud%20mooc%20article%201 From 05d3ca22870bc60193ff17bd5d46fd7bcee894c8 Mon Sep 17 00:00:00 2001 From: zpl1025 Date: Sun, 15 May 2016 12:36:26 +0800 Subject: [PATCH 493/582] [translated] 20160502 The intersection of Drupal, IoT, and open hardware.md --- ...ction of Drupal, IoT, and open hardware.md | 53 ---------------- ...ction of Drupal, IoT, and open hardware.md | 62 +++++++++++++++++++ 2 files changed, 62 insertions(+), 53 deletions(-) delete mode 100644 sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md create mode 100644 translated/tech/20160502 The intersection of Drupal, IoT, and open hardware.md diff --git a/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md b/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md deleted file mode 100644 index 43ee75fae6..0000000000 --- a/sources/tech/20160502 The intersection of Drupal, IoT, and open hardware.md +++ /dev/null @@ -1,53 +0,0 @@ -zpl1025 -The intersection of Drupal, IoT, and open hardware -======================================================= - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/drupal_blue_gray_lead.jpeg?itok=t7W_KD-D) - - -Meet [Amber Matz][1], a Production Manager and Trainer at [Drupalize.Me][3], a service of Lullabot Education. When she's not tinkering around with Arduinos, Raspberry Pis, and electronic wearables, you can find her wrangling presenters for the Portland Drupal User Group. - -Coming up at [DrupalCon NOLA][3], Amber will host a session about Drupal and IoT. If you're attending and want to learn about the intersection of open hardware, IoT, and Drupal, this session is for you. If you're not able to join us in New Orleans, Amber has some pretty cool things to share. In this interview, she tells us how she got involved with Drupal, a few of her favorite open hardware projects, and what the future holds for IoT and Drupal. - -![](https://opensource.com/sites/default/files/images/life/Interview%20banner%20Q%26A.png) - -**How did you get involved with the Drupal community?** - -Back in the day, I was working at a large nonprofit in the "webmaster's office" of the marketing department and was churning out custom PHP/MySQL forms like nobody's business. I finally got weary of that and starting hunting around the web for a better way. I found Drupal 6 and starting diving in on my own. Years later, after a career shift and a move, I discovered the Portland Drupal User Group and landed a job as a full-time Drupal developer. I continued to regularly attend the meetups in Portland, which I found to be a great source of community, friendships, and professional development. Eventually, I landed a job with Lullabot as a trainer creating content for Drupalize.Me. Now, I'm managing the Drupalize.Me content pipeline, creating Drupal 8 content, and am very much involved in the Portland Drupal community. I'm this year's coordinator, finding and scheduling speakers. - -**We have to know: What is Arduino prototyping, how did you discover it, and what's the coolest thing you've done with an Arduino?** - -Arduino, Raspberry Pi, and wearable electronics have been these terms that I've heard thrown around for years. I found [Adafruit's Wearable Electronics][4] with Becky Stern YouTube show years ago (which, up until recently, when Becky moved on, aired every Wednesday). I was fascinated by wearables and even ordered an LED sewing kit but never did anything with it. I just didn't get it. I had no background in electronics whatsoever, and while I was fascinated by the projects I was finding, I didn't see how I could ever make anything like that. It seemed so out of reach. - -Finally, I found a Coursera "Internet of Things" specialization. (So trendy, right?) But I was immediately hooked! I finally got an explanation of what an Arduino was, along with all these other important terms and concepts. I ordered the recommended Arduino starter kit, which came with a getting started booklet. When I made that first LED blink, it was pure delight. I had two weeks' vacation over the holidays and after Christmas, and I did nothing but make and program Arduino circuits from the getting started booklet. It was oddly so relaxing! I enjoyed it so much. - -In January, I started creating my own prototypes. When I found out I was emceeing our company retreat's lightning talks, I created a Lightning Talk Visual Timer prototype with five LEDs and an Arduino. - -![](https://opensource.com/sites/default/files/resize/amber-arduino-lightning-talk-timer-400x400.jpg) - -It was a huge hit. I also made my first wearable project, a glowing hoodie, using the Arduino IDE compatible Gemma microcontroller, a tiny round sewable component, to which I sewed using conductive thread, a conductive slider connected to a hoodie's drawstring, which controlled the colors of five NeoPixels sewn around the inside of the hood. So that's what I mean by prototyping: Making crazy projects that are fun and maybe even a little practical. - -**What are the biggest opportunities for Drupal and IoT?** - -IoT isn't that much different than the web services and decoupling Drupal trends. It's the movement of data from thing one to thing two and the rendering of that data into something useful. But how does it get there? And what do you do with it? You think there are a lot of solutions, and apps, and frameworks, and APIs out there now? With IoT, that's only going to continue to increase—exponentially. What I've found is that given any device or any "thing", there is a way to connect it to the Internet—many ways. And there are plenty of code libraries out there to help makers get their data from thing one to thing two. - -So where does Drupal fit in? Web services, for one, is going to be the first obvious place. But as a maker, I don't want to spend my time coding custom modules in Drupal. I want to plug and play! So I would love to see modules emerge that connect with IoT Cloud APIs and services like ThingSpeak and Adafruit.io and IFTTT and others. I think there's an opportunity, too, for a business to build an IoT cloud service in Drupal that allows people to send and store their sensor data, visualize it charts and graphs, and build widgets that react to certain values or thresholds. Each of these IoT Cloud API services fill a slightly different niche, and there's plenty of room for others. - -**What are a few things you're looking forward to at DrupalCon?** - -I love reconnecting with Drupal friends, meeting new people, and also seeing Lullabot and Drupalize.Me co-workers (we're distributed companies)! There's so much to learn with Drupal 8 and it's been overwhelming at times to put together training materials for our customers. So, I'm looking forward to attending Drupal 8-related sessions and getting up-to-speed on the latest developments. Finally, I'm really curious about New Orleans! I haven't been there since 2004 and I'm excited to see what's changed. - -**Tell us about your DrupalCon talk Beyond the blink: Add Drupal to your IoT playground. Why should someone attend? What are the major takeaways?** - -My session title, Beyond the blink: Add Drupal to your IoT playground, in itself is so full of assumptions that first off I'm going to get everyone up to speed and on the same page. You don't need to know anything about Arduino, the Internet of Things, or even Drupal to follow along. We'll start with making an LED blink with an Arduino, and then I want to talk about what the main takeaways have been for me: Play, learn, teach, and make. I'll show examples that have inspired me and that will hopefully inspire and encourage others in the audience to give it a try. Then, it's demo time! - -First, thing one. Thing one is a Build Notifier Tower Light. In this demo, I'll show how I connected the Tower Light to the Internet and how I got it to respond to data received from a Cloud API service. Next, Thing two. Thing two is a "weather watch" in the form of a steampunk iPhone case. It's got small LED matrix that displays an icon of the local-to-me weather, a barometric pressure and temperature sensor, a GPS module, and a Bluetooth LE module, all connected and controlled with an Adafruit Flora microcontroller. Thing two sends weather and location data to Adafruit.io by connecting to an app on my iPhone over Bluetooth and sends it up to the cloud using an MQTT protocol! Then, on the Drupal side, I'm pulling down that data from the cloud, updating a block with the weather, and updating a map. So folks will get a taste of what you can do with web services, maps, and blocks in Drupal 8, too. - -It's been a brain-melting adventure learning and making these demo prototypes, and I hope others will come to the session and catch a little of this contagious enthusiasm I have for this intersection of technologies! I'm very excited to share what I've discovered. - - - -[1]: https://www.drupal.org/u/amber-himes-matz -[2]: https://drupalize.me/ -[3]: https://events.drupal.org/neworleans2016/ -[4]: https://www.adafruit.com/beckystern diff --git a/translated/tech/20160502 The intersection of Drupal, IoT, and open hardware.md b/translated/tech/20160502 The intersection of Drupal, IoT, and open hardware.md new file mode 100644 index 0000000000..7cfffd953f --- /dev/null +++ b/translated/tech/20160502 The intersection of Drupal, IoT, and open hardware.md @@ -0,0 +1,62 @@ +Drupal, IoT 和开源硬件的交叉点 +======================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/drupal_blue_gray_lead.jpeg?itok=t7W_KD-D) + + +认识一下 [Amber Matz][1],来自由 Lullabot Education 提供的 [Drupalize.Me][3] 的生产经理以及培训师。当她没有倒腾 Arduino,Raspberry Pi 以及电子穿戴设备时,通常会在波特兰 Drupal 用户组里和主持人争论。 + +在即将举行的 [DrupalCon NOLA][3] 大会上,Amber 将主持一个关于 Drupal 和 IoT 的主题。如果你会去参加,也想了解下开源硬件,IoT 和 Drupal 之间的交叉点,那这个将很合适。如果你去不了新奥尔良的现场也没关系,Amber 还分享了许多很酷的事情。在这次采访中,她讲述了自己参与 Drupal 的原因,一些她自己喜欢的开源硬件项目,以及 IoT 和 Drupal 的未来。 + +![](https://opensource.com/sites/default/files/images/life/Interview%20banner%20Q%26A.png) + +**你是怎么加入 Drupal 社区的?** + +在这之前,我在一家大型非盈利性机构市场部的“站长办公室”工作,大量产出没人喜欢的定制 PHP/MySQL 表格。终于我觉得这样很烦并开始在网上寻找更好的方式。然后我找到了 Drupal 6 并开始自己沉迷进去。多年以后,在准备职业转换的时候,发现了波特兰 Drupal 用户组,然后在里面找了一份全职的 Drupal 开发者工作。我一直经常参加在波特兰的聚会,我觉得它是一种很好的社区,交友,以及专业开发的资源。一个偶然的机会,我在 Lullabot 找了一份培训师的工作为 Drupalize.Me 提供内容。现在,我管理着 Drupalize.Me 的内容管道,创建 Drupal 8 的内容,还很大程度地参与到波特兰 Drupal 社区中。我是今年的协调员,寻找并规划演讲者。 + +**我们得明白:什么是 Arduino 原型,你是怎么找到它的,以及你用 Arduino 做过的最酷的事是什么?** + +Arduino,Raspberry Pi,以及可穿戴电子设备,这些年到处都能听到这些术语。我在几年前通过 Becky Stern YouTube 秀(最近由 Becky 继续主持,每周三播出)发现了 [Adafruit 的可穿戴电子设备][4]。我被那些可穿戴设备迷住了,还订了一套 LED 缝制工具,不过没做出任何东西。我就是没搞懂。我没有任何电子相关的背景,而且在我被那些项目吸引的时候,我根本不知道怎么做出那样的东西。看上去太遥远了。 + +后来,我找到一个 Coursera 的“物联网”专题。(很时髦,对吧?)但我很快就喜欢上了。我最终找到了 Arduino 是什么的解释,以及所有这些其他的重要术语和概念。我订了一套推荐的 Arduino 初学者套件,还附带了一本如何上手的小册子。当我第一次让 LED 闪烁的时候,开心极了。我在圣诞节以及之后有两个星期的假期,然后我什么都没干,就一直根据初学者小册子给 Arduino 电路编程。很奇怪我觉得很放松!我太喜欢了。 + +一月份的时候,我开始构思我自己的原型设备。在知道我要主持公司培训的开场白时,我用五个 LED 灯和 Arduino 搭建了一个开场白视觉计时器。 + +![](https://opensource.com/sites/default/files/resize/amber-arduino-lightning-talk-timer-400x400.jpg) + +这是一次巨大的成功。我还做了我的第一个可穿戴项目,一件会发光的连帽衫,使用了和 Arduino IDE 兼容的 Gemma 微控制器,一个小的圆形可缝制部件,然后用可导电的线缝起来,将一个滑动可变电阻和衣服帽口的收缩绳连在一起,用来控制缝到帽子里的五个 NeoPixel 灯的颜色。这就是我对原型设计的看法:开展一些很好玩也可能会有点实际用途的疯狂项目。 + +**Drupal 和 IoT 带来的最大机遇是什么??** + +IoT 和网站服务以及 Drupal 分层趋势实际并没有太大差别。就是将数据从一个物体传送到另一个物体,然后将数据转换成一些有用的东西。但数据是如何送达?能用来做点什么?你觉得现在就有一大堆现成的解决方案,应用,中间层,以及 API?采用 IoT,这只会继续成指数增长。我觉得,给我任何一个设备或“物体”,需要只用一种方式来将它连接到因特网的无线可能上。然后有现成的各种代码库来帮助制作者将他们的数据从一个物体送到另一个物体。 + +那么 Drupal 在这里处于什么位置?首先,网站服务将是第一个明显的地方。但作为一个制作者,我不希望将时间花在编写 Drupal 的订制模块上。我想要的是即插即用!所以我很高兴出现这样的模块能连接 IoT 云端 API 和服务,比如 ThingSpeak,Adafruit.io,IFTTT,以及其他的。我觉得也有一个很好的商业机会,在 Drupal 里构建一套 IoT 云服务,允许用户发送和存储他们的传感器数据,并可以制成表格和图像,还可以写一些插件可以响应特定数据或阙值。每一个 IoT 云 API 服务都是一个细分的机会,所以能留下很大空间给其他人。 + +**这次 DrupalCon 你有哪些期待?** + +我喜欢重新联系 Drupal 上的朋友,认识一些新的人,还能见到 Lullabot 和 Drupalize.Me 的同事(我们是分布式的公司)!Drupal 8 有太多东西可以去探索了,不可抗拒地要帮我们的客户收集培训资料。所以,我很期待参与一些 Drupal 8 相关的主题,以及跟上最新的开发活动。最后,我对新奥尔良也很感兴趣!我曾经在 2004 年去过,很期待将这次将看到哪些改变。 + +**谈一谈你这次 DrupalCon 上的演讲,超越闪烁:将 Drupal 加到你的 IoT 游乐场中。别人为什么要参与?他们最重要的收获会是什么?** + +我的主题的标题是,超越闪烁:将 Drupal 加到你的 IoT 游乐场中,本身有很多假设,我将让所有人都放在同一速度和层次。你不需要了解任何关于 Arduino,物联网,甚至是 Drupal,都能跟上。我将从用 Arduino 让 LED 灯闪烁开始,然后我会谈一下我自己在这里面的最大收获:玩,学,教,和做。我会列出一些曾经激发过我的例子,它们也很有希望能激发和鼓励其他听众去尝试一下。然后,就是展示时间! + +首先,第一个东西。它是一个构建提醒信号灯。在这个展示里,我会说明如何将信号灯连到互联网上,以及如何响应从云 API 服务收到的数据。然后,第二个东西。它是一个蒸汽朋克风格 iPhone 外壳形式的“天气手表”。有一个小型 LED 矩阵用来显示我的天气的图标,一个气压和温度传感器,一个 GPS 模块,以及一个 Bluetooth LE 模块,都连接到一个 Adafruit Flora 微控制器上。第二个东西能通过蓝牙连接到我的 iPhone 上的一个应用,并将天气和位置数据通过 MQTT 协议发到 Adafruit.io 的服务器!然后,在 Drupal 这边,我会从云端下载这些数据,根据天气更新一个功能块,然后更新地图。所以大家也能体验一下通过网站服务,地图和 Drupal 8 的功能块所能做的事情。 + +学习和制作这些展示原型是一次烧脑的探险,我也希望有人能参与这个主题并感染一点我对这个技术交叉的传染性热情!我很兴奋能分享一些我的发现。 + + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/5/drupalcon-interview-amber-matz + +作者:[Jason Hibbets][a] +译者:[zpl1025](https://github.com/zpl1025) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jhibbets +[1]: https://www.drupal.org/u/amber-himes-matz +[2]: https://drupalize.me/ +[3]: https://events.drupal.org/neworleans2016/ +[4]: https://www.adafruit.com/beckystern From 5069ba41d243b6c99fdeaa2c531b9e710548da20 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 12:44:20 +0800 Subject: [PATCH 494/582] =?UTF-8?q?20160515-5=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...actor Authentication for Login and sudo.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md diff --git a/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md b/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md new file mode 100644 index 0000000000..81cf285cf0 --- /dev/null +++ b/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md @@ -0,0 +1,116 @@ +How to Set Up 2-Factor Authentication for Login and sudo +========================================================== + +![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_crop.png?itok=z_cdYZZf) +>[Used with permission][1] + +Security is all the rage—as it should be. We live in a world where data is an incredibly valuable currency, and you’re always at risk of loss. Because of this, you must do everything you can to ensure what you hold on your desktops and servers is safe. To that end, administrators and users will create incredibly complex passwords, employ password managers, and more. But, what if I told you could take the login to your Linux servers and desktops one step—nay, two steps—further? Thanks to the [Google Authenticator][2], you can. On top of that, it’s incredibly easy to set up. + +I am going to walk you through the process of setting up two-factor authentication for use on login and sudo. I will demonstrate this on a Ubuntu 16.04 desktop, but the process works for the server as well. To handle the two-factor side of things, I will be making use of the Google Authenticator. + +There is one very important caveat to this: Once you’ve set this up, you will not be able to log into the account (or issue sudo commands) without a six-digit code from the authenticator. This also adds another step for you, so if having to pull out your smartphone every time you need to log into your Linux machine (or use sudo), this might not be for you. Remember, however, this added step brings with it an extra layer of security you wouldn’t have otherwise. + +With that said, let’s set this up. + +### Installing the Necessary Components + +There are two pieces of this puzzle that must be installed—both in the form of the Google Authenticator. The first is the smartphone app. Here’s how to install from the Google Play Store: + +1. Open the Google Play Store on your Android device + +2. Search for google authenticator + +3. Locate and tap the entry by Google Inc. + +4. Tap Install + +5. Tap Accept + +6. Allow the installation to complete + +Now let’s move on to installing the authenticator on your Linux machine. Here’s how: + +1. Open a terminal window + +2. Issue the command sudo apt-get install google-authenticator + +3. Type your sudo password and hit Enter + +4. If prompted, type y and hit Enter + +5. Allow the installation to complete + +It’s now time to configure the login process to work with the google-authenticator. + +### Configuration + +Just one file must be edited to add two-step authentication for both login and sudo usage. The file is /etc/pam.d/common-auth. Open it and look for the line: + +``` +auth [success=1 default=ignore] pam_unix.so nullok_secure +``` + +Above that line, add the following: + +``` +auth required pam_google_authenticator.so +``` + +Save and close the file. + +The next step is to set up google-authenticator for every user on the system (otherwise, they will not be able to log in). For example’s sake, we’ll assume there are two users on your system: jack and olivia. We’ll first set this up for jack (we’ll assume this is the account we’ve been working with all along). + +Open up a terminal window and issue the command google-authenticator. You will be asked a series of questions (each of which you should answer with a y. The questions are: + +* Do you want me to update your "/home/jlwallen/.google_authenticator" file (y/n) y + +* Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) + +* By default, tokens are good for 30 seconds, and to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) + +* If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) + +Once you’ve answered these questions, you’ll be presented with your secret key, a verification code, and five emergency scratch codes. Print out the scratch codes and keep them with you. These codes can be used if you do not have your phone (each code is a one-time use only). The secret key is what you use to set up the account on the Google Authenticator app and the verification code is a one-time use code that you can use immediately (if needed). + +### Setting Up the App + +You now have the user jack set up. Before you can set up the user olivia, you need to add an account for jack on the Google Authenticator app. Open the app and the, from the main window, tap the menu button (three vertical dots in the upper right hand corner). Tap Set up account and then tap Enter provided key. In the next window (Figure 1), you will enter 16-digit secret key provided when you issued the google-authenticator app. Give the account a name (so you will remember which account this is to be used on) and tap ADD. + +![](https://www.linux.com/sites/lcom/files/styles/floated_images/public/auth_a.png?itok=xSMkd-Mf) +>Figure 1: Adding a new account to the Google Authenticator app. + +Now that you’ve added the account, you will be presented with six-digit keys that will be requested every time you log in or attempt to use sudo. + +Finally, you have to set up the other accounts on the system. As I mentioned, we’re going to set up the account called olivia. Here’s how: + +1. Open up a terminal window + +2. Issue the command sudo su olivia + +3. Open the Google Authenticator on your smartphone + +4. Type the six digit authentication code (provided by the app) in the terminal window (Figure 2) and hit Enter + +5. Type your sudo password and hit Enter + +6. As the new user, issue the google-authenticator command, answer the questions, and record the keys and codes provided + +After you’ve successfully set up the user olivia, with the google-authenticator command, add a new account on the Google Authenticator app with that user’s info (in the same manner you did for the initial user). You should now have accounts on the Google Authenticator app for both jack and olivia. + +![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_b.png?itok=FH36V1r0) +>Figure 2: Entering the six-digit authentication code for sudo. + +That’s it. Every time you attempt to log into your machine (or use sudo), you will be required to provide a six-digit authentication key, before you can enter your user password. Your Linux machine is now far more secure than it was before adding two-factor authentication. Although some might consider this process a hassle, I highly recommend setting it up...especially for machines that house sensitive data. + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_b.png?itok=FH36V1r0 + +作者:[JACK WALLEN][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://www.linux.com/users/jlwallen +[1]: https://www.linux.com/licenses/category/used-permission +[2]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 + From 9bb424eb15956506937d9c20daf80569c3263203 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 12:47:40 +0800 Subject: [PATCH 495/582] =?UTF-8?q?20160515-6=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ing sys admin works his way up in Linux.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sources/talk/my-open-source-story/20160510 Aspiring sys admin works his way up in Linux.md diff --git a/sources/talk/my-open-source-story/20160510 Aspiring sys admin works his way up in Linux.md b/sources/talk/my-open-source-story/20160510 Aspiring sys admin works his way up in Linux.md new file mode 100644 index 0000000000..7a2cc8d071 --- /dev/null +++ b/sources/talk/my-open-source-story/20160510 Aspiring sys admin works his way up in Linux.md @@ -0,0 +1,38 @@ +Aspiring sys admin works his way up in Linux +=============================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BIZ_workplay.png?itok=uQqFssrf) + +I first saw Linux in action around 2001 at my first job. I was as an account manager for an Austrian automotive industry supplier and shared an office with our IT guy. He was creating a CD burning station (one of those huge things that can burn and print several CDs simultaneously) so that we could create and send CDs of our car parts catalogue to customers. While the burning station was originally designed for Windows, he just could not get it to work. He eventually gave up on Windows and turned to Linux, and it worked flawlessly. + +For me, it was all kind of arcane. Most of the work was done on the command line, which looked like DOS but was much more powerful (even back then, I recognized this). I had been a Mac user since 1993, and a CLI (command line interface) seemed a bit old fashioned to me at the time. + +It was not until years later—I believe around 2009—that I really discovered Linux for myself. By then, I had moved to the Netherlands and found a job working for a retail supplier. It was a small company (about 20 people) where, aside from my normal job as a key account manager, I had involuntarily become the first line of IT support. Whenever something didn't work, people first came to me before calling the expensive external IT consultant. + +One of my colleagues had fallen for a phishing attack and clicked on an .exe file in an email that appeared to be from DHL. (Yes, it does happen.) His computer got completely taken over and he could not do anything. Even a complete reformat wouldn't help, as the virus kept rearing it's ugly head. I only later learned that it probably had written itself to the MBR (Master Boot Record). By this time, the contract with the external IT consultant had been terminated due to cost savings. + +I turned to Ubuntu to get my colleague to work again. And work it did—like a charm. The computer was humming along again, and I got all the important applications to work like they should. In some ways it wasn't the most elegant solution, I'll admit, yet he (and I) liked the speed and stability of the system. + +However, my colleague was so entrenched in the Windows world that he just couldn't get used to the fact that some things were done differently. He just kept complaining. (Sound familiar?) + +While my colleague couldn't bear that things were done differently, I noticed that this was much less of an issue for me as a Mac user. There were more similarities. I was intrigued. So, I installed a dual boot with Ubuntu on my work laptop and found that I got much more work done in less time and it was much easier to get the machine to do what I wanted. Ever since then I've been regularly using several Linux distros, with Ubuntu and Elementary being my personal favorites. + +At the moment, I am unemployed and hence have a lot of time to educate myself. Because I've always had an interest in IT, I am working to get into Linux systems administration. But is awfully hard to get a chance to show your knowledge nowadays because 95% of what I have learned over the years can't be shown on a paper with a stamp on it. Interviews are the place for me to have a conversation about what I know. So, I signed up for Linux certifications that I hope give me the boost I need. + +I have also been contributing to open source for some time. I started by doing translations (English to German) for the xTuple ERP and have since moved on to doing Mozilla "customer service" on Twitter, filing bug reports, etc. I evangelize for free and open software (with varying degrees of success) and financially support several FOSS advocate organizations (DuckDuckGo, bof.nl, EFF, GIMP, LibreCAD, Wikipedia, and many others) whenever I can. I am also currently working to set up a regional privacy cafe. + +Aside from that, I have started working on my first book. It's supposed to be a lighthearted field manual for normal people about computer privacy and security, which I hope to self-publish by the end of the year. (The book will be licensed under Creative Commons.) As for content, you can expect that I will explain in detail why privacy is important and what is wrong with the whole "I have nothing to hide" mentality. But the biggest part will be instructions how to get rid of pesky ad-trackers, encrypting your hard disk and mail, chat OTR, how to use TOR, etc. While it's a manual first, I aim for a tone that is casual and easy to understand spiced up with stories of personal experiences. + +I still love my Macs and will use them whenever I can afford it (mainly because of the great construction), but Linux is always there in a VM and is used for most of my daily work. Nothing fancy here, though: word processing (LibreOffice and Scribus), working on my website and blog (Wordpress and Jekyll), editing some pictures (Shotwell and Gimp), listening to music (Rhythmbox), and pretty much every other task that comes along. + +Whichever way my job hunt turns out, I know that Linux will always be my go-to system. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/5/my-linux-story-rene-raggl + +作者:[Rene Raggl][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://opensource.com/users/rraggl From ada80430b5d849b36718c88a50319b840e03758c Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 12:53:49 +0800 Subject: [PATCH 496/582] =?UTF-8?q?20160515-7=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...re contributing to open source projects.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sources/talk/20160510 65% of companies are contributing to open source projects.md diff --git a/sources/talk/20160510 65% of companies are contributing to open source projects.md b/sources/talk/20160510 65% of companies are contributing to open source projects.md new file mode 100644 index 0000000000..ad3b4ef680 --- /dev/null +++ b/sources/talk/20160510 65% of companies are contributing to open source projects.md @@ -0,0 +1,63 @@ +65% of companies are contributing to open source projects +========================================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BUSINESS_openseries.png?itok=s7lXChId) + +This year marks the 10th annual Future of Open Source Survey to examine trends in open source, hosted by Black Duck and North Bridge. The big takeaway from the survey this year centers around the mainstream acceptance of open source today and how much has changed over the last decade. + +The [2016 Future of Open Source Survey][1] analyzed responses from nearly 3,400 professionals. Developers made their voices heard in the survey this year, comprising roughly 70% of the participants. The group that showed exponential growth were security professionals, whose participation increased by over 450%. Their participation shows the increasing interest in ensuring that the open source community pays attention to security issues in open source software and securing new technologies as they emerge. + +Black Duck's [Open Source Rookies][2] of the Year awards identify some of these emerging technologies, like Docker and Kontena in containers. Containers themselves have seen huge growth this year–76% of respondents say their company has some plans to use containers. And an amazing 59% of respondents are already using containers in a variety of deployments, from development and testing to internal and external production environment. The developer community has embraced containers as a way to get their code out quickly and easily. + +It's not surprising that the survey shows a miniscule number of organizations having no developers contributing to open source software. When large corporations like Microsoft and Apple open source some of their solutions, developers gain new opportunities to participate in open source. I certainly hope this trend will continue, with more software developers contributing to open source projects at work and outside of work. + +### Highlights from the 2016 survey + +#### Business value + +* Open source is an essential element in development strategy with more than 65% of respondents relying on open source to speed development. +* More than 55% leverage open source within their production environments. + +#### Engine for innovation + +* Respondents reported use of open source to drive innovation through faster, more agile development; accelerated time to market and vastly superior interoperability. +* Additional innovation is afforded by open source's quality of solutions; competitive features and technical capabilities; and ability to customize. + +#### Proliferation of open source business models and investment + +* More diverse business models are emerging that promise to deliver more value to open source companies than ever before. They are not as dependent on SaaS and services/support. +* Open source private financing has increased almost 4x in five years. + +#### Security and management + +The development of best-in-class open source security and management practices has not kept pace with growth in adoption. Despite a proliferation of expensive, high-profile open source breaches in recent years, the survey revealed that: + +* 50% of companies have no formal policy for selecting and approving open source code. +* 47% of companies don’t have formal processes in place to track open source code, limiting their visibility into their open source and therefore their ability to control it. +* More than one-third of companies have no process for identifying, tracking or remediating known open source vulnerabilities. + +#### Open source participation on the rise + +The survey revealed an active corporate open source community that spurs innovation, delivers exponential value and shares camaraderie: + +* 67% of respondents report actively encouraging developers to engage in and contribute to open source projects. +* 65% of companies are contributing to open source projects. +* One in three companies have a fulltime resource dedicated to open source projects. +* 59% of respondents participate in open source projects to gain competitive edge. + +Black Duck and North Bridge learned a great deal this year about security, policy, business models and more from the survey, and we’re excited to share these findings. Thank you to our many collaborators and all the respondents for taking the time to take the survey. It’s been a great ten years, and I am happy that we can safely say that the future of open source is full of possibilities. + +Learn more, see the [full results][3]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/business/16/5/2016-future-open-source-survey + +作者:[Haidee LeClair][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://opensource.com/users/blackduck2016 +[1]: http://www.slideshare.net/blackducksoftware/2016-future-of-open-source-survey-results +[2]: https://info.blackducksoftware.com/OpenSourceRookies2015.html +[3]: http://www.slideshare.net/blackducksoftware/2016-future-of-open-source-survey-results%C2%A0 From 105a8d226cc76d137ab4d5ab26606b7be19f0957 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 12:58:32 +0800 Subject: [PATCH 497/582] =?UTF-8?q?20160515-8=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...160316 Growing a career alongside Linux.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sources/talk/my-open-source-story/20160316 Growing a career alongside Linux.md diff --git a/sources/talk/my-open-source-story/20160316 Growing a career alongside Linux.md b/sources/talk/my-open-source-story/20160316 Growing a career alongside Linux.md new file mode 100644 index 0000000000..24799508c3 --- /dev/null +++ b/sources/talk/my-open-source-story/20160316 Growing a career alongside Linux.md @@ -0,0 +1,49 @@ +Growing a career alongside Linux +================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/OPENHERE_blue.png?itok=3eqp-7gT) + +My Linux story started in 1998 and continues today. Back then, I worked for The Gap managing thousands of desktops running [OS/2][1] (and a few years later, [Warp 3.0][2]). As an OS/2 guy, I was really happy then. The desktops hummed along and it was quite easy to support thousands of users with the tools the GAP had built. Changes were coming, though. + +In November of 1998, I received an invitation to join a brand new startup which would focus on Linux in the enterprise. This startup became quite famous as [Linuxcare][2]. + +### My time at Linuxcare + +I had played with Linux a bit, but had never considered delivering it to enterprise customers. Mere months later (which is a turn of the corner in startup time and space), I was managing a line of business that let enterprises get their hardware, software, and even books certified on a few flavors of Linux that were popular back then. + +I supported customers like IBM, Dell, and HP in ensuring their hardware ran Linux successfully. You hear a lot now about preloading Linux on hardware today, but way back then I was invited to Dell to discuss getting a laptop certified to run Linux for an upcoming trade show. Very exciting times! We also supported IBM and HP on a number of certification efforts that spanned a few years. + +Linux was changing fast, much like it always has. It gained hardware support for more key devices like sound, network, graphics. At around that time, I shifted from RPM-based systems to [Debian][3] for my personal use. + +### Using Linux through the years + +Fast forward some years and I worked at a number of companies that did Linux as hardened appliances, Linux as custom software, and Linux in the data center. By the mid 2000s, I was busy doing consulting for that rather large software company in Redmond around some analysis and verification of Linux compared to their own solutions. My personal use had not changed though—I would still run Debian testing systems on anything I could. + +I really appreciated the flexibility of a distribution that floated and was forever updated. Debian is one of the most fun and well supported distributions and has the best community I've ever been a part of. + +When I look back at my own adoption of Linux, I remember with fondness the numerous Linux Expo trade shows in San Jose, San Francisco, Boston, and New York in the early and mid 2000's. At Linuxcare we always did fun and funky booths, and walking the show floor always resulted in getting re-acquainted with old friends. Rumors of work were always traded, and the entire thing underscored the fun of using Linux in real endeavors. + +The rise of virtualization and cloud has really made the use of Linux even more interesting. When I was with Linuxcare, we partnered with a small 30-person company in Palo Alto. We would drive to their offices and get things ready for a trade show that they would attend with us. Who would have ever known that little startup would become VMware? + +I have so many stories, and there were so many people I was so fortunate to meet and work with. Linux has evolved in so many ways and has become so important. And even with its increasing importance, Linux is still fun to use. I think its openness and the ability to modify it has contributed to a legion of new users, which always astounds me. + +### Today + +I've moved away from doing mainstream Linux things over the past five years. I manage large scale infrastructure projects that include a variety of OSs (both proprietary and open), but my heart has always been with Linux. + +The constant evolution and fun of using Linux has been a driving force for me for over the past 18 years. I started with the 2.0 Linux kernel and have watched it become what it is now. It's a remarkable thing. An organic thing. A cool thing. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/3/my-linux-story-michael-perry + +作者:[Michael Perry][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://opensource.com/users/mpmilestogo +[1]: https://en.wikipedia.org/wiki/OS/2 +[2]: https://archive.org/details/IBMOS2Warp3Collection +[3]: https://en.wikipedia.org/wiki/Linuxcare +[4]: https://www.debian.org/ +[5]: From 4c56beb7781bf87c983463e2cec90200545f66ca Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 13:03:07 +0800 Subject: [PATCH 498/582] =?UTF-8?q?20160515-9=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...omputer virus, sys admin looks to Linux.md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sources/talk/my-open-source-story/20160330 After a nasty computer virus, sys admin looks to Linux.md diff --git a/sources/talk/my-open-source-story/20160330 After a nasty computer virus, sys admin looks to Linux.md b/sources/talk/my-open-source-story/20160330 After a nasty computer virus, sys admin looks to Linux.md new file mode 100644 index 0000000000..3fb63afa4f --- /dev/null +++ b/sources/talk/my-open-source-story/20160330 After a nasty computer virus, sys admin looks to Linux.md @@ -0,0 +1,54 @@ +After a nasty computer virus, sys admin looks to Linux +======================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/OPENHERE_blue.png?itok=3eqp-7gT) + +My first brush with open source came while I was working for my university as a part-time system administrator in 2001. I was part of a small group that created business case studies for teaching not just in the university, but elsewhere in academia. + +As the team grew, the need for a robust LAN setup with file serving, intranet applications, domain logons, etc. emerged. Our IT infrastructure consisted mostly of bootstrapped Windows 98 computers that had become too old for the university's IT labs and were reassigned to our department. + +### Discovering Linux + +One day, as part of the university's IT procurement plan, our department received an IBM server. We planned to use it as an Internet gateway, domain controller, file and backup server, and intranet application host. + +Upon unboxing, we noticed that it came with Red Hat Linux CDs. No one on our 22-person team (including me) knew anything about Linux. After a few days of research, I met a friend of a friend who did Linux RTOS programming for a living. I asked him for some help installing it. + +It was heady stuff as I watched the friend load up the CD drive with the first of the installation CDs and boot into the Anaconda install system. In about an hour we had completed the basic installation, but still had no working internet connection. + +Another hour of tinkering got us connected to the Internet, but we still weren't anywhere near domain logons or Internet gateway functionality. After another weekend of tinkering, we were able to instruct our Windows 98 terminals to accept the IP of the the Linux PC as the proxy so that we had a working shared Internet connection. But domain logons were still some time away. + +We downloaded [Samba][1] over our awfully slow phone modem connection and hand configured it to serve as the domain controller. File services were also enabled via NFS Kernel Server and creating user directories and making the necessary adjustments and configurations on Windows 98 in Network Neighborhood. + +This setup ran flawlessly for quite some time, and we eventually decided to get started with Intranet applications for timesheet management and some other things. By this time, I was leaving the organization and had handed over most of the sys admin stuff to someone who replaced me. + +### A second Linux experience + +In 2004, I got into Linux once again. My wife ran an independent staff placement business that used data from services like Monster.com to connect clients with job seekers. + +Being the more computer literate of the two of us, it was my job to set things right with the computer or Internet when things went wrong. We also needed to experiment with a lot of tools for sifting through the mountains of resumes and CVs she had to go through on a daily basis. + +Windows [BSoDs][2] were a routine affair, but that was tolerable as long as the data we paid for was safe. I had to spend a few hours each week creating backups. + +One day, we had a virus that simply would not go away. Little did we know what was happening to the data on the slave disk. When it finally failed, we plugged in the week-old slave backup and it failed a week later. Our second backup simply refused to boot up. It was time for professional help, so we took our PC to a reputable repair shop. After two days, we learned that some malware or virus had wiped certain file types, including our paid data, clean. + +This was a body blow to my wife's business plans and meant lost contracts and delayed invoice payments. I had in the interim travelled abroad on business and purchased my first laptop computer from [Computex 2004][3] in Taiwan. It had Windows XP pre-installed, but I wanted to replace it with Linux. I had read that Linux was ready for the desktop and that [Mandrake Linux][4] was a good choice. My first attempt at installation went without a glitch. Everything worked beautifully. I used [OpenOffice][5] for my writing, presentation, and spreadsheet needs. + +We got new hard drives for our computer and installed Mandrake Linux on them. OpenOffice replaced Microsoft Office. We relied on webmail for mailing needs, and [Mozilla Firefox][6] was a welcome change in November 2004. My wife saw the benefits immediately, as there were no crashes or virus/malware infections. More importantly, we bade goodbye to the frequent crashes that plagued Windows 98 and XP. She continued to use the same distribution. + +I, on the other hand, started playing around with other distributions. I love distro-hopping and trying out new ones every once in a while. I also regularly try and test out web applications like Drupal, Joomla, and WordPress on Apache and NGINX stacks. And now our son, who was born in 2006, grew up on Linux. He's very happy with Tux Paint, Gcompris, and SMPlayer. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/3/my-linux-story-soumya-sarkar + +作者:[Soumya Sarkar][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://opensource.com/users/ssarkarhyd +[1]: https://www.samba.org/ +[2]: https://en.wikipedia.org/wiki/Blue_Screen_of_Death +[3]: https://en.wikipedia.org/wiki/Computex_Taipei +[4]: https://en.wikipedia.org/wiki/Mandriva_Linux +[5]: http://www.openoffice.org/ +[6]: https://www.mozilla.org/en-US/firefox/new/ From ca948618682a6b9ad1f11b47d23d9c242cb260f5 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 13:11:03 +0800 Subject: [PATCH 499/582] =?UTF-8?q?20160515-10=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...301 Linux gives me all the tools I need.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md diff --git a/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md b/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md new file mode 100644 index 0000000000..b1689f4164 --- /dev/null +++ b/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md @@ -0,0 +1,56 @@ +Linux gives me all the tools I need +========================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/OPENHERE_blue.png?itok=3eqp-7gT) + +[Linux][0] is all around us. It's [on our phones][1] in the form of Android. It's [used on the International Space Station][2]. It [provides much of the backbone of the Internet][3]. And yet many people never notice it. Discovering Linux is a rewarding endeavor. Lots of other people have [shared their Linux stories][4] on Opensource.com, and now it's my turn. + +I still remember when I first discovered Linux in 2008. The person who helped me discover Linux was my father, Socrates Ballais. He was an economics professor here in Tacloban City, Philippines. He was also a technology enthusiast. He taught me a lot about computers and technology, but only advocated using Linux as a fallback operating system in case Windows fails. + +### My earliest days + +Before we had a computer in the home, I was a Windows user. I played games, created documents, and did all the other things kids do with computers. I didn't know what Linux was or what it was used for. The Windows logo was my symbol for a computer. + +When we got our first computer, my father installed Linux ([Ubuntu][5] 8.04) on it. Being the curious kid I was, I booted into the operating system. I was astonished with the interface. It was beautiful. I found it to be very user friendly. For some time, all I did in Ubuntu was play the bundled games. I would do my school work in Windows. + +### The first install + +Four years later, I decided that I would reinstall Windows on our family computer. Without hesitation, I also decided to install Ubuntu. With that, I had fallen in love with Linux (again). Over time, I became more adept with Ubuntu and would casually advocate its use to my friends. When I got my first laptop, I installed it right away. + +### Today + +Today, Linux is my go-to operating system. When I need to do something on a computer, I do it in Linux. For documents and presentations, I use Microsoft Office via [Wine][6]. For my web needs, there's [Chrome and Firefox][7]. For email, there's [Geary][8]. You can do pretty much everything with Linux. + +Most, if not all, of my programming work is done in Linux. The lack of a standard Integrated Development Environment (IDE) like [Visual Studio][9] or [XCode][10] taught me to be flexible and learn more things as a programmer. Now a text editor and a compiler/interpreter are all I need to start coding. I only use an IDE in cases when it's the best tool for accomplishing a task at hand. I find Linux to be more developer-friendly than Windows. To generalize, Linux gives me all the tools I need to develop software. + +Today, I am the co-founder and CTO of a startup called [Creatomiv Studios][11]. I use Linux to develop code for the backend server of our latest project, Basyang. I'm also an amateur photographer, and use [GIMP][12] and [Darktable][13] to edit and manage photos. For communication with my team, I use [Telegram][14]. + +### The beauty of Linux + +Many may see Linux as an operating system only for those who love solving complicated problems and working on the command line. Others may see it as a rubbish operating system lacking the support of many companies. However, I see Linux as a thing of beauty and a tool for creation. I love Linux the way it is and hope to see it continue to grow. + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/3/my-linux-story-sean-ballais + +作者:[Sean Francis N. Ballais][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://opensource.com/users/seanballais +[0]: https://opensource.com/resources/what-is-linux +[1]: http://www.howtogeek.com/189036/android-is-based-on-linux-but-what-does-that-mean/ +[2]: http://www.extremetech.com/extreme/155392-international-space-station-switches-from-windows-to-linux-for-improved-reliability +[3]: https://www.youtube.com/watch?v=JzsLkbwi1LA +[4]: https://opensource.com/tags/my-linux-story +[5]: http://ubuntu.com/ +[6]: https://www.winehq.org/ +[7]: https://www.google.com/chrome/browser/desktop/index.html +[8]: https://wiki.gnome.org/Apps/Geary +[9]: https://www.visualstudio.com/en-us/visual-studio-homepage-vs.aspx +[10]: https://developer.apple.com/xcode/ +[11]: https://www.facebook.com/CreatomivStudios/ +[12]: https://www.gimp.org/ +[13]: http://www.darktable.org/ +[14]: https://telegram.org/ From b6029cd4e8d6ad35888b3e48ba478c324d2de18f Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sun, 15 May 2016 17:23:31 +0800 Subject: [PATCH 500/582] Translating sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md --- ...3 How to Set Up 2-Factor Authentication for Login and sudo.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md b/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md index 81cf285cf0..0a4a6ae0af 100644 --- a/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md +++ b/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md @@ -1,3 +1,4 @@ +ictlyh Translating How to Set Up 2-Factor Authentication for Login and sudo ========================================================== From 6a3836fff4748f87aa84894ba1b8e30ce5de7aae Mon Sep 17 00:00:00 2001 From: ezio Date: Sun, 15 May 2016 17:44:12 +0800 Subject: [PATCH 501/582] rename for windows user --- ...orvalds Talks IoT Smart Devices Security Concerns and More.md} | 0 ...0330 After a nasty computer virus sys admin looks to Linux.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename sources/talk/{20160506 Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More.md => 20160506 Linus Torvalds Talks IoT Smart Devices Security Concerns and More.md} (100%) rename sources/talk/my-open-source-story/{20160330 After a nasty computer virus, sys admin looks to Linux.md => 20160330 After a nasty computer virus sys admin looks to Linux.md} (100%) diff --git a/sources/talk/20160506 Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More.md b/sources/talk/20160506 Linus Torvalds Talks IoT Smart Devices Security Concerns and More.md similarity index 100% rename from sources/talk/20160506 Linus Torvalds Talks IoT, Smart Devices, Security Concerns, and More.md rename to sources/talk/20160506 Linus Torvalds Talks IoT Smart Devices Security Concerns and More.md diff --git a/sources/talk/my-open-source-story/20160330 After a nasty computer virus, sys admin looks to Linux.md b/sources/talk/my-open-source-story/20160330 After a nasty computer virus sys admin looks to Linux.md similarity index 100% rename from sources/talk/my-open-source-story/20160330 After a nasty computer virus, sys admin looks to Linux.md rename to sources/talk/my-open-source-story/20160330 After a nasty computer virus sys admin looks to Linux.md From 8566fa608409bc0c9adc9669058e1e054928d386 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 15 May 2016 18:31:23 +0800 Subject: [PATCH 502/582] =?UTF-8?q?=E8=AF=B7=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md b/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md index 8e405254d3..3464cd07eb 100644 --- a/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md +++ b/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md @@ -1,5 +1,3 @@ -translating by ezio - Part 2 - LXD 2.0: 安装与配置 ================================================= From 67793aa8b7ba041be2c54bcf65f7985a1fa19b0b Mon Sep 17 00:00:00 2001 From: ictlyh Date: Sun, 15 May 2016 19:05:24 +0800 Subject: [PATCH 503/582] Translated: sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md Remove: sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md --- ...se: Six Unsung Apache Big Data Projects.md | 80 ------------ ...actor Authentication for Login and sudo.md | 117 ------------------ ...actor Authentication for Login and sudo.md | 117 ++++++++++++++++++ 3 files changed, 117 insertions(+), 197 deletions(-) delete mode 100644 sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md delete mode 100644 sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md create mode 100644 translated/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md diff --git a/sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md b/sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md deleted file mode 100644 index 76d97b7505..0000000000 --- a/sources/tech/20160510 On the Rise: Six Unsung Apache Big Data Projects.md +++ /dev/null @@ -1,80 +0,0 @@ -On the Rise: Six Unsung Apache Big Data Projects -================================================= - -![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/star-clusters-74052_1920.jpg?itok=HJISFdwo) ->Creative Commons Zero - -Countless organizations around the world are now working with data sets so large and complex that traditional data processing applications can no longer drive optimized analytics and insights. That’s the problem that the new wave of Big Data applications aims to solve, and the Apache Software Foundation (ASF) has recently graduated a slew of interesting open source Big Data projects to Top-Level status. That means that they will get active development and strong community support. - -Most people have heard of Apache Spark, [a Big Data processing framework][1] with built-in modules for streaming, SQL, machine learning and graph processing. IBM and other companies are pouring billions of development dollars into Spark initiatives, and NASA and the [SETI Institute][2] are collaborating to analyze terabytes of complex deep space radio signals using Spark’s machine learning capabilities in a hunt for patterns that might betray the presence of intelligent extraterrestrial life. - -![](https://www.linux.com/sites/lcom/files/styles/floated_images/public/asf.jpg?itok=wtu0hq36) - -However, several other recently elevated Apache Big Data projects deserve attention, too. In fact, some of them may produce ecosystems of activity and development that will rival Spark’s. In conjunction with this week’s [ApacheCon North America conference][3] and Apache: Big Data events, this article will round up the Apache Big Data projects that you should know about. - -Here are six projects on the rise: - -### Kylin - -Apache recently [announced][4] that its Kylin project, an open source Big Data project born at eBay, has graduated to Top-Level status. Kylin is an open source Distributed Analytics Engine designed to provide an SQL interface and multi-dimensional analysis (OLAP) on Apache Hadoop, supporting extremely large datasets. It is still widely used at eBay and at a few other organizations. - -"Apache Kylin's incubation journey has demonstrated the value of Open Source governance at ASF and the power of building an open-source community and ecosystem around the project," said Luke Han, Vice President of Apache Kylin. "Our community is engaging the world's biggest local developer community in alignment with the Apache Way." - -As an OLAP-on-Hadoop solution, Apache Kylin aims to fill the gap between Big Data exploration and human use, "enabling interactive analysis on massive datasets with sub-second latency for analysts, end users, developers, and data enthusiasts," according to developers. "Apache Kylin brings back business intelligence (BI) to Apache Hadoop to unleash the value of Big Data," they added. - -### Lens - -Apache also recently [announced][5] that Apache Lens, an open source Big Data and analytics tool, has graduated from the Apache Incubator to become a Top-Level Project (TLP). According to the announcement: "Apache Lens is a Unified Analytics platform. It provides an optimal execution environment for analytical queries in the unified view. Apache Lens aims to cut the Data Analytics silos by providing a single view of data across multiple tiered data stores." - -"By providing an online analytical processing (OLAP) model on top of data, Lens seamlessly integrates Apache Hadoop with traditional data warehouses to appear as one. It also provides query history and statistics for queries running in the system along with query life cycle management." - -"Incubating Apache Lens has been an amazing experience at the ASF," said Amareshwari Sriramadasu, Vice President of Apache Lens. "Apache Lens solves a very critical problem in Big Data analytics space with respect to end users. It enables business users, analysts, data scientists, developers and other users to do complex analysis with ease, without knowing the underlying data layout." - -### Ignite - -The ASF has also [announced][6] that Apache Ignite has become a top-level project. It's an open source effort to build an in-memory data fabric. - -“Apache Ignite is a high-performance, integrated and distributed In-Memory Data Fabric for computing and transacting on large-scale data sets in real-time, "orders of magnitude faster than possible with traditional disk-based or flash technologies," according to Apache community members. “It is designed to easily power both existing and new applications in a distributed, massively parallel architecture on affordable, industry-standard hardware.” - -### Brooklyn - -The foundation [announced][7] that Apache Brooklyn is now a Top-Level Project (TLP), "signifying that the project's community and products have been well-governed under the ASF's meritocratic process and principles." Brooklyn is an application blueprint and management platform used for integrating services across multiple data centers as well as and a wide range of software in the cloud. - -According to the Brooklyn announcement: "With modern applications being composed of many components, and increasing interest in micro-services architecture, the deployment and ongoing evolution of deployed apps is an increasingly difficult problem. Apache Brooklyn’s blueprints provide a clear, concise way to model an application, its components and their configuration, and the relationships between components, before deploying to public Cloud or private infrastructure. Policy-based management, built on the foundation of autonomic computing theory, continually evaluates the running application and makes modifications to it to keep it healthy and optimize for metrics such as cost and responsiveness." - -Brooklyn is in use at some notable organizations. Cloud service providers Canopy and Virtustream have created product offerings built on Brooklyn. IBM has also made extensive use of Apache Brooklyn in order to migrate large workloads from AWS to IBM Softlayer. - -### Apex - -In April, the Apache Software Foundation [elevated][8] its Apex project to Top-Level status. It is billed as “a large scale, high throughput, low latency, fault tolerant, unified Big Data stream and batch processing platform for the Apache Hadoop ecosystem.” Apex works in conjunction with Apache Hadoop YARN, a resource management platform for working with Hadoop clusters. - -### Tajo - -Finally, Apache Tajo, an advanced open source data warehousing system in Apache Hadoop, is another new Big Data project to know about. Apache claims that Tajo provides the ability to rapidly extract more intelligence for Hadoop deployments, third party databases, and commercial business intelligence tools. - -Clearly, although Apache Spark draws the bulk of the headlines, it is not the only Big Data tool from Apache to keep your eyes on. As this year continues, Apache likely will graduate even more compelling Big Data projects to Top-Level status, where they will benefit from optimized development resources and more. - - --------------------------------------------------------------------------------- - -via: https://www.linux.com/news/enterprise/systems-management/887177-achieving-enterprise-ready-container-tools-with-werckers-open-source-cli - -作者:[SAM DEAN][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.linux.com/users/sam-dean -[1]: https://www.linux.com/news/apache-spark-16-strong-typing-faster-throughput -[2]: http://www.seti.org/ -[3]: http://events.linuxfoundation.org/events/apachecon-north-america -[4]: http://globenewswire.com/news-release/2015/12/08/793713/0/en/The-Apache-Software-Foundation-Announces-Apache-Kylin-as-a-Top-Level-Project.html -[5]: http://globenewswire.com/news-release/2015/08/26/763513/10147133/en/The-Apache-Software-Foundation-Announces-Apache-tm-Lens-tm-as-a-Top-Level-Project.html -[6]: http://globenewswire.com/news-release/2015/08/25/763148/10146997/en/The-Apache-Software-Foundation-Announces-Apache-tm-Ignite-tm-as-a-Top-Level-Project.html -[7]: http://globenewswire.com/news-release/2015/11/23/789504/0/en/The-Apache-Software-Foundation-Announces-Apache-Brooklyn-as-a-Top-Level-Project.html -[8]: https://globenewswire.com/news-release/2016/04/25/832114/0/en/The-Apache-Software-Foundation-Announces-Apache-Apex-as-a-Top-Level-Project.html - - - - diff --git a/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md b/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md deleted file mode 100644 index 0a4a6ae0af..0000000000 --- a/sources/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md +++ /dev/null @@ -1,117 +0,0 @@ -ictlyh Translating -How to Set Up 2-Factor Authentication for Login and sudo -========================================================== - -![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_crop.png?itok=z_cdYZZf) ->[Used with permission][1] - -Security is all the rage—as it should be. We live in a world where data is an incredibly valuable currency, and you’re always at risk of loss. Because of this, you must do everything you can to ensure what you hold on your desktops and servers is safe. To that end, administrators and users will create incredibly complex passwords, employ password managers, and more. But, what if I told you could take the login to your Linux servers and desktops one step—nay, two steps—further? Thanks to the [Google Authenticator][2], you can. On top of that, it’s incredibly easy to set up. - -I am going to walk you through the process of setting up two-factor authentication for use on login and sudo. I will demonstrate this on a Ubuntu 16.04 desktop, but the process works for the server as well. To handle the two-factor side of things, I will be making use of the Google Authenticator. - -There is one very important caveat to this: Once you’ve set this up, you will not be able to log into the account (or issue sudo commands) without a six-digit code from the authenticator. This also adds another step for you, so if having to pull out your smartphone every time you need to log into your Linux machine (or use sudo), this might not be for you. Remember, however, this added step brings with it an extra layer of security you wouldn’t have otherwise. - -With that said, let’s set this up. - -### Installing the Necessary Components - -There are two pieces of this puzzle that must be installed—both in the form of the Google Authenticator. The first is the smartphone app. Here’s how to install from the Google Play Store: - -1. Open the Google Play Store on your Android device - -2. Search for google authenticator - -3. Locate and tap the entry by Google Inc. - -4. Tap Install - -5. Tap Accept - -6. Allow the installation to complete - -Now let’s move on to installing the authenticator on your Linux machine. Here’s how: - -1. Open a terminal window - -2. Issue the command sudo apt-get install google-authenticator - -3. Type your sudo password and hit Enter - -4. If prompted, type y and hit Enter - -5. Allow the installation to complete - -It’s now time to configure the login process to work with the google-authenticator. - -### Configuration - -Just one file must be edited to add two-step authentication for both login and sudo usage. The file is /etc/pam.d/common-auth. Open it and look for the line: - -``` -auth [success=1 default=ignore] pam_unix.so nullok_secure -``` - -Above that line, add the following: - -``` -auth required pam_google_authenticator.so -``` - -Save and close the file. - -The next step is to set up google-authenticator for every user on the system (otherwise, they will not be able to log in). For example’s sake, we’ll assume there are two users on your system: jack and olivia. We’ll first set this up for jack (we’ll assume this is the account we’ve been working with all along). - -Open up a terminal window and issue the command google-authenticator. You will be asked a series of questions (each of which you should answer with a y. The questions are: - -* Do you want me to update your "/home/jlwallen/.google_authenticator" file (y/n) y - -* Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) - -* By default, tokens are good for 30 seconds, and to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) - -* If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) - -Once you’ve answered these questions, you’ll be presented with your secret key, a verification code, and five emergency scratch codes. Print out the scratch codes and keep them with you. These codes can be used if you do not have your phone (each code is a one-time use only). The secret key is what you use to set up the account on the Google Authenticator app and the verification code is a one-time use code that you can use immediately (if needed). - -### Setting Up the App - -You now have the user jack set up. Before you can set up the user olivia, you need to add an account for jack on the Google Authenticator app. Open the app and the, from the main window, tap the menu button (three vertical dots in the upper right hand corner). Tap Set up account and then tap Enter provided key. In the next window (Figure 1), you will enter 16-digit secret key provided when you issued the google-authenticator app. Give the account a name (so you will remember which account this is to be used on) and tap ADD. - -![](https://www.linux.com/sites/lcom/files/styles/floated_images/public/auth_a.png?itok=xSMkd-Mf) ->Figure 1: Adding a new account to the Google Authenticator app. - -Now that you’ve added the account, you will be presented with six-digit keys that will be requested every time you log in or attempt to use sudo. - -Finally, you have to set up the other accounts on the system. As I mentioned, we’re going to set up the account called olivia. Here’s how: - -1. Open up a terminal window - -2. Issue the command sudo su olivia - -3. Open the Google Authenticator on your smartphone - -4. Type the six digit authentication code (provided by the app) in the terminal window (Figure 2) and hit Enter - -5. Type your sudo password and hit Enter - -6. As the new user, issue the google-authenticator command, answer the questions, and record the keys and codes provided - -After you’ve successfully set up the user olivia, with the google-authenticator command, add a new account on the Google Authenticator app with that user’s info (in the same manner you did for the initial user). You should now have accounts on the Google Authenticator app for both jack and olivia. - -![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_b.png?itok=FH36V1r0) ->Figure 2: Entering the six-digit authentication code for sudo. - -That’s it. Every time you attempt to log into your machine (or use sudo), you will be required to provide a six-digit authentication key, before you can enter your user password. Your Linux machine is now far more secure than it was before adding two-factor authentication. Although some might consider this process a hassle, I highly recommend setting it up...especially for machines that house sensitive data. - --------------------------------------------------------------------------------- - -via: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_b.png?itok=FH36V1r0 - -作者:[JACK WALLEN][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -[a]: https://www.linux.com/users/jlwallen -[1]: https://www.linux.com/licenses/category/used-permission -[2]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 - diff --git a/translated/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md b/translated/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md new file mode 100644 index 0000000000..1ed524c4d4 --- /dev/null +++ b/translated/tech/20160513 How to Set Up 2-Factor Authentication for Login and sudo.md @@ -0,0 +1,117 @@ +如何为登录和 sudo 设置双重认证 +========================================================== + +![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_crop.png?itok=z_cdYZZf) +>[Used with permission][1] + +安全就是一切。我们生活的当今世界,数据具有令人难以置信的价值,而你也一直处于数据丢失的风险之中。因此,你必须想尽办法保证你桌面系统和服务器中东西的安全。结果,管理员和用户就会创建极其复杂的密码、使用密码管理器甚至其它更复杂的东西。但是,如果我告诉你你可以只需要一步-至多两步就能登录到你的 Linux 服务器或桌面系统中呢?多亏了 [Google Authenticator][2],现在你可以做到了。在这之上配置也极其简单。 + +我会给你简要介绍为登录和 sudo 设值双重认证的步骤。我基于 Ubuntu 16.04 桌面系统进行介绍,但这些步骤也适用于其它服务器。为了做到双重认证,我会使用 Google Authenticator。 + +这里有个非常重要的警告:一旦你设置了认证,没有一个从认证器中获得的由 6 个数字组成的验证码你就不可能登录账户(或者执行 sudo 命令)。这也给你增加了一步额外的操作,因此如果你不想每次登录到 Linux 服务器(或者使用 sudo)的时候都要拿出你的智能手机,这个方案就不适合你。但你也要记住,这额外的一个步骤也给你带来一层其它方法无法给予的保护。 + +话不多说,开始吧。 + +### 安装必要的组件 + +安装 Google 认证,首先要解决两个问题。一是安装智能机应用。下面是如何从 Google 应用商店安装的方法: + +1. 在你的安卓设备中打开 Google 应用商店 + +2. 搜索 google 认证 + +3. 找到并点击有 Google 标识的应用 + +4. 点击安装 + +5. 点击 接受 + +6. 等待安装完成 + +接下来,我们继续在你的 Linux 机器上安装认证。步骤如下: + +1. 打开一个终端窗口 + +2. 输入命令 sudo apt-get install google-authenticator + +3. 输入你的 sudo 密码并敲击回车 + +4. 如果有弹窗提示,输入 y 并敲击回车 + +5. 等待安装完成 + +接下来配置使用 google-authenticator 进行登录。 + +### 配置 + +要为登录和 sudo 添加两阶段认证只需要编辑一个文件。也就是 /etc/pam.d/common-auth。打开并找到如下一行: +Just one file must be edited to add two-step authentication for both login and sudo usage. The file is /etc/pam.d/common-auth. Open it and look for the line + +``` +auth [success=1 default=ignore] pam_unix.so nullok_secure +``` + +在这行上面添加: + +``` +auth required pam_google_authenticator.so +``` + +保存并关闭文件。 + +下一步就是为系统中的每个用户设置 google-authenticator(否则会不允许他们登录)。为了简单起见,我们假设你的系统中有两个用户:jack 和 olivia。首先为 jack 设置(我们假设这是我们一直使用的账户)。 + +打开一个终端窗口并输入命令 google-authenticator。之后会问你一系列的问题(每个问题你都应该用 y 回答)。问题包括: + +* 是否允许更新你的 "/home/jlwallen/.google_authenticator" 文件 (y/n) y + +* 是否禁止多个用户使用同一个认证令牌?这会限制你每 30 秒内只能登录一次,但能增加你注意到甚至防止中间人攻击的可能 (y/n) + +* 默认情况下令牌时长为 30 秒即可,为了补偿客户端和服务器之间可能出现的时间偏差,我们允许添加一个当前时间之前或之后的令牌。如果你无法进行时间同步,你可以把时间窗口由默认的 1:30 分钟增加到 4 分钟。是否希望如此 (y/n) + +* 如果你尝试登陆的计算机没有针对蛮力登陆进行加固,你可以为验证模块启用速率限制。默认情况下,限制攻击者每 30 秒不能尝试登陆超过 3 次。是否启用速率限制 (y/n) + +一旦完成了问题回答,你就会看到你的密钥、验证码以及 5 个紧急刮码。把刮码输出保存起来。你可以在无法使用手机的时候使用它们(每个刮码仅限使用一次)。密钥用于你在 Google Authenticator 上设置账户,验证码是你能立即使用(如果需要)的一次性验证码。 + +### 设置应用 + +现在你已经配置好了用户 jack。在设置用户 olivia 之前,你需要在 Google Authenticator 应用上为 jack 添加账户。在主屏幕上打开应用,点击 菜单 按钮(右上角三个竖排点)。点击添加账户然后输入提供的密钥。在下一个窗口(示意图1),你需要输入你运行 google-authenticator 应用时提供的 16 个数字的密钥。给账户取个名字(以便你记住这用于哪个账户),然后点击添加。 + +![](https://www.linux.com/sites/lcom/files/styles/floated_images/public/auth_a.png?itok=xSMkd-Mf) +>Figure 1: 在 Google Authenticator 应用上新建账户 + +添加完账户之后,你就会看到一个 6 个数字的密码,你每次登录或者使用 sudo 的时候都会需要这个密码。 + +最后,在系统上设置其它账户。正如之前提到的,我们会设置一个叫 olivia 的账户。步骤如下: + +1. 打开一个终端窗口 + +2. 输入命令 sudo su olivia + +3. 在智能机上打开 Google Authenticator + +4. 在终端窗口(示意图2)中输入(应用提供的) 6 位数字验证码并敲击回车 + +5. 输入你的 sudo 密码并敲击回车 + +6. 以新用户输入命令 google-authenticator,回答问题并记录生成的密钥和验证码。 + +成功为 olivia 用户设置好之后,用 google-authenticator 命令,在 Google Authenticator 应用上根据用户信息(和之前为第一个用户添加账户相同)添加一个新的账户。现在你在 Google Authenticator 应用上就会有 jack 和 olivia 两个账户了。 + +![](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_b.png?itok=FH36V1r0) +>Figure 2: 为 sudo 输入 6位数字验证码 + +好了,就是这些。每次你尝试登陆系统(或者使用 sudo) 的时候,在你输入用户密码之前,都会要求你输入提供的 6 位数字验证码。现在你的 Linux 机器就比添加双重认证之前安全多了。虽然有些人会认为这非常麻烦,我仍然推荐使用,尤其是那些保存了敏感数据的机器。 + +-------------------------------------------------------------------------------- + +via: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/auth_b.png?itok=FH36V1r0 + +作者:[JACK WALLEN][a] +译者:[ictlyh](http://mutouxiaogui.cn/blog/) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://www.linux.com/users/jlwallen +[1]: https://www.linux.com/licenses/category/used-permission +[2]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 + From 70463eae9605135a8a53c31c9e8140391d1342a0 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 15 May 2016 20:57:07 +0800 Subject: [PATCH 504/582] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rce Linux Distributions Would Presidential Hopefuls Run.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md b/published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md index 87c91930b3..22b7c1e498 100644 --- a/published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md +++ b/published/20150820 Which Open Source Linux Distributions Would Presidential Hopefuls Run.md @@ -17,11 +17,11 @@ 如果 **Jeb (Jeb!?) Bush** 使用 Linux,它一定是 [Debian][2]。Debian 属于一个相当无趣的分支,它是为真正意义上的、成熟的黑客设计的,这些人将清理那些由经验不甚丰富的开源爱好者所造成的混乱视为一大使命。当然,这也使得 Debian 显得很枯燥,所以它已有的用户基数一直在缩减。 -**Scott Walker** ,对于他来说,应该是一个 [Damn Small Linux][3] (DSL) 用户。这个系统仅仅需要 50MB 的硬盘空间和 16MB 的 RAM 便可运行。DSL 可以使一台 20 年前的 486 计算机焕发新春,而这恰好符合了 **Scott Walker** 所主张的消减成本计划。当然,你在 DSL 上的用户体验也十分原始,这个系统平台只能够运行一个浏览器。但是至少你你不用浪费钱财购买新的电脑硬件,你那台 1993 年购买的机器仍然可以为你好好的工作。 +**Scott Walker** ,对于他来说,应该是一个 [Damn Small Linux][3] (DSL) 用户。这个系统仅仅需要 50MB 的硬盘空间和 16MB 的 RAM 便可运行。DSL 可以使一台 20 年前的 486 计算机焕发新春,而这恰好符合了 **Scott Walker** 所主张的消减成本计划。当然,你在 DSL 上的用户体验也十分原始,这个系统平台只能够运行一个浏览器。但是至少你不用浪费钱财购买新的电脑硬件,你那台 1993 年购买的机器仍然可以为你好好的工作。 **Chris Christie** 会使用哪种系统呢?他肯定会使用 [Relax-and-Recover Linux][4],它号称“一次搞定(Setup-and-forget)的裸机 Linux 灾难恢复方案” 。从那次不幸的华盛顿大桥事故后,“一次搞定(Setup-and-forget)”基本上便成了 Christie 的政治主张。不管灾难恢复是否能够让 Christie 最终挽回一切,但是当他的电脑死机的时候,至少可以找到一两封意外丢失的机密邮件。 -至于 **Carly Fiorina**,她无疑将要使用 [惠普][6] (HPQ)为“[The Machine][5]”开发的操作系统,她在 1999 年到 2005 年这 6 年期间管理的这个公司。事实上,The Machine 可以运行几种不同的操作系统,也许是基于 Linux 的,也许不是,我们并不太清楚,它的开发始于 **Carly Fiorina** 在惠普公司的任期结束后。不管怎么说,作为 IT 圈里一个成功的管理者,这是她履历里面重要的组成部分,同时这也意味着她很难与惠普彻底断绝关系。 +至于 **Carly Fiorina**,她无疑将要使用 [惠普][6] (HPQ)为“[The Machine][5]”开发的操作系统,她在 1999 年到 2005 年这 6 年期间管理该公司。事实上,The Machine 可以运行几种不同的操作系统,也许是基于 Linux 的,也许不是,我们并不太清楚,它的开发始于 **Carly Fiorina** 在惠普公司的任期结束后。不管怎么说,作为 IT 圈里一个成功的管理者,这是她履历里面重要的组成部分,同时这也意味着她很难与惠普彻底断绝关系。 最后,但并不是不重要,你也猜到了——**Donald Trump**。他显然会动用数百万美元去雇佣一个精英黑客团队去定制属于自己的操作系统——尽管他原本是想要免费获得一个完美的、现成的操作系统——然后还能向别人炫耀自己的财力。他可能会吹嘘自己的操作系统是目前最好的系统,虽然它可能没有兼容 POSIX 或者一些其它的标准,因为那样的话就需要花掉更多的钱。同时这个系统也将根本不会提供任何文档,因为如果 **Donald Trump** 向人们解释他的系统的实际运行方式,他会冒着所有机密被泄露至伊斯兰国家的风险,绝对是这样的。 From ea571e68dded4515c6ee05cf7a16519c2e144a24 Mon Sep 17 00:00:00 2001 From: kyle Date: Sun, 15 May 2016 20:59:14 +0800 Subject: [PATCH 505/582] translated --- index.html.1 | 356 +++++++++++ ...t 3 - LXD 2.0--Your first LXD container.md | 561 ------------------ test | 11 + ...t 3 - LXD 2.0--Your first LXD container.md | 438 ++++++++++++++ 4 files changed, 805 insertions(+), 561 deletions(-) create mode 100644 index.html.1 delete mode 100644 sources/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md create mode 100644 test create mode 100644 translated/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md diff --git a/index.html.1 b/index.html.1 new file mode 100644 index 0000000000..3188a12288 --- /dev/null +++ b/index.html.1 @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + How people build software · GitHub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Skip to content + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+
+
+
+

How people build software

+

Millions of developers use GitHub to build personal projects, support their businesses, and work together on open source technologies.

+
+ +
+
+
+ +
+
+

Welcome home, developers

+

GitHub fosters a fast, flexible, and collaborative development process that lets you work on your own or with others.

+
+
+
+
+ +

For everything you build

+

Host and manage your code on GitHub. You can keep your work private or share it with the world.

+
+
+ +

A better way to work

+

From hobbyists to professionals, GitHub helps developers simplify the way they build software.

+
+
+ +

Millions of projects

+

GitHub is home to millions of open source projects. Try one out or get inspired to create your own.

+
+
+ +

One platform, from start to finish

+

With hundreds of integrations, GitHub is flexible enough to be at the center of your development process.

+
+
+
+
+ +
+
+

Who uses GitHub?

+
+
+ + + +
+
+
+ +
+ NASA is on GitHub +
+
+
+
+ +
+
+
+ +
+ Public projects are always free. Private plans start at $7/month. +
+
+
+
+ + + +
+ + + + + + + + + +
+ + + Something went wrong with that request. Please try again. +
+ + + + + + + + + + + + + + + diff --git a/sources/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md b/sources/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md deleted file mode 100644 index 1da7e4ec62..0000000000 --- a/sources/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md +++ /dev/null @@ -1,561 +0,0 @@ -kylepeng93 is translating -Part 3 - LXD 2.0: Your first LXD container -========================================== - -This is the third blog post [in this series about LXD 2.0][0]. - -As there are a lot of commands involved with managing LXD containers, this post is rather long. If you’d instead prefer a quick step-by-step tour of those same commands, you can [try our online demo instead][1]! - -![](https://linuxcontainers.org/static/img/containers.png) - -### Creating and starting a new container - -As I mentioned in the previous posts, the LXD command line client comes pre-configured with a few image sources. Ubuntu is the best covered with official images for all its releases and architectures but there also are a number of unofficial images for other distributions. Those are community generated and maintained by LXC upstream contributors. - -### Ubuntu - -If all you want is the best supported release of Ubuntu, all you have to do is: - -``` -lxc launch ubuntu: -``` - -Note however that the meaning of this will change as new Ubuntu LTS releases are released. So for scripting use, you should stick to mentioning the actual release you want (see below). - -### Ubuntu 14.04 LTS - -To get the latest, tested, stable image of Ubuntu 14.04 LTS, you can simply run: - -``` -lxc launch ubuntu:14.04 -``` - -In this mode, a random container name will be picked. -If you prefer to specify your own name, you may instead do: - -``` -lxc launch ubuntu:14.04 c1 -``` - -Should you want a specific (non-primary) architecture, say a 32bit Intel image, you can do: - -``` -lxc launch ubuntu:14.04/i386 c2 -``` - -### Current Ubuntu development release - -The “ubuntu:” remote used above only provides official, tested images for Ubuntu. If you instead want untested daily builds, as is appropriate for the development release, you’ll want to use the “ubuntu-daily:” remote instead. - -``` -lxc launch ubuntu-daily:devel c3 -``` - -In this example, whatever the latest Ubuntu development release is will automatically be picked. - -You can also be explicit, for example by using the code name: - -``` -lxc launch ubuntu-daily:xenial c4 -``` - -### Latest Alpine Linux - -Alpine images are available on the “images:” remote and can be launched with: - -``` -lxc launch images:alpine/3.3/amd64 c5 -``` - -### And many more - -A full list of the Ubuntu images can be obtained with: - -``` -lxc image list ubuntu: -lxc image list ubuntu-daily: -``` - -And of all the unofficial images: - -``` -lxc image list images: -``` - -A list of all the aliases (friendly names) available on a given remote can also be obtained with (for the “ubuntu:” remote): - -``` -lxc image alias list ubuntu: -``` - -### Creating a container without starting it - -If you want to just create a container or a batch of container but not also start them immediately, you can just replace “lxc launch” by “lxc init”. All the options are identical, the only different is that it will not start the container for you after creation. - -``` -lxc init ubuntu: -``` - -### Information about your containers - -#### Listing the containers - -To list all your containers, you can do: - -``` -lxc list -``` - -There are a number of options you can pass to change what columns are displayed. On systems with a lot of containers, the default columns can be a bit slow (due to having to retrieve network information from the containers), you may instead want: - -``` -lxc list --fast -``` - -Which shows a different set of columns that require less processing on the server side. - -You can also filter based on name or properties: - -``` -stgraber@dakara:~$ lxc list security.privileged=true -+------+---------+---------------------+-----------------------------------------------+------------+-----------+ -| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | -+------+---------+---------------------+-----------------------------------------------+------------+-----------+ -| suse | RUNNING | 172.17.0.105 (eth0) | 2607:f2c0:f00f:2700:216:3eff:fef2:aff4 (eth0) | PERSISTENT | 0 | -+------+---------+---------------------+-----------------------------------------------+------------+-----------+ -``` - -In this example, only containers that are privileged (user namespace disabled) are listed. - -``` -stgraber@dakara:~$ lxc list --fast alpine -+-------------+---------+--------------+----------------------+----------+------------+ -| NAME | STATE | ARCHITECTURE | CREATED AT | PROFILES | TYPE | -+-------------+---------+--------------+----------------------+----------+------------+ -| alpine | RUNNING | x86_64 | 2016/03/20 02:11 UTC | default | PERSISTENT | -+-------------+---------+--------------+----------------------+----------+------------+ -| alpine-edge | RUNNING | x86_64 | 2016/03/20 02:19 UTC | default | PERSISTENT | -+-------------+---------+--------------+----------------------+----------+------------+ -``` - -And in this example, only the containers which have “alpine” in their names (complex regular expressions are also supported). - -#### Getting detailed information from a container - -As the list command obviously can’t show you everything about a container in a nicely readable way, you can query information about an individual container with: - -``` -lxc info -``` - -For example: - -``` -stgraber@dakara:~$ lxc info zerotier -Name: zerotier -Architecture: x86_64 -Created: 2016/02/20 20:01 UTC -Status: Running -Type: persistent -Profiles: default -Pid: 31715 -Processes: 32 -Ips: - eth0: inet 172.17.0.101 - eth0: inet6 2607:f2c0:f00f:2700:216:3eff:feec:65a8 - eth0: inet6 fe80::216:3eff:feec:65a8 - lo: inet 127.0.0.1 - lo: inet6 ::1 - lxcbr0: inet 10.0.3.1 - lxcbr0: inet6 fe80::c0a4:ceff:fe52:4d51 - zt0: inet 29.17.181.59 - zt0: inet6 fd80:56c2:e21c:0:199:9379:e711:b3e1 - zt0: inet6 fe80::79:e7ff:fe0d:5123 -Snapshots: - zerotier/blah (taken at 2016/03/08 23:55 UTC) (stateless) - ``` - -### Life-cycle management commands - -Those are probably the most obvious commands of any container or virtual machine manager but they still need to be covered. - -Oh and all of them accept multiple container names for batch operation. - -#### start - -Starting a container is as simple as: - -``` -lxc start -``` - -#### stop - -Stopping a container can be done with: - -``` -lxc stop -``` - -If the container isn’t cooperating (not responding to SIGPWR), you can force it with: - -``` -lxc stop --force -``` - -#### restart - -Restarting a container is done through: - -``` -lxc restart -``` - -And if not cooperating (not responding to SIGINT), you can force it with: - -``` -lxc restart --force -``` - -#### pause - -You can also “pause” a container. In this mode, all the container tasks will be sent the equivalent of a SIGSTOP which means that they will still be visible and will still be using memory but they won’t get any CPU time from the scheduler. - -This is useful if you have a CPU hungry container that takes quite a while to start but that you aren’t constantly using. You can let it start, then pause it, then start it again when needed. - -``` -lxc pause -``` - -#### delete - -Lastly, if you want a container to go away, you can delete it for good with: - -``` -lxc delete -``` - -Note that you will have to pass “–force” if the container is currently running. - -### Container configuration - -LXD exposes quite a few container settings, including resource limitation, control of container startup and a variety of device pass-through options. The full list is far too long to cover in this post but it’s available [here][2]. - -As far as devices go, LXD currently supports the following device types: - -- disk -This can be a physical disk or partition being mounted into the container or a bind-mounted path from the host. -- nic -A network interface. It can be a bridged virtual ethernet interrface, a point to point device, an ethernet macvlan device or an actual physical interface being passed through to the container. -- unix-block -A UNIX block device, e.g. /dev/sda -- unix-char -A UNIX character device, e.g. /dev/kvm -- none -This special type is used to hide a device which would otherwise be inherited through profiles. - -#### Configuration profiles - -The list of all available profiles can be obtained with: - -``` -lxc profile list -``` - -To see the content of a given profile, the easiest is to use: - -``` -lxc profile show -``` - -And should you want to change anything inside it, use: - -``` -lxc profile edit -``` - -You can change the list of profiles which apply to a given container with: - -``` -lxc profile apply ,,,... -``` - -#### Local configuration - -For things that are unique to a container and so don’t make sense to put into a profile, you can just set them directly against the container: - -``` -lxc config edit -``` - -This behaves the exact same way as “profile edit” above. - -Instead of opening the whole thing in a text editor, you can also modify individual keys with: - -``` -lxc config set -``` -Or add devices, for example: - -``` -lxc config device add my-container kvm unix-char path=/dev/kvm -``` - -Which will setup a /dev/kvm entry for the container named “my-container”. - -The same can be done for a profile using “lxc profile set” and “lxc profile device add”. - -#### Reading the configuration - -You can read the container local configuration with: - -``` -lxc config show -``` - -Or to get the expanded configuration (including all the profile keys): - -``` -lxc config show --expanded -``` - -For example: - -``` -stgraber@dakara:~$ lxc config show --expanded zerotier -name: zerotier -profiles: -- default -config: - security.nesting: "true" - user.a: b - volatile.base_image: a49d26ce5808075f5175bf31f5cb90561f5023dcd408da8ac5e834096d46b2d8 - volatile.eth0.hwaddr: 00:16:3e:ec:65:a8 - volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]' -devices: - eth0: - name: eth0 - nictype: macvlan - parent: eth0 - type: nic - limits.ingress: 10Mbit - limits.egress: 10Mbit - root: - path: / - size: 30GB - type: disk - tun: - path: /dev/net/tun - type: unix-char -ephemeral: false -``` - -That one is very convenient to check what will actually be applied to a given container. - -#### Live configuration update - -Note that unless indicated in the documentation, all configuration keys and device entries are applied to affected containers live. This means that you can add and remove devices or alter the security profile of running containers without ever having to restart them. - -### Getting a shell - -LXD lets you execute tasks directly into the container. The most common use of this is to get a shell in the container or to run some admin tasks. - -The benefit of this compared to SSH is that you’re not dependent on the container being reachable over the network or on any software or configuration being present inside the container. - -Execution environment - -One thing that’s a bit unusual with the way LXD executes commands inside the container is that it’s not itself running inside the container, which means that it can’t know what shell to use, what environment variables to set or what path to use for your home directory. - -Commands executed through LXD will always run as the container’s root user (uid 0, gid 0) with a minimal PATH environment variable set and a HOME environment variable set to /root. - -Additional environment variables can be passed through the command line or can be set permanently against the container through the “environment.” configuration options. - -#### Executing commands - -Getting a shell inside a container is typically as simple as: - -``` -lxc exec bash -``` - -That’s assuming the container does actually have bash installed. - - -More complex commands require the use of a separator for proper argument parsing: - -``` -lxc exec -- ls -lh / -``` - -To set or override environment variables, you can use the “–env” argument, for example: - -``` -stgraber@dakara:~$ lxc exec zerotier --env mykey=myvalue env | grep mykey -mykey=myvalue -``` - -### Managing files - -Because LXD has direct access to the container’s file system, it can directly read and write any file inside the container. This can be very useful to pull log files or exchange files with the container. - -#### Pulling a file from the container - -To get a file from the container, simply run: - -``` -lxc file pull / -``` - -For example: - -``` -stgraber@dakara:~$ lxc file pull zerotier/etc/hosts hosts -``` - -Or to read it to standard output: - -``` -stgraber@dakara:~$ lxc file pull zerotier/etc/hosts - -127.0.0.1 localhost - -# The following lines are desirable for IPv6 capable hosts -::1 ip6-localhost ip6-loopback -fe00::0 ip6-localnet -ff00::0 ip6-mcastprefix -ff02::1 ip6-allnodes -ff02::2 ip6-allrouters -ff02::3 ip6-allhosts -``` - -#### Pushing a file to the container - -Push simply works the other way: - -``` -lxc file push / -``` - -#### Editing a file directly - -Edit is a convenience function which simply pulls a given path, opens it in your default text editor and then pushes it back to the container when you close it: - -``` -lxc file edit / -``` - -### Snapshot management - -LXD lets you snapshot and restore containers. Snapshots include the entirety of the container’s state (including running state if –stateful is used), which means all container configuration, container devices and the container file system. - -#### Creating a snapshot - -You can snapshot a container with: - -``` -lxc snapshot -``` - -It’ll get named snapX where X is an incrementing number. - -Alternatively, you can name your snapshot with: - -``` -lxc snapshot -``` - -#### Listing snapshots - -The number of snapshots a container has is listed in “lxc list”, but the actual snapshot list is only visible in “lxc info”. - -``` -lxc info -``` - -#### Restoring a snapshot - -To restore a snapshot, simply run: - -``` -lxc restore -``` - -#### Renaming a snapshot - -Renaming a snapshot can be done by moving it with: - -``` -lxc move / / -``` - -#### Creating a new container from a snapshot - -You can create a new container which will be identical to another container’s snapshot except for the volatile information being reset (MAC address): - -``` -lxc copy / -``` - -#### Deleting a snapshot - -And finally, to delete a snapshot, just run: - -``` -lxc delete / -``` - -### Cloning and renaming - -Getting clean distribution images is all nice and well, but sometimes you want to install a bunch of things into your container, configure it and then branch it into a bunch of other containers. - -#### Copying a container - -To copy a container and effectively clone it into a new one, just run: - -``` -lxc copy -``` - -The destination container will be identical in every way to the source one, except it won’t have any snapshot and volatile keys (MAC address) will be reset. - -#### Moving a container - -LXD lets you copy and move containers between hosts, but that will get covered in a later post. - -For now, the “move” command can be used to rename a container with: - -``` -lxc move -``` - -The only requirement is that the container be stopped, everything else will be kept exactly as it was, including the volatile information (MAC address and such). - -### Conclusion - -This pretty long post covered most of the commands you’re likely to use in day to day operation. - -Obviously a lot of those commands have extra arguments that let you be more efficient or tweak specific aspects of your LXD containers. The best way to learn about all of those is to go through the help for those you care about (–help). - -### Extra information - -The main LXD website is at: -Development happens on Github at: -Mailing-list support happens on: -IRC support happens in: #lxcontainers on irc.freenode.net - -And if you don’t want or can’t install LXD on your own machine, you can always [try it online instead][1]! - - --------------------------------------------------------------------------------- - -via: https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ - -作者:[Stéphane Graber][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.stgraber.org/author/stgraber/ -[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ -[1]: https://linuxcontainers.org/lxd/try-it -[2]: https://github.com/lxc/lxd/blob/master/doc/configuration.md diff --git a/test b/test new file mode 100644 index 0000000000..3fcac2634a --- /dev/null +++ b/test @@ -0,0 +1,11 @@ + 1. 移动光标到本行。 + + 2. 接着按 v 键,将光标移动至下面第五个条目上。您会注意到之间的文本被高亮了。 + + 3. 然后按 : 字符。您将看到屏幕底部会出现 :'<,'> 。 + + 4. 现在请输入 w TEST,其中 TEST 是一个未被使用的文件名。确认您看到了 + :'<,'>w TEST 之后按 <回车> 键。 + + 5. 这时 Vim 会把选中的行写入到以 TEST 命名的文件中去。使用 :!dir 或 :!ls + 确认文件被正确保存。这次先别删除它!我们在下一讲中会用到它。 diff --git a/translated/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md b/translated/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md new file mode 100644 index 0000000000..4b6dcfd8aa --- /dev/null +++ b/translated/tech/LXD/Part 3 - LXD 2.0--Your first LXD container.md @@ -0,0 +1,438 @@ +kylepeng93 is translating +你的地一个LXD容器 +========================================== + +这是第三篇发布的博客[LXD2.0系列] +由于在管理LXD容器时涉及到大量的命令,所以这篇文章的篇幅是比较长的,如果你更喜欢使用同样的命令来快速的一步步实现整个过程,你可以[尝试我们的在线示例]! +![](https://linuxcontainers.org/static/img/containers.png) + +### 创建并启动一个新的容器 +正如我在先前的文章中提到的一样,LXD命令行客户端使用了少量的图片来做了一个预配置。Ubuntu的所有发行版和架构平台都拥有最好的官方图片,但是对于其他的发行版仍然有大量的非官方图片,那些图片都是由社区制作并且被LXC上层贡献者所维护。 +### Ubuntu +如果你想要支持最为完善的ubuntu版本,你可以按照下面的去做: +``` +lxc launch ubuntu: +``` +注意,这里所做的解释会随着ubuntu LTS的发布而变化。因此对于你使用的脚本应该取决于下面提到的具体你想要安装的版本: +###Ubuntu14.04 LTS +得到最新的,已经测试过的,稳定的ubuntu14.04 LTS镜像,你可以简单的执行: +``` +lxc launch ubuntu:14.04 +``` +这该模式下,一个任意的容器名将会被指定给它。 +如果你更喜欢指定一个你自己的命令,你可以这样做: +``` +lxc launch ubuntu:14.04 c1 +``` + +如果你想要指定一个特定的体系架构(非主要的),比如32位Intel镜像,你可以这样做: +``` +lxc launch ubuntu:14.04/i386 c2 +``` + +### 当前的Ubuntu开发版本 +上面使用的“ubuntu:”远程方式只会给你提供官方的并经过测试的ubuntu镜像。但是如果你想要未经测试过的日常构建版本,开发版可能对你来说是合适的,你将要使用“ubuntu-daily”来远程获取。 +``` +lxc launch ubuntu-daily:devel c3 +``` + +在这个例子中,最新的ubuntu开发版本将会被选自动选中。 +你也可以更加精确,比如你可以使用代号名: +``` +lxc launch ubuntu-daily:xenial c4 +``` + +### 最新的Alpine Linux +Alpine镜像在“Images:”远程中可用,可以通过如下命令执行: +``` +lxc launch images:alpine/3.3/amd64 c5 +``` + +### And many more +### 其他 +所有ubuntu镜像列表可以这样获得: +``` +lxc image list ubuntu: +lxc image list ubuntu-daily: +``` + +所有的非官方镜像: +``` +lxc image list images: +``` + +所有给定的可用远程别名清单可以这样获得(针对“ubuntu:”远程): +``` +lxc image alias list ubuntu: +``` + + +### 创建但不启动一个容器 +如果你想创建一个容器或者一批容器,但是你不想马上启动他们,你可以使用“lxc init”替换掉“lxc launch”。所有的选项都是相同的,唯一的不同就是它并不会在你创建完成之后启动容器。 +``` +lxc init ubuntu: +``` + +### 关于你的容器的信息 +### 列出所有的容器 +为了列出你的所有容器,你可以这样这做: +``` +lxc list +``` + +有大量的选项供你选择来改变被显示出来的列。在一个拥有大量容器的系统上,默认显示的列可能会有点慢(因为必须获取容器中的网络信息),你可以这样做来避免这种情况: +``` +lxc list --fast +``` + +上面的命令显示了一个不同的列的集合,这个集合在服务器端需要处理的信息更少。 +你也可以基于名字或者属性来过滤掉一些东西: +``` +stgraber@dakara:~$ lxc list security.privileged=true ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +| suse | RUNNING | 172.17.0.105 (eth0) | 2607:f2c0:f00f:2700:216:3eff:fef2:aff4 (eth0) | PERSISTENT | 0 | ++------+---------+---------------------+-----------------------------------------------+------------+-----------+ +``` + +在这个例子中,只有那些有特权(用户命名空间不可用)的容器才会被列出来。 +``` +stgraber@dakara:~$ lxc list --fast alpine ++-------------+---------+--------------+----------------------+----------+------------+ +| NAME | STATE | ARCHITECTURE | CREATED AT | PROFILES | TYPE | ++-------------+---------+--------------+----------------------+----------+------------+ +| alpine | RUNNING | x86_64 | 2016/03/20 02:11 UTC | default | PERSISTENT | ++-------------+---------+--------------+----------------------+----------+------------+ +| alpine-edge | RUNNING | x86_64 | 2016/03/20 02:19 UTC | default | PERSISTENT | ++-------------+---------+--------------+----------------------+----------+------------+ +``` + +在这个例子中,只有在名字中带有“alpine”的容器才会被列出来(支持复杂的正则表达式)。 +### 获取容器的详细信息 +由于list命令显然不能以一种友好的可读方式显示容器的所有信息,因此你可以使用如下方式来查询单个容器的信息: +``` +lxc info +``` + +例如: +``` +stgraber@dakara:~$ lxc info zerotier +Name: zerotier +Architecture: x86_64 +Created: 2016/02/20 20:01 UTC +Status: Running +Type: persistent +Profiles: default +Pid: 31715 +Processes: 32 +Ips: + eth0: inet 172.17.0.101 + eth0: inet6 2607:f2c0:f00f:2700:216:3eff:feec:65a8 + eth0: inet6 fe80::216:3eff:feec:65a8 + lo: inet 127.0.0.1 + lo: inet6 ::1 + lxcbr0: inet 10.0.3.1 + lxcbr0: inet6 fe80::c0a4:ceff:fe52:4d51 + zt0: inet 29.17.181.59 + zt0: inet6 fd80:56c2:e21c:0:199:9379:e711:b3e1 + zt0: inet6 fe80::79:e7ff:fe0d:5123 +Snapshots: + zerotier/blah (taken at 2016/03/08 23:55 UTC) (stateless) + ``` + +### 生命周期管理命令 +这些命令对于任何容器或者虚拟机管理器或许都是最普通的命令,但是它们仍然需要被涉及到。 +所有的这些命令在批量操作时都能接受多个容器名。 +### 启动 +启动一个容器就向下面一样简单: +``` +lxc start +``` + +### 停止 +停止一个容器可以这样来完成: +``` +lxc stop +``` + +如果容器不合作(即没有对发出的信号产生回应),这时候,你可以使用下面的方式强制执行: +``` +lxc stop --force +``` + +### 重启 +通过下面的命令来重启一个容器: +``` +lxc restart +``` + +如果容器不合作(即没有对发出的信号产生回应),你可以使用下面的方式强制执行: +``` +lxc restart --force +``` + +### 暂停 +你也可以“暂停”一个容器,在这种模式下,所有的容器任务将会被发送相同的信号,这也意味着他们将仍然是可见的,并且仍然会占用内存,但是他们不会从调度程序中得到任何的CPU时间片。 +如果你有一个CPU的饥饿容器,而这个容器需要一点时间来启动,但是你却并 不会经常用到它。这时候,你可以先启动它,然后将它暂停,并在你需要它的时候再启动它。 +``` +lxc pause +``` + +### 删除 +最后,如果你不需要这个容器了,你可以用下面的命令删除它: +``` +lxc delete +``` + +注意,如果容器还处于运行状态时你将必须使用“-forece”。 +### 容器的配置 +LXD拥有大量的容器配置设定,包括资源限制,容器启动控制以及对各种设备是否允许访问的配置选项。完整的清单因为太长所以并没有在本文中列出,但是,你可以从[here]获取它。 +就设备而言,LXD当前支持下面列出的这些设备: +- 磁盘 +既可以是一块物理磁盘,也可以只是一个被挂挂载到容器上的分区,还可以是一个来自主机的绑定挂载路径。 +- 网络接口卡 +一块网卡。它可以是一块桥接的虚拟网卡,或者是一块点对点设备,还可以是一块以太局域网设备或者一块已经被连接到容器的真实物理接口。 +- unix块 +一个UNIX块设备,比如/dev/sda +- unix字符 +一块UNIX字符设备,比如/dev/kvm +- none +这种特殊类型被用来隐藏那种可以通过profiles文件被继承的设备。 + +### 配置profiles文件 +所有可用的profiles的文件列表可以这样获取: +``` +lxc profile list +``` + +为了看到给定profile文件的内容,最简单的方式是这样做: +``` +lxc profile show +``` + +你可能想要改变文件里面的内容,可以这样做: +``` +lxc profile edit +``` + +你可以使用如下命令来改变profiles的列表并将这种变化应用到给定的容器中: +``` +lxc profile apply ,,,... +``` + +### 本地配置 +For things that are unique to a container and so don’t make sense to put into a profile, you can just set them directly against the container: + +``` +lxc config edit +``` + +上面的命令将会完成和“profile edit”命令一样的功能。 + +即使不在文本编辑器中打开整个文件的内容,你也可以像这样修改单独的键: +``` +lxc config set +``` +或者添加设备,例如 +``` +lxc config device add my-container kvm unix-char path=/dev/kvm +``` + +上面的命令将会为名为“my-container”的容器打开一个/dev/kvm入口。 +对一个profile文件使用“lxc profile set”和“lxc profile device add”命令也能实现上面的功能。 +#### 读取配置 +你可以使用如下命令来阅读容器的本地配置: +``` +lxc config show +``` + +或者得到已经被展开了的配置(包含了所有的键值): +``` +lxc config show --expanded +``` + +例如: +``` +stgraber@dakara:~$ lxc config show --expanded zerotier +name: zerotier +profiles: +- default +config: + security.nesting: "true" + user.a: b + volatile.base_image: a49d26ce5808075f5175bf31f5cb90561f5023dcd408da8ac5e834096d46b2d8 + volatile.eth0.hwaddr: 00:16:3e:ec:65:a8 + volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]' +devices: + eth0: + name: eth0 + nictype: macvlan + parent: eth0 + type: nic + limits.ingress: 10Mbit + limits.egress: 10Mbit + root: + path: / + size: 30GB + type: disk + tun: + path: /dev/net/tun + type: unix-char +ephemeral: false +``` + +这样做可以很方便的检查有哪些配置属性被应用到了给定的容器。 +### 实时配置更新 +注意,除非在文档中已经被明确指出,否则所有的键值和设备入口都会被应用到受影响的实时容器。这意味着你可以添加和移除某些设备或者在不重启容器的情况下修改正在运行的容器的安全profile配置文件。 +### 获得一个shell +LXD允许你对容器中的任务进行直接的操作。最常用的做法是在容器中得到一个shell或者执行一些管理员任务。 +和SSH相比,这样做的好处是你可以接触到独立与容器之外的网络或者任何一个软件又或者任何一个能够在容器内可见的文件配置。 +执行环境 +对比LXD在容器内执行命令的方式,有一点是不同的,那就是它自身并不是在容器中运行。这也意味着它不知道该使用什么样的shell,以及设置什么样的环境变量和哪里是它的家目录。 +通过LXD来执行命令必须总是在最小路径环境变量集并且HONE环境变量必须为/root的情况下以容器的超级用户身份来执行(即uid为0,gid为0)。 +其他的环境变量可以通过命令行来设置,或者在“environment.”配置文件中设置成永久环境变量。 +### 执行命令 +在容器中获得一个shell可以简单的执行下列命令得到: +``` +lxc exec bash +``` + +当然,这样做的前提是容器内已经安装了bash。 + +更多复杂的命令要求有对参数分隔符的合理使用。 +``` +lxc exec -- ls -lh / +``` + +如果想要设置或者重写变量,你可以使用“-env”参数,例如: +``` +stgraber@dakara:~$ lxc exec zerotier --env mykey=myvalue env | grep mykey +mykey=myvalue +``` + +### 管理文件 +因为LXD可以直接访问容器的文件系统,因此,它可以直接往容器中读取和写入任意文件。当我们需要提取日志文件或者与容器发生交互时,这个特性是很有用的。 +#### 从容器中取回一个文件 +想要从容器中获得一个文件,简单的执行下列命令: +``` +lxc file pull / +``` + +例如: +``` +stgraber@dakara:~$ lxc file pull zerotier/etc/hosts hosts +``` + +或者将它读取到标准输出: +``` +stgraber@dakara:~$ lxc file pull zerotier/etc/hosts - +127.0.0.1 localhost + +# 下面的所有行对于支持IPv6的主机是有用的 +::1 ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +ff02::3 ip6-allhosts +``` + +#### 向容器发送一个文件 + +发送会简单的以另一种方式完成: +``` +lxc file push / +``` + +#### 直接编辑一个文件 +当只是简单的提取一个给定的路径时,编辑是一个很方便的功能,在你的默认文本编辑器中打开它,这样在你关闭编辑器时会自动将编辑的内容保存到容器。 +``` +lxc file edit / +``` + +### 快照管理 +LXD允许你对容器执行快照功能并恢复它。快照包括了容器在某一时刻的完整状态(如果-stateful被使用的话将会包括运行状态),这也意味着所有的容器配置,容器设备和容器文件系统也会被包保存。 +#### 创建一个快照 +你可以使用下面的命令来执行快照功能: +``` +lxc snapshot +``` + +命令执行完成之后将会生成名为snapX(X为一个自动增长的数)的记录。 +除此之外,你还可以使用如下命令命名你的快照: +``` +lxc snapshot +``` + +#### 列出所有的快照 +一个容器的所有快照的数量可以使用“lxc list”来得到,但是真正的快照列表只能执行“lxc info”命令才能看到。 +``` +lxc info +``` + +#### 恢复快照 +为了恢复快照,你可以简单的执行下面的命令: +``` +lxc restore +``` + +#### 给快照重命名 +可以使用如下命令来给快照重命名: +``` +lxc move / / +``` + +#### 从快照中创建一个新的容器 +你可以使用快照来创建一个新的容器,而这个新的容器除了一些可变的信息将会被重置之外(例如MAC地址)其余所有信息都将和快照完全相同。 +``` +lxc copy / +``` + +#### 删除一个快照 + +最后,你可以执行下面的命令来删除一个快照: +``` +lxc delete / +``` + +### 克隆并重命名 +得到一个纯净的发行版镜像总是让人感到愉悦,但是,有时候你想要安装一系列的软件到你的容器中,这时,你需要配置它然后将它分割并分配到多个其他的容器中。 +#### 复制一个容器 +为了复制一个容器并有效的将它克隆到一个新的容器中,你可以执行下面的命令: +``` +lxc copy +``` +目标容器在所有方面将会完全和源容器等同。除非它没有 +目标容器在所有方面将会完全和源容器等同。除了新的容器没有任何源容器的快照以及一些可变值将会被重置之外(例如MAC地址)。 +#### 移除一个快照 +LXD允许你复制容器并在主机之间移动它。但是,关于这一点将在后面的文章中介绍。 +现在,“move”命令将会被用作给容器重命名。 +``` +lxc move +``` + +唯一的要求就是当容器被停止时,容器内的任何事情都会被保存成它本来的样子,包括可变化的信息(类似MAC地址等)。 +### 结论 +这篇如此长的文章介绍了大多数你可能会在日常操作中使用到的命令。 +很显然,那些如此之多的命令都会有额外的可以让你的命令更加有效率或者可以让你指定你的LXD容器的某个具体方面的参数。最好的学习这些命令的方式就是深入学习它们的帮助文档,当然。只是对于那些你真正需要用到的命令参数。 +### 额外的信息 +LXD的主要网站是: +Github上的开发说明: +邮件列表支持: +IRC支持: #lxcontainers on irc.freenode.net +如果你不想或者不能在你的机器上安装LXD,你可以[try it online instead][1]! + +-------------------------------------------------------------------------------- + +来自于:https://www.stgraber.org/2016/03/19/lxd-2-0-your-first-lxd-container-312/ +作者:[Stéphane Graber][a] +译者:[kylepeng93](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.stgraber.org/author/stgraber/ +[0]: https://www.stgraber.org/2016/03/11/lxd-2-0-blog-post-series-012/ +[1]: https://linuxcontainers.org/lxd/try-it +[2]: https://github.com/lxc/lxd/blob/master/doc/configuration.md From 1da48286956f1047e70134dc45812257288839ac Mon Sep 17 00:00:00 2001 From: kyle Date: Sun, 15 May 2016 21:09:20 +0800 Subject: [PATCH 506/582] translated --- index.html.1 | 356 --------------------------------------------------- 1 file changed, 356 deletions(-) delete mode 100644 index.html.1 diff --git a/index.html.1 b/index.html.1 deleted file mode 100644 index 3188a12288..0000000000 --- a/index.html.1 +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - How people build software · GitHub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Skip to content - - - - - - - - - - - - -
- -
-
- - -
- -
-
-
-
-

How people build software

-

Millions of developers use GitHub to build personal projects, support their businesses, and work together on open source technologies.

-
- -
-
-
- -
-
-

Welcome home, developers

-

GitHub fosters a fast, flexible, and collaborative development process that lets you work on your own or with others.

-
-
-
-
- -

For everything you build

-

Host and manage your code on GitHub. You can keep your work private or share it with the world.

-
-
- -

A better way to work

-

From hobbyists to professionals, GitHub helps developers simplify the way they build software.

-
-
- -

Millions of projects

-

GitHub is home to millions of open source projects. Try one out or get inspired to create your own.

-
-
- -

One platform, from start to finish

-

With hundreds of integrations, GitHub is flexible enough to be at the center of your development process.

-
-
-
-
- -
-
-

Who uses GitHub?

-
-
- - - -
-
-
- -
- NASA is on GitHub -
-
-
-
- -
-
-
- -
- Public projects are always free. Private plans start at $7/month. -
-
-
-
- - - -
- - - - - - - - - -
- - - Something went wrong with that request. Please try again. -
- - - - - - - - - - - - - - - From 6ad5a2c3b0ef6864c0d388bc0ae8246c83f109eb Mon Sep 17 00:00:00 2001 From: kyle Date: Sun, 15 May 2016 21:14:47 +0800 Subject: [PATCH 507/582] translated --- test | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 test diff --git a/test b/test deleted file mode 100644 index 3fcac2634a..0000000000 --- a/test +++ /dev/null @@ -1,11 +0,0 @@ - 1. 移动光标到本行。 - - 2. 接着按 v 键,将光标移动至下面第五个条目上。您会注意到之间的文本被高亮了。 - - 3. 然后按 : 字符。您将看到屏幕底部会出现 :'<,'> 。 - - 4. 现在请输入 w TEST,其中 TEST 是一个未被使用的文件名。确认您看到了 - :'<,'>w TEST 之后按 <回车> 键。 - - 5. 这时 Vim 会把选中的行写入到以 TEST 命名的文件中去。使用 :!dir 或 :!ls - 确认文件被正确保存。这次先别删除它!我们在下一讲中会用到它。 From 86ea7ee56c0b5f647ad9f2cdfd36d724ee547e8f Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 16 May 2016 22:23:54 +0800 Subject: [PATCH 508/582] =?UTF-8?q?20160516-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n source from a recruiter's perspective.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sources/talk/20160516 Open source from a recruiter's perspective.md diff --git a/sources/talk/20160516 Open source from a recruiter's perspective.md b/sources/talk/20160516 Open source from a recruiter's perspective.md new file mode 100644 index 0000000000..15fc396139 --- /dev/null +++ b/sources/talk/20160516 Open source from a recruiter's perspective.md @@ -0,0 +1,51 @@ +Open source from a recruiter's perspective +============================================ + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BIZ_workplay.png?itok=uQqFssrf) + +I fell in love with technology when I went to my first open source convention in 2012. + +After spending years in recruiting, I decided to take a job specializing in big data at [Greythorn][1]. I had been trying to learn the ropes for a few months leading up to [OSCON][2], but going to the conference sped that process up like crazy. There were so many brilliant people all in one place, and everyone was willing to share what they knew. It wasn't because they were trying to sell me anything, but because they were all so passionate about what they were working on. + +I soon realized that, in many ways, the open source and big data industry was less an industry and more of a community. That's why I now try to pay it forward and share what I've learned about open source with those who are just getting started in their careers. + +### Why employers want open source contributors + +Many clients tell me that although they want a candidate who has an exceptional technical mind, the ideal person should also really like this stuff. When you are passionate about something, you find yourself working on it even when you aren't getting paid. + +My clients often ask, "Do they code in their spare time?" "Can I find their work anywhere?" "What do they really enjoy?" Open source contributors are often at an advantage because they check these boxes, and not only are their projects out in the open—so is the evidence of their coding proficiency. + +#### Why recruiters search for open source contributors + +Solid tech recruiters understand the technologies and roles they're recruiting for, and they're going to assess your skills accordingly. But I'll admit that many of us have found that the best candidates we've come across have a tendency to be involved in open source, so we often just start our search there. Recruiters provide value to clients when they find candidates who are motivated to work on a team to create something awesome, because that's basically the description of a top-performing employee. + +It makes sense to me: When you take really smart people and give them the chance to be collaborative—for the sake of making something that works really well or may change the landscape of our everyday lives—it creates an energy that can be addictive. + +### What open source contributors can do to build a happy career + +There are obvious things you can do to leverage your open source work to build your career: Put your code on GitHub, participate in projects, go to conferences and join panels and workshops, etc. These are worthwhile, but more than anything you need to know what will make you happy in your work. + +Ask yourself questions like... + +* **Is it important to work for a company that gives back to the open source and software community?** I find that some of my best candidates insist on this, and it makes a huge difference in their job satisfaction. +* **Do you want to work for a company that is based on open source?** The culture is often different in these environments, and it helps to know if that's where you think you'll fit best. +* **Are there people you'd specifically like to work with?** Although you can always try to join the same projects, the odds of collaborating with and learning from someone you admire are better if your day jobs align at the same company. + +Once you know your own career priorities, it's easier to filter out the jobs that won't move you closer to your goals—and if you're working with a recruiter, it helps them match you with the right employer and team. + +Although I don't contribute code, I'll always share what I've learned with those who are working on their career in open source. This community is made up of supportive and smart people, and I love that I've been able to be a small part of it. + + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/5/open-source-recruiters-perspective + +作者:[Lindsey Thorne][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/lindsey-thorne +[1]: http://www.greythorn.com/ +[2]: http://conferences.oreilly.com/oscon From 724b0feea00843d611c45bed0283e326f105446f Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 16 May 2016 22:32:50 +0800 Subject: [PATCH 509/582] =?UTF-8?q?20160516-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...r operating system of 21st century cars.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 sources/talk/20160516 Linux will be the major operating system of 21st century cars.md diff --git a/sources/talk/20160516 Linux will be the major operating system of 21st century cars.md b/sources/talk/20160516 Linux will be the major operating system of 21st century cars.md new file mode 100644 index 0000000000..ec7a33aaa6 --- /dev/null +++ b/sources/talk/20160516 Linux will be the major operating system of 21st century cars.md @@ -0,0 +1,38 @@ +Linux will be the major operating system of 21st century cars +=============================================================== + +>Cars are more than engines and good looking bodies. They're also complex computing devices so, of course, Linux runs inside them. + +Linux doesn't just run your servers and, via Android, your phones. It also runs your cars. Of course, no one has ever bought a car for its operating system. But Linux is already powering the infotainment, heads-up display and connected car 4G and Wi-Fi systems for such major car manufacturers as Toyota, Nissan, and Jaguar Land Rover and [Linux is on its way to Ford][1], Mazda, Mitsubishi, and Subaru cars. + +![](http://zdnet4.cbsistatic.com/hub/i/2016/05/10/743f0c14-6458-4d1e-8723-d2d94d0d0e69/c297b7d52e27e97d8721d4cb46bb371b/agl-logo.jpg) +>All the Linux and open-source car software efforts have now been unified under the Automotive Grade Linux project. + +Software companies are also getting into this Internet of mobile things act. Movimento, Oracle, Qualcomm, Texas Instruments, UIEvolution and VeriSilicon have all [joined the Automotive Grade Linux (AGL)][2] project. The [AGL][3] is a collaborative open-source project devoted to creating a common, Linux-based software stack for the connected car. + +AGL has seen tremendous growth over the past year as demand for connected car technology and infotainment are rapidly increasing," said Dan Cauchy, the Linux Foundation's General Manager of Automotive, in a statement. + +Cauchy continued, "Our membership base is not only growing rapidly, but it is also diversifying across various business interests, from semiconductors and in-vehicle software to IoT and connected cloud services. This is a clear indication that the connected car revolution has broad implications across many industry verticals." + +These companies have joined after AGL's recent announcement of a new AGL Unified Code Base (UCB). This new Linux distribution is based on AGL and two other car open-source projects: [Tizen][4] and the [GENIVI Alliance][5]. UCB is a second-generation car Linux. It was built from the ground up to address automotive specific applications. It handles navigation, communications, safety, security and infotainment functionality, + +"The automotive industry needs a standard open operating system and framework to enable automakers and suppliers to quickly bring smartphone-like capabilities to the car," said Cauchy. "This new distribution integrates the best components from AGL, Tizen, GENIVI and related open-source code into a single AGL Unified Code Base, allowing car-makers to leverage a common platform for rapid innovation. The AGL UCB distribution will play a huge role in the adoption of Linux-based systems for all functions in the vehicle." + +He's right. Since its release in January 2016, four car companies and ten new software businesses have joined AGL. Esso, now Exxon, made the advertising slogan, "Put a tiger in your tank!" famous. I doubt that "Put a penguin under your hood" will ever become well-known, but that's exactly what's happening. Linux is well on its way to becoming the major operating system of 21st century cars. + +------------------------------------------------------------------------------ + +via: http://www.zdnet.com/article/the-linux-in-your-car-movement-gains-momentum/ + +作者:[Steven J. Vaughan-Nichols][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.zdnet.com/meet-the-team/us/steven-j-vaughan-nichols/ +[1]: https://www.automotivelinux.org/news/announcement/2016/01/ford-mazda-mitsubishi-motors-and-subaru-join-linux-foundation-and +[2]: https://www.automotivelinux.org/news/announcement/2016/05/oracle-qualcomm-innovation-center-texas-instruments-and-others-support +[3]: https://www.automotivelinux.org/ +[4]: https://www.tizen.org/ +[5]: http://www.genivi.org/ From b6f9b754b58382c48b4a0caaf783254f54d8e759 Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 16 May 2016 22:43:03 +0800 Subject: [PATCH 510/582] =?UTF-8?q?20160516-3=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tech/20160512 Bitmap in Linux Kernel.md | 397 ++++++++++++++++++ 1 file changed, 397 insertions(+) create mode 100644 sources/tech/20160512 Bitmap in Linux Kernel.md diff --git a/sources/tech/20160512 Bitmap in Linux Kernel.md b/sources/tech/20160512 Bitmap in Linux Kernel.md new file mode 100644 index 0000000000..b7e832ba0a --- /dev/null +++ b/sources/tech/20160512 Bitmap in Linux Kernel.md @@ -0,0 +1,397 @@ +Data Structures in the Linux Kernel +================================================================================ + +Bit arrays and bit operations in the Linux kernel +-------------------------------------------------------------------------------- + +Besides different [linked](https://en.wikipedia.org/wiki/Linked_data_structure) and [tree](https://en.wikipedia.org/wiki/Tree_%28data_structure%29) based data structures, the Linux kernel provides [API](https://en.wikipedia.org/wiki/Application_programming_interface) for [bit arrays](https://en.wikipedia.org/wiki/Bit_array) or `bitmap`. Bit arrays are heavily used in the Linux kernel and following source code files contain common `API` for work with such structures: + +* [lib/bitmap.c](https://github.com/torvalds/linux/blob/master/lib/bitmap.c) +* [include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) + +Besides these two files, there is also architecture-specific header file which provides optimized bit operations for certain architecture. We consider [x86_64](https://en.wikipedia.org/wiki/X86-64) architecture, so in our case it will be: + +* [arch/x86/include/asm/bitops.h](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) + +header file. As I just wrote above, the `bitmap` is heavily used in the Linux kernel. For example a `bit array` is used to store set of online/offline processors for systems which support [hot-plug](https://www.kernel.org/doc/Documentation/cpu-hotplug.txt) cpu (more about this you can read in the [cpumasks](https://0xax.gitbooks.io/linux-insides/content/Concepts/cpumask.html) part), a `bit array` stores set of allocated [irqs](https://en.wikipedia.org/wiki/Interrupt_request_%28PC_architecture%29) during initialization of the Linux kernel and etc. + +So, the main goal of this part is to see how `bit arrays` are implemented in the Linux kernel. Let's start. + +Declaration of bit array +================================================================================ + +Before we will look on `API` for bitmaps manipulation, we must know how to declare it in the Linux kernel. There are two common method to declare own bit array. The first simple way to declare a bit array is to array of `unsigned long`. For example: + +```C +unsigned long my_bitmap[8] +``` + +The second way is to use the `DECLARE_BITMAP` macro which is defined in the [include/linux/types.h](https://github.com/torvalds/linux/blob/master/include/linux/types.h) header file: + +```C +#define DECLARE_BITMAP(name,bits) \ + unsigned long name[BITS_TO_LONGS(bits)] +``` + +We can see that `DECLARE_BITMAP` macro takes two parameters: + +* `name` - name of bitmap; +* `bits` - amount of bits in bitmap; + +and just expands to the definition of `unsigned long` array with `BITS_TO_LONGS(bits)` elements, where the `BITS_TO_LONGS` macro converts a given number of bits to number of `longs` or in other words it calculates how many `8` byte elements in `bits`: + +```C +#define BITS_PER_BYTE 8 +#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) +#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long)) +``` + +So, for example `DECLARE_BITMAP(my_bitmap, 64)` will produce: + +```python +>>> (((64) + (64) - 1) / (64)) +1 +``` + +and: + +```C +unsigned long my_bitmap[1]; +``` + +After we are able to declare a bit array, we can start to use it. + +Architecture-specific bit operations +================================================================================ + +We already saw above a couple of source code and header files which provide [API](https://en.wikipedia.org/wiki/Application_programming_interface) for manipulation of bit arrays. The most important and widely used API of bit arrays is architecture-specific and located as we already know in the [arch/x86/include/asm/bitops.h](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) header file. + +First of all let's look at the two most important functions: + +* `set_bit`; +* `clear_bit`. + +I think that there is no need to explain what these function do. This is already must be clear from their name. Let's look on their implementation. If you will look into the [arch/x86/include/asm/bitops.h](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) header file, you will note that each of these functions represented by two variants: [atomic](https://en.wikipedia.org/wiki/Linearizability) and not. Before we will start to dive into implementations of these functions, first of all we must to know a little about `atomic` operations. + +In simple words atomic operations guarantees that two or more operations will not be performed on the same data concurrently. The `x86` architecture provides a set of atomic instructions, for example [xchg](http://x86.renejeschke.de/html/file_module_x86_id_328.html) instruction, [cmpxchg](http://x86.renejeschke.de/html/file_module_x86_id_41.html) instruction and etc. Besides atomic instructions, some of non-atomic instructions can be made atomic with the help of the [lock](http://x86.renejeschke.de/html/file_module_x86_id_159.html) instruction. It is enough to know about atomic operations for now, so we can begin to consider implementation of `set_bit` and `clear_bit` functions. + +First of all, let's start to consider `non-atomic` variants of this function. Names of non-atomic `set_bit` and `clear_bit` starts from double underscore. As we already know, all of these functions are defined in the [arch/x86/include/asm/bitops.h](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) header file and the first function is `__set_bit`: + +```C +static inline void __set_bit(long nr, volatile unsigned long *addr) +{ + asm volatile("bts %1,%0" : ADDR : "Ir" (nr) : "memory"); +} +``` + +As we can see it takes two arguments: + +* `nr` - number of bit in a bit array. +* `addr` - address of a bit array where we need to set bit. + +Note that the `addr` parameter is defined with `volatile` keyword which tells to compiler that value maybe changed by the given address. The implementation of the `__set_bit` is pretty easy. As we can see, it just contains one line of [inline assembler](https://en.wikipedia.org/wiki/Inline_assembler) code. In our case we are using the [bts](http://x86.renejeschke.de/html/file_module_x86_id_25.html) instruction which selects a bit which is specified with the first operand (`nr` in our case) from the bit array, stores the value of the selected bit in the [CF](https://en.wikipedia.org/wiki/FLAGS_register) flags register and set this bit. + +Note that we can see usage of the `nr`, but there is `addr` here. You already might guess that the secret is in `ADDR`. The `ADDR` is the macro which is defined in the same header code file and expands to the string which contains value of the given address and `+m` constraint: + +```C +#define ADDR BITOP_ADDR(addr) +#define BITOP_ADDR(x) "+m" (*(volatile long *) (x)) +``` + +Besides the `+m`, we can see other constraints in the `__set_bit` function. Let's look on they and try to understand what do they mean: + +* `+m` - represents memory operand where `+` tells that the given operand will be input and output operand; +* `I` - represents integer constant; +* `r` - represents register operand + +Besides these constraint, we also can see - the `memory` keyword which tells compiler that this code will change value in memory. That's all. Now let's look at the same function but at `atomic` variant. It looks more complex that its `non-atomic` variant: + +```C +static __always_inline void +set_bit(long nr, volatile unsigned long *addr) +{ + if (IS_IMMEDIATE(nr)) { + asm volatile(LOCK_PREFIX "orb %1,%0" + : CONST_MASK_ADDR(nr, addr) + : "iq" ((u8)CONST_MASK(nr)) + : "memory"); + } else { + asm volatile(LOCK_PREFIX "bts %1,%0" + : BITOP_ADDR(addr) : "Ir" (nr) : "memory"); + } +} +``` + +First of all note that this function takes the same set of parameters that `__set_bit`, but additionally marked with the `__always_inline` attribute. The `__always_inline` is macro which defined in the [include/linux/compiler-gcc.h](https://github.com/torvalds/linux/blob/master/include/linux/compiler-gcc.h) and just expands to the `always_inline` attribute: + +```C +#define __always_inline inline __attribute__((always_inline)) +``` + +which means that this function will be always inlined to reduce size of the Linux kernel image. Now let's try to understand implementation of the `set_bit` function. First of all we check a given number of bit at the beginning of the `set_bit` function. The `IS_IMMEDIATE` macro defined in the same [header](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) file and expands to the call of the builtin [gcc](https://en.wikipedia.org/wiki/GNU_Compiler_Collection) function: + +```C +#define IS_IMMEDIATE(nr) (__builtin_constant_p(nr)) +``` + +The `__builtin_constant_p` builtin function returns `1` if the given parameter is known to be constant at compile-time and returns `0` in other case. We no need to use slow `bts` instruction to set bit if the given number of bit is known in compile time constant. We can just apply [bitwise or](https://en.wikipedia.org/wiki/Bitwise_operation#OR) for byte from the give address which contains given bit and masked number of bits where high bit is `1` and other is zero. In other case if the given number of bit is not known constant at compile-time, we do the same as we did in the `__set_bit` function. The `CONST_MASK_ADDR` macro: + +```C +#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((void *)(addr) + ((nr)>>3)) +``` + +expands to the give address with offset to the byte which contains a given bit. For example we have address `0x1000` and the number of bit is `0x9`. So, as `0x9` is `one byte + one bit` our address with be `addr + 1`: + +```python +>>> hex(0x1000 + (0x9 >> 3)) +'0x1001' +``` + +The `CONST_MASK` macro represents our given number of bit as byte where high bit is `1` and other bits are `0`: + +```C +#define CONST_MASK(nr) (1 << ((nr) & 7)) +``` + +```python +>>> bin(1 << (0x9 & 7)) +'0b10' +``` + +In the end we just apply bitwise `or` for these values. So, for example if our address will be `0x4097` and we need to set `0x9` bit: + +```python +>>> bin(0x4097) +'0b100000010010111' +>>> bin((0x4097 >> 0x9) | (1 << (0x9 & 7))) +'0b100010' +``` + +the `ninth` bit will be set. + +Note that all of these operations are marked with `LOCK_PREFIX` which is expands to the [lock](http://x86.renejeschke.de/html/file_module_x86_id_159.html) instruction which guarantees atomicity of this operation. + +As we already know, besides the `set_bit` and `__set_bit` operations, the Linux kernel provides two inverse functions to clear bit in atomic and non-atomic context. They are `clear_bit` and `__clear_bit`. Both of these functions are defined in the same [header file](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) and takes the same set of arguments. But not only arguments are similar. Generally these functions are very similar on the `set_bit` and `__set_bit`. Let's look on the implementation of the non-atomic `__clear_bit` function: + +```C +static inline void __clear_bit(long nr, volatile unsigned long *addr) +{ + asm volatile("btr %1,%0" : ADDR : "Ir" (nr)); +} +``` + +Yes. As we see, it takes the same set of arguments and contains very similar block of inline assembler. It just uses the [btr](http://x86.renejeschke.de/html/file_module_x86_id_24.html) instruction instead of `bts`. As we can understand form the function's name, it clears a given bit by the given address. The `btr` instruction acts like `btr`. This instruction also selects a given bit which is specified in the first operand, stores its value in the `CF` flag register and clears this bit in the given bit array which is specifed with second operand. + +The atomic variant of the `__clear_bit` is `clear_bit`: + +```C +static __always_inline void +clear_bit(long nr, volatile unsigned long *addr) +{ + if (IS_IMMEDIATE(nr)) { + asm volatile(LOCK_PREFIX "andb %1,%0" + : CONST_MASK_ADDR(nr, addr) + : "iq" ((u8)~CONST_MASK(nr))); + } else { + asm volatile(LOCK_PREFIX "btr %1,%0" + : BITOP_ADDR(addr) + : "Ir" (nr)); + } +} +``` + +and as we can see it is very similar on `set_bit` and just contains two differences. The first difference it uses `btr` instruction to clear bit when the `set_bit` uses `bts` instruction to set bit. The second difference it uses negated mask and `and` instruction to clear bit in the given byte when the `set_bit` uses `or` instruction. + +That's all. Now we can set and clear bit in any bit array and and we can go to other operations on bitmasks. + +Most widely used operations on a bit arrays are set and clear bit in a bit array in the Linux kernel. But besides this operations it is useful to do additional operations on a bit array. Yet another widely used operation in the Linux kernel - is to know is a given bit set or not in a bit array. We can achieve this with the help of the `test_bit` macro. This macro is defined in the [arch/x86/include/asm/bitops.h](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) header file and expands to the call of the `constant_test_bit` or `variable_test_bit` depends on bit number: + +```C +#define test_bit(nr, addr) \ + (__builtin_constant_p((nr)) \ + ? constant_test_bit((nr), (addr)) \ + : variable_test_bit((nr), (addr))) +``` + +So, if the `nr` is known in compile time constant, the `test_bit` will be expanded to the call of the `constant_test_bit` function or `variable_test_bit` in other case. Now let's look at implementations of these functions. Let's start from the `variable_test_bit`: + +```C +static inline int variable_test_bit(long nr, volatile const unsigned long *addr) +{ + int oldbit; + + asm volatile("bt %2,%1\n\t" + "sbb %0,%0" + : "=r" (oldbit) + : "m" (*(unsigned long *)addr), "Ir" (nr)); + + return oldbit; +} +``` + +The `variable_test_bit` function takes similar set of arguments as `set_bit` and other function take. We also may see inline assembly code here which executes [bt](http://x86.renejeschke.de/html/file_module_x86_id_22.html) and [sbb](http://x86.renejeschke.de/html/file_module_x86_id_286.html) instruction. The `bt` or `bit test` instruction selects a given bit which is specified with first operand from the bit array which is specified with the second operand and stores its value in the [CF](https://en.wikipedia.org/wiki/FLAGS_register) bit of flags register. The second `sbb` instruction substracts first operand from second and subscrtact value of the `CF`. So, here write a value of a given bit number from a given bit array to the `CF` bit of flags register and execute `sbb` instruction which calculates: `00000000 - CF` and writes the result to the `oldbit`. + +The `constant_test_bit` function does the same as we saw in the `set_bit`: + +```C +static __always_inline int constant_test_bit(long nr, const volatile unsigned long *addr) +{ + return ((1UL << (nr & (BITS_PER_LONG-1))) & + (addr[nr >> _BITOPS_LONG_SHIFT])) != 0; +} +``` + +It generates a byte where high bit is `1` and other bits are `0` (as we saw in `CONST_MASK`) and applies bitwise [and](https://en.wikipedia.org/wiki/Bitwise_operation#AND) to the byte which contains a given bit number. + +The next widely used bit array related operation is to change bit in a bit array. The Linux kernel provides two helper for this: + +* `__change_bit`; +* `change_bit`. + +As you already can guess, these two variants are atomic and non-atomic as for example `set_bit` and `__set_bit`. For the start, let's look at the implementation of the `__change_bit` function: + +```C +static inline void __change_bit(long nr, volatile unsigned long *addr) +{ + asm volatile("btc %1,%0" : ADDR : "Ir" (nr)); +} +``` + +Pretty easy, is not it? The implementation of the `__change_bit` is the same as `__set_bit`, but instead of `bts` instruction, we are using [btc](http://x86.renejeschke.de/html/file_module_x86_id_23.html). This instruction selects a given bit from a given bit array, stores its value in the `CF` and changes its value by the applying of complement operation. So, a bit with value `1` will be `0` and vice versa: + +```python +>>> int(not 1) +0 +>>> int(not 0) +1 +``` + +The atomic version of the `__change_bit` is the `change_bit` function: + +```C +static inline void change_bit(long nr, volatile unsigned long *addr) +{ + if (IS_IMMEDIATE(nr)) { + asm volatile(LOCK_PREFIX "xorb %1,%0" + : CONST_MASK_ADDR(nr, addr) + : "iq" ((u8)CONST_MASK(nr))); + } else { + asm volatile(LOCK_PREFIX "btc %1,%0" + : BITOP_ADDR(addr) + : "Ir" (nr)); + } +} +``` + +It is similar on `set_bit` function, but also has two differences. The first difference is `xor` operation instead of `or` and the second is `bts` instead of `bts`. + +For this moment we know the most important architecture-specific operations with bit arrays. Time to look at generic bitmap API. + +Common bit operations +================================================================================ + +Besides the architecture-specific API from the [arch/x86/include/asm/bitops.h](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) header file, the Linux kernel provides common API for manipulation of bit arrays. As we know from the beginning of this part, we can find it in the [include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) header file and additionally in the * [lib/bitmap.c](https://github.com/torvalds/linux/blob/master/lib/bitmap.c) source code file. But before these source code files let's look into the [include/linux/bitops.h](https://github.com/torvalds/linux/blob/master/include/linux/bitops.h) header file which provides a set of useful macro. Let's look on some of they. + +First of all let's look at following four macros: + +* `for_each_set_bit` +* `for_each_set_bit_from` +* `for_each_clear_bit` +* `for_each_clear_bit_from` + +All of these macros provide iterator over certain set of bits in a bit array. The first macro iterates over bits which are set, the second does the same, but starts from a certain bits. The last two macros do the same, but iterates over clear bits. Let's look on implementation of the `for_each_set_bit` macro: + +```C +#define for_each_set_bit(bit, addr, size) \ + for ((bit) = find_first_bit((addr), (size)); \ + (bit) < (size); \ + (bit) = find_next_bit((addr), (size), (bit) + 1)) +``` + +As we may see it takes three arguments and expands to the loop from first set bit which is returned as result of the `find_first_bit` function and to the last bit number while it is less than given size. + +Besides these four macros, the [arch/x86/include/asm/bitops.h](https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/bitops.h) provides API for rotation of `64-bit` or `32-bit` values and etc. + +The next [header](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) file which provides API for manipulation with a bit arrays. For example it provdes two functions: + +* `bitmap_zero`; +* `bitmap_fill`. + +To clear a bit array and fill it with `1`. Let's look on the implementation of the `bitmap_zero` function: + +```C +static inline void bitmap_zero(unsigned long *dst, unsigned int nbits) +{ + if (small_const_nbits(nbits)) + *dst = 0UL; + else { + unsigned int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); + memset(dst, 0, len); + } +} +``` + +First of all we can see the check for `nbits`. The `small_const_nbits` is macro which defined in the same header [file](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) and looks: + +```C +#define small_const_nbits(nbits) \ + (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG) +``` + +As we may see it checks that `nbits` is known constant in compile time and `nbits` value does not overflow `BITS_PER_LONG` or `64`. If bits number does not overflow amount of bits in a `long` value we can just set to zero. In other case we need to calculate how many `long` values do we need to fill our bit array and fill it with [memset](http://man7.org/linux/man-pages/man3/memset.3.html). + +The implementation of the `bitmap_fill` function is similar on implementation of the `biramp_zero` function, except we fill a given bit array with `0xff` values or `0b11111111`: + +```C +static inline void bitmap_fill(unsigned long *dst, unsigned int nbits) +{ + unsigned int nlongs = BITS_TO_LONGS(nbits); + if (!small_const_nbits(nbits)) { + unsigned int len = (nlongs - 1) * sizeof(unsigned long); + memset(dst, 0xff, len); + } + dst[nlongs - 1] = BITMAP_LAST_WORD_MASK(nbits); +} +``` + +Besides the `bitmap_fill` and `bitmap_zero` functions, the [include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) header file provides `bitmap_copy` which is similar on the `bitmap_zero`, but just uses [memcpy](http://man7.org/linux/man-pages/man3/memcpy.3.html) instead of [memset](http://man7.org/linux/man-pages/man3/memset.3.html). Also it provides bitwise operations for bit array like `bitmap_and`, `bitmap_or`, `bitamp_xor` and etc. We will not consider implementation of these functions because it is easy to understand implementations of these functions if you understood all from this part. Anyway if you are interested how did these function implemented, you may open [include/linux/bitmap.h](https://github.com/torvalds/linux/blob/master/include/linux/bitmap.h) header file and start to research. + +That's all. + +Links +================================================================================ + +* [bitmap](https://en.wikipedia.org/wiki/Bit_array) +* [linked data structures](https://en.wikipedia.org/wiki/Linked_data_structure) +* [tree data structures](https://en.wikipedia.org/wiki/Tree_%28data_structure%29) +* [hot-plug](https://www.kernel.org/doc/Documentation/cpu-hotplug.txt) +* [cpumasks](https://0xax.gitbooks.io/linux-insides/content/Concepts/cpumask.html) +* [IRQs](https://en.wikipedia.org/wiki/Interrupt_request_%28PC_architecture%29) +* [API](https://en.wikipedia.org/wiki/Application_programming_interface) +* [atomic operations](https://en.wikipedia.org/wiki/Linearizability) +* [xchg instruction](http://x86.renejeschke.de/html/file_module_x86_id_328.html) +* [cmpxchg instruction](http://x86.renejeschke.de/html/file_module_x86_id_41.html) +* [lock instruction](http://x86.renejeschke.de/html/file_module_x86_id_159.html) +* [bts instruction](http://x86.renejeschke.de/html/file_module_x86_id_25.html) +* [btr instruction](http://x86.renejeschke.de/html/file_module_x86_id_24.html) +* [bt instruction](http://x86.renejeschke.de/html/file_module_x86_id_22.html) +* [sbb instruction](http://x86.renejeschke.de/html/file_module_x86_id_286.html) +* [btc instruction](http://x86.renejeschke.de/html/file_module_x86_id_23.html) +* [man memcpy](http://man7.org/linux/man-pages/man3/memcpy.3.html) +* [man memset](http://man7.org/linux/man-pages/man3/memset.3.html) +* [CF](https://en.wikipedia.org/wiki/FLAGS_register) +* [inline assembler](https://en.wikipedia.org/wiki/Inline_assembler) +* [gcc](https://en.wikipedia.org/wiki/GNU_Compiler_Collection) + + +------------------------------------------------------------------------------ + +via: https://github.com/0xAX/linux-insides/blob/master/DataStructures/bitmap.md + +作者:[0xAX][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://twitter.com/0xAX From b4cfdcb0bf910cdf7a6c640363bf8fad411d1c46 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 17 May 2016 13:30:29 +0800 Subject: [PATCH 511/582] =?UTF-8?q?=E5=B7=B2=E6=A0=A1=E5=AF=B9=20=E2=80=9D?= =?UTF-8?q?5=20memory=20debuggers=20for=20Linux=20coding=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ew--5 memory debuggers for Linux coding.md | 113 +++++++++--------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md b/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md index 2335222ac8..424d91bba4 100644 --- a/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md +++ b/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md @@ -1,38 +1,38 @@ 点评:Linux编程中五款内存调试器 ================================================================================ ![](http://images.techhive.com/images/article/2015/11/penguinadmin-2400px-100627186-primary.idge.jpg) -Credit: [Moini][1] +>Credit: [Moini][1] -作为一个程序员,我知道我总在犯错误——事实是,怎么可能会不犯错的!程序员也是人啊。有的错误能在编码过程中及时发现,而有些却得等到软件测试才显露出来。然而,还有一类错误并不能在这两个时期被排除,从而导致软件不能正常运行,甚至是提前中止。 +作为一个程序员,我知道我肯定会犯错误——怎么可能不犯错!程序员也是人啊。有的错误能在编码过程中及时发现,而有些却得等到软件测试了才能显露出来。然而,还有一类错误并不能在这两个阶段被解决,这就导致软件不能正常运行,甚至是提前终止。 -想到了吗?我说的就是内存相关的错误。手动调试这些错误不仅耗时,而且很难发现并纠正。值得一提的是,这种错误非常常见,特别是在用 C/C++ 这类允许[手动管理内存][2]的语言编写的软件里。 +如果你还没猜出是那种错误,我说的就是和内存相关的错误。手动调试这些错误不仅耗时,而且很难发现并纠正。值得一提的是,这种错误很常见,特别是在用 C/C++ 这类允许[手动管理内存][2]的语言编写的软件里。 -幸运的是,现行有一些编程工具能够帮你找到软件程序中这些内存相关的错误。在这些工具集中,我评定了五款Linux可用的,流行、免费并且开源的内存调试器: Dmalloc 、 Electric Fence 、 Memcheck 、 Memwatch 以及 Mtrace 。在日常编码中,我已经把这五个调试器用了个遍,所以这些点评是建立在我的实际体验之上的。 +幸运的是,现行有一些编程工具能够帮你在软件程序中咋猴岛这些和内存相关的错误。在这些工具集中,我评估了五款 Linux 下可用的,流行、免费并且开源的内存调试器: Dmalloc 、 Electric Fence 、 Memcheck 、 Memwatch 以及 Mtrace 。在日常编码中,我已经用过这五个调试器了,所以这些评估是建立在我的实际体验之上的。 ### [Dmalloc][3] ### **开发者**:Gray Watson -**点评版本**:5.5.2 +**评估版本**:5.5.2 -**支持的 Linux**:所有种类 +**支持的 Linux 版本**:所有种类 -**许可**:知识共享署名-相同方式共享许可证 3.0 +**许可**: CC 3.0 -Dmalloc 是 Gray Watson 开发的一款内存调试工具。它实现成库,封装了标准内存管理函数如 *malloc() , calloc() , free()* 等,使程序员得以检测出有问题的代码。 +Dmalloc 是 Gray Watson 开发的一款内存调试工具。它是作为库来实现的,封装了标准内存管理函数如 *malloc() , calloc() , free()* 等,使程序员得以检测出有问题的代码。 ![cw dmalloc output](http://images.techhive.com/images/article/2015/11/cw_dmalloc-output-100627040-large.idge.png) Dmalloc -如同工具的网页所列,这个调试器提供的特性包括内存泄漏跟踪、[重复释放(double free)][4]错误跟踪、以及[越界写入(fence-post write)][5]检测。其它特性包括文件/行号报告、普通统计记录。 +如同工具的网页所示,这个调试器提供的特性包括内存泄漏跟踪、[重复释放内存(double free)][4]错误跟踪、以及[越界写入(fence-post write)][5]检测。其它特性包括报告错误的文件/行号、通用的数据统计记录。 #### 更新内容 #### -5.5.2 版本是一个 [bug 修复发行版][6],同时修复了构建和安装的问题。 +5.5.2 版本是一个 [bug 修正发行版][6],修复了几个有关构建和安装的问题。 #### 有何优点 #### -Dmalloc 最大的优点就是高度可配置性。比如说,你可以配置以支持 C++ 程序和多线程应用。 Dmalloc 还提供一个有用的功能:运行时可配置,这表示在 Dmalloc 执行时,可以轻易地使能或者禁能它提供的特性。 +Dmalloc 最大的优点就是高度可配置性。比如说,你可以配置以支持 C++ 程序和多线程应用。 Dmalloc 还提供一个有用的功能:运行时可配置,这表示在 Dmalloc 执行时,可以轻易地使能或者禁能它提供的一些特性。 你还可以配合 [GNU Project Debugger (GDB)][7]来使用 Dmalloc ,只需要将 *dmalloc.gdb* 文件(位于 Dmalloc 源码包中的 contrib 子目录里)的内容添加到你的主目录中的 *.gdbinit* 文件里即可。 @@ -42,7 +42,7 @@ Dmalloc 最大的优点就是高度可配置性。比如说,你可以配置以 跟 Mtrace 一样, Dmalloc 需要程序员改动他们的源代码。比如说你可以(必须的)添加头文件 *dmalloc.h* ,工具就能汇报产生问题的调用的文件或行号。这个功能非常有用,因为它节省了调试的时间。 -除此之外,还需要在编译你的程序时,把 Dmalloc 库(编译源码包时产生的)链接进去。 +除此之外,还需要在编译你的程序时,把 Dmalloc 库(编译 Dmalloc 源码包时产生的)链接进去。 然而,还有点更麻烦的事,需要设置一个环境变量,命名为 *DMALLOC_OPTION* ,以供工具在运行时配置内存调试特性,以及输出文件的路径。可以手动为该环境变量分配一个值,不过初学者可能会觉得这个过程有点困难,因为该值的一部分用来表示要启用的 Dmalloc 特性——表示为各自的十六进制值的累加。[这里][9]有详细介绍。 @@ -56,19 +56,18 @@ Dmalloc 真正的优势在于它的可配置选项。而且高度可移植,曾 **开发者**:Bruce Perens -**点评版本**:2.2.3 +**评估版本**:2.2.3 -**支持的 Linux**:所有种类 +**支持的 Linux 版本**:所有种类 -**许可**:GNU 通用公共许可证 (第二版) +**许可**:GPL v2 -Electric Fence 是 Bruce Perens 开发的一款内存调试工具,它以库的形式实现,你的程序需要链接它。Electric Fence 能检测出[栈][11]内存溢出和访问已经释放的内存。 +Electric Fence 是 Bruce Perens 开发的一款内存调试工具,它以库的形式实现,你的程序需要链接它。Electric Fence 能检测出[堆][11]内存溢出和访问已经释放的内存。 ![cw electric fence output](http://images.techhive.com/images/article/2015/11/cw_electric-fence-output-100627041-large.idge.png) Electric Fence -顾名思义, Electric Fence 在每个申请的缓存边界建立了 virtual fence(虚拟围栏),任何非法内存访问都会导致[段错误][12]。这个调试工具同时支持 C 和 C++ 程序。 - +顾名思义, Electric Fence 在每个申请的缓存边界建立了虚拟围栏,这样以来任何非法的内存访问都会导致[段错误][12]。这个调试工具同时支持 C 和 C++ 程序。 #### 更新内容 #### @@ -76,19 +75,19 @@ Electric Fence #### 有何优点 #### -我喜欢 Electric Fence 首要的一点是它(不同于 Memwatch 、 Dmalloc 和 Mtrace ,)不需要你的源码做任何的改动,你只需要在编译的时候把它的库链接进你的程序即可。 +我喜欢 Electric Fence 的首要一点是它不同于 Memwatch 、 Dmalloc 和 Mtrace ,不需要堆你的源码做任何的改动,你只需要在编译的时候把它的库链接进你的程序即可。 -其次, Electric Fence 的实现保证了导致越界访问( a bounds violation )的第一个指令就是引起段错误的原因。这比在后面再发现问题要好多了。 +其次, Electric Fence 的实现保证了产生越界访问的第一个指令就会引起段错误。这比在后面再发现问题要好多了。 不管是否有检测出错误, Electric Fence 都会在输出产生版权信息。这一点非常有用,由此可以确定你所运行的程序已经启用了 Electric Fence 。 #### 注意事项 #### -另一方面,我对 Electric Fence 真正念念不忘的是它检测内存泄漏的能力。内存泄漏是 C/C++ 软件最常见也是最难隐秘的问题之一。不过, Electric Fence 不能检测出堆内存溢出,而且也不是线程安全的。 +另一方面,我对 Electric Fence 真正念念不忘的是它检测内存泄漏的能力。内存泄漏是 C/C++ 软件最常见也是最不容易发现的问题之一。不过, Electric Fence 不能检测出栈溢出,而且也不是线程安全的。 由于 Electric Fence 会在用户分配内存区的前后分配禁止访问的虚拟内存页,如果你过多的进行动态内存分配,将会导致你的程序消耗大量的额外内存。 -Electric Fence 还有一个局限是不能明确指出错误代码所在的行号。它所能做只是在监测到内存相关错误时产生段错误。想要定位行号,需要借助 [The Gnu Project Debugger ( GDB )][14]这样的调试工具来调试启用了 Electric Fence 的程序。 +Electric Fence 还有一个局限是不能明确指出错误代码所在的行号。它所能做只是在检测到内存相关错误时产生段错误。想要定位错误的行号,需要借助 [GDB][14]这样的调试工具来调试启用了 Electric Fence 的程序。 最后一点,尽管 Electric Fence 能检测出大部分的缓冲区溢出,有一个例外是,如果所申请的缓冲区大小不是系统字长的倍数,这时候溢出(即使只有几个字节)就不能被检测出来。 @@ -101,50 +100,50 @@ Electric Fence 还有一个局限是不能明确指出错误代码所在的行 **开发者**:[Valgrind 开发团队][17] -**点评版本**:3.10.1 +**评估版本**:3.10.1 -**支持的 Linux**:所有种类 +**支持的 Linux 发行版**:所有种类 -**许可**:通用公共许可证 +**许可**:GPL -[Valgrind][18] 是一个提供好几款调试和 Linux 程序性能分析工具的套件。虽然 Valgrind 能和编写语言各不相同(有 Java 、 Perl 、 Python 、 Assembly code 、 ortran 、 Ada等等)的程序配合工作,但是它所提供的工具主要针对用 C/C++ 所编写的程序。 +[Valgrind][18] 是一个提供好几款调试和分析 Linux 程序性能的工具套件。虽然 Valgrind 能和不同语言——Java 、 Perl 、 Python 、 Assembly code 、 ortran 、 Ada 灯——编写的程序一起工作,但是它主要还针对使用 C/C++ 所编写的程序。 -Memcheck ,一款内存错误检测器,是其中最受欢迎的工具。它能够检测出如内存泄漏、无效的内存访问、未定义变量的使用以及栈内存分配和释放相关的问题等诸多问题。 +Memcheck ,一款内存错误检测器,是其中最受欢迎的工具。它能够检测出如内存泄漏、无效的内存访问、未定义变量的使用以及堆内存分配和释放相关的问题等诸多问题。 #### 更新内容 #### -工具套件( 3.10.1 )的[发行版][19]是一个副版本,主要修复了 3.10.0 版本发现的 bug 。除此之外,从主版本向后移植(标音: backport )一些包,修复了缺失的 AArch64 ARMv8 指令和系统调用。 +[工具套件( 3.10.1 )][19]主要修复了 3.10.0 版本发现的 bug 。除此之外,从主版本向后移植一些包,修复了缺失的 AArch64 ARMv8 指令和系统调用。 -#### 有何优点 #### +#### 有何优点 #### -同其它所有 Valgrind 工具一样, Memcheck 也是命令行实用程序。它的操作非常简单:通常我们会使用诸如 prog arg1 arg2 格式的命令来运行程序,而 Memcheck 只要求你多加几个值即可,如 valgrind --leak-check=full prog arg1 arg2 。 +同其它所有 Valgrind 工具一样, Memcheck 也是命令行程序。它的操作非常简单:通常我们会使用诸如 `prog arg1 arg2` 格式的命令来运行程序,而 Memcheck 只要求你多加几个值即可,如 `valgrind --leak-check=full prog arg1 arg2` 。 ![cw memcheck output](http://images.techhive.com/images/article/2015/11/cw_memcheck-output-100627037-large.idge.png) Memcheck -(注意:因为 Memcheck 是 Valgrind 的默认工具所以无需提及 Memcheck。但是,需要在编译程序之初带上 -g 参数选项,这一步会添加调试信息,使得 Memcheck 的错误信息会包含正确的行号。) +(注意:因为 Memcheck 是 Valgrind 的默认工具所以在命令行执行命令时无需提及 Memcheck。但是,需要在编译程序之初带上 `-g` 参数选项,这一步会添加调试信息,使得 Memcheck 的错误信息会包含正确的行号。) 我真正倾心于 Memcheck 的是它提供了很多命令行选项(如上所述的 *--leak-check* 选项),如此不仅能控制工具运转还可以控制它的输出。 举个例子,可以开启 *--track-origins* 选项,以查看程序源码中未初始化的数据;可以开启 *--show-mismatched-frees* 选项让 Memcheck 匹配内存的分配和释放技术。对于 C 语言所写的代码, Memcheck 会确保只能使用 *free()* 函数来释放内存, *malloc()* 函数来申请内存。而对 C++ 所写的源码, Memcheck 会检查是否使用了 *delete* 或 *delete[]* 操作符来释放内存,以及 *new* 或者*new[]* 来申请内存。 -Memcheck 最好的特点,尤其是对于初学者来说,是它会给用户建议使用哪个命令行选项能让输出更加有意义。比如说,如果你不使用基本的 *--leak-check* 选项, Memcheck 会在输出时建议“使用 --leak-check=full 重新运行以查看更多泄漏内存细节”。如果程序有未初始化的变量, Memcheck 会产生信息“使用 --track-origins=yes 以查看未初始化变量的定位”。 +Memcheck 最好的特点,尤其是对于初学者来说,是它会给用户建议使用哪个命令行选项能让输出更加有意义。比如说,如果你不使用基本的 *--leak-check* 选项, Memcheck 会在输出时给出建议:“使用 --leak-check=full 重新运行以查看更多泄漏内存细节”。如果程序有未初始化的变量, Memcheck 会产生信息:“使用 --track-origins=yes 以查看未初始化变量的定位”。 -Memcheck 另外一个有用的特性是它可以[创建抑制文件( suppression files )][20],由此可以忽略特定不能修正的错误,这样 Memcheck 运行时就不会每次都报警了。值得一提的是, Memcheck 会去读取默认抑制文件来忽略系统库(比如 C 库)中的报错,这些错误在系统创建之前就已经存在了。可以选择创建一个新的抑制文件,或是编辑现有的文件(通常是*/usr/lib/valgrind/default.supp*)。 +Memcheck 另外一个有用的特性是它可以[创建抑制文件( suppression files )][20],由此可以略过特定的不能修正的错误,这样 Memcheck 运行时就不会每次都报警了。值得一提的是, Memcheck 会去读取默认抑制文件来忽略系统库(比如 C 库)中的报错,这些错误在系统创建之前就已经存在了。可以选择创建一个新的抑制文件,或是编辑现有的文件(通常是*/usr/lib/valgrind/default.supp*)。 Memcheck 还有高级功能,比如可以使用[定制内存分配器][22]来[检测内存错误][21]。除此之外, Memcheck 提供[监控命令][23],当用到 Valgrind 内置的 gdbserver ,以及[客户端请求][24]机制(不仅能把程序的行为告知 Memcheck ,还可以进行查询)时可以使用。 #### 注意事项 #### -毫无疑问, Memcheck 可以节省很多调试时间以及省去很多麻烦。但是它使用了很多内存,导致程序执行变慢([由文档可知][25],大概花上 20 至 30 倍时间)。 +毫无疑问, Memcheck 可以节省很多调试时间以及省去很多麻烦。但是它使用了很多内存,导致程序执行变慢([由文档可知][25],大概会花费 20 至 30 倍时间)。 -除此之外, Memcheck 还有其它局限。根据用户评论, Memcheck 明显不是[线程安全][26]的;它不能检测出 [静态缓冲区溢出][27];还有就是,一些 Linux 程序如 [GNU Emacs][28] 目前还不能使用 Memcheck 。 +除此之外, Memcheck 还有其它局限。根据用户评论, Memcheck 很明显不是[线程安全][26]的;它不能检测出 [静态缓冲区溢出][27];还有就是,一些 Linux 程序如 [GNU Emacs][28] 目前还不能配合 Memcheck 工作。 -如果有兴趣,可以在[这里][29]查看 Valgrind 详尽的局限性说明。 +如果有兴趣,可以在[这里][29]查看 Valgrind 局限性的详细说明。 #### 总结 #### -无论是对于初学者还是那些需要高级特性的人来说, Memcheck 都是一款便捷的内存调试工具。如果你仅需要基本调试和错误核查, Memcheck 会非常容易上手。而当你想要使用像抑制文件或者监控指令这样的特性,就需要花一些功夫学习了。 +无论是对于初学者还是那些需要高级特性的人来说, Memcheck 都是一款便捷的内存调试工具。如果你仅需要基本调试和错误检查, Memcheck 会非常容易上手。而当你想要使用像抑制文件或者监控指令这样的特性,就需要花一些功夫学习了。 虽然罗列了大量的局限性,但是 Valgrind(包括 Memcheck )在它的网站上声称全球有[成千上万程序员][30]使用了此工具。开发团队称收到来自超过 30 个国家的用户反馈,而这些用户的工程代码有的高达 2.5 千万行。 @@ -152,13 +151,13 @@ Memcheck 还有高级功能,比如可以使用[定制内存分配器][22]来[ **开发者**:Johan Lindh -**点评版本**:2.71 +**评估版本**:2.71 -**支持的 Linux**:所有种类 +**支持的 Linux 发行版**:所有种类 -**许可**:GNU通用公共许可证 +**许可**:GNU GPL -Memwatch 是由 Johan Lindh 开发的内存调试工具,虽然它主要扮演内存泄漏检测器的角色,但是(根据网页介绍)它也具有检测其它如[重复释放跟踪和内存错误释放][32]、缓冲区溢出和下溢、[野指针][33]写入等等内存相关问题的能力。 +Memwatch 是由 Johan Lindh 开发的内存调试工具,虽然它扮演的主要角色是内存泄漏检测器,但是(根据网页介绍)它也具有检测其它如[内存重复释放和错误释放][32]、缓冲区溢出和下溢、[野指针][33]写入等等内存相关问题的能力。 Memwatch 支持用 C 语言所编写的程序。也可以在 C++ 程序中使用它,但是这种做法并不提倡(由 Memwatch 源码包随附的 Q&A 文件中可知)。 @@ -173,7 +172,7 @@ Memwatch 支持用 C 语言所编写的程序。也可以在 C++ 程序中使用 ![cw memwatch output](http://images.techhive.com/images/article/2015/11/cw_memwatch_output-100627038-large.idge.png) Memwatch -不同于 Mtrace , Memwatch 的输出产生的日志文件(通常是 *memwatch.log* )是人类可阅读格式。而且, Memwatch 每次运行时总会拼接内存调试输出到文件末尾。如此便可在需要之时,轻松查看之前的输出信息。 +不同于 Mtrace , Memwatch 产生的日志文件(通常是 *memwatch.log* )是人类可阅读的格式。而且, Memwatch 每次运行时总会把内存调试结果拼接到输出文件的末尾。如此便可在需要之时轻松查看之前的输出信息。 同样值得一提的是当你执行了启用 Memwatch 的程序, Memwatch 会在[标准输出][34]中产生一个单行输出,告知发现了错误,然后你可以在日志文件中查看输出细节。如果没有产生错误信息,就可以确保日志文件不会写入任何错误,多次运行的话确实能节省时间。 @@ -183,7 +182,7 @@ Memwatch 跟 Mtrace 和 Dmalloc 一样, Memwatch 也需要你往你的源文件里增加代码:你需要把 *memwatch.h* 这个头文件包含进你的代码。而且,编译程序的时候,你需要连同 *memwatch.c* 一块编译;或者你可以把已经编译好的目标模块包含起来,然后在命令行定义 *MEMWATCH* 和 *MW_STDIO* 变量。不用说,想要在输出中定位行号, -g 编译器选项也少不了。 -此外, Memwatch 缺少一些特性。比如 Memwatch 不能检测出往一块已经被释放的内存写入操作,或是在分配的内存块之外的读取操作。而且, Memwatch 也不是线程安全的。还有一点,正如我在开始时指出,在 C++ 程序上运行 Memwatch 的结果是不能预料的。 +此外, Memwatch 缺少一些特性。比如 Memwatch 不能检测出对一块已经被释放的内存进行写入操作,或是在分配的内存块之外的进行读取操作。而且, Memwatch 也不是线程安全的。还有一点,正如我在开始时指出,在 C++ 程序上运行 Memwatch 的结果是不能预料的。 #### 总结 #### @@ -191,20 +190,20 @@ Memcheck 可以检测很多内存相关的问题,在处理 C 程序时是非 ### [Mtrace][35] ### -**开发者**: Roland McGrath and Ulrich Drepper +**开发者**: Roland McGrath 和 Ulrich Drepper -**点评版本**: 2.21 +**评估版本**: 2.21 -**支持的 Linux**:所有种类 +**支持的 Linux 发行版**:所有种类 -**许可**:GNU 通用公共许可证 +**许可**:GNU GPL -Mtrace 是 [GNU C 库][36]中的一款内存调试工具,同时支持 Linux 上的 C 和 C++ 程序,检测由 *malloc()* 和 *free()* 函数的不对等调用所引起的内存泄漏问题。 +Mtrace 是 [GNU C 库][36]中的一款内存调试工具,同时支持 Linux 上的 C 和 C++ 程序,可以检测由函数 *malloc()* 和 *free()* 不匹配的调用所引起的内存泄漏问题。 ![cw mtrace output](http://images.techhive.com/images/article/2015/11/cw_mtrace-output-100627039-large.idge.png) Mtrace -Mtrace 实现为对 *mtrace()* 函数的调用,跟踪程序中所有 malloc/free 调用,并在用户指定的文件中记录相关信息。文件以一种机器可读的格式记录数据,所以有一个 Perl 脚本(同样命名为 mtrace )用来把文件转换并展示为人类可读格式。 +Mtrace 的实现实际上是 *mtrace()* 函数,它可以跟踪程序中所有 malloc/free 调用,并在用户指定的文件中记录相关信息。文件以一种机器可读的格式记录数据,所以有一个 Perl 脚本——同样命名为 mtrace ——用来把文件转换并为人类可读格式。 #### 更新内容 #### @@ -212,21 +211,21 @@ Mtrace 实现为对 *mtrace()* 函数的调用,跟踪程序中所有 malloc/fr #### 有何优点 #### -Mtrace 最优秀的特点是非常简单易学。你只需要了解在你的源码中如何以及何处添加mtrace()及其对立的muntrace()函数,还有如何使用Mtrace的Perl脚本。后者非常简单,只需要运行指令 *mtrace *(例子见开头截图最后一条指令)。 +Mtrace 最好的地方是它非常简单易学。你只需要了解在你的源码中如何以及何处添加 mtrace() 及对应的 muntrace() 函数,还有如何使用 Mtrace 的 Perl 脚本。后者非常简单,只需要运行指令 *mtrace *(例子见开头截图最后一条指令)。 -Mtrace 另外一个优点是它的可收缩性,体现在,不仅可以使用它来调试完整的程序,还可以使用它来检测程序中独立模块的内存泄漏。只需在每个模块里调用 *mtrace()* 和 *muntrace()* 即可。 +Mtrace 另外一个优点是它的可收缩性,这体现在不仅可以使用它来调试完整的程序,还可以使用它来检测程序中独立模块的内存泄漏。只需在每个模块里调用 *mtrace()* 和 *muntrace()* 即可。 -最后一点,因为 Mtrace 会在 *mtace()*(在源码中添加的函数)执行时被触发,因此可以很灵活地[使用信号][39]动态地(在程序执行周期内)使能 Mtrace 。 +最后一点,因为 Mtrace 会在 *mtrace()*——在源码中添加的函数——执行时被触发,因此可以很灵活地[使用信号][39]动态地(在程序执行时)使能 Mtrace 。 #### 注意事项 #### -因为 *mtrace()* 和 *mauntrace()* 函数(声明在 *mcheck.h* 文件中,所以必须在源码中包含此头文件)的调用是 Mtrace 运行( *mauntrace()* 函数并非[总是必要][40])的根本,因此 Mtrace 要求程序员至少改动源码一次。 +因为 *mtrace()* 和 *mauntrace()* 函数 —— 声明在 *mcheck.h* 文件中,所以必须在源码中包含此头文件 —— 的调用是 Mtrace 工作的基础运行( *mauntrace()* 函数并非[总是必要][40]),因此 Mtrace 要求程序员至少改动源码一次。 -需要注意的是,在编译程序的时候带上 -g 选项( [GCC][41] 和 [G++][42] 编译器均有提供),才能使调试工具在输出展示正确的行号。除此之外,有些程序(取决于源码体积有多大)可能会花很长时间进行编译。最后,带 -g 选项编译会增加了可执行文件的内存(因为提供了额外的调试信息),因此记得程序需要在测试结束后,不带 -g 选项重新进行编译。 +需要注意的是,在编译程序的时候带上 -g 选项( [GCC][41] 和 [G++][42] 编译器均有提供),才能使调试工具在输出结果时展示正确的行号。除此之外,有些程序(取决于源码体积有多大)可能会花很长时间进行编译。最后,带 -g 选项编译会增加了可执行文件的大小(因为提供了额外的调试信息),因此记得程序需要在测试结束后,不带 -g 选项重新进行编译。 -使用 Mtrace ,你需要掌握 Linux 环境变量的基本知识,因为在程序执行之前,需要把用户指定的文件( *mtrace()* 函数将会记录全部信息到其中)路径设置为环境变量 *MALLOC_TRACE* 的值。 +使用 Mtrace ,你需要掌握 Linux 环境变量的基本知识,因为在程序执行之前,需要把用户把环境变量 *MALLOC_TRACE* 的值设为指定的文件( *mtrace()* 函数将会记录全部信息到其中)路径。 -Mtrace 在检测内存泄漏和尝试释放未经过分配的内存方面存在局限。它不能检测其它内存相关问题如非法内存访问、使用未初始化内存。而且,[有人抱怨][43] Mtrace 不是[线程安全][44]的。 +Mtrace 在检测内存泄漏和试图释放未经过分配的内存方面存在局限。它不能检测其它内存相关问题如非法内存访问、使用未初始化内存。而且,[有人抱怨][43] Mtrace 不是[线程安全][44]的。 ### 总结 ### @@ -248,7 +247,7 @@ via: http://www.computerworld.com/article/3003957/linux/review-5-memory-debugger 作者:[Himanshu Arora][a] 译者:[soooogreen](https://github.com/soooogreen) -校对:[PurlingNayuki](https://github.com/PurlingNayuki) +校对:[PurlingNayuki](https://github.com/PurlingNayuki),[ezio](https://github.com/oska874) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From a852300d1755bcbb6dd8a6de65cad62d3e36d683 Mon Sep 17 00:00:00 2001 From: martin qi Date: Tue, 17 May 2016 22:51:09 +0800 Subject: [PATCH 512/582] Update and rename sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md to translated/talk/my-open-source-story/20160429 Why and how I became a software engineer.md --- ...hy and how I became a software engineer.md | 103 ------------------ ...hy and how I became a software engineer.md | 101 +++++++++++++++++ 2 files changed, 101 insertions(+), 103 deletions(-) delete mode 100644 sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md create mode 100644 translated/talk/my-open-source-story/20160429 Why and how I became a software engineer.md diff --git a/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md b/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md deleted file mode 100644 index 0fb8b3d549..0000000000 --- a/sources/talk/my-open-source-story/20160429 Why and how I became a software engineer.md +++ /dev/null @@ -1,103 +0,0 @@ -translating by martin2011qi - -Why and how I became a software engineer -========================================== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) - -The year was 1989. The city was Kampala, Uganda. - -In their infinite wisdom, my parents decided that instead of all the troublemaking I was getting into at home, they would send me off to my uncle's office to learn how to use a computer. A few days later, I found myself on the 21st floor in a cramped room with six or seven other teens and a brand new computer on a desk perpendicular to the teacher's desk. It was made abundantly clear that we were not skilled enough to touch it. After three frustrating weeks of writing and perfecting DOS commands, the magic moment happened. It was my turn to type **copy doc.txt d:**. - -The alien scratching noises that etched a simple text file onto the five-inch floppy sounded like beautiful music. For a while, that floppy disk was my most prized possession. I copied everything I could onto it. However, in 1989, Ugandans tended to take life pretty seriously, and messing around with computers, copying files, and formatting disks did not count as serious. I had to focus on my education, which led me away from computer science and into architectural engineering. - -Like any young person of my generation, a multitude of job titles and skills acquisition filled the years in between. I taught kindergarten, taught adults how to use software, worked in a clothing store, and served as a paid usher in a church. While I earned my degree at the University of Kansas, I worked as a tech assistant to the technical administrator, which is really just a fancy title for someone who messes around with the student database. - -By the time I graduated in 2007, technology had become inescapable. Every aspect of architectural engineering was deeply intertwined with computer science, so we all inadvertently learned simple programming skills. For me, that part was always more fascinating. But because I had to be a serious engineer, I developed a secret hobby: writing science fiction. - -In my stories, I lived vicariously through the lives of my heroines. They were scientists with amazing programming skills who were always getting embroiled in adventures and fighting tech scallywags with technology they invented, sometimes inventing them on the spot. Sometimes the new tech I came up with was based on real-world inventions. Other times it was the stuff I read about or saw in the science fiction I consumed. This meant that I had to understand how the tech worked and my research led me to some interesting subreddits and e-zines. - -### Open source: The ultimate goldmine - -Throughout my experiences, the fascinating weeks I'd spent writing out DOS commands remained a prominent influence, bleeding into little side projects and occupying valuable study time. As soon as Geocities became available to all Yahoo! Users, I created a website where I published blurry pictures that I'd taken on a tiny digital camera. I created websites for free, helped friends and family fix issues they had with their computers, and created a library database for a church. - -This meant that I was always researching and trying to find more information about how things could be made better. The Internet gods blessed me and open source fell into my lap. Suddenly, 30-day trials and restrictive licenses became a ghost of computing past. I could continue to create using GIMP, Inkscape, and OpenOffice. - -### Time to get serious - -I was fortunate to have a business partner who saw the magic in my stories. She too is a dreamer and visionary who imagines a better connected world that functions efficiently and conveniently. Together, we came up with several solutions to pain points we experienced in the journey to success, but implementation had been a problem. We both lacked the skills to make our products come to life, something that was made evident every time we approached investors with our ideas. - -We needed to learn to program. So, at the end of the summer in 2015, we embarked on a journey that would lead us right to the front steps of Holberton School, a community-driven, project-based school in San Francisco. - -My business partner came to me one morning and started a conversation the way she does when she has a new crazy idea that I'm about to get sucked into. - -**Zee**: Gloria, I'm going to tell you something and I want you to listen first before you say no. - -**Me**: No. - -**Zee**: We're going to be applying to go to a school for full-stack engineers. - -**Me**: What? - -**Zee**: Here, look! We're going to learn how to program by applying to this school. - -**Me**: I don't understand. We're doing online courses in Python and... - -**Zee**: This is different. Trust me. - -**Me**: What about the... - -**Zee**: That's not trusting me. - -**Me**: Fine. Show me. - -### Removing the bias - -What I read sounded similar to something we had seen online. It was too good to be true, but we decided to give it a try, jump in with both feet, and see what would come out of it. - -To become students, we had to go through a four-step selection process based solely on talent and motivation, not on the basis of educational degree or programming experience. The selection process is the beginning of the curriculum, so we started learning and collaborating through it. - -It has been my experience—and that of my business partner—that the process of applying for anything was an utter bore compared to the application process Holberton School created. It was like a game. If you completed a challenge, you got to go to the next level, where another fascinating challenge awaited. We created Twitter accounts, blogged on Medium, learned HTML and CSS in order to create a website, and created a vibrant community online even before we knew who was going to get to go. - -The most striking thing about the online community was how varied our experience with computers was, and how our background and gender did not factor into the choices that were being made by the founders (who we secretly called "The Trinity"). We just enjoyed being together and talking to each other. We were all smart people on a journey to increasing our nerd cred by learning how to code. - -For much of the application process, our identities were not very evident. For example, my business partner's name does not indicate her gender or race. It was during the final step, a video chat, that The Trinity even knew she was a woman of color. Thus far, only her enthusiasm and talent had propelled her through the levels. The color of her skin and her gender did not hinder nor help her. How cool is that? - -The night we got our acceptance letters, we knew our lives were about to change in ways we had only dreamt of. On the 22nd of January 2016, we walked into 98 Battery Street to meet our fellow [Hippokampoiers][2] for the first time. It was evident then, as it had been before, that the Trinity had started something amazing. They had assembled a truly diverse collection of passionate and enthusiastic people who had dedicated themselves to become full-stack engineers. - -The school is an experience like no other. Every day is an intense foray into some facet of programming. We're handed a project and, with a little guidance, we use every resource available to us to find the solution. The premise that [Holberton School][1] is built upon is that information is available to us in more places than we've ever had before. MOOCs, tutorials, the availability of open source software and projects, and online communities are all bursting at the seams with knowledge that shakes up some of the projects we have to complete. And with the support of the invaluable team of mentors to guide us to solutions, the school becomes more than just a school; we've become a community of learners. I would highly recommend this school for anyone who is interested in software engineering and is also interested in the learning style. The next class is in October 2016 and is accepting new applications. It's both terrifying and exhilarating, but so worth it. - -### Open source matters - -My earliest experience with an open source operating system was [Fedora][3], a [Red Hat][4]-sponsored project. During a panicked conversation with an IRC member, she recommended this free OS. I had never installed my own OS before, but it sparked my interest in open source and my dependence on open source software for my computing needs. We are advocates for open source contribution, creation, and use. Our projects are on GitHub where anyone can use or contribute to them. We also have the opportunity to access existing open source projects to use or contribute to in our own way. Many of the tools that we use at school are open source, such as Fedora, [Vagrant][5], [VirtualBox][6], [GCC][7], and [Discourse][8], to name a few. - -As I continue on my journey to becoming a software engineer, I still dream of a time when I will be able to contribute to the open source community and be able to share my knowledge with others. - -### Diversity Matters - -Standing in the room and talking to 29 other bright-eyed learners was intoxicating. 40% of the people there were women and 44% were people of color. These numbers become very important when you are a woman of color in a field that has been famously known for its lack of diversity. It was an oasis in the tech Mecca of the world. I knew I had arrived. - -The notion of becoming a full-stack engineer is daunting, and you may even struggle to know what that means. It is a challenging road to travel with immeasurable rewards to reap. The future is run by technology, and you are an important part of that bright future. While the media continues to trip over handling the issue of diversity in tech companies, know that whoever you are, whatever your background is, whatever your reasons might be for becoming a full-stack engineer, you can find a place to thrive. - -But perhaps most importantly, a strong reminder of the role of women in the history of computing can help more women return to the tech world, and they can be fully engaged without hesitation due to their gender or their capabilities as women. Their talents will help shape the future not just of tech, but of the world. - - ------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/4/my-open-source-story-gloria-bwandungi - -作者:[Gloria Bwandungi][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://opensource.com/users/nappybrain -[1]: https://www.holbertonschool.com/ -[2]: https://twitter.com/hippokampoiers -[3]: https://en.wikipedia.org/wiki/Fedora_(operating_system) -[4]: https://www.redhat.com/ -[5]: https://www.vagrantup.com/ -[6]: https://www.virtualbox.org/ -[7]: https://gcc.gnu.org/ -[8]: https://www.discourse.org/ diff --git a/translated/talk/my-open-source-story/20160429 Why and how I became a software engineer.md b/translated/talk/my-open-source-story/20160429 Why and how I became a software engineer.md new file mode 100644 index 0000000000..2e024c33bf --- /dev/null +++ b/translated/talk/my-open-source-story/20160429 Why and how I became a software engineer.md @@ -0,0 +1,101 @@ +我成为一名软件工程师的原因和经历 +========================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/myopensourcestory.png?itok=6TXlAkFi) + +1989 年乌干达首都,坎帕拉。 + +赞美我的父母,他们机智的把我送到叔叔的办公室,去学着用电脑,而非将我留在家里添麻烦。几日后,我和另外六、七个小孩,还有一台放置在与讲台相垂直课桌子上的崭新电脑,一起置身于 21 层楼高的狭小房间中。很明显我们还不够格去碰那家伙。在长达三周无趣的 DOS 命令学习后,终于迎来了这美妙的时光。终于轮到我来输 **copy doc.txt d:** 了。 + +那奇怪的声音其实是将一个简单文件写入五英寸软盘的声音,但听起来却像音乐般美妙。那段时间,这块软盘简直成为了我的至宝。我把所有我可以拷贝的东西都放在上面了。然而,1989 年的乌干达,人们的生活十分正经,相较而言捣鼓电脑,拷贝文件还有格式化磁盘就称不上正经。我不得不专注于自己的学业,这让我离开了计算机科学走入了建筑工程学。 + +在这些年里,我和同龄人一样,干过很多份工作也学到了许多技能。我教过幼儿园的小朋友,也教过大人如何使用软件,在服装店工作过,还在教堂中担任过付费招待。在我获取堪萨斯大学的学位时,我正在技术高管的手下做技术助理,其实也就听上去比较洋气,也就是搞搞学生数据库而已。 + +当我 2007 年毕业时,这些技术已经变得不可或缺。建筑工程学的方方面面都与计算机科学深深的交织在一起,所以我们也都在不经意间也都学了些简单的编程知识。我对于这方面一直很着迷。但由于我不得不成为一位正经的工程师,所以我发展了一项私人爱好:写科幻小说。 + +在我的故事中,我以我笔下的女英雄的形式存在。她们都是编程能力出众的科学家,总是在冒险的途中用自己的技术发明战胜那些渣渣们,有时发明要在战斗中进行。我想出的这些“新技术”,一般基于真实世界中的发明。也有些是从买来的科幻小说中读到的。这就意味着我需要了解这些技术的原理,而且我的研究使我有意无意的关注了许多有趣的 subreddit 和电子杂志 + +### 开源:巨大的宝库 + +在我的经历中,那几周花在 DOS 命令上的时间仍然记忆犹新,在一些偏门的项目上耗费心血,并占据了宝贵的学习时间。Geocities 一向所有 Yahoo! 用户开放,我就创建了一个网站,用于发布一些由我用小型数码相机拍摄的个人图片。这个网站是我随性而为的,用来帮助家人和朋友,解决一些他们所遇到的电脑问题。同时也为教堂搭建了一个图书馆数据库。 + +这意味着,我需要一直研究并尝试获取更多的信息,使它们变得更棒。上帝保佑,让互联网和开源砸在了我的面前。然后,30 天试用和 license 限制对我而言就变成了过去式。我可以完全不受这些限制,持续的使用 GIMP、Inkscape 和 OpenOffice。 + +### 是时候正经了 + +我很幸运,有商业伙伴看出了我故事中的奇妙。她也是个想象力丰富的人,对更高效、更便捷的互联这个世界,充满了各种美好的想法。我们根据我们以往成功道路中经历的痛点制定了解决方案,但执行却成了一个问题。我们都缺乏那种将产品带入生活的能力,每当我们试图将想法带到投资人面前时,都表现的尤为突出。 + +我们需要学习编程。所以在 2015 年的夏末,我们踏上了征途,来到了 Holberton 学校的阶前。那是一所座落于旧金山由社区推进,基于项目教学的学校。 + +我的商业伙伴一天早上找到我,并开始了一段充满她方式的对话,每当她有疯狂想法想要拉我入伙时。 + +**Zee**: Gloria,我想和你说点事,在拒绝前能先听我说完吗? + +**Me**: 不行。 + +**Zee**: 我们想要申请一所学校的全栈工程师。 + +**Me**: 什么? + +**Zee**: 就是这,看!就是这所学校,我们要申请这所学校学习编程。 + +**Me**: 我不明白。我们不是正在网上学 Python 和… + +**Zee**: 这不一样。相信我。 + +**Me**: 那… + +**Zee**: 还不相信吗? + +**Me**: 好吧…我看看。 + +### 抛开偏见 + +我看到的和我们在网上听说的几乎差不多。这简直太棒了,以至于让人觉得不太真实,但我们还是决定尝试一下,双脚起跳,看看结果如何。 + +要成为学生,我们需要经历四个步骤,仅仅是针对才能和态度,无关学历和编程经历的筛选。筛选便是课程的开始,通过它我们开始学习与合作。 + +根据我和我合作伙伴的经验,相比 Holberton 学校的申请流程,其他的申请流程实在是太无聊了。就像场游戏。如果你完成了一项挑战,你就能通往下一关,在那里有别的有趣的挑战正等着你。我们创建了 Twitter 账号,在 Medium 上写博客,为了创建网站而学习 HTML 和 CSS, 打造了一个充满活力的社区,虽然在此之前我们并不知晓有谁会来。 + +在线社区最吸引人的就是我们使用电脑的经验是多种多样的,而我们的背景和性别并非创始人(我们私下里称他为“The Trinity(三位一体)”)做出选择的因素。大家只是喜欢聚在一块交流。我们都是通过学习编程来提升自己计算机技术的聪明人。 + +相较于其他的的申请流程,我们不需要泄露很多的身份信息。就像我的商业伙伴,她的名字里看不出她的性别和种族。直到最后一个步骤,在视频聊天的时候, The Trinity 才知道她是一位有色人种女性。迄今为止,促使她达到这个程度的只是她的热情和才华。肤色和性别,并没有妨碍或者帮助到她。还有比这更酷的吗? + +那个我们获得录取通知书的晚上,我们知道我们的命运已经改变,我们获得了原先梦寐以求的生活。2016 年 1 月 22 日,我们来到北至巴特瑞大街 98 号,去见我们的小伙伴 [Hippokampoiers][2],这是我们的初次见面。很明显,在见面之前,“The Trinity”就已经开始做一些令人激动的事了。他们已经聚集了一批形形色色的人,他们都专注于成为全栈工程师,并为之乐此不疲。 + +这所大学有种与众不同的体验。感觉每天都是向编程的一次竭力的冲锋。我们着手的工程,并不会有很多指导,我们需要使用一切我们可以使用的资源找出解决方案。[Holberton 学校][1] 的办学宗旨便是向学员提供,相较于我们已知而言,更为多样的信息渠道。MOOCs(大型开放式课程)、教程、可用的开源软件和项目,以及线上社区层出不穷,将我们完成项目所需要的知识全都衔接了起来。加之宝贵的导师团队来指导我们制定解决方案,这所学校变得并不仅仅是一所学校;我们已经成为了求学者的社区。任何对软件工程感兴趣并对这种学习方法感兴趣的人,我都十分推荐这所学校。下次开课在 2016 年 10 月,并且会接受新的申请。虽然会让人有些悲喜交加,但是那真的很值得。 + +### 开源问题 + +我最早使用的开源系统是 [Fedora][3],一个 [Red Hat][4] 赞助的项目。在与 IRC 中一名成员一番惊慌失措的交流后,她推荐了这款免费的系统。 虽然在此之前,我还未独自安装过操作系统,但是这激起了我对开源的兴趣和日常使用计算机时对开源软件的依赖性。我们提倡为开源贡献代码,创造并使用开源的项目。我们的项目就在 Github 上,任何人都可以使用或是向它贡献出自己的力量。我们也会使用或以自己的方式为一些既存的开源项目做出贡献。在学校里,我们使用的大部分工具是开源的,例如 Fedora、[Vagrant][5]、[VirtualBox][6]、[GCC][7] 和 [Discourse][8],仅举几例。 + +重回软件工程师之路以后,我始终憧憬着有这样一个时刻——能为开源社区做出一份贡献,能与他人分享我所掌握的知识。 + +### Diversity Matters + +站在教室里,在着 29 双明亮的眼睛关注下交流心得,真是令人陶醉。学员中有 40% 是女性,有 44% 的有色人种。当你是一位有色人种且为女性,并身处于这个以缺乏多样而著名的领域时,这些数字就变得非常重要了。那是高科技圣地麦加上的绿洲。我知道我做到了。 + +想要成为一个全栈的工程师是十分困难的,你甚至很难了解这意味着什么。这是一条充满挑战的路途,道路四周布满了对收获的未知。科技推动着未来飞速发展,而你也是美好未来很重要的一部分。虽然媒体在持续的关注解决科技公司的多样化的问题,但是如果能认清自己,了解自己,知道自己为什么想成为一名全栈工程师,这样你便能觅得一处生根发芽。 + +不过可能最重要的是,提醒人们女性在计算机的发展史上扮演着多么重要的角色,以帮助更多的女性回归到科技界,并使她们充满期待,而非对自己的性别与能力感到犹豫。她们的才能将会描绘出不仅仅是科技的未来,而是整个世界的未来。 + + +------------------------------------------------------------------------------ + +via: https://opensource.com/life/16/4/my-open-source-story-gloria-bwandungi + +作者:[Gloria Bwandungi][a] +译者:[martin2011qi](https://github.com/martin2011qi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/nappybrain +[1]: https://www.holbertonschool.com/ +[2]: https://twitter.com/hippokampoiers +[3]: https://en.wikipedia.org/wiki/Fedora_(operating_system) +[4]: https://www.redhat.com/ +[5]: https://www.vagrantup.com/ +[6]: https://www.virtualbox.org/ +[7]: https://gcc.gnu.org/ +[8]: https://www.discourse.org/ From 401da5a979504f8e68ddfa64375430352d42f98f Mon Sep 17 00:00:00 2001 From: Purling Nayuki Date: Tue, 17 May 2016 23:11:31 +0800 Subject: [PATCH 513/582] Proofread Part 2 - LXD 2.0--Installing and configuring LXD --- ...LXD 2.0--Installing and configuring LXD.md | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md b/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md index 3464cd07eb..fe386f3229 100644 --- a/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md +++ b/translated/tech/LXD/Part 2 - LXD 2.0--Installing and configuring LXD.md @@ -1,4 +1,4 @@ -Part 2 - LXD 2.0: 安装与配置 +Part 2 - LXD 2.0: 安装与配置 ================================================= 这是 LXD 2.0 [系列介绍文章][2]的第二篇。 @@ -7,19 +7,19 @@ Part 2 - LXD 2.0: 安装与配置 ### 安装篇 -获得 LXD 有很多种办法。我们推荐你是用配合最新版的 LXC 和 Linux 内核使用 LXD,这样就可以享受到它的全部特性,但是注意,我们现在也在慢慢的降低对旧版本 Linux 发布版的支持。 +有很多种办法可以获得 LXD。我们推荐你配合最新版的 LXC 和 Linux 内核使用 LXD,这样就可以享受到它的全部特性。需要注意的是,我们现在也在慢慢的降低对旧版本 Linux 发布版的支持。 #### Ubuntu 标准版 所有新发布的 LXD 都会在发布几分钟后上传到 Ubuntu 开发版的安装源里。这个安装包然后就会当作种子给全部其他的安装包源,供 Ubuntu 用户使用。 -如果使用 Ubuntu 16.04 则可以直接安装: +如果使用 Ubuntu 16.04,可以直接安装: ``` sudo apt install lxd ``` -如果运行的是 Ubuntu 14.04,可以这样安装: +如果运行的是 Ubuntu 14.04,则可以这样安装: ``` sudo apt -t trusty-backports install lxd @@ -27,15 +27,15 @@ sudo apt -t trusty-backports install lxd #### Ubuntu Core -使用Ubuntu Core 稳定版的用户可以使用下面的命令安装 LXD: +使用 Ubuntu Core 稳定版的用户可以使用下面的命令安装 LXD: ``` sudo snappy install lxd.stgraber ``` -#### ubuntu 官方 PPA +#### Ubuntu 官方 PPA -是哟个其他 Ubuntu 发布版 —— 比如 Ubuntu 15.10 —— 的用户可以添加下面的 PPA (Personal Package Archive) 来安装: +使用其他 Ubuntu 发布版 —— 比如 Ubuntu 15.10 —— 的用户可以添加下面的 PPA(Personal Package Archive)来安装: ``` sudo apt-add-repository ppa:ubuntu-lxc/stable @@ -46,23 +46,23 @@ sudo apt install lxd #### Gentoo -Gentoo 已经有了最新的 LXD 安装包,你可以直接安装: +Gentoo 已经有了最新的 LXD 包,你可以直接安装: ``` sudo emerge --ask lxd ``` -#### 源代码 +#### 使用源代码安装 -如果你曾经编译过 Go 工程,那么从源代码编译 LXD 并不是十分困难。然而要住你的是你需要 LXC 的开发头文件。为了运行 LXD , 你的 发布版铜须也需要使用比较新的内核(最起码是 3.13),比较新的 LXC (1.1.4 或更高版本) ,LXCFS 以及支持用户子 uid/gid 分配的 shadow 。 +如果你曾经编译过 Go 语言的项目,那么从源代码编译 LXD 并不是十分困难。然而注意,你需要 LXC 的开发头文件。为了运行 LXD, 你的发布版需也要使用比较新的内核(最起码是 3.13)、比较新的 LXC (1.1.4 或更高版本)、LXCFS 以及支持用户子 uid/gid 分配的 shadow。 -从源代码编译 LXD 的最新指令可以在[上游 README][2]里找到。 +从源代码编译 LXD 的最新教程可以在[上游 README][2]里找到。 -### ubuntu 上的网络配置 +### Ubuntu 上的网络配置 -Ubuntu 的安装包会很方便的给你提供一个 "lxdbr0" 网桥。这个网桥默认是没有配置过的,只提供通过 HTTP 代理的 IPV6 的本地连接。 +Ubuntu 的安装包会很方便的给你提供一个“lxdbr0”网桥。这个网桥默认是没有配置过的,只提供通过 HTTP 代理的 IPv6 的本地连接。 -要配置这个网桥和添加 IPV4 、 IPV6 子网,你可以运行下面的命令: +要配置这个网桥并添加 IPv4 、 IPv6 子网,你可以运行下面的命令: ``` sudo dpkg-reconfigure -p medium lxd @@ -74,15 +74,15 @@ sudo dpkg-reconfigure -p medium lxd sudo lxd init ``` -### 存储系统 +### 存储后端 -LXD 提供了集中存储后端。在开始使用 LXD 之前,你最好直到自己想要的后端,因为我们不支持在后端之间迁移已经生成的容器。 +LXD 提供了许多集中存储后端。在开始使用 LXD 之前,你应该决定将要使用的后端,因为我们不支持在后端之间迁移已经生成的容器。 -各个[后端特性的比较表格][3]可以在这里找到。 +各个[后端特性比较表][3]可以在[这里][3]找到。 #### ZFS -我们的推荐是 ZFS , 因为他能支持 LXD 的全部特性,同时提供最快和最可靠的容器体验。它包括了以容器为单位的磁盘配额,直接快照和恢复,优化了的迁移(发送/接收),以及快速从镜像创建容器。它同时也被认为要比 btrfs 更成熟。 +我们的推荐是 ZFS, 因为它能支持 LXD 的全部特性,同时提供最快和最可靠的容器体验。它包括了以容器为单位的磁盘配额,即时快照和恢复,优化了的迁移(发送/接收),以及快速从镜像创建容器的能力。它同时也被认为要比 btrfs 更成熟。 要和 LXD 一起使用 ZFS ,你需要首先在你的系统上安装 ZFS。 @@ -98,7 +98,7 @@ sudo apt install zfsutils-linux sudo apt install zfsutils-linux zfs-dkms ``` -如果是更旧的版本,你需要这样安装: +如果是更旧的版本,你需要从 zfsonlinux PPA 安装: ``` sudo apt-add-repository ppa:zfs-native/stable @@ -106,27 +106,27 @@ sudo apt update sudo apt install ubuntu-zfs ``` -配置 LXD 只需要简单的执行下面的命令: +配置 LXD 只需要执行下面的命令: ``` sudo lxd init ``` -这条命令接下来会想你提问一下你想要的 ZFS 的配置,然后为你配置好 ZFS 。 +这条命令接下来会向你提问一下一些 ZFS 的配置细节,然后为你配置好 ZFS。 #### btrfs -如果 ZFS 不可用,那么 btrfs 可以提供相同级别的集成,除了不会合理的报告容器内的磁盘使用情况(虽然配额还是可以用的)。 +如果 ZFS 不可用,那么 btrfs 可以提供相同级别的集成,但不会合理地报告容器内的磁盘使用情况(虽然配额仍然可用)。 -btrfs 同时拥有很好的嵌套属性,而这时 ZFS 所不具有的。也就是说如果你计划在 LXD 中再使用 LXD ,那么 btrfs 就很值得你考虑一下。 +btrfs 同时拥有很好的嵌套属性,而这是 ZFS 所不具有的。也就是说如果你计划在 LXD 中再使用 LXD,那么 btrfs 就很值得你考虑。 -使用 btrfs 的话,LXD 不需要进行任何的配置,你只需要保证 `/var/lib/lxd` 是保存在 btrfs 文件系统中,然后 LXD 就会自动为你使用 btrfs 了。 +使用 btrfs 的话,LXD 不需要进行任何的配置,你只需要保证 `/var/lib/lxd` 保存在 btrfs 文件系统中,然后 LXD 就会自动为你使用 btrfs 了。 #### LVM -如果 ZFS 和 btrfs 都不是你想要的,你仍然可以考虑使用 LVM。 LXD 会以自动精简配置的方式使用 LVM,为每个镜像和容器创建 LV,如果需要的话也会使用 LVM 的快照功能。 +如果 ZFS 和 btrfs 都不是你想要的,你还可以考虑使用 LVM 以获得部分特性。 LXD 会以自动精简配置的方式使用 LVM,为每个镜像和容器创建 LV,如果需要的话也会使用 LVM 的快照功能。 -要配置 LXD 使用 LVM,需要创建一个 LVM 的 VG ,然后运行: +要配置 LXD 使用 LVM,需要创建一个 LVM VG,然后运行: ``` @@ -141,9 +141,9 @@ lxc config set storage.lvm_fstype xfs #### 简单目录 -如果上面全部方案你都不打算使用, LXD 还可以工作,但是不会使用任何高级特性。它只会为每个容器创建一个目录,然后在创建每个容器时解压缩镜像的压缩包,在容器拷贝和快照时会进行一次完整的文件系统拷贝。 +如果上面全部方案你都不打算使用,LXD 依然能在不使用任何高级特性情况下工作。它会为每个容器创建一个目录,然后在创建每个容器时解压缩镜像的压缩包,并在容器拷贝和快照时进行一次完整的文件系统拷贝。 -除了磁盘配额以外的特性都是支持的,但是很浪费磁盘空间,并且非常慢。如果你没有其他选择,这还是可以工作的,但是你还是需要认真的考虑一下上面的几个方案。 +除了磁盘配额以外的特性都是支持的,但是很浪费磁盘空间,并且非常慢。如果你没有其他选择,这还是可以工作的,但是你还是需要认真的考虑一下上面的几个替代方案。 ### 配置篇 @@ -151,7 +151,7 @@ LXD 守护进程的完整配置项列表可以在[这里找到][4]。 #### 网络配置 -默认情况下 LXD 不会监听网络。和它通信的唯一办法是使用本地 unix socket 通过 `/var/lib/lxd/unix.socket` 进行通信。 +默认情况下 LXD 不会监听网络。和它通信的唯一办法是通过 `/var/lib/lxd/unix.socket` 使用本地 unix socket 进行通信。 要让 LXD 监听网络,下面有两个有用的命令: @@ -160,11 +160,11 @@ lxc config set core.https_address [::] lxc config set core.trust_password some-secret-string ``` -第一条命令将 LXD 绑定到 IPV6 地址 “::”,也就是监听机器的所有 IPV6 地址。你可以显式的使用一个特定的 IPV4 或者 IPV6 地址替代默认地址,如果你想绑定 TCP 端口(默认是 8443)的话可以在地址后面添加端口号即可。 +第一条命令将 LXD 绑定到 IPv6 地址 “::”,也就是监听机器的所有 IPv6 地址。你可以显式的使用一个特定的 IPv4 或者 IPv6 地址替代默认地址,如果你想绑定 TCP 端口(默认是 8443)的话可以在地址后面添加端口号即可。 -第二条命令设置了密码,可以让远程客户端用来把自己添加到 LXD 可信证书中心。如果已经给主机设置了密码,当添加 LXD 主机时会提示输入密码, LXD 守护进程会保存他们的客户端的证书以确保客户端是可信的,这样就不需要再次输入密码(可以随时设置和取消) +第二条命令设置了密码,用于让远程客户端用来把自己添加到 LXD 可信证书中心。如果已经给主机设置了密码,当添加 LXD 主机时会提示输入密码,LXD 守护进程会保存他们的客户端的证书以确保客户端是可信的,这样就不需要再次输入密码(可以随时设置和取消)。 -你也可以选择不设置密码,然后通过给每个客户端发送 "client.crt" (来自于 `~/.config/lxc`)文件,然后把它添加到你自己的可信中信来实现人工验证每个新客户端是否可信,可以使用下面的命令: +你也可以选择不设置密码,然后通过给每个客户端发送“client.crt”(来自于 `~/.config/lxc`)文件,然后把它添加到你自己的可信中信来实现人工验证每个新客户端是否可信,可以使用下面的命令: ``` lxc config trust add client.crt @@ -172,9 +172,9 @@ lxc config trust add client.crt #### 代理配置 -In most setups, you’ll want the LXD daemon to fetch images from remote servers. +大多数情况下,你会想让 LXD 守护进程从远程服务器上获取镜像。 -If you are in an environment where you must go through a HTTP(s) proxy to reach the outside world, you’ll want to set a few configuration keys or alternatively make sure that the standard PROXY environment variables are set in the daemon’s environment. +如果你处在一个必须通过 HTTP(s) 代理链接外网的环境下,你需要对 LXD 做一些配置,或保证已在守护进程的环境中设置正确的 PROXY 环境变量。 ``` lxc config set core.proxy_http http://squid01.internal:3128 @@ -182,11 +182,11 @@ lxc config set core.proxy_https http://squid01.internal:3128 lxc config set core.proxy_ignore_hosts image-server.local ``` -With those, all transfers initiated by LXD will use the squid01.internal HTTP proxy, except for traffic to the server at image-server.local +以上代码使所有 LXD 发起的数据传输都使用 squid01.internal HTTP 代理,但与在 image-server.local 的服务器的数据传输则是例外。 #### 镜像管理 -LXD 使用动态镜像缓存。当从远程镜像创建容器的时候,它会自动把镜像下载到本地镜像商店,同时标志为已缓存并记录来源。几天后(默认10天)如果没有再被使用,那么这个镜像就会自动被删除。每个几小时(默认是6小时) LXD 还会检查一下这个镜像是否有新版本,然后更新镜像的本地拷贝。 +LXD 使用动态镜像缓存。当从远程镜像创建容器的时候,它会自动把镜像下载到本地镜像商店,同时标志为已缓存并记录来源。几天后(默认 10 天)如果某个镜像没有被使用过,那么它就会自动地被删除。每个几小时(默认是 6 小时)LXD 还会检查一下这个镜像是否有新版本,然后更新镜像的本地拷贝。 所有这些都可以通过下面的配置选项进行配置: @@ -196,12 +196,12 @@ lxc config set images.auto_update_interval 24 lxc config set images.auto_update_cached false ``` -这些命令让 LXD 修改了它的默认属性,缓存期替换为 5 天,更新间隔为 24 小时,而且只更新那些标志为自动更新的镜像(lxc 镜像拷贝有标志 `–auto-update`)而不是 LXD 自动缓存的镜像。 +这些命令让 LXD 修改了它的默认属性,缓存期替换为 5 天,更新间隔为 24 小时,而且只更新那些标记为自动更新的镜像(lxc 镜像拷贝被标记为 `–auto-update`)而不是 LXD 自动缓存的镜像。 ### 总结 -到这里为止,你就应该有了一个可以工作的、最新版的 LXD ,现在你可以开始用 LXD 了,或者等待我们的下一条博文,那时我们会介绍如何创建第一个容器以及使用 LXD 命令行工具操作容器。 +到这里为止,你就应该有了一个可以工作的、最新版的 LXD,现在你可以开始用 LXD 了,或者等待我们的下一篇博文,我们会在其中介绍如何创建第一个容器以及使用 LXD 命令行工具操作容器。 ### 额外信息 @@ -213,7 +213,7 @@ LXD 的邮件列表: LXD 的 IRC 频道: #lxcontainers on irc.freenode.net -如果你不想或者不能在你的机器上安装 LXD ,你可以[试试在线版的 LXD][1] 。 +如果你不想或者不能在你的机器上安装 LXD ,你可以[试试在线版的 LXD][1]。 -------------------------------------------------------------------------------- @@ -221,7 +221,7 @@ via: https://www.stgraber.org/2016/03/15/lxd-2-0-installing-and-configuring-lxd- 作者:[Stéphane Graber][a] 译者:[ezio](https://github.com/oska874) -校对:[校对者ID](https://github.com/校对者ID) +校对:[PurlingNayuki](https://github.com/PurlingNayuki) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 917ea80685819b39438194574ed4de9f170024b1 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 18 May 2016 08:59:30 +0800 Subject: [PATCH 514/582] PUB:20151123 Data Structures in the Linux Kernel @cposture @tinyeyeser --- ...123 Data Structures in the Linux Kernel.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) rename {translated/tech => published}/20151123 Data Structures in the Linux Kernel.md (75%) diff --git a/translated/tech/20151123 Data Structures in the Linux Kernel.md b/published/20151123 Data Structures in the Linux Kernel.md similarity index 75% rename from translated/tech/20151123 Data Structures in the Linux Kernel.md rename to published/20151123 Data Structures in the Linux Kernel.md index 899a69af3d..d46d4293c4 100644 --- a/translated/tech/20151123 Data Structures in the Linux Kernel.md +++ b/published/20151123 Data Structures in the Linux Kernel.md @@ -1,4 +1,4 @@ -Linux内核中的数据结构 —— 基数树 +Linux 内核里的数据结构 —— 基数树 ================================================================================ 基数树 Radix tree @@ -11,35 +11,35 @@ Linux内核中的数据结构 —— 基数树 让我们先说说什么是 `基数树` 吧。基数树是一种 `压缩的字典树 (compressed trie)` ,而[字典树](http://en.wikipedia.org/wiki/Trie)是实现了关联数组接口并允许以 `键值对` 方式存储值的一种数据结构。这里的键通常是字符串,但可以使用任意数据类型。字典树因为它的节点而与 `n叉树` 不同。字典树的节点不存储键,而是存储单个字符的标签。与一个给定节点关联的键可以通过从根遍历到该节点获得。举个例子: ``` -               +-----------+ -               |           | -               |    " "    | + +-----------+ | | -        +------+-----------+------+ -        |                         | -        |                         | -   +----v------+            +-----v-----+ -   |           |            |           | -   |    g      |            |     c     | + | " " | + | | + +------+-----------+------+ + | | + | | + +----v------+ +-----v-----+ | | | | -   +-----------+            +-----------+ -        |                         | -        |                         | -   +----v------+            +-----v-----+ -   |           |            |           | -   |    o      |            |     a     | + | g | | c | | | | | -   +-----------+            +-----------+ -                                  | -                                  | -                            +-----v-----+ -                            |           | -                            |     t     | + +-----------+ +-----------+ + | | + | | + +----v------+ +-----v-----+ + | | | | + | o | | a | + | | | | + +-----------+ +-----------+ + | + | + +-----v-----+ | | -                            +-----------+ + | t | + | | + +-----------+ ``` -因此在这个例子中,我们可以看到一个有着两个键 `go` 和 `cat` 的 `字典树` 。压缩的字典树或者说 `基数树` ,它和 `字典树` 的不同之处在于,所有只有一个孩子的中间节点都被删除。 +因此在这个例子中,我们可以看到一个有着两个键 `go` 和 `cat` 的 `字典树` 。压缩的字典树也叫做 `基数树` ,它和 `字典树` 的不同之处在于,所有只有一个子节点的中间节点都被删除。 Linux 内核中的基数树是把值映射到整形键的一种数据结构。[include/linux/radix-tree.h](https://github.com/torvalds/linux/blob/master/include/linux/radix-tree.h)文件中的以下结构体描述了基数树: @@ -86,10 +86,10 @@ struct radix_tree_node { unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS]; }; ``` -这个结构体包含的信息有父节点中的偏移以及到底端(叶节点)的高度、孩子节点的个数以及用于访问和释放节点的字段成员。这些字段成员描述如下: +这个结构体包含的信息有父节点中的偏移以及到底端(叶节点)的高度、子节点的个数以及用于访问和释放节点的字段成员。这些字段成员描述如下: * `path` - 父节点中的偏移和到底端(叶节点)的高度 -* `count` - 孩子节点的个数; +* `count` - 子节点的个数; * `parent` - 父节点指针; * `private_data` - 由树的用户使用; * `rcu_head` - 用于释放节点; @@ -188,9 +188,9 @@ unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, -------------------------------------------------------------------------------- -via: https://github.com/0xAX/linux-insides/edit/master/DataStructures/radix-tree.md +via: https://github.com/0xAX/linux-insides/blob/master/DataStructures/radix-tree.md -作者:[0xAX] +作者:0xAX 译者:[cposture](https://github.com/cposture) 校对:[Mr小眼儿](https://github.com/tinyeyeser) From 6a60da452fde75eae9c17deab9be738cc2f7e039 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 18 May 2016 09:43:40 +0800 Subject: [PATCH 515/582] PUB:20151124 Review--5 memory debuggers for Linux coding @soooogreen @PurlingNayuki @oska874 --- ...ew--5 memory debuggers for Linux coding.md | 78 ++++++++++--------- 1 file changed, 41 insertions(+), 37 deletions(-) rename {translated/talk => published}/20151124 Review--5 memory debuggers for Linux coding.md (74%) diff --git a/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md b/published/20151124 Review--5 memory debuggers for Linux coding.md similarity index 74% rename from translated/talk/20151124 Review--5 memory debuggers for Linux coding.md rename to published/20151124 Review--5 memory debuggers for Linux coding.md index 424d91bba4..4c2e8373a0 100644 --- a/translated/talk/20151124 Review--5 memory debuggers for Linux coding.md +++ b/published/20151124 Review--5 memory debuggers for Linux coding.md @@ -1,4 +1,4 @@ -点评:Linux编程中五款内存调试器 +点评五款用于 Linux 编程的内存调试器 ================================================================================ ![](http://images.techhive.com/images/article/2015/11/penguinadmin-2400px-100627186-primary.idge.jpg) >Credit: [Moini][1] @@ -7,7 +7,7 @@ 如果你还没猜出是那种错误,我说的就是和内存相关的错误。手动调试这些错误不仅耗时,而且很难发现并纠正。值得一提的是,这种错误很常见,特别是在用 C/C++ 这类允许[手动管理内存][2]的语言编写的软件里。 -幸运的是,现行有一些编程工具能够帮你在软件程序中咋猴岛这些和内存相关的错误。在这些工具集中,我评估了五款 Linux 下可用的,流行、免费并且开源的内存调试器: Dmalloc 、 Electric Fence 、 Memcheck 、 Memwatch 以及 Mtrace 。在日常编码中,我已经用过这五个调试器了,所以这些评估是建立在我的实际体验之上的。 +幸运的是,现行有一些编程工具能够帮你在软件程序中找到这些和内存相关的错误。在这些工具集中,我评估了五款支持 Linux 的、流行的、自由开源的内存调试器: Dmalloc 、 Electric Fence 、 Memcheck 、 Memwatch 以及 Mtrace 。在日常编码中,我已经用过这五个调试器了,所以这些评估是建立在我的实际体验之上的。 ### [Dmalloc][3] ### @@ -19,10 +19,11 @@ **许可**: CC 3.0 -Dmalloc 是 Gray Watson 开发的一款内存调试工具。它是作为库来实现的,封装了标准内存管理函数如 *malloc() , calloc() , free()* 等,使程序员得以检测出有问题的代码。 +Dmalloc 是 Gray Watson 开发的一款内存调试工具。它是作为库来实现的,封装了标准内存管理函数如`malloc() , calloc() , free()`等,使程序员得以检测出有问题的代码。 ![cw dmalloc output](http://images.techhive.com/images/article/2015/11/cw_dmalloc-output-100627040-large.idge.png) -Dmalloc + +*Dmalloc* 如同工具的网页所示,这个调试器提供的特性包括内存泄漏跟踪、[重复释放内存(double free)][4]错误跟踪、以及[越界写入(fence-post write)][5]检测。其它特性包括报告错误的文件/行号、通用的数据统计记录。 @@ -32,19 +33,19 @@ Dmalloc #### 有何优点 #### -Dmalloc 最大的优点就是高度可配置性。比如说,你可以配置以支持 C++ 程序和多线程应用。 Dmalloc 还提供一个有用的功能:运行时可配置,这表示在 Dmalloc 执行时,可以轻易地使能或者禁能它提供的一些特性。 +Dmalloc 最大的优点就是高度可配置性。比如说,你可以配置它以支持 C++ 程序和多线程应用。 Dmalloc 还提供一个有用的功能:运行时可配置,这表示在 Dmalloc 执行时,可以轻易地启用或者禁用它提供的一些特性。 -你还可以配合 [GNU Project Debugger (GDB)][7]来使用 Dmalloc ,只需要将 *dmalloc.gdb* 文件(位于 Dmalloc 源码包中的 contrib 子目录里)的内容添加到你的主目录中的 *.gdbinit* 文件里即可。 +你还可以配合 [GNU Project Debugger (GDB)][7]来使用 Dmalloc ,只需要将`dmalloc.gdb`文件(位于 Dmalloc 源码包中的 contrib 子目录里)的内容添加到你的主目录中的`.gdbinit`文件里即可。 -另外一个让我对 Dmalloc 爱不释手的优点是它有大量的资料文献。前往官网的 [Documentation 标签][8],可以获取所有关于如何下载、安装、运行,怎样使用库,和 Dmalloc 所提供特性的细节描述,及其输入文件的解释。其中还有一个章节介绍了一般问题的解决方法。 +另外一个让我对 Dmalloc 爱不释手的优点是它有大量的资料文献。前往官网的 [Documentation 栏目][8],可以获取所有关于如何下载、安装、运行、怎样使用库,和 Dmalloc 所提供特性的细节描述,及其生成的输出文件的解释。其中还有一个章节介绍了一般问题的解决方法。 #### 注意事项 #### -跟 Mtrace 一样, Dmalloc 需要程序员改动他们的源代码。比如说你可以(必须的)添加头文件 *dmalloc.h* ,工具就能汇报产生问题的调用的文件或行号。这个功能非常有用,因为它节省了调试的时间。 +跟 Mtrace 一样, Dmalloc 需要程序员改动他们的源代码。比如说你可以(也是必须的)添加头文件`dmalloc.h`,工具就能汇报产生问题的调用的文件或行号。这个功能非常有用,因为它节省了调试的时间。 除此之外,还需要在编译你的程序时,把 Dmalloc 库(编译 Dmalloc 源码包时产生的)链接进去。 -然而,还有点更麻烦的事,需要设置一个环境变量,命名为 *DMALLOC_OPTION* ,以供工具在运行时配置内存调试特性,以及输出文件的路径。可以手动为该环境变量分配一个值,不过初学者可能会觉得这个过程有点困难,因为该值的一部分用来表示要启用的 Dmalloc 特性——表示为各自的十六进制值的累加。[这里][9]有详细介绍。 +然而,还有点更麻烦的事,需要设置一个环境变量,命名为`DMALLOC_OPTION`,以供工具在运行时配置内存调试特性,比如定义输出文件的路径。可以手动为该环境变量分配一个值,不过初学者可能会觉得这个过程有点困难,因为该值的一部分用来表示要启用的 Dmalloc 特性——以十六进制值的累加值表示。[这里][9]有详细介绍。 一个比较简单方法设置这个环境变量是使用 [Dmalloc 实用指令][10],这是专为这个目的设计的方法。 @@ -65,9 +66,10 @@ Dmalloc 真正的优势在于它的可配置选项。而且高度可移植,曾 Electric Fence 是 Bruce Perens 开发的一款内存调试工具,它以库的形式实现,你的程序需要链接它。Electric Fence 能检测出[堆][11]内存溢出和访问已经释放的内存。 ![cw electric fence output](http://images.techhive.com/images/article/2015/11/cw_electric-fence-output-100627041-large.idge.png) -Electric Fence -顾名思义, Electric Fence 在每个申请的缓存边界建立了虚拟围栏,这样以来任何非法的内存访问都会导致[段错误][12]。这个调试工具同时支持 C 和 C++ 程序。 +*Electric Fence* + +顾名思义, Electric Fence 在每个所申请的缓存边界建立了虚拟围栏,这样一来任何非法的内存访问都会导致[段错误][12]。这个调试工具同时支持 C 和 C++ 程序。 #### 更新内容 #### @@ -75,7 +77,7 @@ Electric Fence #### 有何优点 #### -我喜欢 Electric Fence 的首要一点是它不同于 Memwatch 、 Dmalloc 和 Mtrace ,不需要堆你的源码做任何的改动,你只需要在编译的时候把它的库链接进你的程序即可。 +我喜欢 Electric Fence 的首要一点是它不同于 Memwatch 、 Dmalloc 和 Mtrace ,不需要对你的源码做任何的改动,你只需要在编译的时候把它的库链接进你的程序即可。 其次, Electric Fence 的实现保证了产生越界访问的第一个指令就会引起段错误。这比在后面再发现问题要好多了。 @@ -95,7 +97,6 @@ Electric Fence 还有一个局限是不能明确指出错误代码所在的行 尽管局限性较大, Electric Fence 的易用性仍然是加分项。只要链接一次程序, Electric Fence 就可以在监测出内存相关问题的时候报警。不过,如同前面所说, Electric Fence 需要配合像 GDB 这样的源码调试器使用。 - ### [Memcheck][16] ### **开发者**:[Valgrind 开发团队][17] @@ -106,30 +107,31 @@ Electric Fence 还有一个局限是不能明确指出错误代码所在的行 **许可**:GPL -[Valgrind][18] 是一个提供好几款调试和分析 Linux 程序性能的工具套件。虽然 Valgrind 能和不同语言——Java 、 Perl 、 Python 、 Assembly code 、 ortran 、 Ada 灯——编写的程序一起工作,但是它主要还针对使用 C/C++ 所编写的程序。 +[Valgrind][18] 是一个提供好几款调试和分析 Linux 程序性能的工具的套件。虽然 Valgrind 能和不同语言——Java 、 Perl 、 Python 、 Assembly code 、 ortran 、 Ada 等——编写的程序一起工作,但是它主要还是针对使用 C/C++ 所编写的程序。 Memcheck ,一款内存错误检测器,是其中最受欢迎的工具。它能够检测出如内存泄漏、无效的内存访问、未定义变量的使用以及堆内存分配和释放相关的问题等诸多问题。 #### 更新内容 #### -[工具套件( 3.10.1 )][19]主要修复了 3.10.0 版本发现的 bug 。除此之外,从主版本向后移植一些包,修复了缺失的 AArch64 ARMv8 指令和系统调用。 +[工具套件( 3.10.1 )][19]主要修复了 3.10.0 版本发现的 bug 。除此之外,“从主干开发版本向后移植的一些补丁,修复了缺失的 AArch64 ARMv8 指令和系统调用”。 #### 有何优点 #### 同其它所有 Valgrind 工具一样, Memcheck 也是命令行程序。它的操作非常简单:通常我们会使用诸如 `prog arg1 arg2` 格式的命令来运行程序,而 Memcheck 只要求你多加几个值即可,如 `valgrind --leak-check=full prog arg1 arg2` 。 ![cw memcheck output](http://images.techhive.com/images/article/2015/11/cw_memcheck-output-100627037-large.idge.png) -Memcheck -(注意:因为 Memcheck 是 Valgrind 的默认工具所以在命令行执行命令时无需提及 Memcheck。但是,需要在编译程序之初带上 `-g` 参数选项,这一步会添加调试信息,使得 Memcheck 的错误信息会包含正确的行号。) +*Memcheck* -我真正倾心于 Memcheck 的是它提供了很多命令行选项(如上所述的 *--leak-check* 选项),如此不仅能控制工具运转还可以控制它的输出。 +(注意:因为 Memcheck 是 Valgrind 的默认工具,所以在命令行执行命令时无需提及 Memcheck。但是,需要在编译程序之初带上 `-g` 参数选项,这一步会添加调试信息,使得 Memcheck 的错误信息会包含正确的行号。) -举个例子,可以开启 *--track-origins* 选项,以查看程序源码中未初始化的数据;可以开启 *--show-mismatched-frees* 选项让 Memcheck 匹配内存的分配和释放技术。对于 C 语言所写的代码, Memcheck 会确保只能使用 *free()* 函数来释放内存, *malloc()* 函数来申请内存。而对 C++ 所写的源码, Memcheck 会检查是否使用了 *delete* 或 *delete[]* 操作符来释放内存,以及 *new* 或者*new[]* 来申请内存。 +我真正倾心于 Memcheck 的是它提供了很多命令行选项(如上所述的`--leak-check`选项),如此不仅能控制工具运转还可以控制它的输出。 -Memcheck 最好的特点,尤其是对于初学者来说,是它会给用户建议使用哪个命令行选项能让输出更加有意义。比如说,如果你不使用基本的 *--leak-check* 选项, Memcheck 会在输出时给出建议:“使用 --leak-check=full 重新运行以查看更多泄漏内存细节”。如果程序有未初始化的变量, Memcheck 会产生信息:“使用 --track-origins=yes 以查看未初始化变量的定位”。 +举个例子,可以开启`--track-origins`选项,以查看程序源码中未初始化的数据;可以开启`--show-mismatched-frees`选项让 Memcheck 匹配内存的分配和释放技术。对于 C 语言所写的代码, Memcheck 会确保只能使用`free()`函数来释放内存,`malloc()`函数来申请内存。而对 C++ 所写的源码, Memcheck 会检查是否使用了`delete`或`delete[]`操作符来释放内存,以及`new`或者`new[]`来申请内存。 -Memcheck 另外一个有用的特性是它可以[创建抑制文件( suppression files )][20],由此可以略过特定的不能修正的错误,这样 Memcheck 运行时就不会每次都报警了。值得一提的是, Memcheck 会去读取默认抑制文件来忽略系统库(比如 C 库)中的报错,这些错误在系统创建之前就已经存在了。可以选择创建一个新的抑制文件,或是编辑现有的文件(通常是*/usr/lib/valgrind/default.supp*)。 +Memcheck 最好的特点,尤其是对于初学者来说,是它会给用户建议使用哪个命令行选项能让输出更加有意义。比如说,如果你不使用基本的`--leak-check`选项, Memcheck 会在输出时给出建议:“使用 --leak-check=full 重新运行以查看更多泄漏内存细节”。如果程序有未初始化的变量, Memcheck 会产生信息:“使用 --track-origins=yes 以查看未初始化变量的定位”。 + +Memcheck 另外一个有用的特性是它可以[创建抑制文件( suppression files )][20],由此可以略过特定的不能修正的错误,这样 Memcheck 运行时就不会每次都报警了。值得一提的是, Memcheck 会去读取默认抑制文件来忽略系统库(比如 C 库)中的报错,这些错误在系统创建之前就已经存在了。可以选择创建一个新的抑制文件,或是编辑现有的文件(通常是`/usr/lib/valgrind/default.supp`)。 Memcheck 还有高级功能,比如可以使用[定制内存分配器][22]来[检测内存错误][21]。除此之外, Memcheck 提供[监控命令][23],当用到 Valgrind 内置的 gdbserver ,以及[客户端请求][24]机制(不仅能把程序的行为告知 Memcheck ,还可以进行查询)时可以使用。 @@ -145,7 +147,7 @@ Memcheck 还有高级功能,比如可以使用[定制内存分配器][22]来[ 无论是对于初学者还是那些需要高级特性的人来说, Memcheck 都是一款便捷的内存调试工具。如果你仅需要基本调试和错误检查, Memcheck 会非常容易上手。而当你想要使用像抑制文件或者监控指令这样的特性,就需要花一些功夫学习了。 -虽然罗列了大量的局限性,但是 Valgrind(包括 Memcheck )在它的网站上声称全球有[成千上万程序员][30]使用了此工具。开发团队称收到来自超过 30 个国家的用户反馈,而这些用户的工程代码有的高达 2.5 千万行。 +虽然罗列了大量的局限性,但是 Valgrind(包括 Memcheck )在它的网站上声称全球有[成千上万程序员][30]使用了此工具。开发团队称收到来自超过 30 个国家的用户反馈,而这些用户的工程代码有的高达两千五百万行。 ### [Memwatch][31] ### @@ -163,24 +165,25 @@ Memwatch 支持用 C 语言所编写的程序。也可以在 C++ 程序中使用 #### 更新内容 #### -这个版本添加了 *ULONG_LONG_MAX* 以区分 32 位和 64 位程序。 +这个版本添加了`ULONG_LONG_MAX`以区分 32 位和 64 位程序。 #### 有何优点 #### -跟 Dmalloc 一样, Memwatch 也有优秀的文档资料。参考 USING 文件,可以学习如何使用 Memwatch ,可以了解 Memwatch 是如何初始化、如何清理以及如何进行 I/O 操作,等等。还有一个 FAQ 文件,旨在帮助用户解决使用过程遇到的一般问题。最后还有一个 *test.c* 文件提供工作案例参考。 +跟 Dmalloc 一样, Memwatch 也有优秀的文档资料。参考 USING 文件,可以学习如何使用 Memwatch ,可以了解 Memwatch 是如何初始化、如何清理以及如何进行 I/O 操作,等等。还有一个 FAQ 文件,旨在帮助用户解决使用过程遇到的一般问题。最后还有一个`test.c`文件提供工作案例参考。 ![cw memwatch output](http://images.techhive.com/images/article/2015/11/cw_memwatch_output-100627038-large.idge.png) -Memwatch -不同于 Mtrace , Memwatch 产生的日志文件(通常是 *memwatch.log* )是人类可阅读的格式。而且, Memwatch 每次运行时总会把内存调试结果拼接到输出文件的末尾。如此便可在需要之时轻松查看之前的输出信息。 +*Memwatch* + +不同于 Mtrace , Memwatch 产生的日志文件(通常是`memwatch.log`)是人类可阅读的格式。而且, Memwatch 每次运行时总会把内存调试结果拼接到输出该文件的末尾。如此便可在需要之时轻松查看之前的输出信息。 同样值得一提的是当你执行了启用 Memwatch 的程序, Memwatch 会在[标准输出][34]中产生一个单行输出,告知发现了错误,然后你可以在日志文件中查看输出细节。如果没有产生错误信息,就可以确保日志文件不会写入任何错误,多次运行的话确实能节省时间。 -另一个我喜欢的优点是 Memwatch 还提供了在源码中获取其输出信息的方式,你可以获取信息,然后任由你进行处理(参考 Memwatch 源码中的 *mwSetOutFunc()* 函数获取更多有关的信息)。 +另一个我喜欢的优点是 Memwatch 还提供了在源码中获取其输出信息的方式,你可以获取信息,然后任由你进行处理(参考 Memwatch 源码中的`mwSetOutFunc()`函数获取更多有关的信息)。 #### 注意事项 #### -跟 Mtrace 和 Dmalloc 一样, Memwatch 也需要你往你的源文件里增加代码:你需要把 *memwatch.h* 这个头文件包含进你的代码。而且,编译程序的时候,你需要连同 *memwatch.c* 一块编译;或者你可以把已经编译好的目标模块包含起来,然后在命令行定义 *MEMWATCH* 和 *MW_STDIO* 变量。不用说,想要在输出中定位行号, -g 编译器选项也少不了。 +跟 Mtrace 和 Dmalloc 一样, Memwatch 也需要你往你的源文件里增加代码:你需要把`memwatch.h`这个头文件包含进你的代码。而且,编译程序的时候,你需要连同`memwatch.c`一块编译;或者你可以把已经编译好的目标模块包含起来,然后在命令行定义`MEMWATCH`和`MW_STDIO`变量。不用说,想要在输出中定位行号, -g 编译器选项也少不了。 此外, Memwatch 缺少一些特性。比如 Memwatch 不能检测出对一块已经被释放的内存进行写入操作,或是在分配的内存块之外的进行读取操作。而且, Memwatch 也不是线程安全的。还有一点,正如我在开始时指出,在 C++ 程序上运行 Memwatch 的结果是不能预料的。 @@ -198,12 +201,13 @@ Memcheck 可以检测很多内存相关的问题,在处理 C 程序时是非 **许可**:GNU GPL -Mtrace 是 [GNU C 库][36]中的一款内存调试工具,同时支持 Linux 上的 C 和 C++ 程序,可以检测由函数 *malloc()* 和 *free()* 不匹配的调用所引起的内存泄漏问题。 +Mtrace 是 [GNU C 库][36]中的一款内存调试工具,同时支持 Linux 上的 C 和 C++ 程序,可以检测由函数`malloc()`和`free()`不匹配的调用所引起的内存泄漏问题。 ![cw mtrace output](http://images.techhive.com/images/article/2015/11/cw_mtrace-output-100627039-large.idge.png) -Mtrace -Mtrace 的实现实际上是 *mtrace()* 函数,它可以跟踪程序中所有 malloc/free 调用,并在用户指定的文件中记录相关信息。文件以一种机器可读的格式记录数据,所以有一个 Perl 脚本——同样命名为 mtrace ——用来把文件转换并为人类可读格式。 +*Mtrace* + +Mtrace 实际上是实现了一个名为`mtrace()`的函数,它可以跟踪程序中所有 malloc/free 调用,并在用户指定的文件中记录相关信息。文件以一种机器可读的格式记录数据,所以有一个 Perl 脚本——同样命名为 mtrace ——用来把文件转换并为人类可读格式。 #### 更新内容 #### @@ -211,19 +215,19 @@ Mtrace 的实现实际上是 *mtrace()* 函数,它可以跟踪程序中所有 #### 有何优点 #### -Mtrace 最好的地方是它非常简单易学。你只需要了解在你的源码中如何以及何处添加 mtrace() 及对应的 muntrace() 函数,还有如何使用 Mtrace 的 Perl 脚本。后者非常简单,只需要运行指令 *mtrace *(例子见开头截图最后一条指令)。 +Mtrace 最好的地方是它非常简单易学。你只需要了解在你的源码中如何以及何处添加 mtrace() 及对应的 muntrace() 函数,还有如何使用 Mtrace 的 Perl 脚本。后者非常简单,只需要运行指令`mtrace `(例子见开头截图最后一条指令)。 -Mtrace 另外一个优点是它的可收缩性,这体现在不仅可以使用它来调试完整的程序,还可以使用它来检测程序中独立模块的内存泄漏。只需在每个模块里调用 *mtrace()* 和 *muntrace()* 即可。 +Mtrace 另外一个优点是它的可伸缩性,这体现在不仅可以使用它来调试完整的程序,还可以使用它来检测程序中独立模块的内存泄漏。只需在每个模块里调用`mtrace()`和`muntrace()`即可。 -最后一点,因为 Mtrace 会在 *mtrace()*——在源码中添加的函数——执行时被触发,因此可以很灵活地[使用信号][39]动态地(在程序执行时)使能 Mtrace 。 +最后一点,因为 Mtrace 会在`mtrace()`——在源码中添加的函数——执行时被触发,因此可以很灵活地[使用信号][39]动态地(在程序执行时)使能 Mtrace 。 #### 注意事项 #### -因为 *mtrace()* 和 *mauntrace()* 函数 —— 声明在 *mcheck.h* 文件中,所以必须在源码中包含此头文件 —— 的调用是 Mtrace 工作的基础运行( *mauntrace()* 函数并非[总是必要][40]),因此 Mtrace 要求程序员至少改动源码一次。 +因为`mtrace()`和`mauntrace()`函数 —— 声明在`mcheck.h`文件中,所以必须在源码中包含此头文件 —— 的调用是 Mtrace 工作的基础(`mauntrace()`函数并非[总是必要][40]),因此 Mtrace 要求程序员至少改动源码一次。 需要注意的是,在编译程序的时候带上 -g 选项( [GCC][41] 和 [G++][42] 编译器均有提供),才能使调试工具在输出结果时展示正确的行号。除此之外,有些程序(取决于源码体积有多大)可能会花很长时间进行编译。最后,带 -g 选项编译会增加了可执行文件的大小(因为提供了额外的调试信息),因此记得程序需要在测试结束后,不带 -g 选项重新进行编译。 -使用 Mtrace ,你需要掌握 Linux 环境变量的基本知识,因为在程序执行之前,需要把用户把环境变量 *MALLOC_TRACE* 的值设为指定的文件( *mtrace()* 函数将会记录全部信息到其中)路径。 +使用 Mtrace ,你需要掌握 Linux 环境变量的基本知识,因为在程序执行之前,需要把用户把环境变量`MALLOC_TRACE`的值设为指定的文件(`mtrace()`函数将会记录全部信息到其中)路径。 Mtrace 在检测内存泄漏和试图释放未经过分配的内存方面存在局限。它不能检测其它内存相关问题如非法内存访问、使用未初始化内存。而且,[有人抱怨][43] Mtrace 不是[线程安全][44]的。 @@ -237,7 +241,7 @@ Mtrace 在检测内存泄漏和试图释放未经过分配的内存方面存在 虽然 Memwatch 的资料比 Dmalloc 的更加丰富,而且还能检测更多的错误种类,但是你只能在 C 语言写就的程序中使用它。一个让 Memwatch 脱颖而出的特性是它允许在你的程序源码中处理它的输出,这对于想要定制输出格式来说是非常有用的。 -如果改动程序源码非你所愿,那么使用 Electric Fence 吧。不过,请记住, Electric Fence 只能检测两种错误类型,而此二者均非内存泄漏。还有就是,需要了解 GDB 基础以最大化发挥这款内存调试工具的作用。 +如果改动程序源码非你所愿,那么使用 Electric Fence 吧。不过,请记住, Electric Fence 只能检测两种错误类型,而此二者均非内存泄漏。还有就是,需要基本了解 GDB 以最大化发挥这款内存调试工具的作用。 Memcheck 可能是其中综合性最好的了。相比这里提及的其它工具,它能检测更多的错误类型,提供更多的特性,而且不需要你的源码做任何改动。但请注意,基本功能并不难上手,但是想要使用它的高级特性,就必须学习相关的专业知识了。 From 8def8133c619937ac2afc2afdbdb49171424dc72 Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 18 May 2016 10:35:39 +0800 Subject: [PATCH 516/582] PUB:20151207 5 great Raspberry Pi projects for the classroom @carolinewuyan @oska874 --- ...Raspberry Pi projects for the classroom.md | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) rename {translated/tech => published}/20151207 5 great Raspberry Pi projects for the classroom.md (87%) diff --git a/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md b/published/20151207 5 great Raspberry Pi projects for the classroom.md similarity index 87% rename from translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md rename to published/20151207 5 great Raspberry Pi projects for the classroom.md index 5204511c1d..ddf2258d97 100644 --- a/translated/tech/20151207 5 great Raspberry Pi projects for the classroom.md +++ b/published/20151207 5 great Raspberry Pi projects for the classroom.md @@ -6,18 +6,20 @@ ### 1. 我的世界: Pi ![](https://opensource.com/sites/default/files/lava.png) ->源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. -我的世界是世界上几乎每一个青少年都特别喜欢的一款游戏,而且它成功抓住了年轻人眼球,成为目前最能激发年轻人创造力的游戏之一。这个树莓派版本自带的我的世界不仅仅是一个具有创造性的建筑游戏,还是一个具有编程接口,可以通过 Python 与之交互的版本。 +*源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]* + +“我的世界”是世界上几乎每一个青少年都特别喜欢的一款游戏,而且它成功抓住了年轻人眼球,成为目前最能激发年轻人创造力的游戏之一。这个树莓派版本自带的我的世界不仅仅是一个具有创造性的建筑游戏,还是一个具有编程接口,可以通过 Python 与之交互的版本。 我的世界:Pi 版对于老师来说是一个教授学生解决问题和编写代码完成任务的好方式。你可以使用 Python API 创建一个房子,并且一直跟随这你的脚步移动,在所到之处建造一座桥,让天空落下熔岩雨滴,在空中显示温度,以及其它你可以想象到的一切东西。 -详情请见 "[Getting Started with Minecraft Pi][2]." +详情请见 "[我的世界: Pi 入门][2]" ### 2. 反应游戏和交通灯 ![](https://opensource.com/sites/default/files/pi_traffic_installed_yellow_led_on.jpg) ->源于 [Low Voltage Labs][3]. [CC BY-SA 4.0][1]. + +*源于 [Low Voltage Labs][3]. [CC BY-SA 4.0][1]* 使用树莓派可以很轻松地进行物理计算,只需要连接几个 LED 和按钮到开发板上的 GPIO 接口,再用几行代码你就可以按下按钮来开灯。一旦你了解了如何使用代码来完成这些基本的操作,接下来就可以根据你的想象来做其它事情了。 @@ -26,7 +28,8 @@ 代码并不是全部——这只是一个演练,让你理解现实世界里系统是如何完成设计的。计算思维是一个让你终身受用的技能。 ![](https://opensource.com/sites/default/files/reaction-game.png) ->源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. + +*源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]* 接下来试着接通两个按钮和 LED 灯的电源,实现一个双玩家的反应游戏 —— 让 LED 灯随机时间点亮,然后看是谁抢先按下按钮。 @@ -38,25 +41,25 @@ Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是 [video](https://youtu.be/gfRDFvEVz-w) ->详见 "[探索 Sense HAT][9]." +> 详见 "[探索 Sense HAT][9]." ### 4. 红外鸟笼 ![](https://opensource.com/sites/default/files/ir-bird-box.png) ->源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. + +*源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]* 让整个班级都可以参与进来的好主意是在鸟笼里放置一个树莓派和夜视镜头,以及一些红外线灯,这样子你就可以在黑暗中看见鸟笼里的情况了,然后使用树莓派通过网络串流视频。然后就可以等待小鸟归笼了,你可以在不打扰的情况下近距离观察小窝里的它们了。 -要了解更多有关红外线和光谱的知识,以及如何校准摄像头焦点和使用软件控制摄像头,可以访问 [Make an infrared bird box][10]。 - - +要了解更多有关红外线和光谱的知识,以及如何校准摄像头焦点和使用软件控制摄像头,可以访问 [打造一个红外鸟笼][10]。 ### 5. 机器人 ![](https://opensource.com/sites/default/files/edukit3_1500-alex-eames-sm.jpg) ->源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]. -只需要一个树莓派、很少的几个电机和电机控制器,你就可以自己动手制作一个机器人。可以制作的机器人有很多种,从简单的由几个轮子和自制底盘拼凑的简单小车,到由游戏控制器驱动、具有自我意识、配备了传感器,安装了摄像头的金属种马。 +*源于 Raspberry Pi 基金会. [CC BY-SA 4.0][1]* + +只需要一个树莓派、很少的几个电机和电机控制器,你就可以自己动手制作一个机器人。可以制作的机器人有很多种,从简单的由几个轮子和自制底盘拼凑的简单小车,到由游戏控制器驱动、具有自我意识、配备了传感器,安装了摄像头的金属小马。 要学习如何控制不同的电机,可以使用 RTK 电机驱动开发板入门或者使用配置了电机、轮子和传感器的 CamJam 机器人开发套件——具有很大的价值和大量的学习潜力。 From 1d586ec845e76f91f58822a8624a5a48b9c22e2d Mon Sep 17 00:00:00 2001 From: wxy Date: Wed, 18 May 2016 10:52:46 +0800 Subject: [PATCH 517/582] PUB:20160415 Docker 1.11 Adopts Open Container Project Components @geekpi --- ...dopts Open Container Project Components.md | 48 ++++++++++++++++++ ...dopts Open Container Project Components.md | 50 ------------------- 2 files changed, 48 insertions(+), 50 deletions(-) create mode 100644 published/20160415 Docker 1.11 Adopts Open Container Project Components.md delete mode 100644 translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md diff --git a/published/20160415 Docker 1.11 Adopts Open Container Project Components.md b/published/20160415 Docker 1.11 Adopts Open Container Project Components.md new file mode 100644 index 0000000000..9b73c52b8c --- /dev/null +++ b/published/20160415 Docker 1.11 Adopts Open Container Project Components.md @@ -0,0 +1,48 @@ +Docker 1.11 采纳了开源容器项目(OCP)组件 +======================================================= + +![](http://images.techhive.com/images/article/2015/01/docker-620x465-100559026-primary.idge.jpg) + +> Docker 在开放容器项目(Open Container Project,OCP)中的参与度达成圆满,最新构建的Docker采用了Docker 贡献给 OCP 的组件。 + +新发布的 [Docker 1.11][1] 的最大新闻并不是它的功能,而是它使用了在 OCP 支持下的标准化的组件版本。 + +去年,Docker 贡献了它的 [runC][2] 核心给 OCP 作为构建构建容器工具的基础。同样还有 [containerd][3],作为守护进程或者服务端用于控制 runC 的实例。Docker 1.11 现在使用的就是这个捐赠和公开的版本。 + + +Docker 此举挑战了它的容器生态仍[主要由 Docker 自身决定][6]这个说法。它并不是为了作秀才将容器规范和运行时细节贡献给 OCP。它希望项目将来的开发越开放和广泛越好。 + +![](http://images.techhive.com/images/article/2016/04/docker-runc-100656060-large.idge.png) + +> Docker 1.11 已经用贡献给 OCP 的 runC 和 containerd 进行了重构。runC 如果需要的话可以换成另外一个。 + +runC 的[两位主要提交者][7]来自 Docker,但是来自 Virtuozzo(Parallels fame)、OpenShift、Project Atomic、华为、GE Healthcare、Suse Linux 也都是提交人员里面的常客。 + +Docker 1.11 中一个更明显的变化是先前 Docker runtime 在 Docker 中是唯一可用的,并且评论家认为这个会限制用户的选择。runC runtime 现在是可替换的;虽然 Docker 在发布时将 runC 作为默认引擎,但是任何兼容的引擎都可以用来替换它。(Docker 同样希望它可以不用杀死并重启现在运行的容器,但是这个作为今后的改进规划。) + +Docker 正在将基于 OCP 的开发流程作为内部创建其产品的更好方式。在它发布 1.11 的[官方博客中称][8]:“将 Docker 切分成独立的工具意味着更专注的维护者,最终会有更好的软件质量。” + +除了修复长期以来存在的问题和确保 Docker 的 runC/containerd 跟上步伐,Docker 还在 Docker 1.11 中加入了一些改进。Docker Engine 现在支持 VLAN 和 IPv6 服务发现,并且会自动在多个相同别名容器间执行 DNS 轮询负载均衡。 + + +------------------------------------------------------------------------------ + +via: http://www.infoworld.com/article/3055966/open-source-tools/docker-111-adopts-open-container-project-components.html + +作者:[Serdar Yegulalp][a] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.infoworld.com/author/Serdar-Yegulalp/ +[1]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ +[2]: http://runc.io/ +[3]: https://containerd.tools/ +[4]: http://www.infoworld.com/resources/16373/application-virtualization/the-beginners-guide-to-docker#tk.ifw-infsb +[5]: http://www.infoworld.com/newsletters/signup.html#tk.ifw-infsb +[6]: http://www.infoworld.com/article/2876801/application-virtualization/docker-reorganization-grows-up.html +[7]: https://github.com/opencontainers/runc/graphs/contributors +[8]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ + + diff --git a/translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md b/translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md deleted file mode 100644 index 98e8d49c06..0000000000 --- a/translated/tech/20160415 Docker 1.11 Adopts Open Container Project Components.md +++ /dev/null @@ -1,50 +0,0 @@ -Docker 1.11采纳了开源容器项目组件 -======================================================= - -![](http://images.techhive.com/images/article/2015/01/docker-620x465-100559026-primary.idge.jpg) - ->Docker参与的开源项目完成了一个闭环,最新构建的Docker采用了Docker贡献给OCP的组件。 - -[Docker 1.11][1]最大的新闻并不是它的功能,而是它使用了在OCP支持下的标准化的组件版本。 - -去年,Docker贡献了它的[runC][2]核心给OCP作为构建构建容器工具的基础。同样还有[containerd][3],作为守护进程或者服务端用于控制runC的实例。Docker 1.11现在使用的是捐赠和公开的版本。 - ->在InfoWorld的[Docker初学者指南][4]中深入这个热门开源框架。今天就拿来看!|在[InfoWorld每日简讯][5]中获取今日的技术新闻。 - ->Docker此举挑战了它的容器生态仍[主要由Docker自身决定][6]的传说。它并不是为了作秀才将容器规范和运行时细节贡献给OCP。它希望项目将来的开发越开放和广泛越好。 - -![](http://images.techhive.com/images/article/2016/04/docker-runc-100656060-large.idge.png) - ->Docker 1.11已经用贡献给OCP的runC和containerd进行了重构。runC如果需要可以被交换出去并被替换。 - -runC的[两位主要提交者][7]来自Docker,但是来自Virtuozzo(Parallels fame)、OpenShift、Project Atomic、华为、GE Healthcare、Suse Linux也都是提交的常客。 - -Docker 1.11中一个更明显的变化是先前Docker运行时在Docker中是唯一可用的,并且评论家认为这个会限制用户的选择。runC运行时现在是可交换的;虽然Docker在发布时将runC作为默认的引擎,但是任何兼容的引擎都可以被交换进入。(Docker同样希望它可以不用杀死并重启现在运行的容器,但是这个作为今后的改进规划。) - -Docker正在将基于OCP开发流程作为内部更好的方式去创建它的产品。在它的发布1.11的[官方博客中称][8]:“将Docker切分成独立的工具意味着更专注的维护者,最终有更好的软件质量。” - -除了修复长期以来存在的问题何确保Docker的runC/containerd跟上步伐,Docker还在Docker 1.11中加入了一些改进。Docker Engine现在支持VLAN和IPv6服务发现,并且会自动在多个相同别名容器间执行DNS轮询负载均衡。 - - - ------------------------------------------------------------------------------- - -via: http://www.infoworld.com/article/3055966/open-source-tools/docker-111-adopts-open-container-project-components.html - -作者:[Serdar Yegulalp][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://www.infoworld.com/author/Serdar-Yegulalp/ -[1]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ -[2]: http://runc.io/ -[3]: https://containerd.tools/ -[4]: http://www.infoworld.com/resources/16373/application-virtualization/the-beginners-guide-to-docker#tk.ifw-infsb -[5]: http://www.infoworld.com/newsletters/signup.html#tk.ifw-infsb -[6]: http://www.infoworld.com/article/2876801/application-virtualization/docker-reorganization-grows-up.html -[7]: https://github.com/opencontainers/runc/graphs/contributors -[8]: https://blog.docker.com/2016/04/docker-engine-1-11-runc/ - - From a3f6f50ebbd349548835a51d279a0d270ac8a956 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 18 May 2016 19:50:04 +0800 Subject: [PATCH 518/582] =?UTF-8?q?20160518-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0160516 Scaling Collaboration in DevOps.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 sources/tech/20160516 Scaling Collaboration in DevOps.md diff --git a/sources/tech/20160516 Scaling Collaboration in DevOps.md b/sources/tech/20160516 Scaling Collaboration in DevOps.md new file mode 100644 index 0000000000..ea1e193b96 --- /dev/null +++ b/sources/tech/20160516 Scaling Collaboration in DevOps.md @@ -0,0 +1,67 @@ +Scaling Collaboration in DevOps +================================= + +![](http://devops.com/wp-content/uploads/2016/05/ScalingCollaboration.jpg) + +Those familiar with DevOps generally agree that it is equally as much about culture as it is about technology. There are certainly tools and practices involved in the effective implementation of DevOps, but the foundation of DevOps success is how well [teams and individuals collaborate][1] across the enterprise to get things done more rapidly, efficiently and effectively. + +Most DevOps platforms and tools are designed with scalability in mind. DevOps environments often run in the cloud and tend to be volatile. It’s important for the software that supports DevOps to be able to scale in real time to address spikes and lulls in demand. The same thing is true for the human element as well, but scaling collaboration is a whole different story. + +Collaboration across the enterprise is critical for DevOps success. Great code and development needs to make it over the finish line to production to benefit customers. The challenge organizations face is how to do that seamlessly and with as much speed and automation as possible without sacrificing quality or performance. How can businesses streamline code development and deployment, while maintaining visibility, governance and compliance? + +### Emerging Trends + +First, I want to provide some background and share some data gathered by 451 Research on DevOps and DevOps adoption in general. Cloud, agile and DevOps capabilities are important for organizations today—both in perception and reality. 451 sees enterprise adoption of these things, as well as container technologies, growing—including increased usage in production environments. + +There are a number of advantages to embracing these technologies and methodologies, such as increased flexibility and speed, reduction of costs, improvements in resilience and reliability, and fitness for new or emerging applications. According to 451 Research, organizations also face some barriers including a lack of familiarity and required skills internally, the immaturity of these emerging technologies, and cost and security concerns. + +In the “[Voice of the Enterprise: SDI Q4 2015 survey][2],” 451 Research found that more than half of the respondents (51.7 percent) consider themselves to be late adopters, or even the last adopters of new technology. The flip side of that is that almost half (48.3 percent) label themselves as first or early adopters. + +Those general sentiments are reflected in the survey responses to other questions. When asked about implementation of containers, 50.3 percent stated it is not in their plans at all, while the remaining 49.7 percent are in some state of planning, pilot or active use of container technologies. Nearly two-thirds (65.1 percent) indicated that they use agile development methodologies for application development, but only 39.6 percent responded that they’ve embraced DevOps approaches. Nevertheless, while agile software development has been in the industry for years, 451 notes the impressive adoption of containers and DevOps, given they are emergent trends. + +When asked what the top three IT pain points are, the leading responses were cost or budget, insufficient staff and legacy software issues. As organizations move to cloud, DevOps, and containers issues such as these will need to be addressed, along with how to scale both technologies and collaboration effectively. + +### The Current State + +The industry—driven in large part by the DevOps revolution—is in the midst of a sea change, where software development is becoming more highly integrated across the entire business. The creation of software is less segregated and is more and more a function of collaboration and socialization. + +Concepts and methodologies that were novel or niche just a few years ago have matured quickly to become the mainstream technologies and frameworks that are driving value today. Businesses rely on concepts such as agile, lean, virtualization, cloud, automation and microservices to streamline development and enable them to work more effectively and efficiently at the same time. + +To adapt and evolve, enterprises need to accomplish a number of key tasks. The challenge companies face today is how to accelerate development while reducing costs. Organizations need to eliminate the barriers that exist between IT and the rest of the business, and work cooperatively toward a strategy that provides more effectiveness in a technology-driven, competitive environment. + +Agile, cloud, DevOps and containers all play a role in that process, but the one thing that binds it all is effective collaboration. Each of these technologies and methodologies provides unique benefits, but the real value comes from the organization as a whole—and the tools and platforms used by the organization—being able to collaborate at scale. Successful DevOps implementations also require participation from other stakeholders beyond development and IT operations teams, including security, database, storage and line-of-business teams. + +### Collaboration-as-a-Platform + +There are services and platforms online—such as GitHub—that facilitate and streamline collaboration. The online platform functions as a code repository, but the value extends beyond just providing a place to store code. + +Such a [collaboration platform][4] helps developers and teams collaborate more effectively because it provides a community where the code and process can be shared and discussed. Managers can monitor progress and track what code is shipping next. Developers can experiment with new ideas in a safe environment before taking those experiments to a live production environment, and new ideas and experiments can be effectively communicated to the appropriate teams. + +One of the keys to more agile development and DevOps is to allow developers to test things and gather relevant feedback quickly. The goal is to produce quality code and features faster, not to waste time setting up and managing infrastructure or scheduling more meetings to talk about it. The GitHub platform, for example, enables more effective and scalable collaboration because code review can occur when it is most convenient for the participants. There is no need to try and coordinate and schedule code review meetings, so the developers can continue to work uninterrupted, resulting in greater productivity and job satisfaction. + +Steven Anderson of Sendachi noted that GitHub is a collaboration platform, but it’s also a place for your tools to work with you, too. This means it can help not only with collaboration and continuous integration, but also with code quality. + +One of the benefits of a collaboration platform is that large teams of developers can be broken down into smaller teams that can focus more efficiently on specific components. It also allows things such as document sharing alongside code development to blur the lines between technical and non-technical contributions and enable increased collaboration and visibility. + +### Collaboration is Key + +The importance of collaboration can’t be stressed enough. It is a key tenet of DevOps culture, and it’s vital to agile development and maintaining a competitive edge in today’s world. Executive or management support and internal evangelism are important. Organizations also need to embrace the culture shift—blending skills across functional areas toward a common goal. + +With that culture established, though, effective collaboration is crucial. A collaboration platform is an essential element of collaborating at scale because it streamlines productivity and reduces redundancy and effort, and yields higher quality results at the same time. + + +-------------------------------------------------------------------------------- + +via: http://devops.com/2016/05/16/scaling-collaboration-devops/ + +作者:[TONY BRADLEY][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://devops.com/author/tonybsg/ +[1]: http://devops.com/2014/12/15/four-strategies-supporting-devops-collaboration/ +[2]: https://451research.com/ +[3]: https://451research.com/customer-insight-voice-of-the-enterprise-overview +[4]: http://devops.com/events/analytics-of-collaboration-on-github/ From 82010d8daffaf7c14706764e26395f709c4e8660 Mon Sep 17 00:00:00 2001 From: "eric.xiaozhen" Date: Thu, 19 May 2016 09:58:43 +0800 Subject: [PATCH 519/582] Request to translate this article --- .../talk/20160516 Open source from a recruiter's perspective.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/talk/20160516 Open source from a recruiter's perspective.md b/sources/talk/20160516 Open source from a recruiter's perspective.md index 15fc396139..e8d48f77d0 100644 --- a/sources/talk/20160516 Open source from a recruiter's perspective.md +++ b/sources/talk/20160516 Open source from a recruiter's perspective.md @@ -1,3 +1,4 @@ +eriwoon 翻译中 -- 2106-May-19 Open source from a recruiter's perspective ============================================ From f3724ec48293f4a45bc73b19d1f8df616afbede1 Mon Sep 17 00:00:00 2001 From: wxy Date: Thu, 19 May 2016 22:09:20 +0800 Subject: [PATCH 520/582] PUB:Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart @ictlyh --- ...d Services SysVinit Systemd and Upstart.md | 124 +++++++----------- 1 file changed, 47 insertions(+), 77 deletions(-) rename {translated/tech => published}/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md (72%) diff --git a/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md b/published/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md similarity index 72% rename from translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md rename to published/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md index 0c4c1ac766..ff987c3e9b 100644 --- a/translated/tech/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md +++ b/published/LFCS/Part 7 - LFCS--Managing System Startup Process and Services SysVinit Systemd and Upstart.md @@ -1,35 +1,35 @@ -LFCS 系列第七讲: 通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务 +LFCS 系列第七讲:通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务 ================================================================================ -几个月前, Linux 基金会宣布 LFCS(Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证。这其中包括维护已经在运行的系统和服务能力、第一手的问题查找和分析能力、以及决定何时向开发团队提交问题的能力。 +几个月前, Linux 基金会宣布 LFCS (Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证。这其中包括维护已经在运行的系统和服务的能力、第一手的问题查找和分析能力、以及决定何时向开发团队提交问题的能力。 ![Linux Foundation Certified Sysadmin – Part 7](http://www.tecmint.com/wp-content/uploads/2014/10/lfcs-Part-7.png) -第七讲: Linux 基金会认证系统管理员 +*第七讲: Linux 基金会认证系统管理员* 下面的视频简要介绍了 Linux 基金会认证计划。 注:youtube 视频 -这篇博文是 10 指南系列中的第七篇,在这篇文章中,我们会介绍如何管理 Linux 系统自启动进程和服务,这是 LFCS 认证考试要求的一部分。 +本讲是系列教程中的第七讲,在这篇文章中,我们会介绍如何管理 Linux 系统自启动进程和服务,这是 LFCS 认证考试要求的一部分。 ### 管理 Linux 自启动进程 ### -Linux 系统的启动程序包括多个阶段,每个阶段由一个不同的组件表示。下面的图示简要总结了启动过程以及所有包括的主要组件。 +Linux 系统的启动程序包括多个阶段,每个阶段由一个不同的图示块表示。下面的图示简要总结了启动过程以及所有包括的主要组件。 ![Linux Boot Process](http://www.tecmint.com/wp-content/uploads/2014/10/Linux-Boot-Process.png) -Linux 启动过程 +*Linux 启动过程* -当你按下你机器上的电源键时, 存储在主板 EEPROM 芯片中的固件初始化 POST(通电自检) 检查系统硬件资源的状态。POST 结束后,固件会搜索并加载位于第一块可用磁盘上的 MBR 或 EFI 分区的第一阶段引导程序,并把控制权交给引导程序。 +当你按下你机器上的电源键时,存储在主板 EEPROM 芯片中的固件初始化 POST(通电自检) 检查系统硬件资源的状态。POST 结束后,固件会搜索并加载位于第一块可用磁盘上的 MBR 或 EFI 分区的第一阶段引导程序,并把控制权交给引导程序。 #### MBR 方式 #### -MBR 是位于 BISO 设置中标记为可启动磁盘上的第一个扇区,大小是 512 个字节。 +MBR 是位于 BIOS 设置中标记为可启动磁盘上的第一个扇区,大小是 512 个字节。 - 前面 446 个字节:包括可执行代码和错误信息文本的引导程序 - 接下来的 64 个字节:四个分区(主分区或扩展分区)中每个分区一条记录的分区表。其中,每条记录标示了每个一个分区的状态(是否活跃)、大小以及开始和结束扇区。 -- 最后 2 个字节: MBR 有效性检查的魔数。 +- 最后 2 个字节: MBR 有效性检查的魔法数。 下面的命令对 MBR 进行备份(在本例中,/dev/sda 是第一块硬盘)。结果文件 mbr.bkp 在分区表被破坏、例如系统不可引导时能排上用场。 @@ -41,7 +41,7 @@ MBR 是位于 BISO 设置中标记为可启动磁盘上的第一个扇区,大 ![Backup MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Backup-MBR-in-Linux.png) -在 Linux 中备份 MBR +*在 Linux 中备份 MBR* **恢复 MBR** @@ -49,7 +49,7 @@ MBR 是位于 BISO 设置中标记为可启动磁盘上的第一个扇区,大 ![Restore MBR in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Restore-MBR-in-Linux.png) -在 Linux 中恢复 MBR +*在 Linux 中恢复 MBR* #### EFI/UEFI 方式 #### @@ -74,11 +74,11 @@ init 和 systemd 都是管理其它守护进程的守护进程(后台进程) ![Systemd and Init](http://www.tecmint.com/wp-content/uploads/2014/10/systemd-and-init.png) -Systemd 和 Init +*Systemd 和 Init* ### 自启动服务(SysVinit) ### -Linux 中运行等级的概念表示通过控制运行哪些服务来以不同方式使用系统。换句话说,运行等级控制着当前执行状态下可以完成什么任务(以及什么不能完成)。 +Linux 中运行等级通过控制运行哪些服务来以不同方式使用系统。换句话说,运行等级控制着当前执行状态下可以完成什么任务(以及什么不能完成)。 传统上,这个启动过程是基于起源于 System V Unix 的形式,通过执行脚本启动或者停止服务从而使机器进入指定的运行等级(换句话说,是一个不同的系统运行模式)。 @@ -88,47 +88,17 @@ Linux 中运行等级的概念表示通过控制运行哪些服务来以不同 除了启动系统进程,init 还会查看 /etc/inittab 来决定进入哪个运行等级。 -注:表格 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Runlevel Description
0 停止系统。运行等级 0 是一个用于快速关闭系统的特殊过渡状态。
1 别名为 s 或 S,这个运行等级有时候也称为维护模式。在这个运行等级启动的服务由于发行版不同而不同。通常用于正常系统操作损坏时低级别的系统维护。
2 多用户。在 Debian 系统及其衍生版中,这是默认的运行等级,还包括了一个图形化登录(如果有的话)。在基于红帽的系统中,这是没有网络的多用户模式。
3 在基于红帽的系统中,这是默认的多用户模式,运行除了图形化环境以外的所有东西。基于 Debian 的系统中通常不会使用这个运行等级以及等级 4 和 5。
4 通常默认情况下不使用,可用于自定制。
5 基于红帽的系统中,支持 GUI 登录的完全多用户模式。这个运行等级和等级 3 类似,但是有可用的 GUI 登录。
6 重启系统。
+ +|Runlevel| Description| +|--------|------------| +|0|停止系统。运行等级 0 是一个用于快速关闭系统的特殊过渡状态。| +|1|别名为 s 或 S,这个运行等级有时候也称为维护模式。在这个运行等级启动的服务由于发行版不同而不同。通常用于正常系统操作损坏时低级别的系统维护。| +|2|多用户。在 Debian 系统及其衍生版中,这是默认的运行等级,还包括了一个图形化登录(如果有的话)。在基于红帽的系统中,这是没有网络的多用户模式。| +|3|在基于红帽的系统中,这是默认的多用户模式,运行除了图形化环境以外的所有东西。基于 Debian 的系统中通常不会使用这个运行等级以及等级 4 和 5。| +|4|通常默认情况下不使用,可用于自定制。| +|5|基于红帽的系统中,支持 GUI 登录的完全多用户模式。这个运行等级和等级 3 类似,但是有可用的 GUI 登录。| +|6|重启系统。| + 要在运行等级之间切换,我们只需要使用 init 命令更改运行等级:init N(其中 N 是上面列出的一个运行等级)。 请注意这并不是运行中的系统切换运行等级的推荐方式,因为它不会给已经登录的用户发送警告(因而导致他们丢失工作以及进程异常终结)。 @@ -139,7 +109,7 @@ Linux 中运行等级的概念表示通过控制运行哪些服务来以不同 id:2:initdefault: -并用你喜欢的文本编辑器,例如 vim(本系列的[第二讲 : 如何在 Linux 中使用 vi/vim 编辑器][2]),更改数字 2 为想要的运行等级。 +并用你喜欢的文本编辑器,例如 vim(本系列的 [LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim][2]),更改数字 2 为想要的运行等级。 然后,以 root 用户执行 @@ -149,7 +119,7 @@ Linux 中运行等级的概念表示通过控制运行哪些服务来以不同 ![Change Runlevels in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Change-Runlevels-in-Linux.jpeg) -在 Linux 中更改运行等级 +*在 Linux 中更改运行等级* #### 使用 chkconfig 管理服务 #### @@ -165,7 +135,7 @@ Linux 中运行等级的概念表示通过控制运行哪些服务来以不同 ![Listing Runlevel Configuration](http://www.tecmint.com/wp-content/uploads/2014/10/Listing-Runlevel-Configuration.png) -列出运行等级配置 +*列出运行等级配置* 从上图中我们可以看出,当系统进入运行等级 2 到 5 的时候就会启动 postfix,而默认情况下运行等级 2 到 4 时会运行 mysqld。现在假设我们并不希望如此。 @@ -183,7 +153,7 @@ Linux 中运行等级的概念表示通过控制运行哪些服务来以不同 ![在 Linux 中启用/停用服务Enable Disable Services in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Enable-Disable-Services.png) -启用/停用服务 +*启用/停用服务* 我们在基于 Debian 的系统中使用 sysv-rc-conf 完成类似任务。 @@ -193,32 +163,32 @@ Linux 中运行等级的概念表示通过控制运行哪些服务来以不同 1. 我们可以用下面的命令查看启动 mdadm 时的运行等级。 - # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' + # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' -![查看运行中服务的运行等级Check Runlevel of Service Running](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Runlevel.png) + ![查看运行中服务的运行等级Check Runlevel of Service Running](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Runlevel.png) -查看运行中服务的运行等级 + *查看运行中服务的运行等级* 2. 我们使用 sysv-rc-conf 设置防止 mdadm 在运行等级2 之外的其它等级启动。只需根据需要(你可以使用上下左右按键)选中或取消选中(通过空格键)。 - # sysv-rc-conf + # sysv-rc-conf -![Sysv 运行等级配置SysV Runlevel Config](http://www.tecmint.com/wp-content/uploads/2014/10/SysV-Runlevel-Config.png) + ![Sysv 运行等级配置SysV Runlevel Config](http://www.tecmint.com/wp-content/uploads/2014/10/SysV-Runlevel-Config.png) -Sysv 运行等级配置 + *Sysv 运行等级配置* -然后输入 q 退出。 + 然后输入 q 退出。 3. 重启系统并从步骤 1 开始再操作一遍。 - # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' + # ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm' -![验证服务运行等级Verify Service Runlevel](http://www.tecmint.com/wp-content/uploads/2014/10/Verify-Service-Runlevel.png) + ![验证服务运行等级Verify Service Runlevel](http://www.tecmint.com/wp-content/uploads/2014/10/Verify-Service-Runlevel.png) -验证服务运行等级 + *验证服务运行等级* -从上图中我们可以看出 mdadm 配置为只在运行等级 2 上启动。 + 从上图中我们可以看出 mdadm 配置为只在运行等级 2 上启动。 ### 那关于 systemd 呢? ### @@ -232,11 +202,11 @@ systemd 是另外一个被多种主流 Linux 发行版采用的服务和系统 ![在 Linux 中查看运行中的进程Check All Running Processes in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/Check-All-Running-Processes.png) -查看运行中的进程 +*查看运行中的进程* LOAD 一列显示了单元(UNIT 列,显示服务或者由 systemd 维护的其它进程)是否正确加载,ACTIVE 和 SUB 列则显示了该单元当前的状态。 -显示服务当前状态的信息 +**显示服务当前状态的信息** 当 ACTIVE 列显示某个单元状态并非活跃时,我们可以使用以下命令查看具体原因。 @@ -248,7 +218,7 @@ LOAD 一列显示了单元(UNIT 列,显示服务或者由 systemd 维护的 ![查看 Linux 服务状态Check Linux Service Status](http://www.tecmint.com/wp-content/uploads/2014/10/Check-Service-Status.png) -查看服务状态 +*查看服务状态* 我们可以看到 media-samba.mount 失败的原因是 host dev1 上的挂载进程无法找到 //192.168.0.10/gacanepa 上的共享网络。 @@ -262,9 +232,9 @@ LOAD 一列显示了单元(UNIT 列,显示服务或者由 systemd 维护的 # systemctl restart media-samba.mount # systemctl status media-samba.mount -![启动停止服务Starting Stoping Services](http://www.tecmint.com/wp-content/uploads/2014/10/Starting-Stoping-Service.jpeg) +![启动停止服务](http://www.tecmint.com/wp-content/uploads/2014/10/Starting-Stoping-Service.jpeg) -启动停止服务 +*启动停止服务* **启用或停用某服务随系统启动** @@ -278,7 +248,7 @@ LOAD 一列显示了单元(UNIT 列,显示服务或者由 systemd 维护的 ![启用或停用服务](http://www.tecmint.com/wp-content/uploads/2014/10/Enabling-Disabling-Services.jpeg) -启用或停用服务 +*启用或停用服务* 你也可以用下面的命令查看某个服务的当前状态(启用或者停用)。 @@ -358,13 +328,13 @@ via: http://www.tecmint.com/linux-boot-process-and-manage-services/ 作者:[Gabriel Cánepa][a] 译者:[ictlyh](http://mutouxiaogui.cn/blog/) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 [a]:http://www.tecmint.com/author/gacanepa/ [1]:http://www.tecmint.com/systemd-replaces-init-in-linux/ -[2]:http://www.tecmint.com/vi-editor-usage/ +[2]:https://linux.cn/article-7165-1.html [3]:http://www.tecmint.com/chkconfig-command-examples/ [4]:http://www.tecmint.com/remove-unwanted-services-from-linux/ [5]:http://www.tecmint.com/chkconfig-command-examples/ From 00f2e0e11c865569941e20e1165d3e73ca4944e5 Mon Sep 17 00:00:00 2001 From: hkurj <663831938@qq.com> Date: Thu, 19 May 2016 22:15:12 +0800 Subject: [PATCH 521/582] ok --- ...action-packed experience with Wikipedia.md | 75 ------------------- ...action-packed experience with Wikipedia.md | 74 ++++++++++++++++++ 2 files changed, 74 insertions(+), 75 deletions(-) delete mode 100644 sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md create mode 100644 translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md diff --git a/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md b/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md deleted file mode 100644 index 4621c50a97..0000000000 --- a/sources/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md +++ /dev/null @@ -1,75 +0,0 @@ -hkurj translating -A four year, action-packed experience with Wikipedia -======================================================= - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/wikipedia_checkuser_lead.jpg?itok=4lVDjSSM) - - -I consider myself to be an Odia Wikimedian. I contribute [Odia][1] knowledge (the predominant language of the Indian state of [Odisha][2]) to many Wikimedia projects, like Wikipedia and Wikisource, by writing articles and correcting mistakes in articles. I also contribute to Hindi and English Wikipedia articles. - -![](https://opensource.com/sites/default/files/resize/1st_day_at_odia_wikipedia_workshop_image_source_facebook-200x133.jpg) - -My love for Wikimedia started while I was reading an article about the [Bangladesh Liberation war][3] on the English Wikipedia after my 10th board exam (like, an annual exam for 10th grade students in America). By mistake I clicked on a link that took me to an India Wikipedia article, and I started reading. Something was written in Odia on the lefthand side of the article, so I clicked on that, and reached a [ଭାରତ/Bhārat][4] article on the Odia Wikipedia. I was excited to find a Wikipedia article in my native language! - -![](https://opensource.com/sites/default/files/resize/introducing_wikipedia_at_google_io_image_by_gdg_bhubaneswar-251x166.png) - -A banner inviting readers to be part of the 2nd Bhubaneswar workshop on April 1, 2012 sparked my curiousity. I had never contributed to Wikipedia before, only used it for research, and I wasn't familiar with open source and the community contribution process. Plus, I was only 15 years old. I registered. There were many language enthusiasts at the workshop, and all older than me. My father encouraged me to the participate despite my fear; he has played an important role—he's not a Wikimedian, like me, but his encouragement has helped me change Odia Wikipedia and participate in community activities. - -I believe that knowledge about Odia language and literature needs to improve—there are many misconceptions and knowledge gaps—so, I help organize events and workshops for Odia Wikipedia. On my accomplished list at the point, I have: - -* initiated three major edit-a-thons in Odia Wikipedia: Women's Day 2015, Women's Day 2016, abd [Nabakalebara edit-a-thon 2015][5] -* initiated a photograph contest to get more [Rathyatra][6] images from all over the India -* represented Odia Wikipedia during two events by Google ([Google I/O extended][7] and Google Dev Fest) -* spoke at [Perception][8] 2015 and the first [Open Access India][9] meetup - -![](https://opensource.com/sites/default/files/resize/bengali_wikipedia_10th_anniversary_cc-by-sa4.0_biswaroop_ganguly-251x166.jpg) - -I was just an editor to Wikipedia projects until last year, in January 2015, when I attended [Bengali Wikipedia's 10th anniversary conference][10] and [Vishnu][11], the director of the [Center for Internet and Society][12] at the time, invited me to attend the [Train the Trainer][13] Program. I was inspired to start doing outreach for Odia Wikipedia and hosting meetups for [GLAM]14] activities and training new Wikimedians. These experience taught me how to work with a community of contributors. - -[Ravi][15], the director of Wikimedia India at the time, also played an important role in my journey. He trusted me and made me a part of [Wiki Loves Food][16], a public photo competition on Wikimedia Commons, and the organizing committee of [Wikiconference India 2016][17]. During Wiki Loves Food 2015, my team helped add 10,000+ CC BY-SA images on Wikimedia Commons. Ravi further solidified my commitment by sharing a lot of information with me about the Wikimedia movement, and his own journey, during [Odia Wikipedia's 13th anniversary][18]. - -Less than a year later, in December 2015, I became a Program Associate at the Center for Internet and Society's [Access to Knowledge program][19] (CIS-A2K). One of my proud moments was at a workshop in Puri, India where we helped bring 20 new Wikimedian editors to the Odia Wikimedia community. Now, I mentor Wikimedians during an informal meetup called [WikiTungi][20] Puri. I am working with this group to make Odia Wikiquotes a live project. I am also dedicated to bridging the gender gap in Odia Wikipedia. [Eight female editors][21] are now helping to organize meetups and workshops, and participate in the [Women's History month edit-a-thon][22]. - -During my brief but action-packed journey during the four years since, I have also been involved in the [Wikipedia Education Program][23], the [newsletter team][24], and two global edit-a-thons: [Art and Feminsim][25] and [Menu Challenge][26]. I look forward to the many more to come! - -I would also like to thank [Sameer][27] and [Anna][28] (both previous members of the Wikipedia Education Program). - ------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/4/my-open-source-story-sailesh-patnaik - -作者:[Sailesh Patnaik][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/saileshpat -[1]: https://en.wikipedia.org/wiki/Odia_language -[2]: https://en.wikipedia.org/wiki/Odisha -[3]: https://en.wikipedia.org/wiki/Bangladesh_Liberation_War -[4]: https://or.wikipedia.org/s/d2 -[5]: https://or.wikipedia.org/s/toq -[6]: https://commons.wikimedia.org/wiki/Commons:The_Rathyatra_Challenge -[7]: http://cis-india.org/openness/blog-old/odia-wikipedia-meets-google-developer-group -[8]: http://perception.cetb.in/events/odia-wikipedia-event/ -[9]: https://opencon2015kolkata.sched.org/speaker/sailesh.patnaik007 -[10]: https://meta.wikimedia.org/wiki/Bengali_Wikipedia_10th_Anniversary_Celebration_Kolkata -[11]: https://www.facebook.com/vishnu.vardhan.50746?fref=ts -[12]: http://cis-india.org/ -[13]: https://meta.wikimedia.org/wiki/CIS-A2K/Events/Train_the_Trainer_Program/2015 -[14]: https://en.wikipedia.org/wiki/Wikipedia:GLAM -[15]: https://www.facebook.com/ravidreams?fref=ts -[16]: https://commons.wikimedia.org/wiki/Commons:Wiki_Loves_Food -[17]: https://meta.wikimedia.org/wiki/WikiConference_India_2016 -[18]: https://or.wikipedia.org/s/sml -[19]: https://meta.wikimedia.org/wiki/CIS-A2K -[20]: https://or.wikipedia.org/s/xgx -[21]: https://or.wikipedia.org/s/ysg -[22]: https://or.wikipedia.org/s/ynj -[23]: https://outreach.wikimedia.org/wiki/Education -[24]: https://outreach.wikimedia.org/wiki/Talk:Education/News#Call_for_volunteers -[25]: https://en.wikipedia.org/wiki/User_talk:Saileshpat#Barnstar_for_Art_.26_Feminism_Challenge -[26]: https://opensource.com/life/15/11/tasty-translations-the-open-source-way -[27]: https://www.facebook.com/samirsharbaty?fref=ts -[28]: https://www.facebook.com/anna.koval.737?fref=ts diff --git a/translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md b/translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md new file mode 100644 index 0000000000..ce5bb497d7 --- /dev/null +++ b/translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md @@ -0,0 +1,74 @@ +在维基激动人心的四年 +======================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/wikipedia_checkuser_lead.jpg?itok=4lVDjSSM) + + +我自认为自己是个奥迪亚的维基人。我通过写文章和纠正错误的文章贡献[奥迪亚][1]知识(在印度的[奥里萨邦][2]的主要的语言 )给很多维基项目,像维基百科和维基文库,我也为用印地语和英语写的维基文章做贡献。 + +![](https://opensource.com/sites/default/files/resize/1st_day_at_odia_wikipedia_workshop_image_source_facebook-200x133.jpg) + +我对维基的爱从我第 10 次考试(像在美国的 10 年级学生的年级考试)之后看到的英文维基文章[孟加拉解放战争][3]开始。一不小心我打开了印度维基文章的链接,,并且开始阅读它. 在文章左边有用奥迪亚语写的东西, 所以我点击了一下, 打开了一篇在奥迪亚维基上的 [????/Bhārat][4] 文章. 发现了用母语写的维基让我很激动! + +![](https://opensource.com/sites/default/files/resize/introducing_wikipedia_at_google_io_image_by_gdg_bhubaneswar-251x166.png) + +一个邀请读者参加 2014 年 4 月 1 日第二次布巴内斯瓦尔的研讨会的标语引起了我的好奇。我过去从来没有为维基做过贡献, 只用它搜索过, 我并不熟悉开源和社区贡献流程。加上,我只有 15 岁。我注册了。在研讨会上有很多语言爱好者,我是中间最年轻的一个。尽管我害怕我父亲还是鼓励我去参与。他起了非常重要的作用—他不是一个维基媒体人,和我不一样,但是他的鼓励给了我改变奥迪亚维基的动力和参加社区活动的勇气。 + +我相信奥迪亚语言和文学需要改进很多错误的想法和知识缺口所以,我帮助组织关于奥迪亚维基的活动和和研讨会,我完成了如下列表: + +* 发起3次主要的 edit-a-thons 在奥迪亚维基:2015 年妇女节,2016年妇女节, abd [Nabakalebara edit-a-thon 2015][5] +* 在全印度发起了征集[檀车节][6]图片的比赛 +* 在谷歌的两大事件([谷歌I/O大会扩展][7]和谷歌开发节)中代表奥迪亚维基 +* 在2015[Perception][8]和第一次[Open Access India][9]会议 + +![](https://opensource.com/sites/default/files/resize/bengali_wikipedia_10th_anniversary_cc-by-sa4.0_biswaroop_ganguly-251x166.jpg) + +我只编辑维基项目到了去年,在 2015 年一月,当我出席[孟加拉语维基百科的十周年会议][10]和[毗瑟挐]活动时[11],[互联网和社会中心][12]主任,邀请我参加[培训培训师][13] 计划。我的灵感始于扩展奥迪亚维基,为[华丽][14]的活动举办的聚会和培训新的维基人。这些经验告诉我作为一个贡献者该如何为社区工作。 + +[Ravi][15],在当时维基的主任,在我的旅程也发挥了重要作用。他非常相信我让我参与到了[Wiki Loves Food][16],维基共享中的公共摄影比赛,组织方是[2016 印度维基会议][17]。在2015的 Loves Food 活动期间,我的团队在维基共享中加入了 10,000+ 有 CC BY-SA 协议的图片。Ravi 进一步巩固了我的承诺,和我分享很多关于维基媒体运动的信息,和他自己在 [奥迪亚维基百科13周年][18]的经历。 + +不到一年后,在 2015 年十二月,我成为了网络与社会中心的[获取知识的程序][19]的项目助理( CIS-A2K 运动)。我自豪的时刻之一是在普里的研讨会,我们从印度带了 20 个新的维基人来编辑奥迪亚维基媒体社区。现在,我的指导者在一个普里非正式聚会被叫作[WikiTungi][20]。我和这个小组一起工作,把 wikiquotes 变成一个真实的计划项目。在奥迪亚维基我也致力于缩小性别差距。[八个女编辑][21]也正帮助组织聚会和研讨会,参加 [Women's History month edit-a-thon][22]。 + +在我四年短暂而令人激动的旅行之中,我也参与到 [维基百科的教育项目][23],[通讯团队][24],两个全球的 edit-a-thons: [Art and Feminsim][25] 和 [Menu Challenge][26]。我期待着更多的到来! + +我还要感谢 [Sameer][27] 和 [Anna][28](都是之前维基百科教育计划的成员)。 + +------------------------------------------------------------------------------ + +via: https://opensource.com/life/16/4/my-open-source-story-sailesh-patnaik + +作者:[Sailesh Patnaik][a] +译者:[译者ID](https://github.com/hkurj) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/saileshpat +[1]: https://en.wikipedia.org/wiki/Odia_language +[2]: https://en.wikipedia.org/wiki/Odisha +[3]: https://en.wikipedia.org/wiki/Bangladesh_Liberation_War +[4]: https://or.wikipedia.org/s/d2 +[5]: https://or.wikipedia.org/s/toq +[6]: https://commons.wikimedia.org/wiki/Commons:The_Rathyatra_Challenge +[7]: http://cis-india.org/openness/blog-old/odia-wikipedia-meets-google-developer-group +[8]: http://perception.cetb.in/events/odia-wikipedia-event/ +[9]: https://opencon2015kolkata.sched.org/speaker/sailesh.patnaik007 +[10]: https://meta.wikimedia.org/wiki/Bengali_Wikipedia_10th_Anniversary_Celebration_Kolkata +[11]: https://www.facebook.com/vishnu.vardhan.50746?fref=ts +[12]: http://cis-india.org/ +[13]: https://meta.wikimedia.org/wiki/CIS-A2K/Events/Train_the_Trainer_Program/2015 +[14]: https://en.wikipedia.org/wiki/Wikipedia:GLAM +[15]: https://www.facebook.com/ravidreams?fref=ts +[16]: https://commons.wikimedia.org/wiki/Commons:Wiki_Loves_Food +[17]: https://meta.wikimedia.org/wiki/WikiConference_India_2016 +[18]: https://or.wikipedia.org/s/sml +[19]: https://meta.wikimedia.org/wiki/CIS-A2K +[20]: https://or.wikipedia.org/s/xgx +[21]: https://or.wikipedia.org/s/ysg +[22]: https://or.wikipedia.org/s/ynj +[23]: https://outreach.wikimedia.org/wiki/Education +[24]: https://outreach.wikimedia.org/wiki/Talk:Education/News#Call_for_volunteers +[25]: https://en.wikipedia.org/wiki/User_talk:Saileshpat#Barnstar_for_Art_.26_Feminism_Challenge +[26]: https://opensource.com/life/15/11/tasty-translations-the-open-source-way +[27]: https://www.facebook.com/samirsharbaty?fref=ts +[28]: https://www.facebook.com/anna.koval.737?fref=ts From 182bb5bcab56ab86b557cbf58f3bb29a925f73d4 Mon Sep 17 00:00:00 2001 From: hkurj <663831938@qq.com> Date: Thu, 19 May 2016 22:16:08 +0800 Subject: [PATCH 522/582] ok --- ...0415 A four year, action-packed experience with Wikipedia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md b/translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md index ce5bb497d7..b2be6a7a01 100644 --- a/translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md +++ b/translated/talk/my-open-source-story/20160415 A four year, action-packed experience with Wikipedia.md @@ -23,7 +23,7 @@ ![](https://opensource.com/sites/default/files/resize/bengali_wikipedia_10th_anniversary_cc-by-sa4.0_biswaroop_ganguly-251x166.jpg) -我只编辑维基项目到了去年,在 2015 年一月,当我出席[孟加拉语维基百科的十周年会议][10]和[毗瑟挐]活动时[11],[互联网和社会中心][12]主任,邀请我参加[培训培训师][13] 计划。我的灵感始于扩展奥迪亚维基,为[华丽][14]的活动举办的聚会和培训新的维基人。这些经验告诉我作为一个贡献者该如何为社区工作。 +我只编辑维基项目到了去年,在 2015 年一月,当我出席[孟加拉语维基百科的十周年会议][10]和[毗瑟挐][11]活动时,[互联网和社会中心][12]主任,邀请我参加[培训培训师][13] 计划。我的灵感始于扩展奥迪亚维基,为[华丽][14]的活动举办的聚会和培训新的维基人。这些经验告诉我作为一个贡献者该如何为社区工作。 [Ravi][15],在当时维基的主任,在我的旅程也发挥了重要作用。他非常相信我让我参与到了[Wiki Loves Food][16],维基共享中的公共摄影比赛,组织方是[2016 印度维基会议][17]。在2015的 Loves Food 活动期间,我的团队在维基共享中加入了 10,000+ 有 CC BY-SA 协议的图片。Ravi 进一步巩固了我的承诺,和我分享很多关于维基媒体运动的信息,和他自己在 [奥迪亚维基百科13周年][18]的经历。 From f051e571046137604fc03fff4817b3f234cd6dc1 Mon Sep 17 00:00:00 2001 From: cposture Date: Fri, 20 May 2016 01:29:44 +0800 Subject: [PATCH 523/582] Translating by cposture --- sources/tech/20160512 Bitmap in Linux Kernel.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160512 Bitmap in Linux Kernel.md b/sources/tech/20160512 Bitmap in Linux Kernel.md index b7e832ba0a..06297fa204 100644 --- a/sources/tech/20160512 Bitmap in Linux Kernel.md +++ b/sources/tech/20160512 Bitmap in Linux Kernel.md @@ -1,3 +1,4 @@ +[Translating By cposture 20160520] Data Structures in the Linux Kernel ================================================================================ From b00b9fbf4ed6ce3482532cfc2f5f0d5cf76428f8 Mon Sep 17 00:00:00 2001 From: Kevin Sicong Jiang Date: Thu, 19 May 2016 23:42:26 -0500 Subject: [PATCH 524/582] Translation in progress by KevinSJ (#3992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @KevinSJ 下次最好在本地的repo 里面提交一次,再发起 PR 。万一我手抖了弄错了就不好了 --- ...n introduction to data processing with Cassandra and Spark.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md b/sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md index 149ab6fbb7..46331a9ae5 100644 --- a/sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md +++ b/sources/tech/20160511 An introduction to data processing with Cassandra and Spark.md @@ -1,3 +1,4 @@ +Translating KevinSJ An introduction to data processing with Cassandra and Spark ============================================================== From 8ed7798fd9392bdfde0610edcca48ac86cf7331f Mon Sep 17 00:00:00 2001 From: FSSlc Date: Fri, 20 May 2016 22:58:49 +0800 Subject: [PATCH 525/582] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=A0=A1=E5=AF=B9?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160225 The Tao of project management.md | 106 ++++++++---------- 1 file changed, 45 insertions(+), 61 deletions(-) diff --git a/translated/tech/20160225 The Tao of project management.md b/translated/tech/20160225 The Tao of project management.md index e0238e2cee..758a7d0217 100644 --- a/translated/tech/20160225 The Tao of project management.md +++ b/translated/tech/20160225 The Tao of project management.md @@ -4,63 +4,55 @@ ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BUSINESS_orgchart1.png?itok=DGsp6jB5) -[道德经][1],[据确认][2]为公元前六世纪的圣人[老子][3]所编写,是现存被翻译的语言版本最多的经文。从[宗教][4]到[关于约会的有趣电影][5]等一切的一切,它都影响至深,作者们借用它来隐喻,以解释各种各样的事情(甚至是[编程][6])。 +[道德经][1],[被认为][2]是由圣人[老子][3]于公元前六世纪时所编写,是现存最为广泛翻译的经文之一。从[宗教][4]到[关于约会的有趣电影][5]等方方面面,它都深深地影响着它们,作者们借用它来做隐喻,以解释各种各样的事情(甚至是[编程][6])。 -当考虑开放性组织的项目管理时上面这段文字会立马浮现在我脑海。 +在思考有关开放性组织的项目管理时,我的脑海中便立马浮现出上面的这段文字。 -这听起来会很奇怪。要理解我为什么会有这种想法,应该是从读了*《开放性组织:点燃激情提升执行力》*这书开始的,它是红帽公司总裁、CEO Jim Whitehurst 所著作的关于企业文化和新领导榜样的宣言。在这本书里,Jim(给予其它红帽子人的一点帮助而) 解释了传统组织机构(“自上而下”的方式,做决定的是高层,命令下达到员工,而员工是通过薪酬和晋升来激励的)和开放组织机构(自下而上,领导专注于激励和鼓励,员工被充分授权使其发挥主观能动性而做得最好)的差异。 +这听起来可能会有点奇怪。若要理解我的这种想法从何而来,你应该读读 +*《开放性组织:点燃激情提升执行力》* 这本书,它是红帽公司总裁、首席执行官 Jim Whitehurst 所写的一本有关企业文化和新领导力范式的宣言。在这本书中,Jim(还有来自其他红帽人的一点帮助)解释了传统组织机构(一种 “自上而下” 的方式,来自高层的决策被传达到员工,而员工通过晋升和薪酬来激励)和开放性组织机构(一种 自下而上 的方式,领导专注于激励和鼓励,员工被充分授权以各尽其能)之间的差异。 -在开放性组织中的员工意味有激情、有目的性和有参与感,这些我认为是项目管理者应该关注的。 +在开放性组织中的员工都是被激情、目标和参与感所激励,这个观点正是我认为项目管理者所应该关注的。 -要解释这一切,让我们回到*道德经*上来。 +要解释这一切,我将从*道德经*上寻找依据。 ### 不要让工作职衔框住自身 ->道,可道, ->非常道; ->名,可名, ->非常名。 +>道,可道也,非恒道也。名,可名也,非恒名也。 ->无,名天地之始; ->有,名万物之母。 +>“无”,名天地之始;“有”,名万物之母。 [[1]][7] -项目管理到底是什么?做为一个项目管理者应该做些什么呢? +项目管理到底是什么?作为一个项目管理者应该做些什么呢? -如您所想,项目管理者的一部分工作就是管理项目:收集需求、项目相关人员的沟通、设置项目优先级、安排任务、帮助团队解决困扰。许多教育培训机构都可以教授如何做好项目管理,这些技能值得去学习。 +如您所想,项目管理者的一部分工作就是管理项目:收集需求、与项目相关人员沟通、设置项目优先级、安排任务、帮助团队解决困扰。许多机构都可以教你如何做好项目管理,并且这些技能你值得拥有。 -然而,在开放性组织中,字面上的项目管理技能仅仅只是项目管理者需要做到一小部分,这些组织需要更多的:勇气。如果您擅长于管理项目(或者是真的擅长于任何工作),那么您就进入了舒适区。这时候就是需要鼓起勇气开始尝试冒险之时。 +然而,在开放性组织中,字面上的项目管理技能仅仅只是项目管理者需要做到一小部分,这些组织需要更多其他的东西:即勇气。如果你擅长于管理项目(或者是真的擅长于任何工作),那么你就进入了舒适区。这时候就是需要鼓起勇气开始尝试冒险之时。 -您有勇气跨出舒适区吗?向权威人士提出提出挑战性问题,可能会引发对方的不快,也可能会发现一个好的方法,您有勇气这样做吗?有确定需要做的下一件事,然后真正去完成它的勇气吗?有主动去解决因为沟通空白而留下的问题的勇气吗?有去尝试各种事情的勇气吗?有失败的勇气吗? +您有勇气跨出舒适区吗?向权威人士提出挑战性的问题,可能会引发对方的不快,但也可能会开启一个更好的方法,您有勇气这样做吗?有确定需要做的下一件事,然后真正去完成它的勇气吗?有主动去解决因为交流的鸿沟而遗留下来的问题的勇气吗?有去尝试各种事情的勇气吗?有失败的勇气吗? -道德经的开篇(上面引用的)就表明词语、标签、名字这些是有限制的,也包括工作职衔。在开放性组织中,项目经理不仅仅是执行管理项目所需的机械任务,而且要帮助团队完成组织的使命,尽管只是定义。 +道德经的开篇(上面引用的)就表明词语、标签、名字这些是有限制的,当然也包括工作职衔。在开放性组织中,项目经理不仅仅是执行管理项目所需的机械任务,而且要帮助团队完成组织的使命,尽管这已经被限定了。 -### 结交正确的人 +### 联系起合适的人 ->三十辐共一毂, ->当其无, ->有车之用。 +>三十辐共一轂,当其无,有车之用。 [[11]][8] -当我开始学习要过渡到项目管理时,遇到最困难的一课就是并不是所有解决方案都是可接受的,甚至有的连预期都达不到。那对我来说是全新的,我喜欢所有的解决方案。但作为项目管理者,我的角色更多的是与人沟通--因此与那些有解决方案的人合作更有效率。 +当我过渡到项目管理的工作时,我必须学会的最为困难的一课是:并不是所有解决方案都是完全可接受的,甚至有的连预期都达不到。这对我来说是全新的,我喜欢所有的解决方案。但作为项目管理者,我的角色更多的是与人沟通--使得那些确实有解决方案的人可以更高效地合作。 -这决不是逃避责任和不负责的意思。这意味着可以很舒适的说,“我不知道,但我会给您找出答案”,然后就可迅速的关闭此循环。 +这并不是逃避责任或者不负责。这意味着可以很舒适的说,“我不知道,但我会给你找出答案”,然后就可迅速地结束这个循环。 -想像马车的车轮。无中心孔的稳定性和方向,辐条车轮会自行崩溃。在一个开放性的组织中,项目管理者可以帮助一个团队,把正确的人凝聚在一起,主持积极讨论,以保持团队一直前进。 +想像一下马车的车轮,如果没有毂中的孔洞所提供的稳定性和方向,辐条便会失去支持,车轮也会散架。在一个开放性的组织中,项目管理者可以通过把合适的人凝聚在一起,培养正确的讨论话题来帮助团队保持持续向前的动力。 -### 信任您的团队 +### 信任你的团队 ->太上, 不知有之; ->其次,亲而誉之; ->其次,畏之; ->其次,侮之。 +>太上,不知有之;其次,亲而誉之;其次,畏之;其次,侮之。 > >信不足焉,有不信焉。 > ->悠兮,其贵言。功成事遂,百姓皆谓“我自然”。 +>悠兮,其贵言。功成事遂,百姓皆谓:“我自然”。 [[17]][9] -[Rebecca Fernandez][10]曾经告诉我开放性组织的领导与其它最大的不同点,不是取得别人的信任,而是信任别人。 +[Rebecca Fernandez][10]曾经告诉我开放性组织的领导与其它组织的领导者最大的不同点在于,我们不取得别人的信任,而是信任别人。 开放性组织会雇佣那些非常聪明的,且对公司正在做的事情充满激情的人来做工作。为了能使他们能更好的工作,我们会提供其所需,并尊重他们的工作方式。 @@ -71,61 +63,54 @@ >上德无为而无以为;下德为之而有以为。 [[38]][11] -你认识总是忙忙碌碌的这种类型的人吗?认识因为有太多事情要做而看起来疲倦和压抑的人吗? +你认识那类总是极其忙碌的人吗?认识那些因为有太多事情要做而看起来疲倦和压抑的人吗? 不要成为那样的人。 -我知道说比做容易。要远离那种人最有帮助的事就是请记住大家都很忙。我没有那样讨厌的同事。 +我知道说比做容易。帮助我没有成为那类人的最重要的东西是:我时刻记着*大家都很忙*这件事。我没有一个那样无聊的同事。 -但需要有人在狂风暴雨中保持镇定;需要这样的人,能根据实际和一天工作时间的数量找到平衡参数的方式来做工作,并安慰团队让一切都好(因为这是我们正在做的事实)。 +但总需要有人成为在狂风暴雨中仍保持镇定的人。总需要有人能够宽慰团队告诉他们一切都会好起来,我们将在现实和一天中工作时间有限的情况下,找到方法使得任务能够完成(因为事实就是这样的,而且我们必须这样)。 -要成为那样的人。 +成为那样的人吧。 -道德经所说的,在我理解来就是总是夸夸其谈的人其实并没有干实事。如里您能把工作做的得心应手的话,那就说明您的工作做对了。 +对于上面这段道德经所说的,我的理解是那些总是谈论他或她正在做什么的人实际上并*没有时间*去做他们谈论的事。如果相比于你周围的人,你能把你的工作做的毫不费劲,那就说明你的工作做对了。 -### 作为一个文化传教士 +### 做一名文化传教士 ->上士闻道,勤而行之; ->中士闻道,若存若亡; ->下士闻道,大笑之。 ->不笑不足以为道。 +>上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以為道。 [[41]][12] -去年秋天,我跟着一群联邦雇员注册了一个工商管理硕士课程。当我开始介绍我公司的文化、价值和伦理框架以及公司如何运行时,我的同学和教授都认为我就像一个天真可爱的小姑娘在做着[许多甜美的白日梦][13],这就是我得到的直接印象。他们告诉我事情并不是如此的。他们告诉我应该进一步考察。 +去年秋天,我跟着一群联邦雇员注册了一个工商管理硕士课程。当我开始介绍我们公司的文化、价值和伦理框架时,我得到的直接印象是:我的同学和教授都认为我就像一个天真可爱的小姑娘,做着许多关于公司应该如何运作的[甜美白日梦][13]。他们告诉我事情不可能是它们看起来的那样,他们还告诉我应该进一步考察。 -所有我照做了。 +所以我照做了。 -到现在我发现:正是如此。 +然而我发现的是:事情*恰好*是他们看起来的那样。 -开放性组织的企业文化。应该跟随着企业的成长而时时维护那些文化,以使它随时精神焕发,充满斗志。我(和其它开源组织的成员)并不想过如我同学所描述的“为生活而工作”。我需要有激情和有目的性;我需要明白自己的日常工作如何对那些有价值的东西服务。 +在开放性组织,关于企业文化,人们应该随着企业的成长而时时维护那些文化,以使它随时精神焕发,充满斗志。我(和其它开源组织的成员)并不想过如我同学所描述的那样,“为生活而工作”。我需要有激情、有目标,需要明白自己的日常工作是如何对那些我所坚信的东西做贡献的。 -作为一个项目管理者,虽然你的工作与培养你的团队的文化无关,但是工作本身就是文化。 +作为一个项目管理者,你可能会认为在你的团队中,你的工作对培养你们公司的企业文化没有多少帮助。然而你的工作正是孕育文化本身。 -### 持续改善 +### Kaizen (持续改善) ->为学日益, ->为道日损, ->损之又损,以至于无为。无为而无不为,取天下常以无事 +>为学日益,为道日损。损之又损,以至于无为。无为而无不为。 [[48]][14] -虽然项目管理的一般领域都太过于专注最新最强大的的工具,但是您应该使用哪种工具这问题的答案总是一致的:“最简单的”。 +项目管理的一般领域都太过于专注最新、最强大的的工具,但对于应该使用哪种工具,这个问题的答案总是一致的:“最简单的”。 -例如,我将任务列表放在桌面的一个文本文件中,因为它很单纯,没有不必要的干扰。您想介绍给团队的,无论是何种工具、流程和程序都应该是能提高效率,排除障碍的,而不是引入额外的复杂性。所以不应该专注于工具本身,而应该专注于使用这些工具来解决的问题。 +例如,我将任务列表放在桌面的一个文本文件中,因为它很单纯,不会受到不必要的干扰。您想介绍给团队的,无论是何种工具、流程和程序都应该是能提高效率,排除障碍的,而不是引入额外的复杂性。所以与其专注于工具,还不如专注于要使用这些工具来解决的*问题*。 -我最喜欢的一个项目经理在一个灵活的世界是有自由扔什么不工作。在 Agile world 中我喜欢项目管理者能自由的做决定,抛出不能做的工作。这就是改善的概念,或叫“持续改进”。不要害怕尝试和失败。失败是我们在学习的过程中所用的标签,不能代表什么,但这是提高的唯一方式。 +作为一个项目经理,我最喜爱的部分是在敏捷世界中,我有自由抛弃那些没有成效的东西的权利。这与 kaizen 的概念相关,或叫 “持续改进”。不要害怕尝试和失败。失败是我们在探索什么能够起作用,什么不能起作用的过程中所用的标签,这是提高的唯一方式。 - -最好的过程都不是一蹴而就的。作为项目管理者,您应该帮助您的团队,支持团队让其自己提升,而不是强迫团队。 +最好的过程都不是一蹴而就的。作为项目管理者,你应该通过支持他们,而不是强迫他们去做某些事来帮助你的团队。 ### 实践 >天下皆谓我"道"大,似不肖。夫唯大,故似不肖。若肖,久矣其细也夫! [[67]][15] -我相信开放性组织正在做的。开放性组织在管理领域的工作几乎和他们所提供的产品和服务一样重要。我们有机会以身作则,激发他人的激情和目的,创造激励和充分授权的工作环境。 - -我鼓励您们找到办法把这些想法融入到自己的项目和团队中,看看会发生什么。了解组织的使命和您的项目怎么样帮助它们。鼓起勇气,尝试一些不好的事情,同时不要忘记和我们的社区分享你所学到的经验,这样我们就可以继续改进。 +我相信开放性组织正在做的事。开放性组织在管理领域的工作几乎与他们提供的产品和服务一样重要。我们有机会以身作则,激发他人的激情和目的,创造激励和充分授权的工作环境。 +我鼓励你们找到办法把这些想法融入到自己的项目和团队中,看看会发生什么。了解你们组织的使命,知晓你的项目是如何为这个使命做贡献的。鼓起勇气,尝试某些看起来没有多少成效的事,同时不要忘记和我们的社区分享你所学到的经验,这样我们就可以继续改进。 -------------------------------------------------------------------------------- @@ -133,7 +118,7 @@ via: https://opensource.com/open-organization/16/2/tao-project-management 作者:[Allison Matlack][a] 译者:[runningwater](https://github.com/runningwater) -校对:[校对者ID](https://github.com/校对者ID) +校对:[FSSlc](https://github.com/FSSlc) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -146,11 +131,10 @@ via: https://opensource.com/open-organization/16/2/tao-project-management [6]: http://www.mit.edu/~xela/tao.html [7]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#1 [8]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#11 -[9]:http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#17 +[9]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#17 [10]: https://opensource.com/users/rebecca [11]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#38 [12]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#41 [13]: https://opensource.com/open-organization/15/9/reflections-open-organization-starry-eyed-dreamer [14]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#48 -[15]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#67 - +[15]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#67 \ No newline at end of file From adb009ba1e6a6cefcc6ef150cb3c8b4e6fd90596 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 21 May 2016 10:16:31 +0800 Subject: [PATCH 526/582] =?UTF-8?q?20160521-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit python3 , encrypt , --- ...160518 Python 3: An Intro to Encryption.md | 278 ++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 sources/tech/20160518 Python 3: An Intro to Encryption.md diff --git a/sources/tech/20160518 Python 3: An Intro to Encryption.md b/sources/tech/20160518 Python 3: An Intro to Encryption.md new file mode 100644 index 0000000000..43c042d5c1 --- /dev/null +++ b/sources/tech/20160518 Python 3: An Intro to Encryption.md @@ -0,0 +1,278 @@ +Python 3: An Intro to Encryption +=================================== + +Python 3 doesn’t have very much in its standard library that deals with encryption. Instead, you get hashing libraries. We’ll take a brief look at those in the chapter, but the primary focus will be on the following 3rd party packages: PyCrypto and cryptography. We will learn how to encrypt and decrypt strings with both of these libraries. + +--- + +### Hashing + +If you need secure hashes or message digest algorithms, then Python’s standard library has you covered in the **hashlib** module. It includes the FIPS secure hash algorithms SHA1, SHA224, SHA256, SHA384, and SHA512 as well as RSA’s MD5 algorithm. Python also supports the adler32 and crc32 hash functions, but those are in the **zlib** module. + +One of the most popular uses of hashes is storing the hash of a password instead of the password itself. Of course, the hash has to be a good one or it can be decrypted. Another popular use case for hashes is to hash a file and then send the file and its hash separately. Then the person receiving the file can run a hash on the file to see if it matches the hash that was sent. If it does, then that means no one has changed the file in transit. + + +Let’s try creating an md5 hash: + +``` +>>> import hashlib +>>> md5 = hashlib.md5() +>>> md5.update('Python rocks!') +Traceback (most recent call last): + File "", line 1, in + md5.update('Python rocks!') +TypeError: Unicode-objects must be encoded before hashing +>>> md5.update(b'Python rocks!') +>>> md5.digest() +b'\x14\x82\xec\x1b#d\xf6N}\x16*+[\x16\xf4w' +``` + +Let’s take a moment to break this down a bit. First off, we import **hashlib** and then we create an instance of an md5 HASH object. Next we add some text to the hash object and we get a traceback. It turns out that to use the md5 hash, you have to pass it a byte string instead of a regular string. So we try that and then call it’s **digest** method to get our hash. If you prefer the hex digest, we can do that too: + +``` +>>> md5.hexdigest() +'1482ec1b2364f64e7d162a2b5b16f477' +``` + +There’s actually a shortcut method of creating a hash, so we’ll look at that next when we create our sha512 hash: + +``` +>>> sha = hashlib.sha1(b'Hello Python').hexdigest() +>>> sha +'422fbfbc67fe17c86642c5eaaa48f8b670cbed1b' +``` + +As you can see, we can create our hash instance and call its digest method at the same time. Then we print out the hash to see what it is. I chose to use the sha1 hash as it has a nice short hash that will fit the page better. But it’s also less secure, so feel free to try one of the others. + +--- + +### Key Derivation + +Python has pretty limited support for key derivation built into the standard library. In fact, the only method that hashlib provides is the **pbkdf2_hmac** method, which is the PKCS#5 password-based key derivation function 2. It uses HMAC as its psuedorandom function. You might use something like this for hashing your password as it supports a salt and iterations. For example, if you were to use SHA-256 you would need a salt of at least 16 bytes and a minimum of 100,000 iterations. + +As a quick aside, a salt is just random data that you use as additional input into your hash to make it harder to “unhash” your password. Basically it protects your password from dictionary attacks and pre-computed rainbow tables. + +Let’s look at a simple example: + +``` +>>> import binascii +>>> dk = hashlib.pbkdf2_hmac(hash_name='sha256', + password=b'bad_password34', + salt=b'bad_salt', + iterations=100000) +>>> binascii.hexlify(dk) +b'6e97bad21f6200f9087036a71e7ca9fa01a59e1d697f7e0284cd7f9b897d7c02' +``` + +Here we create a SHA256 hash on a password using a lousy salt but with 100,000 iterations. Of course, SHA is not actually recommended for creating keys of passwords. Instead you should use something like **scrypt** instead. Another good option would be the 3rd party package, bcrypt. It is designed specifically with password hashing in mind. + +--- + +### PyCryptodome + +The PyCrypto package is probably the most well known 3rd party cryptography package for Python. Sadly PyCrypto’s development stopping in 2012. Others have continued to release the latest version of PyCryto so you can still get it for Python 3.5 if you don’t mind using a 3rd party’s binary. For example, I found some binary Python 3.5 wheels for PyCrypto on Github (https://github.com/sfbahr/PyCrypto-Wheels). + +Fortunately there is a fork of the project called PyCrytodome that is a drop-in replacement for PyCrypto. To install it for Linux, you can use the following pip command: + + +``` +pip install pycryptodome +``` + +Windows is a bit different: + +``` +pip install pycryptodomex +``` + +If you run into issues, it’s probably because you don’t have the right dependencies installed or you need a compiler for Windows. Check out the PyCryptodome [website][1] for additional installation help or to contact support. + +Also worth noting is that PyCryptodome has many enhancements over the last version of PyCrypto. It is well worth your time to visit their home page and see what new features exist. + +### Encrypting a String + +Once you’re done checking their website out, we can move on to some examples. For our first trick, we’ll use DES to encrypt a string: + +``` +>>> from Crypto.Cipher import DES +>>> key = 'abcdefgh' +>>> def pad(text): + while len(text) % 8 != 0: + text += ' ' + return text +>>> des = DES.new(key, DES.MODE_ECB) +>>> text = 'Python rocks!' +>>> padded_text = pad(text) +>>> encrypted_text = des.encrypt(text) +Traceback (most recent call last): + File "", line 1, in + encrypted_text = des.encrypt(text) + File "C:\Programs\Python\Python35-32\lib\site-packages\Crypto\Cipher\blockalgo.py", line 244, in encrypt + return self._cipher.encrypt(plaintext) +ValueError: Input strings must be a multiple of 8 in length +>>> encrypted_text = des.encrypt(padded_text) +>>> encrypted_text +b'>\xfc\x1f\x16x\x87\xb2\x93\x0e\xfcH\x02\xd59VQ' +``` + +This code is a little confusing, so let’s spend some time breaking it down. First off, it should be noted that the key size for DES encryption is 8 bytes, which is why we set our key variable to a size letter string. The string that we will be encrypting must be a multiple of 8 in length, so we create a function called **pad** that can pad any string out with spaces until it’s a multiple of 8. Next we create an instance of DES and some text that we want to encrypt. We also create a padded version of the text. Just for fun, we attempt to encrypt the original unpadded variant of the string which raises a **ValueError**. Here we learn that we need that padded string after all, so we pass that one in instead. As you can see, we now have an encrypted string! + +Of course the example wouldn’t be complete if we didn’t know how to decrypt our string: + +``` +>>> des.decrypt(encrypted_text) +b'Python rocks! ' +``` + +Fortunately, that is very easy to accomplish as all we need to do is call the **decrypt** method on our des object to get our decrypted byte string back. Our next task is to learn how to encrypt and decrypt a file with PyCrypto using RSA. But first we need to create some RSA keys! + +### Create an RSA Key + +If you want to encrypt your data with RSA, then you’ll need to either have access to a public / private RSA key pair or you will need to generate your own. For this example, we will just generate our own. Since it’s fairly easy to do, we will do it in Python’s interpreter: + +``` +>>> from Crypto.PublicKey import RSA +>>> code = 'nooneknows' +>>> key = RSA.generate(2048) +>>> encrypted_key = key.exportKey(passphrase=code, pkcs=8, + protection="scryptAndAES128-CBC") +>>> with open('/path_to_private_key/my_private_rsa_key.bin', 'wb') as f: + f.write(encrypted_key) +>>> with open('/path_to_public_key/my_rsa_public.pem', 'wb') as f: + f.write(key.publickey().exportKey()) +``` + +First we import **RSA** from **Crypto.PublicKey**. Then we create a silly passcode. Next we generate an RSA key of 2048 bits. Now we get to the good stuff. To generate a private key, we need to call our RSA key instance’s **exportKey** method and give it our passcode, which PKCS standard to use and which encryption scheme to use to protect our private key. Then we write the file out to disk. + +Next we create our public key via our RSA key instance’s **publickey** method. We used a shortcut in this piece of code by just chaining the call to exportKey with the publickey method call to write it to disk as well. + +### Encrypting a File + +Now that we have both a private and a public key, we can encrypt some data and write it to a file. Here’s a pretty standard example: + +``` +from Crypto.PublicKey import RSA +from Crypto.Random import get_random_bytes +from Crypto.Cipher import AES, PKCS1_OAEP + +with open('/path/to/encrypted_data.bin', 'wb') as out_file: + recipient_key = RSA.import_key( + open('/path_to_public_key/my_rsa_public.pem').read()) + session_key = get_random_bytes(16) + + cipher_rsa = PKCS1_OAEP.new(recipient_key) + out_file.write(cipher_rsa.encrypt(session_key)) + + cipher_aes = AES.new(session_key, AES.MODE_EAX) + data = b'blah blah blah Python blah blah' + ciphertext, tag = cipher_aes.encrypt_and_digest(data) + + out_file.write(cipher_aes.nonce) + out_file.write(tag) + out_file.write(ciphertext) +``` + +The first three lines cover our imports from PyCryptodome. Next we open up a file to write to. Then we import our public key into a variable and create a 16-byte session key. For this example we are going to be using a hybrid encryption method, so we use PKCS#1 OAEP, which is Optimal asymmetric encryption padding. This allows us to write a data of an arbitrary length to the file. Then we create our AES cipher, create some data and encrypt the data. This will return the encrypted text and the MAC. Finally we write out the nonce, MAC (or tag) and the encrypted text. + +As an aside, a nonce is an arbitrary number that is only used for crytographic communication. They are usually random or pseudorandom numbers. For AES, it must be at least 16 bytes in length. Feel free to try opening the encrypted file in your favorite text editor. You should just see gibberish. + +Now let’s learn how to decrypt our data: + +``` +from Crypto.PublicKey import RSA +from Crypto.Cipher import AES, PKCS1_OAEP + +code = 'nooneknows' + +with open('/path/to/encrypted_data.bin', 'rb') as fobj: + private_key = RSA.import_key( + open('/path_to_private_key/my_rsa_key.pem').read(), + passphrase=code) + + enc_session_key, nonce, tag, ciphertext = [ fobj.read(x) + for x in (private_key.size_in_bytes(), + 16, 16, -1) ] + + cipher_rsa = PKCS1_OAEP.new(private_key) + session_key = cipher_rsa.decrypt(enc_session_key) + + cipher_aes = AES.new(session_key, AES.MODE_EAX, nonce) + data = cipher_aes.decrypt_and_verify(ciphertext, tag) + +print(data) +``` + +If you followed the previous example, this code should be pretty easy to parse. In this case, we are opening our encrypted file for reading in binary mode. Then we import our private key. Note that when you import the private key, you must give it your passcode. Otherwise you will get an error. Next we read in our file. You will note that we read in the private key first, then the next 16 bytes for the nonce, which is followed by the next 16 bytes which is the tag and finally the rest of the file, which is our data. + +Then we need to decrypt our session key, recreate our AES key and decrypt the data. + +You can use PyCryptodome to do much, much more. However we need to move on and see what else we can use for our cryptographic needs in Python. + +--- + +### The cryptography package + +The **cryptography** package aims to be “cryptography for humans” much like the **requests** library is “HTTP for Humans”. The idea is that you will be able to create simple cryptographic recipes that are safe and easy-to-use. If you need to, you can drop down to low=level cryptographic primitives, which require you to know what you’re doing or you might end up creating something that’s not very secure. + +If you are using Python 3.5, you can install it with pip, like so: + +``` +pip install cryptography +``` + +You will see that cryptography installs a few dependencies along with itself. Assuming that they all completed successfully, we can try encrypting some text. Let’s give the **Fernet** symmetric encryption algorithm. The Fernet algorithm guarantees that any message you encrypt with it cannot be manipulated or read without the key you define. Fernet also support key rotation via **MultiFernet**. Let’s take a look at a simple example: + +``` +>>> from cryptography.fernet import Fernet +>>> cipher_key = Fernet.generate_key() +>>> cipher_key +b'APM1JDVgT8WDGOWBgQv6EIhvxl4vDYvUnVdg-Vjdt0o=' +>>> cipher = Fernet(cipher_key) +>>> text = b'My super secret message' +>>> encrypted_text = cipher.encrypt(text) +>>> encrypted_text +(b'gAAAAABXOnV86aeUGADA6mTe9xEL92y_m0_TlC9vcqaF6NzHqRKkjEqh4d21PInEP3C9HuiUkS9f' + b'6bdHsSlRiCNWbSkPuRd_62zfEv3eaZjJvLAm3omnya8=') +>>> decrypted_text = cipher.decrypt(encrypted_text) +>>> decrypted_text +b'My super secret message' +``` + +First off we need to import Fernet. Next we generate a key. We print out the key to see what it looks like. As you can see, it’s a random byte string. If you want, you can try running the **generate_key** method a few times. The result will always be different. Next we create our Fernet cipher instance using our key. + +Now we have a cipher we can use to encrypt and decrypt our message. The next step is to create a message worth encrypting and then encrypt it using the **encrypt** method. I went ahead and printed our the encrypted text so you can see that you can no longer read the text. To **decrypt** our super secret message, we just call decrypt on our cipher and pass it the encrypted text. The result is we get a plain text byte string of our message. + +--- + +### Wrapping Up + +This chapter barely scratched the surface of what you can do with PyCryptodome and the cryptography packages. However it does give you a decent overview of what can be done with Python in regards to encrypting and decrypting strings and files. Be sure to read the documentation and start experimenting to see what else you can do! + +--- + +### Related Reading + +PyCrypto Wheels for Python 3 on [github][2] + +PyCryptodome [documentation][3] + +Python’s Cryptographic [Services][4] + +The cryptography package’s [website][5] + +------------------------------------------------------------------------------ + +via: http://www.blog.pythonlibrary.org/2016/05/18/python-3-an-intro-to-encryption/ + +作者:[Mike][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.blog.pythonlibrary.org/author/mld/ +[1]: http://pycryptodome.readthedocs.io/en/latest/ +[2]: https://github.com/sfbahr/PyCrypto-Wheels +[3]: http://pycryptodome.readthedocs.io/en/latest/src/introduction.html +[4]: https://docs.python.org/3/library/crypto.html +[5]: https://cryptography.io/en/latest/ From e09c30b9119649247e05e6b3c5b51628e72ab03f Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 21 May 2016 15:21:53 +0800 Subject: [PATCH 527/582] =?UTF-8?q?20160521-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docker , Raspberry PI --- ... Rapid prototyping with docker-compose.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20160512 Rapid prototyping with docker-compose.md diff --git a/sources/tech/20160512 Rapid prototyping with docker-compose.md b/sources/tech/20160512 Rapid prototyping with docker-compose.md new file mode 100644 index 0000000000..0c67223697 --- /dev/null +++ b/sources/tech/20160512 Rapid prototyping with docker-compose.md @@ -0,0 +1,142 @@ + +Rapid prototyping with docker-compose +======================================== + +In this write-up we'll look at a Node.js prototype for **finding stock of the Raspberry PI Zero** from three major outlets in the UK. + +I wrote the code and deployed it to an Ubuntu VM in Azure within a single evening of hacking. Docker and the docker-compose tool made the deployment and update process extremely quick. + +### Remember linking? + +If you've already been through the [Hands-On Docker tutorial][1] then you will have experience linking Docker containers on the command line. Linking a Node hit counter to a Redis server on the command line may look like this: + +``` +$ docker run -d -P --name redis1 +$ docker run -d hit_counter -p 3000:3000 --link redis1:redis +``` + +Now imagine your application has three tiers + +- Web front-end +- Batch tier for processing long running tasks +- Redis or mongo database + +Explicit linking through `--link` is just about manageable with a couple of containers, but can get out of hand as we add more tiers or containers to the application. + +### Enter docker-compose + +![](http://blog.alexellis.io/content/images/2016/05/docker-compose-logo-01.png) +>Docker Compose logo + +The docker-compose tool is part of the standard Docker Toolbox and can also be downloaded separately. It provides a rich set of features to configure all of an application's parts through a plain-text YAML file. + +The above example would look like this: + +``` +version: "2.0" +services: + redis1: + image: redis + hit_counter: + build: ./hit_counter + ports: + - 3000:3000 +``` + +From Docker 1.10 onwards we can take advantage of network overlays to help us scale out across multiple hosts. Prior to this linking only worked across a single host. The `docker-compose scale` command can be used to bring on more computing power as the need arises. + +>View the [docker-compose][2] reference on docker.com + +### Real-world example: Raspberry PI Stock Alert + +![](http://blog.alexellis.io/content/images/2016/05/Raspberry_Pi_Zero_ver_1-3_1_of_3_large.JPG) +>The new Raspberry PI Zero v1.3 image courtesy of Pimoroni + +There is a huge buzz around the Raspberry PI Zero - a tiny microcomputer with a 1GHz CPU and 512MB RAM capable of running full Linux, Docker, Node.js, Ruby and many other popular open-source tools. One of the best things about the PI Zero is that costs only 5 USD. That also means that stock gets snapped up really quickly. + +*If you want to try Docker or Swarm on the PI check out the tutorial below.* + +>[Docker Swarm on the PI Zero][3] + +### Original site: whereismypizero.com + +I found a webpage which used screen scraping to find whether 4-5 of the most popular outlets had stock. + +- The site contained a static HTML page +- Issued one XMLHttpRequest per outlet accessing /public/api/ +- The server issued the HTTP request to each shop and performed the scraping + +Every call to /public/api/ took 3 seconds to execute and using Apache Bench (ab) I was only able to get through 0.25 requests per second. + +### Reinventing the wheel + +The retailers didn't seem to mind whereismypizero.com scraping their sites for stock, so I set about writing a similar tool from the ground up. I had the intention of handing a much higher amount of requests per second through caching and de-coupling the scrape from the web tier. Redis was the perfect tool for the job. It allowed me to set an automatically expiring key/value pair (i.e. a simple cache) and also to transmit messages between Node processes through pub/sub. + +>Fork or star the code on Github: [alexellis/pi_zero_stock][4] + +If you've worked with Node.js before then you will know it is single-threaded and that any CPU intensive tasks such as parsing HTML or JSON could lead to a slow-down. One way to mitigate that is to use a second worker process and a Redis messaging channel as connective tissue between this and the web tier. + +- Web tier + -Gives 200 for cache hit (Redis key exists for store) + -Gives 202 for cache miss (Redis key doesn't exist, so issues message) + -Since we are only ever reading a Redis key the response time is very quick. +- Stock Fetcher + -Performs HTTP request + -Scrapes for different types of web stores + -Updates a Redis key with a cache expire of 60 seconds + -Also locks a Redis key to prevent too many in-flight HTTP requests to the web stores. +``` +version: "2.0" +services: + web: + build: ./web/ + ports: + - "3000:3000" + stock_fetch: + build: ./stock_fetch/ + redis: + image: redis +``` + +*The docker-compose.yml file from the example.* + +Once I had this working locally deploying to an Ubuntu 16.04 image in the cloud (Azure) took less than 5 minutes. I logged in, cloned the repository and typed in `docker compose up -d`. That was all it took - rapid prototyping a whole system doesn't get much better. Anyone (including the owner of whereismypizero.com) can deploy the new solution with just two lines: + +``` +$ git clone https://github.com/alexellis/pi_zero_stock +$ docker-compose up -d +``` + +Updating the site is easy and just involves a `git pull` followed by a `docker-compose up -d` with the `--build` argument passed along. + +If you are still linking your Docker containers manually, try Docker Compose for yourself or my code below: + +>Fork or star the code on Github: [alexellis/pi_zero_stock][5] + +### Check out the test site + +The test site is currently deployed now using docker-compose. + +>[stockalert.alexellis.io][6] + +![](http://blog.alexellis.io/content/images/2016/05/Screen-Shot-2016-05-16-at-22-34-26-1.png) + +Preview as of 16th of May 2016 + +---------- +via: http://blog.alexellis.io/rapid-prototype-docker-compose/ + +作者:[Alex Ellis][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://blog.alexellis.io/author/alex/ +[1]: http://blog.alexellis.io/handsondocker +[2]: https://docs.docker.com/compose/compose-file/ +[3]: http://blog.alexellis.io/dockerswarm-pizero/ +[4]: https://github.com/alexellis/pi_zero_stock +[5]: https://github.com/alexellis/pi_zero_stock +[6]: http://stockalert.alexellis.io/ + From abe380f19dfca8d160106bcd204f662dd6f002c8 Mon Sep 17 00:00:00 2001 From: Ezio Date: Sun, 22 May 2016 19:47:46 +0800 Subject: [PATCH 528/582] =?UTF-8?q?20160522-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cloud , storage --- ...sharing: integrating Pydio and ownCloud.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sources/tech/20160519 The future of sharing: integrating Pydio and ownCloud.md diff --git a/sources/tech/20160519 The future of sharing: integrating Pydio and ownCloud.md b/sources/tech/20160519 The future of sharing: integrating Pydio and ownCloud.md new file mode 100644 index 0000000000..0461fda34d --- /dev/null +++ b/sources/tech/20160519 The future of sharing: integrating Pydio and ownCloud.md @@ -0,0 +1,65 @@ +The future of sharing: integrating Pydio and ownCloud +========================================================= + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BIZ_darwincloud_520x292_0311LL.png?itok=5yWIaEDe) +>Image by : +opensource.com + +The open source file sharing ecosystem accommodates a large variety of projects, each supplying their own solution, and each with a different approach. There are a lot of reasons to choose an open source solution rather than commercial solutions like Dropbox, Google Drive, iCloud, or OneDrive. These solutions offer to take away worries about managing your data but come with certain limitations, including a lack of control and integration into existing infrastructure. + +There are quite a few file sharing and sync alternatives available to users, including ownCloud and Pydio. + +### Pydio + +The Pydio (Put your data in orbit) project was founded by musician Charles du Jeu, who needed a way to share large audio files with his bandmates. [Pydio][1] is a file sharing and sync solution, with multiple storage backends, designed with developers and system administrators in mind. It has over one million downloads worldwide and has been translated into 27 languages. + +Open source from the very start, the project grew organically on [SourceForge][2] and now finds its home on [GitHub][3]. + +The user interface is based on Google's [Material Design][4]. Users can use an existing legacy file infrastructure or set up Pydio with an on-premise approach, and use web, desktop, and mobile applications to manage their assets everywhere. For administrators, the fine-grained access rights are a powerful tool for configuring access to assets.​ + +On the [Pydio community page][5], you will find several resources to get you up to speed quickly. The Pydio website gives some clear guidelines on [how to contribute][6] to the Pydio repositories on GitHub. The [forum][7] includes sections for developers and community. + +### ownCloud + +[ownCloud][8] has over 8 million users worldwide and is an open source, self-hosted file sync and sharing technology. There are sync clients for all major platforms as well as WebDAV through a web interface. ownCloud has an easy to use interface, powerful administrator tools, and extensive sharing and collaboration features—designed to give users control over their data. + +ownCloud's open architecture is extensible via an API and offers a platform for apps. Over 300 applications have been written, featuring capabilities like handling calendar, contacts, mail, music, passwords, notes, and many other types of data. ownCloud provides security, scales from a Raspberry Pi to a cluster with petabytes of storage and millions of users, and is developed by an international community of hundreds of contributors. + +### Federated sharing + +File sharing is starting to shift toward teamwork, and standardization provides a solid basis for such collaboration. + +Federated sharing, a new open standard supported by the [OpenCloudMesh][9] project, is a step in that direction. Among other things, it allows for the sharing of files and folders between servers that support this, like Pydio and ownCloud instances. + +First introduced in ownCloud 7, this server-to-server sharing allows you to mount file shares from remote servers, in effect creating your own cloud of clouds. You can create direct share links with users on other servers that support federated cloud sharing. + +Implementing this new API allows for deeper integration between storage solutions while maintaining the security, control, and attributes of the original platforms. + +"Exchanging and sharing files is something that is essential today and tomorrow," ownCloud founder Frank Karlitschek said. "Because of that, it is important to do this in a federated and distributed way without centralized data silos. The number one design goal [of federated sharing] is to enable sharing in the most seamless and easiest way while protecting the security and privacy of the users." + +### What's next? + +An initiative like OpenCloudMesh will extend this new open standard of file sharing through cooperation of institutions and companies like Pydio and ownCloud. ownCloud 9 has already introduced the ability for federated servers to exchange user lists, enabling the same seamless auto-complete experience you have with users on your own server. In the future, the idea of having a (federated!) set of central address book servers that can be used to search for others' federated cloud IDs might bring inter-cloud collaboration to an even higher level. + +The initiative will undoubtedly contribute to already growing open technical community within which members can easily discuss, develop, and contribute to the "OCM sharing API" as a vendor-neutral protocol. All leading partners of the OCM project are fully committed to the open API design principle and welcome other open source file share and sync communities to participate and join the connected cloud. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/business/16/5/sharing-files-pydio-owncloud + +作者:[ben van 't ende][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/benvantende +[1]: https://pydio.com/ +[2]: https://sourceforge.net/projects/ajaxplorer/ +[3]: https://github.com/pydio/ +[4]: https://www.google.com/design/spec/material-design/introduction.html +[5]: https://pydio.com/en/community +[6]: https://pydio.com/en/community/contribute +[7]: https://pydio.com/forum/f +[8]: https://owncloud.org/ +[9]: https://wiki.geant.org/display/OCM/Open+Cloud+Mesh From 35ac596b5b89c7bde9c3cccf7e88e63a4438ba67 Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 23 May 2016 09:23:28 +0800 Subject: [PATCH 529/582] =?UTF-8?q?20160523-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ubuntu,snap --- ...S UBUNTU’S SNAP PACKAGING REALLY SECURE.md | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md diff --git a/sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md b/sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md new file mode 100644 index 0000000000..2752b5855f --- /dev/null +++ b/sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md @@ -0,0 +1,54 @@ +IS UBUNTU’S SNAP PACKAGING REALLY SECURE +========================================== + + +The recent release of [Ubuntu 16.04 LTS has brought a number of new features][1], one of which we covered was the [inclusion of ZFS][2]. Another feature that many people have been talking about is the Snap package format. But according to one of the developers of [CoreOS][3], the Snap packages are not as safe as the claim. + +### WHAT ARE SNAP PACKAGES? + +Snap packages are inspired by containers. This new package format allows [developers to issue updates for applications running on Ubuntu Long-Term-Support (LTS) releases][4]. This gives users the option to run a stable operating system, but keep their applications updated. This is accomplished by including all of the application’s dependencies in the same package. This prevents the program from breaking when a dependency updates. + +Another advantage of Snap packages is that the applications are isolated from the rest of the system. This means that if you change something with a Snap package, it will not affect the rest of the system. It also prevents other applications from accessing your private information, which makes it harder for hackers to get your data. + +### BUT WAIT… + +According to [Matthew Garrett][5], Snap can’t quite deliver on the last promise. Garret works as a Linux kernel developer and security developer at CoreOS, so he should know what he’s talking about. + +[According to Garret][6], “Any Snap package you install is completely capable of copying all your private data to wherever it wants with very little difficulty.” + +[ZDnet][7] reported: + +>*“To prove his point, he built a proof-of-concept attack package in Snap, which first shows an “adorable” teddy bear and then logs keystrokes from Firefox and could be used to steal private SSH keys. The PoC actually injects a harmless command, but could be tweaked to include a cURL session to steal SSH keys.”* + +### BUT WAIT A LITTLE MORE… + +Is it really that Snap has security flaws? Apparently not so. + +Garret himself said that this problem was caused by the X11 window system and did not affect mobile devices that use Mir. So, it is the flaw in X11 that does it. It’s not Snap itself. + +>how X11 trusts applications is a well-known security risk. Snap doesn’t change X11’s trust model, so the fact that applications can see what other applications are doing isn’t a weakness in the new package format, but rather X11’s. + +Garrett is just actually trying to show that when Canonical is all praises for Snap and its security; Snap applications are not fully sandboxed. They are as risky as any other binaries. + +Keeping the fact in mind that Ubuntu 16.04 still uses X11 display, and not Mir, downloading and installing Snap packages from unknown sources might be harmful. But that’s the case with any other packaging, isn’t it? + +In related articles, you should check out [how to use Snap packages in Ubuntu 16.04][8]. And do let us know of your views on Snap and its security. + +---------- +via: http://itsfoss.com/snap-package-securrity-issue/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[ John Paul][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/john/ +[1]: http://itsfoss.com/features-ubuntu-1604/ +[2]: http://itsfoss.com/oracle-canonical-lawsuit/ +[3]: https://en.wikipedia.org/wiki/CoreOS +[4]: https://insights.ubuntu.com/2016/04/13/snaps-for-classic-ubuntu/ +[5]: https://mjg59.dreamwidth.org/l +[6]: https://mjg59.dreamwidth.org/42320.html +[7]: http://www.zdnet.com/article/linux-expert-matthew-garrett-ubuntu-16-04s-new-snap-format-is-a-security-risk/ +[8]: http://itsfoss.com/use-snap-packages-ubuntu-16-04/ From 5a220dbdd7d1be0ade05d8ecae63d727f07d37ee Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 23 May 2016 09:36:41 +0800 Subject: [PATCH 530/582] =?UTF-8?q?20160523-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ubuntu , orb , package --- ...: NEW GENERATION OF LINUX APPS ARE HERE.md | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 sources/tech/20160520 ORB: NEW GENERATION OF LINUX APPS ARE HERE.md diff --git a/sources/tech/20160520 ORB: NEW GENERATION OF LINUX APPS ARE HERE.md b/sources/tech/20160520 ORB: NEW GENERATION OF LINUX APPS ARE HERE.md new file mode 100644 index 0000000000..8ea5e6b803 --- /dev/null +++ b/sources/tech/20160520 ORB: NEW GENERATION OF LINUX APPS ARE HERE.md @@ -0,0 +1,142 @@ +ORB: NEW GENERATION OF LINUX APPS ARE HERE +============================================= + +![](http://itsfoss.com/wp-content/uploads/2016/05/ORB-Apps.jpeg) + +We have talked about [installing applications offline in Ubuntu][1] before. And we are going to talk about it once again. + +[Orbital Apps][2] has brought us a new type of application package, **ORB**, with portable applications, interactive installer support and offline usage ability. + +Portable applications are always handy. Mostly because they can run on-the-fly without needing any administrator privileges, and also it can be carried around on small USB sticks along with all their settings and data. And these interactive installers will be able to allow us to install applications with ease. + +### OPEN RUNNABLE BUNDLE (ORB) + +ORB is a free & open-source package format and it’s different from the others in numerous ways. Some of the specifications of ORB is followings: + +- **Compression**: All the packages are compressed with squashfs making them up-to 60% smaller. +- **Portable Mode**: If a portable ORB application is run from a removable drive, it’ll store its settings and data on that drive. +- **Security**: All ORB packages are signed with PGP/RSA and distributed via TLS 1.2. +- **Offline**: All the dependencies are bundled with the package, so no downloading dependencies anymore. +- **Open package**: ORB packages can be mounted as ISO images. + +### VARIETY + +ORB applications are now available in two varieties: + +- Portable Applications +- SuperDEB + +#### 1. PORTABLE ORB APPLICATIONS + +Portable ORB Applications is capable of running right away without needing any installation beforehand. That means it’ll need no administrator privileges and no dependencies! You can just download them from the Orbital Apps website and get to work. + +And as it supports Portable Mode, you can copy it on a USB stick and carry it around. All its settings and data will be stored with it on that USB stick. Just connect the USB stick with any system running on Ubuntu 16.04 and you’ll be ready to go. + +##### AVAILABLE PORTABLE APPLICATIONS + +Currently, more than 35 applications are available as portable packages, including some very popular applications like: [Deluge][3], [Firefox][4], [GIMP][5], [Libreoffice][6], [uGet][7] & [VLC][8]. + +For a full list of available packages, check the [Portable ORB Apps list][9]. + +##### USING PORTABLE APPLICATION + +Follow the steps for using Portable ORB Applications: + +- Download your desired package from the Orbital Apps site. +- Move it wherever you want (local drive / USB stick). +- Open the directory where you’ve stored the ORB package. + +![](http://itsfoss.com/wp-content/uploads/2016/05/using-portable-orb-app-1-1024x576.jpg) + +- Open Properties of the ORB package. + +![](http://itsfoss.com/wp-content/uploads/2016/05/using-portable-orb-app-2.jpg) +>Add Execute permission to ORB package + +- Add Execute permission from Permissions tab. +- Double-click on it. + +Wait for a few seconds as it prepares itself for running. And you’re good to go. + +#### 2. SUPERDEB + +Another variety of ORB Applications is SuperDEB. SuperDEBs are easy and interactive installers that make the software installation process a lot smoother. If you don’t like to install software from terminal or software centers, SuperDEB is exactly for you. + +And the most interesting part is that you won’t need an active internet connection for installing as all the dependencies are bundled with the installer. + +##### AVAILABLE SUPERDEBS + +More than 60 applications are currently available as SuperDEB. Some of the popular software among them are: [Chromium][10], [Deluge][3], [Firefox][4], [GIMP][5], [Libreoffice][6], [uGet][7] & [VLC][8]. + +For a full list of available SuperDEBs, check the [SuperDEB list][11]. + +##### USING SUPERDEB INSTALLER + +- Download your desired SuperDEB from Orbital Apps site. +- Add **Execute permission** to it just like before ( Properties > Permissions ). +- Double-click on the SuperDEB installer and follow the interactive instructions: + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-1.png) +>Click OK + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-2.png) +>Enter your password and proceed + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-3.png) +>It’ll start Installing… + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-4.png) +>And soon it’ll be done… + +- After finishing the installation, you’re good to use it normally. + +### ORB APPS COMPATIBILITY + +According to Orbital Apps, they are fully compatible with Ubuntu 16.04 [64 bit]. + +>Reading suggestion: [How To Know If You Have 32 Bit or 64 Bit Computer in Ubuntu][12]. + +As for other distros compatibility is not guaranteed. But we can say that, it’ll work on any Ubuntu 16.04 flavors (UbuntuMATE, UbuntuGNOME, Lubuntu, Xubuntu etc.) and Ubuntu 16.04 based distros (like upcoming Linux Mint 18). We currently have no information if Orbital Apps is planning on expanding its support for other Ubuntu versions/Linux Distros or not. + +If you’re going to use Portable ORB applications often on your system, you can consider installing ORB Launcher. It’s not necessary but is recommended installing to get an improved experience. The shortest method of installing ORB Launcher is opening the terminal and enter the following command: + +``` +wget -O - https://www.orbital-apps.com/orb.sh | bash +``` + +You can find the detailed instructions at [official documentation][13]. + +### WHAT IF I NEED AN APP THAT’S NOT LISTED? + +If you need an application as ORB package that is not available right now, you can [contact][14] Orbital Apps. And the good news is, Orbital Apps is working hard and planning on releasing a tool for creating ORB packages. So, hopefully, soon we’ll be able to make ORB packages ourselves! + +Just to add, this was about installing apps offline. If you are interested, you should read [how to update or upgrade Ubuntu offline][15]. + +So, what do you think about Orbital Apps’ Portable Applications and SuperDEB installers? Will you try them? + + +---------------------------------- +via: http://itsfoss.com/orb-linux-apps/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[Munif Tanjim][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/munif/ +[1]: http://itsfoss.com/cube-lets-install-linux-applications-offline/ +[2]: https://www.orbital-apps.com/ +[3]: https://www.orbital-apps.com/download/portable_apps_linux/deluge +[4]: https://www.orbital-apps.com/download/portable_apps_linux/firefox +[5]: https://www.orbital-apps.com/download/portable_apps_linux/gimp +[6]: https://www.orbital-apps.com/download/portable_apps_linux/libreoffice +[7]: https://www.orbital-apps.com/download/portable_apps_linux/uget +[8]: https://www.orbital-apps.com/download/portable_apps_linux/vlc +[9]: https://www.orbital-apps.com/download/portable_apps_linux/ +[10]: https://www.orbital-apps.com/download/superdeb_installers/ubuntu_16.04_64bits/chromium/ +[11]: https://www.orbital-apps.com/superdebs/ubuntu_16.04_64bits/ +[12]: http://itsfoss.com/32-bit-64-bit-ubuntu/ +[13]: https://www.orbital-apps.com/documentation +[14]: https://www.orbital-apps.com/contact +[15]: http://itsfoss.com/upgrade-or-update-ubuntu-offline-without-internet/ From 20a7e2822a13e2c768307900c7d693a72df8e37c Mon Sep 17 00:00:00 2001 From: wxy Date: Mon, 23 May 2016 11:42:12 +0800 Subject: [PATCH 531/582] PUB:20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack @DongShuaike --- ...ur Ubuntu or Linux Mint with SystemBack.md | 44 +++++++++++++++++++ ...ur Ubuntu or Linux Mint with SystemBack.md | 43 ------------------ 2 files changed, 44 insertions(+), 43 deletions(-) create mode 100644 published/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md delete mode 100644 translated/tech/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md diff --git a/published/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md b/published/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md new file mode 100644 index 0000000000..aeb82f69e4 --- /dev/null +++ b/published/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md @@ -0,0 +1,44 @@ +使用 SystemBack 备份/还原你的 Ubuntu/Linux Mint +================================================= + +对于任何一款允许用户还原电脑到之前状态(包括文件系统,安装的应用,以及系统设置)的操作系统来说,系统还原功能都是必备功能,它可以恢复系统故障以及其他的问题。 + +有的时候安装一个程序或者驱动可能让你的系统黑屏。系统还原则可以让你电脑里面的系统文件(LCTT 译注:是系统文件,并非普通文件,详情请看**注意**部分)和程序恢复到之前工作正常时候的状态,进而让你远离那让人头痛的排障过程了,而且它也不会影响你的文件,照片或者其他数据。 + +简单的系统备份还原工具 [Systemback](https://launchpad.net/systemback) 可以让你很容易地创建系统备份以及用户配置文件。一旦遇到问题,你可以简单地恢复到系统先前的状态。它还有一些额外的特征包括系统复制,系统安装以及Live系统创建。 + +**截图** + +![systemback](http://2.bp.blogspot.com/-2UPS3yl3LHw/VlilgtGAlvI/AAAAAAAAGts/ueRaAghXNvc/s1600/systemback-1.jpg) + +![systemback](http://2.bp.blogspot.com/-7djBLbGenxE/Vlilgk-FZHI/AAAAAAAAGtk/2PVNKlaPO-c/s1600/systemback-2.jpg) + +![](http://3.bp.blogspot.com/-beZYwKrsT4o/VlilgpThziI/AAAAAAAAGto/cwsghXFNGRA/s1600/systemback-3.jpg) + +![](http://1.bp.blogspot.com/-t_gmcoQZrvM/VlilhLP--TI/AAAAAAAAGt0/GWBg6bGeeaI/s1600/systemback-5.jpg) + +**注意**:使用系统还原不会还原你自己的文件、音乐、电子邮件或者其他任何类型的私人文件。对不同用户来讲,这既是优点又是缺点。坏消息是它不会还原你意外删除的文件,不过你可以通过一个文件恢复程序来解决这个问题。如果你的计算机没有创建还原点,那么系统恢复就无法奏效,所以这个工具就无法帮助你(还原系统),如果你尝试恢复一个主要问题,你将需要移步到另外的步骤来进行故障排除。 + +> 适用于 Ubuntu 15.10 Wily/16.04/15.04 Vivid/14.04 Trusty/Linux Mint 14.x/其他Ubuntu衍生版,打开终端,将下面这些命令复制过去: + +终端命令: + +``` +sudo add-apt-repository ppa:nemh/systemback +sudo apt-get update +sudo apt-get install systemback + +``` + +大功告成。 + +-------------------------------------------------------------------------------- + +via: http://www.noobslab.com/2015/11/backup-system-restore-point-your.html + +译者:[DongShuaike](https://github.com/DongShuaike) +校对:[Caroline](https://github.com/carolinewuyan) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]:https://launchpad.net/systemback diff --git a/translated/tech/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md b/translated/tech/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md deleted file mode 100644 index c931365600..0000000000 --- a/translated/tech/20151201 Backup (System Restore Point) your Ubuntu or Linux Mint with SystemBack.md +++ /dev/null @@ -1,43 +0,0 @@ -# 使用 SystemBack 备份你的 Ubuntu/Linux Mint(系统还原) - -对于任何一款允许用户还原电脑到之前状态(包括文件系统,安装的应用,以及系统设置)的操作系统来说,系统还原都是必备功能,可以恢复系统故障以及其他的问题。 - -有的时候安装一个程序或者驱动可能让你的系统黑屏。系统还原则让你电脑里面的系统文件(译者注:是系统文件,并非普通文件,详情请看**注意**部分)和程序恢复到之前工作正常时候的状态,进而让你远离那让人头痛的排障过程了。而且它也不会影响你的文件,照片或者其他数据。 - -简单的系统备份还原工具[Systemback](https://launchpad.net/systemback)让你很容易地创建系统备份以及用户配置文件。一旦遇到问题,你可以简单地恢复到系统先前的状态。它还有一些额外的特征包括系统复制,系统安装以及Live系统创建。 - -截图 - -![systemback](http://2.bp.blogspot.com/-2UPS3yl3LHw/VlilgtGAlvI/AAAAAAAAGts/ueRaAghXNvc/s1600/systemback-1.jpg) - -![systemback](http://2.bp.blogspot.com/-7djBLbGenxE/Vlilgk-FZHI/AAAAAAAAGtk/2PVNKlaPO-c/s1600/systemback-2.jpg) - -![](http://3.bp.blogspot.com/-beZYwKrsT4o/VlilgpThziI/AAAAAAAAGto/cwsghXFNGRA/s1600/systemback-3.jpg) - -![](http://1.bp.blogspot.com/-t_gmcoQZrvM/VlilhLP--TI/AAAAAAAAGt0/GWBg6bGeeaI/s1600/systemback-5.jpg) - -**注意**:使用系统还原不会还原你的文件,音乐,电子邮件或者其他任何类型的私人文件。对不同用户来讲,这既是优点又是缺点。坏消息是它不会还原你意外删除的文件,不过你可以通过一个文件恢复程序来解决这个问题。如果你的计算机没有还原点,那么系统恢复就无法奏效,所以这个工具就无法帮助你(还原系统),如果你尝试恢复一个主要问题,你将需要移步到另外的步骤来进行故障排除。 - -> > >适用于Ubuntu 15.10 Wily/16.04/15.04 Vivid/14.04 Trusty/Linux Mint 14.x/其他Ubuntu衍生版,打开终端,将下面这些命令复制过去: - -终端命令: - -``` -sudo add-apt-repository ppa:nemh/systemback -sudo apt-get update -sudo apt-get install systemback - -``` - -大功告成。 - --------------------------------------------------------------------------------- - -via: http://www.noobslab.com/2015/11/backup-system-restore-point-your.html - -译者:[DongShuaike](https://github.com/DongShuaike) -校对:[Caroline](https://github.com/carolinewuyan) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[1]:https://launchpad.net/systemback From ddcaa22c2647772ebd00e27527684833263b68b7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 24 May 2016 09:31:42 +0800 Subject: [PATCH 532/582] =?UTF-8?q?20160524-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit editor --- ...DERN OPEN SOURCE CODE EDITORS FOR LINUX.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md diff --git a/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md b/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md new file mode 100644 index 0000000000..f17cbf551c --- /dev/null +++ b/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md @@ -0,0 +1,86 @@ +4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX +================================================== + +![](http://itsfoss.com/wp-content/uploads/2015/01/Best_Open_Source_Editors.jpeg) + +Looking for **best programming editors in Linux**? If you ask the old school Linux users, their answer would be Vi, Vim, Emacs, Nano etc. But I am not talking about them. I am going to talk about new age, cutting edge, great looking, sleek and yet powerful, feature rich **best open source code editors for Linux** that would enhance your programming experience. + +### BEST MODERN OPEN SOURCE EDITORS FOR LINUX + +I use Ubuntu as my main desktop and hence I have provided installation instructions for Ubuntu based distributions. But this doesn’t make this list as **best text editors for Ubuntu** because the list is apt for any Linux distribution. Just to add, the list is not in any particular priority order. + +### BRACKETS + +![](http://itsfoss.com/wp-content/uploads/2015/01/brackets_UI.jpeg) + +[Brackets][1] is an open source code editor from [Adobe][2]. Brackets focuses exclusively on the needs of web designers with built in support for HTML, CSS and Java Script. It’s light weight and yet powerful. It provides you with inline editing and live preview. There are plenty of plugins available to further enhance your experience with Brackets. + +To [install Brackets in Ubuntu][3] and Ubuntu based distributions such as Linux Mint, you can use this unofficial PPA: + +``` +sudo add-apt-repository ppa:webupd8team/brackets +sudo apt-get update +sudo apt-get install brackets +``` + +For other Linux distributions, you can get the source code as well as binaries for Linux, OS X and Windows on its website. + +[Download Brackets Source Code and Binaries](https://github.com/adobe/brackets/releases) + +### ATOM + +![](http://itsfoss.com/wp-content/uploads/2014/08/Atom_Editor.jpeg) + +[Atom][4] is another modern and sleek looking open source editor for programmers. Atom is developed by Github and promoted as a “hackable text editor for the 21st century”. The looks of Atom resembles a lot like Sublime Text editor, a hugely popular but closed source text editors among programmers. + +Atom has recently released .deb and .rpm packages so that one can easily install Atom in Debian and Fedora based Linux distributions. Of course, its source code is available as well. + + +[Download Atom .deb](https://atom.io/download/deb) + +[Download Atom .rpm](https://atom.io/download/rpm) + +[Get Atom source code](https://github.com/atom/atom/blob/master/docs/build-instructions/linux.md) + +### LIME TEXT + +![](http://itsfoss.com/wp-content/uploads/2014/08/LimeTextEditor.jpeg) + +So you like Sublime Text editor but you are not comfortable with the fact that it is not open source. No worries. We have an [open source clone of Sublime Text][5], called [Lime Text][6]. It is built on Go, HTML and QT. The reason behind cloning of Sublime Text is that there are numerous bugs in Sublime Text 2 and Sublime Text 3 is in beta since forever. There are no transparency in its development, on whether the bugs are being fixed or not. + +So open source lovers, rejoice and get the source code of Lime Text from the link below: + +[Get Lime Text Source Code](https://github.com/limetext/lime) + +### LIGHT TABLE + +![](http://itsfoss.com/wp-content/uploads/2015/01/Light_Table.jpeg) + +Flaunted as “the next generation code editor”, [Light Table][7] is another modern looking, feature rich open source editor which is more of an IDE than a mere text editor. There are numerous extensions available to enhance its capabilities. Inline evaluation is what you would love in it. You have to use it to believe how useful Light Table actually is. + +[Install Light Table in Ubuntu Linux](http://itsfoss.com/install-lighttable-ubuntu/) + +### WHAT’S YOUR PICK? + +No, we are not limited to just four code editors in Linux. The list was about modern editors for programmers. Of course, you have plenty of other options such as [Notepad++ alternative Notepadqq][8] or [SciTE][9] and many more. So, among these four, which one is your favorite code editor for Linux? + + +---------- +via: http://itsfoss.com/best-modern-open-source-code-editors-for-linux/?utm_source=newsletter&utm_medium=email&utm_campaign=offline_and_portable_linux_apps_and_other_linux_stories + +作者:[Abhishek Prakash][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/abhishek/ +[1]: http://brackets.io/ +[2]: http://www.adobe.com/ +[3]: http://itsfoss.com/install-brackets-ubuntu/ +[4]: https://atom.io/ +[5]: http://itsfoss.com/lime-text-open-source-alternative/ +[6]: http://limetext.org/ +[7]: http://lighttable.com/ +[8]: http://itsfoss.com/notepadqq-notepad-for-linux/ +[9]: http://itsfoss.com/scite-the-notepad-for-linux/ From 305a7e7b3809ff46186fc0a781b105c92230cea5 Mon Sep 17 00:00:00 2001 From: alim0x Date: Tue, 24 May 2016 09:41:05 +0800 Subject: [PATCH 533/582] [translating]20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX (#3994) --- ...20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md b/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md index f17cbf551c..93bf396c4a 100644 --- a/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md +++ b/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md @@ -1,3 +1,5 @@ +alim0x translating + 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX ================================================== From 2bb497d0b0b897f4f4845c6836bdb3bd177ff662 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 24 May 2016 16:03:21 +0800 Subject: [PATCH 534/582] PUB:20160225 The Tao of project management MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @runningwater @FSSlc 不错! --- .../20160225 The Tao of project management.md | 108 ++++++++++++++---- 1 file changed, 84 insertions(+), 24 deletions(-) rename {translated/tech => published}/20160225 The Tao of project management.md (57%) diff --git a/translated/tech/20160225 The Tao of project management.md b/published/20160225 The Tao of project management.md similarity index 57% rename from translated/tech/20160225 The Tao of project management.md rename to published/20160225 The Tao of project management.md index 758a7d0217..938484b498 100644 --- a/translated/tech/20160225 The Tao of project management.md +++ b/published/20160225 The Tao of project management.md @@ -1,4 +1,4 @@ -项目管理之道 +《道德经》之项目管理 ================================= @@ -8,8 +8,7 @@ 在思考有关开放性组织的项目管理时,我的脑海中便立马浮现出上面的这段文字。 -这听起来可能会有点奇怪。若要理解我的这种想法从何而来,你应该读读 -*《开放性组织:点燃激情提升执行力》* 这本书,它是红帽公司总裁、首席执行官 Jim Whitehurst 所写的一本有关企业文化和新领导力范式的宣言。在这本书中,Jim(还有来自其他红帽人的一点帮助)解释了传统组织机构(一种 “自上而下” 的方式,来自高层的决策被传达到员工,而员工通过晋升和薪酬来激励)和开放性组织机构(一种 自下而上 的方式,领导专注于激励和鼓励,员工被充分授权以各尽其能)之间的差异。 +这听起来可能会有点奇怪。若要理解我的这种想法从何而来,你应该读读 *《开放性组织:点燃激情提升执行力》* 这本书,它是红帽公司总裁、首席执行官 Jim Whitehurst 所写的一本有关企业文化和新领导力范式的宣言。在这本书中,Jim(还有来自其他红帽人的一点帮助)解释了传统组织机构(一种 “自上而下” 的方式,来自高层的决策被传达到员工,而员工通过晋升和薪酬来激励)和开放性组织机构(一种 自下而上 的方式,领导专注于激励和鼓励,员工被充分授权以各尽其能)之间的差异。 在开放性组织中的员工都是被激情、目标和参与感所激励,这个观点正是我认为项目管理者所应该关注的。 @@ -17,27 +16,39 @@ ### 不要让工作职衔框住自身 ->道,可道也,非恒道也。名,可名也,非恒名也。 +> 道,可道也,(The tao that can be told) ->“无”,名天地之始;“有”,名万物之母。 +> 非恒道也。(is not the eternal Tao) + +> 名,可名也,(The name that can be named) + +> 非恒名也。(is not the eternal Name.) + +> “无”,名天地之始;(The unnameable is the eternally real.) + +> “有”,名万物之母。(Naming is the origin of all particular things.) [[1]][7] 项目管理到底是什么?作为一个项目管理者应该做些什么呢? 如您所想,项目管理者的一部分工作就是管理项目:收集需求、与项目相关人员沟通、设置项目优先级、安排任务、帮助团队解决困扰。许多机构都可以教你如何做好项目管理,并且这些技能你值得拥有。 -然而,在开放性组织中,字面上的项目管理技能仅仅只是项目管理者需要做到一小部分,这些组织需要更多其他的东西:即勇气。如果你擅长于管理项目(或者是真的擅长于任何工作),那么你就进入了舒适区。这时候就是需要鼓起勇气开始尝试冒险之时。 +然而,在开放性组织中,字面上的项目管理技能仅仅只是项目管理者需要做到的一小部分,这些组织需要更多其他的东西:即勇气。如果你擅长于管理项目(或者是真的擅长于任何工作),那么你就进入了舒适区。这时候就是需要鼓起勇气开始尝试冒险之时。 您有勇气跨出舒适区吗?向权威人士提出挑战性的问题,可能会引发对方的不快,但也可能会开启一个更好的方法,您有勇气这样做吗?有确定需要做的下一件事,然后真正去完成它的勇气吗?有主动去解决因为交流的鸿沟而遗留下来的问题的勇气吗?有去尝试各种事情的勇气吗?有失败的勇气吗? -道德经的开篇(上面引用的)就表明词语、标签、名字这些是有限制的,当然也包括工作职衔。在开放性组织中,项目经理不仅仅是执行管理项目所需的机械任务,而且要帮助团队完成组织的使命,尽管这已经被限定了。 +道德经的开篇(上面引用的)就表明词语(words)、标签(labels)、名字(names)这些是有限制的,当然也包括工作职衔。在开放性组织中,项目经理不仅仅是执行管理项目所需的机械任务,而且要帮助团队完成组织的使命,尽管这已经被限定了。 ### 联系起合适的人 ->三十辐共一轂,当其无,有车之用。 +> 三十辐共一轂,(We join spokes together in a wheel,) + +> 当其无,(but it is the center hole) + +> 有车之用。(that makes the wagon move.) [[11]][8] -当我过渡到项目管理的工作时,我必须学会的最为困难的一课是:并不是所有解决方案都是完全可接受的,甚至有的连预期都达不到。这对我来说是全新的,我喜欢所有的解决方案。但作为项目管理者,我的角色更多的是与人沟通--使得那些确实有解决方案的人可以更高效地合作。 +当我过渡到项目管理的工作时,我必须学会的最为困难的一课是:并不是所有解决方案都是可完全地接受,甚至有的连预期都达不到。这对我来说是全新的一页。我*喜欢*全部都能解决。但作为项目管理者,我的角色更多的是与人沟通--使得那些确实有解决方案的人可以更高效地合作。 这并不是逃避责任或者不负责。这意味着可以很舒适的说,“我不知道,但我会给你找出答案”,然后就可迅速地结束这个循环。 @@ -45,14 +56,28 @@ ### 信任你的团队 ->太上,不知有之;其次,亲而誉之;其次,畏之;其次,侮之。 -> ->信不足焉,有不信焉。 -> ->悠兮,其贵言。功成事遂,百姓皆谓:“我自然”。 +>太上,不知有之;(When the Master governs, the people +are hardly aware that he exists.) + +> 其次,亲而誉之;(Next best is a leader who is loved.) + +> 其次,畏之;(Next, one who is feared.) + +> 其次,侮之。(The worst is one who is despised.) + +>信不足焉,(If you don't trust the people,) + +>有不信焉。(you make them untrustworthy.) + +>悠兮,其贵言。(The Master doesn't talk, he acts.) + +> 功成事遂,(When his work is done,) + +> 百姓皆谓:“我自然”。(the people say, "Amazing: +we did it, all by ourselves!") [[17]][9] -[Rebecca Fernandez][10]曾经告诉我开放性组织的领导与其它组织的领导者最大的不同点在于,我们不取得别人的信任,而是信任别人。 +[Rebecca Fernandez][10] 曾经告诉我开放性组织的领导与其它组织的领导者最大的不同点在于,我们不是去取得别人的信任,而是信任别人。 开放性组织会雇佣那些非常聪明的,且对公司正在做的事情充满激情的人来做工作。为了能使他们能更好的工作,我们会提供其所需,并尊重他们的工作方式。 @@ -60,7 +85,11 @@ ### 顺其自然 ->上德无为而无以为;下德为之而有以为。 +>上德无为而无以为;(The Master does nothing +yet he leaves nothing undone.) + +>下德为之而有以为。(The ordinary man is always doing things, +yet many more are left to be done.) [[38]][11] 你认识那类总是极其忙碌的人吗?认识那些因为有太多事情要做而看起来疲倦和压抑的人吗? @@ -77,35 +106,65 @@ ### 做一名文化传教士 ->上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以為道。 +>上士闻道,(When a superior man hears of the Tao,) + +> 勤而行之;(he immediately begins to embody it.) + +> 中士闻道,(When an average man hears of the Tao,) + +>若存若亡;(he half believes it, half doubts it.) + +> 下士闻道,(When a foolish man hears of the Tao,) + +> 大笑之。(he laughs out loud.) + +> 不笑不足以為道。(If he didn't laugh,it wouldn't be the Tao.) [[41]][12] -去年秋天,我跟着一群联邦雇员注册了一个工商管理硕士课程。当我开始介绍我们公司的文化、价值和伦理框架时,我得到的直接印象是:我的同学和教授都认为我就像一个天真可爱的小姑娘,做着许多关于公司应该如何运作的[甜美白日梦][13]。他们告诉我事情不可能是它们看起来的那样,他们还告诉我应该进一步考察。 +去年秋天,我和一群联邦雇员参加了一堂 MBA 的商业准则课程。当我开始介绍我们公司的文化、价值和伦理框架时,我得到的直接印象是:我的同学和教授都认为我就像一个天真可爱的小姑娘,做着许多关于公司应该如何运作的[甜美白日梦][13]。他们告诉我事情不可能是他们看起来的那样,他们还告诉我应该进一步考察。 所以我照做了。 然而我发现的是:事情*恰好*是他们看起来的那样。 -在开放性组织,关于企业文化,人们应该随着企业的成长而时时维护那些文化,以使它随时精神焕发,充满斗志。我(和其它开源组织的成员)并不想过如我同学所描述的那样,“为生活而工作”。我需要有激情、有目标,需要明白自己的日常工作是如何对那些我所坚信的东西做贡献的。 +在开放性组织,关于企业文化,人们应该随着企业的成长而时时维护那些文化,以使它随时精神焕发,充满斗志。我(和其它开源组织的成员)并不想过着如我同学们所描述的那样,“为生活而工作”。我需要有激情、有目标,需要明白自己的日常工作是如何对那些我所坚信的东西做贡献的。 作为一个项目管理者,你可能会认为在你的团队中,你的工作对培养你们公司的企业文化没有多少帮助。然而你的工作正是孕育文化本身。 ### Kaizen (持续改善) ->为学日益,为道日损。损之又损,以至于无为。无为而无不为。 +>为学日益,(In pursuit of knowledge,every day something is added.) + +> 为道日损。(In the practice of the Tao,every day something is dropped.) + +> 损之又损,(Less and less do you need to force things,) + +> 以至于无为。(until finally you arrive at non-action. ) + +> 无为而无不为。(When nothing is done,nothing is left undone.) [[48]][14] -项目管理的一般领域都太过于专注最新、最强大的的工具,但对于应该使用哪种工具,这个问题的答案总是一致的:“最简单的”。 +项目管理的常规领域都太过于专注最新、最强大的的工具,但对于应该使用哪种工具,这个问题的答案总是一致的:“最简单的”。 例如,我将任务列表放在桌面的一个文本文件中,因为它很单纯,不会受到不必要的干扰。您想介绍给团队的,无论是何种工具、流程和程序都应该是能提高效率,排除障碍的,而不是引入额外的复杂性。所以与其专注于工具,还不如专注于要使用这些工具来解决的*问题*。 -作为一个项目经理,我最喜爱的部分是在敏捷世界中,我有自由抛弃那些没有成效的东西的权利。这与 kaizen 的概念相关,或叫 “持续改进”。不要害怕尝试和失败。失败是我们在探索什么能够起作用,什么不能起作用的过程中所用的标签,这是提高的唯一方式。 +作为一个项目经理,我最喜爱的部分是在敏捷世界中,我有自由抛弃那些没有成效的东西的权利。这与 [kaizen][16] 的概念相关,或叫 “持续改进”。不要害怕尝试和失败。失败是我们在探索什么能够起作用,什么不能起作用的过程中所用的标签,这是提高的唯一方式。 最好的过程都不是一蹴而就的。作为项目管理者,你应该通过支持他们,而不是强迫他们去做某些事来帮助你的团队。 ### 实践 ->天下皆谓我"道"大,似不肖。夫唯大,故似不肖。若肖,久矣其细也夫! +>天下皆谓我"道"大,(Some say that my teaching is nonsense.) + +> 似不肖。(Others call it lofty but impractical.) + +> 夫唯大,(But to those who have looked inside themselves,) + +> 故似不肖。(this nonsense makes perfect sense.) + +>若肖,(And to those who put it into practice,) + +> 久矣其细也夫!(this loftiness has roots that go deep.) [[67]][15] 我相信开放性组织正在做的事。开放性组织在管理领域的工作几乎与他们提供的产品和服务一样重要。我们有机会以身作则,激发他人的激情和目的,创造激励和充分授权的工作环境。 @@ -137,4 +196,5 @@ via: https://opensource.com/open-organization/16/2/tao-project-management [12]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#41 [13]: https://opensource.com/open-organization/15/9/reflections-open-organization-starry-eyed-dreamer [14]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#48 -[15]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#67 \ No newline at end of file +[15]: http://acc6.its.brooklyn.cuny.edu/~phalsall/texts/taote-v3.html#67 +[16]: https://www.kaizen.com/about-us/definition-of-kaizen.html \ No newline at end of file From 684d4581ea4a8794d0fe442b7777aca4c07ee149 Mon Sep 17 00:00:00 2001 From: alim0x Date: Tue, 24 May 2016 21:45:36 +0800 Subject: [PATCH 535/582] [translated]20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX --- ...DERN OPEN SOURCE CODE EDITORS FOR LINUX.md | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md b/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md index 93bf396c4a..cbced20708 100644 --- a/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md +++ b/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md @@ -1,23 +1,21 @@ -alim0x translating - -4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX +Linux 上四个最佳的现代开源代码编辑器 ================================================== ![](http://itsfoss.com/wp-content/uploads/2015/01/Best_Open_Source_Editors.jpeg) -Looking for **best programming editors in Linux**? If you ask the old school Linux users, their answer would be Vi, Vim, Emacs, Nano etc. But I am not talking about them. I am going to talk about new age, cutting edge, great looking, sleek and yet powerful, feature rich **best open source code editors for Linux** that would enhance your programming experience. +在寻找 **Linux 上最好的代码编辑器**?如果你问那些老派的 Linux 用户,他们的答案肯定是 Vi,Vim,Emacs,Nano 等等。但我不讨论它们。我要讨论的是最新的,美观,优美强大,功能丰富,能够提高你编程体验的,**最好的 Linux 开源代码编辑器**。 -### BEST MODERN OPEN SOURCE EDITORS FOR LINUX +### Linux 上最佳的现代开源代码编辑器 -I use Ubuntu as my main desktop and hence I have provided installation instructions for Ubuntu based distributions. But this doesn’t make this list as **best text editors for Ubuntu** because the list is apt for any Linux distribution. Just to add, the list is not in any particular priority order. +我使用 Ubuntu 作为我的主力系统,因此提供的安装说明适用于基于 Ubuntu 的发行版。但这并不会让这个列表变成 **Ubuntu 上的最佳文本编辑器**,因为这些编辑器对所有 Linux 发行版都适用。多说一句,这个清单没有任何优先顺序。 ### BRACKETS ![](http://itsfoss.com/wp-content/uploads/2015/01/brackets_UI.jpeg) -[Brackets][1] is an open source code editor from [Adobe][2]. Brackets focuses exclusively on the needs of web designers with built in support for HTML, CSS and Java Script. It’s light weight and yet powerful. It provides you with inline editing and live preview. There are plenty of plugins available to further enhance your experience with Brackets. +[Brackets][1] 是 [Adobe][2] 的一个开源代码编辑器。Brackets 专注与 web 设计师的需求,内置 HTML,CSS 和 JavaScript 支持。它很轻量,也很强大。它提供了行内编辑和实时预览。还有无数可用的插件,进一步加强你在 Brackets 上的体验。 -To [install Brackets in Ubuntu][3] and Ubuntu based distributions such as Linux Mint, you can use this unofficial PPA: +在 Ubuntu 以及基于 Ubuntu 的发行版(比如 Linux Mint)上[安装 Brackets][3] 的话,你可以用这个非官方的 PPA: ``` sudo add-apt-repository ppa:webupd8team/brackets @@ -25,53 +23,53 @@ sudo apt-get update sudo apt-get install brackets ``` -For other Linux distributions, you can get the source code as well as binaries for Linux, OS X and Windows on its website. +至于其它 Linux 发行版,你可以从它的网站上获取到适用于 Linux,OS X 和 Windows 源码和二进制文件。 -[Download Brackets Source Code and Binaries](https://github.com/adobe/brackets/releases) +[下载 Brackets 源码和二进制包](https://github.com/adobe/brackets/releases) ### ATOM ![](http://itsfoss.com/wp-content/uploads/2014/08/Atom_Editor.jpeg) -[Atom][4] is another modern and sleek looking open source editor for programmers. Atom is developed by Github and promoted as a “hackable text editor for the 21st century”. The looks of Atom resembles a lot like Sublime Text editor, a hugely popular but closed source text editors among programmers. +[Atom][4] 是另一个给程序员开源代码编辑器,现代而且美观。Atom 是由 Github 开发的,宣称是“21世纪的可定制文本编辑器”。Atom 的外观看起来类似 Sublime Text,一个在程序员中很流行但是闭源的文本编辑器。 -Atom has recently released .deb and .rpm packages so that one can easily install Atom in Debian and Fedora based Linux distributions. Of course, its source code is available as well. +Atom 最近发布了 .deb 和 .rpm 包,所以你可以轻而易举地在基于 Debian 和 Fedora 的 Linux 发行版上安装它。当然,它的源代码也是提供了的。 -[Download Atom .deb](https://atom.io/download/deb) +[下载 Atom .deb](https://atom.io/download/deb) -[Download Atom .rpm](https://atom.io/download/rpm) +[下载 Atom .rpm](https://atom.io/download/rpm) -[Get Atom source code](https://github.com/atom/atom/blob/master/docs/build-instructions/linux.md) +[获取 Atom 源码](https://github.com/atom/atom/blob/master/docs/build-instructions/linux.md) ### LIME TEXT ![](http://itsfoss.com/wp-content/uploads/2014/08/LimeTextEditor.jpeg) -So you like Sublime Text editor but you are not comfortable with the fact that it is not open source. No worries. We have an [open source clone of Sublime Text][5], called [Lime Text][6]. It is built on Go, HTML and QT. The reason behind cloning of Sublime Text is that there are numerous bugs in Sublime Text 2 and Sublime Text 3 is in beta since forever. There are no transparency in its development, on whether the bugs are being fixed or not. +你喜欢 Sublime Text 但是你对它是闭源的这一事实感觉不是很舒服?别担心,我们有 [Sublime Text 的开源克隆版][5],叫做 [Lime Text][6]。它是基于 Go,HTML 和 QT 的。克隆 Sublime Text 的原因是 Sublime Text 2 中有无数 bug,而 Sublime Text 3 看起来会永远处于 beta 之中。它的开发过程并不透明,也就无从得知 bug 是否被修复了。 -So open source lovers, rejoice and get the source code of Lime Text from the link below: +所以开源爱好者们,开心地去下面这个链接下载 Lime Text 的源码吧: -[Get Lime Text Source Code](https://github.com/limetext/lime) +[获取 Lime Text 源码](https://github.com/limetext/lime) ### LIGHT TABLE ![](http://itsfoss.com/wp-content/uploads/2015/01/Light_Table.jpeg) -Flaunted as “the next generation code editor”, [Light Table][7] is another modern looking, feature rich open source editor which is more of an IDE than a mere text editor. There are numerous extensions available to enhance its capabilities. Inline evaluation is what you would love in it. You have to use it to believe how useful Light Table actually is. +标榜“下一代代码编辑器”,[Light Table][7] 是另一个外观现代,功能丰富的开源代码编辑器,它更像一个 IDE 而不仅仅是个文本编辑器。它还有无数扩展用以加强它的功能。也许你会喜欢它的行内求值。你得用用它才会相信 Light Table 有多好用。 -[Install Light Table in Ubuntu Linux](http://itsfoss.com/install-lighttable-ubuntu/) +[在 Ubuntu 上安装 Light Table](http://itsfoss.com/install-lighttable-ubuntu/) -### WHAT’S YOUR PICK? +### 你的选择是? -No, we are not limited to just four code editors in Linux. The list was about modern editors for programmers. Of course, you have plenty of other options such as [Notepad++ alternative Notepadqq][8] or [SciTE][9] and many more. So, among these four, which one is your favorite code editor for Linux? +不,我们的选择没有限制在这四个 Linux 代码编辑器之中。这个清单只是关于程序员的现代编辑器。当然,你还有很多选择,比如 [Notepad++ 的替代选择 Notepadqq][8] 或 [SciTE][9] 以及更多。那么,在上面四个中,对 Linux 而言哪个是你最喜欢的代码编辑器? ---------- via: http://itsfoss.com/best-modern-open-source-code-editors-for-linux/?utm_source=newsletter&utm_medium=email&utm_campaign=offline_and_portable_linux_apps_and_other_linux_stories 作者:[Abhishek Prakash][a] -译者:[译者ID](https://github.com/译者ID) +译者:[alim0x](https://github.com/alim0x) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From d9dae92abe4ff91a508afb62d9a6698bc0b5a88e Mon Sep 17 00:00:00 2001 From: alim0x Date: Tue, 24 May 2016 21:57:30 +0800 Subject: [PATCH 536/582] Move file and adjust some translation --- ...BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename {sources => translated}/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md (85%) diff --git a/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md b/translated/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md similarity index 85% rename from sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md rename to translated/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md index cbced20708..f3045322f3 100644 --- a/sources/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md +++ b/translated/tech/20160516 4 BEST MODERN OPEN SOURCE CODE EDITORS FOR LINUX.md @@ -7,13 +7,13 @@ Linux 上四个最佳的现代开源代码编辑器 ### Linux 上最佳的现代开源代码编辑器 -我使用 Ubuntu 作为我的主力系统,因此提供的安装说明适用于基于 Ubuntu 的发行版。但这并不会让这个列表变成 **Ubuntu 上的最佳文本编辑器**,因为这些编辑器对所有 Linux 发行版都适用。多说一句,这个清单没有任何优先顺序。 +我使用 Ubuntu 作为我的主力系统,因此提供的安装说明适用于基于 Ubuntu 的发行版。但这并不会让这个列表变成 **Ubuntu 上的最佳文本编辑器**,因为这些编辑器对所有 Linux 发行版都适用。多说一句,这个清单没有任何先后顺序。 ### BRACKETS ![](http://itsfoss.com/wp-content/uploads/2015/01/brackets_UI.jpeg) -[Brackets][1] 是 [Adobe][2] 的一个开源代码编辑器。Brackets 专注与 web 设计师的需求,内置 HTML,CSS 和 JavaScript 支持。它很轻量,也很强大。它提供了行内编辑和实时预览。还有无数可用的插件,进一步加强你在 Brackets 上的体验。 +[Brackets][1] 是 [Adobe][2] 的一个开源代码编辑器。Brackets 专注于 web 设计师的需求,内置 HTML,CSS 和 JavaScript 支持。它很轻量,也很强大。它提供了行内编辑和实时预览。还有无数可用的插件,进一步加强你在 Brackets 上的体验。 在 Ubuntu 以及基于 Ubuntu 的发行版(比如 Linux Mint)上[安装 Brackets][3] 的话,你可以用这个非官方的 PPA: @@ -31,9 +31,9 @@ sudo apt-get install brackets ![](http://itsfoss.com/wp-content/uploads/2014/08/Atom_Editor.jpeg) -[Atom][4] 是另一个给程序员开源代码编辑器,现代而且美观。Atom 是由 Github 开发的,宣称是“21世纪的可定制文本编辑器”。Atom 的外观看起来类似 Sublime Text,一个在程序员中很流行但是闭源的文本编辑器。 +[Atom][4] 是另一个给程序员的开源代码编辑器,现代而且美观。Atom 是由 Github 开发的,宣称是“21世纪的可定制文本编辑器”。Atom 的外观看起来类似 Sublime Text,一个在程序员中很流行但是闭源的文本编辑器。 -Atom 最近发布了 .deb 和 .rpm 包,所以你可以轻而易举地在基于 Debian 和 Fedora 的 Linux 发行版上安装它。当然,它的源代码也是提供了的。 +Atom 最近发布了 .deb 和 .rpm 包,所以你可以轻而易举地在基于 Debian 和 Fedora 的 Linux 发行版上安装它。当然,它也提供了源代码。 [下载 Atom .deb](https://atom.io/download/deb) @@ -56,13 +56,13 @@ Atom 最近发布了 .deb 和 .rpm 包,所以你可以轻而易举地在基于 ![](http://itsfoss.com/wp-content/uploads/2015/01/Light_Table.jpeg) -标榜“下一代代码编辑器”,[Light Table][7] 是另一个外观现代,功能丰富的开源代码编辑器,它更像一个 IDE 而不仅仅是个文本编辑器。它还有无数扩展用以加强它的功能。也许你会喜欢它的行内求值。你得用用它才会相信 Light Table 有多好用。 +[Light Table][7] 是另一个外观现代,功能丰富的开源代码编辑器,标榜“下一代代码编辑器”,它更像一个 IDE 而不仅仅是个文本编辑器。它还有无数扩展用以加强它的功能。也许你会喜欢它的行内求值。你得用用它才会相信 Light Table 有多好用。 [在 Ubuntu 上安装 Light Table](http://itsfoss.com/install-lighttable-ubuntu/) ### 你的选择是? -不,我们的选择没有限制在这四个 Linux 代码编辑器之中。这个清单只是关于程序员的现代编辑器。当然,你还有很多选择,比如 [Notepad++ 的替代选择 Notepadqq][8] 或 [SciTE][9] 以及更多。那么,在上面四个中,对 Linux 而言哪个是你最喜欢的代码编辑器? +不,我们的选择没有限制在这四个 Linux 代码编辑器之中。这个清单只是关于程序员的现代编辑器。当然,你还有很多选择,比如 [Notepad++ 的替代选择 Notepadqq][8] 或 [SciTE][9] 以及更多。那么,上面四个中,在 Linux 上而言你最喜欢哪个代码编辑器? ---------- From 9f10cd8b574823319cee97331f2424dbe10241be Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 25 May 2016 20:16:51 +0800 Subject: [PATCH 537/582] =?UTF-8?q?20160525-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit linux , car , IVI --- ...Driving cars into the future with Linux.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/talk/20160523 Driving cars into the future with Linux.md diff --git a/sources/talk/20160523 Driving cars into the future with Linux.md b/sources/talk/20160523 Driving cars into the future with Linux.md new file mode 100644 index 0000000000..38ef546789 --- /dev/null +++ b/sources/talk/20160523 Driving cars into the future with Linux.md @@ -0,0 +1,104 @@ +Driving cars into the future with Linux +=========================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/open-snow-car-osdc-lead.png?itok=IgYZ6mNY) + +I don't think much about it while I'm driving, but I sure do love that my car is equipped with a system that lets me use a few buttons and my voice to call my wife, mom, and children. That same system allows me to choose whether I listen to music streaming from the cloud, satellite radio, or the more traditional AM/FM radio. I also get weather updates and can direct my in-vehicle GPS to find the fastest route to my next destination. [In-vehicle infotainment][1], or IVI as it's known in the industry, has become ubiquitous in today's newest automobiles. + +A while ago, I had to travel hundreds of miles by plane and then rent a car. Happily, I discovered that my rental vehicle was equipped with IVI technology similar to my own car. In no time, I was connected via Bluetooth, had uploaded my contacts into the system, and was calling home to let my family know I arrived safely and my hosts to let them know I was en route to their home. + +In a recent [news roundup][2], Scott Nesbitt cited an article that said Ford Motor Company is getting substantial backing from a rival automaker for its open source [Smart Device Link][3] (SDL) middleware framework, which supports mobile phones. SDL is a project of the [GENIVI Alliance][4], a nonprofit committed to building middleware to support open source in-vehicle infotainment systems. According to [Steven Crumb][5], executive director of GENIVI, their [membership][6] is broad and includes Daimler Group, Hyundai, Volvo, Nissan, Honda, and 170 others. + +In order to remain competitive in the industry, automotive companies need a middleware system that can support the various human machine interface technologies available to consumers today. Whether you own an Android, iOS, or other device, automotive OEMs want their units to be able to support these systems. Furthermore, these IVI systems must be adaptable enough to support the ever decreasing half-life of mobile technology. OEMs want to provide value and add services in their IVI stacks that will support a variety of options for their customers. Enter Linux and open source software. + +In addition to GENIVI's efforts, the [Linux Foundation][7] sponsors the [Automotive Grade Linux][8] (AGL) workgroup, a software foundation dedicated to finding open source solutions for automotive applications. Although AGL will initially focus on IVI systems, they envision branching out to include [telematics][9], heads up displays, and other control systems. AGL has over 50 members at this time, including Jaguar, Toyota, and Nissan, and in a [recent press release][10] announced that Ford, Mazda, Mitsubishi, and Subaru have joined. + +To find out more, we interviewed two leaders in this emerging field. Specifically, we wanted to know how Linux and open source software are being used and if they are in fact changing the face of the automotive industry. First, we talk to [Alison Chaiken][11], a software engineer at Peloton Technology and an expert on automotive Linux, cybersecurity, and transparency. She previously worked for Mentor Graphics, Nokia, and the Stanford Linear Accelerator. Then, we chat with [Steven Crumb][12], executive director of GENIVI, who got started in open source in high-performance computing environments (supercomputers and early cloud computing). He says that though he's not a coder anymore, he loves to help organizations solve real business problems with open source software. + +### Interview with Alison Chaiken (by [Deb Nicholson][13]) + +#### How did you get interested in the automotive software space? + +I was working on [MeeGo][14] in phones at Nokia in 2009 when the project was cancelled. I thought, what's next? A colleague was working on [MeeGo-IVI][15], an early automotive Linux distribution. "Linux is going to be big in cars," I thought, so I headed in that direction. + +#### Can you tell us what aspects you're working on these days? + +I'm currently working for a startup on an advanced cruise control system that uses real-time Linux to increase the safety and fuel economy of big-rig trucks. I love working in this area, as no one would disagree that trucking can be improved. + +#### There have been a few stories about hacked cars in recent years. Can open source solutions help address this issue? + +I presented a talk on precisely this topic, on how Linux can (and cannot) contribute to security solutions in automotive at Southern California Linux Expo 2016 ([Slides][16]). Notably, GENIVI and Automotive Grade Linux have published their code and both projects take patches via Git. Please send your fixes upstream! Many eyes make all bugs shallow. + +#### Law enforcement agencies and insurance companies could find plenty of uses for data about drivers. How easy will it be for them to obtain this information? + +Good question. The Dedicated Short Range Communication Standard (IEEE-1609) takes great pains to keep drivers participating in Wi-Fi safety messaging anonymous. Still, if you're posting to Twitter from your car, someone will be able to track you. + +#### What can developers and private citizens do to make sure civil liberties are protected as automotive technology evolves? + +The Electronic Frontier Foundation (EFF) has done an excellent job of keeping on top of automotive issues, having commented through official channels on what data may be stored in automotive "black boxes" and on how DMCA's Provision 1201 applies to cars. + +#### What are some of the exciting things you see coming for drivers in the next few years? + +Adaptive cruise control and collision avoidance systems are enough of an advance to save lives. As they roll out through vehicle fleets, I truly believe that fatalities will decline. If that's not exciting, I don't know what is. Furthermore, capabilities like automated parking assist will make cars easier to drive and reduce fender-benders. + +#### What needs to be built and how can people get involved? + +Automotive Grade Linux is developed in the open and runs on cheap hardware (e.g. Raspberry Pi 2 and moderately priced Renesas Porter board) that anyone can buy. GENIVI automotive Linux middleware consortium has lots of software publicly available via Git. Furthermore, there is the ultra cool [OSVehicle open hardware][17] automotive platform. + +#### There are many ways for Linux software and open hardware folks with moderate budgets to get involved. Join us at #automotive on Freenode IRC if you have questions. + +### Interview with Steven Crumb (by Don Watkins) + +#### What's so huge about GENIVI's approach to IVI? + +GENIVI filled a huge gap in the automotive industry by pioneering the use of free and open source software, including Linux, for non-safety-critical automotive software like in-vehicle infotainment (IVI) systems. As consumers came to expect the same functionality in their vehicles as on their smartphones, the amount of software required to support IVI functions grew exponentially. The increased amount of software has also increased the costs of building the IVI systems and thus slowed time to market. + +GENIVI's use of open source software and a community development model has saved automakers and their software suppliers significant amounts of money while significantly reducing the time to market. I'm excited about GENIVI because we've been fortunate to lead a revolution of sorts in the automotive industry by slowly evolving organizations from a highly structured and proprietary methodology to a community-based approach. We're not done yet, but it's been a privilege to take part in a transformation that is yielding real benefits. + +#### How do your major members drive the direction of GENIVI? + +GENIVI has a lot of members and non-members contributing to our work. As with many open source projects, any company can influence the technical output by simply contributing code, patches, and time to test. With that said, BMW, Mercedes-Benz, Hyundai Motor, Jaguar Land Rover, PSA, Renault/Nissan, and Volvo are all active adopters of and contributors to GENIVI—and many other OEMs have IVI solutions in their cars that extensively use GENIVI's software. + +#### What licenses cover the contributed code? + +GENIVI employs a number of licenses ranging from (L)GPLv2 to MPLv2 to Apache 2.0. Some of our tools use the Eclipse license. We have a [public licensing policy][18] that details our licensing preferences. + +#### How does a person or group get involved? How important are community contributions to the ongoing success of the project? + +GENIVI does its development completely in the open ([projects.genivi.org][19]) and thus, anyone interested in using open software in automotive is welcome to participate. That said, the alliance can fund its continued development in the open through companies [joining GENIVI][20] as members. GENIVI members enjoy a wide variety of benefits, not the least of which is participation in the global community of 140 companies that has been developed over the last six years. + +Community is hugely important to GENIVI, and we could not have produced and maintained the valuable software we developed over the years without an active community of contributors. We've worked hard to make contributing to GENIVI as simple as joining an [email list][21] and connecting to the people in the various software projects. We use standard practices employed by many open source projects and provide high-quality tools and infrastructure to help developers feel at home and be productive. + +Regardless of someone's familiarity with the automotive software, they are welcome to join our community. People have modified cars for years, so for many people there is a natural draw to anything automotive. Software is the new domain for cars, and GENIVI wants to be the open door for anyone interested in working with automotive, open source software. + +------------------------------- +via: https://opensource.com/business/16/5/interview-alison-chaiken-steven-crumb + +作者:[Don Watkins][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/don-watkins +[1]: https://en.wikipedia.org/wiki/In_car_entertainment +[2]: https://opensource.com/life/16/1/weekly-news-jan-9 +[3]: http://projects.genivi.org/smartdevicelink/home +[4]: http://www.genivi.org/ +[5]: https://www.linkedin.com/in/stevecrumb +[6]: http://www.genivi.org/genivi-members +[7]: http://www.linuxfoundation.org/ +[8]: https://www.automotivelinux.org/ +[9]: https://en.wikipedia.org/wiki/Telematics +[10]: https://www.automotivelinux.org/news/announcement/2016/01/ford-mazda-mitsubishi-motors-and-subaru-join-linux-foundation-and +[11]: https://www.linkedin.com/in/alison-chaiken-3ba456b3 +[12]: https://www.linkedin.com/in/stevecrumb +[13]: https://opensource.com/users/eximious +[14]: https://en.wikipedia.org/wiki/MeeGo +[15]: http://webinos.org/deliverable-d026-target-platform-requirements-and-ipr/automotive/ +[16]: http://she-devel.com/Chaiken_automotive_cybersecurity.pdf +[17]: https://www.osvehicle.com/ +[18]: http://projects.genivi.org/how +[19]: http://projects.genivi.org/ +[20]: http://genivi.org/join +[21]: http://lists.genivi.org/mailman/listinfo/genivi-projects From b7968ec4071b96ec0c01ac1192c3adc8a1917490 Mon Sep 17 00:00:00 2001 From: Ezio Date: Wed, 25 May 2016 20:53:41 +0800 Subject: [PATCH 538/582] =?UTF-8?q?20160525-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit container , Raspberry Pi , Arduino --- ...can learn from Arduino and Raspberry Pi.md | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sources/talk/20160525 What containers and unikernels can learn from Arduino and Raspberry Pi.md diff --git a/sources/talk/20160525 What containers and unikernels can learn from Arduino and Raspberry Pi.md b/sources/talk/20160525 What containers and unikernels can learn from Arduino and Raspberry Pi.md new file mode 100644 index 0000000000..a1d6257d4d --- /dev/null +++ b/sources/talk/20160525 What containers and unikernels can learn from Arduino and Raspberry Pi.md @@ -0,0 +1,51 @@ +What containers and unikernels can learn from Arduino and Raspberry Pi +========================================================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/bus-containers.png?itok=vM7_7vs0) + + +Just the other day, I was speaking with a friend who is a mechanical engineer. He works on computer assisted braking systems for semi trucks and mentioned that his company has [Arduinos][1] all over the office. The idea is to encourage people to quickly experiment with new ideas. He also mentioned that Arduinos are more expensive than printed circuits. I was surprised by his comment about price, because coming from the software side of things, my perceptions of Arduinos was that they cost less than designing a specialized circuit. + +I had always viewed [Arduinos][2] and [Raspberry Pi][3] as these cool, little, specialized devices that can be used to make all kinds of fun gadgets. I came from the software side of the world and have always considered Linux on x86 and x86-64 "general purpose." The truth is, Arduinos are not specialized. In fact, they are very general purpose. They are fairly small, fairly cheap, and extremely flexible—that's why they caught on like wildfire. They have all kinds of I/O ports and expansion cards. They allow a maker to go out and build something cool really quickly. They even allow companies to build new products quickly. + +The unit price for an Arduino is much higher than a printed circuit, but time to a minimum viable idea is much lower. With a printed circuit, the unit price can be driven much lower but the upfront capital investment is much higher. So, long story short, the answer is—it depends. + +### Unikernels, rump kernels, and container hosts + +Enter unikernels, rump kernels, and minimal Linux distributions—these operating systems are purpose-built for specific use cases. These specialized operating systems are kind of like printed circuits. They require some up-front investment in planning and design to utilize, but could provide a great performance increase when deploying a specific workload at scale. + +Minimal operating systems such as Red Hat Enterprise Linux Atomic or CoreOS are purpose-built to run containers. They are small, quick, easily configured at boot time, and run containers quite well. The downside is that it requires extra engineering to add third-party extensions such as monitoring agents or tools for virtualization. Some side-loaded tooling needs redesigned as super-privileged containers. This extra engineering could be worth it if you are building a big enough container environment, but might not be necessary to just try out containers. + +Containers provide the ability to run standard workloads (things built on [glibc][4], etc.). The advantage is that the workload artifact (Docker image) can be built and tested on your desktop and deployed in production on completely different hardware or in the cloud with confidence that it will run with the same characteristics. In the production environment, container hosts are still configured by the operations teams, but the application is controlled by the developer. This is a sort of a best of both worlds. + +Unikernels and rump kernels are also purpose-built, but go a step further. The entire operating system is configured at build time by the developer or architect. This has benefits and challenges. + +One benefit is that the developer can control a lot about how the workload will run. Theoretically, a developer could try out [different TCP stacks][5] for different performance characteristics and choose the best one. The developer can configure the IP address ahead of time or have the system configure itself at boot with DHCP. The developer can also cut out anything that is not necessary for their application. There is also the promise of increased performance because of less [context switching][6]. + +There are also challenges with unikernels. Currently, there is a lot of tooling missing. It's much like a printed circuit world right now. A developer has to invest a lot of time and energy discerning if all of the right libraries exist, or they have to change the way their application works. There may also be challenges with how the "embedded" operating system is configured at runtime. Finally, every time a major change is made to the OS, it requires [going back to the developer][7] to change it. This is not a clean separation between development and operations, so I envision some organizational changes being necessary to truly adopt this model. + +### Conclusion + +There is a lot of interesting buzz around specialized container hosts, rump kernels, and unikernels because they hold the potential to revolutionize certain workloads (embedded, cloud, etc.). Keep your eye on this exciting, fast moving space, but cautiously. + +Currently, unikernels seem quite similar to building printed circuits. They require a lot of upfront investment to utilize and are very specialized, providing benefits for certain workloads. In the meantime containers are quite interesting even for conventional workloads and don't require as much investment. Typically an operations team should be able to port an application to containers, whereas it takes real re-engineering to port an application to unikernels and the industry is still not quite sure what workloads can be ported to unikernels. + +Here's to an exciting future of containers, rump kernels, and unikernels! + +-------------------------------------- +via: https://opensource.com/business/16/5/containers-unikernels-learn-arduino-raspberry-pi + +作者:[Scott McCarty][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/fatherlinux +[1]: https://opensource.com/resources/what-arduino +[2]: https://opensource.com/life/16/4/arduino-day-3-projects +[3]: https://opensource.com/resources/what-raspberry-pi +[4]: https://en.wikipedia.org/wiki/GNU_C_Library +[5]: http://www.eetasia.com/ARTICLES/2001JUN/2001JUN18_NTEK_CT_AN5.PDF +[6]: https://en.wikipedia.org/wiki/Context_switch +[7]: http://developers.redhat.com/blog/2016/05/18/3-reasons-i-should-build-my-containerized-applications-on-rhel-and-openshift/ From d25ebf4b5ebc8161ecb4bb05c693bfca60661bb7 Mon Sep 17 00:00:00 2001 From: robot527 Date: Wed, 25 May 2016 22:26:07 +0800 Subject: [PATCH 539/582] translating ... modified: sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md --- .../20160218 Linux Systems Patched for Critical glibc Flaw.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md index 19c654e27e..18559701b4 100644 --- a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md +++ b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md @@ -1,3 +1,5 @@ +robot527 translating + Linux Systems Patched for Critical glibc Flaw ================================================= From 04bb5e7109e5d086357b2f70b8983365087034b5 Mon Sep 17 00:00:00 2001 From: "eric.xiaozhen" Date: Thu, 26 May 2016 09:43:09 +0800 Subject: [PATCH 540/582] translated --- ...n source from a recruiter's perspective.md | 52 ------------------- ...n source from a recruiter's perspective.md | 49 +++++++++++++++++ 2 files changed, 49 insertions(+), 52 deletions(-) delete mode 100644 sources/talk/20160516 Open source from a recruiter's perspective.md create mode 100644 translated/talk/20160516 Open source from a recruiter's perspective.md diff --git a/sources/talk/20160516 Open source from a recruiter's perspective.md b/sources/talk/20160516 Open source from a recruiter's perspective.md deleted file mode 100644 index e8d48f77d0..0000000000 --- a/sources/talk/20160516 Open source from a recruiter's perspective.md +++ /dev/null @@ -1,52 +0,0 @@ -eriwoon 翻译中 -- 2106-May-19 -Open source from a recruiter's perspective -============================================ - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BIZ_workplay.png?itok=uQqFssrf) - -I fell in love with technology when I went to my first open source convention in 2012. - -After spending years in recruiting, I decided to take a job specializing in big data at [Greythorn][1]. I had been trying to learn the ropes for a few months leading up to [OSCON][2], but going to the conference sped that process up like crazy. There were so many brilliant people all in one place, and everyone was willing to share what they knew. It wasn't because they were trying to sell me anything, but because they were all so passionate about what they were working on. - -I soon realized that, in many ways, the open source and big data industry was less an industry and more of a community. That's why I now try to pay it forward and share what I've learned about open source with those who are just getting started in their careers. - -### Why employers want open source contributors - -Many clients tell me that although they want a candidate who has an exceptional technical mind, the ideal person should also really like this stuff. When you are passionate about something, you find yourself working on it even when you aren't getting paid. - -My clients often ask, "Do they code in their spare time?" "Can I find their work anywhere?" "What do they really enjoy?" Open source contributors are often at an advantage because they check these boxes, and not only are their projects out in the open—so is the evidence of their coding proficiency. - -#### Why recruiters search for open source contributors - -Solid tech recruiters understand the technologies and roles they're recruiting for, and they're going to assess your skills accordingly. But I'll admit that many of us have found that the best candidates we've come across have a tendency to be involved in open source, so we often just start our search there. Recruiters provide value to clients when they find candidates who are motivated to work on a team to create something awesome, because that's basically the description of a top-performing employee. - -It makes sense to me: When you take really smart people and give them the chance to be collaborative—for the sake of making something that works really well or may change the landscape of our everyday lives—it creates an energy that can be addictive. - -### What open source contributors can do to build a happy career - -There are obvious things you can do to leverage your open source work to build your career: Put your code on GitHub, participate in projects, go to conferences and join panels and workshops, etc. These are worthwhile, but more than anything you need to know what will make you happy in your work. - -Ask yourself questions like... - -* **Is it important to work for a company that gives back to the open source and software community?** I find that some of my best candidates insist on this, and it makes a huge difference in their job satisfaction. -* **Do you want to work for a company that is based on open source?** The culture is often different in these environments, and it helps to know if that's where you think you'll fit best. -* **Are there people you'd specifically like to work with?** Although you can always try to join the same projects, the odds of collaborating with and learning from someone you admire are better if your day jobs align at the same company. - -Once you know your own career priorities, it's easier to filter out the jobs that won't move you closer to your goals—and if you're working with a recruiter, it helps them match you with the right employer and team. - -Although I don't contribute code, I'll always share what I've learned with those who are working on their career in open source. This community is made up of supportive and smart people, and I love that I've been able to be a small part of it. - - ------------------------------------------------------------------------------- - -via: https://opensource.com/business/16/5/open-source-recruiters-perspective - -作者:[Lindsey Thorne][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/lindsey-thorne -[1]: http://www.greythorn.com/ -[2]: http://conferences.oreilly.com/oscon diff --git a/translated/talk/20160516 Open source from a recruiter's perspective.md b/translated/talk/20160516 Open source from a recruiter's perspective.md new file mode 100644 index 0000000000..200b6ed48c --- /dev/null +++ b/translated/talk/20160516 Open source from a recruiter's perspective.md @@ -0,0 +1,49 @@ +ͷôԴ +============================================ + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BIZ_workplay.png?itok=uQqFssrf) + +2012 ʱҳϯһԴľۻᣬ֮Ҿϲҵ + +ͷܶ꣬ [Greythorn][1] ˾רŴ´ݷƸԼ֮ǰѧϰ˼´ݣǵҲμ [OSCON][2] Դᣬŷ֮ǰѧϰôЧʡOSCON ۼ˷dzˣÿ˶ԸǵĵáԭƷΪϲ + +Һܿʶ˵Դʹһҵ˵һcommunityҲΪʲôرҴӿԴѧĶңرǸЩո̤빤ˡ + +### ΪʲôϲԴߣcontributor +ҵͻ˵һ˵ļȻҪϲԼµĹҪȰԼĹϰ岻Ӱ๤㶼̲סӰࡣ + +ҵĿͻҲʣû¶ʱд𣿡ĶҵǵƷأʲôѽʱԴߵƾͳˣΪǸġĿԴǵҲԴ + +#### ΪʲôͷѰҿԴ + +ӲɿƼҵͷ˽⼼֪ԼһʲôˣͷҲȷ˽ļܡҷ֣ͷҵ˲źܶʱҲԴǾֱȥԴѰǵĿꡣͷǻ߹ҵǸϲŶһ˲IJƷͬҪ + +˵ĿĿǸıδǵЩŶ֮ԼͻᰮԼĹ + +### Դεõõְҵ + +ôĹ׸Ϊ֪أѴŵGithubϣԴĿμӻֵȵȡЩ벻ջġ + +ԳһԼ + +* **ڵĹ˾ǷԴҪ**ܶ˲Ŷǿһ㣬ҲἫǶԹȡ +* **ƷǷڿԴ**ڿԴĹ˾ĻΧ˾ڲͬҲѡְλʱҪǵ⡣ +* **ûر֮ˣ**ȻʱĿŶݻ͵ˣǹͰˡ + +˽Լ׷ô˵Щʺְλͼ򵥶ˣһͷҵϵĹŶӵĻʹˡ + +ȻԼд룬һҴӿԴѧĶҡԴһȺڷɣҺܿҲССһӡ + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/5/open-source-recruiters-perspective + +ߣ[Lindsey Thorne][a] +ߣ[eriwoon](https://github.com/eriwoon) +Уԣ[УID](https://github.com/УID) + + [LCTT](https://github.com/LCTT/TranslateProject) ԭ룬[Linuxй](https://linux.cn/) Ƴ + +[a]: https://opensource.com/users/lindsey-thorne +[1]: http://www.greythorn.com/ +[2]: http://conferences.oreilly.com/oscon From 37b55febf4201763980f1aed698e634eb4ce9958 Mon Sep 17 00:00:00 2001 From: Ezio Date: Thu, 26 May 2016 22:28:37 +0800 Subject: [PATCH 541/582] =?UTF-8?q?20160526-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit linux , nodejs --- ...OS : LINUX DISTRIBUTION FOR NODE LOVERS.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md diff --git a/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md b/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md new file mode 100644 index 0000000000..55b7690423 --- /dev/null +++ b/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md @@ -0,0 +1,53 @@ +NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS +================================================ + +![](http://itsfoss.com/wp-content/uploads/2016/05/node-os-linux.jpg) + +[NodeOS][1], the operating system based on [Node.js][2], is now heading towards its version 1.0 following the release of its first [Release Candidate][3] last year. + +If this is the first time you’re hearing about it, NodeOS is the first ever operating system powered by Node.js & [npm][4] and built on top of the [Linux][5] Kernel. [Jacob Groundwater][6] introduced this project in mid-2013. The primary technologies used in building the system are: + +- **Linux Kernel**: The entire OS is built off the Linux Kernel. +- **Node.js runtime**: Node is used as the primary runtime. +- **npm Packages**: npm is used for package management. + +NodeOS source is hosted on [Github Repository][7]. So, anybody interested can easily contribute and report bugs. Users can build from source or use the [pre-built images][8] available. The build process and quick start guide can be found at project repository. + +The idea behind NodeOS is to provide just enough to let npm run on it and then the rest of the functionalities will come from npm packages. So, the users have access the vast collection of about 250,000 packages and that number is continuously increasing every day. And everything being open-source, it’s always easy to patch bugs and add more packages to npm according to your need. + +NodeOS core development is separated into layers and the general structure includes: + +- **barebones** – custom Linux kernel along with an initramfs that boots to a Node.js REPL +- **initramfs** – Initram filesystem to mount the users partition & boot the system +- **rootfs** – Read-only partition image hosting the Linux kernel & initramfs files +- **usersfs** – multi-user filesystem (as traditional OSes) + +NodeOS aims to be able to run on virtually any platforms, including – **Real Hardware** (personal computers or SOCs), **Cloud platforms, Virtual machines, PaaS providers, Containers** (Docker & Vagga ) etc. And so far, it seems that they’re doing pretty good. On March 3, [Jesús Leganés Combarro][9], NodeOS member on GitHub, [announced][10] that: + +>**NodeOS is not a toy OS anymore**, and it’s very capable to be used on production environments for real use cases from now on. + +So, if you are a die-hard fan of Node.js and/or have a knack for trying new things, this might be the thing for you to try. And in related post, you should read about these niche [Linux distributions for specific usage][11]. + + +-------------------------------------------------------------------------------- + +via: http://itsfoss.com/nodeos-operating-system/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[Munif Tanjim][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/munif/ +[1]: http://node-os.com/ +[2]: https://nodejs.org/en/ +[3]: https://github.com/NodeOS/NodeOS/releases/tag/v1.0-RC1 +[4]: https://www.npmjs.com/ +[5]: http://itsfoss.com/tag/linux/ +[6]: https://github.com/groundwater +[7]: https://github.com/nodeos/nodeos +[8]: https://github.com/NodeOS/NodeOS/releases +[9]: https://github.com/piranna +[10]: https://github.com/NodeOS/NodeOS/issues/216 +[11]: http://itsfoss.com/weird-ubuntu-based-linux-distributions/ From 1622096bc64597a037118d0e24d2c5d1e61e6872 Mon Sep 17 00:00:00 2001 From: dongfengweixiao Date: Thu, 26 May 2016 22:56:16 +0800 Subject: [PATCH 542/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=9A20160426=20IS=20UBUNTU=E2=80=99S=20SNAP....?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译完成:20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md --- ...S UBUNTU’S SNAP PACKAGING REALLY SECURE.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md diff --git a/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md b/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md new file mode 100644 index 0000000000..f898f3536d --- /dev/null +++ b/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md @@ -0,0 +1,60 @@ +Ubuntu 的 SNAP 封装真的足够安全? +========================================== + + +最近发布的 Ubuntu 16.04 LTS 版本带来了一些新功能,其中之一就是对 ZFS 格式文件系统的支持。 +另一个值得广为讨论的特性就是 Snap 格式的软件包。不过,据 CoreOS 的开发者之一所述, +Snap 封装并不像声称的那样安全。 + +### 什么是 Snap 格式? + +Snap 封装受容器的启发。这种新的封装格式允许开发人员发布运行于 Ubuntu Long-Term-Support (LTS) releases 之上的应用程序更新。 +这就可以让用户虽然运行着稳定版本的系统,但却能够让应用程序保持最新的状态。之所以能够这样, +是因为软件包本身就包含了程序运行的所有依赖。这可以防止依赖的软件更新后软件挂掉。 + +### 然而…… + +据 [Matthew Garrett][5] 的说法,Snap 封装不能完全兑现最后的承诺。Garret 最为 Linux +内核的开发人员和 CoreOS 的安全性相关工作的开发者,我想他一定知道自己在说些什么。 + +[According to Garret][6], “仅需要克服一点点困难,安装的任何 Snap 格式的软件包就能够将你的私有数据复制到任何地方”。 + +[ZDnet][7] 的报道: + +>*“为了证明自己的观点,他在Snap中构建了一个仅用于验证原理的攻击包,它首先会显示一个可爱的泰迪熊, +然后将会记录按键点击事件,并且能够窃取私人的 SSH 密钥。这个仅用于验证原理的工具包实际上注入的是一个无害的命令, +但是却能够修改 cURL session 过程来窃取 SSH 密钥。” + +### 但是稍等…… +难道 Snap 真的有安全缺陷?当然不是啦! + +Garret 自己也说,此问题仅出现在使用 X11 窗口的系统上,而对于那些使用 Mir 的移动设备无效。 +所以这个缺陷是 X11 的而不是 Snap 的。 + +>X11 是如何对应用程序进行受信是一个众所周知的安全风险。Snap 并没有更改 X11 的受信模型。 +所以一个应用程序能够看到其它应用程序的行为并不是新的包格式的缺点,而是 X11 的。 + +Garrett 实际上仅仅是想要表达,当 Canonical 歌颂 Snap 和它的安全性时,Snap 应用程序并不是完全沙盒化的。 +和其他二进制文件一样,它们也存在风险。 + +牢记 Ubuntu 16.04 当前还在使用 X11 而不是 Mir 的事实,从未知的源下载和安全 Snap 格式的软件包具有风险,然而其它不也是如此嘛?! + +相关链接: [如何在 Ubuntu 16.04 中使用 Snap 格式软件包][8]。期待您分享关于 Snap 格式及其安全性的观点。 +---------- +via: http://itsfoss.com/snap-package-securrity-issue/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[ John Paul][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/john/ +[1]: http://itsfoss.com/features-ubuntu-1604/ +[2]: http://itsfoss.com/oracle-canonical-lawsuit/ +[3]: https://en.wikipedia.org/wiki/CoreOS +[4]: https://insights.ubuntu.com/2016/04/13/snaps-for-classic-ubuntu/ +[5]: https://mjg59.dreamwidth.org/l +[6]: https://mjg59.dreamwidth.org/42320.html +[7]: http://www.zdnet.com/article/linux-expert-matthew-garrett-ubuntu-16-04s-new-snap-format-is-a-security-risk/ +[8]: http://itsfoss.com/use-snap-packages-ubuntu-16-04/ From 80d76f707f45512f0ccca993b5fa647a5606ce66 Mon Sep 17 00:00:00 2001 From: dongfengweixiao Date: Thu, 26 May 2016 22:57:14 +0800 Subject: [PATCH 543/582] =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=2020160426=20IS=20UBUNTU=E2=80=99S=20SNAP=20?= =?UTF-8?q?....?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 已经完成翻译 --- ...S UBUNTU’S SNAP PACKAGING REALLY SECURE.md | 54 ------------------- 1 file changed, 54 deletions(-) delete mode 100644 sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md diff --git a/sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md b/sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md deleted file mode 100644 index 2752b5855f..0000000000 --- a/sources/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md +++ /dev/null @@ -1,54 +0,0 @@ -IS UBUNTU’S SNAP PACKAGING REALLY SECURE -========================================== - - -The recent release of [Ubuntu 16.04 LTS has brought a number of new features][1], one of which we covered was the [inclusion of ZFS][2]. Another feature that many people have been talking about is the Snap package format. But according to one of the developers of [CoreOS][3], the Snap packages are not as safe as the claim. - -### WHAT ARE SNAP PACKAGES? - -Snap packages are inspired by containers. This new package format allows [developers to issue updates for applications running on Ubuntu Long-Term-Support (LTS) releases][4]. This gives users the option to run a stable operating system, but keep their applications updated. This is accomplished by including all of the application’s dependencies in the same package. This prevents the program from breaking when a dependency updates. - -Another advantage of Snap packages is that the applications are isolated from the rest of the system. This means that if you change something with a Snap package, it will not affect the rest of the system. It also prevents other applications from accessing your private information, which makes it harder for hackers to get your data. - -### BUT WAIT… - -According to [Matthew Garrett][5], Snap can’t quite deliver on the last promise. Garret works as a Linux kernel developer and security developer at CoreOS, so he should know what he’s talking about. - -[According to Garret][6], “Any Snap package you install is completely capable of copying all your private data to wherever it wants with very little difficulty.” - -[ZDnet][7] reported: - ->*“To prove his point, he built a proof-of-concept attack package in Snap, which first shows an “adorable” teddy bear and then logs keystrokes from Firefox and could be used to steal private SSH keys. The PoC actually injects a harmless command, but could be tweaked to include a cURL session to steal SSH keys.”* - -### BUT WAIT A LITTLE MORE… - -Is it really that Snap has security flaws? Apparently not so. - -Garret himself said that this problem was caused by the X11 window system and did not affect mobile devices that use Mir. So, it is the flaw in X11 that does it. It’s not Snap itself. - ->how X11 trusts applications is a well-known security risk. Snap doesn’t change X11’s trust model, so the fact that applications can see what other applications are doing isn’t a weakness in the new package format, but rather X11’s. - -Garrett is just actually trying to show that when Canonical is all praises for Snap and its security; Snap applications are not fully sandboxed. They are as risky as any other binaries. - -Keeping the fact in mind that Ubuntu 16.04 still uses X11 display, and not Mir, downloading and installing Snap packages from unknown sources might be harmful. But that’s the case with any other packaging, isn’t it? - -In related articles, you should check out [how to use Snap packages in Ubuntu 16.04][8]. And do let us know of your views on Snap and its security. - ----------- -via: http://itsfoss.com/snap-package-securrity-issue/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 - -作者:[ John Paul][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://itsfoss.com/author/john/ -[1]: http://itsfoss.com/features-ubuntu-1604/ -[2]: http://itsfoss.com/oracle-canonical-lawsuit/ -[3]: https://en.wikipedia.org/wiki/CoreOS -[4]: https://insights.ubuntu.com/2016/04/13/snaps-for-classic-ubuntu/ -[5]: https://mjg59.dreamwidth.org/l -[6]: https://mjg59.dreamwidth.org/42320.html -[7]: http://www.zdnet.com/article/linux-expert-matthew-garrett-ubuntu-16-04s-new-snap-format-is-a-security-risk/ -[8]: http://itsfoss.com/use-snap-packages-ubuntu-16-04/ From ae31eb2c390e69cc153502322ae9b18800c5e908 Mon Sep 17 00:00:00 2001 From: dongfengweixiao Date: Thu, 26 May 2016 23:03:14 +0800 Subject: [PATCH 544/582] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改错别字 --- translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md b/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md index f898f3536d..f2585bf33d 100644 --- a/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md +++ b/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md @@ -14,7 +14,7 @@ Snap 封装受容器的启发。这种新的封装格式允许开发人员发布 ### 然而…… -据 [Matthew Garrett][5] 的说法,Snap 封装不能完全兑现最后的承诺。Garret 最为 Linux +据 [Matthew Garrett][5] 的说法,Snap 封装不能完全兑现最后的承诺。Garret 作为 Linux 内核的开发人员和 CoreOS 的安全性相关工作的开发者,我想他一定知道自己在说些什么。 [According to Garret][6], “仅需要克服一点点困难,安装的任何 Snap 格式的软件包就能够将你的私有数据复制到任何地方”。 From f61f31a7aae4dd873d1416d3a65dc7ab014c61b7 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 27 May 2016 00:02:15 +0800 Subject: [PATCH 545/582] =?UTF-8?q?20160526-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fedora , openstack , web --- ...st Fedora 24 Beta in an OpenStack cloud.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 sources/tech/20160524 Test Fedora 24 Beta in an OpenStack cloud.md diff --git a/sources/tech/20160524 Test Fedora 24 Beta in an OpenStack cloud.md b/sources/tech/20160524 Test Fedora 24 Beta in an OpenStack cloud.md new file mode 100644 index 0000000000..c550880223 --- /dev/null +++ b/sources/tech/20160524 Test Fedora 24 Beta in an OpenStack cloud.md @@ -0,0 +1,77 @@ +Test Fedora 24 Beta in an OpenStack cloud +=========================================== + +![](https://major.io/wp-content/uploads/2012/01/fedorainfinity.png) + +Although there are a few weeks remaining before [Fedora 24][1] is released, you can test out the Fedora 24 Beta release today! This is a great way to get [a sneak peek at new features][2] and help find bugs that still need a fix. + +The [Fedora Cloud][3] image is available for download from your favorite [local mirror][4] or directly from [Fedora’s servers][5]. In this post, I’ll show you how to import this image into an OpenStack environment and begin testing Fedora 24 Beta. + +One last thing: this is beta software. It has been reliable for me so far, but your experience may vary. I would recommend waiting for the final release before deploying any mission critical applications on it. + +### Importing the image + +The older glance client (version 1) allows you to import an image from a URL that is reachable from your OpenStack environment. This is helpful since my OpenStack cloud has a much faster connection to the internet (1 Gbps) than my home does (~ 20 mbps upload speed). However, the functionality to import from a URL was [removed in version 2 of the glance client][6]. The [OpenStackClient][7] doesn’t offer the feature either. + +There are two options here: + +- Install an older version of the glance client +- Use Horizon (the web dashboard) + +Getting an older version of glance client installed is challenging. The OpenStack requirements file for the liberty release [leaves the version of glance client without a maximum version cap][8] and it’s difficult to get all of the dependencies in order to make the older glance client work. + +Let’s use Horizon instead so we can get back to the reason for the post. + +### Adding an image in Horizon + +Log into the Horizon panel and click Compute > Images. Click + Create Image at the top right of the page and a new window should appear. Add this information in the window: + +- **Name**: Fedora 24 Cloud Beta +- **Image Source**: Image Location +- **Image Location**: http://mirrors.kernel.org/fedora/releases/test/24_Beta/CloudImages/x86_64/images/Fedora-Cloud-Base-24_Beta-1.6.x86_64.qcow2 +- **Format**: QCOW2 – QEMU Emulator +- **Copy Data**: ensure the box is checked + +When you’re finished, the window should look like this: + +![](https://major.io/wp-content/uploads/2016/05/horizon_image.png) + +Click Create Image and the images listing should show Saving for a short period of time. Once it switches to Active, you’re ready to build an instance. + +### Building the instance + +Since we’re already in Horizon, we can finish out the build process there. + +On the image listing page, find the row with the image we just uploaded and click Launch Instance on the right side. A new window will appear. The Image Name drop down should already have the Fedora 24 Beta image selected. From here, just choose an instance name, select a security group and keypair (on the Access & Security tab), and a network (on the Networking tab). Be sure to choose a flavor that has some available storage as well (m1.tiny is not enough). + +Click Launch and wait for the instance to boot. + +Once the instance build has finished, you can connect to the instance over ssh as the fedora user. If your [security group allows the connection][9] and your keypair was configured correctly, you should be inside your new Fedora 24 Beta instance! + +Not sure what to do next? Here are some suggestions: + +- Update all packages and reboot (to ensure that you are testing the latest updates) +- Install some familiar applications and verify that they work properly +- Test out your existing automation or configuration management tools +- Open bug tickets! + +-------------------------------------------------------------------------------- + +via: https://major.io/2016/05/24/test-fedora-24-beta-openstack-cloud/ + +作者:[major.io][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://major.io/about-the-racker-hacker/ +[1]: https://fedoraproject.org/wiki/Releases/24/Schedule +[2]: https://fedoraproject.org/wiki/Releases/24/ChangeSet +[3]: https://getfedora.org/en/cloud/ +[4]: https://admin.fedoraproject.org/mirrormanager/mirrors/Fedora/24/x86_64 +[5]: https://getfedora.org/en/cloud/download/ +[6]: https://wiki.openstack.org/wiki/Glance-v2-v1-client-compatability +[7]: http://docs.openstack.org/developer/python-openstackclient/ +[8]: https://github.com/openstack/requirements/blob/stable/liberty/global-requirements.txt#L159 +[9]: https://major.io/2016/05/16/troubleshooting-openstack-network-connectivity/ From e7a8ea803b136327e46b94cf8fc7389248769676 Mon Sep 17 00:00:00 2001 From: David Dai Date: Fri, 27 May 2016 10:15:38 +0800 Subject: [PATCH 546/582] Translate 20160301 Linux gives me all the tools I need (#3998) --- .../20160301 Linux gives me all the tools I need.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md b/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md index b1689f4164..b092044827 100644 --- a/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md +++ b/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md @@ -1,3 +1,5 @@ +StdioA Translating + Linux gives me all the tools I need ========================================== From a83e3ae5a44485f78219587fd02ae863cc2a7aeb Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 27 May 2016 10:18:18 +0800 Subject: [PATCH 547/582] =?UTF-8?q?20160523-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改文件名 for windows --- ...md => 20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/tech/{20160520 ORB: NEW GENERATION OF LINUX APPS ARE HERE.md => 20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md} (100%) diff --git a/sources/tech/20160520 ORB: NEW GENERATION OF LINUX APPS ARE HERE.md b/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md similarity index 100% rename from sources/tech/20160520 ORB: NEW GENERATION OF LINUX APPS ARE HERE.md rename to sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md From 4a9146cb5d44b961df7bfb8249d0f366569692fc Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 27 May 2016 10:26:14 +0800 Subject: [PATCH 548/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=8C=E8=AF=B7=E6=A0=A1=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移动到对应目录 @dongfengweixiao --- .../20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md | 1 + 1 file changed, 1 insertion(+) rename translated/{ => tech}/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md (99%) diff --git a/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md b/translated/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md similarity index 99% rename from translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md rename to translated/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md index f2585bf33d..891af48b0b 100644 --- a/translated/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md +++ b/translated/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md @@ -40,6 +40,7 @@ Garrett 实际上仅仅是想要表达,当 Canonical 歌颂 Snap 和它的安 牢记 Ubuntu 16.04 当前还在使用 X11 而不是 Mir 的事实,从未知的源下载和安全 Snap 格式的软件包具有风险,然而其它不也是如此嘛?! 相关链接: [如何在 Ubuntu 16.04 中使用 Snap 格式软件包][8]。期待您分享关于 Snap 格式及其安全性的观点。 + ---------- via: http://itsfoss.com/snap-package-securrity-issue/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 From fb72e1620690ccb24d4062de37ecb8a3909a60c1 Mon Sep 17 00:00:00 2001 From: cposture Date: Fri, 27 May 2016 19:56:10 +0800 Subject: [PATCH 549/582] Translating by cposture --- sources/tech/20160518 Python 3: An Intro to Encryption.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160518 Python 3: An Intro to Encryption.md b/sources/tech/20160518 Python 3: An Intro to Encryption.md index 43c042d5c1..f80702a771 100644 --- a/sources/tech/20160518 Python 3: An Intro to Encryption.md +++ b/sources/tech/20160518 Python 3: An Intro to Encryption.md @@ -1,3 +1,4 @@ +[Translating by cposture] Python 3: An Intro to Encryption =================================== From cbf1008263ccaf56baf3a24c598a469056c25f90 Mon Sep 17 00:00:00 2001 From: wxy Date: Fri, 27 May 2016 22:50:43 +0800 Subject: [PATCH 550/582] =?UTF-8?q?PUB:20160426=20IS=20UBUNTU=E2=80=99S=20?= =?UTF-8?q?SNAP=20PACKAGING=20REALLY=20SECURE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @dongfengweixiao --- ...S UBUNTU’S SNAP PACKAGING REALLY SECURE.md | 53 ++++++++++++++++ ...S UBUNTU’S SNAP PACKAGING REALLY SECURE.md | 61 ------------------- 2 files changed, 53 insertions(+), 61 deletions(-) create mode 100644 published/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md delete mode 100644 translated/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md diff --git a/published/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md b/published/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md new file mode 100644 index 0000000000..42da17d2b7 --- /dev/null +++ b/published/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md @@ -0,0 +1,53 @@ +Ubuntu 的 snap 软件包封装真的安全吗? +========================================== + +最近发布的 [Ubuntu 16.04 LTS 版本带来了一些新功能[1],其中之一就是对 [ZFS 格式文件系统的支持][2]。另一个值得广为讨论的特性就是 Snap 软件包格式。不过,据 [CoreOS][3] 的开发者之一所述,Snap 软件包并不像声称的那样安全。 + +### 什么是 Snap 软件包? + +Snap 软件包的灵感来自容器。这种新的封装格式允许[开发人员为运行于 Ubuntu 长期支持版本 (LTS)之上的应用程序发布更新][4]。这就可以让用户虽然运行着稳定版本的操作系统,但却能够让应用程序保持最新的状态。之所以能够这样,是因为软件包本身就包含了程序运行的所有依赖。这可以防止依赖的软件更新后软件挂掉。 + +snap 软件包的另外一个优势是应用与系统的其它部分是隔离的。这意味着如果你改变了 snap 软件包的一些东西,它不会影响到系统的其它部分。这也可以防止其它的应用访问你的隐私信息,从而使骇客根据难以获取你的数据。 + +### 然而…… + +据 [Matthew Garrett][5] 的说法,Snap 软件包不能完全兑现上述承诺。Garret 作为 Linux 内核的开发人员和 CoreOS 的安全性方面的开发者,我想他一定知道自己在说些什么。 + +[据 Garret 说][6], “仅需要克服一点点困难,安装的任何 Snap 格式的软件包就完全能够将你所有的私有数据复制到任何地方”。 + +[ZDnet][7] 的报道: + +> “为了证明自己的观点,他在 Snap 中构建了一个仅用于验证其原理的用于破坏的软件包,它首先会显示一个可爱的泰迪熊,然后将会记录 Firefox 的键盘按键事件,并且能够窃取 SSH 私钥。这个仅用于验证原理的软件包实际上注入的是一个无害的命令,但是却能够修改成一个窃取 SSH 密钥的 cURL 会话。” + +### 但是稍等…… + +难道 Snap 真的有安全缺陷?事实上却不是! + +Garret 自己也说,此问题仅出现在使用 X11 窗口系统上,而对于那些使用 Mir 的移动设备无效。所以这个缺陷是 X11 的而不是 Snap 的。 + +> X11 是如何信任应用程序的,这是一个众所周知的安全风险。Snap 并没有更改 X11 的信任模型。所以一个应用程序能够看到其它应用程序的行为并不是这种新的封装格式的缺点,而是 X11 的。 + +Garrett 实际上想表达的只是,当 Canonical 歌颂 Snap 和它的安全性时,Snap 应用程序并不是完全沙盒化的。和其他二进制文件一样,它们也存在风险。 + +请牢记 Ubuntu 16.04 当前还在使用 X11 而不是 Mir 的事实,从未知的源下载和安装 Snap 格式的软件包也许还是有风险的,然而其它不也是如此嘛?! + +相关链接: [如何在 Ubuntu 16.04 中使用 Snap 软件包][8]。期待您分享关于 Snap 格式及其安全性的观点。 + +---------- +via: http://itsfoss.com/snap-package-securrity-issue/ + +作者:[John Paul][a] +译者:[dongfengweixiao](https://github.com/dongfengweixiao) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/john/ +[1]: http://itsfoss.com/features-ubuntu-1604/ +[2]: http://itsfoss.com/oracle-canonical-lawsuit/ +[3]: https://en.wikipedia.org/wiki/CoreOS +[4]: https://insights.ubuntu.com/2016/04/13/snaps-for-classic-ubuntu/ +[5]: https://mjg59.dreamwidth.org/l +[6]: https://mjg59.dreamwidth.org/42320.html +[7]: http://www.zdnet.com/article/linux-expert-matthew-garrett-ubuntu-16-04s-new-snap-format-is-a-security-risk/ +[8]: http://itsfoss.com/use-snap-packages-ubuntu-16-04/ diff --git a/translated/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md b/translated/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md deleted file mode 100644 index 891af48b0b..0000000000 --- a/translated/tech/20160426 IS UBUNTU’S SNAP PACKAGING REALLY SECURE.md +++ /dev/null @@ -1,61 +0,0 @@ -Ubuntu 的 SNAP 封装真的足够安全? -========================================== - - -最近发布的 Ubuntu 16.04 LTS 版本带来了一些新功能,其中之一就是对 ZFS 格式文件系统的支持。 -另一个值得广为讨论的特性就是 Snap 格式的软件包。不过,据 CoreOS 的开发者之一所述, -Snap 封装并不像声称的那样安全。 - -### 什么是 Snap 格式? - -Snap 封装受容器的启发。这种新的封装格式允许开发人员发布运行于 Ubuntu Long-Term-Support (LTS) releases 之上的应用程序更新。 -这就可以让用户虽然运行着稳定版本的系统,但却能够让应用程序保持最新的状态。之所以能够这样, -是因为软件包本身就包含了程序运行的所有依赖。这可以防止依赖的软件更新后软件挂掉。 - -### 然而…… - -据 [Matthew Garrett][5] 的说法,Snap 封装不能完全兑现最后的承诺。Garret 作为 Linux -内核的开发人员和 CoreOS 的安全性相关工作的开发者,我想他一定知道自己在说些什么。 - -[According to Garret][6], “仅需要克服一点点困难,安装的任何 Snap 格式的软件包就能够将你的私有数据复制到任何地方”。 - -[ZDnet][7] 的报道: - ->*“为了证明自己的观点,他在Snap中构建了一个仅用于验证原理的攻击包,它首先会显示一个可爱的泰迪熊, -然后将会记录按键点击事件,并且能够窃取私人的 SSH 密钥。这个仅用于验证原理的工具包实际上注入的是一个无害的命令, -但是却能够修改 cURL session 过程来窃取 SSH 密钥。” - -### 但是稍等…… -难道 Snap 真的有安全缺陷?当然不是啦! - -Garret 自己也说,此问题仅出现在使用 X11 窗口的系统上,而对于那些使用 Mir 的移动设备无效。 -所以这个缺陷是 X11 的而不是 Snap 的。 - ->X11 是如何对应用程序进行受信是一个众所周知的安全风险。Snap 并没有更改 X11 的受信模型。 -所以一个应用程序能够看到其它应用程序的行为并不是新的包格式的缺点,而是 X11 的。 - -Garrett 实际上仅仅是想要表达,当 Canonical 歌颂 Snap 和它的安全性时,Snap 应用程序并不是完全沙盒化的。 -和其他二进制文件一样,它们也存在风险。 - -牢记 Ubuntu 16.04 当前还在使用 X11 而不是 Mir 的事实,从未知的源下载和安全 Snap 格式的软件包具有风险,然而其它不也是如此嘛?! - -相关链接: [如何在 Ubuntu 16.04 中使用 Snap 格式软件包][8]。期待您分享关于 Snap 格式及其安全性的观点。 - ----------- -via: http://itsfoss.com/snap-package-securrity-issue/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 - -作者:[ John Paul][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://itsfoss.com/author/john/ -[1]: http://itsfoss.com/features-ubuntu-1604/ -[2]: http://itsfoss.com/oracle-canonical-lawsuit/ -[3]: https://en.wikipedia.org/wiki/CoreOS -[4]: https://insights.ubuntu.com/2016/04/13/snaps-for-classic-ubuntu/ -[5]: https://mjg59.dreamwidth.org/l -[6]: https://mjg59.dreamwidth.org/42320.html -[7]: http://www.zdnet.com/article/linux-expert-matthew-garrett-ubuntu-16-04s-new-snap-format-is-a-security-risk/ -[8]: http://itsfoss.com/use-snap-packages-ubuntu-16-04/ From 1fe23001aa6a888b5bc3cebde3760a4361058bd8 Mon Sep 17 00:00:00 2001 From: qingyunha Date: Sat, 28 May 2016 00:32:21 +0800 Subject: [PATCH 551/582] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90=20?= =?UTF-8?q?20160527=20A=20Python=20Interpreter=20Written=20in=20Python=20(?= =?UTF-8?q?#4000)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @qingyunha merged --- ... A Python Interpreter Written in Python.md | 996 ++++++++++++++++++ 1 file changed, 996 insertions(+) create mode 100644 translated/tech/20160527 A Python Interpreter Written in Python.md diff --git a/translated/tech/20160527 A Python Interpreter Written in Python.md b/translated/tech/20160527 A Python Interpreter Written in Python.md new file mode 100644 index 0000000000..dbf8dc7cf4 --- /dev/null +++ b/translated/tech/20160527 A Python Interpreter Written in Python.md @@ -0,0 +1,996 @@ +用Python实现Python解释器 +=== + +_Allison是Dropbox的工程师,在那里她维护着世界上最大的由Python客户组成的网络。在Dropbox之前,她是Recurse Center的导师, 曾在纽约写作。在北美的PyCon做过关于Python内部机制的演讲,并且她喜欢奇怪的bugs。她的博客地址是[akaptur.com](http://akaptur.com)._ + +## Introduction + +Byterun是一个用Python实现的Python解释器。随着我在Byterun上的工作,我惊讶并很高兴地的发现,这个Python解释器的基础结构可以满足500行的限制。在这一章我们会搞清楚这个解释器的结构,给你足够的知识探索下去。我们的目标不是向你展示解释器的每个细节---像编程和计算机科学其他有趣的领域一样,你可能会投入几年的时间去搞清楚这个主题。 + +Byterun是Ned Batchelder和我完成的,建立在Paul Swartz的工作之上。它的结构和主要的Python实现(CPython)差不多,所以理解Byterun会帮助你理解大多数解释器特别是CPython解释器。(如果你不知道你用的是什么Python,那么很可能它就是CPython)。尽管Byterun很小,但它能执行大多数简单的Python程序。 + +### A Python Interpreter + +在开始之前,让我们缩小一下“Pyhton解释器”的意思。在讨论Python的时候,“解释器”这个词可以用在很多不同的地方。有的时候解释器指的是REPL,当你在命令行下敲下`python`时所得到的交互式环境。有时候人们会相互替代的使用Python解释器和Python来说明执行Python代码的这一过程。在本章,“解释器”有一个更精确的意思:执行Python程序过程中的最后一步。 + +在解释器接手之前,Python会执行其他3个步骤:词法分析,语法解析和编译。这三步合起来把源代码转换成_code object_,它包含着解释器可以理解的指令。而解释器的工作就是解释code object中的指令。 + +你可能很奇怪执行Python代码会有编译这一步。Python通常被称为解释型语言,就像Ruby,Perl一样,它们和编译型语言相对,比如C,Rust。然而,这里的术语并不是它看起来的那样精确。大多数解释型语言包括Python,确实会有编译这一步。而Python被称为解释型的原因是相对于编译型语言,它在编译这一步的工作相对较少(解释器做相对多的工作)。在这章后面你会看到,Python的编译器比C语言编译器需要更少的关于程序行为的信息。 + +### A Python Python Interpreter + +Byterun是一个用Python写的Python解释器,这点可能让你感到奇怪,但没有比用C语言写C语言编译器更奇怪。(事实上,广泛使用的gcc编译器就是用C语言本身写的)你可以用几乎的任何语言写一个Python解释器。 + +用Python写Python既有优点又有缺点。最大的缺点就是速度:用Byterun执行代码要比用CPython执行慢的多,CPython解释器是用C语言实现的并做了优化。然而Byterun是为了学习而设计的,所以速度对我们不重要。使用Python最大优点是我们可以*仅仅*实现解释器,而不用担心Python运行时的部分,特别是对象系统。比如当Byterun需要创建一个类时,它就会回退到“真正”的Python。另外一个优势是Byterun很容易理解,部分原因是它是用高级语言写的(Python!)(另外我们不会对解释器做优化 --- 再一次,清晰和简单比速度更重要) + +## Building an Interpreter + +在我们考察Byterun代码之前,我们需要一些对解释器结构的高层次视角。Python解释器是如何工作的? + +Python解释器是一个_虚拟机_,模拟真实计算机的软件。我们这个虚拟机是栈机器,它用几个栈来完成操作(与之相对的是寄存器机器,它从特定的内存地址读写数据)。 + +Python解释器是一个_字节码解释器_:它的输入是一些命令集合称作_字节码_。当你写Python代码时,词法分析器,语法解析器和编译器生成code object让解释器去操作。每个code object都包含一个要被执行的指令集合 --- 它就是字节码 --- 另外还有一些解释器需要的信息。字节码是Python代码的一个_中间层表示_:它以一种解释器可以理解的方式来表示源代码。这和汇编语言作为C语言和机器语言的中间表示很类似。 + +### A Tiny Interpreter + +为了让说明更具体,让我们从一个非常小的解释器开始。它只能计算两个数的和,只能理解三个指令。它执行的所有代码只是这三个指令的不同组合。下面就是这三个指令: + +- `LOAD_VALUE` +- `ADD_TWO_VALUES` +- `PRINT_ANSWER` + +我们不关心词法,语法和编译,所以我们也不在乎这些指令是如何产生的。你可以想象,你写下`7 + 5`,然后一个编译器为你生成那三个指令的组合。如果你有一个合适的编译器,你甚至可以用Lisp的语法来写,只要它能生成相同的指令。 + +假设 + +```python +7 + 5 +``` + +生成这样的指令集: + +```python +what_to_execute = { + "instructions": [("LOAD_VALUE", 0), # the first number + ("LOAD_VALUE", 1), # the second number + ("ADD_TWO_VALUES", None), + ("PRINT_ANSWER", None)], + "numbers": [7, 5] } +``` + +Python解释器是一个_栈机器_,所以它必须通过操作栈来完成这个加法。(\aosafigref{500l.interpreter.stackmachine}.)解释器先执行第一条指令,`LOAD_VALUE`,把第一个数压到栈中。接着它把第二个数也压到栈中。然后,第三条指令,`ADD_TWO_VALUES`,先把两个数从栈中弹出,加起来,再把结果压入栈中。最后一步,把结果弹出并输出。 + +\aosafigure[240pt]{interpreter-images/interpreter-stack.png}{A stack machine}{500l.interpreter.stackmachine} + +`LOAD_VALUE`这条指令告诉解释器把一个数压入栈中,但指令本身并没有指明这个数是多少。指令需要一个额外的信息告诉解释器去哪里找到这个数。所以我们的指令集有两个部分:指令本身和一个常量列表。(在Python中,字节码就是我们称为的“指令”,而解释器执行的是_code object_。) + +为什么不把数字直接嵌入指令之中?想象一下,如果我们加的不是数字,而是字符串。我们可不想把字符串这样的东西加到指令中,因为它可以有任意的长度。另外,我们这种设计也意味着我们只需要对象的一份拷贝,比如这个加法 `7 + 7`, 现在常量表 `"numbers"`只需包含一个`7`。 + +你可能会想为什么会需要除了`ADD_TWO_VALUES`之外的指令。的确,对于我们两个数加法,这个例子是有点人为制作的意思。然而,这个指令却是建造更复杂程序的轮子。比如,就我们目前定义的三个指令,只要给出正确的指令组合,我们可以做三个数的加法,或者任意个数的加法。同时,栈提供了一个清晰的方法去跟踪解释器的状态,这为我们增长的复杂性提供了支持。 + +现在让我们来完成我们的解释器。解释器对象需要一个栈,它可以用一个列表来表示。它还需要一个方法来描述怎样执行每条指令。比如,`LOAD_VALUE`会把一个值压入栈中。 + +```python +class Interpreter: + def __init__(self): + self.stack = [] + + def LOAD_VALUE(self, number): + self.stack.append(number) + + def PRINT_ANSWER(self): + answer = self.stack.pop() + print(answer) + + def ADD_TWO_VALUES(self): + first_num = self.stack.pop() + second_num = self.stack.pop() + total = first_num + second_num + self.stack.append(total) +``` + +这三个方法完成了解释器所理解的三条指令。但解释器还需要一样东西:一个能把所有东西结合在一起并执行的方法。这个方法就叫做`run_code`, 它把我们前面定义的字典结构`what-to-execute`作为参数,循环执行里面的每条指令,如何指令有参数,处理参数,然后调用解释器对象中相应的方法。 + +```python + def run_code(self, what_to_execute): + instructions = what_to_execute["instructions"] + numbers = what_to_execute["numbers"] + for each_step in instructions: + instruction, argument = each_step + if instruction == "LOAD_VALUE": + number = numbers[argument] + self.LOAD_VALUE(number) + elif instruction == "ADD_TWO_VALUES": + self.ADD_TWO_VALUES() + elif instruction == "PRINT_ANSWER": + self.PRINT_ANSWER() +``` + +为了测试,我们创建一个解释器对象,然后用前面定义的 7 + 5 的指令集来调用`run_code`。 + +```python + interpreter = Interpreter() + interpreter.run_code(what_to_execute) +``` + +显然,它会输出12 + +尽管我们的解释器功能受限,但这个加法过程几乎和真正的Python解释器是一样的。这里,我们还有几点要注意。 + +首先,一些指令需要参数。在真正的Python bytecode中,大概有一半的指令有参数。像我们的例子一样,参数和指令打包在一起。注意_指令_的参数和传递给对应方法的参数是不同的。 + +第二,指令`ADD_TWO_VALUES`不需要任何参数,它从解释器栈中弹出所需的值。这正是以栈为基础的解释器的特点。 + +记得我们说过只要给出合适的指令集,不需要对解释器做任何改变,我们就能做多个数的加法。考虑下面的指令集,你觉得会发生什么?如果你有一个合适的编译器,什么代码才能编译出下面的指令集? + +```python + what_to_execute = { + "instructions": [("LOAD_VALUE", 0), + ("LOAD_VALUE", 1), + ("ADD_TWO_VALUES", None), + ("LOAD_VALUE", 2), + ("ADD_TWO_VALUES", None), + ("PRINT_ANSWER", None)], + "numbers": [7, 5, 8] } +``` + +从这点出发,我们开始看到这种结构的可扩展性:我们可以通过向解释器对象增加方法来描述更多的操作(只要有一个编译器能为我们生成组织良好的指令集)。 + +#### Variables + +接下来给我们的解释器增加变量的支持。我们需要一个保存变量值的指令,`STORE_NAME`;一个取变量值的指令`LOAD_NAME`;和一个变量到值的映射关系。目前,我们会忽略命名空间和作用域,所以我们可以把变量和值的映射直接存储在解释器对象中。最后,我们要保证`what_to_execute`除了一个常量列表,还要有个变量名字的列表。 + +```python +>>> def s(): +... a = 1 +... b = 2 +... print(a + b) +# a friendly compiler transforms `s` into: + what_to_execute = { + "instructions": [("LOAD_VALUE", 0), + ("STORE_NAME", 0), + ("LOAD_VALUE", 1), + ("STORE_NAME", 1), + ("LOAD_NAME", 0), + ("LOAD_NAME", 1), + ("ADD_TWO_VALUES", None), + ("PRINT_ANSWER", None)], + "numbers": [1, 2], + "names": ["a", "b"] } +``` + +我们的新的的实现在下面。为了跟踪哪名字绑定到那个值,我们在`__init__`方法中增加一个`environment`字典。我们也增加了`STORE_NAME`和`LOAD_NAME`方法,它们获得变量名,然后从`environment`字典中设置或取出这个变量值。 + +现在指令参数就有两个不同的意思,它可能是`numbers`列表的索引,也可能是`names`列表的索引。解释器通过检查所执行的指令就能知道是那种参数。而我们打破这种逻辑 ,把指令和它所用何种参数的映射关系放在另一个单独的方法中。 + +```python +class Interpreter: + def __init__(self): + self.stack = [] + self.environment = {} + + def STORE_NAME(self, name): + val = self.stack.pop() + self.environment[name] = val + + def LOAD_NAME(self, name): + val = self.environment[name] + self.stack.append(val) + + def parse_argument(self, instruction, argument, what_to_execute): + """ Understand what the argument to each instruction means.""" + numbers = ["LOAD_VALUE"] + names = ["LOAD_NAME", "STORE_NAME"] + + if instruction in numbers: + argument = what_to_execute["numbers"][argument] + elif instruction in names: + argument = what_to_execute["names"][argument] + + return argument + + def run_code(self, what_to_execute): + instructions = what_to_execute["instructions"] + for each_step in instructions: + instruction, argument = each_step + argument = self.parse_argument(instruction, argument, what_to_execute) + + if instruction == "LOAD_VALUE": + self.LOAD_VALUE(argument) + elif instruction == "ADD_TWO_VALUES": + self.ADD_TWO_VALUES() + elif instruction == "PRINT_ANSWER": + self.PRINT_ANSWER() + elif instruction == "STORE_NAME": + self.STORE_NAME(argument) + elif instruction == "LOAD_NAME": + self.LOAD_NAME(argument) +``` + +仅仅五个指令,`run_code`这个方法已经开始变得冗长了。如果保持这种结构,那么每条指令都需要一个`if`分支。这里,我们要利用Python的动态方法查找。我们总会给一个称为`FOO`的指令定义一个名为`FOO`的方法,这样我们就可用Python的`getattr`函数在运行时动态查找方法,而不用这个大大的分支结构。`run_code`方法现在是这样: + +```python + def execute(self, what_to_execute): + instructions = what_to_execute["instructions"] + for each_step in instructions: + instruction, argument = each_step + argument = self.parse_argument(instruction, argument, what_to_execute) + bytecode_method = getattr(self, instruction) + if argument is None: + bytecode_method() + else: + bytecode_method(argument) +``` + +## Real Python Bytecode + +现在,放弃我们的小指令集,去看看真正的Python字节码。字节码的结构和我们的小解释器的指令集差不多,除了字节码用一个字节而不是一个名字来指示这条指令。为了理解它的结构,我们将考察一个函数的字节码。考虑下面这个例子: + +```python +>>> def cond(): +... x = 3 +... if x < 5: +... return 'yes' +... else: +... return 'no' +... +``` + +Python在运行时会暴露一大批内部信息,并且我们可以通过REPL直接访问这些信息。对于函数对象`cond`,`cond.__code__`是与其关联的code object,而`cond.__code__.co_code`就是它的字节码。当你写Python代码时,你永远也不会想直接使用这些属性,但是这可以让我们做出各种恶作剧,同时也可以看看内部机制。 + +```python +>>> cond.__code__.co_code # the bytecode as raw bytes +b'd\x01\x00}\x00\x00|\x00\x00d\x02\x00k\x00\x00r\x16\x00d\x03\x00Sd\x04\x00Sd\x00 + \x00S' +>>> list(cond.__code__.co_code) # the bytecode as numbers +[100, 1, 0, 125, 0, 0, 124, 0, 0, 100, 2, 0, 107, 0, 0, 114, 22, 0, 100, 3, 0, 83, + 100, 4, 0, 83, 100, 0, 0, 83] +``` + +当我们直接输出这个字节码,它看起来完全无法理解 --- 唯一我们了解的是它是一串字节。很幸运,我们有一个很强大的工具可以用:Python标准库中的`dis`模块。 + +`dis`是一个字节码反汇编器。反汇编器以为机器而写的底层代码作为输入,比如汇编代码和字节码,然后以人类可读的方式输出。当我们运行`dis.dis`, 它输出每个字节码的解释。 + +```python +>>> dis.dis(cond) + 2 0 LOAD_CONST 1 (3) + 3 STORE_FAST 0 (x) + + 3 6 LOAD_FAST 0 (x) + 9 LOAD_CONST 2 (5) + 12 COMPARE_OP 0 (<) + 15 POP_JUMP_IF_FALSE 22 + + 4 18 LOAD_CONST 3 ('yes') + 21 RETURN_VALUE + + 6 >> 22 LOAD_CONST 4 ('no') + 25 RETURN_VALUE + 26 LOAD_CONST 0 (None) + 29 RETURN_VALUE +``` + +这些都是什么意思?让我们以第一条指令`LOAD_CONST`为例子。第一列的数字(`2`)表示对应源代码的行数。第二列的数字是字节码的索引,告诉我们指令`LOAD_CONST`在0位置。第三列是指令本身对应的人类可读的名字。如果第四列存在,它表示指令的参数。如果第5列存在,它是一个关于参数是什么的提示。 + +考虑这个字节码的前几个字节:[100, 1, 0, 125, 0, 0]。这6个字节表示两条带参数的指令。我们可以使用`dis.opname`,一个字节到可读字符串的映射,来找到指令100和指令125代表是什么: + +```python +>>> dis.opname[100] +'LOAD_CONST' +>>> dis.opname[125] +'STORE_FAST' +``` + +第二和第三个字节 --- 1 ,0 ---是`LOAD_CONST`的参数,第五和第六个字节 --- 0,0 --- 是`STORE_FAST`的参数。就像我们前面的小例子,`LOAD_CONST`需要知道的到哪去找常量,`STORE_FAST`需要找到名字。(Python的`LOAD_CONST`和我们小例子中的`LOAD_VALUE`一样,`LOAD_FAST`和`LOAD_NAME`一样)。所以这六个字节代表第一行源代码`x = 3`.(为什么用两个字节表示指令的参数?如果Python使用一个字节,每个code object你只能有256个常量/名字,而用两个字节,就增加到了256的平方,65536个)。 + +### Conditionals and Loops + +到目前为止,我们的解释器只能一条接着一条的执行指令。这有个问题,我们经常会想多次执行某个指令,或者在特定的条件下跳过它们。为了可以写循环和分支结构,解释器必须能够在指令中跳转。在某种程度上,Python在字节码中使用`GOTO`语句来处理循环和分支!让我们再看一个`cond`函数的反汇编结果: + +```python +>>> dis.dis(cond) + 2 0 LOAD_CONST 1 (3) + 3 STORE_FAST 0 (x) + + 3 6 LOAD_FAST 0 (x) + 9 LOAD_CONST 2 (5) + 12 COMPARE_OP 0 (<) + 15 POP_JUMP_IF_FALSE 22 + + 4 18 LOAD_CONST 3 ('yes') + 21 RETURN_VALUE + + 6 >> 22 LOAD_CONST 4 ('no') + 25 RETURN_VALUE + 26 LOAD_CONST 0 (None) + 29 RETURN_VALUE +``` + +第三行的条件表达式`if x < 5`被编译成四条指令:`LOAD_FAST`, `LOAD_CONST`, `COMPARE_OP`和 `POP_JUMP_IF_FALSE`。`x < 5`对应加载`x`,加载5,比较这两个值。指令`POP_JUMP_IF_FALSE`完成`if`语句。这条指令把栈顶的值弹出,如果值为真,什么都不发生。如果值为假,解释器会跳转到另一条指令。 + +这条将被加载的指令称为跳转目标,它作为指令`POP_JUMP`的参数。这里,跳转目标是22,索引为22的指令是`LOAD_CONST`,对应源码的第6行。(`dis`用`>>`标记跳转目标。)如果`X < 5`为假,解释器会忽略第四行(`return yes`),直接跳转到第6行(`return "no"`)。因此解释器通过跳转指令选择性的执行指令。 + +Python的循环也依赖于跳转。在下面的字节码中,`while x < 5`这一行产生了和`if x < 10`几乎一样的字节码。在这两种情况下,解释器都是先执行比较,然后执行`POP_JUMP_IF_FALSE`来控制下一条执行哪个指令。第四行的最后一条字节码`JUMP_ABSOLUT`(循环体结束的地方),让解释器返回到循环开始的第9条指令处。当 `x < 10`变为假,`POP_JUMP_IF_FALSE`会让解释器跳到循环的终止处,第34条指令。 + +```python +>>> def loop(): +... x = 1 +... while x < 5: +... x = x + 1 +... return x +... +>>> dis.dis(loop) + 2 0 LOAD_CONST 1 (1) + 3 STORE_FAST 0 (x) + + 3 6 SETUP_LOOP 26 (to 35) + >> 9 LOAD_FAST 0 (x) + 12 LOAD_CONST 2 (5) + 15 COMPARE_OP 0 (<) + 18 POP_JUMP_IF_FALSE 34 + + 4 21 LOAD_FAST 0 (x) + 24 LOAD_CONST 1 (1) + 27 BINARY_ADD + 28 STORE_FAST 0 (x) + 31 JUMP_ABSOLUTE 9 + >> 34 POP_BLOCK + + 5 >> 35 LOAD_FAST 0 (x) + 38 RETURN_VALUE +``` + +### Explore Bytecode + +我希望你用`dis.dis`来试试你自己写的函数。一些有趣的问题值得探索: + +- 对解释器而言for循环和while循环有什么不同? +- 能不能写出两个不同函数,却能产生相同的字节码? +- `elif`是怎么工作的?列表推导呢? + +## Frames + +到目前为止,我们已经知道了Python虚拟机是一个栈机器。它能顺序执行指令,在指令间跳转,压入或弹出栈值。但是这和我们期望的解释器还有一定距离。在前面的那个例子中,最后一条指令是`RETURN_VALUE`,它和`return`语句相对应。但是它返回到哪里去呢? + +为了回答这个问题,我们必须再增加一层复杂性:frame。一个frame是一些信息的集合和代码的执行上下文。frames在Python代码执行时动态的创建和销毁。每个frame对应函数的一次调用。--- 所以每个frame只有一个code object与之关联,而一个code object可以有多个frame。比如你有一个函数递归的调用自己10次,这会产生11个frame,每次调用对应一个,再加上启动模块对应的一个frame。总的来说,Python程序的每个作用域有一个frame,比如,模块,函数,类。 + +Frame存在于_调用栈_中,一个和我们之前讨论的完全不同的栈。(你最熟悉的栈就是调用栈,就是你经常看到的异常回溯,每个以"File 'program.py'"开始的回溯对应一个frame。)解释器在执行字节码时操作的栈,我们叫它_数据栈_。其实还有第三个栈,叫做_块栈_,用于特定的控制流块,比如循环和异常处理。调用栈中的每个frame都有它自己的数据栈和块栈。 + +让我们用一个具体的例子来说明。假设Python解释器执行到标记为3的地方。解释器正在`foo`函数的调用中,它接着调用`bar`。下面是frame调用栈,块栈和数据栈的示意图。我们感兴趣的是解释器先从最底下的`foo()`开始,接着执行`foo`的函数体,然后到达`bar`。 + +```python +>>> def bar(y): +... z = y + 3 # <--- (3) ... and the interpreter is here. +... return z +... +>>> def foo(): +... a = 1 +... b = 2 +... return a + bar(b) # <--- (2) ... which is returning a call to bar ... +... +>>> foo() # <--- (1) We're in the middle of a call to foo ... +3 +``` + +\aosafigure[240pt]{interpreter-images/interpreter-callstack.png}{The call stack}{500l.interpreter.callstack} + +现在,解释器在`bar`函数的调用中。调用栈中有3个frame:一个对应于模块层,一个对应函数`foo`,别一个对应函数`bar`。(\aosafigref{500l.interpreter.callstack}.)一旦`bar`返回,与它对应的frame就会从调用栈中弹出并丢弃。 + +字节码指令`RETURN_VALUE`告诉解释器在frame间传递一个值。首先,它把位于调用栈栈顶的frame中的数据栈的栈顶值弹出。然后把整个frame弹出丢弃。最后把这个值压到下一个frame的数据栈中。 + +当Ned Batchelder和我在写Byterun时,很长一段时间我们的实现中一直有个重大的错误。我们整个虚拟机中只有一个数据栈,而不是每个frame都有一个。我们写了很多测试代码,同时在Byterun和真正的Python上运行,希望得到一致结果。我们几乎通过了所有测试,只有一样东西不能通过,那就是生成器。最后,通过仔细的阅读CPython的源码,我们发现了错误所在[^thanks]。把数据栈移到每个frame就解决了这个问题。 + +[^thanks]: 感谢 Michael Arntzenius 对这个bug的洞悉。 + +回头在看看这个bug,我惊讶的发现Python真的很少依赖于每个frame有一个数据栈这个特性。在Python中几乎所有的操作都会清空数据栈,所以所有的frame公用一个数据栈是没问题的。在上面的例子中,当`bar`执行完后,它的数据栈为空。即使`foo`公用这一个栈,它的值也不会受影响。然而,对应生成器,一个关键的特点是它能暂停一个frame的执行,返回到其他的frame,一段时间后它能返回到原来的frame,并以它离开时的相同状态继续执行。 + +## Byterun + +现在我们有足够的Python解释器的知识背景去考察Byterun。 + +Byterun中有四种对象。 + +- `VirtualMachine`类,它管理高层结构,frame调用栈,指令到操作的映射。这是一个比前面`Inteprter`对象更复杂的版本。 +- `Frame`类,每个`Frame`类都有一个code object,并且管理者其他一些必要的状态信息,全局和局部命名空间,指向调用它的frame的指针和最后执行的字节码指令。 +- `Function`类,它被用来代替真正的Python函数。回想一下,调用函数时会创建一个新的frame。我们自己实现`Function`,所以我们控制新frame的创建。 +- `Block`类,它只是包装了block的3个属性。(block的细节不是解释器的核心,我们不会花时间在它身上,把它列在这里,是因为Byterun需要它。) + +### The `VirtualMachine` Class + +程序运行时只有一个`VirtualMachine`被创建,因为我们只有一个解释器。`VirtualMachine`保存调用栈,异常状态,在frame中传递的返回值。它的入口点是`run_code`方法,它以编译后的code object为参数,以创建一个frame为开始,然后运行这个frame。这个frame可能再创建出新的frame;调用栈随着程序的运行增长缩短。当第一个frame返回时,执行结束。 + +```python +class VirtualMachineError(Exception): + pass + +class VirtualMachine(object): + def __init__(self): + self.frames = [] # The call stack of frames. + self.frame = None # The current frame. + self.return_value = None + self.last_exception = None + + def run_code(self, code, global_names=None, local_names=None): + """ An entry point to execute code using the virtual machine.""" + frame = self.make_frame(code, global_names=global_names, + local_names=local_names) + self.run_frame(frame) + +``` + +### The `Frame` Class + +接下来,我们来写`Frame`对象。frame是一个属性的集合,它没有任何方法。前面提到过,这些属性包括由编译器生成的code object;局部,全局和内置命名空间;前一个frame的引用;一个数据栈;一个块栈;最后执行的指令指针。(对于内置命名空间我们需要多做一点工作,Python在不同模块中对这个命名空间有不同的处理;但这个细节对我们的虚拟机不重要。) + +```python +class Frame(object): + def __init__(self, code_obj, global_names, local_names, prev_frame): + self.code_obj = code_obj + self.global_names = global_names + self.local_names = local_names + self.prev_frame = prev_frame + self.stack = [] + if prev_frame: + self.builtin_names = prev_frame.builtin_names + else: + self.builtin_names = local_names['__builtins__'] + if hasattr(self.builtin_names, '__dict__'): + self.builtin_names = self.builtin_names.__dict__ + + self.last_instruction = 0 + self.block_stack = [] +``` + +接着,我们在虚拟机中增加对frame的操作。这有3个帮助函数:一个创建新的frame的方法,和压栈和出栈的方法。第四个函数,`run_frame`,完成执行frame的主要工作,待会我们再讨论这个方法。 + +```python +class VirtualMachine(object): + [... snip ...] + + # Frame manipulation + def make_frame(self, code, callargs={}, global_names=None, local_names=None): + if global_names is not None and local_names is not None: + local_names = global_names + elif self.frames: + global_names = self.frame.global_names + local_names = {} + else: + global_names = local_names = { + '__builtins__': __builtins__, + '__name__': '__main__', + '__doc__': None, + '__package__': None, + } + local_names.update(callargs) + frame = Frame(code, global_names, local_names, self.frame) + return frame + + def push_frame(self, frame): + self.frames.append(frame) + self.frame = frame + + def pop_frame(self): + self.frames.pop() + if self.frames: + self.frame = self.frames[-1] + else: + self.frame = None + + def run_frame(self): + pass + # we'll come back to this shortly +``` + +### The `Function` Class + +`Function`的实现有点扭曲,但是大部分的细节对理解解释器不重要。重要的是当调用函数时 --- `__call__`方法被调用 --- 它创建一个新的`Frame`并运行它。 + +```python +class Function(object): + """ + Create a realistic function object, defining the things the interpreter expects. + """ + __slots__ = [ + 'func_code', 'func_name', 'func_defaults', 'func_globals', + 'func_locals', 'func_dict', 'func_closure', + '__name__', '__dict__', '__doc__', + '_vm', '_func', + ] + + def __init__(self, name, code, globs, defaults, closure, vm): + """You don't need to follow this closely to understand the interpreter.""" + self._vm = vm + self.func_code = code + self.func_name = self.__name__ = name or code.co_name + self.func_defaults = tuple(defaults) + self.func_globals = globs + self.func_locals = self._vm.frame.f_locals + self.__dict__ = {} + self.func_closure = closure + self.__doc__ = code.co_consts[0] if code.co_consts else None + + # Sometimes, we need a real Python function. This is for that. + kw = { + 'argdefs': self.func_defaults, + } + if closure: + kw['closure'] = tuple(make_cell(0) for _ in closure) + self._func = types.FunctionType(code, globs, **kw) + + def __call__(self, *args, **kwargs): + """When calling a Function, make a new frame and run it.""" + callargs = inspect.getcallargs(self._func, *args, **kwargs) + # Use callargs to provide a mapping of arguments: values to pass into the new + # frame. + frame = self._vm.make_frame( + self.func_code, callargs, self.func_globals, {} + ) + return self._vm.run_frame(frame) + +def make_cell(value): + """Create a real Python closure and grab a cell.""" + # Thanks to Alex Gaynor for help with this bit of twistiness. + fn = (lambda x: lambda: x)(value) + return fn.__closure__[0] +``` + +接着,回到`VirtualMachine`对象,我们对数据栈的操作也增加一些帮助方法。字节码操作的栈总是在当前frame的数据栈。这些帮助函数让我们能实现`POP_TOP`,`LOAD_FAST`字节码,并且让其他操作栈的指令可读性更高。 + +```python +class VirtualMachine(object): + [... snip ...] + + # Data stack manipulation + def top(self): + return self.frame.stack[-1] + + def pop(self): + return self.frame.stack.pop() + + def push(self, *vals): + self.frame.stack.extend(vals) + + def popn(self, n): + """Pop a number of values from the value stack. + A list of `n` values is returned, the deepest value first. + """ + if n: + ret = self.frame.stack[-n:] + self.frame.stack[-n:] = [] + return ret + else: + return [] +``` + +在我们运行frame之前,我们还需两个方法。 + +第一个方法,`parse_byte_and_args`,以一个字节码为输入,先检查它是否有参数,如果有,就解析它的参数。这个方法同时也更新frame的`last_instruction`属性,它指向最后执行的指令。一条没有参数的指令只有一个字节长度,而有参数的字节有3个字节长。参数的意义依赖于指令是什么。比如,前面说过,指令`POP_JUMP_IF_FALSE`,它的参数指的是跳转目标。`BUILD_LIST`, 它的参数是列表的个数。`LOAD_CONST`,它的参数是常量的索引。 + +一些指令用简单的数字作为参数。对于另一些,虚拟机需要一点努力去发现它含意。标准库中的`dis`模块中有一个备忘单,它解释什么参数有什么意思,这让我们的代码更加简洁。比如,列表`dis.hasname`告诉我们`LOAD_NAME`, `IMPORT_NAME`,`LOAD_GLOBAL`,以及另外的9个指令都有同样的意思:名字列表的索引。 + +```python +class VirtualMachine(object): + [... snip ...] + + def parse_byte_and_args(self): + f = self.frame + opoffset = f.last_instruction + byteCode = f.code_obj.co_code[opoffset] + f.last_instruction += 1 + byte_name = dis.opname[byteCode] + if byteCode >= dis.HAVE_ARGUMENT: + # index into the bytecode + arg = f.code_obj.co_code[f.last_instruction:f.last_instruction+2] + f.last_instruction += 2 # advance the instruction pointer + arg_val = arg[0] + (arg[1] * 256) + if byteCode in dis.hasconst: # Look up a constant + arg = f.code_obj.co_consts[arg_val] + elif byteCode in dis.hasname: # Look up a name + arg = f.code_obj.co_names[arg_val] + elif byteCode in dis.haslocal: # Look up a local name + arg = f.code_obj.co_varnames[arg_val] + elif byteCode in dis.hasjrel: # Calculate a relative jump + arg = f.last_instruction + arg_val + else: + arg = arg_val + argument = [arg] + else: + argument = [] + + return byte_name, argument +``` + +下一个方法是`dispatch`,它查看给定的指令并执行相应的操作。在CPython中,这个分派函数用一个巨大的switch语句实现,有超过1500行的代码。幸运的是,我们用的是Python,我们的代码会简洁的多。我们会为每一个字节码名字定义一个方法,然后用`getattr`来查找。就像我们前面的小解释器一样,如果一条指令叫做`FOO_BAR`,那么它对应的方法就是`byte_FOO_BAR`。现在,我们先把这些方法当做一个黑盒子。每个指令方法都会返回`None`或者一个字符串`why`,有些情况下虚拟机需要这个额外`why`信息。这些指令方法的返回值,仅作为解释器状态的内部指示,千万不要和执行frame的返回值相混淆。 + + +```python +class VirtualMachine(object): + [... snip ...] + + def dispatch(self, byte_name, argument): + """ Dispatch by bytename to the corresponding methods. + Exceptions are caught and set on the virtual machine.""" + + # When later unwinding the block stack, + # we need to keep track of why we are doing it. + why = None + try: + bytecode_fn = getattr(self, 'byte_%s' % byte_name, None) + if bytecode_fn is None: + if byte_name.startswith('UNARY_'): + self.unaryOperator(byte_name[6:]) + elif byte_name.startswith('BINARY_'): + self.binaryOperator(byte_name[7:]) + else: + raise VirtualMachineError( + "unsupported bytecode type: %s" % byte_name + ) + else: + why = bytecode_fn(*argument) + except: + # deal with exceptions encountered while executing the op. + self.last_exception = sys.exc_info()[:2] + (None,) + why = 'exception' + + return why + + def run_frame(self, frame): + """Run a frame until it returns (somehow). + Exceptions are raised, the return value is returned. + """ + self.push_frame(frame) + while True: + byte_name, arguments = self.parse_byte_and_args() + + why = self.dispatch(byte_name, arguments) + + # Deal with any block management we need to do + while why and frame.block_stack: + why = self.manage_block_stack(why) + + if why: + break + + self.pop_frame() + + if why == 'exception': + exc, val, tb = self.last_exception + e = exc(val) + e.__traceback__ = tb + raise e + + return self.return_value +``` + +### The `Block` Class + +在我们完成每个字节码方法前,我们简单的讨论一下块。一个块被用于某种控制流,特别是异常处理和循环。它负责保证当操作完成后数据栈处于正确的状态。比如,在一个循环中,一个特殊的迭代器会存在栈中,当循环完成时它从栈中弹出。解释器需要检查循环仍在继续还是已经停止。 + +为了跟踪这些额外的信息,解释器设置了一个标志来指示它的状态。我们用一个变量`why`实现这个标志,它可以是`None`或者是下面几个字符串这一,`"continue"`, `"break"`,`"excption"`,`return`。他们指示对块栈和数据栈进行什么操作。回到我们迭代器的例子,如果块栈的栈顶是一个`loop`块,`why`是`continue`,迭代器就因该保存在数据栈上,不是如果`why`是`break`,迭代器就会被弹出。 + +块操作的细节比较精细,我们不会花时间在这上面,但是有兴趣的读者值得仔细的看看。 + +```python +Block = collections.namedtuple("Block", "type, handler, stack_height") + +class VirtualMachine(object): + [... snip ...] + + # Block stack manipulation + def push_block(self, b_type, handler=None): + level = len(self.frame.stack) + self.frame.block_stack.append(Block(b_type, handler, stack_height)) + + def pop_block(self): + return self.frame.block_stack.pop() + + def unwind_block(self, block): + """Unwind the values on the data stack corresponding to a given block.""" + if block.type == 'except-handler': + # The exception itself is on the stack as type, value, and traceback. + offset = 3 + else: + offset = 0 + + while len(self.frame.stack) > block.level + offset: + self.pop() + + if block.type == 'except-handler': + traceback, value, exctype = self.popn(3) + self.last_exception = exctype, value, traceback + + def manage_block_stack(self, why): + """ """ + frame = self.frame + block = frame.block_stack[-1] + if block.type == 'loop' and why == 'continue': + self.jump(self.return_value) + why = None + return why + + self.pop_block() + self.unwind_block(block) + + if block.type == 'loop' and why == 'break': + why = None + self.jump(block.handler) + return why + + if (block.type in ['setup-except', 'finally'] and why == 'exception'): + self.push_block('except-handler') + exctype, value, tb = self.last_exception + self.push(tb, value, exctype) + self.push(tb, value, exctype) # yes, twice + why = None + self.jump(block.handler) + return why + + elif block.type == 'finally': + if why in ('return', 'continue'): + self.push(self.return_value) + + self.push(why) + + why = None + self.jump(block.handler) + return why + return why +``` + +## The Instructions + +剩下了的就是完成那些指令方法了:`byte_LOAD_FAST`,`byte_BINARY_MODULO`等等。而这些指令的实现并不是很有趣,这里我们只展示了一小部分,完整的实现在这儿https://github.com/nedbat/byterun。(足够执行我们前面所述的所有代码了。) + +```python +class VirtualMachine(object): + [... snip ...] + + ## Stack manipulation + + def byte_LOAD_CONST(self, const): + self.push(const) + + def byte_POP_TOP(self): + self.pop() + + ## Names + def byte_LOAD_NAME(self, name): + frame = self.frame + if name in frame.f_locals: + val = frame.f_locals[name] + elif name in frame.f_globals: + val = frame.f_globals[name] + elif name in frame.f_builtins: + val = frame.f_builtins[name] + else: + raise NameError("name '%s' is not defined" % name) + self.push(val) + + def byte_STORE_NAME(self, name): + self.frame.f_locals[name] = self.pop() + + def byte_LOAD_FAST(self, name): + if name in self.frame.f_locals: + val = self.frame.f_locals[name] + else: + raise UnboundLocalError( + "local variable '%s' referenced before assignment" % name + ) + self.push(val) + + def byte_STORE_FAST(self, name): + self.frame.f_locals[name] = self.pop() + + def byte_LOAD_GLOBAL(self, name): + f = self.frame + if name in f.f_globals: + val = f.f_globals[name] + elif name in f.f_builtins: + val = f.f_builtins[name] + else: + raise NameError("global name '%s' is not defined" % name) + self.push(val) + + ## Operators + + BINARY_OPERATORS = { + 'POWER': pow, + 'MULTIPLY': operator.mul, + 'FLOOR_DIVIDE': operator.floordiv, + 'TRUE_DIVIDE': operator.truediv, + 'MODULO': operator.mod, + 'ADD': operator.add, + 'SUBTRACT': operator.sub, + 'SUBSCR': operator.getitem, + 'LSHIFT': operator.lshift, + 'RSHIFT': operator.rshift, + 'AND': operator.and_, + 'XOR': operator.xor, + 'OR': operator.or_, + } + + def binaryOperator(self, op): + x, y = self.popn(2) + self.push(self.BINARY_OPERATORS[op](x, y)) + + COMPARE_OPERATORS = [ + operator.lt, + operator.le, + operator.eq, + operator.ne, + operator.gt, + operator.ge, + lambda x, y: x in y, + lambda x, y: x not in y, + lambda x, y: x is y, + lambda x, y: x is not y, + lambda x, y: issubclass(x, Exception) and issubclass(x, y), + ] + + def byte_COMPARE_OP(self, opnum): + x, y = self.popn(2) + self.push(self.COMPARE_OPERATORS[opnum](x, y)) + + ## Attributes and indexing + + def byte_LOAD_ATTR(self, attr): + obj = self.pop() + val = getattr(obj, attr) + self.push(val) + + def byte_STORE_ATTR(self, name): + val, obj = self.popn(2) + setattr(obj, name, val) + + ## Building + + def byte_BUILD_LIST(self, count): + elts = self.popn(count) + self.push(elts) + + def byte_BUILD_MAP(self, size): + self.push({}) + + def byte_STORE_MAP(self): + the_map, val, key = self.popn(3) + the_map[key] = val + self.push(the_map) + + def byte_LIST_APPEND(self, count): + val = self.pop() + the_list = self.frame.stack[-count] # peek + the_list.append(val) + + ## Jumps + + def byte_JUMP_FORWARD(self, jump): + self.jump(jump) + + def byte_JUMP_ABSOLUTE(self, jump): + self.jump(jump) + + def byte_POP_JUMP_IF_TRUE(self, jump): + val = self.pop() + if val: + self.jump(jump) + + def byte_POP_JUMP_IF_FALSE(self, jump): + val = self.pop() + if not val: + self.jump(jump) + + ## Blocks + + def byte_SETUP_LOOP(self, dest): + self.push_block('loop', dest) + + def byte_GET_ITER(self): + self.push(iter(self.pop())) + + def byte_FOR_ITER(self, jump): + iterobj = self.top() + try: + v = next(iterobj) + self.push(v) + except StopIteration: + self.pop() + self.jump(jump) + + def byte_BREAK_LOOP(self): + return 'break' + + def byte_POP_BLOCK(self): + self.pop_block() + + ## Functions + + def byte_MAKE_FUNCTION(self, argc): + name = self.pop() + code = self.pop() + defaults = self.popn(argc) + globs = self.frame.f_globals + fn = Function(name, code, globs, defaults, None, self) + self.push(fn) + + def byte_CALL_FUNCTION(self, arg): + lenKw, lenPos = divmod(arg, 256) # KWargs not supported here + posargs = self.popn(lenPos) + + func = self.pop() + frame = self.frame + retval = func(*posargs) + self.push(retval) + + def byte_RETURN_VALUE(self): + self.return_value = self.pop() + return "return" +``` + +## Dynamic Typing: What the Compiler Doesn't Know + +你可能听过Python是一种动态语言 --- 是它是动态类型的。在我们建造解释器的过程中,已经透露出这样的信息。 + +动态的一个意思是很多工作在运行时完成。前面我们看到Python的编译器没有很多关于代码真正做什么的信息。举个例子,考虑下面这个简单的函数`mod`。它取两个参数,返回它们的模运算值。从它的字节码中,我们看到变量`a`和`b`首先被加载,然后字节码`BINAY_MODULO`完成这个模运算。 + +```python +>>> def mod(a, b): +... return a % b +>>> dis.dis(mod) + 2 0 LOAD_FAST 0 (a) + 3 LOAD_FAST 1 (b) + 6 BINARY_MODULO + 7 RETURN_VALUE +>>> mod(19, 5) +4 +``` + +计算19 % 5得4,--- 一点也不奇怪。如果我们用不同类的参数呢? + +```python +>>> mod("by%sde", "teco") +'bytecode' +``` + +刚才发生了什么?你可能见过这样的语法,格式化字符串。 + +``` +>>> print("by%sde" % "teco") +bytecode +``` + +用符号`%`去格式化字符串会调用字节码`BUNARY_MODULO`.它取栈顶的两个值求模,不管这两个值是字符串,数字或是你自己定义的类的实例。字节码在函数编译时生成(或者说,函数定义时)相同的字节码会用于不同类的参数。 + +Python的编译器关于字节码的功能知道的很少。而取决于解释器来决定`BINAYR_MODULO`应用于什么类型的对象并完成正确的操作。这就是为什么Python被描述为_动态类型_:直到运行前你不必知道这个函数参数的类型。相反,在一个静态类型语言中,程序员需要告诉编译器参数的类型是什么(或者编译器自己推断出参数的类型。) + +编译器的无知是优化Python的一个挑战 --- 只看字节码,而不真正运行它,你就不知道每条字节码在干什么!你可以定义一个类,实现`__mod__`方法,当你对这个类的实例使用`%`时,Python就会自动调用这个方法。所以,`BINARY_MODULO`其实可以运行任何代码。 + +看看下面的代码,第一个`a % b`看起来没有用。 + +```python +def mod(a,b): + a % b + return a %b +``` + +不幸的是,对这段代码进行静态分析 --- 不运行它 --- 不能确定第一个`a % b`没有做任何事。用 `%`调用`__mod__`可能会写一个文件,或是和程序的其他部分交互,或者其他任何可以在Python中完成的事。很难优化一个你不知道它会做什么的函数。在Russell Power和Alex Rubinsteyn的优秀论文中写道,“我们可以用多快的速度解释Python?”,他们说,“在普遍缺乏类型信息下,每条指令必须被看作一个`INVOKE_ARBITRARY_METHOD`。” + +## Conclusion + +Byterun是一个比CPython容易理解的简洁的Python解释器。Byterun复制了CPython的主要结构:一个基于栈的指令集称为字节码,它们顺序执行或在指令间跳转,向栈中压入和从中弹出数据。解释器随着函数和生成器的调用和返回,动态的创建,销毁frame,并在frame间跳转。Byterun也有着和真正解释器一样的限制:因为Python使用动态类型,解释器必须在运行时决定指令的正确行为。 + +我鼓励你去反汇编你的程序,然后用Byterun来运行。你很快会发现这个缩短版的Byterun所没有实现的指令。完整的实现在https://github.com/nedbat/byterun,或者仔细阅读真正的CPython解释器`ceval.c`,你也可以实现自己的解释器! + +## Acknowledgements + +Thanks to Ned Batchelder for originating this project and guiding my contributions, Michael Arntzenius for his help debugging the code and editing the prose, Leta Montopoli for her edits, and the entire Recurse Center community for their support and interest. Any errors are my own. + +-------------------------------------- +via:http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html + +作者: Allison Kaptur Allison + +译者:[qingyunha](https://github.com/qingyunha) + +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出 From 9415b5b74954aac10a1a5c1827e23a9960fb37e2 Mon Sep 17 00:00:00 2001 From: mudongliang Date: Fri, 27 May 2016 14:16:35 -0400 Subject: [PATCH 552/582] translation apply --- .../tech/20160218 How to Best Manage Encryption Keys on Linux.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md index 19aab96541..e09f88db3e 100644 --- a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md +++ b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md @@ -1,3 +1,4 @@ +mudongliang translating How to Best Manage Encryption Keys on Linux ============================================= From 3bbb70b826d9930a66ff979e52f190445b73ff64 Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 28 May 2016 09:27:16 +0800 Subject: [PATCH 553/582] PUB:20160223 Intel shows budget Android phone powering big-screen Linux @geekpi --- ...Android phone powering big-screen Linux.md | 34 +++++++++++++++++++ ...Android phone powering big-screen Linux.md | 34 ------------------- 2 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 published/20160223 Intel shows budget Android phone powering big-screen Linux.md delete mode 100644 translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md diff --git a/published/20160223 Intel shows budget Android phone powering big-screen Linux.md b/published/20160223 Intel shows budget Android phone powering big-screen Linux.md new file mode 100644 index 0000000000..45f9f05032 --- /dev/null +++ b/published/20160223 Intel shows budget Android phone powering big-screen Linux.md @@ -0,0 +1,34 @@ +Intel 展示了可在大屏幕显示 Linux 系统的低端 Android 手机 +============================================================== + +![](https://regmedia.co.uk/2016/02/23/intel-bigscreen.jpg?x=648&y=348&crop=1) + +在世界移动大会 **MWC16** 上 Intel 展示了称之为“大屏体验”的一款的 Android 智能手机,它在插入一个外部显示后运行了一个完整的 Linux 桌面。 + +这个概念大体上与微软在 Windows 10 手机中的 Continuum 相似,但是 Continuum 面向的是高端设备,Intel 的项目面向的是低端智能机和新兴市场。 + +在巴塞罗那的这场大会上展示的是拥有 Atom x3、2GB RAM 和 16GB 存储以及支持外部显示的的 SoFIA(Intel 架构的智能或功能手机)智能机原型。插上键盘、鼠标和显示,它就变成了一台桌面 Linux,并可以选择在大屏幕的一个窗口中显示 Android 桌面。 + +Intel 的拓荒小组(Path Finding Group)经理 Nir Metzer 告诉我们:“Android 基于 Linux 内核,因此我们运行在一个内核上,我们有一个 Android 栈和一个 Linux 栈,并且我们共享同一个环境,因此文件系统是相同的。电话是全功能的。” + +Metzer 说:“我有一个多窗口环境。只要我插入显示器后就可以使用电子表格,我可以进行拖放操作,播放音频。在一个低端平台实现这一切是一个挑战。” + +现在当连上外部显示器时设备的屏幕显示是空白的,但是 Metzer 说下个版本的 Atom X3 会支持双显示。 + +其使用的 Linux 版本是由 Intel 维护的。Metzer 说:“我们需要将 Linux 和 Android 保持一致。框架是预安装的,你不能下载任何 app。” + +英特尔在移动世界大会上向手机制造商们推销这一想法,但却没有实际说希望购买该设备的消费者。Metzer 说:“芯片已经准备好了,已经为量产准备好了。明天就可以进入生产。但是这要看商业需求。” + +-------------------------------------------------------------------------------- + +via: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ + +作者:[Tim Anderson][a] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://www.theregister.co.uk/Author/2878 + + diff --git a/translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md b/translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md deleted file mode 100644 index aedd61f966..0000000000 --- a/translated/tech/20160223 Intel shows budget Android phone powering big-screen Linux.md +++ /dev/null @@ -1,34 +0,0 @@ -Intel展示了带动大屏幕Linux的便宜Android手机 -============================================================== - -![](https://regmedia.co.uk/2016/02/23/intel-bigscreen.jpg?x=648&y=348&crop=1) - -在世界移动会议**MWC16**上Intel展示了称之为“大屏体验”的一款的Android智能手机,它在插入一个外部显示后运行了一个完整的Linux桌面。 - -这个概念大体上与微软在Windows 10手机中的Continuum相似,但是Continuum面向的是高端设备,Intel的项目面向的是低端智能机何新兴市场。 - -显示上Barcelona是拥有Atom x3、2GB RAM和16GB存储以及支持外部显示的的SoFIA(Intel架构的只能或功能手机)智能机原型。插上键盘、鼠标何显示,它就变成了一台桌面Linux,可以选择在大屏幕中显示Android桌面。 - -Intel的拓荒小组经理Nir Metzer告诉Reg:“Android基于Linux内核,因此我们运行的是一个内核,我们有一个Android栈和一个Linux栈,并且我们共享一个上下文,因此文件系统是相同的。电话是全功能的。” - -Metzer说:“我有一个多窗口环境。只要我插入后就可以做电子表格,我可以拖拽、播放音频。在一个低端平台实现这一切是一个挑战。” - -现在当连上外部显示器时设备的屏幕显示的空白,但是Metzer说下个版本的Atom X3会支持双显示。 - -使用的Linux版本是由Intel维护的。Metzer说:“我们需要将Linux和Android保持一致。框架是预安装的,你不能下载任何app” - -英特尔在移动世界大会上向手机制造商们推销这一想法,但却没有实际报告购买该设备的消费者。Metzer说:“芯片已经准备好了,已经为量产准备好了。这可以明天进入生产。这是一个商业决定。” - --------------------------------------------------------------------------------- - -via: http://www.theregister.co.uk/2016/02/23/move_over_continuum_intel_shows_android_smartphone_powering_bigscreen_linux/ - -作者:[Tim Anderson][a] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://www.theregister.co.uk/Author/2878 - - From 50fb557a139cf6c63921821a045ffac865856806 Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 28 May 2016 09:41:16 +0800 Subject: [PATCH 554/582] PUB:20160429 Master OpenStack with 5 new tutorials @Vic020 @PurlingNayuki --- ...0160429 Master OpenStack with 5 new tutorials.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) rename {translated/tech => published}/20160429 Master OpenStack with 5 new tutorials.md (70%) diff --git a/translated/tech/20160429 Master OpenStack with 5 new tutorials.md b/published/20160429 Master OpenStack with 5 new tutorials.md similarity index 70% rename from translated/tech/20160429 Master OpenStack with 5 new tutorials.md rename to published/20160429 Master OpenStack with 5 new tutorials.md index 47ad95b663..7f189b8f51 100644 --- a/translated/tech/20160429 Master OpenStack with 5 new tutorials.md +++ b/published/20160429 Master OpenStack with 5 new tutorials.md @@ -1,18 +1,17 @@ -Master OpenStack with 5 new tutorials -5篇文章快速掌握OpenStack +推荐五篇 OpenStack 的新指南 ======================================= ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/education/EDUCATION_tools.png?itok=ybxr0Qe9) -回顾这周的 OpenStack 峰会,我仍然回味着开源云生态系统的浩瀚无垠,并且需要熟悉多少个不同的项目和概念才能获得成功。但是,我们是幸运的,因为有许多资源让我们跟随项目的脚步。除了[官方文档][1]外,我们还有许多来自三方组织的培训和认证、个人分享,以及许多社区贡献的学习资源。 +回顾这周的 OpenStack 峰会,我仍然回味着开源云生态系统的浩瀚无垠,有那么多需要了解的项目及概念才能获得成功。不过我们很幸运,因为有许多资源让我们跟随着项目的脚步。除了[官方文档][1]外,我们还有许多来自第三方提供的培训和认证、个人分享,以及许多社区贡献的学习资源。 为了让我们保持获得最新消息,每个月我们将会整合发布 OpenStack 社区的最新教程、指导和小贴士等。下面是我们过去几个月最棒的发布分享。 -- 首先,如果你正在寻找一个靠谱实惠的 OpenStack 测试实验室, Intel NUC 是最值得考虑的平台.麻雀虽小,五脏俱全,通过指导文章,可以很轻松的按照教程在 NUC 上使用 [TripleO 部署 OpenStack][2] ,并且还可以轻松预防一些常见的怪异问题。 +- 首先,如果你正在寻找一个靠谱实惠的 OpenStack 测试实验室, Intel NUC 是最值得考虑的平台。麻雀虽小,五脏俱全,通过指导文章,可以很轻松的按照教程在 NUC 上使用 [TripleO 部署 OpenStack][2] ,并且还可以轻松避开一些常见的古怪问题。 - 当你已经运行的一段时间 OpenStack 后,你会发现在你的云系统上许多组件生成了大量日志。其中一些是可以安全删除的,而你需要一个管理这些日志的方案。参考在部署生产 9 个月后使用 Celiometer 管理日志的[一些思考][3]。 -- 对于 OpenStack 基础设施项目的新手,想要提交补丁到 OpenStack 是相当困难的。入口在哪里,测试怎么做,我的提交步骤是怎么样的?可以通过 Arie Bregman 的[博客文章][4]快速了解整个提交过程。 -- 突发计算节点失效,不知道是硬件还是软件问题。好消息是 OpenStack 提供了一套非常简单的迁移计划可以让迁移当机节点到别的主机。然而,迁移过程中使用的命令令许多人感到困惑。可以通过[这篇文章][5]来理解 migrate 和 evacuate 命令的不同。 -- 网络功能虚拟化技术需要 OpenStack 中的额外的功能,而用户可能不熟悉它们。例如, SR-IOV 和 PCI 直通是最大限度地提高物理硬件性能的方式。可以学习[部署步骤][6]以使 OpenStack 的性能最大化。 +- 对于 OpenStack 基础设施项目的新手,想要提交补丁到 OpenStack 是相当困难的。入口在哪里,测试怎么做,我的提交步骤是怎么样的?可以通过 Arie Bregman 的这篇[博客文章][4]快速了解整个提交过程。 +- 突发计算节点失效,不知道是硬件还是软件问题。不过好消息是 OpenStack 提供了一套非常简单的迁移计划可以让你迁移当机节点到别的主机。然而,迁移过程中使用的命令令许多人感到困惑。可以通过[这篇文章][5]来理解 migrate 和 evacuate 命令的不同。 +- 网络功能虚拟化技术需要 OpenStack 之外的一些功能,而用户可能不熟悉它们。例如, SR-IOV 和 PCI 直通是最大限度地提高物理硬件性能的方式。可以学习[部署步骤][6]以使 OpenStack 的性能最大化。 这些文章基本涵盖了本月(译者注: 4 月)推送,如果你还需要更多文章,可以检索过去推送的 [OpenStack 文献][7]来获取更多资源。如果有你认为我们应该推荐的新教程,请在评论中告诉我们,谢谢。 From 2ac616c1579a8afcc7aa994627e7b1f42dca51c0 Mon Sep 17 00:00:00 2001 From: David Dai Date: Sat, 28 May 2016 10:09:37 +0800 Subject: [PATCH 555/582] Translated 20160301 Linux gives me all the tools I need.md (#4002) * Translated 20160301 Linux gives me all the tools I need.md * Remove 'Translating' header --- ...301 Linux gives me all the tools I need.md | 58 ------------------- ...301 Linux gives me all the tools I need.md | 56 ++++++++++++++++++ 2 files changed, 56 insertions(+), 58 deletions(-) delete mode 100644 sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md create mode 100644 translated/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md diff --git a/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md b/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md deleted file mode 100644 index b092044827..0000000000 --- a/sources/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md +++ /dev/null @@ -1,58 +0,0 @@ -StdioA Translating - -Linux gives me all the tools I need -========================================== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/OPENHERE_blue.png?itok=3eqp-7gT) - -[Linux][0] is all around us. It's [on our phones][1] in the form of Android. It's [used on the International Space Station][2]. It [provides much of the backbone of the Internet][3]. And yet many people never notice it. Discovering Linux is a rewarding endeavor. Lots of other people have [shared their Linux stories][4] on Opensource.com, and now it's my turn. - -I still remember when I first discovered Linux in 2008. The person who helped me discover Linux was my father, Socrates Ballais. He was an economics professor here in Tacloban City, Philippines. He was also a technology enthusiast. He taught me a lot about computers and technology, but only advocated using Linux as a fallback operating system in case Windows fails. - -### My earliest days - -Before we had a computer in the home, I was a Windows user. I played games, created documents, and did all the other things kids do with computers. I didn't know what Linux was or what it was used for. The Windows logo was my symbol for a computer. - -When we got our first computer, my father installed Linux ([Ubuntu][5] 8.04) on it. Being the curious kid I was, I booted into the operating system. I was astonished with the interface. It was beautiful. I found it to be very user friendly. For some time, all I did in Ubuntu was play the bundled games. I would do my school work in Windows. - -### The first install - -Four years later, I decided that I would reinstall Windows on our family computer. Without hesitation, I also decided to install Ubuntu. With that, I had fallen in love with Linux (again). Over time, I became more adept with Ubuntu and would casually advocate its use to my friends. When I got my first laptop, I installed it right away. - -### Today - -Today, Linux is my go-to operating system. When I need to do something on a computer, I do it in Linux. For documents and presentations, I use Microsoft Office via [Wine][6]. For my web needs, there's [Chrome and Firefox][7]. For email, there's [Geary][8]. You can do pretty much everything with Linux. - -Most, if not all, of my programming work is done in Linux. The lack of a standard Integrated Development Environment (IDE) like [Visual Studio][9] or [XCode][10] taught me to be flexible and learn more things as a programmer. Now a text editor and a compiler/interpreter are all I need to start coding. I only use an IDE in cases when it's the best tool for accomplishing a task at hand. I find Linux to be more developer-friendly than Windows. To generalize, Linux gives me all the tools I need to develop software. - -Today, I am the co-founder and CTO of a startup called [Creatomiv Studios][11]. I use Linux to develop code for the backend server of our latest project, Basyang. I'm also an amateur photographer, and use [GIMP][12] and [Darktable][13] to edit and manage photos. For communication with my team, I use [Telegram][14]. - -### The beauty of Linux - -Many may see Linux as an operating system only for those who love solving complicated problems and working on the command line. Others may see it as a rubbish operating system lacking the support of many companies. However, I see Linux as a thing of beauty and a tool for creation. I love Linux the way it is and hope to see it continue to grow. - - --------------------------------------------------------------------------------- - -via: https://opensource.com/life/16/3/my-linux-story-sean-ballais - -作者:[Sean Francis N. Ballais][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -[a]: https://opensource.com/users/seanballais -[0]: https://opensource.com/resources/what-is-linux -[1]: http://www.howtogeek.com/189036/android-is-based-on-linux-but-what-does-that-mean/ -[2]: http://www.extremetech.com/extreme/155392-international-space-station-switches-from-windows-to-linux-for-improved-reliability -[3]: https://www.youtube.com/watch?v=JzsLkbwi1LA -[4]: https://opensource.com/tags/my-linux-story -[5]: http://ubuntu.com/ -[6]: https://www.winehq.org/ -[7]: https://www.google.com/chrome/browser/desktop/index.html -[8]: https://wiki.gnome.org/Apps/Geary -[9]: https://www.visualstudio.com/en-us/visual-studio-homepage-vs.aspx -[10]: https://developer.apple.com/xcode/ -[11]: https://www.facebook.com/CreatomivStudios/ -[12]: https://www.gimp.org/ -[13]: http://www.darktable.org/ -[14]: https://telegram.org/ diff --git a/translated/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md b/translated/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md new file mode 100644 index 0000000000..5c746acab8 --- /dev/null +++ b/translated/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md @@ -0,0 +1,56 @@ +Linux 给了我所有所需的工具 +========================================== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/OPENHERE_blue.png?itok=3eqp-7gT) + +[Linux][0] 就在我们身边。它以 Android 的形式[存在我们的手机中][1],它[在国际空间站中被使用][2],它[还是互联网的主要支柱][3],可是迄今为止很多人从未留意过它。对 Linux 的探索是一种很有成就感的尝试。很多人都在 Opensource.com [分享过他们与 Linux 的故事][4]。现在,轮到我了。 + +我依然记得我在 2008 年第一次探索 Linux 的时刻。协助我探索 Linux 的人是我的父亲,Socrates Ballais。他是菲律宾塔克洛班的一名经济学专家,也是一个技术狂热者。他教会了我许多计算机技术方面的知识,但只提倡我将 Linux 作为 Windows 崩溃后的备用操作系统。 + +### 从前的日子 + +在我们在家中购置电脑之前,我曾是一个 Windows 用户。我使用电脑玩游戏,制作文档,做那些小孩子都会用电脑做的事。我不知道什么是 Linux,更不知道它的用处。在那个时候,电脑在我心中的象征就是一个 Windows 的商标。 + +当我们买到第一台电脑时,我爸爸在上面安装了 Linux ([Ubuntu][5] 8.04)。充满了好奇心的我,第一次引导进入了那个操作系统。我被它的用户界面震惊了。它非常漂亮,而且我发现它对用户很友好。在那之后的一段时间,我只会使用 Linux 它内置的几款游戏。我还是会在 Windows 中做我的家庭作业。 + +### 第一次安装 + +4 年后,我决定为家里的电脑重新安装 Windows。我同时毫不犹豫地安装了 Ubuntu。从那次开始,我(再次)爱上了 Linux。随着时间推移,我慢慢适应了 Ubuntu,还会无意地将它推荐给我的朋友。当我拿到我的第一台笔记本电脑时,我立刻在上面安装了它。 + +### 现在 + +如今,Linux 是我的默认操作系统。当我需要使用电脑做一些工作时,我会在 Linux 中完成。至于文档和幻灯片,我会通过 [Wine][6] 来使用微软的 Office 办公软件。我会用 [Chrome 和 Firefox][7] 来满足我的上网需要,会用 [Geary][8] 来收发邮件。你可以使用 Linux 来做很多很多事情。 + +我的大多数——并不是全部——编程工作都会在 Linux 中完成。像 [Visual Studio][9] 和 [XCode][10] 这样的基本集成开发环境 (IDE) 的缺乏教会我这个程序员如何变得灵活、如何去学习更多知识。现在,我只需要一个文本编辑器和一个编译器/解释器就可以开始编程。只有当 IDE 是我完成手头上的任务的最佳最佳工具时,我才会使用它。总而言之,Linux 给了我开发软件所需要的一切工具。 + +现在,我是一个名叫 [Creatomiv Studios][11] 的初创公司的联合创始人和首席技术官。我使用 Linux 来编写我们的最新产品 Basyang 的后端服务器代码。我还是一个业余摄影家,使用 [GIMP][12] 和 [Darktable][13] 来编辑、管理照片。至于团队沟通,我会使用 [Telegram][14]。 + +### Linux 之美 + +很多人认为 Linux 只是为那些喜欢解决复杂问题或者在命令行中工作的人而生的操作系统。还有些人会认为它就是一个缺乏公司支持维护的垃圾。不过,我认为 Linux 是一个完美的操作系统,也是一个为创造而生的绝佳工具。所以我热爱 Linux,同时希望看到它继续成长。 + + +-------------------------------------------------------------------------------- + +via: https://opensource.com/life/16/3/my-linux-story-sean-ballais + +作者:[Sean Francis N. Ballais][a] +译者:[StdioA](https://github.com/StdioA) +校对:[校对者ID](https://github.com/校对者ID) + +[a]: https://opensource.com/users/seanballais +[0]: https://opensource.com/resources/what-is-linux +[1]: http://www.howtogeek.com/189036/android-is-based-on-linux-but-what-does-that-mean/ +[2]: http://www.extremetech.com/extreme/155392-international-space-station-switches-from-windows-to-linux-for-improved-reliability +[3]: https://www.youtube.com/watch?v=JzsLkbwi1LA +[4]: https://opensource.com/tags/my-linux-story +[5]: http://ubuntu.com/ +[6]: https://www.winehq.org/ +[7]: https://www.google.com/chrome/browser/desktop/index.html +[8]: https://wiki.gnome.org/Apps/Geary +[9]: https://www.visualstudio.com/en-us/visual-studio-homepage-vs.aspx +[10]: https://developer.apple.com/xcode/ +[11]: https://www.facebook.com/CreatomivStudios/ +[12]: https://www.gimp.org/ +[13]: http://www.darktable.org/ +[14]: https://telegram.org/ From e9edeaa63d290fe5cc992e76481f8498475f5701 Mon Sep 17 00:00:00 2001 From: Ezio Date: Fri, 27 May 2016 21:18:08 -0500 Subject: [PATCH 556/582] =?UTF-8?q?20160528-1=20=E9=80=89=E9=A2=98=20(#400?= =?UTF-8?q?3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 20160527 选题 python , linux , script * 20160528-1 选题 python , linux , script , Tutorial --- ...ramming and Scripting in Linux – Part 1.md | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md diff --git a/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md b/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md new file mode 100644 index 0000000000..14ec294b04 --- /dev/null +++ b/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md @@ -0,0 +1,182 @@ +Getting Started with Python Programming and Scripting in Linux – Part 1 +=============================================================================== + + +It has been said (and often required by recruitment agencies) that system administrators need to be proficient in a scripting language. While most of us may be comfortable using [Bash][1] (or other shell of our choice) to run command-line scripts, a powerful language such as Python can add several benefits. + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Learn-Python-Programming-Scripting-in-Linux.png) +>Learn Python Programming Scripting in Linux + +To begin with, Python allows us to access the tools of the command-line environment and to make use of Object Oriented Programming features (more on this later in this article). + +On top of it, learning Python can boost your career in the fields of [desktop applications][2] and [data science][3]. + +Being so easy to learn, so vastly used, and having a plethora of ready-to-use modules (external files that contain Python statements), no wonder Python is the preferred language to teach programming to first-year computer science students in the United States. + +In this 2-article series we will review the fundamentals of Python in hopes that you will find it useful as a springboard to get you started with programming and as a quick-reference guide afterwards. That said, let’s get started. + +### Python in Linux + +Python versions 2.x and 3.x are usually available in most modern Linux distributions out of the box. You can enter a Python shell by typing `python` or `python3` in your terminal emulator and exit with `quit()`: + +``` +$ which python +$ which python3 +$ python -v +$ python3 -v +$ python +>>> quit() +$ python3 +>>> quit() +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Running-Python-Commands-on-Linux.png) +>Running Python Commands on Linux + +If you want to discard Python 2.x and use 3.x instead when you type python, you can modify the corresponding symbolic links as follows: + +``` +$ sudo rm /usr/bin/python +$ cd /usr/bin +$ ln -s python3.2 python # Choose the Python 3.x binary here +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Remove-Python-2-and-Use-Python-3.png) +>Remove Python 2 and Use Python 3 + +By the way, it is important to note that although versions 2.x are still used, they are not actively maintained. For that reason, you may want to consider switching to 3.x as indicated above. Since there are some syntax differences between 2.x and 3.x, we will focus on the latter in this series. + +Another way you can use Python in Linux is through the IDLE (the Python Integrated Development Environment), a graphical user interface for writing Python code. Before installing it, it is a good idea to perform a search to find out what are the versions available for your distribution: + +``` +# aptitude search idle [Debian and derivatives] +# yum search idle [CentOS and Fedora] +# dnf search idle [Fedora 23+ version] +``` + +Then, you can install it as follows: + +``` +$ sudo aptitude install idle-python3.2 # I'm using Linux Mint 13 +``` + +Once installed, you will see the following screen after launching the IDLE. While it resembles the Python shell, you can do more with the IDLE than with the shell. + +For example, you can: + +1. open external files easily (File → Open). + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Python-Shell.png) +>Python Shell + +2) copy (`Ctrl + C`) and paste (`Ctrl + V`) text, 3) find and replace text, 4) show possible completions (a feature known as Intellisense or Autocompletion in other IDEs), 5) change the font type and size, and much more. + +On top of this, you can use the IDLE to create desktop applications. + +Since we will not be developing a desktop application in this 2-article series, feel free to choose between the IDLE and the Python shell to follow the examples. + +### Basic Operations with Python + +As it is to be expected, you can perform arithmetic operations (feel free to use as many parentheses as needed to perform all the operations you want!) and manipulate text strings very easily with Python. + +You can also assign the results of operations to variables and display them in the screen. A handy feature in Python is concatenation – just supply the values of variables and / or strings in a comma-delimited list (inside parentheses) to the print function and it will return the sentence composed by the items in the sequence: + +``` +>>> a = 5 +>>> b = 8 +>>> x = b / a +>>> x +1.6 +>>> print(b, "divided by", a, "equals", x) +``` + +Note that you can mix variables of different types (numbers, strings, booleans, etc) and once you have assigned a value to a variable you can change the data type without problems later (for this reason Python is said to be a dynamically typed language). + +If you attempt to do this in a statically typed language (such as Java or C#), an error will be thrown. + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Learn-Python-Basic-Operations.png) +>Learn Python Basic Operations + +### A brief comment about Object Oriented Programming + +In Object Oriented Programming (OOP), all entities in a program are represented as objects and thus they can interact with others. As such, they have properties and most of them can perform actions (known as methods). + +For example, let’s suppose we want to create a dog object. Some of the possible properties are color, breed, age, etc, whereas some of the actions a dog can perform are bark(), eat(), sleep(), and many others. + +Methods names, as you can see, are followed by a set of parentheses which may (or may not) contain one (or more) arguments (values that are passed to the method). + +Let’s illustrate these concepts with one of the basic object types in Python: lists. + +### Illustrating methods and properties of objects: Lists in Python + +A list is an ordered group of items, which do not necessarily have to be all of the same data type. To create an empty list named rockBands, use a pair of square brackets as follows: + +To append an item to the end of the list, pass the item to the `append()` method as follows: + +``` +>>> rockBands = [] +>>> rockBands.append("The Beatles") +>>> rockBands.append("Pink Floyd") +>>> rockBands.append("The Rolling Stones") +``` + +To remove an item from the list, we can pass the specific element to the remove() method, or the position of the element (count starts at zero) in the list to pop(). + +In other words, we can use either of the following options to remove “The Beatles” from the list: + +``` +>>> rockBands.remove("The Beatles") +``` + +or + +``` +>>> rockBands.pop(0) +``` + +You can display the list of available methods for an object by pressing Ctrl + Space once you’ve typed the name followed by a dot: + +![](http://www.tecmint.com/wp-content/uploads/2016/05/List-Available-Python-Methods.png) +>List Available Python Methods + +A property of a list object is the number of items it contains. It is actually called length and is invoked by passing the list as argument to the len built-in function (by the way, the print statement, which we exemplified earlier-, is another Python built-in function). + +If you type len followed by an opening parentheses in the IDLE, you will see the default syntax of the function: + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Python-len-Function.png) +>Python len Function + +Now what about the individual items of the list. Do they have methods and properties as well? The answer is yes. For example, you can convert a string item to uppercase and get the number of characters it contains as follows: + +``` +>>> rockBands[0].upper() +'THE BEATLES' +>>> len(rockBands[0]) +11 +``` + +### Summary + +In this article we have provided a brief introduction to Python, its command-line shell, and the IDLE, and demonstrated how to perform arithmetic calculations, how to store values in variables, how to print back those values to the screen (either on its own or as part of a concatenation), and explained through a practical example what are the methods and properties of an object. + +In the next article we will discuss control flow with conditionals and loops. We will also demonstrate how to use what we have learned to write a script to help us in our sysadmin tasks. + +Does Python sound like something you would like to learn more about? Stay tuned for the second part in this series (where among other things we will combine the bounties of Python and command-line tools in a script), and also consider buying our Ultimate Python Coding bundle (more details [here][4]). + +As always, you can count on us if you have any questions about this article. Just send us a message using the contact form below and we will get back to you as soon as possible. + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/learn-python-programming-and-scripting-in-linux/ + +作者:[Gabriel Cánepa][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.tecmint.com/author/gacanepa/ +[1]: http://www.tecmint.com/category/bash-shell/ +[2]: http://www.tecmint.com/create-gui-applications-in-linux/ +[3]: http://www.datasciencecentral.com/profiles/blogs/the-guide-to-learning-python-for-data-science-2 +[4]: http://www.tecmint.com/learn-python-programming-online-with-ultimate-python-coding/ From 8ec9db5a4c5763c0b598b347b72d6fd760488012 Mon Sep 17 00:00:00 2001 From: wxy Date: Sat, 28 May 2016 10:19:44 +0800 Subject: [PATCH 557/582] PUB:20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing @zky001 --- ... Mode ASCII-art Box and Comment Drawing.md | 58 +++++++++---------- 1 file changed, 26 insertions(+), 32 deletions(-) rename {translated/tech => published}/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md (71%) diff --git a/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md b/published/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md similarity index 71% rename from translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md rename to published/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md index ce9c76f324..639f29b851 100644 --- a/translated/tech/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md +++ b/published/20151215 Linux or Unix Desktop Fun--Text Mode ASCII-art Box and Comment Drawing.md @@ -1,18 +1,14 @@ - -Linux / Unix 桌面娱乐 : -文字模式的带有ASCII艺术的Box与评论绘制 - +Linux/Unix 桌面趣事:文字模式下的 ASCII 艺术与注释绘画 ================================================================================ -Boxes 命令不仅是一个文本过滤器,同时是一个很少人知道的可以为了乐趣或者需要在它的输入文本或者代码周围画各种ASCII艺术画的工具。你可以迅速创建邮件签名,或者使用各种编程语言创建局部评论。这个命令计划被vim文本编辑器使用,但是也可以被支持过滤的文本编辑器使用,同时从命令行作为一个单独的工具使用。 - +boxes 命令不仅是一个文本过滤器,同时是一个很少人知道的有趣工具,它可以在输入的文本或者代码周围框上各种ASCII 艺术画。你可以用它快速创建邮件签名,或者在各种编程语言中留下评论块。这个命令可以在 vim 文本编辑器中使用,但是也可以在各种支持过滤器的文本编辑器中使用,同时也可以在命令行中单独使用。 ### 任务: 安装 boxes ### -使用 [apt-get command][1] 在 Debian / Ubuntu Linux中安装 boxes : +使用 [apt-get 命令][1] 在 Debian / Ubuntu Linux 中安装 boxes: $ sudo apt-get install boxes -输出示例 : +输出示例: Reading package lists... Done Building dependency tree @@ -28,11 +24,11 @@ Boxes 命令不仅是一个文本过滤器,同时是一个很少人知道的 Processing triggers for man-db ... Setting up boxes (1.0.1a-2.3) ... -RHEL / CentOS / Fedora Linux 用户, 使用 [yum command to install boxes][2] (首先 [enable EPEL repo as described here][3]): +RHEL / CentOS / Fedora Linux 用户, 使用 [yum 命令来安装][2] boxes,(请先[启用 EPEL 软件仓库][3]): # yum install boxes -输出示例 : +输出示例: Loaded plugins: rhnplugin Setting up Install Process @@ -64,21 +60,21 @@ RHEL / CentOS / Fedora Linux 用户, 使用 [yum command to install boxes][2] ( boxes.x86_64 0:1.1-8.el6 Complete! -FreeBSD 用户可以按如下来使用 : +FreeBSD 用户可以按如下使用: cd /usr/ports/misc/boxes/ && make install clean -或者,使用 pkg_add 命令来增加包: +或者,使用 pkg_add 命令来增加包: # pkg_add -r boxes -### 在一些给定文本周围画出任何种类的box ### +### 在一些给定文本周围画出任何种类的包围框 ### -输入下列命令 : +输入下列命令: echo "This is a test" | boxes -或者,通过设置要使用的设计的名字来使用 : +或者,指定要使用的图案的名字: echo -e "\n\tVivek Gite\n\tvivek@nixcraft.com\n\twww.cyberciti.biz" | boxes -d dog @@ -86,31 +82,29 @@ FreeBSD 用户可以按如下来使用 : ![Unix / Linux: Boxes Command To Draw Various Designs](http://s0.cyberciti.org/uploads/l/tips/2012/06/unix-linux-boxes-draw-dog-design.png) -Fig.01: Unix / Linux: Boxes 命令来画出各式各样的设计 +*图01: Unix / Linux: Boxes 命令来画出各式各样的图案 * -#### 怎么样输出所有的设计 #### +#### 怎么样输出所有的图案 #### -语法如下: +语法如下: boxes option pipe | boxes options echo "text" | boxes -d foo boxes -l -设计 -d 选项设置要使用的设计的名字 . 语法如下: - +-d 选项用来设置要使用的图案的名字。语法如下: echo "Text" | boxes -d design pipe | boxes -d desig --l 选项列出所有设计 . 它显示在配置文件中的所有的box设计图,同时也显示关于其创作者的信息。 +-l 选项列出所有图案。它显示了在配置文件中的所有的框线设计图,同时也显示关于其创作者的信息。 - boxes -l boxes -l | more boxes -l | less -输出示例: +输出示例: 43 Available Styles in "/etc/boxes/boxes-config": ------------------------------------------------- @@ -146,20 +140,21 @@ Fig.01: Unix / Linux: Boxes 命令来画出各式各样的设计 output truncated .. -### 在使用vi/vim文本编辑器时如何通过boxes过滤文本? ### +### 在使用 vi/vim 文本编辑器时如何通过 boxes 过滤文本? ### -你可以使用vi或vim支持的任何附加命令,在这个例子中, [insert current date and time][4], 输入: +你可以在 vi 或 vim 中使用任何外部命令,比如在这个例子中,[插入当前日期和时间][4],输入: !!date 或者 :r !date -你需要在vim中输入以上命令来读取数据命令的输出,这将在当前行后面加入日期和时分秒: + +你需要在 vim 中输入以上命令来读取 date 命令的输出,这将在当前行后面加入日期和时分秒: Tue Jun 12 00:05:38 IST 2012 -你可以用boxes命令做到同样的. 创建一个作为样本的shell脚本或者如下的一个c程序: +你可以用 boxes 命令做到同样的功能。如下创建一个作为示例的 shell 脚本或者c程序: #!/bin/bash @@ -167,7 +162,7 @@ Fig.01: Unix / Linux: Boxes 命令来画出各式各样的设计 Author: Vivek Gite Last updated on: Tue Jun, 12 2012 -现在输入如下 (将光标移到第二行,也就是以"Purpose: ..."开头的行) +现在输入如下(将光标移到第二行,也就是以“Purpose: ...”开头的行) 3!!boxes @@ -184,11 +179,10 @@ Fig.01: Unix / Linux: Boxes 命令来画出各式各样的设计 注:youtube 视频 -(Video:01: boxes command in action. BTW, this is my first video so go easy on me and let me know what you think.) -另见 +参见 -- boxes man 手册 +- boxes 帮助手册 -------------------------------------------------------------------------------- @@ -196,7 +190,7 @@ via: http://www.cyberciti.biz/tips/unix-linux-draw-any-kind-of-boxes-around-text 作者:Vivek Gite 译者:[zky001](https://github.com/zky001) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 4aa64d3f1006148d11d2f19d5102e0cf8f75b98f Mon Sep 17 00:00:00 2001 From: Ezio Date: Sat, 28 May 2016 10:30:38 +0800 Subject: [PATCH 558/582] =?UTF-8?q?20160528-2=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit linux , software , best --- ...LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md diff --git a/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md b/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md new file mode 100644 index 0000000000..1b1cbc2110 --- /dev/null +++ b/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md @@ -0,0 +1,161 @@ +BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016 +============================================= + +![](http://itsfoss.com/wp-content/uploads/2016/05/Best-Linux-Photo-Management-Software.jpg) + +When it comes to Linux applications, at times there are so many choices and alternatives. But sometimes there are only a few options. + +One of our readers had requested to make a list of decent **Linux photo management software**. Something that could replace now defunct Picasa on Linux. + +Turns out, though not many, there are some really good applications for managing photo libraries available out there. Either you have a huge collection of photos or only a few of them, one of these options ought to suit your needs. + +This list of **best photo management applications for Linux** is different from our earlier list of [best photo applications for Linux][1]. That list contained image related applications for various purposes such as editing, painting etc., while this list deals with only photo managing applications. + +So, here we go. I’ve also included the installation commands of these applications for Ubuntu and its derivatives. All you need to do is open a terminal and run those. + +### [GTHUMB](https://wiki.gnome.org/Apps/gthumb) + +![](http://itsfoss.com/wp-content/uploads/2016/05/gThumb-1-1024x540.jpg) +>gThumb Photo Editing + +gThumb is a lightweight photo management application built mainly for GNOME desktop environment. It includes all the basic photo management features as well as some editing and advance operations. Some of the main features of gThumb are: + +- Image Viewer: Supports all the major image format (including GIF) and metadata (EXIF, XMP etc). +- Image Browser: All the basic browsing operations (thumbnails, move, copy, delete etc) and bookmarking support. +- Image Organizer: Organize photos with tags, catalogs and Libraries. Importing photos from Digital Cameras. Web albums (Picasa, Flickr, Facebook etc) integration. +- Image Editor: Basic photo editing operations, filters, format conversion etc. + +And there’s much more, check the official [gThumb feature][2] list. If you use GNOME or GNOME based desktop environments (like MATE) you should definitely try this one out. + +#### GTHUMB INSTALLATION + +``` +sudo apt-get install gthumb +``` + + +### [DIGIKAM][3] + +![](http://itsfoss.com/wp-content/uploads/2016/05/digiKam-1-1024x540.png) +>digiKam + +digiKam is mainly developed for KDE, but works just as well on other desktop environments. It comes with a lot of features with an interface that works nicely. The main features of digiKam includes: + +- Photo Organizer: Albums, sub-albums, tags, comments, metadata, sorting support. +- Photo Importer: Import support from Digital Cameras, USB devices, Web Albums (including Picasa & Facebook) and some other features. +- Photo Exporter: Export support for various online platforms and format conversion. +- Photo Editor: Wide range of photo editing operations. + +digiKam is certainly one of the best Linux photo management software, if not best. + +#### DIGIKAM INSTALLATION + +``` +sudo apt-get install digikam +``` + +### [SHOTWELL][4] + +![](http://itsfoss.com/wp-content/uploads/2016/05/Shotwell-1-1024x540.png) +>Shotwell + +Shotwell photo manager is also for GNOME desktop environment. Shotwell, while isn’t as feature-rich as gThumb, does what it promises. The main features of Shotwell are: + +- Import photos from Disks or Digital Cameras. +- Event, tags and folder based organization. +- Basic photo editing features and format conversion. +- Supports uploading to web services (Facebook, Flickr, Tumblr etc). + +If you want something simple, you can check this one out. + +#### SHOTWELL INSTALLATION + +``` +sudo apt-get install shotwell +``` + +### [KPHOTOALBUM][5] + +![](http://itsfoss.com/wp-content/uploads/2016/05/KPhotoAlbum-1-1024x540.png) +>KPhotoAlbum + +KPhotoAlbum is a photo management application also intended to be used on [KDE desktop environment][6]. What makes KPhotoAlbum unique is its categorization process and time-based browsing. You can categorize photos by People, Places, Events etc. And for time-based browsing, it has a dedicated timeline or Date Bar at the bottom of the user interface. + +KPhotoAlbum comes with a wide range of features for photo management and editing. Some of the main features include: + +- Advance photo organization (with categories, sub-categories, tags, metadata, annotation support and much more). +- Wide range of import and export options (including almost every major photo sharing platforms). +- Various editing options (includes batch operations). + +All these advanced organization features do have their downsides – user has to do most of them manually. But if you’re a KDE lover, this can be a good pick. You can use KPhotoAlbum on other desktop environments too, but it delivers the optimal experience on KDE. + +#### KPHOTOALBUM INSTALLATION + +``` +sudo apt-get install kphotoalbum +``` + +### [DARKTABLE][7] + +![](http://itsfoss.com/wp-content/uploads/2016/05/darktable-1-1024x540.png) +>Darktable + +Darktable is more of a photo editing application than an organizer. Darktable stands out for its own user interface regardless of the desktop environment you might be using, and of course for its editing capabilities. The basic features include: + +- Basic photo organization. +- Advance and feature-rich photo editing. +- Export support for Picasa & Flickr and format conversion. + +If you’re into photo editing and retouching, Darktable is a nice choice. + +> Reading Suggestion: [How to install Darktable 2.0 in Ubuntu via PPA][8] + +#### DARKTABLE INSTALLATION + +``` +sudo add-apt-repository ppa:pmjdebruijn/darktable-release +sudo apt-get update +sudo apt-get install darktable +``` + +### OTHERS + +If you want a simple application for pulling images from your portable devices (cameras, phones, portable drives etc) and storing them on your Hard Disk, using [Rapid Photo Downloader][9] is a no-brainer. It is an incredible application for importing and backing up photos from portable devices. The installation and configuration process is quite easy and simple. + +For installing Rapid Photo Downloader on Ubuntu, fire up a terminal and run this command: + +``` +sudo apt-get install rapid-photo-downloader +``` + +If you are still interested in trying a few more options, here you go: + +- [GNOME Photos][10] (Photo viewer for GNOME desktop environment) +- [Gwenview][11] (Photo viewer for KDE desktop environment) +- [Picty][12] (Open-source photo collection manager) + +So, are you using, or plan to use, any one of these applications? Which, according to you is the best photo management application for Ubuntu or any other Linux? Do you have any favorites to term as Linux photo manager? Do share your views. + + +---------- +via: http://itsfoss.com/linux-photo-management-software/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[Munif Tanjim][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/munif/ +[1]: http://itsfoss.com/image-applications-ubuntu-linux/ +[2]: https://wiki.gnome.org/Apps/gthumb/features +[3]: https://www.digikam.org/ +[4]: https://wiki.gnome.org/Apps/Shotwell +[5]: https://www.kphotoalbum.org/ +[6]: https://www.kde.org/ +[7]: http://www.darktable.org/ +[8]: http://itsfoss.com/darktable-20-released-installation-ppa/ +[9]: http://www.damonlynch.net/rapid/index.html +[10]: https://wiki.gnome.org/Apps/Photos +[11]: https://userbase.kde.org/Gwenview +[12]: https://github.com/spillz/picty From 98d71b5279b0a90be7792f0c380ee0e0a0a68a94 Mon Sep 17 00:00:00 2001 From: alim0x Date: Sat, 28 May 2016 11:10:29 +0800 Subject: [PATCH 559/582] [translating]20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE --- .../20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md b/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md index 8ea5e6b803..1402151642 100644 --- a/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md +++ b/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md @@ -1,3 +1,5 @@ +alim0x translating + ORB: NEW GENERATION OF LINUX APPS ARE HERE ============================================= From 1860a20537070ea1a219468ef5bf147bf01e59d5 Mon Sep 17 00:00:00 2001 From: David Dai Date: Sat, 28 May 2016 11:22:42 +0800 Subject: [PATCH 560/582] =?UTF-8?q?Translating=2020160525=20Getting=20Star?= =?UTF-8?q?ted=20with=20Python=20Programming=20and=20Scripting=20in=20Linu?= =?UTF-8?q?x=20=E2=80=93=20Part=201=20(#4005)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d with Python Programming and Scripting in Linux – Part 1.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md b/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md index 14ec294b04..dac5b0385f 100644 --- a/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md +++ b/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md @@ -1,3 +1,5 @@ +StdioA translating + Getting Started with Python Programming and Scripting in Linux – Part 1 =============================================================================== From 4c2d37795549ceab632f78794c4c293de557a676 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 28 May 2016 12:02:58 +0800 Subject: [PATCH 561/582] translating --- .../20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md b/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md index 55b7690423..f1b70daa36 100644 --- a/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md +++ b/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md @@ -1,3 +1,5 @@ +translating----geekpi + NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS ================================================ From cc26c6aea732c7fd7aa42d880311ea0de932131a Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 28 May 2016 13:55:11 +0800 Subject: [PATCH 562/582] translated --- ...OS : LINUX DISTRIBUTION FOR NODE LOVERS.md | 55 ------------------- ...OS : LINUX DISTRIBUTION FOR NODE LOVERS.md | 53 ++++++++++++++++++ 2 files changed, 53 insertions(+), 55 deletions(-) delete mode 100644 sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md create mode 100644 translated/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md diff --git a/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md b/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md deleted file mode 100644 index f1b70daa36..0000000000 --- a/sources/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md +++ /dev/null @@ -1,55 +0,0 @@ -translating----geekpi - -NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS -================================================ - -![](http://itsfoss.com/wp-content/uploads/2016/05/node-os-linux.jpg) - -[NodeOS][1], the operating system based on [Node.js][2], is now heading towards its version 1.0 following the release of its first [Release Candidate][3] last year. - -If this is the first time you’re hearing about it, NodeOS is the first ever operating system powered by Node.js & [npm][4] and built on top of the [Linux][5] Kernel. [Jacob Groundwater][6] introduced this project in mid-2013. The primary technologies used in building the system are: - -- **Linux Kernel**: The entire OS is built off the Linux Kernel. -- **Node.js runtime**: Node is used as the primary runtime. -- **npm Packages**: npm is used for package management. - -NodeOS source is hosted on [Github Repository][7]. So, anybody interested can easily contribute and report bugs. Users can build from source or use the [pre-built images][8] available. The build process and quick start guide can be found at project repository. - -The idea behind NodeOS is to provide just enough to let npm run on it and then the rest of the functionalities will come from npm packages. So, the users have access the vast collection of about 250,000 packages and that number is continuously increasing every day. And everything being open-source, it’s always easy to patch bugs and add more packages to npm according to your need. - -NodeOS core development is separated into layers and the general structure includes: - -- **barebones** – custom Linux kernel along with an initramfs that boots to a Node.js REPL -- **initramfs** – Initram filesystem to mount the users partition & boot the system -- **rootfs** – Read-only partition image hosting the Linux kernel & initramfs files -- **usersfs** – multi-user filesystem (as traditional OSes) - -NodeOS aims to be able to run on virtually any platforms, including – **Real Hardware** (personal computers or SOCs), **Cloud platforms, Virtual machines, PaaS providers, Containers** (Docker & Vagga ) etc. And so far, it seems that they’re doing pretty good. On March 3, [Jesús Leganés Combarro][9], NodeOS member on GitHub, [announced][10] that: - ->**NodeOS is not a toy OS anymore**, and it’s very capable to be used on production environments for real use cases from now on. - -So, if you are a die-hard fan of Node.js and/or have a knack for trying new things, this might be the thing for you to try. And in related post, you should read about these niche [Linux distributions for specific usage][11]. - - --------------------------------------------------------------------------------- - -via: http://itsfoss.com/nodeos-operating-system/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 - -作者:[Munif Tanjim][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://itsfoss.com/author/munif/ -[1]: http://node-os.com/ -[2]: https://nodejs.org/en/ -[3]: https://github.com/NodeOS/NodeOS/releases/tag/v1.0-RC1 -[4]: https://www.npmjs.com/ -[5]: http://itsfoss.com/tag/linux/ -[6]: https://github.com/groundwater -[7]: https://github.com/nodeos/nodeos -[8]: https://github.com/NodeOS/NodeOS/releases -[9]: https://github.com/piranna -[10]: https://github.com/NodeOS/NodeOS/issues/216 -[11]: http://itsfoss.com/weird-ubuntu-based-linux-distributions/ diff --git a/translated/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md b/translated/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md new file mode 100644 index 0000000000..d189753fd5 --- /dev/null +++ b/translated/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md @@ -0,0 +1,53 @@ +NODEOS: NODE爱好者的Linux发行版 +================================================ + +![](http://itsfoss.com/wp-content/uploads/2016/05/node-os-linux.jpg) + +[NodeOS][1]是一个基于[Node.js][2]的操作系统,自去年的首个[发布候选版][3]之后正朝着它的1.0版本进发。 + +如果你是第一次听到它,NodeOS是首个在[Linux][5]内核之上由Node.js和[npm][4]驱动的操作系统。[Jacob Groundwater][6]仔2013年中介绍了这个项目。操作系统中用到的主要技术是: + +- **Linux 内核**: 这个系统内置了Linux内核 +- **Node.js 运行时**: Node作为主要的运行时 +- **npm 包管理**: npm作为包管理 + +NodeOS源码托管在[Github][7]上,因此,任何感兴趣的人都可以轻松贡献或者报告bug。用户可以从源码构建或者使用[预编译镜像][8]。构建过程及使用可以在项目仓库中找到。 + +NodeOS背后的思想是提供足够npm运行的环境,剩余的功能就可以来自npm包管理。因此,用户可以使用大量的大约250,000的包,并且这个数目每天都还在增长。并且所有的都是开源的,你可以根据你的需要很容易地打补丁或者增加更多的包。 + +NodeOS核心开发被分离成了不同的层,基本的结构包含: + +- **barebones** – 带有可以启动到Node.js REPL的initramfs的自定义内核 +- **initramfs** – =用于挂载用户分区以及启动系统的initram文件系统 +- **rootfs** – 托管linux内核及initramfs文件的只读分区 +- **usersfs** – 多用户文件系统(如传统系统一样) + +NodeOS的目标是可以仔任何平台上运行,包括- **真实的硬件(用户计算机或者SoC)**、**云平台、虚拟机、PaaS提供商,容器**(Docker和Vagga)等等。如今看来,它做得似乎不错。在3.3号,NodeOS的成员[Jesús Leganés Combarro][9]在Github上[宣布][10]: + +>**NodeOS不再是一个玩具系统了**,它现在开始可以用在有实际需求的生产环境中了。 + +因此,如果你是Node.js的死忠或者乐于尝试新鲜事物,这或许值得你一试。在相关的文章中,你应该了解这些[Linux发行版的具体用法][11] + + +-------------------------------------------------------------------------------- + +via: http://itsfoss.com/nodeos-operating-system/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[Munif Tanjim][a] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/munif/ +[1]: http://node-os.com/ +[2]: https://nodejs.org/en/ +[3]: https://github.com/NodeOS/NodeOS/releases/tag/v1.0-RC1 +[4]: https://www.npmjs.com/ +[5]: http://itsfoss.com/tag/linux/ +[6]: https://github.com/groundwater +[7]: https://github.com/nodeos/nodeos +[8]: https://github.com/NodeOS/NodeOS/releases +[9]: https://github.com/piranna +[10]: https://github.com/NodeOS/NodeOS/issues/216 +[11]: http://itsfoss.com/weird-ubuntu-based-linux-distributions/ From a8ac5c747250faf9e83eb6c10247aa47f090facc Mon Sep 17 00:00:00 2001 From: Stdio A Date: Sat, 28 May 2016 15:51:31 +0800 Subject: [PATCH 563/582] Translated 20160525 Getting Started with Python Programming and Scripting in Linux - Part 1 --- ...ramming and Scripting in Linux – Part 1.md | 184 ----------------- ...ramming and Scripting in Linux – Part 1.md | 187 ++++++++++++++++++ 2 files changed, 187 insertions(+), 184 deletions(-) delete mode 100644 sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md create mode 100644 translated/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md diff --git a/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md b/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md deleted file mode 100644 index dac5b0385f..0000000000 --- a/sources/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md +++ /dev/null @@ -1,184 +0,0 @@ -StdioA translating - -Getting Started with Python Programming and Scripting in Linux – Part 1 -=============================================================================== - - -It has been said (and often required by recruitment agencies) that system administrators need to be proficient in a scripting language. While most of us may be comfortable using [Bash][1] (or other shell of our choice) to run command-line scripts, a powerful language such as Python can add several benefits. - -![](http://www.tecmint.com/wp-content/uploads/2016/05/Learn-Python-Programming-Scripting-in-Linux.png) ->Learn Python Programming Scripting in Linux - -To begin with, Python allows us to access the tools of the command-line environment and to make use of Object Oriented Programming features (more on this later in this article). - -On top of it, learning Python can boost your career in the fields of [desktop applications][2] and [data science][3]. - -Being so easy to learn, so vastly used, and having a plethora of ready-to-use modules (external files that contain Python statements), no wonder Python is the preferred language to teach programming to first-year computer science students in the United States. - -In this 2-article series we will review the fundamentals of Python in hopes that you will find it useful as a springboard to get you started with programming and as a quick-reference guide afterwards. That said, let’s get started. - -### Python in Linux - -Python versions 2.x and 3.x are usually available in most modern Linux distributions out of the box. You can enter a Python shell by typing `python` or `python3` in your terminal emulator and exit with `quit()`: - -``` -$ which python -$ which python3 -$ python -v -$ python3 -v -$ python ->>> quit() -$ python3 ->>> quit() -``` - -![](http://www.tecmint.com/wp-content/uploads/2016/05/Running-Python-Commands-on-Linux.png) ->Running Python Commands on Linux - -If you want to discard Python 2.x and use 3.x instead when you type python, you can modify the corresponding symbolic links as follows: - -``` -$ sudo rm /usr/bin/python -$ cd /usr/bin -$ ln -s python3.2 python # Choose the Python 3.x binary here -``` - -![](http://www.tecmint.com/wp-content/uploads/2016/05/Remove-Python-2-and-Use-Python-3.png) ->Remove Python 2 and Use Python 3 - -By the way, it is important to note that although versions 2.x are still used, they are not actively maintained. For that reason, you may want to consider switching to 3.x as indicated above. Since there are some syntax differences between 2.x and 3.x, we will focus on the latter in this series. - -Another way you can use Python in Linux is through the IDLE (the Python Integrated Development Environment), a graphical user interface for writing Python code. Before installing it, it is a good idea to perform a search to find out what are the versions available for your distribution: - -``` -# aptitude search idle [Debian and derivatives] -# yum search idle [CentOS and Fedora] -# dnf search idle [Fedora 23+ version] -``` - -Then, you can install it as follows: - -``` -$ sudo aptitude install idle-python3.2 # I'm using Linux Mint 13 -``` - -Once installed, you will see the following screen after launching the IDLE. While it resembles the Python shell, you can do more with the IDLE than with the shell. - -For example, you can: - -1. open external files easily (File → Open). - -![](http://www.tecmint.com/wp-content/uploads/2016/05/Python-Shell.png) ->Python Shell - -2) copy (`Ctrl + C`) and paste (`Ctrl + V`) text, 3) find and replace text, 4) show possible completions (a feature known as Intellisense or Autocompletion in other IDEs), 5) change the font type and size, and much more. - -On top of this, you can use the IDLE to create desktop applications. - -Since we will not be developing a desktop application in this 2-article series, feel free to choose between the IDLE and the Python shell to follow the examples. - -### Basic Operations with Python - -As it is to be expected, you can perform arithmetic operations (feel free to use as many parentheses as needed to perform all the operations you want!) and manipulate text strings very easily with Python. - -You can also assign the results of operations to variables and display them in the screen. A handy feature in Python is concatenation – just supply the values of variables and / or strings in a comma-delimited list (inside parentheses) to the print function and it will return the sentence composed by the items in the sequence: - -``` ->>> a = 5 ->>> b = 8 ->>> x = b / a ->>> x -1.6 ->>> print(b, "divided by", a, "equals", x) -``` - -Note that you can mix variables of different types (numbers, strings, booleans, etc) and once you have assigned a value to a variable you can change the data type without problems later (for this reason Python is said to be a dynamically typed language). - -If you attempt to do this in a statically typed language (such as Java or C#), an error will be thrown. - -![](http://www.tecmint.com/wp-content/uploads/2016/05/Learn-Python-Basic-Operations.png) ->Learn Python Basic Operations - -### A brief comment about Object Oriented Programming - -In Object Oriented Programming (OOP), all entities in a program are represented as objects and thus they can interact with others. As such, they have properties and most of them can perform actions (known as methods). - -For example, let’s suppose we want to create a dog object. Some of the possible properties are color, breed, age, etc, whereas some of the actions a dog can perform are bark(), eat(), sleep(), and many others. - -Methods names, as you can see, are followed by a set of parentheses which may (or may not) contain one (or more) arguments (values that are passed to the method). - -Let’s illustrate these concepts with one of the basic object types in Python: lists. - -### Illustrating methods and properties of objects: Lists in Python - -A list is an ordered group of items, which do not necessarily have to be all of the same data type. To create an empty list named rockBands, use a pair of square brackets as follows: - -To append an item to the end of the list, pass the item to the `append()` method as follows: - -``` ->>> rockBands = [] ->>> rockBands.append("The Beatles") ->>> rockBands.append("Pink Floyd") ->>> rockBands.append("The Rolling Stones") -``` - -To remove an item from the list, we can pass the specific element to the remove() method, or the position of the element (count starts at zero) in the list to pop(). - -In other words, we can use either of the following options to remove “The Beatles” from the list: - -``` ->>> rockBands.remove("The Beatles") -``` - -or - -``` ->>> rockBands.pop(0) -``` - -You can display the list of available methods for an object by pressing Ctrl + Space once you’ve typed the name followed by a dot: - -![](http://www.tecmint.com/wp-content/uploads/2016/05/List-Available-Python-Methods.png) ->List Available Python Methods - -A property of a list object is the number of items it contains. It is actually called length and is invoked by passing the list as argument to the len built-in function (by the way, the print statement, which we exemplified earlier-, is another Python built-in function). - -If you type len followed by an opening parentheses in the IDLE, you will see the default syntax of the function: - -![](http://www.tecmint.com/wp-content/uploads/2016/05/Python-len-Function.png) ->Python len Function - -Now what about the individual items of the list. Do they have methods and properties as well? The answer is yes. For example, you can convert a string item to uppercase and get the number of characters it contains as follows: - -``` ->>> rockBands[0].upper() -'THE BEATLES' ->>> len(rockBands[0]) -11 -``` - -### Summary - -In this article we have provided a brief introduction to Python, its command-line shell, and the IDLE, and demonstrated how to perform arithmetic calculations, how to store values in variables, how to print back those values to the screen (either on its own or as part of a concatenation), and explained through a practical example what are the methods and properties of an object. - -In the next article we will discuss control flow with conditionals and loops. We will also demonstrate how to use what we have learned to write a script to help us in our sysadmin tasks. - -Does Python sound like something you would like to learn more about? Stay tuned for the second part in this series (where among other things we will combine the bounties of Python and command-line tools in a script), and also consider buying our Ultimate Python Coding bundle (more details [here][4]). - -As always, you can count on us if you have any questions about this article. Just send us a message using the contact form below and we will get back to you as soon as possible. - --------------------------------------------------------------------------------- - -via: http://www.tecmint.com/learn-python-programming-and-scripting-in-linux/ - -作者:[Gabriel Cánepa][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://www.tecmint.com/author/gacanepa/ -[1]: http://www.tecmint.com/category/bash-shell/ -[2]: http://www.tecmint.com/create-gui-applications-in-linux/ -[3]: http://www.datasciencecentral.com/profiles/blogs/the-guide-to-learning-python-for-data-science-2 -[4]: http://www.tecmint.com/learn-python-programming-online-with-ultimate-python-coding/ diff --git a/translated/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md b/translated/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md new file mode 100644 index 0000000000..24df8ca66b --- /dev/null +++ b/translated/tech/20160525 Getting Started with Python Programming and Scripting in Linux – Part 1.md @@ -0,0 +1,187 @@ +Linux 平台下 Python 脚本编程入门 – Part 1 +=============================================================================== + + +众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写。大多数人会认为 Bash (或者其他的 shell 语言)用起来很方便,但一些强大的语言(比如 Python)会给你带来一些其它的好处。 + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Learn-Python-Programming-Scripting-in-Linux.png) +> 在 Linux 中学习 Python 脚本编程 + +首先,我们会使用 Python 的命令行工具,还会接触到 Python 的面向对象特性(这篇文章的后半部分会谈到它)。 + +最后,学习 Python + 可以助力于你在[桌面应用开发][2]及[数据科学领域][3]的事业。 + +容易上手,广泛使用,拥有海量“开箱即用”的模块(它是一组包含 Python 声明的外部文件),Python 理所当然地成为了美国计算机专业大学生在一年级时所上的程序设计课所用语言的不二之选。 + +在这个由两篇文章构成的系列中,我们将回顾 Python +的基础部分,希望初学编程的你能够将这篇实用的文章作为一个编程入门的跳板,和日后使用 Python 时的一篇快速指引。 + +### Linux 中的 Python + +Python 2.x 和 3.x 通常已经内置在现代 Linux 发行版中,你可以立刻使用它。你可以终端模拟器中输入 `python` 或 `python3` 来进入 Python shell, 并输入 `quit()` 退出。 + +``` +$ which python +$ which python3 +$ python -v +$ python3 -v +$ python +>>> quit() +$ python3 +>>> quit() +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Running-Python-Commands-on-Linux.png) +> 在 Linux 中运行 Python 命令 + +如果你希望在键入 `python` 时使用 Python 3.x 而不是 2.x,你可以像下面一样更改对应的符号链接: + +``` +$ sudo rm /usr/bin/python +$ cd /usr/bin +$ ln -s python3.2 python # Choose the Python 3.x binary here +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Remove-Python-2-and-Use-Python-3.png) +> 删除 Python 2,使用 Python 3 + +顺便一提,有一点需要注意:尽管 Python 2.x 仍旧被使用,但它并不会被积极维护。因此,你可能要考虑像上面指示的那样来切换到 3.x。2.x 和 3.x 的语法有一些不同,我们会在这个系列文章中使用后者。 + +另一个在 Linux 中使用 Python 的方法是通过 IDLE (the Python Integrated Development Environment),一个为编写 Python 代码而生的图形用户界面。在安装它之前,你最好查看一下适用于你的 Linux 发行版的 IDLE 可用版本。 + +``` +# aptitude search idle [Debian 及其衍生发行版] +# yum search idle [CentOS 和 Fedora] +# dnf search idle [Fedora 23+ 版本] +``` + +然后,你可以像下面一样安装它: + +``` +$ sudo aptitude install idle-python3.2 # I'm using Linux Mint 13 +``` + +安装成功后,你会看到 IDLE 的运行画面。它很像 Python shell,但是你可以用它做更多 Python shell 做不了的事。 + +比如,你可以: + +1. 轻松打开外部文件 (File → Open); + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Python-Shell.png) +> Python Shell + +2. 复制 (`Ctrl + C`) 和粘贴 (`Ctrl + V`) 文本; +3. 查找和替换文本; +4. 显示可能的代码补全(一个在其他 IDE 里可能叫做 Intellisense 或者 Autocompletion 的功能); +5. 更改字体和字号,等等。 + +最厉害的是,你可以用 IDLE 创建桌面工程。 + +我们在这两篇文章中不会开发桌面应用,所以你可以根据喜好来选择 IDLE 或 Python shell 去运行下面的例子。 + +### Python 中的基本运算 + +就像你预料的那样,你能够直接进行算术操作(你可以在所有操作中使用足够多的括号!),还可以轻松地使用 Python 拼接字符串。 + +你还可以将运算结果赋给一个变量,然后在屏幕上显示它。Python 有一个叫做输出 (concatenation) 的实用功能——把一串变量和/或字符串用逗号分隔,然后在 print 函数中插入,它会返回一个由你刚才提供的变量依序构成的句子: + +``` +>>> a = 5 +>>> b = 8 +>>> x = b / a +>>> x +1.6 +>>> print(b, "divided by", a, "equals", x) +``` + +注意,你可以将不同类型的变量(数字,字符串,布尔符号等等)混合在一起。当你将一个值赋给一个变量后,你可以随后更改它的类型,不会有任何问题(因此,Python 被称为动态类型语言)。 + +如果你尝试在静态类型语言中(如 Java 或 C#)做这件事,它将抛出一个错误。 + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Learn-Python-Basic-Operations.png) +> 学习 Python 的基本操作 + +### 面向对象编程的简单介绍 + +在面向对象编程(OOP)中,程序中的所有实体都会由对象的形式呈现,所以它们可以与其他对象交互。因此,对象拥有属性,而且大多数对象可以完成动作(这被称为对象的方法)。 + +举个例子:我们来想象一下,创建一个对象“狗”。它可能拥有的一些属性有`颜色`、`品种`、`年龄`等等,而它可以完成的动作有 `叫()`、`吃()`、`睡觉()`,诸如此类。 + +你可以看到,方法名后面会跟着一对括号,他们当中可能会包含一个或多个参数(向方法中传递的值),也有可能什么都不包含。 + +我们用 Python 的基本对象类型之一——列表来解释这些概念。 + +### 解释对象的属性和方法:Python 中的列表 + +列表是条目的有序组合,而这些条目所属的数据类型并不需要相同。我们像下面一样来使用一对方括号,来创建一个名叫 `rockBands` 的列表: + +你可以向 `rockBands` 的 `append()` 方法传递条目,来将它添加到列表的尾部,就像下面这样: + +``` +>>> rockBands = [] +>>> rockBands.append("The Beatles") +>>> rockBands.append("Pink Floyd") +>>> rockBands.append("The Rolling Stones") +``` + +为了从列表中移除元素,我们可以向 `remove()` 方法传递特定元素,或向 `pop()` 中传递列表中待删除元素的位置(从 0 开始计数)。 + +换句话说,我们可以用下面这种方法来从列表中删除 “The Beatles”: + +``` +>>> rockBands.remove("The Beatles") +``` + +或者用这种方法: + +``` +>>> rockBands.pop(0) +``` + +如果你输入了对象的名字,然后在后面输入了一个点,你可以按 Ctrl + 空格来显示这个对象的可用方法列表。 + +![](http://www.tecmint.com/wp-content/uploads/2016/05/List-Available-Python-Methods.png) +> 列出可用的 Python 方法 + +列表中含有的元素个数是它的一个属性。它通常被叫做“长度”,你可以通过向内建函数 `len` 传递一个列表作为它的参数来显示该列表的长度(顺便一提,之前的例子中提到的 print 语句,是 Python 的另一个内建函数)。 + +如果你在 IDLE 中输入 `len`,然后跟上一个不闭合的括号,你会看到这个函数的默认语法: + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Python-len-Function.png) +> Python 的 len 函数 + +现在我们来看看列表中的特定条目。他们也有属性和方法吗?答案是肯定的。比如,你可以将一个字符串条目装换为大写形式,并获取这个字符串所包含的字符数量。像下面这样做: + +``` +>>> rockBands[0].upper() +'THE BEATLES' +>>> len(rockBands[0]) +11 +``` + +### 总结 + +在这篇文章中,我们简要介绍了 Python,它的命令行 shell,IDLE,展示了如何执行算术运算,如何在变量中存储数据,如何使用 `print` 函数在屏幕上重新显示那些数据(无论是它们本身还是它们的一部分),还通过一个实际的例子解释了对象的属性和方法。 + +下一篇文章中,我们会展示如何使用条件语句和循环语句来实现流程控制。我们也会解释如何编写一个脚本来帮助我们完成系统管理任务。 + +你是不是想继续学习一些有关 Python 的知识呢?敬请期待本系列的第二部分(我们会将 Python 的慷慨、脚本中的命令行工具与其他部分结合在一起),你还可以考虑购买我们的《终极 Python 编程》系列教程([这里][4]有详细信息)。 + +像往常一样,如果你对这篇文章有什么问题,可以向我们寻求帮助。你可以使用下面的联系表单向我们发送留言,我们会尽快回复你。 + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/learn-python-programming-and-scripting-in-linux/ + +作者:[Gabriel Cánepa][a] +译者:[StdioA](https://github.com/StdioA) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.tecmint.com/author/gacanepa/ +[1]: http://www.tecmint.com/category/bash-shell/ +[2]: http://www.tecmint.com/create-gui-applications-in-linux/ +[3]: http://www.datasciencecentral.com/profiles/blogs/the-guide-to-learning-python-for-data-science-2 +[4]: http://www.tecmint.com/learn-python-programming-online-with-ultimate-python-coding/ From 1a82c20dc69fabd1cb8dc5081b2252d47079c217 Mon Sep 17 00:00:00 2001 From: SarishiNoHara Date: Sat, 28 May 2016 16:15:50 +0200 Subject: [PATCH 564/582] BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md (#4010) translating... --- .../20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md b/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md index 1b1cbc2110..9e3e630282 100644 --- a/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md +++ b/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md @@ -1,3 +1,5 @@ +translating by sarishinohara + BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016 ============================================= From ed2663977a6de104162cc9631628452a1b8e26a7 Mon Sep 17 00:00:00 2001 From: alim0x Date: Sat, 28 May 2016 23:11:39 +0800 Subject: [PATCH 565/582] [translated]20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE --- ...- NEW GENERATION OF LINUX APPS ARE HERE.md | 144 ------------------ ...- NEW GENERATION OF LINUX APPS ARE HERE.md | 142 +++++++++++++++++ 2 files changed, 142 insertions(+), 144 deletions(-) delete mode 100644 sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md create mode 100644 translated/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md diff --git a/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md b/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md deleted file mode 100644 index 1402151642..0000000000 --- a/sources/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md +++ /dev/null @@ -1,144 +0,0 @@ -alim0x translating - -ORB: NEW GENERATION OF LINUX APPS ARE HERE -============================================= - -![](http://itsfoss.com/wp-content/uploads/2016/05/ORB-Apps.jpeg) - -We have talked about [installing applications offline in Ubuntu][1] before. And we are going to talk about it once again. - -[Orbital Apps][2] has brought us a new type of application package, **ORB**, with portable applications, interactive installer support and offline usage ability. - -Portable applications are always handy. Mostly because they can run on-the-fly without needing any administrator privileges, and also it can be carried around on small USB sticks along with all their settings and data. And these interactive installers will be able to allow us to install applications with ease. - -### OPEN RUNNABLE BUNDLE (ORB) - -ORB is a free & open-source package format and it’s different from the others in numerous ways. Some of the specifications of ORB is followings: - -- **Compression**: All the packages are compressed with squashfs making them up-to 60% smaller. -- **Portable Mode**: If a portable ORB application is run from a removable drive, it’ll store its settings and data on that drive. -- **Security**: All ORB packages are signed with PGP/RSA and distributed via TLS 1.2. -- **Offline**: All the dependencies are bundled with the package, so no downloading dependencies anymore. -- **Open package**: ORB packages can be mounted as ISO images. - -### VARIETY - -ORB applications are now available in two varieties: - -- Portable Applications -- SuperDEB - -#### 1. PORTABLE ORB APPLICATIONS - -Portable ORB Applications is capable of running right away without needing any installation beforehand. That means it’ll need no administrator privileges and no dependencies! You can just download them from the Orbital Apps website and get to work. - -And as it supports Portable Mode, you can copy it on a USB stick and carry it around. All its settings and data will be stored with it on that USB stick. Just connect the USB stick with any system running on Ubuntu 16.04 and you’ll be ready to go. - -##### AVAILABLE PORTABLE APPLICATIONS - -Currently, more than 35 applications are available as portable packages, including some very popular applications like: [Deluge][3], [Firefox][4], [GIMP][5], [Libreoffice][6], [uGet][7] & [VLC][8]. - -For a full list of available packages, check the [Portable ORB Apps list][9]. - -##### USING PORTABLE APPLICATION - -Follow the steps for using Portable ORB Applications: - -- Download your desired package from the Orbital Apps site. -- Move it wherever you want (local drive / USB stick). -- Open the directory where you’ve stored the ORB package. - -![](http://itsfoss.com/wp-content/uploads/2016/05/using-portable-orb-app-1-1024x576.jpg) - -- Open Properties of the ORB package. - -![](http://itsfoss.com/wp-content/uploads/2016/05/using-portable-orb-app-2.jpg) ->Add Execute permission to ORB package - -- Add Execute permission from Permissions tab. -- Double-click on it. - -Wait for a few seconds as it prepares itself for running. And you’re good to go. - -#### 2. SUPERDEB - -Another variety of ORB Applications is SuperDEB. SuperDEBs are easy and interactive installers that make the software installation process a lot smoother. If you don’t like to install software from terminal or software centers, SuperDEB is exactly for you. - -And the most interesting part is that you won’t need an active internet connection for installing as all the dependencies are bundled with the installer. - -##### AVAILABLE SUPERDEBS - -More than 60 applications are currently available as SuperDEB. Some of the popular software among them are: [Chromium][10], [Deluge][3], [Firefox][4], [GIMP][5], [Libreoffice][6], [uGet][7] & [VLC][8]. - -For a full list of available SuperDEBs, check the [SuperDEB list][11]. - -##### USING SUPERDEB INSTALLER - -- Download your desired SuperDEB from Orbital Apps site. -- Add **Execute permission** to it just like before ( Properties > Permissions ). -- Double-click on the SuperDEB installer and follow the interactive instructions: - -![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-1.png) ->Click OK - -![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-2.png) ->Enter your password and proceed - -![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-3.png) ->It’ll start Installing… - -![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-4.png) ->And soon it’ll be done… - -- After finishing the installation, you’re good to use it normally. - -### ORB APPS COMPATIBILITY - -According to Orbital Apps, they are fully compatible with Ubuntu 16.04 [64 bit]. - ->Reading suggestion: [How To Know If You Have 32 Bit or 64 Bit Computer in Ubuntu][12]. - -As for other distros compatibility is not guaranteed. But we can say that, it’ll work on any Ubuntu 16.04 flavors (UbuntuMATE, UbuntuGNOME, Lubuntu, Xubuntu etc.) and Ubuntu 16.04 based distros (like upcoming Linux Mint 18). We currently have no information if Orbital Apps is planning on expanding its support for other Ubuntu versions/Linux Distros or not. - -If you’re going to use Portable ORB applications often on your system, you can consider installing ORB Launcher. It’s not necessary but is recommended installing to get an improved experience. The shortest method of installing ORB Launcher is opening the terminal and enter the following command: - -``` -wget -O - https://www.orbital-apps.com/orb.sh | bash -``` - -You can find the detailed instructions at [official documentation][13]. - -### WHAT IF I NEED AN APP THAT’S NOT LISTED? - -If you need an application as ORB package that is not available right now, you can [contact][14] Orbital Apps. And the good news is, Orbital Apps is working hard and planning on releasing a tool for creating ORB packages. So, hopefully, soon we’ll be able to make ORB packages ourselves! - -Just to add, this was about installing apps offline. If you are interested, you should read [how to update or upgrade Ubuntu offline][15]. - -So, what do you think about Orbital Apps’ Portable Applications and SuperDEB installers? Will you try them? - - ----------------------------------- -via: http://itsfoss.com/orb-linux-apps/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 - -作者:[Munif Tanjim][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:http://itsfoss.com/author/munif/ -[1]: http://itsfoss.com/cube-lets-install-linux-applications-offline/ -[2]: https://www.orbital-apps.com/ -[3]: https://www.orbital-apps.com/download/portable_apps_linux/deluge -[4]: https://www.orbital-apps.com/download/portable_apps_linux/firefox -[5]: https://www.orbital-apps.com/download/portable_apps_linux/gimp -[6]: https://www.orbital-apps.com/download/portable_apps_linux/libreoffice -[7]: https://www.orbital-apps.com/download/portable_apps_linux/uget -[8]: https://www.orbital-apps.com/download/portable_apps_linux/vlc -[9]: https://www.orbital-apps.com/download/portable_apps_linux/ -[10]: https://www.orbital-apps.com/download/superdeb_installers/ubuntu_16.04_64bits/chromium/ -[11]: https://www.orbital-apps.com/superdebs/ubuntu_16.04_64bits/ -[12]: http://itsfoss.com/32-bit-64-bit-ubuntu/ -[13]: https://www.orbital-apps.com/documentation -[14]: https://www.orbital-apps.com/contact -[15]: http://itsfoss.com/upgrade-or-update-ubuntu-offline-without-internet/ diff --git a/translated/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md b/translated/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md new file mode 100644 index 0000000000..cc212e7a4c --- /dev/null +++ b/translated/tech/20160520 ORB - NEW GENERATION OF LINUX APPS ARE HERE.md @@ -0,0 +1,142 @@ +ORB:新一代 Linux 应用 +============================================= + +![](http://itsfoss.com/wp-content/uploads/2016/05/ORB-Apps.jpeg) + +我们之前讨论过[在 Ubuntu 上离线安装应用][1]。我们现在要再次讨论它。 + +[Orbital Apps][2] 给我们带来了新的软件包类型,**ORB**,它带有便携软件,交互式安装向导支持,以及离线使用的能力。 + +便携软件很方便。主要是因为它们能够无需任何管理员权限直接运行,也能够带着所有的设置和数据随U盘存储。而交互式的安装向导也能让我们轻松地安装应用。 + +### 开放可运行包 OPEN RUNNABLE BUNDLE (ORB) + +ORB 是一个免费和开源的包格式,它和其它包格式在很多方面有所不同。ORB 的一些特性: + +- **压缩**:所有的包经过压缩,使用 squashfs,体积最多减少 60%。 +- **便携模式**:如果一个便携 ORB 应用是从可移动设备运行的,它会把所有设置和数据存储在那之上。 +- **安全**:所有的 ORB 包使用 PGP/RSA 签名,通过 TLS 1.2 分发。 +- **离线**:所有的依赖都打包进软件包,所以不再需要下载依赖。 +- **开放包**:ORB 包可以作为 ISO 镜像挂载。 + +### 种类 + +ORB 应用现在有两种类别: + +- 便携软件 +- SuperDEB + +#### 1. 便携 ORB 软件 + +便携 ORB 软件可以立即运行而不需要任何的事先安装。那意味着它不需要管理员权限和依赖!你可以直接从 Orbital Apps 网站下载下来就能使用。 + +并且由于它支持便携模式,你可以将它拷贝到U盘携带。它所有的设置和数据会和它一起存储在U盘。只需将U盘连接到任何运行 Ubuntu 16.04 的机器上就行了。 + +##### 可用便携软件 + +目前有超过 35 个软件以便携包的形式提供,包括一些十分流行的软件,比如:[Deluge][3],[Firefox][4],[GIMP][5],[Libreoffice][6],[uGet][7] 以及 [VLC][8]。 + +完整的可用包列表可以查阅 [便携 ORB 软件列表][9]。 + +##### 使用便携软件 + +按照以下步骤使用便携 ORB 软件: + +- 从 Orbital Apps 网站下载想要的软件包。 +- 将其移动到想要的位置(本地磁盘/U盘)。 +- 打开存储 ORB 包的目录。 + +![](http://itsfoss.com/wp-content/uploads/2016/05/using-portable-orb-app-1-1024x576.jpg) + +- 打开 ORB 包的属性。 + +![](http://itsfoss.com/wp-content/uploads/2016/05/using-portable-orb-app-2.jpg) +>给 ORB 包添加运行权限 + +- 在权限标签页添加运行权限。 +- 双击打开它。 + +等待几秒,让它准备好运行。大功告成。 + +#### 2. SuperDEB + +另一种类型的 ORB 软件是 SuperDEB。SuperDEB 很简单,交互式安装向导能够让软件安装过程顺利得多。如果你不喜欢从终端或软件中心安装软件,superDEB 就是你的菜。 + +最有趣的部分是你安装时不需要一个互联网连接,因为所有的依赖都由安装向导打包了。 + +##### 可用的 SuperDEB + +超过 60 款软件以 SuperDEB 的形式提供。其中一些流行的有:[Chromium][10],[Deluge][3],[Firefox][4],[GIMP][5],[Libreoffice][6],[uGet][7] 以及 [VLC][8]。 + +完整的可用 SuperDEB 列表,参阅 [SuperDEB 列表][11]。 + +##### 使用 SuperDEB 安装向导 + +- 从 Orbital Apps 网站下载需要的 SuperDEB。 +- 像前面一样给它添加**运行权限**(属性 > 权限)。 +- 双击 SuperDEB 安装向导并按下列说明操作: + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-1.png) +>点击 OK + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-2.png) +>输入你的密码并继续 + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-3.png) +>它会开始安装… + +![](http://itsfoss.com/wp-content/uploads/2016/05/Using-SuperDEB-Installer-4.png) +>一会儿他就完成了… + +- 完成安装之后,你就可以正常使用了。 + +### ORB 软件兼容性 + +从 Orbital Apps 可知,它们完全适配 Ubuntu 16.04 [64 bit]。 + +>阅读建议:[如何在 Ubuntu 获知你的是电脑 32 位还是 64 位的][12]。 + +至于其它发行版兼容性不受保证。但我们可以说,它在所有 Ubuntu 16.04 衍生版(UbuntuMATE,UbuntuGNOME,Lubuntu,Xubuntu 等)以及基于 Ubuntu 16.04 的发行版(比如即将到来的 Linux Mint 18)上都适用。我们现在还不清楚 Orbital Apps 是否有计划拓展它的支持到其它版本 Ubuntu 或 Linux 发行版上。 + +如果你在你的系统上经常使用便携 ORB 软件,你可以考虑安装 ORB 启动器。它不是必需的,但是推荐安装它以获取更佳的体验。最简短的 ORB 启动器安装流程是打开终端输入以下命令: + +``` +wget -O - https://www.orbital-apps.com/orb.sh | bash +``` + +你可以在[官方文档][13]找到更加详细的介绍。 + +### 如果我需要的软件不在列表里? + +如果你需要一个当前并没有可用 ORB 包的软件,你可以[联系][14] Orbital Apps。好消息是,Orbital Apps 正在致力于推出一个创建 ORB 包的工具。所以,不久后我们有希望可以自己制作 ORB 包! + +多说一句,这个文章是关于离线安装软件的。如果你感兴趣的话,你可以看看[如何离线更新或升级 Ubuntu][15]。 + +所以,你怎么看 Orbital Apps 的便携软件和 SuperDEB 安装向导?你会试试吗? + + +---------------------------------- +via: http://itsfoss.com/orb-linux-apps/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[Munif Tanjim][a] +译者:[alim0x](https://github.com/alim0x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:http://itsfoss.com/author/munif/ +[1]: http://itsfoss.com/cube-lets-install-linux-applications-offline/ +[2]: https://www.orbital-apps.com/ +[3]: https://www.orbital-apps.com/download/portable_apps_linux/deluge +[4]: https://www.orbital-apps.com/download/portable_apps_linux/firefox +[5]: https://www.orbital-apps.com/download/portable_apps_linux/gimp +[6]: https://www.orbital-apps.com/download/portable_apps_linux/libreoffice +[7]: https://www.orbital-apps.com/download/portable_apps_linux/uget +[8]: https://www.orbital-apps.com/download/portable_apps_linux/vlc +[9]: https://www.orbital-apps.com/download/portable_apps_linux/ +[10]: https://www.orbital-apps.com/download/superdeb_installers/ubuntu_16.04_64bits/chromium/ +[11]: https://www.orbital-apps.com/superdebs/ubuntu_16.04_64bits/ +[12]: http://itsfoss.com/32-bit-64-bit-ubuntu/ +[13]: https://www.orbital-apps.com/documentation +[14]: https://www.orbital-apps.com/contact +[15]: http://itsfoss.com/upgrade-or-update-ubuntu-offline-without-internet/ From da07e37c3ad6879ded414349f92ea69aab4b542e Mon Sep 17 00:00:00 2001 From: sarishinohara Date: Sat, 28 May 2016 19:21:02 +0200 Subject: [PATCH 566/582] translated --- ...LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md | 163 ----------------- ...LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md | 172 ++++++++++++++++++ 2 files changed, 172 insertions(+), 163 deletions(-) delete mode 100644 sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md create mode 100644 translated/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md diff --git a/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md b/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md deleted file mode 100644 index 9e3e630282..0000000000 --- a/sources/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md +++ /dev/null @@ -1,163 +0,0 @@ -translating by sarishinohara - -BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016 -============================================= - -![](http://itsfoss.com/wp-content/uploads/2016/05/Best-Linux-Photo-Management-Software.jpg) - -When it comes to Linux applications, at times there are so many choices and alternatives. But sometimes there are only a few options. - -One of our readers had requested to make a list of decent **Linux photo management software**. Something that could replace now defunct Picasa on Linux. - -Turns out, though not many, there are some really good applications for managing photo libraries available out there. Either you have a huge collection of photos or only a few of them, one of these options ought to suit your needs. - -This list of **best photo management applications for Linux** is different from our earlier list of [best photo applications for Linux][1]. That list contained image related applications for various purposes such as editing, painting etc., while this list deals with only photo managing applications. - -So, here we go. I’ve also included the installation commands of these applications for Ubuntu and its derivatives. All you need to do is open a terminal and run those. - -### [GTHUMB](https://wiki.gnome.org/Apps/gthumb) - -![](http://itsfoss.com/wp-content/uploads/2016/05/gThumb-1-1024x540.jpg) ->gThumb Photo Editing - -gThumb is a lightweight photo management application built mainly for GNOME desktop environment. It includes all the basic photo management features as well as some editing and advance operations. Some of the main features of gThumb are: - -- Image Viewer: Supports all the major image format (including GIF) and metadata (EXIF, XMP etc). -- Image Browser: All the basic browsing operations (thumbnails, move, copy, delete etc) and bookmarking support. -- Image Organizer: Organize photos with tags, catalogs and Libraries. Importing photos from Digital Cameras. Web albums (Picasa, Flickr, Facebook etc) integration. -- Image Editor: Basic photo editing operations, filters, format conversion etc. - -And there’s much more, check the official [gThumb feature][2] list. If you use GNOME or GNOME based desktop environments (like MATE) you should definitely try this one out. - -#### GTHUMB INSTALLATION - -``` -sudo apt-get install gthumb -``` - - -### [DIGIKAM][3] - -![](http://itsfoss.com/wp-content/uploads/2016/05/digiKam-1-1024x540.png) ->digiKam - -digiKam is mainly developed for KDE, but works just as well on other desktop environments. It comes with a lot of features with an interface that works nicely. The main features of digiKam includes: - -- Photo Organizer: Albums, sub-albums, tags, comments, metadata, sorting support. -- Photo Importer: Import support from Digital Cameras, USB devices, Web Albums (including Picasa & Facebook) and some other features. -- Photo Exporter: Export support for various online platforms and format conversion. -- Photo Editor: Wide range of photo editing operations. - -digiKam is certainly one of the best Linux photo management software, if not best. - -#### DIGIKAM INSTALLATION - -``` -sudo apt-get install digikam -``` - -### [SHOTWELL][4] - -![](http://itsfoss.com/wp-content/uploads/2016/05/Shotwell-1-1024x540.png) ->Shotwell - -Shotwell photo manager is also for GNOME desktop environment. Shotwell, while isn’t as feature-rich as gThumb, does what it promises. The main features of Shotwell are: - -- Import photos from Disks or Digital Cameras. -- Event, tags and folder based organization. -- Basic photo editing features and format conversion. -- Supports uploading to web services (Facebook, Flickr, Tumblr etc). - -If you want something simple, you can check this one out. - -#### SHOTWELL INSTALLATION - -``` -sudo apt-get install shotwell -``` - -### [KPHOTOALBUM][5] - -![](http://itsfoss.com/wp-content/uploads/2016/05/KPhotoAlbum-1-1024x540.png) ->KPhotoAlbum - -KPhotoAlbum is a photo management application also intended to be used on [KDE desktop environment][6]. What makes KPhotoAlbum unique is its categorization process and time-based browsing. You can categorize photos by People, Places, Events etc. And for time-based browsing, it has a dedicated timeline or Date Bar at the bottom of the user interface. - -KPhotoAlbum comes with a wide range of features for photo management and editing. Some of the main features include: - -- Advance photo organization (with categories, sub-categories, tags, metadata, annotation support and much more). -- Wide range of import and export options (including almost every major photo sharing platforms). -- Various editing options (includes batch operations). - -All these advanced organization features do have their downsides – user has to do most of them manually. But if you’re a KDE lover, this can be a good pick. You can use KPhotoAlbum on other desktop environments too, but it delivers the optimal experience on KDE. - -#### KPHOTOALBUM INSTALLATION - -``` -sudo apt-get install kphotoalbum -``` - -### [DARKTABLE][7] - -![](http://itsfoss.com/wp-content/uploads/2016/05/darktable-1-1024x540.png) ->Darktable - -Darktable is more of a photo editing application than an organizer. Darktable stands out for its own user interface regardless of the desktop environment you might be using, and of course for its editing capabilities. The basic features include: - -- Basic photo organization. -- Advance and feature-rich photo editing. -- Export support for Picasa & Flickr and format conversion. - -If you’re into photo editing and retouching, Darktable is a nice choice. - -> Reading Suggestion: [How to install Darktable 2.0 in Ubuntu via PPA][8] - -#### DARKTABLE INSTALLATION - -``` -sudo add-apt-repository ppa:pmjdebruijn/darktable-release -sudo apt-get update -sudo apt-get install darktable -``` - -### OTHERS - -If you want a simple application for pulling images from your portable devices (cameras, phones, portable drives etc) and storing them on your Hard Disk, using [Rapid Photo Downloader][9] is a no-brainer. It is an incredible application for importing and backing up photos from portable devices. The installation and configuration process is quite easy and simple. - -For installing Rapid Photo Downloader on Ubuntu, fire up a terminal and run this command: - -``` -sudo apt-get install rapid-photo-downloader -``` - -If you are still interested in trying a few more options, here you go: - -- [GNOME Photos][10] (Photo viewer for GNOME desktop environment) -- [Gwenview][11] (Photo viewer for KDE desktop environment) -- [Picty][12] (Open-source photo collection manager) - -So, are you using, or plan to use, any one of these applications? Which, according to you is the best photo management application for Ubuntu or any other Linux? Do you have any favorites to term as Linux photo manager? Do share your views. - - ----------- -via: http://itsfoss.com/linux-photo-management-software/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 - -作者:[Munif Tanjim][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: http://itsfoss.com/author/munif/ -[1]: http://itsfoss.com/image-applications-ubuntu-linux/ -[2]: https://wiki.gnome.org/Apps/gthumb/features -[3]: https://www.digikam.org/ -[4]: https://wiki.gnome.org/Apps/Shotwell -[5]: https://www.kphotoalbum.org/ -[6]: https://www.kde.org/ -[7]: http://www.darktable.org/ -[8]: http://itsfoss.com/darktable-20-released-installation-ppa/ -[9]: http://www.damonlynch.net/rapid/index.html -[10]: https://wiki.gnome.org/Apps/Photos -[11]: https://userbase.kde.org/Gwenview -[12]: https://github.com/spillz/picty diff --git a/translated/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md b/translated/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md new file mode 100644 index 0000000000..24cb248921 --- /dev/null +++ b/translated/tech/20160526 BEST LINUX PHOTO MANAGEMENT SOFTWARE IN 2016.md @@ -0,0 +1,172 @@ +2016年最佳 Linux 图像管理软件 +============================================= + +![](http://itsfoss.com/wp-content/uploads/2016/05/Best-Linux-Photo-Management-Software.jpg) + +通常谈及 Linux 上的应用程序时,我们有很多选择,但有时候选择的余地却很小。 + +有一些读者要我们做一个合宜的**图像管理软件**列表,来代替 Linux 上已被弃用的 Picasa 应用。 + +其实 Linux 平台上还是有很多很好的图像管理软件的,你可以根据你图片库的大小选择合适的应用。 + +这个列表和我们先前的 [最佳图像程序应用][1] 有些差别,上次我们介绍了图像编辑软件,绘图软件等,而这次的介绍主要集中在图像管理软件上。 + +好,下面我们开始介绍。我会详细说明在 Ubuntu 下的安装命令以及衍生的命令,我们只需要打开终端运行这些命令。 + +### [GTHUMB](https://wiki.gnome.org/Apps/gthumb) + +![](http://itsfoss.com/wp-content/uploads/2016/05/gThumb-1-1024x540.jpg) +>gThumb 图像编辑器 + +gThumb 是在 GNOME 桌面环境下的一个轻量级的图像管理应用,它涵盖了基本图像管理功能,编辑图片以及更加高级的操作,gThumb 主要功能如下: + +- 图片查看:支持所有主流的图片格式(包括gif)和元数据(EXIF, XMP 等)。 + +- 图片浏览:所有基础的浏览操作(缩略图,移动,复制,删除等)以及书签支持。 + +- 图片管理:使用标签操作图片,目录和图片库。从数码相机,网络相册(Picasa,Flickr,Facebook等)整合,导入图片。 + +- 图片编辑:基本图像编辑操作,滤镜,格式转换等。 + +- 更多功能请参考官方 [gThumb功能][2] 列表。如果你使用的是 GNOME 或者基于 GNOME 的桌面环境(如 MATE),那么你一定要试用一下。 + +#### GTHUMB 安装 + +``` +sudo apt-get install gthumb +``` + + +### [DIGIKAM][3] + +![](http://itsfoss.com/wp-content/uploads/2016/05/digiKam-1-1024x540.png) +>digiKam + +digiKam 主要为 KDE 而设计,在其他桌面环境下也可以使用。它有很多很好的图像界面功能,主要功能如下所示: + +- 图片管理:相册,子相册,标签,评论,元数据,排序支持。 + +- 图片导入:支持从数码相机,USB设备,网络相册(包括 Picasa 和 Facebook)导入,以及另外一些功能。 + +- 图片输出:支持输出至很多网络在线平台,以及各式转换。 + +- 图片编辑:支持很多图像编辑的操作。 + +digiKam 是众多优秀图像管理软件之一。 + +#### DIGIKAM 安装 + +``` +sudo apt-get install digikam +``` + +### [SHOTWELL][4] + +![](http://itsfoss.com/wp-content/uploads/2016/05/Shotwell-1-1024x540.png) +>Shotwell + +Shotwell 图像管理也是为 GNOME 桌面环境设计,虽然功能不及 gThumb 多,但满足了基本需求。主要功能如下: + +- 从磁盘或数码相机导入图片。 + +- 项目,标签和文件夹管理。 + +- 基本图片编辑功能和格式转换。 + +- 支持上传至网络平台(Facebook,Flickr,Tumblr 等)。 + +如果你想要一款功能相对简单的应用,你可以尝试一下这个。 + +#### SHOTWELL 安装 + +``` +sudo apt-get install shotwell +``` + +### [KPHOTOALBUM][5] + +![](http://itsfoss.com/wp-content/uploads/2016/05/KPhotoAlbum-1-1024x540.png) +>KPhotoAlbum + +KPhotoAlbum 是一款在 KDE 桌面环境下的图像管理应用。它有一些独特的功能:分类和基于时间浏览。你可以基于人物,地点,时间分类;另外在用户图形界面底部会显示时间栏。 + +KPhotoAlbum 有很多图像管理和编辑功能,主要功能包括: + +- 高级图片操作(目录,子目录,标签,元数据,注释等)。 + +- 图片导入导出功能(包括主流图片分享平台)。 + +- 众多编辑功能(包括批量处理)。 + +这些高级的功能有它们的缺点,就是用户需要手工操作。但如果你是KDE爱好者,这是个好的选择。它完美适用 KDE,但是你也可以在非 KDE 桌面环境下使用 KPhotoAlbum。 + +#### KPHOTOALBUM 安装 + +``` +sudo apt-get install kphotoalbum +``` + +### [DARKTABLE][7] + +![](http://itsfoss.com/wp-content/uploads/2016/05/darktable-1-1024x540.png) +>Darktable + +Darktable 相较于图像管理更偏向于图像编辑。Darktable 有良好的用户图形界面,对桌面环境没有特殊的要求,以及图像编辑功能。它的基本功能如下: + +- 基本图片管理。 + +- 众多高级的图片编辑功能。 + +- 支持导出至 Picasa 和 Flickr 和格式转换。 + +如果你喜欢照片编辑和润色,Darktable 是个好的选择。 + +> 推荐阅读:[怎样在Ubuntu下通过PPA安装Darktable 2.0][8] + +#### DARKTABLE 安装 + +``` +sudo add-apt-repository ppa:pmjdebruijn/darktable-release +sudo apt-get update +sudo apt-get install darktable +``` + +### 其它 + +如果你想要功能简单的应用,比如从便携设备(相机,手机,便携设备等)中导入照片并存入磁盘,使用 [Rapid Photo Downloader][9],它很适合从便携设备中导入和备份图片,而且安装配置过程简单。 + +在 Ubuntu 上安装 Rapid Photo Downloade,打开终端输入命令: + +``` +sudo apt-get install rapid-photo-downloader +``` + +如果你想尝试更多的选择: +- [GNOME Photos][10] (GNOME桌面环境下的图像查看器) +- [Gwenview][11] (KDE桌面环境下的图像查看器) +- [Picty][12] (开源图像管理器) + +那么,你正在使用,或者打算使用其中一款应用吗?你有其它更好的推荐吗?你有最喜欢的 Linux 图像管理软件吗?分享你的观点。 + +---------- +via: http://itsfoss.com/linux-photo-management-software/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[Munif Tanjim][a] +译者:[sarishinohara](https://github.com/sarishinohara) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/munif/ +[1]: http://itsfoss.com/image-applications-ubuntu-linux/ +[2]: https://wiki.gnome.org/Apps/gthumb/features +[3]: https://www.digikam.org/ +[4]: https://wiki.gnome.org/Apps/Shotwell +[5]: https://www.kphotoalbum.org/ +[6]: https://www.kde.org/ +[7]: http://www.darktable.org/ +[8]: http://itsfoss.com/darktable-20-released-installation-ppa/ +[9]: http://www.damonlynch.net/rapid/index.html +[10]: https://wiki.gnome.org/Apps/Photos +[11]: https://userbase.kde.org/Gwenview +[12]: https://github.com/spillz/picty From 591fa82e100b2efa01677b84465490dd0c70c7db Mon Sep 17 00:00:00 2001 From: mudongliang Date: Sun, 29 May 2016 00:51:52 -0400 Subject: [PATCH 567/582] translated --- ...to Best Manage Encryption Keys on Linux.md | 100 +++++++++--------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md index e09f88db3e..b833d94658 100644 --- a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md +++ b/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md @@ -1,110 +1,108 @@ -mudongliang translating -How to Best Manage Encryption Keys on Linux +Linux 如何最好地管理加密密钥 ============================================= ![](http://www.linux.com/images/stories/41373/key-management-diagram.png) -Storing SSH encryption **keys** and memorizing passwords can be a headache. But unfortunately in today's world of malicious hackers and exploits, basic security precautions are an essential practice. For a lot of general users, this amounts to simply memorizing passwords and perhaps finding a good program to store the passwords, as we remind such users not to use the same password for every site. But for those of us in various IT fields, we need to take this up a level. We have to deal with encryption keys such as SSH keys, not just passwords. +存储 SSH 的加密秘钥以及记住密码一直是一个让人头疼的问题。但是不幸的是,在当前充满了恶意黑客和攻击的世界中,基本的安全预警是必不可少的。对于大量的普通用户,它相当于简单地记住密码,也可能寻找一个好程序去存储密码,正如我们提醒这些用户不要在每个网站都有相同的密码。但是对于在各个 IT 领域的我们,我们需要将这个提高一个层次。我们不得不处理加密秘钥,比如 SSH 密钥,而不只是密码。 -Here's a scenario: I have a server running on a cloud that I use for my main git repository. I have multiple computers I work from. All of those computers need to log into that central server to push to and pull from. I have git set up to use SSH. When git uses SSH, git essentially logs into the server in the same way you would if you were to launch a command line into the server with the SSH command. In order to configure everything, I created a config file in my .ssh directory that contains a Host entry providing a name for the server, the host name, the user to log in as, and the path to a key file. I can then test this configuration out by simply typing the command +设想一个场景:我有一个运行在云上的服务器,用于我的主 git 库。我有很多台工作电脑。所有电脑都需要登陆中央服务器去 push 与 pull。我设置 git 使用 SSH。当 git 使用 SSH, git 实际上以相同的方式登陆服务器,就好像你通过 SSH 命令打开一个服务器的命令行。为了配置所有内容,我在我的 .ssh 目录下创建一个配置文件,其中包含一个有服务器名字,主机名,登陆用户,密钥文件的路径的主机项。之后我可以通过输入命令来测试这个配置。 >ssh gitserver -And soon I'm presented with the server's bash shell. Now I can configure git to use this same entry to log in with the stored key. Easy enough, except for one problem: For each computer I use to log into that server, I need to have a key file. That means more than one key file floating around. I have several such keys on this computer, and several such keys on my other computers. In the same way everyday users have a gazillion passwords, it's easy for us IT folks to end up with a gazillion key files. What to do? +很快我得到了服务器的 bash shell。现在我可以配置 git 使用相同项与存储的密钥来登陆服务器。很简单,除了一个问题,对于每一个我用于登陆服务器的电脑,我需要有一个密钥文件。那意味着需要不止一个密钥文件。当前这台电脑和我的其他电脑都存储有这些密钥文件。同样的,用户每天有特大量的密码,对于我们 IT人员,很容易结束这特大量的密钥文件。怎么办呢? -## Cleaning Up +## 清理 -Before starting out with a program to help you manage your keys, you have to lay some groundwork on how your keys should be handled, and whether the questions we're asking even make sense. And that requires first and foremost that you understand where your public keys go and where your private keys go. I'm going to assume you know: +在开始使用程序去帮助你管理你的密钥之前,你不得不在你的密码应该怎么处理和我们问的问题是否有意义这两个方面打下一些基础。同时,这需要第一,也是最重要的,你明白你的公钥和私钥的使用位置。我将设想你知道: + +1. 公钥和私钥之间的差异; -1. The difference between a public key and private key +2. 为什么你不可以从公钥生成私钥,但是你可以逆向生成? -2. Why you can't generate a private key from a public key but you can do the reverse +3. `authorized_keys` 文件的目的以及它的内容; -3. The purpose of the authorized_keys file and what goes in it +4. 你如何使用私钥去登陆服务器,其中服务器上的 `authorized_keys` 文件中存有相应的公钥; -4. How you use private keys to log into a server that has the corresponding public key in its authorized_keys file. +这里有一个例子。当你在亚马逊的网络服务上创建一个云服务器,你必须提供一个 SSH 密码,用于连接你的服务器。每一个密钥有一个公开的部分,和私密的部分。因为你想保持你的服务器安全,乍看之下你可能要将你的私钥放到服务器上,同时你自己带着公钥。毕竟,你不想你的服务器被公开访问,对吗?但是实际上这是逆向的。 -Here's an example. When you create a cloud server on Amazon Web Services, you have to provide an SSH key that you'll use for connecting to your server. Each key has a public part and a private part. Because you want your server to stay secure, at first glance it might seem you put the private key onto that server, and that you take the public key with you. After all, you don't want that server to be publicly accessible, right? But that's actually backwards. +你把自己的公钥放到 AWS 服务器,同时你持有你自己的私钥用于登陆服务器。你保护私钥,同时保持私钥在自己一方,而不是在一些远程服务器上,正如上图中所示。 -You put the public key on the AWS server, and you hold onto your private key for logging into the server. You guard that private key and keep it by your side, not on some remote server, as shown in the figure above. +原因如下:如果公钥公之于众,他们不可以登陆服务器,因为他们没有私钥。进一步说,如果有人成功攻入你的服务器,他们所能找到的只是公钥。你不可以从公钥生成私钥。同时如果你在其他的服务器上使用相同的密钥,他们不可以使用它去登陆别的电脑。 -Here's why: If the public key were to become known to others, they wouldn't be able to log into the server since they don't have the private key. Further, if somebody did manage to break into your server, all they would find is a public key. You can't generate a private key from a public key. And so if you're using that same key on other servers, they wouldn't be able to use it to log into those other computers. +这就是为什么你把你自己的公钥放到你的服务器上以便通过 SSH 登陆这些服务器。你持有这些私钥,不要让这些私钥脱离你的控制。 -And that's why you put your public key on your servers for logging into them through SSH. The private keys stay with you. You don't let those private keys out of your hands. +但是还有麻烦。试想一下我 git 服务器的例子。我要做一些决定。有时我登陆架设在别的地方的开发服务器。在开发服务器上,我需要连接我的 git 服务器。如何使我的开发服务器连接 git 服务器?通过使用私钥。同时这里面还有麻烦。这个场景需要我把私钥放置到一个架设在别的地方的服务器上。这相当危险。 -But there's still trouble. Consider the case of my git server. I had some decisions to make. Sometimes I'm logged into a development server that's hosted elsewhere. While on that dev box, I need to connect to my git server. How can the dev box connect to the git server? By using the private key. And therein lies trouble. This scenario requires I put a private key on a server that is hosted elsewhere, which is potentially dangerous. +一个进一步的场景:如果我要使用一个密钥去登陆许多的服务器,怎么办?如果一个入侵者得到这个私钥,他或她将拥有私钥,并且得到服务器的全部虚拟网络的权限,同时准备做一些严重的破坏。这一点也不好。 -Now a further scenario: What if I were to use a single key to log into multiple servers? If an intruder got hold of this one private key, he or she would have that private key and gain access to the full virtual network of servers, ready to do some serious damage. Not good at all. +同时那当然会带来一个别的问题,我真的应该在这些其他服务器上使用相同的密钥?因为我刚才描述的,那会非常危险的。 -And that, of course, brings up the other question: Should I really use the same key for those other servers? That's could be dangerous because of what I just described. +最后,这听起来有些混乱,但是有一些简单的解决方案。让我们有条理地组织一下: -In the end, this sounds messy, but there are some simple solutions. Let's get organized. +(注意你有很多地方需要密钥登陆服务器,但是我提出这个作为一个场景去向你展示当你处理密钥的时候你面对的问题) -(Note that there are many places you need to use keys besides just logging into servers, but I'm presenting this as one scenario to show you what you're faced with when dealing with keys.) +## 关于口令句 -## Regarding Passphrases +当你创建你的密钥时,你可以选择是否包含一个口令字,这个口令字会在使用私钥的时候是必不可少的。有了这个口令字,私钥文件本身会被口令字加密。例如,如果你有一个公钥存储在服务器上,同时你使用私钥去登陆服务器的时候,你会被提示,输入口令字。没有口令字,这个密钥是无法使用的。或者,你可以配置你的密钥不需要口令字。然后所有你需要的只是用于登陆服务器的密钥文件。 -When you create your keys, you have the option to include a passphrase that is required when using the private key. With this passphrase, the private key file itself is encrypted using the passphrase. For example, if you have a public key stored on a server and you use the private key to log into that server, you'll be prompted to enter a passphrase. Without the passphrase, the key cannot be used. Alternatively, you can configure your key without a passphrase to begin with. Then all you need is the key file to log into the server. +普遍上,不使用口令字对于用户来说是更容易的,但是我强烈建议在很多情况下使用口令字,原因是,如果私钥文件被偷了,偷密钥的人仍然不可以使用它,除非他或者她可以找到口令字。在理论上,这个将节省你很多时间,因为你可以在攻击者发现口令字之前,从服务器上删除公钥文件,从而保护你的系统。还有一些别的原因去使用口令字,但是这个原因对我来说在很多场合更有价值。(举一个例子,我的 Android 平板上有 VNC 软件。平板上有我的密钥。如果我的平板被偷了之后,我会马上从服务器上删除公钥,使得它的私钥没有作用,无论有没有口令字。)但是在一些情况下我不使用口令字,是因为我正在登陆的服务器上没有什么有价值的数据。它取决于情境。 -Generally going without a passphrase is easier on the users, but one reason I strongly recommend using the passphrase in many situations is this: If the private key file gets stolen, the person who steals it still can't use it until he or she is able to find out the passphrase. In theory, this will save you time as you remove the public key from the server before the attacker can discover the passphrase, thus protecting your system. There are other reasons to use a passphrase, but this one alone makes it worth it to me in many situations. (As an example, I have VNC software on an Android tablet. The tablet holds my private key. If my tablet gets stolen, I'll immediately revoke the public key from the server it logs into, rendering its private key useless, with or without the passphrase.) But in some cases I don't use it, because the server I'm logging into might not have much valuable data on it. It depends on the situation. +## 服务器基础设施 -## Server Infrastructure +你如何设置自己服务器的基础设置将会影响到你如何管理你的密钥。例如,如果你有很多用户登陆,你将需要决定每个用户是否需要一个单独的密钥。(普遍来说,他们应该;你不会想要用户之间共享私钥。那样当一个用户离开组织或者失去信任时,你可以删除那个用户的公钥,而不需要必须给其他人生成新的密钥。相似地,通过共享密钥,他们能以其他人的身份登录,这就更坏了。)但是另外一个问题,你如何配置你的服务器。你是否使用工具,比如 Puppet,配置大量的服务器?同时你是否基于你自己的镜像创建大量的服务器?当你复制你的服务器,你是否需要为每个人设置相同的密钥?不同的云服务器软件允许你配置这个;你可以让这些服务器使用相同的密钥,或者给每一个生成一个新的密钥。 -How you design your infrastructure of servers will impact how you manage your keys. For example, if you have multiple users logging in, you'll need to decide whether each user gets a separate key. (Generally speaking, they should; you don't want users sharing private keys. That way if one user leaves the organization or loses trust, you can revoke that user's key without having to generate new keys for everyone else. And similarly, by sharing keys they could log in as each other, which is also bad.) But another issue is how you're allocating your servers. Do you allocate a lot of servers using tools such as Puppet, for example? And do you create multiple servers based on your own images? When you replicate your servers, do you need to have the same key for each? Different cloud server software allows you to configure this how you choose; you can have the servers get the same key, or have a new one generated for each. +如果你在处理复制的服务器,它可能导致混淆如果用户需要使用不同的密钥登陆两个不同的系统。但是另一方面,服务器共享相同的密钥会有安全风险。或者,第三,如果你的密钥有除了登陆之外的需要(比如挂载加密的驱动),之后你会在很多地方需要相同的密钥。正如你所看到的,你是否需要在不同的服务器上使用相同的密钥不是我为你做的决定;这其中有权衡,而且你需要去决定什么是最好的。 -If you're dealing with replicated servers, it can get confusing if the users need to use different keys to log into two different servers that are otherwise similar. But on the other hand, there could be security risks by having the servers share the same keys. Or, on the third hand, if your keys are needed for something other than logging in (such as mounting an encrypted drive), then you would need the same key in multiple places. As you can see, whether you need to use the same keys across different servers is not a decision I can make for you; there are trade offs, and you need to decide for yourself what's best. +最终,你可能会有: -In the end, you're likely to have: +- 需要登录的多个服务器 -- Multiple servers that need to be logged into +- 多个用户登陆不同的服务器,每个都有自己的密钥 -- Multiple users logging into different servers, each with their own key +- 每个用户多个密钥当他们登陆不同的服务器的时候 -- Multiple keys for each user as they log into different servers. +(如果你正在别的情况下使用密钥,相同的普遍概念会应用于如何使用密钥,需要多少密钥,他们是否共享,你如何处理密钥的私密部分和公开部分。) -(If you're using keys in other situations, as you likely are, the same general concepts will apply regarding how keys are used, how many keys are needed, whether they're shared, and how you handle private and public parts of keys.) +## 安全方法 -## Method of safety +知道你的基础设施和独一无二的情况,你需要组合一个密钥管理方案,它会引导你去分发和存储你的密钥。比如,正如我之前提到的,如果我的平板被偷了,我会从我服务器上删除公钥,期望在平板在用于访问服务器。同样的,我会在我的整体计划中考虑以下内容: -Knowing your infrastructure and unique situation, you need to put together a key management plan that will help guide you on how you distribute and store your keys. For example, earlier I mentioned that if my tablet gets stolen, I will revoke the public key from my server, hopefully before the tablet can be used to access the server. As such, I can allow for the following in my overall plan: +1. 移动设备上的私钥没有问题,但是必须包含口令字; -1. Private keys are okay on mobile devices, but they must include a passphrase +2. 必须有一个方法可以快速地从服务器上删除公钥。 -2. There must exist a way to quickly revoke public keys from a server. +在你的情况中,你可能决定,你不想在自己经常登录的系统上使用口令字;比如,这个系统可能是一个开发者一天登录多次的测试机器。这没有问题,但是你需要调整你的规则。你可能添加一条规则,不可以通过移动设备登录机器。换句话说,你需要根据自己的状况构建你的协议,不要假设某个方案放之四海而皆准。 -In your situation, you might decide you just don't want to use passphrases for a system you log into regularly; for example, the system might be a test machine that the developers log into many times a day. That's fine, but then you'll need to adjust your rules a bit. You might include a rule that that machine is not to be logged into from mobile devices. In other words, you need to build your protocols based on your own situation, and not assume one size fits all. +## 软件 -## Software +至于软件,毫不意外,现实世界中并没有很多好的,可用的软件解决方案去存储和管理你的私钥。但是应该有吗?考虑到这个,如果你有一个程序存储你所有服务器的全部密钥,并且这个程序被一个核心密钥锁住,那么你的密钥就真的安全了吗?或者,同样的,如果你的密钥被放置在你的硬盘上,用于 SSH 程序快速访问,那样一个密钥管理软件是否真正提供了任何保护吗? -On to software. Surprisingly, there aren't a lot of good, solid software solutions for storing and managing your private keys. But should there be? Consider this: If you have a program storing all your keys for all your servers, and that program is locked down by a quick password, are your keys really secure? Or, similarly, if your private keys are sitting on your hard drive for quick access by the SSH program, is a key management software really providing any protection? +但是对于整体基础设施和创建,管理公钥,有许多的解决方案。我已经提到了 Puppet。在 Puppet 的世界中,你创建模块来以不同的方式管理你的服务器。这个想法是服务器是动态的,而且不必要准确地复制其他机器。[这里有一个聪明的途径](http://manuel.kiessling.net/2014/03/26/building-manageable-server-infrastructures-with-puppet-part-4/),它在不同的服务器上使用相同的密钥,但是对于每一个用户使用不同的 Puppet 模块。这个方案可能适合你,也可能不适合你。 -But for overall infrastructure and creating and managing public keys, there are some solutions. I already mentioned Puppet. In the Puppet world, you create modules to manage your servers in different ways. The idea is that servers are dynamic and not necessarily exact duplicates of each other. [Here's one clever approach](http://manuel.kiessling.net/2014/03/26/building-manageable-server-infrastructures-with-puppet-part-4/) that uses the same keys on different servers, but uses a different Puppet module for each user. This solution may or may not apply to you. +或者,另一个选项就是完全换挡。在 Docker 的世界中,你可以采取一个不同的方式,正如[关于 SSH 和 Docker 博客](http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/)所描述的。 -Or, another option is to shift gears altogether. In the world of Docker, you can take a different approach, as described in [this blog regarding SSH and Docker](http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/). +但是怎么样管理私钥?如果你搜索,你无法找到很多的软件选择,原因我之前提到过;密钥存放在你的硬盘上,一个管理软件可能无法提到很多额外的安全。但是我确实使用这种方法来管理我的密钥: -But what about managing the private keys? If you search, you're not going to find many software options, for the reasons I mentioned earlier; the private keys are sitting on your hard drive, and a management program might not provide much additional security. But I do manage my keys using this method: +首先,我的 `.ssh/config` 文件中有很多的主机项。我有一个我登陆的主机项,但是有时我对于一个单独的主机有不止一项。如果我有很多登陆,那种情况就会发生。对于架设我的 git 库的服务器,我有两个不同的登陆项;一个限制于 git,另一个为普遍目的的 bash 访问。这个为 git 设置的登陆选项在机器上有极大的限制。还记得我之前说的关于我存在于远程开发机器上的 git 密钥吗?好了。虽然这些密钥可以登陆到我其中一个服务器,但是使用的账号是被严格限制的。 -First, I have multiple Host entries in my .ssh/config file. I have an entry for hosts that I log into, but sometimes I have more than one entry for a single host. That happens if I have multiple logins. I have two different logins for the server hosting my git repository; one is strictly for git, and the other is for general-purpose bash access. The one for git has greatly restricted rights on that machine. Remember what I said earlier about my git keys living on remote development machines? There we go. Although those keys can log into one of my servers, the accounts used are severely limited. +其次,大部分的私钥都包含口令字。(对于处理不得不多次输入口令字的情况,考虑使用 [ssh-agent](http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/)。) - Second, most of these private keys include a passphrase. (For dealing with having to type the passphrase multiple times, considering using [ssh-agent](http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/).) +再次,我确实有许多服务器,我想要更加小心地防御,并且在我 host 文件中并没有这样的项。这更加接近于社交工程方面,因为密钥文件还存在于那里,但是可能需要攻击者花费更长的时间去定位这个密钥文件,分析出来他们攻击的机器。在这些例子中,我只是手动打出来长的 SSH 命令。(这真不怎么坏。) -Third, I do have some servers that I want to guard a bit more carefully, and I don't have an entry into my Host file. This is more a social engineering aspect, because the key files are still present, but it might take an intruder a bit longer to locate the key file and figure out which machine they go with. In those cases, I just type out the long ssh command manually. (It's really not that bad.) +同时你可以看出来我没有使用任何特别的软件去管理这些私钥。 -And you can see that I'm not using any special software to manage these private keys. +## 无放之四海而皆准的方案 -## One Size Doesn't Fit All - -We occasionally get questions at linux.com for advice on good software for managing keys. But let's take a step back. The question actually needs to be re-framed, because there isn't a one-size-fits-all solution. The questions you ask should be based on your own situation. Are you simply trying to find a place to store your key files? Are you looking for a way to manage multiple users each with their own public key that needs to be inserted into the authorized_keys file? - -Throughout this article, I've covered the basics of how all this fits together, and hopefully at this point you'll see that how you manage your keys, and whatever software you look for (if you even need additional software at all), should happen only after you ask the right questions. +我们偶然间收到 linux.com 的问题,关于管理密钥的好软件的建议。但是让我们后退一步。这个问题事实上需要重新定制,因为没有一个普适的解决方案。你问的问题基于你自己的状况。你是否简单地尝试找到一个位置去存储你的密钥文件?你是否寻找一个方法去管理多用户问题,其中每个人都需要将他们自己的公钥插入到 `authorized_keys` 文件中? +通过这篇文章,我已经囊括了基础知识,希望到此你明白如何管理你的密钥,并且,只有当你问了正确的问题,无论你寻找任何软件(甚至你需要另外的软件),它都会出现。 ------------------------------------------------------------------------------ via: http://www.linux.com/learn/tutorials/838235-how-to-best-manage-encryption-keys-on-linux 作者:[Jeff Cogswell][a] -译者:[译者ID](https://github.com/译者ID) +译者:[mudongliang](https://github.com/mudongliang) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 693d7d6082bdcbeb7f30be4c1096bdb0d47fb5ef Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 29 May 2016 16:01:27 +0800 Subject: [PATCH 568/582] =?UTF-8?q?=E8=A1=A5=E5=AE=8C=20PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @mudongliang --- .../tech/20160218 How to Best Manage Encryption Keys on Linux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20160218 How to Best Manage Encryption Keys on Linux.md (100%) diff --git a/sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md b/translated/tech/20160218 How to Best Manage Encryption Keys on Linux.md similarity index 100% rename from sources/tech/20160218 How to Best Manage Encryption Keys on Linux.md rename to translated/tech/20160218 How to Best Manage Encryption Keys on Linux.md From 0f7c20db13b8fc60ff40c85c0be816b1e9acb2ca Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 29 May 2016 16:15:02 +0800 Subject: [PATCH 569/582] PUB:20160516 Open source from a recruiter's perspective MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @eriwoon 翻译的不错!文笔流畅,把握准确。 --- ...n source from a recruiter's perspective.md | 50 +++++++++++++++++++ ...n source from a recruiter's perspective.md | 49 ------------------ 2 files changed, 50 insertions(+), 49 deletions(-) create mode 100644 published/20160516 Open source from a recruiter's perspective.md delete mode 100644 translated/talk/20160516 Open source from a recruiter's perspective.md diff --git a/published/20160516 Open source from a recruiter's perspective.md b/published/20160516 Open source from a recruiter's perspective.md new file mode 100644 index 0000000000..31402662e2 --- /dev/null +++ b/published/20160516 Open source from a recruiter's perspective.md @@ -0,0 +1,50 @@ +猎头们怎么看开源 +============================================ + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BIZ_workplay.png?itok=uQqFssrf) + +2012 年时候,我出席了一个开源社区的聚会,打那之后我就喜欢上了这个行业。 + +我做猎头很多年,现在我在 [Greythorn][1] 公司专门从事大数据方向招聘。我自己之前学习了几个月大数据,可是当我参加了 [OSCON][2] 开源大会,才发现之前的学习多么低效率。OSCON 里聚集了非常多聪明的人,他们每个人都很愿意分享他们的心得。分享的原因不是他们想推销产品,纯粹是因为喜欢。 + +我很快意识到,与其说开源和大数据是一个行业,不如说他们是一个社区(community)。这也是为什么我现在特别想把我从开源中学到的东西分享给大家,特别是给那些刚刚踏入工作的新人。 + +### 为什么雇主喜欢开源贡献者(contributor) + +我的许多客户跟我说过:一个人的技术虽然重要,但真心**喜欢**自己从事的工作更重要。如果你热爱自己的工作,即便老板不给加班工资你都忍不住想加班。 + +我的客户也经常问,“这个人没事儿的时候写代码吗?”“我能在哪儿找到他们的作品呢?”“他们有什么爱好呀?”这时候开源社区贡献者的优势就出来了,因为上面的问题就是给他们量身定做的。他们做的项目开源,这就是他们编码能力的例证。 + +#### 为什么猎头在寻找开源贡献者 + +硬派科技行业猎头了解技术,知道自己在找一个什么样的人,这样的猎头也能正确的了解对象的技能。我发现,猎头们找到的最优秀的人才很多时候也在做开源,所以我们经常直接去开源社区寻找我们的目标。猎头们会告诉雇主,“我们找到的那个人喜欢和团队一起创造了不起的产品”,而这基本上是优秀雇主共同的要求。 + +所以说:如果你的项目目标是改变人类的未来,那当这些聪明人来到你的团队之后,他们自己就会爱上自己的工作。 + +### 开源贡献者如何得到更好的职业生涯呢 + +怎么让你的贡献更广为人知呢:把代码放到 Github 上;做开源项目;参加会议和研讨等等。做这些事情你会有意想不到的收获的。 + +可以尝试问一下自己: + +* **你觉得所在的公司是否回馈开源社区这件事重要吗?**很多优秀的人才都强调这一点,回馈社区也会极大的提升他们对工作本身的满意度。 +* **你在做产品是否基于开源软件?**基于开源软件的公司的文化氛围会与其他公司与众不同,这也是你选择职位时候需要考虑的问题。 +* **你有没有特别想与之工作的人?**虽然你可以随时换项目,但如果团队里有你崇拜或者欣赏的人,那工作就棒极了。 + +假如你了解自己的人生追求,那么过滤掉那些不适合你的职位就简单多了;假如你有一个相熟的猎头,那找到相合的雇主和团队的机会就大多了。 + +虽然我自己不写代码,但我会把我从开源社区中学到的东西分享给大家。开源社区是由一大群聪明又乐于分享的人组成,我很开心我也是其中小小的一份子。 + +------------------------------------------------------------------------------ + +via: https://opensource.com/business/16/5/open-source-recruiters-perspective + +作者:[Lindsey Thorne][a] +译者:[eriwoon](https://github.com/eriwoon) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/lindsey-thorne +[1]: http://www.greythorn.com/ +[2]: http://conferences.oreilly.com/oscon diff --git a/translated/talk/20160516 Open source from a recruiter's perspective.md b/translated/talk/20160516 Open source from a recruiter's perspective.md deleted file mode 100644 index 200b6ed48c..0000000000 --- a/translated/talk/20160516 Open source from a recruiter's perspective.md +++ /dev/null @@ -1,49 +0,0 @@ -ͷôԴ -============================================ - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/BIZ_workplay.png?itok=uQqFssrf) - -2012 ʱҳϯһԴľۻᣬ֮Ҿϲҵ - -ͷܶ꣬ [Greythorn][1] ˾רŴ´ݷƸԼ֮ǰѧϰ˼´ݣǵҲμ [OSCON][2] Դᣬŷ֮ǰѧϰôЧʡOSCON ۼ˷dzˣÿ˶ԸǵĵáԭƷΪϲ - -Һܿʶ˵Դʹһҵ˵һcommunityҲΪʲôرҴӿԴѧĶңرǸЩո̤빤ˡ - -### ΪʲôϲԴߣcontributor -ҵͻ˵һ˵ļȻҪϲԼµĹҪȰԼĹϰ岻Ӱ๤㶼̲סӰࡣ - -ҵĿͻҲʣû¶ʱд𣿡ĶҵǵƷأʲôѽʱԴߵƾͳˣΪǸġĿԴǵҲԴ - -#### ΪʲôͷѰҿԴ - -ӲɿƼҵͷ˽⼼֪ԼһʲôˣͷҲȷ˽ļܡҷ֣ͷҵ˲źܶʱҲԴǾֱȥԴѰǵĿꡣͷǻ߹ҵǸϲŶһ˲IJƷͬҪ - -˵ĿĿǸıδǵЩŶ֮ԼͻᰮԼĹ - -### Դεõõְҵ - -ôĹ׸Ϊ֪أѴŵGithubϣԴĿμӻֵȵȡЩ벻ջġ - -ԳһԼ - -* **ڵĹ˾ǷԴҪ**ܶ˲Ŷǿһ㣬ҲἫǶԹȡ -* **ƷǷڿԴ**ڿԴĹ˾ĻΧ˾ڲͬҲѡְλʱҪǵ⡣ -* **ûر֮ˣ**ȻʱĿŶݻ͵ˣǹͰˡ - -˽Լ׷ô˵Щʺְλͼ򵥶ˣһͷҵϵĹŶӵĻʹˡ - -ȻԼд룬һҴӿԴѧĶҡԴһȺڷɣҺܿҲССһӡ - ------------------------------------------------------------------------------- - -via: https://opensource.com/business/16/5/open-source-recruiters-perspective - -ߣ[Lindsey Thorne][a] -ߣ[eriwoon](https://github.com/eriwoon) -Уԣ[УID](https://github.com/УID) - - [LCTT](https://github.com/LCTT/TranslateProject) ԭ룬[Linuxй](https://linux.cn/) Ƴ - -[a]: https://opensource.com/users/lindsey-thorne -[1]: http://www.greythorn.com/ -[2]: http://conferences.oreilly.com/oscon From 2e93258a60db1b6af7436d3de799c11ef611b3a6 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 29 May 2016 17:15:38 +0800 Subject: [PATCH 570/582] PUB:20151202 A new Mindcraft moment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @zpl1025 这篇翻译的不错,不过我更想将华盛顿邮报那篇长文翻译过来 /cry --- published/20151202 A new Mindcraft moment.md | 46 +++++++++++++++++++ .../tech/20151202 A new Mindcraft moment.md | 43 ----------------- 2 files changed, 46 insertions(+), 43 deletions(-) create mode 100644 published/20151202 A new Mindcraft moment.md delete mode 100644 translated/tech/20151202 A new Mindcraft moment.md diff --git a/published/20151202 A new Mindcraft moment.md b/published/20151202 A new Mindcraft moment.md new file mode 100644 index 0000000000..cfb240e220 --- /dev/null +++ b/published/20151202 A new Mindcraft moment.md @@ -0,0 +1,46 @@ +又一次 Mindcraft 事件? +======================= + +Linux 内核开发很少吸引像华盛顿邮报这样主流媒体的关注,内核社区在安全方面进展的冗长功能列表就更少人看了。所以当[这样一个专题][1]发布到网上,就吸引了很多人的注意(LCTT 译注:华盛顿邮报发表了一篇很长的[专题文章][2],批评 Linux “没有一个系统性的机制以在骇客之前发现和解决安全问题,或引入更新的防御技术”,“Linux 内核开发社区没有一个首席安全官”等等)。关于这篇文章有不同的反应,很多人认为这是对 Linux 直接的攻击。文章背后的动机很难知道,但是从历史经验来看,它也可以看作对我们早就该前进的方向的一次非常必要的推动。 + +回顾一件昏暗遥远过去的事件 - 确切地说是在 1999 年 4 月。一家叫 Mindcraft 的分析公司发布了一份[报告][3]显示 Windows NT 在 Web 服务器开销方面完胜 Red Hat Linux 5.2 加 Apache。Linux 社区,包括当时还[很年轻的 LWN][4],对此反应很迅速而且强烈。这份报告是微软资助的 FUD 的一部分,用来消除那些全球垄断计划的新兴威胁。报告中所用的 Linux 系统有意配置成低性能,同时选择了当时 Linux 并不能很好支持的硬件,等等。 + +在大家稍微冷静一点后,尽管如此,事实很明显:Mindcraft 的人,不管什么动机,说的也有一定道理。当时 Linux 确实在性能方面存在一些已经被充分认识到的问题。然后社区做了最正确的事情:我们坐下来解决问题。比如,单独唤醒的调度器可以解决接受连接请求时的[惊群问题][5]。其他很多小问题也都解决了。在差不多一年里,内核在这类开销方面的性能已经有了非常大的改善。 + +这份 Mindcraft 的报告,某种意义上来说,往 Linux 屁股上踢了很有必要的一脚,推动整个社区去处理一些当时被忽略的事情。 + +华盛顿邮报的文章明显以负面的看法看待 Linux 内核以及它的贡献者。它随意地混淆了内核问题和其他根本不是内核脆弱性引起的问题(比如,AshleyMadison.com 被黑)。不过供应商没什么兴趣为他们的客户提供安全补丁的事实,就像一头在房间里巨象一样明显。还有谣言说这篇文章后面的黑暗势力希望打击一下 Linux 的势头。这些也许都是真的,但是也不能掩盖一个简单的事实,就是文章说的确实是真的。 + +我们会合理地测试并解决问题。而这些问题,不管是不是安全相关,能很快得到修复,然后再通过稳定更新的机制将这些补丁发布给内核用户。比起外面很多应用程序(自由的和商业的),内核的支持工作做的非常好。但是指责我们解决问题的能力时却遗漏了关键的一点:解决安全问题终究来说是一个打鼹鼠游戏。总是会出来更多的鼹鼠,其中有一些在攻击者发现并利用后很长时间我们都还不知道(所以没法使劲打下去)。尽管 Linux 的商业支持已经非常努力地在将补丁传递给用户,这种问题还是会让我们的用户很受伤 - 只是这并不是故意的。 + +关键是只是解决问题并不够,一些关心安全性的开发者也已经开始尝试做些什么。我们必须认识到,缺陷永远都解决不完,所以要让缺陷更难被发现和利用。这意思就是限制访问内核信息,绝对不允许内核执行用户空间内存中的指令,让内核去侦测整形溢出,以及 [Kee Cook 在十月底内核峰会的讲话][6]中所提出的其他所有事情。其中许多技术被其他操作系统深刻理解并采用了;另外一些需要我们去创新。但是,如果我们想充分保护我们的用户免受攻击,这些改变是必须要做的。 + +为什么内核还没有引入这些技术?华盛顿邮报的文章坚定地指责开发社区,特别是 Linus Torvalds。内核社区的传统就是相对安全性更侧重于性能和功能,在需要牺牲性能来改善内核安全性时并不愿意折衷处理。这些指责一定程度上是对的;好的一面是,因为问题的范围变得清晰,态度看上去有所改善。Kee 的演讲都听进去了,而且很明显让开发者开始思考和讨论这些问题了。 + +而被忽略的一点是,并不仅仅是 Linus 在拒绝有用的安全补丁。而是就没有多少这种补丁在内核社区里流传。特别是,在这个领域工作的开发者就那么些人,而且从没有认真地尝试把自己的工作整合到上游。要合并任何大的侵入性补丁,需要和内核社区一起工作,为这些改动编写用例,将改动分割成方便审核的碎片,处理审核意见,等等。整个过程可能会有点无聊而且让人沮丧,但这却是内核维护的运作方式,而且很明显只有这样才能在长时间的开发中形成更有用更可维护的内核。 + +几乎没有人会走这个流程来将最新的安全技术引入内核。对于这类补丁可能收到的不利反应,有人觉得也许会导致“寒蝉效应”,但是这个说法并不充分:不管最初的反应有多麻烦,多年以来开发者已经合并了大量的改动。而少数安全开发者连试都没试过。 + +他们为什么不愿意尝试?一个比较明显的答案是,几乎没有人会因此拿到报酬。几乎所有引入内核的工作都由付费开发者完成,而且已经持续多年。公司能看到利润的领域在内核里都有大量的工作以及很好的进展。而公司觉得和它们没关系的领域就不会这样了。为实时 Linux 的开发找到赞助支持的困难就是很明显的例子。其他领域,比如文档,也在慢慢萧条。安全性很明显也属于这类领域。可能有很多原因导致 Linux 落后于防御式安全技术,但是其中最关键的一条是,靠 Linux 赚钱的公司没有重视这些技术的开发和应用。 + +有迹象显示局面已有所转变。越来越多的开发人员开始关注安全相关问题,尽管对他们工作的商业支持还仍然不够。对于安全相关的改变已经没有之前那样的下意识反应了。像[内核自我保护项目][7]这样,已经开始把现有的安全技术集成进入内核了。 + +我们还有很长的路要走,但是,如果能有一些支持以及正确的观念,短期内就能有很大的进展。内核社区在确定了自己的想法后可以做到很让人惊叹的事情。幸运的是,华盛顿邮报的文章将有助于提供形成这种想法的必要动力。以历史的角度看,我们很可能会把这次事件看作一个转折点,我们最终被倒逼着去完成之前很明确需要做的事情。Linux 不应该再继续讲述这个安全不合格的故事了。 + +--------------------------- + +via: https://lwn.net/Articles/663474/ + +作者:Jonathan Corbet +译者:[zpl1025](https://github.com/zpl1025) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[1]: https://lwn.net/Articles/663338/ +[2]:http://www.washingtonpost.com/sf/business/2015/11/05/net-of-insecurity-the-kernel-of-the-argument/ +[3]: http://www.mindcraft.com/whitepapers/nts4rhlinux.html +[4]: https://static.lwn.net/1999/features/MindCraft1.0.php3 +[5]: https://en.wikipedia.org/wiki/Thundering_herd_problem +[6]: https://lwn.net/Articles/662219/ +[7]: https://lwn.net/Articles/663361/ \ No newline at end of file diff --git a/translated/tech/20151202 A new Mindcraft moment.md b/translated/tech/20151202 A new Mindcraft moment.md deleted file mode 100644 index 808124dec2..0000000000 --- a/translated/tech/20151202 A new Mindcraft moment.md +++ /dev/null @@ -1,43 +0,0 @@ -又一次 Mindcraft 事件? -======================= - -感谢:Jonathan Corbet - -Linux 内核开发很少吸引像华盛顿邮报这样主流媒体的关注,内核社区在安全方面进展的冗长功能列表就更少人看了。所以当这样一个功能发布到网上,就吸引了很多人的注意。关于这篇文章有不同的反应,很多人认为这是对 Linux 直接的攻击。文章背后的动机很难知道,但是从历史经验来看,它也可以看作对我们早就该前进的方向的一次非常必要的推动。 - -回顾一次在昏暗遥远过去的事件 - 确切地说是 1999 年 4 月。一家叫 Mindcraft 的分析公司发布了一份报告显示 Windows NT 在服务器开销方面完胜 Red Hat Linux 5.2 加 Apache。Linux 社区,包括当时还很年轻的 LWN,的反应很迅速而且强烈。这份报告是微软资助的 FUD 的一部分,用来消除那些全球垄断计划的新兴威胁。报告指出,Linux 系统有意配置成低性能,Linux 不支持当时的很多硬件,等等。 - -在大家稍微冷静一点后,尽管如此,事实很明显:Mindcraft 的人,不管什么动机,说的也有道理。当时 Linux 确实在性能方面存在一些已经被充分认识到的问题。然后社区做了最正确的事情:我们坐下来解决问题。比如,单独唤醒的调度器可以终结接受连接请求时的惊群问题。其他很多小问题也都解决了。在差不多一年里,内核在这类开销方面的性能已经有了非常大的改善。 - -这份 Mindcraft 的报告,某种意义上来说,往 Linux 背后踢了很有必要的一脚,推动整个社区去处理一些当时被忽略的事情。 - -华盛顿邮报的文章明显在鄙视 Linux 内核以及它的贡献者。它随意地混淆了内核问题和其他根本不是内核脆弱性引起的问题(比如,AshleyMadison.com 被黑)。不过供应商没什么兴趣为他们的客户提供安全补丁的事实,就像一头巨象在房间里跳舞一样明显。还有谣言说这篇文章后面的黑暗势力希望打击一下 Linux 的势头。这些也许都是真的,但是也不能掩盖一个简单的事实,就是文章说的确实是真的。 - -我们会合理地测试并解决问题。而问题,不管是不是安全相关,能很快得到修复,然后再通过稳定更新的机制将这些补丁发布给内核用户。比起外面很多应用程序(免费的和付费的),内核的支持非常好。但是指责我们解决问题的能力时却遗漏了关键的一点:解决安全问题最终是一个打鼹鼠游戏。总是会出来更多的鼹鼠,其中有一些在攻击者发现并利用后很长时间我们都还不知道(所以没法使劲打下去)。尽管商业 Linux 已经非常努力地在将补丁传递给用户,这种问题还是会让我们的用户很受伤 - 只是这并不是故意的。 - -关键是只是解决问题并不够,一些关心安全性的开发者也已经开始尝试。我们必须认识到,问题永远都解不完,所以要让问题更难被发现和利用。意思就是限制访问内核信息,绝对不允许内核执行用户空间内存的指令,指示内核侦测整数溢出,以及 Kee Cook 在十月底内核峰会的讲话中所提出的其他所有事情。其中许多技术被其他操作系统深刻理解并采用了;它们的创新也有我们的功劳。但是,如果我们想充分保护我们的用户免受攻击,这些改变是必须要做的。 - -为什么内核还没有引入这些技术?华盛顿邮报的文章坚定地指责开发社区,特别是 Linus Torvalds。内核社区的传统就是相对安全性更侧重于性能和功能,在需要牺牲性能来改善内核安全性时并不愿意折中处理。这些指责一定程度上是对的;好的一面是,因为问题的范围变得清晰,态度看上去有点改善。Kee 的演讲都听进去了,而且很明显让开发者开始思考和讨论这些问题。 - -而被忽略的一点是,并不仅仅是 Linus 在拒绝有用的安全补丁。而是就没有多少这种补丁在内核社区里流传。特别是,在这个领域工作的开发者就那么些人,而且从没有认真地尝试把自己的工作合并到上游。要合并任何大的侵入性补丁,需要和内核社区一起工作,为改动编写用例,将改动分割成方便审核的碎片,处理审核意见,等等。整个过程可能会有点无聊而且让人沮丧,但这却是内核维护的运作方式,而且很明显只有这样才能在长时间的开发中形成更有用更可维护的内核。 - -几乎没有人会走这个流程来将最新的安全技术引入内核。对于这类补丁可能收到的不利反应,有人觉得也许会导致“寒蝉效应”,但是这个说法并不充分:不管最初的反应有多麻烦,多年以来开发者已经合并了大量的改动。而少数安全开发者连试都没试过。 - -他们为什么不愿意尝试?一个比较明显的答案是,几乎没有人会因此拿到报酬。几乎所有引入内核的工作都由付费开发者完成,而且已经持续多年。公司能看到利润的领域在内核里都有大量的工作以及很好的进展。而公司觉得和它们没关系的领域就不会这样了。为实时开发找到赞助支持的困难就是很明显的例子。其他领域,比如文档,也在慢慢萧条。安全性很明显也属于这类领域。可能有很多原因导致 Linux 落后于防御式安全技术,但是其中最关键的一条是,靠 Linux 赚钱的公司没有重视这些技术的开发和应用。 - -有迹象显示局面已有所转变。越来越多的开发人员开始关注安全相关问题,尽管对他们工作的商业支持还仍然不够。对于安全相关的改变已经没有之前那样的下意识反应了。像内核自我保护项目这样,已经开始把现存的安全技术集成进入内核了。 - -我们还有很长的路要走,但是,如果能有一些支持以及正确的思想,短期内能有很大的进展。内核社区在确定了自己的想法后可以做到很让人惊叹的事情。幸运的是,华盛顿邮报的文章将有助于提供形成这种想法的必要动力。在历史的角度上,我们很可能会把这次事件看作一个转折点,我们最终被倒逼着去完成之前很明确需要做的事情。Linux 不应该再继续讲述这个安全不合格的故事了。 - ---------------------------- - -via: https://lwn.net/Articles/663474/ - -作者:Jonathan Corbet - -译者:[zpl1025](https://github.com/zpl1025) - -校对:[校对者ID](https://github.com/校对者ID) - - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From d67730971aaf29524caa9b49f97b5842309f1704 Mon Sep 17 00:00:00 2001 From: robot527 Date: Sun, 29 May 2016 21:31:40 +0800 Subject: [PATCH 571/582] Translated 20160218 Linux Systems Patched for Critical glibc Flaw (#4014) deleted: sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md new file: translated/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md --- ...Systems Patched for Critical glibc Flaw.md | 52 ------------------- ...Systems Patched for Critical glibc Flaw.md | 50 ++++++++++++++++++ 2 files changed, 50 insertions(+), 52 deletions(-) delete mode 100644 sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md create mode 100644 translated/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md diff --git a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md b/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md deleted file mode 100644 index 18559701b4..0000000000 --- a/sources/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md +++ /dev/null @@ -1,52 +0,0 @@ -robot527 translating - -Linux Systems Patched for Critical glibc Flaw -================================================= - -**Google exposed a critical flaw affecting major Linux distributions. The glibc flaw could have potentially led to remote code execution.** - -Linux users today are scrambling to patch a critical flaw in the core glibc open-source library that could be exposing systems to a remote code execution risk. The glibc vulnerability is identified as CVE-2015-7547 and is titled, "getaddrinfo stack-based buffer overflow." - -The glibc, or GNU C Library, is an open-source implementation of the C and C++ programming language libraries and is part of every major Linux distribution. Google engineers came across the CVE-2015-7547 issue when they were attempting to connect into a certain host system and a segmentation fault (segfault) occurred, causing the connection to crash. Further investigation revealed that glibc was at fault and the crash could potentially achieve an arbitrary remote code execution condition. - -"The glibc DNS client side resolver is vulnerable to a stack-based buffer overflow when the getaddrinfo() library function is used," Google wrote in a blog post. "Software using this function may be exploited with attacker-controlled domain names, attacker-controlled DNS [Domain Name System] servers, or through a man-in-the-middle attack." - -Actually exploiting the CVE-2015-7547 issue is not trivial, but it is possible. To prove that the issue can be exploited, Google has published proof-of-concept (PoC) code on GitHub that demonstrates if an end user or system is vulnerable. - -"The server code triggers the vulnerability and therefore will crash the client code," the GitHub PoC page states. - -Mark Loveless, senior security researcher at Duo Security, explained that the main risk of CVE-2015-7547 is to Linux client-based applications that rely on DNS responses. - -"There are some specific conditions, so not every single application will be impacted, but it appears that several command-line utilities, including the popular SSH [Secure Shell] client could trigger the flaw," Loveless told eWEEK. "We deem this serious mainly because of the existing risks to Linux systems, but also because of the potential for other issues." - -Other issues could potentially include a risk of an email-based attack that triggers the vulnerable glibc getaddrinfo() library call. Also of note is the fact that the vulnerability was in the code for years before it was discovered. - -Google's engineers were not the first or only group to discover the security risk in glibc. The issue was first reported to a glibc bug [tracker](https://sourceware.org/bugzilla/show_bug.cgi?id=1866) on July 13, 2015. The roots of the flaw go back even further with the actual code commit that introduced the flaw first in glibc 2.9, which was released in May 2008. - -Linux vendor Red Hat also independently was looking at the bug in glibc and on Jan. 6, 2016, Google and Red Hat developers confirmed that they had been independently working on the same vulnerability as part of the initial private discussion with upstream glibc maintainers. - -"Once it was confirmed that both teams were working on the same vulnerability, we collaborated on potential fixes, mitigations and regression testing," Florian Weimer, principal software engineer for product security at Red Hat, told eWEEK. "We also worked together to make the test coverage as wide as possible to catch any related problems in the code to help prevent future issues." - -It took years to discover that there was a security issue with the glibc code because that flaw isn't obvious or immediately apparent. - -"To diagnose bugs in a networking component, like a DNS resolver, it is common to look at packet traces which were captured while the issue was encountered," Weimer said. "Such packet captures were not available in this case, so some experimentation was needed to reproduce the exact scenario that triggered the bug." - -Weimer added that once the packet captures were available, considerable effort went into validating the fix, leading to a series of refinements culminating in the regression test suite that was contributed upstream to the glibc project. - -In many cases in Linux, the Security Enhanced Linux (SELinux) mandatory access security controls can mitigate the risk of potential vulnerabilities, but that's not the case with the new glibc issue. - -"The risk is a compromise of important system functionality due to the execution of arbitrary code supplied by an attacker," Weimer said. "A suitable SELinux policy can contain some of the damage an attacker might do and constrain their access to the system, but DNS is used by many applications and system components, so SELinux policies offer only limited containment for this issue." - -Alongside the vulnerability disclosure today, there is now a patch available to mitigate the potential risk of CVE-2015-7547. - ------------------------------------------------------------------------------- - -via: http://www.eweek.com/security/linux-systems-patched-for-critical-glibc-flaw.html - -作者:[Michael Kerner][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://twitter.com/TechJournalist diff --git a/translated/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md b/translated/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md new file mode 100644 index 0000000000..284ac99fa0 --- /dev/null +++ b/translated/tech/20160218 Linux Systems Patched for Critical glibc Flaw.md @@ -0,0 +1,50 @@ +修补 Linux 系统 glibc 严重漏洞 +================================================= + +**谷歌揭露的一个严重漏洞影响主流的 Linux 发行版。glibc 的漏洞可能导致远程代码执行。** + +Linux 用户今天都竞相给一个可以使系统暴露在远程代码执行风险中的核心 glibc 开放源码库的严重漏洞打补丁。glibc 的漏洞被确定为 CVE-2015-7547,题为“getaddrinfo 基于堆栈的缓冲区溢出”。 + +glibc,或 GNU C 库,是一个开放源码的 C 和 C++ 编程语言库的实现,是每一个主流 Linux 发行版的一部分。谷歌工程师们在他们试图连接到某个主机系统时发生了一个段错误导致连接崩溃,偶然发现了 CVE-2015-7547 问题。进一步的研究表明, glibc 有缺陷而且该崩溃可能实现任意远程代码执行的条件。 + +谷歌在一篇博客文章中写道, “当 getaddrinfo() 库函数被使用时,glibc 的 DNS 客户端解析器易受基于堆栈缓冲区溢出的攻击,使用该功能的软件可能被利用为攻击者控制的域名,攻击者控制的 DNS[域名系统] 服务器,或通过中间人攻击。” + +其实利用 CVE-2015-7547 问题并不简单,但它是可能的。为了证明这个问题能被利用,谷歌发布了论证一个终端用户或系统是否易受攻击的概念验证(POC)代码到 GitHub 上。 + +GitHub 上的 POC 网页声明“服务器代码触发漏洞,因此会使客户端代码崩溃”。 + +Duo Security 公司的高级安全研究员 Mark Loveless 解释说 CVE-2015-7547 的主要风险在于 Linux 上依赖于 DNS 响应的基于客户端的应用程序。 + +Loveless 告诉 eWEEK “需要一些特定的条件,所以不是每个应用程序都会受到影响,但似乎一些命令行工具,包括流行的 SSH[安全 Shell] 客户端都可能触发该漏洞,我们认为这是严重的,主要是因为对 Linux 系统存在的风险,但也因为潜在的其他问题。” + +其他问题可能包括一种触发调用易受攻击的 glibc 库 getaddrinfo() 的基于电子邮件攻击的风险。另外值得注意的是,该漏洞被发现之前已存在于代码之中多年。 + +谷歌的工程师不是第一或唯一发现 glibc 中的安全风险的团体。这个问题于 2015 年 7 月 13 日首先被报告给了 glibc 的 bug[跟踪系统](https://sourceware.org/bugzilla/show_bug.cgi?id=1866)。该缺陷的根源可以更进一步追溯到在 2008 五月发布的 glibc 2.9 的代码提交时首次引入缺陷。 + +Linux 厂商红帽也独立找到了 glibc 中的这个 bug,而且在 2016 年 1 月 6 日,谷歌和红帽开发人员证实,他们作为最初与上游 glibc 的维护者私下讨论的部分人员,已经独立在为同一个漏洞工作。 + +红帽产品安全首席软件工程师 Florian Weimer 告诉 eWEEK “一旦确认了两个团队都在为同一个漏洞工作,我们合作进行可能的修复,缓解措施和回归测试,我们还共同努力,使测试覆盖尽可能广,捕捉代码中的任何相关问题,以帮助避免今后更多问题。” + +由于缺陷不明显或不易立即显现,我们花了几年时间才发现 glibc 代码有一个安全问题。 + +Weimer 说“要诊断一个网络组件的漏洞,如 DNS 解析器,当遇到问题时通常要看被抓数据包的踪迹,在这种情况下这样的抓包不适用,所以需要一些实验来重现触发这个 bug 的确切场景。” + +Weimer 补充说,一旦可以抓取数据包,大量精力投入到验证修复程序中,最终导致回归测试套件一系列的改进,有助于上游 glibc 项目。 + +在许多情况下,安全增强式 Linux (SELinux) 的强制访问安全控制可以减少潜在漏洞风险,除了这个 glibc 的新问题。 + +Weimer 说“由于攻击者提供的任意代码的执行,风险是重要系统功能的一个妥协。一个合适的 SELinux 策略可以遏制一些攻击者可能会做的损害,并限制他们访问系统,但是 DNS 被许多应用程序和系统组件使用,所以 SELinux 策略只提供了针对此问题有限的遏制。” + +在揭露漏洞的今天,现在有一个可用的补丁来减少 CVE-2015-7547 的潜在风险。 + +------------------------------------------------------------------------------ + +via: http://www.eweek.com/security/linux-systems-patched-for-critical-glibc-flaw.html + +作者:[Michael Kerner][a] +译者:[robot527](https://github.com/robot527) +校对:[校对者 ID](https://github.com/校对者 ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux 中国](https://linux.cn/) 荣誉推出 + +[a]:https://twitter.com/TechJournalist From 820066b96f0fc195d6b12e8c6f77e582b9fc38c0 Mon Sep 17 00:00:00 2001 From: "Fuliang.Li" Date: Sun, 29 May 2016 23:56:40 +0800 Subject: [PATCH 572/582] =?UTF-8?q?=E5=85=88=E6=8F=90=E4=BA=A4=E5=B7=B2?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E9=83=A8=E5=88=86=EF=BC=8C=E8=A1=A8=E6=98=8E?= =?UTF-8?q?=E8=BF=98=E5=9C=A8=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ng and Linux Filesystem Troubleshooting.md | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md b/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md index 65a853bc84..199d65957e 100644 --- a/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md +++ b/sources/tech/LFCS/Part 10 - LFCS--Understanding and Learning Basic Shell Scripting and Linux Filesystem Troubleshooting.md @@ -1,52 +1,54 @@ -GHLandy Translating +LFCS 第十讲:学习简单的 Shell 脚本编程和文件系统故障排除 -Part 10 - LFCS: Understanding & Learning Basic Shell Scripting and Linux Filesystem Troubleshooting ================================================================================ -The Linux Foundation launched the LFCS certification (Linux Foundation Certified Sysadmin), a brand new initiative whose purpose is to allow individuals everywhere (and anywhere) to get certified in basic to intermediate operational support for Linux systems, which includes supporting running systems and services, along with overall monitoring and analysis, plus smart decision-making when it comes to raising issues to upper support teams. +Linux 基金会发起了 LFCS 认证 (Linux Foundation Certified Sysadmin, Linux 基金会认证系统管理员),这是一个全新的认证体系,主要目标是让全世界任何人都有机会考取认证。认证内容为 Linux 中间系统的管理,主要包括:系统运行和服务的维护、全面监控和分析的能力以及问题来临时何时想上游团队请求帮助的决策能力 ![Basic Shell Scripting and Filesystem Troubleshooting](http://www.tecmint.com/wp-content/uploads/2014/11/lfcs-Part-10.png) -Linux Foundation Certified Sysadmin – Part 10 +LFCS 系列第十讲 -Check out the following video that guides you an introduction to the Linux Foundation Certification Program. +请看以下视频,这里边介绍了 Linux 基金会认证程序。 注:youtube 视频 - + -This is the last article (Part 10) of the present 10-tutorial long series. In this article we will focus on basic shell scripting and troubleshooting Linux file systems. Both topics are required for the LFCS certification exam. +本讲是系列教程中的第十讲,主要集中讲解简单的 Shell 脚本编程和文件系统故障排除。这两块内容都是 LFCS 认证中的必备考点。 -### Understanding Terminals and Shells ### +### 理解终端 (Terminals) 和 Shell ### -Let’s clarify a few concepts first. +首先要声明一些概念。 -- A shell is a program that takes commands and gives them to the operating system to be executed. -- A terminal is a program that allows us as end users to interact with the shell. One example of a terminal is GNOME terminal, as shown in the below image. +- Shell 是一个程序,它将命令传递给操作系统来执行。 +- Terminal 也是一个程序,作为最终用户,我们需要使用它与 Shell 来交互。比如,下边的图片是 GNOME Terminal。 ![Gnome Terminal](http://www.tecmint.com/wp-content/uploads/2014/11/Gnome-Terminal.png) Gnome Terminal -When we first start a shell, it presents a command prompt (also known as the command line), which tells us that the shell is ready to start accepting commands from its standard input device, which is usually the keyboard. +启动 Shell 之后,会呈现一个命令提示符 (也称为命令行) 提示我们 Shell 已经做好了准备,接受标准输入设备输入的命令,这个标准输入设备通常是键盘。 -You may want to refer to another article in this series ([Use Command to Create, Edit, and Manipulate files – Part 1][1]) to review some useful commands. +你可以参考该系列文章的 [第一讲 使用命令创建、编辑和操作文件][1] 来温习一些常用的命令。 -Linux provides a range of options for shells, the following being the most common: +Linux 为提供了许多可以选用的 Shell,下面列出一些常用的: **bash Shell** -Bash stands for Bourne Again SHell and is the GNU Project’s default shell. It incorporates useful features from the Korn shell (ksh) and C shell (csh), offering several improvements at the same time. This is the default shell used by the distributions covered in the LFCS certification, and it is the shell that we will use in this tutorial. +Bash 代表 Bourne Again Shell,它是 GNU 项目默认的 Shell。它借鉴了 Korn shell (ksh) 和 C shell (csh) 中有用的特性,并同时对性能进行了提升。它同时也是 LFCS 认证中所涵盖的风发行版中默认 Shell,也是本系列教程将使用的 Shell。 **sh Shell** -The Bourne SHell is the oldest shell and therefore has been the default shell of many UNIX-like operating systems for many years. -ksh Shell +Bash Shell 是一个比较古老的 shell,一次多年来都是多数类 Unix 系统的默认 shell。 -The Korn SHell is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s. It is backward-compatible with the Bourne shell and includes many features of the C shell. +**ksh Shell** -A shell script is nothing more and nothing less than a text file turned into an executable program that combines commands that are executed by the shell one after another. +Korn SHell (ksh shell) 也是一个 Unix shell,是贝尔实验室 (Bell Labs) 的 David Korn 在 19 世纪 80 年代初的时候开发的。它兼容 Bourne shell ,并同时包含了 C shell 中的多数特性。 -### Basic Shell Scripting ### + +一个 shell 脚本仅仅只是一个可执行的文本文件,里边包含一条条可执行命令。 + +### 简单的 Shell 脚本编程 ### As mentioned earlier, a shell script is born as a plain text file. Thus, can be created and edited using our preferred text editor. You may want to consider using vi/m (refer to [Usage of vi Editor – Part 2][2] of this series), which features syntax highlighting for your convenience. @@ -292,7 +294,7 @@ If we’re only interested in finding out what’s wrong (without trying to fix Depending on the error messages in the output of fsck, we will know whether we can try to solve the issue ourselves or escalate it to engineering teams to perform further checks on the hardware. -### Summary ### +### 总结 ### We have arrived at the end of this 10-article series where have tried to cover the basic domain competencies required to pass the LFCS exam. @@ -305,7 +307,7 @@ If you have any questions or comments, they are always welcome – so don’t he via: http://www.tecmint.com/linux-basic-shell-scripting-and-linux-filesystem-troubleshooting/ 作者:[Gabriel Cánepa][a] -译者:[译者ID](https://github.com/译者ID) +译者:[GHLandy](https://github.com/GHLandy) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 From 9fac016cc2082bfc90d7ab3961961a31aeef9826 Mon Sep 17 00:00:00 2001 From: Bestony Date: Mon, 30 May 2016 21:06:14 +0800 Subject: [PATCH 573/582] Translating by Bestony (#4018) --- sources/tech/20160516 Scaling Collaboration in DevOps.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sources/tech/20160516 Scaling Collaboration in DevOps.md b/sources/tech/20160516 Scaling Collaboration in DevOps.md index ea1e193b96..bee9ab5415 100644 --- a/sources/tech/20160516 Scaling Collaboration in DevOps.md +++ b/sources/tech/20160516 Scaling Collaboration in DevOps.md @@ -1,3 +1,4 @@ +Translating by Bestony Scaling Collaboration in DevOps ================================= From 5b09fac9f8c711c0cd4374e4fe920eb040796a27 Mon Sep 17 00:00:00 2001 From: Dongliang Mu Date: Mon, 30 May 2016 09:45:04 -0400 Subject: [PATCH 574/582] remove useless line (#4017) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cfa5aee47e..e68f260b71 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,6 @@ LCTT的组成 - itsang, - JeffDing, - Yuking-net, - - MikeCoder, - zhangboyue, - liaoishere, From c39fc2017e27c25e78b72b32412819067e3de718 Mon Sep 17 00:00:00 2001 From: Ezio Date: Mon, 30 May 2016 22:08:10 +0800 Subject: [PATCH 575/582] =?UTF-8?q?20160530-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...P 2.0 Support for Nginx on Ubuntu 16.04.md | 302 ++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md diff --git a/sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md b/sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md new file mode 100644 index 0000000000..e6b143cc00 --- /dev/null +++ b/sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md @@ -0,0 +1,302 @@ +Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04 +===================================================================================== + + +The LEMP stack is an acronym which represents is a group of packages (Linux OS, Nginx web server, MySQL\MariaDB database and PHP server-side dynamic programming language) which are used to deploy dynamic web applications and web pages. + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Install-Nginx-with-FastCGI-on-Ubuntu-16.04.png) +>Install Nginx with MariaDB 10, PHP 7 and HTTP 2.0 Support on Ubuntu 16.04 + +This tutorial will guide you on how to install a LEMP stack (Nginx with MariaDB and PHP7) on Ubuntu 16.04 server. + +Requirements + +[Installation of Ubuntu 16.04 Server Edition][1] + +### Step 1: Install the Nginx Web Server + +#### 1. Nginx is a modern and resources efficient web server used to display web pages to visitors on the internet. We’ll start by installing Nginx web server from Ubuntu official repositories by using the [apt command line][2]. + +``` +$ sudo apt-get install nginx +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Install-Nginx-on-Ubuntu-16.04.png) +>Install Nginx on Ubuntu 16.04 + +#### 2. Next, issue the [netstat][3] and [systemctl][4] commands in order to confirm if Nginx is started and binds on port 80. + +``` +$ netstat -tlpn +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Check-Nginx-Network-Port-Connection.png) +>Check Nginx Network Port Connection + +``` +$ sudo systemctl status nginx.service +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Check-Nginx-Service-Status.png) +>Check Nginx Service Status + +Once you have the confirmation that the server is started you can open a browser and navigate to your server IP address or DNS record using HTTP protocol in order to visit Nginx default web page. + +``` +http://IP-Address +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Verify-Nginx-Webpage.png) +>Verify Nginx Webpage + +### Step 2: Enable Nginx HTTP/2.0 Protocol + +#### 3. The HTTP/2.0 protocol which is build by default in the latest release of Nginx binaries on Ubuntu 16.04 works only in conjunction with SSL and promises a huge speed improvement in loading web SSL web pages. + +To enable the protocol in Nginx on Ubuntu 16.04, first navigate to Nginx available sites configuration files and backup the default configuration file by issuing the below command. + +``` +$ cd /etc/nginx/sites-available/ +$ sudo mv default default.backup +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Backup-Nginx-Sites-Configuration-File.png) +>Backup Nginx Sites Configuration File + +#### 4. Then, using a text editor create a new default page with the below instructions: + +``` +server { + listen 443 ssl http2 default_server; + listen [::]:443 ssl http2 default_server; + + root /var/www/html; + + index index.html index.htm index.php; + + server_name 192.168.1.13; + + location / { + try_files $uri $uri/ =404; + } + + ssl_certificate /etc/nginx/ssl/nginx.crt; + ssl_certificate_key /etc/nginx/ssl/nginx.key; + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; + ssl_dhparam /etc/nginx/ssl/dhparam.pem; + ssl_session_cache shared:SSL:20m; + ssl_session_timeout 180m; + resolver 8.8.8.8 8.8.4.4; + add_header Strict-Transport-Security "max-age=31536000; + #includeSubDomains" always; + + + location ~ \.php$ { + include snippets/fastcgi-php.conf; + fastcgi_pass unix:/run/php/php7.0-fpm.sock; + } + + location ~ /\.ht { + deny all; + } + +} + +server { + listen 80; + listen [::]:80; + server_name 192.168.1.13; + return 301 https://$server_name$request_uri; +} +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Enable-Nginx-HTTP-2-Protocol.png) +>Enable Nginx HTTP 2 Protocol + +The above configuration snippet enables the use of `HTTP/2.0` by adding the http2 parameter to all SSL listen directives. + +Also, the last part of the excerpt enclosed in server directive is used to redirect all non-SSL traffic to SSL/TLS default host. Also, replace the `server_name` directive to match your own IP address or DNS record (FQDN preferably). + +#### 5. Once you finished editing Nginx default configuration file with the above settings, generate and list the SSL certificate file and key by executing the below commands. + +Fill the certificate with your own custom settings and pay attention to Common Name setting to match your DNS FQDN record or your server IP address that will be used to access the web page. + +``` +$ sudo mkdir /etc/nginx/ssl +$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt +$ ls /etc/nginx/ssl/ +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Generate-SSL-Certificate-and-Key.png) +>Generate SSL Certificate and Key for Nginx + +#### 6. Also, create a strong DH cypher, which was changed on the above configuration file on `ssl_dhparam` instruction line, by issuing the below command: + +``` +$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048 +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Create-Diffie-Hellman-Key.png) +>Create Diffie-Hellman Key + +#### 7. Once the `Diffie-Hellman` key has been created, verify if Nginx configuration file is correctly written and can be applied by Nginx web server and restart the daemon to reflect changes by running the below commands. + +``` +$ sudo nginx -t +$ sudo systemctl restart nginx.service +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Check-Nginx-Configuration.png) +>Check Nginx Configuration + +#### 8. In order to test if Nginx uses HTTP/2.0 protocol issue the below command. The presence of `h2` advertised protocol confirms that Nginx has been successfully configured to use HTTP/2.0 protocol. All modern up-to-date browsers should support this protocol by default. + +``` +$ openssl s_client -connect localhost:443 -nextprotoneg '' +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Test-Nginx-HTTP-2-Protocol.png) +>Test Nginx HTTP 2.0 Protocol + +### Step 3: Install PHP 7 Interpreter + +Nginx can be used with PHP dynamic processing language interpreter to generate dynamic web content with the help of FastCGI process manager obtained by installing the php-fpm binary package from Ubuntu official repositories. + +#### 9. In order to grab PHP7.0 and the additional packages that will allow PHP to communicate with Nginx web server issue the below command on your server console: + +``` +$ sudo apt install php7.0 php7.0-fpm +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Install-PHP-7-PHP-FPM-for-Ngin.png) +>Install PHP 7 and PHP-FPM for Ngin + +#### 10. Once the PHP7.0 interpreter has been successfully installed on your machine, start and check php7.0-fpm daemon by issuing the below command: + +``` +$ sudo systemctl start php7.0-fpm +$ sudo systemctl status php7.0-fpm +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Start-Verify-php-fpm-Service.png) +>Start and Verify php-fpm Service + +#### 11. The current configuration file of Nginx is already configured to use PHP FastCGI process manager in order to server dynamic content. + +The server block that enables Nginx to use PHP interpreter is presented on the below excerpt, so no further modifications of default Nginx configuration file are required. + +``` +location ~ \.php$ { + include snippets/fastcgi-php.conf; + fastcgi_pass unix:/run/php/php7.0-fpm.sock; + } +``` + +Below is a screenshot of what instructions you need to uncomment and modify is case of an original Nginx default configuration file. + + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Enable-PHP-FastCGI-for-Nginx.png) +>Enable PHP FastCGI for Nginx + +#### 12. To test Nginx web server relation with PHP FastCGI process manager create a PHP `info.php` test configuration file by issuing the below command and verify the settings by visiting this configuration file using the below address: `http://IP_or domain/info.php`. + +``` +$ sudo su -c 'echo "" |tee /var/www/html/info.php' +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Create-PHP-Info-File.png) +>Create PHP Info File + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Verify-PHP-FastCGI-Info.png) +>Verify PHP FastCGI Info + +Also check if HTTP/2.0 protocol is advertised by the server by locating the line `$_SERVER[‘SERVER_PROTOCOL’]` on PHP Variables block as illustrated on the below screenshot. + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Check-HTTP-2.0-Protocol-Info.png) +>Check HTTP 2.0 Protocol Info + +#### 13. In order to install extra PHP7.0 modules use the `apt search php7.0` command to find a PHP module and install it. + +Also, try to install the following PHP modules which can come in handy in case you are planning to [install WordPress][5] or other CMS. + +``` +$ sudo apt install php7.0-mcrypt php7.0-mbstring +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Install-PHP-7-Modules.png) +>Install PHP 7 Modules + +#### 14. To register the PHP extra modules just restart PHP-FPM daemon by issuing the below command. + +``` +$ sudo systemctl restart php7.0-fpm.service +``` + +### Step 4: Install MariaDB Database + +#### 15. Finally, in order to complete our LEMP stack we need the MariaDB database component to store and manage website data. + +Install MariaDB database management system by running the below command and restart PHP-FPM service in order to use MySQL module to access the database. + +``` +$ sudo apt install mariadb-server mariadb-client php7.0-mysql +$ sudo systemctl restart php7.0-fpm.service +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Install-MariaDB-for-Nginx.png) +>Install MariaDB for Nginx + +#### 16. To secure the MariaDB installation, run the security script provided by the binary package from Ubuntu repositories which will ask you set a root password, remove anonymous users, disable root login remotely and remove test database. + +Run the script by issuing the below command and answer all questions with yes. Use the below screenshot as a guide. + +``` +$ sudo mysql_secure_installation +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Secure-MariaDB-Installation-for-Nginx.png) +>Secure MariaDB Installation for Nginx + +#### 17. To configure MariaDB so that ordinary users can access the database without system sudo privileges, go to MySQL command line interface with root privileges and run the below commands on MySQL interpreter: + +``` +$ sudo mysql +MariaDB> use mysql; +MariaDB> update user set plugin=’‘ where User=’root’; +MariaDB> flush privileges; +MariaDB> exit +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/MariaDB-User-Permissions.png) +>MariaDB User Permissions + +Finally, login to MariaDB database and run an arbitrary command without root privileges by executing the below command: + +``` +$ mysql -u root -p -e 'show databases' +``` + +![](http://www.tecmint.com/wp-content/uploads/2016/05/Check-MariaDB-Databases.png) +>Check MariaDB Databases + +That’ all! Now you have a **LEMP** stack configured on **Ubuntu 16.04** server that allows you to deploy complex dynamic web applications that can interact with databases. + +-------------------------------------------------------------------------------- + +via: http://www.tecmint.com/install-nginx-mariadb-php7-http2-on-ubuntu-16-04/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+tecmint+%28Tecmint%3A+Linux+Howto%27s+Guide%29 + +作者:[Matei Cezar ][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://www.tecmint.com/author/cezarmatei/ +[1]: http://www.tecmint.com/installation-of-ubuntu-16-04-server-edition/ +[2]: http://www.tecmint.com/apt-advanced-package-command-examples-in-ubuntu/ +[3]: http://www.tecmint.com/20-netstat-commands-for-linux-network-management/ +[4]: http://www.tecmint.com/manage-services-using-systemd-and-systemctl-in-linux/ +[5]: http://www.tecmint.com/install-wordpress-using-lamp-or-lemp-on-rhel-centos-fedora/ From cae29dd5f6ab8ec7891e7fdedb391385852fd947 Mon Sep 17 00:00:00 2001 From: Dongliang Mu Date: Mon, 30 May 2016 11:21:20 -0400 Subject: [PATCH 576/582] proofread Linux File Permission (#4019) --- ... Getting to Know Linux File Permissions.md | 68 ++++++++----------- 1 file changed, 28 insertions(+), 40 deletions(-) diff --git a/translated/tech/20160218 Getting to Know Linux File Permissions.md b/translated/tech/20160218 Getting to Know Linux File Permissions.md index b38cef6f32..2730806d61 100644 --- a/translated/tech/20160218 Getting to Know Linux File Permissions.md +++ b/translated/tech/20160218 Getting to Know Linux File Permissions.md @@ -1,16 +1,15 @@ 初识Linux文件权限 ================================================================================ +在 Linux 中最基本的任务之一就是设置文件权限。理解如何实现是你进入 LInux 世界的第一步。如您所料,这一基本操作在类 UNIX 操作系统中大同小异。实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(甚至使用许多相同的工具)。 + ![](http://www.linux.com/images/stories/66866/files_a.png) -在Linux中最基本的任务就是设置文件权限。理解如何实现是你进入LInux世界的第一步。如您所料,这一基本操作在类UNIX操作系统中大同小异。 -实际上,Linux文件权限系统就直接取自UNIX文件权限(甚至使用许多相同的工具)。 - -但不要以为在学习第二种文件权限系统的时候你需要再次一点一点的学起。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。 +但不要以为理解文件权限需要长时间的学习。事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们。 ##基础概念 -首先你要知道文件权限适用于什么,如何有效的设置一个分组的权限。当你将其分解,那这个概念就真的简单多了。那到底什么是权限什么是分组呢。 +你要明白的第一件事是文件权限适用于什么。你做的更有效的就是设置一个分组的权限。当你将其分解,那这个概念就真的简单多了。那到底什么是权限,什么是分组呢? 你可以设置的3种权限: @@ -20,32 +19,31 @@ - 执行 — 允许该组执行(运行)文件(用`x`表示) -为了更好的解释为何是应用于一个分组,你可是尝试允许一个分组读和写一个文件,但不能执行。或者你可以允许一个组读和执行一个文件,但不能写。 -甚至你可以允许一组有读、写、执行全部的权限,也可以删除全部权限。 +为了更好地解释这如何应用于一个分组,例如,你允许一个分组读和写一个文件,但不能执行。或者,你可以允许一个组读和执行一个文件,但不能写。甚至你可以允许一组有读、写、执行全部的权限,也可以删除全部权限来剥夺组权限。 -什么是分组呢,有以下4个: +现在,什么是分组呢,有以下4个: - user — 文件实际的拥有者 - group — 用户所在的组 -- others — 用户组内的其他用户 +- others — 用户组外的其他用户 - all — 所有用户 -大多数情况,你只会对前3组进行操作,all这一组只是作为快捷方式(稍后我会解释)。 +大多数情况,你只会对前3组进行操作,`all` 这一组只是作为快捷方式(稍后我会解释)。 到目前为止很简单,对吧?接下来我们将深入一层。 -如果你打开一个终端并运行命令 ls -l ,你将会看到逐行列出当前工作目录下所有的文件和文件夹的列表(如图1). +如果你打开一个终端并运行命令 `ls -l`,你将会看到逐行列出当前工作目录下所有的文件和文件夹的列表(如图1). -你会留意到最左边那列是像·-rw-rw-r--·这样的。 +你会留意到最左边那列是像 `-rw-rw-r--` 这样的。 实际上这列表该这样看的: >rw- rw- r-- -将其分为如下3部分: +正如你所见,列表将其分为如下3部分: - rw- @@ -55,11 +53,11 @@ 权限和组的顺序都很重要,顺序总是: -- 用户 组 其他 — 分组 +- 所属者 所属组 其他人 — 分组 -- 读 写 操作 — 权限 +- 读 写 执行 — 权限 -在我们上面示例的权限列表中,用户拥有读/写权限,用户组拥有读/写权限,其他用户仅拥有读权限。这些分组中赋予执行权限的话,就用一个x表示。 +在我们上面示例的权限列表中,所属者拥有读/写权限,所属组拥有读/写权限,其他人用户仅拥有读权限。这些分组中赋予执行权限的话,就用一个x表示。 ## 等效数值 @@ -75,8 +73,7 @@ >-42-42-4-- -你该把每个分组的数值相加,给用户读和写权限,你该用4 + 2 得到6。给用户组相同的权限,也是使用相同的数值。假如你只想给其他用户读的权限, -那就设置它为4。现在用数只表示为: +你该把每个分组的数值相加,给用户读和写权限,你该用 4 + 2 得到 6。给用户组相同的权限,也是使用相同的数值。假如你只想给其他用户读的权限,那就设置它为4。现在用数值表示为: >664 @@ -84,27 +81,24 @@ >chmod 664 FILENAME -FILENAME处为文件名。 +FILENAME 处为文件名。 ## 更改权限 -既然你已经理解了文件权限,那是时候学习如何更改这些权限了。就是使用chmod命令来实现。第一步你要知道你能否更改文件权限, -你必须是文件的所有者或者有权限编辑文件(或者使用su或sudo进行操作)。正因为这样,你不能随意切换目录和更改文件权限。 +既然你已经理解了文件权限,那是时候学习如何更改这些权限了。就是使用chmod命令来实现。第一步你要知道你能否更改文件权限,你必须是文件的所有者或者有权限编辑文件(或者使用su或sudo进行操作)。正因为这样,你不能随意切换目录和更改文件权限。 - -继续用我们的例子(`-rw-rw-r--`),假设这个文件(命名为script.sh)实际是个shell脚本,需要执行。但是你你只想让自己有权限执行这个脚本。 -这个时候,你可能会想:“我需要是文件的权限如`-rwx-rw-r--`这样来设置`x`”。实际你可以这样使用chmod命令: +继续用我们的例子 (`-rw-rw-r--`)。假设这个文件(命名为 script.sh)实际是个shell脚本,需要被执行,但是你只想让自己有权限执行这个脚本。这个时候,你可能会想:“我需要是文件的权限如 `-rwx-rw-r--`”。为了设置 `x` 权限位,你可以这样使用 `chmod` 命令: >chmod u+x script.sh 这时候,列表中显示的应该是 -rwx-rw-r-- 。 -如果你想同时让用户及其所在组同时拥有执行权限,命令应该这样: +如果你想同时让用户及其所属组同时拥有执行权限,命令应该这样: >chmod ug+x script.sh +明白这是怎么工作的了吗?下面我们让它更有趣些。不管什么原因,你不小心给了所有分组对文件的执行权限(列表中是这样的 `-rwx-rwx-r-x`)。 -明白这是怎么工作的了,下面我们让它更有趣些。不管什么原因,你不小心给了所有分组对文件的执行权限(列表中是这样的 `-rwx-rwx-r-x` )。 如果你想去除其他用户的执行权限,只需运行命令: >chmod o-x script.sh @@ -117,35 +111,29 @@ FILENAME处为文件名。 >chmod a-x script.sh -以上就是所有内容,能使操作更有效率。我希望能避免哪些可能会导致一些问题的操作(例如你不小心对script.sh使用`a-rwx`这样的chmod命令)。 +以上就是所有内容,能使操作更有效率。我希望能避免哪些可能会导致一些问题的操作(例如你不小心对 script.sh 使用 `a-rwx` 这样的chmod命令)。 ## 目录权限 -You can also execute the chmod command on a directory. When you create a new directory as a user, it is typically created with the following permissions: -你也可以对一个目录执行chmod命令,当你创建一个新的目录,通常新建目录具有这样的权限: +你也可以对一个目录执行 `chmod` 命令。当你作为用户创建一个新的目录,通常新建目录具有这样的权限: >drwxrwxr-x -注:开头的d表示这是一个目录。 +注:开头的 `d` 表示这是一个目录。 -正如你所见,用户及其所在组都对文件夹具有操作权限,但这并不意味着在这文件夹中出创建的问价也具有与其相同的权限 -(创建的文件使用默认系统的权限`-rw-rw-r--`)。但如果你想在新文件夹中创建文件,并且移除用户组的写权限, -你不用切换到该目录下并对所有文件使用chmod命令。你可以用加上参数R(意味着递归)的chmod命令,同时更改该文件夹及其目录下所有的文件的权限。 +正如你所见,用户及其所在组都对文件夹具有操作权限,但这并不意味着在这文件夹中出创建的问价也具有与其相同的权限(创建的文件使用默认系统的权限 `-rw-rw-r--`)。但如果你想在新文件夹中创建文件,并且移除用户组的写权限,你不用切换到该目录下并对所有文件使用chmod命令。你可以用加上参数R(意味着递归)的 `chmod` 命令,同时更改该文件夹及其目录下所有的文件的权限。 -现在,假设有一文件夹TEST,里面有一些脚本,所有这些(包括TEST文件夹)拥有权限`-rwxrwxr-x`。如果你想移除用户组的写权限, -你可以运行命令: +现在,假设有一文件夹 TEST,里面有一些脚本,所有这些(包括 TEST 文件夹)拥有权限 `-rwxrwxr-x`。如果你想移除用户组的写权限,你可以运行命令: >chmod -R g-w TEST -运行命令`ls -l`,你讲看到列出的TEST文件夹的权限信息是`drwxr-xr-x`。用户组被去除了写权限(其目录下的所有文件也如此)。 +运行命令 `ls -l`,你讲看到列出的 TEST 文件夹的权限信息是 `drwxr-xr-x`。用户组被去除了写权限(其目录下的所有文件也如此)。 ## 总结 -现在,你应该对基本的Linux文件权限有了深入的理解。对于更高级的东西学起来会很轻松,像setid,setuid和ACLs这些。没有良好的基础, -你很快就会混淆不清概念的。 - -Linux文件权限从早期到现在没有太大变化,而且很可能以后也不会。 +现在,你应该对基本的Linux文件权限有了深入的理解。对于更高级的东西学起来会很轻松,像`setid`,`setuid` 和 `ACLs` 这些。没有良好的基础,你很快就会混淆不清概念的。 +Linux 文件权限从早期到现在没有太大变化,而且很可能以后也不会。 ------------------------------------------------------------------------------ From cf2189c02a83424959740c34a137c2376426c575 Mon Sep 17 00:00:00 2001 From: mudongliang Date: Mon, 30 May 2016 11:41:30 -0400 Subject: [PATCH 577/582] proofread add open source experience to your resume --- ...d open source experience to your resume.md | 88 ++++++++++++------- 1 file changed, 57 insertions(+), 31 deletions(-) diff --git a/translated/tech/20160225 How to add open source experience to your resume.md b/translated/tech/20160225 How to add open source experience to your resume.md index 234038f878..3a990bc074 100644 --- a/translated/tech/20160225 How to add open source experience to your resume.md +++ b/translated/tech/20160225 How to add open source experience to your resume.md @@ -1,49 +1,75 @@ 怎样将开源经历添加到你的简历中去 ================================================== ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/lightning-test.png?itok=aMceg0Vg) -在这篇文章中,我将会分享我的一些方法,目的是让你因为曾经为开源事业作出贡献的经历使得你在技术领域的求职中脱颖而出。 -凡事预则立,不预则废。在你即将进入一个新的领域或者正准备花费整个晚上来彻底完善你的简历之前,先来定义你正在寻找的工作的特征是值得的。你的简历是一张有说服力的作品,因此你必须了解你的观众,从而让它发挥出所有的潜力。看你简历的可能是任何需要你的技能并且恰好能在预算之内聘用你的人。当编辑简历的时候,读一读你的简历上的内容,同时想象一下它们最应该被书写的位置。你看起来像是一个你将会聘用的候选人吗? -在我看来,我发现对于我所要求的目标职位的所有理想候选人,针对他们每个人的特点列出一张清单有时候是很有帮助的。我将他们每个人的特点清单合并到他们的个人经历中,并阅读工作记录,然后以同样的角色询问同事们。人际关系网和会议是很好的地方去寻求一些乐意提供这种建议的人。一些人喜欢谈论他们自己,并且邀请他们去讲述他们自己的故事的一部分来帮助你去拓展你的知识面,通过这样方式可以使每个人感觉更好。当你和其他人谈论他们的职业路线时,你不仅将会明白怎样去得到你想要从事的工作,而且还能知道你应该避免哪些容易让你失去工作机会的情况和行为。 -例如,对于一个差劲的角色,有关于他的关键特性列表可能看起来像下面这样: +在这篇文章中,我将会分享我的技术,让大家利用开源贡献在技术领域的求职中脱颖而出,成为强有力的候选者。 + +凡事预则立,不预则废。在你即将进入一个新的领域或者正准备熬夜彻查你的简历之前,清楚定义你正在寻找的工作的特征是值得的。你的简历是一部有说服力的作品,因此你必须了解你的观众,从而让它发挥出所有的潜力。看你简历的可能是任何需要你的技能并且能在预算之内聘用你的人。当编辑简历的时候,读一读你的简历上的内容,同时想象一下,以他们的角度怎么看待这份简历。你看起来像是一个你将会聘用的候选人吗? + +我个人认为,对于目标职位的理想候选人所表现出来的关键特征,列出一张清单是很有帮助的。我从个人经历,如阅读工作帖、询问相同角色的同事,的组合中收集这个列表。LinkedIn 和会议是很好的地方去寻求一些乐意提供这种建议的人。一些人喜欢谈论他们自己,并且邀请他们去讲述他们自己故事的一部分来帮助你去拓展你的知识面,通过这样方式可以使每个人感觉更好。当你和其他人谈论他们的职业路线时,你不仅将会明白怎样去得到你想要从事的工作,而且还能知道你应该避免那些容易让你失去工作机会的特征或行为。 + +例如,对于一个低级角色,他的关键特征列表可能如下所示: + ###技术: -- 拥有计算机从业方面的经验,更加容易受到Jenkins的青睐。 -- 深厚的脚本编写背景,如Python和Ruby -- 精通eclipse的使用 -- 基本的git和bash知识 + +- 拥有 CI(Continuous Integration) 方面的经验,特别是 Jenkins +- 深厚的脚本编写背景,如 Python 和 Ruby +- 精通 Eclipse IDE +- 基本的 Git 和 Bash 知识 + ###个人而言: + - 自我学习者 -- 良好的交流和文档技巧 +- 良好的交流和文档技 - 在团队开发方面富有经验 -- 精通事件捕捉工作流 +- 精通事件跟踪工作流 (issue tracker workflow) + ###以任意方式应用 -记住,你没有必要为了得到一份工作而去满足上面的工作描述列表中列出的每个标准。工作细节描述了任何人都可以离开这个角色,如果你已经知道你即将签约并为之工作几年的公司的全部信息,并且这份工作并不会让你觉得有什么挑战性,或者要求你去拓展你你的技能。如果你对你无法满足清单上的技能列表而感到紧张,那么检查一下自己是否有来自其他经历并能与之媲美的技能。 -例如,即使有些人从来没有使用过Jenkins,那他也可能从之前使用过Buildbot或者travis CI的项目经验中明白持续集成测试的原则。 -如果你正在申请一家大型公司,而他们可能拥有一个专门的部门和一套完整的筛选过程来确保他们不会聘用任何不能胜任职位的候选人。也就是说,在你求职的过程中,你所能做的只是提交申请,而决定是否拒绝你是公司管理层的工作。不要过早的将工作拒之门外。 -现在你已经知道了你的任务是什么,并且还知道你将需要哪些技能去完成这次面试。下一步要做的取决与你已经获取到的经验。 + +记住,你没有必要为了得到一份工作而去满足上面的工作描述列表中列出的每个标准。 + +工作细节描述了任何人都可以离开这个角色,如果你已经知道你即将签约并为之工作几年的公司的全部信息,并且这份工作并不会让你觉得有什么挑战性,或者要求你去拓展你你的技能。如果你对你无法满足清单上的技能列表而感到紧张,那么检查一下自己是否有来自其他经历并能与之媲美的技能。例如,即使有些人从来没有使用过 Jenkins,那他也可能从之前使用过 Buildbot 或者 travis CI 的项目经验中明白持续集成测试的原则。 + +如果你正在申请一家大型公司,他们可能拥有一个专门的部门和一套完整的筛选过程来确保他们不会聘用任何不能胜任职位的候选人。也就是说,在你求职的过程中,你所能做的只是提交申请,而决定是否拒绝你是公司管理层的工作。不要过早地将工作拒之门外。 + +现在你已经知道了你的任务是什么,并且还知道你需要的技能让面试官印象深刻。下一步要做的取决与你已经获取到的经验。 + ### 制造已经存在的事物之间的关联 -列出一张你过去几年曾经参与过的所有项目。下面是一条快速得到这张清单的方式,生成一个跳转到你的github上的库的导航器,但是需要过滤掉你从其他地方复制过来的项目。除此之外,检查下你的清单上是否有曾经处于领导地位的项目。如果你已经有了一份简历,那么请确保你已经将你所有的经历都列在了上面。 -考虑下任何一个你曾经作为一个潜在的领导经历并拥有过特权的IRC项目。检查你的会唔和聚会并将你曾经组织过或者作为志愿者参与过的事情添加到你的清单上面。略过你前几年的日程并且标注所有志愿行动或者有作为导师的经历又或者有接触过的公共演讲. -现在进入了比较艰难的环节了,将清单上列出的必备技能与个人经历列表上的内容一一对照,我喜欢给工作需要的每个特性用一个字母或者数字作为标记,然后在每一段你经历或参与过并表现出了某一特性的地方标记相同的符号。当你产生怀疑的时候,无论如何也要加上它,尽管这样做更像是在吹嘘,但也好过显示出你的无能。 -在我们写简历的时候常常被这样的情况所困扰,就是我们不愿冒着过分吹嘘自己的技能的风险。这通常会帮助我们重新考虑这个问题,比如我们会考虑那些组织了会晤的人会表现出更好的领导才能和计划技巧吗?而不是当我组织这个会晤的时候我是否展示出了这些技巧。 + +列出一张你过去几年曾经参与过的所有项目。下面是一条快速得到这张清单的方法,跳转到你的 Github profile 中的**库**标签页,并且过滤掉 fork 过来的项目。除此之外,检查下你的清单上是否有曾经处于领导地位的项目。如果你已经有了一份简历,那么请确保你已经将你所有的经历都列在了上面。 + +考虑下任何一个你曾经作为一个潜在的领导经历并拥有过特权的 IRC 频道。检查你的 Meetup 和Eventbrite 账号,并将你曾经组织过或者作为志愿者参与过的活动添加到你的清单上。浏览你前几年的日程并且标注所有志愿服务,或者有作为导师的经历,又或者参与过的公共演讲。 + +现在进入了比较艰难的环节了,将清单上列出的必备技能与个人经历列表上的内容一一对照,我喜欢给工作需要的每个特征用一个字母或者数字作为标记,然后在每一段你经历或参与过并表现出了某一特征的地方标记相同的符号。当你产生怀疑的时候,无论如何也要加上它,尽管这样做更像是在吹嘘,但也好过显示出你的无能。 + +在我们写简历的时候常常被这样的情况所困扰,就是我们不愿冒着过分吹嘘自己的技能的风险。这通常会帮助我们重新考虑这个问题,“我们会考虑那些组织了会晤的人会表现出更好的领导才能和计划技巧吗?”,而不是“当我组织这个会晤的时候我是否展示出了这些技巧?”。 + 如果你已经充分了解了你在过去的几年里的业余时间都是怎么度过的或者你写了很多代码,那么你可能现在正面临着一个令人奇怪的问题,你已经拥有了太多的经验以至于一张纸的简历已经无法容纳下这些经验了。那么,如果那些列在你的清单上的经验无法证明你尝试去表现的任何技能的话,那么请扔掉它们吧。如果这份已经被缩短的简历清单上的内容仍然超过一张单页纸的容量的话,那么将你的经验按照一定的优先级排序,例如根据你获得了相关的故事或丰富的经验与所需的技术。 -在这一方面,显而易见,如果你想要磨练一个独特的技能,那么你就需要一个不错的经历。考虑使用一个类似OpenHatch的问题聚合器,并用它来寻找一个通过使用你从没使用过的工具和技术来锻炼你的技能的开源项目。 -让你的简历更加漂亮 -一份简历是否美观取决于它的简洁度,清晰度和布局。每一段经历都应该通过足够的信息来展示给读者并让他们立刻就能明白为什么你要将它包含进去,而且恰到好处。每种类型的信息都应该使用一致的文档格式来表示,一份含有斜体格式或者右对齐格式的或者其他与整体风格不协调的数据绝对会让看的人十分反感。 -使用工具来给你的简历排版会使之前设定的目标更加容易实现。我喜欢使用LaTeX,因为它 -的宏系统能够使可视化一致性变得更加容易,并且大量的面试官都能一眼就认出他。你的工具的选择可能是LibreOffice或者HTML,这取决于你的技能和你希望怎样去发布你的简历。 -记住一点,一份以数字方式提交的简历可以通过关键字被浏览到。因此,当你需要描述你的工作经历的时候使用和工作招聘告示一样的英文缩写对你的求职会有很大的帮助。为了让你的简历更加容易被面试官所使用,首先就要放上最重要的信息。 -程序员通常难以在为文档排版时量化平衡和布局。我最喜欢的技术是回退并评估我的文档的空格是否处于正确的位置,而这样做的目的就是我的PDF可以全屏显示或者打印出来,然后 -在镜像里面查看它。如果你正在使用LibreOffice Writer,保存一份你的简历的副本,然后将你的简历中的字体换成一种你无法阅读的语言。这两种技术都强制将你从阅读的内容中脱离出来,让你以一种新的方式查看文档的整体布局。他们把你从一个”那句话措辞不当!”对注意到的事物的批评,比如“在这条线上只有一个字,看起来很有趣”。 -最后,再次检查你的简历是否在它将要的展示的多媒体上看起来完全正确。如果你以网页的形式发布它,那么在不同屏幕大小的浏览器中测试它的效果。如果它是一份PDF文档,那么在你的手机或者你的朋友的电脑上面打开它,并确保它所需要的字体都是可用的。 -接下来的步骤 -最后,不要让你辛苦做出来的简历被浪费了,利用你的LinkedIn帐号把它做成一个镜像。当招聘人员找到你的时候也不要感到奇怪。尽管他们描述的工作内容并不是恰好适合你,但是你可以利用他们的时间和兴趣来得到关于你的简历中有哪些地方好与不好的反馈信息。 + +在这一方面,显而易见,如果你想要磨练一个独特的技能,那么你就需要一个不错的经历。考虑使用一个类似 OpenHatch 的问题聚合器,并用它来寻找一个通过使用你从没使用过的工具和技术来锻炼你的技能的开源项目。 + +### 让你的简历更加漂亮 + +一份简历是否美观取决于它的简洁度,清晰度和布局。每一段经历都应该通过足够的信息来展示给读者,并让他们立刻明白为什么你要将它包含进去,而且恰到好处。每种类型的信息都应该使用一致的文档格式来表示,一份含有斜体格式或者右对齐格式的或者其他与整体风格不协调的数据绝对会让人分心。 + +使用工具来给你的简历排版会使之前设定的目标更加容易实现。我喜欢使用 [LaTeX][5],因为它 +的宏系统能够使可视化一致性变得更加容易,并且大量的面试官都能一眼就认出它。你的工具的选择可能是 LibreOffice 或者 HTML,这取决于你的技能和你希望怎样去发布你的简历。 + +记住一点,一份以电子方式提交的简历可以通过关键字被浏览到。因此,当你需要描述你的工作经历的时候使用和工作招聘告示一样的英文缩写对你的求职会有很大的帮助。为了让你的简历更加容易被面试官所使用,首先就要放上最重要的信息。 + +程序员通常难以在为文档排版时量化平衡和布局。我最喜欢的回退和评估我的文档的空格是否处于正确的位置技术,就是全屏显示我的PDF或者打印出来,然后在镜像里面查看它。如果你正在使用 LibreOffice Writer,保存一份你的简历的副本,然后将你的简历中的字体换成一种你无法阅读的语言。这两种技术都强制将你从阅读的内容中脱离出来,让你以一种新的方式查看文档的整体布局。他们把你从一个“那句话措辞不当!”这样的批评到注意到,如“在这条线上只有一个字,看起来很有趣”之类的事情。 + +最后,再次检查你的简历是否在它将要的展示的多媒体上看起来完全正确。如果你以网页的形式发布它,那么在不同屏幕大小的浏览器中测试它的效果。如果它是一份 PDF 文档,那么在你的手机或者你的朋友的电脑上面打开它,并确保它所需要的字体都是可用的。 + +###接下来的步骤 + +最后,不要让你辛苦做出来的简历内容浪费了,利用你的 LinkedIn 帐号把它做成一个镜像(完全使用招聘公告中的流行词),同时当招聘人员找到你的时候也不要感到奇怪。尽管他们描述的工作内容并不是恰好适合你,但是你可以利用他们的时间和兴趣来得到关于你的简历中有哪些地方好与不好的反馈信息。 -------------------------------------------------------------------------------- via: https://opensource.com/business/16/2/add-open-source-to-your-resume 作者:[edunham][a] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[pengkai](https://github.com/pengkai) +校对:[mudongliang](https://github.com/mudongliang) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 214fd7f68c9e11be432789fa5127530cece0048c Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 31 May 2016 08:19:53 +0800 Subject: [PATCH 578/582] PUB:20160301 Linux gives me all the tools I need MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @StdioA 翻译的很好,校对很轻松~ --- .../20160301 Linux gives me all the tools I need.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk/my-open-source-story => published}/20160301 Linux gives me all the tools I need.md (92%) diff --git a/translated/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md b/published/20160301 Linux gives me all the tools I need.md similarity index 92% rename from translated/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md rename to published/20160301 Linux gives me all the tools I need.md index 5c746acab8..0ac2e84c02 100644 --- a/translated/talk/my-open-source-story/20160301 Linux gives me all the tools I need.md +++ b/published/20160301 Linux gives me all the tools I need.md @@ -3,7 +3,7 @@ Linux 给了我所有所需的工具 ![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/OPENHERE_blue.png?itok=3eqp-7gT) -[Linux][0] 就在我们身边。它以 Android 的形式[存在我们的手机中][1],它[在国际空间站中被使用][2],它[还是互联网的主要支柱][3],可是迄今为止很多人从未留意过它。对 Linux 的探索是一种很有成就感的尝试。很多人都在 Opensource.com [分享过他们与 Linux 的故事][4]。现在,轮到我了。 +[Linux][0] 就在我们身边。它以 Android 的形式[存在我们的手机中][1],它[用在国际空间站中][2],它[还是互联网的主要支柱][3],可是迄今为止很多人从未留意过它。对 Linux 的探索是一种很有成就感的尝试。很多人都在 Opensource.com [分享过他们与 Linux 的故事][4]。现在,轮到我了。 我依然记得我在 2008 年第一次探索 Linux 的时刻。协助我探索 Linux 的人是我的父亲,Socrates Ballais。他是菲律宾塔克洛班的一名经济学专家,也是一个技术狂热者。他教会了我许多计算机技术方面的知识,但只提倡我将 Linux 作为 Windows 崩溃后的备用操作系统。 @@ -36,7 +36,7 @@ via: https://opensource.com/life/16/3/my-linux-story-sean-ballais 作者:[Sean Francis N. Ballais][a] 译者:[StdioA](https://github.com/StdioA) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) [a]: https://opensource.com/users/seanballais [0]: https://opensource.com/resources/what-is-linux From c5e1a5839e836caaf27c50a1961e5278f700d317 Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 31 May 2016 09:05:24 +0800 Subject: [PATCH 579/582] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=E4=B8=AD=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...md => 20160514 NODEOS - LINUX DISTRIBUTION FOR NODE LOVERS.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename translated/tech/{20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md => 20160514 NODEOS - LINUX DISTRIBUTION FOR NODE LOVERS.md} (100%) diff --git a/translated/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md b/translated/tech/20160514 NODEOS - LINUX DISTRIBUTION FOR NODE LOVERS.md similarity index 100% rename from translated/tech/20160514 NODEOS : LINUX DISTRIBUTION FOR NODE LOVERS.md rename to translated/tech/20160514 NODEOS - LINUX DISTRIBUTION FOR NODE LOVERS.md From f6c54b796ca0ac211a7fe46adc2d526d650159ac Mon Sep 17 00:00:00 2001 From: wxy Date: Tue, 31 May 2016 11:20:54 +0800 Subject: [PATCH 580/582] PUB:20160225 How to add open source experience to your resume @pengkai @mudongliang --- ...d open source experience to your resume.md | 83 +++++++++++++++++++ ...d open source experience to your resume.md | 82 ------------------ 2 files changed, 83 insertions(+), 82 deletions(-) create mode 100644 published/20160225 How to add open source experience to your resume.md delete mode 100644 translated/tech/20160225 How to add open source experience to your resume.md diff --git a/published/20160225 How to add open source experience to your resume.md b/published/20160225 How to add open source experience to your resume.md new file mode 100644 index 0000000000..cff9f4c6f1 --- /dev/null +++ b/published/20160225 How to add open source experience to your resume.md @@ -0,0 +1,83 @@ +怎样将开源经历添加到你的简历中去 +================================================== +![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/lightning-test.png?itok=aMceg0Vg) + +在这篇文章中,我将会分享我的方法,让大家利用开源贡献在技术领域的求职中脱颖而出,成为强有力的候选者。 + +凡事预则立,不预则废。在你即将进入一个新的领域或者正准备熬夜修订你的简历之前,清楚地定义你正在寻找的工作的特征是值得的。你的简历是一部有说服力的作品,因此你必须了解你的观众,从而让它发挥出所有的潜力。看你简历的可能是任何需要你的技能并且能在预算之内聘用你的人。当编辑简历的时候,读一读你的简历上的内容,同时想象一下,以他们的角度怎么看待这份简历。你看起来像是一个“你”将会聘用的候选人吗? + +我个人认为,对于目标职位的理想候选人所表现出来的关键特征,列出一张清单是很有帮助的。我结合了个人经验、阅读工作招聘信息、询问相同角色的同事等方面来收集这个清单。LinkedIn 和各种会议是寻求一些乐意提供这种建议的人的很好的地方。一些人喜欢谈论他们自己,那么通过邀请他们讲述他们自己的一些故事可以帮助你来拓展你的知识面,这样大家都会感觉很好。当你和其他人谈论他们的职业路线时,你不仅将会明白怎样去得到你想要从事的工作,而且还能知道你应该避免那些容易让你失去工作机会的特征或行为。 + +例如,对于一个不太资深的工作位置来说,关键特征列表可能如下所示: + +###技术方面: + +- 拥有 CI (持续集成) 方面的经验,特别是 Jenkins +- 深厚的脚本编写背景,如 Python 和 Ruby +- 精通 Eclipse IDE +- 基本的 Git 和 Bash 知识 + +###个人而言: + +- 自我驱动的学习者 +- 良好的交流和文档技巧 +- 在团队开发方面富有经验(团队成员) +- 精通事件跟踪的工作流 + +###尽管去申请职位 + +记住,你没有必要为了得到一份工作而去满足上面的工作描述列表中列出的每个标准。 + +工作细节(JD)描述了这个角色,让你一开始就知道你即将签约并为之工作几年的公司的全部信息,并且这份工作并不会让你觉得有什么挑战性,或者要求你去拓展你的技能。如果你对你无法满足清单上的技能列表而感到紧张,那么检查一下自己是否有来自其他方面的经历并能与之媲美的技能。例如,即使有些人从来没有使用过 [Jenkins][1],那他也可能从之前使用过 [Buildbot][2] 或者 [travis CI][3] 的项目经验中明白持续集成测试的原则。 + +如果你正在申请一家大型公司,他们可能拥有一个专门的部门和一套完整的筛选过程来确保他们不会聘用任何不能胜任职位的候选人。也就是说,在你求职的过程中,你所能做的只是提交申请,而决定是否拒绝你是公司管理层的工作。不要过早地将工作拒之门外。 + +现在你已经知道了你的任务是什么,并且还知道你将需要让面试官印象深刻的技巧。下一步要做的取决于你已有的经验。 + +### 制造已经存在的事物之间的关联 + +列出一张你过去几年曾经参与过的所有项目。下面是一条快速得到这张清单的方法,跳转到你的 Github profile 中的**Repositories**标签页,并且过滤掉 fork 过来的项目。除此之外,检查下你的清单上是否有曾经处于领导地位的[Organizations][4]。如果你已经有了一份简历,那么请确保你已经将你所有的经历都列在了上面。 + +考虑下任何一个你曾经作为一个潜在的领导经历并拥有过特权的 IRC 频道。检查下你的 Meetup 和Eventbrite 账号,并将你曾经组织过或者作为志愿者参与过的活动添加到你的清单上。浏览你前几年的日程并且标注所有志愿服务,或者有作为导师的经历,又或者参与过的公共演讲。 + +现在进入了比较艰难的环节了,将清单上列出的必备技能与个人经历列表上的内容一一对照,我喜欢给该工作所需要的每个特征用一个字母或者数字作为标记,然后在每一段你经历或参与过并表现出了某一特征的地方标记相同的符号。当你不太确定的时候,那就毫不犹豫地标记上它,尽管这样做更像是在吹嘘,但也好过显示出你的无能。 + +在我们写简历的时候常常被这样的情况所困扰,就是我们不愿冒着过分吹嘘自己的技能的风险。通常应该这样去想,“那些组织了聚会的人会表现出了更好的领导才能和计划技巧吗?”,而不是“当我组织了这个聚会的时候我是否展示出了这些技巧?”。 + +如果你已经充分了解了你在过去的一两年里的业余时间都是怎么度过的,而且你写了很多代码,那么你可能现在正面临着一个令人奇怪的问题,你已经拥有了太多的经验以至于一张纸的简历已经无法容纳下这些经验了。那么,如果那些列在你的清单上的经验,但无法证明你尝试去表现的任何技能的话,那么请扔掉它们吧。如果这份已经被缩短的简历清单上的内容仍然超过一张单页纸的容量的话,那么将你的经验按照一定的优先级排序,例如根据与所需技术的相关经历或丰富经验。 + +在这一方面,显而易见,如果你想要磨练一个独特的技能,那么你就需要一个不错的经历。考虑使用一个类似 [OpenHatch][7] 的问题聚合器,并用它来寻找一个通过使用你从没使用过的工具和技术来锻炼你的技能的开源项目。 + +### 让你的简历更加漂亮 + +一份简历是否美观取决于它的简洁度、清晰度和布局。每一段经历都应该通过足够的信息来展示给读者,并让他们立刻明白为什么你要将它包含进去,而且恰到好处。每种类型的信息都应该使用一致的文档格式来表示,一份含有斜体格式的日期或者右对齐的或者与整体风格不协调的部分绝对会让人分心。 + +使用工具来给你的简历排版会使之前设定的目标更加容易实现。我喜欢使用 [LaTeX][5],因为它的宏系统能够使可视化一致性变得更加容易,并且大量的面试官都能一眼就认出它。你的工具的选择可能是 [LibreOffice][6] 或者 HTML,这取决于你的技能和你希望怎样去发布你的简历。 + +记住一点,一份以电子方式提交的简历可以通过关键字被浏览到。因此,当你需要描述你的工作经历的时候使用和工作招聘告示一样的英文缩写对你的求职会有很大的帮助。为了让你的简历更加容易被面试官看到,首先就要放上最重要的信息。 + +程序员通常难以在为文档排版时量化平衡和布局。我最喜欢的修改和评估我的文档中的空格是否处于正确位置的技术,就是全屏显示我的 PDF 或者打印出来,然后在镜子里面查看它。如果你正在使用 LibreOffice Writer,保存一份你的简历的副本,然后将你的简历中的字体换成一种你看不懂的语言。这两种技术都强制将你从阅读的内容中脱离出来,让你以一种新的方式查看文档的整体布局。他们把你从一个“那句话措辞不当!”这样的批评转到了注意如“在这行上只有一个字,看起来挺逗”之类的事情。 + +最后,再次检查你的简历是否在它将要的展示的多媒体上看起来完全正确。如果你以网页的形式发布它,那么在不同屏幕大小的浏览器中测试它的效果。如果它是一份 PDF 文档,那么在你的手机或者你的朋友的电脑上打开它,并确保它所需要的字体都是可用的。 + +###接下来的步骤 + +最后,不要让你辛苦做出来的简历内容浪费了,将它完整的复制到你的 LinkedIn 帐号上(完全使用招聘公告中的流行词),然后毫无疑问招聘人员就会找到你了。尽管他们描述的工作内容并不是恰好适合你,但是你可以利用他们的时间和兴趣来得到关于你的简历中有哪些地方好与不好的反馈信息。 + +-------------------------------------------------------------------------------- +via: https://opensource.com/business/16/2/add-open-source-to-your-resume + +作者:[edunham][a] +译者:[pengkai](https://github.com/pengkai) +校对:[mudongliang](https://github.com/mudongliang),[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/edunham +[1]: https://jenkins-ci.org/ +[2]: http://buildbot.net/ +[3]: https://travis-ci.org/ +[4]: https://github.com/settings/organizations +[5]: https://www.latex-project.org/ +[6]: https://www.libreoffice.org/download/libreoffice-fresh/ +[7]: http://openhatch.org/ diff --git a/translated/tech/20160225 How to add open source experience to your resume.md b/translated/tech/20160225 How to add open source experience to your resume.md deleted file mode 100644 index 3a990bc074..0000000000 --- a/translated/tech/20160225 How to add open source experience to your resume.md +++ /dev/null @@ -1,82 +0,0 @@ -怎样将开源经历添加到你的简历中去 -================================================== -![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/business/lightning-test.png?itok=aMceg0Vg) - -在这篇文章中,我将会分享我的技术,让大家利用开源贡献在技术领域的求职中脱颖而出,成为强有力的候选者。 - -凡事预则立,不预则废。在你即将进入一个新的领域或者正准备熬夜彻查你的简历之前,清楚定义你正在寻找的工作的特征是值得的。你的简历是一部有说服力的作品,因此你必须了解你的观众,从而让它发挥出所有的潜力。看你简历的可能是任何需要你的技能并且能在预算之内聘用你的人。当编辑简历的时候,读一读你的简历上的内容,同时想象一下,以他们的角度怎么看待这份简历。你看起来像是一个你将会聘用的候选人吗? - -我个人认为,对于目标职位的理想候选人所表现出来的关键特征,列出一张清单是很有帮助的。我从个人经历,如阅读工作帖、询问相同角色的同事,的组合中收集这个列表。LinkedIn 和会议是很好的地方去寻求一些乐意提供这种建议的人。一些人喜欢谈论他们自己,并且邀请他们去讲述他们自己故事的一部分来帮助你去拓展你的知识面,通过这样方式可以使每个人感觉更好。当你和其他人谈论他们的职业路线时,你不仅将会明白怎样去得到你想要从事的工作,而且还能知道你应该避免那些容易让你失去工作机会的特征或行为。 - -例如,对于一个低级角色,他的关键特征列表可能如下所示: - -###技术: - -- 拥有 CI(Continuous Integration) 方面的经验,特别是 Jenkins -- 深厚的脚本编写背景,如 Python 和 Ruby -- 精通 Eclipse IDE -- 基本的 Git 和 Bash 知识 - -###个人而言: - -- 自我学习者 -- 良好的交流和文档技 -- 在团队开发方面富有经验 -- 精通事件跟踪工作流 (issue tracker workflow) - -###以任意方式应用 - -记住,你没有必要为了得到一份工作而去满足上面的工作描述列表中列出的每个标准。 - -工作细节描述了任何人都可以离开这个角色,如果你已经知道你即将签约并为之工作几年的公司的全部信息,并且这份工作并不会让你觉得有什么挑战性,或者要求你去拓展你你的技能。如果你对你无法满足清单上的技能列表而感到紧张,那么检查一下自己是否有来自其他经历并能与之媲美的技能。例如,即使有些人从来没有使用过 Jenkins,那他也可能从之前使用过 Buildbot 或者 travis CI 的项目经验中明白持续集成测试的原则。 - -如果你正在申请一家大型公司,他们可能拥有一个专门的部门和一套完整的筛选过程来确保他们不会聘用任何不能胜任职位的候选人。也就是说,在你求职的过程中,你所能做的只是提交申请,而决定是否拒绝你是公司管理层的工作。不要过早地将工作拒之门外。 - -现在你已经知道了你的任务是什么,并且还知道你需要的技能让面试官印象深刻。下一步要做的取决与你已经获取到的经验。 - -### 制造已经存在的事物之间的关联 - -列出一张你过去几年曾经参与过的所有项目。下面是一条快速得到这张清单的方法,跳转到你的 Github profile 中的**库**标签页,并且过滤掉 fork 过来的项目。除此之外,检查下你的清单上是否有曾经处于领导地位的项目。如果你已经有了一份简历,那么请确保你已经将你所有的经历都列在了上面。 - -考虑下任何一个你曾经作为一个潜在的领导经历并拥有过特权的 IRC 频道。检查你的 Meetup 和Eventbrite 账号,并将你曾经组织过或者作为志愿者参与过的活动添加到你的清单上。浏览你前几年的日程并且标注所有志愿服务,或者有作为导师的经历,又或者参与过的公共演讲。 - -现在进入了比较艰难的环节了,将清单上列出的必备技能与个人经历列表上的内容一一对照,我喜欢给工作需要的每个特征用一个字母或者数字作为标记,然后在每一段你经历或参与过并表现出了某一特征的地方标记相同的符号。当你产生怀疑的时候,无论如何也要加上它,尽管这样做更像是在吹嘘,但也好过显示出你的无能。 - -在我们写简历的时候常常被这样的情况所困扰,就是我们不愿冒着过分吹嘘自己的技能的风险。这通常会帮助我们重新考虑这个问题,“我们会考虑那些组织了会晤的人会表现出更好的领导才能和计划技巧吗?”,而不是“当我组织这个会晤的时候我是否展示出了这些技巧?”。 - -如果你已经充分了解了你在过去的几年里的业余时间都是怎么度过的或者你写了很多代码,那么你可能现在正面临着一个令人奇怪的问题,你已经拥有了太多的经验以至于一张纸的简历已经无法容纳下这些经验了。那么,如果那些列在你的清单上的经验无法证明你尝试去表现的任何技能的话,那么请扔掉它们吧。如果这份已经被缩短的简历清单上的内容仍然超过一张单页纸的容量的话,那么将你的经验按照一定的优先级排序,例如根据你获得了相关的故事或丰富的经验与所需的技术。 - -在这一方面,显而易见,如果你想要磨练一个独特的技能,那么你就需要一个不错的经历。考虑使用一个类似 OpenHatch 的问题聚合器,并用它来寻找一个通过使用你从没使用过的工具和技术来锻炼你的技能的开源项目。 - -### 让你的简历更加漂亮 - -一份简历是否美观取决于它的简洁度,清晰度和布局。每一段经历都应该通过足够的信息来展示给读者,并让他们立刻明白为什么你要将它包含进去,而且恰到好处。每种类型的信息都应该使用一致的文档格式来表示,一份含有斜体格式或者右对齐格式的或者其他与整体风格不协调的数据绝对会让人分心。 - -使用工具来给你的简历排版会使之前设定的目标更加容易实现。我喜欢使用 [LaTeX][5],因为它 -的宏系统能够使可视化一致性变得更加容易,并且大量的面试官都能一眼就认出它。你的工具的选择可能是 LibreOffice 或者 HTML,这取决于你的技能和你希望怎样去发布你的简历。 - -记住一点,一份以电子方式提交的简历可以通过关键字被浏览到。因此,当你需要描述你的工作经历的时候使用和工作招聘告示一样的英文缩写对你的求职会有很大的帮助。为了让你的简历更加容易被面试官所使用,首先就要放上最重要的信息。 - -程序员通常难以在为文档排版时量化平衡和布局。我最喜欢的回退和评估我的文档的空格是否处于正确的位置技术,就是全屏显示我的PDF或者打印出来,然后在镜像里面查看它。如果你正在使用 LibreOffice Writer,保存一份你的简历的副本,然后将你的简历中的字体换成一种你无法阅读的语言。这两种技术都强制将你从阅读的内容中脱离出来,让你以一种新的方式查看文档的整体布局。他们把你从一个“那句话措辞不当!”这样的批评到注意到,如“在这条线上只有一个字,看起来很有趣”之类的事情。 - -最后,再次检查你的简历是否在它将要的展示的多媒体上看起来完全正确。如果你以网页的形式发布它,那么在不同屏幕大小的浏览器中测试它的效果。如果它是一份 PDF 文档,那么在你的手机或者你的朋友的电脑上面打开它,并确保它所需要的字体都是可用的。 - -###接下来的步骤 - -最后,不要让你辛苦做出来的简历内容浪费了,利用你的 LinkedIn 帐号把它做成一个镜像(完全使用招聘公告中的流行词),同时当招聘人员找到你的时候也不要感到奇怪。尽管他们描述的工作内容并不是恰好适合你,但是你可以利用他们的时间和兴趣来得到关于你的简历中有哪些地方好与不好的反馈信息。 --------------------------------------------------------------------------------- -via: https://opensource.com/business/16/2/add-open-source-to-your-resume - -作者:[edunham][a] -译者:[pengkai](https://github.com/pengkai) -校对:[mudongliang](https://github.com/mudongliang) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/edunham -[1]: https://jenkins-ci.org/ -[2]: http://buildbot.net/ -[3]: https://travis-ci.org/ -[4]: https://github.com/settings/organizations -[5]: https://www.latex-project.org/ -[6]: https://www.libreoffice.org/download/libreoffice-fresh/ From f4fff4818befcf07d58d292041a57cd761b98306 Mon Sep 17 00:00:00 2001 From: Ezio Date: Tue, 31 May 2016 12:49:07 +0800 Subject: [PATCH 581/582] =?UTF-8?q?20160531-1=20=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... HOW TO USE WEBP IMAGES IN UBUNTU LINUX.md | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 sources/tech/20160531 HOW TO USE WEBP IMAGES IN UBUNTU LINUX.md diff --git a/sources/tech/20160531 HOW TO USE WEBP IMAGES IN UBUNTU LINUX.md b/sources/tech/20160531 HOW TO USE WEBP IMAGES IN UBUNTU LINUX.md new file mode 100644 index 0000000000..45cc53157e --- /dev/null +++ b/sources/tech/20160531 HOW TO USE WEBP IMAGES IN UBUNTU LINUX.md @@ -0,0 +1,180 @@ +HOW TO USE WEBP IMAGES IN UBUNTU LINUX +========================================= + +![](http://itsfoss.com/wp-content/uploads/2016/05/support-webp-ubuntu-linux.jpg) +>Brief: This guide shows you how to view WebP images in Linux and how to convert WebP images to JPEG or PNG format. + +###WHAT IS WEBP? + +It’s been over five years since Google introduced [WebP file format][0] for images. WebP provides lossy and lossless compression and WebP compressed files are around 25% smaller in size when compared to JPEG compression, Google claims. + +Google aimed WebP to become the new standard for images on the web but I don’t see it happening. It’s over five years and it’s still not adopted as a standard except in Google’s ecosystem. But as we know, Google is pushy about its technologies. Few months back Google changed all the images on Google Plus to WebP. + +If you download those images from Google Plus using Google Chrome, you’ll have WebP images, no matter if you had uploaded PNG or JPEG. And that’s not the problem. The actual problem is when you try to open that files in Ubuntu using the default GNOME Image Viewer and you see this error: + +>**Could not find XYZ.webp** +>**Unrecognized image file format** + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-1.png) +>GNOME Image Viewer doesn’t support WebP images + +In this tutorial, we shall see + +- how to add WebP support in Linux +- list of programs that support WebP images +- how to convert WebP images to PNG or JPEG +- how to download WebP images directly as PNG images + +### HOW TO VIEW WEBP IMAGES IN UBUNTU AND OTHER LINUX + +[GNOME Image Viewer][3], the default image viewer in many Linux distributions including Ubuntu, doesn’t support WebP images. There are no plugins available at present that could enable GNOME Image Viewer to add WebP support. + +This means that we simply cannot use GNOME Image Viewer to open WebP files in Linux. A better alternative is [gThumb][4] that supports WebP images by default. + +To install gThumb in Ubuntu and other Ubuntu based Linux distributions, use the command below: + +``` +sudo apt-get install gthumb +``` + +Once installed, you can simply rightly click on the WebP image and select gThumb to open it. You should be able to see it now: + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-2.jpeg) +>WebP image in gThumb + +### MAKE GTHUMB THE DEFAULT APPLICATION FOR WEBP IMAGES IN UBUNTU + +For Ubuntu beginners, if you like to make gThumb the default application for opening WebP files, just follow the steps below: + +#### Step 1: Right click on the WebP image and select Properties. + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-3.png) +>Select Properties from Right Click menu + +#### Step 2: Go to Open With tab, select gThumb and click on Set as default. + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-4.png) +>Make gThumb the default application for WebP images in Ubuntu + +### MAKE GTHUMB THE DEFAULT APPLICATIONS FOR ALL IMAGES + +gThumb has a lot more to offer than Image Viewer. For example, you can do simple editing, add color filters to the images etc. Adding the filter is not as effective as XnRetro, the dedicated tool for [adding Instagram like effects on Linux][5], but the basic filters are available. + +I liked gThumb a lot and decided to make it the default image viewer. If you also want to make gThumb the default application for all kind of images in Ubuntu, follow the steps below: + +####Step 1: Open System Settings + +![](http://itsfoss.com/wp-content/uploads/2014/04/System_Settings_ubuntu_1404.jpeg) + +#### Step 2: Go to Details. + +![](http://itsfoss.com/wp-content/uploads/2013/11/System_settings_Ubuntu_1.jpeg) + +#### Step 3: Select gThumb as the default applications for images here. + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-5.png) + +### ALTERNATIVE PROGRAMS TO OPEN WEBP FILES IN LINUX + +It is possible that you might not like gThumb. If that’s the case, you can choose one of the following applications to view WebP images in Linux: + +- [XnView][6] (Not open source) +- GIMP with unofficial WebP plugin that can be installed via this [PPA][7] that is available until Ubuntu 15.10. I’ll cover this part in another article. +- [Gwenview][8] + +### CONVERT WEBP IMAGES TO PNG AND JPEG IN LINUX + +There are two ways to convert WebP images in Linux: + +- Command line +- GUI + +#### 1. USING COMMAND LINE TO CONVERT WEBP IMAGES IN LINUX + +You need to install WebP tools first. Open a terminal and use the following command: + +``` +sudo apt-get install webp +``` + +##### CONVERT JPEG/PNG TO WEBP + +We’ll use cwebp command (does it mean compress to WebP?) to convert JPEG or PNG files to WebP. The command format is like: + +``` +cwebp -q [image_quality] [JPEG/PNG_filename] -o [WebP_filename] +``` + +For example, you can use the following command: + +``` +cwebp -q 90 example.jpeg -o example.webp +``` + +##### CONVERT WEBP TO JPEG/PNG + +To convert WebP images to JPEG or PNG, we’ll use dwebp command. The command format is: + +``` +dwebp [WebP_filename] -o [PNG_filename] +``` + +An example of this command could be: + +``` +dwebp example.webp -o example.png +``` + +#### 2. USING GUI TOOL TO CONVERT WEBP TO JPEG/PNG + +For this purpose, we will use XnConvert which is a free but not open source application. You can download the installer files from their website: + +[Download XnConvert][1] + +Note that XnConvert is a powerful tool that you can use for batch resizing images. However, in this tutorial, we shall only see how to convert a single WebP image to PNG/JPEG. + +Open XnConvert and select the input file: + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-6.jpeg) + +In the Output tab, select the output format you want it to be converted. Once you have selected the output format, click on Convert. + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-7.jpeg) + +That’s all you need to do to convert WebP images to PNG, JPEg or any other image format of your choice. + +### DOWNLOAD WEBP IMAGES AS PNG DIRECTLY IN CHROME WEB BROWSER + +Probably you don’t like WebP image format at all and you don’t want to install a new software just to view WebP images in Linux. It will be a bigger pain if you have to convert the WebP file for future use. + +An easier and less painful way to deal with is to install a Chrome extension Save Image as PNG. With this extension, you can simply right click on a WebP image and save it as PNG directly. + +![](http://itsfoss.com/wp-content/uploads/2016/05/WebP-images-Ubuntu-Linux-8.png) +>Saving WebP image as PNG in Google Chrome + +[Get Save Image as PNG extension][2] + +### WHAT’S YOUR PICK? + +I hope this detailed tutorial helped you to get WebP support on Linux and helped you to convert WebP images. How do you handle WebP images in Linux? Which tool do you use? From the above described methods, which one did you like the most? + + +---------------------- +via: http://itsfoss.com/webp-ubuntu-linux/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ItsFoss+%28Its+FOSS%21+An+Open+Source+Blog%29 + +作者:[Abhishek Prakash][a] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: http://itsfoss.com/author/abhishek/ +[0]: https://developers.google.com/speed/webp/ +[1]: http://www.xnview.com/en/xnconvert/#downloads +[2]: https://chrome.google.com/webstore/detail/save-image-as-png/nkokmeaibnajheohncaamjggkanfbphi?utm_source=chrome-ntp-icon +[3]: https://wiki.gnome.org/Apps/EyeOfGnome +[4]: https://wiki.gnome.org/Apps/gthumb +[5]: http://itsfoss.com/add-instagram-effects-xnretro-ubuntu-linux/ +[6]: http://www.xnview.com/en/xnviewmp/#downloads +[7]: https://launchpad.net/~george-edison55/+archive/ubuntu/webp +[8]: https://userbase.kde.org/Gwenview From 46a0239c4d723091d4bfd49f947a52c93531ac55 Mon Sep 17 00:00:00 2001 From: struggling <630441839@qq.com> Date: Tue, 31 May 2016 21:15:02 +0800 Subject: [PATCH 582/582] Update 20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md --- ... 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md b/sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md index e6b143cc00..ef713fff0f 100644 --- a/sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md +++ b/sources/tech/20160530 Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04.md @@ -1,3 +1,5 @@ +Translating by strugglingyouth + Install LEMP with MariaDB 10, PHP 7 and HTTP 2.0 Support for Nginx on Ubuntu 16.04 =====================================================================================