2017年5月1日星期一

Linux Kernel 4.4.65 和 3.18.51 和 4.11 发布


Linuxeden 开源社区 --

Linux Kernel 4.4.65 和 3.18.51 发布了。两个版本都包含了大量 bug 修复和一些功能的改进。

4.4.65 更新内容可 点此 查看。

3.18.51 更新内容可 点此 查看。

4.11 更新内容:

主要 新特性 包括:多队列块层支持可插拔 IO 调度器框架和死线调度器;固态硬盘支持可扩展 swapping;新的 perf ftrace 命令;MD/RAID5 日志 ;

新的 statx() 系统调用;支持 Opal Storage Specification 驱动;支持 SMC-R 协议 (RFC7609);SipHash 哈希函数;新的 LZ4 压缩实现 ;以及大量的安全、架构和驱动更新等等。

下载地址:

转自 http://ift.tt/2qrs9m8

The post Linux Kernel 4.4.65 和 3.18.51 和 4.11 发布 appeared first on Linuxeden开源社区.

http://ift.tt/2ppD94O

良心发现?Win10 将主动控制后台软件来省电


Linuxeden 开源社区 --

目前 CPU 的加速技术,通常是利用 CPU 低速运转时所「存」下来的温度预算,在碰到需要高运算力的软件需求时,在短时间内拉高频率,快速完成工作,再把频率降回来。问题是,并不是所有的软件都须要快速完成工作,像是扫毒之类的的背景软件,其实只要给它们最低限度的资源,慢慢完成也没关系。

微软在最新版的 Windows 10 Insider Preview 中,就增加了一个名为「Power Throttling」的功能,它可以自动判断一个软件是否在执行重要的工作,如果不是的话,就不给予 CPU 资源,让处理器保持低速运转来省电。目前仅有第六代 Core i 以上的处理器才能配合,但微软也准备扩大支持的处理器数量。微软正在收集用户的使用意见,看是否有 Windows「误判」重要性的情形发生,做为正式版推出的参考。当然,用户也可以自行设定将哪些软件排除在 Power Throttling 的掌控之外,或是选择让它不要那么活跃。

这功能大概无法一下子让笔记本多出几个小时的使用时间,但那种莫名其妙 CPU 就冲到 100% 的情况,应该可以减缓不少吧。

原文地址: http://ift.tt/2pxTJhw编辑:清蒸 Github,审核员:逄增宝

The post 良心发现?Win10 将主动控制后台软件来省电 appeared first on Linuxeden开源社区.

http://ift.tt/2qlh88y

MySQL 系列连载之主从复制原理


Linuxeden 开源社区 --
导读 MySQL 数据库支持同步复制、单向、异步复制,在复制的过程中一个服务器充当主服务,而一个或多个服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

Mysql 复制 (Replication)

1、Mysql 复制作用
  • 负载平衡 (load balancing)
  • 备份
  • 高可用性 (high availability) 和容错
2、Mysql 复制原理

主要有三步(如下图):

master 将改变记录到二进制日志 (binary log) 中(这些记录叫做二进制日志事件,binary log events);

slave 将 master 的 binary log events 拷贝到它的中继日志 (relay log);

slave 重做中继日志中的事件,将改变它自己的数据。

具体说明:

该过程的第一部分就是 master 记录二进制日志。在每个事务更新数据完成之前,master 在二进制日志记录这些改变。MySQL 将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master 通知存储引擎提交事务。

下一步就是 slave 将 master 的 binary log 拷贝到它自己的中继日志。 首先,slave 开始一个工作线程——I/O 线程。I/O 线程在 master 上打开一个普通的连接,然后开始 binlog dump process。 Binlog dump process 从 master 的二进制日志中读取事件,如果已经跟上 master,它会休眠并等待 master 产生新的事件。I/O 线程将这些事件写入中继日志。

SQL slave thread 处理该过程的最后一步。SQL 线程从中继日志读取事件,更新 slave 的数据,使其与 master 中的数据一致。只要该线程与 I/O 线程保持一致,中继日志通常会位于 OS 的缓存中,所以中继日志的开销很小。

此外,在 master 中也有一个工作线程:和其它 MySQL 的连接一样,slave 在 master 中打开一个连接也会使得 master 开始一个线程。复制过程有一个很重要的限制——复制在 slave 上是串行化的,也就是说 master 上的并行更新操作不能在 slave 上并行操作。所以 slave 上数据一般要慢于 master 上数据。即 master 与 slave 之间的数据在一定时间内会不同步。

Mysql 复制 (Replication) 类型

1、一主多从模式

注,由一个 master 和一个 slave 组成复制系统是最简单的情况。Slave 之间并不相互通信,只能与 master 进行通信。

具体说明:

如果写操作较少,而读操作很多时,可以采取这种架构。你可以将读操作分布到其它的 slave,从而减小 master 的压力。

但是,当 slave 增加到一定数量时,slave 对 master 的负载以及网络带宽都会成为一个严重的问题。

这种架构虽然简单,但是,它却非常灵活,足够满足大多数应用需求。

一些建议:

不同的 slave 扮演不同的作用 (例如使用不同的索引,或者不同的存储引擎)

用一个 slave 作为备用 master,只进行复制

用一个远程的 slave,用于灾难恢复

发送复制事件到其它 slave,当设置 log_slave_updates 时,你可以让 slave 扮演其它 slave 的 master。

此时,slave 把 SQL 线程执行的事件写进自己的二进制日志 (binary log),然后,它的 slave 可以获取这些事件并执行它
MySQL 级联复制 (A->B->C)log_slave_updates

MySQL 主从结构实际中是用到最多的一种架构。

新上的两台服务器 B 和 C,要替换掉之前旧的服务器 A,同时,B 和 C 是新的主从关系。因此,配置成级联复制,来迁移数据,也方便切换。

架构图如下:

master A ——> slave B ——> slave C

有这么情况发生了,服务器 B 可以正常复制服务器 A 的数据,服务器 B 和 C 主从状态 Slave_IO_Running 和 Slave_SQL_Running 都是 yes 的,但是服务器 C 却无法复制新的数据。

原因分析:

1. 检查服务器B有没有开启二进制日志 log_bin

2. log_slave_updates 是否启用

log_slave_updates 是将从服务器从主服务器收到的更新记入到从服务器自己的二进制日志文件中。

上面的问题是由于没有启用 log_slave_updates = 1导致的。

总结:

因此,对于 mysql 级联复制,上游的从服务器不仅仅要开启 log_bin 还要开启 log_slave_updates,否则将导致下游的从服务器无法更新复制。

2、双主模式

注,Master-Master 复制的两台服务器,既是 master,又是另一台服务器的 slave。

具体说明:

主的 Master-Master 复制有一些特殊的用处。例如,地理上分布的两个部分都需要自己的可写的数据副本。

这种结构最大的问题就是更新冲突。假设一个表只有一行 (一列) 的数据,其值为 1,如果两个服务器分别同时执行如下语句:

在第一个服务器上执行:

mysql> UPDATE tbl SET col=col + 1;

在第二个服务器上执行:

mysql> UPDATE tbl SET col=col * 2;

那么结果是多少呢?一台服务器是 4,另一个服务器是 3,但是,这并不会产生错误。

实际上,MySQL 并不支持其它一些 DBMS 支持的多主服务器复制 (Multimaster Replication),

这是 MySQL 的复制功能很大的一个限制 (多主服务器的难点在于解决更新冲突),但是,如果你实在有这种需求,

你可以采用 MySQL Cluster,以及将 Cluster 和 Replication 结合起来,可以建立强大的高性能的数据库平台。

但是,可以通过其它一些方式来模拟这种多主服务器的复制。

3、主从模式

注,这是 master-master 结构变化而来的,它避免了 M-M 的缺点,实际上,这是一种具有容错和高可用性的系统。

4、带从服务器的 Master-Master 结构 (Master-Master with Slaves)

注,这种结构的优点就是提供了冗余。在地理上分布的复制结构,它不存在单一节点故障问题,而且还可以将读密集型的请求放到 slave 上。

总结:一般常用的两种复制类型一种是主从模式,另一种是一主多从模式。在这我们主要讲解主从模式复制。

原文地址: http://ift.tt/2py761e 编辑员:杨鹏飞,审核员:逄增宝

The post MySQL 系列连载之主从复制原理 appeared first on Linuxeden开源社区.

http://ift.tt/2ql7Ol5

Linux 4.11 发布


Linuxeden 开源社区 --Linux
LinuxLinus Torvalds 在内核邮件列表上 宣布 释出 Linux 4.11。主要 新特性 包括:多队列块层支持可插拔 IO 调度器框架和死线调度器;固态硬盘支持可扩展 swapping;新的 perf ftrace 命令;MD/RAID5 日志 ;新的 statx() 系统调用;支持 Opal Storage Specification 驱动;支持 SMC-R 协议 (RFC7609);SipHash 哈希函数;新的 LZ4 压缩实现 ;以及大量的安全、架构和驱动更新等等。
转自 http://ift.tt/2oXdAVq

The post Linux 4.11 发布 appeared first on Linuxeden开源社区.

http://ift.tt/2qvL3aL

中国 X86 CPU 同主频能超越 AMD?这才是真相


Linuxeden 开源社区 --中国X86 CPU同主频能超越AMD?

日前,由北京市网信办、北京市公安局主办的北京国际互联网科技博览会暨世界网络安全大会在北京展览馆开幕。

上海兆芯(VIA Alliance Semiconductor)以“自主安全可靠的国产 x86 解决方案”为主题,携公司自主设计研发的国产 x86 通用处理器,以及 PC、服务器等参展。

“首次公开亮相的兆芯 ZX-D 系列处理器及国产整机 VR 体验,更成为现场瞩目的焦点”——这种报道更是出现在一些媒体的稿件中。

中国X86 CPU同主频能超越AMD?

而且根据现场的一块展板,兆芯 ZX-D 的 SPEC2006 定点成绩达到 20 分,考虑到 ZX-D 只有 2G 主频,也就是 2G 主频下实现了 20 分,换算一下就是 10/G。而根据 AMD 公布的数据,Zen 在 3.4Ghz 频率下,使用 GCC4.6 编译器,优化参数 -O2,定点成绩为 31.5,换算一下就是 9.26/G。

这家名不见经传的中国 IC 设计公司的 CPU 在同主频的情形下竟然超越了 AMD,这实在令人震撼!那么,事实究竟怎么样呢?

“超越”AMD 的兆芯是何许人也

上海兆芯集成电路有限公司(英文名:VIA Alliance Semiconductor)是成立于 2013 年的国资控股企业。上海市国资委下属上海联和投资有限公司、台湾威盛电子是两大股东,其中上海联和投资有限公司出资 2 亿美元,占股 80%,威盛电子出资 4975 万美元,占 20%。

VIA 在收购了美国 Cyrix 和半人马半导体等公司后,开发了一系列产品,不过由于性能有限,被 Intel 和 AMD 碾压而被赶出 X86 CPU 市场。

而 VIA 曾经辉煌过的桥片,也因遭遇 Intel 的 X86 专利大棒暴击而失去了市场份额。虽然由于 HTC 曾经的辉煌(一度市值高于诺基亚),且 VIA 和 HTC 的幕后老板都是王雪红,VIA 即便半死不活,王雪红也可以支撑,但随着 HTC 的手机业务在几年时间内急转直下,这使得王雪红不得不向大陆寻求资金援助。

于是就有了上海国资委和 VIA 成立合资公司的事件。随后,兆芯承接了核高基 01 专项,获得了数十亿项目经费支持。

关于兆芯的具体介绍,官方有详细的介绍,如下图,因此就不详细说了。

中国X86 CPU同主频能超越AMD?

可以说,兆芯的技术源自 VIA,而 VIA 的技术源自收购自美国的 Cyrix 和半人马半导体。

因此,如果兆芯官方展板没有水分——只有 2G 主频的 ZX-D  SPEC2006 定点成绩达到 20 分,也就意味着在同主频下 ZX-D 的性能超越了 AMD。

换言之,就是 VIA 在寂灭数年后,得道中国大陆资金输血,在主频相同的情况下,能立马秒翻了 AMD 苦心孤诣才开发出来的 Zen…… 这实在是令人目瞪口呆。

VIA Alliance Semiconductor 的 ZX-D 真的能超越 AMD 的 Ryzen?

中国X86 CPU同主频能超越AMD?

其实,北京国际互联网科技博览会暨世界网络安全大会并非 ZX-D 的第一次亮相,在“SEMICON China 2017 国际半导体展”上,兆芯(VIA Alliance Semiconductor)副总裁傅城博士在会议上公布继开先 ZX-C 系列处理器之后,兆芯最新一代 ZX-D 系列 4 核和 8 核通用处理器目前已经成功流片。

此外,媒体还报道:在展会上业内人士还向我们透露,兆芯将在明年(2018 年)推出 16nm 的 ZX-E 8 核 CPU,并公开了 Fritz Chess Benchmark 国际象棋性能测试的成绩。而且在测试成绩的图片上还有“兆芯处理器媲美国际主流水准”的字样。

在这张图表中, 首先要说明的是,存在比较严重的数据错误,比如 I5 7500 被拔高了 3000 分左右,而 ADM FX8370 的成绩被压低了 3000 分。一些媒体根据图表报道的文章中称:“运行在 3.0GHz 频率下的 ZX-E8 核心处理器性能已经超过了 AMD 的 FX-8370 处理器”,这完全是将 FX 8370 处理器的测试成绩压低 3000 多分的前提下,得出的结论。

四核版的 ZX-C 的国际象棋分数是 3523,四核版的 ZX-D 的国际象棋分数为 4316。而同样四核的 Zen 的分数为 9360,是 ZX-D(四核版)的 2 倍有余。由于该图表中没有标注 Zen 的具体主频,考虑到 AMD 的锐龙处理器主频很可能会在 3G 以上,如果以 3G 主频来计算,同主频下 Zen 的国际象棋分数也是 ZX-D 的 1.5 倍。

即便表格中的 Zen 主频达到 4G(不过 GF 代工的 Zen 主频貌似只有 3.6G),ZX-D 在同主频下的国际象棋测试依旧不敌 Zen。

因此,根据上海兆芯在北京国际互联网科技博览会暨世界网络安全大会公布的展板,在同主频下,VIA Alliance Semiconductor 的 ZX-D 是优于 ADM 四核的 Zen。

但根据“SEMICON China 2017 国际半导体展”上兆芯后,媒体发布的印有兆芯官方字样的图表,在同主频下,在单线程性能方面,ZX-D 和 ADM 四核的 Zen,差距还是比较大的。

如此一来,兆芯给出的官方宣传就自相矛盾了。那么,在自相矛盾的背后,到底隐藏了怎样的真相呢?

ZX-D 的性能到底怎么样?

要探究 ZX-D 的性能,其实只要探究 ZX-C 的性能,并根据国际象棋测试中展示的 ZX-C 和 ZX-D 性能差距做一定增幅就可以了。

那么,ZX-C 性能到底怎么样呢?

根据实际测试,测试的编译器采用 GCC 4.8.4,编译的选项采用-Ofast 以及 profiling,ZX-C(2G 主频)的 SPEC06 测试成绩如下:

400.perlbench       11.9

401.bzip          28.39

403.gcc           10.5

429.mcf           10.9

445.gobmk          10.6

456.hmmer          10.7

458.sjeng          10.9

462.libquantum       23

464.h264ref         14.7

471.omnetpp         7.12

473.astar          7.49

483.xalancbmk       9.59

SPEC CINT2006       10.77

410.bwaves         12.9

416.gamess         8.25

433.milc          11.2

434.zeusmp         9.59

435.gromacs        5.79

436.cactusADM       9.64

437.leslie3d        9.58

444.namd           7.68

447.dealII         13

450.soplex         11.7

453.povray         11.3

454.calculix        6.44

459.GemsFDTD        10.6

465.tonto          6.76

470.lbm            14.1

481.wrf            10.1

482.sphinx3         12.8

SPEC FP2006         9.77

中国X86 CPU同主频能超越AMD?

作为参照笔者找来了 Intel G1840 和 Intel i5 4460,在同样的测试环境下,以 ZX-C4600、Intel G1840 和 Intel i5 4460 三款处理器的成绩做对比。

从图中可以看出,C4600、G1840 和 i5 4460 三款处理器 CINT2006 的分值分别为 10.77、25.8 和 35.32,也就是定点性能 G1840 是兆芯/VIA C4600 的 2.4 倍,i5 4460 是兆芯/VIA C4600 的 3.3 倍。三款处理器 CFP2006 的分值分别是 9.77 和 27.1 和 40.33,也就是说浮点性能 G1840 是兆芯/VIA C4600 的 2.8 倍,i5 4460 是兆芯/VIA C4600 的 4.1 倍。

从 SPEC CPU2006 单线程程序的性能对比可以看出,2GHz 的兆芯/VIA C4600 和主流处理器如 3.2GHz 的 i5 4460 性能差 3.3(定点)到 4.1(浮点)倍。

从每 GHz 的 SPEC CPU2006 分值可以算出,C4600 每 GHz 为 5 分左右,而 Intel Haswell 处理器每 GHz 的分值为 9-12 分左右——赛扬 G1840 和 i5 4460 的分值差距可能源自 AVX 等指令的向量优化加成,L3 cache 大小和 ddr 频率等差别。

因此,在定点和浮点每 GHz 主频的 SPEC2006 测试都为 5 分左右的情况下,根据国际象棋测试,ZX-D 在测试成绩上仅仅小幅度优于 ZX-C。在此情形下,每 GHz 主频的 SPEC CPU2006 定点成绩优于 AMD 公布的 9.26 的可能性是非常小的。

ZX-D 的 SPEC2006 定点、浮点达 20 分的关键在于编译器

SPEC2006 存在一个问题,那就是测试结果非常依赖编译器和所选择的优化选项。

在 SPEC 测试中,不同的编译器会带来不同的结果。而且是否开启向量优化,以及并行选项都会对测试结果造成很大影响。比如 SUN 就曾经通过编译器优化将测试成绩提升 50%,而作为业界巨头的 Intel,其 ICC 编译器更是威力无穷——在采用 ICC 的情况下,可以取得大幅优于 GCC 的测试成绩。

笔者有幸从权威第三方单位,拿到了 ZX-C 的 ICC 测试成绩,单线程定点 17.4,浮点 18.2。

相对于编译器采用 GCC 4.8.4 的成绩:定点 10.77,浮点 9.77。使用 ICC 后成绩可谓突飞猛进,单线程定点成绩提升了 61.5%,单线程浮点成绩提升了 86.2%。

既然 ICC 这么好,那为何大家还普遍使用 GCC 呢?其中的原因之一就在于 ICC 的很多优化过于极端,在一些应用中甚至会导致运行出错,所以目前 GCC 是主流。ICC 对于兆芯/VIA 而言,不服跑个分的因素远远大于日常中能起到的作用。

而 ZX-D 的 SPEC2006 定点、浮点达 20 分的成绩,其实就是使用 ICC 测试后得出的成绩。为此,笔者专门咨询了参与 ZX-D 测试的专家,得到的回复是:如果要达到 20 分这个水平,那必然是 ICC 下的测试结果。

另外 ZX-D 在缓存和内存控制器上的改进也一定程度上提升了 SPEC 测试的成绩。

ZX-D 将内存控制器和 CPU 集成到了一起,这种做法可以使 SPEC2006 的测试成绩相对于 ZX-C 提升 5-6%左右(ZX-C 的内存控制器没有和 CPU 集成在一起)。将缓存从 ZX-C 的 2M 提升到 4M,也有助于提升 SPEC2006 测试成绩。

不过优化片外的访存模块和集成度的提升实际效果比较有限,远远比不了微结构改进优化带来的 IPC 提升。什么是微结构优化改进呢?比如 AMD 采用 Zen 替换了性能相对落后的打桩机和挖掘机,这种改变才能给 CPU 性能带来质的飞跃。

对 ZX-D 的 SPEC2006 定点、浮点成绩持保留态度

由于兆芯(VIA Alliance Semiconductor)在之前的宣传中存在很大水分和数据造假的前科。比如在“十二五”科技成果展上,兆芯官方资料宣称:国产 X86 通用处理器的成功自主研发和量产,令国产处理器在性能方面完成了一次跨越式的提升,从“十二五”初期的不足国际整体水准的 10%提升到了目前的 80%。

中国X86 CPU同主频能超越AMD?

而当时, 兆芯/VIA 只有 ZX-C,而 ZX-C 和 Intel G1840 和 I5 4460 的成绩对比之前已经介绍了,就定点而言,I5 4460 是 ZX-C 的 3.3 倍,G1840 是 ZX-C 的 2.4 倍。就浮点而言,I5 4460 是 ZX-C 的 4.4 倍,G1840 是 ZX-C 的 2.8 倍。

在此情形下,在“十二五”科技成果展上宣传:从“十二五”初期的不足国际整体水准的 10%提升到了目前的 80%”,这种宣传注水太过严重。

而在“SEMICON China 2017 国际半导体展”之后公布的国际象棋测试图表,也存在数据造假的问题。比如 Intel I5 7500 跑分虚高 3000 分。

再比如 AMD 的 FX 8370 的测试成绩有很大问题——兆芯提供的图表中,FX8370 的成绩只有 9000 多分,但这个分数大约只和 FX 6350 差不多。

根据网络公布的测试,FX 8370 在国际象棋测试中跑出了 12751,还的测试甚至跑出了 13546 分的成绩(这个成绩可能是超频下取得的)。 而在兆芯提供的图表中,FX8370 的成绩只有 9300 多分,明显少了 3000 多分。由于偏差幅度实在是太大,这已经不能用测试误差来自圆其说了。

中国X86 CPU同主频能超越AMD?

有鉴于兆芯(VIA Alliance Semiconductor)官方宣传资料有严重注水和造假的前科 ,对于本次展板上的 ZX-D 的 SPEC2006 定点达到 20 分,浮点超过 20 分,特别是在没有标注测试环境的情况下,大家没必要将之奉为圣经。

考虑到 ZX-D 其实是 ZX-C 的“增加集成度+增加缓存”版本,笔者认为,如果是采用 ICC 编译器的结果,那么在 SPEC 测试中优化选项全开,取多次测试的最好成绩,到达 20 分还是有一定可能性的。

但如果兆芯(VIA Alliance Semiconductor)官方或者有媒体宣称 ZX-D 定点达 20 分,浮点超越 20 分是在 GCC 下的成绩,在没有权威第三方给出测试成绩钱,笔者持保留态度。

毕竟,根据 AMD 公布的数据:

在 3.4Ghz 频率下,使用 GCC4.6 编译器,优化参数为-O2,Piledriver(打桩机)和 excavator(挖掘机)的 SPECint06 测试值分别为:20.7、19.2。换言之,如果 ZX-D SPEC2006 定点达 20 分的成绩是 GCC 下的,那么意味着 ZX-D 可以匹敌 3.4G 主频下的 Piledriver 和 excavator,而这个成绩显然也和兆芯自己发布的国际象棋测试图表相违背。

而且经过实测,VIA Alliance Semiconductor 的 ZX-D 实际性能和 Intel atom j1900 相当。本质上说,ZX-D 是基于 ZX-C 的改版,在微结构不动情况下,做的 SoC 设计,集成了内存控制器,pcie 控制器等,二级 cache 变大。为何只做 SoC 设计呢?原因在于微结构的改动容易错,周期长。而 SoC 的设计相当于集成,用 ip 攒芯片见效快。

总而言之,ZX-D 实际性能远远达不到 3.4G 主频下的 Piledriver 和 excavator 的水平。在北京国际互联网科技博览会暨世界网络安全大会现场展板——兆芯 ZX-D 的 SPEC2006 单线程定点成绩达到 20 分,浮点超越 20 分,这个成绩也是在 ICC 下取得的。

转自 http://ift.tt/2qvAvIt

The post 中国 X86 CPU 同主频能超越 AMD?这才是真相 appeared first on Linuxeden开源社区.

http://ift.tt/2oPyASS

2017年4月30日星期日

开源美图 2017 05 01


Linuxeden 开源社区 --

The post 开源美图 2017 05 01 appeared first on Linuxeden开源社区.

http://ift.tt/2qtTMdp

致敬!这些老外的开源技术养活了一票国产软件


Linuxeden 开源社区 --致敬!这些老外的开源技术养活了一票国产软件

现在各种国产软件已经牢牢占据了国内市场,无论是在浏览器、下载软件、压缩软件还是视频播放器等领域,都可以看到国产软件活跃的身影。诚然,国产软件在很多方面体验都不错,但之所以它们这么强,很大程度上是因为在核心技术方面,借用了相当多来自开源软件的技术。

大家对国产软件都相当了解,但对于国产软件背后的开源软件,又知道多少?今天,就一起来谈谈国产软件背后的开源软件吧。

养活了一票国产浏览器:Chromium

国内有很多“极速浏览器”,所使用的是 Chrome 同样的引擎,这点大家都相当了解。不过,对于 Chome 背后的开源项目 Chromium,大家了解的细节未必就这么多了。

Chromium 源于 Webkit,而 Webkit 则源于 DE 开源项目 ,兴盛于苹果公司的 Safari 项目,所以说起来 Chromium 和苹果还是有一些渊源的。但是,Chromium 又不仅仅是 Webkit,Chrome 只是继承了 Webkit 的 WebCore 部分,在 JS 引擎上使用了 Google 引以为豪的“V8”,还在 Webkit 上封装了一层 Webkit Glue。可以说,Chromium 对 Webkit 进行了相当程度的魔改 。

致敬!这些老外的开源技术养活了一票国产软件
Chromium 是一堆国产极速浏览器赖以生存的基本

不仅如此,Chromium 也已经转用了 Blink 内核,和 Webkit 的渊源就更加远了。 国内浏览器使用了 Chromium 的源码,因此现在不少也换用了 Blink 内核。

但是,国产浏览器继承的往往只是 Chromium 的内核和 JS 引擎,对其拓展支持部分,却大大被阉割。相较于 Chrome, 国产浏览器对各种扩展插件的支持都相当弱,往往只能安装修改后的扩展 ,这也许是出于商业上的原因。虽然国产软件对比 Chrome 默认多了很多功能,但扩展支持较弱这点,还是令可玩性大减。

国产播放器的大奶妈:FFmpeg

大家都喜欢用国产播放器看小电影,毕竟国产播放器的功能体验用起来真的不错,能够搜字幕,能够云播,最重要的还是支持格式比较全。但是,很多人并不知道,支持格式全这点,其实和国外的开源项目 FFmpeg 是息息相关的。

致敬!这些老外的开源技术养活了一票国产软件
FFmpeg 的解码器造就了无数万能播放器

FFmpeg 是一个和视频处理相关的开源项目,包含了丰富的多媒体解码库。国内的播放器之所以如此万能,很大程度上就是因为使用了 FFmpeg 的解码库。但是,FFmpeg 是基于 LGPL/GPL 开源的,这意味着如果某软件使用了 FFmpeg 的代码,那么这个软件涉及这些代码的部分,也必须开源。但是国内的风气嘛,你懂的,白拿了你的东西才不要守规矩。因此,国内的一些“XX 影音”被钉在了 FFmpeg 的耻辱柱上。

占了便宜还被踢出门:7-Zip

国内有很多免费的压缩软件,这些压缩软件的功能都挺不错,速度也可以,但内核往往也并非来自自己。国内压缩软件往往使用了 7-Zip 这款开源软件的内核,来实现众多压缩文件的支持。

7-Zip 这款开源软件的影响还是非常大的,首先它的效率很高。使用 7-Zip 编码的话,能够比 WinZip 和 WinRAR 提供更高的压缩率。另外它对各种压缩文件支持也非常好,主流的压缩文件基本都给予支持,当然一些商业的压缩格式例如 rar,就只能解压不能压缩。

由于 7-Zip 是开源的,所以它的内核被很多其他压缩软件所使用,国产压缩软件通常就是 7-Zip 的忠实拥簇。

致敬!这些老外的开源技术养活了一票国产软件
7-Zip 在国内不流行的一大原因可能是界面太简陋,但就是这样的风格,社会你 7 哥,人狠话不多

然而,7-Zip 也是一款使用了 LGPL 协议的开源软件,使用了 7-Zip 的源码,按理来说也必须开源。但国内的“X 压”等软件非但没有开源,还在压缩文件的文件头中故意加入无助于压缩的私货,让其他压缩软件无法解压。用了人家的代码还故意制造不兼容,对于这种行为,只想说一句,“我从未见过如此厚颜无耻之人”!

为老司机铺开康庄大道:eMule

如果你是有些年头的老司机,应该会知道 VeryCD 和电驴。VeryCD 这个站点提供了大量 eD2k 链接,通过旗下的“电驴”软件,就可以下载到各种资源。虽然现在 VeryCD 已经转型,但各大下载软件依然对 eD2k 链接有着良好的支持,各种 eD2k 资源,也是老司机们飙车时绕不开的路。

不过电驴和 eD2k 背后的 eMule“电骡”,大家或许就知之甚少了。其实 eD2k 协议最早起源于商业公司开发的 eDonkey(这才是正牌电驴)分享软件,有个德国人不满这软件,就自己开发了开源的客户端 eMule 电骡,也支持 eD2k 协议。国内的 VeryCD 把 eMule 电骡的开源代码魔改后,制造出了大家熟知的“VeryCD 电驴”。

致敬!这些老外的开源技术养活了一票国产软件
如果你没用过 eMule,你可能不是真正的老司机

和 eMule 电骡这个开源软件相比,其实 VeryCD 电驴阉割了相当多的东西。例如,不能直接在 KAD 网络上进行无限制的搜索,这意味着不能无限制地上各种车——现在流行的各种“种子搜索神器”,也只是阉割过的 KAD 搜索器罢了。现在 VeryCD 已经衰败,但 eD2k 仍长存于各大下载软件中,希望大家在开车的同时,也记得背后的 eMule 这位铺路人。

智能路由器的力量之源:OpenWRT

现在国内智能路由器可谓是如火如荼,智能路由器对比传统的路由器,功能的确强大很多。例如,可以外接硬盘当 NAS 用,还可以安装很多第三方插件,实现更强劲的功能。但是,智能路由器所依仗的 OpenWRT,却鲜为人知。

致敬!这些老外的开源技术养活了一票国产软件
没有 OpenWRT,就没有一众智能路由器

OpenWRT 是一款开源的路由器固件,扩展性强是 OpenWRT 最大的卖点——这也是智能路由器们的最大卖点。OpenWRT 源于 Linux,其强大的拓展性很大程度上也是得益于 Linux。不过和 Linux 一样,OpenWRT 的使用门槛也比较高,原版需要命令行操纵,没有一定的 Linux 和网络知识还真是无法驾驭。国内的路由器厂商把 OpenWRT 改造成界面更友好的固件,可以算是 OpenWRT 的改版。

不过,国内的智能路由器固件虽然上手容易,但对比 OpenWRT,还是有一些方面例如性能和可玩性方面,是有所不如的。对比 OpenWRT,智能路由器固件的性能和稳定性都要偏弱。特别是高流量时候的吞吐性能,差距会显得更加明显;而在扩展方面,由于技术和商业上的原因,可玩性也不如 OpenWRT。而且,国内智能路由器厂商使用了 OpenWRT,往往也不根据 GPL 协议继续开源,这些都是很值得批判一番的。

总结

在这个广告铺天盖地的商业社会,大家很少会听见开源软件的种种消息。闭源的商业软件搭造起了软件世界琳琅满目的繁华,但开源软件也未曾离开过栋梁的位置。诚然,国产软件的很多功能都相当容易上手,但在使用这些商业软件的时候,大家也应该记住背后默默奉献的开源项目,信息时代少了它们,也会失去很多光彩!

转自 http://ift.tt/2qjj4i6

The post 致敬!这些老外的开源技术养活了一票国产软件 appeared first on Linuxeden开源社区.

http://ift.tt/2pw0tfS