读程序员的README笔记05_日志、监控与配置

Programming.log:程序员的思维手账与认知基础设施 编程日志不是简单的代码备忘录,而是一种以思考过程为第一对象的认知实践。它源于对‘记录即思考’这一底层逻辑的回归——将碎片化、情绪化、未完成的原始思维留痕,作为可回溯、可迭代、可校准的认知资产。区别于传统博客或知识管理工具,Programming.log强调时间锚定、心理低负担(.log后缀契约)、Git快照式版本控制,本质是构建个人技术直觉的‘操作系统’。它支撑新手建立调试语感、中级开发者突破抽象瓶颈、技术负责人识别团队认知盲区,在API设计质疑、Bug溯源、概念混淆等高频场景中持续释放复利。本文详解其从零 阅读详情

1. 行为准则

2. 日志分级

2.1. 日志框架设有日志级别,它可以让运维人员根据重要性过滤消息

2.2. 编程语言有精良的日志类库,让运维人员对要记录的内容和时间有更多的控制

2.3. TRACE

2.3.1. 一个极其精细的日志级别

2.3.2. 对特定的包或类开放

2.3.3. 在开发阶段之外很少使用这个级别

2.4. DEBUG

2.4.1. 多用于那些只在调查产品出故障时有用

2.4.2. 在正常操作中没有用的日志

2.5. INFO

2.5.1. 一般用于输出应用程序运转良好的日志

2.5.2. 不应该用于输出任何问题的指示

2.6. WARN

2.6.1. 一般用于提示那些潜在问题

2.6.2. 一个资源已经接近其容量上限,就应该是一个WARN

2.7. ERROR

2.7.1. 表明正在发生需要注意的错误

2.8. FATAL

2.8.1. 如果程序遇到非常严重的情况,必须立即退出,就可以在FATAL级别上记录关于问题原因的信息

2.8.2. 包括该程序状态的上下文内容,恢复或诊断相关数据的位置也应该被记录下来

3. 日志的原子性

3.1. 如果某些信息只有在与其他数据配合时才有用,那么就应该把所有相关内容“原子化地”记录到一条消息中

3.2. 如果日志信息不能以原子化的方式输出,可以在消息中放置唯一的ID,这样日志信息就可以在后续的处理中被拼接起来

3.3. 不要假设日志会按照特定的顺序被看到,许多操作工具会重新排序,甚至弃用一些消息

3.4. 不要依赖系统的时间戳来排序,系统时钟可能被重置或来自不同的主机,从而造成日志信息难以理解

3.5. 避免在日志信息中使用折行,许多日志聚合器会把每一个新行当作一串单独的消息

3.5.1. 要特别确保堆栈跟踪被记录在一条消息中,因为它们在输出时经常包含折行

4. 日志性能

4.1. 过度的日志记录会损害性能

4.2. 日志必须被写入像磁盘、控制台或者某个远程系统这样的地方

4.3. 在写入日志前,要记得处理好字符串的拼接和格式化

4.4. 用参数化的日志输入及异步附加器来保持快速记录日志

4.5. 改变日志的冗余度和配置可以消除竞争条件和bug

4.5.1. 因为它降低了应用程序的速度

4.5.2. 如果你启用冗余的日志等级来调试一个问题,并发现一个bug消失了,日志等级的变化本身可能就是原因

5. 不要记录敏感数据

5.1. 日志信息不应该包括任何私人数据

5.1.1. 密码

5.1.2. 安全令牌

5.1.3. 信用卡号码

5.1.4. 电子邮件地址

5.2. 大多数框架支持基于规则的字符串替换和编辑,要配置它们,但不要依赖它们作为你的唯一防护手段

6. 系统监控

6.1. 常见的系统指标类型

6.1.1. 计数器

6.1.1.1. 测量的是某个事件发生的次数
6.1.1.2. 通过使用计数器获得缓存命中数和请求总数,你就可以计算出缓存命中率

6.1.2. 仪表盘

6.1.2.1. 一个基于时间点的测量值
6.1.2.2. 既可以上升又可以下降

6.1.3. 直方图

6.1.3.1. 根据事件的大小幅度分成不同的范围
6.1.3.2. 每一个范围都会有一个计数器,每当某事件的值落入其范围时,计数器就会递增
6.1.3.3. 通常用来测量请求所需的时间或数据有效负载的长度

6.2. 系统性能通常以阈值百分比的形式来衡量

6.2.1. 从0%到99%,被称为P99

6.3. 集中式可视化系统

6.3.1. Datadog

6.3.2. LogicMonitor

6.3.3. Prometheus

6.4. 使用标准的监控组件

6.4.1. 标准库可以与其他一切“开箱即用”的东西集成

6.5. 测量一切

6.5.1. 监测的性能开销很低,你应该广泛地使用这些监测数据

6.5.2. 抽样可以保持快速的性能,减少磁盘和内存的使用,但它也会使测量的准确性降低

6.5.3. 资源池

6.5.3.1. 资源池使用过大表明系统此刻的响应很卡顿或无法跟上需求速度

6.5.4. 缓存

6.5.4.1. 计算高速缓存的命中数和失误数,两者比率的变化会影响应用程序的性能

6.5.5. 数据结构

6.5.5.1. 数据结构大小的异样表明正在发生一些奇怪的事情

6.5.6. CPU密集型操作

6.5.6.1. 序列化是一个昂贵的、CPU密集型的操作,所以它花费的时间应该被记录下来

6.5.7. I/O密集型操作

6.5.7.1. 磁盘和网络I/O操作是缓慢和不可预知的,使用计时器来监测它们所需的时间

6.5.8. 数据大小

6.5.9. 异常和错误

6.5.9.1. 计算异常、错误响应代码和不良输入的次数,监测错误的出现频率可以在出错时很容易触发警报

6.5.10. 远程请求和响应

7. 跟踪器

7.1. RPC客户端会使用一个跟踪库,在他们的请求上附加一个调用跟踪ID

7.2. 调用跟踪ID通常通过RPC客户端包装器和服务网格自动为你传播,用来验证你在调用其他服务时是否传播了任何需要的状态

7.3. 分布式调用跟踪

7.3.1. 对上游API的一次调用可能会导致对下游的数百次不同服务的RPC调用

7.3.2. 分布式调用跟踪将所有这些下游调用连接成一个图

7.3.3. 分布式跟踪对于调试错误、监测性能、理解依赖关系和分析系统成本都很有用

7.3.3.1. 哪些API的服务成本最高、哪些消费者线程成本最高等

8. 配置

8.1. 应用程序和服务应该暴露出配置信息,并允许开发人员或网站稳定性工程师(site reliability engineers,SRE)配置运行时的行为

8.2. 表达方式

8.2.1. 普通的、对人友好的格式的文件

8.2.1.1. INI
8.2.1.2. JSON
8.2.1.3. YAML

8.2.2. 环境变量

8.2.3. 命令行参数

8.2.4. 最常见

8.2.5. 定制的领域特定语言(DSL)

8.2.6. 应用程序所使用的语言

8.3. 不要太有创意,要使用标准的配置格式,提供合理的默认值,校验配置的输入值,并尽可能地避免动态配置

8.3.1. 配置无须新花样

8.3.2. 记录并校验所有的配置

8.3.3. 提供默认值

8.3.3.1. 如果用户不得不配置大量的参数,你的系统将很难运行起来
8.3.3.2. 提供良好的默认值,这样你的应用程序对大多数用户来说开箱即用

8.3.4. 给配置分组

8.3.4.1. 将相关属性分组,这样就更容易组织和维护配置信息
8.3.4.2. 应用程序配置很容易变得难以管理,特别是不支持嵌套语法的键值格式
8.3.4.3. 可以使用像YAML这样允许嵌套的标准格式

8.3.5. 将配置视为代码

8.3.5.1. 配置即代码(configuration as code,CAC)的哲学认为,配置应该受到与代码同样严格的要求
8.3.5.2. 配置错误可能是灾难性的,一个错误的整数或缺失的参数就可以毁掉一个应用程序
8.3.5.3. 为了保证配置变化的安全,配置应该被版本控制、评审、测试、构建和发布
8.3.5.3.1. 将配置保存在像Git这样的VCS中,这样你就有了变更的历史
8.3.5.3.2. 像评审代码一样评审配置的变化,验证配置的格式是否正确、是否符合预期的类型和配置的值是否在理论范围内,构建和发布配置包

8.3.6. 保持配置文件清爽

8.3.6.1. 干净、清爽的配置对其他人来说更容易理解和改变
8.3.6.2. 删除不使用的配置,使用标准的格式和间距,不要盲目地从其他文件中复制配置

8.3.7. 不要编辑已经部署的配置

9. 工具集

9.1. 编写工具是协作性的

9.2. SRE通常会喜欢基于命令行界面(command line interface,CLI)的工具和自描述的API

9.2.1. 它们很容易脚本化,脚本化的工具很容易实现自动化

程序员的纯文本日志实践:programming.log 工作流 编程日志(programming log)是一种面向开发者思维过程的技术记录方式,其核心在于用最简化的纯文本格式,实现低认知负荷、高可追溯性的技术反思与知识沉淀。它基于时间线性结构而非标签分类,依托 Unix 工具链(grep/vim/git)达成零依赖、抗格式腐烂、跨平台一致的工程可靠性。相比传统笔记工具,它更强调‘记录即思考’的即时性与真实性,天然适配调试复盘、架构决策、代码审查等高频开发场景。作为 developer journal 的轻量级实现,它不替代文档系统,而是补全了从代码提交到思维留痕之间的 阅读详情

相关推荐

程序员的编程日志(Programming Log):一种认知资产管理实践

编程日志(Programming Log)是一种面向开发者个人认知沉淀的技术记录范式,其核心原理是将隐性经验结构化为可检索、可复用、可追溯的知识资产。不同于传统技术博客的知识传播导向,它强调以‘未来自己’为唯一用户,通过原子日志、概念沉淀、代码片段与决策图谱四层结构,对抗遗忘曲线并支撑技术判断。其技术价值在于将调试过程、架构权衡、线上故障等真实场景中的碎片洞察,转化为可持续复利的认知资本。典型应用场景包括:高频问题快速回溯、团队级经验复用、故障复盘标准化、技术选型历史校准。本文聚焦于programming

aobai7842的博客 340

程序员思维日志:用 Git + Markdown 构建可搜索的编程认知仓库

编程日志(Developer Journal)是一种面向工程师自我复盘与认知沉淀的技术实践,其核心在于记录真实、带上下文、有时序标记的思维过程,而非标准化文档或知识笔记。它依托轻量级技术栈(如 Git 版本控制、Markdown 文件系统、ripgrep 全文检索),实现‘搜索优先于浏览’的设计哲学,解决传统笔记工具在代码调试、技术债溯源、团队经验传承等场景中的信息断层问题。相比 Obsidian 或 Notion 等通用笔记平台,programming.log 更强调原子性、可追溯性与工程原生集成,天然适

天下无双 369

程序员思维手账:用 programming.log 记录真实编码思考

编程日志(programming.log)是一种面向开发者认知过程的技术记录范式,其核心在于以时间戳为锚点、以代码片段和决策依据为载体,实现低摩擦、高复用的知识沉淀。它不同于传统技术博客,不追求完整教程或结构化输出,而是聚焦于调试瞬间的顿悟、技术选型的权衡、以及认知模型的迭代更新。通过纯文本+Git 的极简存储、终端一键记录的输入协议、grep/fzf 驱动的高效检索,它天然适配工程师日常开发流。尤其适合已具备三个月以上真实业务编码经验的中级开发者,在解决线上问题、重构复杂逻辑或学习新框架时,将模糊经验转化

天下无双 471

程序员readme

不要只读你自己的代码库,还要去阅读高质量的开源项目,特别是那些你使用的类库。工程师们有时会浪漫化14小时的工作时长和办公桌下的睡袋,但马拉松式的编程和缺乏睡眠会损害你的代码、身体健康和个人社交。如果你的价值更多来自过去的工作而不是现在的贡献,那么它就会阻碍你的成长。T型工程师在大多数领域内都能有效地工作,并且至少是某一个领域的专家。软件工程有许多专业领域:前端、后端、运维、数据仓库、机器学习等。更换公司并在一个新的环境中找到自己,可以重启你的成长。成功公司留用旧代码(如旧类库、旧模式)是有原因的。

Kubernetes云计算的专栏 1097

程序员思维日志:一种可追溯、可验证的编程认知存档方法

编程日志不是技术博客,而是面向开发者自身的认知存档系统,其核心在于将碎片化调试过程转化为结构化、可回溯的思考记录。它基于时间轴组织、强调问题驱动与证据链闭环,融合Git版本控制与Markdown轻量表达,实现知识沉淀的确定性与离线可用性。相比传统笔记或博客,它更关注‘如何让未来的我准确复现此刻的思考路径’,天然适配工程师高频迭代、强上下文依赖的工作场景。在DevOps实践、前端状态管理、TypeScript类型推导等典型工程问题中,这种以‘What happened → Why failed → How f

clugcpne10995的博客 349

编程日志:构建抗遗忘、可追溯的个人技术认知基座

编程日志是一种面向工程师的认知管理实践,其本质是将碎片化调试经验、性能观测数据和架构决策过程,结构化沉淀为可验证、可检索、可演化的知识资产。它基于Git版本控制实现认知迭代的原子性,依托YAML元数据与标签体系支撑精准检索,通过Context-Observation-Conclusion三元结构保障技术结论的可复现性。相比传统博客或笔记工具,编程日志强调‘低维护、高生长性’,天然适配现代开发中API频繁变更、文档滞后、问题边界模糊等现实挑战。典型应用场景包括分布式事务复盘、JVM调优记录、Kafka消费者组

didi9310的博客 477

linux内存泄漏 debug

C/C++程序一般都由程序员自己来控制内存的申请和释放,因此稍有不慎就容易出现内存泄漏ref:Valgrind Homehttps://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README.md

wwwlyj123321的博客 272

Programming.log:程序员的认知沉淀系统

在软件开发中,'模型'与'过程'是构建可靠系统的核心双要素——模型是对问题域的抽象理解,决定系统能否正确响应现实约束;过程则是保障模型落地的工程实践。真正影响长期交付质量的,不是工具链的先进性,而是开发者脑内模型的清晰度与演化能力。当技术迭代加速、框架层出不穷,唯有将碎片化经验升华为可复用的认知晶体,才能抵御知识熵增、避免重复踩坑。Programming.log 正是一种极简却深刻的技术认知沉淀方法:以纯文本为载体,以反常识洞察为内容,以时间戳锚定演进轨迹,服务于三年后的自己。它不替代文档,也不追求传播,而

dingguayi7025的博客 521

读程序员的README笔记02_软件的熵与技术债

软件的熵和技术债

lyingSeven的博客 581

程序员思维手账:用 Programming.log 提升工程决策可追溯性

Programming.log 是一种面向工程师的轻量级思考记录实践,本质是将模糊的开发直觉转化为可回溯、可验证、可迭代的认知锚点。其核心原理在于以时间戳为轴、以问题现场为起点,通过结构化模板(问题现场/决策快照/验证结果)固化思考过程,避免知识随上下文消散。技术价值体现在降低认知负荷、加速技术复用、支撑精准 Code Review 与故障复盘;典型应用场景包括重构前的设计校准、线上问题根因追溯、新人带教素材沉淀及团队工程经验沉淀。它不替代 Wiki 或 RFC,而是作为个人工程决策的‘Git 式版本历史’

didi9310的博客 408

程序员的非正经生存学:在混乱中构建可靠工程实践

软件工程本质上是人与人、人与系统协同应对不确定性的过程。当教科书强调架构设计、算法优化和规范编码时,真实开发现场却充斥着模糊需求、隐性依赖、情绪过载与协作摩擦——这些无法被UML图描述的‘软性噪声’,恰恰决定项目成败。‘语义降噪’与‘情绪缓存’并非调侃,而是工程师在高压下维持认知带宽、加速信任建立、实现知识有效传递的关键机制;它们将高熵沟通转化为可验证动作,把崩溃前的焦虑沉淀为可复用的‘生存指南’。本文聚焦程序员日常协作中的非正式实践体系,涵盖荒诞日志、双轨沟通法、人性化文档设计等可落地方法,助力团队在混沌

ciyinzhi8788的博客 664

程序员的README——玩转代码

小故事代码库就像阿尔勒的那个圆形剧场一样。一代人写了几层,然后又改了改。很多人都接触过这些代码。测试缺失或强制执行已经过时的设定,不断变化的需求扭曲了代码的使用。

凤栖梧桐 527

【文献笔记】ICCV 2021 | Point Transformer

作者提到,特别适合点云处理,因为自注意力机制是的核心,本质上就是一个集合算子:它对输入元素具有顺序不变性和数量不变性3D点云是无序的,即使改变点云txt文件中的点顺序也不会有任何影响。自注意力机制天然具有排列不变性,因为它通过对所有"点对"的关系进行建模来处理输入,而不依赖于任何特定的输入顺序点云数据通常覆盖了3D空间中的对象或场景,理解这些数据需要捕捉点与点之间复杂的空间关系。自注意力机制能够有效的捕捉这些关系,因为它为每个"点对"赋予一个。

m0_55908255的博客 965

如何编写正规的README

在描述下方,应该提供安装和使用说明。如果其他人想要为你的代码仓库做出贡献,你应该提供贡献指南。在标题下方,应该添加简短的描述,说明该项目的内容和目的。这应该是一个简洁明了的语句,用来描述你的项目的主要功能和优势。在README文件开头,应该添加一个标题,用来描述你的项目或代码仓库的名称。在最后一节中,你应该提供一些关于版权和许可证的信息。如果需要,你可以在README文件中提供其他信息,例如打赏二维码、联系方式等。最后,应该注意README文件的排版和格式要整洁、美观、易读,避免拖长、拖沓。

weixin_51495377的博客 1762

用 SAP XCO XLSX 模块优雅读 Excel:坐标、选择模式与实战案例全解析

SAP ABAP Cloud 中的 XCO XLSX 模块为 Excel 文件处理提供了官方解决方案。文章介绍了三个核心概念:通过 XCO_CP_XLSX=>DOCUMENT 获取文档句柄;使用 CL_XCO_XLSX_COORDINATE 坐标系统定位单元格;利用 Selection Pattern 精确读取数据区域。这些功能在 RAP 批量导入等业务场景中尤为实用,相比传统方案更加简洁可靠。文章还分享了真实项目中的最佳实践,如动态列定位和相对偏移技巧,帮助开发者构建更健壮的 Excel 导入逻辑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 190

[AI8051U入门第一步]环境安装和按键控制流水灯

本文介绍了AI8051U单片机的开发环境搭建及GPIO应用。主要内容包括:1)通过ISP软件完成Keil开发环境配置;2)AI8051U特性介绍,包括32位8051内核、浮点运算单元及丰富外设;3)GPIO输入输出模式解析,并附流水灯控制代码;4)提供完整的系统初始化、延时函数及LED控制代码实现。文章配套资源包含完整工程代码,适用于智能硬件及物联网开发。

sinat_58149788的博客 669

读程序员的README笔记19_读后总结与感想兼导读

读后总结与感想兼导读

lyingSeven的博客 824

111. 如何创建 SAP ABAP 锁对象(Lock Object)和加锁以及解锁函数

至此,我们完成了 ABAP 系统锁机制和加锁解锁函数的介绍。有了这些基础知识,大家就能在实际工作中,使用 Lock Object 和加锁解锁函数,编写出支持并发访问控制的 ABAP 应用程序了。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1531

程序员成长闭环:目标编译、知识编译与系统自愈

在软件工程视角下,职业成长不是模糊的愿望,而是可建模、可验证、可监控的系统工程。‘目标’需被编译为AST抽象语法树,对应可观测指标与原子动作;‘学习’本质是构建知识编译器,通过反编译思维汇编、RSS CDN缓存与教学型类型检查实现可复现认知升级;‘挑战’则作为混沌探针,触发包含故障注入、根因隔离与自愈验证的SRE式响应机制。本文融合DevOps理念与开发者实践,将技术人成长路径转化为带版本号的发布计划、每日健康检查脚本与分布式心态治理策略,聚焦真实项目中反复验证的工程化方法论——如订单服务异步化压测、Ope

diaojin6880的博客 419

【PCIe 总线及设备入门学习专栏 6.2 -- PCIe VDM (Vendor Defined Messages)】

在PCIe协议中,Vendor Defined Messages (VDMs) 是一种允许厂商定义和传输特定功能的消息类型。这种机制扩展了标准 PCIe 消息的功能,可以用于实现供应商自定义的功能,例如固件更新、设备配置和诊断信息传输。PCIe VDM 是通过实现的,它遵循 PCIe 协议栈的结构,包括事务层、数据链路层和物理层。

CodingCos的博客 1892

40.8K星爆火!Crawl4AI实战突破Cloudflare 5秒盾:AI反爬新范式,爬虫再也不被封

Crawl4AI的爆火(40.8K星)不是偶然——它解决了爬虫工程师最头疼的反爬问题,让爬虫从“体力活”变成“脑力活”,不用再花费大量时间配置指纹、编写行为脚本。但要注意:爬虫必须遵守目标网站的robots.txt协议,不得用于非法爬取数据(比如用户隐私、商业机密)。合理使用技术,才能长久落地。如果你在使用Crawl4AI时遇到具体问题(比如绕过更严格的反爬、批量爬取配置),欢迎在评论区交流,我会第一时间分享解决方案!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1601

程序员的‘不后悔’:技术决策与自我认知的协同进化

在软件工程实践中,‘不后悔’并非指零失误,而是一种基于可验证证据、持续反思与上下文适配的技术决策状态。它根植于对系统行为的深度理解(原理),强调在真实生产环境而非理想化教程中锤炼判断力(技术价值),广泛应用于全栈调试、跨团队协同、CI/CD故障定位等一线场景(应用场景)。当开发者开始质疑‘我写的代码是否配得上我的时间’,或在终端前反复确认‘这次选择有依据吗’,便已触及‘noremorse’的核心——它不是方法论终点,而是将工具链、情绪、协作与认知重新锚定为统一坐标的起点。

dingguayi7025的博客 355

Python爬虫实战:深度解析B站弹幕异步采集技术与数据可视化

title=f"弹幕词云 Top 100 (BV: {bvid})", title_textstyle_opts=opts.TextStyleOpts(font_size=23).add(series_name="弹幕词云", data_pair=list(top_100_words.items()), word_size_range=[20, 100]).add_xaxis([f"{i}-{i+1}分" for i in range(len(time_distribution))])

2201_76125261的博客 640

业余程序员实战指南:面向非科班开发者的高效技术路径

业余程序员指那些无CS背景、非全职开发但具备真实交付能力的业务一线人员,其核心特征是时间碎片化、资源受限、需求模糊却追求确定性结果。他们不关注Kubernetes或微服务理论,而聚焦于Python脚本能否30分钟解决Excel去重+邮件提醒、Streamlit能否零配置启动本地Web工具、OpenCV能否在中文路径下稳定读图。这类开发者的技术价值在于将模糊业务卡点(如‘财务每周手动汇总12个群订单’)压缩为可验证原子操作,并通过防呆设计、呼吸感环境、乐高式组装实现快速闭环。本文基于上百个真实副业项目提炼出从

ciyinzhi8788的博客 327

猿创征文|SfM(Structure from Motion)学习之路

SfM全称Structure from Motion,译为运动恢复结构,是三维重建pipeline的一部分,又称稀疏重建,在摄影测量领域则称为空三(空中三角测量)。SfM的任务是,给定一系列具有一定重叠度的图像,去同时估计出拍摄每张图像时相机的的位姿(位置t和姿态R)和被拍摄物体或场景的稀疏点云。...............

zeeq的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

程序员必备工具箱:60+网站构建高效开发与学习工作流

在软件开发领域,掌握高效的工具和资源是提升生产力的关键。从概念上讲,一个精心组织的工具集如同数字化的瑞士军刀,其原理在于通过分类、聚合与快速检索,将离散的资源转化为系统化的知识网络和工作流。这不仅能显著提升编码、调试和学习效率,其技术价值更体现在帮助开发者建立稳固的知识体系、追踪技术动态以及优化团队协作。无论是进行前端开发、后端架构、性能优化,还是参与开源项目和技术社区交流,一个得心应手的工具箱都是应对日常挑战和复杂项目的基石。本文基于对开发社区热词和行业高频搜索的洞察,聚焦于如何筛选并有效利用那些真正能解

weixin_33739523的博客 344

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 读程序员的README笔记04_防御式编程
下一篇: 读程序员的README笔记06_测试(上)
躺柒
博客等级 码龄4年 7004粉丝 1317原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值