【观察】OpenHarmony:技术先进“创新局”,持续创新“谋新篇”

毫无疑问,开源作为今天整个软件产业的创新“原动力”,目前在软件产业发展中的重要性愈加凸显。根据Linux基金会的统计,现在全球软件产业中有70%以上的代码来源于开源软件。

从这个角度来看,开源技术已逐渐成为推动企业数字化转型和支撑数字经济发展的关键“底座”,它改变了以往技术创新的“进化”模式,引领着软件技术标准的发展和创新,可以说开源技术已经成为软件产业发展中不可缺少的关键一环。

特别是在中国,得益于政策支持、软件产业高速发展、技术创新的需求以及开源文化的日渐普及,当下中国的开源产业已经初具规模,这其中2020年正式开源的OpenHarmony,更成为了发展速度最快的智能终端操作系统开源社区之一。

044baa75179493fb0d8c464ec6510a37.jpeg

在11月4日举办的以“技术筑生态,智联赢未来”为主题的第二届OpenHarmony技术大会上,OpenHarmony社区宣布开源三年来,OpenHarmony已正式迭代到4.0 Release版本,目前已拥有6200+开发者、51家共建单位,贡献代码行数超过1亿行;同时,截至10月31日,社区已有超过210家伙伴,构建了42款发行版,落地商用设备超过210款,广泛覆盖能源、金融、工业、航天、交通、医疗、教育、政务等各关键行业。

那么,在一系列亮眼的“成绩单”背后,OpenHarmony社区究竟做了哪些具体和细微的工作?而面向未来,在技术创新、生态构建以及行业落地方面,OpenHarmony又有哪些新的“谋篇布局”呢?为此,笔者日前与OpenHarmony项目群技术指导委员会(TSC)的多位委员进行了深入的对话和沟通,详细了解了他们背后的“所思所考”。

 关键技术,迭代演进

所谓“拿着旧地图,找不到新大陆”。在万物互联时代,当所有的设备广泛连接,衍生出的大量数据在端侧或云侧存储时,操作系统本身也需要“与时俱进”的实现进化和演进。

正如OpenHarmony项目群技术指导委员会主席陈海波所言,操作系统历经67年的不断演进,多次推进了信息产业浪潮的不断发展。但由于不同历史时期操作系统作自身的技术特征、人机交互方式及生态协同方面都有很大的差异,因此也需要不同的操作系统,而万物智联的到来,可以说为操作系统的发展提供了“换道超车”的新机遇,为了更好地拥抱万物智联时代,OpenHarmony就此“应运而生”。

826abd01a76224e83dd9eb1f83f2859f.jpeg

在过去的三年时间里,OpenHarmony始终秉承“生态统一、开放共赢”理念,坚持“面向万物智联世界,构建分布式全场景协同的开源操作系统基座与生态系统”的技术愿景,并围绕“架构解耦、弹性扩展;异构并行、全栈协同;原生智能、场景体验;极简开发、多端部署”四大架构特征,持续推动关键技术创新以及面向未来演进进行深度思考,取得了不少突破性的技术进展,具体而言:

一是,在架构解耦、弹性扩展方面,可以看到拥抱万物智联时代,操作系统首先要攻克的是“昆虫纲悖论”的挑战。所谓“昆虫纲悖论”指的是,昆虫纲是世界上种类最多的一个纲,但每一个细分的昆虫的数量又非常至少,如果类比到万物智联时代,那就是今天整个智能设备或智能终端数量越来越多,而且产品形态正“爆炸式”地进化、杂交和演变,在这背后就需要打造一款能够兼顾通用与个性,并实现“架构统一、智慧互联”的新型终端操作系统以化解这一挑战。

针对此,OpenHarmony提出了“元OS”架构(One OS Kit fo All),实现了组件化、弹性化的解耦架构,同时基于统一架构,支撑广泛的智能终端设备,其核心优势体现在两个方面:一方面,OpenHarmony通过践行“元OS”架构理念,可以让各发行版厂商基于OpenHarmony高度弹性的架构,将操作系统能力按需进行灵活组合,从而满足千行百业场景的需要;另一方面,通过“元OS”的架构,OpenHarmony也可以实现多设备操作系统架构的统一,以便于多场景的协同和智慧化,方便提供开放、统一的生态能力。

二是,在异构并行、全栈协同方面,进入“后摩尔时代”,从硬件演进的趋势看,智能终端已经演进到异构多核架构,甚至是一个动态异构多核时代。因此,操作系统与复杂的芯片和硬件架构之间的协同,就成为提升操作系统整体并发能力和性能的关键。

在此过程中,就要攻克“一人干活、众人围观”的“假并发”顽疾,而针对异构并发的挑战,OpenHarmony打造了异构原生并发技术,其能够颠覆传统线程模型,比线程更快、比协程更易管理,能够降低系统负载与调度开销,真正实现“各行其道、按需并发”。在此基础上,OpenHarmony并发与协同TSG还孵化出了“VSync”开源项目,通过形式化证明技术,验证了并发过程中共享资源不越界,实现高可靠、高性能的并发。

与此同时,OpenHarmony也打造了智能感知调度技术,其不仅能够实时感知CPU微架构、并联动全系统硬件资源,同时也能以用户体验为中心,感知应用场景,真正实现“全栈协同、场景感知”。除此之外,为了进一步提升操作系统的性能,OpenHarmony还开创性地打造了超级内存管理技术,实现了内存和Flash存储深度融合;同时也打造了高性能只读压缩文件系统(EROFS),这是国内首个Linux社区标准文件系统,相比EXT4,其随机读性能平均提升20%,能够帮助用户节省2GB空间以上,系统升级包体积下降5%-10%左右。

三是,在原生智能、场景体验方面,三年前,OpenHarmony设计伊始就将分布式全场景能力作为最关键的技术特征之一,而这些年来OpenHarmony也构筑了分布式软总线、分布式数据管理、分布式设备管理等领先的技术,而面向AI时代,OpenHarmony也将通过“加持”AI大模型等新技术,进一步构筑全场景智能体验的竞争力。

在功能上,OpenHarmony将面向沉浸式交互和具身智能方面进行演进,其中沉浸式交互方面将从点触交互,演进到如自然语言、场景空间、姿态等全新的自然空间交互方式;而具身智能方面,将从终端设备演进到智能体,通过与人和环境的交互、产生智能行为和适应性;而在系统架构上,则是面向原生智能架构演进,包括实现端侧模型与云端大模型协同,实现智能服务与编排;构建符合AI负载特征的资源管理与调度,借助AI辅助实现智能开发等。

除此之外,在安全隐私保护方面,同样也需要实现安全体系的“重构”,为此OpenHarmony通过聚焦智能终端操作系统信任根的诉求,由OpenHarmony安全及机密计算TSG,孵化并开源了可信执行环境(TEE)解决方案OpenTrustee,该方案能够提供健壮的TEE安全底座、ChCore架构,以及提供系统级的防护能力,从而最大化地支撑广泛的安全应用场景。

四是,极简开发、多端部署方面,OpenHarmony始终致力于让应用可通过一套代码工程,一次打包、上架,在多个设备类型上可部署和运行的基础能力;同时也一直提升多设备版本代码复用度,降低应用开发成本,提升应用在多种设备类型上的体验一致性。

为此,OpenHarmony面向开发者提供了端云一体低代码开发能力,最大化提升了开发者效率;同时,通过提供全栈协同的深度优化工具,实现对软硬件全栈协同的实时监控,以及场景化的深度调优;此外,OpenHarmony跨平台应用TSG,也孵化出了跨平台应用开发框架ArkUI-X,其在今年8月已正式开源,具备“代码一次开发,三个平台部署”能力,典型场景代码复用率高达75%。

基于这四大架构特征,最新发布的OpenHarmony 4.0 Release版本开发套件同步升级到API 10,相较前序版本新增4000多个API接口,应用开发能力更加丰富;此外,HDF新增200多个HDI接口,硬件适配更加便捷。同时,新版本在用户交互体验、组件能力、分布式硬件支持范围和安全及隐私方面的能力也得到进一步增强。

开源三年来,OpenHarmony不断地迭代与演进,为构建千行百业的“数字底座”夯实了基础,更为应对万物智联时代的“千变万化”提供了重要的支撑。

 持续创新,技术先进

OpenHarmony除了随着时代和需求的变化而不断迭代和进化之外,同样也始终站在技术与应用的最前沿,通过“永不停步”持续创新的精神,推动OpenHarmony社区技术先进性的能力建设,为智能终端操作系统未来的发展,进一步探寻更多的可能性,激发更大的想象力空间。

对此,OpenHarmony项目群技术指导委员会委员武延军表示,OpenHarmony社区要保持技术先进性,就必须要做好“前瞻性和基础性”的工作,而在这方面,OpenHarmony同样也做了很多的探索与创新。

首先,在前瞻性工作方面,RISC-V在近几年成为了业界十分关注的指令集,背后的原因在于,RISC-V采用的开放标准让各个厂商可以在架构基础上进行大幅度的修改和定制,不需要担心后续会因为各种原因而失去授权或是影响到产品的生产、使用;同时,RISC-V存在架构优势,使其可以同时适应极低功耗及高性能处理器的设计需求,因此RISC-V被外界认为将是继x86和ARM之后,最有可能成为国际标准的一个指令集。

也正因此,更好地“适配”RISC-V也就成为了OpenHarmony社区高度关注的一项具有前瞻性的工作。目前在OpenHarmony社区中已经形成了活跃度非常高的SIG组,并且通过持续的技术创新,OpenHarmony已经能够“跑”在基于RISC-V开发的硬件平台上,未来OpenHarmony将持续推进和RISC-V的深度融合,提升OpenHarmony当下的影响力和未来潜在的产业作用和价值。

其次,在基础性工作方面,OpenHarmony也实现了操作系统形态的“供应链化”。 操作系统如果打开来看,其实它也是由成千上万的组件组成的,这些组件既有开源的,也有不开源的,就像手机中的零部件一样,这些组件也有很明确的供应链关系,操作系统组件的供应链安全对于保证操作系统的稳定性、易用性和可靠性不言而喻。

“鉴于此,我们给全世界的开源软件做了一个庞大的知识图谱分析,纳入分析的开源软件超过1.7亿款,代码行数超过2400多亿行。基于这些‘原材料’,形成了关于全球开源软件的知识图谱,并依靠它服务于OpenHarmony,这样 OpenHarmony在版本迭代,新的组件加入进来的时候,就能清楚地看到这些组件处于供应链的什么环节,有什么样的组合成分,哪些地方会成为风险点,哪些组件需要加强控制等等,从而最大化地为OpenHarmony的供应链安全提供保障。”武延军说。

除此之外,可以看到目前随着智能化的快速发展,特别是随着ChatGPT的出现,带来了全新的重要变化,因此AI如何赋能操作系统,操作系统如何更好支撑AI发展,操作系统与智能化的结合也成为了OpenHarmony的重要课题。

为此,OpenHarmony提出了“By AI、Use AI、For AI”的“原生智能”理念。其中“By AI”指的是要充分发挥各类端侧设备的AI能力,即要将NPU、GPU、CPU等能力充分协同发挥出来,加速训练及推理等工作;“Use AI”指的是要将系统编排、智能调度等基础能力应用到操作系统中;而“For AI”指的是通过大模型交互使能各种运行在OpenHarmony的智能应用。目前,OpenHarmony已经具备了诸如智能编写短信、代码等能力。例如,通过大规模的预训练和学习,在开发者编程时,通过自然语言交互,工具可以自动生成一些相关提示、进行代码补全,甚至自动完成一些功能的编写。

我们知道,首届OpenHarmony技术大会发布了“终端操作系统十大技术挑战方向”。经过大半年的努力,“十大技术挑战方向”已拆解出37道年度课题,本次OpenHarmony技术大会正式揭幕了这些课题,并由各个高校技术俱乐部揭榜课题。

OpenHarmony项目群技术指导委员会委员贾宁强调说:“OpenHarmony社区要保持技术先进性,不仅是一个长期的过程,更是一个庞大的工程。”他认为,作为一个开源社区,技术先进性不是自我标榜,而是千千万万的社区参与者贡献形成的,因此通过公布十大技术挑战方向,并把它分解为年度课题,核心就是希望把这些技术挑战分解成一个个可达成的“子目标”,最后“一步一步”去实现,而这种方式也能够让更多的人参与,有仪式感、有参与感、有目标感,最后“齐心合力”攻克这些技术挑战方向,将会有效地推动整个社区和生态的不断壮大和发展。

不难看出,OpenHarmony不仅围绕“基础性和前瞻性”做了大量的工作,同时还通过公布十大技术挑战方向,并依托年度课题等方式,一步步向更加具体的问题展开“攻坚克难”,从而更好地实现了OpenHarmony在技术创新领域的先进性。

双轮驱动,共建生态

事实上,OpenHarmony要持续保持技术的先进性,同样也需要充分借助“产学研”各界的力量,其中高校就是创新的主要“源泉”。而从去年7月27日宣布成立“OpenHarmony技术俱乐部”计划以来,短短一年多的时间,OpenHarmony技术俱乐部就凝聚了国内17家头部高校,吸引了众多专家学者的加入。

68f5153f887f0ae3f286e3a7ca295610.jpeg

在OpenHarmony项目群技术指导委员会委员臧斌宇看来,“OpenHarmony技术俱乐部”之所以受到如此多高校的支持,主要原因在于:

一方面,OpenHarmony对高校的师生有着比较强的吸引力,OpenHarmony作为目前发展速度最快的智能终端操作系统开源社区之一,其源自中国市场,而未来也能够走向世界,因此很多高校的师生对这类源自本土的技术创新有着较强的了解欲望以及积极的参与热情。

另一方面,OpenHarmony相较于其他的开源软件项目,相对而言“上手快,投入少”,因此能够让更多的高校师生参与进来。“作为终端操作系统,OpenHarmony相比其他领域的操作系统,硬件方面投入相对不是很高,而且OpenHarmony目前适配的硬件设备也比较多,因此很多师生可以做很多的实验,也比较上手,这是OpenHarmony能够受到广泛关注和参与的重要原因。”臧斌宇说。

据了解,为了更好地激发高校师生的技术创新热情,今年九月,OpenHarmony还开展了首期面向高校的竞赛训练营,针对行业使能及三方库命题,吸引了来自上海交通大学、复旦大学、电子科技大学、湖南大学、北京理工大学、四川大学、华中科技大学、中北大学等高校的75个赛队共计200多名学生报名参与。本次竞赛除设置了团队奖项外,还设有优秀指导教师奖和特别创新奖,由此也极大推动了OpenHarmony的技术创新和知识共享,更为行业的发展注入新的动力。

未来,OpenHarmony也将持续深化产学研协同,从“OpenHarmony技术俱乐部”迈向产学研共同体,通过产业技术难题攻关、前沿学术研究、讲座、论坛、竞赛、技术与产业标准孵化等多种方式形成产业与学术的“双轮驱动”,从高校中来,到产业中去,形成闭环。

开发者同样也是OpenHarmony高度关注的群体,近期OpenHarmony开发者论坛1.0也正式“官宣”上线,目前能够满足开发者交流、答疑的基本使用需求。论坛目前包括两大核心板块:问答板块及文章板块。同时,OpenHarmony开发者论坛还邀请了包括华为、深开鸿、诚迈科技、中国科学院软件所、中软国际等公司在内的几十位OpenHarmony领域的资深专家入驻。此外,“OpenHarmony开发者成长计划”也持续对外招募,OpenHarmony希望未来能够与开发者共同成长,繁荣OpenHarmony社区生态。

对此,OpenHarmony项目群技术指导委员会委员张荣超表示,OpenHarmony过去几年成功吸引了大量开发者的加入,同样也离不开三个方面的原因:

第一,OpenHarmony作为开源操作系统的“魅力”,开源软件的优势在于,每一个开发者都可以自由地去查看、修改,并提交他的源代码,同时可以和其他开发者分享和展示他的“特性”,这种透明性和可接入性可以说吸引了众多的开发者。

第二,作为面向全场景的分布式操作系统,OpenHarmony也具有十分广泛的应用场景,而众多的开发者则可以基于OpenHarmony的技术特性做出很多此前单一设备无法完成的应用和场景,可以说也为开发者插上了非常丰富的想象力的“翅膀”。

第三,OpenHarmony在技术层面本身具有的先进性和创新性,OpenHarmony的设计理念以及背后的技术框架,代表了目前终端操作系统的很多前沿的技术,且OpenHarmony还在不断地创新和优化,那么借助OpenHarmony这样一个非常活跃的社区,以及社区中提供的丰富精彩的各类线上线下活动,也可以让加入其中的开发者实现“相互交流、寻求帮助、获得答疑、广交朋友”等,这些也对开发者提供了巨大的吸引力。

当然,持续做好开发者的“服务”工作也是接下来OpenHarmony的重要工作。张荣超告诉笔者:“把开发者吸引到OpenHarmony的生态中是相对容易的,更大的难题在于如何让开发者一直留在这个生态体系之中,因此如何增加对开发者的粘性,需要社区做更多的投入和工作,为此我们后续也将不断地对开发者进行相关的培训,让他们能够真正地学习到新技术,通过技术能够提升自己,对学习和工作提供更大的帮助。”

客观地说,无论是发布“高校技术俱乐部”,还是持续强化对开发者群体的投入,都是OpenHarmony通过社区共建、共治、共享,繁荣人才生态的一个“缩影”,相信此举不但能够推动OpenHarmony社区实现更高质量的发展,也将持续助推国内基础软件技术与数字经济产业的发展与进步。

 向下扎根,赋能行业

开源作为一种创新的商业模式,在用户触达、加深产品了解、快速试用方面具有天然的优势,但如何把这种优势转换为直接的商业收益,背后的关键和根本还是要看基于开源打造的方案和产品是否具有强大的创新力和竞争力,而商业化的落地则为展现和传播这一优势构建起了更为宽阔的路径。

5c9c3a3b73bf208944c5a49df55b11e0.png

可以看到,OpenHarmony开源三年以来,其产业化的落地进度可谓远超预期,目前除了在消费端广泛部署外,OpenHarmony在行业终端也广泛覆盖了金融、能源、交通等各种关键行业,有超425款终端设备通过了兼容性测评,真正为赋能千行百业的数字化转型,以及不断筑牢数字经济底座的根基提供了坚实的支撑。

在OpenHarmony项目群技术指导委员会委员张兆生看来,目前OpenHarmony发行版的数量越来越多,无论是横向还是纵向领域都取得了不错的进展,其主要包括两个领域,一是面向行业级应用的,目前很多共建单位都针对相关的行业推出了行业专用发行版,覆盖了交通、金融、医疗、教育等行业;二是面向品类应用的,特别是随着OpenHarmony 3.1和3.2版本的发布,其对于复杂标准的带屏设备体验有了更大的增强,因此也有越来越多的设备搭载了基于OpenHarmony开发的发行版操作系统。

同时,在产业政策和社会各界的大力支持下,OpenHarmony凭借其技术的先进性和创新性,也得到了更大的市场和更多用户的认可。今年以来,包括深圳、福州、惠州、北京、南京、东莞等多个城市连续出台了支持OpenHarmony的产业政策,显著加速了OpenHarmony在各城市产业应用落地和生态创新,同时一系列标准规范的推进也让OpenHarmony成为更多行业的数字化选择。

此外,OpenHarmony在技术应用领域也解决了很多客户数字化转型中遭遇的挑战,如在能源行业,基于OpenHarmony的操作系统就可以解决多终端协同的难题,同时对于运维效率也有着极大的提高;基于OpenHarmony打造的工业操作系统,未来进入到核心生产和制造场景等场景之中后,也能发挥出更大的商业价值。

基于此,接下来OpenHarmony社区也将持续推进商业化的落地进程,比如在市场推广方面,今年4月以来,OpenHarmony已连续在上海、武汉、长沙、北京、张掖等城市举办了OpenHarmony城市技术论坛,不断将自身价值推向各地市场;在此基础上,在未来技术创新和合作共建等方式上,OpenHarmony也将和共建单位展开更多的创新和协作,和更多的行业客户进一步深度融合。

OpenHarmony项目群技术指导委员会委员李英伟最后表示,OpenHarmony社区一直以来都站在“平台化”的角度来长远规划OpenHarmony的技术发展,未来社区也希望更多的产学研各界的专业人士,在OpenHarmony新版本规划之初,就加入到社区中来,一起从“先进性、创新性、前瞻性、通用性”等角度出发,在内核、基础框架、原生智能、工具链乃至行业的赋能等方方面面做更加深入的工作,让OpenHarmony能够更好地以“平台化”的能力满足市场和行业需求,让OpenHarmony更好地赋能企业的数字化转型,为数字经济的发展贡献出更大的价值。

总的来说,面向未来中国开源产业的发展之路依然是“征程如海”,也需要继续坚持“唯实干者胜,唯创新者赢”的态度和精神,而作为目前发展速度最快的智能终端操作系统开源社区之一,OpenHarmony开源三年以来,通过持续创新始终保持了技术的先进性,同时不断繁荣OpenHarmony的社区生态,由此也让其在较短时间之内就实现了商业化进程的“提速”,其背后的一系列探索与实践之后的沉淀与释放,将是OpenHarmony未来保持升势和胜势的重要底气所在,相信也将为整个国内开源产业的发展壮大提供更多的借鉴和参考,其价值也可以说“不止于现在,更关乎未来”。

0cc1abb9beae443b2b1cfa2108906711.gif

申耀的科技观察,由资深科技媒体人申斯基创办,20年企业级科技内容传播工作经验,长期专注产业互联网、企业数字化、ICT基础设施、汽车科技等内容的观察和思考。

de9fd73f83ff3d4d2fd843058e540dca.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/196831.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB中zticks函数用法

目录 语法 说明 示例 指定 z 轴刻度值和标签 指定非均匀 z 轴刻度值 以 2 为增量递增 z 轴刻度值 将 z 轴刻度值设置回默认值 指定特定坐标区的 z 轴刻度值 删除 z 轴刻度线 zticks函数的功能是设置或查询 z 轴刻度值。 语法 zticks(ticks) zt zticks zticks(auto)…

土地利用强度(LUI)综合指数

土地利用强度的概念可以解释为某一时间特定区域内人类活动对土地利用强度的干扰程度[1],其不仅反映不同土地利用类型本身的自然属性,也体现了人类利用土地的深度和广度,进而揭示在人类社会系统干扰下土地资源自然综合体自然平衡的保持状态[2]…

jbase打印导出实现

上一篇实现了虚拟M层,这篇基于虚拟M实现打印导出。 首先对接打印层 using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Xml;namesp…

为什么Transformer模型中使用Layer Normalization(Layer Norm)而不是Batch Normalization(BN)

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

通过 Canal 将 MySQL 数据实时同步到 Easysearch

Canal 是阿里巴巴集团提供的一个开源产品,能够通过解析数据库的增量日志,提供增量数据的订阅和消费功能。使用 Canal 模拟成 MySQL 的 Slave,实时接收 MySQL 的增量数据 binlog,然后通过 RESTful API 将数据写入到 Easysearch 中。…

Diagrams——制作短小精悍的流程图

今天为大家分享的是一款轻量级的流程图绘制软件——Diagrams。 以特定的图形符号加上说明,表示算法的图,称为流程图或框图。流程图是流经一个系统的信息流、观点流或部件流的图形代表。我们常用流程图来说明某一过程。 流程图使用一些标准符号代表某些类…

Vue 路由缓存 防止路由切换数据丢失 路由的生命周期

在切换路由的时候&#xff0c;如果写好了一丢数据在去切换路由在回到写好的数据的路由去将会丢失&#xff0c;这时可以使用路由缓存技术进行保存&#xff0c;这样两个界面来回换数据也不会丢失 在 < router-view >展示的内容都不会被销毁&#xff0c;路由来回切换数据也…

(c语言进阶)内存函数

一.memcpy(void* dest,void* src,int num) &#xff0c;操作单位为字节&#xff0c;完成复制且粘贴字符串 1.应用 #include <stdio.h> #include<string.h> int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[20] { 0 };memcpy(arr2, arr1, 20);//从…

中移链共识机制介绍

01 为什么需要共识 共识是对某事达成的共同看法&#xff0c;它是区块链的灵魂&#xff0c;对确保区块链的完整性和安全性起着至关重要的作用。在传统的集中式系统中&#xff0c;单个实体或一组实体有权验证和记录交易。然而&#xff0c;区块链中的一个核心概念是去中心化&…

gittee启动器

前言 很多小伙伴反馈不是使用gitee&#xff0c;不会寻找好的项目&#xff0c;在拿到一个项目不知道从哪里入手。 鼠鼠我呀就是宠粉&#xff0c;中嘞&#xff0c;老乡。整&#xff01;&#xff01;&#xff01; git的基本指令 在使用gitee的时候呢&#xff0c;我们只需要记住…

Mysql之多表查询下篇

Mysql之多表查询下篇 满外连接的实现UNION关键字UNIONUNION ALL操作符 7种SQL JOINS的实现语法格式小结自然连接USING连接表连接的约束条件 满外连接的实现 在上篇博客中&#xff0c;我们可以了解到在Mysql中是不支持FULL JOIN来实现 满外连接的&#xff0c;那么我们在Mysql采用…

紫色调城市和奔跑人物剪影背景工会工作总结汇报PPT模板

这是一套紫色调城市和奔跑人物剪影背景工会工作总结汇报PPT模板&#xff0c;共33页&#xff1b; PPT模板封面&#xff0c;使用了蓝天白云、城市剪影、奔跑人物剪影背景图片。中间填写工会工作总结汇报PPT标题。界面色彩丰富充满活力。 PowerPoint模板内容页&#xff0c;由31张…

Openssl X509 v3 AuthorityKeyIdentifier实验与逻辑分析

Openssl是X509的事实标准&#xff0c;目前主流OS或个别安全性要求较高的设计场景&#xff0c;对X509的证书链验证已经不在停留在只从数字签名校验了&#xff0c;也就是仅仅从公钥验签的角度&#xff0c;在这些场景中&#xff0c;往往还会校验AuthorityKeyIdentifier和SubjectKe…

C语言开发者的利器:gcc编译命令指南

本文主要介绍gcc编译c语言过程&#xff0c;以及常用命令 文章目录 C语言编译过程1. 预处理&#xff08;Preprocessing&#xff09;&#xff1a;2. 编译&#xff08;Compiling&#xff09;&#xff1a;3. 汇编&#xff08;Assembling&#xff09;&#xff1a;4. 链接&#xff08…

【智能家居项目】FreeRTOS版本——多任务系统中使用DHT11 | 获取SNTP服务器时间 | 重新设计功能框架

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《智能家居项目》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f353;多任务系统中使用DHT11&#x1f345;关闭调度器&#x1f345;使用中断 &am…

探索NLP中的核心架构:编码器与解码器的区别

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

jsp中使用PDF.js实现pdf文件的预览

本文介绍的是在使用jsp作为模板引擎的spring-mvc项目中&#xff0c;如何利用 PDF.js实现pdf文件的预览。 1、下载 PDF.js Getting Started (mozilla.github.io) 下载解压后其中有两个目录&#xff0c;直接将这两个文件夹放到项目的web资源目录中。此时相当于把PDF.js这个项目也…

2019年五一杯数学建模B题木板最优切割方案解题全过程文档及程序

2019年五一杯数学建模 B题 木板最优切割方案 原题再现 徐州某家具厂新进一批木板如表 1 所示&#xff0c;在家具加工的过程中&#xff0c;需要使用切割工具生产表 2所示的产品。假设&#xff1a;木板厚度和割缝宽度忽略不计。   请为该家具厂给出如下问题的木板最优切割方…

掌握Shell:从新手到编程大师的Linux之旅

1 shell介绍 1.1 shell脚本的意义 1.记录命令执行的过程和执行逻辑&#xff0c;以便以后重复执行 2.脚本可以批量处理主机 3.脚本可以定时处理主机 1.2 脚本的创建 #!/bin/bash # 运行脚本时候执行的环境1.3 自动添加脚本说明信息 /etc/vimrc # vim主配置文件 ~/.vimrc # 该…

生成对抗网络Generative Adversarial Network,GAN

Basic Idea of GAN Generation&#xff08;生成器&#xff09;  Generation是一个neural network&#xff0c;它的输入是一个vector&#xff0c;它的输出是一个更高维的vector&#xff0c;以图片生成为例&#xff0c;输出就是一张图片&#xff0c;其中每个维度的值代表生…