Programming an operating system like Microsoft Windows or Linux involves a deep understanding of computer architecture, particularly Assembly language, alongside C++. While most sections of an OS can be developed in C++, critical components require Assembly. Familiarity with CPU manuals, such as the AMD or Intel System Programming Manual, is essential for those working with x86 architecture. Resources like the book "Operating Systems: Design and Implementation" can provide foundational knowledge, although opinions on its teaching methods may vary. A thorough comprehension of computer systems is crucial for effective OS design, making the process more manageable. The discussion highlights the complexity and depth of knowledge required in operating system development.