一个九零后操作系统从业者的思考
最近两年,由于众所周知的原因,操作系统、芯片等行业成为了各界人士竞相关注的热点,远川研究所科技组在去年年中分享了一篇生动详实的文章《大国隐痛:做一个操作系统有多难》,引发了圈内外的广泛关注。读罢这篇文章,我作成此文,希望可以抛砖引玉,分享作为操作系统从业者的一些思考。
01 Win-tel联盟的成功之匙
回顾操作系统的过往,有一个总是会引起业内外探讨的热点话题:为什么Win-tel联盟会取得成功?
当我们从多个角度去观察,会有这样一些发现:
对于行业发展趋势而言,经过以IBM为代表的大型机阶段、以DEC为代表的小型机阶段,解放个人用户的计算能力是当时的发展方向和趋势,需要出现新的产品形态和应用模式。Win-tel联盟应运而生,在当时是先进生产力的典型代表,满足了生产关系的发展需要。
对于投资人或是合作伙伴而言,Win-tel联盟抓住了计算机微型化的趋势,定位于个人电脑,带动行业形成了一个让合作伙伴躺着也能赚钱的生态。
对于微软自身而言,比尔·盖茨曾说过,让每个家庭的桌上都有一台电脑。无论当初这句话是梦想还是承诺,最终微软都做到了,这样的眼界和胸怀,也成就了后来Windows的辉煌。
对于开发者而言,VB(Visual Basic,微软开发的一种程序开发语言,拥有图形开发界面和控件)的推出,极大降低了为Windows开发应用的门槛。
而对普通用户而言,Win-tel联盟提供了一个高性价比的个人计算平台,让计算机从触不可及变得触手可及。
Windows产品的成功尽管存在一些争议,但不失为一个值得业内学习和思考的案例。今天的Windows,是数十年来应对市场和技术的变革而不断发展的产物。回望第三次科技革命的后半场,很难单纯凭借一个要素就得以让Windows保持今天这样的生命力,基于观察和业内专家的观点,本文在如下五个方面和大家分享一些思考:
首先是生态。生态是上下游参与者自发形成的,但在一个生态初具规模之后,影响其走向的是掌握核心话语权的少数厂商。
1993年,微软推出了Windows NT,在硬件生态上,微软自此摆脱了与IBM的绑定,与Intel一起形成了x86全新生态的雏形;在软件生态上,更好的多任务特性以及硬件抽象层的引入,都为Windows日后的应用多样性打好了基础,这个时候,微软的任务就是将这个生态培育出来。
在Windows NT 推出以后,微软又连续下了几步棋,让应用生态呈燎原之势的发展。其中最重要的是推出便捷的编程语言。
对于操作系统而言,某种程度上可以说是得开发者得天下,操作系统这个土壤需要有最合适的编程语言来帮助开发者在其之上施展魔力,耕种出各种各样的应用,什么变成语言最容易形成生态,受到欢迎?自然是开发者学习门槛低,易用性和通用性高的。
在Windows系统图形界面功能的加持下,VB使得鼠标和可视化控件的赋能对象从之前的普通用户变成了开发者,重新定义了开发者的工作方式,快速扩大了VB语言的开发者数量和Windows应用的丰富程度。
在x86生态壮大的过程中,Windows的影响力也体现在其它方面。例如,微软通过证书签名实现了软硬件兼容性的认证模式,或是对各种市场活动和推广策略提了供丰富的资金支持,这样技术和商业并举的措施持续巩固着Windows庞大且有力的生态。
二是工具链。工具链是一个软件产品的生命链。一个软件产品从需求分析、功能设计、代码实现、编译构建、测试发布到服务维护的整个生命周期里,都离不开工具链的支持。
早年间在开发Windows NT的过程中,构建镜像的过程还不能完全做到自动化,脚本需要专人调试并验证,早期的Windows NT内部版本也仅仅是一周构建一次。构建团队为了保证进度,需要管理并维护周密的构建计划,建立评估框架来保障所构建版本的质量。
当时微软内部有个说法叫做“吃自己的狗粮”,项目负责人甚至要求版本构建所用的系统环境也要用Windows NT的内部验证版。为了提高效率,上百台Intel和MIPS的设备彻夜运行自动化测试脚本,以便在第二天一早就能提供测试结论。
也就是说,微软自身就是其开发工具、测试框架、测试平台最重要的使用者,在提供给开发者和用户之前,相关工具链就已经经受了自家工程师的考验,形成了相关生产力平台的最佳实践。
三是人才的数量和质量上,微软凭借长久以来的积累,吸引了一批又一批全球各类优秀人才。
微软凭借长久以来的积累,吸引了一批又一批全球各类优秀人才。比如Windows Insider一书第三版的作者Mark Russinovich,Windows NT项目的组建者David Cutler,打造了微软全新协作软件服务平台的Ray Ozzie等。一大批这样的大牛以老带新,使得微软的技术团队不断成长壮大,一些工程师已经在相关功能上积累了近十年经验,对该功能和相关原理的内涵和外延有着及其严谨和精准的理解,体现了他们立体又丰富的视角。
这样的人才队伍,保障了Windows高度产品化的发布周期,高效的补丁分发渠道,以及参与全球用户、标准化组织信息化建设的影响力。
除了内部人才发展,微软在社区人才的培养上也下了一番功夫,比如MVP(Most Valuable Professional)等专家人才认证,持续地鼓励外部优秀技术人员在Windows生态上进行探索,在体现个人价值的同时,推动Windows的进步。
四是其具有生命力的商业模式。通过OEM硬件设备绑定销售Windows许可是早年间帮助微软开拓市场的利器,持续了数十年并不断扩展、丰富。围绕传统的Windows授权模式形成的商业模式,为合作伙伴提供了扩展业务的基础。
比如为满足各个体量用户的需求,除了OEM出厂预装许可外,微软还为Windows设计有消费者零售许可、中小企业用户的批量许可、大型企业的场地授权模式等,对应的功能及价格也有相应区别。整个模式相对灵活,合作伙伴可以为不同类型的用户提供不同的方案和策略,最大可能地触及到每一个有需求的用户。这样的商业模式矩阵也成为了诸多软件公司的参考。
第五点是视野。微软作为全球用户数量最大的操作系统厂商,体现了与自身定位一致的格局。一如多年前比尔·盖茨的想法一样,微软始终从领导这个行业发展和进步的角度施加影响力或是进行决策。
近年来收购GitHub,拥抱开源,背后都多少暗含了这样的布局和考量。回想当GitHub被微软收购的新闻在圈内外刷屏时,不少人唏嘘不已,毕竟有鲍尔默将Linux称为“癌症”的前车之鉴,最大的开源代码托管平台落入微软手中,悲观情绪蔓延也可以理解。然而事实证明,微软此举并不是为了“围剿”开源,更多是为了抓住上千万的开发者群体,并与自己的软件开发工具深度集成。就像当时VB的成功一样,打通工具链,微软是认真的。
02 过往国内操作系统的产业化之殇
相比于微软的成功之路,国内在操作系统上走过的路充满了艰辛与坎坷。关于国内操作系统在市场、生态等方面走过的弯路,业内权威专家在各种各样的场合都分享过很多真知灼见。除此之外,本文希望可以从亲身经历上分享一下过去我们在人才和市场需求等方面的一些问题。
在人才方面,客观来说,国内操作系统厂商至今都还不具有贯穿我国基础教育、职业化教育和高等教育的影响力,失去了很多培养新鲜血液的机会。
在高教层面,国内某种程度上存在着操作系统人才的断档,只有少数高校有能力提供效果较好的操作系统理论教育,坚持在学术领域上探索或是在工程化应用方向突破的就更少了。十几年前,某位业内权威专家在与国外厂商合作的谈判过程中,曾提出希望外方每年可以为国内从业者提供若干个前往国外高校访问学习的机会。遗憾的是,在当时的条件下,这一倡议未能实现。
在行业吸引力上,随着互联网行业兴起,以及主要城市高企的生活成本给从业者带来的压力,国内操作系统厂商在软件人才的吸纳上几无竞争优势。这也从侧面说明,传统的操作系统产品在当前的大环境下,商业价值并不存在比较优势。
人才短缺已然让前行变得困难,市场需求方面,因为历史原因,操作系统又背上了许多负担。
因为人们已经适应了x86生态,国内操作系统厂商往往会收到这样的需求:做一个能兼容既有办公软件等生产力工具的操作系统。
又因为中国国产CPU没有形成一个统一的生态,许多国产CPU架构和指令集都不一样,国产操作系统又常被要求做一个能够适配多个CPU指令集架构的操作系统……
时至今日,国内厂商在进行软硬件适配时,依然不得不对既有软件进行迁移重构,或是因为硬件升级而必须对软件重新进行适配,这消耗了厂商本就不宽裕的资源,相关成本也难免不转嫁到用户身上。
然后,在产品化方面,借用国内一位权威专家的观点,一个操作系统迭代的过程,同时也是从课题到项目,项目到产品,产品到生态不断蜕变的过程。产品并不是越大越全就越好,对需求的准确把握,往往是一个产品取得成功的第一步。如何把交付给用户的一个个项目,根据需求和场景进行抽象,形成产品,是现阶段很多厂商面临的一个挑战。
具体来说,在实验室中编写一个操作系统,与为十几亿人提供操作系统产品完全是两个概念。仅仅是打补丁这样一个基本功能,就需要面临用户各种各样的使用场景和差异化的使用习惯,如果缺少得力的设计和实现,反而会让打补丁这个事情变成用户的负担。此外,当前国内重开发轻运维的观念,不仅需要被厂商摒弃,也需要用户进行适当的改变并付诸实践。
去年Adobe Flash Player停服时,一些用户出现了相关在役软件无法使用的问题。而Adobe早在2017年7月25日就已经宣布将于2020年底停服,并提供从Flash Player向HTML5过渡的案例。这样的消息并未引起一些用户、集成商、软件开发商的重视,只好通过系统降级等手段解决,处理起来非常被动。这类事件,再次让我们清醒地认识到目前国内相关行业的信息化特点和现状。
最后,在商业上,对于任何一个市场化的产品,厂商本身的造血能力很大程度上决定了一个产品是否能持续发展。具体到操作系统,用户在其上下游软硬件生态的持续投入也是巨大的,如果没有用户认可并愿意买单,产品的商业模式将难以持续,厂商也只能艰难地维持运营甚至遗憾地走向终点。相反,一些非商业化的操作系统(例如应用在关键领域的实时操作系统),如果已经满足了用户的基本需求,且投入产出相对合理,其实就是一个不错的操作系统了,因此产品清晰的市场定位也是非常重要的。
03 转机与希望
向后看是为了向前看,在进入新发展阶段的当下,基于过去的经验,又该如何去提供一个好的操作系统呢?
目前业内基本上有这样一个共识:写一个操作系统并不难,难的是如何通过富有活力的生态保持一个操作系统的生命力。操作系统形成生态的第一步,离不开CPU这个与之紧密耦合的平台。
每一次重新洗牌,都意味着新机遇的出现。除了x86,基于ARM架构的个人计算平台虽然不是唯一的方向,但已经成为目前颇具热度的方向之一。诸多ARM架构的CPU已经在手机、平板电脑等移动设备上充分体现了自己的比较优势,因此各家厂商也在下一代个人计算平台的发展方向上,结合具体的应用场景不断进行尝试探索。
ARM架构的技术特性则决定了其硬件平台相比x86显得较为封闭,操作系统和CPU的耦合更加紧密更加全面。这样的特性也为操作系统与CPU平台适配、优化以及充分释放计算性能提供了更多的空间。比如苹果MacOS与自家的M1芯片的组合,微软的Windows 10 ARM版本与SQ1/SQ2芯片(微软与高通合作)的组合等。国内的操作系统厂商,如今也不再是单打独斗。操作系统与CPU的组合成为趋势,从软硬件层面分别着手,满足用户需求。一批新的社区、生态的涌现和成长,更多厂商的参与,为整个行业带来了活力。
在软件生态上,ARM平台的应用已经有了不亚于PC端x86应用生态的规模。但是处于个人计算平台应用金字塔塔尖的效率办公、音视频处理、工业设计等软件还是沉淀在了x86的生态中。为了保障这些既有x86应用迁移到新的硬件平台后的质量,并降低该过程的成本,相关的工具是这个重塑生态过程的重要组成部分,缺少高效稳定工具链支撑的操作系统,注定是步履维艰的。在这个方向上,苹果的Rosetta能把自身X86架构下的应用“翻译”成ARM架构的应用,无疑是一个非常值得关注和研究的工具。国内厂商在这一方向上如果能有所突破,基于ARM的个人计算平台也将有更大的舞台。
图片
作为服务于社会发展的科技产品,行业发展的趋势和计算任务的改变,丰富了对操作系统的需求,有需求的地方,就有操作系统生根发芽的空间。在万物互联的时代,操作系统已经不仅仅存在于办公桌上或是大家的手中。无论是微内核还是实时系统,都有机会在新的时代留下自己的足迹。希望在这个过程中,每一个操作系统厂商和芯片厂商,都能重视工具链的完善和提升,像全球领先的那些厂商一样,为愿意在新的生态创造无限可能的开发者们提供更多施展才华的空间。
庞大且统一的市场与适合操作系统成长的生态土壤是一个新产品成长的基础,但持续稳定的政策对处于萌芽阶段的产品同样重要。从国内国际双循环的角度来看,国产操作系统无论是在哪个方向上探索,这些产品都需要被给予足够的耐心和关注。
每个人和操作系统都有一个关于如何开始的故事,也许是在第一堂微机课上,也许是在嘈杂电脑城中的某个柜台前,也许是工作后某个项目中的第一次接触。
我从多年前初次接触计算机,到如今机缘巧合成为了诸多从业者后浪中的一员。诸多国内操作系统的前辈们,都已从踌躇满志的少年,一路披荆斩棘,成为了两鬓斑白的老兵。走近他们就会发现,这些前辈坚持到今天的原因,凭的是不褪色的热情和不气馁的使命感。无论时代如何变化,国内操作系统人心底那股溶于血液,发自内心,源于本性的劲儿,始终是这个行业不断前进,最具生命力的源动力。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
pid控制器相关文章:pid控制器原理
热电偶相关文章:热电偶原理