From: Keith M. <kei...@us...> - 2007-09-23 14:14:05
|
On Sat, 2007-09-22 at 20:40 -0600, Eric Weddington wrote: > > Brian Dessent wrote: > > Okay, you seem to be confusing several unrelated concepts. > > > > Firstly: > <snip detailed explanation> > > Great explanation! Absolutely! Thanks Brian. I just have one minor nit to pick; your final paragraph in particular, and a related reference in a earlier one, are misleading, and potentially confusing, especially for a newbie. Specifically: > > Windows' cmd.exe is a shell. MSYS' bash.exe is a shell. rxvt is a > > terminal. This is absolutely correct; it is, perhaps worth noting that another name for a shell is a CLI, (Command Line Interpreter), while a terminal may also be referred to as a console. > > The native windows "command prompt" is a terminal. This is not correct. The native windows "command prompt" is a shell, (it uses cmd.exe), for which Windows has also provided a console, so that you can communicate with it. You had said earlier: `a terminal is what displays things', which is true, but it is also a rather incomplete description; more accurately: A terminal, or console, is a container in which an application may be run; it provides the machinery for displaying the program's output, and also for receiving input from peripheral devices such as the keyboard or the mouse, and passing this to the program. Beyond providing this I/O machinery, the terminal provides no further functionality of its own; that is the responsibility of whatever program is run within the container provided by the terminal. > > In other words, you can mix and match these in any combination: you > > could be using the bash shell under rxvt, More accurately, you could be running the bash shell *within* the console environment provided by rxvt, but in principle this is correct; however: > > you could be using the bash shell under a native command prompt. While this is true, it isn't what you mean. Literally, this would mean start a native command prompt, (i.e. start cmd.exe in a native console), then start bash.exe or sh.exe as a secondary shell, from the cmd.exe prompt. Of course, what you really mean is run bash.exe or sh.exe in a native *console*, (with cmd.exe playing no part at all). > > Or you could be using the cmd.exe shell under the native command > > prompt. Again, what you really mean here is `using the cmd.exe shell within a native Windows console'; this is precisely the scenario which prevails, when running the native `command prompt'. > > You could in theory use the cmd.exe shell under rxvt but this > > probably doesn't work because of the pty emulation issue, This could probably benefit from further explanation. A `pty' is a `pseudo-teletype' device; in simple terms, it is the mechanism used by the console to connect the physical I/O devices, (the display, keyboard and pointer devices), with the I/O streams of the program running within it. In the rxvt console provided with MSYS, this mechanism is flaky and unreliable, which is why we no longer recommend using it. > > but that's an implementation detail and doesn't change the > > fundamental separation between shell and terminal. > Would this happen to be in the wiki somewhere? If not, it oughtta be... Perhaps one of you would like to add it? Regards, Keith. |