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, andeventfd. - 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-namestyle. - Standardized lab titles to
DayXX - Topicstyle. - 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.