Going through the Stanford List, here are the books listed there that I have also used and thought positively of:
Of the list, the only one I have read and didn't like was Operating System Concepts. It's not that it was terrible, per se, I just liked Modern Operating Systems a lot more. I used the third edition, but I can't imagine the 4th is any worse.
I think it's time for you to read a text book about virtual memory and page tables. There's a lot going on under the hood.
The short answer is, every process lives in its own virtual space, which appears to the process to be the whole of system memory. For that process, the only things that exist are its own memory and the kernel parts which are mapped into it. The only way a process can see other process memory is via the kernel.
The longer answer is that the way the kernel achieves is this is through a couple of bits of hardware in particular the MMU (memory management unit) which includes the TLB (translation lookaside buffer). The TLB is a kind of cache that handles fast lookups from virtual addresses (that a process sees), to physical addresses (that the kernel sees and manages). A TLB lookup will fail if a process tries to access a virtual address that is not mapped into it. In this case, the kernel (or on x86, the MMU on behalf of the kernel) will consult a bunch of tables ("page tables") to find the mapping and load it. If the kernel can't find the memory, then your process is trying to access memory that was never allocated to it, and you get a segfault (the memory segment couldn't be found).
There's a lot to it, and a single reddit comment isn't the place to get into all the details. I'd take a look at Modern Operating Systems or any other decent text book for a full explanation.
Modern Operating Systems by Andrew Tanenbaum is fantastic. https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/ref=sr_1_1?crid=3GFWMJB7LKL2F&dchild=1&keywords=tannenbaum+operating+systems&qid=1600412939&sprefix=tannenbaum+%2Caps%2C223&sr=8-1
This book covers both operating systems concepts and how they are implemented (in C) with a specific example of "Minix", which is a teaching operating system that inspired the creation of Linux. It's a great reference: https://www.amazon.com/Operating-Systems-Design-Implementation-3rd/dp/0131429388
Modern Operating Systems by Andrew Tanenbaum
https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X
and/or
Operating Systems by Abraham Silberschatz
Tanenbaum's book is used at many universities:
https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X
Ordered this dinosaur one just the other day. Sorry its a link to amazon but that is where the pic is
Edit: Damn I found a free pdf of it while looking for a better pic hahahahahaha rip my wallet here it is
I suggest reading this book. Its well written and entertaining, but also one of the best references on the topic.
Trivia - The author is the inventor of Minix which is a minimal unix like teaching operating system. It was the inspiration for Linus starting the Linux project.
You would probably be best served by a general book on operating systems. The "Dinosaur book" is the classic reference which I used during my time studying CS in university: https://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720/
There may be better options now.
So, to clarify, your main purpose in learning linux is to learn the operations side so you can manage your webapps yourself?
I think you'll be a bit disappointed.
RHCSA/RHCE certification material will cover the fundamentals you will need to know, but not the methodology which is what will spin your wheels the most.
It is not linux related, but you may find value in the considerations covered in the second volume of the Limoncelli books.
This might be a good place to start.
This is the book you’re looking for. It’s covers the stuff between your program and the hardware. All examples are in both C and Java
So this is about applying to companies, and not about applying to a university, or learning it to a university level?
Anyway, the Dinosaur Book is a classic (Operating Systems Concepts). As is Andrew S. Tanenbaum's Operating Systems books (I can't link you as there's a bunch with a similar name and I can't remember which one it was). But they might be a lot more than you need if it's just to answer some interview questions.
However you might find it easier to simply google <code>operating systems concepts for interviews</code> and learn it that way?
Find advanced non-Go software books, architecture, design, memory management, data structures, algorithms, all the things, and apply that knowledge to Go - see what fits, and what doesn't.
​
For example, my favourite book, Andrew Tannenbaum's Operating Systems Design and Implementation (also known as the Minix book), when looked at from a Go point of view, will give you a good understanding of scheduling, memory layout, etc
I also suggest that people grab a University text book on Data Structures and Algorithms (eg Sedgewick and Wayne's Algorithms ) and implement various trees, heaps, searches, and sorts to give you a strong feel for which tool to pick up when addressing different requirements (or even just a bit of spelunking through Wikipedia, looking at the big O complexity, and implementing what's described), implementation is the key though.
HTH
In one university job, I got to tutor folks (programming and OS and math...and how not to drop out...or avoid being bombed by USAF). Having put MUCH more thought into the pedagogy than my own CS course (based on UK crypto legacy/bootstrap), just 3 years earlier, they wanted folk to understand the major algorithm behind each OS module (and then how to build it all on a PC).
It was not feasible to build unix on a PC of the day. And the unix wars were just starting to make unix annoying, as proprietary this or that found its way into the marketing.
https://www.amazon.com/Operating-Systems-Design-Implementation-3rd/dp/0131429388/ref=nodl_
hoo boy. i'll try think. This book is pretty old school (and I believe all C) but a great textbook on the design and implementation of operating systems (including complete source code for a basic unix-style OS that inspired linux)
Raywenderlich is a great site, but I find it mostly focuses on higher level API related topics.
For basics, I am referring to the lower level concepts like how memory works on computer, how cpu scheduler works, how to write mutithread software, etc. A deep understanding of those topics will allow you to code things that others can't, and is ultimately what will seperate you from the rest.
If you have time, here is a book worth checking out. https://www.amazon.ca/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
The Practice of Cloud System Administration
It covers a lot of the same material as the google SRE book, but (in my opinion) from a more approachable and realistic point of view for people who are operating at less-than-google scale.
I think this is what you're looking for. It's an introduction to operating systems concepts, with real working code examples from the Minix OS, which is a teaching OS, t hat inspired Linus to write Linux.
https://www.amazon.com.au/Operating-Systems-Design-Implementation-Tanenbaum/dp/0131429388
Try amazon smile to donate to a charity of your choice automatically at no cost to you!
https://smile.amazon.com/Practice-Cloud-System-Administration-Practices/dp/032194318X
^^^I'm ^^^a ^^^bot ^^^and ^^^this ^^^action ^^^was ^^^performed ^^^automatically.
FreeBSD is a fantastic OS.
I recommend getting the books The Design and Implementation of the FreeBSD Operating System & Absolute FreeBSD
Y a que te dedicas?
Si te interesa entender como funciona un SO lee el libro de Silberschatz o el otro de Tanembaum son dos clasicos. No necesitas conocimientos previos y se pueden leer solos.
This book covers both operating systems concepts and how they are implemented using the C programming language with a specific example of "Minix", which is a teaching operating system that inspired the creation of Linux. It's a great reference: https://www.amazon.com/Operating-Systems-Design-Implementation-3rd/dp/0131429388
The FreeBSD No Starch book just came out a year and a half ago and the Handbook is constantly updated so I don't know why you think they're outdated.
In addition, if you really want to get into the bowels of the FreeBSD operating system
What I am doing right now is reading this book alongside with the source code of 11.4.
On and off I build the kernel and try to understand it’s output and the overall make infrastructure.
$5 USD paypal for PDF format of
Operating Systems, Gary Nutt, Third Edition, Addison Wesley, ISBN: 0-2-01777344-9, 2003
LOL it seems interesting to me. I'm reading https://www.amazon.ca/Design-Implementation-FreeBSD-Operating-System/dp/0321968972/ref=dp_ob_title_bk right now.
​
Maybe its good in theory, and not in practice.
Concurrency has quite a bit of theory involved. A good chunk of time is spent on it in courses on the theory of operating systems. Here's one text frequently used in such courses (older editions should be fine, too):
https://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/1118063333/
Hit the books ! More specifically this one : https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X it’s a great book, it explains the concepts really well and also has code examples. Tho I recommend reading about computer architecture a bit to understand it better, this is also a great book for it https://www.amazon.com/Computer-Organization-Architecture-William-Stallings/dp/0134101618 But really read all of the tanenbaum’s book, I got an A because of it, it’s an amazing book.