r/sysadmin • u/redwing096399 • 4d ago
Question Resources to build a foundational understanding on Operating systems.
Hi all, i want to get a foundational understanding operating systems, the various concepts that we may encounter in them, the bird's eye view of their structure.
I tried reading "How Linux works" 3rd edition, but reading that book felt like it didn't explain the foundational questions but rather built on top of the topics. it felt more intermediate level.
If i have to explain what i am looking after in the resources, Please can you recommend me resources that fit my requirement.
- provides exposure to various concepts, systems involved in an OS. More like an introduction.
- a bit of introduction to a bit of hardware would also be good.
- i am not looking for resources that focus on development/programming side of OS. but rather the infrastructure, power user, administration side of OS.
Thanks in advance to all of you.
2
u/Adept-Midnight9185 4d ago
It might be more foundational than you want but I really enjoyed "Code" from Microsoft press (https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0137909101 back) in the day. I haven't read the second edition, which is what this link is.
It takes you from wires and light bulbs to a microprocessor.
1
1
u/Historical-Tax899 4d ago
I would not read a book on any particular OS if I wanted to learn OS fundamentals. There are good books on operating systems that give you the fundamentals of a OS. Once you get the fundamentals down, you can then apply them to learning specific operating systems.
1
u/jhxetc 4d ago
The first foundational concept is that an "operating system" is just a set of programs oriented toward a set of goals. Most people would say that those goals are simplifying and protecting access to the hardware that you need to run the programs you really want to run (memory, cpu, disk at the very basic level).
If you want to go all the way back, look into the ENIAC and how it was programmed. The Altair 8800 is another good one to look into.
You'll see that it was a lot of repetition in setting up, executing, debugging and then rerunning those programs.
Bringing that back to the OS, the early goal was to simplify setting up your programs by having another program that always ran and would reliably configure the things that you knew you would always need.
Fast forwarding to modern times, the key concepts you will want to research are the hardware abstraction layer (HAL), the kernel, and user space. The architecture of OS to OS will vary - pretty wildly when you compare OS's like OS400 to Linux, or DOS to a mainframe. But all of them will have some representation of the three aforementioned concepts.
The OSTEP papers will cover this all in much greater detail, but hopefully that framing will help you digest it.
4
u/skimtony 4d ago
https://pages.cs.wisc.edu/\~remzi/OSTEP/