Skip to content

Welcome to Vu Tang's Docs Site

index

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

Personal technical notes and short research articles on embedded Linux, the Linux kernel, programming, FPGA and wireless networking (5G/6G), written in both Vietnamese and English.

Start reading

86 notes · 10 topics · since 2019 · last updated 2026-10-22 · built with Mkdocs

Latest articles

SpacemiT V100: CPU server RISC-V 46 core, tiến bộ về hiệu năng hay về chuẩn hóa?2026-10-22 · Embedded Linux

Ngày 19/10/2026, SpacemiT công bố V100, một CPU server RISC-V 46 core phát triển cùng nhóm XiangShan. Hãng cho biết đây là chip đầu tiên tuân thủ đầy đủ RISC-V Server…

Kiến trúc CPU thương mại 2026: x86, ARM, RISC-V và góc nhìn 5G RAN2026-10-21 · Embedded Linux

x86 vẫn dẫn server và PC, ARM thống trị mobile và đang vào server, còn RISC-V đi lên từ MCU sang AI và edge. Bài này tóm tắt ba kiến trúc chính, cách chúng được cấp…

Design Pattern kinh điển trong Linux Kernel (1/3): OOP và vòng đời object2026-10-21 · Linux Kernel

Linux kernel viết bằng C, không có class, template hay destructor, nhưng lại dùng rất có hệ thống các design pattern hướng đối tượng và concurrency. Phần lớn code driver…

Design Pattern kinh điển trong Linux Kernel (2/3): dữ liệu intrusive và concurrency2026-10-21 · Linux Kernel

Phần 2 trong loạt 3 phần về design pattern của Linux kernel: cấu trúc dữ liệu intrusive và các kỹ thuật concurrency giúp fast path chạy nhanh.

Design Pattern kinh điển trong Linux Kernel (3/3): kiến trúc và checklist review2026-10-21 · Linux Kernel

Phần cuối trong loạt 3 phần: các pattern kiến trúc giúp driver cắm vào kernel, bảng đối chiếu với GoF/C++ và DPDK, checklist review và bài tập.

All articles

Topics

  • 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, multi-threading, shell script and Python.

    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

  • Notes


    Mkdocs, Markdown and handy bookmarks.

    Start reading

Document Tree

Book & Materials

Notes when reading books or some materials.

  • C Programming: List of C programming books, including Head First C.
  • Linux Programming: 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
  • 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.
    • CMake: CMake build system generator: targets, modern CMake, and cross-compiling for embedded Linux.
    • 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
  • Yocto
    • Yocto Overview: Yocto overview: Poky, layers, recipes and packages, the BitBake task flow, recipe syntax and handy commands.
  • 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.
    • i.MX6 (DART-MX6): DART-MX6 kit: hardware overview and Yocto build.
    • Raspberry Pi 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 Kernel Overview: Overview of the kernel: kernel/user space, main components and subsystems.
  • Linux Device Driver
    • LDD Overview: Overview of general concepts of Linux Device Driver.
    • Kernel Module: Kernel module basics and printing logs with printk and dev_* functions.
    • Character Device: Character device drivers: device files, major/minor numbers, mutex, mmap and ioctl.
    • Platform Device: Platform devices in the Linux device model and how drivers get hardware resources (struct resource).
    • 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.
Embedded Security
  • Vulnerability Management
    • InsightVM (Rapid7): Rapid7 InsightVM: connecting to target devices, scan workflow and vulnerability detection mechanism.
  • Cryptography & Transport Security
    • TLS: WIP – no content yet.
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.
  • Shell Script: Shell script syntax notes (e.g. arrays) with a tutorial reference.
  • Python: Quick Python syntax notes such as print formatting and lists.
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
    • Overview: Instruction set architecture overview (stub, RISC-V and ARM).
    • RISC-V: What RISC-V is: origin and governance, modular ISA structure, comparison with Arm and x86, pros and cons.
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.
  • What's next: To-do list of topics to study and write about next.

Statistics

86notes
72with content
14work in progress
7,479lines written

Lines by topic

Linux Kernel: 2,085 linesLinux Kernel2,085Linux Embedded: 1,566 linesLinux Embedded1,566Articles: 1,458 linesArticles1,458Programming: 975 linesProgramming975IC Design: 492 linesIC Design492Embedded Security: 389 linesEmbeddedSecurity389Computer Architecture: 199 lines199Notes: 147 lines147Virtualization: 130 lines130Book & Materials: 38 lines

New notes by year

050502019420201202152022020230202402025262026

Lines written by year

04,8451,5512019200202031202185220220202302024020254,8452026

Commit activity · 202 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: 91 commits91LessMore

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.