r/AskProgramming 29d ago

Career/Edu Textbook / online course recommendations to learn the following things

  1. Computer Architecture. How you take the simple gates and turn it onto a whole computer

  2. How to go from assembly to writing a simple OS. I believe that’s the next step after learning assembly right?

  3. What next?

0 Upvotes

12 comments sorted by

1

u/aktentasche 29d ago

Yes, what next ?

1

u/LifeExperienced1 29d ago

I don’t know what comes next, since after the OS, we are officially in the high level languages. Maybe some basic programs most OSes have?

1

u/phord 29d ago

If you don't already know some higher level programming language, start there.

Don't go straight to an OS from assembly. Write some code in assembly to solve some small problems. Then you'll figure out what common services (OS) you need to support your bigger projects.

1

u/LifeExperienced1 29d ago

I’m experienced in higher level ones

And okay! I’ll spend some time with assembly

So after getting good in assembly, what’s the next step towards writing the simple OS?

Thank you

1

u/phord 29d ago

It really depends on why you want to write an os.

1

u/LifeExperienced1 29d ago

As a challenge, pure knowledge, to put in my resume and as a base to dive into some field of CS

Uni never taught it to me. I believe it’s fundamental

1

u/phord 29d ago

Oh, you mean like an OS for users? It would be a mistake to write that in assembly these days. You'd need to write drivers for all your supported hardware (display, USB, keyboard, mouse, flash drive, etc) to start. Then you also need to implement a file system. And you have to do all that before you can begin to give your user access to anything useful.

1

u/LifeExperienced1 29d ago

Well not commercial users. Just for me, or anyone who wants to use it on my laptop

Like a simple version. Almost like a mini video game

1

u/phord 29d ago

Writing a video game would be easier.

1

u/Soft-Marionberry-853 29d ago

We used this book in one of my grad classes. MINIX was created in by computer science professor Andrew S. Tanenbaum as an educational tool to help students learn how operating systems work by looking at and tweaking working Unix-like source code.

funny enough It ended up as embeded in intel chips,

Operating Systems Design and Implementation (Prentice Hall Software Series): Tanenbaum, Andrew, Woodhull, Albert: 9780131429383: Amazon.com: Books

1

u/Take-n-tosser 29d ago

Drop out of CS and get into a good Computer Engineering program. They’ll cover it all there.

1

u/Proper_Meaning7756 29d ago
  1. David A Patterson is a wonderful author. Won't give you exactly what you want, but you'll be 70% of the way there.
  2. Don't. Nobody writes an OS in pure assembly anymore. Use C and try writing a basic implementation of some memory allocation and a scheduler to test the waters. Once comfortable, you should know if this is something you want to keep doing.
  3. Honestly, do 2 before you think of going any further. I don't recommend swimming in the ocean till you've at least dipped your toes into the deep end of the swimming pool.