This is an excellent, free book by Remzi Arpaci-Dusseau and Andrea Arpaci-Dusseau, which covers the core concepts of operating systems in a very approachable way. It covers topics such as virtualization, concurrency, and persistence. I find this link very interesting because it breaks down complex topics into “easy pieces” that make understanding operating systems more intuitive.
This site is an excellent resource for those who want to dive into Linux kernel development. It is well-suited for beginners who are just starting to understand the intricacies of the Linux kernel. It provides guides and explanations for understanding kernel patches, subsystems, and other kernel development tools. I recommend this resource for its simplicity and community-driven approach to helping new developers.
This is a video about an explanation about free and open souce software
This is the official book that explains the design of the FreeBSD operating system. It covers both theoretical and practical aspects, from kernel design to system calls. I think this link is great because it delves into a popular, open-source Unix-like operating system and provides detailed explanations about its architecture.
The OSDev Wiki is a community-driven site where operating system developers collaborate and share resources. It provides tutorials on building your own operating system, including topics like bootloaders and kernel development. This link is fascinating for anyone who wants to take on the challenge of creating a custom OS from scratch.
MIT’s OpenCourseWare offers free courses, including their “Operating System Engineering” course. This course provides in-depth lectures, assignments, and projects focused on the principles of operating systems. It is a valuable resource for learners who want a more formal and academic approach to the subject, along with practical hands-on experience.
Linux From Scratch (LFS) is a project that provides you with step-by-step instructions on how to build your own custom Linux system from the ground up. This is a fantastic resource for anyone looking to get deep into Linux internals, learning how operating systems work at a fundamental level by constructing one yourself.
A beginner-friendly video that covers key OS concepts like memory management and multitasking as part of the Crash Course Computer Science series.
A full lecture series from MIT’s Operating System Engineering course, covering advanced topics like virtual memory, processes, and concurrency.
A very helpful video on the week 3 materials
This book by Mel Gorman, available online, provides an in-depth exploration of Linux’s memory management system. It’s a fantastic resource for anyone interested in learning more about virtual memory.
This page from The Linux Documentation Project provides an in-depth look at how Linux manages processes, which is a core topic in operating system design.
This page from The Linux Documentation Project provides an in-depth look at how Linux handles virtual memory, a key topic in operating system design.
This page from The Linux Documentation Project covers caching mechanisms in Linux, which are essential for optimizing system performance and memory usage.
This article from GeeksforGeeks provides an overview of the different states of a process in operating systems, explaining essential concepts like new, running, waiting, and terminated states, crucial for understanding process management.
This GeeksforGeeks page dives into the fork system call, a critical function in Unix-like operating systems, used to create new processes and a fundamental topic in system-level programming.
This GeeksforGeeks article introduces the concept of process synchronization, explaining its importance in preventing issues like race conditions and ensuring smooth execution in multi-process environments.
This article explains the concept of the critical section, a fundamental aspect of process synchronization. It covers how critical sections ensure that only one process accesses shared resources at a time, preventing conflicts and data inconsistencies in concurrent environments.
This GeeksforGeeks page discusses the differences between deadlock and starvation, two potential problems in operating systems, outlining the causes and consequences of each in process management.
This subreddit is dedicated to discussions and support related to the Linux From Scratch project, where users can share their experiences and seek help in building their own Linux systems from source.
This YouTube playlist provides a comprehensive guide on Linux From Scratch, offering step-by-step tutorials and demonstrations to help users build their own customized Linux operating system.
This is a very helpful website to know what operating systems are