2 ms·
Completely agree. In particular, POSIX is built around the inheritance of file descriptors by their children, which means that it is extraordinarily easy to hav
by anon291 4y ago
Completely agree. In particular, POSIX is built around the inheritance of file descriptors by their children, which means that it is extraordinarily easy to have sockets going between multiple processes. Moreover, it's entirely possible to send file descriptors over other sockets (SCM_RIGHTS). POSIX has robust IPC. I'm currently messing around with IPC on Windows... and wow, at the end of the day, even in 2023, UNIX et al are simply more advanced than Windows. It's unfortunate there's been absolutely zero groundbreaking discoveries or inventions in this field (OS dev), but the idea that we should throw away the state of the art simply because is just silly.
POSIX IPC has withstood the test of time. There is no other system that offers as rich a set of primitives.
- jcrites 4y agoCan you be more specific about how POSIX is more advanced than Windows (NT kernel)? Or a primitive it offers that NT doesn’t? Examples? Windows provides most (all?) of the same mechanisms, and a number that POSIX does not. https://learn.microsoft.com/en-us/windows/win32/ipc/interprocess-communications https://learn.microsoft.com/en-us/windows/win32/ipc/interpro... Example Windows concepts that Unix doesn’t have (AFAIK): Transactions on named pipes (request/response): https://learn.microsoft.com/en-us/windows/win32/ipc/transactions-on-named-pipes https://learn.microsoft.com/en-us/windows/win32/ipc/transact... Parents can control which handles child processes inherit: https://learn.microsoft.com/en-us/windows/win32/ipc/pipe-handle-inheritance?source=recommendations https://learn.microsoft.com/en-us/windows/win32/ipc/pipe-han... Remote Procedure Call (RPC) IPC: https://learn.microsoft.com/en-us/windows/win32/ipc/interprocess-communications#using-rpc-for-ipc https://learn.microsoft.com/en-us/windows/win32/ipc/interpro... ACL-based permissions on objects that kernel APIs operate on, including pipes. (ACLs are a much more sensible way of specifying permissions on resources than owner/group). https://learn.microsoft.com/en-us/windows/desktop/SecAuthZ/access-control-model https://learn.microsoft.com/en-us/windows/desktop/SecAuthZ/a... Since windowing is built into the NT kernel, it also has support for powerful clipboard operations as one crucial type of IPC in a graphical environment (see 1st link). Windows I/O Completion Ports (IOCP) also provide a high-performance way to implement kernel-managed asynchronous I/O operations which has no parallel in POSIX: https://learn.microsoft.com/en-us/windows/win32/fileio/i-o-completion-ports https://learn.microsoft.com/en-us/windows/win32/fileio/i-o-c... I’ve been developing professionally on Linux for >15 years, and while I do like its simple aesthetic, the consistency and power of NT kernel APIs are something I miss.
- pjmlp 4y agoSure there are, one only needs to actually bother to learn about the history of computing and other platforms, to validate that.