Comment by yuhong

13 years ago

My personal annoyance is the introduction of win32k in NT4. With per-session CSRSS existing since WinFrame and Vista+ having Session 0 Isolation, not to mention much faster processors, and the removal of XPDM and the requirement of the DWM in Win8, it doesn't make as much sense anymore.

Update: And I forgot to mention the font parsing security issues (look up Duqu), and the issues with user mode callbacks too.

> the issues with user mode callbacks too.

Genuine question (because I really don't know) -- how do Linux GUI frameworks work without kernel-mode callbacks? What do they use instead, when they need to send messages to other windows?

  • X11 clients communicate with the server using Unix domain sockets or TCP sockets. Requests, responses and event notifications are exchanged as messages.

    Asynchronous communication is achieved using syscalls like select and poll which take a set of file descriptors (files, special files, sockets) and block the calling thread until some descriptor from this set has new data available for reading, starts accepting writes or signals an error.

    GUI toolkits repeatedly poll the X server descriptor, parse incoming messages and call application-defined callbacks.

    • > poll and select

      That sounds like it's basically the same thing as Windows (GetMessage or MsgWaitForMultipleObjectsEx anyone?)... only that now you don't have the ability to use SendMessage, and need to rely exclusively on PostMessage instead.

      Is that correct?

      6 replies →

Nobody likes win32k, but it's there and it works.

Okay, you're in charge. Are you sure you can't find a better way to deploy shareholder capital than using it to remove win32k?

  • "Okay, you're in charge. Are you sure you can't find a better way to deploy shareholder capital than using it to remove win32k?"

    Could that be why developing an OS inside of a shareholder-owned corporation is inherently hobbled compared with developing it as an open source project?