分类 观点 下的文章

注意:这篇文章比较长,有一万多字,而且还有很多非常有意思的链接,因此,你最好还是先给自己准备点喝的吧,然后再花时间来阅读。

联想 Yoga 2 笔记本电脑 上使用了 3 年多的 Arch Linux 系统后,我决定换个新的 Yoga 900 笔记本电脑来安装 Arch Linux 系统:

联想 Yoga 900 笔记本电脑在亚马逊网站上的特价 为 925 美元 —— 8GB 内存, 256 GB 固态硬盘, 3200×1800 的分辨率,处理器为 Skylake 3.2GHz , Iris Graphics 显卡。

同等配置的戴尔笔记本电脑 XPS 13 搭载新一代 Inter 处理器,售价 1650 美元。 Yoga 910 为当前最新款,价格为 1300 美元。但是,我压根就不会考虑这一款,因为它的键盘设计得太狗屎了。很多评论都从其外观颜色及材质方面大作文章,但是我偏偏从它的键盘设计上来挑刺。

键盘

Yoga 2 Pro 和 Yoga 900 这两款笔记本电脑从外观上看没啥区别。它的键盘设计跟曾经光鲜亮丽的 IBM Thinkpad 的键盘比起来可真是差远了,但是这还不算是最狗屎的键盘,好歹我还用了三年多的 Yoga 2 ,而且早已经习惯了。不幸的是,新款 Yoga 910 的键盘设计更是糟糕透了。

Yoga 2 和 Yoga 900 的键盘布局

Yoga 910 的键盘

Yoga 910 键盘的问题是它的 右-shift 按键位置不合理,你不挪动手根本就按不到那个键。这个键的位置非常特殊,可以说是跟我上 9 年级打字课时所用的 IBM 打字机键盘到目前为止用过的所有键盘都不一样。我宁愿看到这个失误出现在华硕或是戴尔公司的电脑上,而不是来自于曾经让一代代美国人学习和工作并且创造了打印机传奇历史的 IBM 公司。(LCTT 译注:联想的 Yoga 还和 IBM 有什么关系么?)

Yoga 团队每一年都会更改键盘布局。想象一下,如果 IBM 公司在 20 世纪的时候也不断改变他们的打印机键盘布局,而且还吹嘘这是为了提高"[工作效率]"4。那么这个公司可能早就倒闭了!

我基本上还能习惯 Yoga 910 的向上/向下翻页键跟方向键整合到一起,其它的一些改变也无大碍,但是 shift 键就是设计上的一个败笔,我太讨厌因为某些东西而改变自己的使用习惯了。

其实,联想笔记本电脑在键盘的设计上还有很多地方需要改进,比如说,让音量增加键与应用程序关闭键不要靠得太近。尽管目前已经有一个降低亮度的开关了,他们也可以重新考虑设计一个更简单的方式来快速关闭显示器。他们还应该设计一个重叠式的数字小键盘。难道联想的工程师觉得只有在商务工作中才会使用到数字小键盘吗?

Yoga 910 的键盘布局改变得太多了,也许再也回不到曾经的老式键盘了。我希望 Yoga 的键盘不要再随便改了。我更愿意拥有一个比电脑更高效 10 倍的键盘。

我在联想官网的评论中看到有些用户由于对 Yoga 910 的键使用不习惯的原因而申请退货。我觉得联想公司应该制定这样一条规定:如果某个工程师想更改键盘布局,他们必须给出一个非常充分的理由,如果这种设计给用户在使用方面造成了巨大的不便,那么将以剁其一根手指的代价来让他也体会下这种痛苦。如果真有这样一条规则,那么将会大大减少那些毫无意义的更改键盘的行为。 Yoga 910 笔记本电脑可以说是联想公司呕心沥血之杰作了,但是其输入系统却是一大败笔。

总体评价

Yoga 2 对于我的任何操作,其反应速度都非常快。它的固态硬盘也非常给力,但是用在 Arch Linux 系统下就有些大材小用了。那些只使用 Windows 系统的用户就不会体会到他们的系统有多么的庞大臃肿:

在 90 年代时期,由于处理器的性能每隔 18 个月翻一倍,并且软件的大小也经常成倍的增长,因此,一款新的电脑每隔几年就会发布出来。现在早已发生了翻天覆地的变化。新款的 Yoga 900 笔记本电脑在运行性能测试的过程中,速度比我的 Yoga 2 还要快 30% 。 Yoga 900 的 CPU 主频为 3.2 GHz ,老款的 Yoga 2 主频为 2.6 GHz ,因此, Yoga 900 最大的亮点是更快的 CPU 处理频率。

Haswell 处理器架构发布于 2013 年,而 Skylake 处理器架构在 2015 年才发布,因此,经过两年的发展,处理器性能有了很大的改善。新一代的处理器最大的改进是采用 14 纳米工艺制造技术来代替原先的 22 纳米工艺技术,这意味着新款笔记本电脑散热更小,电池使用时间更长。我的老款的 Yoga 2 笔记本在中等亮度的情况下,电池使用时长只有 3 个半小时左右,但是新款 Yoga 900 的电池使用时长高达 7 小时。

Yoga 2 的转轴已经开始松动和裂开了,我也没有一个好的办法来拧紧,只能从网上找新的配件来更换或者发给联想售后进行维修了。

Yoga 的转轴用于将笔记本电脑放平,甚至是将电脑合起来作为平板电脑使用,但是我觉得这样用起来很笨重,所以也就不想去自找麻烦。这么多年来,只要它在日常工作中能够正常打开和合拢,我就已经很高兴了。

Yoga 900 坚固的表链式铰链应该更耐用:

有一个很明显的小毛病就是如果你摇晃笔记本电脑时,其格格作响的声音会让你误以为是内部的零部件损坏了,你自然会担心电子器件短路的危险!然而,这只不过是 800 多片钢片构成的仿表带铰链发出的声音。

Yoga 2 总的来说是一款设计精良的产品,但是如果我将显示器展平,然后单手拖住的时候,它会有一点向下弯曲,而且有时候键盘背光灯也会熄灭。两款 Yoga 笔记本电脑都很轻薄,但是 Yoga 900 看起来更坚固耐用一些。

触摸板

Yoga 2 最严重的问题出现在触摸板上。这不是硬件导致的,而是驱动程序自身的问题,由于触摸板驱动程序本身没人在维护,因此存在一些缺陷。很遗憾, Synaptics 公司本来可以很轻易地安排一个工程师来维护这几千行的代码,但是联想重新写了另外一个版本的驱动程序,但是还没有开源发布出来,以便可以包括到系统内核中。

因此,为了让触摸板设备和其它输入设备的管理和使用更加方便简捷,建立了一个叫做 Libinput 的新软件库。 Libinput 最好的一点就是,维护人员会修复各种缺陷。还有一个很实用的功能就是如果你左指尖触摸鼠标单击区域,它现在会通过你的右指尖记录指针移动轨迹。但是,让人难以接受的事情是, Synaptics 的这个基本的功能在 Linux 系统中很多年前就无法使用了。

触摸板设备一直运行正常,但是它不再像以前那样发出敲击声了。实际上这也不是什么问题,但是这会让我担心我在触摸板上的操作是否正确。老款的 Thinkpad 笔记本电脑有好几个左右按键,因此,如果其中一个损坏了,你可以使用另外一个,但是 Yoga 笔记本只有一个鼠标左右按键,如果损坏了就只能插入鼠标来代替使用了。(联想还巴不得你的电脑赶紧坏了好换新的。)

内核支持

当年我购买 Haswell 处理器的笔记本电脑时,硬件都是最新的,因此,我折腾了好几个月才把 Linux 驱动程序相关的问题解决了。而现在我使用的新一代的 Skylake 处理器的笔记本电脑,在处理器发布 8 个多月后,其内核崩溃的问题才被修复了。以前老款笔记本电脑的 电源管理 一直运行不正常,但是从新款笔记本电脑使用来看,以前的问题大都不存在了,而且有了很大的改善。如果用户不进行任何操作,这个笔记本电脑会自动进入到低功耗的 C6 - C10 状态。(这个功能是由 Linux 系统中的 powertop 省电工具 进行控制的。)

电源管理这个功能非常重要,它不仅会影响到电池的使用寿命,而且由于电解迁移的原因,那些微小电路会逐渐耗尽。英特尔公司甚至发出公告:”电池使用的长期可靠性是无法保障的,除非所有程序都运行在低功耗的空闲状态。“通过让程序运行在低功耗模式下,以使用更小的电路,从而让电池使用寿命更长。

现在 Haswell 处理器架构对 Linux 系统的支持性已经非常好了,但是之前的很长一段时间,它的支持性都很差。刚开始那一年,我提出了很多 Haswell 处理器相关的问题,但是现在可以看出这两款处理器在对 Linux 系统的支持上都有了很大的改善。

联想笔记本的 BIOS 不兼容 Linux 系统

在 Yoga 900 电脑上安装 Arch Linux 系统之前,我得在 Windows 系统中再刷一个新的 BIOS 。实际上,我的电脑中得有 2 个 BIOS。最新版本的 Yoga 900 BIOS 不包括我需要的必备修补程序,所以在挠头了一会之后,我恍然大悟,然后我 安装了一个单独的“仅 Linux 系统”的 BIOS 更新,这样我的联想电脑就不再支持 Windows 系统了:“你不可怜下我吗?”

那些经常关注 Linux 系统的用户就很清楚, Yoga 900 和其它最新款的联想笔记本电脑无法安装 Linux 系统,因为它甚至不能检测到硬盘。联想最初回复其笔记本电脑已不再支持 Linux 系统了,因为它使用的是新型的 RAID 控制器模式 。然而,实现 RAID 机制就意味着更多的磁盘,而笔记本电脑实际上只有一个硬盘,并且也没有多余的空间来安装另外一块磁盘了。

下面是联想给出的官方解释

“为了更好地支持 Yoga 系列产品以及行业领先的 360 度铰链转轴设计技术的发展,我们采用了一种存储控制器模式,很遗憾,这种模式不支持 Linux 系统,不能够安装 Linux 系统。”

我觉得很搞笑,为了转轴而采用特殊的存储控制器!这就好比一个汽车制造公司宣称由于新型的广播设备,他们必须改变汽车的轮胎一样。

这引发了巨大的争议,感谢 Reddit 网站的 BaronHK 的努力,他为媒体提供了大量的信息,并联系了伊利诺斯州检查院。搜索 "联想 Yoga 的 Linux 兼容性" 出现 300,000 条结果。联想或许会因为销售不允许用户安装自己的操作系统的“通用”PC 而触犯法律。对于我来说,为电脑设置默认的操作系统是毫无意义的。

技术高手们也被卷入到这场“战争”中进来,他们最终发现通过设置 UEFI ,这款笔记本也能够支持 AHCI 控制器模式,只是默认被禁用了。简单来说,联想故意取消对 Linux 系统的支持没啥好处。因为大家都已经明白事实真相了,如果这件事闹到法庭上,联想也只能自取其辱。

幸运的是,这些新闻引起了他们的关注,并且他们最终更新了 BIOS 。这篇文章就是在运行着 Linux 系统的 Yoga 900 笔记本电脑上写的,因此,我们应该庆祝下这个伟大的胜利。大家都希望联想从中受到教训,但是我并不看好。他们本来就应该为你的电脑提供一个选择操作系统的机会。他们应该在用户之前就发现了这个缺陷了。我将等待一周左右的时间才能拿到定制化的电脑。他们应该把分区设置好,并且让用户定制很多东西,安装最新版的软件,而不是使用一个需要很多更新的老镜像文件。

一些钟爱联想电脑的用户认为这是 Linux 系统自己的问题,是 Linux 系统本身就不支持最新的 RAID 驱动模式导致的问题。然而, AHCI 控制器模式本来是一个非常流行的标准,而由于英特尔公司为这种新的 RAID 硬件写的代码“太糟糕”而被 Linux 系统内核开发团队拒绝了。该团队要求英特尔公司提供这种硬件的详细设计说明,但是他们一直没有给出任何答复。

散热

当 CPU 占用很高时, Yoga 2 笔记本会变得很烫。有一次我把笔记本放到毯子上编译 LibreOffice 软件时就把底部的塑料壳烧焦了,这实在是太丑陋了,这让我看上去像是一个很穷酸的程序员。我试着用铁刷子和松脂油来擦除烧焦的部分,但是也没什么鸟用。

新款的笔记本电脑使用金属外壳,不容易褪色,并且 Skylake 处理器架构比 Haswell 的要强劲得多。把散热口设计了跟转轴融合在一起,这是一个非常明智及巧妙的做法,如果散热口在下方则可能被堵塞住。

用了很多年的 Yoga 2 ,我觉得最烦人的一件事就是它的风扇里累积了厚厚的尘埃,运行时听上去就像是沙子摩擦的声音!这些尘埃分布得很广,使用时产生的声音也大,让人容易分心。我把笔记本电脑拆开来清除里面的尘埃,但是风扇的叶片是隐藏的,无法进行清除。我只能把整个风扇替换掉了。在 Yoga2 上完成简单的工作,比如文字处理和浏览器上网时,风扇不会旋转,但是当它旋转时,如果不带耳机会感到很烦人。

Yoga 900 的风扇叶片密度很高,而且运行的很平稳,也不会让人分心。 Yoga 900 的风扇好像一直都在旋转,但是速度非常慢,而且声音很小也很安静。我家里电冰箱和空气净化器的声音都要比它大得多,除了笔记本电脑在高负载的情况下声音有点大,不过那也不影响我工作。

显示器

Yoga 2 的显示屏很大气,但是也同样存在大家所熟知的问题,比如屏幕上的黄色看上去更像是橙色。然而,整体画质看起来还算细腻,其它颜色方面也不错。 Yoga 900 的屏幕已经修复了那个黄颜色的问题。它不是一个真正的 4K 屏,实际上仅有 3200×1800 的分辨率,但是从 15.6 寸的显示屏上看,它的像素要比真正的 4K 屏要细腻得多,所以显示效果超级锐利。有些人说这屏幕分辨率是假的,因为它使用了“RG/BW Pentile 矩阵”,但是对我来说,高分辨率的图片看起来就很棒,何况文本。

当年我购买 Yoga 2 笔记本电脑时,由于其使用的是当时最新的 Haswell 处理器架构,所以我遇到了各种英特尔显卡显示异常的问题,这些问题过了几个月后才被解决。之后,我还发现了一个会导致 Linux 系统崩溃的内存泄漏问题,并且这个缺陷好多年都没被处理。

我在 VLC 播放器中使用 shift + 箭头键快进视频时,遇到了好几次内存耗尽的问题。系统也没显示 VLC 播放器占用了多少的内存,但是电脑内存却耗尽了。很明显这是内核导致的内存泄漏问题。我创建了一个 swap 文件作为虚拟内存使用,以减少内存耗尽的时间,但是有好几次我没注意时,这个文件又被占满了。几年后,这个问题逐渐消失了,而且现在 Linux 系统也运行得很稳定。

大家都认为英特尔公司为 Linux 系统开发的驱动程序是最好的,但是他们更像是微软内部的一个秘密的臭鼬工厂项目。英特尔公司的驱动程序开发人员都很专业,就是人员不够多。在发布硬件之前,他们都竭力让驱动程序做得更完美。 英特尔公司生产的 113 款处理器 都是基于 Skylake 处理器架构的,只是在特性上有细微的区别。听起来你会觉得有很多类型的处理器,但是在 Haswell 处理器 时期,英特尔公司生产了 256 款芯片。10 年前我听一个英特尔公司的员工说过,相对于 Windows 来说,他们仅投入了 1% 到 Linux 系统上,从现在的情形来看,确实是那样的。

在我使用 Yoga 2 的过程中唯一遇到的性能问题是无法正常播放 4K 视频,屏幕经常出现卡顿,或是出现每秒才播放 5 帧的现象:

Yoga 2 甚至是在播放 1920×1080 分辨率的视频时有时候也显得很吃力,看样子它最多只能以 60fps 的速度来播放视频。出现这样的情况也可能是因为我一直在运行着其它的应用程序,比如 Firefox 浏览器和 LibreOffice 办公软件。

Skylake 处理器主要用于在 60fps 的速度下使用 H.264 、 VP9 以及其它编解码方式来播放 4K 视频。实际上这款处理器中有很多硬件专门用于加速多媒体特性。我尝试使用 ffmpeg 软件 来处理 H264 格式的硬件编码,我发现即使只使用一个 CPU 的情况下,其处理速度也比原来的处理器快 4 倍。这种性能太棒了。不爽的是,在设置的过程中有点麻烦,因为你必须使用很多命令行参数:

-threads 1 -vaapi_device /dev/dri/renderD128 -vcodec h264_vaapi -vf format='nv12|vaapi,hwupload'

我尝试找到一种方法让 ffmpeg 软件 保存这些命令,这样我就不用每次都手动输入这么多参数了,但是最后发现根本行不通。而且无论怎样,在整个过程中也不能自动传递这些参数。我还发现在使用这个硬件的的过程中不能缩放视频尺寸,它会忽略该操作,因此,我很少会用这个工具。如果 ffmpeg 软件 可以实现这一点就完美了。由于很多用户都不了解,或者是不想太麻烦,所以还有很多未使用的硬件资源。这个软件有很多跟 Linux 系统和 Windows 系统相关的应用接口,如果要进行视频编码和解码,将会是一件麻烦事

Skylake 处理器架构在播放 4K 视频方面表现得更出色,但是有时候它也会出现卡顿现象,然后瞬间降到 10fps 的播放速度。我想起其中一部分卡顿现象就是在播放《X 战警》的过程中。我尝试在 Wayland 下播放 4K 视频时却很流畅,这让我非常满意。很高兴看到 OpenGL 给予的大力支持。在硬件方面, 英特尔公司 2014 年以来支持的最新版本是 4.5 。

我的 Yoga 900 (-13ISK2)笔记本电脑实际上是一个升级版,使用比 520 更快 的 Iris 540 图像协同处理器,而且它的流处理器多达 24 个。然而,它只能用来玩 SuperTuxKart 游戏,而且还得将游戏显示效果设置为中等,分辨率调整为 1600×900 ,速度为 20fps ,我也不想在这里吹什么牛。说真的,这款游戏比前几年改善了很多,而且游戏界面也漂亮得多。

英特尔公司在中国有一个团队致力于使 该显卡支持 OpenCL。但是,我从未看到 Blender 的任何用户使用它,因此我怀疑这个团队是不是作摆设用的。英特尔公司已经很长时间都没有支持 OpenCL 了,那些使用 Blender 软件处理重要工作的用户早已换成 Nvidia 或者 AMD 显卡,即使英特尔公司后来重新写了代码,大家也没太多的兴趣做测试。

有一件事让我感到非常意外,我在另外一台机器上做光线追踪测试时发现,一个四核的处理器比使用循环引擎的 NVidia 960M 的处理器要快得多。很明显,在处理那个任务时, 640 CUDA 多核心处理器也比不上 4 个英特尔公司的 CPU 。更高级的英特尔处理器有 2000 多个核心,性能更强悍。

HiDPI 高分辨率支持

最近这三年来, Linux 系统在高分辨率屏幕方面已经做得越来越好了,但是仍然有很长的路要走。还好目前的 Gnome 版本对 HiDPI 的支持也算完美。如果你把火狐浏览器的 layout.css.devPixelsPerPx 这个参数值设置为 2 ,其显示效果更美观。然而这个 13.3 寸的屏幕分辨率还是显得略小了些,我还安装了一个无斜视加强版(No-Squint Plus)插件,这让屏幕在 120 度范围内看起来更方便。

很高兴地看到 LibreOffice 办公软件的界面在当前设置的屏幕下变得更加美观,因为我安装了 2014 年 4 月份发布的一些补丁,而且这些功能还一直在不断的完善中。最大的问题是 LibreOffice 软件界面的工具图标重叠起来了。有很多主题都包括 SVG 图标,但是这些图标不会跟产品一起发布出来。跟 PNG 类型的图标相比, SVG 图标加载更慢,而且还要缓存才行。Tomaž Vajngerl 在这方面投入很多的精力,但是还未发布出来。尽管这样, LibreOffice 比那些没有易识别图标的 Linux 系统应用程序要漂亮得多。

应用程序在高分辨率屏幕中的检测与应用方面正在不断的完善,但是还有其它一些很流行的程序,比如 Gimp ,Audacity 和 Inkscape 仍然不能使用高分辨率屏幕。我为 Gimp 软件安装了一个很强大的定制化主题,但是所有的图标都变得大不一样,尽管这些图标已经显示得够大了,但是也很难识别出来。

Linux 系统占有了 1.5% 的市场份额,遗憾的是这些问题并没有得到更多的重视。虽然很多应用软件逐步使用 GTK 3 来开发它们的图形界面,但是比如说 Audacity 这款音频处理软件好像是已经终止开发了。在我的第一篇评论中我发现,那些提供长期支持的应用程序仍然有很多地方需要改进,但是 3 年多过去了,即使是那些很出名的软件也没做到位。

SSD 固态硬盘

由于我平时对系统做了各种各样的优化,尤其是对火狐浏览器做的优化,因此我的老款电脑的硬盘仍然可以正常工作。还记得我的 /tmp 目录被我自动设置为 RAM 设备,因此,我经常把文件默认下载到那里。有时候我要把一个 500 MB 的视频剪辑成 20 MB 的小视频,或者是转换成另外的格式,因此我在 /tmp 目录下做这些工作节约了大量的写入操作。这样做需要更多的工作量,也可能没必要,但是在 RAM 存储中运行速度更快。

在这三年里,我几乎对每个硬盘的存储单元做了 25 次写入,这意味着这块硬盘可以使用 350 年左右。绝大部分的写操作都用于 Arch Linux 系统的更新。我每个月都会构建新的 LibreOffice 软件,每周都会更新“稳定”版系统内核。实时把系统升级到最新棒真的让人很爽,但是与 Debian 的稳定版系统相比起来,这将会进行 100 多次写入操作。然而,能够让每一个系统组件都升级到最新版,这也是值得的。

新的三星硬盘诊断工具无法检测出每个硬盘存储单元的写次数。事实上,我也不能确定这个硬盘的存储单元类型是什么以及在处理任务的过程中写了多少次。我相信从“已用百分比“这个数据可以看到硬盘的使用时长,但是也许这只跟空闲的存储单元有关。我没有找到任何相关文档,因此我只能猜测到大致跟下面的数据差不多了:

型号:SAMSUNG MZVLV256HCHP-000L2
固件版本(0x06):3 Slots
可用空间:100%
可用的空闲阈值:10%
已用百分比:0%
读取的数据单元:198,997 [101 GB]
写入的数据单元:305,302 [156 GB]
主机读命令:3,480,816
主机写命令:10,176,457
错误日志条目:5

损坏的左 Ctrl 键

在使用了几个小时之后,我发现一个问题,如果我按键盘左上角时,左 Ctrl 键会弹起来:

损坏的 Yoga 900 按键:注意跟右侧对比下,你会发现左侧少了个小圆柱体形状的东西:

Yoga 900 键盘布局跟 Yoga 2 Pro 版一致,但是内部结构不同。 Yoga 2 Pro 版的键盘不能单独移除和替换按键,而且你也没有办法撬起任何按键,除非那个按键被你彻底搞坏了。 Yoga 900 的按键跟老款的 Thinpad 笔记本一样的:每个按键都是分开的,你可以单独取下来进行更换。

然而,还有一个小毛病,每个键轴有 4 个小圆筒状的凹槽部件,如果不小心丢失了一个,那么该按键就只有三个接触点了,如果你不敲击到按键的中间位置,那么这个按键的键帽将会逐渐脱落下来。

我把这个问题反馈给联想。尽管这些按键还能使用,也可以替换成新的,但是他们只替换整个键盘,不会寄送任何零散部件。他们建议我把笔记本电脑寄给联想售后中心进行维修,或者是送到极客小组服务中心。我知道寄到联想售后的话至少要 2 周的时间,因此我咨询了当地的商店,看他们是否有 Yoga 笔记本的键盘配件。他们告诉我,他们不维修电脑,只负责把它寄到亚特兰大。那里曾经有很多地方可以维修 IBM 的各种笔记本电脑,而且也有各种配件,但是现在已经是不可能的了。

我用了好几个小时后才注意到了这个问题,我确信那是生产笔记本电脑过程中的疏忽导致的。这是一块非常小的塑料块,在装配的过程中就早已变形或损坏了。

尽管这个电脑还在保修期,可以免费进行维修,我可不想为这些小事情耽搁太多时间,因此我在网上找到一个叫做 laptopkey.com 的网站,然后订购了一个换键和支架。真是太诡异了,竟然有三种类型的支架!我花了好一会才搞明白我的电脑适合哪一种类型,因为这三种类型太难区分了:

因此我预定了这个配件,但是还得花费至少一个星期的时间才到收到。这真是太让我抓狂了,因为我每次使用复制粘贴、视频跳跃或者是在编辑器里按单词移动及其它相关操作时,只能使用右 Ctrl 键。我觉得我可以把右边的 Ctrl 键更换到左边来,但是我从未这么弄过。

因此,我尝试跟着网上找到的视频步骤把这个键弄下来:我先用指甲扣起左上角到一定高度。然后用同样的方式操作右上角,但是另外一个小塑料片被折断了,因此我弄坏了两个键轴。如果不损坏这些非常细小的塑料夹片,根本不可能把按键撬下来。这种类型的键盘只不过是理论上可以进行更换吧。

因此,我决定采用笨办法,使用强力胶。我情愿让这个该死的按键就这样固定死了,我暂时没有一个紧急的方法来替换它们。这真是太折腾了,因为我只需要大概直径 1mm 的胶水:如果弄太多的胶水可能会让情况变得更糟糕。

我维修小型遥控飞机的经验在维修电脑上也非常有帮助,我修好它了,而且左边的 Ctrl 键也固定好了。右边的那个 Ctrl 键还处于分离状态,但是我几乎用不到。我的心情又好起来了,真是柳暗花明又一村啊,但是懂得如何维修电脑也是个非常重要的技能。

Antergos 与 Arch Linux 系统对比

在我使用了 3 年多的 Arch Linux 系统之后,我再也没兴趣去尝试其它操作系统了。虽然英特尔公司更新驱动程序的步伐有些落后,但是无论怎样,在日常工作中使用 Arch Linux 系统还是挺让人愉快的,而且每一个星期都有所进步。实时更新任何程序真的让人很爽。我经常使用比 Ubuntu 系统发布时间还要新的软件包。虽然 Ubuntu 用户可以在自定义的 PPA 中找到更新的软件包,但是这种软件包都没有经过任何测试或修复,因此用户在使用过程中会遇到各种各样的问题。

也有用户抱怨 Ubuntu 系统升级时会导致机器自动重启或者强制用户重新安装软件,因此,即使安装的过程很快,之后却需要很长的时间来维护。我每次听到有人抱怨 Arch 系统的安装过程时,最终的原因总是归结为他们自己操作不当或是类似 btrfs 文件系统损坏的问题。

我曾经想尝试安装 Antergos 系统,那是一款基于 Arch Linux 并搭载了桌面环境的 Linux 发行版。然而,安装过程中的设置界面在显示器上看不清楚,而且最小化安装后也识别不到触摸板,那是由于我仅有一个有可用空间的老式 1 GB U 盘了。因此,我决定还是重新安装原来的 Arch Linux 系统。还好 Yoga 笔记本仍然支持传统的 BIOS 启动方式,这样我就不用再去折腾 UEFI 了。

很遗憾我没能试用 Antergos 系统,因为我觉得对于那些技术水平一般的用户或是想快速入门 Arch Linux 系统的用户来说, Antergos 算是一个非常强大的 Linux 发行版了。 Arch 在维基上有丰富的文档新资料教你如何完美地使用这个 Linux 系统。我喜欢优化,比如每周定时对固态硬盘做优化、用户配置文件-同步-进程脚本、对安卓系统的支持以及在视频播放中使用硬件加速等等。在 Linux 系统中有很多大家都需要去折腾的功能特性,只需要输入几行命令就可以搞定了。

Manjaro 也是一款非常流行的基于 Arch Linux 并搭载了桌面环境的 Linux 发行版,但是用了 3 年多的 Arch Linux 系统后,我更信任 Arch 的封包人会解决组件之间的问题。我在 Reddit 网站看到一些评论,有用户反映说 Manjaro 系统升级后就崩溃了。

我对 Arch Linux 系统唯一不爽的一点就是它丑陋而看不懂的引导加载界面。还好我只需要使用老电脑中的 grub.cfg 配置文件来替换掉就可以了。

安装 Arch Linux 系统

起初我只想简单地把硬盘从老的笔记本电脑移植到新的笔记本电脑上,这样我就不用安装任何东西了,但是拆开电脑后,我发现 M.2 接口的固态硬盘形状很特殊。本来我也可以使用一个低级块复制方法来完成移植,但是这一次是一个很好的回顾安装过程的机会,所以我决定从头再来一遍。 3 年多的时间里,我安装了很多没用的应用程序,即使有些被我卸载了,系统中还存在很多的遗留文件。

由于 Arch 900 笔记本电脑已经发布出来一段时间了,其硬件也不是最新的,所以安装 Arch Linux 系统的过程进行得很顺利。我仍然需要使用 rfkill 工具来开启无线上网 功能,除此之外,系统都正常运行了。显然, Linux 系统下还不能正确读取该型号的 rfkill 信息。幸运的是在启动 rfkill 工具时, systemd 会自动恢复 rfkill 的数据。

内核故障列表

有一件事让我非常惊讶, Linux 操作系统的缺陷列表太混乱了。我知道有很多的用户参与其中,其变化频率也很高,但是,最糟糕的事情却是系统缺陷报告依然如故。我搞不懂为什么有些系统缺陷已经存在好多年了,但是却丝毫没有修复的迹象。

我在上次的评论中打过一个很好的比方。假设航空公司花了一两年的时间才把你丢失的行李找回来了。还你会信任那家公司吗?实际上,如果你还有几千个已知的系统缺陷和上百次系统性能回退,那么你发布新的发行版有什么意义呢?如果波音公司的每一架飞机都有 1% 的坠机概率,那他们会这么多年都置之不理吗?

也许 Linux 系统基金会应该雇佣一些专职的工程师来修复那些看似被遗忘的系统缺陷问题。有很多人从事 Linux 系统工作,大家都清楚该系统有很多历史缺陷未修复——通常情况下,这些问题都是由普通用户自己处理的。我觉得目前的 Linux 系统就不要发布任何更新了,先花几个月的时间去修复那些系统缺陷,直到缺陷数量小于 50 个时,再发布新版本,这样的系统内核会更稳定。现在还有 4672 个系统缺陷问题未解决,这才是一个非常好的改变发行版主版本号的理由。

有些东西跟每周发布一个新的稳定版本是相悖的,但是这种方式还持续了这么多年了,而且他们每次都发布一些重要补丁,因此他们也算是做了一些非常有意义的工作。内核的开发速度很快,也变得越来越好,因此早已超出我吐槽的范围了,但是我还是觉得他们应该尝试换个思路。

至少,系统缺陷问题应该在规定的时间内处理。如果超出指定时间,这个系统缺陷应该提交给到维护者并逐渐发送给 Linus 本人。如果某个领域内存在很多的历史缺陷也没人去修复,那么 Linus 应该公开并严厉批评相关组织机构。他们更应该像波音公司那样去思考解决问题。

联想公司

很多 Linux 用户都痛击联想公司对定制化的笔记本缺少支持,好在他们创造了性价比较高的硬件。正如我多年前写的一样,很明显,联想公司在发布 Yoga 2 之前就没人安装过 Linux 系统来进行测试, Yoga 900 笔记本也是如此,因为这是根本不可能的事情。

我觉得他们公司的每个员工都应该安装双系统。这在设置上并不难,用户也更希望他们这样做。联想有 60000 多员工。至少他们应该在公司内部成立一个 Yoga 团队,然后招一些人来着手处理 Linux 系统 问题。Windows 系统在很多方面比 Linux 系统更难用。Windows 系统虽然能够运行更多的应用程序,但是我觉得也许他们一半的用户还是更乐于使用合理配置的 Linux 系统吧。

尽管现在联想对 Linux 系统很不屑,他们制造的麻烦比软件方面还多。在很多型号的笔记本电脑中, RAM 芯片被焊接固定了。他们只允许白名单设备和预授权的卡可以安装到联想笔记本电脑中。 Yoga 笔记本也没有独立显卡,而且联想公司本来也不支持更新主板上的卡。我想有人会把这些矛头指向联想公司的 CEO 。

总结

Yoga 900 笔记本电脑的售价确实让人激动不已,而且相对于前一款 Yoga 2 来说,其改进方面也是有目共睹的。相近配置的苹果 Macbook Pro 笔记本电脑价格为 1500 美元,但是像素却比 Yoga 900 少了 40% 。

Windows 系统从 Linux 系统中汲取了很多特性,但是 Windows 系统一直没有一个包管理器来对那些非常有趣的且免费的预编译软件组件提供本地支持。因为 ffmpeg 工具使用很多的依赖包,所以在 Windows 系统中安装 *ffmpeg * 工具就是一件很头疼的事,

微软建立了 Windows 应用商店,这有点类似 Linux 系统中的软件仓库,但是它不会处理软件包之间的依赖性,而且也不允许用户设置个人软件仓库。微软还开发了一个新的包管理器,叫做 NuGet,但是它主要用于 .Net 语言开发的软件。也包括 ffmpeg 工具的安装包,但是没有与该代码相关的任何依赖包,因此即使安装完成后也没啥用。

去年 3 月份,微软公司宣布 Windows 系统支持运行 Ubuntu 的命令行及应用程序,这的确是一个革命性的转折点。(他们本应该先支持 Debian 系统。)甚至还有热议声称 Windows 系统将会支持更多的 Linux 发行版,这真是太让人激动了。

至少对于我来说,我不需要使用任何 Windows 的应用程序,也不需要浪费额外的时间去维护了。在 Windows 系统中修复问题时,你可以到很多不同的地方查询解决问题的方法。 Linux 系统有很多的地方要进行配置,但是总的来说,这已经很简单了。

我有个朋友为了更新驱动程序,需要在 Windows 下安装第三方软件,因为更新这种操作需要从微软网站以及其它更多的网站来抓取代码。 Windows 系统已经比前几年做得更好了,有更多的游戏和桌面应用程序,但是它仍然是一个封闭式老系统。

我发现 Gnome 经典桌面给人一种简洁性的体验。我希望它不是使用很繁杂的流行 Javascript 脚本语言编写的,他们还要重新建立一个关于定制化主题和颜色主题的社区。 Gnome 2 和 Windows 10 系统中的有些非常有用的功能也消失了,而且也没有老版本的稳定。 2011 年发布的 Gnome 3.0 完全就是走回头路,但是 6 年后的 Gnome 3.22 终于再续辉煌。

Gnome 经典桌面环境是最优秀的图形化界面之一,很多优秀的特性都变得越来越好了。已安装完成 Arch Linux 系统的 Yoga 900 笔记本电脑现在都运行正常了,我期待着 Linux 系统对 HiDPI 模式和其它方面的改进!我迫不及待地想深入学习 LibreOffice 办公软件里的语法检查特性。


via: http://keithcu.com/wordpress/?p=3739

作者:keithccurtis 译者:rusking 校对:wxy

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

Linux 版 SQL Server (一)

sql-server-on-linux

在 Linux 内核之中,大家正在静静的等待进程的创建。每个创建的进程会被分配一个进程 ID (PID)。

在那个 Apache 进程高高兴兴的走出去之后,下一位却被要求创建 Linux 版的 SQL Server,这简直让人气的跳起来!

这个愤怒的进程宣称,“我将占用所有的 CPU 和内存!”面对其它面面相觑的进程们,内核无奈的宣布,“伙计们,我们打烊了……”

与其用 Linux 版 SQL Server,何不用 MySQL / MariaDB 呢? 大家使用过 Linux 版 SQL Server 吗?体验如何?欢迎评论。

Linux 版 SQL Server (二)

Clark,嗯,就是那个贪婪的 Linux 版的 SQL Server,它要把 Linux 服务器撑破了,内核已经陷入崩溃了,急切需要重启。

等等,似乎我们找到了一个好办法,把 Clark 关到盒子里面去。

看起来不错哦,果然鲸鱼的大肚子能装啊——内核长吁一口气。


via:

作者:Daniel Stori 译者:GHLandy 校对&点评:wxy

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

 title=

Calcite 是一个数据框架,它允许你创建自定义数据库功能,微软开发者 Atri Sharma 在 Apache 2016 年 11 月 14-16 日在西班牙塞维利亚举行的 Big Data Europe 中对此进行了讲演。

Apache Calcite 数据管理框架包含了典型的数据库管理系统的许多部分,但省略了如数据的存储和处理数据的算法等其他部分。 Microsoft 的 Azure Data Lake 的软件工程师 Atri Sharma 在西班牙塞维利亚的 Apache:Big Data 会议上的演讲中讨论了使用 Apache Calcite 的高级查询规划能力。我们与 Sharma 讨论了解有关 Calcite 的更多信息,以及现有程序如何利用其功能。

Linux.com:你能提供一些关于 Apache Calcite 的背景吗? 它有什么作用?

Atri Sharma:Calcite 是一个框架,它是许多数据库内核的基础。Calcite 允许你构建自定义的数据库功能来使用 Calcite 所需的资源。例如,Hive 使用 Calcite 进行基于成本的查询优化、Drill 和 Kylin 使用 Calcite 进行 SQL 解析和优化、Apex 使用 Calcite 进行流式 SQL。

Linux.com:有哪些是使得 Apache Calcite 与其他框架不同的特性?

Atri:Calcite 是独一无二的,它允许你建立自己的数据平台。 Calcite 不直接管理你的数据,而是允许你使用 Calcite 的库来定义你自己的组件。 例如,它允许使用 Calcite 中可用的 Planner 定义你的自定义查询优化器,而不是提供通用查询优化器。

Linux.com:Apache Calcite 本身不会存储或处理数据。 它如何影响程序开发?

Atri:Calcite 是数据库内核中的依赖项。它针对的是希望扩展其功能,而无需从头开始编写大量功能的的数据管理平台。

Linux.com:谁应该使用它? 你能举几个例子吗?**

Atri:任何旨在扩展其功能的数据管理平台都应使用 Calcite。 我们是你下一个高性能数据库的基础!

具体来说,我认为最大的例子是 Hive 使用 Calcite 用于查询优化、Flink 解析和流 SQL 处理。 Hive 和 Flink 是成熟的数据管理引擎,并将 Calcite 用于相当专业的用途。这是对 Calcite 应用进一步加强数据管理平台核心的一个好的案例研究。

Linux.com:你有哪些期待的新功能?

Atri:流式 SQL 增强是令我非常兴奋的事情。这些功能令人兴奋,因为它们将使 Calcite 的用户能够更快地开发实时流式应用程序,并且这些程序的强大和功能将是多方面的。流式应用程序是新的事实,并且在流式 SQL 中具有查询优化的优点对于大部分人将是非常有用的。此外,关于暂存表的讨论还在进行,所以请继续关注!


via: https://www.linux.com/news/build-strong-real-time-streaming-apps-apache-calcite

作者:AMBER ANKERHOLZ 译者:geekpi 校对:wxy

本文由 LCTT 组织编译,Linux中国 荣誉推出

 title=

与互联网领域的领导们关于"容器"的讨论通常被总结如下:

作为一名 CxO,我面临杠杆时间术的持续的压力。IT 预算不断减少,我只有有限的资源。然而,交付的工作量却比以往更多。我花费太多的时间致力于解决预算的约束。另外,互联网的格局正在经历一个快速的改变,而且新的技术一直在被引进。我从我最信任的顾问那听来的最新的话题是一个“容器策略”的实现。我想理解:

  1. 什么是容器?
  2. 过渡到容器的企业价值是什么?
  3. 为什么我现在应该转移到容器?如果我不采纳会有一些坏处吗?
  4. 容器是否已经足够成熟用于企业消费?
  5. 我如何让我的企业因使用容器而快速地发展?

让我们从最开头开始。

容器

在过去的 10 年左右,企业已经从物理基础设施转向了虚拟机(VM)。转向 VM 的关键优势是可以减少数据中心的用量。通过在同一个物理机器上运行多个虚拟机,你可以在更少数量的物理机器上安装更多的应用程序。使用容器是另一种更轻量地打包应用程序的方式,而且其交付模式更快。它们是一种在单一的机器里运行多个应用程序进程的奇特方式,无论那个机器是一个虚拟机还是一个物理机。另外,容器在 DevOps 、微服务和云战略场景方面也扮演了重要角色。

容器 vs 虚拟机

容器和虚拟机在一些方面并不相同。一台虚拟机尽管不是物理机,但是它表现地就像是一台物理机。虚拟机是一个包含所有东西的独立的环境,是一个完整的(来宾)操作系统。在另一方面,容器是一个共享同一个物理机或虚拟机上资源的进程。容器显然更加有趣,因为:

  • 相比较而言,虚拟机要重一些,而容器更轻。因为容器只包括了它们所运行的程序所需要的库。
  • 虚拟机需要花费几分钟来启动,而容器在几秒钟内就可以启动。
  • 通常,相比虚拟机,你的基础设施中可以容纳更多的容器。

 title=

技术已经发展到足以保持这些容器安全、彼此独立,而且正确的设计选择可以保证那些坏掉的容器不会影响运行在同一个机器里的其他容器的性能。实际上,操作系统天生就是被用来构建成优化和运行容器的。

然而,当你转向容器时,你需要做出正确的选择。你需要做足够的尽职调查,以便你选择合适的技术合作伙伴和能够制作容器的制造商。开源技术起着很关键的作用。开源的 Docker 项目使得分层格式的容器很容易构建和使用。开放容器计划(OCI)已经成为被所有主要技术供应商所支持的开源容器标准。如 Red Hat 这样的开源技术提供商提供了为容器而准备的安全的操作系统。例如, Red Hat Enterprise Linux 7.x (包括 Red Hat Enterprise Linux 原子主机)进行了优化以原生地运行容器,同时也提供监控和管理容器的工具。其他的开源项目如来自 Tectonic 的 CoreOS 也正在进入市场。的确,容器正等着被企业所采用。

容器平台

容器平台让容器成为企业消耗品。在过去这些年中,你可能在你的企业里处理过虚拟机散乱的问题,容器散乱比那要糟糕好几倍。在你的数据中心横跨不同主机运行不同规模的容器,尽管容器故障仍然保证你的应用程序的高可用性,自动化健康检查和基于流入的工作载荷的自动化容器缩放等等,这些是你能期待容器平台应该有的一些关键特性。

当在一个被定位为容器即服务模型(CaaS)的平台上运行容器时,这些平台的一些其它特性如自动化生成和部署使这个平台成为平台即服务模型(PaaS)。虽然 CaaS 能让你规模化运行容器,但是,PaaS 可以让你利用你的源代码编译、创建容器,为你运行那些容器。另外,这些平台提供了完整操作管理特性,例如,集群的管理和监控、容器的安全缺陷检测,以及安全地运行容器、跟踪日志和度量等等。

尽管一些技术供应商正在使用他们的专有技术来构建容器平台,但总的来说,企业们正在围绕建立在 Kubernetes(K8S)的基础上的开源技术而进行标准化。K8S 是一项由 Google 发起的开源项目,现在很多大平台的供应商也支持它。K8S 也是云端原生计算基金会(CNCF)的一部分,CNCF 正在发展成以云为中心技术的标准体。当你在容器平台上做出选择时,围绕开源流程编排技术的标准化是非常重要的。它基本上允许你移植到不同的容器平台,如果你不喜欢你第一次做的选择的话。K8S 还允许你的容器工作载荷可跨越不同的公有云进行迁移。这些就是为什么我们会看到越来越多的技术公司正在使用 Kubernetes 的原因。

一些企业正在试图通过拼接几个包括 K8S 在内开源项目来打造他们自己 DIY 的容器平台。这确实是比继续跟随专有技术要更好的一种解决方案,但是要完成这项工作也仍然包含很多需要探讨的地方。然而,一个企业的维护和保持这样的 DIY 平台的能力应该被认真评估。许多企业并不是想做创建 IT 平台的工作,而是他们希望运行自己的主流业务。有很多可行的基于 K8S 的解决方案,比如红帽 OpenShift 平台容器ApprendaDeisRancher,它们提供一个企业级平台,这些解决方案中的每种都有不同完整程度的功能。

这些解决方案是由供应商认证和支持。有些方案是完全的开源 PaaS 解决方案,而另外一些可能是 CaaS。根据你的企业的需求,这些解决方案可能是比 DIY 容器平台更好的替代品。

企业的担忧和它们与容器的关系

今天,几乎每个企业都正在与数字时代转型打交道,这些转型影响包括 DevOps 战略、微服务和云等多个领域。容器在这些领域中的每一个中都起着相当重要的作用。

DevOps 策略

IT 组织被分成运维和应用开发,他们作为两个独立的团队运作,每一队都只有他们自己的一套目标。大多数企业为了将这两个团队联合起来正在朝 DevOps 的方向前进。

容器在 DevOps 倡议的成功中发挥着重要的作用。在 DevOps 中成功的关键标准之一是增加开发人员在运营中的份额。开发人员不仅应该把代码交给运维人员,而且他们还应该考虑他们的代码是如何在生产环境中运行的。普遍的技术是采用“架构即代码”,而不是提供几页容易出错的安装说明指示,开发团队应该提供像编程时的环境配置。

这恰恰就是容器可以解决的问题。可以作为容器的模版的容器镜像包括了从基本操作系统到应用程序代码的整个环境堆栈。利用容器,开发人员将不再只是从 Dev 到 QA 再到 Prod 这样生成应用程序;相反,他们将传递一个版本化的容器镜像,这个镜像包括生成的运行程序和它运行需要的环境。容器是包罗万象的,从操作系统库到中间件再到应用程序的所有东西都被整合进一个镜像里面。因此,容器在开发环境运行的方式和它在质量保证环境和生产环境下运行的方式完全一样。容器是 DevOps 成功的重要因素。

 title=

另外,容器平台正在进一步发展。典型的持续集成和交付(CICD)工具,如 Jenkins,可以作为容器,这个容器能在容器平台本身运行整个 CICD 过程,而不需要额外的基础设施。现在你可以使用 PaaS 平台来生成和运行你的 CICD 管道。

微服务策略

微服务是今天 IT 领域的另一个热门话题。应用程序是这样被设计的:把应用程序分解为离散化的小的服务,每个服务完成一个小任务。这些服务中的每一个都可以根据合适的技术用不同的编程语言进行编写。它们可以由小团队(双比萨团队)创建和管理,并且可以迅速地改变它们。所有这些要求再次需要用到容器。容器足够小到成为微服务的基础。容器能够支持任何你选择的技术和语言,容器易于创建和运行,并且可以快速地改变。微服务和容器现在已经不分彼此,如果有人说不使用容器来实现微服务,他们将会受到别人奇怪的表情。

实际情况是,虽然微服务有望让情况变得简单,但是它们的扩张也增加了复杂性。有几个微服务的设计和开发模式将能使它们易于实现。这意味着开发人员现在急需这样一个开发平台,在这个平台下,开发人员可以轻松地部署和组织微服务,而且还能:

  • 以一种语言不可知的方式实现这些微服务设计模式。
  • 不会因代码侵入而增加代码的复杂性,以便开发人员能将许多模式的代码包括进他们的业务逻辑中。
  • 足够灵活以便部署在你所选择的基础设施上,并且不会把你捆绑在特定的云上。

这就是选择一个正确的容器平台所起作用的地方。在具体的基础设施上按照某一特定供应商的方法来实现这些微服务将会把你的应用程序捆绑在那些供应商的平台上。使用类似兼容 OCI 的容器的容器化微服务将可以保证你的微服务能够被运行在任何兼容 OCI 的平台上。

选择正确的容器平台来运行你的微服务是需要做的另一个重要的决定。今天,有很少的选择和许多的 FUD。如果你作出选择时不足够慎重,其中一些选择会把你带到非标准的、特定供应商的路线上。

云策略

云战略是 IT 领域的又一个热门话题。无论你是否喜欢,服务化模型都是不可避免的变化。如果你不将其作为 IT 服务进行提供,你的开发团队将可能会找到创建“shadow IT”的方法来访问云。另外,尽管使用云技术将会让你从资本支出转移到运营支出,但是,管理云支出是一个不断的挑战。

云可以提供虚拟机,在你添加额外的虚拟机之前,你要确认这个云上的 CPU、内存和网络等资源都处于最佳使用状态。容器在这个地方扮演着很重要的角色。因为容器比虚拟机要小得多。并且,如果你的应用程序正运行在容器中,你可以在虚拟机中安装更多的容器,这比在每台虚拟机中运行一个应用程序组件要多很多。

公有云供应商有很多,其中 Amazon Web Services(AWS)、Microsoft Azure 和 Google Cloud 最受欢迎。另外,你可能想在你的基于 OpenStack 的数据中心里拥有你自己的私有云。这些云环境中的每一个都有它们自己的协议、API 和工具。当你想让你的应用程序在云上运行时,你不会想要让您的应用编排被云供应商所制约,也不会想要维护任何特定云的代码。在你的技术上与特定的云供应商锁定就像在未来几年内向供应商签署空白支票。

云的可移植性对您的云战略至关重要。你可以编写应用程序,而不用担心它们在哪里运行,容器平台可以将你和特定的云供应商协议隔离开来,从而避免你与一个云供应商锁定。

传统系统

微服务架构带给开发的优势很多,但并不是每个应用程序都可以重构它们自己,有些只能重构一部分。传统的应用程序被普遍接受,它们需要维护和管理。虽然容器可以实现微服务,但容器不仅仅只是微服务。可以想象,你可以将大型应用程序和微服务作为容器来运行,因此只要你选择正确的容器技术和正确的应用程序平台,就可以将许多(如果不是所有)的传统的应用程序作为容器运行。

总结

我希望这篇对各种策略和容器的深入剖析有助于你的公司对下一步进行评估。让我在评论里面了解您公司学习到的经验,或者说没能大步向前跨越,他们还需要我再提供一些什么信息。

(题图来源:Maersk Line. CC SA-BY 4.0


作者简介:

Veer Muchandi -- 开源爱好者,容器和PaaS倡导者,喜欢学习和分享。


via: https://opensource.com/article/17/1/container-strategy-for-executives

作者:Veer Muchandi 译者:zhousiyu325 校对:wxy

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

几个星期前,我一个朋友问我:“为什么要关心 Go 语言”? 因为他们知道我热衷于 Go 语言,但他们想知道为什么我认为其他人也应该关心。本文包含三个我认为 Go 是重要的编程语言的原因。

安全

个人而言,你和我或许完全有能力在 C 中编写程序,既不会泄漏内存,也不会不安全地重复使用内存。然而,整体上,即使有超过 40 年)的经验,用 C 的程序员也无法可靠地这样做。

尽管静态代码分析、valgrind、tsan 以及 “-Werror” 已经存在了几十年,却很少有证据表明这些工具被广泛认可,更不用说广泛采用。总而言之,事实表明,程序员根本无法安全地管理自己的内存。现在是离开 C 的时候了。

Go 不需要程序员直接管理内存,所有内存分配都由语言运行时自行管理,使用前初始化,必要时检查边界。它肯定不是提供这些安全保障的第一个主流语言,Java(1995)可能是该冠军的竞争者。关键是,世界对不安全的编程语言没有胃口,所以人们默认认为,Go 是内存安全的。

开发人员生产力

从 20 世纪 70 年代末,开发人员的时间变得比硬件所耗费的时间更昂贵了。开发人员的生产力是一个不断扩展的话题,但它归结为这一点:你花了多少时间做有用的工作,又有多少时间等待编译器或者失望地迷失在外部代码库中。

有个笑话说 Go 是在等待 C ++ 程序编译时开发的。快速编译是 Go 的一个重要功能,也是吸引新开发人员的关键工具。虽然编译速度仍然是一个永久的战场,但公平地说,在其他语言中需要几分钟的编译,在 Go 中只需要几秒钟。

Go 程序员意识到生产力的更根本的问题是代码是为了读而写的,所以将代码的阅读行为放在编写之上。Go 通过工具和自定义来强制所有代码格式化成特定的样式。这消除了学习项目特定语言的方言时的困难,并有助于发现错误,因为它们看上去就是不正确。

由于专注于分析和机器辅助,Go 开发人员开始采用越来越多的工具来发现常见的编码错误,这种工具从来没有在 C 语言开发者中产生共鸣 - Go 开发人员希望工具帮助他们保持代码清洁。

并发性

十多年来,芯片设计师一直在警告免费午餐将会结束。从最低端的手机到最耗电的服务器,硬件的并行性以更多、更慢、堆砌 cpu 内核的形式出现,但只有你的语言可以利用它们才有意义。因此,并发特性需要内置到我们编写的要在今天的硬件上运行的软件中。

通过提供一种基于协程的轻量级并发模型,或者是 Go 中已知的 goroutines,Go 超越了那些暴露操作系统的多进程或多线程并行模型的语言。goroutines 允许程序员避开复杂的回调,而语言运行时确保有足够的线程来保持你的内核的活跃。

总结

我给朋友推荐 Go 有三个原因:安全性、生产力和并发性。有些语言可以涵盖一个也有可能是两个方面,但是这三个方面的结合使得 Go 成为主流程序员的绝佳选择。

相关文章:

  1. 为什么 Go 和 Rust 不是竞争对手
  2. 听听我在 OSCON 上谈 Go 语言性能
  3. 我在 GopherChina 和 GopherCon Singapore 中的演讲
  4. 压力测试你 Go 包

via: https://dave.cheney.net/2017/03/20/why-go

作者:Dave Cheney 译者:geekpi 校对:jasminepeng

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

继上篇“漫画赏析: Vi 还是不 Vi,这是个问题”,已经有一段日子。于是,昨天 (2017 年 03 月 28 日) 翻了翻 Daniel 的漫画,看到了这篇有点委婉的漫画,遂将之进行汉化并分享给大家。

user-space-election

如上图,用户空间选举大会中,各大进程都参与竞选。但是呢,结果出乎大家意料,这个大家都不熟悉的 Prumt 先生赢得了主席之位。

在这位 Prumt 主席上位之后,他高调宣布了一些决定:废除 Unicode 编码,重新启用使用范围较小的 ASCII 编码。

这是不是很排外呢?看到这幅漫画的小伙伴,你想到了什么呢?


via: http://turnoff.us/geek/user-space-election/

作者:Daniel Stori 译者:GHLandy 校对:wxy

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