位置: IT常识 - 正文

浅谈25年Linux内核开发经历总结出来的九条经验

编辑:rootadmin
这篇文章主要介绍了浅谈25年Linux内核开发经历总结出来的九条经验,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考下... 18-01-16

推荐整理分享浅谈25年Linux内核开发经历总结出来的九条经验,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

原文:9 lessons from 25 years of Linux kernel development作者:Greg Kroah-Hartman翻译:雁惊寒

Linux内核社区在2016年庆祝了成立二十五周年纪念,许多人来问我们这个项目经久不衰和成功的秘诀。我一般会先笑笑,然后开玩笑地说,我真的不知道已经经历了25年。这个项目一直都面临着分歧和挑战。但是,严肃地说,我们能够做到这一点与社区在反思和改变上的能力有着很大的关系。

大约16年前,大多数内核开发人员互相之间从来没有见过面,我们只是通过电子邮件进行联系,所以Ted T’so提出了内核峰会的想法。现在,内核开发人员每年都会聚在一起解决技术问题,更重要的是,回顾一下在过去的一年里我们做了哪些对的事情,又犯了哪些错误。开发人员可以开诚布公地讨论相互之间如何进行交流以及开发流程如何运作。然后,我们会改进流程,我们会开发像Git这样的新的工具,不断地改变我们的合作方式。

虽然我们现在尚未完全认识清楚Linux内核成功的所有关键原因,但目前还是有一些经验值得拿出来分享的。

1. 更短的发布周期很重要

在Linux项目的早期阶段,内核的每个主版本需要好几年发布一次,这意味着用户需要等待很长时间才能享受到新功能,这对于用户和经销商来说是相当令人沮丧的。而且,更重要的是,这么长的周期意味着需要一下子集成大量的代码。把这么多代码合入一个版本里,压力也是很大的。

更短的周期可以解决所有这些问题。新代码能够在更短时间内合入到稳定版中。将新代码集成到几乎稳定不变的基线版本上,使得能够在对系统产生极小影响的情况下引入根本性的变化。开发人员知道,如果他们错过了这个发布周期,两个月内还会有另外一个,所以他们很少会过早地合入代码。

2. 流程的扩展需要一个分布式的分层开发模型

很久以前,所有的变更需求都会直接转到Linus Torvalds手中,但这很快就被证明是不合适的,因为没有哪个人可以全面掌握像操作系统内核这么复杂的项目。很早的时候,内核不同领域的维护者们就提出了一个想法,就是把内核的其中一部分分配给熟悉该领域的人。例如,网络、无线、像PCI或USB这样的驱动程序子系统、或者像ext2或vfat这样的文件系统。然后再扩展到由数百名维护人员负责代码审查和整合,从而使得能够在不牺牲产品质量的情况下,在每个发布的版本中都包含成千上万的变更。

浅谈25年Linux内核开发经历总结出来的九条经验

3. 工具的重要性

内核开发一直在试图扩大开发人员的范围,直到BitKeeper这款源代码管理系统出现,几乎在一夜之间社区的做法发生了改变,而Git的出现带来了又一次的飞跃。如果没有合适的工具,像内核这样的项目将无法正常运转,从而会被自身的重量压垮。

4. 强大的舆论导向模式很重要

一般来说,如果一个开发大咖拒绝了某个提交上来的变更,那么这个变更将不会被合并进去。如果开发人员发现自己在几个月前提交的代码在邮件列表中被拒绝了,那是非常令人沮丧的。但这也保证了内核开发可以适应大量的用户和问题。没有哪个用户社区能够以牺牲其他群组为代价而进行变更。我们有一个可以支持从微型系统到超级计算机的代码库,它可以应用在很多场景上。

5. 强大的“无回归”规则也很重要

大约在十多年前,内核开发社区承诺,如果给定的内核在特定的环境中能正常运行,那么所有后续的内核版本也能在这个环境中正常运行。如果社区发现某个变更导致了其他问题的出现,他们会很快地解决这个问题。该规则承诺用户:系统升级不会破坏他们原来的系统。 因而,维护者很愿意在开发新功能的时候延续这个内核。

6. 公司参与到开发流程中来是至关重要的,但没有哪家公司能够主导内核开发

自2014年12月版本号为3.18的内核发布以来,有将近500家公司的大约5062名个人开发者为Linux内核做出了贡献。大多数开发人员因为他们的工作而得到了报酬,而他们所做的变更是为他们所在的公司服务的。但是,尽管任何一家公司都可以根据具体需求改进内核,但是没有哪家公司可以主导开发去做伤害别人或者限制内核功能的事情。

7. 项目中不应有内部界限

内核开发人员必须专注于内核的特定部分,但只要修改是合理的,那么任何开发人员都可以对内核的任何部分进行修改。从而,问题在产生的时候就会被解决掉,而不是规避掉。开发人员对整个内核有很多各种各样的看法,即便是最顽固的维护者也不能无限期地搁置任何指定子系统中所必需的改进。

8. 重要的功能是从一点一滴开始的

原来的0.01版内核只有10000行代码; 而现在每两天增加10000多行。开发人员现在添加的一些基本的、微小的功能未来可能会发展成为重要的子系统。

9. 综上所述,25年的内核发展历史表明,持续地合作可以带来共同的资源,这不是单单某个小组能够开发出来的

自2005年以来,来自1300多家公司的约14000名个人开发人员对内核做出了贡献。因此,Linux内核在很多互相之间有激烈竞争关系的公司的努力下,发展成为一个规模庞大的公共资源。

以上就是电脑学习网分享给大家的关于浅谈25年Linux内核开发经历总结出来的九条经验的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

本文链接地址:https://www.jiuchutong.com/zhishi/274336.html 转载请保留说明!

上一篇:Linux中的文件压缩命令tar与rar的用法总结(linux系统文件压缩命令)

下一篇:U盘装机大师 U盘启动盘制作教程(U盘装系统图文教程)(u盘装机大师怎么用)

  • 苹果ipad的学生模式怎么开启(苹果ipad学生优惠怎么使用)

    苹果ipad的学生模式怎么开启(苹果ipad学生优惠怎么使用)

  • 微信拉黑对方知道吗(微信拉黑对方知道吗能微信提醒吗)

    微信拉黑对方知道吗(微信拉黑对方知道吗能微信提醒吗)

  • 电脑怎样截屏保存到桌面(电脑怎样截屏保存图片)

    电脑怎样截屏保存到桌面(电脑怎样截屏保存图片)

  • 腾讯会议怎么关闭别人的声音(腾讯会议怎么关闭麦克风)

    腾讯会议怎么关闭别人的声音(腾讯会议怎么关闭麦克风)

  • sony wf-1000xm3怎么配对(sony wf-1000xm3怎么连接电脑)

    sony wf-1000xm3怎么配对(sony wf-1000xm3怎么连接电脑)

  • 微信面部支付怎么设置(微信 面部支付)

    微信面部支付怎么设置(微信 面部支付)

  • 华为nova5pro支持红外吗(华为nova5pro支持无线充电吗)

    华为nova5pro支持红外吗(华为nova5pro支持无线充电吗)

  • 抖音没登录会有痕迹吗(抖音没登录会有账号吗)

    抖音没登录会有痕迹吗(抖音没登录会有账号吗)

  • 如何从钉钉文件发送到QQ(如何从钉钉文件导出)

    如何从钉钉文件发送到QQ(如何从钉钉文件导出)

  • ipad不能qq群语音通话(平板qq不能语音通话)

    ipad不能qq群语音通话(平板qq不能语音通话)

  • 永久删除视频如何恢复(怎样才能永久删除视频)

    永久删除视频如何恢复(怎样才能永久删除视频)

  • wps口内打勾快捷键是什么(wps office 打勾)

    wps口内打勾快捷键是什么(wps office 打勾)

  • 爱国者u盘无法识别(爱国者u盘无法识别苹果手机)

    爱国者u盘无法识别(爱国者u盘无法识别苹果手机)

  • 如何判断显卡是不是烧了(如何判断显卡是否正常工作)

    如何判断显卡是不是烧了(如何判断显卡是否正常工作)

  • 小米10是不是自带手机膜(小米是不是自动开启漫游)

    小米10是不是自带手机膜(小米是不是自动开启漫游)

  • 苹果11听语音就黑屏然后还不亮(苹果11听语音就没声音)

    苹果11听语音就黑屏然后还不亮(苹果11听语音就没声音)

  • 微信号可以同时登录两个手机吗

    微信号可以同时登录两个手机吗

  • mkv与mp4的区别(mkv与mp4优缺点)

    mkv与mp4的区别(mkv与mp4优缺点)

  • 什么是开团什么是拼团(什么是开团什么是参团)

    什么是开团什么是拼团(什么是开团什么是参团)

  • 安卓手机数据线接口类型(安卓手机数据线图片)

    安卓手机数据线接口类型(安卓手机数据线图片)

  • 手机热点总是自动断开(手机热点总是自己断开连接)

    手机热点总是自动断开(手机热点总是自己断开连接)

  • 充电宝充满了不拔会爆吗(充电宝充满了不用会耗电吗)

    充电宝充满了不拔会爆吗(充电宝充满了不用会耗电吗)

  • 学校一体机童锁怎么解(学校一体机童锁密码)

    学校一体机童锁怎么解(学校一体机童锁密码)

  • 小米手机保修期内维修要钱吗(小米手机保修期内哪些免费)

    小米手机保修期内维修要钱吗(小米手机保修期内哪些免费)

  • 抖音如何关掉年龄设置(抖音如何关掉年龄大的人设置)

    抖音如何关掉年龄设置(抖音如何关掉年龄大的人设置)

  • 通常说计算机的主机是指(通常所说的计算机的主机包括)

    通常说计算机的主机是指(通常所说的计算机的主机包括)

  • 支付宝怎么开通 (支付宝怎么开通亲情卡支付)

    支付宝怎么开通 (支付宝怎么开通亲情卡支付)

  • JS函数的4种调用方式(js函数怎么调用)

    JS函数的4种调用方式(js函数怎么调用)

  • IDEA2022版本创建maven web项目(两种方式)(新版本idea怎么创建javaweb)

    IDEA2022版本创建maven web项目(两种方式)(新版本idea怎么创建javaweb)

  • 一般纳税人的现金收入
  • 职工旅游不计入福利费
  • 商业汇票申请贴现分录
  • 服务不动产和无形资产扣除项目本期实际扣除金额
  • 上月留抵进项本月抵扣会计分录
  • 劳务派遣公司必须设立股东
  • 现金日记账本月合计的红线画法
  • 人力资源公司代招的岗位可以去吗
  • 固定资产丢失
  • 小公司可以不交五险一金吗
  • 工业会计成本核算分录
  • 个税手续费返还计入哪个科目
  • 计提社保费计入什么科目
  • 工业企业辅助生产费用的分配方法
  • 做税审报告费如何做分录?
  • 非广告公司可以开广告费发票吗?
  • 一年内到期的非流动负债包括哪些科目
  • 企业购买银行理财会亏吗
  • 单位经济合同由谁来签
  • 全年一次性奖金计税方式
  • 税务利润表怎么填
  • 已认证的发票在哪里查
  • 空调属于什么资产用途
  • 财务转账一般多久到账
  • 苹果电脑mac系统怎么升级
  • win10 专业版 企业版
  • 无票业务如何处理
  • 桌面图标被篡改怎么办
  • win11任务栏消失了怎么办
  • php的数组函数
  • 税收风险应对措施包括
  • 对其他公司的建议
  • 低值易耗品现在还用吗
  • 货运业增值税税率
  • 供热企业的税收分类编码
  • 企业怎么知道增值税的核定方法
  • 工行对公贷款利息扣除时间
  • 其他综合收益要交企业所得税吗
  • 以股权出资成立公司的模板
  • 赡养老人专项扣除标准
  • linux进程状态有哪些
  • 企业分立房产税如何计算
  • 什么是预收账款减少
  • 供应商质量考核评估表样板
  • 服装加工税率是13%还是16%
  • winXP系统安装SQLServer2005开发版具体过程与注意问题
  • 如何在sql server中已有数据库进行修改
  • 劳务费与应付职工薪酬的区别
  • 企业所得税季度预缴纳税申报表
  • 财产租赁合同印花税申报期限
  • 法人银行贷款
  • 软件行业成本如何归集
  • 销售货物没开票是不是不交税
  • 记账凭证先写借方还是贷方
  • 租赁财产的残值处理
  • 出口退税哪些商品不能退
  • 支付水电费取得专用发票上注明税金0.68万元
  • 分析企业盈余状况
  • 专用发票怎么入账
  • 发票作废才能验旧吗
  • 新公司内账怎么做
  • 利润表中公允价值变动为贷
  • 企业财务建账应由谁负责
  • mysim和innodb
  • 安装sqlserver2016步骤
  • centos 安装chia
  • 微软修复系统
  • dwm.exe占用内存过高怎么办
  • windows xp删除所有数据
  • centos8拨号上网
  • 升级电脑win10系统
  • windows休眠文件
  • windows更新某些设置由你的组织来管理是什么意思
  • unity分发平台
  • jquery如何给div属性赋值
  • vue3.0diff
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • 财税专家刘杨简历图片介绍
  • 山西税务服务热线号码
  • 深圳市税务局网上办税大厅官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设