I finished all the exercises in the 6.824 MIT course on hacking on a RISC-V OS. This course and this book are the only two things you need to get a firm grasp of what goes in the innards of an Operating system.
There are lot of scholarly books by respected professors and they have their place but this book and the 6.824 course is all you will ever need to learn Operating systems. This tiny 100+ page book is the guiding light while you get your hands dirty hacking on C and Assembly. By itself it’s of limited use but along with the xv6 source code and the exercises it’s truly indispensable.
The book has conceptual explanations for all things central to an OS like concurrency, locking, virtual memory, scheduling etc. If you want to get down to brass tacks and understand how core features in OS are implemented, you must read this and the xv6 source code.
This is indispensable to all OS hackers. After doing the xv6 exercises and reading this short text, you should have a solid conceptual understanding of what an OS does and how it implements core features. Special mention to exercises via which I learnt how multi level page tables, trap processing, mmap and how a network stack works in OS. I even got a printed copy of this book.
My deepest gratitude to the MIT PDOS group and MIT for making such courses and books available online for free.
I highly recommend this book, granted you also do the xv6 exercises.