# tblog **Repository Path**: unicornx/tblog ## Basic Information - **Project Name**: tblog - **Description**: 学习 linux 和 嵌入式时的一些笔记和总结。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 5 - **Created**: 2024-01-22 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **文章分类索引** - [Linux](#linux) - [Linux 进展跟踪](#linux-进展跟踪) - [LWN 中文翻译](#lwn-中文翻译) - [时间管理](#时间管理) - [CPU 调度](#cpu-调度) - [设备与驱动](#设备与驱动) - [文件系统](#文件系统) - [系统(性能)管理](#系统性能管理) - [压力测试工具](#压力测试工具) - [Perf 工具系列](#perf-工具系列) - [跟踪与调试](#跟踪与调试) - [Ftrace 系列](#ftrace-系列) - [Real-Time](#real-time) - [开发与维护](#开发与维护) - [嵌入式](#嵌入式) - [编程语言与编译技术](#编程语言与编译技术) - [QEMU](#qemu) - [Buildroot](#buildroot) - [未分类](#未分类) # Linux ## [Linux 进展跟踪](./articles/news/0.index.md) ## [LWN 中文翻译](./articles/lwn/0.index.md) ## 时间管理 - [支持定时机制的硬件][32] - [Linux 时间管理子系统历史发展回顾][33] - [Linux 时间管理相关的用户级别 API(0)][34] - [Linux 时间管理相关的用户级别 API(1)- 系统时间相关][35] - [Linux 时间管理相关的用户级别 API(1)- 任务睡眠相关][36] - [Linux 时间管理相关的用户级别 API(1)- 定时器相关][37] - [Linux 中的 Dynamic-tick][38] - [Linux 中的低分辨率定时器和高分辨率定时器][39] - [Linux 时间管理相关的 Kconfig 配置整理][40] ## CPU 调度 - [CPU Topology 简单总结][31] - [笔记:Linux 调度器(Schedular)][10] - [笔记:Linux 任务调度相关 API 总结][11] - [笔记:Linux 任务优先级(priority)总结][12] - [笔记:优先级反转(Priority Inversion)和 优先级继承(Priority Inheritance)][13] - [笔记:Linux 内核的抢占模型][14] - [笔记:Linux "PREEMPT_RT" 抢占模式分析报告][15] - [聊一聊 Linux 上信号处理过程中的信号栈帧][1] ## 设备与驱动 - [Linux 设备模型之 kobject 和 kset][4] - [学习笔记:编写一个内核模块][5] - [Linux 驱动模型之三剑客][7] ## 文件系统 - [Linux 中的 sysfs][6] - [Linux 启动过程中 rootfs 的挂载][26] ## 系统(性能)管理 - [如何学习 Linux 性能调优,特别是针对服务器应用场景][42] - [笔记:Linux 中的 cgroup 初探][41] - [笔记:uptime 的使用][43] - [笔记:top 的使用][44] - [笔记:vmstat 的使用][45] - [笔记:iostat 的使用][46] - [笔记:sysctl 的使用][48] - [笔记:taskset 的使用][49] - [笔记:Linux Kprobes 概述][57] - [笔记:Linux Uprobes 概述][58] ### 压力测试工具 - [笔记:fio 工具介绍][87] - [笔记:iperf3 工具介绍][88] - [笔记:stream 工具介绍][89] - [笔记:sysbench 工具介绍][90] - [笔记:unixbench 工具介绍][91] ### Perf 工具系列 - [笔记:perf 介绍][51] - [笔记:perf stat 命令介绍][52] - [笔记:perf top 命令介绍][53] - [笔记:perf record 命令介绍][54] - [笔记:perf report 命令介绍][55] - [笔记:perf annotate 命令介绍][56] - [笔记:perf script 命令介绍][59] - [笔记:perf probe 命令介绍][60] - [笔记:perf ftrace 命令介绍][92] - [笔记:perf trace 命令介绍][98] ## 跟踪与调试 - [和 ptrace 有关的一些笔记][2] - [Linux 内核动态调试打印的使用][21] ### Ftrace 系列 - [笔记:ftrace 介绍][93] - [笔记和翻译:Documentation/trace/ftrace.rst][94] - [笔记:ftrace 的 Function tracer][95] - [笔记:ftrace 的 Function Graph tracer][96] - [笔记:trace-cmd 介绍][97] ## Real-Time - [工作笔记:基于 BBB 实验 RT-Linux][8] - [实时 Linux(Real-Time Linux)][9] - [笔记:Cyclictest 工作原理分析][16] - [笔记:hwlatdetect 介绍][17] ## 开发与维护 - [如何向 Linux 内核社区提交 patch 补丁][22] - [如何成为 Linux 内核的 maintainer][23] - [如何参与 Linux 的 review 工作][29] # 嵌入式 - [聊一聊 MilkV-Duo 的启动流程][18] - [将 RVOS 移植到 MilkV-Duo 上][19] - [CanMV K230 SDK 构建笔记][28] - [CanMV K230 Linux SDK 构建笔记][30] # 编程语言与编译技术 - [ELF 规范介绍][25] - [制作一个针对 RISC-V 的 LLVM/Clang 编译器][61] - [GNU IFUNC 介绍(RISC-V 版)][62] - [Call Stack (RISC-V)][63] - [Stack Unwinding - Overview][64] - [Stack Unwinding 之基于 Frame Pointer][65] - [制作交叉工具链 riscv-gnu-toolchain][66] - [Stack Unwinding 之基于 Call Frame Information][67] - [用于栈回溯的一些库][68] - [学习笔记: Symbol Versioning 基本使用][69] - [链接处理过程中的 “符号解析(Symbol Resolution)”][70] - [musl 构建说明][71] - [musl 交叉调试说明][72] - [musl 的 build system 分析][73] - [静态链接可执行程序的入口分析][74] - [RISC-V 中的 global pointer 寄存器][75] - [学习笔记:Position-Independent Executables][76] - [学习笔记:Shadow Call Stack][77] - [Global Constructors/Destructors][78] - [学习总结:C Runtime][79] - [musl 测试环境搭建][80] - [Thread-safe 以及 Thread-Specific Data][81] # QEMU - [在 QEMU 上运行 RISC-V 64 位版本的 Linux][3] - [基于 QEMU 搭建 Linux 的调试环境][20] - [基于 QEMU 搭建 RISCV64 RT-Thread 的调试环境][24] - [自己动手从源码构建 QEMU][27] - [尝试运行第一个支持 RISC-V 的 QEMU 版本(v2.12.0)][82] # Buildroot - [Buildroot 概述][84] - [Buildroot 培训课件学习笔记][85] - [Buildroot FAQ][86] # 未分类 - [笔记:我对 Memory Consistency Models 的理解][47] - [笔记:缓存一致性问题][50] - [读书笔记:RVV 基础学习][83] [1]: ./articles/20220816-signal-frame.md [2]: ./articles/20220829-ptrace.md [3]: https://zhuanlan.zhihu.com/p/258394849 [4]: ./articles/20221029-kobject-kset.md [5]: ./articles/20221101-write-lkm.md [6]: ./articles/20221101-sysfs.md [7]: ./articles/20221102-bus-device-driver.md [8]: ./articles/20230723-bbb-rtlinux.md [9]: ./articles/20230727-rt-linux.md [10]: ./articles/20230801-linux-scheduler.md [11]: ./articles/20230802-linux-sched-api.md [12]: ./articles/20230803-linux-task-priority.md [13]: ./articles/20230804-linux-pi-pi.md [14]: ./articles/20230805-linux-preemption-models.md [15]: ./articles/20230806-linux-preempt-rt.md [16]: ./articles/20230808-cyclictest.md [17]: ./articles/20230809-hwlatdetect.md [18]: ./articles/20240329-duo-bootflow.md [19]: ./articles/20240401-rvos-duo.md [20]: ./articles/20240617-qemu-gdb-linux.md [21]: ./articles/20240617-pr-debug.md [22]: ./articles/20240622-howto-submit-patches-linux.md [23]: ./articles/20240623-howto-maintainer-linux.md [24]: ./articles/20240628-qemu-gdb-rtt.md [25]: ./articles/20240628-elf-spec.md [26]: ./articles/20240818-rootfs-initrd-initramfs.md [27]: ./articles/20241203-howto-build-qemu.md [28]: ./articles/20250226-k230-sdk.md [29]: ./articles/20250408-howto-reviwer-linux.md [30]: ./articles/20250422-k230-linux-sdk.md [31]: ./articles/20260130-cpu-topology.md [32]: ./articles/20260204-timer-hardware.md [33]: ./articles/20260205-timesystem-history.md [34]: ./articles/20260206-time-uapi-0.md [35]: ./articles/20260206-time-uapi-1.md [36]: ./articles/20260206-time-uapi-2.md [37]: ./articles/20260206-time-uapi-3.md [38]: ./articles/20260213-dynamic-tick.md [39]: ./articles/20260213-lrtimer-hrtimer.md [40]: ./articles/20260213-time-kconfig.md [41]: ./articles/20260224-cgroup-intro.md [42]: ./articles/20260224-perf-learn-roadmap.md [43]: ./articles/20260225-uptime.md [44]: ./articles/20260225-top.md [45]: ./articles/20260225-vmstat.md [46]: ./articles/20260225-iostat.md [47]: ./articles/20260226-memory-consistency-models.md [48]: ./articles/20260304-sysctl.md [49]: ./articles/20260304-taskset.md [50]: ./articles/20260306-cache-coherence.md [51]: ./articles/20260309-perf-overview.md [52]: ./articles/20260309-perf-stat.md [53]: ./articles/20260309-perf-top.md [54]: ./articles/20260309-perf-record.md [55]: ./articles/20260309-perf-report.md [56]: ./articles/20260310-perf-annotate.md [57]: ./articles/20260311-kprobe.md [58]: ./articles/20260311-uprobe.md [59]: ./articles/20260311-perf-script.md [60]: ./articles/20260311-perf-probe.md [61]: ./articles/20201009-create-clang-riscv.md [62]: ./articles/20220621-ifunc.md [63]: ./articles/20220717-call-stack.md [64]: ./articles/20220719-stack-unwinding.md [65]: ./articles/20220719-stackuw-fp.md [66]: ./articles/20220721-riscv-gcc.md [67]: ./articles/20220721-stackuw-cfi.md [68]: ./articles/20220819-libunwind.md [69]: ./articles/20221008-symbol-version.md [70]: ./articles/20230321-symbol-resolution-elf.md [71]: ./articles/20230401-musl-build.md [72]: ./articles/20230402-musl-debug.md [73]: ./articles/20230403-musl-build-system.md [74]: ./articles/20230404-exec-entrypoint.md [75]: ./articles/20230408-global-pointer.md [76]: ./articles/20230411-pie.md [77]: ./articles/20230417-scs.md [78]: ./articles/20230421-crt-init.md [79]: ./articles/20230424-crt.md [80]: ./articles/20230506-musl-test.md [81]: ./articles/20230522-tsd.md [82]: ./articles/20220406-qemu-riscv-2.12.md [83]: ./articles/20230629-rvv-note.md [84]: ./articles/20260312-buildroot-overview.md [85]: ./articles/20260312-buildroot-slides-notes.md [86]: ./articles/20260312-buildroot-faq.md [87]: ./articles/20260324-fio.md [88]: ./articles/20260326-iperf3.md [89]: ./articles/20260326-stream.md [90]: ./articles/20260326-sysbench.md [91]: ./articles/20260326-unixbench.md [92]: ./articles/20260331-perf-ftrace.md [93]: ./articles/20260317-ftrace-overview.md [94]: ./articles/20260327-translation-ftrace.md [95]: ./articles/20260327-ftrace-function.md [96]: ./articles/20260330-ftrace-function-graph.md [97]: ./articles/20260331-ftrace-tracecmd.md [98]: ./articles/20260417-perf-trace.md