南宫28官方网站-NG28南宫娱乐官网版南宫28官方网站

咨询热线:0771-5861520,0771-5861920,0771-5784905

返回首页|设为主页|加入收藏

南宫28官方网站-企业动态

当前位置:首页 > 新闻中心 > 企业动态

新闻中心

南宫28官方网站中国第一代程序员潘爱民的 30 年程序人生

发布时间:2024-12-22 02:28:53 来源:NG28南宫娱乐官网 作者:ng28南宫娱乐官网版

  搞技术是一件极其幸运的事情,不仅是我们迎来了最好的时代,亦在于我们的祖师爷大多还都健在甚至健谈,比如 Linux 之父 Linus Torvalds、Python 之父 Guido van Rossum,而中国第一代程序员们也都还在折腾,首推 UCDOS 发明人鲍岳桥、超级解霸创始人梁肇新,以及今天我们的主人公 —— 国内知名操作系统专家、指令集创始人兼 CEO 潘爱民博士。

  潘爱民博士生于 70 年代,起于 BASIC 编程,师从汉字激光照排系统之父王选院士,从北大计算机研究所、微软亚洲研究院到任职盛大创新院专家顾问,又先后任阿里 YunOS、阿里安全、飞猪、阿里业务平台首席架构师,进入物联网时代创立指令集深耕并亲自主导物联网操作系统研发,历经中国互联网行业从星火到移动、AI、大数据、IoT 等各种燎原,几乎可以算作是中国互联网发展的一大缩影。

  浮生多变化,万事有盈虚。当国内程序员们忧于「35 岁职业坎、45 岁屈服现实、55 岁就得隐退」之时,透过潘爱民博士的 30 年程序人生,我们不仅能够看到一个中国第一代程序员死磕技术,又深邃思考技术如何落地与产业融合,更能从他的身体力行中看到,后浪奔涌,老兵如何不息。

  我第一次写程序人生是2000年,当时有很多编程实践,刚刚开始有系统性的思考;第二次是2010年写了我的成长故事(发表在《程序员》杂志上),当时即将从微软亚洲研究院毕业,准备进入国内工业界。到2020年,又10年过去了。回顾这10年,我一直在工业界努力,经历了三家公司:盛大、阿里巴巴和杭州指令集,亲历了移动互联网的发展,以及物联网时代的兴起。

  在计算机技术飞速发展的年代,10年是一个很大的跨度,足以发生翻天覆地的变化。我有幸在正值壮年之际,又一次经历了中国互联网产业的蓬勃发展。本文记录我在这10年中的职业经历、技术感悟,以及从技术转向业务、与产业融合的实践与思考。

  2010年夏天,我离开微软亚洲研究院,踏上了南下到上海的旅程,加入盛大创新院。当时的感受是,在经历过北京大学的教学科研以及微软亚洲研究院的系统研究以后,非常渴望回到国内的企业或机构进行基础软件的研发。经过多方考察,我选择了盛大创新院作为职业生涯的下一站。

  对于程序员来说,盛大创新院是一个理想的创新机构,有老板的大力支持,有大量互联网人才,正赶上移动互联网蓬勃发展的大好时机。有一批优秀的项目脱颖而出,涉及到语音、短视频、云计算、云笔记、LBS、智能手机等很多领域,其中有不少项目在盛大创新院解散以后还在延续并且做成功了。

  当时我带领的方向是移动操作系统——VisionOS。为什么要做移动操作系统,以及如何做、技术路径如何选择,这是在立项阶段反复思考和推敲的问题。我至今认为,那是发展自有移动操作系统的最佳时期,Android尚未占据市场垄断地位,并且Android手机的体验和性能离iOS还有显著差距,自研系统有机会快速赶上来。

  如果把微软亚洲研究院看作企业象牙塔的话,那么在盛大创新院则感受到了国内工业界的创新活跃氛围。在盛大做终端操作系统,游戏作为应用生态中的一个重要组成部分,是独特的优势。

  当时尚处于早期摸索阶段,但很多页游已经商业化运营了。VisionOS选择支持Flash和HTML5(H5),作为对于手机终端小游戏的基础平台。尽管当时有Flash和H5谁是未来的争论,作为基础系统平台,面对大量存量的Flash内容,VisionOS必须做好支持;同时基于前几年我对Web技术的研究,未来我更看好H5。因此VisionOS对于Flash的策略是兼容支持;对于Web则从系统底层打造形成一个应用平台(Web Runtime)。

  这是我第一次组建并带领一个操作系统研发团队,自己做架构师,从Linux操作系统到应用层技术栈,再到云端服务,都涉及到了。

  VisionOS的技术架构跟Windows比起来,简化太多了,所以我在VisionOS的架构设计与技术选型上都能得心应手。得益于盛大创新院良好的技术创新氛围以及相对优厚的待遇,我组建了一个非常优秀的团队,有玩Linux的,有精通图形引擎的,有精通软件工程的,有精通多媒体编解码的,也有擅长系统安全的,共十多个人,用一年多时间建立了一个性能优异的基于Linux/WebKit的移动操作系统。

  我从一开始就没考虑跟Android兼容,而是走自建生态的道路。VisionOS从立项到决定解散,差不多两年时间,对我来说,就像一次创业经历,做出了一个原型系统,但未能实现商业化。

  离开盛大创新院,我休息了两个月,拿到了华为和阿里巴巴的操作系统首席架构师的Offer,最终命运使然,2013年初,我来到杭州,加入了阿里云OS。

  当时阿里云OS是阿里云下属的一个部门,所以,确切来说,我加入了阿里云。杭州是我家乡的省城,一向以风景优美著称,当时还算不上互联网技术人才聚集地,但我时有耳闻,很多前端工程师经常在杭州聚会,技术的氛围正在浓厚起来。

  我在阿里巴巴工作了将近六年,主要分三个阶段:云OS(后更名为阿里YunOS)、集团安全部,以及飞猪和业务平台部。在云OS工作的两年间,正赶上云OS蓬勃发展的时期,从一个以Android BSP为基础的兼容Android应用的移动操作系统,演变为一个自主移动操作系统。

  作为云OS首席架构师,最大的挑战是确定新的架构,并且推动各个开发组接受新的架构。我同时也带领了核心系统模块的研发组。基于盛大VisionOS的研发经验和教训,我在设计新架构以及核心模块的技术选型方面,有足够的把握让新的云OS符合未来发展。

  两年间,云OS技术团队已经非常强大了,聚集了国内大量的系统工程师。我一心想做成云OS,然而,天时、地利、人和很难三者得兼,最终我还是放弃了继续努力,转到了阿里巴巴安全部。

  当时正赶上阿里的电商业务全面从PC互联网转向移动互联网,安全能力也势必要跟着升级。我一方面支持阿里业务的移动安全,另一方面带领一个架构师团队来梳理和重构阿里巴巴的安全体系。经过两年的安全领域实践以后,我希望能到业务部门学习和锻炼,于是选择了阿里飞猪。我认为这是一个小而美的业务部门,既有平台属性,也有行业属性。虽然飞猪的业务体量相对淘宝和天猫的总量小得多,但旅游是一个发展中的行业,业务空间大,创新的机会也多。

  最后赶上中台战略下的部门调整与合并,我来到了业务平台部门。我突然发现,加入阿里巴巴时满怀着做成一个移动操作系统的梦想,但现实中却发展成为了企业中的老白兔。结合自己最后两年对于业务的认知,以及物联网行业发展的判断,也感受到杭州这块互联网热土,最终我决定离开阿里巴巴,建立一家创业公司。

  在杭州,从阿里巴巴出来创业的前员工是一个广泛的群体,并且不乏成功者。我估计杭州一半以上的科技创业公司的合伙团队中都有前阿里员工的身影。在这样的群体氛围中,我选择出来创业,也就丝毫不奇怪了。

  一、物联网是后移动互联网时代能看得到的一个大趋势,而这个产业还处于零散发展的阶段,除了一些嵌入式操作系统演变为物联网设备的操作系统以外,还缺乏基础性的系统软件,所以我认为有机会做物联网场景的系统软件(解决一些共性的基础功能需求)。

  二、感受到了智慧园区/智慧楼宇的发展与变迁,以阿里巴巴西溪园区为例,2013年启用时就是一个普通的安装了很多智能设备的园区,但经过几年的发展,园区内的很多设施,越来越智能,包括门禁闸机、灯、空调、停车、电视屏等,这一切都源于背后有一套系统,将所有相关的设备连接到一起,并且与企业信息系统打通,从而实现了这些有良好体验的智慧功能。

  我坚信物联网时代需要这样的系统软件。经过一年的研发和运营,指令集公司于2019年6月发布了商业智能操作系统1.0版本,可用于楼宇、园区等商业场景。通过跟大量的目标客户和合作伙伴交流,确实看到了广泛的市场前景。更进一步,在跟伙伴交流的过程中,我也看到了在工业制造场景下更加需要这样的物联网操作系统软件,因此指令集公司也把工业智能操作系统作为第二个重要的发展方向。

  一旦加入创业大军,每天工作的重点以及思考问题的方式跟以往在大企业工作不一样了。某种程度上,这是一个身份的转变,原来是专业工作者,现在是企业经营主。尽管如此,我仍然努力做到对技术保持关注,特别是新兴的技术趋势。我坚持写技术文章,通过写文章来理清思路,对相关技术进行全面的整理,并结合实践提出一些观点。

  从2010到2020年这10年,我们经历了移动互联网的蓬勃发展、人工智能的再次复兴、大数据的各种应用,以及物联网技术在各行各业的应用。我作为一名从业者,有机会在大公司的平台上经历了这些技术的发展与应用,并且也有机会亲自主导一个物联网操作系统的研发和推广,实属幸运。

  早在2005年,我就选择了将来往系统技术方向发展,当时还在微软亚洲研究院工作。我的想法是,在微软工作最有价值的,应该是钻研Windows操作系统,这是独有的机会,所以我从Windows性能诊断分析作为切入点,研究Windows的内部机理,将Windows线程调度、内存管理、I/O等最核心的模块剖析了一遍,并形成了一套系统性的诊断方法。有了这些基础以后,我又进一步考虑应用层的性能问题,以浏览器的渲染引擎作为研究对象,分析渲染引擎的整个计算过程,挖掘可优化的空间。核心的思想是,在计算流程中尽可能把重复的计算移除掉,从而保持整个响应过程的高效。这些研究工作为我后来做操作系统打下了扎实的基础。

  2010年,我在盛大创新院有机会设计一个新的移动操作系统VisionOS。基本的思路是,在移动设备上,用Linux加一个Web渲染引擎来支撑一个Web运行环境(Web Runtime),既可以运行本地的Web应用,也可以运行在线应用,并且通过插件的形式运行Flash控件。我调研了Linux平台上可使用的各种图形软件,最终决定自行开发一套适合于移动设备的图形库,与WebKit高效对接。Linux社区有许多开源的图形库,也有像Qt这类比较成熟的跨平台图形窗口系统,但它们首先为了兼容性的目的牺牲了效率,其次为了提升效率又做了很多优化,从而软件变得很复杂。在移动设备上不需要复杂的图形功能和窗口管理能力,我当时的想法是,借鉴Windows图形窗口系统的思想,简化到极致,只需要基本的图形能力和简单窗口管理,就可以支撑VisionOS的底层图形需求。移动应用内部的控件管理由WebKit自身来完成即可。

  在当时的智能手机硬件环境下,要想做到流畅的触控体验,必须进行深入的优化,其中有一点至关重要,把芯片的图形加速能力启用起来。由于我们选择了原生的Linux系统,C库采用glibc,那就要找到芯片厂商提供的硬件加速库,才能完成这一优化。然而我接触了四五家芯片厂商,发现当时的移动芯片厂商基本上只提供Android的BSP,几乎不再提供Linux BSP,除非有足够采购量来提出特殊需求。在没有得到芯片厂商支持的情况下,我们做了一个高难度的折中方案,将Android BSP中的硬件加速库移植到VisionOS中,也就是说,将非glibc环境下的一个二进制代码库链接到glibc中,供上层模块调用。我团队中的同事足够优秀,将这些工作做得很漂亮,VisionOS比当时同机配的Android系统要明显高效,并且也很稳定。

  跨进程通信是一个操作系统非常重要的能力,它让应用与应用之间、应用与系统之间便捷、高效地相互调用功能。系统底层往往有很多琐碎的细节要处理,包括应用数据到底层二进制数据的转换、共享缓冲区的管理等。作为一个面向终端用户的操作系。


南宫28官方网站
上一篇:
上一篇:会编程就能当码农?行业紧缺高端、综合型人才
下一篇:巴基斯坦IT产业崛起 程序员市场供给规模全球第三

地址:南宁市东葛路118号青秀万达西(甲)3栋39楼3909室
联系电话:0771-5861520/920
CopyRight© 南宫28官方网站-NG28南宫娱乐官网版 版权所有 桂公网安备 45010302000733号 南宫28官方网站