意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境

Summary: 32 位微控制器世界向 Linux 敞开大门。前一段时间，领先的 ARM Cortex-M 供应商意法半导体（ST）发布了 一款自由的 Linux 桌面版开发程序，该软件面向其旗下的 STM32 微控制单元（MCU）。

# 意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境

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

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](http://www.linux.com/community/forums/person/42808) 译者：[martin2011qi](https://github.com/martin2011qi) 校对：[wxy](https://github.com/wxy)

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


Linux/Unix 桌面趣事：召唤一群企鹅在桌面上行走

KDE用户默默地路过

安装了，但没看到效果....

在 Ubuntu 14.04 中试过了，没有效果

哈哈，好可爱，好有趣

# Linux/Unix 桌面趣事：召唤一群企鹅在桌面上行走

XPenguins 是一个在窗口播放可爱动物动画的程序。默认情况下，将会从屏幕上方掉落企鹅，沿着你的窗口顶部行走，在窗口漂浮起来，踩上滑板，和做其他类似的有趣的事情。现在，你可以把这些可爱的小企鹅大军入侵别人的桌面了。

### 安装XPenguins

打开终端（选择程序->附件->终端），接着输入下面的命令来安装 XPenguins。首先，输入 `apt-get update` 通过请求配置的仓库刷新包的信息，接着安装需要的程序：

```
$ sudo apt-get update
$ sudo apt-get install xpenguins

```

### 我本地如何启动 XPenguins？

输入下面的命令：

```
$ xpenguins

```

示例输出：

*一支可爱企鹅军队正在入侵屏幕。*

*可爱的小企鹅沿着窗口的顶部行走。*

*Xpenguins 截图*

移动窗口时小心点，小家伙们很容易被压坏。如果你发送中断程序（Ctrl-C），它们会爆炸。

### 主题

要列出主题，输入：

```
$ xpenguins -l

```

示例输出：

```
Big Penguins
Bill
Classic Penguins
Penguins
Turtles

```

你可以用下面的命令使用其他的主题：

```
$ xpenguins --theme "Big Penguins" --theme "Turtles"

```

你可以用下面的命令安装额外的主题：

```
$ cd /tmp
$ wget http://xpenguins.seul.org/xpenguins_themes-1.0.tar.gz
$ tar -zxvf xpenguins_themes-1.0.tar.gz
$ mkdir ~/.xpenguins
$ mv -v themes ~/.xpenguins/
$ xpenguins -l

```

示例输出：

```
Lemmings
Sonic the Hedgehog
The Simpsons
Winnie the Pooh
Worms
Big Penguins
Bill
Classic Penguins
Penguins
Turtles

```

已一个随机主题开始，输入：

```
$ xpenguins --random-theme

```

要加载所有的主题并且同时运行，输入：

```
$ xpenguins --all

```

更多链接何信息：

* [XPenguins](http://xpenguins.seul.org/) 主页。
* man penguins
* 更多 Linux/Unix 桌面乐趣在[蒸汽火车](http://www.cyberciti.biz/tips/displays-animations-when-accidentally-you-type-sl-instead-of-ls.html)和[终端ASCII水族馆](http://www.cyberciti.biz/tips/linux-unix-apple-osx-terminal-ascii-aquarium.html)。

---

via: <http://www.cyberciti.biz/tips/linux-cute-little-xpenguins-walk-along-tops-ofyour-windows.html>

作者：Vivek Gite 译者：[geekpi](https://github.com/geekpi) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


如何在 Ubuntu 中安装 Light Table 0.8

# 如何在 Ubuntu 中安装 Light Table 0.8

Light Table 在经过一年以上的开发，已经推出了新的稳定发行版本。现在它只为 Linux 提供64位的二进制包。

Light Table 0.8.0的改动:

* 更改: 我们从 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](https://github.com/LightTable/LightTable/releases)

### 如何在 Ubuntu 中安装 Light Table 0.8.0

下面的步骤会指导你怎么样在 Ubuntu 下安装官方的二进制包，在目前的 Ubuntu 发行版本中都适用(**仅仅针对64位**)。

在开始之前，如果你安装了之前的版本请做好备份。

**1.** 从以下链接下载 LightTable Linux 下的二进制文件：

* [lighttable-0.8.0-linux.tar.gz](https://github.com/LightTable/LightTable/releases/download/0.8.0/lighttable-0.8.0-linux.tar.gz)

**2.** 从 dash 或是应用启动器，或者是 Ctrl+Alt+T 快捷键打开终端，并且在输入以下命令后敲击回车键：

```
gksudo file-roller ~/Downloads/lighttable-0.8.0-linux.tar.gz

```

如果命令不工作的话从 Ubuntu 软件中心安装`gksu`。

**3.** 之前的命令使用了 root 用户权限通过档案管理器打开了下载好的存档。

打开它后，请做以下步骤:

* 右击文件并且将其重命名为 **LightTable**
* 将其解压到 **Computer -> /opt/** 目录下。

最终你应该安装好了 LightTable，可以在 /opt/ 目录下查看：

**4.** 创建一个启动器使你可以从 dash 工具或是应用启动器打开 LightTable。

打开终端，运行以下命令来创建与编辑一个 LightTable 的启动文件：

```
gksudo gedit /usr/share/applications/lighttable.desktop

```

通过 Gedit 文本编辑器打开文件后，粘贴下面的内容并保存：

```
[Desktop Entry]
Version=1.0
Type=Application
Name=Light Table
GenericName=Text Editor
Comment=Open source IDE that modify, from running programs to embed websites and games
Exec=/opt/LightTable/LightTable %F
Terminal=false
MimeType=text/plain;
Icon=/opt/LightTable/resources/app/core/img/lticon.png
Categories=TextEditor;Development;Utility;
StartupNotify=true
Actions=Window;Document;

Name[en_US]=Light Table

[Desktop Action Window]
Name=New Window
Exec=/opt/LightTable/LightTable -n
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
Exec=/opt/LightTable/LightTable --command new_file
OnlyShowIn=Unity;

```

因此它看起来像:

最后，从 dash 工具或者是应用启动器打开 IDE，好好享受它吧！

---

via: <http://ubuntuhandbook.org/index.php/2015/12/install-light-table-0-8-ubuntu-14-04/>

作者：[Ji m](http://ubuntuhandbook.org/index.php/about/) 译者：[zky001](https://github.com/zky001) 校对：[wxy](https://github.com/wxy)

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


Mozilla 贡献者为大众创建糖尿病项目

Summary: 我最近创立了自己的开源项目Glucosio，带给人们糖尿病管理和研究的开源软件。

赞一个！

糖尿病目前是不是还不能根治？

# Mozilla 贡献者为大众创建糖尿病项目

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

我的开源生涯从我还是一名高中生开始，我总想着自己能成为一名黑客，没有什么恶意的，只是喜欢钻研代码和硬件那种。我第一次接触开源是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](https://opensource.com/users/bkerensa) 译者：[ynmlml](https://github.com/ynmll) 校对：[wxy](https://github.com/wxy)

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


完全自由的 Linux-libre 内核 4.5 发布

Summary: GNU Linux-libre 内核 4.5 基于上游的 Linux 内核 4.5，但是从代码中洁化deblobbing了一些驱动程序。

# 完全自由的 Linux-libre 内核 4.5 发布

拉美自由软件基金会 FSFLA 在 Linux Torvalds [发布了 Linux 内核 4.5](/article-7104-1.html) 两天后，也[发布](http://www.fsfla.org/ikiwiki/selibre/linux-libre/)了他们的 Linux-libre 4.5 内核。

GNU Linux-libre 内核 4.5 基于上游的 Linux 内核 4.5，但是从代码中<ruby> 洁化 <rp>  （ </rp> <rt>  deblobbing </rt> <rp>  ） </rp></ruby>了一些驱动程序，比如 Qualcomm WCNSS SOC、 qat\_c62x、 qat\_c3xxx、 goodix touchscreen 和 adf7242 等。此外，也更新了洁化版的 Nouveau、 Radeon、 Skylake sound 和 XHCI rcar 驱动。

### GNU Linux-libre 内核 4.5 是给谁用的？

GNU Linux-libre 项目创建于很久之前，它致力于为那些遵循自由软件基金会的<ruby>   《GNU 自由操作系统发行版指南》  <rp>  （ </rp> <rt>  GNU Free System Distribution Guidelines </rt> <rp>  ） </rp></ruby>的人们提供上游 Linux 内核的 100% 自由的版本。

GNU Linux-libre 内核设计上与 GNU 操作系统的兼容性有所偏差，不过你可以自由的在你的 GNU/Linux 系统上使用它，无论你是一位要创建基于 Linux 内核的操作系统的开发者，还是一位要希望得到完整的自由的用户！

如果你对 GNU Linux-libre 项目感兴趣，想要将它部署到你的操作系统中，我们建议你去读读 [http://linuxlibre.org](http://linuxlibre.org/) 的官方维基，并[下载 GNU Linux-libre 内核 4.5 的源代码](http://linux.softpedia.com/get/System/Operating-Systems/Kernels/Linux-libre-37653.shtml)。


如何在 FreeBSD 10.2 上安装使用 Nginx 的 Ghost

# 如何在 FreeBSD 10.2 上安装使用 Nginx 的 Ghost

Node.js 是用于开发服务器端应用程序的开源的运行时环境。Node.js 应用使用 JavaScript 编写，能在任何有 Node.js 运行时的服务器上运行。它跨平台支持 Linux、Windows、OSX、IBM AIX，也包括 FreeBSD。Node.js 是 Ryan Dahl 以及在 Joyent 工作的其他开发者于 2009 年创建的。它的设计目标就是构建可扩展的网络应用程序。

Ghost 是使用 Node.js 编写的博客平台。它不仅开源，而且有很漂亮的界面设计、对用户友好并且免费。它允许你快速地在网络上发布内容，或者创建你的混合网站。

在这篇指南中我们会在 FreeBSD 上安装使用 Nginx 作为 web 服务器的 Ghost。我们会在 FreeBSD 10.2 上安装 Node.js、Npm、nginx 和 sqlite3。

### 第一步 - 安装 Node.js npm 和 Sqlite3

如果你想在你的服务器上运行 ghost，你必须安装 node.js。在这一部分，我们会从 freebsd 移植软件库中安装 node.js，请进入库目录 "/usr/ports/www/node" 并通过运行命令 "**make**" 安装。

```
cd /usr/ports/www/node
make install clean

```

如果你已经安装了 node.js，那就进入到 npm 目录并安装它。**npm** 是用于安装、发布和管理 node 程序的软件包管理器。

```
cd /usr/ports/www/npm/
make install clean

```

下一步，安装 sqlite3。默认情况下 ghost 使用 sqlite3 作为数据库系统，但它也支持 mysql/mariadb 和 postgresql。我们会使用 sqlite3 作为默认数据库。

```
cd /usr/ports/databases/sqlite3/
make install clean

```

如果安装完了所有软件，还有检查 node.js 和 npm 的版本：

```
node --version
v0.12.6

npm --version
2.11.3

sqlite3 --version
3.8.10.2

```

### 第二步 - 添加 Ghost 用户

我们会以普通用户 "**ghost**" 身份安装和运行 ghost。用 "adduser" 命令添加新用户：

```
adduser ghost
FILL With Your INFO

```

### 第三步 - 安装 Ghost

我们会把 ghost 安装到 "**/var/www/**" 目录，首先新建目录然后进入到安装目录：

```
mkdir -p /var/www/
cd /var/www/

```

用 wget 命令下载最新版本的 ghost：

```
wget --no-check-certificate https://ghost.org/zip/ghost-latest.zip

```

把它解压到 "**ghost**" 目录：

```
unzip -d ghost ghost-latest.zip

```

下一步，更改属主为 "**ghost**"，我们会以这个用户安装和运行它。

```
chown -R ghost:ghost ghost/

```

都做完了的话，通过输入以下命令切换到 "**ghost**" 用户：

```
su - ghost

```

然后进入到安装目录"/var/www/ghost/"：

```
cd /var/www/ghost/

```

在安装 ghost 之前，我们需要为 node.js 安装 sqlite3 模块，用 npm 命令安装：

```
setenv CXX c++ ; npm install sqlite3 --sqlite=/usr/local

```

**注意： 以 “ghost” 用户运行，而不是 root 用户。**

现在，我们准备好安装 ghost 了，用 npm 命令安装：

```
npm install --production

```

下一步，复制配置文件 "config.example.js" 为 "**config.js**"，用 nano 编辑器编辑：

```
cp config.example.js config.js
nano -c config.js

```

更改 server 模块的第 25 行：

```
host: '0.0.0.0',

```

保存并退出。

现在用下面的命令运行 ghost：

```
npm start --production

```

通过访问服务器 ip 和 2368 号端口验证一下。

以 “ghost” 用户在 "/var/www/ghost" 目录安装了 ghost。

### 第四步 - 作为 FreeBSD 服务运行 Ghost

要在 freebsd 上以服务形式运行应用，你需要在 rc.d 目录添加脚本。我们会在 "**/usr/local/etc/rc.d/**" 目录为 ghost 创建新的服务脚本。

在创建服务脚本之前，为了以服务形式运行 ghost，我们需要安装一个 node.js 模块，用 npm 命令以 **sudo/root** 权限安装 forever 模块：

```
npm install forever -g

```

现在进入到 rc.d 目录并创建名为 ghost 的新文件：

```
cd /usr/local/etc/rc.d/
nano -c ghost

```

粘贴下面的服务脚本：

```
#!/bin/sh

# PROVIDE: ghost
# KEYWORD: shutdown
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"

. /etc/rc.subr

name="ghost"
rcvar="ghost_enable"
extra_commands="status"

load_rc_config ghost
: ${ghost_enable:="NO"}

status_cmd="ghost_status"
start_cmd="ghost_start"
stop_cmd="ghost_stop"
restart_cmd="ghost_restart"

ghost="/var/www/ghost"
log="/var/log/ghost/ghost.log"
ghost_start() {
sudo -u ghost sh -c "cd $ghost && NODE_ENV=production forever start -al $log index.js"
}

ghost_stop() {
sudo -u ghost sh -c "cd $ghost && NODE_ENV=production forever stop index.js"
}

ghost_status() {
sudo -u ghost sh -c "NODE_ENV=production forever list"
}

ghost_restart() {
ghost_stop;
ghost_start;
}

run_rc_command "$1"

```

保存并退出。

下一步，给 ghost 服务脚本添加可执行权限：

```
chmod +x ghost

```

为 ghost 日志创建新的目录和文件，并把属主修改为 ghost 用户：

```
mkdir -p /var/www/ghost/
touch /var/www/ghost/ghost.log
chown -R /var/www/ghost/

```

最后，如果你想运行 ghost 服务，你需要用 sysrc 命令添加 ghost 服务到开机启动应用程序：

```
sysrc ghost_enable=yes

```

用以下命令启动 ghost：

```
service ghost start

```

其它命令：

```
service ghost stop
service ghost status
service ghost restart

```

### 第五步 - 为 Ghost 安装和配置 Nginx

默认情况下，ghost 会以独立模式运行，你可以不用 Nginx、apache 或 IIS web 服务器直接运行它。但在这篇指南中我们会安装和配置 nginx 和 ghost 一起使用。

用 pkg 命令从 freebsd 库中安装 nginx：

```
pkg install nginx

```

下一步，进入 nginx 配置目录并为 virtualhost 配置创建新的目录。

```
cd /usr/local/etc/nginx/
mkdir virtualhost/

```

进入 virtualhost 目录，用 nano 编辑器创建名为 ghost.conf 的新文件：

```
cd virtualhost/
nano -c ghost.conf

```

粘贴下面的 virtualhost 配置：

```
server {
listen 80;

#Your Domain
server_name ghost.me;

location ~* \.(?:ico|css|js|gif|jpe?g|png|ttf|woff)$ {
access_log off;
expires 30d;
add_header Pragma public;
add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
proxy_pass http://127.0.0.1:2368;
}

location / {
add_header X-XSS-Protection "1; mode=block";
add_header Cache-Control "public, max-age=0";
add_header Content-Security-Policy "script-src 'self' ; font-src 'self' ; connect-src 'self' ; block-all-mixed-content; reflected-xss block; referrer no-referrer";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2368;
}

location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }

location ~ /\.ht {
deny all;
}

}

```

保存并退出。

要启用 virtualhost 配置，你需要把那个文件添加到 **nginx.conf**。进入 nginx 配置目录并编辑 nginx.conf 文件：

```
cd /usr/local/etc/nginx/
nano -c nginx.conf

```

在最后一行的前面，包含 virtualhost 配置目录：

```
[......]

include virtualhost/*.conf;

}

```

保存并退出。

用命令 "**nginx -t**" 测试 nginx 配置，如果没有错误，用 sysrc 添加 nginx 到开机启动：

```
sysrc nginx_enable=yes

```

并启动 nginx：

```
service nginx start

```

现在测试所有 nginx 和 virtualhost 配置。请打开你的浏览器并输入： ghost.me

Ghost.me 正在成功运行。

如果你想要检查 nginx 服务器，可以使用 "**curl**" 命令。

Ghost 正在 nginx 上运行。

### 总结

Node.js 是 Ryan Dahl 为创建和开发可扩展服务器端应用程序创建的运行时环境。Ghost 是使用 node.js 编写的开源博客平台，它有漂亮的外观设计并且易于使用。默认情况下，ghost 是可以单独运行的 web 应用程序，并不需要类似 apache、nginx 或 IIS 之类的 web 服务器，但我们也可以和 web 服务器集成（在这篇指南中使用 Nginx）。Sqlite 是 ghost 默认使用的数据库，它还支持 msql/mariadb 和 postgresql。Ghost 能快速部署并且易于使用和配置。

---

via: <http://linoxide.com/linux-how-to/install-ghost-nginx-freebsd-10-2/>

作者：[Arul](http://linoxide.com/author/arulm/) 译者：[ictlyh](http://mutouxiaogui.cn/blog/) 校对：[wxy](https://github.com/wxy)

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


Linux 有问必答：如何通过代理服务器安装 Ubuntu 桌面版

# Linux 有问必答：如何通过代理服务器安装 Ubuntu 桌面版

>
> **问题**: 我的电脑通过 HTTP 代理连接到公司网络。当我尝试从 CD-ROM 在计算机上安装 Ubuntu 桌面时，在检索文件时安装程序会被挂起，检索则不会完成，这可能是由于代理造成的。然而问题是，Ubuntu 的安装程序从不要求我在安装过程中配置代理。那我该怎么使用代理来安装 Ubuntu 桌面？
>
>
>

与 Ubuntu 服务器不太一样，安装 Ubuntu 桌面几乎都是自动安装，没有留下太多自定义的空间，如自定义磁盘分区，手动网络设置，包选择等等。尽管非常简单，一键安装被认为是用户友好的，它不需要用户寻找“高级安装模式”来定制自己的 Ubuntu 桌面。

此外，Ubuntu 默认桌面的安装程序中一个大问题是代理设置。如果你的计算机连接在一个代理上，你会发现 Ubuntu 安装时会卡在准备下载文件处。

这篇文章描述了如何解决当使用代理时 Ubuntu **安装程序的限制和安装 Ubuntu 桌面**。

其基本思路如下。不是直接使用 Ubuntu 的安装程序开始安装，首先进入 live Ubuntu 桌面，配置代理服务器，最后从 live 桌面手动启动 Ubuntu 的安装程序。以下是程序的安装步骤。

从 CD/DVD 或 USB 启动 Ubuntu 桌面后，点击第一个欢迎屏幕上的"Try Ubuntu"。

一旦进入 live Ubuntu 桌面，点击左侧设置图标。

进入 Network 菜单。

手动配置代理服务器。

接下来，打开一个终端。

通过输入以下命令切换到 root 用户：

```
$ sudo su

```

最后，在 root 用户下输入以下命令。

```
# ubiquity gtk_ui

```

然后将启动基于 GUI 的 Ubuntu 安装程序。

继续安装其余部分。

---

via: <http://ask.xmodulo.com/install-ubuntu-desktop-behind-proxy.html>

作者：[Dan Nanni](http://ask.xmodulo.com/author/nanni) 译者：[strugglingyouth](https://github.com/strugglingyouth) 校对：[wxy](https://github.com/wxy)

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


# 五大开源 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 请求头特定属性
* 反向代理
* <ruby> 媒体范围 <rp>  （ </rp> <rt>  media-range </rt> <rp>  ） </rp></ruby>限制
* 支持 SSL
* 支持 IPv6
* 错误页面的本地化 - Squid 可以根据访问者的语言选项对每个请求展示本地化的错误页面
* <ruby> 连接固定 <rp>  （ </rp> <rt>  Connection Pinning </rt> <rp>  ） </rp></ruby>（用于 NTLM Auth Passthrough） - 一种允许 Web 服务器通过 Web 代理使用Microsoft NTLM 安全认证替代 HTTP 标准认证的方案
* 支持<ruby> 服务质量 <rp>  （ </rp> <rt>  QoS, Quality of Service </rt> <rp>  ） </rp></ruby>流
	+ 选择一个 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](http://www.squid-cache.org/)
* 开发: 美国国家应用网络研究实验室(NLANR)和网络志愿者
* 授权: GNU GPL v2
* 版本号: 4.0.1

### Privoxy

Privoxy (Privacy Enhancing Proxy) 是一个非缓存类 Web 代理软件，它自带的高级过滤功能可以用来增强隐私保护、修改页面内容和 HTTP 头部信息、访问控制，以及去除广告和其它招人反感的互联网垃圾。Privoxy 的配置非常灵活，能充分定制已满足各种各样的需求和偏好。它支持单机和多用户网络两种模式。

Privoxy 使用 action 规则来处理浏览器和远程站点间的数据流。

其特性包括：

* 高度配置化——可以完全定制你的配置
* 广告拦截
* Cookie 管理
* 支持“Connection: keep-alive”。可以无视客户端配置而保持外发的持久连接
* 支持 IPv6
* <ruby> 标签化 <rp>  （ </rp> <rt>  Tagging </rt> <rp>  ） </rp></ruby>，允许按照客户端和服务器的请求头进行处理
* 作为<ruby> 拦截 <rp>  （ </rp> <rt>  intercepting </rt> <rp>  ） </rp></ruby>代理器运行
* 巧妙的<ruby> 动作 <rp>  （ </rp> <rt>  action </rt> <rp>  ） </rp></ruby>和过滤机制用来处理服务器和客户端的 HTTP 头部
* 可以与其他代理软件链式使用
* 整合了基于浏览器的配置和控制工具，能在线跟踪规则和过滤效果，可远程开关
* 页面过滤（文本替换、根据尺寸大小删除广告栏, 隐藏的“web-bugs”元素和 HTML 容错等）
* 模块化的配置使得标准配置和用户配置可以存放于不同文件中，这样安装更新就不会覆盖用户的个性化设置
* 配置文件支持 Perl 兼容的正则表达式，以及更为精妙和灵活的配置语法
* GIF 去动画
* 旁路处理大量<ruby> 点击跟踪 <rp>  （ </rp> <rt>  click-tracking </rt> <rp>  ） </rp></ruby>脚本（避免脚本重定向）
* 大多数代理生成的页面（例如 "访问受限" 页面）可由用户自定义HTML模板
* 自动监测配置文件的修改并重新读取
* 大多数功能可以基于每个站点或每个 URL 位置来进行控制

* 网站: [www.privoxy.org](http://www.privoxy.org/)
* 开发: 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 的<ruby> 分发器 <rp>  （ </rp> <rt>  Director </rt> <rp>  ） </rp></ruby>
* 多台后端主机间的负载均衡
* 支持 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](https://www.varnish-cache.org/)
* 开发: 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 <ruby> 管道 <rp>  （ </rp> <rt>  pipelining </rt> <rp>  ） </rp></ruby>
* 下载被中断时缓存起始部分，当需要续传时用<ruby> 区间 <rp>  （ </rp> <rt>  Range </rt> <rp>  ） </rp></ruby>请求来完成下载
* 将 HTTP/1.0 的客户端请求升级为 HTTP/1.1，然后按照客户端支持的级别进行升级或降级后回复
* 全面支持 IPv6 （作用域（链路本地）地址除外）
* 作为 IPv4 和 IPv6 网络的网桥
* 内容过滤
* 能使用<ruby> Poor Man 多路复用技术 <rp>  （ </rp> <rt>  Poor Man's Multiplexing </rt> <rp>  ） </rp></ruby>降低延迟
* 支持 SOCKS 4 和 SOCKS 5 协议
* HTTPS 代理
* 扮演透明代理的角色
* 可以与 Privoxy 或 tor 一起运行

* 网站: [www.pps.univ-paris-diderot.fr/~jch/software/polipo/](http://www.pps.univ-paris-diderot.fr/%7Ejch/software/polipo/)
* 开发: 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](https://banu.com/tinyproxy/)
* 开发: 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/) 荣誉推出


年轻人，你为啥使用 Linux

然后我被它的高性能给震精了。<br />
震精。。。

理由？理由就是感觉不错，不过现在我又回到WIN了

我可以说是为了自由吗？哈哈。

1、不需要找某某软件破解版

2、不需要找某某软件去广告版

3、不需要安装某某杀毒软件全家桶

4、我有必要说这么多理由吗？

哈哈哈，bazz2 的翻译风格是语气比较活跃自由~

“我也不认为命令行界面很让人难以接受，因为我小时候就接触过 DOS 系统。”

“我当时还不知道自己在玩什么，但是玩得很嗨皮。”

                                                                                ————很喜欢这两句话，呵呵！

都在很小的年纪就开始使用Linux了，我一直到了大学才知道有Linux这个东西。

很简单，用了两年的linux，比使用12年windows学到的都多

人家西方国会网站,公民可以写提案达到法定人数,就成国会议员议案...还可提问,政府人员,1周内必须答复,否则,国会议员直接质问 弹劾 ...[路过]有了国会网站,不用天天发微博…有事上国会网站…

你会网站开发???…你会程序开发???...

每个人可用公民身份证登陆或手机号登录或邮箱登记…

进入后可写提案可提问…

文字图片声音视频都要能链接加载…

里面还要有单一控键工具…客户可虽时组合安装…

提案界面可根据时间可分类可搜索可…根据提案支持…中立…反对人数…可制选可排续…

  增加两个界面一个是提案界面一个是提问界面…

  所

18岁知道的，现在22岁了，当时用的是ubuntu12。04

是的，因为你们都是孩纸，不需要工作，不需要完成任务，我小时候跟他们一样很嗨玩着DOS，cd 目录然后play.bat玩各种游戏。也是得益于当时我才好入手Linux而不厌倦命令行，可是，当工作了，我发现根本没这个时间浪费在重复制造齿轮还有深入研究了东西才能用的工具上面。Linux这种目录繁杂的地方根本不好维护，而且不同的机器运行起来有不同的bug（驱动支持不一）让人感觉将就用着。应用程序容器化优势是有的，工具好不好用才是我们所追求的，开不开源只是道德、慈善或法律的约束。自从有了OS X，我再也不用担心机器高热，不需要费心思配置

另外，每天上下班就很忙，有一次同学让我挤时间帮她们装系统，身边很多考试啦、生活琐事更重要的都没完成，整天花自己的时间给别人装系统爽吗？有一天我写了一个密码生成器花了半小时我还精心看了一下哪种算法离散度高（还百度了数学等各种复杂的问题）然而网上早就有很多的脚本，我很后悔那天浪费这半小时时间因为我还有别的事情在身结果机会就划过了，我只想问一句为了装个逼卖个萌告诉大家我在用类Unix在写程序自己解决问题重复制造齿轮爽吗？只能说得不偿失

各个阶段干各自的事情，你也是这么走过来的，Linux那么多发行版也不是让逼着大家一个一个学，选定一个其实就挺好的，要实事求是地分析需求而不是一副倚老卖老的架子

不是每一个用linux的人都是为了重复造轮子，重复解决别人已经解决的问题才是重复造轮子。网上的脚本是你的知识么？ 是你自己的能力么？？自己不实践一遍你就明白了，那你咋不上天呢？？<br />
别人让你给装系统也是Linux的锅？？？一口一个你们都是孩子，现在还在被别人拉去装系统？？？自己用mac自己开心就行了，那是你的解决方案。不要自己的问题解决了，就觉得大家都应该或者有条件和你一样的解决方式。你这不是何不食肉糜么？

13岁，装了ubuntu 14，04 是啥时候

14.04 显然是 2014 年。·~

赞同！

非常不赞同你的观点！

赞同！

我的X220古董机，装个Win7都卡，我知道可能我换个固态然后装个Win8、Win10可能会好一些，但发现装了Linux，虚拟机再加个Win7，整体都用得很舒爽，拿来当日常办公再好不过了。

赞同，linux让人真正理解了操作系统，windows我一点都没学会多少东西。

为了开发 好用，为了不动不动就卡死，为了好好用系统，为了不装杀毒软件。为了。。。。

用IDE我使用windows，字处理我用Linux。os X的命令行功能比不过GNU/linux，点鼠标不如windows。我在windows下跑个linux虚拟机也比用osX强。不要说sifari 那废品，开了10几个标签，firefox、IE这些早把其他标签的网页内容缓冲好了，sifari把页面加载了，但是像新闻的评论点回来后还得等加载

好玩

万一有广告咋办？

這麼小就玩linux了.

来自广东中山的 Internet Explorer 8.0|Windows 7 用户

回去找小侄子，玩Linux

好像我14、5岁接触到的电脑，还都是跑DOS，然后出来win，迅速被她的图形界面所折服，用了很长一段win后，有接触过Linux，还是盗版盘来着卖10多块呢，尝试着安装了一下，当然是带图形界面的，体验特别差，驱动不全，卡顿，由于当时家庭上网还主要靠猫，所以软件也没有地方搞，市面上也没有教材可以参考，更表说精通Linux的大牛了。然后Linux果断被我放弃了。直到最近几年因为工作关系才重新拾起，用惯了win感觉Linux还是不够亲切，只不过作为一个攻城狮来说，Linux更容易理解！

使用linux让自己更加了解计算机编程，因为要从事底层开发工作所以必须会用linux

简而言之：内心的直觉！

14岁，openSUSE Tumbleweed，喜欢折腾

# 年轻人，你为啥使用 Linux

Linux 越来越流行，很多 OS X 或 Windows 用户都转移到 Linux 阵营了。但是你知道是什么让他们开始使用 Linux 的吗？一个 Reddit 用户在网站上问了这个问题，并且得到了很多有趣的回答。

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

一个名为 SilverKnight 的用户在 Reddit 的 Linux 版块上问了如下问题：

>
> 我知道这个问题肯定被问过了，但我还是想听听年轻一代使用 Linux 的原因，以及是什么让他们坚定地成为 Linux 用户。
>
>
> 我无意阻止大家讲出你们那些精彩的 Linux 故事，但是我还是对那些没有经历过什么精彩故事的新人的想法比较感兴趣。
>
>
> 我27岁，半吊子 Linux 用户，这些年装过不少发行版，但没有投入全部精力去玩 Linux。我正在找更多的、能让我全身心投入到 Linux 潮流的理由，或者说激励。
>
>
> [详见 Reddit](https://www.reddit.com/r/linux/comments/3hb2sr/question_for_younger_users_why_did_you_start/)
>
>
>

以下是网站上的回复：

>
> **DoublePlusGood**：我12岁开始使用 Backtrack（现在改名为 Kali），因为我想成为一名黑客（LCTT 译注：原文“1337 haxor”，1337 是 leet 的火星文写法，意为'火星文'，haxor 为 hackor 的火星文写法，意为'黑客'，另一种写法是 1377 h4x0r，满满的火星文文化）。我现在一直使用 ArchLinux，因为它给我无限自由，让我对我的电脑可以为所欲为。
>
>
> **Zack**：我记得是12、3岁的时候使用 Linux，现在15岁了。
>
>
> 我11岁的时候就对 Windows XP 感到不耐烦，一个简单的功能，比如关机，TMD 都要让我耐心等着它慢慢完成。
>
>
> 在那之前几个月，我在 freenode IRC 聊天室参与讨论了一个游戏，它是一个开源项目，大多数用户使用 Linux。
>
>
> 我不断听到 Linux 但当时对它还没有兴趣。然而由于这些聊天频道（大部分在 freenode 上）谈论了很多编程话题，我就开始学习 python 了。
>
>
> 一年后我尝试着安装 GNU/Linux （主要是 ubuntu）到我的新电脑（其实不新，但它是作为我的生日礼物被我得到的）。不幸的是它总是不能正常工作，原因未知，也许硬盘坏了，也许灰尘太多了。
>
>
> 那时我放弃自己解决这个问题，然后缠着老爸给我的电脑装上 Ubuntu，他也无能为力，原因同上。
>
>
> 在追求 Linux 一段时间后，我打算抛弃 Windows，使用 Linux Mint 代替 Ubuntu，本来没抱什么希望，但 Linux Mint 竟然能跑起来！
>
>
> 于是这个系统我用了6个月。
>
>
> 那段时间我的一个朋友给了我一台虚拟机，跑 Ubuntu 的，我用了一年，直到我爸给了我一台服务器。
>
>
> 6个月后我得到一台新 PC（现在还在用）。于是起想折腾点不一样的东西。
>
>
> 我打算装 openSUSE。
>
>
> 我很喜欢这个系统。然后在圣诞节的时候我得到树莓派，上面只能跑 Debian，还不能支持其它发行版。
>
>
> **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。
>
>
> **Micioonthet**：第一次听说 Linux 是在我5年级的时候，当时去我一朋友家，他的笔记本装的就是 MEPIS（Debian的一个比较老的衍生版），而不是 XP。
>
>
> 原来是他爸爸是个美国的社会学家，而他全家都不信任微软。我对这些东西完全陌生，这系统完全没有我熟悉的软件，我很疑惑他怎么能使用。
>
>
> 我13岁那年还没有自己的笔记本电脑，而我另一位朋友总是抱怨他的电脑有多慢，所以我打算把它买下来并修好它。我花了20美元买下了这台装着 Windows Vista 系统、跑满病毒、完全无法使用的惠普笔记本。我不想重装讨厌的 Windows 系统，记得 Linux 是免费的，所以我刻了一张 Ubuntu 14.04 光盘，马上把它装起来，然后我被它的高性能给震精了。
>
>
> “我的世界（Minecraft）”（由于它允许运行在 JAVA 上，所以当时它是 Linux 下为数不多的几个游戏之一）在 Vista 上只能跑5帧每秒，而在 Ubuntu 上能跑到25帧。
>
>
> 我到现在还会偶尔使用一下那台笔记本，Linux 可不会在乎你的硬件设备有多老。
>
>
> 之后我把我爸也拉入 Linux 行列，我们会以很低的价格买老电脑，装上 Linux Mint 或其他轻量级发行版，这省了好多钱。
>
>
> **Webtm**：我爹每台电脑都会装多个发行版，有几台是 opensuse 和 Debian，他的个人电脑装的是 Slackware。所以我记得很小的时候一直在玩 debian，但没有投入很多精力，我用了几年的 Windows，然后我爹问我有没有兴趣试试 debian。这是个有趣的经历，在那之后我一直使用 debian。而现在我不用 Linux，转投 freeBSD，5个月了，用得很开心。
>
>
> 完全控制自己的系统是个很奇妙的体验。开源界有好多酷酷的软件，我认为在自己解决一些问题并且利用这些工具解决其他事情的过程是最有趣的。当然稳定和高效也是吸引我的地方。更不用说它的保密级别了。
>
>
> **Wyronaut**：我今年18，第一次玩 Linux 是13岁，当时玩的 Ubuntu，为啥要碰 Linux？因为我想搭一个“我的世界”的服务器来和小伙伴玩游戏，当时“我的世界”可是个新鲜玩意儿。而搭个私服需要用 Linux 系统。
>
>
> 当时我还是个新手，对着 Linux 的命令行有些傻眼，因为很多东西都要我自己处理。还是多亏了 Google 和维基，我成功地在多台老 PC 上部署了一些简单的服务器，那些早已无人问津的老古董机器又能发挥余热了。
>
>
> 跑过游戏服务器后，我又开始跑 web 服务器，先是跑了几年 HTML，CSS 和 PHP，之后受 TheNewBoston 视频的误导转到了 JAVA。
>
>
> 一周后放弃 JAVA 改用 Python，当时学习 Python 用的书名叫《Learn Python The Hard Way》，作者是 Zed A. Shaw。我花了两周学完 Python，然后开始看《C++ Primer》，因为我想做游戏开发。看到一半（大概500页）的时候我放弃了。那个时候我有点讨厌玩电脑了。
>
>
> 这样中断了一段时间之后，我决定学习 JavaScript，读了2本书，试了4个平台，然后又不玩了。
>
>
> 现在到了不得不找一所学校并决定毕业后找什么样工作的糟糕时刻。我不想玩图形界面编程，所以我不会进游戏行业。我也不喜欢画画和建模。然后我发现了一个涉及网络安全的专业，于是我立刻爱上它了。我挑了很多 C 语言的书来度过这个假期，并且复习了一下数学来迎接新的校园生活。
>
>
> 目前我玩 archlinux，不同 PC 上跑着不同任务，它们运行很稳定。
>
>
> 可以说 Linux 带我进入编程的世界，而反过来，我最终在学校要学的就是 Linux。我估计会终生感谢 Linux。
>
>
> **Linuxllc**：你们可以学学像我这样的老头。
>
>
> 扔掉 Windows！扔掉 Windows！扔掉 Windows！给自己一个坚持使用 Linux 的理由，那就是完全，彻底，远离，Windows。
>
>
> 我在 2003 年放弃 Windows，只用了5天就把所有电脑跑成 Linux，包括所有的外围设备（LCTT 译注：比如打印机？）。我不玩 Windows 里的游戏，只玩 Linux 里的。
>
>
> **Highclass**：我28岁，不知道还是不是你要找的年轻人类型。
>
>
> 老实说我对电脑挺感兴趣的，当我还没接触'自由软件哲学'的时候，我认为 free 是免费的意思。我也不认为命令行界面很让人难以接受，因为我小时候就接触过 DOS 系统。
>
>
> 我第一个发行版是 Mandrake，在我11岁还是12岁那年我把家里的电脑弄得乱七八糟，然后我一直折腾那台电脑，试着让我自己的技能提升一个台阶。现在我在一家公司全职使用 Linux。（请允许我耸个肩）。
>
>
> **Matto**：我的电脑是旧货市场淘回来的，装 XP，跑得慢，于是我想换个系统。Google 了一下，发现 Ubuntu。当年我15、6岁，现在23了，就职的公司内部使用 Linux。
>
>
> [更多评论移步 Reddit](https://www.reddit.com/r/linux/comments/3hb2sr/question_for_younger_users_why_did_you_start/)
>
>
>

---

via: <http://www.itworld.com/article/2972587/linux/why-did-you-start-using-linux.html>

作者：[Jim Lynch](http://www.itworld.com/author/Jim-Lynch/) 译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

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


为什么你应该放弃 Windows10 而选择 Linux

我放弃巨硬是因为其越用越慢，到后来直接受不了

帖子好水......

呵呵。

为了尝鲜选的Linux -  -

连续用Linux快一年了，从ubuntu到EOS到Mint，现在用Fedora

我偏不

Ubuntu 用户做如是回答.......

说的非常对，为什么我又安装了WIN10....用了三年UBUNTU~

我以为文章会罗列一大堆理由呢。

同意文章的观点。

我也不

为何不放弃Windows而选择ps4，xbox one

对的，不能选择win7+的系统

以前装过win10，现在退回win7了

还在学习中

选择Linux，确实是相当不错的；尽管中国政府最终还是放弃了国产Linux。

LINUX还是差点易用性，比如软件安装，一个好系统主要就是易用性，就是傻瓜系统，毕竟好多用电脑的人对于电脑基础不是很懂的，也不知道什么命令，需要的就是拿起就用，LINUX如果不考虑大众的基本需求的话，走不远。。。。。。还有兼容问题，无法兼容win的软件是硬伤，毕竟现在流行的软件都是WIN的，虽然有WINE，但是说实话真心不怎么样。如果LINUX还是这样闭关自守的，不考虑易用傻瓜系统兼容，那么就只能越来越没落，自娱自乐的系统是无法让大多数人接受的

sb

使用之后才发表意见吧, 都是些window用户. 简单点,linux桌面用户可以使用IP伪装,隐藏你的上网记录. 呵呵,window下也可以,但是需要购买专用软件. 还有linux下你可以封杀那些盗取你隐私的公司的IP和域名, 计算机丢弃向这些公司发送数据包.

# 为什么你应该放弃 Windows10 而选择 Linux

自从 Windows10 出来以后，各种媒体都报道过它的隐藏间谍功能。ZDNet 列出了一些放弃 Windows10 的理由。

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

SJVN 在 ZDNet 的报告：

>
> 你试试关掉 Windows10 的数据分享功能，坏消息来了：window10 会继续把你的数据分享给微软公司。请选择 Linux 吧。
>
>
> 你可以有很多方法不让 Windows10 泄露你的秘密，但你不能阻止它交谈。Cortana，win10 小娜，语音助手，就算你把她关了，她也会把数据发给微软公司。这些数据包括你的电脑 ID，微软用它来识别你的 PC 机。
>
>
> 所以如果这些泄密给你带来了烦恼，你可以使用老版本 Windows7，或者换到 Linux。然而，当 Windows7 不再提供技术支持的那天到来，如果你还想保留隐私，最终你还是只能选择 Linux。
>
>
> 这里还有些小众的桌面系统能保护你的隐私，比如 BSD 家族的 FreeBSD，PCBSD，NetBSD，eComStation，OS/2。但是，最好的选择还是 Linux，它提供最低的学习曲线。
>
>
> [详情移步 ZDNet](http://www.zdnet.com/article/sick-of-windows-spying-on-you-go-linux/)
>
>
>

---

via: <http://www.itworld.com/article/2972587/linux/why-did-you-start-using-linux.html>

作者：[Jim Lynch](http://www.itworld.com/author/Jim-Lynch/) 译者：[bazz2](https://github.com/bazz2) 校对：[wxy](https://github.com/wxy)

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


Summary: 最近，Manjaro 的开发者为 ARM 处理器发布了一个 alpha 版本。这是这个基于 Archlinux 的发行版的一大进步，在此之前，它只能在 32 位或者 64 位的个人电脑上运行。

# Manjaro Linux 即将推出支持 ARM 处理器的 Manjaro-ARM

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

最近，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，但是毫无疑问，支持的设备数量会随时间增长。

现在这个项目的开发者有 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](http://itsfoss.com/author/john/) 译者：[name1e5s](https://github.com/name1e5s) 校对：[wxy](https://github.com/wxy)

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


GIMP 过去的 20 年：一点一滴的进步

Summary: 加州大学伯克利分校的 Peter Mattis 和 Spencer Kimball 早在 1995 年的时候开始了该程序的开发。到了 1997 年，该程序成为了 GNU Project 官方的一部分，并正式更名为 GIMP。

一步一脚印：GNOME 十八年进化史

GIMP 过去的 20 年：一点一滴的进步

下一个是____

BGM是什么歌，好稀饭

十年都没什么变化。。。不过说实话，不在于软件，有的大触用画图都能撸出一个美图

LCTT 的 GitHub 仓库好像还有类似的话题。下一篇期待你的翻译。

GIMP都4年没大更新了，这还叫一步一个脚印？都要死了！

来自湖北武汉的 Internet Explorer 11.0|Windows 10 用户

# GIMP 过去的 20 年：一点一滴的进步

[GIMP](https://gimp.org/)（<ruby> GNU 图像处理程序 <rp>  （ </rp> <rt>  GNU Image Manipulation Program </rt> <rp>  ） </rp></ruby>）—— 一流的开源自由的图像处理程序。加州大学伯克利分校的 Peter Mattis 和 Spencer Kimball 早在 1995 年的时候开始了该程序的开发。到了 1997 年，该程序成为了 [GNU Project](http://www.gnu.org/) 官方的一部分，并正式更名为 GIMP。时至今日，GIMP 已经成为了最好的图像编辑器之一，并有经常有 “GIMP vs Photoshop” 之争。

### 1995 年 11 月 21 日，首版发布

```
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

GIMP：通用图像处理程序
------------------------------------------------

GIMP 是为各种图像编辑操作提供一个直观的图形界面而设计的。
以下是 GIMP 的主要功能介绍：
 图像查看
 -------------

   *  支持 8 位，15 位，16 位和 24 位颜色
   *  8 位色显示图像的排序和 Floyd-Steinberg 抖动算法
   *  以 RGB 色、灰度和索引色模式查看图像
   *  同时编辑多个图像
   *  实时缩放和全图查看
   *  支持 GIF、JPEG、PNG、TIFF 和 XPM 格式

 图像编辑
 -------------

   *  选区工具：包括矩形、椭圆、自由、模糊、贝尔赛曲线以及智能
   *  变换工具：包括旋转、缩放、剪切和翻转
   *  绘画工具：包括油漆桶、笔刷、喷枪、克隆、卷积、混合和文本
   *  效果滤镜：如模糊和边缘检测
   *  通道和颜色操作：叠加、反相和分解
   *  组件功能：允许你方便的添加新的文件格式和效果滤镜
   *  多步撤销/重做功能

```

### 1996 年，GIMP 0.54 版

GIMP 0.54 版需要具备 X11 显示、X-server 以及 Motif 1.2 组件，支持 8 位、15 位、16 位和 24 位的颜色深度和灰度，支持 GIF、JPEG、PNG、TIFF 和 XPM 图像格式。

基本功能：具备矩形、椭圆、自由、模糊、贝塞尔曲线和智能等选择工具，旋转、缩放、剪切、克隆、混合和翻转等变换工具。

扩展工具：文字添加、效果滤镜、通道和颜色操纵工具、撤销/重做功能。由于第一个版本支持组件扩展，才方便添加这些功能。

GIMP 0.54 版可以在 Linux、HP-UX、Solaris 和 SGI IRIX 中运行。

### 1997 年，GIMP 0.60 版

这只是一个开发版本，并非面向用户发布的。GIMP 有了新的工具包——GDK（GIMP Drawing Kit，GIMP 绘图工具）和 GTK（GIMP Toolkit，GIMP 工具包），并弃用 Motif。GIMP 工具包随后也发展成为了 GTK+ 跨平台的微件工具包。新特性：

* 基本的图层功能
* 子像素取样
* 笔刷间距
* 改进剂喷枪功能
* 绘制模式

### 1997 年，GIMP 0.99 版

从 0.99 版本开始，GIMP 有了宏脚本的支持。GTK 及 GDK 功能增强版正式更名为 GTK+。其他更新：

* 支持大体积图像（大于 100M）
* 新增原生格式 – XCF
* 新的 API – 使得更加容易编写组件和扩展

### 1998 年，GIMP 1.0 版

GIMP 和 GTK+ 开始分为两个不同的项目。GIMP 官网进行重构，包含新教程、组件和文档。新特性：

* 基于瓦片式（tile）的内存管理
* 组件 API 做了大量改变
* XFC 格式现在支持图层、导航和选择
* web 界面
* 在线图像生成

### 2000 年，GIMP 1.2 版

新特性：

* 进行了非英文语言翻译
* 修复 GTK+ 和 GIMP 中的大量 bug
* 增加大量组件
* 图像映射
* 新工具：调整大小、测量、加亮、燃烧效果、颜色吸管和翻转等。
* 图像管道
* 保存前可以进行图像预览
* 按比例缩放的笔刷进行预览
* 通过路径进行递归选择
* 新的导航窗口
* 支持图像拖拽
* 支持水印

### 2004 年，GIMP 2.0 版

重大更新 – 更新 GTK+ 2.x toolkit.

### 2004 年，GIMP 2.2 版

修复大量 Bug 并支持图像拖拽

### 2007 年，GIMP 2.4 版

新特性：

* 更好的图像拖拽体验
* 使用新的脚本解释器 Script-Fu 替代了 旧的 Ti-Fu
* 新组件：影印效果、光晕效果、霓虹灯效果、卡通效果、小狗笔刷、水珠笔刷以及其他组件

### 2008 年，GIMP 2.6 版

新特性：

* 更新了图形界面
* 新的选择工具
* 集成了 GEGL （GEneric Graphics Library，通用图形库）
* 为 MDI 行为实现了实用程序窗口提示

### 2012 年，GIMP 2.8 版

新特性：

* GUI 在视觉上做了一些改变
* 新的保存和导出菜单
* 更新文本框工具
* 支持图层群组
* 支持 JPEG2000 和导出为 pdf
* 网页截图工具

---

via: <https://tlhp.cf/20-years-of-gimp-evolution/>

作者：[Pavlo Rudyi](https://tlhp.cf/author/paul/) 译者：[GHLandy](https://github.com/GHLandy) 校对：[wxy](https://github.com/wxy)

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


要获得开源社区的信任，微软还需要做的一件事

Summary: 虽然我知道微软做了一些改变，但是我并不真的相信微软改变了它的反开源路线。

难道不是吧office开源吗

兄弟！  你是想让人家去买肾嘛

Windows 10要开源才对，鼓掌！！！

为什么微软不可信，lumia前车之鉴

我宁愿相信微软件是是为了“拥抱、扩展、摧毁”而来，呵呵.如果真是那样，我只想说：748，微软！

此文无非是理想主义者的言论

别人辛辛苦苦研发了很多年，投入了XX亿的资金，申请了专利，你一句话就想直接拿来免费用，门头没有

或许真会成为 “拥抱、扩展、毁灭”，看看微软对待“Secure Boot”的态度。依稀记得微软怂恿过PC厂商，让他们不给用户提供关闭“Secure Boot”的选项。正面是在“拥抱”开源，暗地里干的那些勾当却是……

HEHE

虽然我知道微软做了一些改变，但是我并不真的相信微软改变了它的反开源路线。

# 要获得开源社区的信任，微软还需要做的一件事

>
> 观点：停止向企业收取虚假的 Android 专利。是的，没错，现在还在收着！
>
>
>

我是一个 Linux 和开源软件的老用户了，我是在 Linux Mint 17.3 桌面上使用 LibreOffice 5.1 写的这篇文章。**虽然我知道微软做了一些改变，但是我并不真的相信微软改变了它的反开源路线。**

让我们来看看微软都做了些什么。2014年，微软 CEO <ruby> 萨提亚·纳德拉 <rp>  （ </rp> <rt>  Satya Nadella </rt> <rp>  ） </rp></ruby> [公开宣称说微软爱 Linux](/article-4056-1.html)。甚至连曾经说过“Linux 是癌症”的前微软 CEO <ruby> 史蒂夫·鲍尔默 <rp>  （ </rp> <rt>  Steve Ballmer </rt> <rp>  ） </rp></ruby>，现在也[认为微软走向开源软件是一个好的方向](/article-7095-1.html)。

这并不是微软的最新举措。早在 2008 年，时任微软平台技术战略总监的 Sam Ramji 就说过，“[微软的开源战略](http://www.zdnet.com/blog/microsoft/microsofts-open-source-strategy-a-picture-is-worth-a-thousand-words/1142)关注于帮助客户和合作伙伴们在现今琳琅满目的技术世界取得成功。”

**空谈容易，代码才是干货，微软确实也做到了这一点。**

2016 年伊始，微软[宣布开发 Linux 上的 SQL Server](/article-7082-1.html)、[将 Eclipse 和 Visual Studio 集成到一起](/article-7087-1.html)、发布了[基于 Debian Linux 的开源网络交换机](/article-7091-1.html)，已经[将 RedHat RHEL 添加到它的 Azure 混合云](/article-7020-1.html)里面。

这仅仅是一部分。去年，微软努力[将 .NET Core 带到了 Linux 上](/article-4821-1.html)，[在 Azure 云上支持 Debian GNU/Linux](/article-6685-1.html)，甚至还有[它自己的 Linux 认证](/article-6724-1.html)。在此基础上，它[在 Ubuntu 上提供了开源的 Hadoop 大数据软件](http://www.zdnet.com/article/microsoft-deploys-first-major-server-application-on-ubuntu-linux/)。微软甚至还有[它自己的 Linux 发行版——Azure Cloud Switch](/article-6269-1.html)。

**但是，为什么微软做了这么多开源举措，仍然有很多开源爱好者和开发者认为微软不值得信任？**

一些人讨厌微软是因为他们认为微软又在玩老一套的“<ruby>   拥抱、扩展、摧毁  <rp>  （ </rp> <rt>  Embrace, extend, and extinguish </rt> <rp>  ） </rp></ruby>”的把戏。但是我不这样认为，微软确实在开源许可证下释放了很多代码，这里并没有隐藏的陷阱。

另外一些人讨厌微软纯粹是因为他们一直讨厌而已。对于他们而言，今天的微软同上世纪90年代到本世纪初那个资助 [SCO 攻击 Linux](http://www.zdnet.com/article/scos-legal-war-against-ibm-and-linux-comes-to-an-end/) 的微软并没什么不同。其实这也是不对的。

开源社区的越来越多的人们认识到 2016 年的微软不再贪婪，不再是<ruby> 比尔·盖茨 <rp>  （ </rp> <rt>  Bill Gates </rt> <rp>  ） </rp></ruby>和 <ruby> 史蒂夫·鲍尔默 <rt>  Steve Ballmer </rt></ruby>时代的那个微软了。

然而，还有一件事不能让开源人士们真正相信微软：**微软还在继续要求 Android 厂商支付 Android 专利费用**。在最近的三月初，[微软又签下了两份的 Android 专利许可](http://www.zdnet.com/article/microsofts-latest-two-android-patent-pals-wistron-and-rakuten/)。

每次我写了微软开源方面的进展的文章，读者们就会告诉我，如果微软真的成了一个开源拥护者，那它就**应该停止强迫其它公司们为它的虚假 Android 专利付费**。

**虚假？是的，虚假！**

根据中国商务部公布的信息，我们知道[微软在 Android 方面有 310 项专利](http://www.zdnet.com/article/310-microsoft-patents-used-in-android-licensing-agreements-revealed-by-chinese-gov/)。据关注于知识产权和无形资产的全球性金融机构 [M-Cam](http://www.m-cam.com//) 的报告，[微软所拥有的 Android 专利中涉及的专利内容已经是“公开领域的一部分”了](http://www.zdnet.com/article/m-cam-casts-doubts-on-microsofts-android-patent-portfolio/)。

这也是为什么2015年9月[微软和 Google/摩托罗拉达成了专利和解](http://www.zdnet.com/article/google-and-microsoft-make-patent-peace/)的一个原因。微软并没有放弃它的专利，但是不再就这些专利向 Google 收费。

那么，为什么人们宁愿付费而不是打专利官司呢？因为专利诉讼非常非常的昂贵。相比去法院碰碰运气，人们宁愿为每台设备花费 $5 到 $15 的小钱。

而微软呢？在 2014 年，微软就从它的 Android 专利上收入了 34 亿美元。仅仅[三星就向微软单独支付了 10 亿美金的 Android 专利费用](http://www.zdnet.com/article/biggest-patent-win-ever-microsofts-billion-dollar-a-year-samsung-deal/)。这甚至对于世界五百强公司来说也是一笔很大的钱了。

在最近的一个财季，批量许可和专利就[占到了微软全部收入的大约 9%](http://www.zdnet.com/article/google-microsoft-apple-where-does-the-money-come-from/)。

这就是为什么微软绝不会停止 Android 专利收费的原因，这个雷蒙德的家伙可以每年从这些专利中源源不断得到数十亿美元，它才不会放弃呢。

为什么呢？虽然一些开源程序员不喜欢微软的专利流氓做法，但是一些诸如 Canonical 和 [RedHat](/article-6528-1.html) 这样的主要的开源企业仍然在同微软合作。

底线是底线。反正那些骨灰级的自由软件开发者绝不会信任微软，可那又如何？只要微软能在同开源企业合作的同时依旧收取 Android 专利费用，它就没有理由停下来不收。


多达 95% 的 HTTPS 链接能被黑客劫持

Summary: 由于服务器管理员没能正确设置 HTTP Strict Transport Security （HSTS），现今大量的 HTTPS 流量都能被轻松劫持。

缺省最高安全性不就行了么

为什么我设置了http没有强制跳转https

你确认这个 HSTS 头发送了？

# 多达 95% 的 HTTPS 链接能被黑客劫持

>
> 支持 HSTS 比你想象的更容易。
>
>
>

由于服务器管理员没能正确设置 [HTTP Strict Transport Security （HSTS）](/article-5266-1.html)，现今大量的 HTTPS 流量都能被轻松劫持。

HSTS 是一个被当前大多数 Web 浏览器所支持的 Web 安全策略，它可以帮助 Web 管理员保护他们的服务器和用户避免遭到 HTTPS 降级、中间人攻击和 Cookie 劫持等 HTTPS 攻击的危害。

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

### 95% 的 HTTPS 连接处于风险中

据最近的 [Netcraft study](http://news.netcraft.com/archives/2016/03/17/95-of-https-servers-vulnerable-to-trivial-mitm-attacks.html) 报告数据显示，当前多达 95% 的服务器所运行的 HTTPS 没有正确地设置 HSTS 或其它配置，以至于将 HTTPS 连接暴露于上述攻击风险之中。

更值得注意的是，Netcraft 在三年前进行的同样扫描，不正确配置的 HSTS 比例仍同现在一样。这表明 Web 管理员们并没有学会或被告知如何正确地设置 HSTS。

针对这些不安全的站点的最容易的攻击场景是 HTTPS 降级攻击，攻击者可以选择多种方式来迫使一个看起来安全的 HTTPS 连接根本不使用数据加密或使用更弱的算法，这样攻击者就可以进行数据窃取了。

据安全研究人员称，在这 95% 的没有正确设置 HSTS 的站点中，有很多银行和金融机构的网站。

### 你可以通过下面一行配置激活你的 HSTS

不需要费脑筋，你只需要将下述的一行配置添加到你的 HTTPS 服务器配置中即可实现 HSTS。

```
Strict-Transport-Security: max-age=31536000;
```

这一行可以让服务器告诉浏览器仅通过 HTTPS 连接来访问其内容，其策略有效期为长达一年的最大有效时间。

当上述配置生效后，即便用户在他的浏览器中输入 URL 时写了 “http://”前缀，浏览器仍将会自动切换“https://”。

更多关于 HTTPS 及 HSTS 的技术实现细节，请参阅以下文章：

* [跑步进入全站 HTTPS ，这些经验值得你看看](/article-6723-1.html)
* [增强 nginx 的 SSL 安全性](/article-5374-1.html)
* [如何配置使用 HTTP 严格传输安全（HSTS）](/article-5266-1.html)
* [作为 HTTPS 的骨灰粉，怎么可以不加入 HSTS 预载入列表](/article-6754-1.html)
* [大型网站的 HTTPS 实践（三）：基于协议和配置的优化](/article-5393-1.html)
* [SSL/TLS 加密新纪元 - Let's Encrypt](/article-6565-1.html)


Summary: 什么是 ubuntuBSD？据项目发起人 Jon Boden 说，该项目的目标是将 FreeBSD 内核带到 Ubuntu Linux 上，它的灵感来自于 Debian GNU/kFreeBSD。

不可思议

有什么优势？

一直用Linux mint的路过。。

# 当 FreeBSD 遇到 Ubuntu 会发生什么？ubuntuBSD 项目发布安装镜像

>
> 它带来了完整的 ZFS 集成和 Xfce 桌面。
>
>
>

3/12 日，我们很高兴的宣布，ubuntuBSD 发布了！

什么是 ubuntuBSD？据项目发起人 Jon Boden 说，该项目的目标是将 FreeBSD 内核带到 Ubuntu Linux 上，它的灵感来自于 [Debian GNU/kFreeBSD](https://www.debian.org/ports/kfreebsd-gnu/)。

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

当前 ubuntuBSD 还处于 beta 测试阶段，其基于 FreeBSD 10.1 和 Ubuntu 15.10。它的 ISO 类似于 Ubuntu Alternate 的 ISO，只提供了基于文本的安装程序，这意味着它的用户目标还只是那些想要更强力的服务器或桌面环境的高级用户。不过如果你安装过类似 Lubuntu 这样仍然提供 Ubuntu Alternate 安装方式的发行版，那这对于你来说并不是很麻烦的事情，整个安装过程只需要10分钟左右。

### 桌面环境是 Xfce，文件系统是 ZFS

采用 FreeBSD 内核所带来的最大的好处是你终于可以使用著名的 Z 文件系统了，它也叫做 ZFS。这是一个合并了文件系统与卷管理器的文件系统，由 Sun 微系统公司设计，其 /boot 分区是一个独立的 UFS 分区。

根据你的需求，你可以在安装过程中选择轻量级、高度定制的 Xfce 桌面环境作为你的桌面系统。当然，你也可以考虑将 ubuntuBSD 当做你的服务器使用。

ubuntuBSD 项目当前托管在 [SourceForge](https://sourceforge.net/projects/ubuntubsd/) 上，目前只分发了64位计算机（AMD64）的安装镜像。你可以下载安装 beta 版本的 ubuntuBSD 15.04（开发代号为“<ruby> 逃离 systemD <rp>  （ </rp> <rt>  Escape from systemD </rt> <rp>  ） </rp></ruby>”），不过需要知道的是，当前该项目还处于繁重开发周期中，可能还有不少 bug。


克隆版 Pear OS 更新了，扮相更像 Mac OS 了

Summary: 还记得 Pear OS 吗？这是个看起来非常像 Mac OS X 的 GNU/Linux 发行版。现在 PearOS 更新后带来了重新打造的 Mac OS X 外观。

有意思吗？

不好看，感觉可奇怪啊。四不像了

很没意思，还不如 elementary OS。

各种无聊的发行版！

感觉有几个shell扩展还不错，如果能扣出来用还是极好的

不是很理解用这个系统的使用者，使用的出发点！！linux!就是自己定制的才是最好的了！！用一天到两天的时间！

仿的永远是仿的

怎么感觉还没有kde像....

这就是Linux的魅力所在了，每个人都有不同的喜好，他们喜欢这样，所以就做了呗

gnome3 有一个White主题，稍微改一下再配合上dash to dock，从视觉上来说已经非常舒服了。

仿的就是仿的，永远也不可能是原版

现在叫GMAC 10

又改名了？

嗯，你可以百度一下找到下载地址，我下了一会儿就没下了，下载速度不忍直视

# 克隆版 Pear OS 更新了，扮相更像 Mac OS 了

还记得 Pear OS 吗？这是个看起来非常像 Mac OS X 的 GNU/Linux 发行版，不过不幸的是，它已经被一家我们现今还不知道名字的大公司所收购了，[官方已经停止 Pear OS 与 Pear Cloud 的下载了](/article-2574-1.html)。

去年我们[报道](/article-6391-1.html)过，一位葡萄牙的开发者 Rodrigo Marques 创建了一个 Pear OS Linux 的克隆版，并将其以 PearOS 的名字发布到了 SourceForge 。

当时，这个 PearOS 克隆版让 Pear OS 老用户们很失望，因为他们是一群习惯了精美、要求细节完美仿照 Mac OS X 系统的人。

不过经过了一段时间的发展，现在 PearOS 更新后带来了重新打造的 Mac OS X 外观，它依旧是基于流行的 Ubuntu 的 LTS 版本 14.04 Trusty Tahr。

### PearOS 9.3 发布，基于 Ubuntu 14.04.1 LTS

应读者的要求，我们下载了 PearOS 9.3 Live CD ，看看它的类 Mac OS X 外观到底如何。我们必须说，这次的更新要比它的初次发布有了巨大的改观！

当然，这整个的 Mac OS X 外观是基于 GNOME 桌面环境上 的，架构于 GNOME Shell 用户界面上并做了不少调整优化。你应该自己[下载 Pear OS 9.3 ISO 镜像](http://linux.softpedia.com/get/System/Operating-Systems/Linux-Distributions/Pear-Linux-76309.shtml)来体验一下。

对比一下旧的 PearOS 界面，还是有很大的进步的：


Ubuntu 教育版 Edubuntu 或将终结，计划中的 LTS 版本流产

Summary: 被众多学校和教育机构使用的 Edubuntu 的维护者 Stéphane Graber 在其官方邮件列表中宣布，原来计划的 Edubuntu 16.04 (Xenial Xerus) 操作系统将不会随同 Ubuntu 16.04 LTS 一起发布。

是因为ED吗？

# Ubuntu 教育版 Edubuntu 或将终结，计划中的 LTS 版本流产

被众多学校和教育机构使用的 Edubuntu 的维护者 Stéphane Graber 在其官方邮件列表中[宣布](https://lists.ubuntu.com/archives/ubuntu-devel/2016-March/039281.html)，原来计划的 Edubuntu 16.04 (Xenial Xerus) 操作系统将不会随同 Ubuntu 16.04 LTS 一起发布。

Edubuntu 是一个 Ubuntu 的官方分支版本，主要面对学校和各种教育机构使用，在 Ubuntu 的基础上，集成了很多的教学、教育软件。它很早就是 Ubuntu 生态系统的一部分。对于教育机构来说，一个具有长期支持的操作系统对于其计算机网络非常重要。

Edubuntu 当前的两位负责人 Stéphane Graber 和 Jonathan Carter 已经领导了该项目分别有9年和10年了，但是他们已经转移到了别的项目，没有足够的精力管理该项目，因此在两年前 Edubuntu 14.04 LTS (Trusty Tahr) 发布后，就决定只跟随 LTS 版本发布。但是在 16.04 LTS 发布前夕，Edubuntu 的开发工作还有不小的缺口，考虑到仓促发布一个版本会让期待的用户失望，因此决定放弃 Edubuntu 16.04 LTS 的发布。

当然， Edubuntu 14.04 LTS (Trusty Tahr) 也还可以使用，只是它的软件有一点老了。目前它已经更新到了 14.04.4 版本，其支持期将在 2019 年 4 月结束。

“我现在宣布 Edubuntu 将不会发布 16.04 LTS 版本，取而代之的是，Jonathan 和我会继续集中精力在 Edubuntu 14.04 LTS 上，直到 2019 年 4 月结束支持期”，Stéphane Graber 在邮件列表中[宣布](https://lists.ubuntu.com/archives/ubuntu-devel/2016-March/039281.html)，“这并不是说 Edubuntu 就死了，至少现在不是。”

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

### Edubuntu 要死了么？

根据 Stéphane Graber 在邮件中透露的信息，他们“会继续投入精力到 Edubuntu 14.04 LTS 的支持工作，希望在此期间，有新的贡献者能参与进来，接过 Edubuntu 项目，并按自己的心意去塑造它。”

“我们两个会很乐意协助 Edubuntu 相关的上传工作、帮助新的贡献者取得 Edubuntu 的身份，以及举办选举来设立一个新的 Edubuntu 委员会，从而将整个项目的管理权从我们手中接过去。”Stéphane Graber 说，“**如果直到 Ubuntu 17.10 发布时，仍然没有新的贡献者把 Edubuntu 接过去，Jonathan 和我将会要求技术委员会撤销 Edubuntu 的官方分支身份，并从软件仓库中移除所有软件包、种子以及 CD 镜像构建任务，正式地从 Ubuntu 发布流程中去掉 Edubuntu。**”

Edubuntu 目前用在全球的成千上万的学校和教育机构中，所以这样的一个大项目死掉将会带来很大的影响。还好目前只是放弃了一个 LTS 版本，而不是直接宣布该项目终结。

我们不相信 Edubuntu 系统会很快面临死亡，毫无疑问开源社区将会帮助它继续活下去。我们有庞大的社区，如果 Edubuntu 需要社区的帮助，无论如何我们都会伸出双手的。

“这对于我们两个来说都是很有意义的经历，我们非常希望这并不是 Edubuntu 的终结，而是这个伟大的 Ubuntu 分支的新生”，Stéphane Graber 在他的邮件末尾补充说。

这意味着他们需要你的帮助，是的，就是你。所以，如果你真的在意 Edubuntu，那么[请伸出手来帮它继续走下去](https://www.edubuntu.org/community)吧。


GNOME 3.20 “Delhi” 发布

Summary: 显著改进了 Wayland 支持，包括运动滚动kinetic scrolling、拖放功能、中键粘贴等；可以在应用中按下 Ctrl + F1 来调出“快捷键窗口”，显示所有可用的快捷键和手势；

求大牛给写一个插件，把那个非要多点一下才出来的窗口工具栏推倒了摁在顶部面板上！

# GNOME 3.20 “Delhi” 发布

3月23日，经过又是半年的努力开发，高度期待的 GNOME 3.20 桌面环境正式[发布](https://www.gnome.org/news/2016/03/gnome-3-20-released/)了。

[GNOME](https://www.gnome.org/) 是 Linux 平台上最大的也是最常用的桌面环境（DE），它被 Red Hat Enterprise Linux、Fedora

openSUSE、Ubuntu GNOME 等主流的 Linux 发行版所采用。

GNOME 3.20 是该桌面环境的当前最新的主要发布版本，带来了大量的新功能和基本上所有的核心应用及组件的改进。

主要改进包括：

* 操作系统升级现在可以通过“<ruby> 软件 <rp>  （ </rp> <rt>  Software </rt> <rp>  ） </rp></ruby>”来安装
* 显著改进了 Wayland 支持，包括<ruby> 运动滚动 <rp>  （ </rp> <rt>  kinetic scrolling </rt> <rp>  ） </rp></ruby>、拖放功能、中键粘贴等
* 多数核心应用支持键盘快捷键和手势，可以在应用中按下 Ctrl + F1 来调出“快捷键窗口”，显示所有可用的快捷键和手势
* 改进了隐私控制，每个应用都可以按照位置进行访问控制
* 可以直接从 GNOME Shell 中快速访问媒体控制
* “<ruby> 文件 <rp>  （ </rp> <rt>  Files </rt> <rp>  ） </rp></ruby>”中的搜索功能的提升
* “<ruby> 构建器 <rp>  （ </rp> <rt>  Builder </rt> <rp>  ） </rp></ruby>” 现在可以构建 XDG-Apps 应用了，这是一个新的跨发行版的框架，可以构建和发布桌面应用，它们可以直接在 GNOME <ruby> “软件” <rp>  （ </rp> <rt>  Software </rt> <rp>  ） </rp></ruby>中安装，最重要的是，可以安装某个软件的多个版本了

GNOME 3.20 会在几周或几个月之后逐渐来到各个主流 GNU/Linux 发行版上，具体时间周期要看发行版的开发计划。等不及的用户现在就可以下载、编译新的 GNOME 软件包了，或者也可以从 GNOME 3.18 升级。

最后顺便提一句，3.20 的开发代号是‘<ruby> 德里 <rp>  （ </rp> <rt>  Delhi </rt> <rp>  ） </rp></ruby>’代表着今年的 GNOME.Asia 会议举办地点，该会议将在 4 月 21 日至 24 日在印度德里市举行。


AlphaGo 的首尔之战带来的启示

Summary:
第一，此次测试很好的预示了 AI 有解决其他问题的潜力。
第二，虽说这场比赛已经被广泛的标榜成“人机大战”，但 AlphaGo 却是人类实实在在的成果。

# AlphaGo 的首尔之战带来的启示

围棋并不仅仅是一个游戏——她是一伙活生生的玩家们，分析家们，爱好者们以及传奇大师们。在过去的十天里，在韩国首尔，我们有幸亲眼目睹那份难以置信的激动。我们也有幸也目睹了那前所未有的场景：[DeepMind](https://deepmind.com/) 的 AlphaGo 迎战并战胜了传奇围棋大师，李世石（职业9段，身负 18 个世界头衔），这是人工智能的里程碑。

虽说围棋可能是存世的最为悠久的游戏之一了，但对于这五盘比赛的关注度还是大大的超出了我们的想象。搜索围棋规则和围棋盘的用户在美国迅速飙升。在中国，数以千万计的用户通过直播观看了这场比赛，并且新浪微博“人机围棋大战”话题的浏览量破 2 亿。韩国的围棋盘也销量[激增](http://www.hankookilbo.com/m/v/3e7deaa26a834f76929a1689ecd388ea)。

然而我们如此公开的测试 AlphaGo，并不仅仅是为了赢棋而已。我们自 2010 年成立 DeepMind，为的是创造出具有独立学习能力的通用型人工智能（AI），并致力于将其作为工具协助解决，从气候变化到诊断疾病，这类最为棘手且急迫的问题为最终目标。

亦如许多前辈学者们一样，我们也是通过游戏来开发并测试我们的算法的。在一月份，我们第一次披露了 [AlphaGo](https://googleblog.blogspot.com/2016/01/alphago-machine-learning-game-go.html)——作为第一个通过使用 [深度学习](https://en.wikipedia.org/wiki/Deep_learning) 和 [强化学习](https://en.wikipedia.org/wiki/Reinforcement_learning)，可以在人类发明的最为复杂的棋盘类游戏中击败职业选手的 AI 程序。而 AlphaGo 迎战过去十年间最厉害的围棋选手——李世石，绝对称得上是 [终极挑战](https://deepmind.com/alpha-go.html)。

结果震惊了包括我们在内的每个人，AlphaGo 五战四胜。评论家指出了 AlphaGo 下出的许多前所未见、极富创意或者要用 [“漂亮”](http://www.wired.com/2016/03/sadness-beauty-watching-googles-ai-play-go/) 来形容的妙手。基于我们的数据分析，AlphaGo 在第 2 局中的 [37 手](https://youtu.be/l-GsfyVCBu0?t=1h17m50s)，在人类选手中出现的几率仅有万分之一。而李一反常态的创新下法，如第 4 局中的 [78 手](https://youtu.be/yCALyQRN3hw?t=3h10m25s)——也是既存下法中的万中之一的——这一手也最终造就了一场胜利。

最后比分定格在 4-1。我们为支持科学、技术、工程、数学（STEM）教育和围棋的组织，以及 UNICEF （联合国儿童基金会）赢得了 $1 百万的捐助。

经此一役，我们将收获总结成以下两点：第一，此次测试很好的预示了 AI 有解决其他问题的潜力。AlphaGo 在棋盘上能够做到兼顾“全局”——并找出人类已经被训化而不会走或想到的妙手。运用 AlphaGo 这类的技术，在人类目所不能及的领域中探索，会有很大的潜力。第二，虽说这场比赛已经被广泛的标榜成“人机大战”，但 AlphaGo 却是人类实实在在的成果。无论是李世石还是 AlphaGo 团队相互之间互相促进，产生了新的想法、观点和答案——并且长远来看，我们都将从中受益。

但正如韩国对于围棋的观点：“胜而不骄，是以常胜。”这只是使机器聪明的漫长道路中的一个小小而显著的一步而已。我们已经证明了尖端深度强化学习技术可以被用作制作强大的围棋选手和 [Atari](http://googleresearch.blogspot.sg/2015/02/from-pixels-to-actions-human-level.html) 玩家。深度神经网络在 Google 已经与 [图像识别](http://googleresearch.blogspot.sg/2013/06/improving-photo-search-step-across.html)，[语音识别](http://googleresearch.blogspot.sg/2015/08/the-neural-networks-behind-google-voice.html) 以及 [搜索排名](http://www.bloomberg.com/news/articles/2015-10-26/google-turning-its-lucrative-web-search-over-to-ai-machines) 一样被应用到具体的任务中了。然而，从会学习的机器到可以像人一样全方位灵活实施智能任务——真正达到 [强人工智能](https://en.wikipedia.org/wiki/Artificial_general_intelligence) 的特性，此中的道路还很漫长。

我们想通过这场比赛来测试 AlphaGo 的极限。李世石大师做的十分出色—我们在接下来的数周内会研究他与 AlphaGo 的对战细节。同时因为我们在 AlphaGo 中使用的机器学习方法是通用型的，我们十分希望在不久的将来，将这种技术应用于其他的挑战中。游戏开始!

---

via: <https://googleblog.blogspot.com/2016/03/what-we-learned-in-seoul-with-alphago.html>

作者：[Demis Hassabis](http://demishassabis.com/) 译者：[martin2011qi](https://github.com/martin2011qi) 校对：[wxy](https://github.com/wxy)

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


前 Kubuntu 领袖发起了新的 KDE 项目

Summary: Neon 将会提供一个当最新的 KDE 软件一发布就可以获得的途径。KDE 可能要让 Canonical 看到此项目是 Kubuntu 的竞争对手。

就是一个PPA

一直用xfce的飘过。另外，在chrome里面点击主页最下面的更多，也没反应，是不是有问题了啊？

晕！我酒店这儿的网络打不开 KDE 的网站。

我这边也一样，电信这烂货废死了，各种对外网站打不开。20M光纤完全是浪费钱，只能打游戏

酒店的网络一直不怎么样，尤其是快捷酒店的

能打游戏还不错呢，证明上行还可以。

河北张家口联通50M宽带，上传500KB……

老乡~

# 前 Kubuntu 领袖发起了新的 KDE 项目

如果你经常阅读 Linux 和[开源新闻](http://itsfoss.com/category/news/)的话应该会对 Jonathan Riddell 这人很熟悉。它是 [Kubuntu](http://www.kubuntu.org/) 发行版的创建者及长期的开发领导。他由于敢于质询 Canonical 基金会对 Kubuntu 的资金筹集情况[而被 Ubuntu 的老板 Mark Shuttleworth 所驱逐](/article-5529-1.html) （据我所知，Canonical 从来没有真正回答过他的这个关于财务的问题。）

*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 成千上万项目中的一个。”

然而，网站和公告显示 neon 会运行在 Ubuntu 15.10 中（直到有下个长期支持版本）并很快会有让我惊奇的事情发生。KDE 可能要让 Canonical 把此项目视作 Kubuntu 的竞争对手。如果他们发现 KDE neon 有前景，他们就能把它变成一个完整的发行版。网站和通告声称这是一个 KDE 孵化项目，因此未来可能会包含任何东西。

neon 听上去对你有用么，或者你是否对你当前的发行版的 KDE 发布速度满意？你认为是否还有其他 KDE 发行版的空间（如果 KDE 决定朝这个方向进发）？让我在评论栏知道你们的想法。

---

via: <http://itsfoss.com/kde-neon-unveiled/>

作者：[JOHN PAUL](http://itsfoss.com/author/john/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


ZFS的重复数据删除和数据压缩相当的出色，10G的数据可以只占用4G的空间

# Linux 上的原生 ZFS 支持已功能完备，支持 2.6.32 到 4.5 的 Linux 内核

ZFS for Linux（ZoL）的开发者们又发布了一个 GNU/Linux 系统上的 ZFS 原生实现的稳定版本。

ZFS （Z 文件系统）是一个高级的文件系统和卷管理器，ZFS for Linux 在 Linux 内核中原生实现了 ZFS 文件系统。当前最新的稳定版本 ZFS for Linux 0.6.5.6 带来了一些有趣的更新，比如支持从 2.6.32 到 4.5 的 Linux 内核，也支持了 s390 和 s390x 硬件架构。

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

据该项目的 [GitHub 主页](https://github.com/zfsonlinux/zfs)上的[发布公告](https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.6.5.6)，软件包已经更新，移除了人为的硬件架构限制，ZVOL 小操作更加健壮、支持了移步模式；正确地解析了 zdb -R 参数；zpool 子命令增加了 “-gLP”参数；zpool\_find\_vdev() 函数现在不再截断 vdev 路径；修复了“zpool list -v”命令对日志设备和空闲设备的输出。

从现在起， ZFS for Linux 现在已经功能完备，带来了稳定而功能完备的 ZPL、ZVOL、SPA 和 DMU 层。

你可从[项目网站](http://zfsonlinux.org/)上下载 ZFS for Linux 0.6.5.6，以及找到相应的安装指导。


仅有 0.09% 的 HTTPS 站点使用了 HPKP 证书钉

# 仅有 0.09% 的 HTTPS 站点使用了 HPKP 证书钉

一份最近的调查报告显示，HTTPS 站点中仅有 0.09% 的站点（大约 4100 个）使用了 <ruby>   HTTP 公钥钉  <rp>  （ </rp> <rt>  HTTP Public Key Pinning </rt> <rp>  ） </rp></ruby>（HPKP）来增强其域名的 SSL/TLS 证书。

HPKP 是一个 HTTP 安全扩展，最初发布于 2015 年 4 月（RFC 7469）。该标准定义了一种避免浏览器访问到伪造证书的 HTTPS 网站方法。在浏览器访问 HTTPS 网站时，网站可以锁定浏览器所应接受的该网站的公钥列表；只有浏览器接受的证书同之前通过 HPKP 头所申明的一致时才能访问该网站。

### 为防止攻击者使用一个以你的域名签发的有效证书来伪造你的网站时，HPKP 很有用

这种机制可以用于防护攻击者运行一个假冒网站并使用有效证书来欺骗浏览器的攻击行为。

攻击者有几种方式可以得到有效的证书。他们可以通过对 CA 的社会工程攻击、对技术薄弱点的攻击、CA 的数据泄露、利用脆弱的证书签发策略等来得到。另外，如果攻击者本身得到了浏览器可信任的 CA 的授权，也是可以做到的。

HPKP 就是用来解决这种问题的。

### HPKP 如何工作？

当网站管理人员为他的网站设置 HPKP 头时，第一次连接到该域名的用户将接收到一个包括了公钥指纹的列表，以后对该网站的访问必定使用这些公钥之一才能进行。

这些公钥存储在用户的浏览器里面，当用户再次访问该网站时，在建立 HTTPS 连接前，浏览器和服务器会确认它们都使用了正确公钥和服务器证书。如果不是，那么支持 HPKP 的浏览器会拒绝用户访问该网站。

这对于防止攻击者通过假冒网站来欺骗用户是一件好事，但是如果合法的网站配置错误的话，这会让你的用户几个月都无法访问你的网站了。

### 错误配置的 HPKP 会让你的用户无法访问你的网站

做这个调查的 netcraft 公司[估计](http://news.netcraft.com/archives/2016/03/22/secure-websites-shun-http-public-key-pinning.html)是因为这个原因才导致在该标准发布一年之后，HPKP 的使用率仍然很低。

支持 HPKP 除了需要不断的维护工作，还需要维护人员如踩钢丝般的细心，才能避免整站的访问被完全关闭掉。

“即使是网站管理员们设置好了有效策略，还需要时时注意：日常的维护和紧急处置都有可能造成阻挡合法访客的事故，而且会持续阻挡很长时间。” netcraft 的 Paul Mutton 解释说。

这就是为什么只有 4100 个网站的管理员们决定使用 HPKP 头的原因。不幸的是， netcraft 说，实际上这个数字只有 3000 左右，因为大约有 1/4 的网站的 HPKP 头设置不正确。

### 实现 HPKP 并不太复杂，只是需要很细心

积极的一面是，当网站管理员熟悉了如何管理白名单中的证书及其客户端密钥，HPKP 可以为大多数带有敏感数据的网站提供了必要的安全措施。

一些著名的服务已经实施了 HPKP ，比如 GiHub、Mozilla 和 Pixabay 等。

尽管如此，像 Lenovo [Superfish](http://news.softpedia.com/news/Lenovo-Pushed-MitM-Capable-Browser-Add-On-Onto-Its-Products-473631.shtml) 和 Dell [eDellRoot](http://news.softpedia.com/news/dell-ships-laptops-with-root-certificate-big-security-no-no-496616.shtml) 这样的丑闻中，他们在其产品中包含了根证书，可以让攻击者绕开 HPKP。此外如果攻击者可以访问用户的浏览器，也能修改浏览器的可信任公钥列表来取消 HPKP 防护，或者禁止用户访问合法网站而去访问恶意伪造的网站。


Summary: Linux 基金会宣布了一个全新的 LFCS（Linux 基金会认证系统管理员，Linux Foundation Certified Sysadmin）认证计划

软件包管理没有提到YaST. 不是一样的工具吗?

想考个证都不知道去哪

好文章

我至今都没能掌握 sed 的用法。好惭愧！

rhce咯

来自湖北武汉的 Internet Explorer 8.0|Windows XP 用户

我也想问，考这个证在哪里考，怎么报名？

# LFCS 系列第一讲：如何在 Linux 上使用 GNU sed 等命令来创建、编辑和操作文件

Linux 基金会宣布了一个全新的 LFCS（<ruby> Linux 基金会认证系统管理员 <rp>  （ </rp> <rt>  Linux Foundation Certified Sysadmin </rt> <rp>  ） </rp></ruby>）认证计划。这一计划旨在帮助遍布全世界的人们获得其在处理 Linux 系统管理任务上能力的认证。这些能力包括支持运行的系统服务，以及第一手的故障诊断、分析，以及为工程师团队在升级时提供明智的决策。

*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（<ruby> 输入和输出 <rp>  （ </rp> <rt>  Input and Output </rt> <rp>  ） </rp></ruby>）流，事实上，它们都是特殊的文件（根据 UNIX 和 Linux 中的约定，数据流和外围设备（设备文件）也被视为普通文件）。

在 > (重定向操作符) 和 | (管道操作符)之间的区别是：前者将命令与文件相连接，而后者将命令的输出和另一个命令相连接。

```
# command > file
# command1 | command2

```

由于重定向操作符会静默地创建或覆盖文件，我们必须特别小心谨慎地使用它，并且永远不要把它和管道混淆起来。在 Linux 和 UNIX 系统上管道的优势是：第一个命令的输出不会写入一个文件而是直接被第二个命令读取。

在下面的操作练习中，我们将会使用这首诗——《A happy child》（作者未知)

*cat 命令样例*

#### 使用 sed

sed 是<ruby> 流编辑器 <rp>  （ </rp> <rt>  stream editor </rt> <rp>  ） </rp></ruby>的缩写。为那些不懂术语的人额外解释一下，流编辑器是用来在一个输入流（文件或者管道中的输入）执行基本的文本转换的工具。

sed 最基本的用法是字符替换。我们将通过把每个出现的小写 y 改写为大写 Y 并且将输出重定向到 ahappychild2.txt 开始。g 标志表示 sed 应该替换文件每一行中所有应当替换的实例。如果这个标志省略了，sed 将会只替换每一行中第一次出现的实例。

**基本语法：**

```
# sed 's/term/replacement/flag' file

```

**我们的样例：**

```
# sed 's/y/Y/g' ahappychild.txt > ahappychild2.txt

```

*sed 命令样例*

如果你要在替换文本中搜索或者替换特殊字符（如 /，\，＆），你需要使用反斜杠对它进行转义。

例如，我们要用一个符号来替换一个文字，与此同时我们将把一行最开始出现的第一个 I 替换为 You。

```
# sed 's/and/\&/g;s/^I/You/g' ahappychild.txt

```

*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 匹配字符串*

#### uniq 命令

uniq 命令允许我们返回或者删除文件中重复的行，默认写到标准输出。我们必须注意到，除非两个重复的行相邻，否则uniq 命令不会删除他们。因此，uniq 经常和一个前置的 sort 命令（一种用来对文本行进行排序的算法）搭配使用。默认情况下，sort 使用第一个字段（用空格分隔）作为关键字段。要指定一个不同的关键字段，我们需要使用 -k 选项。

**样例**

du –sch /path/to/directory/\* 命令将会以人类可读的格式返回在指定目录下每一个子文件夹和文件的磁盘空间使用情况（也会显示每个目录总体的情况），而且不是按照大小输出，而是按照子文件夹和文件的名称。我们可以使用下面的命令来让它通过大小排序。

```
# du -sch /var/* | sort -h

```

*sort 命令样例*

你可以通过使用下面的命令告诉 uniq 比较每一行的前6个字符（-w 6）（这里是指定的日期）来统计日志事件的个数，而且在每一行的开头输出出现的次数（-c）。

```
# cat /var/log/mail.log | uniq -c -w 6

```

*文件中的统计数字*

最后，你可以组合使用 sort 和 uniq 命令（通常如此）。看看下面文件中捐助者、捐助日期和金额的列表。假设我们想知道有多少个捐助者。我们可以使用下面的命令来分隔第一字段（字段由冒号分隔），按名称排序并且删除重复的行。

```
# cat sortuniq.txt | cut -d: -f1 | sort | uniq

```

*寻找文件中不重复的记录*

* 也可阅读: [13个“cat”命令样例](/article-2336-1.html)

#### grep 命令

grep 在文件（或命令输出）中搜索指定正则表达式，并且在标准输出中输出匹配的行。

**样例**

显示文件 /etc/passwd 中用户 gacanepa 的信息，忽略大小写。

```
# grep -i gacanepa /etc/passwd

```

*grep 命令样例*

显示 /etc 文件夹下所有 rc 开头并跟随任意数字的内容。

```
# ls -l /etc | grep rc[0-9]

```

*使用 grep 列出内容*

* 也可阅读: [12个“grep”命令样例](/article-2250-1.html)

#### tr 命令使用技巧

tr 命令可以用来从标准输入中转换（改变）或者删除字符，并将结果写入到标准输出中。

**样例**

把 sortuniq.txt 文件中所有的小写改为大写。

```
# cat sortuniq.txt | tr [:lower:] [:upper:]

```

*排序文件中的字符串*

压缩`ls –l`输出中的分隔符为一个空格。

```
# ls -l | tr -s ' '

```

*压缩分隔符*

#### cut 命令使用方法

cut 命令可以基于字节（-b选项）、字符（-c）或者字段（-f）提取部分输入（从标准输入或者文件中）并且将结果输出到标准输出。在最后一种情况下（基于字段），默认的字段分隔符是一个制表符，但可以由 -d 选项来指定不同的分隔符。

**样例**

从 /etc/passwd 中提取用户账户和他们被分配的默认 shell（-d 选项允许我们指定分界符，-f 选项指定那些字段将被提取）。

```
# cat /etc/passwd | cut -d: -f1,7

```

*提取用户账户*

将以上命令结合起来，我们将使用 last 命令的输出中第一和第三个非空文件创建一个文本流。我们将使用 grep 作为第一过滤器来检查用户 gacanepa 的会话，然后将分隔符压缩至一个空格（tr -s ' ')。下一步，我们将使用 cut 来提取第一和第三个字段，最后使用第二个字段（本样例中，指的是IP地址）来排序之后，再用 uniq 去重。

```
# last | grep gacanepa | tr -s ‘ ‘ | cut -d’ ‘ -f1,3 | sort -k2 | uniq

```

*last 命令样例*

上面的命令显示了如何将多个命令和管道结合起来，以便根据我们的要求得到过滤后的数据。你也可以逐步地使用它以帮助你理解输出是如何从一个命令传输到下一个命令的（顺便说一句，这是一个非常好的学习经验！）

### 总结

尽管这个例子（以及在当前教程中的其他实例）第一眼看上去可能不是非常有用，但是他们是体验在 Linux 命令行中创建、编辑和操作文件的一个非常好的开始。请随时留下你的问题和意见——不胜感激！

#### 参考链接

* [关于 LFCS](https://training.linuxfoundation.org/certification/LFCS)
* [为什么需要 Linux 基金会认证?](https://training.linuxfoundation.org/certification/why-certify-with-us)
* [注册 LFCS 考试](https://identity.linuxfoundation.org/user?destination=pid/1)

---

via: <http://www.tecmint.com/sed-command-to-create-edit-and-manipulate-files-in-linux/>

作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[Xuanwo](https://github.com/Xuanwo) 校对：[wxy](https://github.com/wxy)

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


Summary: 如果你正好拥有全球第一支运行 Ubuntu 的手机并且希望将 BQ Aquaris E4.5 自带的 Ubuntu 系统换成 Android，那这篇文章能帮你点小忙。

吃饱了撑得。。。。

以前觉得刷机很有意思，现在看来，好无聊呀

那还不如直接买个红米 配置都比他强

# 在 Linux 上将 BQ Aquaris Ubuntu 手机刷成 Android 系统

如果你正好拥有全球第一支运行 Ubuntu 的手机并且希望将 **BQ Aquaris E4.5 自带的 Ubuntu 系统换成 Android**，那这篇文章能帮你点小忙。

有一万种理由来解释为什么要将 Ubuntu 换成主流 Android OS。其中最主要的一个，就是这个系统本身仍然处于非常早期的阶段，针对的目标用户仍然是开发者和爱好者。不管你的理由是什么，要谢谢 BQ 提供的工具，让我们能非常轻松地在 BQ Aquaris 上安装 Android OS。

下面让我们一起看下在 BQ Aquaris 上安装 Android 需要做哪些事情。

### 前提条件

* 可用的因特网连接，用来下载 Android 出厂固件以及安装刷机工具。
* USB 数据线
* 运行 Linux 的电脑

本文是基于 Ubuntu 15.10 操作的。但是这些步骤应该也可以应用于其他大多数 Linux 发行版。

### 将 BQ Aquaris E4.5 上的 Ubuntu 换成 Android

#### 第一步：下载 Android 固件

首先是下载可以在 BQ Aquaris E4.5 上运行的 Android 固件。幸运的是我们可以在 BQ 的技术支持网站找到。可以从下面的链接直接下载，差不多 650 MB：

* [下载为 BQ Aquaris E4.5 制作的 Android](https://storage.googleapis.com/otas/2014/Smartphones/Aquaris_E4.5_L/2.0.1_20150623-1900_bq-FW.zip)

是的，这个版本还支持 OTA 自动升级。目前，固件版本是 2.0.1，基于 Android Lolipop 开发。过一段时间，应该就会放出基于 Marshmallow 的新版本，上边的链接可能就无效了。

我建议去 [BQ 的技术支持网站](http://www.bq.com/gb/support/aquaris-e4-5)下载最新的固件。

下载完成后解压。在解压后的目录里，找到一个名字是 **MT6582\_Android*\_*scatter.txt** 的文件。后面将要用到它。

#### 第二步：下载刷机工具

BQ 已经提供了自己的刷机工具，Herramienta MTK Flash Tool，可以轻松地给设备安装 Andriod 或者 Ubuntu 系统。你可以从下面的链接下载工具：

* [下载 MTK Flash Tool](https://storage.googleapis.com/otas/2014/Smartphones/Aquaris_E4.5/Ubuntu/Web%20version/Web%20version/SP_Flash_Tool_exe_linux_v5.1424.00.zip)

考虑到刷机工具在以后可能会升级，你总是可以从 [BQ 技术支持网站](http://www.bq.com/gb/support/aquaris-e4-5-ubuntu-edition)上找到最新的版本。

下载完后解压。之后应该可以在目录里找到一个叫 **flash\_tool** 的可执行文件。我们稍后会用到。

#### 第三步：移除冲突的软件包（可选）

如果你正在用最新版本的 Ubuntu 或 基于 Ubuntu 的 Linux 发行版，稍后可能会碰到 “BROM ERROR : S\_UNDEFINED*\_*ERROR (1001)” 错误。

要避免这个错误，你需要卸载有冲突的软件包。可以使用下面的命令：

```
sudo apt-get remove modemmanager

```

用下面的命令重启 udev 服务：

```
sudo service udev restart

```

检查一下内核模块 cdc\_acm 可能存在的副作用，运行下面的命令：

```
lsmod | grep cdc_acm

```

如果上面命令输出是空，你将需要重新加载一下这个内核模块：

```
sudo modprobe cdc_acm

```

#### 第四步：准备刷入 Android

切换到下载好并解压完成的刷机工具目录（第二步）。请使用命令行来完成，这是因为将要用到 root 权限。

假设你保存在下载目录里，使用下面的命令切换目录（为那些不懂如何在命令行下切换目录的朋友考虑）。

```
cd ~/Downloads/SP_Flash*

```

然后使用下面的命令以 root 权限启动刷机工具：

```
sudo ./flash_tool

```

然后你会看到一个像下面的窗口界面。不用在意 Download Agent 区域，它将会被自动填入。只要关心 Scatter-loading 区域。

还记得之前第一步里提到的 **MT6582\_Android\_scatter.txt** 文件吗？这个文本文件就在你第一步中下载的 Android 固件解压后的目录里。点击 Scatter-loading（上图中）然后选中 MT6582\_Android*\_*scatter.txt 文件。

之后，你将看到类似下面图片里的一些绿色线条：

#### 第五步：刷入 Android

已经差不多了。把你的手机关机，然后通过 USB 线连接到电脑上。

在下拉列表里选择 Firmware Upgrade，然后点击那个大的 Download 按钮。

如果一切顺利，你应该可以在工具下方的状态栏里看到刷机状态：

当所有过程都完成后，你将看到一个类似这样的提示：

将手机从电脑上移除然后开机。你应该看到屏幕上显示白色并在中间和底部有 AQUARIS 文字，还应该有 “powered by Android” 字样。差不多需要差不多十分钟，你才可以设置和开始使用 Android。

注意：如果中间出了什么问题，同时按下电源、音量加、音量减按键可以进入 fast boot 模式。然后再次关机并连接电脑。重复升级固件的过程。应该可以。

### 总结

要感谢厂商提供的工具，让我们可以轻松地 **在 BQ Ubuntu 手机上刷 Android**。当然，你可以使用相同的步骤将 Android 替换回 Ubuntu。只是下载的时候选 Ubuntu 固件而不是 Android。

希望这篇文章可以帮你将你的 bq 手机上的 Ubuntu 刷成 Android。如果有什么问题或建议，可以在下面留言区里讨论。

---

via: <http://itsfoss.com/install-android-ubuntu-phone/>

作者：[Abhishek](http://itsfoss.com/author/abhishek/) 译者：[zpl1025](https://github.com/zpl1025) 校对：[wxy](https://github.com/wxy)

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


如何在 Linux 上安装服务器管理软件 Cockpit

赞一个！

RHEL7中没有这个软件。

make

# 如何在 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

```

#### Fedora 22/21

和 CentOS 一样， Fedora 的官方软件库默认也有可用的 Cockpit。我们只需要用 dnf 软件包管理器就可以安装 Cockpit。

```
# dnf install cockpit

```

#### Arch Linux

现在 Arch Linux 官方软件库中还没有可用的 Cockpit，但 Arch 用户库（Arch User Repository，AUR）有。只需要运行下面的 yaourt 命令就可以安装。

```
# yaourt cockpit

```

### 2. 启动并启用 Cockpit

成功安装完 Cockpit，我们就要用服务/守护进程管理器启动 Cockpit 服务。到了 2015 年，尽管一些 linux 发行版仍然运行 SysVinit 管理守护进程，但大部分 linux 发行版都采用了 Systemd，Cockpit 使用 systemd 完成从运行守护进程到服务几乎所有的功能。因此，我们只能在运行着 Systemd 的最新的 linux 发行版中安装 Cockpit。要启动 Cockpit 并让它在每次系统重启时自动启动，我们需要在终端或控制台中运行下面的命令。

```
# systemctl start cockpit

# systemctl enable cockpit.socket

Created symlink from /etc/systemd/system/sockets.target.wants/cockpit.socket to /usr/lib/systemd/system/cockpit.socket.

```

### 3. 允许通过防火墙

启动 Cockpit 并使得它能在每次系统重启时自动启动后，我们现在要给它配置防火墙。由于我们的服务器上运行着防火墙程序，我们需要允许它通过某些端口使得从服务器外面可以访问 Cockpit。

#### Firewalld

```
# firewall-cmd --add-service=cockpit --permanent

success

# firewall-cmd --reload

success

```

#### 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 认证警告，因为我们正在使用一个自签名认证。我们只需要忽略这个警告并进入到登录页面，在 chrome/chromium 中，我们需要点击 Show Advanced 然后点击 **Proceed to 128.199.114.17 (unsafe)**。

现在，要进入仪表盘，我们需要输入详细的登录信息。这里，用户名和密码和用于登录我们的 linux 服务器的用户名和密码相同。当我们输入登录信息并点击 Log In 按钮后，我们就会进入到 Cockpit 仪表盘。

这里我们可以看到所有的菜单以及 CPU、磁盘、网络、存储使用情况的可视化结果。仪表盘正如上图所示。

#### 服务

要管理服务，我们需要点击 web 页面右边菜单中的 Services 按钮。然后，我们会看到服务被分成了 5 个类别，目标、系统服务、套接字、计时器和路径。

#### Docker 容器

我们甚至可以用 Cockpit 管理 docker 容器。用 Cockpit 监控和管理 Docker 容器非常简单。由于我们的服务器中没有安装运行 docker，我们需要点击 Start Docker。

Cockpit 会自动在我们的服务器上安装和运行 docker。启动之后，我们就会看到下面的截图。然后我们就可以按照需求管理 docker 镜像、容器。

#### Journal 日志查看器

Cockpit 有个日志查看器，它把错误、警告、注意分到不同的标签页。我们也有一个 All 标签页，在这里可以看到所有的日志信息。

#### 网络

在网络部分，我们可以看到两个可视化发送和接收速度的图。我们可以看到这里有一个可用网卡的列表，还有 Add Bond、Bridge、VLAN 的选项。如果我们需要配置一个网卡，我们只需要点击网卡名称。在下面，我们可以看到网络的 Journal 日志信息。

#### 存储

现在，用 Cockpit 可以方便地查看硬盘的读写速度。我们可以查看存储的 Journal 日志以便进行故障排除和修复。在页面中还有一个已用空间的可视化图。我们甚至可以卸载、格式化、删除一块硬盘的某个分区。它还有类似创建 RAID 设备、卷组等攻能。

#### 用户管理

通过 Cockpit Web 界面我们可以方便地创建新用户。在这里创建的账户会应用到系统用户账户。我们可以用它更改密码、指定角色、以及删除用户账户。

#### 实时终端

Cockpit 还有一个很棒的特性。是的，我们可以执行命令，用 Cockpit 界面提供的实时终端执行任务。这使得我们可以根据我们的需求在 web 界面和终端之间自由切换。

### 总结

Cockpit 是由 [Red Hat](http://www.redhat.com/) 开发的使得管理服务器变得轻松简单的自由开源软件。它非常适合于进行简单的系统管理任务和新手系统管理员。它仍然处于开发阶段，还没有稳定版发行。因此不适合于生产环境。它是针对最新的默认安装了 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](http://linoxide.com/author/arunp/) 译者：[ictlyh](http://mutouxiaogui.cn/blog/) 校对：[wxy](https://github.com/wxy)

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


LFCS 系列第二讲：如何安装和使用纯文本编辑器 vi/vim

输入 a4yy 复制当前行和接下来的 3 行，进入一个名为 a 的缓存区。我们可以继续编辑我们的文件————我们不需要立即插入刚刚复制的行。                                <br />
我输入完a,就进入输入模式了。。。。。。。。。。。。。。

抱歉，丢了内容了，是 "a 表示名为 a 的缓存区，前面有个双引号。

a也会进入编辑模式，你可以换个名字啊 比如 b4yy

# LFCS 系列第二讲：如何安装和使用纯文本编辑器 vi/vim

几个月前， Linux 基金会发起了 LFCS （<ruby> Linux 基金会认证系统管理员 <rp>  （ </rp> <rt>  Linux Foundation Certified System administrator </rt> <rp>  ） </rp></ruby>）认证，以帮助世界各地的人来验证他们能够在 Linux 系统上做基本的中级系统管理任务：如系统支持、第一手的故障诊断和处理、以及何时向上游支持团队提出问题的智能决策。

*在 Linux 中学习 vi 编辑器*

请简要看看一下视频，里边介绍了 Linux 基金会认证的程序。

这篇文章是系列教程的第二讲，在这个部分中，我们会介绍 vi/vim 基本的文件编辑操作，帮助读者理解编辑器中的三个模式，这是 LFCS 认证考试中必须掌握的。

### 使用 vi/vim 执行基本的文件编辑操作

vi 是为 Unix 而生的第一个全屏文本编辑器。它的设计小巧简单，对于仅仅使用过诸如 NotePad++ 或 gedit 等图形界面的文本编辑器的用户来说，使用起来可能存在一些困难。

为了使用 vi，我们必须首先理解这个强大的程序操作中的三种模式，方便我们后边学习这个强大的文本处理软件的相关操作。

请注意，大多数的现代 Linux 发行版都集成了 vi 的变种——— vim（<ruby> 改进版 VI <rp>  （ </rp> <rt>  Vi IMproved </rt> <rp>  ） </rp></ruby>），相比于 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 页面*

#### 启动 vi

可以通过在命令提示符下输入 vi 来启动。

*使用 vi 编辑器*

然后按下字母 i，你就可以开始输入了。或者通过下面的方法来启动 vi：

```
# vi filename

```

这样会打开一个名为 filename 的<ruby> 缓存区 <rp>  （ </rp> <rt>  buffer </rt> <rp>  ） </rp></ruby>（稍后会详细介绍缓存区），在你编辑完成之后就可以存储在磁盘中了。

#### 理解 vi 的三个模式

1. 在<ruby> 命令 <rp>  （ </rp> <rt>  command </rt> <rp>  ） </rp></ruby>模式中，vi 允许用户浏览该文件并输入由一个或多个字母组成的、简短的、大小写敏感的 vi 命令。这些命令的大部分都可以增加一个前缀数字表示执行次数。
比如：`yy`（或`Y`） 复制当前的整行，`3yy`（或`3Y`） 复制当前整行和下边紧接着的两行（总共3行）。通过 `Esc` 键可以随时进入命令模式（而不管当前工作在什么模式下）。事实上，在命令模式下，键盘上所有的输入都被解释为命令而非文本，这往往使得初学者困惑不已。
2. 在<ruby> 末行 <rp>  （ </rp> <rt>  ex </rt> <rp>  ） </rp></ruby>模式中，我们可以处理文件（包括保存当前文件和运行外部程序）。我们必须在命令模式下输入一个冒号（`:`），才能进入这个模式，紧接着是要在末行模式下使用的命令。执行之后 vi 自动回到命令模式。
3. 在<ruby> 文本输入 <rp>  （ </rp> <rt>  insert </rt> <rp>  ） </rp></ruby>模式（通常在命令模式下使用字母 `i` 进入这个模式）中，我们可以随意输入文本。大多数的键入将以文本形式输出到屏幕（一个重要的例外是`Esc`键，它将退出文本编辑模式并回到命令模式）。

*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编辑器选项*

* set number 当 vi 打开或新建文件时，显示行号。
* syntax on 打开语法高亮（对应多个文件扩展名），以便源码文件和配置文件更具可读性。
* set tabstop=4 设置制表符间距为 4 个空格（默认为 8）。
* set autoindent 将前一行的缩进应用于下一行。

#### 查找和替换

vi 具有通过查找将光标移动到（在单独一行或者整个文件中的）指定位置。它还可自动或者通过用户确认来执行文本替换。

a) 在行内查找。`f` 命令在当前行查找指定字符，并将光标移动到指定字符出现的位置。

例如，命令 `fh` 会在本行中将光标移动到字母`h`下一次出现的位置。注意，字母 `f` 和你要查找的字符都不会出现在屏幕上，但是当你按下回车的时候，要查找的字符会被高亮显示。

比如，以下是在命令模式按下 `f4` 之后的结果。

*在 vi 中查找字符*

b) 在整个文件内查找。使用 `/` 命令，紧接着需要查找的单词或短语。这个查找可以通过使用 `n` 命令或者 `N` 重复查找上一个查找的字符串。以下是在命令模式键入 `/Jane` 的查找结果。

*在 vi 中查找字符*

c) vi 通过使用命令来完成多行或者整个文件的替换操作（类似于 sed）。我们可以使用以下命令，使得整个文件中的单词 “old” 替换为 “young”。

```
:%s/old/young/g

```

**注意**：冒号位于命令的最前面。

*vi 的查找和替换*

冒号 (`:`) 进入末行模式，在本例中 `s` 表示替换，`%` 是从第一行到最后一行的表示方式（也可以使用 nm 表示范围，即第 n 行到第 m 行），old 是查找模式，young 是用来替换的文本，`g` 表示在每个查找出来的字符串都进行替换。

另外，在命令最后增加一个 `c`，可以在每一个匹配项替换前进行确认。

```
:%s/old/young/gc

```

将旧文本替换为新文本前，vi/vim 会向我们显示以下信息：

*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

```

*编辑多个文件*

b) `:buffer 3` 命令（后边没有 s）会打开第三个文件 file3 进行编辑。

在上边的图片中，标记符号 `#` 表示该文件当前已被打开，但是是在后台，而 `%a` 标记的文件是正在被编辑的。另外，文件号（如上边例子的 3）后边的空格表示该文件还没有被打开。

#### vi 的临时缓存区

（LCTT 译注：临时缓存区，也叫做“命名缓存区”，或“<ruby> 寄存器 <rp>  （ </rp> <rt>  register </rt> <rp>  ） </rp></ruby>”）

为了复制连续的多行（比如，假设为 4 行）到一个名为 a 的临时缓存区（与文件无关），并且还要将这些行粘贴到在当前 vi 会话文件中的其它位置，我们需要：

1. 按下 `Esc` 键以确认 vi 处在命令模式
2. 将光标放在我们希望复制的第一行文本
3. 输入 `"a4yy` 复制当前行和接下来的 3 行，进入一个名为 a 的缓存区。我们可以继续编辑我们的文件————我们不需要立即插入刚刚复制的行。
4. 当到了需要使用刚刚复制的那些行的位置，在 `p`(小写)或 `P`(大写)命令前使用`"a`来将复制行插入到名为 a 的 缓存区：

	* 输入 `"ap`，复制行将插入到光标位置所在行的下一行。
	* 输入 `"aP`，复制行将插入到光标位置所在行的上一行。

如果愿意，我们可以重复上述步骤，将缓存区 a 中的内容插入到我们文件的多个位置。像本节中这样的一个临时缓存区，会在当前窗口关闭时释放掉。

### 总结

像我们看到的一样，vi/vim 在命令接口下是一个强大而灵活的文本编辑器。通过以下链接，随时分享你自己的技巧和评论。

#### 参考链接

* [关于 LFCS](https://training.linuxfoundation.org/certification/LFCS)
* [为什么需要 Linux 基金会认证?](https://training.linuxfoundation.org/certification/why-certify-with-us)
* [注册 LFCS 考试](https://identity.linuxfoundation.org/user?destination=pid/1)

---

via: <http://www.tecmint.com/vi-editor-usage/>

作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[GHLandy](https://github.com/GHLandy) 校对：[东风唯笑](https://github.com/dongfengweixiao), [wxy](https://github.com/wxy)

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


AV Linux 2016 正式发布——这是一款专为音乐制作开发的发行版

Summary: 这只是一个‘初始’版，使用它需要一些学习过程。我希望用户能对新版本多一些宽容和耐心，我们指望您的反馈才能改进，也希望可以将你的经验分享给别人。

吓我一跳，还以为一本道，东京热还出Linux呢！！！！！！！！

东京热是啥？

哈哈!   AV        linux

看壁纸，是基于 Debian 啊？

# AV Linux 2016 正式发布——这是一款专为音乐制作开发的发行版

上个周末，专为音乐制作而定制的操作系统 AV Linux 2016 正式发布了，它为低延时音乐制作带来了一整套新的工具和开源软件。

2016/3/26，AV Linux 2016 最终版上载完成，可供下载安装使用了。虽然它依旧包含了大多数用于音乐制作的流行软件，但是看起来并不如其之前的版本那样方便易用。

“AVL 2016 和它之前的版本是完全不同的，我把它视作 Alpha 或 Beta 发布版”，开发者[说](http://www.bandshed.net/2016/03/23/avl2016/)，“这只是一个‘初始’版，使用它需要一些学习过程。我希望用户能对新版本多一些宽容和耐心，我们指望您的反馈才能不断改进，也希望您可以将经验分享给别人。”

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

### AV Linux 2016 兼容 KXStudio 软件库

安装 AV Linux 2016 的用户应该知道它是一个 Debian 衍生版，兼容 [KXStudio](http://kxstudio.linuxaudio.org/) 的软件库——这是另外一个针对音乐和视频制作的 GNU/Linux 操作系统。所以，如果你不能在 AV Linux 的软件库中找到你喜欢的音乐/视频工具，你可以在 [KXStudio](http://kxstudio.linuxaudio.org/) 的库中找找看。

此外，如果你是这个音乐/视频制作操作系统的新用户，你可以读读它的 AV Linux 用户手册帮助你学习使用。请[下载32位和64位 Live ISO 镜像](http://linux.softpedia.com/get/System/Operating-Systems/Linux-Distributions/AV-Linux-48850.shtml)，并阅读发布公告了解已经问题，开始你的音乐/视频制作之旅吧！


LFCS 系列第三讲：归档/压缩文件及目录、设置文件属性和搜索文件

# LFCS 系列第三讲：归档/压缩文件及目录、设置文件属性和搜索文件

最近，Linux 基金会发起了一个全新的 LFCS（<ruby> Linux 基金会认证系统管理员 <rp>  （ </rp> <rt>  Linux Foundation Certified Sysadmin </rt> <rp>  ） </rp></ruby>）认证，旨在让遍布全世界的人都有机会参加该认证的考试，通过考试的人将表明他们有能力在 Linux 上执行基本的中级系统管理任务。这项认证包括了对已运行的系统和服务的支持、一流水平的问题解决和分析以及决定何时将问题反映给工程师团队的能力。

*LFCS 系列第三讲*

请看以下视频，这里边讲给出 Linux 基金会认证程序的一些想法。

本讲是系列教程中的第三讲，在这一讲中，我们会涵盖如何在文件系统中归档/压缩文件及目录、设置文件属性和搜索文件等内容，这些都是 LFCS 认证中必须掌握的知识。

### 归档和压缩的相关工具

文件归档工具将一堆文件整合到一个单独的归档文件之后，我们可以将归档文件备份到不同类型的介质或者通过网络传输和发送 Email 来备份。在 Linux 中使用频率最高的归档实用工具是 tar。当归档工具和压缩工具一起使用的时候，可以减少同一文件和信息在硬盘中的存储空间。

#### tar 使用工具

tar 将一组文件打包到一个单独的归档文件（通常叫做 tar 文件或者 tarball）。tar 这个名称最初代表<ruby> 磁带存档程序 <rp>  （ </rp> <rt>  tape archiver </rt> <rp>  ） </rp></ruby>，但现在我们可以用它来归档任意类型的可读写介质上边的数据，而不是只能归档磁带数据。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 | 从归档文件中释放文件 |

#### 常用的操作修饰符

| 长选项 | 缩写 | 描述 |
| --- | --- | --- |
| -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 压缩刚刚的归档文件（请注意，用正则表达式来指定哪些文件应该归档——这是为了防止将归档工具包前一步生成的文件打包进来）。

```
# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

```

*压缩多个文件*

**列举 tarball 中的内容和更新/追加文件到归档文件中**

列举 tarball 中的内容，并显示相同信息为一个详细目录清单。注意，不能直接向压缩的归档文件更新/追加文件（若你需要向压缩的 tarball 中更新/追加文件，需要先解压 tar 文件后再进行操作，然后重新压缩）。

```
# tar tvf [tarball]

```

*列举归档文件中的内容*

运行一下任意一条命令：

```
# gzip -d myfiles.tar.gz    [#1]
# bzip2 -d myfiles.tar.bz2  [#2]
# xz -d myfiles.tar.xz      [#3]

```

然后：

```
# tar --delete --file myfiles.tar file4 (删除tarball中的file4)
# tar --update --file myfiles.tar file4 (更新tarball中的file4)

```

和

```
# gzip myfiles.tar      [ 如果你运行 #1 命令 ]
# bzip2 myfiles.tar     [ 如果你运行 #2 命令 ]
# xz myfiles.tar        [ 如果你运行 #3 命令 ]

```

最后

```
# tar tvf [tarball] #再次

```

将 file4 修改后的日期和时间与之前显示的对应信息进行比较

**排除文件类型**

假设你现在需要备份用户的家目录。一个有经验的系统管理员会选择忽略所有视频和音频文件再备份（也可能是公司规定）。

可能你最先想到的方法是在备份的时候，忽略扩展名为 .mp3 和 .mp4（或者其他格式）的文件。但如果你有些自作聪明的用户将扩展名改为 .txt 或者 .bkp，那你的方法就不灵了。为了发现并排除音频或者视频文件，你需要先检查文件类型。以下 shell 脚本可以代你完成类型检查：

```
#!/bin/bash
# 把需要进行备份的目录传递给 $1 参数.
DIR=$1
# 排除文件类型中包含了 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/*

```

*排除文件进行备份*

**使用 tar 保持文件的原有权限进行恢复**

通过以下命令，你可以保留文件的权限将备份文件恢复到原始用户的家目录（本例是 user\_restore）。

```
# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

```

*从归档文件中恢复*

**扩展阅读：**

* [18 tar Command Examples in Linux](http://www.tecmint.com/18-tar-command-examples-in-linux/)
* [Dtrx – An Intelligent Archive Tool for Linux](http://www.tecmint.com/dtrx-an-intelligent-archive-extraction-tar-zip-cpio-rpm-deb-rar-tool-for-linux/)

### 通过 find 命令搜索文件

find 命令用于递归搜索目录树中包含指定字符的文件和目录，然后在屏幕显示出于指定字符相匹配的文件和目录，或者在匹配项进行其他操作。

通常，我们通过文件名、文件的属主、属组、类型权限、日期及大小来搜索。

#### 基本语法：

```
# find [需搜索的目录] [表达式]

```

**通过文件大小递归搜索文件**

以下命令会搜索当前目录（.）及其下两层子目录（-maxdepth 3，包含当前目录及往下两层的子目录）中大于 2 MB（-size +2M）的所有文件（-f）。

```
# find . -maxdepth 3 -type f -size +2M

```

 \* 通过文件大小搜索文件\*

**搜索符合一定规则的文件并将其删除**

有时候，777 权限的文件通常为外部攻击者打开便利之门。不管是以何种方式，让所有人都可以对文件进行任意操作都是不安全的。对此，我们采取一个相对激进的方法——删除这些文件（'{}' + 用来“聚集”搜索的结果）。

```
# find /home/user -perm 777 -exec rm '{}' +

```

*搜索 777 权限的文件*

**按访问时间和修改时间搜索文件**

搜索 /etc 目录下访问时间（-atime）或修改时间（-mtime）大于（+180）或小于（-180） 6 个月或者刚好（180） 6 个月的配置文件。

按照下面例子对命令进行修改：

```
# find /etc -iname "*.conf" -mtime -180 -print

```

*按修改时间搜索文件*

* 扩展阅读： [35 Practical Examples of Linux ‘find’ Command](http://www.tecmint.com/35-practical-examples-of-linux-find-command/)

### 文件权限及基本属性

ls -l 命令输出的前 10 位字符是文件的属性，其中第一个字符用来表明文件的类型。

* – : 普通文件
* -d : 目录
* -l : 符号链接
* -c : 字符设备 (它将数据作为字节流处理，如terminal)
* -b : 块设备 (在块设备中处理数据，如存储设备)

接下来表示文件属性的 9 位字符叫做文件的读写模式，代表文件属主、同组用户和其他用户（通常指的是“外部世界”）对应的读（r）、写（w）和执行（x）权限。

文件的写权限允许对应的用户对文件进行打开和读写，对于同时设置了执行权限的目录，对应用户可以列举出该目录的内容。另外，文件的执行权限允许将文件当做是一个可执行程序来运行，而目录的执行权限则是允许用户进入和退出该目录。

文件的权限通过 chown 命令来更改，其基本语法如下：

```
# chmod [new_mode] file

```

new\_mode 可以是 3 位八进制数值或者对应权限的表达式。

八进制数值可以从二进制数值进行等值转换，通过下列方法来计算文件属主、同组用户和其他用户权限对应的二进制数值：

一个确定权限的二进制数值表现为 2 的幂（r=2^2，w=2^1，x=2^0），当权限省缺时，二进制数值为 0。如下：

*文件权限*

使用八进制数值设置上图的文件权限，请输入：

```
# chmod 744 myfile

```

通过 u、g 和 o 分别代表用户、同组用户和其他用户，然后你也可以使用权限表达式来单独对用户设置文件的权限模式。也可以通过 a 代表所有用户，然后设置文件权限。通过 + 号或者 - 号相应的赋予或移除文件权限。

**为所有用户撤销一个 shell 脚本的执行权限**

正如之前解释的那样，我们可以通过 - 号为需要移除权限的属主、同组用户、其他用户或者所有用户去掉指定的文件权限。下面命令中的短横线（-）可以理解为：移除（-）所有用户（a）的 backup.sh 文件执行权限（x）。

```
# chmod a-x backup.sh

```

下面演示为文件属主、同组用户赋予读、写和执行权限，并赋予其他用户读权限。

当我们使用 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)

命令如下：

```
# chmod 774 myfile

```

随着练习时间的推移，你会知道何种情况下使用哪种方式来更改文件的权限模式的效果最好。

使用 ls -l 详细列举目录详细同样会显示出文件的属主和属组（这个很基本，而且影响到系统文件的访问控制）。

*列举 Linux 文件*

通过 chown 命令可以对文件的归属权进行更改，可以同时或者分开更改属主和属组。其基本语法为：

```
# chown user:group file

```

至少要指定用户或者用户组

**举几个例子：**

将文件的属主更改为指定用户：

```
# chown gacanepa sent

```

同时将文件的属主和属组更改为指定的用户和组：

```
# chown gacanepa:gacanepa TestFile

```

只将文件的属组更改为指定组。注意组名前的冒号（:）。

```
# chown :gacanepa email_body.txt

```

### 结论

作为一个系统管理员，你需要懂得如何创建和恢复备份、如何在系统中搜索文件并更改它们的属性。通过一些技巧，你可以更好地管理系统并避免以后出问题。

我希望，本文给出的技巧可以帮助你达成管理系统的目标。你可以随时在评论中发表自己的技巧及社区给你带来的益处。

先行感谢！

参考链接

* [关于 LFCS](https://training.linuxfoundation.org/certification/LFCS)
* [为什么需要 Linux 基金会认证?](https://training.linuxfoundation.org/certification/why-certify-with-us)
* [注册 LFCS 考试](https://identity.linuxfoundation.org/user?destination=pid/1)

---

via: <http://www.tecmint.com/compress-files-and-finding-files-in-linux/>

作者：[Gabriel Cánepa](http://www.tecmint.com/author/gacanepa/) 译者：[GHLandy](https://github.com/GHLandy) 校对：[wxy](https://github.com/wxy)

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


Linux 有问必答：如何在 Linux 上安装 Node.js

学node.js就是为了引用别人10行代码的包么？

这东西自己有个包管理器，还要自己安装另外的程序，太可坑了

哈哈，你说的不对，是引用别人的“一”行代码的包！

# Linux 有问必答：如何在 Linux 上安装 Node.js

>
> **问题**: 如何在你的 Linux 发行版上安装 Node.js？
>
>
>

[Node.js](http://nodejs.org/) 是建立在谷歌的 V8 JavaScript 引擎服务器端的软件平台上。在构建高性能的服务器端应用程序上，Node.js 在 JavaScript 中已是首选方案。是什么让使用 Node.js 库和应用程序的[庞大生态系统](https://www.npmjs.com/)来开发服务器后台变得如此流行。Node.js 自带一个被称为 npm 的命令行工具可以让你轻松地安装它，进行版本控制并使用 npm 的在线仓库来管理 Node.js 库和应用程序的依赖关系。

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

在本教程中，我将介绍 **如何在主流 Linux 发行版上安装 Node.js，包括 Debian，Ubuntu，Fedora 和 CentOS** 。

Node.js 在一些发行版上有预构建的程序包（如，Fedora 或 Ubuntu），而在其他发行版上你需要通过源码安装。由于 Node.js 发展比较快，建议从源码安装最新版而不是安装一个过时的预构建的程序包。最新的 Node.js 自带 npm（Node.js 的包管理器），让你可以轻松的安装 Node.js 的外部模块。

### 在 Debian 上安装 Node.js on

从 Debian 8 (Jessie)开始，Node.js 已被纳入官方软件仓库。因此，你可以使用如下方式安装它：

```
$ sudo apt-get install npm

```

在 Debian 7 (Wheezy) 以前的版本中,你需要使用下面的方式来源码安装：

```
$ sudo apt-get install python g++ make
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

```

### 在 Ubuntu 或 Linux Mint 中安装 Node.js

Node.js 被包含在 Ubuntu（13.04 及更高版本）。因此，安装非常简单。以下方式将安装 Node.js 和 npm。

```
$ sudo apt-get install npm
$ sudo ln -s /usr/bin/nodejs /usr/bin/node

```

而 Ubuntu 中的 Node.js 可能版本比较老，你可以从 [其 PPA](https://launchpad.net/%7Echris-lea/+archive/node.js) 中安装最新的版本。

```
$ sudo apt-get install python-software-properties python g++ make
$ sudo add-apt-repository -y ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install npm

```

### 在 Fedora 中安装 Node.js

Node.js 被包含在 Fedora 的 base 仓库中。因此，你可以在 Fedora 中用 yum 安装 Node.js。

```
$ sudo yum install npm

```

如果你想安装 Node.js 的最新版本，可以按照以下步骤使用源码来安装。

```
$ sudo yum groupinstall 'Development Tools'
$ wget http://nodejs.org/dist/node-latest.tar.gz
$ tar xvfvz node-latest.tar.gz
$ cd node-v0.10.21 (replace a version with your own)
$ ./configure
$ make
$ sudo make install

```

### 在 CentOS 或 RHEL 中安装 Node.js

在 CentOS 使用 yum 包管理器来安装 Node.js，首先启用 EPEL 软件库，然后运行：

```
$ sudo yum install npm

```

如果你想在 CentOS 中安装最新版的 Node.js，其安装步骤和在 Fedora 中的相同。

### 在 Arch Linux 上安装 Node.js

Node.js 在 Arch Linux 的社区库中可以找到。所以安装很简单，只要运行：

```
$ sudo pacman -S nodejs npm

```

### 检查 Node.js 的版本

一旦你已经安装了 Node.js，你可以使用如下所示的方法检查 Node.js 的版本。

```
$ node --version

```

---

via: <http://ask.xmodulo.com/install-node-js-linux.html>

作者：[Dan Nanni](http://ask.xmodulo.com/author/nanni) 译者：[strugglingyou](https://github.com/strugglingyou) 校对：[wxy](https://github.com/wxy)

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


Summary: 我们去年报道了 ownCloud 正与西部数据Western Digital实验室沟通，帮助他们开发一个社区项目，将给用户带来可以在家中自托管的云存储设备。

在上家公司有构建owncloud， 感觉还可以，结合LADP构建企业内部云盘服务还是挺好玩的。

哪个公司啊，我们公司也是基于owncloud二次开发（完全没动）。

# ownCloud Pi 设备将运行在 Snappy Ubuntu Core 16.04 LTS 及树莓派3上

我们去年[报道了](http://news.softpedia.com/news/owncloud-partnerships-with-wd-to-bring-self-hosted-cloud-storage-in-users-homes-497512.shtml) ownCloud 正与<ruby> 西部数据 <rp>  （ </rp> <rt>  Western Digital </rt> <rp>  ） </rp></ruby>实验室沟通，帮助他们开发一个社区项目，将给用户带来可以在家中自托管的云存储设备。

自托管设备背后的理念，是由 ownCloud 服务端软件承载的，它结合了树莓派和西数硬盘到一个易安装和开箱即用的容器中。

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

社区的反应看上去很积极，ownCloud Pi 项目收到了许多好的提议和点子。今天，我们收到了一个更好的消息，首个镜像可以[下载](http://people.canonical.com/%7Ekyrofa/owncloud-pi/)了。

ownCloud Pi 基于最新的 Snappy Ubuntu Core 16.04 LTS 系统，它由 Canonical 为嵌入式和 物联网（Internet of Things）设备所设计，包括新的树莓派3 Model B。

ownCloud 的开发者在今天的[声明](https://owncloud.org/blog/wd-labs-raspberry-pi-owncloud-and-ubuntu/)中称：“我们正在寻求来自 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](http://news.softpedia.com/editors/browse/marius-nestor) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


将 Ubuntu 和 FreeBSD 融合在一起的发行版 ：UbuntuBSD

最后一句猝不及防

好，有一融合尝试

有意思的尝试

谁能教给我怎么用U盘装BSD系的操作系统……

bsd官方网站有安装指南!

# 将 Ubuntu 和 FreeBSD 融合在一起的发行版 ：UbuntuBSD

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

不止是在 Linux 的内核上面你才能体验到 Ubuntu 的快捷方便，伙计们。UbuntuBSD 可以让你在 FreeBSD 的内核上面也能体验到那种方便快捷。

UbuntuBSD 称自己是 ‘Unix for human beings’，这一点也不人惊讶。如果你能想起来的话，Ubuntu 使用的标语是 ‘Linux for human beings’ ，并且在过去的 11 年里它确实让一个‘正常人’有可能用上 Linux。

UbuntuBSD 有着同样的想法。它想让新手能够接触到 Unix ，以及能使用它——如果我能这样说的话。至少，这就是它的目标。

### 什么是 BSD ？ 它和 Linux 有哪些不同？

如果你是新手，那么你需要知道 [Unix 和 Linux 的区别](/article-3159-1.html).

在 Linux 出现之前，Unix 由 [AT&T](https://en.wikipedia.org/wiki/AT%26T) 的 [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson)、 [Denis Ricthie](https://en.wikipedia.org/wiki/Dennis_Ritchie) 以及他们的团队设计。这是在可以算作计算机上古时期的 1970 发生的事。当你知道 Unix 是一个闭源的，有产权的操作系统时你可能会感到惊讶。AT&T 给了很多第三方许可，包括学术机构和企业。

美国加州大学伯克利分校是其中一个拿到许可的学术机构。在那里开发的 Unix 系统叫做 [BSD (Berkeley Software Distribution)](http://www.bsd.org/)。BSD 的最出名的开源分支是 [FreeBSD](https://www.freebsd.org/)，另一个最流行的闭源分支是苹果的 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](https://www.freedesktop.org/wiki/Software/systemd/) 之后，[Debian GNU/kFreeBSD](https://www.debian.org/ports/kfreebsd-gnu/)诞生了。它使用的不是通常的 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](http://www.xfce.org/) ，桌面以及服务器均可使用。 对于 [ZFS](https://en.wikipedia.org/wiki/ZFS) 的支持也包含在这个版本中。开发者还提供了一个文本界面的安装器。

### 想试试？

我不建议任何人马上就去开心地去尝试这个系统。它仍在开发并且安装器还是文本界面的。不过如果你足够自信的话，直接去下载体验吧。但是如果你是新手的话，请等一段时间，至少不要现在就去尝试：

* 下载 [UbuntuBSD](https://sourceforge.net/projects/ubuntubsd/)

你认为 UbuntuBSD 怎么样？ 兹瓷不兹瓷它？

---

via: <http://itsfoss.com/ubuntubsd-ubuntu-freebsd/>

作者：[ABHISHEK](http://itsfoss.com/author/abhishek/) 译者：[name1e5s](https://github.com/name1e5s) 校对：[wxy](https://github.com/wxy)

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


Summary: 你现在可以在 Windows 10 中直接运行 Linux 下的 bash 以及其它的数万个二进制程序了。然而这并不是通过虚拟机、容器实现的。

感觉像cygwin（https://www.cygwin.com/）？

也像andLinux（http://andlinux.sourceforge.net/）？

有机会想体验一下

期待！

Wine 的一种反向技术

为啥不是调转过来呢？MS这么爱开源，帮忙把wine搞好吧~~或者让Win程序可以“原生”运行在Linux上。

wine

wine=wine is not an emulator<br />
那么这个项目可以叫 mine=microsoft's native emulator

双内核OS要诞生的节奏吗？

掉过来会更好，Windows自身资源占用就很利害了，再弄个容器（虽然文章说不是容器，但我还是坚持认为他们使用了类似技术）给它，性能下降明显，Linux程序的高效体现不出来，没什么鸟用

github有个项目叫flinux

embrace, extend, and extinguish<br />
拥抱，扩展，毁灭

MINE !

你既没有看过其技术实现细节，何来坚持使用了容器一说。要知道目前容器实现原理是容器与主机共享内核，而 Windows 的内核显然同 Linux 存在巨大差异，所以现在 Windows Server 2016 技术预览版上支持 Linux 容器，还是基于特定版的 Hyper-V Linux 客户端，如果是这样的话，还用得着让 Canonical 一同来开发？直接用 Hyper-V 方案就行，也不一定非得选 Ubuntu，任何 Hyper-V 支持的发行版都行。此外你也没有体验过，何来“性能下降明显”一说？

另外按你的意思 Wine 项目是不是可以把酒倒掉了？

要为linux捉急么

桌面

微软着急了啊！

表示对Windows的极不信任

不祥的预感，顿时觉得Linux快死了，被微软玩死了，微软绝不是善类，和微软合作的下场只有死路一条

来自湖南益阳的 Internet Explorer 11.0|Windows 7 用户

linux危险了，一个自娱自乐的系统，不把自己的兼容性搞好，最后结局就是这样的，一个好的系统要被大家接受就是易用、兼容、傻瓜，而不是搞一堆命令和限制，毕竟大多数用电脑的人是电脑盲，需要的只是拿起就用，而不是打一堆命令。LINUX最大的硬伤，就是核心问题-不兼容，不是靠什么WINE来解决的

sb

系统神马的都不是问题,问题是安全好不,中国没自己的系统,这才是重点,

就像别人写的盗号软件再怎么好用,后来发现自己盗的都给作者了

只针对桌面系统来说吧，linux粉都不这么认为，最可怕的是linux厂商也不这么认为，这也是为什么桌面版linux发展了这么多年一直没大的进展。<br />
linux要想争夺Windows的桌面领域，就必须要朝傻瓜化发展，否则的话还是坚守自己的服务器和嵌入式领域吧

傻逼。你知不知道linux 到底干嘛用的？ 不知道别瞎BB

虽然你说的简单粗暴，但是准确

开源是 Linux 的灵魂

玩安卓玩出的决定？

你真用过Linux？还是说你认为电脑就是用来玩的，没有别的作用了？

我认为，这样想的人，根本就不理解自由及开源软件。

至少以后偶尔需要用windows的时候，不会出现命令行用不了的情形了

你是不是傻？电脑盲还用linux？你这智商也就适合玩windows

然而我还是喜欢Linux下的桌面环境，可定制强。

服务器还好，网上有红帽的入门教程，我现在用着没什么难度，只是桌面太坑爹了，就拿我的centos7来说，用着用着居然进入了emergency模式

听说过这样一种策略，拥抱-融合-消灭。感觉微软有点腹黑

这不是兼容性的问题，linux在桌面方面发展一直很慢，压根就没被重视过

来自河北邢台的 Internet Explorer 11.0|Windows 7 用户（手动滑稽

凭啥兼容？照你这逻辑，iOS咋不兼容Android呢？

笑死 ,, 兼容, 你用Mac运行个widnows 下的exe试试,linux本就不是面向电脑盲的

win下的任何功能的程序都有都比linux同类的强，根本没必要拿到win上运行

来自辽宁大连的 Chrome Mobile 39.0|Android 5.1 用户

我就喜欢你这一本正经的胡说八道。

你了解linux太少了, 真正支持linux的都是计算机大公司,比如intel, IBM, amd, HP, 谷歌等, 超级计算机大部分运行linux, 安卓系统也是linux. 那些设备驱动大多数是大公司写的. 服务于大公司才能这赚钱. linux桌面系统免费, 没利益的.  国外很多超级计算机硬件国内都没有, 很遗憾. 人家不给. 我们的做们系统一般最多4核8线程, 那些超级计算机一个系统几百个cpu. linux胜任这个. 还有计算机集群. linux可以控制几千个计算机, 呵呵 多多学习.

很喜欢这个啊，可以个mac一样使用命令行操作了

恩 无知到一本正经

MDZZ

见过傻的，没见过你这样傻蛋的，呵呵

这里也快变成cnbeta了

智障不知道 Linux的应用场景么

# 微软发布“Ubuntu on Windows” 项目，Linux 程序可原生运行于 Windows 10 中

昨晚，北京时间2016/3/30 23点30分，微软 //Build 2016 开发者大会在美国旧金山莫斯康展览中心拉开帷幕。

在本次大会上宣布，微软与 Ubuntu 的母公司 Canonical 合作开发了一个超级隐秘的项目，将 Ubuntu 的<ruby> 用户空间 <rp>  （ </rp> <rt>  user space </rt> <rp>  ） </rp></ruby>带到了 Windows 10 之中。 据大会现场消息披露，你现在可以**在 Windows 10 中直接运行 Linux 下的 bash 以及其它的数万个二进制程序了**。

正在旧金山参加本次大会的 Canonical 的 Ubuntu 产品与战略负责人 Dustin Kirkland 也在其[博客](http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html)上宣布了这个消息。

“这对于我来说也许有点奇怪，我已经快有16年没有使用 Windows 了。但在几个月前有了变化，我参与到了微软和 Canonical 合作的一个超级隐秘（也十分令人震惊）的项目中，这一切会在这次 Build 大会上由 Kevin Gallo 揭晓...”，[他说](http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html)，“现在可以在 Windows 10 cmd.exe 窗口内原生地运行 Ubuntu 用户空间和 bash ！”

“好吧，这是一个运行在虚拟机的 Ubuntu 吗？” 不！**这根本不是一个虚拟机**，不用在虚拟机中启动 Linux 内核，它就是 Ubuntu 的用户空间。

“哦，那是运行在容器里面啰？” 不不！**这也不是一个容器**，这是在 Windows 里面直接运行原生的 Ubuntu 二进制程序。

“嗯，就像 cygwin 那样？”不不不！cygwin 所包括的开源程序是以源代码重新编译后才能原生运行在 Windows 上。而这里，我们说的是一个比特都不差、校验值**完全一样的 Ubuntu 的 ELF 二进制程序可以直接运行在 Windows 下**！

... ...

“那么，这就像是模拟器一样么？”越来越接近真相了，来自微软的一些技术人员正在研究一种技术，**将 Linux 的系统调用实时地转换为 Windows 的系统调用**。你可以把它当成 Wine 的一种反向技术。微软将其称之为“<ruby> Windows 下的 Linux 子系统 <rp>  （ </rp> <rt>  Windows Subsystem for Linux </rt> <rp>  ） </rp></ruby>”，当然现在还没有开源。

如果你使用 Windows 10 来开发跨平台应用，那么“Ubuntu on Windows”项目将可以让你从 Windows 启动菜单直接访问 Linux 下的 bash shell。只需要键入 bash ，然后回车，就会打开一个命令行窗口，里面运行着 /bin/bash，然后数以万计的来自 Ubuntu 软件库中的二进制程序就可以运行了，包括但不限于 apt、ssh、 rsync、 find、 grep、 vim、 emacs、 awk、 sed、 ruby、 tar、 sort、php、 mysql、 perl、 python、 wget、 md5sum、 gpg、 curl、 apache、 gcc、 diff、patch 等等。

“这是 Windows 上原生可用的完整 Ubuntu 环境，不是虚拟化或模拟器，这是打破常识的里程碑和通向新天地的里程碑，”Canonical 公司 CEO Mark Shuttleworth 说，“不管怎么说，我们很高兴将 Ubuntu 带到了 Windows ，以一种神奇的方式满足了 Windows 开发者探索 Linux 的需要。”

这个技术当前基于 Ubuntu 14.04 LTS 开发，可以从 Windows Store 中下载早期 beta 版本。有关该项目的进一步技术细节，我们会在之后的文章中进行探讨。


“Ubuntu on Windows” 初体验

Summary: 本文带你揭开“Ubuntu on Windows”的神秘一角。Dustin Kirkland  是该项目组的成员之一，他的体验可以让我们感受一下这个“超级神秘”的项目。

什么情况

看来微软要把开发人员牢牢绑定在win10上.得码工者得天下，微软也是拼了.

我个人还是看好这个，虽然 OS X 是 UNIX 系统，也能使用一些 GNU 软件，但是毕竟内核不同，不是什么软件都支持，如果靠虚拟化解决，那同在 Windows 下用虚拟化方案没啥不同，最多就是虚拟化的技术存在一些差异，但是一部针对桌面的虚拟化方案能有什么不同？如果微软能做好对 Linux 内核的反向支持，能让大部分不是高度依赖 Linux 内核的软件正常运行，目标用户又用做 Linux 非底层软件开发，那么相较于 MacBook 的价格，相对低廉的 Windows 10 笔记本还是有吸引力的。当然不足可能是存在的，比如文件名，文件属性这些，要知道 Linux 对文

件名的限制非常少，但如果 Windows 10 是直接把 Linux 软件放在 NTFS 或 ReFS 文件系统，这方面肯定有限制，还有文件名大小写区分这些，以及像 chattr 这些扩展属性，不过 ACL 这个倒是不用担心，微软的 ACL 设置要比 setfacl/getfacl 细的多，而且不仅仅是文件系统在用，进程，注册表这些都在用。

当然不足肯定是存在的，

更简单来说，如果这个项目确实能很好运行 CLI 界面 Linux 软件，并且子系统消耗内存不多，CPU 资源不多的话，我就可以不用 VirtualBox 来跑一个对系统服务进行过必要精简的 CentOS 7 来在只有 2G 内存的 Surface 3 跑一些 Linux 服务了。

有这个确实会方便些，但是目前这样子不足以让人转换阵营

既然如此，那就应该让微软提供windows向linux的WINE转换啊。现在的linux WINE做得肯定不会比微软好

以后的小白就会说，linux是windows的子系统

拥抱 扩展 毁灭

我个人觉得，简单来说：

Canonical  -->  微软  「√」    （Canonical说：我来了。微软说：行，来吧）

微软  -->  WINE  「╳」    （微软说：不行，我没这闲功夫，我不干）

你觉得呢？

win10内置shell: 摇摆用户更方便使用win桌面环境,提升win10占用率

ms加强wine: 摇摆用户更方便使用linux桌面, 提升linux桌面占有率.

你觉得ms会怎么做?

差不多就这意思，一看就明白。

如果是Linux下跑windows还能接受   windows下跑linux  就windows那内存占用率还是算了吧

所以微軟還是想乾掉linux,只不過不是消滅而是吃進去共存.

文件权限怎么解决？

软链接怎么搞的

能运行桌面应用吗？

目前不能，不过我觉得理论上是可行的。但是微软也许不考虑这样做。

这么多人看到 Ubuntu on Windows 就准备抛弃 OS X 转投 Windows 10 了？微软画的大饼看看就好了，何必当真呢！

微软可能只会让它运行终端程序，桌面的应该不会

为什么我电脑打不开Bash？

还没更新呢，等 redstone 版

一个很有远景的部署，微软在开源的路上越走越快了，表忘记盖茨本人也是一个早期骇客，他是具有开源精神的领袖人物

# “Ubuntu on Windows” 初体验

在 Windows 10 中原生运行 Linux bash 和其它的 ELF 二进制程序？对，你没看错，这就是昨晚微软[宣布](/article-7177-1.html)的“Ubuntu on Windows”项目所披露的事实——而且，今天不是 4/1。

之前就有传闻说，微软在 [Windows 10 里暗藏神秘 Linux 子系统！](/article-6979-1.html)现在，传闻变成真的了。

据该项目的合作方， Ubnutu 背后的 Canonical 公司的产品与战略负责人 [Dustin Kirkland](https://www.linkedin.com/in/dustinkirkland/) 说，他在几个月前听说这个疯狂的想法时也懵了，花费了不少工夫才理解这后面发生了什么。

本文带你揭开“Ubuntu on Windows”的神秘一角。

首先，让我们看看发生了什么？

1. 首先你得有个 Windows 10
2. 打开 Windows 开始菜单
3. 输入“bash” （没有引号），回车
4. 这会打开一个 cmd.exe 窗口
5. 运行 Ubuntu 的 /bin/bash
6. 宾果！你可以完全访问所有的 Ubuntu 用户空间了
7. 没错，这包括 apt、 ssh、 rsync、 find、 grep、 awk、 sed、 sort、 xargs、 md5sum、 gpg、 curl、 wget、apache、 mysql、 python、 perl、 ruby、 php、 gcc、 tar、 vim、 emacs、 diff、 patch 等等
8. 以及，Ubuntu 软件库中数以万计的 ELF 二进制程序中的绝大多数！

“好吧，这是一个运行在虚拟机的 Ubuntu 吗？” 不！**这根本不是一个虚拟机**，不用在虚拟机中启动 Linux 内核，它就是 Ubuntu 的用户空间。

“哦，那是运行在容器里面啰？” 不不！**这也不是一个容器**，这是在 Windows 里面直接运行原生的 Ubuntu 二进制程序。

“嗯，就像 cygwin 那样？”不不不！cygwin 所包括的开源程序是以源代码重新编译后才能原生运行在 Windows 上。而这里，我们说的是一个比特都不差、校验值**完全一样的 Ubuntu 的 ELF 二进制程序可以直接运行在 Windows 下**！

... ...

“那么，这就像是模拟器一样么？”这就比较接近真相了，来自微软的一些尖端技术人员正在研究一种技术，可以**将 Linux 的系统调用实时地转换为 Windows 的系统调用**。你可以把它当成 Wine 的一种反向技术。微软将其称之为“<ruby> Windows 下的 Linux 子系统 <rt>  Windows Subsystem for Linux </rt></ruby>”，当然现在还没有开源。（我觉得网友 [delectate](https://linux.cn/space/23856/) 说的比较有趣，这个东西不如叫做 mine=microsoft's native emulator 。）

而且，根据 [Dustin Kirkland](https://www.linkedin.com/in/dustinkirkland/) 的[说法](http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html)，使用跨平台的性能测试工具 sysbench 进行测试的结果发现，在 Windows 下运行这些原生的 ELF 二进制程序和在 Linux 下运行所消耗的 CPU 、内存和 IO 性能相当。对于这个结果，我表示非常的吃惊！

[Dustin Kirkland](https://www.linkedin.com/in/dustinkirkland/) 是该项目组的成员之一，他的体验可以让我们感受一下这个“超级神秘”的项目。

由于需要将整个 Ubuntu 的根文件系统打包到一个 Windows 应用软件包（.appx）中，这位已经十几年没有使用过 Windows 的老兄对微软开发工具十分陌生，在经过几个小时与 Visual Studio 的痛苦搏斗，制作了一堆各种尺寸的 png 图标，编辑了一打以上的 XML 文件后，他简直忍不住要将咖啡杯扔到该死的屏幕上了。

到最后，他终于寻求他所熟悉的 Linux 经验解决了这些问题。

按下 Windows 键，输入“bash”，回车！他发现这个要上载的根文件系统的内容放在 /mnt/c/Users/Kirkland/Downloads 下，只需要使用一个 cp -a 复制到目标位置即可，并用 find | xargs |rename 来批量更新文件名，用 grep| xargs | sed 搜索替换路径，用 convert 工具快速地批量缩放图标，简直不要太容易地搞定了这些工作，剩下的就只需要让 Visual Studio 自己干了，编译、上载到 Windows Store。搞定！

嗯，你也许从终端窗口中看到了 /mnt/c ，没错，这就是你的 Windows 下的 C: 盘，它们以读写模式直接挂载到 /mnt 下了。当然，你也可以在 Windows 下通过类似如下的路径访问 Ubuntu 的文件系统：C:\Users\Kirkland\AppData\Local\Lxss\rootfs\ 。

同时，如果需要 ssh 连接到其它的 Linux 上，你根本不用下载 putty，直接输入 ssh 即可：

当然，你也可以使用 apt 来安装和更新软件包：

到目前为止，是不是所有的东西都可以完美工作了？还不全是。[LTP](https://github.com/linux-test-project/ltp) 测试中的大多数都没问题，但是有一些则还不行，主要是 tty 相关的部分，比如 byobu、screen、tmux 等还不能很好的工作，不过相信也快了。

另外，顺便提一句，当前这个子系统所采用的 Linux 镜像是 Ubuntu 14.04 LTS，等 16.04 LTS 发布后相信很快就会更新到 Windows Store 上。