
It is often said that an operating system (OS) is one of the three great romances for programmers. We frequently use terms like “soul, brain, kernel, foundation” to describe it, highlighting its significance in the realm of computing.
In practical work, this is indeed the case; many of the troubleshooting issues we encounter are closely related to the operating system, such as:
-
Why is there a memory leak? Why do service processes crash? Why can’t files be opened?
-
Can the I/O performance of MySQL be improved?
-
Why do network services drop connections?
-
What technologies support the classic Reactor design pattern in Redis?
-
What does the I/O model of Node.js look like?
Moreover, when engaging in high-performance server-side programming, knowledge related to memory, processes, threads, and I/O is often required. For developers in operations and testing, many problems also stem from the operating system: for instance, how much memory and cache space should be allocated to services? How can we determine where the server problems are based on the information provided by the operating system?
Only by mastering the underlying knowledge of the operating system can one pinpoint the causes and conduct further monitoring.
It can be said that “mastering the operating system can directly solve problems you encounter at work“. For this reason alone, it is a “fundamental skill” that every programmer must diligently cultivate.
Furthermore, from a growth perspective, spending a significant amount of time studying OS fundamentals is akin to an “exponential function”; although results may not be immediately visible, it is an inevitable process of going from 0 to 1.
Once you grasp these fundamental skills, you will find it much easier to understand the advanced designs behind popular technologies and demos, as well as the performance bottlenecks within systems.
Thus, it is not an exaggeration to say that understanding the operating system, coupled with solid programming skills, gives you a competitive edge in job searching. Many current engineers lack comprehension of many of these concepts, and after years of work, they still need to come back for supplementary learning.
Is it difficult to learn about operating systems? Are there any shortcuts?
There are no shortcuts, but there are insights. Learning about operating systems requires a vast amount of knowledge; not only must the theory be systematic, but practical experience is also essential. When you actually write an OS, your understanding of operating systems will undergo a qualitative leap.
However, there are very few resources available that provide accompanying experiments to complete an OS. One such resource is the “45 Lectures on Operating Systems in Practice” course by Peng Dong, a computer “genius”. This course has garnered nearly 10,000 subscriptions in less than two months, which is not surprising considering how scarce such practical courses are in China.
Below is the “Core Knowledge Map of Operating Systems” compiled by Peng Dong, sourced from this course. It is recommended to look at it first.
Simplified Knowledge System Map of Operating Systems
About the Computer “Genius” Peng Dong
Peng Dong is self-taught, having learned microcomputer principles, programming languages, data structures, and algorithms through sheer will and passion. He has read numerous books related to operating systems and hardware, and independently developed the LMOS operating system.
LMOS has now released 8 test versions and is a fully 64-bit operating system kernel under the x86_64 architecture, supporting multi-process, multi-thread, and virtual memory, with over 100,000 lines of code.
Not only that, his strong interest has led him to develop an embedded operating system based on Linux—LMOSEM.
He is also the author of “Deep Exploration of Embedded Operating Systems: Designing, Architecting, and Developing from Scratch” and a key developer on the Intel Optane project.
With decades of in-depth research into operating systems, he is proficient in Linux, BSD, SunOS and other open-source operating system kernels, familiar with the Windows NT kernel, and knowledgeable about low-level computer technology, with substantial research in compilers and databases.
It can be said that Peng Dong is very aware of the challenges and obstacles encountered in learning about operating systems, and the pitfalls one might fall into.
In summary, he will guide you step by step in building a 64-bit multi-process operating system based on the x86 platform—Cosmos. This is truly going from 0 to 1, hands-on teaching you how to create your own operating system, and not only that, the course also explains the Linux kernel thoroughly.
Newcomers only ¥59.9, original price ¥129
Compared to the cumbersome textbooks on the market, this course is incredibly user-friendly. In addition to teaching you how to create your own operating system step by step, there are several other commendable points:
1. “Nanny-level” illustrations + code analysis, suitable for beginners
To facilitate understanding for “computer novices” and to quickly get hands-on practice, the course includes a wealth of illustrations and detailed code comments, a level of code annotation that is quite rare, demonstrating the instructor’s dedication.
Of course, if you are an expert, you can quickly locate the key core code based on the hints provided in the course.
Excerpt from “45 Lectures on Operating Systems in Practice” Lecture 9
Take a look—how are Linux spinlocks and semaphores implemented?
2. Learn while practicing, comparative analysis, strengthening understanding of Linux
When introducing each kernel component implementation, the principles are first explained, followed by hands-on implementation based on design understanding, then comparing it with Linux kernel implementations. This allows for both learning and practice while helping you view the Linux kernel from a “God’s-eye perspective”.
3. Accompanying source code, truly hands-on “running”
Each lecture in the course is matched with working code, available on Gitee; you can implement it step by step with the course or directly use the code provided for debugging until you ultimately build an operating system.
Demonstration of the Cosmos system running
By completing the entire course, your ability to design operating system architecture will surely improve significantly, and you will also learn system-level software programming techniques, which will greatly benefit the depth and breadth of your technical skills.
When encountering problems in everyday development, you will be able to approach solutions from multiple dimensions. Naturally, job hunting will also be a plus; having hands-on experience writing an operating system will certainly enhance your resume.
Having said all this, let’s take a look at the syllabus. At first glance at the syllabus, you will know this course is definitely worthwhile.
It is important to emphasize again that the course is offered at a limited-time discount.
Group price ¥99, save ¥30.
Newcomers only ¥59.9, less than half price!
One subscription, permanent access
Many people think that mastering operating systems is difficult, and writing an operating system is something only experts can achieve.
However, that is not the case; Peng Dong, like us, is an ordinary person who started with a foundation far inferior to that of his formally trained peers.
You can imagine the difficulties he faced during his learning process, yet this did not prevent him from navigating the sea of operating systems.
What reason do we have not to succeed in our studies?
Those who cannot do it will find it hard; those who can will find it easy. Do not limit yourself; solutions are always more numerous than difficulties.
Click “Read the original text” for a minimum of ¥59.9
Let’s help you build your own operating system!