# 杰哥的{教学,运维,编程,调板子}小笔记 > 杰哥的{教学,运维,编程,调板子}小笔记 ## Blog - [关于]() - [2014]() - [2016]() - [2017]() - [2018]() - [2018]() - [2018]() - [2018]() - [2019]() - [2019]() - [2019]() - [2019]() - [2020]() - [2020]() - [2021]() - [2021]() - [2022]() - [2022]() - [2023]() - [2023]() - [2023]() - [2024]() - [2025]() - [2026]() - [2026]() - [SPEC]() - [SPEC CPU 2017 Rate 数据图表]() - [SPEC CPU 2017 Rate]() - [SPEC CPU 2026 Rate]() - [各种 ecc 曲线]() - [ECDSA]() - [Montgomery 模乘]() - [Android Studio 手工更新小记]() - [写了一个程序,分析各个源文件之间的 include 关系。]() - [IntelliJ IDEA 手动更新方法]() - [Linux on Android 简单教程]() - [用数学方法 + 数学软件去做一个物理题\~]() - ["@微信 SDK 开发者,发现一个 BUG\~"]() - [THUCTF 2018 和 Teaser Dragon CTF 2018 小记]() - [在 rpi4 上用 PXE 运行 Alpine Linux]() - [在 Rpi4 上运行 buildroot]() - [Ceph Cookbook]() - [将 k8s rook ceph 集群迁移到 cephadm]() - [通过 rook 在 k8s 上部署 ceph 集群]() - [用 certbot 申请 route53 上的域名的 LetsEncrypt 证书并上传到 IAM]() - [为 Cisco WLC 配置 Telegraf]() - [在裸机上部署 ESXi 和 vCSA 7]() - [在 VMware ESXi 上部署 vCSA 实践]() - [在 Apple M1 上试用 Gentoo/Prefix]() - [用 gitlab ci 构建并部署应用到 k8s]() - [用 htpdate 替代 ntpdate 实现时间同步]() - [在 Lemote Yeeloong 上安装 Debian jessie]() - [用 k3s 部署 k8s]() - [解决 k3s 中 traefik 不会转发 X-Forwarded-For 等头部的问题]() - [在 k8s 中部署 code-server]() - [用 Kubernetes 部署无状态服务]() - [在 k8s 中部署 Drone 用于 CI]() - [用 fluentd 收集 k8s 中容器的日志]() - [在 Kubernetes 集群上部署 gitlab-runner]() - [研究 k8s 网络工作原理]() - [在 k8s 内用 Cert Manager 配合 Nginx Ingress Controller 配置 Let's Encrypt HTTPS 证书]() - [在 k8s 中部署 Prometheus]() - [在古老的 OS 上运行一个干净的新的环境]() - [在 Nginx 将某个子路径反代]() - [Nginx 反代导致 SSE 延迟变高的问题与解决方法]() - [Nginx 反代到 HTTPS 上游]() - [记一次循环依赖导致的运维小事故]() - [通过 systemd-run 直接在容器中执行命令]() - [体验 Tencent Kubernetes Engine]() - [记一次软 RAID1 坏盘的恢复过程]() - [常用交换机命令]() - [在 TKE 上配置不使用 LB 的 Nginx Ingress Controller]() - [在 macOS 上试用 Gentoo/Prefix]() - [记录一次 CentOS AArch64 7 到 8 的升级]() - [升级 Ceph 集群到 20 Tentacle 版本]() - [用 jailkit 限制用户仅 scp]() - [用 MuSSH 快速对多台机器进行软件包升级]() - [ESXi 配置 LACP 链路聚合]() - [ESXi 常用信息]() - [在 ESXi 中用 PERCCli 换 RAID 中的盘]() - [「教学」ACE 缓存一致性协议]() - [ACPI 学习笔记]() - [AMD 处理器]() - [AMD Zen 1 的 BTB 结构分析]() - [AMD Zen 2 的 BTB 结构分析]() - [AMD Zen 3 的 BTB 结构分析]() - [AMD Zen 5 微架构评测]() - [Ampere Skylark 微架构评测]() - [Apple M1 (Firestorm & Icestorm) 微架构评测]() - [Apple M2 (Avalanche & Blizzard) 微架构评测]() - [Apple M4 微架构评测]() - [Apple 处理器]() - [向咸鱼派写入 ArchlinuxARM]() - [ARM 公版核微架构演进]() - [ARM M1 MacBook Air 开箱]() - [ARM Neoverse N1 (代号 Ares) 的 BTB 结构分析]() - [ARM Neoverse V1 (代号 Zeus) 的 BTB 结构分析]() - [ARM Neoverse V2 (代号 Demeter) 微架构评测]() - [ARM Neoverse V3 (代号 Poseidon) 微架构评测]() - [「教学」异步 SRAM 时序]() - [分支预测的 2-taken 和 2-ahead]() - [浅谈乱序执行 CPU(二:访存)]() - [浅谈乱序执行 CPU(三:前端)]() - [浅谈乱序执行 CPU(一:乱序)]() - [「教学」缓存一致性协议分析]() - [条件分支预测器逆向工程(以 Apple M1 Firestorm 为例)]() - [CHI 学习笔记]() - [Chisel3 Cookbook]() - [单核处理器的协同仿真]() - [CPU 微架构逆向方法学]() - [CXL 学习笔记]() - [在 Surface Laptop 7 上运行 Debian Linux]() - [Synopsys Design Compiler 综合实践]() - [数字调制]() - [分析 Diplomacy 系统]() - [硬盘相关的概念]() - [组装一台采用龙芯 3A6000 CPU 的主机]() - [DRAM 在 Kintex 7 FPGA 上内部 Vref 的性能问题]() - [DRAM 的拓扑和训练]() - [「教学」DRAM 结构和特性]() - [以太网的物理接口]() - [FIDO U2F、FIDO2 和 CTAP 的关系]() - [firtool 尝试]() - [修复绿联 UG307-95348 HDMI 采集卡清晰度与颜色问题]() - [在 GNURadio Companion 中收听 FM 广播]() - [鸿蒙电脑 MateBook Pro 开箱体验]() - [华为随行 WiFi 2 mini 开箱]() - [I2C 协议]() - [IBM POWER8 微架构评测]() - [IBM POWER9 微架构评测]() - [IBM z15 Mainframe CPU 分支预测器学习笔记]() - [InfiniBand 学习笔记]() - [Intel 处理器]() - [Intel Golden Cove 微架构评测]() - [Intel Gracemont 微架构评测]() - [Intel Redwood Cove 微架构评测]() - [使用 JLink 操作 SPI NOR Flash]() - [Linksys E8450 OpenWRT 配置 w/ 802.11ax]() - [在 Arty A7 上用 LiteX 和 VexRiscv 跑 Linux]() - [在 LiteX 中使用 UART over JTAG]() - [LoongArch 处理器]() - [谈谈龙芯的 LoongLeak 漏洞]() - [One CPU Atomic Instruction, One Packaging Infinite Loop: The Story of the Lost Update on LA664]() - [一颗 CPU 的原子指令,一个打包死循环:LA664 丢失更新事件始末]() - [Manycore 处理器架构分析]() - [「教学」内存认证算法]() - [内存模型和内存序]() - [MIFARE Classic 上配置 NDEF]() - [在荔枝糖(Lichee Tang)上初次体验 FPGA]() - [在 Linux 上使用 Netgear A6210 USB 无线网卡]() - [PCB 笔记]() - [PCIe Bifurcation]() - [PCIe 学习笔记]() - [移植系统到 Rocket Chip on VCU128]() - [在 macOS 烧写 Artix7 FPGA]() - [用 PulseView 配合 DSLogic 调试 SPI Flash]() - [Qualcomm Oryon 微架构评测]() - [RAM 读写冲突]() - [在 macOS 上读取移动硬盘的 S.M.A.R.T. 信息]() - [替换自制服务器上的 48V 直流电源]() - [「教学」RISC-V Debug 协议]() - [研究 Rocket Chip 的 BSCAN 调试原理]() - [通过 BSCAN JTAG 对 Rocket Chip 进行调试]() - [向 Rocket Chip 添加自定义调试信号]() - [分析 Rocket Chip 中 Diplomacy 系统]() - [通过 JTAG 对 VCU128 上的 Rocket Chip 进行调试]() - [在 Rocket Chip 上挂接 TLRAM]() - [在 FPGA 上实现路由器(2)]() - [在 FPGA 上实现路由器(3)]() - [在 FPGA 上实现路由器]() - [咸鱼派的启动配置]() - [三星 Exynos CPU 微架构学习笔记]() - [SDRAM 在不同访存模式下的带宽分析与实验]() - [在 Vivado 中对 chisel3 产生的 verilog 代码仿真]() - [Skid Buffer]() - [SPI 协议]() - [Sunway 处理器架构分析]() - [用 sv2v+yosys 把 fpnew 转为 verilog 网表]() - [TileLink 总线协议分析]() - [LoongArch 初尝试]() - [OpenROAD Flow 初尝试]() - [探究一个 USB Type-C 拓展坞的硬件实现]() - [升级 Mellanox 网卡固件]() - [VIPT 与缓存大小和页表大小的关系]() - [导出 Vivado 下载 Bitstream 的 SVF 文件]() - [在命令行中进行 Vivado 仿真]() - [试用沁恒 CH32V307 评估板]() - [802.11 学习]() - [「教学」Wishbone 总线协议]() - [「教学」AXI Quad SPI 时序分析]() - [域名已经迁移到 jiege.ch]() - [把评论系统从 Disqus 迁移到 Giscus]() - [把博客生成器从 Hugo 迁移到 Mkdocs]() - [把博客生成器从 Jekyll 迁移到 Hugo]() - [把博客生成器从 Mkdocs 迁移到 Zensical]() - [超过 100 篇博文了!]() - [The beginning of my blog]() - [AI 时代的本科 CS 教育随想]() - [清华教室的音视频路由]() - [jiege.ch 停用]() - [教学随想]() - [第一个教师节随想]() - [轶事一则]() - [jiegec.xyz 域名即将停用]() - [预告 Learn-Project 4.0 版]() - [轶事一则]() - [THUWC 2019 小记]() - [Unicode En Dash 小坑]() - [配置 fcitx-fbterm 实现在终端下显示和输入中文]() - [每周分享第 10 期]() - [每周分享第 11 期]() - [每周分享第 12 期]() - [每周分享第 13 期]() - [每周分享第 14 期]() - [每周分享第 15 期]() - [每周分享第 16 期]() - [每周分享第 17 期]() - [每周分享第 18 期]() - [每周分享第 19 期]() - [每周分享第 2 期]() - [每周分享第 20 期]() - [每周分享第 21 期]() - [每周分享第 22 期]() - [每周分享第 23 期]() - [每周分享第 24 期]() - [每周分享第 25 期]() - [每周分享第 26 期]() - [每周分享第 27 期]() - [每周分享第 28 期]() - [每周分享第 29 期]() - [每周分享第 3 期]() - [每周分享第 30 期]() - [每周分享第 31 期]() - [每周分享第 32 期]() - [每周分享第 33 期]() - [每周分享第 34 期]() - [每周分享第 35 期]() - [每周分享第 36 期]() - [每周分享第 37 期]() - [每周分享第 38 期]() - [每周分享第 39 期]() - [每周分享第 4 期]() - [每周分享第 40 期]() - [每周分享第 41 期]() - [每周分享第 42 期]() - [每周分享第 43 期]() - [每周分享第 44 期]() - [每周分享第 45 期]() - [每周分享第 46 期]() - [每周分享第 47 期]() - [每周分享第 48 期]() - [每周分享第 49 期]() - [每周分享第 5 期]() - [每周分享第 50 期]() - [每周分享第 51 期]() - [每周分享第 52 期]() - [每周分享第 53 期]() - [每周分享第 54 期]() - [每周分享第 55 期]() - [每周分享第 56 期]() - [每周分享第 6 期]() - [每周分享第 7 期]() - [每周分享第 8 期]() - [每周分享第 9 期]() - [每周分享第 1 期]() - [智算卡生态进校园之我见]() - [OpenWRT 上配置 Gandi DDNS]() - [在 macOS 上 TAP Interface 上启用 IPv6 自动配置]() - [在 Android 上打开 LTE 的 IPv6]() - [在 LEDE(OpenWrt)上启用 wpad]() - [ESXi 网络配置]() - [ETC 比赛无线网络搭建小记]() - [NAT64 初尝试]() - [向 Lenovo y1s 刷入 OpenWRT 17.01.5 固件,并把 IPv6 bridge 到内网中和配置认证脚本]() - [搭建 FTP server behind NAT]() - [软硬件队列接口]() - [在 macOS 下实现 GRETAP]() - [通过 Ipfilter Extension 实现 RFC8367]() - [IP 和 UDP Checksum 的增量更新问题]() - [利用 UPnP 协议进行 mosh NAT 穿透的研究]() - [使用 iptables 和策略路由进行带源地址的 forwarding]() - [使用 Nginx 转发 VMware ESXi]() - [生成树协议]() - [在 macOS 和 Linux 之间搭建 tinc 网络]() - [Transport Layer Interface 考古]() - [升级 Linksys E8450 的 OpenWRT 系统到 UBI]() - [在 WireGuard 构建的 Overlay Network 上跑 babel 路由协议]() - [通过 iptables 在同一个端口根据源地址解复用(demux)]() - [用 multicast 地址找到同一网段的主机]() - [使用 veth 实现 IPv6-only 的 Brouter 功能]() - [使用 Cisco AC + AP 组合搭建网络实践]() - [Wireguard 隧道搭建]() - [给 Rocket Chip 挂接串口外设]() - [构建简易的 initramfs]() - [更改 macOS 屏幕亮度的按键]() - [向 Nexus 6P 中刷入 LineageOS 实践]() - [Linux 内核格式与启动协议]() - [在 WSL 上开启一个 getty 到串口的方法]() - [体验 Fedora on RISCV]() - [在 macOS 的 VirtualBox 上从 USB 启动]() - [在 M1 上运行 Windows ARM 虚拟机]() - [WSL2 内部实现探究]() - [一个搞笑的伸展树的 Wiki]() - [一个代替 Pulse Secure 客户端的工具]() - [解释 BB84 协议]() - [最近比较忙]() - [普通高校招生录取流程]() - [等时圆]() - [偶遇清华吴文虎教授]() - [Listen and write down subtitles of Cameron's speech]() - [LK-99 相关链接]() - [回顾昨天的酒井知识竞赛]() - [Start next term tomorrow]() - [The end of senior two]() - [用 CPUID 获取评测机器的 CPU]() - [A good way to show git diff for compressed files]() - [在 arm64 上使用 rust-analyzer]() - [通过 SSH 隧道连接 ADB 和 Android 设备]() - [分析一个我第一次见的素数测试函数]() - [〖新手向〗绕过 C++ 类的访问限制]() - [Building emacs git version with xwidgets and modules in archlinux]() - [在 ArchLinux 上编译 LineageOS for Huawei Angler]() - [C/C++ 数参数个数的特别方法]() - [C++ 11 的 ABI 问题]() - [把 GDB 降级到 8.0.1]() - [编写 eBPF 程序和利用 HyperLogLog 统计包的信息]() - [Exciting new software updates]() - [在脚本中寻找 X11 的 DISPLAY 和 XAUTHORITY]() - [Good software engineering rules]() - [高云 FPGA 踩坑]() - [实现网络的 syscall]() - [有趣的 Java 日期格式化问题]() - [Interesting links]() - [IP 前缀转换上意外遇到的 Undefined Behavior]() - [LSP 和 C++]() - [再次吐槽 VS 关于 scanf 和 scanf\_s 的问题]() - [使用 Rust 实现 e1000 驱动]() - [News]() - [调整 Nginx 和 PHP 的上传文件大小限制]() - [最近写 Node.js 遇到的若干坑]() - [Nginx 的内存池实现]() - [关于 scanf 和 scanf\_s 的问题]() - [前端解析上传的 CSV]() - [写一个 bash zsh 和 fish 都能跑的脚本]() - [在 Jupyter Notebook 中运行 C++ 代码]() - [在 rCore 上运行 nginx]() - [Rust 获取 Linker Script 中的地址]() - [实现一个简单的 Decaf LSP]() - [用 Rust Procedure Macro 实现 GLL Parser]() - [Some interesting links]() - [近来做 Stanford CS140e 的一些进展和思考(2)]() - [近来做 Stanford CS140e 的一些进展和思考(3)]() - [近来做 Stanford CS140e 的一些进展和思考(4)]() - [近来做 Stanford CS140e 的一些进展和思考(5)]() - [近来做 Stanford CS140e 的一些进展和思考(6)]() - [近来做 Stanford CS140e 的一些进展和思考(7)]() - [近来做 Stanford CS140e 的一些进展和思考(8)]() - [近来做 Stanford CS140e 的一些进展和思考(9)]() - [近来做 Stanford CS140e 的一些进展和思考]() - [Tips on git shallow clone]() - [我正在使用的两个 Emacs 的 Patch]() - [libc++ 的 uniform\_int\_distribution 性能问题]() - [Unix nice]() - [升级 MongoDB 到 4.0]() - [Using chinese pyim]() - [Verilog 初体验]() - [使用 Rust 实现 VirtIO 驱动]() - [Rust 在 M1 上的 Code Signing 问题和临时解决方法]() - [编程作业中的学术诚信]() - [编写 010 Editor 的 FLV Template]() - [在 M1 上用 QEMU 运行 Debian 虚拟机]() - [部署 adminMongo 的 Docker 镜像]() - [调整 Alacritty 的 Powerline 字体显示偏移]() - [Android Runtime 解释器的实现探究]() - [在 Apple Silicon macOS 上跑 Linux 虚拟机 + Rosetta]() - [Archive 中 COMMON 符号的链接问题]() - [记录一次在 macOS 上与微软雅黑字体的搏斗]() - [在 Big Sur(M1) 上解决 LaTeX 找不到楷体字体的问题]() - [本博客近三个月来的访问数据观察]() - [Buildroot 2020.08 的 Fakeroot 版本过旧导致的兼容性问题]() - [绕过 GPGMail 的激活检测]() - [如何进行条件分支预测器实验]() - [Chromium 构建与移植]() - [Clang 如何支持 CUDA 程序]() - [COMMON 符号]() - [切换 ConnectX-4 为以太网模式]() - [在 macOS 上创建 ESP 镜像文件]() - [交叉编译 Nginx 1.14.2 到 RISC-V]() - [Podman 和 Docker Rootless 实践]() - [强制启用 Google Chrome 原生的 Dark Mode]() - [在 Xcode 9 上启用 Vim 模拟(XVim 2)]() - [Farewell, Flash]() - [导出飞书日历为 iCalendar 格式]() - [在 Linux 下捕获 Framebuffer]() - [从 TeX 到 PDF 的过程]() - [在 Linux 中用 C 代码获取 DNS 服务器列表]() - [glibc 内存分配器实现探究]() - [Gnome 的 Fractional Scaling]() - [配置 Grafana+InfluxDB+Telegraf 并添加 MIIO 数据来源]() - [Grafana 中可视化 Ping 时把 Timeout 显示为指定值]() - [Grafana Variable 的 regex 过滤方式]() - [Grafana 可视化实践:清华大学 2018 年度人物评选]() - [配置 homebridge-mi-aqara 并添加为 telegraf 的数据源]() - [配置 homebridge-broadlink-rm-pro]() - [NVIDIA 驱动和 CUDA 安装速查]() - [invalid date 报错与时区的关系]() - [JieLabs 是如何工作的]() - [从 libvirtd 迁移到 Proxmox VE]() - [链接器的工作原理]() - [Linux 大小核的调度算法探究]() - [Linux 的性能分析(Perf)实现探究]() - [How a Linux 6.2.13 BUG stops Vivado from recognizing FPGA]() - [Linux 6.2.13 引入的 BUG 导致 Vivado 无法识别 FPGA]() - [在鸿蒙电脑上的虚拟机内启动 Linux]() - [Locale 影响排序的特殊副作用]() - [Logo is a lisp dialect]() - [LoongArch64 工具链构建]() - [在 macOS 上带执行权限 mmap 一个已删除文件遇到的问题和解决方案]() - [使用 HomeBridge 把小米空气净化器加入到 HomeKit 中]() - [在 Ubuntu 上跨版本迁移 MongoDB]() - [mkdocs-material 的 Instant Navigation 功能坑点]() - [2025 年我是怎么使用 AI 的]() - [Nginx 处理 POST 请求出现 Internal Server Error 排查一则]() - [Nix Cookbook]() - [在 ppc64le Linux 上运行 Nix]() - [NVIDIA 驱动和 CUDA 版本信息速查]() - [使用 Docker 部署 OpenLDAP]() - [包管理器打包命令速查]() - [在 libvirt 中运行 RISC-V 虚拟机]() - [rCore 软路由实现]() - [macOS 下读取并解析 EDID]() - [反向代理的 Partial Transfer 问题]() - [rsyslog 收集远程日志]() - [用 Nix 编译 Rust 项目]() - [RISC-V Vector 1.0 工具链构建]() - [在 sbt 中 fork 并且并行运行测试]() - [软工平台踩坑记]() - [在 Spack 中用 external 的 Slurm 依赖编译 OpenMPI]() - [SPEC CPU 2006 性能测试]() - [SPEC CPU 2017 在其他指令集上的编译]() - [SPEC CPU 2026 在其他指令集上的编译]() - [SPEC CPU 2026 Workload Analysis (FP Rate)]() - [SPEC CPU 2026 负载特性分析(FP Rate 篇)]() - [SPEC CPU 2026 Workload Analysis (INT Rate)]() - [SPEC CPU 2026 负载特性分析(INT Rate 篇)]() - [使用 SSSD 的 LDAP 认证]() - [静态编译 sqlite3]() - [Tar 文件格式]() - [终端模拟器的文字绘制]() - [Screen Capturing Tips in macOS]() - [Thread Local Storage (TLS) 实现探究]() - [USB/IP 模拟 USB 设备]() - [USB/IP 实践]() - [用 Files API 减少图片体积导致的 TTFT 膨胀]() - [用 Nginx 作为 RTMP 服务器并提供直播服务]() - [在 HarmonyOS 5 上运行 Fortran 程序]() - [V8 Ignition 解释器的内部实现探究]() - [VFIO - Virtual Function I/O]() - [在 FreeBSD 上运行 code-server]() - [实现 VSCodeVim 中支持中文分词的单词移动]() - [记一次 Windows 更新 0x800703F1 错误的修复]() - [开发一个链接器(1)]() - [开发一个链接器(2)]() - [开发一个链接器(3)]() - [开发一个链接器(4)]() - [《加速奔向 2019》小程序编写和运营回顾]() - [XRDP 和 NVIDIA 显卡兼容性问题]() - [用 XRDP + X11 转发实现带音频的图形界面转发]() - [Mac 上安装 Arch Linux,ZFS 真香]() - [AIX 7.2 虚拟机安装]() - [TP-Link Archer T4U V3 Linux 驱动安装]() - [FreeBSD/NetBSD/OpenBSD/DragonFlyBSD Cookbook]() - [MIT 6.824 Distributed Systems 学习笔记]() - [iDRAC 各版本]() - [通过 ipmitool 配置 iLO 4 管理端口]() - [在服务器上安装 Archlinux 记录]() - [MacBookPro 14,3 Wi-Fi 驱动问题解决方案]() - [In macOS Sierra, Karabiner-Elements finally support complex modifications]() - [NUC11 ESXi 中 iGPU 直通虚拟机]() - [在 QEMU 中运行 OpenBMC]() - [OpenBSD xonly 实现原理]() - [一次从 RHEL 6 到 CentOS 7 的更新]() - [SCO OpenServer 5.0.7 虚拟机安装]() - [SCO OpenServer 6.0.0 虚拟机安装]() - [Solaris 11.4 安装]() - [静态编译 ipmitool]() - [UnixWare 7.1.4 虚拟机安装]() - [IBM Power S822LC(8335-GTB) BMC 升级]() - [在 Archlinux 上用 winbind 配合 pam 配置 Windows AD 认证登录]() - [crypto]() - [csdn]() - [ctf]() - [devops]() - [devops]() - [hardware]() - [hardware]() - [hardware]() - [hardware]() - [hardware]() - [meta]() - [misc]() - [misc]() - [misc]() - [networking]() - [networking]() - [os]() - [others]() - [programming]() - [programming]() - [programming]() - [software]() - [software]() - [software]() - [software]() - [system]() - [博客]() - [开源]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [博客]() - [项目]() - [系列]() - [标签]() - [工具]()