基础软件
文章平均质量分 83
基础软件的研究与学习,包括:
操作系统,编译原理与实现
CoderIsArt
内视、慎独、无悔代码人生;数字化、人性化、科学化;自省的底层程序员,努力与世界同步。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RFC 3720 互联网小型计算机系统接口(iSCSI)协议
摘要:RFC 3720定义了iSCSI协议标准,该协议通过TCP/IP网络传输SCSI命令,实现存储设备的远程访问。iSCSI采用客户端-服务器架构,支持多连接会话、阶段合并和错误恢复机制。协议包含登录协商、PDU格式、安全认证(强制CHAP和可选IPsec)等核心规范,并定义了0-3级递进式错误恢复能力。iSCSI默认使用TCP 3260端口,支持摘要校验、任务迁移等特性,使传统SCSI存储突破距离限制,可利用现有IP基础设施构建存储网络。文档详细说明了协议分层模型、状态机、参数协商及各类PDU格式,为存原创 2025-12-06 22:02:07 · 501 阅读 · 0 评论 -
QEMU学习资源汇总
KVM Forum(年度会议):https://events.linuxfoundation.org/kvm-forum/· 网址:https://gitlab.com/qemu-project/qemu。· 网址:https://www.reddit.com/r/QEMU/· 网址:https://www.linux-kvm.org/· 说明:聚焦KVM/QEMU生态,含性能优化和虚拟化教程。· 网址:https://wiki.qemu.org/· 网址:https://www.qemu.org/原创 2025-12-05 18:11:49 · 401 阅读 · 0 评论 -
QEMU TCG Plugins
QEMU TCG Plugins是QEMU 5.0引入的动态分析插件框架,支持非侵入式监控虚拟机执行过程。核心特性包括:基于TCG事件的回调机制(指令执行、内存访问、翻译块事件等)、线程安全支持和运行时动态加载。开发者可通过共享库形式编写插件,无需修改QEMU源码。该框架提供丰富API用于指令分析、内存跟踪和性能统计,适用于安全分析(如污点分析)、性能剖析和学术研究等场景。虽然会带来5%-100%的性能开销,但通过选择性插桩和内联优化可降低影响。典型应用包括动态调用图分析、内存访问跟踪和微架构模拟,但不适合原创 2025-12-05 17:29:08 · 1069 阅读 · 0 评论 -
Semihosting(半主机)技术
摘要:Semihosting(半主机)是嵌入式系统调试技术,允许目标设备程序通过调试接口与主机交互。它通过特殊断点指令触发,由主机代为执行I/O等操作后返回结果。该技术适用于早期系统启动、裸机调试等场景,具有开发便利、调试友好等优势,但存在安全风险,需在可信环境使用。QEMU等仿真器提供支持,适用于ARM、RISC-V等多种架构。开发时需注意性能影响和依赖性,生产环境建议移除该功能。作为重要调试工具,Semihosting提高了嵌入式开发效率,但需规范使用并处理好安全问题。原创 2025-12-05 16:52:30 · 977 阅读 · 0 评论 -
基于 Qt 6 的 CS 架构虚拟光驱系统
本文介绍了一个基于Qt6的跨平台虚拟光驱系统,采用C/S架构实现。系统严格遵循SCSI SAM-5和MMC-6规范处理命令,并完整支持ISO9660:1998标准解析光盘镜像。工程采用模块化设计,包含客户端界面、服务端核心、网络通信、SCSI命令处理、ISO文件系统解析和设备模拟等组件。客户端提供连接管理、命令发送和日志显示功能;服务端实现了多客户端管理、SCSI命令分发、ISO镜像解析和虚拟设备控制。系统充分利用Qt信号槽机制实现组件解耦,支持Windows/Linux/macOS平台,具备良好的扩展性和原创 2025-11-24 10:42:13 · 90 阅读 · 0 评论 -
SAM-5 核心类体系的 C++ 完整设计
本文基于SCSI架构模型SAM-5标准,提出了一个完整的C++类体系设计方案。该设计包含26个核心类,包括基础架构类(如SCSIDomain、ServiceDeliverySubsystem)、端口和地址类(如SCSIPort、LUN)、设备和逻辑单元类(如SCSITargetDevice、LogicalUnit)、功能和任务管理类(如TaskManager、DeviceServer)等。设计采用现代C++特性,使用智能指针管理对象生命周期,通过继承和组合关系体现SAM-5模型中的概念关联。文章还提供了一个原创 2025-11-22 21:24:41 · 419 阅读 · 0 评论 -
SAM-5 核心模型 C++ Demo 程序
本文实现了一个基于SCSI架构模型SAM-5标准的C++演示程序,包含五大核心模块:架构模型(SCSI设备、逻辑单元和端口关系)、命令模型(命令执行流程和状态管理)、事件通知模型、任务管理功能和任务集管理。程序通过面向对象设计封装了命令交互、任务管理和事件处理流程,支持ACA机制、命令状态流转和任务管理操作。演示程序模拟了SCSI设备间的命令交互场景,包括READ/WRITE命令执行、ACA建立与清除、逻辑单元重置等典型操作,并输出详细交互日志。该实现可作为SCSI协议栈开发的参考模型,未来可扩展传输协议支原创 2025-11-22 11:28:11 · 740 阅读 · 0 评论 -
SCSI Architecture Model - 5(SAM-5)
摘要:SAM-5是美国国家标准草案(T10/2104-D Rev05),由INCITS T10委员会制定,聚焦SCSI架构模型。文档定义了SCSI类体系(26类核心类)、Nexus关系(4类)、LUN标识规则(64/16位)及4种寻址方式,详细阐述了命令模型(含8种状态码)、任务管理功能(9类)及任务集管理机制。特别说明CLEARACA与ABORTTASKSET的区别:前者清除ACA条件,后者中止指定nexus所有命令。文档还包含事件通知模型、引用标准及资料性附录,强调仅限INCITS成员用于标准化活动。目原创 2025-11-22 10:03:07 · 475 阅读 · 0 评论 -
libburn、libisofs 和 libisoburn 这三个核心库
本文分析了libburnia项目中的三个核心库:libburn、libisofs和libisoburn。libburn负责光盘低级读写操作,提供设备控制和数据刻录功能;libisofs构建符合ISO9660标准的文件系统结构,支持多种扩展格式;libisoburn作为桥梁,协调前两者实现从文件系统到物理刻录的转换。三库分工明确:libisofs处理"写什么",libburn负责"如何物理写入",而libisoburn则实现逻辑到物理的转换。这种解耦设计使整个系统既灵活原创 2025-11-20 17:55:21 · 1042 阅读 · 0 评论 -
xorrisofs的系统架构与开源地址
xorrisofs是GNU xorriso项目的兼容层前端,用于模拟mkisofs/genisoimage命令。其系统架构采用分层设计:用户接口层提供兼容前端和原生交互模式;核心引擎层(libxorriso)处理高级功能;底层依赖libburnia库族(libburn、libisofs、libisoburn)实现ISO文件系统生成和光盘刻录功能。该架构具有模块化、兼容性强等特点,支持文件输出和设备输出两种模式。项目代码仓库位于GNU Savannah,主流Linux发行版均可通过包管理器安装。原创 2025-11-20 17:03:11 · 1029 阅读 · 0 评论 -
ISO9660
ISO9660文件系统是光盘存储的标准格式,具有以下特点:文件名只能包含大写字母、数字、点和下划线;扇区大小通常为2KiB;支持双端序数字格式。系统包含主卷描述符、路径表和目录记录三种数据结构,提供两种文件查找方式:通过路径表快速定位或递归搜索目录。RockRidge和Joliet扩展分别支持POSIX属性和Unicode文件名。注意某些系统可能生成不符合标准的光盘,且路径表条目限制为65536个。系统区域前32KiB可能包含其他分区信息。原创 2025-11-20 16:40:08 · 790 阅读 · 0 评论 -
ISO 9660 文件和目录描述符图形化说明
本文档通过图形化方式系统阐述了ISO9660标准中文件和目录描述符的结构体系。该体系包含三种核心数据结构:目录记录(可变长度,包含文件位置、大小、时间戳等基本信息)、路径表记录(支持快速目录导航)和扩展属性记录(提供权限控制、多时间戳等高级功能)。文中详细解析了各类描述符的字段结构、数据格式及相互关系,特别对比了7字节与17字节两种日期时间格式的差异,并说明了字符类型、数值记录等标准规范。配套的8幅图示直观呈现了复杂的结构细节,为理解ISO9660文件系统组织原理提供了可视化参考。该体系设计兼顾基础功能与扩原创 2025-11-20 16:22:48 · 908 阅读 · 0 评论 -
ISO9660卷描述符结构图形化说明
本文档图形化展示ISO9660标准中卷描述符的结构与内容。ISO9660是光盘文件系统的国际标准,卷描述符是其核心部分,包含主卷描述符、补充卷描述符、引导记录等多种类型。主卷描述符详细记录了卷标识、系统信息、路径表等关键数据,采用2048字节固定结构。补充卷描述符支持多语言字符集,引导记录用于系统启动。文档还说明了日期时间格式、路径表结构和数值记录方式,并配有多个可视化图表,直观呈现复杂的卷描述符体系。原创 2025-11-20 16:15:20 · 638 阅读 · 0 评论 -
仿照布尔代数的一套三值代数系统
本文介绍了一个基于Kleene三值逻辑的代数系统,扩展了传统布尔代数结构。该系统定义了三个基本值:真(T)、假(F)和未知(U),并实现了六种逻辑运算:非、与、或、异或、蕴含和等价。系统通过真值表验证了运算规则,保持了布尔代数的交换律、结合律等基本性质,但在三值环境下排中律和矛盾律不再普遍成立。应用示例展示了该系统在数据库查询、电路设计和不确定性推理等领域的实用性。该三值代数系统为处理不确定性和部分信息提供了严格的数学基础,扩展了传统二值逻辑的应用范围。原创 2025-11-12 19:27:17 · 541 阅读 · 0 评论 -
用LLVM开发新语言系列(2)实现语法分析器和AST
本文介绍了如何使用LLVM为Kaleidoscope语言开发语法解析器和抽象语法树(AST)。主要内容包括: 定义AST节点结构,包括表达式、函数原型和函数对象等核心语法结构; 实现递归下降解析技术,处理基本表达式(数值、变量、括号表达式); 采用运算符优先级解析算法解决二元表达式的二义性问题; 完成函数定义、外部声明等语法结构的解析; 构建约400行代码的完整编译器前端,包含词法分析、语法解析和AST生成功能。 通过优先级表驱动的解析方法,系统能正确处理运算符优先级和结合性,为后续代码生成阶段奠定基础。该原创 2025-11-12 17:22:26 · 588 阅读 · 0 评论 -
编译器中的递归下降解析和运算符优先级解析两种技术
本文比较了递归下降解析和运算符优先级解析两种技术。递归下降采用自顶向下方法,为每个语法规则编写递归函数,直观反映语法结构但存在左递归问题;运算符优先级专门处理表达式,通过优先级表高效解决结合性和优先级问题。两者各具优势:递归下降适合语言整体结构解析,运算符优先级擅长复杂表达式处理。实际应用中常结合使用:用递归下降解析语句结构,运算符优先级处理表达式部分。理解这两种技术对构建编译器至关重要,选择时需根据具体语法特性决定。原创 2025-11-03 10:19:58 · 446 阅读 · 0 评论 -
基于LLVM的四值计算机类C语言编译器实现
摘要:本文详细介绍了为四值计算机设计编译器的完整流程。从理解四值逻辑系统开始,包括经典四值(0,1,X,Z)和量子四值等类型,到项目架构设计、开发环境配置、数据类型定义、前端编译器创建等关键步骤。重点阐述了LLVM IR扩展、四值运算语义实现和目标代码生成等技术细节,并提供了示例语言扩展和完整的开发工具链构建方案。文章还包含测试策略和实用建议,推荐从基础功能入手,重用Clang组件,并强调文档化和模拟测试的重要性。原创 2025-11-01 10:34:21 · 218 阅读 · 0 评论 -
《基本函数的统一算法》
本文提出了一种基于CORDIC技术的统一算法,用于高效计算三角函数、双曲函数、指数函数等基本函数及其反函数。该算法通过圆周、线性、双曲三种坐标系模式,仅需移位、加法、减法等基本操作,即可实现多样化的数学运算。其核心优势在于硬件实现的简洁性——无需乘法器,仅需三个寄存器、移位器和加法器即可构建计算引擎。该算法特别适合ROM或PLA实现,为嵌入式系统等场景提供了高效的计算方案。通过预定义的迭代序列和巧妙的收敛处理,该方案在保证精度的同时显著降低了硬件复杂度。原创 2025-10-23 20:03:14 · 787 阅读 · 0 评论 -
CORDIC三角计算技术
本文摘要: Jack E. Volder于1959年提出的CORDIC(坐标旋转数字计算机)技术是一种通过移位和加法实现三角计算的高效算法。该技术利用预先计算的角度序列,通过迭代方程xi+1=xi-yi·di·2^-i和yi+1=yi+xi·di·2^-i进行平面旋转,避免了复杂的乘法运算。算法支持圆周、线性和双曲坐标系计算,特别适合具有快速加法器但乘法器性能受限的计算机系统。CORDIC仅需约n次加法即可完成n位三角计算,硬件实现仅需三个寄存器、两个移位器和三个加法器。该技术后来被扩展用于计算双曲函数等,原创 2025-10-23 16:48:23 · 1002 阅读 · 0 评论 -
Ceph: 一个可扩展的高性能分布式文件系统
本文介绍了Ceph分布式文件系统,它通过将数据与元数据分离、使用CRUSH伪随机数据分布函数和动态分布式元数据管理,实现了高性能、高可靠性和可扩展性。系统由客户端、对象存储设备集群、元数据服务器集群和监视器组成。CRUSH算法通过层次化映射将对象分配到存储设备,支持多种副本放置策略。元数据管理采用动态子树分区和能力委派机制。实验评估显示,在256节点集群上,Ceph支持超过25万次元数据操作/秒,并展现出良好的可扩展性。相比传统方案,Ceph消除了元数据查找开销,能适应动态工作负载。未来工作包括改进小文件性原创 2025-10-16 17:38:05 · 74 阅读 · 0 评论 -
BMC与实现技术路线
BMC与技术实现原创 2025-04-24 06:52:11 · 2726 阅读 · 0 评论 -
BIOS与UEFI介绍
BIOS与UEFI功能简介与相互关系原创 2025-04-24 06:41:09 · 1306 阅读 · 0 评论 -
BMC 管理 的技术细节说明及 C 代码演示
BMC 管理原创 2025-04-24 06:03:52 · 748 阅读 · 0 评论 -
Libconfig 库详解
配置库解析原创 2025-04-18 07:08:58 · 785 阅读 · 0 评论 -
自主开发类似TAS(Thin-Agent服务)的工具:技术实现指南
TAS替代方案实现技术路线原创 2025-04-18 07:00:22 · 599 阅读 · 0 评论 -
TAS 相关组件安装指南
TAS 相关组件安装原创 2025-04-18 06:47:02 · 551 阅读 · 0 评论 -
超微工具链整合使用指南 (TAS + SUM + SMCIPMITool)
tas工具链整合使用原创 2025-04-18 06:42:32 · 735 阅读 · 0 评论 -
配置TAS(Thin-Agent服务)与监控数据
tas 配置与监控数据原创 2025-04-18 06:34:40 · 604 阅读 · 0 评论 -
TAS启动与卸载
tas的启动与卸载原创 2025-04-17 23:15:39 · 1208 阅读 · 0 评论 -
TAS(Thin-Agent服务)的先决条件与安装指南
TAS安装原创 2025-04-17 23:01:38 · 491 阅读 · 0 评论 -
Thin-Agent服务(TAS)概述
Thin-Agent Service (TAS)原创 2025-04-17 22:56:11 · 532 阅读 · 0 评论 -
申威机器体系结构与指令系统
其体系结构与指令系统设计充分体现了高性能、高能效和自主可控的特点。| **特性** | **申威(Sunway)** | **龙芯(LoongArch)** | **飞腾(Phytium)** |- **256个CPE核心**:专为并行计算优化,支持高密度浮点运算,每个CPE包含独立的计算单元和本地存储(LDM)。- 采用**定制化工艺**与**动态电压频率调整(DVFS)**技术,在保持高性能的同时降低功耗。原创 2025-04-17 19:48:53 · 1350 阅读 · 0 评论 -
编解码技术:最大秩距离码(Maximum Rank Distance Code)
MRD编码技术原创 2025-01-28 11:04:19 · 999 阅读 · 0 评论
分享