Skip to content

mendesbarreto/my-computer-from-scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Computing Systems Journey

About the Project

Welcome to my journey of going back to the basics. Frustrated with not fully understanding certain computing concepts, I've set an ambitious goal for myself for 2024: to develop my own computer from scratch and create at least two pieces of software for it.

This project is more than just about building a computer; it's about deepening my understanding of the fundamental principles of computing and software development.

Goals

  • Build a Computer from Scratch: Assembling a computer from the ground up to gain a comprehensive understanding of its workings.
  • Develop Two Software Applications: Design and implement at least two original software applications to run on the newly built computer.
  • Be a better programmer and problem solver.

Resources

Progress Tracker

The Elements of Computing Systems

  • Chapter 1: Introduction to Computing Systems
  • Chapter 2: Building the Hardware
  • Chapter 3: Basic Software Development
  • Chapter 4: Advanced Software Projects

Nand to Tetris Course

  • Part 1: Hardware - Building the Nand to Tetris computer
  • Part 2: Software - Implementing an OS and higher-level software on the computer
  • Part 3: Projects - Developing two unique software applications

Complementary Fields of Study

Running the Hardware Simulator

To run the hardware simulator from the project fold, run the following commands:

./resource/tools/HardwareSimulator.sh

To run the all the scripts from any where in the system, add the following line to your .bashrc or .zshrc file:

export PATH="$PATH:$HOME/<path/to/project>/resource/tools"

Now run the following command to refresh your terminal:

HardwareSimulator.sh
# or
CPUEmulator.sh
# Etc

You can run any of the scripts from any where in the system.

Tools

To help visualize and understand the hardware logic gates, I'm using the following tools:

Contributing

While this is a personal journey, I welcome insights, suggestions, and discussions from fellow enthusiasts. Feel free to fork this project, submit pull requests, or open issues for any ideas or suggestions you might have.

Stay Updated

Follow my journey here on GitHub as I update this README with my progress, challenges, and learnings.

Thank you for being a part of this journey!


Douglas Mendes

About

This repo will save my progress in

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published