Lately, I have started reading The Elements of Computing Systems book, and I'm truly impressed by its approach. The book takes a hands-on, bottom-up methodology to explain how computers work, covering everything from designing hardware components and understanding the internals of the CPU to developing software layers, including the assembler and operating system.
- Hardware Design: The book starts by guiding readers through the design of basic logic gates, progressing to building a fully functional CPU.
- Assembler Implementation: It explores how machine language is translated, giving insights into how assemblers work.
- Virtual Machine & Compiler: The book moves into higher-level software abstractions, explaining how compilers and virtual machines interact with hardware.
- Operating System Development: It concludes with fundamental OS concepts, explaining how a simple OS manages processes, memory, and I/O.
This repository will document my learning journey, including:
- Notes and key takeaways from each chapter.
- Implementations of the projects ( assembler, virtual machine, and OS components,programming language).
- Reflections on challenges and breakthroughs I encounter.