Mail Archives: cygwin/2004/06/30/20:04:03
On Wed, 30 Jun 2004, Robert Pendell wrote:
> Right. Windows actually stole certain things from UNIX. Example: The
> system32\drivers\etc folder is taken directly from UNIX. There are
> certain others stolen from UNIX too but I can't remember what.
``Stolen'' is a big word. Microsoft has as much right to imitate
good or bad ideas from elsewhere as anyone else.
I can think of lots of things in Windows that were imitated from Unix
and surrounding culture. Most of them are imitated badly; the nice,
simple concepts are typically contorted and murdered in the process.
- The use of the C language for expressing the system interfaces and
for developing the kernel. [ All very bastardized under Windows.
Crap like __declspec(dllimport) and __stdcall and __pascal, WINAPI
hack layered upon hack. ]
- Network stack. [ Direct from Berkeley Unix ].
- The basic kernel architecture. [ Though unreliable; trivial
driver reconfigurations require reboot. ]
- Hierarchical filesystem with . and .. directories, and paths
expressed left to right separated by slashes (albeit backslashes).
[ But with drive letter name stupidities, 8.3 backward compatibility
hacks, UNC paths that don't work everywhere, etc. ]
- Symbolic links (shortcuts) [ Not recognized at the deepest OS levels,
just a superficial trick seen by the Shell API ], and hard links (NTFS).
- Unstructured files with open/read/write type primitives, with
EOF indicated by a short read. [ Complicated API with a huge number
of parameters just to open a file. Stupidities in the filesystem
regarding concurrent operations. ]
- Object file formats like COFF and ar archives in the Microsoft
toolchain.
- Command shell with < > | redirection, by way of DOS. [ Antedeluvial
syntax and semantics. ]
- Shell and utilities as a separate programs called by name.
- Devices mapped into the filesystem space [ but without regard for
pathname namespaces. Cannot have a file called CON or PRN in any
directory! ]
- Command lines and environment variables, passed down to child processes.
[ But a single command line string is passed that must be tokenized
by the called process, so there is no consistent, reliable way to
pass a general list of arguments. ]
- Path environment variable, containing delimited list of places to
look for executables.
The list goes on.
Do you know that animated film _The Nightmare before Christmas_? If UNIX
is like Christmas, then Windows is like Pumpkin King Jack Skellington's
bastardized misunderstanding of Christmas. The interfaces and
mechanisms of Windows are like Jack's gruesome toys that scare the
children.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -