又是一年1024,指令集在此先祝各位程序员节日快乐,身体健康、头发茂密、告别BUG。

1024程序员节是广大程序员的共同节日。1024是2的十次方,二进制计数的基本计量单位之一。程序员就像是一个个1024,以最低调、踏实、核心的功能模块搭建起这个科技世界。1G=1024M,而1G与1级谐音,也有一级棒的意思。

百度百科

今日,CSDN在长沙举办了中国1024程序员节,指令集CEO潘爱民受邀参会,在开源英雄会环节发表主题演讲:物联网操作系统架构设计。在23日的岳麓对话中,潘爱民博士与其他八位操作系统掌门人一起“九问操作系统”。

在这个程序员的节日里,潘爱民博士接受了CSDN的独家专访,聊到了自己的创业之路与操作系统的理想,以下是访谈内容的独家放送,希望这份小小的礼物可以让每一位程序员同学重拾自己的代码初心,用一串串漂亮的代码敲出“改变世界的力量”

Q1:从北大计算机研究所、微软亚洲研究院、盛大创新院顾问,到阿里 YunOS、安全、飞猪等团队,再到如今创立指令集,不同的职业经历给你带来了怎样不同的体验亦或是经验积累?

潘爱民:这个过程正好是一个技术人员从技术到业务的适应路径,早期的科研经历建立了严谨的思维,对于技术发展的判断,对于创新或未来技术的追求。这个阶段更多从发展和创新的角度来思考问题,思考未来的技术价值点。而后来在几个大企业平台上做研发,锻炼了带团队的能力,适应了紧贴业务需求来做技术支撑。这个阶段,同样是做技术,但定位有了很大不同,更贴近产业和市场。到后来创业,则完全是一个市场化的考验了。

这过程也正好是从PC互联网,到移动互联网,再到物联网或产业互联网的发展阶段。很幸运,每个阶段我都能身在其中,参与技术的进步。

Q2:“五十知天命”,2018 年,你在 48 岁这一年选择注册成立了杭州指令集智能科技有限公司,当时的想法是什么?为何会选择操作系统作为研发及创业的方向?

潘爱民:创业跟年龄没有必然的关系,但我深知,创业需要全身心投入,需要足够的体力支撑,也需要家庭的支持和经济的支撑,更需要持久的激情。所幸的是,我觉得我有这些条件,于是毅然而然走上了创业这条道路。

之所以选择操作系统,并非为了OS而OS。我分析了技术的发展,未来需要什么样的系统软件,特别是物联网时代到底技术瓶颈在哪里,如何提高软件开发的效率。物联网相关的软件非常分散,我对各个层次的软件进行抽象,恰好看到了这其中的机会,既可以解决物联网软件开发的效率,同时也能解决设备连接、数据处理、安全性等共性的问题。

Q3: 物联网、智能时代的到来,为国产操作系统带来的怎样的机遇?

潘爱民:从两个方面,可以认为这是一个难得的机遇:

(1)  在物联网、智能时代,国外发达国家还没有垄断性的系统软件,无论是面向设备硬件的操作系统软件,还是面向智慧场景的操作系统软件,都有同样的发展机会;

(2)  中国的基础建设全面走向智能化、智慧化,有大量的场景需要基础软件,这是市场的需求,只要规划得好,找准切入点,有机会诞生面向未来各种数字场景的国产操作系统。这可以避免在PC时代、移动互联网时代,不断追赶和替代的局面。

Q4: 根据指令集的定义,商业智能操作系统 iSysCore BI-OS 是一款物联网操作系统,它与物联网设备操作系统的根本区别是什么?

潘爱民:指令集的商业智能操作系统是面向各种商业场景的底层系统软件,它安装在PC服务器上或者部署到云上,将场景中的各种设备连接到一个平台上,类似于Windows把键盘、鼠标、打印机等连接起来。而物联网设备操作系统,安装在各种设备侧,直接服务于硬件设备。

其实,指令集的物联网智能操作系统也可以用于其他场景,比如智能制造的场景,我们今年9月份发布了工业智能操作系统(IIOS)。

Q5: 一直以来,物联网碎片化、系统安全性、兼容性等问题是业界颇为头疼的难题, iSysCore BI-OS 面向这些问题时,有怎样的解决方案?

潘爱民:这些问题根本原因在于物联网场景的多样化,非标化。指令集的BI-OS利用技术的手段,抽象了共性的需求,比如,硬件设备碎片化的问题,我们通过一套驱动框架来适配各种设备,将设备的差异性隔离在驱动模块中,避免污染其他的系统模块和上层的应用软件;安全性更加需要有一个核心系统来归拢这些设备的控制权。通过BI-OS,物联网场景中的整体安全性可以有显著的提升。

Q6: 作为商业智能操作系统,很多人认为一款产品兼顾开源和商业或存在矛盾,对此,您如何看待开源与商业之间的关系?

潘爱民:开源代表了开放;商业代表了利益诉求。本质上两者是有冲突的。对于商业公司,需要把握一个平衡点。商业智能操作系统除了核心的代码,还有系统之上的应用生态。从软件技术发展历史来看,生态的建立要么有强大的硬件掌控能力,要么有足够的开放性。譬如Windows和iOS是闭源的,但它们有硬件基础,而Linux和Android是开源的,形成了生态。

指令集的商业智能操作系统走开放路线,未来其核心系统会开源,但同时我们也会做好保护,建立起商业模式,确保指令集作为一家商业公司有持续发展的能力。

Q7: 指令集在发布时曾宣布该操作系统将向行业开源,在开源方面,iSysCore BI-OS 的整体规划是什么?

潘爱民:指令集BI-OS未来会开源核心系统部分,给业界一个参考,同时也让合作伙伴相信指令集开放的态度,以及提高他们解决问题的效率(比如他们可以自己编写驱动、调试驱动模块等)。另外,指令集也希望有更多的同行业伙伴一起来共建这些核心系统,形成合力,将系统做得更好。

当然,除了核心系统部分,指令集要做的事情更多,我们还会提供一些工具和服务,以提升客户使用BI-OS的效率。另外,指令集也会跟伙伴合作开发一些系统服务或模块,以不断丰富BI-OS适应场景的能力。

Q8: 在过往创业两年多的时间,你最有成就感的事情是什么?最大的遗憾是什么?

潘爱民:在这两年多的创业经历中,很庆幸找到了一个非常有意义的方向,是一个关键软件,足够复杂,对产业的效率有提升。两年前我给很多人介绍物联网操作系统这个概念时,有不少人是不信的,甚至有些专家也是不认可的。然而,随着物联网产业的发展,以及新基建政策的引导等,加上我们已经做出系统来,并且在一些场景中落地呈现出来,现在越来越多的朋友认可这件事情,并且从各个角度给予支持。

谈不上遗憾,过程中有些不理解也是正常的。我们也碰到了很多困难,人才难求,系统研发不顺利,商业落地难以掌控,等等。我的原则是,珍惜我们已有的,坚定信念去做正确的事情。真正给客户带来价值,就是我们的机会。

Q9: 在你技术成长过程中,是否有着对你影响较大的某位人、某些书、某些网站/文章或其他,为什么?

潘爱民:在我职业生涯的早期,有幸跟着王选老师学习和工作。在做人、做事方面,都深刻地影响了我。为人正直,不投机取巧,不浮躁,不受利益诱惑—— 淡泊名利、宁静致远。另外,我也学到了——锻炼身体,做持久努力的准备,争取为祖国健康工作五十年。

关于书籍,我很少看书,但因为翻译过一些经典书籍,受益良多。其中三本书特别值得一提:(1) C++ Primer(第三版),使我深刻地理解了C++语言;(2) Computer Networks(第四版,by AndrewTanenbaum),使我深刻地理解了计算机网络与系统;(3) Windows Internals(第四版),使我理解了Windows的整体架构。

关于网站,首推CSDN,早期我写过不少技术文章,都是通过CSDN与很多朋友建立连接。

Q10: 你见过的最优秀的程序员是什么样的?有什么精彩的故事可以分享一下吗?

潘爱民:我见过不少优秀的程序员,属于一个人顶一个团队的,哪怕二三十年前没有丰富工具的情况下,也可以写出代码规模达到几万行、几十万行的优秀软件。这样的人很多,我不列举了,有同事、有学生、有业界同行。他们有一个共同特点,写代码又快,又准确,极少bug。

Q11: 操作系统作为三大基础软件之一,想要入局必须具备深厚的基本功,对此,您对在操作系统之路上的开发者们的技术成长路线,是否可以分享一些经验?

潘爱民:操作系统的门槛极高,根源在于操作系统软件的复杂性,而复杂性又来源于操作系统所面对的软硬件环境的不确定性。

我认为基本功在于:

(1)  对于操作系统核心模块的理解和掌握,并且要连带着硬件基础,比如CPU内置的一些机制和指令。建议解析一些成熟的,足够复杂的操作系统,要读懂核心代码。我相信,每一个操作系统专家,脑子里都至少有一套操作系统的工作流程全景。

(2)  软件的技能。一方面要有二进制代码的思考能力,又要有快速编写代码的能力。这需要有足够多的代码量为基础,并且要训练写代码的准确率。肉眼就能看出代码中的bug,而不要总是依赖编译器找bug。

(3)  抽象的能力。实际上,这是软件设计能力。可以分两个层次,一是在明确描述出一个软件需求/问题的情况下,给出一个实现方案和思路。这通常是设计模式可以解决的问题。有大量成熟的模式可以提供思路,但需要清楚地知道每一个模式的优势和不足。二是,在无法清晰地描述出需求的情况下,只能看到一些案例或点上的需求,但是要做出一个可满足未来潜在需求的软件系统,这考验的是抽象能力。无论哪个层次,见多识广很重要。

以上是基本功,在此基础上,要有发展的思维。今天的操作系统概念已经随着软硬件技术的发展而进化了。譬如,Android刚面市的那几年,业界对于Android是不是一个操作系统是有争论的。现在大家普遍认为Android是一个移动操作系统。同样地,在物联网时代,面向连接的操作系统到底是什么样的?

在这种情况下,其实对于系统程序员或者操作系统设计者的技能要求高了很多,比如,对于虚拟机原理与实现的理解,对于网络连接和协议的深刻了解,对于数据体系的深刻了解,对于分布式系统原理的掌握,等等。这些知识有可能需要体现在一个系统中。这反过来又要求基本功极其扎实。

Q12: 对于发展国内的开源操作系统生态,你有着什么样的想法和计划?你是CSDN 的老朋友,我们双方有没有可能共同为开发者做点什么?您最希望我们大家一起推动什么样的共识和行动?

潘爱民:我支持操作系统必须要开放,核心部分要开源,特别是跟生态对接的部分。每一个程序员从开源代码中学习到知识,提高学习和工作效率,这是非常有价值的。但同时,我们必须要尊重代码的作者,绝对不做任何伤害其商业利益的事情。不做拿来主义,不等于要重复造轮子,我们可以在许可协议和商业规则允许的前提下合理合法地使用开源代码。

CSDN是非常好的平台,凝聚了大量的程序员,我非常希望有机会在CSDN的平台上分享我的经验和教训。过去30年,我每10年的程序感悟文章都是通过CSDN发表的。现在我自己带领公司做物联网操作系统,在摸索着前行,过程中我非常乐意跟CSDN和程序员们一起分享点点滴滴。

我希望能跟CSDN共同打造指令集物联网操作系统的开发者生态。

祝所有程序员1024节日快乐。相关推荐

  1. 祝所有程序员1024节日快乐

    1024对于挨踢男女来说是个重要的数字,今天恰逢10月24日,不发Python代码了,轻松一下,在网上搜集挑选和改编了几个笑话,为广大程序员的辛苦.努力和投入点赞. 1.某Python程序员去餐厅吃饭 ...

  2. 新春福利 | CSDN 祝所有程序员朋友新年快乐,万事顺心!

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 深冬又一日,却已是新年!春节悄然至,乐起平淡间.值此新春佳节,CSDN 小姐姐们在此给各位拜 ...

  3. 祝中国程序员早日拥有加班自由

    点击上方关注我们,让小care关爱你! 我常常把每一次换工作期间,待业在家那几天称作是"短暂的放纵". 可以无所顾忌地睡觉,可以在晚饭后悠闲的散步,可以各种开黑双排打游戏,可以陪女 ...

  4. 这几天微软发布的一些好玩的东西(顺祝女性程序员朋友们节日快乐!)

    [1] Technical Case Study - Infrastructure Management at Microsoft 这是一篇文档,其中描述了微软公司是如何管理其企业内部电子信息系统的, ...

  5. 送给程序员“1024节“的礼物

    所谓开源,就是把软件的源代码开放出来,大家都能看到源代码,大家可以一起研究源代码并对软件的进行优化和改进.越来越多的IT公司对开源持开放态度,一方面有了优秀的开源项目,就不用再重复造轮子,可以直接拿来 ...

  6. 1024 致敬程序员

    今天是10月24日,程序员节 说到程序员节,你会想到什么? 格子衫.黑框眼镜 还是令人堪忧的发际线? 但你可能不知道 就在不经意间 他们正深入地参与并改变你的生活 互联网时代到来以后 这个时间上 涌现 ...

  7. 1024程序员鼓励节来啦!限量手办、机械键盘、独家PDF下载等多重福利等你来!

    简介:1024程序员节,开发者社区为各位程序员准备了多种活动,精美礼品.技术干货任你挑选! 为庆祝1024程序员的到来,开发者社区为广大开发者准备了限量手办.机械键盘.2021云栖大会演讲精华PDF文 ...

  8. 程序猿之歌 PHP,1024丨腾讯第一首程序员之歌【Code代码】

    原标题:1024丨腾讯第一首程序员之歌[Code代码] "发布总是在半夜 回滚是永远的愁". 内存泄漏.深夜发布.需求变更,这些熟悉的词语和场景,相信对于每个程序员朋友来说,都有着 ...

  9. 1024程序员日,互联网公司们福利感人;支付宝36万招“找茬”程序员

    10月24日,是程序员日,一大早,"1024程序员节"就上了热搜,网友再次刷起关于程序员的段子来. 为了庆祝程序员日,关爱程序员,许多互联网公司都发了福利. 有的公司准备了快乐(防 ...

最新文章

  1. python学会了可以做什么菜_python学习之路(24)
  2. 配置文件~/.ssh/config和/etc/ssh/ssh_config
  3. ansys中的柱坐标与直角坐标关系
  4. 神策合肥研发中心携手安徽开发者社区,深入交流共促行业发展
  5. JavaScript——对象合并解决方案
  6. Yuhao and a Parenthesis
  7. idea中的markdown文档如何插入图片
  8. python具有伪代码的本质吗_Python的优点之一是具有伪代码的本质。( )_学小易找答案...
  9. 【pytorch】named_parameters()、parameters()、state_dict()==>给出网络的名字和参数的迭代器
  10. golang中的http server和http client
  11. TCP/IP系列——长连接与短连接的区别
  12. 枚举类型转换成字符串
  13. Leetcode431.将N叉树编码为二叉树(golang)
  14. C++输入大写字母转小写字母
  15. 39、C++定义一个类,实现向量的加减运算
  16. 【硕士论文】《动态场景下的语义三维地图构建 》西南科技大学 余东应
  17. 使用metalink批量下载sentinel数据
  18. 剑灵革命android汉化教程,剑灵革命手游中文界面怎么设置?台服中文界面设置教程...
  19. iOS永久签名不掉签工具,轻松签超详使用教程
  20. 引用没有广告的优酷视频

热门文章

  1. UBUNTU 18.04 GPU + miniconda3 + pytorch + yolo v5 安装测试
  2. linux bt测试命令,Android命令行测试BT,WIFI,Sensor工作状态
  3. 新浪微博密码加密分析
  4. APP搭建:输入文字,单击显示(Android studio)
  5. DDR 6 内存已经投入研发
  6. Web函数请求多并发上线,Web服务部署更快更省
  7. 找出1000之内的所有完数
  8. 133、初沸点的概念
  9. 语音专题第一讲,麦克风阵列的语音信号处理技术
  10. 神经网络性能评价指标