DevConf.cz 是一个由红帽赞助的开发者大会,今年在捷克共和国布尔诺举行。会议上有很多不同的演讲,但最大的主题是容器。大部分演讲是实践性质的,要么是展示如何使用各种容器技术的教程,比如 Kubernetes 和 Atomic.app,要么是对新产品的介绍,比如 Cockpit

不过,红帽容器工程主管 Dan Walsh 所做的演讲无疑是容器主题中最有趣的。他展示的是 Linux 容器世界核心冲突之一:systemd 对垒 Docker 守护进程。这绝非是一个新问题;在 Ubuntu 采用 systemd,以及 CoreOS 引入围绕 systemd 构建的容器系统 Rocket 时,这个问题就出现了。 

Systemd vs. Docker

“这是 Lennart Poettering,”Walsh 一边展示一张照片一边说。“这是 Solomon Hykes”,他展示了另一张照片。“两个人都不愿意妥协。而我则介于他们之间。”

由于 Walsh 曾受命让 systemd 支持 Docker,他详述了两个系统间代码、个人及运营冲突的历史。从很多方面来说,这也是红帽与 Docker 公司之间补丁冲突的历史。Poettering 是 systemd 的主要作者,并在红帽工作,而 Hykes 则是 Docker 公司的创始人和 CTO。

依据 Walsh 的演讲,冲突的根源在于 Docker 守护进程被设计用来接管很多 systemd 已经从 Linux 中抢夺过来的功能。包括初始化、服务激活、安全及日志。“从很多方面讲,Docker 想成为一个新的 systemd,”他声称,“它梦想成为 systemd。”

他阐述的第一个冲突在于服务初始化与重启。在 systemd 模式中,这些都是由 systemd 控制的;在 Docker 的世界中,则全由 Docker 守护进程控制。比如说,可以在 systemd 单元文件中以 “docker run” 语句来定义服务,以便以容器方式运行它们,也可以在 Docker 守护进程中将服务定义成“自动重启”容器。两种方式都行得通,但混合起来就不行。Docker 文档推荐使用 Docker 自动重启,除非是在混合容器化服务与非容器化服务时;这种情况下它推荐使用 systemd 或 Upstart。

不过,当以容器方式运行的服务依赖于其他容器化服务时,问题就出现了。对于常规服务,systemd 有一个名为 sd_notify 的功能,可以在服务准备就绪时传递消息,然后就可以启动那些依赖于它们的服务。但是,Docker 采用的是 C/S 架构。客户端为每个用户会话调用 docker run 及其他命令,但容器的启动和管理是在 Docker 守护进程中进行的(相当于“服务端”)。客户端无法发送 sd_notify 状态消息,因为它不做容器服务的实际管理,也不清楚服务的就绪时间,守护进程也无法发送这类消息,因为它不是通过 systemd 的单元文件调用的。因此,Walsh 的团队尝试了一种迂回的变通方式来启用 sd_notify:

  1. systemd 请求来自 Docker 客户端的 sd_notify
  2. 该客户端发送一条 sd_notify 消息给 Docker 守护进程
  3. 守护进程设置一个容器来完成 sd_notify
  4. 守护进程从该容器获取一条 sd_notify 消息
  5. 守护进程发送一条 sd_notify 消息给该客户端
  6. 该客户端发送一条 sd_notify 消息通知 systemd Docker 容器已就绪

用于启用这个错综复杂系统的补丁未被 Docker 项目接纳,对此 Walsh 毫不意外。sd_notify 确实可以用于 Docker 守护进程自身,因此 systemd 可以依赖于守护进程的运行。但是还是无法为单个容器化服务执行 sd_notify,因此 Docker 项目依然没有可靠的办法来管理容器化服务依赖的启动顺序

Systemd 有一项功能叫“套接字激活socket activation”,可以在收到针对某个特定网络套接字的请求时自动启动服务。这使得服务器可以支持那些“偶尔需要”的服务,而无须始终运行。Docker 守护进程自身曾经支持过套接字激活,不过由于与 Docker 的自动重启相冲突而将其禁用了。

Walsh 的团队对单个容器的套接字激活更感兴趣。其好处是可以消除“始终运行”容器的额外开销。但是,开发人员发现他们不得不采用与 sd_notify 变通方式类似的方法,差别在于传递的是一个套接字,而不仅仅是一条消息。他们甚至没有尝试实现。

Linux 的 cgroup 可用来定义每个服务的系统资源额度,比如 CPU、内存及 I/O 限制。Systemd 允许在初始化文件中定义 cgroup 限制,这样你就可以定义服务启动时的资源策略。但是,使用 Docker 时,这又与其 C/S 模式相冲突。Systemd 的 cgroup 设置只对客户端产生作用;不对容器实际运行所在的守护进程产生作用。相反的,每个容器都继承了 Docker 守护进程的 cgroup 设置。不过,用户可以通过 docker run 命令参数来传递 cgroup 限制,这虽然可行,但未能与系统的整体管理策略整合。

Walsh 能联系得上的唯一成功之处是日志。Docker 的日志也无法与 systemd 的 journald 协作。容器的日志输出都是在每个容器本地,一旦删除容器,所有日志将被自动清除。从安全审计的角度来看,这是一大败笔。Docker 1.9 开始支持 --log-driver=journald 开关,将日志记录到 journald 中。不过,Docker 容器默认不使用 journald,因此每次都要传递这个开关。

容器内部的 systemd

Walsh 还想在 Fedora、红帽企业 Linux(RHEL)及 CentOS 容器基础镜像中启用 systemd,部分是因为很多软件包需要 systemctl 功能以便正确安装。他一开始尝试的是使用 “fakesystemd” 来代替 systemctl,该服务用于满足软件包的 systemctl 需要,没有其余的功能。结果这会造成问题,他很快就放弃了,不过还是迟了一步,未能阻止它在 RHEL 7.0 中发布。

在 RHEL 7.1 中,该团队添加了 “systemd-container”,这是 systemd 的一个大幅度删减版本。这依然会对那些软件中需要完整 systemd 的用户造成问题,Poettering 要求容器团队进行修改。在 RHEL 7.2 中,容器具有了真正的 systemd,减少了需要安装的依赖,因此尺寸更小。Walsh 的团队正着手进一步缩减这些依赖。

根据 Walsh 所说,容器中没有 systemd 最大的问题是它“退回到了使用初始化脚本之前。”每个镜像作者都在容器内创建自己的疯狂的启动脚本,而不是使用软件包作者精心制作的启动脚本。他演示了在具有 systemd 的容器内,服务初始化是何尝的简单,创建一个运行 Apache httpd 服务器的容器,其 Dockerfile 只有三行:

FROM fedora
RUN yum -y install httpd; yum clean all; systemctl enable httpd;
CMD [ "/sbin/init" ]

不过,要在 Docker 中使用 systemd,有一个主要障碍:运行具有 systemd 的容器要求运行时要带有--privileged标记,这让它变得不安全。这是因为 Docker 守护进程要求容器运行的“服务”应用程序其 PID 永远是1。在具有 systemd 的容器中,其 PID 是1,应用程序则具有其他的 PID,这会造成 Docker 认为容器失败并将其停止。

Poettering 说 PID 1 具有特殊要求。其中之一是杀死那些被它们的调用会话所遗弃的“僵尸”进程。对 Docker 来说,这是一个真正的问题,因为应用程序以 PID 1 运行,却不处理僵尸进程。比如,运行 Oracle 数据库的容器可能在退出时会遗留几千个僵尸进程。另一个要求是写入 syslog,除非配置容器写入日志到 journald,否则将进入 /dev/null。 

Walsh 尝试了几种办法以便 systemd 在非特权容器中工作,并提交了四个不同的拉取请求(7685109941352513526)给 Docker 项目。所有请求都被 Docker 维护人员拒绝了。当 Docker 贡献者之一 Jessie Frazelle 带着印有“我对systemd 相关拉取请求说不I say no to systemd specific PRs”的名牌来到 DockerCon.EU 2015 大会时,有关这些修改的争论达到了顶峰。

Systemd与容器的未来

红帽容器团队还大量参与了开放容器项目 runC 工具的开发。该项目是开放容器组织(OCI)的实践性产出,OCI 是由 Linux 基金会于2015成立的非营利组织,目的是为容器 API 设置行业标准。OCI 还维护着 libcontainer,这是 Docker 用于启动容器的类库。按照 Walsh 所述,Docker 最终需要采纳 runC 作为其技术栈的一部分,以便在其他平台上运行,尤其是 Windows。

使用来自 runC 的成果,红帽人员已经创建了一组名为 “oci-hooks” 的补丁,为 Docker 添加了大量 systemd 支持功能。它使用一个“钩子”,可以在容器启动之后应用程序运行之前触发指定目录下的所有可执行文件。使用这种方法执行的东西中间是 RegisterMachine 钩子,它会通知宿主机上 systemd 的 machinectl 容器正在运行。用户可以使用 machinectl 命令看到所有 Docker 容器,以及 runC 容器:

# machinectl
MACHINE                          CLASS     SERVICE
9a65036e4a6dc769d0e40fa80871f95a container docker 
fd493b71a79c2b7913be54a1c9c77f1c container runc
2 machines listed.

这些钩子还允许在非特权容器里运行 systemd。这个拉取请求(17021)同样被 Docker 项目拒绝了。尽管如此,它还是包含在了红帽发行的 Docker 包中。因此,Docker 与 systemd 未来的一部分可能会涉及 Docker 的分叉。

Walsh 同时指出,cgroup、sd_notify 以及套接字激活对 runC 都是开箱即用的。这是因为 runC 不使用 Docker 的 C/S 模型;仅仅是个可执行文件。他看不到 Docker 公司与红帽之间未来在 systemd 问题上修复的突破口。Walsh 预测红帽可能会更多地转向 runC,并远离 Docker 守护进程。按他的话来说,Docker 正忙于 “containerd”,这是一个新的 systemd 替代品,将取代初始化系统的功能。

但是,鉴于自 Docker 项目启动以来短时间内 Linux 容器生态系统的快速变化,几乎不可能预测 systemd、Docker 及 runC 今后一年的关系将如何。毫无疑问的是,将会有更多的变化和冲突报道。

Greg Kroah-Hartman 于5月4日发布了最新的 Linux 内核稳定版 4.4.4 。作为 LTS (长期支持)的内核,我们很高兴地看到它再次得到了更新。

虽然过几天就要发布了 4.5 内核的正式版了,不过大部分 Linux 发行版都已经升级到了 4.4.x 内核,并且不大可能会更新到非 LTS 版本。不幸的是,没有办法知道某个 LTS 版本会被支持多久。

“Linux 内核 4.4.4 有什么新东西吗?”

Greg Kroah-Hartman 在他的邮件列表中说:“我在此宣布 4.4.4 正式发布。所有的 4.4 内核系列的用户都应该升级。更新后的 4.4.y 的 git 树可以在如下地址找到:git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 。也可以通过 Web 浏览器访问如下地址来浏览:http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary 。”

Linux 内核 4.4 带来了大量更新,包括 AMD Stoney 支持、树莓派 KMS 驱动、更好的 Skylake 支持等等。最新的版本更加稳定了,包括了大量的修正、驱动更新和一些文件系统改进。

完整的更新内容可以参见 https://www.kernel.org/category/releases.html 。

Linux 内核 4.4.4 可从此下载: https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.4.tar.xz 。

 

很多人都知道『Linux 中国』这个社区,也有不少人知道当前『Linux 中国』的站长王兴宇,但是很少有人知道它的真正的发起人和首任站长是王兴江。

很多人都看过『Linux 中国』旗下的 LCTT 翻译组所翻译的文章,但是很少有人知道这些文章绝大部分都是王兴江(@选题-DeadFire)选择内容并编排成待翻译格式的。

很多人都觉得『Linux 中国』的网站设计和用户体验还不错,但是很少有人知道这些绝大部分都是王兴江完成的。

今天,我在一个月之后又再次坐回到书桌前,为逝去的我的弟弟、『Linux 中国』的发起人与 LCTT 选题、千龙网的首席前端工程师、KOK 老玩家,写一篇悼文。

逝者已往,留下的是不尽哀伤,因此我觉得应该写篇文字出来,纪念他的一些事情。这里,我会把他和『Linux 中国』之间的那些点滴往事,拂去时光的尘埃,倾诉给所有关注他的朋友们。

『Linux 中国』的建立

说起来,我也并不太记得『Linux 中国』是从哪个具体日子开始建立的。最初,2003年的时候我就建立运营过一个名为“炎黄角马”(CNGNU)的开源社区,在运营了几年之后,随着我的工作和生活的变化,这个网站逐渐消亡了。其时,我手里有一个名为“LINUX.CN”的域名,因为没有合适的内容方向,所以一直闲置着。有一天,我弟弟,兴江,对我说,“哥,这个域名在咱手里,啥也不做,挺对不起它的”。我查了一下所有 .CN 下的几个 LINUX 域名,均处于闲置状态,感觉颇为羞辱——我不是为了做米虫才注册这个域名的啊,因此赞同我弟弟的想法,至少,应该做些什么出来。但是当时确实不知道该做成什么形式的,也没有明确的内容,因此,就先在这个域名下搭建了一个论坛,并由兴江进行运营。这个时间大约是在2010年。从心理上,我希望它能延续“炎黄角马”的传承,但是,实际上,它是一个新的开端。而这个开端是由王兴江所开创的。

刚刚开始,一个空空的论坛,其实也没什么人来,虽然总会有一些人试着输入这个域名而偶然到来。因此,他就利用业余时间,将一些相关的内容搬运到论坛来。是的,是“搬运”,刚开始运营时,对如何做合规的内容传播也不甚了然,转载内容时,也没有留下完整的来源链接、作者等等信息。此外,虽然他的英文不甚好,但是也会将一些国外开源网站方面的英文资讯,通过翻译软件辅助,摘要编译过来一些,虽然还有些谬误不足,但是终究是能有些原创的内容。现在想起来,这应该算是 LCTT 的原型了。就这样,筚路蓝缕,『Linux 中国』也慢慢开始有一些内容了,有一些访客和注册用户了。

这样运营了一段时间后,感觉当时所采用的 IPB 论坛并不太适合国内访客的习惯,于是就将整个论坛迁移到了 Discuz! X 平台上了,并将 DX 的内容门户功能用了起来,形成了以内容门户为面,论坛为里的模式。这次迁移改版,样式与风格的调整都是由他独立完成的,在保持 DX 风格的基础上,做了一些定制,这对于他的职业技能来说,简直是最恰当的。

后来也历次升级过 DX ,逐渐改变过『Linux 中国』的 CI(LOGO 和主色系等),这些也都有赖于他的工作。

LCTT 的选题

几年前的某天,我有感于中文的 man 手册太过于破烂,因此想组织一些人手来翻译重要的 man 手册,遂在 QQ 群内发起了成立翻译组的倡议。虽然后来因为种种原因,这个名为 LCTT 的翻译组并未将 man 手册翻译的项目完成,但是却翻译了上千篇英文的各种技术文章、新闻评论等等,LCTT 也成为国内有数的大型翻译组,甚至得到了海峡对岸的关注。

LCTT 的翻译取得了卓越成效,前后曾经有数百人参与过翻译、校对等工作,但是这里所翻译的99%以上的文章,都是由王兴江独立进行选题,并将选题内容编排成 Markdown 格式,放到 github 上的项目中。虽然每篇文章中都会留下“译者”、“校对”等信息,但是从来不会留下“选题”人的信息,因此,他在整个 LCTT 中做了最多的默默无闻的工作。如同另外一位 LCTT 中的核心译者一样,他也很少在 LCTT 中说话,因此大家知晓他的工作的人并不多。

在去年底他开始病倒时,限于身体状况,他已经无能为力进行选题工作了,因此 LCTT 中一些译者开始反映没有新选题内容了,这时候大家才意识到,选题的工作停顿了。后来,因为我也需要照料他,将 LCTT 中的一些工作逐渐托付给了别的成员,才使 LCTT 能够持续运作下去。

各界的哀念

兴江过世后,我在『Linux 中国』的网站、微博、微信上发布了讣告。很多『Linux 中国』的朋友们都对他表达了无尽的哀悼,这里我摘取部分列在下面:

来自『Linux 中国』网站的悼念留言

来自网站的评论有三百多条,摘录其中部分如下:

阿弥陀佛!身体有生灭,生命无止息。故人生平多益于人,来生定有美好因缘。家人节哀!众人节哀!继承未尽事业,继续造福于人,让幸福与安康与世长存!愿每个人都平安,健康!照顾好家人,照顾好自己!
—- 来自北京的 Baidu Spark 8.1|Windows 7 用户 2016-3-2 13:59

Linux 中国给我这样一个初学者很多技术上的帮助,感谢为开源事业默默奉献的人,一路走好。
—- 来自北京的 Liebao|Windows 7 用户 2016-3-2 00:17

一路走好,生者当继续努力,linuxcn加油
—- 来自广东广州的 Firefox 44.0|Ubuntu 用户 2016-3-1 19:42

虽然只是个路人,即使不认识的我也觉得难过,生命是短暂的,更何况还在人生的大好年纪。这更提示我们不仅要会搞技术,也要注意自身的加强。有个好的身体才能继续钻研自己喜欢的。在此,愿逝者安息,活者健康。
—- 来自福建厦门的 Chrome 47.0|Windows 7 用户 2016-3-1 16:14

很难过,早上一到办公室就看到这个消息,不知道该说些什么,愿逝者安息。
—- 粱小无拆 [Chrome 45.0|Windows 7] 2016-3-1 10:15

祝先生在天堂不再经历病痛,节哀
—- 来自广东深圳的 Chrome 44.0|GNU/Linux 用户 2016-3-1 10:07

前辈们,我希望并且一定要继承你们的精神,好好写代码,为开源社区做出更多的贡献
—- 来自湖北武汉的 Chrome 48.0|GNU/Linux 用户 2016-3-1 09:59

一路走好,愿天堂里再无疾病。
—- 来自北京的 Chrome 48.0|Windows 10 用户 2016-3-1 09:44

不知如何表达此时的心情。 中国Linux界的损失,你走了,我们会继续!!!
—- qiyebb [Sogou Explorer 2|Windows 7] 2016-3-1 00:15

年轻有为却英年早逝,一路走好。
—- 来自广东中山的 Chrome 48.0|Windows 8.1 用户 2016-2-29 22:30

一路走好,感谢其为linux所做的贡献
—- 来自河南郑州的 Microsoft Edge 13.10586|Windows 10 用户 2016-2-29 20:58

一路走好!愿您在天堂里永无病痛,Linux永远陪伴您!感谢您为Linux世界作出的贡献!
—- 来自湖南长沙的 Firefox 44.0|Fedora 用户 2016-2-29 18:48

唉,终于能休息了
—- 来自北京的 Liebao|Windows 7 用户 2016-2-29 14:49

哥哥一路走好,哥哥从不愿麻烦别人,连走的日子都要四年才有一次,哥哥在天堂一定还是个快乐的大男孩,喜欢小猫,真诚爱你身边所有的人,我们来世还是好朋友、好兄弟…………
—- 来自北京的 Chrome 45.0|Windows XP 用户 2016-2-29 14:00

沉痛悼念,一路走好,愿赴心中乐土,逝者安息,生者坚强!
—- netb2c [Chrome 46.0|GNU/Linux] 2016-2-29 13:41

来自『Linux 中国』微博上的悼念留言

来自微博上的评论有三百多条,转发上千,摘录其中部分如下:

[蜡烛][蜡烛][蜡烛]节哀。同时,感谢每一位为linux的发展作出贡献的朋友。
—- @温兰如风 2月29日 12:29

一路走好,愿天堂没有bug[蜡烛]
—- @ChongqingLUG 3月1日 09:58

王先生一路走好[蜡烛][蜡烛][蜡烛]
—- @Nunu也叫DoubleNu 3月1日 09:57

上帝又缺程序猿了
—- @TacYeh 2月29日 22:09

节哀。同时,感谢每一位为linux的发展作出贡献的朋友。愿天堂没有BUG!
—- @浪里个男 2月29日 19:14

一路走好,[蜡烛][蜡烛][蜡烛] ,天堂是高尚人们的归宿 !亲属节哀 。
—- @xbatu 2月29日 15:31

走好,感谢为linux在国内发展做出的贡献![蜡烛][蜡烛][蜡烛]
—- @皮皮的爸爸V 2月29日 15:28

[蜡烛]即便于是长辞,这世间也依旧会流传着关于你的传说
—- @林韦杰- 2月29日 15:08

[蜡烛]信息无限,人生有限,你我都珍重
—- @青藤云安全 2月29日 15:03

生命倏与忽,如梦亦如露…[蜡烛]
—- @我爱笨兔兔ibentutu 2月29日 14:48

王先生原来在我公司工作过一年。一路走好吧
—- @树人_老何 2月29日 14:09

才多大啊,好可惜
—- @老麦煮机 2月29日 14:08

天堂一路走好!
—- @薄荷开源网 2月29日 14:04

愿其在心中的乐土安详,哀哉尚飨。
—- @IDF实验室 2月29日 13:55

发育不良的国内开源社区,失一悍将矣,哀悼并感谢。一路走好。
—- @2011小小兵 2月29日 13:50

这是中文开源社区的一大损失
—- @类星体-KARAS 2月29日 13:46

真没想到,我们煤矿有这么优秀的人才。[蜡烛][蜡烛][蜡烛][蜡烛][蜡烛][蜡烛][蜡烛][蜡烛][蜡烛][蜡烛][蜡烛]
—- @烟花三月4817 2月29日 13:39

感谢每一位为Linux发展做出贡献的人。
—- @明日隔了天涯 2月29日 13:03

逝者安息,生者节哀。[蜡烛]
—- @2gua 2月29日 12:49

[蜡烛] 我们都应该拥有一个 bug 可修复的身体!
—- @稀土圈 2月29日 12:45

身为程序员的我们,更应定期全身检查,劳逸结合。经常锻炼,告别亚健康。愿逝者安详。
—- @百问科技 2月29日 12:22

[蜡烛]惋惜啊,技术的同道中人,节哀
—- @Linux大棚官方微博 2月29日 12:06

此外,还有 @清风博主 @伯乐在线官方微博 @BG4XTL计算机图书编辑 @高春辉 @图灵教育 @developerWorks @实验楼官方微博 @伯乐在线官方微博 @火狐 @linux命令行精选网 @图灵李洁 @玟茵开源 @杨进春 @Easy @JS小组 @罗云社 @Laruence @网路游侠 @老赵 @梁斌penny @一米阳光_Aaron @IT技术博客大学习 @_啊D_ @i_春秋 @PHP-Z @葙守小子 @响马 @Docker精选 @蜗牛rider @eli-lien @咚咚馄饨面_sk 以及很多人也纷纷表示了悼念。

来自『Linux 中国』微信上的悼念留言

来自微信公众号上的留言有五百多条,摘录其中部分如下:

愿在天堂安好, 愿您的 linux 精神永世传承
—- 神·Cifer 2016-03-02 23:29:42

既痛且惜!少了一个同道中人!我从小白开始接触Linux中国,至今为止受到莫大的帮助。可惜竟然没有机会向幕后的工作者致意。愿往生者安息!Linux中国化这未竟的事业,是我们每个爱好者的责任。势必从我做起,力求将Linux精神发扬光大。
—- 朱江云 2016-03-02 21:45:58

看到这个消息我很难过,很能感到你们兄弟经历的苦难!节哀 希望你作为哥哥保重身体!
—- (˶‾᷄ ⁻̫ ‾᷅˵)choooose✨ 2016-03-02 19:33:50

愿兄弟你在天堂过的无忧无虑
—- 大刀 2016-03-01 21:48:09

帮过我那么多,感谢还没表达,我本想等有无线在和他多聊会天,人生来不及等待。
—- 仓皇北顾 2016-03-01 20:06:39

追逐梦想,不离不弃; 知识长存,精神永恒。
—- 李晓乐 2016-03-01 15:50:21

感伤笔触,心灵震惊,请节哀珍重。生死之后莫忘希望。生命的终结只是一个新的开始。愿一切的一切轮回中继续延续人类的奇迹。加油为逝者完成未完成的,加油为生者继续下去。
—- 一丹 2016-03-01 05:23:10

恩师多年前推荐的这个网站 自那以后 闲暇时刻常会驻足这里学习 分享 ,仿佛已成为一种习惯 !看到这则消息不免心生痛惜。兴江先生 愿您安息!也祝愿各位幕后的英雄们身体健康 一切安好!
—- 王晓峰 2016-02-29 22:11:03

很沉痛,愿兴江哥哥一路走好
—- disylee 2016-02-29 21:56:41

完全不敢相信,以前经常在四惠换乘时遇到王老师,一路说说笑笑一起坐地铁。去年换新系统时,随时跑到他座位问这问那,没有他回答不了的技术问题~没想到一切都来得这么突然,mo-流泪mo-流泪mo-流泪mo-流泪mo-流泪
—- 一 2016-02-29 21:08:07

兴江老弟,一路走好!听到你的消息!为姐心里特别难受,心情特别沉重!愿你在天堂那边没有痛苦!快乐生活!
—- 自由女神 2016-02-29 21:05:20

走好,请兴宇节哀。再过几十年,在对岸,我们一起相聚。
—- 肖力 2016-02-29 20:48:55

南无阿弥陀佛,南无阿弥陀佛,南无阿弥陀佛。愿你离苦得乐,早生净土。
—- Kevin 2016-02-29 20:17:02

老王,一起工作多年的同事,愿你一路走好,平安天堂.…
—- zaze 2016-02-29 20:00:05

逝者已矣,希望兄弟你能把他所热爱的事业做下去,挺你
—- 不忘初心 2016-02-29 19:35:55

节哀!
—- 喻勇@DaoCloud 2016-02-29 19:08:14

自从关注该公众号,一直受益颇多。非常感谢发起人。虽从未见过,但祝您一路走好
—- 王 2016-02-29 17:29:19

有的人走了 其实他还活着~
—- 杨志强 2016-02-29 15:46:21

linux将星陨落天地悲泣.安息吧!
—- 奇点纠缠 2016-02-29 13:01:34

感谢 Linux 中国 曾经一路有你,大家都会永远记得你的,特别像本人这样离不开网络、使用多系统的用户。
—- 进士小站 2016-02-29 12:53:41

何以多离别,唉
—- Raphael 2016-02-29 12:49:55

愿他一路走好,愿社区不负他。
—- Yan。 2016-02-29 12:34:32

天妒英才,继续在天堂把linux发扬光大!
—- vividesign 2016-02-29 12:27:31

走好,兄弟。mo-抱拳
—- Michael 2016-02-29 12:26:21

一路走好,愿天国没有病痛mo-流泪
—- 痞子谭 2016-02-29 12:25:59

兄弟走好。
—- 戚连民 2016-02-29 12:18:16

王大哥,我们会时常想你的。mo-流泪mo-流泪mo-流泪
—- 马琳 2016-02-29 12:16:41


呜呼,逝者已往,身后留下多少不尽的遗憾。愿我以此文,能铭记我的弟弟王兴江的那些默默做出的贡献;愿我以及更多的人,秉承他的遗志,将他留下的『Linux 中国』和 LCTT 中的工作继续下去。

我的弟弟,走好!

兄王兴宇泣笔

二零一六年三月二日