This page is meant to capture the current state of agreement
. It is simply a list of features on each operating system and its associated tools, and then its suggested
equivalent on the other system. The hope is that we might learn from each other how to do our jobs on each others' systems, not hear arguments on how much the other sucks.
In a way this is supposed to be like a pretrial hearing, to reduce the length of the ensuing court battle. Please don't have your argument here - if you take umbrage, take your umbrage elsewhere. If you have a question about an equivalent feature though, add it to the list and hopefully someone will take the time to put in an answer.
Features on Windows
- WTS X + ssh
- COM Corba / PlainText protocols
- IIS Apache
- Threads processes sharing address space and OS resources, proprietary thread API, POSIX threads (usually implemented with one of the first two).
- Named Pipes (don't have the same functionality, but a common subset) You can make a special file that acts as a pipe.
Features on Unix or LinuxLikeOperatingSystems
- CLI with pipes & job control - Cygwin (for unix commands) plus DOS shell emulator (for native commands from cmd.exe/command.com)
- Network transparent GUI WTS
- Rooted file-system hierarchy You can refer to anything on the local machine using the UNC syntax, eg \\mypc\C$\whatever or \\mypc\foo, for shares.
- Symbolic links See SymbolicLinkOnWindows. The explorer has "link" files but these are not fully understood by other parts of the operating system, such as command line tools or the open/save dialogs. Shared folders can act like a flat namespace of symlinks. Few knows, but NTFS supports true symbolic links. Try to use the ln command on cygwin and you might be surprised by the results.
- Asynchronous signals Threads waiting on binary semaphores signaled by the operating system
This 'real windows' would be what? The one released less than a year ago? The one we used to call NT? The one with the POSIX shell CLI?
Orignal author replies: and the 'real unix' is... IRIX? AIX? Solaris? HPUX? To answer would be to miss the point. This pages title should more accurately be 'roughly equivalent features and tools in the set of operating systems and tools which people would generally see as belonging to the windows world or the unix world'. However, brevity is the soul of wit. And the intention of this page is that people can say how they would get roughly the same effect in the 'windows world' or the 'unix world', so limiting to one version of windows or unix, or excluding tools that get layered on top of the OS, would prevent people from describing what they would actually do.
Actually the version of Windows is often important information, since really big features can change in major releases (e.g. multiple times that further Unix shell-like functionality was announced for some Windows or another). The corresponding nitpick about different versions of Unix is largely irrelevant, because for the most part the major features are identical across vendors and even on completely different codebases such as Linux; mostly it is system administration issues (like location of configuration files) that vary, not system calls or shell availability. So let's just say: mention the version of either Windows or of Unix whenever there may be a question as to whether the feature varies with release/vendor, and if someone asks, just tell them.
[The versions matter less and less as the operating systems stabilize. In the early 1980s, there were important differences between System V and BSD. System V didn't support asynchronous I/O. Shell commands had completely different syntaxes. As Windows ages, the difference between versions seem to decrease, just as they did with Unix. And as they both age, they grow more and more alike.]
The Unix issue you mentioned was twenty years ago
. Windows continues
to add major features on every major release. So what was the point of your comment???
[My point is that Unix is older than Windows, hence the difference between releases are smaller. For instance, the difference between Win2000 and WinXP was significantly less than the difference between Win3.1 and WinNT.]
I should hope so. Win3.1 and WinNT were completely different operating systems, not just different releases of the same operating system.
But the context of this is someone arguing "and the 'real unix' is... IRIX? AIX? Solaris? HPUX?", and I'm just saying what you
just said: it doesn't really matter with Unix, but it often does matter with Windows, so for crying out loud, don't argue, just speak up about the Windows version, and that should be the end of it. But I phrased it better, above. I really cannot see what further point there is here that is relevant to the context.
[It matters for old versions of Unix. Speak up about those as well.]
See the article by DonBox
about the five stages of Microsoft development: (http://web.archive.org/web/19991007034818/www.develop.com/dbox/cxx/fivephases.htm
) Porting tools from "the old country" to Windows comes in at stage 3 ("anger"). I've actually used vi for Windows (ha!) so maybe he's right.
, eh? You know, not everyone gets past the anger stage, and maybe that's not a bad thing.
There's always CygWin
- Capitalization recognition
- Windows has no (simple) directory links
Book: Unix for the MS-DOS User http://www.informit.com/bookstore/product.asp?isbn=0131460773&rl=1