└── README.md /README.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 1970-01-01 3 | --- 4 | 5 | # jiegec 的项目 6 | 7 | 受 [wangrunji0408/UndergraduateProjects](https://github.com/wangrunji0408/UndergraduateProjects) 启发,我也来总结一下。 8 | 9 | > Q:时间都去哪儿了? 10 | > 11 | > A:刚刚睡醒 什么事 12 | 13 | ## 目录 14 | 15 | ### 计算机系课程及相关作业 16 | 17 | | 时间 | 课程 | 项目 | 18 | |---------|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 19 | | 2017.10 | 离散数学 | [Props](#props) | 20 | | 2017.11 | 程序设计基础 | [SimpleExtFs](#simpleextfs) | 21 | | 2018.05 | 面向对象程序设计基础 | [OnePassSynthesisDMFB](#onepasssynthesisdmfb),[NaiveLedger](#naiveledger) | 22 | | 2018.06 | 概率论与数理统计 | [HLLeBPF](#hllebpf) | 23 | | 2018.07 | 程序设计小学期 | [DMCD](#dmcd),[ChineseChess](#chinesechess),[SearchEngine](#searchengine) | 24 | | 2018.11 | 软件工程 | [Info9](#info9) | 25 | | 2019.02 | 操作系统 | [rCore](#rcore) | 26 | | 2019.04 | 人工智能导论 | [Pinyin](#pinyin),[FourChess](#fourchess),[EmotionClassifier](#emotionclassifier) | 27 | | 2019.04 | 存储技术基础 | [KVEngine](#kvengine),[HERMES](#hermes) | 28 | | 2019.05 | 多媒体技术基础 | [RBSplit](#rbsplit),[MultimediaCompression](#multimediacompression),[MultimediaSound](#multimediasound),[MultimediaAnalysis](#multimediaanalysis) | 29 | | 2019.06 | 数字逻辑设计 | [NaiveRouter](#naiverouter),[router](#router),[router_mb](#router_mb),[router_ksz8795](#router_ksz8795),[rgmiimux](#rgmiimux) | 30 | | 2019.06 | 计算机网络原理 | [Router-Lab](#Router-Lab) | 31 | | 2019.07 | 专业实践 | [GuGuMIPS](#gugumips),[GuGuMIPSSoC](#gugumipssoc),[linux-gugumips](#linux-gugumips),[u-boot-gugumips](#u-boot-gugumips),[ucore-gugumips](#ucore-gugumips),[usbh](#usbh) | 32 | | 2019.08 | Java 程序设计与训练 | [JabaHomework](#jabahomework),[NewsApp](#newsapp) | 33 | | 2019.08 | 汇编语言程序设计 | [asm-homework](#asm-homework) | 34 | | 2019.09 | 计算机网络安全技术 | [sdes-visualization](#sdes-visualization) | 35 | | 2019.10 | 计算机组成原理 | [booth-visualization](#booth-visualization),[integer-divide-visualization](#integer-divide-visualization),[rocket2thinpad](#rocket2thinpad) | 36 | | 2019.10 | 编译原理 | [online_tac_vm](#online_tac_vm),[online_decaf](#online_decaf),[gll-pg](#gll-pg),[decaf-lsp](#decaf-lsp),[decaf-rs-pa](#decaf-rs-pa) | 37 | | 2020.01 | 信号处理原理 | [SignalProcessing](#SignalProcessing) | 38 | | 2020.03 | 软件分析与验证 | [dpll](#dpll) | 39 | | 2020.04 | 计算机系统结构 | [cache](#cache),[tomasulo](#tomasulo) | 40 | | 2020.04 | 现代密码学 | [crypto](#crypto),[miller-rabin](#miller-rabin) | 41 | | 2020.05 | 网络编程技术 | [file-server](#file-server) | 42 | | 2021.10 | 高等计算机系统结构 | [cache-advanced](#cache-advanced) | 43 | | 2021.10 | 高性能计算实验 | [sgemm-optimize](#sgemm-optimize) | 44 | 45 | ### 参加比赛的项目 46 | 47 | | 时间 | 比赛 | 项目 | 48 | |---------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 49 | | 2018.09 | THUCTF2018 | [ctf-writeups](#ctf-writeups) | 50 | | 2019.07 | 龙芯杯 | [GuGuMIPS](#gugumips),[GuGuMIPSSoC](#gugumipssoc),[linux-gugumips](#linux-gugumips),[u-boot-gugumips](#u-boot-gugumips),[ucore-gugumips](#ucore-gugumips),[usbh](#usbh),[nontrivial-mips](#nontrivial-mips),[linux-nontrivial-mips](#linux-nontrivial-mips),[u-boot-nontrivial-mips](#u-boot-nontrivialmips) | 51 | | 2020.08 | 华为杯 | [trivialcompiler](#trivialcompiler) | 52 | | 2020.06 | ISC20 SCC | [Elmerfem](#Elmerfem) | 53 | | 2020.11 | SC20 VSCC | [MemXCT](#MemXCT),[miniVite](#miniVite) | 54 | | 2021.05 | ASC20-21 SCC | [PRESTO](#PRESTO),[HPL](#HPL) | 55 | | 2021.07 | ISC21 SCC | [Coding Challenge](#CodingChallenge),[HPL](#HPL) | 56 | 57 | ### 个人参与或编写的项目 58 | 59 | | 时间 | 内容 | 项目 | 60 | |---------|-------------------------------------------------------------------------|---------------------------------------------------------------------------------| 61 | | 2016.03 | MacGesture macOS 上的手势软件 | [MacGesture](#macgesture) | 62 | | 2017.10 | clone-learn-tsinghua 清华网络学堂的备份工具 | [clone-learn-tsinghua](#clone-learn-tsinghua) | 63 | | 2018.02 | cs140e Stanford CS140e 实验课程 | [CS140e](#cs140e) | 64 | | 2019.02 | rustup-mirror Rustup 镜像工具 | [rustup-mirror](#rustup-mirror) | 65 | | 2019.02 | thuip 从 BGP 信息中导出清华 IP 地址段 | [thuip](#thuip) | 66 | | 2019.02 | tantivy-jieba 把结巴分词用于 Tantivy | [tantivy-jieba](#tantivy-jieba) | 67 | | 2019.07 | classroom-helper GitHub Classroom 辅助 TUI | [classroom-helper](#classroom-helper) | 68 | | 2019.09 | verilog-format Verilog/SystemVerilog 格式化 | [verilog-format](#verilog-format) | 69 | | 2019.10 | decode-bcbp 在线解码机票 BCBP 信息 | [decode-bcbp](#decode-bcbp) | 70 | | 2020.02 | JieLabs 数字逻辑实验平台 | [JieLabs](#JieLabs) | 71 | | 2020.02 | verilog-lang 递归下降的 Verilog Parser | [verilog-lang](#verilog-lang) | 72 | | 2020.02 | maze-routing Rust 语言实现的 Grid Router 算法 | [maze-routing](#maze-routing) | 73 | | 2020.05 | webhookd 对 Gitlab/GitHub 的 webhook 进行响应 | [webhookd](#webhookd) | 74 | | 2020.05 | usbip 用 Rust 实现的 USB/IP 服务端 | [usbip](#usbip) | 75 | | 2020.06 | cluster-job-monitor 集群任务状态监测 | [cluster-job-monitor](#cluster-job-monitor) | 76 | | 2020.07 | netconf-rs RFC2641 NETCONF 客户端库 | [netconf-rs](#netconf-rs) | 77 | | 2020.08 | TANLabs 网络原理实验平台 | [TANLabs](#TANLabs) | 78 | | 2020.09 | aws-static-website-cdk AWS CDK 部署静态网站 | [aws-static-website-cdk](#aws-static-website-cdk) | 79 | | 2020.10 | ddns 跨平台 DDNS 客户端 | [ddns](#ddns) | 80 | | 2020.11 | machine-tester 集群机器测试工具 | [machine-tester](#machine-tester) | 81 | | 2020.12 | HT42B534 USB to UART 开源 PCB 设计 | [HT42B534USB2UART](#HT42B534USB2UART) | 82 | | 2020.12 | jieplag 代码查重软件 | [jieplag](#jieplag) | 83 | | 2021.01 | EspinalLib 使用 SpinalHDL 实现的 HDL 模块 | [EspinalLib](#espinnallib) | 84 | | 2021.02 | daccountd 分布式强一致 LDAP 服务器 | [daccountd](#daccountd) | 85 | | 2021.02 | minipxe 用于 PXE 的迷你 DHCP+TFTP 服务器 | [minipxe](#minpxe) | 86 | | 2021.02 | wechat-dump 从 iOS 备份中导出微信聊天记录 | [wechat-dump](#wechat-dump) | 87 | | 2021.03 | WM8731PMOD 音频 PMOD 扩展板 | [WM8731PMOD](#WM8731PMOD) | 88 | | 2021.03 | YXPortal 实验用户管理系统 | [YXPortal](#YXPortal) | 89 | | 2021.07 | cpu-micro-benchmarks 针对 CPU 架构的微性能测试 | [cpu-micro-benchmarks](#cpu-micro-benchmarks) | 90 | | 2021.07 | floating 浮点格式解析和转换小工具 | [floating](#floating) | 91 | | 2021.09 | fpu-wrappers 浮点计算单元封装 | [fpu-wrappers](#fpu-wrappers) | 92 | | 2021.09 | feishu-backup 飞书文档备份导出工具 | [feishu-backup](#feishu-backup) | 93 | | 2021.09 | rocket-chip-vcu128 在 VCU128 开发板上运行 Rocket Chip | [rocket-chip-vcu128](#rocket-chip-vcu128) | 94 | | 2021.09 | dcst-facts 记录清华大学计算机系客观数据 | [dcst-facts](#dcst-facts) | 95 | | 2021.10 | gitlab-cloner GitLab 项目批量克隆工具 | [gitlab-cloner](#gitlab-cloner) | 96 | | 2021.12 | jtag-remote-server 远程 JTAG 调试工具 | [jtag-remote-server](#jtag-remote-server) | 97 | | 2022.01 | video2srt 使用云服务生成视频的字幕 | [video2srt](#video2srt) | 98 | | 2022.01 | rvv-kernels 使用 RISC-V 向量扩展实现算法 | [rvv-kernels](#rvv-kernels) | 99 | | 2022.07 | ifupdown-to-systemd-networkd 将 ifupdown 配置转换为 systemd-networkd 配置 | [ifupdown-to-systemd-networkd](#ifupdown-to-systemd-networkd) | 100 | | 2022.09 | kicad-symbol-gen KiCad 符号生成器 | [kicad-symbol-gen](#kicad-symbol-gen) | 101 | | 2023.02 | china_bean_importers 将支付记录导入到 beancount | [china_bean_importers](#china_bean_importers) | 102 | | 2023.04 | chisel-memory-lower 转换 chisel 内存为原语 | [chisel-memory-lower](#chisel-memory-lower) | 103 | | 2023.04 | kb 个人知识库 | [kb](#kb) | 104 | | 2023.06 | dntt 批量导出交换机的配置文件 | [dntt](#dntt) | 105 | | 2023.08 | la-inst 研究 LoongArch 指令的工具 | [la-inst](#la-inst) | 106 | | 2023.10 | fatbinary 操作 CUDA fatbinary 文件格式的 Rust 库 | [fatbinary](#fatbinary) | 107 | | 2023.11 | data-link-protocols 网络原理数据链路层协议可视化 | [data-link-protocols](#data-link-protocols) | 108 | | 2023.12 | unofficial-loongarch-intrinsics-guide 非官方 LoongArch Intrinsics 文档 | [unofficial-loongarch-intrinsics-guide](#unofficial-loongarch-intrinsics-guide) | 109 | | 2023.12 | loongarch-csr 非官方 LoongArch CSR/IOCSR 文档 | [loongarch-csr](#loongarch-csr) | 110 | | 2023.12 | buildit AOSC 构建自动化 | [buildit](#buildit) | 111 | | 2023.12 | la_ow_ptrace 基于 PTrace 的在 LoongArch 新世界上运行旧世界程序的方案 | [la_ow_ptrace](#la_ow_ptrace) | 112 | | 2024.02 | cold 玩具 ELF 链接器 | [cold](#cold) | 113 | | 2024.04 | ps2 使用 Chisel 开发的 PS/2 控制器 | [ps2](#ps2) | 114 | | 2024.07 | apple-pmu 导出苹果芯片的 PMU 计数器定义 | [apple-pmu](#apple-pmu) | 115 | | 2024.08 | cpu CPU 微架构图示 | [cpu](#cpu) | 116 | | 2024.09 | barcode EAN-13 条形码在线生成器 | [barcode](#barcode) | 117 | | 2024.12 | SPECCPU2017Harmony 把 SPEC CPU 2017 移植到 OpenHarmony/HarmonyOS NEXT | [SPECCPU2017Harmony](#SPECCPU2017Harmony) | 118 | 119 | ## 计算机系课程及相关作业 120 | 121 | ### Props 122 | 123 | 一个简单的对于命题的计算器。 124 | 125 | * [GitHub](https://github.com/jiegec/props) 126 | * 相关技术:C++,Flex,Bison 127 | * 投入时间:很少 128 | * 喜爱:5 129 | * 收获:1 130 | 131 | ### SimpleExtFs 132 | 133 | 一个简单的内存文件系统,支持可持久化和一些简单的 shell 指令。 134 | 135 | * [GitHub](https://github.com/jiegec/extfs) 136 | * 相关技术:C,FS 137 | * 投入时间:很少 138 | * 喜爱:3 139 | * 收获:1 140 | 141 | ### OnePassSynthesisDMFB 142 | 143 | DMFB 是 Digital MicroFluidic Biochips 的缩写。需要实现一篇文章里的算法,生成 SAT 规则后丢给 z3 求解,再把结果可视化。 144 | 145 | * [GitHub](https://github.com/jiegec/OnePassSynthesisDMFB) 146 | * 相关技术:C++,Graphviz,Z3,SAT 147 | * 投入时间:不多 148 | * 喜爱:0 149 | * 收获:2 150 | 151 | ### NaiveLedger 152 | 153 | 一个简单的 AlgoRand 实现。 154 | 155 | * 合作同学:wjd jl lxy lwb 156 | * GitHub 未公开 157 | * 相关技术:C++,密码学 158 | * 投入时间:一般 159 | * 喜爱:1 160 | * 收获:2 161 | 162 | ### HLLeBPF 163 | 164 | 把 HyperLogLog 用 eBPF 实现了,可以估计一段时间内访问本机的 IP 数量。 165 | 166 | * [GitHub](https://github.com/jiegec/hll_ebpf) 167 | * 相关技术:C,eBPF,HyperLogLog 168 | * 投入时间:很少 169 | * 喜爱:5 170 | * 收获:3 171 | 172 | ### DMCD 173 | 174 | DMCD 是 Digital Microfluidic Chip Designer 的缩写。同样实现一个算法,按照给定的网络解一堆方程,然后用 Qt 可视化。可以在 Qt 上进行参数的调整,也可以用一个简单的遗传算法去求解。 175 | 176 | * [GitHub](https://github.com/jiegec/codingterm/tree/master/Week1) 177 | * 相关技术:Qt,遗传算法 178 | * 投入时间:不多 179 | * 喜爱:0 180 | * 收获:0 181 | 182 | ### ChineseChess 183 | 184 | Qt 编写的中国象棋在线对战。 185 | 186 | * [GitHub](https://github.com/jiegec/codingterm/tree/master/Week2) 187 | * 相关技术:Qt,Socket 188 | * 投入时间:不多 189 | * 喜爱:2 190 | * 收获:2 191 | 192 | ### SearchEngine 193 | 194 | 用 Python 编写爬虫,并实现简单的搜索引擎。 195 | 196 | * [GitHub](https://github.com/jiegec/codingterm/tree/master/Week3) 197 | * 相关技术:Python,Django,Web,Reverse Index,TF-IDF,ORM 198 | * 投入时间:不多 199 | * 喜爱:2 200 | * 收获:2 201 | 202 | ### Info9 203 | 204 | 用 Vue.js 编写前端,Python Django 编写后端,实现一堆功能的网站。 205 | 206 | * 合作同学:xlq wxp 207 | * GitHub 未公开 208 | * 相关技术:Vue,Python,Django,Web,MongoDB 209 | * 投入时间:>100h 210 | * 喜爱:5 211 | * 收获:10 212 | 213 | ### rCore 214 | 215 | 完善用 Rust 编写的操作系统。 216 | 217 | * 合作同学:太多了 218 | * [GitHub](https://github.com/rcore-os/rCore) 219 | * 相关技术:Rust,操作系统,文件系统,网络 220 | * 投入时间:>200h 221 | * 喜爱:10 222 | * 收获:100 223 | 224 | ### Pinyin 225 | 226 | 用 Rust 实现的基于马尔可夫链的输入法。 227 | 228 | * [GitHub](https://github.com/jiegec/pinyin) 229 | * 相关技术:Rust,马尔可夫链 230 | * 投入时间:不多 231 | * 喜爱:1 232 | * 收获:1 233 | 234 | ### FourChess 235 | 236 | 四字棋 AI,用 MCTS(UCT)实现。 237 | 238 | * [GitHub](https://github.com/jiegec/FourChess) 239 | * 相关技术:MCTS,UCT 240 | * 投入时间:不多 241 | * 喜爱:1 242 | * 收获:2 243 | 244 | ### EmotionClassifier 245 | 246 | 用 CNN/RNN/MLP 实现一个分类任务。 247 | 248 | * [GitHub](https://github.com/jiegec/EmotionClassifier) 249 | * 相关技术:PyTorch 250 | * 投入时间:不多 251 | * 喜爱:0 252 | * 收获:0 253 | 254 | ### KVEngine 255 | 256 | 实现一个简单的 KV 引擎,保证 Write Consistency 和 Crash Consistency。 257 | 258 | * [GitHub](https://github.com/jiegec/kv-engine) 259 | * 相关技术:C++,WAL 260 | * 投入时间:不多 261 | * 喜爱:3 262 | * 收获:4 263 | 264 | ### HERMES 265 | 266 | 实现一个 FUSE 文件系统,背后采用 KV 来存储数据。 267 | 268 | * 合作同学:csq gj lxy 269 | * [GitHub](https://github.com/Harry-Chen/HERMES) 270 | * 相关技术:C++,FUSE 271 | * 投入时间:不多 272 | * 喜爱:5 273 | * 收获:5 274 | 275 | ### RbSplit 276 | 277 | 把图片的颜色拆开,然后错位后再拼在一起,变成一个新的图。 278 | 279 | * [GitHub](https://github.com/jiegec/rbsplit) 280 | * 相关技术:Python 281 | * 投入时间:很少 282 | * 喜爱:3 283 | * 收获:1 284 | 285 | ### MultimediaCompression 286 | 287 | 第一部分是用不同的方法计算图片的 DCT,然后再逆回来对比图片质量。对比不同量化矩阵对于图片的质量的影响。第二部分是实现一个动作估计,从一系列图中捕捉一个物体的轨迹。 288 | 289 | * [GitHub](https://github.com/jiegec/MultimediaCompression) 290 | * 相关技术:Python 291 | * 投入时间:不多 292 | * 喜爱:5 293 | * 收获:10 294 | 295 | ### MultimediaSound 296 | 297 | 用 MATLAB 的 STRAIGHT 工具箱进行声音的调整,例如男声->女生。然后用 Python 衡量声音之间的距离。 298 | 299 | * [GitHub](https://github.com/jiegec/MultimediaSound) 300 | * 相关技术:Python,MATLAB 301 | * 投入时间:不多 302 | * 喜爱:5 303 | * 收获:5 304 | 305 | ### MultimediaAnalysis 306 | 307 | 计算每个图的颜色分布立方图,根据立方图来进行聚类计算。 308 | 309 | * [GitHub](https://github.com/jiegec/MultimediaAnalysis) 310 | * 相关技术:Python 311 | * 投入时间:很少 312 | * 喜爱:4 313 | * 收获:4 314 | 315 | ### NaiveRouter 316 | 317 | 硬件转发的路由器 IP 实现,通过 AXI 与 CPU 交互。 318 | 319 | - [GitHub](https://github.com/jiegec/naiverouter) 320 | - 相关技术:SystemVerilog,网络,AXI 321 | - 投入时间:较多 322 | - 喜爱:10 323 | - 收获:10 324 | 325 | ### router 326 | 327 | 在黑金 AX7021 开发板上的 SoC,采用了 NaiveRouter 进行硬件转发,在 PS 上实现 RIP 协议和路由信息的更新。另外还实现了 HDMI 的路由状态可视化。 328 | 329 | - [GitHub](https://github.com/jiegec/router) 330 | - 相关技术:Vivado 331 | - 投入时间:较多 332 | - 喜爱:10 333 | - 收获:10 334 | 335 | ### router_mb 336 | 337 | 同样在黑金 AX7021 开发板上的 SoC,也是采用 NaiveRouter 进行硬件转发,只不过把软件部分从 PS 移到了 MicroBlaze 中。 338 | 339 | - [GitHub](https://github.com/jiegec/router_mb) 340 | - 相关技术:Vivado 341 | - 投入时间:不多 342 | - 喜爱:8 343 | - 收获:5 344 | 345 | ### router_ksz8795 346 | 347 | 在 Pynq 外接 KSZ8795 扩展板上开发的 SoC,采用 MicroBlaze 运行代码,对 KSZ8795 芯片的编程和操作进行了验证。 348 | 349 | - [GitHub](https://github.com/jiegec/router_ksz8795) 350 | - 相关技术:Vivado 351 | - 投入时间:不多 352 | - 喜爱:8 353 | - 收获:5 354 | 355 | ### rgmiimux 356 | 357 | 一个 RGMII“一分四”的 IP,通过 VLAN 进行区分,类似 KSZ8795 的部分功能,只不过是在 FPGA 内部实现。 358 | 359 | - [GitHub](https://github.com/jiegec/rgmiimux) 360 | - 相关技术:Vivado 361 | - 投入时间:不多 362 | - 喜爱:5 363 | - 收获:3 364 | 365 | ### Router-Lab 366 | 367 | 2019 计算机网络原理课程的实验。 368 | 369 | - [GitHub](https://github.com/z4yx/Router-Lab) 370 | - 相关技术:Networking 371 | - 投入时间:较多 372 | - 喜爱:10 373 | - 收获:5 374 | 375 | ### GuGuMIPS 376 | 377 | 自己编写的小端 MIPS32 实现,能够启动 Linux,自己编写的 Cache 处于未完成状态。 378 | 379 | - [GitHub](https://github.com/jiegec/GuGuMIPS) 380 | - 相关技术:SystemVerilog 381 | - 投入时间:很多 382 | - 喜爱:10 383 | - 收获:10 384 | 385 | ### GuGuMIPSSoC 386 | 387 | 以 GuGuMIPS 为 CPU,在龙芯实验箱上运行的一个 SoC,支持网络,USB,LCD 等外设 388 | 389 | - [GitHub](https://github.com/jiegec/GuGuMIPSSoC) 390 | - 相关技术:Vivado 391 | - 投入时间:很多 392 | - 喜爱:10 393 | - 收获:10 394 | 395 | ### linux-gugumips 396 | 397 | 为 GuGuMIPS 适配的 Linux 代码,从主线内核上直接 patch,可以随时更新到最新内核。大部分代码参考了 [z4yx/linux-kernel](https://github.com/z4yx/linux-kernel) 398 | 399 | - [GitHub](https://github.com/jiegec/linux-gugumips) 400 | - 相关技术:Linux Kernel 401 | - 投入时间:不多 402 | - 喜爱:5 403 | - 收获:3 404 | 405 | ### u-boot-gugumips 406 | 407 | 为 GuGuMIPS 适配的 U-Boot 代码,从 U-Boot 主线上 fork 而来。大部分代码参考了 [z4yx/u-boot-naivemips](https://github.com/z4yx/u-boot-naivemips) 408 | 409 | - [GitHub](https://github.com/jiegec/u-boot-gugumips) 410 | - 相关技术:U-Boot 411 | - 投入时间:不多 412 | - 喜爱:5 413 | - 收获:3 414 | 415 | ### ucore-gugumips 416 | 417 | 为 GuGuMIPS 适配的 uCore 代码,只在外设方面做了微小的改动。 418 | 419 | - [GitHub](https://github.com/jiegec/ucore-gugumips) 420 | - 相关技术:Kernel 421 | - 投入时间:很少 422 | - 喜爱:3 423 | - 收获:1 424 | 425 | ### usbh 426 | 427 | USB 2.0 FS 控制器,从 UltraEmbedded USB Host Controller 修改而来,并且打包为了 Vivado IP。对应的驱动在上面的 Linux 和 U-Boot 仓库中。 428 | 429 | - [GitHub](https://github.com/jiegec/usbh) 430 | - 相关技术:Hardware 431 | - 投入时间:很多 432 | - 喜爱:10 433 | - 收获:10 434 | 435 | ### JabaHomework 436 | 437 | Java OJ 上的作业外加考试。 438 | 439 | - [GitHub](https://github.com/jiegec/jaba-homework) 440 | - 相关技术:Java 441 | - 投入时间:很少 442 | - 喜爱:1 443 | - 收获:1 444 | 445 | ### NewsApp 446 | 447 | Java 大作业,一个简单的新闻 App。 448 | 449 | - [GitHub](https://github.com/qyz-thu/NewsApp) 450 | - 相关技术:Java,Android 451 | - 投入时间:很少 452 | - 喜爱:1 453 | - 收获:1 454 | 455 | ### asm-homework 456 | 457 | 汇编小学期的作业,包括小作业和两次实验的代码。 458 | 459 | - [GitHub](https://github.com/jiegec/asm-homework) 460 | - 相关技术:汇编,x86,MIPS 461 | - 投入时间:很少 462 | - 喜爱:5 463 | - 收获:1 464 | 465 | ### sdes-visualization 466 | 467 | 对 S-DES 加密过程的可视化。 468 | 469 | - [GitHub](https://github.com/jiegec/sdes-visualization) 470 | - 相关技术:Elm,CSS 471 | - 投入时间:很少 472 | - 喜爱:10 473 | - 收获:3 474 | 475 | ### booth-visualization 476 | 477 | 对 Booth 乘法过程的可视化。 478 | 479 | - [GitHub](https://github.com/jiegec/booth-visualization) 480 | - 相关技术:Elm 481 | - 投入时间:很少 482 | - 喜爱:10 483 | - 收获:3 484 | 485 | ### integer-divide-visualization 486 | 487 | 对整数除法过程的可视化,非课程要求。 488 | 489 | - [GitHub](https://github.com/jiegec/integer-divide-visualization) 490 | - 相关技术:Elm 491 | - 投入时间:很少 492 | - 喜爱:10 493 | - 收获:3 494 | 495 | ### rocket2thinpad 496 | 497 | 把 Rocket Chip 运行在 Thinpad 上。 498 | 499 | - [GitHub](https://github.com/jiegec/rocket2thinpad) 500 | - 相关技术:Verilog,Vivado,Rocket Chip,Chisel,Scala 501 | - 投入时间:不多 502 | - 喜爱:10 503 | - 收获:7 504 | 505 | ### online_tac_vm 506 | 507 | 在线的 TAC 虚拟机,可以在线执行编译原理 PA3 生成的 TAC。 508 | 509 | - [GitHub](https://github.com/jiegec/online_tac_vm) 510 | - 相关技术:Rust,Yew 511 | - 投入时间:很少 512 | - 喜爱:10 513 | - 收获:3 514 | 515 | ### online_decaf 516 | 517 | 在线的 Decaf 编译器,可以在线运行编译原理的 PA。 518 | 519 | - [GitHub](https://github.com/jiegec/online_decaf) 520 | - 相关技术:Rust,Yew 521 | - 投入时间:很少 522 | - 喜爱:10 523 | - 收获:3 524 | 525 | ### gll-pg 526 | 527 | 一个 GLL 的 Parser Generator,参考了 MashPlant/lalr1 和 GLL 论文。 528 | 529 | - [GitHub](https://github.com/jiegec/gll-pg) 530 | - 相关技术:Rust,Proc macro,Parsing 531 | - 投入时间:不多 532 | - 喜爱:10 533 | - 收获:10 534 | 535 | ### decaf-lsp 536 | 537 | Decaf 语言的 LSP Server 实现,支持 Hover、Symbol 等功能,配合 [decaf-vscode](https://github.com/jiegec/decaf-vscode) 使用。 538 | 539 | - [GitHub](https://github.com/jiegec/decaf-lsp) 540 | - 相关技术:Rust,LSP,VSCode 541 | - 投入时间:不多 542 | - 喜爱:10 543 | - 收获:10 544 | 545 | ### decaf-rs-pa 546 | 547 | 编译原理的 PA,基于 @MashPlant 的 Rust 框架。 548 | 549 | - [GitHub](https://github.com/jiegec/decaf-rs-pa) 550 | - 相关技术:Rust 551 | - 投入时间:不多 552 | - 喜爱:5 553 | - 收获:5 554 | 555 | ### SignalProcessing 556 | 557 | 信号处理原理课程的实验。 558 | 559 | - [GitHub](https://github.com/jiegec/SignalProcessing) 560 | - 相关技术:信号处理 561 | - 投入时间:较少 562 | - 喜爱:3 563 | - 收获:3 564 | 565 | ### dpll 566 | 567 | 软件分析与验证课程的实验。要求实现 DPLL 算法来解决 SAT 问题。 568 | 569 | - [GitHub](https://github.com/jiegec/dpll) 570 | - 相关技术:C++ 571 | - 投入时间:不多 572 | - 喜爱:5 573 | - 收获:3 574 | 575 | ### cache 576 | 577 | 计算机系统结构课程的实验。模拟一个 Cache 的行为。 578 | 579 | - [GitHub](https://github.com/jiegec/cache) 580 | - 相关技术:C++ 581 | - 投入时间:很少 582 | - 喜爱:1 583 | - 收获:1 584 | 585 | ### tomasulo 586 | 587 | 计算机系统结构课程的实验。实现 Tomasulo 算法。 588 | 589 | - [GitHub](https://github.com/jiegec/tomasulo) 590 | - 相关技术:C++ 591 | - 投入时间:不多 592 | - 喜爱:1 593 | - 收获:1 594 | 595 | ### crypto 596 | 597 | 现代密码学课程的实验。要求实现几个密码学算法。 598 | 599 | - [GitHub](https://github.com/jiegec/crypto) 600 | - 相关技术:密码学 601 | - 投入时间:较少 602 | - 喜爱:5 603 | - 收获:5 604 | 605 | ### miller-rabin 606 | 607 | 现代密码学课程的实验。要求实现 Miller-Rabin 算法。 608 | 609 | - [GitHub](https://github.com/jiegec/miller-rabin) 610 | - 相关技术:密码学 611 | - 投入时间:很少 612 | - 喜爱:3 613 | - 收获:3 614 | 615 | ### file-server 616 | 617 | 网络编程技术课程的实验。要求实现支持上传和下载的文件服务器和配套的客户端。 618 | 619 | - [GitHub](https://github.com/jiegec/file-server) 620 | - 相关技术:网络编程 621 | - 投入时间:很少 622 | - 喜爱:2 623 | - 收获:2 624 | 625 | ### cache-advanced 626 | 627 | 高等计算机系统结构课程的实验。和本科生课实验类似。 628 | 629 | - [GitHub](https://github.com/jiegec/cache-advanced) 630 | - 相关技术:C 631 | - 投入时间:很少 632 | - 喜爱:0 633 | - 收获:0 634 | 635 | ### sgemm-optimize 636 | 637 | 高性能计算实验课程的实验,在 Kunpeng 平台上优化 SGEMM。 638 | 639 | - [GitHub](https://github.com/jiegec/sgemm-optimize) 640 | - 相关技术:OpenMP, MPI 641 | - 投入时间:较多 642 | - 喜爱:8 643 | - 收获:8 644 | 645 | ## 个人参与或编写的项目 646 | 647 | ### MacGesture 648 | 649 | 高中时候接手的一个项目,在 macOS 上进行手势识别,然后执行相应的动作。 650 | 651 | * [GitHub](https://github.com/MacGesture/MacGesture) 652 | * 相关技术:Objective-C 653 | * 投入时间:不多 654 | * 喜爱:3 655 | * 收获:2 656 | 657 | ### clone-learn-tsinghua 658 | 659 | 清华网络学堂的备份工具。用于毕业生的资料归档。 660 | 661 | * [GitHub](https://github.com/jiegec/clone-learn-tsinghua) 662 | * 相关技术:TypeScript 663 | * 投入时间:不多 664 | * 喜爱:8 665 | * 收获:1 666 | 667 | ### CS140e 668 | 669 | 大一寒假的时候,Stanford CS140e 首次做出了用 Rust 写操作系统作为实验课程的尝试,我也跟着做了。 670 | 671 | * [GitHub](https://github.com/jiegec/cs140e) 672 | * 相关技术:Rust,操作系统 673 | * 投入时间:较多 674 | * 喜爱:10 675 | * 收获:10 676 | 677 | ### rustup-mirror 678 | 679 | 把 rustup 同步到本地的工具,用于 TUNA 等镜像站。 680 | 681 | - [GitHub](https://github.com/jiegec/rustup-mirror) 682 | - 相关技术:Rust 683 | - 投入时间:不多 684 | - 喜爱:10 685 | - 收获:3 686 | 687 | ### classroom-helper 688 | 689 | 为“实验物理的大数据方法”课程编写的工具,配合 GitHub Classroom 使用的工具,自动批量 clone 作业仓库,并且执行脚本进行评分,显示代码更改历史。 690 | 691 | - [GitHub](https://github.com/jiegec/classroom-helper) 692 | - 相关技术:Rust,TUI 693 | - 投入时间:不多 694 | - 喜爱:10 695 | - 收获:3 696 | 697 | ### verilog-format 698 | 699 | 一个简单的 Verilog / SystemVerilog 格式化工具。未完成,勿用。 700 | 701 | - [GitHub](https://github.com/jiegec/verilog-format) 702 | - 相关技术:Rust,Nom,Parsing 703 | - 投入时间:不多 704 | - 喜爱:10 705 | - 收获:5 706 | 707 | ### JieLabs 708 | 709 | 数字逻辑实验平台,远程操作 FPGA 和一些元件。 710 | 711 | - [GitHub](https://github.com/thu-cs-lab/JieLabs-Web) 712 | - 相关技术:React、Rust、WebSocket、Buildroot 713 | - 投入时间:很多 714 | - 喜爱:10 715 | - 收获:10 716 | 717 | ### webhookd 718 | 719 | 一个用于处理 webhook 消息并执行操作的服务。支持 Gitlab 和 GitHub。 720 | 721 | - [GitHub](https://github.com/jiegec/webhookd) 722 | - 相关技术:Rust 723 | - 投入时间:不多 724 | - 喜爱:10 725 | - 收获:3 726 | 727 | ### usbip 728 | 729 | 运行一个 USB/IP 服务,可以模拟设备或者转发到 libusb。 730 | 731 | - [GitHub](https://github.com/jiegec/usbip) 732 | - 相关技术:Rust 733 | - 投入时间:不多 734 | - 喜爱:10 735 | - 收获:8 736 | 737 | ### TANLabs 738 | 739 | 网络原理实验平台,包含 CI 自动评测,树莓派评测等功能。 740 | 741 | - 相关技术:React、Rust、S3、SQS 742 | - 投入时间:很多 743 | - 喜爱:10 744 | - 收获:10 745 | 746 | ### HT42B534USB2UART 747 | 748 | 一个 USB 2 UART 板子,采用的芯片是 HT42B534。 749 | 750 | - [GitHub](https://github.com/jiegec/HT42B534USB2UART) 751 | - 相关技术:KiCad、JLC 752 | - 投入时间:不多 753 | - 喜爱:10 754 | - 收获:10 755 | 756 | ### daccountd 757 | 758 | 基于 etcd 编写的 LDAP 服务器。 759 | 760 | - [GitHub](https://github.com/jiegec/daccountd) 761 | - 相关技术:Go、Etcd 762 | - 投入时间:不多 763 | - 喜爱:10 764 | - 收获:10 765 | 766 | ### WM8731PMOD 767 | 768 | 一个 PMOD 接口的扩展板,上有 WM8731 芯片用于音频处理。 769 | 770 | - [GitHub](https://github.com/jiegec/WM8731PMOD) 771 | - 相关技术:LCEDA、JLC 772 | - 投入时间:不多 773 | - 喜爱:10 774 | - 收获:10 775 | 776 | ### YXPortal 777 | 778 | 一个简单的 OAuth 客户端 + 服务端,用于实验系统的用户认证。 779 | 780 | - 相关技术:Go、Elm 781 | - 投入时间:不多 782 | - 喜爱:10 783 | - 收获:8 784 | 785 | ## 未完待续 786 | --------------------------------------------------------------------------------