上周末参加了今年的Linux内核开发者大会,顺手记下了一些东西。完整的文章见第三度网站(http://www.disandu.com/?p=165 )。

---------------------------------------------

今天是个特别的日子,中国Linux内核开发者大会在中关村的中科院文献情报中心举行。两周前网上报名了,一大早起来查公交路线,大致看了一眼地图 就上路了,没想到忙中出错,坐错了路线。一车搭到中关村医院就迷路了,问了两个出租车司机都不知道位置。还好碰到一位慈祥的老奶奶,她是中科院的退休职 工,很热心为我指路,感觉很温暖,中科院的形象在我心中又上了一层楼。

进到情报中心的楼里,见到几个Intel的开源志愿者,上交了邀请函之后居然给了我一张午餐券,要知道参加这次会议是免费的,再次感动中。。。

来到会场已是九点半,错过了宫敏博士的致辞。进入会场,只见三百人的报告厅被装得满满当当,看来在国内有越来越多的人开始关注Linux与开源软件。

第一场是来自Intel开源中心的吴峰光开讲Linux的页面调度机制,之前没接触过这块内容,前半部分讲座也没赶上,加之全英文的slide,这 场听得头都大了。吴峰光衣着朴素,演讲声音也不大,所以这场下来并没感觉到吴博士的气场,后来才知道,他是位大侠,这里先按住不表,或许真正的大侠都是低 调的。

第二场是来自Ubuntu的工程师的Eric Miao缪宇成讲述Git版本管理系统,众所周知,Gitb是Linus近几年亲自操刀设计实现的版本管理系统,Git 也是用于 Linux 内核开发的版本控制工具。之前参加Perl Workshop时就看见很多牛人都喜欢把项目放到GitHub网站上,想必是Git很先进。Eric很年轻,身着一件土黄色Ubuntu主题的短袖T恤 登上讲台。他一上台,会场就有一些人开始惊呼 “Ubuntu” , 的确, Ubuntu系统有着很深厚的群众基础,像我的电脑上就只安装着Ubuntu操作系统。 Eric演讲之前问了四个问题,分别是:

  • Q1: Ubuntu代表什么意义?
  • A1: 与人为善(Human to others)
  • Q2: Ubuntu发行版本号所代表的意义?
  • A1: 年份+月份
  • Q3: Ubuntu 9.10的正式发行日期?
  • A3:09.10.29
  • Q4: Ubuntu下一个版本(10.04)的代号?
  • A4:lyns

接着Eric演示了Git的使用方法和常用命令。Eric演示了Ubuntu下安装Git和Git的常用命令, Git的安装很简单:sudo apt-get install git-core。常用命令和CVS、SVN也差不多,无非是init、add、status、commit、checkout,但Git也有一些新东 西,git config、 clone、reset-hard、rebase。Eric着重讲了Merge和Rebase的区别,简而言之:上游做Merge,下游Rebase。演 示过程中,Eric不时打开Git的GUI工具Gitk显示分支关系。其中 还演示了基于Git的Web管理界面,Eric特意在内核代码的管理界面中输入了吴峰光吴大侠名字,结果显示有上百处理修改,不简单。

这场讲座过程中,最令人称奇的是Eric的一心多用:只见他右手运指如飞,左手握住话简,双眼紧盯大屏幕,而且还用非常快的语速讲解他的动作。我现在还弄不清Eric怎么能用一只手那么快的打字,应该是熟能生巧吧。下午散会后,我跟Eric有过交流,很好的一个人。

上午最后一场是来自Oracle的资深工程师马涛讲述他所参与的项目–OCFS2(http://oss.oracle.com/projects /ocfs2/), 这是一个Oracle主导用开源方式开发的集群文件系统。我对这个项目不了解,但记住了马涛讲述的几个细节。他说自己接触Linux内核的时间不长,但加 入内核开发并没有想象那样难,他的第一次提交仅仅是在内核代码中删去了几个不用的变量。他还说文件系统开发其实是进入内核开发领域最容易上手的一块内容, 因为文件系统的开发比较独立,上层有VFS、MM这样的粘合层屏蔽了上层的复杂性。另外,马涛也与Linus打过交道,他想项目中的reflink函数提 交成一个2.6.32内核的系统级API,不幸被Linus拒了,原因是做得还不够好,看来Linux内核开发真如传言那样由Linus老大控制。马涛的 声音比较低沉,整场下来没听清多少,但还是感觉他是个很实在的人,如吴大侠般低调,他也多次提及了吴大侠的名字。

上午的互动环节中,台下提了一个问题,多核进程写交换分区时怎么确定最后的写者来自哪个核,引来众多大牛抢着回答。最后是宫敏博士从CPU的缓冲机 制给出了定论,宫博士的意思好像是多个核看到的是一个缓冲区,而写到交换分区的是缓冲区的内容(这一点还请各位指正)。宫博士作为中国Linux界的元 老,技术实力不容置疑,而从现场的情况来看,他的表达能力和话题掌控能力也是超一流的。

中餐在中科院力学餐厅,伙食不错,不过我发现周围一些程序员改吃素了,现代人有时候很矛盾。

下午第一场是来自富士通南大的归剑峰讲述Linux IO控制器,IO Controller是Linux内核中的一个CGroup子系统,该子系统根据不同进程组的磁盘访问权重来控制进程组对磁盘的访问速度。这个子系统目前 还在开发中,暂时还没有被加入Linux内核。他解释IOController的概念,简而言之就是按比例分配带宽。IOController可以分别按 虚拟机、用户、进程、和latency of concurrency参照三个因素(priority、weight、policy)的权重来分配IO带宽,目前他们的实现还不能调度逻辑设备和分区 (partition)的IO带宽。

终于来到张衍民大哥的讲座,他从第一场讲座开始就在台下按耐不住,不停地向台上讲者开炮,我还误以为他来自倡导狼性文化的公司,直到他作自我介绍,原来是 Intel开源软件中心的高级工程师,上台后便声明自己不是博士。张大哥很有激情,声音大还有点小幽默, 不过讲述的内容稍欠组织,内容不少但没什么逻辑。他讲述的主题是Linux 性能测试方面的。Linux每一版本的新内核都会合并成百上千的补丁。为了避免内核的性能受到影响,他们会用数十个测试程序跟踪内核性能,及时发现并解决 潜在的问题。在讲解了几个工作场景、提及N个知名的不知名的Benchmark程序之后,他发现时间不足,后面一些涉及吴大侠工作的部分也没来得及讲。这 一场基本没听懂,或许中国Linux社团还缺少兼具激情与表达能力的工程师。

下午第三场是来自Novel公司的胡欣蔚讲述deviece map的今生前世。这场讲座之前居然出状况了,胡欣蔚的PDF文档用Ubuntu的文档查看器打开时竟然不能显示中文,而胡工作为Linux忠实用户拒绝 使用Windows,只得用残缺的演示稿讲了十来分钟,后来在台下工作人员和听众的强烈要求下,只得临时换用Windows操作系统,于是出现了很有讽刺 性的一幕:Linux技术会议,一位Linux大牛使用Windows平台向Linux开发者讲述Linux内核系统。这也说明大会的准备不足,或许是内 核大牛们也没有深谙Linux桌面应用。其实解决方法很简单,用Linux版的Adobe Reader打开文档就能正常显示(看到过会场中的Ubuntu电脑安装有Adobe Reader)。Ubuntu默认文档查看器对中文字体支持不好,经常用Ubuntu的人都知道这一点,当然,我也是今天下载了这个PDF才知道原因。

胡工介绍的Device mapper是Linux 2.6内核中引入的一个对块设备进行映射的通用框架。现在device mapper最重要的使用者,是lvm2和multipath。另外还有dm-crypt, kpartx, dmraid等等。利用这个框架能做什么? 我记得是做Snapshot、选择合适的存储路径。胡工颠来复去的讲DM和MD,DM就是Device map的缩写,MD则是Multi disk,MD专注于RAID。dmraid则是dm+md的组合,开源的东东总是这么有意思。胡工这一场讲得很清楚,演示稿也很整洁,我似乎听懂了一 些,但没有与结合实际应用来讲,内容有些虚。

最好经常会留在最后,这次技术会议也是如此。来自澳洲的华人Herbert Xu带来压轴专题–Linux上的万兆网( 10GbE on Linux)。Herbert Xu(http://gondor.apana.org.au/~herbert/)被人称作是网络开发领域最牛的华人。也曾听过Herbert的爱国之 举,04年他因为不満Debian发行包对台湾省的命名而愤然离开Debian社区。Herbert的声音清晰而宏亮,虽然旅居海外,但讲座时仍用纯正的 中文。Herbert的演示稿是英文的,白底黑字很简练,逻辑性也很强,整场下来起承转合,听着很舒服。Herbert讲的这个应该是最前延的技术,这一 场因此带点学术讲座的味道。他首先介绍了当今计算机领域的两大趋势:高速网与多核,对于这两大发展趋势,传统计算机软硬件面临两大挑 战:Packetisation(传统包机制)和Synchronization(同步性,与多核有关的)。接着围绕着这两个问题,Herbert开始谈 各种解决之道。TCP/IP因为互联网而被应该得很广泛,它太成功了,导致了它难以改变(看看IPv6的推广进展吧)。包机制作为TCP/IP的核心也不 能在网络底层被改变。那改变从何而来,改变来自上层,上层软件应用TSO(TCP Segmentation Offlad)技术使用64KB甚至是更大的MTU,到下层时为适应TCP/IP再做包切分。 Herbert对各种网络技术尤其是TCP/IP信手拈来,他中间讲道:“我问一个Linux开发人员为什么要用Linux做开发,他说因为Linux操 作系统有着最好的TCP/IP网络栈实现“。

包机制的改造相对于同步性问题带来的挑战要容易解决,同步(多核)的问题来源于网络多缓冲列。在多核计算机中,单缓冲队列的网络机制显然是系统的处 理瓶颈,所以在万兆网中,采用了多缓冲队列的机制。多队列却带来了一个棘手的问题:接收与发送方的控制权不同,发送方的控制权在硬件上层的操作数据,接收 方的队列选择权却在网卡,这样造成一个包在接收时无法判断该放在哪个队列。一种解决办法是网卡制造方制定统一标准,采样同样的机制来确定接收队列号,这样 做法在现实世界中遇到困难,硬件厂商如此之多,还有数以亿计的历史资源。怎么办? 近期Google的Hu提出一种方法:用软件模拟多队列,这种技术称作软件重定向。用这种方法结合适当的硬件解决方案是基本能解决网络多队列问题的。 Herbert的演讲还反复提到了NUMA(非一致性内存读写)技术,简而言之就是每一个核独享一块内存,内核处理自己的内存比别的内存要快。NUMA与 Herbert提及的其它内容的关联关系,目前我没还理清。

听完Herbert的演讲就到了最后的听众提问环节,技术的问题我都没映象了,只记最后一个问题是“为什么像Intel、Oracle这样的大公司 要大力支持开源软件?” 这个问题本要宫敏博士回答,那时宫博士已经离座。前排一个人回答了这个问题,他回答的大意是:开源作为了一种新的开发方式,在很多方面都取得成功。开源开 发方式有利有弊。利用这种方式开发软件能够吸收到很多来自社区的人才支持,这种相对传统软件开发方式,系统的成熟得比较慢。其中的一句话很有意思 ,”开源软件是不需要封闭开发的“,我想在公司做软件的同行最不想看到的一个软件项目被逼到封闭开发的地步。我的理解是这些公司是想通过开源软件来吸收大 众的智力,利用开源方式开发软件能降低成本更能降低风险,这一点是非常有意义的,尤其是在这个充满危机的时代。总之,开源是软件开发的一种趋势,未来的世 界将变得更平,开源是促进这个过程不断发展的一种力量,Linux内核则是开源软件这根大树上结出的一朵奇芭。

这次大会的流水帐就记到这里了。通过这次大会,我们又一次看到开源软件与Linux在国内的进一步发展。这里借<<硅谷商战>>一书中最后一段话来结束本文。

“我们不应该满足于简单的照搬,我们要学会掌握其中的游戏规则,这样才能采取主动, 人家做出个什么来,我们去做个中文版 ,这固然需要,但是我们能不能按照这些新的思路,尝试一些别人没有做过的别人来超我们,无论是技术上,还是经营上,中国人都有很多聪明的人,我们研究好了 游戏规则就有可能打败对手。我们如果能够让人家按照我们的游戏规则来办事,我们就有了主动权。”

thinkhy 09年10月下旬写于上地

[活动]2009年Linux内核开发者大会参与记录相关推荐

  1. Linux 内核开发者完成了对所有来自 UMN.edu 补丁的审查

    导读 前段时间,明尼苏达大学被禁止为 Linux 内核做贡献,因为该大学的研究人员被发现试图通过新的补丁故意向内核提交错误,而使这个过程作为一篇有问题的研究论文的一部分这种不诚实甚至恶意行为而引发轩然 ...

  2. 如何成为一个Linux内核开发者

    你想成知道如何成为一个Linux内核开发者么?或者你的老板告诉你,"去为这个设备写一个Linux驱动."这篇文档的目的,就是通过描述你需要经历的过程和提示你如何和社区一起工作,来教 ...

  3. 1024,第 15 届「中国内核开发者大会」 参会指南(议程全剧透)

    各位好,第 15 届「中国内核开发者大会」即将开幕,这些参会指南请提前收藏好: 2020「中国内核开发者大会」(以下简称 CLK)将在 2020 年 10 月 24 日举办,线上线下同步进行,线上由 ...

  4. 牛群:Linux内核开发者峰会照的全家福

    刚才看到一张Linux内核开发者峰会照的全家福,有历史价值,给大家分享一下.上面有Torvalds(大致在中间).Andrew Morton(目前的内核主要维护者,第二排右数第二个).Alan Cox ...

  5. 2011中国移动开发者大会参与感悟

    2011中国移动开发者大会 2011年11月1日,怀着激动的心情,我们坐上了去往北京的列车,参加2011中国移动开发者大会.出席本次开发者大会的有李开复.张亚勤.雷军等众多业界知名人士,还有众多来自不 ...

  6. 2017 Google 开发者大会全记录

    2017 年的 Google 在中国刷了好几个记忆点,从五月乌镇 AlphaGo 与中国顶尖棋手的终极对弈,到欧阳靖为 Google 翻译专门创作了 MV 大片,再到十二月今日的上海,2000 多位开 ...

  7. 如何更方便的查看Linux内核代码的更新记录

    Linux内核的更新非常的快,如何快速的了解这些更新呢?最一般的办法就是把新旧版本的内核源码下载下来,然后利用BCompare或别的什么工具进行源码对比,但这明显比较费力耗时,而本文将介绍一种更快捷简 ...

  8. 【GDD】2018 Google 开发者大会 Day1 记录

    2018 谷歌开发者大会 时间:2018年 9月 20日 - 21日 地点:上海世博中心 报名渠道:Google开发者 微信公众号 费用:免费 复制代码 行程安排 2天行程,12个主题,60次演讲 复 ...

  9. 中国LINUX内核开发大会 ppt演讲资料 与 会议视频

    http://www.ckernel.org/ http://pan.baidu.com/share/home?uk=2086779999&view=share#category/type=0

  10. 阿里百川无线开放大会参与记录

    2019独角兽企业重金招聘Python工程师标准>>> 参会方:华西都市报.创客中国.高新区创新中心 .苏河汇.36kr.Camera360.阿里百川.友盟 上午主会场 一.高新区创 ...

最新文章

  1. 计算机网络分为两大阶段,【多选题】计算机网络的发展分为哪些阶段?() A. 远程终端联机阶段 B. 计算机网络阶段 C. 计算机网络互联阶段 D. 信息高速公路阶段...
  2. python条件赋值
  3. LVQ,Learning Vector Quantization,学习向量量化
  4. 苹果6软件服务器验证失败是怎么回事,iPhone6手机出现验证错误怎么办?
  5. 全局变量定义的时候左侧加了static_c语言中static 用法
  6. mysql 锁监视器_MySQL锁监视器
  7. 数据结构中的7种排序算法
  8. ServletRequest--从html页面获取信息
  9. CMAKE Opencv配置
  10. html黑洞效果,HTML5 Canvas炫酷宇宙黑洞引力特效
  11. 计算机怎么快速查找应用,win10系统如何快速查找应用?win10系统快速查找应用的方法...
  12. LiveNVR安防监控直播中无插件web直播方案中实现快照抓取的功能
  13. 腾讯云云硬盘快速入门-挂载云硬盘
  14. 【已解决】PyLaTeX 编译中文出现乱码
  15. 百度智能云 x 民生银行 | 智能+创新,数字化运营再升级
  16. 爬虫实战-python爬取QQ群好友信息
  17. 加速代理游戏,让指定进程走代理网络,驱动级SOCKS5代理使用方法。
  18. python练习-字符串加密解密
  19. Ubuntu下为Firefox安装Adobe Flash Playe
  20. VIRTUALLAB FUSION中马赫曾德尔干涉仪的真实与理想分束器

热门文章

  1. 第一章:Activiti工作流教程
  2. 在JavaScript中使用Octet Streams
  3. 用JS写了一个30分钟倒计时器
  4. vue 前端仿QQ截图实现Web端自定义截屏(JS版)
  5. NVIDIA 460.79版显卡驱动发布:全力优化《赛博朋克2077》
  6. FLV格式转换成MP4格式使用什么软件好
  7. 最新wifi大师小程序独立版3.0.8源码
  8. Service Mesh框架选型对比分析:Linkerd、Envoy、Istio、Conduit
  9. Ubuntu下locale命令路径无法找到问题解决方法:Cannot set LC_CTYPE to default locale: No such file or directory
  10. Ubuntu配置locale