登录社区云,与社区用户共同成长
邀请您加入社区
摘要:进程调度是Linux内核最核心的子系统之一。本文从调度策略演进入手,深入剖析CFS(完全公平调度器)的核心数据结构与算法原理,通过源码级分析+工程实践案例,揭示调度策略对系统性能的量化影响。全文约6500字,包含完整的C语言模拟实现、Mermaid架构图及性能对比数据,适合对Linux内核有一定基础、希望深入理解调度机制的开发者阅读。
Uptime Kuma 是一款开源、免费且易于使用的自托管监控工具。监控正常运行时间从未如此简单,Uptime Kuma 正是为此而生,它提供了一个简单但高效且功能强大的仪表板,旨在帮助你实时监控网站、API和各类服务的运行状态,并在服务出现故障时及时发出告警。SQLite:一个简单的数据库文件,在v2.0.0 版本之前使用SQLite为默认数据库。官方提供的部署方式有很多种,我这里介绍使用Doc
位自旋锁是Linux内核中"从实践中生长出来"的同步机制,它用一个bit替代了完整的spinlock结构,在struct page等需要大量锁对象的场景中大幅节省了内存开销.结合wait_on_bit提供的睡眠等待能力,形成了完整且高效的同步解决方案.bit_spin_lock是Linux内核中一种极轻量级的同步机制,它利用一个内存地址中的单个bit来模拟自旋锁,结合wait_on_bit/wak
1.cat:一次性加载全文,适合小文件快速查看,无分页功能,大文件慎用。2.head:仅查看文件头部,快速预览开头内容,不加载全文,高效轻便。3.tail:仅查看文件尾部,支持实时监控,日志排查专属核心命令。4.more:基础单向分页,仅能向前浏览,功能简陋,仅临时应急使用。5.less:全能分页查看,支持双向滚动、搜索、进度查看,大文件最优选择。6.nl:专业行号标注查看,行号格式自定义,优于c
接了一个gpu卡,gpu升温快最长3秒,获取温度给风扇调速进程pid算法算风扇转速,如果温度获取慢,影响散热策略,如果又接了一张raid卡(后面接了几十块硬盘),数据交互量非常大,i2c一个字节一个字节传输慢,要获取每个硬盘温度,如果把raid卡数据访问完,肯定超过3秒,再去访问gpu,gpu肯定超温了,常见解决方法给gpu单独开一个线程,和其他进程争抢访问i2c bus锁。i2c_new_pro
本文介绍了Linux系统编程中的进程管理核心概念与实践。主要内容包括:1)进程创建(fork)、程序替换(exec)、子进程回收(wait)的基本原理;2)进程间通信的管道(pipe)实现和重定向(dup2)技术;3)实践中的常见问题与解决方案;4)通过逐步开发迷你Shell的案例(支持管道和重定向),展示了如何将这些技术组合应用。文章从基础API出发,最终实现了一个具备基本功能的命令行解释器,帮
逆向工程又被称为反求工程(Reverse Engineering),是一种再现产品设计技术的过程,通过对给定的产品进行逆向研究与分析,从而得出该产品的相关参数及特性,以制造出结构相近、性能更优秀的产品模型。利用三维扫描仪获取被测产品或者模型的数字化信息(点云数据),在通过逆向软件进行编辑、修改、优化得出CAD模型图,最后通过CAD/CAM技术传送至数控加工机床,生产制造出对应所需模具的技术过程。(
在联想商城下载这个软件,在这个软件中找到VMware相关移除就可以正常安装了(不需要重启,如果还是安装不了可以重启再安装一下)我被这个问题折磨了有两三天,其中也问过主流的国内外各种AI,但是给出的解决方法并没有什么用。
VictoriaMetrics 是一款高性能、高扩展性的开源时间序列数据库和监控解决方案,兼容 Prometheus 的 PromQL 查询语言,具有极高的数据压缩率和低资源消耗的特点,广泛应用于大规模监控系统、IoT 设备数据采集和多租户场景。本文将详细介绍如何在 Linux 系统局域网内部署 VictoriaMetrics 并结合路由侠实现外网访问局域网内部署的 VictoriaMetrics
本文系统解析了三种I/O模型(BIO/NIO/AIO)的核心差异与实现原理:1. 模型本质:BIO(同步阻塞)采用线程挂起等待;NIO(同步非阻塞)通过多路复用实现,包含select/poll轮询和epoll事件驱动两种方式;AIO(异步非阻塞)基于操作系统回调通知。2. NIO核心:采用Selector多路复用器管理Channel通道,通过零拷贝、事件驱动等机制实现单线程处理万级连接,对比传统轮
勾选:(1)windows虚拟机监控程序平台(2)适用于linux的windows子系统(3)虚拟机平台之后重启电脑。链接: https://pan.baidu.com/s/1x6V_EjA6gcgC4-e4hZMZcA 提取码: ev9m之后双击下载就可以安装成功了。进入官网—>搜索ubuntu—>点击ubuntu-release—>选择ubuntu-20.04.5-wsl-amd64.wsl下
OSI模型, 是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,将计算机网络通信划分为七个不同的层级,每个层级都负责特定的功能。每个层级都构建在其下方的层级之上,并为上方的层级提供服务。七层从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。虽然OSI模型在理论上更全面,但在实际网络通信中,TCP/IP模型更为实用。TCP/IP模型分为四个层级,每个层
AI 创业的技术风险评估不是一次性的检查清单,而是一个持续的过程。第一,识别风险的全面性。模型层、数据层、工程层、商业层——每一层都有独特的技术风险,不能只关注最显眼的那个。模型效果不达预期是最容易被关注的风险,但数据合规和成本失控往往是更致命的。第二,评估风险的系统性。用概率-影响-紧迫度三维矩阵量化风险,而不是凭直觉判断。量化评估能帮助团队在有限资源下做出更合理的优先级决策。第三,应对风险的层
本文介绍了JDK8中HotSpot虚拟机的内存分配类层级结构,重点分析三种核心内存基类:AllStatic、StackObj和ResourceObj。AllStatic用于纯静态工具类,禁止实例化;StackObj强制对象栈分配,严格遵循RAII机制;ResourceObj支持多模式分配,默认使用高效的内存池ResourceArea。这些基类通过重载operator new/delete,精确控制
关键能力实现方式价值协议全覆盖协议网关+边缘网关+脚本化接入什么设备都能接物模型标准化行业模版库+动态扩展平台能"理解"设备边缘计算轻量级边缘网关+本地自治断网也能用,安装简单规则引擎可视化规则配置+自动联动装完就能产生价值开放生态可扩展、可集成把复杂留给平台,把简单留给用户。用户只需关注"装什么设备",平台负责"怎么接入、怎么理解、怎么用"。
连接器暴露Prometheus指标清单:- connector_devices_total # 当前管理的设备数- connector_messages_received # 接收消息总数(Counter)- connector_messages_transformed # 转换成功总数- connector_messages_failed # 转换失败总数- connector_protocol
针对市面上绝大多数开源分页插件存在的页码错乱、切换条数页面跳变、空数据报错、列数适配失效、事件冒泡冲突、分页状态丢失等低端BUG,做了算法级、架构级、交互级全方位优化,是传统jQuery后台项目最优的分页解决方案,可直接替换所有老旧分页逻辑。典型场景包含:订单列表、用户管理、操作日志、数据统计、商品清单、审核记录等。多数开发者采用原生简陋分页、第三方臃肿插件、重复手写分页逻辑,导致项目代码冗余、B
本文介绍了如何为 BPI-R3 Mini 路由器刷入支持 Web 界面的 webfailsafe U-Boot,以替代原厂复杂的刷机方式。主要内容包括: 风险提示:刷机可能导致设备变砖、数据丢失等风险,操作需谨慎并备份数据 提供的文件清单:包含 BL2、FIP 和完整固件镜像 详细刷机步骤: 通过多种方式上传文件到设备 刷写 FIP(U-Boot 本体) 可选刷写 BL2(通常不需要) 进入 we
下载相关的ollama的linux的压缩包(这个安装包是在电脑磁盘里面的,wsl系统可以访问电脑本地磁盘)之后进入你存放的ollama压缩包拷贝到linux系统的主目录里面。的系统用户(非登录用户),专门用于运行 Ollama 后台服务。本文采用基于windows的子系统wsl作为演示。解压安装包并将 Ollama 部署到系统路径(本地部署大模型(可根据自身情况选择模型)然后在电脑上的ubuntu
这表明驱动核心模块已经崩溃或丢失,需要重新安装显卡驱动。nvcc(CUDA Toolkit)和 NVIDIA 显卡驱动是nvcc属于。它是一套编译器和开发工具,装在里;属于。它是操作系统用来真正点亮和控制物理显卡的底层代码。检查显卡驱动的编译状态,如果运行后没有任何输出,或者提示 error/failed,就说明驱动根本没编译进内核。那么我们就需要卸载原有的残缺显卡驱动并重新安装新的显卡驱动。
VSCode 实现codex的插件使用,AI编程
提示:第一个注册的人是管理员,但是由于这种情况只能做到本机访问,也就是他人不能访问这个网址,所以接下来我们使用frp软件进行内网穿透,使得所有人都能访问这个网址。解压成功后,前往ollama官网寻找下载的模型,这里以Deepseek r1:14b为例。接下来通过open-webui来部署一个网站,由此得到一个界面布局,更加方便使用本地模型。同样的,再关闭终端之后,如果想通过终端唤醒deepseek
物理到软件全链路:D+/D- 上拉电阻 → PORTSC 寄存器 → HCD 中断 → hub_event → 枚举 → 驱动匹配 → net_device 注册,每层都有清晰的源码对应:管理状态(IFF_UP)和链路状态(carrier)是独立的两个维度,operstate 由二者共同决定rndis_host.c 有已知缺陷未调用留了 2005 年的 FIXME,导致 RNDIS 设备 carr
本文介绍了如何将SolidWorks生成的ROS1格式URDF模型转换为ROS2可用的格式。
AI 效率工具选型的核心是"工作流契合度"而非"功能数量"。评估维度包括功能契合度、工作流集成度、总拥有成本和数据安全风险。隐性成本(迁移、学习、安全)往往超过订阅费用。建议先粗筛后深度试用,核心工具选商业方案保障 SLA,辅助工具选开源控制成本。数据安全是底线,任何工具上线前必须完成安全检查清单。
分一个主分区,大小为1G。在其中存入3.txt的文件,其文件内容是this is 3.txt。在其中存入4.txt的文件,其文件内容是this is 4.txt。第一个主分区挂载到/guazai1目录,并在其中存入1.txt的文件。第二个主分区挂载到/guazai2目录,并在其中存入2.txt的文件。主分区创建xfs类型的文件系统,挂载到/guazai5目录,在其中存入5.txt的文件,其文件内容
本文整理了Linux系统中常用的快捷命令,主要包含以下内容:1)时间日期设置命令date;2)系统重启reboot与关机poweroff;3)文件下载工具wget及其常用参数;4)图片查看命令xdg-open;5)进程管理命令(ps/top/htop等)及进程状态说明;6)文件操作命令(file/stat/diff);7)磁盘空间查看(df/du);8)磁盘分区管理fdisk;9)系统信息查看(u
系统调用是用户态与内核态的安全边界,每次跨越有 100-200ns 的开销。字符设备驱动通过 file_operations 将系统调用映射到具体的硬件操作。关键实现要点:copy_to_user/copy_from_user 保证用户空间访问安全,mutex 保护并发访问,wait_queue 实现阻塞 I/O。落地时需要关注 syscall 开销优化、并发安全和设备权限控制。
本文系统对比了Linux进程、线程与Windows进程、线程的核心区别,并深入解析了协程的概念及其与线程的差异。主要内容包括: Linux进程与线程 底层本质:内核只有task_struct调度对象,通过clone()系统调用创建,共享标记决定是进程还是线程。 资源区别:进程独占资源,线程共享地址空间、文件描述符等。 调度与开销:线程是调度最小单位,创建和切换开销远低于进程。 通信方式:线程可直接
AI 辅助创业决策通过风险因子分解、贝叶斯更新和蒙特卡洛模拟,将直觉驱动的决策转化为结构化的风险评估。核心指标是期望收益、亏损概率和收益分布的 P10/P50/P90。落地时需要关注先验概率可靠性、风险因子相关性、模型简化的局限性和过度自信风险。建议将模型结果作为决策参考之一,结合定性判断做出最终决策。
AI 效率工具的 PMF 验证需要量化指标而非主观判断。核心指标是激活率、7日留存、NPS、付费转化和推荐率,每个指标有明确的达标阈值。验证流程是"假设→MVP→指标采集→判断→迭代"的闭环。落地时需要关注隐私合规、MVP 粒度、留存率定义和 NPS 局限性。建议先验证激活率和留存率,达标后再验证付费和推荐指标。
Context Window 不是记忆。它只是模型这一次能看到的临时空间。窗口大,不等于模型能稳定用好所有内容;Memory 通常是应用层的外部存储,需要时再取回来;上下文工程的目标不是塞满窗口,而是把有用的信息放对位置。我是 Dilee,11 年 Java 老兵,专注 AI 落地应用。后续会继续更新 Spring AI、RAG、Memory、Tool Calling、MCP 等实战内容。
在企业级 AI 落地过程中,架构师面临的最底层挑战是:大语言模型(LLM)的\*\*随机性(Probabilistic)与企业业务规则所需的确定性(Deterministic)\*\*之间的不可调和。
最近我在准备 AI 科研课程,发现很多人卡在 Agent 上,表面是在纠结工具,实际是模型、工具、MCP、Skill、Agent 这些词的关系还没放对。
作为软件测试人员,掌握linux命令也是最基本的技能,我们不需要开发和运维掌握那么全那么多,主要是要把测试过程中高频使用的记录下,方便日后回顾。ps -ef |grep java 查看java进程或者ps -aux |grep java 查看java进程。tail -f xx.log | grep error 查看日志error报错信息。tail -n 100 xx.log 查看日志最后100行内
信号机制与进程管理摘要 本文系统介绍了Linux系统中的信号机制与进程管理: 信号基础: 信号是进程间的异步通知机制,类型包括普通信号(1-31)、预留信号(32-33)和实时信号(34-64) 三种处理方式:默认动作、自定义处理和忽略信号 进程管理: 区分前台进程(唯一,可接收键盘输入)和后台进程(可多个) 使用fg/bg命令进行前后台切换,Ctrl+z暂停前台进程 关键接口: signal()
本文解析了C语言中四种指针概念的差异:1. 二级指针(int**)存储指针地址,用于修改指针或管理指针数组;2. 函数指针(int()(int))指向函数入口,实现回调机制;3. 数组指针(int()[5])指向整个数组,操作二维数组行;4. 指针数组(int*[5])存储多个指针,用于字符串列表等。关键区别在于声明语法(括号位置决定类型)、内存模型(指向对象不同)和使用场景(动态修改/回调/多维
用户态通过 data_tail/data_head 协议实现生产者-消费者模型:内核写入 data_head,用户态读取后推进 data_tail。/* 权限校验:需要 CAP_SYS_ADMIN 或 perf_event_paranoid 许可 */struct perf_event_mmap_page *user_page;/* 用户态头 *//* 调用 perf_event_overflow
panic()的实现位于kernel/panic.c中,承载了信息转储、notifier回调、kmsg_dump输出和最终停机等一系列操作。kdump机制在内核崩溃时启动一个预加载的capture kernel,该内核在原内核预留的内存区域中运行,收集崩溃现场的/proc/vmcore。* 这些回调由panic_notifier_chain_register注册,/* 触发kmsg_dump:将内
报文里只有头两行真正来自你输入的地址,剩下一大半都是浏览器根据自己的状态、配置、本地存储。
分一个主分区,大小为1G。分一个逻辑分区,大小为4G。主分区创建xfs类型的文件系统,挂载到/guazai5目录,在其中存入5.txt的文件,其文件内容是this is 5.txt。分别在/root/guazai存入1.txt的文件,其文件内容是this is 1.txt和/root/guazai2存入2.txt的文件,其文件内容是this is 2.txt。主分区存入3.txt的文件,其文件内容
Hashcat 是世界上最快、最先进的密码恢复(破解)工具,它支持使用 CPU 和主流的 GPU(显卡)来高速破解多种类型的密码哈希值。
本文系统讲解了GDB调试器的进阶使用方法,重点涵盖多进程调试、信号处理、核心转储分析和远程调试等生产环境常见场景。在多进程调试方面,详细介绍了fork后的进程跟踪策略、多进程查看与切换方法。针对信号处理,解析了GDB的拦截逻辑和handle命令配置。对于崩溃分析,讲解了如何生成和使用core文件定位问题。此外,还介绍了进程内存查看与修改、运行时状态干预等深度操作,以及基于gdbserver的远程调
推荐大家购买最新的教程,若是已经购买以前WGNCA教程的同学,可以在对应教程留言,即可获得最新的教程。(注:此教程也仅基于自己理解,不仅局限于此,难免有不恰当地方,请结合自己需求,进行改动。删除~/.codex路径下已存在的config.toml文件(若有),然后新建一个config.toml,一是使用原生态的gpt模型,另外一种是使用国内其他大模型。创建好后,出现对应的PAI码,注意:此码仅出现