About neohope

一直在努力,还没想过要放弃...

代码跨平台怎么实现?6大核心方案+场景选型,告别重复开发

代码跨平台实现方式


代码跨平台怎么实现?6大核心方案+场景选型,告别重复开发

做开发时最头疼的莫过于 “一套代码多端适配”——Windows、Mac、Linux 要适配,iOS、Android 要兼容,甚至还要兼顾浏览器和小程序。重复写多套代码不仅效率低,还容易出现兼容性 bug。其实跨平台开发早已不是新鲜事,不同技术方案各有优劣,关键是选对适配场景。今天就拆解代码跨平台的核心实现方式,帮你快速找准适合自己的方案。

一、编译适配型:一次编码,多平台编译
核心逻辑:编写统一源码,通过专用编译工具或语言特性,直接编译出不同平台的可执行文件,性能接近原生。
代表技术:
语言原生支持:Go(编译 + 运行时,直接编译为各平台二进制文件)、Rust(跨平台编译工具链,适配多系统)、Java(中间码 + JVM 运行时,一次编译多平台运行)、.NET Core(中间码 + 运行时,跨 Windows/Mac/Linux);
编译工具辅助:CMake(搭配标准库,统一管理多平台编译流程)、交叉编译 ToolChain(如 MinGW、Cygwin,实现跨系统编译);
优势:性能强,接近原生应用;代码复用率高,无需大幅修改;
适用场景:后端服务、工具类软件、高性能应用(如 Go 开发的跨平台服务器,C+++CMake 开发的桌面工具)。

二、跨平台框架型:框架封装,屏蔽平台差异
核心逻辑:基于统一框架开发,框架底层适配不同平台的 API,开发者无需关注平台细节,专注业务逻辑。
代表技术:
桌面 / 多端框架:QT(编译 + 跨平台框架,适配桌面 + 嵌入式,支持 C++/QML);
移动跨平台框架:React Native(JS 调用原生渲染,兼顾跨平台与原生体验)、Flutter(自绘渲染引擎,跨 iOS/Android/ 桌面 / 网页,UI 一致性强);
优势:开发效率高,一套代码覆盖多端;UI 适配性好,框架已处理平台差异;
适用场景:移动 APP(如电商 APP、工具类 APP)、桌面应用(如 QT 开发的跨平台客户端)、中小型项目(Flutter 快速迭代上线)。

三、虚拟层/模拟型:通过虚拟环境兼容多平台
核心逻辑:在目标平台上搭建虚拟层或模拟器,让原本不兼容的代码在虚拟环境中运行,无需修改源码。
代表技术:
虚拟机:VMware、VirtualBox、Parallels(在 Windows/Mac上虚拟出其他操作系统,运行对应平台软件);
兼容层:Wine(在Linux/Mac上模拟 Windows 运行环境,运行 Windows 程序)、WSL(Windows子系统,在Windows上运行 Linux 环境及软件);
模拟器:Android 模拟器(在PC上模拟Android环境,运行APP);
优势:无需修改原有代码,直接复用现有应用;门槛低,快速实现兼容;
注意点:性能有损耗,不如原生流畅;部分复杂应用可能出现兼容性问题;
适用场景:现有应用跨平台运行(如Windows软件在Linux上通过Wine运行)、开发测试(Android模拟器调试APP)。

四、超级APP生态型:依托生态,跨OS运行
核心逻辑:在微信、支付宝等超级APP提供的SDK或生态内开发,借助超级APP的跨平台能力,实现 “一次开发,多OS适配”。
代表技术:微信跨OS、支付宝跨OS(通过其提供的 SDK 开发小程序或内嵌应用,自动适配 iOS/Android);
优势:无需考虑底层平台适配,超级 APP 已完成兼容;流量红利,可直接触达超级 APP 的海量用户;
适用场景:小程序、内嵌应用(如微信小程序、支付宝生活号应用)、轻量级交互场景。

五、Web标准型:基于浏览器,跨平台无压力
核心逻辑:采用 HTML/CSS/JS 开发,依托浏览器的 Web 标准,实现 “一次开发,所有浏览器兼容”,间接跨所有支持浏览器的平台。
代表技术:浏览器 + Web 标准、H5 Hybrid(APP 内嵌 WebView,混合原生与 Web 页面);
优势:兼容性极强,覆盖 PC / 移动 / 平板所有浏览器;开发成本低,技术栈普及;
注意点:性能依赖浏览器,复杂交互体验不如原生;部分原生 API 需通过桥接调用;
适用场景:网页应用、轻量级 APP、跨平台展示型场景(如官网、数据可视化页面、Hybrid APP 的展示模块)。

六、包管理与环境配置型:统一环境,简化适配
核心逻辑:通过包管理工具统一管理依赖,确保不同平台的开发环境一致,减少因环境差异导致的适配问题。
代表技术:MacPorts、Homebrew(Mac 平台包管理工具,快速安装适配 Mac 的开发依赖);
优势:简化环境配置,快速搭建跨平台开发所需依赖;统一依赖版本,避免 “本地能跑,线上报错”;
适用场景:辅助跨平台开发(如通过 Homebrew 在 Mac 上安装 CMake、MinGW 等跨平台编译依赖)。

总结:跨平台方案选型核心逻辑 ——“场景决定方案”
不用盲目追求 “万能方案”,选型时重点关注3点:
1、性能需求:高性能场景(后端、工具软件)选编译适配型(Go/Rust/CMake);中低性能需求(展示型 APP、小程序)选 Web 标准或超级 APP 生态;
2、多端覆盖范围:需覆盖移动 + 桌面选 Flutter/QT;仅移动端选 React Native/Flutter;仅桌面端选 QT/Go 编译;
3、开发效率:快速迭代选 Flutter/React Native;追求长期稳定、低维护成本选编译适配型或 QT。

跨平台开发的核心是 “用最低成本实现多端兼容”,不同方案没有绝对优劣,只有是否适配场景。选对方案,既能减少重复开发,又能保证产品体验。

你在跨平台开发中遇到过哪些兼容性坑?或者你更倾向于哪种实现方案?欢迎在评论区留言交流~

DevSecOps实战指南:把安全嵌入开发全流程,从源头规避风险

开发安全DevSecOps


DevSecOps实战指南:把安全嵌入开发全流程,从源头规避风险

传统开发中,“安全” 往往是上线前的 “临门一脚”—— 发现漏洞再返工,不仅延误工期,还可能因紧急修复引入新问题。而 DevSecOps 的核心逻辑是 “安全左移 + 持续防护”,将安全需求、检测、加固融入开发全生命周期,让安全成为开发的 “内置功能” 而非 “额外负担”。今天就拆解 DevSecOps 的核心流程与关键技术,帮你搭建从计划到适应的全链路安全体系。

一、计划阶段:安全前置,从源头定规则
开发未动,安全先行,这一步的核心是 “明确安全需求,搭建防护框架”:
梳理安全需求与设计规范,结合业务场景制定安全编码规范(如避免 SQL 注入、XSS 攻击的编码准则);
开展威胁模型与风险评估,识别潜在攻击面(如核心接口、数据存储环节),提前规划防护策略;
统一安全框架与 API,选用经过安全验证的组件和工具,避免因基础架构存在漏洞埋下隐患;
全员开展安全培训与宣导,提升开发、测试、运维人员的安全意识,让安全理念贯穿团队。

二、创建阶段:编码防护,实时规避基础漏洞
编码过程中嵌入安全检测,及时发现并修复漏洞,避免漏洞积累:
开发工具集成安全插件:在 IDE 中安装静态扫描(SAST)插件、恶意组件 / 函数库扫描(SCA)工具,实时检测代码漏洞、依赖组件漏洞;
遵循安全编码规范:通过自动化工具校验代码是否符合安全准则,比如禁止硬编码密钥、规范输入校验逻辑;
搭建纵深防御体系雏形:提前规划 WAF、HIDS、RASP 等安全工具的部署方案,确保后续开发与防护工具兼容。

三、验证阶段:全面检测,不留安全死角
测试环节不仅验证功能,更要全面排查安全漏洞,核心是 “多维度检测,精准定位问题”:
自动化安全测试:通过动态扫描(DAST)模拟攻击场景,检测运行时漏洞;用交互式安全检测(IAST)结合静态与动态优势,提升漏洞检测准确率;
专项渗透测试:开展外部渗透测试,模拟黑客攻击行为,挖掘隐藏漏洞(如逻辑漏洞、权限绕过);
敏感信息与配置检查:检测代码中是否存在敏感信息泄露(如密码、接口密钥),校验系统安全加固配置是否合规;
容器与镜像安全:针对容器化部署场景,进行镜像扫描,排查基础镜像中的漏洞,确保容器运行环境安全。

四、预发布与发布阶段:安全门禁,守住上线最后一关
上线前的安全校验与发布后的持续防护,确保系统在生产环境中安全稳定:
预发布阶段:设置安全门禁,只有通过所有安全测试(漏洞修复率 100%、配置合规)的版本,才能进入发布流程;
发布阶段:进行签名校验,防止部署过程中代码被篡改;同步开启运行时安全检测(如 RASP 实时拦截攻击);
灰度发布防护:发布初期逐步放量,结合 UEBA(用户与实体行为分析)监控异常行为,快速响应潜在安全问题。

五、运营阶段:检测响应,快速处置安全事件
系统上线后,安全防护不能松懈,核心是 “实时监控、快速响应、持续优化”:
实时检测与预警:通过安全感知平台收集漏洞情报,结合日志分析,实现漏洞分析预警与检测响应综合分析;
应急响应机制:建立安全事件处理流程,一旦发生漏洞攻击、数据泄露等事件,快速启动应急方案,减少损失;
持续优化迭代:根据安全事件复盘结果,优化安全技术、工具与策略;动态调整纵深防御体系,适配新的业务场景与攻击手段;
合规与风险再评估:定期开展系统漏洞扫描、风险评估,确保系统符合行业安全合规要求,及时应对新的安全威胁。

总结:DevSecOps 的核心逻辑 ——“安全不是负担,而是生产力”
DevSecOps 不是 “给开发加活”,而是通过 “提前规划、实时检测、持续优化”,将安全成本分摊到开发全流程,避免后期返工的高额代价。其核心是 “人人都是安全员”:开发人员关注编码安全,测试人员聚焦漏洞检测,运维人员保障部署与运行安全,形成全链路安全闭环。
随着攻击手段的不断升级,只有将安全深度融入开发流程,才能从源头抵御风险,让系统在高并发、复杂环境中稳定运行。

你在落地 DevSecOps 时遇到过哪些难点?是工具集成问题还是团队意识磨合?欢迎在评论区分享你的经验~

覆盖全场景的安全防护指南:从网络到数据,企业必知的常见安全举措

常见安全举措


覆盖全场景的安全防护指南:从网络到数据,企业必知的常见安全举措

在数字化时代,网络攻击、数据泄露、恶意软件入侵等风险无处不在 —— 小到员工弱口令导致账号被盗,大到 APT 高级持续威胁窃取核心机密,安全问题一旦爆发,可能给企业带来毁灭性损失。其实安全防护的核心是 “全方位、无死角”,从网络边界到终端设备,从数据存储到开发流程,都需要建立对应的防护机制。今天就拆解企业常见的安全举措,帮你搭建全面的安全防护体系。

一、网络安全:筑牢 “第一道防线”,抵御外部入侵
网络是企业与外界连接的通道,也是攻击的主要入口,核心目标是 “阻止非法访问、过滤恶意流量”:
1、边界防护:部署 NGFW 下一代防火墙、WAFWeb 应用防火墙、DDoS 防火墙,精准拦截恶意请求、SQL 注入、暴力破解等攻击;启用 DNS 防护,防范域名劫持、DNS 污染等风险;

2、入侵检测与响应:通过 IDP 入侵检测、IPS 入侵防御系统实时监控网络流量,发现异常行为及时告警;搭建蜜罐系统,诱捕黑客并收集攻击特征,为防护优化提供依据;

3、网络隔离与访问控制:采用网络隔离、网闸技术,将核心业务网络与外网、办公网络物理或逻辑隔离,减少攻击面;通过上网行为管理,管控员工网络访问权限,禁止访问高危网站;

4、流量与安全感知:部署安全感知探针,实时分析网络流量,结合威胁情报,提前预警 APT 高级持续威胁等隐蔽攻击;建立 SOC 安全运营中心,集中监控网络安全态势。

二、主机与终端安全:守住 “内部阵地”,防范终端风险
主机(服务器、虚拟机、容器)和终端(电脑、移动设备、哑终端)是数据存储和业务运行的载体,也是攻击的重要目标:
1、安全配置与加固:制定主机、容器、中间件的安全基线,统一配置安全策略(如关闭无用端口、禁用高危服务);通过终端配置管理、服务器配置管理,确保所有设备合规;

2、恶意软件防护:安装杀毒软件、恶意软件防护工具,定期更新病毒库,实时拦截病毒、木马、勒索软件等恶意程序;对终端进行磁盘加密,防止设备丢失导致数据泄露;

3、终端接入与管控:实施终端接入审计,只有合规设备才能接入企业网络;管控移动设备、云桌面、非标机、哑终端的安全,禁止未授权设备接入;通过弱口令管控、账号管控,规范终端账号使用;

4、特殊终端防护:重点保障移动设备安全、移动 APP 安全,采用数据加密、水印、截屏与粘贴板管控等技术,防范移动场景下的数据泄露。

三、数据安全:守护 “核心资产”,全生命周期防护
数据是企业最宝贵的资产,安全防护需覆盖 “存储、传输、加工、销毁” 全生命周期:
1、数据分类分级与管控:对数据进行分类分级(如公开数据、内部数据、核心机密数据),针对不同级别制定差异化防护策略;实施数据防泄漏(DLP)技术,监控并阻断网盘泄密、邮件外发、打印等场景的数据泄露;

2、存储与备份安全:保障数据库安全、大数据安全,启用数据库审计,监控数据访问与操作;定期对数据进行备份,并验证恢复效果,确保数据损坏或丢失后能快速恢复;规范数据销毁流程,防止废弃数据被非法获取;

3、数据传输与加工安全:采用 SSL 网关、加密连接等技术,确保数据在传输过程中不被窃取或篡改;加强数据加工过程中的安全管控,防止加工环节的数据泄露或篡改;

4、身份与访问控制:通过 IAM 身份认证、统一身份认证、EAM 企业身份与访问管理、IDaaS 云身份认证、CIAM 用户身份认证等系统,严格管控数据访问权限,遵循 “最小权限原则”;采用生物识别等强认证方式,提升身份认证安全性。

四、开发安全:从 “源头把控”,避免代码与流程漏洞
很多安全风险源于开发阶段的漏洞,核心是 “将安全融入开发全流程”:
1、SDL 安全开发生命周期:在需求、设计、编码、测试、部署等各个阶段嵌入安全活动,从源头减少漏洞;

2、代码安全检测:采用静态扫描、动态扫描技术,在编码阶段发现并修复代码漏洞(如缓冲区溢出、逻辑漏洞);重视源码安全,规范代码管理流程,防止源码泄露;

3、DevSecOps 集成:将安全测试融入 CI/CD 流水线,实现 “自动化安全检测、持续合规”;在接口开发阶段进行接口安全测试与审计,防范接口未授权访问、参数篡改等风险。

五、安全管理与审计:健全 “制度保障”,实现合规与追溯
技术防护离不开制度和管理的支撑,核心是 “规范流程、明确责任、全程追溯”:
1、安全制度与基线:制定安全准入标准、SOP 操作流程、安全配置管理规范,让所有安全工作有章可循;建立安全基线,定期开展主机扫描、漏洞扫描,确保设备和系统合规;

2、安全审计与追溯:开展数据库审计、接口审计、流量审计、日志审计、终端接入审计、上网行为审计,全面记录安全事件和操作行为,为事故追溯提供依据;启用 SEM 安全信息和事件管理系统,集中分析审计日志;

3、身份与权限管理:通过堡垒机,集中管控服务器、数据库等核心设备的访问权限,记录操作日志,实现 “操作可追溯、权限可管控”;部署域控系统,统一管理企业账号,规范权限分配;

4、应急响应与宣导:建立 SRC 安全应急响应中心,制定安全事件应急预案,发生安全事故时快速响应、减少损失;加强员工安全宣导、教育与考试,提升员工安全意识,避免因人为失误导致安全风险。

六、特殊场景安全:覆盖 “薄弱环节”,补齐防护短板
除了核心场景,以下特殊场景也需重点防护,避免成为安全短板:

1、办公场景安全:管控邮件、网盘、打印等办公工具的安全,防范办公过程中的数据泄露;建立员工看板,展示员工安全合规情况,督促员工遵守安全制度;

2、虚拟化与容器安全:加强虚拟机安全、容器安全,防范容器逃逸攻击;采用沙箱安全技术,隔离高危操作和未知程序,降低攻击影响;

3、反欺诈与认证安全:部署反欺诈系统,防范账号盗用、交易欺诈等风险;采用 eID 认证等强认证方式,提升关键操作(如转账、数据导出)的安全性。

总结:安全防护的核心逻辑 ——“技术 + 制度 + 人” 三位一体
企业安全防护不是单一技术的堆砌,而是 “技术防护(网络、主机、数据、开发)+ 制度管理(基线、审计、应急)+ 人员意识(宣导、教育)” 的有机结合。

核心原则是 “最小权限、纵深防御、合规可控”:通过多层防护减少攻击面,通过制度规范操作行为,通过技术手段实时监控响应,最终实现 “事前预防、事中告警、事后追溯” 的全流程安全保障。

你所在的企业在安全防护中遇到过哪些痛点?欢迎在评论区分享~

从狼烟到5G:人类数据传输进化史,6大核心方式看懂信息传递的变迁

常见数据传输方式


从狼烟到5G:人类数据传输进化史,6大核心方式看懂信息传递的变迁

从古代的狼烟传警、旗语通讯,到如今的 5G 高速下载、卫星实时传输,数据传输的方式一直在迭代升级。本质上,人类的发展史就是一部 “让信息传递更快速、更精准、更遥远” 的进化史。今天就拆解常见的数据传输方式,看看我们是如何一步步打破空间限制,实现 “万物互联” 的。

一、传统原始传输:依赖自然与人力,传递简单信息
在技术落后的年代,数据传输只能借助自然现象或人力物力,核心是 “传递关键信号,而非复杂数据”:
视觉传输:最直观的原始方式,通过视觉信号传递信息。比如狼烟(边境告警)、旗语(战场或航海短距离通讯)、二维码(现代视觉延伸,快速存储并传递文本信息);
声音与震动传输:利用声波或机械振动传递信号,比如古代的号角、锣鼓(传递指令),现代的声波传输(近距离设备配对)、机械振动(特殊场景下的简单信号传递);
触觉与生物质传输:通过身体接触或生物信息传递,比如盲文(触觉识别文字)、气味 / 信息素(生物间的本能信号传递);
介质携带传输:靠实体介质承载信息,人力或物力传递,比如书本信件、竹简(古代文字记录与传递),这是早期 “数据存储 + 传输” 的结合形式。

二、有线传输:依托物理线路,稳定高效的 “信息通道”
工业革命后,有线传输技术出现,通过物理线路构建稳定的传输通道,成为现代通讯的基础:
传统有线:以电线、网线为载体,比如电话线(早期语音与低速数据传输)、网线(以太网传输,办公与家庭网络核心)、电力猫(借助电线实现数据传输,无需额外布线);
高速有线:为满足大容量、高速传输需求,出现光纤(利用光信号传输,带宽大、抗干扰,支撑互联网骨干网)、闭路电视线路(早期视频信号传输);
优势:传输稳定、抗干扰能力强、速度快(尤其是光纤);
适用场景:固定办公场景、家庭网络、互联网骨干网、长距离大容量数据传输(如企业数据中心互联)。

三、无线短距离传输:摆脱线路束缚,适配近距离互联
随着移动设备普及,无线短距离传输技术解决了 “设备间无绳连接” 的需求,核心是 “便捷、快速配对”:
代表技术:蓝牙(设备配对、文件传输,如耳机、音箱连接)、WIFI(局域网无线互联,家庭 / 办公场景高速上网)、NFC(近场通信,如手机支付、设备快速配对)、红外 IrDA(早期设备遥控,如电视遥控器)、超宽带 UWB(高精度定位 + 高速传输,如智能家居互联)、Zig-Bee(低功耗、低速率,适合物联网设备,如传感器通讯);
优势:无需布线、使用灵活、配对便捷;
适用场景:移动设备互联、智能家居、物联网感知层、近距离文件传输与遥控。

四、无线远距离传输:打破空间限制,实现全球互联
无线远距离传输技术让信息突破地域限制,从 “点对点” 走向 “点对面” 的广域覆盖:
蜂窝通讯:面向移动终端的广域无线传输,从 2G GSM(语音 + 短信)、2.5G Edge(低速数据)、3G CDMA(初步互联网访问)、4G LTE(高速移动上网、视频通话),到 5G(超高速、低延迟,支撑物联网与高清视频),持续迭代升级;
卫星通讯:通过卫星作为中继,实现全球无死角覆盖,比如远洋航行、偏远地区的通讯,以及灾害场景下的应急通讯;
物联网专用:针对物联网设备低功耗、广覆盖需求,出现 LoRaWAN、NB-IoT、SIGFOX 等技术,支撑海量传感器数据传输(如智慧农业、环境监测);
传统无线广播:如调频 FM、调幅 AM、电视及数据广播,属于 “一对多” 的单向远距离传输,主要用于信息发布。

五、现代介质传输:实体与数字结合,大容量数据迁移
虽然无线传输普及,但实体介质传输仍在特定场景发挥作用,核心是 “大容量、离线传输”:
代表介质:U 盘、硬盘、光盘(现代实体存储介质,用于离线数据拷贝、大容量文件迁移,如企业数据备份、影视文件传输);
优势:不依赖网络、传输容量大、安全性高(离线传输减少泄露风险);
适用场景:无网络环境下的数据迁移、大容量文件备份与传输、敏感数据的离线传递。

六、电磁波传输:无形的 “信息载体”,支撑无线通讯核心
无论是无线短距离还是远距离传输,核心载体都是电磁波:
电磁波作为无形的 “信息桥梁”,承载着无线电波、微波、红外光等信号,实现信号的远距离传播;
从早期的无线电广播,到如今的 5G、卫星通讯、WIFI,本质上都是通过调制电磁波的频率、振幅,携带数据信息并传输;
电磁波的特性(如频率、波长)决定了传输距离、带宽和抗干扰能力,不同场景下选择不同频段的电磁波适配需求。

总结:数据传输的进化逻辑 ——“更快、更远、更便捷、更海量”
从原始的狼烟旗语,到如今的 5G、卫星互联,数据传输的进化始终围绕一个核心:打破空间、速度、容量的限制。有线传输保障稳定与高速,无线传输提供灵活与广覆盖,实体介质传输补充离线与大容量场景。
未来,随着 6G、量子通讯等技术发展,数据传输将朝着 “超高速、超低延迟、全球无缝覆盖” 的方向演进,进一步支撑物联网、元宇宙、远程医疗等新兴场景。

你平时最常用哪种传输方式?有没有体验过特别便捷或印象深刻的传输技术?欢迎在评论区分享~

WSL2中apt升级systemd时报错:无法锁定passwd文件

1、环境:
Windows10+WSL2+Ubuntu24
PS:另一台电脑Windows11+WSL2+Ubuntu24,不会报错

2、再现方式及错误信息

# apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
...
...
Setting up systemd (255.4-1ubuntu8.8) ...
Initializing machine ID from random generator.
Failed to take /etc/passwd lock: Invalid argument
dpkg: error processing package systemd (--configure):
installed systemd package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
systemd
E: Sub-process /usr/bin/dpkg returned an error code (1)

3、错误发生原因
systemd升级的脚本,会调用systemd-sysusers,systemd-sysusers会尝试通过fcntl锁定文件,但WSL中fcntl实现效果与Linux中不同,导致脚本执行失败。
更进一步的解释:
Linux中文件锁是基于文件描述符的,子进程会自动继承该文件锁。
Windows中文件锁是基于进程的,子进程需要自行获取新的文件锁。
WSL中,实现方式,更接近与Windows,重复获取同一个文件的锁自然是失败的。

openat(AT_FDCWD, "/etc/.pwd.lock", O_WRONLY|O_CREAT|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC, 0600) = 3
fcntl(3, F_OFD_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=0}) = -1 EINVAL (Invalid argument)

4、如何绕过该错误

# 原文在此:https://github.com/microsoft/WSL/issues/10397

# 切换到/bin
# 将systemd-sysusers修改为systemd-sysusers.org
# 将systemd-sysusers做成一个echo的符号链接(用于欺骗升级脚本,让其以为得到了正确的结果)
# 切换回之前的目录
cd /bin && mv -f systemd-sysusers{,.org} && ln -s echo systemd-sysusers && cd -

# 修复包依赖
apt --fix-broken install

# 继续升级
apt-get upgrade

医疗大模型数据防护

医疗大模型训练数据,除了脱敏之外,至少还要做下面的工作
1、完整的医疗数据,即便做了基础的去标识化工作,也很容易反向推断定位到某个个体,所以要进一步加强:泛化(32岁改为30~40岁)、模糊、并引入噪声
2、医生不是神,并非所有的诊断都是对的、并非所有治疗方案都是最佳的,不合适的数据剔除很难
3、医疗数据的归属权有争议(极端一些,比如一个人在一家医疗机构做了全基因测序,测序结果是这家医疗机构的吗),需要获取患者授权,最好能给予收益分成
4、医学伦理、社会道德、大众接受程度这些问题,要考虑在前面
5、医疗数据在部分国家地区是不允许高度集中的,分散在各机构服务器中(医院、体检机构、公卫机构),所以要数据不动模型动,采用类似联邦学习的技术

医疗健康场景下Constitutional AI规则

1、生命优先,患者安全第一,推荐风险较低的方案,提醒及时就医
2、保持大模型的专业及严谨性,不得针对训练边界之外的病种给出建议,更不可随意发挥
3、医学建议要透明可解释,要能溯源到教材、规范、病例和高可信的论文等材料
4、大模型仅为辅助工具,关键节点包括处方、医嘱、手术等,最终决策权还给医生
5、尊重患者的尊严与自由
6、保护隐私,遵守相关法律
7、保障患者知情权,说明大模型的局限性及潜在风险
8、符合道德及医学伦理,公平无歧视
9、如果面向患者,那输出要更有温度,不要过于冷漠