奋战开源操作系统二十年:为什么编程语言是突破口?

如何在iPhone上本地运行SmolVLM?5亿参数模型实战指南(附Swift代码) 本文详细介绍了如何在iPhone上本地部署和运行轻量高效的SmolVLM多模态模型。通过实战指南,分享了使用Swift和MLX框架进行环境配置、模型加载、内存优化以及实现实时图像分析与文本生成的完整流程,帮助开发者在移动端高效运行AI视觉语言模型。 阅读详情

【编者按】编程语言之于操作系统,意味着什么?本文作者飞漫软件创始人魏永明经过二十余年的操作系统开发探索,明确提出编程语言是自主基础软件,尤其是操作系统的重要抓手。如果说操作系统是基础软件生态里的皇冠,那编程语言就是王冠上的明珠。如果没有自己的编程语言,那所谓的自主,就是海市蜃楼、空中楼阁。由此,他走上了开源编程语言的探索与实践之路。

作者 | 魏永明       责编 | 唐小引

出品 | 《新程序员》编辑部

 

从低迷的 Linux 桌面系统说起

全世界范围内的开源运动浩浩荡荡,滚滚向前。Linux 内核作为开源软件中的杰出代表,在云计算、服务器端、 智能手机端、嵌入式系统中的成功举世公认。截止 2021 年底,Linux 在服务器领域占据了 96%的市场份额,在超级计算机领域几乎占领了全部市场,在云计算基础设施领域占据了 90%的市场份额,在智能手机领域也占有 85%的市场份额。现今,在人们日常的工作和生活中,Linux 内核几乎无处不在。但与此相反的,则是 Linux 桌面系统地位不断下滑。据统计,长期以来,Linux 桌面系统的市场份额徘徊在 2%左右,而原来被微软 Windows 压得喘不过气来的 macOS 系统,却在近几年取得了不小的进步,获得了超过 10%的市场份额。

自 2000 年以来,全球有众多公司如 Red Hat、SUSE 以及中国的若干企业一直在尝试打造基于 Linux 内核、GNU 工具以及 X Window、GNOME 或 KDE 的桌面系统。但二十年来,我们并没有得到一个可以媲美 Windows 或 macOS 的桌面系统,这其中的教训值得深思。究其原因,大家都会指点一二。比如 Linux 桌面系统的模仿痕迹太重,技术上始终跟随 Windows,也没有自己的产品特色;缺乏 Office 这样的关键应用软件;各种发行版满天飞,造成严重的碎片化问题,还导致应用之间的互兼容性问题等。

为什么二十年来,全世界有那么多企业和社区前赴后继、努力打造的 Linux 桌面系统,却始终无法走向大众市场,而仅仅局限于少数狂热的爱好者当中?

再以本人的亲身经历为例。笔者搞了二十多年嵌入式窗口和图形系统——MiniGUI,最初模仿 Win32 提供 C 语言的应用编程接口。在本世纪最初的十多年间,MiniGUI 在机顶盒、功能手机、数码相框等产品中得到了大量的应用。但自从 Google 开源发布了 Android 操作系统之后,包括 MiniGUI 在内的很多嵌入式基础软件,都遇到了前所未有的危机,这其中也包括针对嵌入式系统的输入法、字体、浏览器等多款软件产品。为了应对这一危机,我们也曾做出过一些尝试,比如提供类似 Visual Studio 一样的界面设计器、类 iPhone 的 UI 特效、对 Java J2SE 应用框架的支持等。然而,这些尝试和 Android 这种具有全新操作系统架构和应用框架的现代操作系统相比,实在不堪一击。

这引得我不得不思考:嵌入式领域是本世纪初兴起的产业,当时,我们在这个领域的基础软件水平和美国差不了多少,而且坐拥全球最大的消费类电子产品市场,但为什么在其后十多年的发展竞争中,我们仍然落败于美国?

编程语言是操作系统获得突破的重要抓手

尽管我们可以将自身发展不力的原因归咎于政府保护知识产权政策不完善等因素,但我们也不得不承认,在引领技术潮流方面,我们差的不是一星半点:我们的基础软件行业,和 Linux 桌面系统一样,一直将自己定位为追随者,始终没有走出模仿的怪圈。要走出这个怪圈,我们首先要想清楚操作系统这类基础软件的第一用户是谁,即我们首要服务于哪类用户。

我的观点是,类似操作系统这样的基础软件,其首要用户是开发者。一个基础软件,不论是操作系统还是数据库,只有首先满足了开发者的需求,服务甚至取悦开发者,才能建立起获得进一步成功的基础。重视开发者,优先为开发者服务,是基础软件的生存之道。其道理不言而喻:一款基础软件要获得大规模的应用,就离不开开发者,而基础软件的作者本身,纵有七十二变,也不可能把全世界的应用需求都给满足了。

只有将开发者定义为基础软件,尤其是操作系统的第一用户,我们的思路才可能有一个重要的转变。

如果我们简单回顾一下成功操作系统的发展,就可以得出这些操作系统一开始就不遗余力地为服务开发者而努力。比如微软,从 Windows 3.0 开始,就为降低 Windows 上的应用开发门槛在努力,这其中就包括 Visual C++、Visual Basic 以及后来的 Visual Studio、C#编程语言和.Net 应用框架。苹果和谷歌围绕各自操作系统所走的道路也类似。发展到今天,我们可以看到几乎所有成功的操作系统都有自己专属的一种编程语言以及围绕其打造的独特的应用框架。

作为反面案例,Linux 桌面系统上从未出现过任何专属的编程语言、应用框架以及开发工具。在当前市场趋势下,面对跨平台和融合终端应用的开发需求,Linux 桌面系统更是乏善可陈。GNOME、KDE 两大阵营,一个基于 C 语言,一个基于 C++ 语言,围绕这两个编程语言的应用框架,沿用的仍然是二十年前 Unix 工作站所使用的技术和框架。讽刺的是,Linux 桌面系统上使用最广的开发工具,是微软开发的 Visual Studio Code。

此前,我曾几度阐述过编程语言对一个操作系统的重要性。简而言之,编程语言之所以重要,是因为编程语言是确定一个系统长相的重要基因。就比如 C 语言,它适合开发贴近硬件的程序,而 C++,适合用于开发中间件。国外还有很多专注特定领域的编程语言,比如 Go 语言适合开发服务器软件,因为它天生为并发编程设计。编程语言可以确定一个系统的长相,也决定了这个系统的软件栈,及其配套的开发工具,还可以成为解决一些顽疾的灵丹妙药。因此,编程语言是自主基础软件,尤其是操作系统的重要抓手。如果没有我们自己的编程语言,那所谓的自主操作系统,就是海市蜃楼、空中楼阁。

因此,如果我们要发展自主的操作系统,就必须走出模仿的怪圈,而若想成为技术上的引领者,就要尝试为自己的操作系统设计一款全新的编程语言。没有自主的编程语言以及围绕其上的自主应用框架,对操作系统而言,就如同缺失了灵魂一样,便无法胜任技术引领者的角色。

目前,在中国信创领域,中国政府正在推广基于 Linux 的桌面系统以及嵌入式系统,在政府意志的推动之下,相关的技术积累和市场推广正在稳步推进,曾经困扰业界多年的关键应用,如办公套件、输入法等,通过中国本土的商业软件产品得到了有效解决。根据统计,单单中国政府的桌面系统,存量市场就超过了亿套,每年的新增安装量近五百万套,如果再加上一些关键行业和要害部门(如能源、交通等),足以支撑全球 10% 的桌面系统市场份额。这将给基于 Linux 的桌面系统和嵌入式系统带来前所未有的巨大市场机遇。然而,如果我们仅仅止步于跑马圈地,而无视发展自主编程语言的重要性,到头来也将竹篮打水一场空。

下一代操作系统需要什么样的编程语言?

随着云计算和物联网技术的普及,现在的应用跟二十年前大不一样了,最大的特点是需要联网、跨平台,而且可能要运行在不同类型的设备上,我们暂且称之为 “融合终端”应用。在满足融合终端类应用需求这一方面,主流的操作系统厂商在做全新的尝试,比如苹果为 macOS、iOS、padOS、watchOS 开发 Swift 编程语言,谷歌的 Flutter 使用 Dart 编程语言,微软也正在为 Universal App 做技术上的准备等等。

操作系统巨头技术生态布局(图源:《新程序员》)

显然,要在这场竞争中获胜,需要我们设计新的、云计算和物联网友好的编程语言和开发工具。一方面,可用来满足融合终端类应用的需求,另一方面还可用于提高应用的开发效率,同时,还可以成为操作系统生态的护城河。

那么什么样的编程语言是符合未来趋势的?对此,目前阶段很难准确描述。但我们可以尝试从宏观上描述适应上述全新需求的编程语言可能的主要技术特征:

  • 描述式语言,易读且容易理解,甚至可支持开发者使用母语编程,从而让非职业程序员也能编写出满足需求的程序。

  • 具有更高抽象层次的编程语言,开发者可以使用更少的代码实现更多的工作,且无需过多关心技术细节。

  • 提供抽象的跨平台可移植接口。通过全新的接口设计来屏蔽底层操作系统或者平台的差异,这是跨平台的必然选择。

  • 支持现代编程技术,如动态特性,对协程、并发、闭包等的支持。

  • 良好的可扩展性和伸缩性,既可以用来开发脚本程序,也可以支持大型分布式应用的开发。

  • 功能和性能的良好平衡,使之可用于嵌入式系统,甚至物联网设备端。

一旦我们为未来的融合终端应用设计了自己的编程语言,尤其是让编程模式都发生巨大变化的语言,那就可以自顶向下去设计一个新的操作系统。这个操作系统甚至可以涵盖云端、客户端、嵌入式系统和物联网。而内核、工具链、窗口系统、界面构件库、包管理系统,所有这些底层的技术将成为“汽车引擎盖”下面的东西,一般的应用开发者无需关心这些技术。如此,便有了服务开发者的基础。在此之上,我们利用或者围绕新的编程语言开发 IDE(集成开发环境)、自动化测试和部署框架、关键应用软件、应用商店、特定应用领域内的第三方运行时函数库等等,而这一切,合起来便是操作系统的生态。

自主开源编程语言设计与开发之路

为了践行上述所讲的理论,我提出并开发了全新的编程语言 HVML(Hybrid Virtual Markup Language,中文名为呼噜猫)。这是一款通用、易学的开源编程语言,从 2020 年 7 月提出并公开第一份规范草案,到 2021 年 7 月成立攻坚团队着手 HVML 解释器(PurC)的开发,2022 年 7 月 31 日,在 GitHub 上开放了 HVML 相关的六大源代码仓库(或源代码包),这标志着 HVML 1.0 正式发布,这其间已经走过了两年的时光。

而在过去整整一年的开发过程中,笔者带领团队实现了所有的设想以及绝大多数的功能。作为设计者,笔者将 HVML 定义为一种全新的编程语言:可编程标记语言(Programmable Markup Language)。并为 HVML 赋予了全新的设计理念,使之基本满足前文所说的全新编程语言的技术特征:

  • 使用标记来定义程序的结构和控制流,大大提高了程序的可读性,同时大幅降低了学习难度。

  • 使用具有动态功能的扩展 JSON 来定义数据,隐藏了底层系统,而且使其成为粘合不同系统组件的理想胶水。

  • 引入了数据驱动的编程模型,这让开发人员更多地关注数据的生成和处理,而不是程序的控制流。

  • HVML 是动态的,开发人员不仅可以从远程数据源获取数据、模板和程序片段,还能删除已有的变量。

  • 使用独有的方式来支持协程、线程、闭包等现代编程语言必备的特性。

  • 具有极强的灵活性,开发人员可使用 HVML 编写简单的脚本工具,也可以使用它来开发复杂的 GUI 应用程序,甚至是开发服务器软件。

  • 运行飞快,HVML 解释器使用简单高效的栈式虚拟机,不使用任何垃圾收集器。

  • 通过预定义变量重新定义了系统底层的模块和接口,从而屏蔽了不同操作系统或软件平台之间的差异。

  • 相比常见的脚本语言,HVML 具有更高的抽象级别;使用 HVML,开发者可以用更少的代码完成更多的工作。

初衷和设计思想

之所以决定设计和开发 HVML,除了以上的思考之外,还跟我的经历有关。

在我所开发的 MiniGUI(开源 Linux 图形用户界面支持系统)生意受到 Android 冲击之后,我带领团队转战移动互联网以及智能硬件,开发过很多网站和智能手机应用。几年前,随着美国打压中国高科技产业愈演愈烈,国家又开始重视基础软件的自主可控,MiniGUI 的生意又回来了,我们也帮着一些客户开发了基于 MiniGUI 的解决方案。但由奢入俭难,习惯了网页前端开发技术的便利性,作为开发者,我们自己都难以接受使用 C/C++这样的编程语言来编写带有图形用户界面的应用程序——我发现使用 C/C++这类编程语言开发带 GUI 的应用,跟用牛刀杀鸡并无二致;就算有可视化的界面设计器帮助开发者,其开发效率也很难和 Web 前端技术相比。

有了这样的认知,我开始思考为正在开发中的 HybridOS(合璧操作系统)设计一款专门的编程语言。最初,我们的目标是让熟悉 C/C++或其他编程语言的开发人员可以通过 HVML 使用 Web 前端技术(如 HTML/SVG/ MathML 和 CSS)轻松开发 GUI 应用程序,而不是在 Web 浏览器或 Node.js 中使用 JavaScript 编程语言做绕转。最后,我们不光实现了这一目标,而且还将 HVML 实现为一种通用的编程语言。

为了将 Web 前端技术引入到通用的 GUI 应用的开发中, 开源社区也做了大量的探索性工作,比如 Electron 开源项目,就尝试用 Chromium+Node.js 来搞定一切。但这个项目存在一些问题,究其原因,跟 Web 前端技术本身的局限性有关:所有的一切都离不开浏览器,尤其是 JavaScript 编程语言。

后来,我们在开源的浏览器引擎 WebKit 中,尝试引入了一些具有动态能力的标签,可以用来实现循环迭代、分支控制等功能。有了这个基础,我提出了一个大胆设想:何不干脆设计一种全新的标记语言?于是,就有了 HVML。

简单来讲,HVML 尝试用一种新的思路来解决前面的那个问题:

第一,将 Web 前端技术(主要是 DOM、CSS 等)引入到其他编程语言中,而不是用 JavaScript 替代其他编程语言。

第二,采用类似 HTML 的描述式语言来操控 Web 页面中的元素、属性和样式,而非 JavaScript。

在设计 HVML 的过程中,我有意使用了数据驱动的概念,使得 HVML 可以非常方便地和其他编程语言以及各种网络连接协议,如数据总线、消息协议等结合在一起。这样,开发者熟悉哪种编程语言,就使用这种编程语言来开发应用的非 GUI 部分,而所有操控 GUI 的功能,交给 HVML 来完成,它们之间,通过模块间流转的数据来驱动,而 HVML 提供了对数据流转过程的抽象处理能力。

这样,围绕 HVML 形成的应用框架,和传统的 GUI 应用框架以及 Web 前端技术都有显著的不同。传统的 GUI 应用,代码设计模式无外乎直接调用 C/C++或其他编程语言提供的接口,在一个事件循环中完成创建界面元素、响应用户交互的工作。Web 前端技术和传统 GUI 应用的最大区别在于描述式的 HTML 和 CSS 语言,但程序的框架在本质上是一样的——事件循环,而且必须使用 JavaScript 语言。

但 HVML 提供了一个完全不一样的应用框架。在完整的基于 HVML 的应用框架中,包含一个独立运行的图形用户界面渲染引擎,开发者通过编写 HVML 程序来操控渲染引擎,而 HVML 程序在 HVML 解释器中运行,并可以和其他已有的编程语言的运行时环境结合在一起,接收由其他编程语言程序生成的数据,并按照 HVML 程序的指令,将其转换为图形用户界面的描述信息或者变更信息。通过这样的设计,我们将所有涉及到图形用户界面的应用程序分开成两个松散的模块:

第一,一个和 GUI 无关的数据处理模块,开发者可以使用任何其熟悉的编程语言和开发工具开发这个模块。比如,涉及到人工智能处理时,开发者选择 C++;在 C++代码中,除了装载 HVML 程序之外,开发者无需考虑任何和界面渲染及交互相关的东西,比如创建一个按钮或者点击一个菜单后完成某项操作等的这类工作,开发者只需要在 C++ 代码中准备好渲染界面所需要的数据即可。

第二,一个或者多个使用 HVML 语言编写的程序(HVML 程序),用来完成对用户界面的操控。HVML 程序根据数据处理模块提供的数据生成用户界面的描 述信息,并根据用户的交互或者从数据处理模块中获得的计算结果来更新用户界面,或者根据用户的交互驱动数据处理模块完成某些工作。

通过这样的设计,HVML 应用框架将操控界面元素的代码从原先调用 C、C++ 等接口的设计模式中解放了出来,转而使用 HVML 代码来处理。而 HVML 使用类似 HTML 的描述式语言来操控 GUI 元素,通过隐藏大量细节,降低了直接使用低级编程语言操控界面元素带来的程序复杂度。

在 HVML 应用框架中,有一个独立运行的图形用户界面渲染器。我们将这个渲染器设计为类似字符控制台的哑设备,这样,可以将 HVML 程序和应用的其他模块从控制界面元素展现行为的细节中解放出来。举个例子,我们在字符终端程序的开发中,可以使用一些转义控制指令来设置字符的颜色、是否闪烁等,而字符终端程序无需包含任何处理字符颜色以及闪烁的代码——因为这些细节字符控制台(可能是硬件,也可能是一个伪终端程序)帮我们默默处理了。HVML 的界面渲染器也遵循同样的设计思路,HVML 程序创建好一个按钮,至于这个按钮显示出来是什么样子的,用户如何跟它交互,这些统统无需 HVML 程序来操心——一切由渲染器在给定的描述式语言(如 HTML、CSS)的控制下运转。这带来另一个好处,由于在界面渲染器中不包含任何的应用运行逻辑代码和敏感的数据,从某种程度上讲,提高了安全性。

有了这样的应用框架设计,HVML 可以让几乎所有的编程语言,不论是 C/C++这类传统编程语言,还是 Python 这类脚本语言,都可以使用统一的模式来开发 GUI 应用。而在此之前,不同的编程语言有不同的 Toolkit 库,这些 Toolkit 库的能力不同,接口不同,渲染效果参差不齐。而 HVML 可以将这些交互类应用的统一起来,甚至也包括那些传统的字符界面应用程序。我们还可以将 HVML 程序运行在另外一台远程设备上(或云端),而渲染器运行在和用户交互的设备上,从而形成一个新的远程应用(或云应用)解决方案。

尽管 HVML 最初是为了解决 GUI 应用的开发而设计,但随着开发的深入,我们引入了一个全新的栈式虚拟机作为 HVML 程序的假象运行机器。有了栈式虚拟机这一坚实的理论基础,我们为 HVML 赋予了通用计算的能力。也就说,HVML 不仅仅可以作为交互式应用的胶水语言,还可以当做通用的脚本语言使用。同时,由于我们为 HVML 提供了协程、并发执行等的现代编程机制,因此,HVML 还可以用于高并发的服务器软件的开发。

任重道远,开源协作是正道

完成了最初的设计与开发后,HVML 已经进入到了开源协作的新阶段,开发团队和社区还有很多工作要做。首要目的,便是实现 HVML 规范 1.0 定义的所有特性和接口。这项工作将在 2022 年内完成。另外,作为 HVML 技术栈的一部分,针对嵌入式系统的渲染器也已提上日程,将在年底随合璧操作系统的新版本一并发布。

当然,一个编程语言走向成熟并获得广泛应用将是一个漫长的过程。这需要构建一个强有力的开源协作社区,而成功的社区运营,又需要资金、人才等各方面的支持。这在国内尚无成功先例,更是一个需要长期实践的课题。

目前 HVML 社区非常活跃,很多小伙伴帮助我们开发了各个 Linux 发行版的打包脚本,还有小伙伴制作了教学视频。作为社区领导者,我目前最希望的便是能够获得足够数量的赞助资金,用这些资金来激励 HVML 社区的小伙伴们,使得社区可以尽快进入到良性循环当中。另外,也希望有更多的基础软件企业加入到 HVML 的开发当中,助力 HVML 尽快走向成熟。

关于未来,如果 HVML 技术得到大量开发者的认同,我相信找到合适的商业模式,也只是时间的问题。另外,围绕 HVML 创立一个适当规模的基础软件企业,也不一定非要由我去做。假如有更加擅长企业经营的人围绕 HVML 开发了新的产品,找到了一套行之有效的商业模式,成功融资甚至上市,我本人也会非常高兴。我想,这是成熟生态的一部分。

未来无需假设,投身其中,让自己的设想变成现实,才有可能书写历史。

 

Livox MID-360与FAST-LIO2实战:从驱动部署到参数调优的完整指南 激光雷达惯性里程计(LIO)是机器人定位与建图(SLAM)领域的核心技术,它通过紧耦合融合激光雷达点云与惯性测量单元(IMU)数据,实现高精度、低漂移的位姿估计。其核心原理在于利用IMU的高频数据预测运动,并用激光雷达的精确测距信息进行校正与优化,从而在快速运动或特征缺失场景下保持鲁棒性。这项技术的工程价值在于为自动驾驶、移动机器人及三维重建提供了可靠的前端里程计解决方案。针对Livox MID-360固态雷达与FAST-LIO2这一热门组合,其应用场景广泛覆盖了室内外导航与地图构建。本文聚焦于**驱动部署 阅读详情

相关推荐

Widar3.0复现日志(DFSExtractionCode)

需要使用的matlab基本功能

XiaoQiXiaoWei_J的博客 2439

魏永明: 三谈操作系统

2012年,借着阿里云操作系统被谷歌打压的事件,我写了有关操作系统的第一篇文章:《“自主”操作系统——为什么及如何》(见本文末尾原文链接)。2015年,是我比较闲的时候,...

Linux阅码场 2316

二、基于C语言的JPEG解码代码详解

// JPEG解码 // 输入JPEG后输出Bitmap #include <stdio.h> #include <stdlib.h> #pragma warning(disable : 4996) unsigned int BuffIndex; // JPEG数据的位置 unsigned int BuffSize; // JPEG数据的大小 unsigned int BuffX; // 图像的横向尺寸 unsigned int BuffY; //

m0_37633745的博客 4458

魏永明:五谈操作系统:为物联网设计

前情提要对《四谈操作系统》一文评论的回复在《四谈操作系统之国产七宗罪》一文中,我批判了国产桌面操作系统圈子的一些问题。此文除了在“开源操作系统百家谈”公众号上发表外,在其...

Linux阅码场 2477

为什么AI时代的优秀组织,都在学习Meta的Pod结构?看完秒懂

当AI技术重塑产业格局,企业协作正面临前所未有的挑战——层级繁琐、跨部门内耗、迭代滞后,传统组织模式早已难以跟上技术革新的步伐。作为全球AI原生企业的标杆,Meta独创的Pod组织模式,用“小而美”的自治单元打破困局,成为AI时代高效协作的典范。本文将从定义、运作、价值到未来演进,全面拆解Pod模式,为企业组织变革提供可参考的思路与路径。德鲁克曾说:“组织的功能就是让平凡的人做平凡的事。”而Meta Pod打破这一局限,通过去中心化、指标导向、跨界融合,让优秀人才产生“化学反应”。

Kiss_AIHR的博客 1182

camera QXXX架构

This article introduces the QCX camera architecture for Qualcomm’s latest automotive chips including SA8650. It elaborates the layered camera stack under QNX, HGY and HQX systems, covering client applications, stream manager, CamX components and hardware d

qq_39257814的博客 4546

飞漫软件十年回顾

wulujia's notepad rise and rise again until lambs become lions 首页 用户列表 搜索 注册 登录 防泄密观点 铁卷防泄密 您尚未登录。 主题: 活跃中 | 无回复 首页 » 拷贝粘贴 » 飞漫软件十年回顾 页次: 1 #

junecauzhang的专栏 1660

openclaw通俗入门系列4——智能体工作区

工作区 = 智能体的家,存放它的性格、记忆、技能。默认不是牢笼(可以用沙箱隔离)。建议放到私有 Git 备份,但绝对不要提交密钥!

m0_60605453的博客 463

北京飞漫软件创始人魏永明

北京飞漫软件创始人魏永明 2010-07-29 8:15 北京飞漫软件技术有限公司(简称“飞漫软件”)致力于为嵌入式设备集成商或者制造商提供世界一流的嵌入式图形技术、嵌入式浏览器技术、嵌入式 JAVA 技术以及相关开发工具。 飞漫软件成立于 2002 年 9 月。自成立以来,飞漫软件通过不懈努力,经过近七年的时间,将 MiniGUI 从一个不成熟的开源软件打造成了世界

junecauzhang的专栏 5178

mabl:AI原生测试自动化平台的基础使用

mabl是一个基于人工智能和机器学习的云原生测试自动化平台。它通过使用先进的技术,如机器学习,自动创建和执行测试,自动分析测试结果,并根据需求的变化自动适配和维护测试。这样的自动化过程极大地提高了软件测试的效率和准确性。mabl的口号是 “You write code, mabl tests”,意味着开发者只需关注编写代码,而测试工作则可以交给mabl来完成。mabl的平台支持多种测试类型,包括 Web、App、Api、可访问性和性能测试,使得团队能够更快速、更有信心地发布软件。

blues_C的博客 3661

YOLOv8/v9工业零件缺陷检测实战指南:从原理到产线部署

摘要:本文系统介绍基于YOLOv8/v9的工业零件缺陷检测技术,从工业质检背景与需求出发,详解缺陷检测原理、算法构建与模型训练,提供从数据集准备到移动端部署的全流程实操方案。包含多尺度检测、纹理分析等高级技术,适配工业相机的环境优化策略,以及完整质检系统代码实现。适合工业视觉领域新手与进阶开发者,助力快速构建高鲁棒性的缺陷检测系统。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1307

python开源好项目

优先看 cszmzh/taobao-data-analyze:它的 SpringBoot + Vue 架构与你最契合,可以帮你快速理解如何将 Python 的分析结果嵌入到你熟悉的全栈体系中。值得一看的点:它的 advisor.py 模块实现了具体的调价规则,比如“竞品价 < 本店售价 × 0.90 时建议降价”,你可以直接参考或修改这些业务逻辑。分析内容:使用百万级的淘宝用户行为数据集,进行 AARRR 模型分析、RFM 分析以及各个环节转化流失分析,正好对应了你提到的“看看用户在哪个环节流失了”。

在技术领域里形成深刻,全面的认识,知道来龙去脉,深入浅出的讲到实用点。 330

SAP 角色继承、派生

角色继承、派生 继承:是指两个角色Role形成母子关系。子角色的所有菜单、授权都源于母角色,并与母角色保持一致。母角色与子角色是1对多的关系。 继承关系:新建子角色继承母角色中的事务(后续通过复制,将母角色授权数据复制至子角色) 派生概念:将母角色中的授权数据派生至子角色中。 业务场景:方便批量修改子角色权限。若有继承关系,只需要修改母角色,然后通过母角色派生功能,从而批量修改子角色授权数...

willieyuan的博客 1万+

开源密码管理与双因素认证工具离线镜像合集

本集合汇总等开源密码管理与双因素认证相关离线包。侧重密码箱与 2FA,与「安全审计/渗透扫描」合集错开。

270

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

百度开源文心5.5 Flash Base:280B MoE 只激活 14B,4 步部署 + 3 个坑,微调还是等指令版

百度开源文心 5.5 Flash 基座权重:280B MoE 每 token 激活 14B,1M 上下文,同尺寸开源 Base 30 项基准多数领先。4 步部署(vLLM/SGLang completions 链路)+ 3 个高频坑 + 动手前 6 点核对清单,并给出微调 Base 还是等指令版的判断线。

weixin_50937681的博客 364

GitHub 开源趋势日报 | 2026-11-08

每日精选 GitHub Trending 热门项目,聚焦 AI 与大模型、Agent 智能体领域,带你用一篇文章看懂开源风向。

weixin_45631123的博客 408

云捷EMS开源能源管理系统JAVA实战,好用的能源管理系统

云捷EMS是一款开源能源管理系统,覆盖物联网网关、数据采集、分析与可视化全链路,支持50余种工业协议,适配水、电、汽、光伏等多类能耗设备。系统基于微服务架构,采用SpringBoot+Vue3技术栈,支持MQTT、WebSocket双通道采集,具备低代码大屏配置、实时数据与预计算分析能力,助力企业实现能耗监测、节能降耗与碳管理数字化,可直接部署或二次开发,适用于工厂、园区等高耗能场景。

weixin_42648890的博客 236

开源AI桌面助手哪个好?5类项目的能力、许可证与部署选型

从开源范围、产品定位、任务执行、模型接入、部署方式与许可证六个维度做一次横向梳理如果你正在寻找一款开源 AI 桌面助手,可能已经在 GitHub 上看到过不少项目。有些项目能够连接多个大模型,有些能够读取本地文件、执行命令,还有些可以调用浏览器、操作电脑,甚至让多个智能体协同完成工作。但这些项目并不完全属于同一类产品。例如,有的只是一个多模型聊天客户端,有的是能够直接执行任务的 AI Agent,还有的属于本地部署的 AI 管理平台。

sykdjs的博客 244

优雅草2026年10个开源鸿蒙工业软件项目五详解:鸿蒙星闪旋转设备振动监测节点

本项目聚焦旋转设备振动监测“最后一米”难题,基于开源鸿蒙与星闪技术,打造低功耗无线振动节点。采用ADXL355高精度传感器,5分钟周期采集3.2kHz原始波形,通过星闪上传至网关,由网关侧完成FFT分析、特征提取与基线对比,实现故障早期预警。打样目标包括16位采样、≥2周续航、丢包率可测,交付2个磁吸/螺栓节点及网关分析固件。未来将拓展至“振动+电流”双维监测,推动工业预测性维护在水运、排污等场景的低成本普及。

一颗优雅草科技-央千澈的优快云博客~只想无穷无尽的学习~作息早8-晚8 205

52万 Star 的“列表的目录”:sindresorhus/awesome 如何用一套治理规则,成为全球开源资源的信任锚点

awesome 是 Sindre Sorhus 维护的开源索引项目,无一行可运行代码,却以超 52 万 Star 长居 GitHub 第二。它作为“列表的目录”,通过严格治理(30 天考察期、awesome-lint 校验、CC0 许可、贡献者评审机制)筛选高质量资源清单,成为开发者寻找优质技术资源的可信入口。虽不保证内容实时性,但其“筛选即认证”的模式重塑了信息获取方式,推动形成整个 Awesome 生态规范。

下载资源或查看教程前,请务必阅读置顶的《免责声明》 456

让 Electron、Windows 桌面应用也能直接调用 uniCloud:unicloud-sdk 开源发布

摘要(148字): 为解决 Electron、Vue/React 项目及 Node.js 环境无法直接调用 uniCloud 的问题,开发者开源了 @yungot/unicloud-sdk。该 SDK 支持云对象、云函数、存储与登录态管理,兼容 Windows 桌面应用,通过设备身份签名与宿主桥机制保障安全,实现与 uni-app 一致的调用体验。已通过真实项目验证,支持 TypeScript、零依赖,适用于非 uni-app 场景的 uniCloud 接入。

IT开发 245

开源虚拟机与桌面虚拟化工具离线镜像合集

本集合汇总等开源虚拟机与桌面虚拟化相关离线包。不重分发 Oracle VirtualBox 专有二进制(PUEL),侧重 FOSS 生态与文档说明包。

233

【字节拥抱开源】Cola2:用连续隐变量重构语言模型,346B Token 跑出 60.10 八任务均分

Cola2 是一款基于连续隐变量的自适应语言模型,通过动态语义压缩与块因果扩散 Transformer(DiT)实现高效生成。它在346.03B token上训练,八项评测平均得分60.10,性能超越部分更大规模模型。其核心创新在于联合优化隐变量压缩与离散解码,支持受控扩展与稳定推理。项目提供完整权重、工具链及评测数据,适用于研究与应用。

weixin_41446370的博客 318

友好型开源模型SSM+Transformer 混合架构:Jamba 把 256K 长上下文塞进显存

**Jamba** 是 AI21 Labs 的 `Jamba` 混合 SSM-Transformer 开源大模型,原生 256K、Apache-2.0;本文讲清架构与部署,同档对标 Llama 5 / Qwen3.6。

雨1986的博客 344

qData 数据中台开源版 v1.6.6 发布:ETL 模块轻量化升级,优化定时任务磁盘占用问题

qData 数据中台开源版 v1.6.6 针对周期性数据集成任务的运维痛点,实现两项关键优化:一是拆分工具组件与 ETL 执行模块,减轻 JAR 包体积,提升部署与维护效率;二是修复定时任务中 ETL JAR 包持续累积问题,有效降低服务器磁盘占用。两项改进聚焦执行模块结构与运行过程管理,助力企业数据平台稳定、高效运行。

qiantongkeji的博客 272
上一篇: 开源安全的危机在于太相信 GitHub?——专访Apache之父&OpenSSF基金会总经理Brain Behlendorf
下一篇: 宫敏把自由软件和 Linux 带回中国
评论 20
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值