0

0

你在 DeepSeek,我在 deepin Coding

星夢妙者

星夢妙者

发布时间:2025-04-23 19:20:08

|

364人浏览过

|

来源于php中文网

原创

2025年春节期间,deepseek 引发的人工智能热潮依然炙热。各大巨头如百度、腾讯、阿里纷纷将 deepseek 整合进他们的产品中,而更多的竞争者也推出了自己的大模型,声称已经超越了 deepseek。面对这波接一波的消息,仿佛我们的世界即将被 ai 颠覆:ai 公务员、deepseek 推理、一体机 ai 智能体、裁员风波等,消息满天飞,似乎人类社会一夜之间将发生翻天覆地的变化。

作为开发者,我自然也会关注与 AI 相关的资讯。然而,信息量大了,心中难免有些困惑:一方面是 AI 的飞速进展,似乎一夜之间就能取代人类;另一方面,我又被工作中的具体问题所困扰。这段时间没有更新公众号,就是因为工作的影响。在这期间,我一直被浏览器的系统问题搞得焦头烂额,实在没有心思去写文章。

说到底,我碰到的就是大多数 C/C++ 程序员不愿面对的兼容性难题,特别是在国产化替代的浪潮下,操作系统和硬件平台日益增多,兼容性问题已经成了绕不开的痛点。

随着国产化软硬件的崛起,开发者不得不面对更多的平台支持问题。就拿 CPU 架构来说,有 x86(x64)、龙芯(LoongArch64、MIPS)、申威(SW64)、ARM(飞腾、华为麒麟等),操作系统则有 UOS(包括 deepin)和麒麟(包括 OpenKylin 等),不同版本的操作系统也在不断变化,像 UOS 有 1050、1060、1070 等版本。只要稍一数,就能有几十种软硬件平台的组合。

通常情况下,操作系统和系统库对跨平台的支持做得还不错,作为应用程序开发者,一般不会针对所有平台开发,而是选择主流平台组合,这样就能避免大多数兼容性问题。但是,如果碰到问题,就会是比较棘手的难题。因为同样的代码,在不同的平台上表现不一样,甚至崩溃,一般需要系统开发者配合一起查找问题。

说实话,尽管 Windows 常被吐槽,但从兼容性上看,Windows 做得还是相当不错的。而 Linux 系统版本众多,经常更新,导致兼容性相对较差。

说到兼容性,就不得不提 ABI(应用二进制接口)。ABI 兼容性是指不同版本的库之间保持一致性,确保旧版程序能够在新版库中正常运行。如果 ABI 不兼容,程序很可能会出现运行不正常的问题。

ABI 兼容动态库的 ABI 兼容性是指不同版本的动态库能保持一致的二进制接口,使得旧版本编译的程序能在新版库环境下正常运行。下面我们来看一下 ABI 兼容的几个关键点:

ABI 定义内容:ABI 包含了数据类型的大小、数据结构的内存布局、函数调用约定(参数传递、返回值处理)、符号命名规则、异常处理机制等。这些细节决定了程序如何正确地传递数据并接收返回值。动态库版本管理与符号版本控制:为了确保兼容性,很多动态库(如 glibc)采用符号版本控制机制。通过为每个符号赋予版本号,确保新旧版本共存时,程序会加载正确的版本。向后兼容性与 ABI:保持新版动态库在扩展功能时,不改变原有接口和行为,保持 ABI 向后兼容。开发者在更新库时,要确保原有接口不受影响。编译器与链接器的角色:编译时,程序根据动态库的头文件和符号信息生成调用代码,链接器会记录符号和版本信息,确保程序能在运行时加载正确的库。glibc 和 OpenSSL 在 ABI 兼容性方面做得很好,但问题在于,这些库变得越来越复杂,废弃的接口越来越多,导致库文件越来越大。于是,很多系统开始采用精简版的 C 库,例如 Android 使用 Bionic 库,BoringSSL 则从 OpenSSL 中分叉出来,删除了很多接口,但不提供 ABI 兼容。

由此可见,软件开发也是一个平衡的艺术,需要开发人员根据实际情况进行取舍。

sysroot 与系统兼容:sysroot 是嵌入式开发中引入的概念,指向一个目录,该目录模拟目标系统的根文件系统结构,包含了编译、链接、运行所需的头文件、库文件等。

在嵌入式开发中,开发者通常在一个平台上(如 x86 主机)进行开发,但目标平台可能是另一个架构(如 ARM)。由于平台架构不同,直接在主机上编译的程序无法在目标平台上运行,因此需要使用 sysroot 来确保编译的应用程序能够在目标系统上正常运行。

FlowSuno
FlowSuno

我们正在打造一个人人都能创造美妙音乐的未来。无需乐器,只需想象。从你的思想到音乐。

下载

sysroot 的作用包括:

提供一致性:模拟目标系统的文件结构,确保编译器和链接器使用正确的库和头文件。支持交叉编译:sysroot 为目标平台提供专用的库路径,确保生成的可执行文件能够调用目标系统的资源。简化构建流程:通过 sysroot,开发者可以统一管理编译依赖,减少环境配置错误的风险。Chromium 构建与 sysroot:Chromium 构建系统提供了一个 use_sysroot 选项。当 use_sysroot 设置为 true 时,Chromium 会下载一个 Debian Bullseye 版本的 sysroot 作为编译环境,帮助构建符合“最低公共平台”标准的二进制文件,从而确保它们能够在多个发行版上运行,包括 Debian、Ubuntu、Deepin 等。

Bullseye 的库版本相对稳定,且被多个发行版支持,这使得通过它编译的二进制文件在新版系统中能够兼容运行。Chromium 构建系统会对库依赖和编译选项进行严格控制,避免引入最新系统才有的特性,确保兼容性。

然而,sysroot 也并非万能。虽然它能够解决很多兼容性问题,但也存在一些挑战。例如,浏览器在 ARM 架构下开启沙盒时会崩溃,最终通过升级 sysroot 来解决。随着操作系统和库版本不断更新,如何更新 sysroot 中的库,确保与目标系统保持一致,依然是一个挑战。

玲珑应用解决方案:玲珑应用(Linglong Application)是近年来在国产操作系统中逐步推广的一种应用包格式。关于玲珑应用的介绍请参考我之前的文章:

国产系统之如意玲珑[将 QT 应用程序打包成如意玲珑软件包](将 QT 应用程序打包成如意玲珑软件包)

这里说一说玲珑应用在解决系统兼容性方面的几个突出的优势:

跨平台兼容性:玲珑包可以包含完整的应用程序及其所需的库文件,避免了依赖系统底层库的版本不同而引发的兼容性问题。简化部署:用户只需下载一个玲珑包,就能够直接在目标操作系统上运行,不需要担心操作系统的版本、库文件等环境问题。系统资源隔离:玲珑包将应用程序和其依赖封装在一个独立的环境中,避免了与其他系统程序的冲突,提高了系统的稳定性。

结语:在人工智能如 DeepSeek 一样迅猛发展的今天,系统软件开发者依然在跨平台兼容性、系统库 ABI 兼容性和 sysroot 管理等问题上面临挑战。你在 DeepSeek,我在 deepin Coding,尽管我们的方向不同,但我们都在各自的领域努力探索、前行,我们都有光明的未来。

你在 DeepSeek,我在 deepin Coding

相关专题

更多
视频后缀名都有哪些
视频后缀名都有哪些

视频后缀名都有avi、mpg、mpeg、rm、rmvb、flv、wmv、mov、mkv、ASF、M1V、M2V、MPE、QT、VOB、RA、RMJ、RMS、RAM、等等。更多关于视频后缀名的相关知识,详情请看本专题下面的文章,php中文网欢迎大家前来学习。

3506

2023.10.31

C++ Qt图形开发
C++ Qt图形开发

本专题专注于 C++ Qt框架在图形界面开发中的应用,系统讲解窗口设计、信号与槽机制、界面布局、事件处理、数据库连接与跨平台打包等核心技能,通过多个桌面应用项目实战,帮助学员快速掌握 Qt 框架并独立完成跨平台GUI软件的开发。

68

2025.08.15

C++ 图形界面开发基础(Qt方向)
C++ 图形界面开发基础(Qt方向)

本专题系统讲解 使用 C++ 与 Qt 进行图形界面(GUI)开发的核心技能,内容涵盖 Qt 项目结构、窗口组件、信号与槽机制、事件处理、布局管理、资源管理,以及跨平台编译与打包流程。通过多个小型桌面应用实战案例,帮助学习者掌握从界面设计到功能实现的完整 GUI 开发能力。

63

2025.12.05

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

307

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

536

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

17

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

24

2026.01.06

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

58

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号