登录社区云,与社区用户共同成长
邀请您加入社区
国产数据库市占率逼近30%,标志着“能否用”问题基本解决,核心矛盾转向“如何换、换后怎么验”。迁移瓶颈已从数据库替换转移至应用适配,SQL方言、分页语法、连接池等细节导致改造量大且分散;中间件与操作系统组合兼容性常被低估;85%/65%采购比例不等于存量替换进度。建议先盘点系统底数,按成本效益排序迁移,建立可复用的适配检查表,提前锁定关键组合,将工程细节作为成败关键。
本文系统总结了Linux文件操作与编辑工具的核心知识点,涵盖文本查看、统计、比较、剪切与搜索命令(如cat、grep、diff、awk、sed),深入解析正则表达式元字符及BRE/ERE差异,详述awk与sed的文本处理能力,介绍Vim编辑器三模式切换与常用命令,并简要说明gcc编译流程。配套习题解析强化了正则匹配、find命令使用、文件操作权限等关键概念,全面覆盖Linux文本处理与基础编程技能
这种方式不验证密码,靠的是操作系统身份:操作系统能登录,Oracle 就认为你是 SYS。它不依赖监听器,也不依赖密码文件,数据库只要实例起来了(哪怕只是 mount / nomount 状态)就能连上。它是个纯命令行客户端,没有花哨的界面,所有操作靠敲命令完成。切换时会先自动提交当前未提交事务,再断开重连,会话上下文(如 alter session 设置)全部丢失,等于重新开始一个会话。断开当前
操作系统是管理计算机硬件与软件资源、合理调度各类作业、方便用户使用的程序集合。
天谋科技的 TimechoDB 已列入《安全可靠测评结果公告(2026年第2号)》分布式数据库名单,并完成对华为鲲鹏、飞腾、兆芯、海光、龙芯、申威等国产CPU,以及 openEuler、银河麒麟、统信UOS等主流国产操作系统的兼容适配,兼容认证达40余款。在中国恩菲“恩菲MIM+”工业互联网平台项目中,面对单电解区域管理359台设备、4971个测点、存储超过327亿条数据的真实工况,系统在13通道
在构建自主智能体的宏伟蓝图中,我们既渴望大模型展现出强大的计算机交互与代码求解能力,又必须对其不可控的概率与生成行为保持敬畏与警惕。将 Agent 代码执行器建立在“基于 gVisor 用户态内核虚拟化 + 最小特权网络文件全隔离”的现代沙箱之上,就如同在实验室内为烈性病毒搭建了一座具备负压过滤与多重物理气闸的 P4 级生物防护舱。唯有将边界扎牢在操作系统底层,方能让 AI Agent 在安全的轨
安全攻防的本质往往隐藏在最底层的协议规范与时序细节之中。DNS 重绑定不是某种神秘的黑魔法,它仅仅是利用了应用程序开发者对网络协议栈“抽象层”的过度信任与时间差疏漏。唯有深入操作系统的底层 Socket 握手阶段,打破“检查与使用割裂”的逻辑幻象,用原子性的底层控制构筑防线,方能彻底终结 SSRF 这个缠绕企业内网多年的幽灵漏洞。
操作系统内存32G,数据库内存128M,业务几乎所有操作均直接读取磁盘,耗尽了操作系统资源。业务系统卡慢,数据库服务器内存及cpu均耗尽,占用资源的进程均为数据库进程。数据库内存修改为8G,重启库后,业务恢复正常。–检查授权文件,确保在有效期内。
姿态角旋转的类别主要涉及有内旋(欧拉角)和外旋(固定角),姿态角按照旋转轴是x轴,y轴和z轴的顺序可以通俗的叫做横滚角(roll)、俯仰角(pitch)和航向角(heading/yaw)。
在底层攻防演进的三十余年里,系统安全工程师与二进制渗透研究员之间的较量,本质上是一场关于“内存状态可信度”的博弈。早期的栈溢出漏洞只需要一段简单的 Shellcode 覆盖返回地址即可轻易拿到 Root 权限,而今天,在任何一台现代主流 Linux 发行版服务器上,想要复现上世纪九十年代经典的 Aleph One 式溢出攻击几乎已不可能。
在生产环境中维护承载千万级高并发的大型 Redis 集群时,运维与架构团队经常会遭遇一种令人困惑的资源危机:通过命令查看实例状态,(Redis 实际存储数据占用的内存)显示仅有 16GB,但 Linux 宿主机通过top或ps查看到的进程物理常驻内存(RSS)却已经高达 45GB,内存碎片率指标飙升至 2.8 甚至更高。这种严重的内存虚高现象不仅会极大挤占宿主机的可用资源,甚至可能直接触发操作系统
注册服务:oradim -new -sid orcl -intpwd test -startmode auto。确保配置文件存在:dir %ORACLE_HOME%\network\admin\listener.ora。其上之前安装了oracle服务,所幸安装在d盘。操作系统重做后,需要重新注册oracle服务。删除旧服务:oradim -delete -sid orcl。一台数据库服务器,操作系
摘要浏览器内置密码管理器因其无缝集成的使用体验,已经成为全球互联网用户最广泛使用的凭证存储方式。以 Chrome 为代表的现代浏览器在密码保护方面部署了多层安全机制,包括本地加密、操作系统密钥保护、应用绑定加密、设备身份认证、泄露数据库比对和域名匹配填充等。然而,这些防护机制在设备未被入侵的前提下能够发挥有效作用,一旦设备遭受恶意软件感染,浏览器密码存储所依赖的安全边界即被突破。信息窃取类恶意软件
生产者-消费者问题是并发编程中的经典问题,使用信号量实现可以有效地同步和互斥生产者与消费者之间的操作。通过信号量的配合,生产者与消费者能够协调地操作共享缓冲区,避免数据丢失、缓冲区溢出或空缓冲区等问题。
工业物联网、能源电力、智能制造与运维监控每天产生海量时间序列数据,InfluxDB、TDengine、IoTDB、Prometheus 远端存储等组件以每秒数万到数十万点的速率持续写盘。这类高写入吞吐场景对落盘加密提出了"既要密文、又不能拖慢写入"的苛刻要求。本文从时序写入链路出发,拆解操作系统驱动层透明加密的 IO 路径,给出 WAL/压缩文件加密、批量写入优化、密钥分层、云 ECS 结合与性能
在无法开启硬件级 MIG 切片、或者业务需要极细粒度动态算力配额(如给某个临时分析任务分配 15% 算力,给在线轻量模型分配 35% 算力)的场景下,很多云原生平台会转向基于软件劫持(API Hook)的时间片共享(Time-Slicing vGPU)方案。然而,不少自研 vGPU 调度器在上线初期,都会被宿主机上狂转的 CPU 与剧烈抖动的业务延迟上一堂残酷的工程课。过去很多开发者的实现方式极其
在过去数十年的系统安全与逆向工程领域,以 Intel / AMD 为代表的 x86_64 复杂指令集(CISC)几乎统治了桌面操作系统与数据中心服务器。几乎所有早期的逆向教材和教程,都是围绕着%rax%rbp%rsp以及经典的callret展开的。然而,随着 Apple Silicon(M 系列芯片)在开发终端的全面普及、AWS Graviton 等 ARM64 云原生服务器在数据中心的快速铺开、
在利用 DPDK 开发千万级 PPS 高性能网关、软负均衡或防火墙系统时,几乎所有开发者都会面临一个极其现实的工程尴尬:当物理网卡被vfio-pci或igb_uio驱动接管后,操作系统内核协议栈对该网卡的控制权被彻底剥离。在 Linux 系统视图中,该物理网卡瞬间“消失”了——运维人员常用的ifconfigip addr无法看到接口,ping无法响应,tcpdump。
信号量是一种重要的同步原语,用于解决多进程或多线程的资源共享和同步问题。整型信号量适用于控制多个同类资源的访问,而记录型信号量则用于实现互斥和临界区的访问控制。正确使用信号量可以有效避免竞争条件、死锁等并发问题,但也需要注意避免忙等待和设计不当带来的死锁风险。
在 openEuler 24.03 上从源码编译 PostgreSQL 17.10,集成 pgvector 0.8.6 向量扩展,完成 JeecgBoot 数据库初始化。含 configure 参数详解、contrib 扩展编译、systemd 服务、用户权限配置与 SQL 脚本转换。
在 Linux 多进程或多线程高性能网络网关(如 Nginx、自研反向代理服务)的设计中,为了充分压榨多核 CPU 算力,系统通常会启动与 CPU 物理核心数对齐的多个 Worker 工作进程。然而,在早期的架构实现中,一个隐秘而沉重的性能内耗长年困扰着系统架构师——。当 32 个工作进程同时监听同一个服务端端口的连接事件时,每当外部有一个新的客户端发起 TCP 三次握手建连,操作系统内核会如临大
在操作系统底层安全的世界里,如果说栈溢出(Stack Overflow)是短兵相接的刺刀战,那么堆漏洞(Heap Exploitation)就是布满迷雾与机关的微观迷宫。与栈内存由 CPU 硬件指令(rsppushpop)严格线形驱动不同,Linux 进程的堆内存(Heap)是由用户态动态内存分配器——在 GNU/Linux 下即全权掌管的。无论是 C 语言的malloc()free(),还是 C
很多从多线程同步编程转入 Python 异步开发的工程师,常抱有一个极其危险的误解:“asyncio是单线程事件循环驱动的,既然没有操作系统级抢占式线程切换,那我就不需要锁,代码天然线程安全!然而,在面对高吞吐生产服务时,现实会用一连串离奇的“死锁事故”和“状态撕裂”给这部分开发者上一堂极其沉重的课。在异步协程的世界里,await。在下一个await返回之前,成百上千个其他并发协程完全有可能插队进
敲下命令ss -s或者检查系统网络状态,一行刺眼的统计数字立刻跳入眼帘:系统当前竟然驻留着TIME_WAIT!操作系统可用的本地临时端口(Ephemeral Ports)已经被全部占满,新连接根本无法申请到可用的端口发起握手。面对堆积如山的TIME_WAIT,很多人会在网上搜索出一堆所谓的“优化参数”,甚至盲目开启早就被 Linux 内核官方废弃的危险参数,结果不仅没解决问题,反而引发了局域网大面
在 DPDK(Data Plane Development Kit)庞大的高性能代码库中,如果只能挑选一个最精妙、最核心的数据结构,那非 rte_ring莫属。整个 DPDK 的内存池分配()、核心间通信(IPC)、数据包收发调度,底层全部牢牢依托于这个无锁队列。它在单核上的存取开销仅需不到 10 个 CPU 时钟周期,而在多核多线程极端并发争抢下,依然能维持每秒数亿次指针流转的恐怖吞吐。没有操作
在大多数应用层开发者的心智模型中,内存往往是一个平坦、无限且廉价的数组。你调用一次new或malloc,系统就返回给你一个看似干净的十六进制指针(例如你顺着这个指针读写数据,操作系统和硬件仿佛隐形了一般,忠实地在背后完成一切支撑。然而,对于整天和高性能算子、大模型显存分配器打交道的底层系统工程师来说,这层平坦的表象之下,奔涌着一条充满精密规则与物理定律的壮阔河流。
单有高效的事件循环还不够。如果 Linux 内核的网络缓冲区和连接监听队列被卡死在默认的保守值,uvloop依然会遭遇“巧妇难为无米之炊”的尴尬。在大促高吞吐服务器上,必须对操作系统执行配套参数固化(# 提高系统单进程最大打开文件句柄上限# 增大全局套接字最大监听队列(全连接队列 Backlog)# 增大 TCP 半连接队列(SYN Flood 缓冲区)# 开启 TCP 连接快速复用,防范大量 T
在操作系统内核、高性能网络数据面(如 DPDK)以及极致低延迟的实时算子调度引擎中,互斥锁(std::mutex)往往被视为“昂贵”的代名词。因为传统的std::mutex底层依赖于操作系统的 Futex(Fast Userspace Mutex)系统调用。当一个线程发生锁竞争失败时,它会触发从用户态陷入内核态的上下文切换,并将当前线程挂起并让出 CPU。这套线程睡眠与重新唤醒的开销,通常在级别。
因为我们通常不会把所有相关信息都塞进一张表,而是把不同类型的信息分开存储;当查询需要同时使用这些信息时,就必须把它们“连接”起来。当我们需要查询每个学生的姓名和数据库课程时,我们就需要把Student.学号和Score.学号对应起来,这就是join。那为什么我们不把所有信息都放在一张大表里?这样看起来确实方便,但如果一个学生有很多门课怎么办,例如张三有:数据库 90 操作系统 88 计算机网络 9
当业务规模扩张到单机承载不住时,分库分表与分布式数据库成为标配。但数据被打散到成百上千个分片后,加密边界、密钥归属、跨分片一致性与热迁移就成为新的安全难题。本文从操作系统驱动层透明加密的视角,拆解分布式数据库与分库分表场景下的密钥分层、跨分片密钥跟随、热迁移、性能损耗控制与密评举证方法,给出可落地的工程化设计,并以安当TDE为例,说明如何在不改造应用的前提下把加密能力下沉到文件系统与驱动层。
HTTP 快但不安全,GET/POST 传参都不安全;代理能帮你也能劫持你(木马就是进程级劫持+代理);:出网卡前必加密;应用层进程内受操作系统进程隔离保护——加密在"最后一道受保护的层"落地;会话保持两代方案:Cookie(凭证在客户端,可被盗号)→ Session ID(账本在服务端,id+IP 环境双验证);秘密越往服务端收越安全;MySQL = mysqld 守护进程 + mysql 客户
本文聚焦国产数据库信创背景,详解KingbaseES作为兼容Oracle的国产关系型数据库的核心优势:高兼容性、强安全性、成熟集群能力及本地化服务。文章手把手指导在CentOS等RedHat系系统上进行安装前环境检查,包括操作系统版本、内存、磁盘空间验证,确保后续安装顺利,助力开发者快速迈入国产数据库实战门槛。
在上一章中,我们实现了RamFS,拥有了完整的VFS抽象和inode/dentry模型。断电即失忆。一个无法持久化存储的操作系统,永远只是一个高级玩具。今天,我们将跨越从“内存数据结构”到“磁盘物理布局”的鸿沟,实现真正的Ext2文件系统读取。Ext2是Linux早期事实标准,也是教学文件系统的黄金选择。它的on-disk结构清晰、文档完备、无日志复杂性,完美展示了Unix FS的核心设计:超级块
在前面的章节中,我们让进程能够接收信号、Shell能够通过fork/exec运行子程序。但此时的输入输出仍是割裂的:键盘驱动直接往环形缓冲区塞扫描码,串口/显存直接吐字节,没有“行”的概念,没有回显,没有退格编辑,更没有Ctrl+Z挂起和fg/bg切换。用户面对的不是一个“终端”,而是一个裸露的硬件管道。本章我们将构建完整的TTY子系统,这是Unix人机交互的灵魂所在。
通过详细的日志分析,我们精准定位了故障根源,并快速修正了配置,最终成功将磁盘加回 ASM 磁盘组,恢复了集群投票磁盘的正常冗余。本次故障排查遵循从上至下、层层递进的原则,从 ASM 层逐步排查到操作系统和存储层,以下是详细的分析步骤及日志证据。故障组的磁盘已丢失,这直接导致 OCR 磁盘组的冗余度降低,对集群的稳定性和高可用性构成潜在威胁。首先,我们在两个节点上分别检查了多路径设备的状态,以判断问
Tokio 将 Rust 语言的编译期安全与操作系统的底层事件驱动融为一体,构建出了全人类软件工程史上最轻盈、最坚固、吞吐最恐怖的异步并发底座。掌握了 Tokio 的全景微观机制,你便掌握了驾驭百万高并发世界的终极钥匙。
在网络安全的技术金字塔中,二进制安全(Binary Security / Vulnerability Research)因其深奥的底层机理、陡峭的学习曲线以及对操作系统与硬件架构的极高要求,始终被视为硬核技术实力的象征。
在多核对称多处理(SMP)与非统一内存访问(NUMA)架构下,编写能够线性扩展的高性能并发程序,本质上是一场。回顾九月在“并发原语”专栏中的探索,我们从操作系统互斥锁(Mutex)的底层上下文切换开销,到硬件原子指令(CAS / FAA)的总线一致性风暴,再到基于 64 字节缓存行对齐的无锁队列(Lock-Free RingBuffer)、带 PAUSE 退避的自适应自旋锁,以及读端绝对零开销的
未做配置加固前,服务器 root 操作系统用户,可以本地直接登录访问 KingbaseES 数据库,存在安全风险。root 以及其他操作系统用户无映射规则,本地 unix‑socket 登录直接认证拒绝。使用 kingbase 操作系统用户执行 reload 重载配置生效,数据实例不中断。切换操作系统 kingbase 用户执行登录, 正常进入数据库交互终端,配置生效。实现操作系统用户和数据库用户
FCU1501是飞凌嵌入式推出的新一代国产主控嵌入式控制单元,整机采用国产核心物料开发,有效保障供应链自主可控,顺应各行业国产化替代的建设需求。设备搭载瑞芯微RK3506J三核CortexA7处理器,1.5GHz主频,运行Linux6.1操作系统,具备优秀的边缘处理与协议转发能力。产品分为基础版、扩展版两个配置版本,统一机身尺寸,接口资源按需选配,可灵活适配不同规模的配电室监控项目。
在针对数十吉字节(如 70B 模型权重文件约 40GB)的大语言模型开展服务部署与弹性自动扩缩容(Serverless Auto-Scaling)时,是决定系统弹性和资源利用率的核心指标。在传统的模型加载实现中(如经典的 Python/PyTorchtorch.load或标准 C 语言freadmalloc利用操作系统底层的 mmap原语与实现了的工程奇迹。深入剖析mmap的虚拟页表缺页机制与按需
在多核高性能并发编程中,当临界区(Critical Section)极其短小(仅耗时数纳秒到数十纳秒)时,直接使用操作系统的互斥锁(Mutex)会因为陷入内核态 futex 休眠与线程唤醒调度,导致长达数微秒的系统延迟。此时,成为了极客们的首选武器。然而,朴素的自旋锁在多核争用剧烈时,会导致所有争用核心疯狂执行原子指令,引发总线风暴(Bus Storm)并使 CPU 功耗暴增、流水线指令重排崩溃。
本文详细介绍了在 CentOS 7.9 与 openEuler 24.03 环境下安装配置 PostgreSQL 15.19 与 17 的完整流程,涵盖从基础认知、核心架构、安装实录、权限管理、远程连接、备份恢复到 Django 接入的全流程。重点对比了 PostgreSQL 与 MySQL 的差异,突出其事务安全、JSONB 支持、MVCC 并发控制、可扩展性等优势,适合从 MySQL 迁移或追
在 openEuler + openGauss 数据库实验中,目前主流存在两种完全不同的 openGauss 部署方式openEuler 系统安装时勾选 openGauss Server(老师常用、快速部署)手动上传二进制包部署 openGauss(企业标准、实操部署)很多同学会疑惑: 两种方式到底有什么区别?结果一样吗?哪个更好?作业用哪个?企业用哪个?本文从原理、步骤、优缺点、适用场景、企业真
信创适配的担心,本质上是对“变化”的担心。化解的方法,是把变化拆成可验证的具体问题:架构怎么分工、适配做到多深、迁移分几步、服务覆盖哪些环节。给技术负责人的建议:选型测试阶段别只看演示。要求供应商在自己的国产化目标环境里,跑一遍你酒店最重的业务场景——比如早高峰的批量开房、夜审、大报表导出。真实场景下的表现,比任何说明都有说服力。你在做信创评估时卡在哪一步?欢迎在评论区交流。#信创 #酒店管理系统
在上一章中,我们实现了fork(),但采用的是Eager Copy策略:每次fork都要遍历并复制父进程的所有用户态物理页。如果父进程有10MB内存,fork就要分配并拷贝10MB——即使子进程随后立即调用exec()替换了整个地址空间,这些拷贝也完全是浪费。Copy-on-Write(写时复制)。核心思想是:fork时只复制页表项并将页面标记为只读;只有当某个进程真正尝试写入时,才触发缺页异常(
MySQL 8.4 默认将 innodb_flush_method 改为 O_DIRECT,绕过操作系统页缓存,但 innodb_buffer_pool_size 仍为 128MB,导致共用服务器上读性能下降。因缓存兜底层消失而新缓存未建,性能反不如 8.0。解决方案:手动设置 innodb_buffer_pool_size = 2G(4核8G共用环境),确保热数据在 buffer pool 内。
在大型服务端程序与高性能系统的调优实战中,许多工程师往往停留在看应用日志、打印打点耗时或使用通用的 CPU 使用率监控(如 top/htop)。然而,当 CPU 达到瓶颈或系统在低 CPU 利用率下吞吐依然无法提升时,传统的粗粒度监控手段便彻底失效。性能分析(Profiling)的本质是一门建立在硬件微架构(Microarchitecture)与操作系统内核调度基础上的严密诊断科学。从识别算力瓶颈
先想清楚一件事:操作系统到底解决了什么问题?答案是四个字——管理资源。把 CPU、内存、磁盘、外设这些有限的硬件资源,安全、高效、公平地分给一个个进程用,同时不让进程互相踩踏、不让进程越权。Agent 的问题一模一样。它也有"资源":模型调用额度(=CPU/算力)、上下文窗口(=内存)、文件系统和外部 API(=外设)、以及一个个工具调用(=进程)。你怎么把这些资源管起来,不让工具调用互相越权、不
onmode -wf仅适用于支持动态调优的参数,执行后会同时更新内存运行值以及 onconfig 配置文件,修改永久保存,无需二次修改配置文件。使用可以快速查询参数是否支持动态修改;标记为的参数,只能改配置文件 + 重启实例。动态修改参数前建议记录原有参数值,方便异常时回滚;部分参数有合法取值范围,设置非法值会报错。小提示:执行 onmode 系列命令需要使用gbasedbt操作系统用户执行,ro