Skip to content

Refactor History

This page summarizes the documentation refactor phases that converted the original Day-based learning repository into a structured Embedded Linux handbook.

Phase 01 - MkDocs Material Scaffold

Purpose

Create the initial static documentation site foundation.

Main Changes

  • Added MkDocs Material configuration.
  • Added the first website entry pages.
  • Preserved the original learning materials without major restructuring.

Phase 02 - Navigation and Topic Mapping

Purpose

Make the existing learning materials discoverable through MkDocs navigation.

Main Changes

  • Added grouped navigation for labs, notes, and logs.
  • Added topic mapping to connect Day-based content with topic-based review.
  • Reduced navigation warnings from unlisted pages.

Phase 03 - Event Loop Topic Refactor

Purpose

Create the first topic-oriented architecture section around Linux event-driven programming.

Main Changes

  • Added Event Loop topic pages.
  • Added API reference pages for poll, epoll, timerfd, signalfd, and eventfd.
  • Cross-linked event loop labs and notes.

Phase 04 - IPC Topic Refactor

Purpose

Organize UNIX domain socket, file descriptor passing, shared memory, message queue, and semaphore content into a coherent IPC section.

Main Changes

  • Added IPC topic pages.
  • Added IPC API reference pages.
  • Connected Day 53 through Day 58 into one IPC learning path.

Phase 05 - Kernel Driver Topic Refactor

Purpose

Turn early driver labs into reusable kernel driver topic documentation.

Main Changes

  • Added Kernel Driver topic pages.
  • Added kernel driver API reference pages.
  • Connected char device, wait queue, poll support, sysfs, ioctl, and fasync topics.

Phase 06 - API Reference Expansion

Purpose

Expand the API reference into a practical handbook-style lookup section.

Main Changes

  • Added more per-API reference pages.
  • Standardized API page structure.
  • Improved cross-linking between topics, labs, and API pages.

Phase 07 - Lab Naming and Title Cleanup

Purpose

Normalize lab file names, page titles, and sidebar titles.

Main Changes

  • Standardized lab filenames to dayXX-topic-name style.
  • Standardized lab titles to DayXX - Topic style.
  • Updated related navigation and cross-links.

Phase 08 - Subsystem Topic Refactor

Purpose

Organize Linux subsystem content into a dedicated handbook section.

Main Changes

  • Added subsystem topic pages for Device Tree overlay, GPIO/gpiod, hwmon, IIO, Input, and TTY/UART.
  • Added subsystem API reference pages.
  • Connected subsystem labs and notes to topic pages.

Phase 09 - Documentation UX and Consistency Cleanup

Purpose

Improve readability and navigation consistency for long-term local reading.

Main Changes

  • Cleaned up navigation naming.
  • Removed Unicode dash inconsistencies.
  • Added custom CSS for better layout width.
  • Added user-controlled font scaling.

Phase 10 - API Reference Expansion II

Purpose

Expand userspace Linux API coverage.

Main Changes

  • Added POSIX I/O API reference pages.
  • Added process and signal API reference pages.
  • Added network socket API reference pages.

Phase 11 - Build Workflow and Maintenance Documentation

Purpose

Document the development workflow required to maintain and extend the repo.

Main Changes

  • Added Build and Deployment topic section.
  • Added Cross Compilation, Kernel Module Build, Device Tree Overlay Build, and vermagic pages.
  • Added Project Maintenance, Cloudflare Pages Deployment, and Troubleshooting pages.

Phase 12 - Handbook Finalization and Information Architecture Cleanup

Purpose

Finalize the site as an Embedded Linux handbook rather than only a refactored note collection.

Main Changes

  • Reworked the home page as a handbook portal.
  • Reworked the learning roadmap into a concept-oriented path.
  • Added this refactor history page.
  • Reorganized Meta navigation around maintenance, troubleshooting, and refactor history.
  • Split troubleshooting into categorized pages.
  • Updated the top-level README as a handbook portal.

Current Documentation Model

Original Day-based learning history
Labs, notes, and logs preserved
Topic-oriented handbook structure
API reference and troubleshooting lookup
Long-term Embedded Linux knowledge base