Skip to content
AbyssWhalenPublic

About

BitAtlas:面向 408 复习的本地优先计算机科学学习与可视化实验平台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

BitAtlas

BitAtlas 是面向个人考研复习的 local-first 计算机科学学习与可视化实验平台。当前版本聚焦 408 四科,定位为 2009 工程 Beta:应用、学习数据闭环和四科实验室可以在本机使用,但题目内容仍处于人工复核阶段,不是正式发布题库。

题包发布模式

经维护者 2026-09-02 决定,2009 题包随公开仓库发布:apps/web/public/content/ 中的题库 JSON 与来源页扫描图会一起部署到站点,克隆后即可浏览与练习。题目仍处于 needs-review 人工复核阶段,不是正式审核题库;原始 PDF、OCR 中间产物与 local-data/ 仍不公开。

仓库随后已接入并追踪 2010–2025 题包,当前分发范围为 17 年、799 题。新增年份首次公开仍须维护者授权。

若部署产物缺少题包(/content/2009.json 显式 HTTP 缺失),应用进入无题包模式:实验室、本地 PDF、设置和备份能力仍可使用;真题浏览、练习、模考和内容复核会显示明确空状态,不会让整个应用崩溃。

当前可用功能

刷题与复习

  • 浏览和按年份筛选 2009–2025 的 799 道题目,创建顺序、随机或专项练习;2009 是总览卡片、知识图、人工复核和正式模考的旗舰年份。
  • 作答、提交、查看解析与来源页,并保存草稿和练习进度。
  • 记录错题、笔记、收藏和掌握度,再从错题或知识点发起复习。
  • 总览页按当前题面版本重放作答证据,生成每天稳定的 8 题复习计划;旧题面作答不会污染完成度、错题或今日队列。
  • 刷新或重开页面后恢复未完成练习;个人学习数据保存在浏览器 IndexedDB。
  • 导出和恢复带版本校验的 JSON 备份(当前导出 schema v3);模考记录、普通学习记录和 legacy v1/v2 数据分开保留。损坏或跨表矛盾的备份会在覆盖现有数据前被拒绝,并兼容 v1/v2 备份的 fail-closed 迁移。底层 merge 只接受联合后仍通过完整跨表校验的无歧义并集,不猜测重叠历史或人工掌握度的冲突胜者。
  • 应用壳和已安装题包支持 PWA 离线使用,不需要账号或远程服务。
  • 新版下载完成后会提示更新;确认当前操作已保存,关闭所有 BitAtlas 页面(包括独立 PWA 窗口)再重新打开,即可使用新版。打开的旧页面继续使用原有缓存,不会因后台更新被强制刷新。

内容复核与学习分析

  • /review/2009 提供逐题人工复核工作台,可对照来源页、记录检查项并导出复核 ledger。
  • 发布工具生成的 verified 题包可从数据页导入;安装前会校验整包 hash、47 题状态和全部来源资产,已安装 verified 内容不会被启动时的草稿降级。
  • 统计页提供学习活动热力图、正确率、科目表现和薄弱知识点;统计按当前题面版本过滤历史作答。
  • /knowledge 提供 2009 知识证据图、节点证据详情和专项练习入口。它是题目级证据图,不是完整 408 考纲知识树。
  • 当前已有 34/47 题提供真题与实验、知识节点之间的双向深链;深链存在不代表题目已经人工审核。
  • 当前正式人工复核进度为 0/47,题包状态仍是 needs-review。结构校验、OCR 交叉检查和自动化测试不能替代逐题人工审核。
  • 2026-10-04/05 已完成 2009 全部 47 题的 AI 来源核对,校订 17 题内容并补齐 3 题的跨页解析索引,见 逐题报告。题包提升为 2009.0-draft.3;旧作答保留为历史记录,不计入新版题面的统计。此项来源核对未提升正式审核状态。
  • 来源核对和人工审核进度可在数据管理页查看,正常首页不显示审核状态栏。来源核对完成记录仅适用于与本次核对版本及 hash 完全匹配的题包;其他版本不沿用本次结论。
  • /mock 提供固定 47 题、180 分钟、150 分整卷模考入口;正式题包尚未完成逐题人工复核时入口保持关闭。通过 verified 题包后,/mock/:examId 将持久化草稿、按已保存开始时间倒计时、支持到时自动交卷,并在交卷后独立保存 7 道综合题自评。同一浏览器的多个标签页会实时观察模考更新;无本地未保存输入时自动同步,有未保存输入时保留本地值并进入冲突只读态,必须显式加载最新记录后才能继续写入。该能力不提供云端或跨设备同步。

本地 PDF

  • /documents 可将本机 PDF 导入当前浏览器的私有资料库,不会上传文件。
  • 支持重命名、移除、按页阅读、缩放、适宽显示和恢复上次页码。
  • PDF 字节和元数据保存在浏览器 Cache Storage,并在读取时核对文件标识和完整性。

四科可视化实验

实验室目前围绕 2009 代表题建立可验证的交互切片,并不等于四科全部知识点已经可视化。

  • 计算机组成原理 /lab:进制转换、原码/反码/补码、IEEE 754、RV32I 指令编码、单周期数据通路、五级流水线、Cache 映射、存储器芯片扩展、中断与 DMA CPU 开销、数据通路微操作调度、总线带宽,共 11 个模块;流水线支持前递开关、RAW/load-use 停顿、taken branch 冲刷和逐周期时空图,并提供 Q18 的通用功能段时延模式(90 / 80 / 70 / 60 ns -> 90 ns);Q15 按 64KB 主存、4KB ROM、2K x 8 bit ROM 与 4K x 4 bit RAM 重放位扩展、字扩展和 2 + 30 = 32 片容量守恒;Q20 按来源的 4 B、2 个时钟和 10 MHz 重放周期时长、每秒总线周期数与 20 MB/s(160 Mbit/s),只采用十进制单位,不模拟等待、仲裁、编码或协议开销;Q43 按题设十进制 MB 和无访存冲突假设重放 2.5% 中断占用、0.1% DMA 占用与 96% 相对降低;Q44 从 C5 起重放来源支持的 parallel-5 / split-6 两套确定性 trace,展示 unknown 暂存寄存器、AB/DB/CPU 内总线、控制信号和 16 位模加法,只说明架构可见结果一致,不提供任意微操作评分器或所有合法方案全集。
  • 数据结构 /lab/data-structures:现有八个模块。Q41 对照题设局部最近边策略和 Dijkstra;Q42 用可编辑单链表重放快慢指针、不变量、边界与 O(n) / O(1) 结果;Q2 按目标输出重放 14 次 push/pop,以历史峰值解释最小栈容量,并只展示题干能够确定的输出前缀,不虚构队列占用曲线;Q9 把关键字追加到完全二叉树末端,逐次展示父子比较、三次上浮和层序结果;Q3 使用可编辑层序输入重放六种二叉树遍历、递归调用栈与访问前缀,RNL 预设结果为 3, 1, 7, 5, 6, 2, 4;Q6 穷举 LL/LR/RL/RR 四条二叉路径,逐边按左孩子右兄弟规则还原森林关系,并明确只有命题 I、II 可能;Q10 从题给第二趟状态逐项检查起泡、插入、选择和二路归并的必要不变量,完成态只报告“题列四项中仅 B 未被必要条件排除”,不重放未知前两趟,也不把必要条件当充分条件;Q5 用层容量、目标层内部/叶分区和下一层新增结点数推导最大构型 111,不生成或评分任意完全二叉树。
  • 操作系统 /lab/os-memory:现有七个模块。Q46 虚拟内存逐次展示 TLB、页表、缺页处理、LRU 置换和访问时间;Q29 磁盘调度支持 FCFS、SSTF、SCAN、LOOK、C-SCAN、可选物理边界和磁头轨迹;Q45 信号量同步重放容量 N 的奇偶缓冲区、mutex / empty / odd / even、FIFO 阻塞队列和 P/V 许可直接移交;Q25 单类资源死锁实验用 R=8、M=3、Kmin=4 对照安全完成链与极端占有并等待状态;Q31 逐步区分目录项、软链接自身 inode、F1/F3 共享目标 inode、link count 和删除 F1 后的 dangling 状态;Q27 按 32 位地址、8 位段号重放 24 位段内位移和 2^24 字节最大段长,明确不模拟段表、物理地址或保护机制;Q24 将来源概念与通用教学示例分栏,按 R=(等待时间+执行时间)/执行时间 重放非抢占 HRRN、就绪队列响应比、CPU 空闲区间和稳定 tie-break,不冒充 2009 真题轨迹。七个模块均支持精确 URL 恢复和逐步观察;题目未给物理端点时,SCAN 只给服务顺序,不伪造总移动量。
  • 计算机网络 /lab/network:现有八个模块。Q47 演示 CIDR 子网划分、路由聚合和最长前缀匹配;Q35 重放 Go-Back-N 发送窗口、累计 ACK、丢帧与超时回退;Q39 按明确命名的 408 经典模型展示慢开始、拥塞避免和丢包反馈;Q38 将两个连续 payload 展开为 [SEQ, SEQ + length) 字节区间,读取下一个期望序列号的累计 ACK,并明确不建模 SACK、丢包或序列号回绕;Q37 将最小帧减少 800 bit 换算为 0.8 μs 的往返传播时延差和至少 80 m 的距离变化,不虚构原始帧长、具体拓扑或退避重传;Q34 在题设无噪声、3 kHz 带宽、4 相位与 4 种振幅下重放 16 个符号状态、4 bit/符号 和 24 kbps 的奈氏上限,并明确不代入香农容量或实际调制误差;Q36 以有限静态转发表展示数据链路层按目的物理地址查找出口端口,未命中只报告本示例无匹配,不模拟泛洪、学习、VLAN、STP 或真实帧时序;Q40 按来源的 2009 基础模型对照 TCP/21 控制连接与 TCP/20 数据连接,只解释命令/文件数据职责,不覆盖主动/被动协商、动态数据端口、TLS、NAT 或真实网络时序。

尚未完成

  • 408-user 已新增 schema v3,同时原样保留 v1/v2 store 定义和 v1/v2 备份导入路径。session 记录每题题面版本快照,progress 按题号+题面版本隔离;无法证明版本的旧草稿和旧 mastery 作为 legacy 保留且不会投射到当前题面。v3 的 mockExams 只由专用 repository 写入,交卷和综合题自评保持原子、幂等并与题面版本闭包校验。
  • 独立记忆卡评分历史尚未建模或持久化。当前每日计划是从版本化 Attempt 确定性派生,不写隐藏状态。
  • 2009–2025 已完成草稿导入与多年份练习,但 799 题仍全部为 needs-review;2024/2025 的 80 道选择题仍缺文字解析,791 道题的第二提示使用通用模板。导入覆盖不代表已完成人工审核;知识图、人工复核工作台和正式模考当前主要限定 2009。
  • 不提供账号、社区、排行榜或云同步。当前个人本地使用无需后端,也无需 VPS;只有未来增加跨设备同步或服务端能力时才需要部署方案。
  • 原始 PDF 和版权状态不明确的内容只应保存在被忽略的本地目录,不应进入公开仓库或构建产物。

本地运行

要求 Node.js 22.20+ 或 24.12+(包括更新的兼容版本)和 npm。所有依赖安装在项目目录内,不需要全局安装。

git clone <repository-url>
cd <repository-directory>
npm install
npm run dev

开发服务器启动后,按终端输出的本地地址访问应用。

在线访问

项目通过 GitHub Pages 构建和托管,公开地址为 https://408.fytjut.com/。站点使用 BitAtlas 品牌,支持桌面浏览器、移动浏览器和可安装 PWA。

公开仓库包含源码、实验逻辑、文档,以及已纳入分发的题包与来源页图;原始 PDF、OCR 中间产物和本地学习数据不上传。仓库尚未选择 LICENSE,公开访问不等于授予复制、修改或再分发许可。如果部署产物缺少题包,实验室、资料库、设置和备份仍可用,题库相关入口会显示明确空状态。

GitHub Actions 从 main 构建 apps/web/dist 并发布到 Pages。自定义域名由 apps/web/public/CNAME 声明,构建时复制到 Pages 根目录;DNS 记录由域名服务商维护。

验证

公开代码门禁:

npm run lint
npm run typecheck
npm run test
npm run build

仓库自带 2009 题包,内容与浏览器门禁可直接运行:

npm run test:release
npm run content:validate
npm run test:e2e

npm run test:e2e 先完成生产构建,再使用真实 Chrome 验证桌面和移动端流程,生成 apps/web/dist/ 与 output/playwright/ 产物。默认按启动时可用内存分配 workers:预留 1 GiB,每个 worker 预算 2 GiB,上限 4,并受可用 CPU 数限制;报告须记录实际并发数。npm run test:e2e -- --workers=8 可单独复现固定并发压力场景;直接使用 npx playwright test 时须先运行 npm run build。窄改动优先运行直接相关测试,阶段封板再执行相应全量门禁。tests/e2e/code-only-mode.spec.ts 通过拦截 /content/2009.json 模拟无题包部署,验证空状态合同。

2026-10-05 发布验证:lint、typecheck、1120 个单元测试、内容/发布工具检查及生产构建通过;默认完整 E2E 204/204(本次资源预算为 2 workers,三视口,零跳过)。修复已推送 main 并部署,线上桌面、手机和离线公式渲染复验通过。最近一次固定 8 workers 完整压力检查为 195/204,尚未重新验证为通过;默认结果不代表该压力限制已经解决。详见 发布检查 和 HANDOFF。

架构与运行模式见 docs/ARCHITECTURE.md,本地题包工作流见 docs/LOCAL_CONTENT.md,公开发布检查见 docs/RELEASE.md。项目约束、当前检查点和决策记录分别见 AGENTS.md、HANDOFF.md 与 notes.md。

历史部署验证基线

以下保留 2026-09-02 当时的部署与验收记录。2026-10-04 的重新审查见 复审报告,随后修复见 修复记录;2026-10-05 的实际部署和最新验证以 发布检查 为准。

  • lint 与全部 workspace typecheck 通过。
  • 全仓 Vitest 为 97 files / 1090 tests passed。
  • production build 为 1920 modules / 198 static-copy / 88 PWA entries (2780.31 KiB)。
  • release 工具测试为 10/10 passed;内容为 47 questions / 19 assets,状态仍是 needs-review; verified 0/47。
  • 公开代码无私有题包模式的真实 Chrome 合同在 1440、1366、390 三视口为 3/3 passed。
  • 默认 8 workers / 3 projects 全量 E2E 最近一次为 187/189 passed。失败是 chromium-1440 的 CSMA/CD 与 chromium-1366 的完全二叉树实验冷启动/actionability 超时,不能声称全量通过。
  • 当前 .last-run.json 可能来自后续定向运行,只代表对应集合,不覆盖上述默认全量结果。
  • GitHub Pages Actions run 33524976596 构建与部署成功;408.fytjut.com 的 CNAME、Pages 证书和 HTTPS 强制均已启用。
  • 线上根路径、/lab、/knowledge、Q34 网络深链接和 Q24 操作系统深链接已完成桌面与 390px 有限验收,PWA manifest、favicon、registerSW.js、sw.js 和两张安装图标均返回成功。

本次没有为已知并发冷启动问题无界重跑默认全量 E2E。

仓库目前没有许可证文件。公开前必须由维护者明确选择许可证;没有许可证不代表代码可自由复用。

About

BitAtlas:面向 408 复习的本地优先计算机科学学习与可视化实验平台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages