2014年8月

你上次编译内核是多久以前的事儿了?新生代 Linux 管理员的答案很简单:我压根儿没编译过内核。我也从没编译过内核,当然自己弄着玩儿的不算。我实在想不到我为啥需要自定义内核,所以我就用我的“开箱即用”内核了。

Linux 老鸟们可能会笑话我们,但你不能否认:随着越来越多的企业采用 Linux,新生代的 Linux 管理员虽然生就一身相当不错的技术实力,却因缺乏编译内核这类简单却基础的技能而和一个优秀的 Linux 管理员之间存在差距。我们能用时下最前沿的技术搭建一套高性能、高可用的 Web 基础设施,但你别让我们修理一台无法启动的 Linux 机器——我们会建议你扔了它,然后换个新的虚拟机。

过去的十来年里发生了很多有意思的事儿:Linux 不但变成了商品,而且其层出不穷的发行版也越来越强大和灵活。如今,一个普通的系统管理员完全不必掌握编译内核这类底层技能了。

然后,我们又见证了虚拟机技术的商品化。使用 Amazon 云主机或者 VPS 的用户也许永远不用在裸机上部署 Linux。随着混合云和私有云的日益普及,甚至很多企业级的系统管理员都不需要在裸机上部署 Linux——登录 Web 管理界面,一次性就能搞定不止 5 台 Apache 虚拟机。

时下最新的两个趋势:一个是配置管理,另一个看起来很前沿(其实一点儿都不前沿)—— 像 docker 这样的部署工具包,它们隐藏了更多 Linux 底层技术细节。每当客户要求我们在 OlinData 上配置 Linux 机器时,我们的第一个动作就是架设 Puppet。有了功能强大值得信赖的 Puppet 模块,手工配置也更快更简单了。

例如,我可以这样使用 Puppet 在新机器上安装 Apache:

node 'web01.olindata.com' {
  include apache
  apache::vhost{ 'www.olindata.com':
    docroot => '/var/www/olindata'
  }
}

在这种环境下,我甚至都不用在机器上打开日志。通过 Jenkins 这样的不间断部署工具,我可以完全自动化部署我的基础设施代码,并确保它们通过了我预置的测试。

系统管理员技能日益升级

就算有更新的工具对我们隐藏更多的技术细节,坚持 Linux 训练对系统管理员来说仍然很有价值。了解基础知识很关键,这些抽象高级工具把管理员从旧的任务中解放了出来,那么系统管理员就应该强化自己使用这些高级工具的能力。熟悉高级工具对系统管理员提升层次来说很关键,这会迫使系统管理员不断练习编写代码一类的能力,并借此发挥这些新玩意儿更大的潜力。

底层 Linux 技能需求会完全消失么?当然不会。除了商业服务器部署之外,Linux 还有大量其他用途。同时,人们也从底层操作知识中获益颇丰。最重要的是,如果你的简历上体现出了这些技能,我(还有很多其他老板)总是会优先选择你,而不是那些尚未掌握这些技能的候选人。因为你也不知道啥时候你就用上这些技能了!

Walter Heck 是 荷兰开源培训顾问公司 Olindata(一个 Linux 基金会授权的培训机构)的创始人兼 CEO,这里是计划中由 OlinData 提供的 Linux 基金会官方培训课程单


via: http://www.linux.com/news/enterprise/systems-management/780956-linux-system-administration-skills-are-changing

原文作者:Walter Heck

译者:sailing 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Linux 内核测试哲学

不管是开源还是闭源,所有软件的开发流程中,测试是一个重要的、不可或缺的环节,Linux 内核也不例外。开发人员自测、系统测试、回归测试、压力测试,都有各自不同的目的,但是从更高一个层次上看,这些测试的最终目的又是一样的:保证软件能一直运行下去,当有新功能加进去时,要保证新功能可以正常工作。

在软件释出 release 版之前,不用回归测试就能保证稳定性,并且尽量避免在软件发布后被用户发现 bug。调试被用户发现的 bug 是一项非常浪费时间和精力的工作。因此测试是一项非常重要的工作。不像闭源和专有的操作系统,Linux 内核的开发过程是完全开放的。这种处理方式即是它的优点,也是它的缺点。多个开发者持续增加新功能、修 bug、不断集成与测试 —— 当环境有新的硬件或功能时,这种开发方式能够保证内核能持续工作。在开源项目中,开发者与用户共享测试的结果,这也是开源项目与闭源项目之间的一个很重要的差别。

几乎所有 Linux 内核开发者都是活跃的 Linux 用户。内核测试人员不一定非得是内核开发者,相反,用户和开发者如果对新增的代码不是很熟悉,他们的测试效果会比代码开发人员自己测试的效果要好很多。也就是说,开发者的单元自测能验证软件的功能,但并不能保证在其他代码、其他功能、其他软件、硬件环境下面运行时会出现什么问题。开发者无法预料、也没有机会和资源来测试所有环境。因此,用户在 Linux 内核开发过程中起到非常重要的角色。

现在我们已经了解了持续集成测试的重要性,接下来我们会详细介绍测试的知识。但在此之前,我还是向你介绍一下开发的过程,以便让大家了解它是怎么工作的,以及如何把补丁打进内核主线。

全世界共有3000多个内核开发者为 Linux 内核贡献代码,每天都有新代码添加到内核,结果是大概2个月就能产生一个release ,包括几个稳定版和扩展稳定版。新功能的开发与已发布的稳定版集成测试流程在同时进行。

关于开发流程的详细描述,请参考Greg Kroah-Hartman 的 Linux 内核开发的介绍

这份教程适合与初学者以及有经验的内核开发者,如果你想加入到内核开发者行列,那么它也适合你。有经验的开发人员可以跳过那些介绍基础测试和调试的章节。

这份教程介绍如何测试和调试 Linux 内核、工具、脚本以及在回归测试和集成测试中使用的调试机制。另外,本文还会介绍如何使用 git 把针对一个 bug 的补丁分离出来,再介绍把你的补丁提交到内核的邮件列表之前需要做些什么。我将会使用 Linux PM 作为测试它调试的对象。尽管本文讨论的是 Linux 内核,但是介绍的方法也适用于任何其他软件开发项目。

配置开发与测试的系统

第一步,找一个满足你需求的开发环境,x86-64 是一个比较理想的选择,除非你必须用特别的架构。

第二步,安装 Linux 发行版,我推荐 Ubuntu,所以本教程会介绍基于 Ubuntu 的配置过程。你可以参考如何使用 Ubuntu 来安装一个 Ubuntu 系统。

在开发和测试环境,最好要保证你的 boot 分区有足够的空间来存放内核文件。你可以为 boot 分区留下 3GB 空间,或把 boot 分区直接放到根目录下,这样 boot 分区可以使用整个磁盘的空间。

安装好操作系统后,确保 root 用户可用,确保你的用户身份可以使用 sudo 命令。你的系统也许已经安装了 build-essential,它是编译内核必备的软件包,如果没安装,运行下面的命令:

sudo apt-get install build-essential

然后运行下面的命令,保证你的系统能够交叉编译内核。下面的 ncurses-dev 安装包是运行 make menuconfig 命令必须用到的。

sudo apt-get install binutils-multiarch
sudo apt-get install ncurses-dev
sudo apt-get install alien

然后安装一些每个内核开发者都会用到的工具包:

sudo apt-get install git
sudo apt-get install cscope
sudo apt-get install meld
sudo apt-get install gitk

如果你喜欢把内核通过交叉编译以支持非 x86\_64 架构的环境,请参考在 x86\_64 上交叉编译 Linux 内核

稳定的内核

使用 git 克隆一个稳定的内核,然后编译安装。你可以参考Linux 内核结构来找到最新的稳定版和开发主线。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

上面的步骤将会创建一个新的目录,名为 linux-stable,并把源码下载到里面。

你也可以直接下载压缩包并解压出源码,无需使用 git:

tar xvf linux-3.x.y.tar.xz

via: http://www.linuxjournal.com/content/linux-kernel-testing-and-debugging?page=0,0

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

echo命令是内建的shell命令,用于显示变量的值或者打印一行文本

echo命令在构建shell脚本时扮演着重要的角色。

语法:

# echo [Options] [String]

方括号中的项目是可选的。字符串可以定义为字符的有限序列(如字母,数字,符号,标点符号)。

当echo命令不带任何选项或字符串使用时,它会在显示屏上返回一个空白行,后面换一行跟上命令提示符。这是因为按下回车键就是发送一个信号给系统以开始一个新行,而echo重复了该信号。

选项:

  • -n 不要输出衍生的新行
  • -e 启用反斜线转义解释
  • -E 禁用反斜线转义解释(默认)

如果使用-e选项,则可以使用如下转义序列:

  • \ 反斜线
  • \a 警告(BEL)
  • \b 反斜线
  • \c 不产生进一步输出
  • \e 转义
  • \f 换页
  • \n 新行
  • \r 换行字符
  • \t 水平制表
  • \v 垂直制表
  • \0NNN 八进制值表示的字节NNN(1到3个数字)
  • \xHH 十六进制值表示的字节NNN(1到2个数字)

样例:1 显示系统定义的变量的值

使用set命令,我们可以列出系统定义的变量。而要打印这些变量的值,我们可以使用echo命令:

jack@localhost:~$ echo $USER
jack
jack@localhost:~$ echo $HOME
/home/jack

样例:2 显示用户定义的变量的值

jack@nextstep4it:~$ var1=`date`
jack@nextstep4it:~$ echo "Today's date  time is : $var1"
Today's date  time is : Mon Jul 28 13:11:37 IST 2014

样例:3 显示文本字符串

jack@nextstep4it:~$ echo " Hi this echo command testing"
Hi this echo command testing

样例:4 在echo命令中使用反斜线

jack@nextstep4it:~$ echo -e "Ubuntu \bis \bthe \bbest \bDesktop \bOS"

上述命令将打印:

UbuntuisthebestDesktopOS

样例:5 在echo命令中使用制表符空格

nextstep4it@nextstep4it:~$ echo -e "Ubuntu \tis \tthe \tbest \tDesktop \tOS"

上述命令将显示如下输出:

Ubuntu is the best Desktop OS

样例:6 在echo命令中使用垂直制表符

jack@nextstep4it:~$ echo -e "Ubuntu \vis \vthe \vbest \vDesktop \vOS"
Ubuntu
       is
              the
                     best
                            Desktop
                                          OS

样例:7 设置echo命令彩色输出

echo命令可以修改字体类型,字体背景色以及字体颜色,转义序列\033可以用于改变字体属性。要使转义序列生效,必须使用-e选项。下面列出了部分转义代码:

  • [0m: 正常
  • [1m: 粗体
  • [4m: 字体加上下划线
  • [7m: 逆转前景和背景色
  • [8m: 不可见字符
  • [9m: 跨行字体
  • [30m: 灰色字体
  • [31m: 红色字体
  • [32m: 绿色字体
  • [33m: 棕色字体
  • [34m: 蓝色字体
  • [35m: 紫色字体
  • [36m: 浅蓝色字体
  • [37m: 浅灰字体
  • [38m: 黑色字体
  • [40m: 黑色背景
  • [41m: 红色背景
  • [42m: 绿色背景
  • [43m: 棕色背景
  • [44m: 蓝色背景
  • [45m: 紫色背景
  • [46m: 浅蓝色背景
  • [47m: 浅灰色背景

下面的命令将用红色打印输出。

jack@nextstep4it:~$ echo -e "\033[31mMagic of Linux\033[0m"
Magic of Linux

下面的命令将以粗体以及红色背景打印出“Magic of Linux”。

nextstep4it@nextstep4it:~$ echo -e "\033[1m\033[41mMagic of Linux\033[0m"
Magic of Linux

via: http://www.nextstep4it.com/categories/unix-command/echo-command/

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

问题:我经常使用screen命令来运行多个伪终端会话。好多次,我发现都记不得自己是否在一个screen会话中,还是在一个常规终端中。是否有一种简便的方法来检查我是否在一个运行着的screen会话中?

一个快捷而又简单的方法来检查你是否处于一个screen伪终端中,还是在一个常规终端中,就是检查STY环境变量。当调用了screen,就会把STY变量值设置为会话名。因此,如果STY环境变量被设置为任何非空字符串,就意味着你正处于一个screen会话中。

 $ echo $STY 
2858.pts-3.my\_host

然而,请注意,上面的方法只有当你是在本地计算机上运行screen命令的时候。如果你从本地计算机的screen会话中SSH到任何远程计算机上,远程计算机上的STY变量不会被设置,尽管在技术上看,你仍然处于一个screen会话中。

事实上,一个更为可靠的检查你是否处于一个screen会话中的方法,是按“Ctrl-a”+“Ctrl-t”。如果你处于screen会话中,终端会在底部显示时间信息。


via: http://ask.xmodulo.com/check-running-screen-session.html

译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

林纳斯唯一口述自传,充满各种笑料以及对技术和软件的严肃思考。

即日起关注@LINUX中国 @图灵教育 对本书进行评论,说说你喜爱它的理由,即有机会获得《只是为了好玩》图书1本(共5本)

活动内容

活动时间:2014年8月13日-2014年8月22日

活动要求:

活动形式一 :在新浪微博关注@LINUX中国 @图灵教育 转发本微博并添加有效评论。
活动形式二:在Linux中国(http://linux.cn)对本书进行评论,说说你喜爱它的理由。

活动奖品:《只是为了好玩》图书一本(共5本)

特此注意:

1、本站论坛评论方式参与的用户,评论前需登录您的Linux中国账号,匿名评论无效

2、微博用户参与活动,活动结束后注意查看@LINUX中国 官方微博公布的中奖名单或留意您的微博私信,本站用户参与活动,注意查看您注册Linux中国时所填写的邮箱。 我们会通过微博私信以及电子邮件两种方式获取您的邮寄信息。

基本信息

作者:Linus Torvalds(林纳斯·托瓦兹)David Diamond(大卫·戴蒙)

译者: 陈少芸

出版社:人民邮电出版社

出版时间:2014-08-01

页数:280

版次:1

编辑推荐

  “此书极其有趣,一点儿不枯燥,充满了各种好玩的笑料,以及对技术和软件的严肃思考。如果你是一名程序员,我高度推荐此书。”
  ——阮一峰,知名博主,著有《如何变得有思想》

  “目前几乎整个互联网都是运行在Linux及其衍生产品之上的,可以说没有Linux,互联网不可能得到如此迅猛的发展。林纳斯用自己精彩的编程人生和对自由软件的热爱演绎了现代社会中一个书呆子的胜利。”
  ——池建强,瑞友科技IT应用研究院副院长,著有《MacTalk·人生元编程》

内容简介

《只是为了好玩:Linux之父林纳斯自传》是Linux 之父林纳斯·托瓦兹的自传,内容不只包括他的成长经历、Linux 系统的诞生过程、与之相关的争议,还有他本人对于版权、开源、商业软件等的看法以及对生活意义的思考。
  《只是为了好玩:Linux之父林纳斯自传》语言幽默活泼,读来生动有趣且发人深思,适合所有人,尤其是对Linux 感兴趣的读者阅读。

作者简介

林纳斯·托瓦兹,当今世界最著名的程序员、黑客,开源操作系统Linux之父。生于芬兰,毕业于赫尔辛基大学,1997年~2003年任职于美国加州硅谷的全美达公司,现受聘于开放源代码开发实验室,全力开发Linux内核。2004年,他被《时代周刊》评为世界最有影响力的人之一。

  大卫·戴蒙,职业撰稿人,曾为《纽约时报》《连线》《美国周末》及许多刊物供稿。

样张地址:http://www.ituring.com.cn/book/1115

购买链接:http://item.jd.com/11514065.html

更多图灵图书,请点击:http://jmall.jd.com/p151429.html

Linux 最需要的就是游戏, Hyperlogos 的博主 Martin Espinoza 如是说。然而,“如果您把它限定到一款应用程序的话,最需要的很可能仍是 Photoshop 。尽管大家都在谈论 GIMP 已经变得多么多么强大,但它的易用性仍然是个悲催的噩梦;虽然开源社区有些相关的文档,但 GIMP 仍是处在缺乏文档的可怜状态。”

这些日子这儿越来越热了,Linux 博客世界和 FOSS 论坛的粉丝们都蜂拥入带有破窗的休息室,边吹着冷空调,边讨论此话题。

甚至是 Linux Girl,这些天也被这些越来越多的潮流所冲击,正在 blogobar 上寻求能使其降温的慰籍,而且越来越频繁。

虽然她们这样做比较正确,但或许她们已经错过了最鲜最美味可口的辩论大餐。“Linux 缺少什么样的杀手级应用程序?”这个问题已经扩大化了,关于此的讨论越演越烈,已经超出以往任何时候。

“开源软件世界的软件是如此令人难以置信的丰富,几乎涵盖了所有的领域,” Linux Voice 的 Mike Saunders 开头说到。“我们有桌面端的、服务端的、开发相关的及多媒体工具等一大笔来自开源世界的财富可以选择 -- 其中的某些还是在相关领域中最好的呢。”

“但还缺少什么吗?” Sanders 接下来提出可争议的话题。“是不是存在一款杀手级应用程序,它会使你的主机不能 24x7 小时的在运行?”

参与者围绕着吧台考虑这话题的时候,出现了短暂的间歇。Linux Girl 也享受着这短暂的平静,但并没有持续多久。

'取决于您的所需'

Linux Girl

“很久以前,Linux 需要很多东西,” Google+ 的博主 Alessandro Ebersol 发言了。“当任何软件和厨房水槽都迁移到云端的那些日子,做任何的事情都得考虑多平台兼容性。”

“我想说的是我们缺少游戏,但这种情况也正在被改变,” Ebersol 说道。“所以我觉得我们并不是那么迫切的需要一个杀手级应用了。”

“杀手级应用程序?取决于你想用计算机做什么,” consultant 和 Slashdot 博客的 Gerhard Mack 认为。“如果您正准备拟稿做设计,那么杀手级应用程序就是 AUTOCAD 。但对其它行业来说杀手级应用程序将是别的。”

'企业平台空间'

Google+ 博客的 Kevin O'Brien 有相似的观点。

“在消费级存在的应用程序不算太多,” O'Brien 说。“我虽然会抱怨游戏或者 Nvidia 驱动程序,并且我看还没有任何东西能真正替代 Quicken。(译者注:Quicken 是一款家庭及个人财务管理软件,可管理个人及家庭的日常收支、银行卡、支票、信用卡及税务等财务信息,有着丰富的功能和简单快捷的操作。)但对我来说最大的不同是企业平台空间。”

“微软就拥有企业平台空间,没有什么比得过 Outlook/Exchange 服务, Sharepoint 等这些应用的,”他断言到。“我猜测部分原因可能是真正关心这些的开源开发者很少很少。”

'浪潮正发生改变'

与其说是“缺乏应用程序”这种情况,不如说是“临界的质量不够”的问题,Google+ 博客 Gonzalo Velasco C. 建议说。

比起五年前,现在用 Linux 的人已经越来越多了,他指出;但同时很人都依赖于非 Linux 友好的应用程序。

“虽然每个人都在使用 Skype ,但一大半的应用程序都是基于 GNU/Linux 协议的,从简单易用的 Pidgin(我的最爱)到 Ekiga 和通用 VoIP 等等,” Gonzalo Velasco C. 解释说。“一些用户仍宣称他们需要 PhotoShop,并不想花时间来掌握和改进 GIMP、Inkscape、Bender 及其它的。”

“曾经是很缺乏游戏,“但这状况正发生改变,主要是(但并不是唯一)因为 Valve 的勇敢开创 SteamOS 之举,”他补充道。

'零售货架空间'

“我认为这段时期根本就没有‘杀手级’应用程序,”Robert Pogson 博客上的观点。“在 Debian GNU/Linux 系统上,有 40000以上 的软件包,虽然我的 PC 只安装了 3000 多的软件,但我一样都不缺。我有多个浏览器、编辑器、编译器/解释器、多个操作平台和像 KVM 这样的虚拟机,我可以根据需要在多个操作系统和不同版本的软件中尽情玩乐。”

“在局域网内,我可以把多台机器当做一台机器来使用,” Pogson 补充道。“在局域网内我能从任何机器上访问存储在任意节点的资源。还有什么不能满足的吗?”

"有些说法,几个专业人士告诉我,在 GNU/Linux 上的视频和图像编辑是有点弱,”他说。 “GIMP 正在比特级别的图像上改进,所以应该不算了。Lightworks(译者注:好莱坞级专业电影编辑软件) 最终会被当做 FLOSS(译者注:自由/开源软件:世界影响研究) 发布,所以视频应该不算。”

"尽管如此,在 IT 行业中还有特少数的专业功能软件,”他指出。“很多普通用户几十年都不会使用那些极其特殊的应用程序软件,所有我认为 GNU/Linux 系统已经不需要什么了。”

但是真正的杀手在市场上,在零售商店缺乏货架空间,Pogson 断言到。“只要解决这问题,GNU/Linux 必定蓬勃发展。”

'Linux 已经输给 OS X'

Chris Travers,一名工作于 LedgerSMB博主,有不同的观点。

“我认为杀手级应用程序并不是关键问题,”他开始说到。“真正的问题是,虽然跟 BSD 系统一样,Linux 正在占据服务器市场,但在桌面市场 Linux 已经普遍输于 OS X 了。Linux 用户正在寻找开放的桌面系统。”

Linux “既需要微软的增长势头,又需要 OS X 系统的精致用户界面和引人入胜的细节设计,”Travers 说到。“这些迟早会来有的。”

文档问题

“Linux 并不是缺少杀手级应用程序” -- "缺少的是一如既往的打磨抛光," Hyperlogos 的博主 Martin Espinoza 认为。“根本就没有 Linux 的桌面环境能像 Windows XP 系统那样精雕细琢,更别说是 Windows 7 系统了。”

"除了可以用臃肿复杂的 GNOME 或 KDE 的色拉一样的小部件,难道还要用拥有极其可怕的文件管理器和非常原始的面板的 Xface 或 LXDE 吗?" Espinoza 增加道。"GNOME 仅仅只是非常接近 DE。真正的 DE 是十分简洁的,还会隐藏他们的存在。"

Windows 也仅仅是“表现的比较好,”他断言说。

不过,如果 Linux 要获得广泛的接受的话,“最缺的正是游戏,”Espinoza 说到。“如果您把它限定到一款应用程序的话,最需要的很可能仍是 Photoshop 。尽管大家都在谈论 GIMP 已经变得多么多么强大,但它的易用性仍然是个悲催的噩梦;虽然开源社区有些相关的文档,但 GIMP 仍是处在缺乏文档的可怜状态。”

"GIMP “也许能做 Photoshop 能做的大部分事情,但我很可能并不知道,”Espinoza 的结论。“我想,如果我花了几个小时逛论坛就可以找出如何使用 GIMP 了。这就是大多数开源软件项目失败的地方,包括那些认为他们是真的是有了足够多的说明文档的。”

'易用和有技术支持'

SoylentNews 的博主 hairyfeet 定义说易用和有技术支持就是 “杀手级应用”。

“嗯,一个新手安装好一个看起来很漂亮的 Linux 发行版系统,它工作得也很正常;但问题是它不会一直正常工作或一直都让人赏心悦目,”他解释到。“第一个更新,哎哟!WPA V2 无线网用不了了。第二个更新呢,像脉冲呕吐一样,声音没了。还有第一个‘升级’?呃,都不需要继续了!”

“这正是 Linux 欠缺而 Windows 和 OS X 已经具有的:易用性及技术支持,”hairyfeet 结束道。“相同的时段有 15 款以上的 Linux 发行版本跟仅仅只是一款 Windows 发行版本所获得的技术支持生命周期能一样吗?不好意思的说,您们的产品不是同一重量级的 -- 您是拿高中棒球赛跟职业联赛在比较。”

'Windows 8'

最后但并非是不重要的,Linux Rants 的博主 Mike Stone 提供了一个让人惊讶的建议。

“这些年 Linux 缺乏的杀手级应用是 Windows 8,”Stone 打趣说。

"说真的,我认为并没有一个特定的应用程序可以被称为'杀手级应用',“他说,”Linux 需要有更多的主流应用的支持,而这将意味着 Photoshop 和微软的 Office 是必须具有的。值得庆幸的是,微软已经做了最大的努力以使 Office 可以跨平台,至于 Photoshop 的话大多数人并不需要的。"

Linux "应该是很争议性的话题,上面我所说的 Windows 8 仅仅只是个玩笑,"他总结说。“基于 Linux 的应用程序正如火如荼,而当前的 Windows 系统明显不受欢迎。祈祷我们能很快就看到这一变化。”


via: http://www.linuxvoice.com/voice-of-the-masses-what-killer-app-is-linux-missing/

译者:runningwater 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出