avatar
Articles
415
Tags
259
Categories
26

Theqiqi_blog
Search

Theqiqi_blog

02-逆向应用
Created2026-08-03|架构|建模与逆向•逆向应用
逆向应用:模型 → 解构 → 具体 逆向应用回答「模型怎么用」。模型形成后,遇到新问题不再从零研究,而是用已有模型去识别、解构、映射。从成品反推模型有两种极端形态——复刻软件(产品层面反推设计)与逆向工程(二进制层面还原机制),本质都是「模型 → 解构 → 具体」。 一、模型形成以后,方向反过来正向建模之后,遇到新问题就是逆向: 12正向:具体事物 → 抽象 → 模型逆向:已有模型 → 解构 → 具体实现 以「循环」为例。已经懂了循环,遇到游戏问题「敌人不断生成直到玩家死亡」: 1234567已有模型:循环 ↓ 识别分析新问题 ↓ 发现「不断生成」符合循环结构选择 while / for ↓ 映射具体实现 不需要重新研究「什么是循环」——模型已经在手,要做的只是认出新问题里的模型结构,然后映射到具体。 二、逆向应用的三个步骤1234567已有模型 ↓ ① 识别:新问题里有哪个模型的影子候选模型 ↓ ② 解构:把新问题拆开,对照模型匹配 ↓ ③ 映射:用模型的具体形态实现具体实现 以「敌人不断生成」为例: 123① 识别:反复生 ...
01-正向建模
Created2026-08-03|架构|建模与逆向•正向建模
正向建模:具体 → 抽象 → 模型 正向建模回答「模型从哪里来」。第一次遇到一类问题时,我们不是直接拿到模型,而是先看到很多具体事物,观察、比较、提取共同结构,最后抽象成模型。这是所有知识的产生方式——循环、函数、分层、系统,都是从具体例子里长出来的。 一、模型不是凭空发明的教材常直接给出定义:「循环 = 对某个状态反复执行某种操作」。但第一次学习时,我们看到的不是定义,而是具体的东西: 1234例子 1:打印 1、2、3、4、5例子 2:遍历数组中的每个元素例子 3:不断读取用户输入,直到输入 q例子 4:游戏主循环(更新 → 碰撞检测 → 渲染 → 更新 → ...) 这些例子看起来完全不同。但观察久了会发现共同结构: 123456789具体程序 ↓重复行为 ↓循环结构 ↓for / while / loop ↓「循环」模型 模型是从具体例子里抽象出来的,不是先有定义再有例子。 二、正向建模的四个步骤12345678具体事物 ↓ ① 观察:看到了什么多个例子 ↓ ② 比较:有什么相同共同结构 ↓ ③ 抽象:把共同点提炼出来模型 ↓ ④ 命 ...
11-软件组织知识与四个层次
Created2026-08-03|架构|拆解与组织•软件组织知识与四个层次
软件组织知识与四个层次——从功能设计上升到系统组织 为什么很少有人能讲清楚「软件系统到底是怎么构成的」?因为这套知识被分散在不同学科里:软件架构教怎么划分系统、操作系统教大型系统怎么运行、嵌入式教硬件如何逐层变成软件、框架设计教谁控制谁、Linux 内核教组装与注册。这一条线把这些拼成一个统一模型,并给出软件组织的四个层次:设计 / 组织 / 工程 / 系统运行。它是拆解与组织主题的收束——把前面所有线放回「软件组织知识」的全景里。 一、有教,但是分散在不同学科里之所以很少见到,是因为这里把几个通常被分散教授的知识领域,抽象成了一套统一模型。这串推导实际上跨了好几个领域: 1组件 → 接口 → 子系统 → 组装 → 框架 → 启动 → 运行时注册 → 调度 → 完整系统 大学教材通常不会把它们作为一门课这样串起来。 1. 软件架构:教「怎么划分系统」对应:模块、组件、接口、子系统、分层、依赖、组合。关键词:Software Architecture / Software Design(Component / Interface & ...
10-微服务与组装边界
Created2026-08-03|架构|拆解与组织•微服务与组装边界
微服务与组装边界——子系统提升为独立进程 微服务首先不是一种「代码分层」,而是把一个完整系统拆成多个独立运行的服务进程。每个微服务内部再进行自己的分层。这一条线回答:① 微服务到底是什么(不是多了一层,而是子系统提升到进程级);② 为什么 Server 在 main、数据库不在(组装边界判断);③ 真正的判断标准——不是「什么东西应该在 main?」,而是「这一层的组装边界在哪里?」。 一、微服务:子系统提升为独立进程微服务首先不是一种「代码分层」,而是把一个完整系统拆成多个独立运行的服务进程。每个微服务内部再进行自己的分层。 电商系统: 123456整个系统├── 用户微服务├── 商品微服务├── 订单微服务├── 支付微服务└── 库存微服务 每个微服务本身都是一个小系统123456Order Service├── Interface HTTP/REST / RPC├── Application OrderService(业务用例)├── Domain Order / OrderItem / OrderRule(业务模型和规则)├ ...
09-裸机hypervisor的系统组织
Created2026-08-02|架构|拆解与组织•裸机hypervisor的系统组织
裸机 hypervisor 的系统组织——无 OS 时系统如何自组装 裸机 VT(Intel VT-x)程序没有 Linux 的 init、没有 RTOS 的调度器、没有 Qt 的事件循环——它必须自己建立整个系统:从硬件抽象接口开始,把 CPU/VMX/Memory/EPT/Interrupt/Communication/Hook 组织成子系统,再由 hypervisor_main() 完成初始化与组装。这一条线是「系统组织」最纯粹的案例:没有操作系统替你组装,一切组装责任都落在程序自己身上。同时它展示了两个重要方法:MVP 增量开发(先跑通最小闭环再逐步加子系统)与结构/流程/状态三维理解(只看目录看不到系统怎么运行)。 一、裸机 VT 程序本身就是一个小型系统先不要从「代码文件夹」开始,而是从系统职责开始。假设是 x86-64 Intel VT-x 裸机 hypervisor(EFI/bootloader 进入后自己建立 VMX 环境,最终启动 Windows/Linux gu ...
08-Linux的分层与组装
Created2026-08-02|架构|拆解与组织•Linux的分层与组装
Linux 的分层与组装——三种组装方式与启动流程 vs 注册机制 Linux 不是简单的「应用层 / service 层 / 基础设施层」三层,而是一个巨大的操作系统系统集合:内核内部是很多子系统,每个子系统内部又有大量组件。Linux 也没有一个类似 Server.cpp 的「总组装文件」——它的组装分散在编译期组装、启动期初始化、运行时注册机制三种方式里。这一条线回答两个问题:① 一个超大型系统的分层与组装长什么样;② 启动流程(组装系统)与注册机制(运行时扩展)是两个完全不同的概念。 一、Linux 不是简单的三层12345678910111213Linux System├── User Applications├── System Libraries / APIs├── System Call Interface├── Kernel│ ├── Process / Scheduler│ ├── Memory│ ├── VFS / File System│ ├── Network│ ├── IPC│ ├── Security│ ...
07-嵌入式与单片机的分层
Created2026-08-02|架构|拆解与组织•嵌入式与单片机的分层
嵌入式与单片机的分层——硬件能力如何逐层变成应用能力 服务器、CLI、GUI 分层是从「代码职责」出发的;嵌入式程序多了一个根本性的东西——硬件。嵌入式最好不要直接套 Web 那套 Controller / Service / Infrastructure,更自然的是按 硬件 → 驱动 → 系统能力 → 应用 拆。这一条线是拆解与组织原则在嵌入式领域的完整案例:Driver 是接口,RTOS 是框架,Middleware 是子系统,Application 是功能——「分层」在这里不是目录层级,而是硬件能力如何逐层变成应用能力。 一、嵌入式软件的基本分层12345678910Embedded System├── Hardware├── BSP / Driver│ ├── GPIO / UART / SPI / I2C / CAN / ADC / PWM / Timer├── System / Runtime│ ├── RTOS / Task / Queue / Mutex / Timer / Memory├── Middleware / Protocol│ ├── TCP ...
06-模块-组织与复用
Created2026-08-02|架构|拆解与组织•模块•组织与复用
模块:组织与复用 在「系统→子系统→组件→模块→组装」的链条里,模块站在组织和复用的位置:组件实现职责(一个功能单元),模块把这些组件组织成一个完整功能,并让它可以被复用。这一条线讲两件事——模块怎么组织(数据+算法+接口的组合),模块怎么被复用(库、静态库、模板是复用的三种形态,各有边界)。「模块负责组织和复用」是拆解与组织主题下的一条独立线。 一、模块的双重身份拆解与组织的链条里,每一层各司其职: 123456789系统 ← 完整程序 ↓ 拆成子系统子系统 ← 一组相关功能 ↓ 由组件构成组件 ← 实现职责(一个功能单元) ↓ 负责组织和复用模块 ← 组织组件成完整功能 + 让功能可复用 ↓ 组装模块子系统 ← 组装回来 模块与组件的区别: 12345组件:数据 + 算法 + 接口(功能单元,实现职责)模块:把组件组织成一个完整功能,并负责它的复用组件回答「这个功能由什么实现」模块回答「这些实现怎么组合、怎么被复用」 所以模块站在链条的中间:向下组织组件,向上支撑复用。 二、组织:模块 &#x ...
05-只有组件的子系统如何被加载
Created2026-08-02|架构|拆解与组织•只有组件的子系统如何被加载
只有组件的子系统如何被加载 拆解产生两类东西:已经是子系统(有生命周期、有框架),和只有组件、还没成子系统的东西。后者无法被直接调用——它必须在项目里被处理成可调用的形态:接口化,或框架化。接口化落在哪、框架化落在哪,不是固定的——由「这个组件是谁的」决定:业务组件接口化供调用层调用,库接口在基础设施层封装为原子化接口,全局工具(无论接口化还是框架化)放在 utils。「只有组件的子系统怎么变成可调用」是一条独立的线。 一、拆完不一定直接可用拆解产生的东西,并不都是「拿起来就能调」的。 12345已经是子系统:有生命周期,可被启动/停止 → LogSystem(start / stop / 队列 / 线程)只有组件:有数据、有算法、有原子接口,但没有生命周期、没有框架 → log 函数 + sink 组件 + 队列组件(零散的) 「只有组件」的意思是: 12✅ 有:数据结构、算法、原子化接口(组件 = 数据 + 算法 + 接口)❌ 没有:统一生命周期、初始化顺序、资源所有权 这样的东西没法直接被调用——调用者不知道「先初始化什么、谁拥有什么、用完怎么释放」。它必须先在项目里 ...
04-ECS与注册机制
Created2026-08-02|架构|拆解与组织•ECS与注册机制
ECS 与注册机制 03(游戏拆解与组装)已经给出了完整的非 ECS 拆解组装:Engine 负责怎么运行、Game 负责运行什么、GameApplication 组装。ECS 并不是另一种拆解,它只是在 03 的基础上增加了一个机制——注册机制:Engine 提供注册入口(registerComponent / addSystem),Game 把组件和系统注册进去,Engine 在运行时按注册内容调度。这一条线讲:注册机制是什么、它给拆解与组装增加了什么。 一、03 的组装是「写死」的03 的组装里,Game 把内容交给 Engine 的方式是直接调用: 12345678910class Game { void registerComponents(Engine& engine) { engine.ecs.registerComponent<Transform>(); engine.ecs.registerComponent<Health>(); } void r ...
1…111213…42
avatar
Theqiqi
Articles
415
Tags
259
Categories
26
Follow Me
Announcement
This is my Blog
Recent Post
03-反馈流2026-08-21
02-错误流2026-08-21
01-控制流2026-08-20
05-多系统协作的十条流2026-08-19
04-多层系统的十条流2026-08-18
Categories
  • C with Socks16
  • C_Sound10
  • C_Windows_Graphi9
  • Cpp5
  • Cpp_Socket4
  • C语言在Windows中实现抓包4
  • C语言的万种用法9
  • Debian1
Tags
十阶段 接口先行 Qt主题架构 WindowsDriver python 从输入到交互 select LinuxDriver 入口系统 UDP服务器与可靠性 微服务与组装边界 DLL javascript 多系统组成的网络通信软件 Piano 拆解资源 游戏类型演化 Kali 建模与逆向 BSD Sockets x86汇编程序 IPV4 Drvier 认知能力分解 技术流 qemu Ninja 业务流程到功能点 用头文件验证依赖 引擎组装 Sound 从状态到系统 epoll QEMU 依赖接口 shell 依赖关系 Graphi 拆解美术 只有组件的子系统如何被加载
Archives
  • August 2026128
  • January 20261
  • April 20251
  • March 202595
  • February 202523
  • September 20242
  • August 202471
  • June 20242
Info
Article :
415
UV :
PV :
Last Update :
©2020 - 2026 By Theqiqi
Framework Hexo|Theme Butterfly
Search
Loading the Database