3 ms·
Your assessment is wildly inaccurate. Windows NT is a general purpose OS like Linux and the lower layers really don't know or care about the GUI. The Windows N
by kyberias 7y ago
Your assessment is wildly inaccurate. Windows NT is a general purpose OS like Linux and the lower layers really don't know or care about the GUI.
The Windows NT kernel has been carefully designed like that from the start. In fact, the Windows part of NT is called a Windows subsystem. Windows kernel DOES NOT do windowing. The Executive, Kernel, Device drivers and the HAL are cleanly separated.
In fact, Microsoft provides Windows Nano Server which is a totally headless installation with no GUI components.
- ryacko 7y agohttps://scorpiosoftware.net/2019/02/17/windows-10-desktops-vs-sysinternals-desktops/ https://scorpiosoftware.net/2019/02/17/windows-10-desktops-v... It depends what level of the OS you’re talking about, but the clean separation is not so clear.
- temac 7y agoYou are talking about mostly source code organization. Which every sane project does. So of course it is unlikely there is something that e.g. draws pixels in the scheduler. But for example there is still some space reserved in the TEB for GDI things. And kernel space code for graphic purposes related to processes and threads -- a kind of graphic "kernel" if you want. I mean: you just cannot take Windows and change all the low level graphics support code to a kind of WinWayland or WinAndroid. Even just programming raw NT processes is not officially supported IIUC, so you are bound to using e.g. Win32, and there definitively are some pieces of code all over Win32 (and not just in trivially graphic related APIs) which is aware of the existence of graphics related features on the OS. So while it might be possible to recompile and/or rewrite parts of NT if you work at Microsoft to actually obtain a graphic agnostic OS (which is not even exactly what Nano Server is despite the re-engineering effort, because it is explicitly graphicless, not just graphic agnostic, and actually it now does not even exist anymore in a standalone form but only for containers, so you stick with your regular host kernel), that's not what I had in mind.