Microsoft’s Windows Operating System — A programmer’s perspective
Microsoft Technology, fighting the good fight since 1975.
Introduction
An operating system manages a computer’s hardware and presents the computer at a certain level of abstraction to the programmer and the end user.
This computer might be a PC, an Xbox console, a Hololens 2, Iot devices on Rasberry Pi you name it. For a software company, there comes the question, how do you manage all these devices? Do you create individual operating systems for them or do you create a single base that manages them all. If a single base, how do you create the base layer? How do you abstract different I/O devices? How can you make use of the device abstraction layer for say a Hololens 2 that doesn’t have a mouse and a keyboard?.
Approach
I will divide this work into two parts. The core part and the Developer’s part.
The Core Part
The Core part will explore
- The Overall systems architecture, its management and system mechanisms
- The abstractions of Processes, Jobs and Threads and there controls and synchronization
- The basic I/O and the Network I/O
- Memory Management
- Storage Management
- Security
- Hypervisor and Virtualization
The Developer’s Part
The Developer’s part will explore
- The Win32 API
- The .Net Framework with its CLR and FCL
- The Windows Runtime (WinRT)
- The Universal Windows Platform (UWP)