Skip to content

Welcome to Vu Tang's Docs Site

index

Quote by Paulo Coelho, the author of "The Alchemist"

Personal technical notes on embedded Linux, Linux kernel, programming and FPGA, written in both Vietnamese and English.

Start reading

75 notes · 10 topics · since 2019 · last updated 2026-10-20 · built with Mkdocs

Latest articles

cpufreq và pstate driver: từ điều khiển tần số trực tiếp đến "hợp đồng hiệu năng" với phần cứng2026-10-20 · Linux Kernel

Khái niệm, cấu trúc, ý nghĩa và ứng dụng của cơ chế điều chỉnh tần số CPU trong nhân Linux.

Rust trong nhân Linux: ngôn ngữ mới, luật chơi cũ2026-10-19 · Linux Kernel

Sau ba năm "thử nghiệm", cuối 2025 Rust chính thức thành ngôn ngữ thứ hai của nhân Linux. Rust là gì, nó vào kernel bằng con đường nào, và vì sao hành trình ấy khiến vài…

NBCON: console không chặn trong Linux printk2026-10-18 · Linux Kernel

Cơ chế console cũ của printk() gây trễ hệ thống, mất log khi sự cố và từng chặn PREEMPTRT vào mainline. Bài này phân tích sáu giới hạn đó và cách NBCON giải quyết.

RAN Silicon Rethink: khi chip chuyên dụng phải nhường chỗ cho CPU và GPU đa dụng2026-10-18 · Networking

Thị trường RAN co lại, vRAN trưởng thành, GPU xuất hiện. Samsung, Ericsson và Nokia mỗi hãng chọn một lối đi riêng cho thế hệ baseband kế tiếp, và điểm nghẽn kỹ thuật…

Xu hướng 6G và hiện trạng chuẩn hóa (10/2026)2026-10-17 · Networking

6G đã chuyển từ tầm nhìn sang kỹ thuật: 3GPP sẽ hoàn tất release 6G đầu tiên (Rel-21) vào 3/2029, ITU-R mở nhận đề xuất IMT-2030 từ 2/2027, và mạng thương mại sớm dự…

All articles

Topics

  • Notes


    Mkdocs, Markdown, shell script, Python and handy bookmarks.

    Start reading

  • Articles


    Short research articles, one small topic per article.

    Start reading

  • Book & Materials


    Reading notes on C, Linux, kernel and algorithm books.

    Start reading

  • Linux Embedded


    Petalinux, Yocto, U-Boot, PTP, DPDK and board projects.

    Start reading

  • Linux Kernel


    Device drivers (I2C, SPI, GPIO, UART, ALSA) and kernel debugging.

    Start reading

  • Virtualization


    Hypervisors (Hyper-V, mshv) and containers (Docker).

    Start reading

  • Programming


    C, data structures, design patterns, perf and multi-threading.

    Start reading

  • IC Design


    Static timing analysis in Vivado and FPGA / Xilinx IP cores.

    Start reading

  • Computer Architecture


    Instruction set architecture (RISC-V, ARM).

    Start reading

Document Tree

Notes
  • Bookmarks: Collection of useful Linux websites, blogs and tutorial series.
  • Mkdocs Tool: User guide for Mkdocs and how to publish it with Github Page.
  • Markdown Language: Markdown syntax used to write this documentation.
  • Shell Script: Shell script syntax notes (e.g. arrays) with a tutorial reference.
  • Python: Quick Python syntax notes such as print formatting and lists.
  • Virtual Machine: WIP – no content yet.
  • What's next: To-do list of topics to study and write about next.
Book & Materials

Notes when reading books or some materials.

  • C Programing: List of C programming books, including Head First C.
  • Linux Programing: Linux books such as Linux in a Nutshell and The Linux Programming Interface.
  • Linux Device Driver: Entry for the book Linux Device Drivers, 3rd edition.
  • Linux Kernel: Entry for the book Understanding the Linux Kernel.
  • Linux Embedded: Free Electrons slides on Embedded Linux kernel and driver development.
  • Data Structure & Algorithms: Algorithms books by Robert Sedgewick (Algorithms 4th, Algorithms in C).
  • Others: Other books, currently The Art of Computer Programming.
Linux Embedded
  • Overview: Overview of what an embedded Linux system engineer has to do.
  • HW Platforms: List of hardware platforms used, such as Xilinx Zynq7000 and Zynq UltraScale+.
  • Common Tools
    • Makefile: Definition & syntax of Makefile and the make build tool.
    • Version Control Concept: Introduction to version control and popular client-server and distributed systems.
    • Git: Handy Git commands, e.g. merging repositories and linking a local repo to a remote.
  • Xilinx Petalinux
    • Overview: Overview of Xilinx Petalinux tooling for porting Linux to Zynq7000.
    • Petalinux 2017: Technical notes and tips from working with Petalinux 2017.4.
    • List of Petalinux Images: Table describing the image files Petalinux produces.
  • Yocto
    • Overview: Key Yocto terms and definitions (build directory, package, ...).
  • Bootloader
  • ES Devices
    • EEPROM: Introduction to serial EEPROM devices and their characteristics.
  • Linux PTP: Network synchronization with IEEE 1588 PTP and ITU-T G.8260 on Linux.
  • DPDK: WIP – no content yet.
  • Network Block Device: Introduction to and usage of Network Block Device for remote block storage.
  • Tips: Practical tips such as SSH options for remote control.
  • Projects: projects are implemented in several platforms.
    • Zynq: Projects on Zynq boards such as Zedboard and Picozed.
    • IMX8: WIP – no content yet.
    • Raspberrypi 3B: Raspberry Pi 3 Model B links and notes on porting Linux.
  • Linux General
    • Unsorted: Unsorted Linux notes such as update-rc.d and SUSv3.
    • Commands: Handy Linux commands, e.g. xclip for copying to the clipboard.
Linux Kernel
  • Linux Device Driver
    • Overview: Overview of general concepts of Linux Device Driver.
    • Kernel Module: Kernel module basics and printing logs with printk and dev_* functions.
    • Platform Device: WIP – no content yet.
    • I2C Subsystem: I2C bus and the Linux I2C platform driver model.
    • SPI Device: Developing SPI device drivers in the Linux kernel.
    • SPI Device Advance: Advanced SPI topics: extending chip-select signals and SPI GPIO (outline only).
    • GPIO: The Linux GPIO subsystem from the driver perspective.
    • UART: Serial (UART) programming in userspace with reference materials.
    • JESD: WIP – no content yet.
    • Audio: Audio in Linux: ALSA architecture and concepts.
    • PCIe: WIP – no content yet.
  • Linux Kernel General
    • Kernel Data Structure: Kernel data structures such as the list_head linked list.
    • Kernel Space, User Space Interfaces: Reference link on kernel space and user space interfaces.
    • FTrace: How to use ftrace to debug the kernel, from a real synchronization bug.
    • Dynamic Debug: Enabling and disabling kernel debug messages at runtime with dynamic debug.
    • Common Clock Framework: CCF architecture, consumer/provider API, Device Tree binding, locking with PREEMPT_RT, debugging and recent changes.
Virtualization
  • Hypervisor & Hyper-V: Hypervisor types, Hyper-V architecture, Linux as root partition (mshv) and the boot sequence.
  • Docker: Running, building and publishing Docker images and containers.
Programming
  • C: History and standards of the C language.
  • Data Structure & Algorithms
    • Index: Table of contents of data structure and algorithm notes.
    • Linked List: Doubly linked list implementation, using an example from CS144.
    • Queue: Queue implemented with arrays and lists (outline only).
  • SQL: MySQL notes, currently only installation heading.
  • Linux Programming Interfaces: Points to the book The Linux Programming Interface.
  • Design Patterns: Top 10 embedded design patterns (hardware proxy, ISR, ring buffer, state machine, ...) and the Reactor/Active Object patterns.
  • Multi-threads: Link to Oracle's multi-threaded programming guide.
  • Perf: Using perf to monitor and record system performance events.
IC Design
  • Static Timing Analysis: Basic definitions of static timing analysis and STA in Xilinx Vivado.
  • FPGA
    • Xilinx IPCore: Xilinx IP core usage, e.g. configuring Clocking Wizard dynamically over AXI4-Lite.
Computer Architecture
  • ISA: Instruction set architecture notes (placeholder).

Statistics

75notes
58with content
17work in progress
5,229lines written

New notes by year

051512019420201202152022020230202402025142026

Lines written by year

02,1841,9552019200202031202185920220202302024020252,1842026

Commit activity · 166 commits

JanFebMarAprMayJunJulAugSepOctNovDec2019January 2019: 47 commits47February 2019: 3 commits3March 2019: 24 commits24April 2019: 8 commits8May 2019: 6 commits6June 2019: 0 commitsJuly 2019: 0 commitsAugust 2019: 2 commits2September 2019: 0 commitsOctober 2019: 0 commitsNovember 2019: 0 commitsDecember 2019: 0 commits2020January 2020: 0 commitsFebruary 2020: 8 commits8March 2020: 2 commits2April 2020: 0 commitsMay 2020: 0 commitsJune 2020: 0 commitsJuly 2020: 0 commitsAugust 2020: 0 commitsSeptember 2020: 0 commitsOctober 2020: 0 commitsNovember 2020: 0 commitsDecember 2020: 0 commits2021January 2021: 0 commitsFebruary 2021: 0 commitsMarch 2021: 0 commitsApril 2021: 0 commitsMay 2021: 0 commitsJune 2021: 0 commitsJuly 2021: 0 commitsAugust 2021: 1 commit1September 2021: 0 commitsOctober 2021: 0 commitsNovember 2021: 0 commitsDecember 2021: 0 commits2022January 2022: 0 commitsFebruary 2022: 0 commitsMarch 2022: 0 commitsApril 2022: 0 commitsMay 2022: 0 commitsJune 2022: 0 commitsJuly 2022: 0 commitsAugust 2022: 0 commitsSeptember 2022: 0 commitsOctober 2022: 0 commitsNovember 2022: 6 commits6December 2022: 4 commits42023January 2023: 0 commitsFebruary 2023: 0 commitsMarch 2023: 0 commitsApril 2023: 0 commitsMay 2023: 0 commitsJune 2023: 0 commitsJuly 2023: 0 commitsAugust 2023: 0 commitsSeptember 2023: 0 commitsOctober 2023: 0 commitsNovember 2023: 0 commitsDecember 2023: 0 commits2024January 2024: 0 commitsFebruary 2024: 0 commitsMarch 2024: 0 commitsApril 2024: 0 commitsMay 2024: 0 commitsJune 2024: 0 commitsJuly 2024: 0 commitsAugust 2024: 0 commitsSeptember 2024: 0 commitsOctober 2024: 0 commitsNovember 2024: 0 commitsDecember 2024: 0 commits2025January 2025: 0 commitsFebruary 2025: 0 commitsMarch 2025: 0 commitsApril 2025: 0 commitsMay 2025: 0 commitsJune 2025: 0 commitsJuly 2025: 0 commitsAugust 2025: 0 commitsSeptember 2025: 0 commitsOctober 2025: 0 commitsNovember 2025: 0 commitsDecember 2025: 0 commits2026January 2026: 0 commitsFebruary 2026: 0 commitsMarch 2026: 0 commitsApril 2026: 0 commitsMay 2026: 0 commitsJune 2026: 0 commitsJuly 2026: 0 commitsAugust 2026: 0 commitsSeptember 2026: 0 commitsOctober 2026: 55 commits55LessMore

Lines by topic

Linux Kernel: 1,914 linesLinux Kernel1,914Linux Embedded: 1,029 linesLinux Embedded1,029Articles: 567 linesArticles567IC Design: 492 linesIC Design492Programming: 468 linesProgramming468Notes: 259 lines259Computer Architecture: 199 lines199Embedded Security: 133 lines133Virtualization: 130 lines130Book & Materials: 38 lines

Document Rules

  • Suitable picture size is: 300x200.
    Use GIMP for scaling figure (Folow instructions in Photos/ResizingPhotos from help.ubuntu.com).

  • This document is writen in both Vietnamese and English.