Deutsch English Français Italiano |
<v3unvu$21g4g$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lawrence D'Oliveiro <ldo@nz.invalid> Newsgroups: comp.os.linux.advocacy Subject: Command Line Versus Command Line Date: Fri, 7 Jun 2024 10:38:55 -0000 (UTC) Organization: A noiseless patient Spider Lines: 36 Message-ID: <v3unvu$21g4g$2@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Fri, 07 Jun 2024 12:38:55 +0200 (CEST) Injection-Info: dont-email.me; posting-host="21a6995757d724b8d83dd14f044d030a"; logging-data="2146448"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+vyyYwSbHx287kXxrFWejp" User-Agent: Pan/0.158 (Avdiivka; ) Cancel-Lock: sha1:ogPePAuWFZGKKhepvC1MMiZwS/Q= Bytes: 2969 Microsoft copied its idea of the command line from Gary Kildall’s CP/M, which in turn copied it from the DEC operating systems of the 1970s. This is just a simple string/array of characters. Implicit in these systems is the idea that one program cannot directly execute another; it has to go through a “command interpreter”, which has to be given a “command” to “interpret”. Compare the Unix concept of a command line: it is not a “line” at all, but an array of strings. One program can directly execute another without having to go through a shell: it can construct and pass this argument array without having to worry about “special” characters that might be (mis)interpreted by some CLI/shell intermediary -- unless you choose to go through such an intermediary. Those old DEC systems tended to have more complex syntax for their commands than what is supported by your typical *nix command-line program. But then, the sheer wealth of *nix command-line tools, compared to what is available on Microsoft DOS/Windows/NT/PowerShell and indeed all the proprietary OSes put together, shows that the *nix-style command line is far more versatile. In *nix, most of the sophistication is delegated to the shell language that is used to invoke these programs, while the programs themselves can usually parse their arguments using a fairly modest amount of code, with little or no need for some more sophisticated command-line-handling library. Just to reinforce the direction that Microsoft took, Dave Cutler, the brains behind Windows NT, also came from DEC, where he was part of a nest of Unix-haters. So Microsoft’s recent rediscovery that “the command line is cool” remains hampered by this brain-dead underlying architecture. The requirement that most if not all process creation has to be mediated by some command-line “shell” makes it quite clumsy to emulate the kind of multi-process pipelines that are all in a day’s work on a Linux or other *nix system. It also leads to some interesting security vulnerabilities.