Go follow Computer Science at a university. Or use Google. Really, I searched for "theory behind operating systems" copied from your post and the second result was a university course page with pdf files for every lecture.
Think what he is looking for are resources that other people already use and would recommend to someone getting into the subject. For example, I've tried to get into computer programming many times, usually by searching for tutorials online. I never got anywhere. It was only when I listened to the geeknights episode about getting into computer programming did I find a resource that worked for my level (my level being programming in Basic on an Amstrad 464).
The first PDF on that page is far beyond my level it isn't even funny. By the second page I was encountering TLA's I had no clue about. So I don't think there is any need to be snarky about a reasonable request like the one above.
Do you want to know things or be able to do things? In the former case, Wikipedia is your friend as long as you know what you are looking for. What worked for me, and what I would suggest you do, is first find out about the x86 architecture. Find out how a processor adds two numbers. Find out how the processor finds those numbers and read up on address space (and find out why in Windows, for a time, you couldn't have more than ~750 megs of RAM) and how everything (keyboard, RAM, mouse, etc) has to have and address.
Once you have even a rudimentary grasp of what goes on at the very low level, you can start to appreciate what the kernel of an operating system has to do. From there you can then start learning about different ways of building a kernel. This is a classic discourse on two very different ways.
All of this will not help you one bit in learning how to do anything. For that (assuming you know how to code at least a bit), I would suggest simply checking out the Linux kernel source code and starting small, e.g., looking at the source code for the "ls" command. Try adding an option and see if the kernel still compiles (hint: Don't be sad if you fail, ls is used everywhere in the operating system so this can be really, really difficult).
The first PDF on that page is far beyond my level it isn't even funny. By the second page I was encountering TLA's I had no clue about. So I don't think there is any need to be snarky about a reasonable request like the one above.
This is why my first suggestion was to follow Computer Science. You need to have a basic level of knowledge before you should go into learning something like Operating Systems. I wasn't being snarky on purpose. Just stating the truth.
As for your computer programming, did you ever try those tutorials for real? Every tutorial I've found for a specific programming language starts with the basics and is pretty clear and easy and does a very decent job at teaching you the basics of that programming language.
I've tried to get into computer programming many times, usually by searching for tutorials online. I never got anywhere. It was only when I listened to the geeknights episode about getting into computer programming did I find a resource that worked for my level (my level being programming in Basic on an Amstrad 464).
This is why my first suggestion was to follow Computer Science. You need to have a basic level of knowledge before you should go into learning something like Operating Systems. I wasn't being snarky on purpose. Just stating the truth.
As for your computer programming, did you ever try those tutorials for real? Every tutorial I've found for a specific programming language starts with the basics and is pretty clear and easy and does a very decent job at teaching you the basics of that programming language.
What the basics are for you are not the basics for me. I tried really hard, but I never actually got to the point where I could even open a program and have it run. All the tutorials started off at a basic level for someone who already knows what a development environment might be, or understands what assigning memory might mean. This kind of thing is way beyond what it took my 12 year old self to program three room text based adventures in basic.
Exactly. I didn't even know such a thing as terminal based interpreters existed, and to me Python was just another name in the huge list of languages, any of which could have been more or less suitable to my needs.It turns out that book was perfect for me. I've now started a project I've wanted to make for years, and I have about 2000 lines of code written from scratch. All it took was the initial advice.
"Just fucking Google It" is often the best answer. But not always.
Comments
The first PDF on that page is far beyond my level it isn't even funny. By the second page I was encountering TLA's I had no clue about. So I don't think there is any need to be snarky about a reasonable request like the one above.
Once you have even a rudimentary grasp of what goes on at the very low level, you can start to appreciate what the kernel of an operating system has to do. From there you can then start learning about different ways of building a kernel. This is a classic discourse on two very different ways.
All of this will not help you one bit in learning how to do anything. For that (assuming you know how to code at least a bit), I would suggest simply checking out the Linux kernel source code and starting small, e.g., looking at the source code for the "ls" command. Try adding an option and see if the kernel still compiles (hint: Don't be sad if you fail, ls is used everywhere in the operating system so this can be really, really difficult).
As for your computer programming, did you ever try those tutorials for real? Every tutorial I've found for a specific programming language starts with the basics and is pretty clear and easy and does a very decent job at teaching you the basics of that programming language.
"Just fucking Google It" is often the best answer. But not always.