Welcome to Vu Tang's Docs Site¶
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.
86 notes · 10 topics · since 2019 · last updated 2026-10-22 · built with Mkdocs
Latest articles¶
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…
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…
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…
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.
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.
Topics¶
-
Articles
Short research articles, one small topic per article.
-
Book & Materials
Reading notes on C, Linux, kernel and algorithm books.
-
Linux Embedded
Petalinux, Yocto, U-Boot, PTP, DPDK and board projects.
-
Linux Kernel
Device drivers (I2C, SPI, GPIO, UART, ALSA) and kernel debugging.
-
Virtualization
Hypervisors (Hyper-V, mshv) and containers (Docker).
-
Programming
C, data structures, design patterns, perf, multi-threading, shell script and Python.
-
IC Design
Static timing analysis in Vivado and FPGA / Xilinx IP cores.
-
Computer Architecture
Instruction set architecture (RISC-V, ARM).
-
Notes
Mkdocs, Markdown and handy bookmarks.
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
- 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
- Yocto Overview: Yocto overview: Poky, layers, recipes and packages, the BitBake task flow, recipe syntax and handy commands.
- Bootloader
- U-Boot on Zynq: WIP – no content yet.
- 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
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
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¶
Lines by topic
New notes by year
Lines written by year
Commit activity · 202 commits
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.
